Modul XLS: Unterschied zwischen den Versionen

Aus bafbal.de
Zur Navigation springen Zur Suche springen
 
(19 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.
  
'''Parameter'''
+
* cnd - ("condition") Die Prozedur wird nur dann ausgeführt, wenn das Statement in cnd Y ergibt. Default ist Y, Funktionen werden ersetzt
 
 
(keine)
 
  
 
'''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==
 +
 +
Beendet den Export und speichert die Datei
  
 
'''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.
 +
* o ("open") - Wenn Y, word wird nach der Erstellung gleich geöffnet; default Y, Funktionen werden ersetzt.
  
 
'''Beispiel'''
 
'''Beispiel'''
 +
 +
(siehe #xls_start)
  
 
==#xls_sheet==
 
==#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'''
 
'''Parameter'''
  
'''Beispiel'''
+
* 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==
 
==#xls_row==
 +
 +
Fügt dem aktuellen Sheet eine weitere Reihe hinzu oder selektiert eine solche.
  
 
'''Parameter'''
 
'''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'''
 
'''Beispiel'''
 +
 +
(siehe #xls_start)
  
 
==#xls_cell==
 
==#xls_cell==
  
 
'''Parameter'''
 
'''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'''
 
'''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==
 
==#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'''
 
'''Parameter'''
 +
 +
# Index der Zelle
  
 
'''Beispiel'''
 
'''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

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

  1. Von was wird die Anzahl ermittelt
    1. sheets - Sheets in einer Datei
    2. rows - Zeilen in einem Sheet
    3. cells - Zellen in einer Zeile

Beispiel

#cout   c="Dieses Sheet hat $XLS_COUNT(rows) Zeilen"


$XLS_CELL()

Gibt den Wert einer Zelle aus

Parameter

  1. 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

~~