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 );