ControlAddIn "Drop File Area UTCAP"
Namespace: CapVision.Core.Controls
Cet add-in affiche une zone de glisser-déposer.
Remarks
A propos du mode de téléchargement
Le mode de téléchargement standard est _StreamContentMultiparts_, cela signifie que lorsqu'un fichier est déposé sur la zone de téléchargement, il est transmis par petit paquet à Business Central.
Cette option est optimale pour le téléchargement de gros fichiers et vous permet aussi d'actualiser le contenu du composant pour signifier à l'utilisateur la progression du téléchargement.
Toutefois, l'implémentation de cette option est plus délicate. Vous devez notamment assembler vous-même le fichier dans Business Central.
Le mode _StreamContent_ est plus simple et permet de récupérer le fichier en une seule partie. Cette méthode peut toutefois causer des problèmes de stabilité lorsqu'un gros fichier est déposé.
La dernière option, _Filename_, ne permet pas de récupérer le contenu des fichiers déposés mais uniquement leur nom et leur taille respective.
Examples
L'exemple ci-dessous présente l'implémentation d'un récapitulatif qui supporte le téléchargement d'un fichier en plusieurs parties.
``` AL
page 50100 "Drop Record Link Part PTE"
{
PageType = CardPart;
Caption = 'Add an attachment';
layout
{
area(Content)
{
group(DropArea)
{
ShowCaption = false;
usercontrol(DropFileArea; "Drop File Area UTCAP")
{
ApplicationArea = all;
trigger ControlAddInReady()
var
InstructionTxt: Label 'Drop files here.';
begin
CurrPage.DropFileArea.SetUploadingMode(2 /*StreamContentMultiparts*/);
CurrPage.DropFileArea.SetContent(InstructionTxt);
end;
trigger OnFileUploaded(id: Text; FileName: Text; base64Content: Text; eos: Boolean)
var
Base64Convert: Codeunit "Base64 Convert";
SharePointLink: Codeunit "Sharepoint Link MJCAP";
TempBlob: Codeunit "Temp Blob";
OutStr: OutStream;
DocumentStream: InStream;
begin
if id <> CurrStreamingFileId then begin
CurrStreamingFileId := id;
Clear(CurrStreamingFileContent);
end;
CurrStreamingFileContent.Append(base64Content);
if eos then begin
Clear(TempBlob);
TempBlob.CreateOutStream(OutStr);
Base64Convert.FromBase64(CurrStreamingFileContent.ToText(), OutStr);
TempBlob.CreateInStream(DocumentStream);
//TODO: Save TempBlob somewhere
Clear(CurrStreamingFileId);
Clear(CurrStreamingFileContent);
CurrPage.Update();
end;
end;
}
}
}
}
var
CurrStreamingFileId: Text;
CurrStreamingFileContent: TextBuilder;
}
```
Methods
SetContent
Définit le contenu du contrôle.
procedure SetContent(content: Text)
Parameters
| Name | Type | Description |
|---|---|---|
| content | Text |
Représentation HTML du contenu du contrôle. |
SetUploadingMode
Définit le mode d'upload des fichiers. 0: Filename 1: StreamContent 2 (par défaut) : StreamContentMultiparts
procedure SetUploadingMode(mode: Integer)
Parameters
| Name | Type | Description |
|---|---|---|
| mode | Integer |
FetchClipboardContent
Demande la récupération des données du presse-papier.
procedure FetchClipboardContent()