Codeblock Onlinehilfe

LayoutBlobToTextFile()

LayoutBlobToTextFile()

Exportiert ein RBuilder-Layout aus der Tabelle DABR10 als lesbare Template-Datei (.rtm). Der im Feld REPORT gespeicherte Binary-DFM-Blob wird in das ASCII/Text-DFM-Format konvertiert und gespeichert; die zugehörigen Codeblock-Blöcke (CB_BEARB, CB_DRUCK, CB_SORT, CB_START, CB_STOP) werden mit in die Datei geschrieben. So lässt sich ein Layout außerhalb des Systems manuell bearbeiten (z. B. Properties wie DirectDraw ändern).

Hinweis

  • Die Zuordnung zum Datensatz erfolgt über REPORT_ID + REPORT_NR (Index DABR11). Ein nicht vorhandenes Zielverzeichnis wird automatisch angelegt. Fehlt der Datensatz oder ist der REPORT-Blob leer, bricht die Funktion mit einer Fehlermeldung ab. Neben dem REPORT-Blob werden auch die Codeblock-Memo-Felder (CB_BEARB, CB_DRUCK, CB_SORT, CB_START, CB_STOP) mit ausgelesen und an die .rtm-Datei angehängt, sodass sie beim Import wieder eingelesen werden.

Parameter

Beschreibung

oDM:O

DataModule-Objekt (TbeDBGet) für den Datenbankzugriff auf die Tabelle DABR10

cReportId:C

Report-ID des Layouts (Feld REPORT_ID der Tabelle DABR10), z. B. 'RECH_000_000'

nReportNr:N

Report-Nummer des Layouts (Feld REPORT_NR der Tabelle DABR10)

cPath:C

Zielpfad: entweder ein Verzeichnis (der Dateiname wird dann aus dem DocumentName als <name>.rtm gebildet) oder ein vollständiger Pfad mit .rtm-Endung

lOverwrite:L

Optional: bestehende Zieldatei überschreiben. default = true; bei false bricht die Funktion ab, wenn die Datei bereits existiert

Rückgabewert

Zeichenkette (Character) - vollständiger Pfad der erzeugten .rtm-Datei

Beispiel

| oDM, cPath |

// DataModule (TbeDBGet) erzeugen -- liefert die DB-Verbindung fuer DABR10
oDM := CreateObject('TBeDBGet', 'DATAMODULE'),
startseq
   // Layout RECH_000_000 / 0 in ein Verzeichnis exportieren;
   // der Dateiname wird aus dem DocumentName gebildet (z. B. Rechung.rtm)
   cPath := LayoutBlobToTextFile(oDM, 'RECH_000_000', 0, 'C:\Temp\Layouts'),
   WriteLn('Export nach: ' + cPath),
always
   // Objekt sauber wieder freigeben
   DestroyObject(oDM),
stopseq,

Weitere Verknüpfungen