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,