Modul XLS: Unterschied zwischen den Versionen
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
=XLS= | =XLS= | ||
− | Im Modul XLS werden die Routinen zusammengefasst, die zur Erstellung von Dateien im Excel- oder OpenOffice Calc-Format verwendet werden. | + | Im Modul XLS werden die Routinen zusammengefasst, die zur Erstellung von Dateien im Excel- oder OpenOffice Calc-Format verwendet werden. Es können auch Dateien geöffnet und ausgelesen werden. |
==#xls_start== | ==#xls_start== | ||
Zeile 7: | Zeile 7: | ||
Startet den Export einer Excel-Datei. | Startet den Export einer Excel-Datei. | ||
− | + | * cnd - ("condition") Die Prozedur wird nur dann ausgeführt, wenn das Statement in cnd Y ergibt. Default ist Y, Funktionen werden ersetzt | |
− | |||
− | ( | ||
'''Beispiel''' | '''Beispiel''' | ||
Zeile 29: | Zeile 27: | ||
#xls_stop | #xls_stop | ||
#cout c="c_sd_xls executed" | #cout c="c_sd_xls executed" | ||
+ | |||
+ | ==#xls_load== | ||
+ | |||
+ | Lädt eine Datei | ||
+ | |||
+ | '''Parameter''' | ||
+ | |||
+ | * cnd - ("condition") Die Prozedur wird nur dann ausgeführt, wenn das Statement in cnd Y ergibt. Default ist Y, Funktionen werden ersetzt | ||
+ | * fn ("FileName") - Dateiname; wenn leer, wird ein Datei-Dialog geöffnet; Default leer, Funktionen werden ersetzt | ||
+ | |||
+ | '''Beispiel''' | ||
+ | |||
+ | #xls_load fn=c:\temp\$VAR(filename) | ||
==#xls_stop== | ==#xls_stop== | ||
Zeile 36: | Zeile 47: | ||
'''Parameter''' | '''Parameter''' | ||
+ | * cnd - ("condition") Die Prozedur wird nur dann ausgeführt, wenn das Statement in cnd Y ergibt. Default ist Y, Funktionen werden ersetzt | ||
* fn ("FileName") - Dateiname, unter dem die Datei gespeichert wird; Funktionen werden ersetzt. Aus der Endung ergibt sich dann der Typ der Datei. Wenn der Parameter leer bleibt, öffnet sich ein Dateiauswahldialog zum Speichern. | * fn ("FileName") - Dateiname, unter dem die Datei gespeichert wird; Funktionen werden ersetzt. Aus der Endung ergibt sich dann der Typ der Datei. Wenn der Parameter leer bleibt, öffnet sich ein Dateiauswahldialog zum Speichern. | ||
* o ("open") - Wenn Y, word wird nach der Erstellung gleich geöffnet; default Y, Funktionen werden ersetzt. | * o ("open") - Wenn Y, word wird nach der Erstellung gleich geöffnet; default Y, Funktionen werden ersetzt. | ||
Zeile 45: | Zeile 57: | ||
==#xls_sheet== | ==#xls_sheet== | ||
− | Fügt der Datei ein (weiteres) Sheet hinzu. Alle weiteren #xls_row-Prozeduren fügen dann diesem Sheet Reihen hinzu. | + | Fügt der Datei ein (weiteres) Sheet hinzu oder selektiert ein Sheet. Alle weiteren #xls_row-Prozeduren fügen dann diesem Sheet Reihen hinzu. |
'''Parameter''' | '''Parameter''' | ||
+ | * cnd - ("condition") Die Prozedur wird nur dann ausgeführt, wenn das Statement in cnd Y ergibt. Default ist Y, Funktionen werden ersetzt | ||
* c ("caption") - Beschriftung des Tabs | * c ("caption") - Beschriftung des Tabs | ||
* fc ("fixed cols") - Anzahl der Spalten, die links fixiert werden; default 0; Funktionen werden ersetzt | * fc ("fixed cols") - Anzahl der Spalten, die links fixiert werden; default 0; Funktionen werden ersetzt | ||
* fr ("fixed rows") - Anzahl der Zeilen, die oben fixiert werden; default 0; Funktionen werden ersetzt | * fr ("fixed rows") - Anzahl der Zeilen, die oben fixiert werden; default 0; Funktionen werden ersetzt | ||
+ | * n ("number") - 0-relativer Index des Sheets, das selektiert werden soll | ||
− | ''' | + | '''Beispiele''' |
#xls_sheet c="Daten" fr=1 | #xls_sheet c="Daten" fr=1 | ||
+ | #xls_sheet n=0 | ||
==#xls_row== | ==#xls_row== | ||
− | Fügt dem aktuellen Sheet eine weitere Reihe hinzu. | + | Fügt dem aktuellen Sheet eine weitere Reihe hinzu oder selektiert eine solche. |
+ | |||
+ | '''Parameter''' | ||
+ | * cnd - ("condition") Die Prozedur wird nur dann ausgeführt, wenn das Statement in cnd Y ergibt. Default ist Y, Funktionen werden ersetzt | ||
* h (height) - Höhe der Zelle; default 20, Funktionen werden ersetzt | * h (height) - Höhe der Zelle; default 20, Funktionen werden ersetzt | ||
+ | * n ("number") - 0-relativer Index der Reihe, die selektiert werden soll | ||
− | |||
'''Beispiel''' | '''Beispiel''' | ||
Zeile 77: | Zeile 95: | ||
** l ("left") - linksbündig | ** l ("left") - linksbündig | ||
** r ("right") - rechtsbündig | ** r ("right") - rechtsbündig | ||
+ | * bt, bl, br, bb ("border top", "border left", "border right", "border bottom") - Ränder der Zelle, default thin, Funktionen werden ersetzt (auto, none, thin, medium, dashed, dotted, thick, double, hair, mediumdashed, dashdotted, mediumdashdotted, dashdotdotted, mediumdashdotdotted, slanteddashdotted) | ||
* cl ("color") - Farbe der Zelle; default weiß | * cl ("color") - Farbe der Zelle; default weiß | ||
+ | * cnd - ("condition") Die Prozedur wird nur dann ausgeführt, wenn das Statement in cnd Y ergibt. Default ist Y, Funktionen werden ersetzt | ||
+ | * cs ("ColSpan") - Anzahl der Spalten, die zusammengefasst werden; default 1, Funktionen werden ersetzt | ||
* fc ("FontColor") - Farbe der Schrift; default schwarz | * fc ("FontColor") - Farbe der Schrift; default schwarz | ||
+ | * va ("vertivcal align") - vertikale Ausrichtung des Textes; default t, Funktionen werden ersetzt | ||
+ | ** b ("bottom") - unten | ||
+ | ** c ("center") - mittig | ||
+ | ** t ("top") - oben | ||
+ | * fs ("FontStyle") - Style der Schrift, die einzelnen Optionen können kombiniert werden; default keine Option | ||
+ | ** b - bold | ||
+ | ** i - italic | ||
+ | ** u - underline | ||
+ | ** s - strikeout | ||
* w ("width") - Breite der Zelle | * w ("width") - Breite der Zelle | ||
* y - Typ der Zelle, default Text | * y - Typ der Zelle, default Text | ||
Zeile 94: | Zeile 124: | ||
#xls_cell z=Text w=200 fc=red | #xls_cell z=Text w=200 fc=red | ||
#xls_cell y=datemin z=$NOW() | #xls_cell y=datemin z=$NOW() | ||
+ | |||
+ | ==#xls_looprows== | ||
+ | |||
+ | '''Parameter''' | ||
+ | |||
+ | * cnd - ("condition") Die Prozedur wird nur dann ausgeführt, wenn das Statement in cnd Y ergibt. Default ist Y; Funktionen werden ersetzt | ||
+ | * db - ("database") Name der Datenbank, auf die sich die Transaktion bezieht; Funktionen werden ersetzt | ||
+ | * er - ("each row") Das Kommando, das für jede Zeile der Datenmenge aufgerufen wird. Funktionen werden ersetzt. | ||
+ | * ern - ("each row no") Das Kommando, das für jede Zeile der Datenmenge aufgerufen wird. Funktionen werden nicht ersetzt. Wenn ''ern'' einen Wert hat, bleibt ''er'' unberücksichtigt. Üblicherweise wird ''er'' verwendet. | ||
+ | * ert - ("each row transaction") Wenn Y, wird für jede Zeile der Datenmenge eine eigene Transaktion gestartet und nach der Abarbeitung des Kommandos wieder geschlossen; Funktionen werden ersetzt | ||
+ | * m - ("maximum") Es wird maximal für die Anzahl der angegebenen Zeilen das in er angegebene Kommando ausgeführt. Dieser Parameter wird häufig dazu verwendet, während der Entwicklung mit einer geringen Zahl von Datensätzen zu arbeiten; Funktionen werden ersetzt | ||
+ | * nex ("no exception") - Wenn Y, wird bei Exceptions in er nicht abgebrochen, sondern mit dem nächsten Datensatz fortgesetzt. Default N; Funktionen werden ersetzt. | ||
+ | * n - Name der Variablen, in welche die aktuelle, 0-relative Schleifennummer geschrieben wird | ||
+ | |||
+ | |||
+ | '''Beispiel''' | ||
+ | |||
+ | #xls_looprows er=sof_7836_line m_=5 | ||
+ | |||
==#xls_page== | ==#xls_page== | ||
Zeile 106: | Zeile 155: | ||
#btn y=xls s=#xls_page se=b | #btn y=xls s=#xls_page se=b | ||
+ | |||
+ | ==$XLS_COUNT()== | ||
+ | |||
+ | Ermittelt die Anzahl der Sheets, Zeilen oder Zellen | ||
+ | |||
+ | '''Parameter''' | ||
+ | |||
+ | # Von was wird die Anzahl ermittelt | ||
+ | ## sheets - Sheets in einer Datei | ||
+ | ## rows - Zeilen in einem Sheet | ||
+ | ## cells - Zellen in einer Zeile | ||
+ | |||
+ | '''Beispiel''' | ||
+ | |||
+ | #cout c="Dieses Sheet hat $XLS_COUNT(rows) Zeilen" | ||
+ | |||
+ | |||
+ | ==$XLS_CELL()== | ||
+ | |||
+ | Gibt den Wert einer Zelle aus | ||
+ | |||
+ | '''Parameter''' | ||
+ | |||
+ | # Index der Zelle | ||
+ | |||
+ | '''Beispiel''' | ||
+ | |||
+ | #val_set n=1 z=$XLS_CELL(0) | ||
+ | |||
+ | ~ $INTLEN($VAL(1)) = 9 | ||
+ | #var_add n=zeile z=1 y=int | ||
+ | #cout c="$VAL(1) - $VAR(datei) / $VAR(zeile)" m=20 md=10 | ||
+ | #sql_upsert y=a t=neuland.sof_7836 k=adrnr f_adrnr=$VAL(1) hst=N | ||
+ | |||
+ | ~~ |
Aktuelle Version vom 26. Februar 2024, 17:46 Uhr
Inhaltsverzeichnis
XLS
Im Modul XLS werden die Routinen zusammengefasst, die zur Erstellung von Dateien im Excel- oder OpenOffice Calc-Format verwendet werden. Es können auch Dateien geöffnet und ausgelesen werden.
#xls_start
Startet den Export einer Excel-Datei.
- cnd - ("condition") Die Prozedur wird nur dann ausgeführt, wenn das Statement in cnd Y ergibt. Default ist Y, Funktionen werden ersetzt
Beispiel
#frm c="c_sd_xls" y=console #xls_start #xls_sheet c="BAF Demo" #xls_row #xls_cell z=Text #xls_cell z=Text w=200 fc=red #xls_row #xls_cell z=Datum #xls_cell y=datemin z=$NOW() #xls_row #xls_cell z=Zahl #xls_cell y=curr z=3,14 #xls_stop #cout c="c_sd_xls executed"
#xls_load
Lädt eine Datei
Parameter
- cnd - ("condition") Die Prozedur wird nur dann ausgeführt, wenn das Statement in cnd Y ergibt. Default ist Y, Funktionen werden ersetzt
- fn ("FileName") - Dateiname; wenn leer, wird ein Datei-Dialog geöffnet; Default leer, Funktionen werden ersetzt
Beispiel
#xls_load fn=c:\temp\$VAR(filename)
#xls_stop
Beendet den Export und speichert die Datei
Parameter
- cnd - ("condition") Die Prozedur wird nur dann ausgeführt, wenn das Statement in cnd Y ergibt. Default ist Y, Funktionen werden ersetzt
- fn ("FileName") - Dateiname, unter dem die Datei gespeichert wird; Funktionen werden ersetzt. Aus der Endung ergibt sich dann der Typ der Datei. Wenn der Parameter leer bleibt, öffnet sich ein Dateiauswahldialog zum Speichern.
- o ("open") - Wenn Y, word wird nach der Erstellung gleich geöffnet; default Y, Funktionen werden ersetzt.
Beispiel
(siehe #xls_start)
#xls_sheet
Fügt der Datei ein (weiteres) Sheet hinzu oder selektiert ein Sheet. Alle weiteren #xls_row-Prozeduren fügen dann diesem Sheet Reihen hinzu.
Parameter
- cnd - ("condition") Die Prozedur wird nur dann ausgeführt, wenn das Statement in cnd Y ergibt. Default ist Y, Funktionen werden ersetzt
- c ("caption") - Beschriftung des Tabs
- fc ("fixed cols") - Anzahl der Spalten, die links fixiert werden; default 0; Funktionen werden ersetzt
- fr ("fixed rows") - Anzahl der Zeilen, die oben fixiert werden; default 0; Funktionen werden ersetzt
- n ("number") - 0-relativer Index des Sheets, das selektiert werden soll
Beispiele
#xls_sheet c="Daten" fr=1 #xls_sheet n=0
#xls_row
Fügt dem aktuellen Sheet eine weitere Reihe hinzu oder selektiert eine solche.
Parameter
- cnd - ("condition") Die Prozedur wird nur dann ausgeführt, wenn das Statement in cnd Y ergibt. Default ist Y, Funktionen werden ersetzt
- h (height) - Höhe der Zelle; default 20, Funktionen werden ersetzt
- n ("number") - 0-relativer Index der Reihe, die selektiert werden soll
Beispiel
(siehe #xls_start)
#xls_cell
Parameter
- a ("align") - Ausrichtung des Textes / des Wertes in der Zelle
- c ("center") - mittig
- d2 / d4 (decimal) - ausgerichtet am Komma für zwei oder vier Nachkommastellen
- l ("left") - linksbündig
- r ("right") - rechtsbündig
- bt, bl, br, bb ("border top", "border left", "border right", "border bottom") - Ränder der Zelle, default thin, Funktionen werden ersetzt (auto, none, thin, medium, dashed, dotted, thick, double, hair, mediumdashed, dashdotted, mediumdashdotted, dashdotdotted, mediumdashdotdotted, slanteddashdotted)
- cl ("color") - Farbe der Zelle; default weiß
- cnd - ("condition") Die Prozedur wird nur dann ausgeführt, wenn das Statement in cnd Y ergibt. Default ist Y, Funktionen werden ersetzt
- cs ("ColSpan") - Anzahl der Spalten, die zusammengefasst werden; default 1, Funktionen werden ersetzt
- fc ("FontColor") - Farbe der Schrift; default schwarz
- va ("vertivcal align") - vertikale Ausrichtung des Textes; default t, Funktionen werden ersetzt
- b ("bottom") - unten
- c ("center") - mittig
- t ("top") - oben
- fs ("FontStyle") - Style der Schrift, die einzelnen Optionen können kombiniert werden; default keine Option
- b - bold
- i - italic
- u - underline
- s - strikeout
- w ("width") - Breite der Zelle
- y - Typ der Zelle, default Text
- curr - Zahlen mit zwei Nachkommastellen
- curr4 - Zahlen mit vier Nachkommastellen
- date - Datum
- datemin - Datum und Uhrzeit ohne Sekunden
- datesek - Datum und Uhrzeit mit Sekunden
- int - Zahlen ohne Nachkommastellen
- text - Text
- z - Wert/Text, der in der Zelle eingefügt werden soll; Funktionen werden ersetzt
Beispiel
#xls_cell z=Text w=200 fc=red #xls_cell y=datemin z=$NOW()
#xls_looprows
Parameter
- cnd - ("condition") Die Prozedur wird nur dann ausgeführt, wenn das Statement in cnd Y ergibt. Default ist Y; Funktionen werden ersetzt
- db - ("database") Name der Datenbank, auf die sich die Transaktion bezieht; Funktionen werden ersetzt
- er - ("each row") Das Kommando, das für jede Zeile der Datenmenge aufgerufen wird. Funktionen werden ersetzt.
- ern - ("each row no") Das Kommando, das für jede Zeile der Datenmenge aufgerufen wird. Funktionen werden nicht ersetzt. Wenn ern einen Wert hat, bleibt er unberücksichtigt. Üblicherweise wird er verwendet.
- ert - ("each row transaction") Wenn Y, wird für jede Zeile der Datenmenge eine eigene Transaktion gestartet und nach der Abarbeitung des Kommandos wieder geschlossen; Funktionen werden ersetzt
- m - ("maximum") Es wird maximal für die Anzahl der angegebenen Zeilen das in er angegebene Kommando ausgeführt. Dieser Parameter wird häufig dazu verwendet, während der Entwicklung mit einer geringen Zahl von Datensätzen zu arbeiten; Funktionen werden ersetzt
- nex ("no exception") - Wenn Y, wird bei Exceptions in er nicht abgebrochen, sondern mit dem nächsten Datensatz fortgesetzt. Default N; Funktionen werden ersetzt.
- n - Name der Variablen, in welche die aktuelle, 0-relative Schleifennummer geschrieben wird
Beispiel
#xls_looprows er=sof_7836_line m_=5
#xls_page
Exportiert alle VL-, Grid- und XGrid-Segmente der aktuellen Seite. Für jedes Segment wird eine neues Sheet angelegt.
Parameter
(keine)
Beispiel
#btn y=xls s=#xls_page se=b
$XLS_COUNT()
Ermittelt die Anzahl der Sheets, Zeilen oder Zellen
Parameter
- Von was wird die Anzahl ermittelt
- sheets - Sheets in einer Datei
- rows - Zeilen in einem Sheet
- cells - Zellen in einer Zeile
Beispiel
#cout c="Dieses Sheet hat $XLS_COUNT(rows) Zeilen"
$XLS_CELL()
Gibt den Wert einer Zelle aus
Parameter
- Index der Zelle
Beispiel
#val_set n=1 z=$XLS_CELL(0) ~ $INTLEN($VAL(1)) = 9 #var_add n=zeile z=1 y=int #cout c="$VAL(1) - $VAR(datei) / $VAR(zeile)" m=20 md=10 #sql_upsert y=a t=neuland.sof_7836 k=adrnr f_adrnr=$VAL(1) hst=N ~~