Drag & Drop

  • 5 minutes to read

Pages

page CFL Drag & Drop Factbox

event CFLOnAfterGetFolderAndFiles

local procedure CFLOnAfterGetFolderAndFiles(var rec: record "CFL Drag and Drop File"; path: text; var level: integer; var EntryNo: integer)

Dit event wordt gebruikt door System OnPrem om bij lokale bestandsopslag de bestanden en mappen op te lijsten.

NOTE

Dit event is obsoleted en wordt niet langer gebruikt. Dit event is vervangen door CFLRootFolderMgt CFLOnAfterGetFolderAndFiles.

Tables

CFLDragandDropFile

event CFLOnBeforeCFLDeleteFile

procedure CFLOnBeforeCFLDeleteFile(rec: record "CFL Drag and Drop File"; var IsHandled: boolean)

Gebruik dit event om in te grijpen in het verwijderen van een bestand. Indien de IsHandled op true wordt geplaatst dan zal de standaard BoCount code niet worden doorlopen en bestand dus niet verwijderd worden.

event CFLOnAfterCFLDeleteFile

procedure CFLOnAfterCFLDeleteFile(rec: record "CFL Drag and Drop File")

Dit event wordt gebruikt door System OnPrem om het bestand te verwijderen bij lokale bestandsopslag.

event CFLOnAfterCFLDownloadFile

procedure CFLOnAfterCFLDownloadFile(rec: record "CFL Drag and Drop File")

Dit event wordt gebruikt door System OnPrem om het bestand te downloaden bij lokale bestandsopslag.

procedure CFLGetRecordID

Gebruik deze procedure om te weten te komen op welke record-id de pagina draait.

Codeunits

CFL Drag and Drop Management

WARNING

Deze codeunit is obsoleted en vervangen door CFL Drag and Drop Management 2

procedure CFLGetFolderFromRecordID

procedure CFLGetFolderFromRecordID(recID: RecordID) folder: Text

Retourneert de folder waarin bestanden gekoppeld aan de record zijn opgeslagen.

event CFLOnAfterGetFolderFromRecordID

[EventSubscriber(ObjectType::Codeunit, Codeunit::"CFL Drag and Drop Management", 'CFLOnAfterGetFolderFromRecordID', '', false, false)]
local procedure CFLOnAfterGetFolderFromRecordID(recID: recordID; var folder: text)
begin
        
end;

Gebruik dit event om een andere folder te gebruiken bij de record-id.

event CFLOnAfterGetFolderFromRecordID2

[EventSubscriber(ObjectType::Codeunit, Codeunit::"CFL Drag and Drop Management", 'CFLOnAfterGetFolderFromRecordID2', '', false, false)]
local procedure CFLOnAfterGetFolderFromRecordID(recID: recordID; var folder: text)
begin
        
end;

Dit event wordt gebruikt door System OnPrem om de lokale folder terug te geven.

event CFLOnBeforeCFLFileDropEnd

[EventSubscriber(ObjectType::Codeunit, Codeunit::"CFL Drag and Drop Management", 'CFLOnBeforeCFLFileDropEnd', '', false, false)]
local procedure CFLOnBeforeCFLFileDropEnd((RecID: Recordid;path : text; var CurrentFilename : text)
begin
        
end;

Gebruik dit event om het bestand op te slaan onder een andere naam. Dit event gaat af net voor het opslaan van het bestand.

event CFLOnAfterCFLFileDropEnd

[EventSubscriber(ObjectType::Codeunit, Codeunit::"CFL Drag and Drop Management", 'CFLOnAfterCFLFileDropEnd', '', false, false)]
local procedure CFLOnAfterCFLFileDropEnd(RecID: recordid;path : text; CurrentFilename : text)
begin
        
end;

Dit event gaat af net na het opslaan van het bestand.

procedure CFLCopyFilesFromRecToRec

procedure CFLCopyFilesFromRecToRec(RecIDFrom: RecordID; RecIDTo: RecordID; DeleteSourceFiles: boolean; IncludingSubFolders: boolean)

Kopieert alle gekoppelde bestanden aan een record-id naar een andere record-id. Met DeleteSourceFiles = true worden de bestanden bij de recIDFrom verwijderd. Met IncludingSubFolders worden ook alle subfolders en bestanden in de subfolders mee gekopieerd.

event CFLOnBeforeCopyFilesFromRecToRec

[IntegrationEvent(false, false)]
local procedure CFLOnBeforeCopyFilesFromRecToRec(RecIDFrom: recordid; RecIDTo: recordid;var DeleteSourceFiles: boolean;var IncludingSubFolders: boolean;var IsHandled : boolean)
begin
end;

Gebruik dit event om in te grijpen in het kopieren van documenten van de ene record naar de andere. Via de IsHandled kan dit overgeslagen worden.

event CFLOnAfterCopyFilesFromRecToRec

[IntegrationEvent(false, false)]
local procedure CFLOnAfterCopyFilesFromRecToRec(FromFolder: text; ToFolder: text; DeleteSourceFiles: boolean; IncludingSubFolders: boolean)
begin
end;
NOTE

Dit event is obsoleted en wordt niet langer gebruikt. Dit event is vervangen door CFLOnAfterCopyFilesFromRecIDToRecID.

event CFLOnAfterCopyFilesFromRecIDToRecID

[IntegrationEvent(false, false)]
local procedure CFLOnAfterCopyFilesFromRecIDToRecID(RecIDFrom: recordid; RecIDTo: RecordId; var DeleteSourceFiles: boolean; var IncludingSubFolders: boolean)
begin
end;

Dit event wordt gebruikt door System OnPrem om de bestanden te kopiƫren bij lokale bestandsopslag.

CFL Drag and Drop Management 2

procedure CFLGetFolderFromRecordID

procedure CFLGetFolderFromRecordID(recID: RecordID) folder: Text

Retourneert de folder waarin bestanden gekoppeld aan de record zijn opgeslagen.

event CFLOnAfterGetFolderFromRecordID

[EventSubscriber(ObjectType::Codeunit, Codeunit::"CFL Drag and Drop Management", 'CFLOnAfterGetFolderFromRecordID', '', false, false)]
local procedure CFLOnAfterGetFolderFromRecordID(recID: recordID; var folder: text)
begin
        
end;

Gebruik dit event om een andere folder te gebruiken bij de record-id.

procedure CFLCopyFilesFromRecToRec

procedure CFLCopyFilesFromRecToRec(RecIDFrom: RecordID; RecIDTo: RecordID; DeleteSourceFiles: boolean; IncludingSubFolders: boolean)

Kopieert alle gekoppelde bestanden aan een record-id naar een andere record-id. Met DeleteSourceFiles = true worden de bestanden bij de recIDFrom verwijderd. Met IncludingSubFolders worden ook alle subfolders en bestanden in de subfolders mee gekopieerd.

event CFLOnBeforeCopyFilesFromRecToRec

[IntegrationEvent(false, false)]
local procedure CFLOnBeforeCopyFilesFromRecToRec(RecIDFrom: recordid; RecIDTo: RecordId; var DeleteSourceFiles: boolean; var IncludingSubFolders: boolean; var IsHandled: boolean)
begin
end;

Gebruik dit event om in te grijpen in het kopieren van documenten van de ene record naar de andere. Via de IsHandled kan dit overgeslagen worden.

event CFLOnAfterCopyFilesFromRecToRec

[IntegrationEvent(false, false)]
local procedure CFLOnAfterCopyFilesFromRecIDToRecID(RecIDFrom: recordid; RecIDTo: RecordId; var DeleteSourceFiles: boolean; var IncludingSubFolders: boolean)
begin
end;

CFL Drag and Drop Handler

Controladdins

CFLDragDropControl

Drag'n'drop van bestanden.

Enums

CFL Drag Drop Type

extensible = true
values:

  • CFL File
  • CFL Link
  • CFL Folder

Pages

CFL DragandDrop Factbox

Part voor het koppelen van documenten aan een record.

procedure CFLSetRecordID

procedure CFLSetRecordID(myRecID: RecordID)

Functie voor het opgeven van de record waaraan de bestanden moeten gekoppeld worden en welke bestanden moeten weergegeven worden.

NOTE

Deze functie zal de bestanden oplijsten in deze sessie. Dit betekent dat de client niet responsief is zolang dit niet is gebeurd.
Een alternatief hiervoor is de functie CFLSetRecordIDBackgroundTask deze gaat de bestanden oplijsten via een backgroundtask.

NOTE

Op de hoofdpagina waar de part wordt geplaatst dient deze regel code geplaatst te worden in de OnAfterGetCurrRecord-trigger:
CurrPage.CFLDragDrop.page.CFLSetRecordID(rec.RecordId);

NOTE

Deze part in oboslote en vervangen door CFL DragDrop Factbox 2.

CFL DragandDrop Factbox2

Part voor het koppelen van documenten aan een record.

procedure CFLSetRecordID

procedure CFLSetRecordID(myRecID: RecordID)

Functie voor het opgeven van de record waaraan de bestanden moeten gekoppeld worden en welke bestanden moeten weergegeven worden.

NOTE

Deze functie zal de bestanden oplijsten in een actergrondsessie. Dit betekent dat de client direct responsief is. Eens de bestanden zijn opgelijst zal de part deze weergeven.

procedure CFLGetTreeNodeID

procedure CFLGetTreeNodeID(filepath: text) NodeID: text

Gebruik deze functie om de NodeID van een bepaald pad in de drag&drop folder in de treeview op te vragen.

event CLFOnBeforeFileDropEnd

local procedure CLFOnBeforeFileDropEnd(RecID: RecordId; var filepath: text; filename: text; var NodeID: text)

event CFLOnBeforeDeleteFile

local procedure CFLOnBeforeDeleteFile(RecID: RecordId; var filepath: text; var NodeID: text)

event CFLOnBeforeDeleteFolder

local procedure CFLOnBeforeDeleteFolder(RecID: RecordId; var filepath: text; var NodeID: text)

Voorbeeld

Hieronder een voorbeeld waarbij de factbox wordt toegevoerd op de versnelde interactie.

pageextension 50000 MyExtension extends "CFL Quick Interaction"
{
    layout
    {
        addfirst(FactBoxes)
        {
            part(CFLDragDrop; "CFL Drag and Drop FactBox")
            {
                Caption = 'Drag and Drop';
                ApplicationArea = All;
            }
        }
    }

    trigger OnAfterGetCurrRecord()
    var
    begin
        CurrPage.CFLDragDrop.page.CFLSetRecordID(Rec.RecordId);
    end;
}

Voorbeeld 2

Hieronder een voorbeeld waarbij bij droppen van een bestand het naar een andere subfolder wordt geplaatst. Daarbij moet ook de NodeID worden aangepast zodat de treeview ook correct wordt aangepast.

[EventSubscriber(ObjectType::Page, Page::"CFL Drag and Drop FactBox 2", 'CLFOnBeforeFileDropEnd', '', false, false)]
local procedure CLFOnBeforeFileDropEnd(sender: Page "CFL Drag and Drop FactBox 2"; RecID: RecordId; var filepath: Text; filename: text; var NodeID: Text)
var
    FileMgt: codeunit "File Management";
begin
    //aanpassen van het pad naar subfolder test
    filepath := filepath + 'test';
    //ophalen van de NodeID van deze subfolder test zodat bestand ook op correcte plaats in treeview wordt ingevoegd.  
    NodeID := sender.CFLGetTreeNodeID(filepath);
end;