Inhaltsverzeichnis

Vordefinierte Funktionen

setcurfieldcont

Definition

 int setcurfieldcont (maskfield para_1)

Beschreibung

Setzt den Feldinhalt des Feldes para_1 der aktuellen Maske, von der aus das Formular gestartet wurde. Der Maskenname der aktuellen Maske und der Maskenname der Maskenvariablen para_1 müssen übereinstimmen, sonst wird kein Feldinhalt gesetzt. Wenn Feldinhalte im Rahmen eines Maskenformulars gesetzt werden sollen, muss diese Funktion verwendet werden. Die Funktion ist nur im Funktionsformularkompiler verfügbar.

Rückgabewert

0

Beispiel

 ...
 arti.BEZ1_ARTI_ARTI.m = "Neue Artikelbezeichnung";
 setcurfieldcont (arti.BEZ1_ARTI_ARTI);
 ...

setcurfielderror

Definition

 int setcurfielderror (maskfield para_1)

Beschreibung

Setzt das Fehlerflag des Feldes para_1 der aktuellen Maske. Das Feld wird auf der Maske rot umrahmt, um den Fehler kenntlich zu machen.

Rückgabewert

0

Beispiel

 if (arti.BEZ1_ARTI_ARTI.m == "") {
         setcurfielderror (arti.BEZ1_ARTI_ARTI);
         errno = 1234;
         ret = -2;
 }

setcurfieldaccess

Definition

 int setcurfieldaccess (text field, int mode)

Beschreibung

Setzt die Feldrechte.

Parameter

  • field - Feldname ohne Maskenerweiterung
  • mode -
    • 1 = ausführbar
    • 2 = schreibar
    • 4 = lesbar

Rückgabewert

0

Beispiel

 ...
 if (arti.BEZ1_ARTI_ARTI.m == "") {
         setcurfieldaccess ("BEZ1_ARTI_ARTI", 6);
 }
 ...

getcurfieldcont

Definition

 int getcurfieldcont (maskfield para_1)

Beschreibung

Kopiert die Feldinhalte (m,s,o siehe Kapitel 4.3.1 Variablentypen) des Feldes para_1 der aktuellen Maske, von der aus das Formular gestartet wurde in die Variable para_1. Der Maskenname der aktuellen Maske und der Maskenname der Maskenvariablen para_1 müssen übereinstimmen sonst wird kein Feldinhalt kopiert. Version RC 1.0 Programmierhandbuch 50 von 80 Betriebswirtschaftliche Standardsoftware - Made for the WEB

Rückgabewert

0

Beispiel

 ...
 arti.BEZ1_ARTI_ARTI.m = "Neue Artikelbezeichnung";
     setcurfieldcont (arti.BEZ1_ARTI_ARTI);
 arti.BEZ1_ARTI_ARTI.m = "";
 getcurfieldcont (arti.BEZ1_ARTI_ARTI);
 /*arti.BEZ1_ARTI_ARTI.m := "Neue Artikelbezeichnung"*/
 ...

setcurmaskcont

Definition

 int setcurmaskcont (mask para_1)

Beschreibung

Setzt alle Feldinhalte der aktuellen Maske, von der aus das Formular gestartet wurde auf die Feldinhalte der Maskenvariablen para_1. Der Maskenname der aktuellen Maske und der Maskenname der Maskenvariablen para_1 müssen übereinstimmen sonst wird kein Feldinhalt übergeben. Die Funktion ist nur im Funktionsformularkompiler verfügbar.

Rückgabewert

0

Beispiel

 ...
 arti.ART_ARTI_ARTI.m = "ART-00001";
 arti.BEZ1_ARTI_ARTI.m = "Neue Artikelbezeichnung";
 setcurmaskcont (arti);

getcurmaskcont

Definition

 int getcurmaskcont (mask para_1)

Beschreibung

Kopiert alle Feldinhalte der aktuellen Maske, von der aus das Formular gestartet wurde in die Felder der Maskenvariablen para_1. Der Maskenname der aktuellen Maske und der Maskenname der Maskenvariablen para_1 müssen übereinstimmen sonst wird kein Feldinhalt kopiert.

Rückgabewert

0

Beispiel

 getcurmaskcont (arti);

getmasktitle

Definition

 int getmasktitle (text maskname)

Beschreibung

Liefert die Titelnummer einer Maske zurück. Die Titelnummer ist eine eindeutige Identifizierung der Maske und wird benötigt, um einer Maske (Tabelle) datenbanktechnisch Notizen bzw. Zusatztexte zuzuordnen. Die Zuordnung zu einem bestimmten Datensatz erfolgt über die Titelnummer und eine laufende Datensatznummer.

Rückgabewert

Maskentitelnummer

Beispiel

 tn = getasktitle ("ARTI");

sepstrcpy

Definition

 text sepstrcpy (text para_1, text sep)

Beschreibung

Zerlegt einen String „para_1“ mit dem Separator „sep“. Der 1. Aufruf erfolgt mit dem zu zerlegenden String. Die nächsten Aufrufe mit einem Leerstring.

Rückgabewert

Zeichenkette des zerlegten Strings para_1 oder 0 am Ende.

Beispiel

 word = sepstrcpy (string, " ");
 while ( (ta_merk = sepstrcpy ("", " ")) != "") {
       if (strlen (word + " " + ta_merk) > 100) { break; }
       word = word + " " + ta_merk;
 }
 cellprops (A_LEFT, F_NORM, SLANT, C_FOR, C_BACK, C_LINE, L_WIDTH, 0, PREC);
 nextcell (cell_ypos, cell_xpos, print_width * 100, S_NORM, VSPACE);
 curcell = word;

cellprops

Definition

 int cellprops (int align, text font, int slant, int fgcolor, int bgcolor, int bcolor, int linewidth, int prop, int floatprec)

Beschreibung

Setzt Zellenattribute für alle nachfolgenden Zellenzuweisungen. Es gibt in der Datei 'layout.ssh' bereits vorgefertigte Definements für alle Parameter.

Parameter

  • align -
    • 1 = Text in einer Zelle linksbündig
    • 2 = Text in einer Zelle rechtsbündig
    • 4 = Text in einer Zelle zentriert
  • font - Fontname z.B. „Times-Roman“ - Weitere Fonts finden Sie im Verzeichnis 'formular' in der Datei 'psfonts.ssh'.
  • slant - Neigungswinkel des Fonts. Wird nicht ausgwertet !!
  • fgcolor - Farbe des Textes in Hexadezimaldarstellung z.B. '0xf0f8ff'. Farbdefinitionen finden Sie im Verzeichnis 'formular' in der Datei 'color.ssh'.
  • bgcolor - Hintergrundfarbe der Zelle in Hexadezimaldarstellung. siehe 'fgcolor'.
  • bcolor - Rahmenfarbe der Zelle in Hexadezimaldarstellung. siehe 'fgcolor'.
  • linewidth -Liniendicke in n-Pixel.
  • prop -
    • 0 = Standardeinstellung, keine Linien um die Zelle.
    • 1 = obere Linie einer Zelle darstellen.
    • 2 = untere Linie einer Zelle darstellen.
    • 4 = rechte Linie einer Zelle darstellen.
    • 8 = linke Linie einer Zelle darstellen.
    • 15 = Umrahmung der Zelle.
    • 48 = Unterstreichnung des Textes.
    • 64 = Darstellung eines Graphik eps-Files.
    • 192 = Darstellung eines Diagramm. Das erzeugte eps-File wird gelöscht.
    • 384 = Darstellung eines Barcodes. Das erzeugte eps-File wird gelöscht.
  • floatprec - Anzahl Nachkommastellen bei Float-Zellen

Rückgabewert

0

makecell

Definition

 int makecell (int y-pos, int x-pos, int cellwidth, int cellheight, int vertspace, int horspace)

Beschreibung

Setzt Zellenattribute für alle nachfolgenden Zellenzuweisungen. Es gibt in der Datei 'layout.ssh' bereits vorgefertigte definements für alle Parameter.

Parameter

  • y-pos - y-Position (Zeile) der linken unteren Ecke der Zelle auf dem Dokument.
  • x-pos - x-Position (Spalte) der linken unteren Ecke der Zelle auf dem Dokument.
  • cellwidth - Zellenbreite in 1/10 mm.
  • cellheight - Zellenhöhe in 1/10 mm. Diese Höhe bestimmt die Schriftgröße in dieser Zelle.
  • vertspace - vertikaler Abstand zwischen Text und Zellenrand
  • horspace - horizontaler Abstand zwischen Text und Zellenrand

Rückgabewert

0

Beispiel

 ...
 cellprops (A_LEFT, F_NORM, SLANT,C_FOR,C_BACK,C_LINE, L_WIDTH, 0, PREC);
 makecell (200, 200, 1000, 50, 10);
 /* oder als neuer funktionsaufruf
 * nextcell (cell_ypos, cell_xpos, print_width * 10, S_NORM, VSPACE);
 */
 curcell = "Zeile_" + itoa (curline) + " Spalte_1";
 ...

newpage

Definition

 int newpage ()

Beschreibung

Generiert einen Seitenvorschub.

Rückgabewert

0

Beispiel

 ...
 while (curpage < 5) {
       cellprops (A_LEFT, F_NORM, SLANT,C_FOR,C_BACK,C_LINE, L_WIDTH, 0, PREC);
       nextcell (cell_ypos, cell_xpos, print_width * 10, S_NORM, VSPACE);
       curcell = "Zeile_" + itoa (curline) + " Spalte_1";
       **//** hier muss noch eine leere Zelle kommen, damit die letzte Zelle vor dem Seitenumbruch
       **//** noch auf der vorherigen Seite gedruckt wird !!
       nextcell (cell_ypos, cell_xpos, print_width * 1, S_NORM, VSPACE);
       curcell = “”;
       newpage ();
 }

date2langdate

Definition

 text date2langdate (int date, text lkz, text format)

Beschreibung

Wandelt einen internen Datumswert (Minuten seit 01.01.1800) 'date' in eine Zeichenkette nach angegebenem Format 'format' bzw. dem in Landeskennzeichen 'lkz' hinterlegtem Druckformat um. Wird 'format' als leere Zeichenkette übergeben, so wird die im Landeskennzeichen 'lkz' hinterlegte Druckformatangabe verwendet. Wird 'lkz' und 'format' als leere Zeichenkette übergeben, so wird das als Drucksprache angegebene Landeskennzeichen für 'lkz' verwendet.

Rückgabewert

Zeichenkette in Datumsformat

Beispiel

 text datum;
 ....
 datum = date2langdate (rek.RDAT_REK_REK.m, "", "%d.%m.%Y");
 /* datum im Format "dd.mm.yyyy" */
 ....

langdatetodate

Definition

 int langdatetodate (text indate, text lkz, text format)

Beschreibung

Ermittelt and Hand des Landeskennzeichens 'lkz' das zugehörige Datumsformat und wandelt 'indate' in ein internes Datumsformat (Minuten seit 01.01.1800) um. Ist 'lkz' nicht angegeben wird 'format' zur Analyse von 'indate' verwendet. Ist auch 'format' nicht angegeben wird die aktuelle Druckeinstellung verwendet.

Rückgabewert

Integerwert des Datums in Minuten seit 01.01.1800.

Beispiel

 int datum;
 ....
 datum = langdate2date ("01.05.2000", "", "%d.%m.%Y");
 /* datum im Format "dd.mm.yyyy" */
 ....

flangstring

Definition

 text flangstring (int num, text lkz)

Beschreibung

Gibt den sprachabhängigen Text mit der Nummer 'num' aus der Datei <IXESS_HOME>/etc/mxform zurück. Wird 'lkz' als leere Zeichenkette übergeben, so wird die aktuelle Maskensprache als Drucksprache verwendet.

Rückgabewert

Zeichenkette.

Beispiel

 ....
 ltext = flangstring (12345, "");
 ....

dateadd

Definition

 int dateadd (int date, int month, int year)

Beschreibung

Addiert auf einen internen Datumswert 'date' Anzahl Monate 'month' plus Anzahl Jahre 'year' .

Rückgabewert

neuer interner Datumswert

Beispiel

 ....
 newdate = dateadd (date, 2, 0);
 /* newdate = aktuelles Datum plus 2 Monate */
 ....

currency2intern

Definition

 float currency2intern (float value, text wkz, float faktor)

Beschreibung

Wandelt einen angegebenen Währungswert 'value' mit einem angegebenen Währungskennzeichen 'wkz' oder einem angegebenen Faktor 'faktor' in die interne Währungsdarstellung um. Wird als Faktor 'faktor' 0.0 angegeben, so wird der im angegebenen Währungskennzeichen 'wkz' hinterlegte Umrechnungsfaktor zum Berechnen des internen Währungswertes verwendet. Ist als Währungskennzeichen 'wkz' eine leere Zeichenkette angegeben, so wird die aktuelle Maskenwährung als 'wkz' verwendet.

Rückgabewert

interner Währungswert oder 0 (Fehler)

Beispiel

 ....
 curr_internal = currency2intern (2.5, "DEM", 0.0);
 /* curr_internal = interne Währungsdarstellung von 2,50 DM */
 curr_internal = currency2intern (2.5, "USD", 0.0);
 /* curr_internal = interne Währungsdarstellung von 2,50 US-Dollar */
 ....

intern2currency

Definition

 float intern2currency (float internal, text wkz, float faktor)

Beschreibung

Wandelt einen angegebenen Währungswert 'internal' in interner Währungsdarstellung mit einem angegebenen Währungskennzeichen 'wkz' oder einem angegebenen Faktor 'faktor' in die angegebene Währung um. Wird als Faktor 'faktor' 0.0 angegeben, so wird der im angegebenen Währungskennzeichen 'wkz' hinterlegte Umrechnungsfaktor zum berechnen des darzustellenden Währungswertes verwendet. Ist als Währungskennzeichen 'wkz' eine leere Zeichenkette angegeben, so wird die Währung aus der aktuellen Maskensprache als 'lkz' verwendet.

Rückgabewert

Landeswährungswert oder 0 (Fehler)

Beispiel

 ....
 curr_country = intern2currency (2.5, "DEM", 0.0);
 /* curr_country = Landeswährungsdarstellung in DM von intern 2,50 */
 curr_country = intern2currency (2.5, "USD", 0.0);
 /* curr_country = Landeswährungsdarstellung in US-Dollar von intern 2,50 */
 ....

printcurrency

Definition

 text printcurrency (float value, text lkz, int print)

Beschreibung

Wandelt einen angegebenen Währungswert 'value' in mit einem angegebenen Währungskennzeichen 'wkz' in eine Zeichenkette um. Ist als Währungskennzeichen 'wkz' eine leere Zeichenkette angegeben, so wird die aktuelle Maskenwährung als 'wkz' verwendet. Mit der Option 'print' kann die erzeugte Ausgabe gesteuert werden.

Parameter

  • valueWährungsbetrag
  • lkz - Landeskennzeichen
  • print -
    • 0 - Ausgabe der Landeswährung mit landesspezifischer Anzahl von Nachkommastellen und Appendix des Druckwährungszeichens
    • 1 - Ausgabe der Landeswährung mit landesspezifischer Anzahl von Nachkommastellen ohne Appendix des Druckwährungszeichens
    • 2 - nur Ausgabe des Druckwährungszeichens
    • 3 - nur Ausgabe der ISO-Währungsbezeichnung

Rückgabewert

Zeichenkette der Landeswährungsdarstellung oder leere Zeichenkette (Fehler)

Beispiel

 ....
 curcell = printcurrency (2.0, "DEM", 0);
 /* curcell = "2,00 DM" */
 curcell = printcurrency (2.0, "USD", 1);
 /* curcell = "2.00" */
 curcell = curcell + printcurrency (0.0, "USD", 3);
 /* curcell = "USD" */
 ....

uxtime

Definition

 int uxtime ()

Beschreibung

Gibt die aktuelle UNIX-Zeit zurück (Sekunden seit 01.01.1970).

Rückgabewert

aktuelle UNIX-Zeit

Beispiel

 ....
 timenow = uxtime ();
 ....

uxtimes

Definition

 int uxtimes ()

Beschreibung

Gibt die Millisekunden seit dem letzen Systemstart zurück.

Rückgabewert

Millisekunden seit dem letzen Systemstart

Beispiel

 ....
 millis_since_boot = uxtimes ();
 ....

itoa

Definition

 text itoa (int para_1)

Beschreibung

Wandelt einen Ganzzahlwert para_1 in eine Zeichenkette um.

Rückgabewert

Zeichenkette mit numerischem Wert para_1;

Beispiel

 ....
 curcell = "Positionsnummer: " + itoa (rep.POS_REP_REP.m);
 ....

atoi

Definition

 int atoi (text para_1)

Beschreibung

Wandelt eine numerische Zeichenkette in einen Ganzzahlwert um.

Rückgabewert

Ganzzahlwert.

Beispiel

 ....
 textval = "12";
 intvalue = atoi (textval);
 ....

ftoa

Definition

 text ftoa (float para_1, int precision, int flag)

Beschreibung

Wandelt einen Floatwert para_1 in eine Zeichenkette um. 'precision' ist Anzahl der Nachkommastellen. 'flag' 0 nur mit Dezimaltrenner, 1 mit Spracheinstellung.

Rückgabewert

Zeichenkette mit numerischem Wert para_1;

Beispiel

 ....
 curcell = "Lagerbestand: " + ftoa (ap.RBST_AP_AP.m, 2, 1);
 ....

atof

Definition

 float atof (text para_1)

Beschreibung

Wandelt eine numerische Zeichenkette in einen Floatwert um.

Rückgabewert

Floatwert.

Beispiel

 ....
 textval = "1.2";
 floatval = atof (textval);
 ....

round

Definition

 float round (float value, int prec, int direc)

Beschreibung

Rundet einen Floatwert 'value' auf 'prec' Nachkommastellen in Richtung 'direc'.

Parameter

  • value = zu rundende Fließkommazahl
  • prec = es wird auf 'prec' Nachkommastellen gerundet
  • direc -
    • 1 = automatisch auf- bzw. abrunden
    • 2 = aufrunden
    • 3 = abrunden

Rückgabewert

gerundete Fließkommazahl.

Beispiel

 ....
 curcell = "Bestand : " + ftoa (round (ap.RBST_AP_AP.m, 2, 1), 2, 0);
 ....

mround

Definition

 float mround (float value, int prec)

Beschreibung

Rundet eine Fließkommazahl 'value' auf 'prec' Nachkommastellen unter Berücksichtung von Rundungsfehlern vorheriger mround-Aufrufe. Zurücksetzen erfolgt durch 'value' = 0 und 'prec' = 0. Initialisierung mit einem Rundungsfehler erfolgt durch 'value' = Rundungsfehler und 'prec' = -1.

Parameter

  • value = zu rundende Fließkommazahl
  • prec = es wird auf 'prec' Nachkommastellen gerundet

Rückgabewert

gerundete Fließkommazahl; aktueller Rundungsfehler beim Zurücksetzen 0 beim Initialisieren

Beispiel

 ....
 mround (0, 0);
 f_value = mround (3.147, 2);
 /* f_value = 3.15 */
 f_value = mround (3.146, 2);
 /* f_value = 3.14 */
 ....

lineprops

Definition

 int lineprops (int pagebreak)

Beschreibung

Schaltet das Zeilenattribut 'pagebreak' für nachfolgende Zellenzuweisungen ein bzw. aus. 'pagebreak' erlaubt bzw. verbietet einen Seitenumbruch nach dem Drucken einer Zeile.

Parameter

  • pagebreak -
    • 0 = pagebreak ausschalten
    • 1 = pagebreak einschalten

Rückgabewert

0

Beispiel

 ....
 nextline (S_NORM);
 lineprops (0);
 cellprops (A_LEFT, F_NORM, SLANT,C_FOR,C_BACK,C_LINE, L_WIDTH, 0, PREC);
 nextcell (cell_ypos, cell_xpos, print_width * 10, S_NORM, VSPACE);
 curcell = "Text"
 nextcell (cell_ypos, cell_xpos, print_width * 10, S_NORM, VSPACE);
 curcell = "darf"
 nextcell (cell_ypos, cell_xpos, print_width * 10, S_NORM, VSPACE);
 curcell = "nicht"
 nextcell (cell_ypos, cell_xpos, print_width * 10, S_NORM, VSPACE);
 curcell = "umgebrochen"
 nextcell (cell_ypos, cell_xpos, print_width * 10, S_NORM, VSPACE);
 curcell = "werden"
 nextline (S_NORM);
 lineprops (1);
 nextcell (cell_ypos, cell_xpos, print_width * 10, S_NORM, VSPACE);
 ....

pagesize

Definition

 int pagesize (text format)

Beschreibung

Setzt die Papiergröße für den aktuellen Ausdruck. Folgende Papierfromate werden erkannt:

  • „a0“
  • „a1“
  • „a2“
  • „a3“
  • „a4“
  • „a5“
  • „a6“
  • „a7“
  • „a8“
  • „a9“
  • „a10“
  • „archA“
  • „archB“
  • „archC“
  • „archD“
  • „archE“
  • „b0“
  • „b1“
  • „b2“
  • „b3“
  • „b4“
  • „b5“
  • „flsa“
  • „flse“
  • „halfletter“
  • „ledger“
  • „legal“
  • „letter“
  • „note“

Parameter

  • format - s.o.

Rückgabewert

0

Beispiel

 ....
 pagesize ("letter");
 ....

orientation

Definition

 int orientation (int orient)

Beschreibung

Dreht die Ausgabe auf dem Papier gegen den Uhrzeigersinn.

  • 0 - 0 Grad
  • 1 - 90 Grad
  • 2 - 180 Grad
  • 3 - 270 Grad

Parameter

  • orient - 0,1,2,3

Rückgabewert

0

Beispiel

 ....
 orientation (2); /* erzeugt 'landscape'-Format */
 ....

openrw

Definition

 int openrw (text filename, int mode)

Beschreibung

Öffnet die Datei 'filename' im Modus 'mode'. Es können maximal 20 Dateien gleichzeitig geöffnet sein.

Parameter

  • filename - Pfadname
  • mode -
    • 1 = Datei für Leseoperationen öffnen
    • 2 = Datei neu anlegen und für Schreiboperationen öffnen
    • 3 = Datei für Schreib- und Leseoperationen öffnen

Rückgabewert

id - Dateibeschreibungsnummer -1 - Fehler

Beispiel

 ....
 if ( (file = openrw ("/tmp/myfile", 2)) < 0) {
       ret = -1;
 } else {
    if (dbopencursor (arti)) {
       ret = -1;
 } else {
    while (! (i = dbfetchcursor (arti))) {
       line = "";
       line = line + arti.ART_ARTI_ARTI.m + "|";
       line = line + arti.BEZ1_ARTI_ARTI.m + "|";
       writeline (file, line);
    }
    dbclosecursor (arti);
    closerw (file);
   }
 }
 ....

closerw

Definition

 int closerw (int file)

Beschreibung

Schließt die Datei mit der Dateibeschreibungsnummer file.

Parameter

  • file - Dateibeschreibungsnummer

Rückgabewert

0 - Datei wurde geschlossen
-1 - Fehler

Beispiel

 ....
 if ( (file = openrw ("/tmp/myfile", 2)) < 0) {
         return -1;
 }
 ....
 closerw (file);
 ....

fdprocopen

Definition

 int fdprocopen (text command, text mode)

Beschreibung

Erzeugt eine UNIX-pipe zu dem Kommando 'command' im Modus 'mode'. Abhängig von 'mode' kann diese anschließend mit 'readline' bzw. 'writeline' bearbeitet werden.

Parameter

  • filename - Pfadname
  • mode -
    • „r“ = 'pipe' für Leseoperationen öffnen
    • „w“ = 'pipe' für Schreiboperationen öffnen

Rückgabewert

id - Dateibeschreibungsnummer
-1 - Fehler

Beispiel

 ....
 if ( (file = fdprocopen ("/bin/ls /etc", "r")) < 0) {
    return -1;
 }
 while (line = readline (file)) {
    ...
 }
 fdprocclose (file);
 ....

fdprocclose

Definition

 int fdprocclose (int fd)

Beschreibung

Schließen einer mit 'fdprocopen erzeugten Unix-pipe.

Parameter

fd - Dateibeschreibungsnummer

Rückgabewert

-1 - Fehler
sonst - 'exit'-status des ausgeführten UNIX-Befehls.

readline

Definition

 text readline (int file)

Beschreibung

Liest die nächste Zeile aus der Datei mit der Dateibeschreibungsnummer file. Die eingelesene Zeile darf die Zeilenlänge 1023 nicht überschreiten.

Parameter

  • file - Dateibeschreibungsnummer

Rückgabewert

Zeichenkette mit Zeileninhalt (leere Zeichenkette bei Fehler oder Dateiende);

Beispiel

 ...
 if ( (file = openrw ("/tmp/myfile", 1)) < 0) {
          ret = -1;
 } else {
     while (1) {
           artikelnr = readline (file);
           if (!strlen (artikelnr)) {
              break;
           }
           artikelbez = readline (file);
           if (!strlen (artikelbez)) {
              break;
           }
           arti.ART_ARTI_ARTI.s = artikelnr;
           if (dbopencursor (arti)) {
              break;
           } else {
              i = dbfetchcursor (arti);
              if (i) {
                  break;
              }
           }
           dbclosecursor (arti);
           arti.BEZ1_ARTI_ARTI.m = artikelbez;
           ret = dbupdate (arti);
           if (ret) { break; }
     }
     closerw (file);
 }
 ...

writeline

Definition

 int writeline (int file, text line)

Beschreibung

Schreibt eine Zeile in die Datei mit der Dateibeschreibungsnummer file.

Parameter

  • file - Dateibeschreibungsnummer
  • line - Zeichenkette

Rückgabewert

0 - Zeile wurde geschrieben
-1 - Fehler

Beispiel

 ...
 if ( (file = openrw ("/tmp/myfile", 2)) < 0) {
          ret = -1;
 } else {
    if (dbopencursor (arti)) {
            ret = -1;
    }
    while (!(i = dbfetchcursor (arti))) {
           if (writeline (file, arti.ART_ARTI_ARTI.m) < 0) {
                ret = -1;
                break;
           }
           if (writeline (file, arti.BEZ1_ARTI_ARTI.m) < 0) {
                rc = -1;
                break;
           }
     }
 dbclosecursor (arti);
 closerw (file);
 }
 ....

printdocument

Definition

 int printdocument ()

Beschreibung

Startet explizit den Ausdruck eines Dokuments, gibt alle zugewiesenen Zellen frei, und setzt die Dokumentenvariablen 'curline' und 'curpage' zurück.

Rückgabewert

0 - kein Fehler
-1 - Fehler

Beispiel

 /* Dokument 1 vorbereiten */
 curcell = "Dokument 1";
 ...
 /* Dokument 1 ist vorbereitet */
 printdocument ();
 /* Dokument 2 vorbereiten */
 curcell = "Dokument 2";
 ...
 /* Dokument 2 ist vorbereitet */
 printdocument ();
 ...

strlen

Definition

 int strlen (text string)

Beschreibung

Gibt die Länge der Zeichenkette zurück.

Parameter

  • string - Zeichenkette

Rückgabewert

Länge der Zeichenkette

Beispiel

 ....
 if (strlen (arti.BEZ1_ARTI_ARTI.m)) {
     ....
 }
 ....

tempnam

Definition

 int tempnam ()

Beschreibung

Erzeugt einen eindeutigen temporären Dateinamen.

Parameter

  • keine

Rückgabewert

Dateiname

Beispiel

 ....
 newfile = tempnam ();
 openrw (newfile, 2);
 ....

strcmp

Definition

 int strcmp (text string_1, text string_2)

Beschreibung

Vergleicht die zwei Zeichenketten string_1 und string_2 lexikographisch.

Parameter

  • string_1 - Zeichenkette
  • string_2 - Zeichenkette

Rückgabewert

Ganzzahl

  • < 0 - string_1 lexikographisch kleiner als string_2
  • = 0 - string_1 ist gleich string_2
  • > 0 - string_1 lexikographisch größer als string_2

Beispiel

 ....
 if (!(strcmp (arti.ART_ARTI_ARTI.m, "ART-00001"))) {
 /* artikelnummer ist "ART-00001" */
    ....
 } else {
 /* artikelnummer ist nicht "ART-00001" */
    ....
 }

strncmp

Definition

 int strncmp (text string_1, text string_2, int n)

Beschreibung

Vergleicht die ersten n Zeichen der zwei Zeichenketten string_1 und string_2 lexikographisch. (siehe strcmp).

getmxuid

Definition

 int getmxuid ()

Beschreibung

Liefert die Benutzerkennung des angemeldeten Benutzers.

Parameter

keine.

Rückgabewert

Benutzerkennung des angemeldeten Benutzers als Integer.

Beispiel

 ....
 uid = getmxuid ();
 ...

getmxlogname

Definition

 int getmxlogname ()

Beschreibung

Liefert den Benutzernamen des angemeldeten Benutzers.

Parameter

keine.

Rückgabewert

Benutzernamen des angemeldeten Benutzers.

Beispiel

 ...
 username = getmxlogname ();
 ...

getmxhome

Definition

 text getmxhome ()

Beschreibung

Liefert das 'Home'-Verzeichnis des laufenden Daemons 'mxd'.

Parameter

keine.

Rückgabewert

Verzeichnisname

Beispiel

 ...
 esshome = getmxhome ();
 ....

Definition

 text getflogo ()

Beschreibung

Über die Druckeinstellungen oder Benutzereinstellungen können zwei Logo-Dateien konfiguriert werden, die dazu dienen, auf der ersten bzw. allen weiteren Seiten eines Ausdrucks zu erscheinen. Die Funktion liefert den Dateinamen.

Parameter

keine.

Rückgabewert

Logodatei

Beispiel

 ...
 firstlogo = getflogo ();
 ....

Definition

 text getnlogo ()

Beschreibung

Über die Druckeinstellungen oder Benutzereinstellungen können zwei Logo-Dateien konfiguriert werden, die dazu dienen, auf der ersten bzw. allen weiteren Seiten eines Ausdrucks zu erscheinen. Die Funktion liefert den Dateinamen.

Parameter

keine.

Rückgabewert

Logodatei

Beispiel

 ...
 nextlogo = getnlogo ();
 ....

ferrsprintf

Definition

 int ferrsprintf (int num, ...)

Beschreibung

Dient zum erzeugen von Fehlermeldungen an der Benutzeroberfläche. Mit 'num' wird aus der Datei 'mxerrs' ein Format-String wie in UNIX-printf gesucht. Die weiteren Parameter müßen gemäß dieses Formats korrekt angegeben werden.

Parameter

  • num - Fehlernummer aus der Datei 'mxerrs'.
  • … - wie UNIX-printf

Rückgabewert

0

Beispiel

 ...
 ferrsprintf (9600, "myfile");
 /* Ergebnis: "9600: Datei myfile konnte nicht geöffnet werden." */
 ....
ACHTUNG: Ein falscher Aufruf kann zum Absturz der Anwendung führen.

fnotesprintf

Definition

 int fnotesprintf (int num, ...)

Beschreibung

Dient zum erzeugen von Notizmeldungen an der Benutzeroberfläche. Siehe 'ferrsprintf'.

callmask

Definition

 int callmask (MASKEN-Variable)

Beschreibung

Springt von einem Formular in die als Prameter übergebene Maske.

ACHTUNG: Beim Sprung in die Maske erfolgt keine Abgrenzung.

Man kann versuchen mit den folgenden Zeilen eine Abgrenzung durch zuführen. Dieses funktionierte aber nicht.

 bausp.ART_BAUSP_BAUSP.s = arti.ART_RTI_ARTI.m;
 setcurfieldselcont (bausp.ART_BAUSP_BAUSP);

Parameter

 Masken-Variable

Rückgabewert

unbekannt

Beispiel

  int main ()
  {
     mask ARTI arti;
     mask BAUSP bausp;
     int ret;
     ret = 0;
     getcurmaskcont (arti);
     ret = callmask (bausp);
     return ret;
  }

callmaskpd

Definition

 int callmaskpb (Maskentitle-Nummer)

Beschreibung

Springt von einem Formular über den Maskenbaum in eine Maske mit der angegebenen Masken-Title-Nummer.

ACHTUNG: Dieser Sprung kann nur erfolgen, wenn die Maske in der NMGIVELIST angegeben wurde. Beim Sprung in die Maske erfolgt keine Abgrenzung.

Parameter

 Masken-Title-Nummer

Rückgabewert

unbekannt

Beispiel

Beim Estellen von Bestandsauskunft-Daten sollen beim Aufruf aus dem Artielstamm die Sätze nach der Abgrenzung auf Lagerort, Variante und Artikelcharge erfolgtn, Betritt man die Maske Bestandsauskunft über die Auftrags-Positionen so sollen alle Werte aufsummiert nach Artikel-Nummer angezeigt werden,

ACHTUNG: Dieses funktioniert nur da beim Aufruf des Formulars atrp_button_artibestand.ssr nur ein Satz angelegt wird.

Datei atrp_mask.deh

OS_UPDATEMASK MASKNAME {

OS_NMGIVELIST OS_BEFORE OS_FIRST {
 ARTIBESTAND OS_NOMPD {
  $ VNR _ TABNAME _ MASKNAME $,           ART_ARTIBESTAND_ARTIBESTAND;
  $ VNR _ TABNAME _ MASKNAME $,           ART_ARTIBESTAND_ARTIBESTAND, OS_TGSEL;
 }
}

}

Datei atrp_button_bestand.ssr. Mit dem Aufruf der Funktion arti_atrp_artibestand() werden die Daten in der Tabelle artibestend geläöscht und neu angelegt.

int main () {

  mask ATRP atrp;              // Variable für Maske arti.def
  text sqlstatement;           // Variable zur Aufnahme eines Sql-Statements
  MC_DEBUG(LOG_NOTICE, "Start Funktion main Parameter keine");
  if (getcurmaskcont(atrp))
  {
      MC_DEBUG(LOG_ERROR, "Maske konnte nicht gesetetzt werden");
      return -2;
  }
  if (arti_atrp_artibestand(atrp))
  {
      MC_RETURN(LOG_ERROR, 1044300, -1);
  }
  if (callmaskpd(getmasktitle("ARTIBESTAND")))
  {
      MC_RETURN(LOG_ERROR, 1044300, -1);
  }
  return 0;

}

programmierung/formulare/funktionen/vordefiniert.txt · Zuletzt geändert: 01.03.2020 08:25 (Externe Bearbeitung)
 

mercaware ist eine ERP-Software der All for Accounting GmbH

ERP für Ihr einzigartiges Unternehmen

Auberlenstr. 13
70736 Fellbach
Tel.: +49 711 90 65 79 71
E-Mail: