Dynamische tekstregels
Dynamische tekstregels zijn tekstregels die op basis van een bepaalde configuratie worden ingevoegd in een document.
Om de tekstregels in te voegen wordt gebruikt gemaakt van de volgende procedure:
procedure CFLFillLines(var SourceRecRef: RecordRef) TextLines: list of [Text]
| Parameter | Omschrijving |
|---|---|
| SourceRecRef | Referentie naar de bronrecord waaruit de gegevens worden opgehaald. |
Voorbeeld
Eenvoorbeeld van invoegen van dynamische tekstregels kan gevonden worden in het ophalen van verzendregels op een verkoopfactuur.
[EventSubscriber(ObjectType::Table, Database::"Sales Shipment Line", 'OnBeforeInsertInvLineFromShptLineBeforeInsertTextLine', '', false, false)]
local procedure CFLSalesShpmtLineOnBeforeInsertInvLineFromShptLineBeforeInsertTextLine(var SalesShptLine: Record "Sales Shipment Line"; var SalesLine: Record "Sales Line"; var NextLineNo: Integer; var Handled: Boolean)
var
CFLDynamicTextHeader: record "CFL Dynamic Text Header";
CFLFoundationSetup: record "CFL Foundation Setup";
SalesShptHeader: record "Sales Shipment Header";
SourceRecRef : RecordRef;
TextLines: List of [Text];
LineText: Text;
AddLine: Boolean;
begin
CFLFoundationSetup.Get();
CFLFoundationSetup.TestField("CFL Shipment Dynamic Text");
SalesShptHeader.Get(SalesShptLine."Document No.");
SourceRecRef.OPEN(database::"Sales Shipment Header");
SourceRecRef.GetBySystemId(SalesShptHeader.SystemId);
CFLDynamicTextHeader.GET(CFLFoundationSetup."CFL Shipment Dynamic Text");
TextLines := CFLDynamicTextHeader.CFLFillLines(SourceRecRef);
foreach LineText in TextLines do begin
AddLine := true;
if (NextLineNo = 10000) and (LineText = '') then
AddLine := false;
if AddLine then begin
SalesLine.Init();
SalesLine."Line No." := NextLineNo;
SalesLine."Document Type" := SalesLine."Document Type";
SalesLine."Document No." := SalesLine."Document No.";
SalesLine.Description := copystr(LineText, 1, MaxStrLen(SalesLine.Description));
SalesLine.Insert();
NextLineNo := NextLineNo + 10000;
end;
end;
end;