Drag & Drop
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;