NavFileFn
This DLL contains three functions which
can be used to browse through a directory.
I created it to import multiple text files
in one run.
You have to register the DLL in Navision
so you can use it as an Automation object.
(Using Tools, Custom Controls, Controls,
Browse and lookup the DLL)
Available Functions
FindFirstFile (<Directory
and file extension as Text>, <File Search Attributes* as
Decimal>, <Result as Variant>)
*File Search
attributes
Read-only files 1
Hidden files 2
System files 4
Volume ID files 8
Directory files 16
Archive files 32
Any file 63
FindNextFile( <Result as Variant> )
FindCloseFile
FindSetDirecotry( <Result as Variant> )
C/AL Example FindFirstFile, FindNextFile and FindCloseFile
CREATE(lAutoFileFunctions); //Automation object --> NavFileFn
CLEAR(lVarResult);
lTxtDownLoadDir :=
'c:\temp\';
lTxtFileExtension := '*.txt';
// This initializes the File Find Function
lAutoFileFunctions.FindFirstFile(lTxtDownLoadDir +
lTxtFileExtension, 63, lVarResult);
lTxtFileName := FORMAT(lVarResult);
IF lTxtFileName <> '' THEN BEGIN
REPEAT
CLEAR(lDataPortMultipleFiles);
lDataPortMultipleFiles.FILENAME := lTxtDownLoadDir + lTxtFileName; //File to import
lDataPortMultipleFiles.RUNMODAL; //Error checking inside
the dataport
lTxtFileName := '';
lAutoFileFunctions.FindNextFile(lVarResult); //Find next file
lTxtFileName :=
FORMAT(lVarResult);
//If no file is found the variable will
UNTIL lTxtFileName =
'';
//empty
END
ELSE
MESSAGE('No files
found');
lAutoFileFunctions.FindCloseFile; //Close the file search
C/AL Example FindSetDirectory
(e.g. OnAssistEdit trigger of a field where you want to store the
directory name)
CREATE(lAutoFileFunctions); //Automation object -->
NavFileFn
CLEAR(lVarResult);
LAutoFileFunctions.FindSetDirectory(
lVarResult ); // Search a
directory
Rec.”Import Directory” := FORMAT(
lVarResult); // e.g. Store
it in a setup field
CLEAR(LautoFileFunctions );