business express Codeblock-Onlinehilfe

www.dontenwill.de | www.business-express.de


Funktionen

Siehe auch:

Allgemeine Funktionen

Array-Funktionen

BE-Funktionen

Datei- und Festplattenverwaltung

Datum und Zeit

Kommunikation

Logische Funktionen

Mathematische Funktionen

Objekte, Fenster, Steuerelemente

Programmierung

Reports und Druck

Scanner-Steuerung

Tabellen und Datenbanken

Text-Funktionen

Typenumwandlung


Beep()

Beep() – Signalton

Beschreibung

Die Funktion gibt einen Signalton aus.

Parameter

keine Parameter erwartet

Rückgabewert

keiner

Beispiel

Beep()

www.dontenwill.de | www.business-express.de


BeSetLanguage()

BeSetLanguage() – Sprache einstellen

Beschreibung

Die Funktion stellt die Sprache auf den gegebenen Wert ein.

Hinweis

Die Konstante mBeSprache liefert den Index der aktuellen aktiven Sprache.

Die Konstante mBeAlleSprachen liefert ein Array zurück in welchem alle verfügbaren Sprachen sowie deren Sprachen-Index enthalten sind.

Array-Format: [[SprachenIndex1, SprachenName1], [SprachenIndex2, SprachenName2], ...]

Parameter

nIndex

Index der Sprache

1: Französisch

4: Deutsch

6: Englisch

5: Italienisch

60: Polnisch

61: Tschechisch

66: Rumänisch

Rückgabewert

Numerisch - der neue Sprachindex

Beispiel

| aLangIndex |

aLangIndex := MBEALLESPRACHEN[1,1],

if MBESPRACHE <> aLangIndex then

   if BeSetLanguage(aLangIndex) = aLangIndex then

      Meld("Sprache wurde erfolgreich umgestellt!"),

   endif,

endif,


ClearClipBoard()

ClearClipBoard() – Zwischenablage löschen

Beschreibung

Die Funktion löscht den in der Zwischenablage gespeicherten Text.

Parameter

keine Parameter erwartet

Rückgabewert

keiner

Beispiel

ClearClipBoard()

Siehe auch

CopyToClipBoard()

PasteFromClipboard()


CopyToClipBoard()

CopyToClipBoard() – Text in Zwischenablage kopieren

Beschreibung

Die Funktion kopiert einen Text in die Zwischenablage. Der Text kann anschließend in einen beliebigen Editor eingefügt werden.

Parameter

aText:C

Beliebige Zeichenkette

Rückgabewert

keiner

Beispiel

| aText, oDAB000:DB := '1, 1' |

aText := AllTrim(oDAB000:NAME1) + ", " + AllTrim(oDAB000:NAME2) + crlf +

         AllTrim(oDAB000:PLZORT) + crlf + AllTrim(oDAB000:STRASSE),

CopyToClipboard(aText)

Siehe auch

ClearClipBoard()

PasteFromClipboard()


CypherGetHash()

CypherGetHash() – Hash-Wert aus String ermitteln

Beschreibung

Die Funktion bildet aus dem übergebenen String einen Hash-Wert. Dieser Hash-Wert kann zur Überprüfung der Echtheit des Strings verwendet werden, z.B. zum Abgleich vor und nach einer Übertragung.

Parameter

cText:C

Beliebige Zeichenkette

Rückgabewert

Alphanumerisch - Gebildeter Hash-Wert

Beispiel

CypherGetHash('Dontenwill AG')

// Ergebnis: '7C2257007ED903D6EA619E6F09456CA8D2D336A842C59063250B33C0701D5F81'


Empty()

Empty() – Ausdruck auf "Leer" prüfen

Beschreibung

Die Funktion prüft, ob ein Ausdruck von beliebigem Datentyp (z.B. Zeichenkette, Datum, numerischer Wert) leer ist.

Parameter

aVar:U

Beliebiger Datentyp

Rückgabewert

Logisch / Boolean - Ausdruck leer

Beispiel

Empty("Dontenwill    ")   // Ergebnis: .F.

Empty("              ")   // Ergebnis: .T.

Empty(0)                  // Ergebnis: .T.


EmptyValue()

EmptyValue() – Leeren Wert erzeugen

Beschreibung

Die Funktion hebt für ein Feld oder eine Variable von beliebigem Datentyp (z.B. Zeichenkette, Datum, numerischer Wert) die Wertzuweisung auf.

Parameter

keine Parameter erwartet

Rückgabewert

Undefined - Nullwert

Beispiel

| nValue |

nValue := 5,

WriteLn(nValue),          // Ergebnis: nValue = '5'

nValue := EmptyValue(),

WriteLn(nValue)           // Ergebnis: nValue = ''


ExportExcelFile()

ExportExcelFile() – Datenexport in ein Excel-File

Beschreibung
Die Funktion exportiert Daten aus einer Tabelle in eine .xls Excel-Datei.

Parameter

cFile:C | Datei, in welche die Datensätze exportiert werden
oSource:O | Tabelle oder Grid Objekt, aus welcher die Datensätze exportiert werden
lAddTitle:L | Fügt über die Datensätze eine Zeile mit den Spaltennamen ein; default = false
lShowMsg:L | Info-Fenster werden angezeigt z.B. bei Beenden, Fehlern ...; default = false
lShowStatus:L | Status-Fenster wird angezeigt; default = false

Rückgabewert

Logisch / Boolean - Exportieren erfolgreich

Beispiel

| oDab100:DB := "5" |

if ExportExcelFile('C:\Dab100.xls', oDab100) = false then

   Meld('Fehler beim Exportieren!'),

endif,


FakeCall()

FakeCall() – Anrufsimulierung

Bescheibung

Die Funktion dient der Simulierung eines externen Anrufs.

Parameter

cNummer:C

Zu simulierende Nummer; default = Leerstring, Abfragedialog wird angezeigt.

Rückgabewert

Keiner

Beispiel

FakeCall('00892311480')


GetTableInfo()

GetTableInfo() – Information über Tabelle ermitteln

Beschreibung

Die Funktion gibt ein TBeTableInfo Objekt zur angegebenen Tabelle zurück. Das Objekt enthält verschiedene Informationen über die ausgewählte Tabelle.

Parameter

nWorkArea:N

WorkArea der Tabelle

Rückgabewert

Objekt - Vom Typ TBeTableInfo, enthält Informationen zur Tabelle

Beispiel

GetTableInfo(1)   // Ergebnis: [TBeTableInfo {$14BE91C}]

                  // Hinweis:  Tabelleninformationen zur DAB000 (Kundenstamm)


HasAttachment()

ToDo: Mit MemoBo Umstellung über MemoBo-Objekt abgedeckt -> Doku löschen

HasAttachment() – Prüft ein Blob-Feld auf eine Datei-Liste

Beschreibung

Mit dieser Funktion kann ein binäres BLOB-Feld auf gültige Attachments/Datei-Liste geprüft werden.

Hinweis

Der Feldname (cField) muss auf ein binäres Blob-Feld verweisen.

Der Blob-Inhalt muss Zip-komprimiert vorliegen.

Parameter

oTable:O | Tabellen-Objekt
cField:C | Blob-Feldname
bSkipLinks:L | Links ignorieren
bSkipEmbedded:L | Eingebettete Dateien (von Mails) ignorieren

Rückgabewert

Logisch

Beispiel

| oDAB065:DB:='9,6'|

DbLocate('Memo_ID', 17466, , oDAB065),                     // Datensatz aktivieren

WriteLn(HasAttachment(oDab065, 'DATA', True, True)),       // Auf Attachments im Feld DATA prüfen

                                                           // (Links und eingebettete Dateien ignorieren)


ImportExcelFile()

ImportExcelFile() – Datenimport aus einem Excel-File

Beschreibung

Die Funktion ImportExcelFile() importiert Daten aus einer .xls Excel-Datei in eine Tabelle.

Hinweis

Falls nEndRow kleiner nStartRow ist werden ALLE Zeilen importiert!

lCopyFieldNames:

- kann nur verwendet werden wenn es sich bei dem Tabellen-Objekt oTable um eine TMemCalcTable handelt

- es werden alle Felder aus der oTable entfernt, bevor diese automatisch erzeugt werden

- alle Felder werden als Memo Felder erzeugt

Parameter

oTable:O

Tabellen-Objekt, in welches die Daten importiert werden

cSource:C

.xls Excel-Datei, aus der die Daten importiert werden

nFieldNameRow:N

Zeile in welcher sich die Feldnamen befinden; default = 0

nStartRow:N

Gibt an, ab welcher Zeile die Daten importiert werden; default = 1

nEndRow:N

Gibt an, bis zu welcher Zeile die Daten importiert werden; default = 0

lShowMsg:L

Info-Fenster werden angezeigt z.B. bei Beenden oder Fehlern; default = false

lShowStatus:L

Status-Fenster wird angezeigt; default = false

nMode:N

Import Modus; default = 0

0 Datensätze werden ans Ende hinzugefügt

1 übereinstimmende Datensätze updaten (cKeys erforderlich)

2 übereinstimmende Datensätze updaten und nicht vorhandene ans Ende hinzufügen (cKeys erforderlich)

3 übereinstimmende Datensätze löschen (cKeys erforderlich)

4 alle Datensätze aus der "oTable" werden gelöscht. Anschließend wird die "oTable" mit den Import-Daten gefüllt

cKeys:C

Feldnamen durch ; getrennt. Diese Felder werden für die Prüfung auf Übereinstimmung verwendet; default = Leerstring

lCopyFieldNames

Erzeugt alle Felder automatisch anhand der "nFieldNameRow" Zeile der .xls Excel-Datei; default = true

Rückgabewert

Array - { Anzahl an neu hinzugefügten Datensätzen,

Anzahl der Datensätze in der "cSource" Datei,

Anzahl der gelöschten Datensätze,

Anzahl der aufgetretenen Fehler,

Anzahl an erfolgreich importierten Datensätze,

Anzahl der upgedateten Datensätze }

Beispiel

| oTable |

oTable := CreateObject('TMemCalcTable'),

ImportExcelFile(oTable, 'c:\test.xls', 1, 2, , , , , , true),

Browse(, oTable)


InputBox()

InputBox() – Eingabefenster

Beschreibung
Die Funktion öffnet ein Eingabefenster zur Eingabe eines Textes, mit Bestätigungs- und Abbruchsbutton.

Parameter

aCaption:C | Fenster-Beschriftung
aPrompt:C | Überschrift der Eingabeaufforderung
aDefault:C | Vorgabewert für die Eingabe

Rückgabewert

Alphanumerisch - Bei Bestätigung eingegebener Text, bei Abbruch der Standard-String

Beispiel

| cName |

cName := InputBox('Bitte Firmenname eingeben:', 'Firma:', 'Dontenwill AG')


JN()

JN() – Abfragefenster Ja/Nein

Beschreibung

Die Funktion öffnet ein Bestätigungsfenster und gibt den Wert “Ja“ oder “Nein“ zurück.

Parameter

cQuestion:C | Frage
lDefault:U | Voreinstellung; default = true

Rückgabewert

Logisch / Boolean - Bestätigung erhalten

Beispiel

JN("Eingabe abbrechen?", false)


LocalPhoneInfo()

LocalPhoneInfo() – Meldung

Beschreibung

Die Funktion liefert Informationen zur Telefonie zurück.

Parameter

keine Parameter erwartet

Rückgabewert

Array - { CountryCode,

CityCode,

LongDistanceAccesscode,

LocalAccessCode }

Beispiel

LocalPhoneInfo()

www.dontenwill.de | www.business-express.de


Meld()

Meld() – Meldung

Beschreibung

Ausgabe eines Meldefensters, das mit “OK“ bestätigt werden muss.

Parameter

cMessage:C | Nachrichtentext
lNoDefault:L | Voreinstellung für die Markierung des Buttons; default = false

Rückgabewert

Logisch / Boolean

Beispiel

Meld('Sie arbeiten mit Business Express.')

Siehe auch

ShowMessage()


MessageDlg()

MessageDlg() – Meldungsdialog

Beschreibung

Die Funktion ermöglicht die Dialogabfrage einer Meldung und gibt je nach gewähltem Button den entsprechenden Wert zurück.

Parameter

cMessage:C | Meldungstext
nDlgType:N | Dialogtyp ( default = mtInformation ) mtWarning 'Warnung' mtError 'Fehler' mtInformation 'Information' mtConfirmation 'Bestätigung'
nButtons:N | Buttons: ( default = mbOK ); Mögliche Werte: (es sind verschiedene Kombinationen möglich, einfach mit '+' addieren) mbOK 'OK' mbCancel 'Abbrechen' mbAbort 'Abbrechen' mbRetry 'Wiederholen' mbIgnore 'Ignorieren' mbYes 'Ja' mbNo 'Nein' mbAll 'Alle' mbNoToAll 'Alle Ja' mbYesToAll 'Alle Nein'
nHelpCtx:N | Help-Kontext

Rückgabewert

Numerisch - je nach gewähltem Button:

1 - mrOK

2 - mrCancel

3 - mrAbort

4 - mrRetry

5 - mrIgnore

6 - mrYes

7 - mrNo

8 - mrAll

9 - mrNoToAll

10 - mrYesToAll

Beispiel

if MessageDlg('Verarbeitung wirklich abbrechen ?', mtWarning, mbYes + mbNo) = mrYes then

   writeln('Ja')

else

   writeln('Nein')

endif


MPicture()

MPicture() – Numerische Eingabemaske

Beschreibung

Die Funktion erzeugt eine numerische Eingabemaske.

Parameter

nLen:N | Länge der Zeichenkette
nDec:N | Anzahl der Nachkommastellen

Rückgabewert

Alphanumerisch - numerische Eingabemaske

Beispiel

MPicture(10,2)   // Ergebnis: #######.##

MPicture(3,0)    // Ergebnis: ###


Nil()

Nil() – Leeres Objekt

Beschreibung

Die Funktion erzeugt ein leeres Objekt.

Parameter

keine Parameter erwartet

Rückgabewert

Objekt - Leeres Objekt

Beispiel

| oObject |

oObject := Nil()


Null()

Null() – Leerer Wert

Beschreibung

Die Funktion gibt einen Null-Wert zurück. Da der Null-Wert vom Typ Variant ist, kann er jedem Datentyp zugewiesen werden.

Parameter

keine Parameter erwartet

Rückgabewert

Variant - Null-Wert

Beispiel

| uVar |

uVar := Null()


PasswordDlg()

PasswordDlg() – Passwort-Dialog

Beschreibung

Dialogfenster zur Eingabe und Prüfung eines Passwortes.

Parameter

cPassword:C | Passwort, welches abgefragt wird
cCaption:C | Titel des Dialogfensters; default = Leerstring
cCheckOnceID:C | ID, anhand derer geprüft wird, ob das Passwort bereits abgefragt wurde; default = Leerstring

Rückgabewert

Numerisch

0 – eingegebener String stimmt mit dem Passwort überein

1 – keine Übereinstimmung nach 3 Versuchen - Zugriff auf Funktion verweigert

2 – keine Übereinstimmung - Abbruch nach 1. oder 2. Versuch

Beispiel

PasswordDlg('Dontenwill', 'Bitte Passwort eingeben')

// Hinweis: Zwischen Groß- und Kleinschreibung wird nicht unterschieden


PasteFromClipboard()

PasteFromClipBoard() – Text aus Zwischenablage holen

Beschreibung

Holt den Text aus der Zwischenablage.

Parameter

keine Parameter erwartet

Rückgabewert

String

Beispiel

| aText |

aText := PasteFromClipboard()

Siehe auch

ClearClipBoard()

CopyToClipBoard()


ProgArea()

ProgArea() – CB-Umgebung

Beschreibung

Die Funktion gibt die Umgebung zurück, in der der CodeBlock ausgeführt wird.

Parameter

oTable:O

Bezugstabelle; default = nil

Rückgabewert

Numerisch

0 - Undefined

1 - Auftragsbearbeitung

2 - Printmanager

3 - Statistik

Beispiel

ProgArea()

www.dontenwill.de | www.business-express.de


RGB()

RGB() – Farbwert

Beschreibung

Die Funktion gibt den numerischen Farbwert, der sich aus den Grundfarben (Rot, Grün, Blau) ermittelt, zurück, und kann anschließend z.B. einer Hintergrundfarbe für ein Feld zugewiesen werden.

Parameter

aRedValue:N | Farbanteil Rot
aGreenValue:N | Farbanteil Blau
aBlueValue:N | Farbanteil Grün

Rückgabewert

Numerisch - Farbe

Beispiel

RGB(170, 170, 255)   // Ergebnis: 16755370 (entspricht einem Blauton)


SelectEmailDest()

SelectEmailDest() – EMail-Kopf

Beschreibung

Die Funktion öffnet ein Fenster zur Auswahl der Empfänger. Dort werden alle verfügbaren Email Adressen der eingegebenen KdNrBesuNr und aller User angezeigt. Die gültigen Email Adressen können einfach per Klick hinzugefügt werden und Individualadressen können auch eingegeben werden. Nach Abschluß der Auswahl erzeugt die Funktion die entsprechende Zeichenkette des Emailempfängerkopfes für die zuvor getroffene Auswahl.

Parameter

KdNrBesuNr:C | Kunden- / Lieferantennummer oder sonstige Nummer im Format einer Dab065:KDNRBESUNR (8-St. Kdnr. + 1-St. Typ [1 = Kd., 2 = Lief., 3 = Vertr.])
Vorgabe:C | Vorgabe-Emailadresse(n) (";"-getrennt, jeweils "to:", "cc:" oder "bcc:" vorangestellt)

Rückgabewert

Alphanumerisch - EMail-Kopf

Beispiel

SelectEmailDest('10001', 'info@dontenwill.de')

Siehe auch

SelectFaxDest()


SelectFaxDest()

SelectFaxDest() – Fax-Kopf

Beschreibung

Die Funktion öffnet ein Fenster zur Angabe von Empfängerdaten. Die Felder werden mit der eingegebenen KdNrBesuNr vorgefüllt. Die Daten können per Hand noch geändert werden. Nach Abschluss der Auswahl erzeugt die Funktion die entsprechende Zeichenkette des Faxempfängerkopfes für die zuvor getroffene Auswahl.

Parameter

KdNrBesuNr:C | Kunden- / Lieferantennummer oder sonstige Nummer
Vorgabe:C | Beliebige Fax-Nummer (dient als Vorgabe)

Rückgabewert

Alphanumerisch - Fax-Kopf

Beispiel

SelectFaxDest('10001',)

Siehe auch

SelectEmailDest()


SetCursor()

SetCursor() – Cursor Form

Beschreibung

Die Funktion erlaubt die Änderung des Maus-Cursors und gibt gleichzeitig den Wert des alten Cursors zurück.

Parameter

aCursor:N

Numerischer Wert, der das Aussehen des Cursors bestimmt.

Mögliche Werte sind:

crDefault - normaler Cursor

crNone - kein Cursor

crArrow - Pfeil

crCross - Präzisionsauswahl

crIBeam - Textauswahl

crSizeNESW - Diagonale Größenänderung von Links-Unten nach Rechts-Oben

crSizeNS - Vertikale Größenänderung

crSizeNWSE - Diagonale Größenänderung von Rechts-Oben nach Links-Unten

crSizeWE - Horizontale Größenänderung

crUpArrow - Alternative Auswahl

crHourGlass - Sanduhr / Ausgelastet

crDrag - Verschiebenpfeil

crNoDrop - "Nicht Möglich" Pfeil

crHSplit - Horizontaler Aufteilenspfeil

crVSplit - Vertikaler Aufteilenpfeil

crMultiDrag - Mehrfach-Verschiebenpfeil

crSQLWait - SQL Sanduhr

crNo - Nicht verfügbar

crAppStart - Hintergrundaktivität

crHelp - Hilfeauswahl

crHandPoint - Hand / Verknüpfungsauswahl

crSizeAll - Verschieben

Rückgabewert

Numerisch - Wert des alten Cursors

Beispiel

SetCursor(crHourGlass)


ShowDocument()

ShowDocument() – Anzeige eines Beleges

Beschreibung

Funktion zum modalen Anzeigen eines Beleges aus dem Archiv.

Parameter

aDocType:N

valD700_DocTypeANGE = 10 = Angebot

valD700_DocTypeAUFB = 20 = Auftragsbestätigung

valD700_DocTypePRRE = 30 = Proforma-Rechnung

valD700_DocTypeKOMM = 40 = Kommissionierschein

valD700_DocTypePACK = 50 = Packliste

valD700_DocTypeLIEF = 60 = Lieferschein

valD700_DocTypeVALI = 70 = Vorab-Lieferschein

valD700_DocTypeSALI = 80 = Sammel-Lieferschein

valD700_DocTypeVMLI = 90 = Vermiet-Lieferschein

valD700_DocTypeVMRU = 100 = Vermietungs-Rückgabeschein

valD700_DocTypeVSPA = 120 = Versandpapiere

valD700_DocTypeFRBR = 130 = Frachtbriefe

valD700_DocTypePAAK = 140 = Paketaufkleber

valD700_DocTypeVSAZ = 150 = Versandanzeige

valD700_DocTypeRECH = 160 = Rechnung

valD700_DocTypeTLRE = 170 = Teilrechnung

valD700_DocTypeABRE = 180 = Abschlags-Rechnung

valD700_DocTypeSARE = 190 = Sammel-Rechnung

valD700_DocTypeVMZW = 200 = Miet-Zwischenrechnung

valD700_DocTypeMAHN = 210 = Mahnung

valD700_DocTypeMARE = 211 = Mahnung auf Rechnungskopie

valD700_DocTypePRAN = 220 = Preisanfrage

valD700_DocTypeBEST = 230 = Bestellung

valD700_DocTypeABEI = 240 = Abruf-Einteilung

valD700_DocTypeBEMA = 250 = Bestell-Mahnung

valD700_DocTypeFEAU = 260 = Fertigungs-Auftrag

valD700_DocTypeSRFO = 400 = WE Formular

valD700_DocTypeSRET = 410 = WE Etikett

valD700_DocTypeQSFO = 420 = QS Formular

valD700_DocTypeKBET = 430 = Kommissionierbox-Etikett

valD700_DocTypeSRAR = 440 = Archivmuster-Etikett

valD700_DocTypeARET = 450 = Artikel-Etikett

valD700_DocTypePRPL = 460 = Produktions-Pickliste

valD700_DocTypeSHNO = 480 = Shippment Notes

valD700_DocTypeAEIS = 490 = Ausfuhrerklärung

valD700_DocTypeISIV = 500 = Intrastat-Versendung

valD700_DocTypeISIE = 510 = Intrastat-Einfuhr

valD700_DocTypeBVUS = 520 = Barverkauf Umsatzstatistik

valD700_DocTypeBVJS = 530 = Barverkauf Journal-Tages-summen

valD700_DocTypeBVBD = 540 = Barverkauf Belegdruck

valD700_DocTypeAUFS = 550 = Service-Auftragsbestätigung

valD700_DocTypeBSTO = 560 = Bestell-Storno

valD700_DocTypeMEFX = 570 = Memo-Fax

valD700_DocTypeMEML = 575 = Memo-Brief

valD700_DocTypeMEEM = 576 = Memo-EMail

valD700_DocTypeMEAM = 577 = Manuell archiviertes Memo

valD700_DocTypeEGRN = 580 = Eingangs-Rechnung

valD700_DocTypeEGLA = 585 = Eingangs-Lieferanten-AB

valD700_DocTypeEGLS = 590 = Eingangs-Lieferschein

valD700_DocTypeEGAU = 600 = Eingangs-Kundenauftrag

valD700_DocTypeEGAK = 610 = Eingangs-AKA-Quittung

aPersNo:N

Pers.Nr.

aDocList:C

Beleg-Nr[ <;> Pers-Nr.] [ <CRLF> Beleg-Nr[ <;> Pers-Nr.][ [ <CRLF> Belegnr. .. usw.] ] ]

aCaption:C

Bezeichnung des Beleges;

default = Leerstring

aIsRecNo:L

Record-Nr. anstatt Personalnummer verwenden um Beleg zu ermitteln;

default = false

aOpenEmpty:L

Viewer-Dialog auch anzeigen, wenn der Beleg nicht existert (sinnvoll bei Belegen, die durch Einscannen entstehen wie z.B. AKA-Quittung, Eingangslieferschein, Eingangsrechnung)

default = false

aActiveDoc:N

Laufende Nummer des Beleges, sofern mehrere Versionen existieren (wie z.B. bei Angeboten, Memo-E-Mails etc.).

default = 0

Rückgabewert

keiner

valD700_DocTypeBVBD = 540 = Barverkauf Belegdruck

Beispiel

ShowDocument(20, 0, '100001', ' Beispiel')


ShowMessage()

ShowMessage() – Meldungsausgabe

Beschreibung

Die Funktion dient der Ausgabe eines Meldungstextes.

Parameter

aMessage:C

Meldungtext

Rückgabewert

keiner

Beispiel

ShowMessage('Sie arbeiten mit Business Express.')

Siehe auch

Meld()


ShowWordCommander2()

ShowWordCommander2() - WordCommander

Beschreibung
Die Funktion öffnet den WordCommander mit individuell befüllten Datensätzen. Wenn mehrere Gruppen (Datensätze als Array) übergeben werden, muss die Anzahl je Gruppe identisch sein.

Parameter

aTables:A

Gruppen inkl. Datensätze (Array of Datasets)

Rückgabewert

keiner

Beispiel

| aTables, aName, aVorname, aField |

// Erste Gruppe anlegen

aVorname := CreateObject('TMemCalcTable', 'Vorname'),

AddMemField(aVorname, 'Firstname', 'C', 10, 0),

// Gruppennamen definieren

aVorname.AliasName := 'Vorname',

aVorname.Active    := true,

// Wird kein DisplayLabel gesetzt, wird der Feldname verwendet!

aField              := DBField('Firstname', aVorname),

aField.DisplayLabel := 'Vorname',

DBAppend(aVorname),

aVorname:Firstname  := 'Dieter',

DBAppend(aVorname),

aVorname:Firstname  := 'Heinrich',

DBAppend(aVorname),

aVorname:Firstname  := 'Olav',

DBPost(aVorname),

// Zweite Gruppe anlegen

aName := CreateObject('TMemCalcTable', 'Name'),

AddMemField(aName, 'Lastname', 'C', 10, 0),

// Gruppennamen definieren

aName.AliasName := 'Name',

aName.Active    := true,

// Wird kein DisplayLabel gesetzt, wird der Feldname verwendet!

aField              := DBField('Lastname', aName),

aField.DisplayLabel := 'Nachname',

DBAppend(aName),

aName:Lastname := 'Pumps',

DBAppend(aName),

aName:Lastname := 'Diener',

DBAppend(aName),

aName:Lastname := 'Schmitt',

DBPost(aName),

// Reihenfolge der Gruppen

aTables := {aVorname, aName},

ShowWordCommander2(aTables)


SoundEx()

SoundEx() – SoundEx-Code

Beschreibung

Die Funktion dient dem Erzeugen von deutschem Soundex-Code. (Soundex ist ein phonetischer Algorithmus zur Indizierung von Wörtern und Phrasen nach ihrem Klang. Gleichklingende Wörter sollen dabei zu einer identischen Zeichenfolge kodiert werden.)

Parameter

cText:C | Text
nMaxLen:N | Maximal Länge; default = 10

Rückgabewert

Alphanumerisch - SoundEx-Code

Beispiel

SoundEx('Dontenwill AG')   // Ergebnis: 'DMDML'


StatusError()

StatusError() – Fehlermeldung ausgeben

Beschreibung

Die Funktion ermittelt ein Text-Element analog zu GetLangText(). Die Meldung wird als Fehlermeldungsfenster angezeigt.

Parameter

aError:U

Fehler-Text oder globale Text-ID

Rückgabewert

keiner

Beispiel

StatusError('Fehler beim Öffnen der Datei'),

StatusError(6),

Siehe auch

GetLangText()

GetLangTextEx()


Swap()

Swap() – Variablen Austausch

Beschreibung

Die Funktion vertauscht die Werte zweier übergebenen Variablen.

Parameter

aVar1:R | referenzierte erste Variable
aVar2:R | referenzierte zweite Variable

Rückgabewert

keiner

Beispiel

| aChr, bChr |

aChr := 'ABCDE',

bChr := '1234',

Swap(aChr, bChr)   // Ergebnis: aChr = "1234", bChr = "ABCDE"


VB()

VB() – Masken Filter

Beschreibung

Die Funktion prüft, ob ein erster Wert zwischen den zwei folgenden Werten liegt. (Sie können z.B. mit diesen Prüfungen verhindern, dass bei von-bis Selektionen der zweite Parameter kleiner ist als der erste Parameter).

Die Funktion hat eine ähnliche Bedeutung wie VBFILT(), kann aber nur in dialogorientierten Masken verwendet werden (z.B. in Variantenfenstern oder bei der Definition von Aufbereitungsparametern im Statistikmodul).

Parameter

uValue:U | Abzufragende Variable
uMinValue:U | Untergrenze
uMaxValue:U | Obergrenze

Rückgabewert

Logisch / Boolean - Wert zwischen Min. und Max.

Beispiel

| nA, nB, nC |

nA := 10,

nB := 1,

nC := 100,

VB(nA, nB, nC)   // Ergebnis: .T.

Siehe auch

VBFilt()


VBFilt()

VBFilt() – VB Filter

Beschreibung

Die Funktion prüft, ob ein erster Wert zwischen den zwei folgenden Werten liegt.

Parameter

uValue:U | Variable 1 – Abzufragende Variable
uMinValue:U | Variable 2 – Untergrenze
uMaxValue:U | Variable 3 – Obergrenze

Rückgabewert

Logisch / Boolean - Wert zwischen Min. und Max.

Beispiel

| aDatum |

aDatum := Date() + 1,

VBFilt(aDatum, Date(), EoQ(Date()))   // Ergebnis: .T.

Siehe auch

VB()


WinUserName()

WinUserName() – Windowsbenutzername

Beschreibung

Die Funktion liefert den Namen des aktuellen Windowsbenutzeraccounts.

Parameter

keine Parameter erwartet

Rückgabewert

Alphanumerisch - Windowsbenutzeraccount

Beispiel

WinUserName()   // Ergebnis: z.B. 'Administrator'


XPicture()

XPicture() – Eingabemaske mit Nachkommstellen

Beschreibung

Die Funktion erzeugt eine numerische Eingabemaske, wobei alle Nachkommastellen und die erste Vorkommastelle Pflichteingaben sind.

Parameter

nLen:N | Länge der Zeichenkette
nDec:N | Anzahl der Nachkommastellen; default: 2

Rückgabewert

Alphanumerisch - numerische Eingabemaske

Beispiel

XPicture(10, 3)   // Ergebnis: '#####9.999'


Array-Funktionen

Siehe auch:

AAdd()

ADelete()

AFill()

AInsert()

ALen()

ArrToStr()

Dim()

ReDim()

StrToArr()


AAdd()

AAdd() – Element zu Array hinzufügen

Beschreibung

Die Funktion fügt ein Element am Ende des Arrays hinzu und übergibt ihm einen Wert.

Parameter

aArray:R | Referenziertes Array, in dem ein Element hinzugefügt werden soll
aValue:U | Wert, den das Element erhalten soll; default = null()

Rückgabewert

Numerisch - neue Länge des Arrays

Beispiel

| aArr |

aArr := {0, 1, 2, 3, 4},

AAdd(aArr, 17)             // Ergebnis: '6'

Siehe auch

ADelete()

AFill()

AInsert()

ArrToStr()

Dim()

ReDim()

StrToArr()


ADelete()

ADelete() – Element aus Array löschen

Beschreibung

Die Funktion löscht ein Element aus einem Array.

Parameter

aArray:R | Referenziertes Array, in dem ein Element gelöscht werden soll
aIndex:N | Index des Array-Elements

Rückgabewert

keiner

Beispiel

| aArr |

aArr := {0, 1, 2, 3, 4},

ADelete(aArr, 5),

WriteLn(aArr)              // Ergebnis: '{0; 1; 2; 3}'

Siehe auch

AAdd()

AFill()

AInsert()

ArrToStr()

Dim()

ReDim()

StrToArr()


AFill()

AFill() – Array mit Werten füllen

Beschreibung

Die Funktion füllt ein Array mit einem Wert.

Parameter

aArray:R | Referenziertes, zu füllendes Array
aValue:U | Wert

Rückgabewert

keiner

Beispiel

| aArr |

aArr := Dim(2),

AFill(aArr, 'Test'),

WriteLn(ArrToStr(aArr))   // Ergebnis: '{"Test","Test"}'

Siehe auch

AAdd()

ADelete()

AInsert()

ALen()

ArrToStr()

Dim()

ReDim()

StrToArr()


AInsert()

AInsert() – Element in Array einfügen

Beschreibung

Die Funktion fügt ein Element im Array ein und übergibt ihm optional einen Wert.

Parameter

aArray:R | Referenziertes Array, in dem ein Element eingefügt werden soll
aIndex:N | Index des einzufügenden Elements
aValue:U | Wert, den das Element erhalten soll; default = null()

Rückgabewert

keiner

Beispiel

| aArr |

aArr := Dim(3),

AFill(aArr, 'A'),

AInsert(aArr, 2, 'B'),

ArrToStr(aArr)           // Ergebnis: {"A","B","A","A"}

Siehe auch

AAdd()

ADelete()

AFill()

ALen()

ArrToStr()

Dim()

ReDim()


ALen()

ALen() – Anzahl der Array Elemente

Beschreibung

Die Funktion liefert die Anzahl der Arrayelemente zurück.

Parameter

aArray:A

Array

Rückgabewert

Numerisch

Beispiel

| aArray |

aArray := Dim(39),

ALen(aArray)         // Ergebnis: '39'


ArrToStr()

ArrToStr() – Array in String umwandeln

Beschreibung

Die Funktion gibt ein Array als kompletten String zurück, das Array selbst bleibt dabei unverändert.

Parameter

aArray:A

Umzuwandelndes Array

Rückgabewert

Alphanumerisch - Array als String

Beispiel

| aArr, a, b |

a    := 'Text 1',

b    := 'Text 2',

aArr := {a, b},

ArrToStr(aArr)    // Ergebnis: {“Text 1“,“Text 2“}

Siehe auch

AAdd()

ADelete()

AFill()

AInsert()

ALen()

Dim()

ReDim()

StrToArr()


Dim()

Dim() – Array erzeugen

Beschreibung

Die Funktion erzeugt ein leeres Array mit der angegebenen Anzahl von Elementen.

Parameter

aElementCount:N

Numerischer Wert für die Größe des Arrays

Rückgabewert

Array - Neues Array

Beispiel

| aArr |

aArr := Dim(2)   // Ergebnis: '<Array> = [<Null>, <Null>]'

Siehe auch

AAdd()

ADelete()

AFill()

AInsert()

ALen()

ArrToStr()

ReDim()

StrToArr()


ReDim()

ReDim() – Länge eines Arrays ändern

Beschreibung

Die Funktion ändert die Anzahl der Elemente eines bestehenden Arrays. Dabei werden bei einer Vergrößerung neue Elemente leer erzeugt und bei einer Verkleinerung bestehende Elemente ohne Berücksichtigung des Inhalts gelöscht.

Parameter

aArray:R | Refenziertes Array, das geändert werden soll
aNewCount:N | Neue Anzahl der Elemente

Rückgabewert

Array - neu strukturiertes Array

Beispiel

| aArr |

aArr := Dim(2),

ReDim(aArr, 4),    // aArr wird um zwei leere Elemente vergrößert

WriteLn(aArr),     // Ergebnis: '{<NIL>; <NIL>; <NIL>; <NIL>}'

ReDim(aArr, 3),    // aArr wird auf 3 Elemente verkleinert, alte Inhalte gehen verloren

WriteLn(aArr)      // Ergebnis: '{<NIL>; <NIL>; <NIL>}'

Siehe auch

AAdd()

ADelete()

AFill()

AInsert()

ALen()

ArrToStr()

Dim()

StrToArr()


StrToArr()

StrToArr() – String in Array umwandeln

Beschreibung

Die Funktion erzeugt ein Array aus einem String.

Parameter

aText:C

Umzuwandelnder String

Rückgabewert

Array

Beispiel

| aArr, cString |

cString := '{0, 1, 2, 3, 4}',

aArr    := StrToArr(cString),

WriteLn(aArr[3])

// Ergebnis: '2'

Siehe auch

AAdd()

ADelete()

AFill()

AInsert()

ALen()

ArrToStr()

Dim()

ReDim()


AfAAbgang()

AfAAbgang() – Summe der Wertminderungen (FiBu)

Beschreibung

Funktion summiert alle Buchungen, die die AH-Kosten eines Anlagegutes vermindern

Hinweis

Funktion ist nur im Rahmen der FiBu einsetzbar.

Parameter

oDfInv:O | Tabellenobjekt Inventarverwaltung (DFINV)
nVorJahr:N | 0 = aktuelles Geschäftsjahr (default); 1..n = Vorjahr 1 bis n
nVonPer:N | Periode des GJ, ab der die Summe gebildet werden soll (default 1)
nBisPer:N | Periode des GJ, bis zu der die Summe gebildet werden soll (default fbMaxPer)
oDfAfA:O | Tabellenobjekt Abschreibungen (DFAFA)

Rückgabewert

Numerisch

Beispiel

| oDfInv, cInvNr, nAbgang |

cInvNr:= '0000480-00012',

oDfInv:= BeOpen(222,1),

If !Empty(oDfInv) then

   StartSeq

      If DbSeek(cInvNr, oDfInv) then

         nAbgang:= AfAAbgang(oDfInv),

         WriteLn('Teilabgang von ' + cInvNr + ' ist ' +

                  FormatFloat('#,##0.00', nAbgang)),

      EndIf

   Always

     BeClose(oDfInv)

   StopSeq

EndIf

Siehe auch

AfAGJahrTab()

AfAPlan()

AfAEroeffBil()

AfAZugang()

AfABuchWert()

AfAAHKosten()

AfAInGJGebucht()

AfABewegTab()


AfAAHKosten()

AfAAHKosten() – Anschaffungs- und Herstellungskosten (FiBu)

Beschreibung

Funktion berechnet die Anschaffungs- und Herstellungskosten eines Anlagegutes.

Zuschreibungen und Wertminderungen werden berücksichtigt.

Hinweis

Funktion ist nur im Rahmen der FiBu einsetzbar.

Parameter

oDfInv:O | Tabellenobjekt Inventarverwaltung (DFINV)
dBisDat:D | Datum, bis zu dem die Buchungen berücksichtigt werden sollen (default: alle Buchungen)

Rückgabewert

Numerisch

Beispiel

| oDfInv, cInvNr, nAHKosten |

cInvNr:= '0000480-00012',

oDfInv:= BeOpen(222,1),

If !Empty(oDfInv) then

   StartSeq

      If DbSeek(cInvNr, oDfInv) then

         nAHKosten:= AfAAHKosten(oDfInv),

         WriteLn('Anschaffungs- / Herstellungs-Kosten von ' + cInvNr + ': ' +

                  FormatFloat('#,##0.00', nAHKosten)),

      EndIf

   Always

     BeClose(oDfInv)

   StopSeq

EndIf

Siehe auch

AfAGJahrTab()

AfAPlan()

AfAEroeffBil()

AfAZugang()

AfAAbgang()

AfABuchWert()

AfAInGJGebucht()

AfABewegTab()


AfABewegTab()

AfABewegTab() – Array mit Anlagebewegungen (FiBu)

Beschreibung

Funktion liefert für ein Anlagegut ein Array mit allen Buchungen aus der Tabelle DF110

Hinweis

Funktion ist nur im Rahmen der FiBu einsetzbar.

Buchungsarten im Arrayelement 4 sind:

N Neuzugang

Z Ergänzung / Wertzugang

V Vollabgang

T Teilabgang

A Normal-AfA

P außerplanmässige AfA

S sonstige Afa

Parameter

oDfInv:O | Tabellenobjekt Inventarverwaltung (DFINV)
oDf110:O | Tabellenobjekt Sachkonten-Buchungen (DF110)

Rückgabewert

Array (Aufbau s. Beispiel)

Beispiel

| oDfInv, cInvNr, aBewegTab, i |

cInvNr:= '0000480-00012',

oDfInv:= BeOpen(222,1),

If !Empty(oDfInv) then

   StartSeq

      If DbSeek(cInvNr, oDfInv) then

         aBewegTab:= AfABewegTab(oDfInv),

         For i:= 1 to ALen(aBewegTab) do

             WriteLn(Str(i, 2) + ' Buchungsdatum: '     + DateTimeToStr(aBewegTab[i, 1])           + CrLf +

                               '   Vorjahr: '           + Str(aBewegTab[i, 2])                     + CrLf +

                               '   Periode: '           + Str(aBewegTab[i, 3])                     + CrLf +

                               '   Buchungsart: '       + aBewegTab[i, 4]                          + CrLf +

                               '   Soll: '              + FormatFloat('#,##0.00', aBewegTab[i, 5]) + CrLf +

                               '   Haben: '             + FormatFloat('#,##0.00', aBewegTab[i, 6]) + CrLf +

                               '   Buchungstext: '      + aBewegTab[i, 7]                          + CrLf +

                               '   Kostenstelle: '      + Str(aBewegTab[i, 8])                     + CrLf +

                               '   Gegenkonto: '        + Str(aBewegTab[i, 9])                     + CrLf +

                               '   Gegenkostenstelle: ' + Str(aBewegTab[i, 10])),

         Next

      EndIf

   Always

     BeClose(oDfInv)

   StopSeq

EndIf

Siehe auch

AfAGJahrTab()

AfAPlan()

AfAEroeffBil()

AfAZugang()

AfAAbgang()

AfABuchWert()

AfAAHKosten()

AfAInGJGebucht()


AfABuchWert()

AfABuchWert() – Aktueller Buchwert (FiBu)

Beschreibung

Funktion berechnet den aktuellen Buchwert eines Anlagegutes

Hinweis

Funktion ist nur im Rahmen der FiBu einsetzbar.

Parameter

oDfInv:O | Tabellenobjekt Inventarverwaltung (DFINV)
lBisMaxPer | True = nur Buchungen bis spMaxPer werden berücksichtigt(default); False = Buchungen in Überhangperioden werden berücksichtigt
oDfAfA:O' | Tabellenobjekt Abschreibungen (DFAFA)

Rückgabewert

Numerisch

Beispiel

| oDfInv, cInvNr, nBuchwert |

cInvNr:= '0000480-00012',

oDfInv:= BeOpen(222,1),

If !Empty(oDfInv) then

   StartSeq

      If DbSeek(cInvNr, oDfInv) then

         nBuchwert:= AfABuchwert(oDfInv),

         WriteLn('Buchwert von ' + cInvNr + ' ist ' +

                  FormatFloat('#,##0.00', nBuchwert)),

      EndIf

   Always

     BeClose(oDfInv)

   StopSeq

EndIf

Siehe auch

AfAGJahrTab()

AfAPlan()

AfAEroeffBil()

AfAZugang()

AfAAbgang()

AfAAHKosten()

AfAInGJGebucht()

AfABewegTab()


AfAEroeffBil()

AfAEroeffBil() – Eröffnungsbilanzwert (FiBu)

Beschreibung

Funktion berechnet den Eröffnungsbilanzwert eines Anlagegutes

Hinweis

Funktion ist nur im Rahmen der FiBu einsetzbar.

Parameter

oDfInv:O | Tabellenobjekt Inventarverwaltung (DFINV)
nVorJahr:N | 0 = aktuelles Geschäftsjahr (default); 1..n = Vorjahr 1 bis n
oDfAfA:O | Tabellenobjekt Abschreibungen (DFAFA)

Rückgabewert

Numerisch

Beispiel

| oDfInv, cInvNr, nEBWert |

cInvNr:= '0000480-00012',

oDfInv:= BeOpen(222,1),

If !Empty(oDfInv) then

   StartSeq

      If DbSeek(cInvNr, oDfInv) then

         nEBWert:= AfAEroeffBil(oDfInv),

         WriteLn('Eröffnungsbilanzwert von ' + cInvNr + ' ist ' +

                  FormatFloat('#,##0.00', nEBWert)),

      EndIf

   Always

     BeClose(oDfInv)

   StopSeq

EndIf

Siehe auch

AfAGJahrTab()

AfAPlan()

AfAZugang()

AfAAbgang()

AfABuchWert()

AfAAHKosten()

AfAInGJGebucht()

AfABewegTab()


AfAGJahrTab()

AfAGJahrTab() – Tabelle der Geschäftsjahre (FiBu)

Beschreibung

Die Funktion liefert eine Tabelle der Geschäftsjahre ab einem angegebenen Datum (dAfADatum).

Die Länge der Tabelle wird durch den 2. Parameter (nAfAJahre) bestimmt, wobei es sich bei diesem

Parameter um Kalenderjahre handelt. Die resultierende Tabelle berücksichtigt Rumpfgeschäftsjahre,

d.h. sie kann ggf. auch länger sein, als die durch den 2. Parameter vorgegebene Anzahl von Jahren.

Hinweis

Funktion ist nur im Rahmen der FiBu einsetzbar.

Parameter

aAfADatum:D | Startdatum
nAfAJahre:N | Anzahl der Kalenderjahre

Rückgabewert

Array (Aufbau s. Beispiel)

Beispiel

| aGJTab, nJahre, i |

nJahre:= 5,

aGJTab:= AfAGJahrTab(CtoD('10.10.02'), nJahre),

For i:= 1 to ALen(aGJTab) do

    WriteLn(Str(i) + ' Anfang GJ: '  + DateTimeToStr(aGJTab[i, 1]) +

                     ' Ende GJ: '    + DateTimeToStr(aGJTab[i, 2]) +

                     ' Perioden: '   + Str(aGJTab[i, 3])           +

                     ' GJ-Text: '    + aGJTab[i, 4])

Next

Siehe auch

AfAPlan()

AfAEroeffBil()

AfAZugang()

AfAAbgang()

AfABuchWert()

AfAAHKosten()

AfAInGJGebucht()

AfABewegTab()


AfAInGJGebucht()

AfAInGJGebucht() – Summe der AfA-Buchungen (FiBu)

Beschreibung

Funktion berechnet die Summe der tatsächlich gebuchten AfA im Geschäftsjahr.

Hinweis

Summiert werden die Datenfelder NAFA_SUM, AAFA_SUM und SAFA_SUM aus DfAfA.

Funktion ist nur im Rahmen der FiBu einsetzbar.

Parameter

oDfInv:O | Tabellenobjekt Inventarverwaltung (DFINV)
nVorJahr:N | 0 = aktuelles Geschäftsjahr (default); 1..n = Vorjahr 1 bis n
nVonPer:N | Periode des GJ, ab der die Summe gebildet werden soll (default 1)
nBisPer:N | Periode des GJ, bis zu der die Summe gebildet werden soll (default fbMaxPer)
oDfAfA:O | Tabellenobjekt Abschreibungen (DFAFA)

Rückgabewert

Numerisch

Beispiel

| oDfInv, cInvNr, nAfAGebucht |

cInvNr:= '0000480-00012',

oDfInv:= BeOpen(222,1),

If !Empty(oDfInv) then

   StartSeq

      If DbSeek(cInvNr, oDfInv) then

         nAfAGebucht:= AfAInGJGebucht(oDfInv),

         WriteLn('AfA gebucht (' + cInvNr + '): ' +

                  FormatFloat('#,##0.00', nAfAGebucht)),

      EndIf

   Always

     BeClose(oDfInv)

   StopSeq

EndIf

Siehe auch

AfAGJahrTab()

AfAPlan()

AfAEroeffBil()

AfAZugang()

AfAAbgang()

AfABuchWert()

AfAAHKosten()

AfABewegTab()


AfAPlan()

AfAPlan() – Abschreibungsplan eines Anlagegutes (FiBu)

Beschreibung

Die Funktion liefert den Abschreibungsplan eines Anlagegutes in Form eines Arrays. Das Array beinhaltet die

AfA-Werte für die einzelnen Geschäftsjahre während des Abschreibungszeitraumes.

Hinweis

Funktion ist nur im Rahmen der FiBu einsetzbar.

Der Aufruf dieser Funktion kann auch mit einem Inventar-Datensatz als erstem Parameter erfolgen (s. unten Variante 2).

In diesem Fall werden alle Parameter dem Datensatz entnommen.

Bei Verwendung von Aufruf-Variante 1 müssen die Parameter entsprechend der AfA-Art gefüllt werden (s. Parameterliste).

Mehrere Parameter übergeben Werte als Arrays, wobei ein Element des Arrays meist einem Geschäfsjahr entspricht.

Die Anzahl der Array-Elemente ergibt sich nicht zwangsläufig aus dem Parameter nAfAJahre, denn Geschäfsjahre können auch

Rumpfgeschäftsjahre sein (verkürztes GJ) . Weiterhin muss berücksichtigt werden, dass bedingt durch den Parameter dAfADat

im ersten und letzten Jahr der AfA evtl. nur anteilig abgeschrieben werden kann, wodurch das Array um ein weiteres Element

vergrößert werden muss. Zur Berechnung der Array-Länge siehe auch Funktion AfAGJahrTab().

Parameter

uAfAArt:U

Variante 1: Abschreibungsart

- afa_Linear

- afa_Degressiv

- afa_Leistung

- afa_GWG

- afa_Gebaeude

Variante 2: Inventar-Datensatz

- DFINV-Objekt

Hinweis: Variante 2 hat max. zwei Parameter

nAHKosten:N

Anschaffungs- / Herstellungs-Kosten

Hinweis: bei Verwendung von Aufrufvariante 2 kann an dieser Stelle der Parameter nSonderPlan (s. unten) stehen

dAfADat:D

Anfangsdatum des Abschreibungszeitraumes

nAfAJahre:N

Dauer der Abschreibung in Kalenderjahren

nRestWert:N

Restwert des Anlagegutes zum Ende des Abschreibungszeitraumes

nDegProz:N

Prozentsatz der degressiven Abschreibung

lDegLin:L

automatischer Wechsel von degressiver zu linearer AfA

dUebDat:D

Datum der Übernahme des Anlagegutes

nUebWert:N

Buchwert des Anlagegutes zum Zeitpunkt der Übernahme

nLeistGes:N

Gesamtleistung bei leistungsbezogener AfA

aLeistTab:A

Array mit Angaben zur Leistung je Geschäftsjahr; es wird nur die anteilige Leistung an nLeistGes je GJ übergeben

Beispiel: {{5000},{4000},{500},{500}}

aManuTab:A

Array mit Angaben zur manuellen AfA je Geschäftsjahr; eine Element besteht aus AfA-Betrag und Anmerkung; ein AfA-Betrag von Null bewirkt, dass in diesem GJ mit Normal-AfA gerechnet wird

Beispiel: {{1000,"Anmerkung"},{0,""},{0,""},{0,""},{0,""},{0,""}}

nSoAJahre:N

Sonder-AfA; Anzahl der Jahre; muss der Anzahl der Elemente in aSoATab entsprechen

aSoATab:A

Array mit Angaben zur Sonder-AfA je Geschäftsjahr; eine Element besteht aus Prozentsatz und AfA-Betrag

Beispiel: {{10,100},{5,50},{2,20},{2,20},{1,10}}

nGAbProz:N

Prozentsatz Gebäude-AfA bei linearer Abschreibung

aGAbTab:A

Array mit Angaben zur degressiven Gebäude-AfA; ein Element enthält Anzahl der Geschäftsjahre und den Prozentsatz der AfA

Beispiel: {{8,5},{6,2.5},{36,1.25}}

aBewegTab:A

Array mit Angaben zu Anlagenbewegungen

Beispiel: s. Funktion AfABewegTab()

aEBTab:A

Array mit Angaben zur Eröffnungsbilanz

Beispiel: s. Funktion AfAEroeffBil()

lRedBem:L

Restwert reduziert Bemessungsgrundlage

nGAbRProz:N

Prozentsatz der AfA nach Ablauf der regulären degressiven Gebäude-AfA (s. aGAbTab)

dAbgDat:D

Datum des Vollabgangs

nSonderPlan:N

Erstellt für die AfA-Art 'Leistung' im Modus safaLeistOhneLin einen AfA-Plan ohne Berücksichtigung des automatischen Übergangs von Leistungs-AfA zur linearen AfA bei Unterschreitung des linearen Wertes.

- safaOhne (default)

- safaLeistOhneLin

Hinweis: in Aufrufvariante 2 steht dieser Parameter auf der Position von nAHKosten

dGJBeginn:D

Beginn des aktuellen Geschäftsjahres; falls angegeben, wird der AfA-Plan unter Berücksichtigung dieses Datums erstellt, sonst mit dem aktuellen GJ aus den FiBu-Parametern

Rückgabewert

Array mit AfA-Werten je Geschäftsjahr

Ein Array-Element besteht aus:

01. lfd. Nr. des Jahres

02. Text zum GJ

03. Buchwert zu Beginn des GJ

04. Zugang und Abgang saldiert

05. AfA-Summe im GJ

06. kumulierte AfA bis GJ

07. Buchwert am Ende des GJ

08. Art der Berechnung

09. Zusatzinfos

10. vor Übernahme (Kennzeichen, dass hier keine Berechnung stattfand)

11. Soll-AfA im GJ

12. Summe der periodisch gebuchten AfA im GJ (tatsächliche Buchungen)

13. Summe außerplanmässigen AfA im GJ

14. Summe sonst. AfA im GJ

15. Anzahl der buchbaren Perioden im GJ

16. Anteil der Sonder-AfA

Beispiel

// Berechung des AfA-Plans eines Wirtschaftgutes mit Anschaffungskosten von € 5000,--

// bei einer AfA-Laufzeit von 8 Jahren und einem Restwert von € 1,-- ab dem aktuellen

// Datum

| aPlan, nAHKosten, nJahre, nRestWert, i |

nAHKosten := 5000,

nJahre    := 8,

nRestWert := 1,

aPlan := AfAPlan(afa_Linear, nAHKosten, Date(), nJahre, nRestWert),

For i := 1 to ALen(aPlan) do

    WriteLn(aPlan[i])

Next

Siehe auch

AfAGJahrTab()

AfAEroeffBil()

AfAZugang()

AfAAbgang()

AfABuchWert()

AfAAHKosten()

AfAInGJGebucht()

AfABewegTab()


AfAZugang()

AfAZugang() – Summe des Wertzugangs (FiBu)

Beschreibung

Funktion summiert alle Buchungen, die die AH-Kosten eines Anlagegutes erhöhen

Hinweis

Funktion ist nur im Rahmen der FiBu einsetzbar.

Parameter

oDfInv:O | Tabellenobjekt Inventarverwaltung (DFINV)
nVorJahr:N | 0 = aktuelles Geschäftsjahr (default); 1..n = Vorjahr 1 bis n
nVonPer:N | Periode des GJ, ab der die Summe gebildet werden soll (default 1)
nBisPer:N | Periode des GJ, bis zu der die Summe gebildet werden soll (default fbMaxPer)
oDfAfA:O | Tabellenobjekt Abschreibungen (DFAFA)

Rückgabewert

Numerisch

Beispiel

| oDfInv, cInvNr, nZugang |

cInvNr:= '0000480-00012',

oDfInv:= BeOpen(222,1),

If !Empty(oDfInv) then

   StartSeq

      If DbSeek(cInvNr, oDfInv) then

         nZugang:= AfAZugang(oDfInv),

         WriteLn('Zugang von ' + cInvNr + ' ist ' +

                  FormatFloat('#,##0.00', nZugang)),

      EndIf

   Always

     BeClose(oDfInv)

   StopSeq

EndIf

Siehe auch

AfAGJahrTab()

AfAPlan()

AfAEroeffBil()

AfAAbgang()

AfABuchWert()

AfAAHKosten()

AfAInGJGebucht()

AfABewegTab()


ArtLoesch()

ArtLoesch() – Artikel löschen

Beschreibung

Die Funktion dient dem Löschen eines Artikels inkl. vorheriger Löschprüfung.

Parameter

cArtNr:C | Artikelnummer
lShowMsg:L | Meldungen/Fragen anzeigen; default = true
lBewLoe:L | Bewegungen (Einzel-Umsätze) löschen; default = false
lNurCheck:L | Nur prüfen, ob Löschung erlaubt, kein echter Löschvorgang; default = false
oDab010:O | Dab010 Tabelle (Artikelstamm)

Rückgabewert

Logisch / Boolean -

true - Löschvorgang war erfolgreich (lNurCheck = false)

Löschen wäre möglich (lNurCheck = true)

false - Löschvorgang fehlgeschlagen (lNurCheck = false)

Löschen nicht möglich (lNurCheck = true)

Beispiel

| oDab010:DB := '2', nAnz:N, nGesAnz:N |

DBFilter("SubStr(ARTNR, 4) = '0053'", oDab010),

DBGoTop(oDab010),

while !EoF(oDab010) do

   if ArtLoesch(oDab010:ARTNR, false, false, false, oDab010) then

      nAnz++

   endif,

   nGesAnz++,

   DBSkip(1, oDab010),

end,

WriteLn('Es konnte(n) ' + Str(nAnz) + ' von ' + Str(nGesAnz) +

        ' Artikel(n) gelöscht werden!')

// Ergebnis: Es wird versucht, alle Artikel zu löschen, deren Artikelnummer

// mit '0053' beginnt. Am Ende wird ausgegeben, wie viele Artikel gelöscht

// werden konnten.

Siehe auch

KundLoesch()


AttribColor()

AttribColor() – Farbwert eines Merkmals

Beschreibung

Diese Funktion liefert den Farbwert eines Merkmals.

Hinweis

Dynamische Merkmalstabellen besitzen keine Farbinformationen.

Parameter

nTabID:N | ID der Merkmalstabelle
cValue:C | Wert des Merkmals

Rückgabewert

Numerisch

Beispiel

AttribColor(TAB_ID, WERT) // z.B. als Colorblock einer Browser-Spalte

Siehe auch

AttribIDArray()

AttribIDFor()

AttribTabID()

AttribDispVal()

AttribImageInfo()


AttribDispVal()

AttribDispVal() – Anzeigewert eines Merkmals

Beschreibung

Die Funktion gibt den Anzeigewert eines Merkmals unter Berücksichtigung der Anzeigewert-Funktion zurück.
Falls keine Anzeigewert-Funktion hinterlegt ist wird "WERT - BEZ1 BEZ2 BEZ3" zurückgegeben.

Parameter

nTabID:N | ID der Merkmalstabelle
cValue:C | Wert des Merkmals

Rückgabewert

String

Beispiel

AttribDispVal(-6,'2'),   // Ergebnis: Defekt

Siehe auch

AttribIDArray()

AttribIDFor()

AttribTabID()

AttribValues()


AttribIDArray()

AttribIDArray() – Array von Merkmal-IDs einer Merkmalstabelle

Beschreibung

Die Funktion gibt ein Array mit den Sortierungs-IDs einer Merkmalstabelle zurück.

Parameter

nTabID:N | ID der Merkmalstabelle
nSortID:N | Sortierungs-IDs
oDabMDT:O | Tabellenobjekt der DABMDT

Rückgabewert

Array - Array mit Sortierungs-IDs

Beispiel

AttribIDArray(2001)

Siehe auch

AttribIDFor()

AttribTabID()

AttribValues()


AttribIDFor()

AttribIDFor() – Sortierungs-ID eines Merkmals

Beschreibung

Die Funktion gibt die Sortierungs-ID von einem bestimmten Wert einer Merkmalstabelle zurück.

Parameter

nTabID:N | ID der Merkmalstabelle
cValue | Wert des Merkmals
oDABMDT | Merkmalstabellenobjekt

Rückgabewert

Numerisch - Sortierungs-ID

Beispiel

AttribIDFor(2001, '20')

Siehe auch

AttribIDArray()

AttribTabID()

AttribValues()


AttribImageInfo()

AttribImageInfo() – Image-Info eines Merkmals

Beschreibung

Diese Funktion liefert die Image-Informationen eines Merkmals.

Hinweis

Dynamische Merkmalstabellen besitzen keine Image-Informationen.

Parameter

nTabID:N | ID der Merkmalstabelle
cValue:C | Wert des Merkmals

Rückgabewert

Array mit Image-Liste (Objekt) und Image-Index

Beispiel

AttribImageInfo(TAB_ID, WERT) // z.B. als Rückgabe von 'Image-Index' einer Browserspalte

Siehe auch

AttribIDArray()

AttribIDFor()

AttribTabID()

AttribDispVal()

AttribColor()


AttribTabID()

AttribTabID() – ID einer Merkmalstabelle

Beschreibung

Die Funktion ermittelt die TabellenID zu einem Feld einer bestimmten Workarea.

Parameter

nWorkarea:N | Workarea einer Tabelle
cFieldName:C | Feldname

Rückgabewert

Numerisch - Tabellen-ID

Beispiel

AttribTabID(708, 'TESTMDT')

Siehe auch

AttribIDArray()

AttribIDFor()

AttribValues()


AttribTranslate()

AttribTranslate() – Merkmalsbezeichnung ausgeben

Beschreibung

Die Funktion liefert für eine Merkmalstabelle nAttribID und einen Wert cValue den zugehörigen Text in der Sprache nLangID. Wird kein Text in der gewünschten Sprache gefunden, wird der Text der Default-Sprache zurückgegeben.

Der 3. Parameter ist optional - falls nicht angegeben, wird die Default-Sprache verwendet.

Parameter

nAttribID:N | ID der Merkmalstabelle
cValue:C | Merkmals-ID
nLangID:N | Sprach-ID (ISO-Ländertabelle); default = aktuelle BE-Sprache
nDescNo:N | Nummer der Bezeichnung in der MM-Tabelle; default = 1

Rückgabewert

Alphanumerisch - Merkmalsbezeichnung

Beispiel

| cMerkmal |

cMerkmal := AttribTranslate(2002, '10', 1, 2)


AttribValues()

AttribValues() – Werte eines Merkmals

Beschreibung

Die Funktion gibt die Werte eines Merkmals zurück.

Parameter

nTabID:N | ID der Merkmalstabelle
nSortID:N | Sortierungs-ID
oDABMDT:O | Merkmalstabellenobjekt
nAVType:N | Rückgabemodus (0=Array, 1=Feld mit Wert als Text, 2=Feld mit Wert als Numerisch)
cFieldName:C | Feldname

Rückgabewert

Je nach Modus: Array, String, Numerisch

Beispiel

AttribValues(2001, 100, , 0, 'BEZ1'),   // Ergebnis: <Array> = [[100, 0, 10]]

AttribValues(2001, 100, , 1, 'BEZ1'),   // Ergebnis: (BEZ1='10')

AttribValues(2001, 100, , 2, 'BEZ1'),   // Ergebnis: (BEZ1=10)

Siehe auch

AttribIDArray()

AttribIDFor()

AttribTabID()


Auf_Sperr()

Auf_Sperr() – Auftragssperre

Beschreibung

Die Funktion dient der Abfrage des Sperrkennzeichens im Kundenstamm bezüglich einer Auftragssperre.

Parameter

nKdNr:N | Kundennr.; default = 0
oDab000:O | DAB0000 Kundenstamm; default = Standard-Dab000

Rückgabewert

Logisch / Boolean

Beispiel

| nKdNr, oDab000 |

Auf_Sperr(nKdNr, oDab000)

Siehe auch

Lief_Sperr()


AufAutoLiefFrei()

AufAutoLiefFrei() – Automatische Lieferfreigabe

Beschreibung

Funktion zum dialogfreien Start der Automatischen Lieferfreigabe bzw. Lieferreservierung. "Freigabe / Lieferung" bzw. "Kunde" muss je nach Parameter als "Reservierung" bzw. "Lieferant" gelesen werden.

Parameter

nFreiReservModus:N | 0 = Freigabe, 1 = Reservierung
nKdLiefModus:N | 0 = Kundenaufträge, 1 = Lieferantenaufträge
lWennBest:L | Nur wenn Bestand; default = true
lTeilLief:L | Auftragsteillieferung erlaubt; default = true
lPosTeilLief:L | Positionsteillieferung erlaubt; default = false
lNurVollst:L | Nur Vollständige; default = true
nTerminTyp:N | 0 = Kopftermin, 1 = Positiostermin; default = 0
cVonTermin:C | Von Termin ab; default = Leerstring
cBisTermin:C | Bis Termin; default = KW des Buchungsdatums
nFreigModus:N | 0 = Freigabe je Auftrag, 1 = je Kunde / Lieferanschrift; default = 0
nMindWert:N | Mindestwert; default = 0
nMindProz:N | Mind. %-Satz der Auftragswerts; default = 0
nVonAufTyp:N | Von Auftragsart; default = 0
nBisAufTyp:N | Bis Auftragsart; default = Max.Auftr.Art
cKopfFilter:C | DAB050-Filter; default = Leerstring
cPosFilter:C | DAB055-Filter; default = Leerstring
lKredLimCheck:L | Kreditlimit prüfen; default = true
nMaxFreigWert:N | Max. Wert bis zum dem Aufträge freigegeben werden; default = 0
nVonKunde:N | Von Kunde ab; default = 0
nBisKunde:N | Bis Kunde; default = 99999999
cLiefFuerSto:C | "/"-getrennte Liste mit Standorten, durch die die Lieferung erfolgen soll; default = Leerstring
cLiefDurchSto:C | "/"-getrennte Liste mit Standorten, für die die Lieferung erfolgen soll; default = aktiver Standort

Rückgabewert

Keiner

Beispiel

| nFreiReservModus:N, nKdLiefModus:N, lWennBest:L, lTeilLief:L, lPosTeilLief:L,

  lNurVollst:L, nTerminTyp:N, cVonTermin:C, cBisTermin:C, nFreigModus:N,

  nMindWert:N, nMindProz:N, nVonAufTyp:N, nBisAufTyp:N, cKopfFilter:C,

  cPosFilter:C, lKredLimCheck:L, nMaxFreigWert:N, nVonKunde:N, nBisKunde:N,

  cLiefFuerSto:C, cLiefDurchSto:C |

nFreiReservModus := 1,

nKdLiefModus     := 1,

lWennBest        := false,

lTeilLief        := false,

lPosTeilLief     := true,

lNurVollst       := false,

nTerminTyp       := 1,

cVonTermin       := 'KW.12.05',

cBisTermin       := 'KW.15.05',

nFreigModus      := 1,

nMindWert        := 100,

nMindProz        := 50,

nVonAufTyp       := 1,

nBisAufTyp       := 30,

cKopfFilter      := 'True',

cPosFilter       := 'False',

lKredLimCheck    := false,

nMaxFreigWert    := 9999,

nVonKunde        := 1,

nBisKunde        := 1000,

cLiefFuerSto     := '000',

cLiefDurchSto    := '000',

AufAutoLiefFrei(

   nFreiReservModus,

   nKdLiefModus,

   lWennBest,

   lTeilLief,

   lPosTeilLief,

   lNurVollst,

   nTerminTyp,

   cVonTermin,

   cBisTermin,

   nFreigModus,

   nMindWert,

   nMindProz,

   nVonAufTyp,

   nBisAufTyp,

   cKopfFilter,

   cPosFilter,

   lKredLimCheck,

   nMaxFreigWert,

   nVonKunde,

   nBisKunde,

   cLiefFuerSto,

   cLiefDurchSto)


AufKommChk()

AufKommChk() – Kommissionierungs-Prüfung

Beschreibung

Die Funktion prüft, ob alle hierarchisch vorrangigen Positionen (lSameTyp = true) oder alle Positionen gleichen Typs (lSameTyp = false) eines Auftrags für automatische Kommissionierung schon gepackt sind. Eine Positionierung der Tabellen ist nicht notwendig.

Parameter

oDab055:O | Tabellenobjekt DAB055
oDab210:O | Tabellenobjekt DAB210
cAnummer:C | Auftragsnummer (ANUMMER aus DAB050)
nPos:N | Hierarchie (Typ), für die geprüft werden soll; 1 = WE; 2 = Fertigung; 3 = Lager
lSametyp:L | Prüfungsart; default = false false - prüft hierarchisch vorrangig true - prüft nur identische Hierarchie (Typ)
dTermbis:U | Prüft nur bis zu diesem Datum; default = 99999999

Rückgabewert

Logisch / Boolean - alles gepackt

Beispiel

| oDab010, oDab055, oDab210 |

AufKommChk(oDab010, oDab055, oDab210, '123456', 2)


AufKopfEdit()

AufKopfEdit() – Editiermodus für Auftragskopf

Beschreibung

Die Funktion versetzt einen existierenden Auftagskopf in den Editmodus. Der Dab050-Datensatz befindet sich anschließend im Editiermodus und kann weiter bearbeitet werden.

Parameter

nOrderNo:N | Auftragsnummer
oDab000:O | Tabellenobjekt DAB000
oDab050:O | Tabellenobjekt DAB050
oMem050:O | TMemCalcTable-Object

Rückgabewert

Logisch / Boolean - Editieren erfolgreich

Beispiel

| oDab000:DB := '1,1', oDab050:DB := '3,1', oMem050, oMem055, nNummer |

startseq,

   DBStartTrans(),

   oMem050 := CreateObject('TMemCalcTable'),

   if AufKopfEdit(35, oDab000, oDab050, oMem050) then

      oDab050:STRASSE := 'Woanders',

      if AufKopfPost(nNummer, oDab000, oDab050, oMem050) then

         DBCommit(),

      else,

         DBRollBack(),

         Meld('Fehler beim speichern!'),

      endif,

   else,

      Meld('Fehler beim editieren!'),

   endif,

onerror,

   DBRollBack(),

   WriteLn(GetErrorText()),

stopseq,

Siehe auch

AufKopfNeu()

AufKopfPost()


AufKopfNeu()

AufKopfNeu() – Neuer Auftragskopf

Beschreibung

Die Funktion legt einen neuen Auftagskopf an und lässt ihn im Einfügemodus. Der neue DaB050-Datensatz befindet sich anschließend im Einfügemodus und kann weiter bearbeitet werden.

Parameter

nKdNr:N | Kunden-Nr.
cAufTyp:C | Auftrags-Typ; A = Angebot; N = Neuer Auftrag; L = Lieferbuchung; S = Service-Anforderung
nAufArt:N | Auftragsart (0-99)
oDab000:O | Tabellenobjekt DAB000
oDab050:O | Tabellenobjekt DAB050
oMem050:O | TMemCalcTable-Object (nur aus Kompatibilität); default = nil

Rückgabewert

Numerisch - Neue Auftragsnummer, falls Neuanlage erfolgreich

Beispiel

| oDMAuf, oDab000, oDab050, oMem050, nKdnr, nANummer |

startseq,

   oDMAuf  := CreateObject('TBeDbGet', 'AUFTRAGS_DM'),   // Datenmodul erzeugen

   oMem050 := CreateObject('TMemCalcTable'),

   oDab000 := DBGetTable(oDMAuf, 1),                     // Tabellen aus dem DM holen

   oDab050 := DBGetTable(oDMAuf, 3),

   oDab000 := DBGetTable(oDMAuf, 1),

   DBStartTrans(oDMAuf.AdsConnection),   // Transaktion auf dem Datenmodul starten

   nKdnr    := 3,

   // Auftrag anlegen

   nANummer := AufKopfNeu(nKdnr, 'N', 0, oDab000, oDab050, oMem050),

   // wurde der Auftragskopf korrekt angelegt?

   if nANummer = 0 then

      SetError('Der Auftrag konnte nicht angelegt werden'),

   endif,

   // Kopf-Felder setzen

   oDab050:KOPFTEXT1 := 'Test-Auftrag ' + Str(nANummer),

   oDab050:KOPFTEXT2 := 'angelegt um '  + TimeToStr(Now()),

   oDab050:KOPFTEXT3 := 'von ' + BeUserName(val(c_usr)),

   // Kopf speichern

   if not AufKopfPost(nANummer, oDab000, oDab050, oMem050) then

      SetError('Der Auftrag konnte nicht gespeicher werden'),

   endif,

   DBCommit(oDMAuf.AdsConnection),

onerror,

   if DBInTrans(oDMAuf.AdsConnection) then

      DBRollBack(oDMAuf.AdsConnection),

   endif,

   WriteLn(GetErrorText()),

stopseq,

Siehe auch

AufKopfEdit()

AufKopfPost()


AufKopfPost()

AufKopfPost() – Speichern des Auftragskopfes

Beschreibung

Die Funktion speichert den neuen Auftragskopf. Der Dab050-Datensatz muss vorher mit AufKopfNeu() oder AufKopfEdit() in den Einfüge- oder Editiermodus versetzt worden sein. Das Speichern des Auftragskopfes führt keine Änderungen an den Positionen durch! Es ist somit nicht zulässig, den Gesamtpreis, Rechung o.ä. zu verändern!

Parameter

nOrderNo:N | Auftragsnummer
oDab000:O | Tabellenobjekt DAB000
oDab050:O | Tabellenobjekt DAB050
oMem050:O | TMemCalcTable-Object

Rückgabewert

Logisch / Boolean - Speicherung erfolgreich

Beispiel

siehe AufKopfNeu()

Siehe auch

AufKopfEdit()

AufKopfNeu()


AufPosDelete()

AufPosDelete() – Auftragsposition löschen

Beschreibung

AufPosDelete() löscht eine existierende Auftragsposition bzw. im Falle eines Angebotes mit 10er-Schritten eine Auftragspositionsgruppe.

Parameter

nOrderNo:N | Auftragsnummer
cArtNo:C | Auftragsposition
oDab000:O | oDab000
oDab050:O | oDab050
oDab055:O | oDab055
oDab010:O | oDab010
oCalc000:O | oCalc000
oCalc010:O | oCalc010
oCalc020:O | oCalc020
oCalc035:O | oCalc035
oCalc055:O | oCalc055
oCalc155:O | oCalc155
oCalc160:O | oCalc160
oCalc210:O | oCalc210
oCalc240:O | oCalc240
oCalc255:O | oCalc255
oCalc310:O | oCalc310
oCalc340:O | oCalc340
oCalc410:O | oCalc410
oCalc520:O | oCalc520
oCalc610:O | oCalc610
oCalc710:O | oCalc710
oCalc720:O | oCalc720
oCalc730:O | oCalc730
oMem050:O | TMemCalcTable-Object
oMem055:O | TMemCalcTable-Object
lProdSync:L | Produktionsauftragssynchronisation aktiviert; default = false

Rückgabewert

Keiner - Kann die Löschung nicht durchgeführt werden, wird eine Exception ausgelöst.

Beispiel

| oDab000:DB  :=  '1,1', oDab050:DB  :=  '3,1', oDab055:DB  :=  '4,1',

  oDab010:DB  :=  '2,1', oCalc010:DB :=  '2,1', oCalc155:DB := '55,1',

  oCalc160:DB := '56,1', oCalc340:DB := '41,1', oCalc062:DB := '16,1',

  oCalc000:DB :=  '1,1', oCalc520:DB := '35,1', oCalc020:DB :=  '7,1',

  oCalc310:DB := '19,1', oCalc040:DB :=  '6,1', oCalc510:DB := '28,1',

  oCalc710:DB := '31,1', oCalc110:DB := '24,1', oCalc130:DB := '46,1',

  oCalc055:DB :=  '4,1', oCalc035:DB := '13,1', oCalc210:DB := '14,1',

  oCalc240:DB := '26,1', oCalc255:DB := '45,1', oCalc250:DB := '44,1',

  oCalc410:DB := '23,1', oCalc610:DB := '30,1', oCalc720:DB := '42,1',

  oCalc730:DB := '47,1',

  oMem050, oMem055, nNummer, nPos |

DBStartTrans(),

startseq,

   oMem050 := CreateObject('TMemCalcTable'),

   oMem055 := CreateObject('TMemCalcTable'),

   AufPosDelete(1979, 1,  oDab000,  oDab050,  oDab055,  oDab010,  oCalc000,

                oCalc010, oCalc020, oCalc035, oCalc055, oCalc155, oCalc160, oCalc210,

                oCalc240, oCalc255, oCalc310, oCalc340, oCalc410, oCalc520, oCalc610,

                oCalc710, oCalc720, oCalc730, oMem050,  oMem055,  true),

   DBCommit(),

onerror,

   DBRollBack(),

   WriteLn(GetErrorText()),

   Raise(),

stopseq,


AufPosEdit()

AufPosEdit() – Editiermodus für Auftragsposition

Beschreibung

Die Funktion versetzt eine existierende Auftragsposition in den Editiermodus. Die beiden Memory-Tabellen oMem050 und oMem055 müssen vor Aufruf der Funktion erzeugt worden sein. In ihnen werden die alten Dab050- und Dab055-Feldinhalte gespeichert. Diese dürfen anschließend nicht verändert werden und müssen an die Funktion AufPosPost() übergeben werden!

Hinweis

Die Funktion sollte nicht mehr verwendet werden. Verwenden Sie stattdessen AufPosEdit2()!

Parameter

nOrderNo:N | Auftragsnummer
nOrderPos:N | Auftragsposition
oDab000:O | Tabellenobjekt DAB000
oDab050:O | Tabellenobjekt DAB050
oDab055:O | Tabellenobjekt DAB055
oDab010:O | Tabellenobjekt DAB010
oMem050:O | TMemCalcTable-Objekt
oMem055:O | TMemCalcTable-Objekt

Rückgabewert

Logisch / Boolean - Editiermodus erfolgreich

Beispiel

| oDab000:DB  :=  '1,1', oDab050:DB  :=  '3,1', oDab055:DB  :=  '4,1',

  oDab010:DB  :=  '2,1', oCalc062:DB := '16,1', oCalc000:DB :=  '1,1',

  oCalc520:DB := '35,1', oCalc020:DB :=  '7,1', oCalc310:DB := '19,1',

  oCalc510:DB := '28,1', oCalc710:DB := '31,1', oCalc040:DB :=  '6,1',

  oCalc110:DB := '24,1', oCalc130:DB := '46,1', oCalc055:DB :=  '4,1',

  oCalc035:DB := '13,1', oCalc210:DB := '14,1', oCalc240:DB := '26,1',

  oCalc255:DB := '45,1', oCalc410:DB := '23,1', oCalc610:DB := '30,1',

  oCalc720:DB := '42,1', oCalc730:DB := '47,1',

  oMem050, oMem055, nNummer, nPos |

oMem050 := CreateObject('TMemCalcTable'),

oMem055 := CreateObject('TMemCalcTable'),

nNummer := 123456,

startseq,

   DBStartTrans(),

   nPos := AufPosNeu(nNummer, 'BSP_ART', oDab000,  oDab050,  oDab055,

                     oDab010,  oCalc000, oCalc020, oCalc040, oCalc062,

                     oCalc110, oCalc130, oCalc310, oCalc510, oCalc520,

                     oCalc710),

   if nPos = 0 then

      DBRollBack(),

   else,

      if AufPosEdit( nNummer, nPos, oDab000, oDab050, oDab055, oDab010,

                     oMem050, oMem055 ) then

         oDab055:BMENGE := 10,

         oDab055:VMENGE := 5,

         if AufPosPost(nNummer,  nPos,     oDab000,  oDab050,  oDab055,

                       oDab010,  oMem050,  oMem055,  oCalc000, oCalc020,

                       oCalc040, oCalc055, oCalc035, oCalc062, oCalc210,

                       oCalc240, oCalc255, oCalc310, oCalc410, oCalc510,

                       oCalc520, oCalc610, oCalc710, oCalc720, oCalc730) then

            DBCommit(),

         else,

            DBRollBack(),

            Meld(''),

         endif,

      endif,

   endif,

onerror,

   DBRollBack(),

   Meld(GetErrorText()),

stopseq,

Siehe auch

AufPosEdit2()

AufPosFrei()

AufPosNeu()

AufPosNeu2()

AufPosPost()


AufPosEdit2()

AufPosEdit2() – Editiermodus für Auftragsposition

Beschreibung

Die Funktion versetzt eine existierende Auftragsposition in den Editiermodus. Übergeben wird im Gegensatz zu AufPosEdit() ein Datenmodul. Der Dab055-Datensatz befindet sich anschließend im Editiermodus und kann bearbeitet werden. Es ist erlaubt beliebige Dab055-Feldinhalte zu verändern, sofern diese über die normale Auftragsbearbeitung ebenfalls geändert werden können.

Parameter

oDM:O | Objekt der Klasse TBeDbGet (Datenmodul)
nAufNummer:N | Auftragsnummer
nAufPos:N | Auftragspositionsnummer

Rückgabewert

Logisch / Boolean - Editiermodus erfolgreich

Beispiel

| oDM, oDAB055 |

// verändert die Bestellmenge auf 5

oDM     := CreateObject('TBeDbGet'),

oDAB055 := DBGetTable(oDM, 4,),

startseq,

   DBStartTrans(oDM.ADSConnection),

   AufPosEdit2(oDM, 4711, 1),

   oDAB055:BMENGE := 5,

   AufPosPost2(oDM, 4711, 1, false, false),

   DBCommit(oDM.ADSConnection),

onerror,

   DbCancelAll(oDM),

   DBRollBack(oDM.ADSConnection),

stopseq,

Siehe auch

AufPosEdit()

AufPosFrei()

AufPosNeu()

AufPosNeu2()

AufPosPost()


AufPosEntnOffen()

AufPosEntnOffen() – Offene Entnahmemenge

Beschreibung

Die Funktion ermittelt die noch offene Entnahmemenge einer reservierten Auftragsposition.

Parameter

oDAB055:O

Positioniertes Tabellenobjekt der Auftragspositionen

Rückgabewert

Numerisch - Offenen Entnahmemenge

Beispiel

| oDAB055:DB := '3,1' |

DBSeek('815816  1', oDAB055),

AufPosEntnOffen(oDAB055)


AufPosFrei()

AufPosFrei() – Versand-Freigabe für eine Auftragsposition

Beschreibung

Die Funktion gibt eine Menge einer Auftragsposition zur Lieferung frei. Erhöht die Freigabemenge (DAB055:VMENGE) um die übergebene Menge. Soll die Funktion in einer "aussenliegenden" (also bereits aktiven) Transaktion eingebettet werden, muss das Connection-Object dieser Transaktion übergeben werden. Werden optionale Tabellen übergeben (oDabXXX) müssen diese mit der gleichen Ads-Connection laufen, welche als oConnect übergeben wird.

Hinweis

Die Funktion sollte nicht mehr verwendet werden. Verwenden Sie stattdessen AufPosFrei2()!

Parameter

cAPNummer:C | 6+3-Stellig entsprechend DAB055->APNUMMER
nMenge:N | Freigabemenge
oConnect:O | AdsConnection-Objekt für Transaktions-Handling
oDab000:O | Tabellenobjekt DAB000
oDab010:O | Tabellenobjekt DAB010
oDab020:O | Tabellenobjekt DAB020
oDab050:O | Tabellenobjekt DAB050
oDab055:O | Tabellenobjekt DAB055
oDab240:O | Tabellenobjekt DAB240
oDab410:O | Tabellenobjekt DAB410
oDab520:O | Tabellenobjekt DAB520
oDab610:O | Tabellenobjekt DAB610
oDab710:O | Tabellenobjekt DAB710
oDab720:O | Tabellenobjekt DAB720
oDab730:O | Tabellenobjekt DAB730
aCommiss:A | Array Kommissionsnr.; default = null();Format: { { <Kommission>, <Menge>, <Platz> , <Verfallsdatum>, <BehälterNr>, <BehälterTyp>}, { ... } }
cProgID:C | Zur Verarbeitung von BE-Events; default = Leerstring

Rückgabewert

keiner

Beispiel

| oDab055:DB := '4' |

DBSeek('  1234  1', oDab055),

AufPosFrei(oDab055:APNUMMER, oDab055:BMENGE - oDab055:LMENGE - oDab055:VMENGE)

Siehe auch

AufPosFrei2()


AufPosFrei2()

AufPosFrei2() – Versand-Freigabe für eine Auftragsposition

Beschreibung

Die Funktion übernimmt die gleiche Aufgabe wie AufPosFrei(). Übergeben wird im Gegensatz zu AufPosFrei() ein Datenmodul.

Hinweis

Die Funktion AufPosFrei2() führt keine Validierung aus, ob die übergebene Menge (nMenge) auf Lager verfügbar ist und bucht diese immer in den Auftrag. Soll eine Validierung stattfinden, müssen die Funktionen AufPosEdit2() und AufPosPost2() verwendet werden.

Parameter

oDM:O | Objekt der Klasse TBeDbGet (Datenmodul)
nAufNummer:N | Auftragsnummer
nAufPosNr | Nummer der Auftragsposition
nMenge:N | Freigabemenge
aCommiss:A | Array Kommissionsnr.; default = null(); Format: {; { <Kommission>, <Menge>, [,<Platz> [,<Verfallsdatum> [,<BehälterNr> [,<EinwegBehälterTyp> ]]]]}, { ... }; }
cProgID:C | Zur Verarbeitung von BE-Events; default = Leerstring
nEntnSchNr:C | Entnahmescheinnummer - automatische der Chargen / Plätze auf dem übergebenen Entnahmeschein. Der Bezug macht nur bei Nutzung der Einzelreservierungen (Dab260) Sinn.

Rückgabewert

Keiner

Beispiel

| oDM, aKommiss, nAuftrag, nPosNr, nMenge |

aKommiss := { {"CHARGE_1", 5, "PLATZ_A"},

              {"CHARGE_2", 5, "PLATZ_B"} },

nAuftrag := 816077,

nPosNr   := 10,

nMenge   := 10,

oDM      := CreateObject('TBeDBGet'),

startseq,

   startseq,

      DBStartTrans(oDM.ADSConnection),

      AufPosFrei2(oDM, nAuftrag, nPosNr, nMenge, aKommiss),

      DBCommit(oDM.ADSConnection),

   onerror,

      DBCancelAll(oDM),

      DBRollBack(oDM.ADSConnection),

      MessageDlg(GetErrorText()),

   stopseq,

always,

   DestroyObject(oDM),

stopseq,


AufPosNeu()

AufPosNeu() – Neue Auftragsposition

Beschreibung

Die Funktion legt eine neue Auftragsposition an. Der neue Dab055-Datensatz befindet sich anschließend per Default nicht im Einfügemodus und kann erst mit AufPosEdit() weiter bearbeitet werden. Wird der Parameter lKeepInsertMode = true übergeben (zusammen mit oMem050 und oMem055) dann befindet sich der Datensatz anschließend im Einfügemodus und kann weiter bearbeitet werden. Ein weiteres AufPosEdit() ist dann nicht zulässig.

Hinweis

Die Funktion sollte nicht mehr verwendet werden. Verwenden Sie stattdessen AufPosNeu2()!

Parameter

nOrderNo:N | Auftragsnummer
cArtNo:C | Artikelnummer
oDab000:O | Tabellenobjekt DAB000
oDab050:O | Tabellenobjekt DAB050
oDab055:O | Tabellenobjekt DAB055
oDab010:O | Tabellenobjekt DAB010
oCalc000:O | Tabellenobjekt DAB000 für Kalkulationen
oCalc020:O | Tabellenobjekt DAB020 für Kalkulationen
oCalc040:O | Tabellenobjekt DAB040 für Kalkulationen
oCalc062:O | Tabellenobjekt DAB062 für Kalkulationen
oCalc110:O | Tabellenobjekt DAB110 für Kalkulationen
oCalc130:O | Tabellenobjekt DAB130 für Kalkulationen
oCalc310:O | Tabellenobjekt DAB310 für Kalkulationen
oCalc510:O | Tabellenobjekt DAB510 für Kalkulationen
oCalc520:O | Tabellenobjekt DAB520 für Kalkulationen
oCalc710:O | Tabellenobjekt DAB710 für Kalkulationen
lKeepInsertMode:L | Datensatz nach Neuanlage im Insert-Modus lassen; default = false
oMem050:O | TMemCalcTable-Objekt (für lKeepInsertMode = true benötigt); default = nil
oMem055:O | TMemCalcTable-Objekt (für lKeepInsertMode = true benötigt); default = nil

Rückgabewert

Numerisch - Neue Pos.Nr.

Beispiel

| oDab000:DB  :=  '1,1', oDab050:DB  :=  '3,1', oDab055:DB  :=  '4,1',

  oDab010:DB  :=  '2,1', oCalc062:DB := '16,1', oCalc000:DB :=  '1,1',

  oCalc520:DB := '35,1', oCalc020:DB :=  '7,1', oCalc310:DB := '19,1',

  oCalc510:DB := '28,1', oCalc710:DB := '31,1', oCalc040:DB :=  '6,1',

  oCalc110:DB := '24,1', oCalc130:DB := '46,1', oCalc055:DB :=  '4,1',

  oMem050, oMem055, nNummer, nPos |

startseq,

   DBStartTrans(),

   oMem050 := CreateObject('TMemCalcTable'),

   nNummer := AufKopfNeu(81192544, 'N', 0, oDab000, oDab050, oMem050),

   if nNummer <> 0 and AufKopfPost(nNummer, oDab000, oDab050, oMem050) then

      DBCommit(),

      AufPosNeu(nNummer,  'BE-SW',  oDab000,  oDab050,  oDab055,  oDab010,

                oCalc000, oCalc020, oCalc040, oCalc062, oCalc110, oCalc130,

                oCalc310, oCalc510, oCalc520, oCalc710),

   else

      DBRollBack(),

   endif,

onerror,

   DBRollBack(),

   WriteLn(GetErrorText()),

stopseq,

Siehe auch

AufPosEdit()

AufPosEdit2()

AufPosFrei()

AufPosNeu2()

AufPosPost()


AufPosNeu2()

AufPosNeu2() – Neue Auftragsposition

Beschreibung

Die Funktion übernimmt die gleiche Aufgabe wie AufPosNeu(). Übergeben wird im Gegensatz zu AufPosNeu() ein Datenmodul.

Parameter

oDM:O | Kontainer/Datenmodul-Objekt
nAufNummer:N | Auftragsnummer
cArtNr:C | Artikelnummer
lKeepInsertMode:L | Datensatz nach Neuanlage im Insert-Modus lassen; default = false
lModifyVarSL:L | Dialog zum Verändern von Sets/Varianten anzeigen; default = false
lAppendVarSL:L | Auftragsstückliste bei Neuanlage füllen; default = false
lQuiet:L | Funktionseigene Exceptionmeldungen unterdrücken; default = True
nAufPosNr:N | zu vergebene Auftragspositions-Nummer; default = -1; -1 : automatische Berechnung der nächsten Positions-Nummer

Rückgabewert

Numerisch - Neue Positions Nr.

Beispiel

| oDM, oDAB055 |

//neue AufPos mit Bestellmenge = 5

oDM     := CreateObject('TBeDbGet'),

oDAB055 := DBGetTable(oDM, 4,),

startseq,

   DBStartTrans(oDM.ADSConnection),

   AufPosNeu2(oDM, 4711, '4711', true, false, false),

   oDAB055:BMENGE := 5,

   AufPosPost2(oDM, 4711, 1, false, false),

   DBCommit(oDM.ADSConnection),

onerror,

   DbCancelAll(oDM),

   DBRollBack(oDM.ADSConnection),

stopseq,

Siehe auch

AufPosNeu()


AufPosPost()

AufPosPost() – Speichern einer Auftragsposition

Beschreibung

Die Funktion dient dem Speichern einer im Editiermodus befindlichen Auftragsposition. Diese muss zuvor von der Funktion AufPosEdit() in den Editiermodus versetzt worden sein.

Die Funktion analysiert die Veränderung im Datensatz und schreibt ggf. Terminraster, Statistik, Auftragskopfwerte, etc.

Die beiden Memory-Tabellen müssen vor Aufruf der Funktion erzeugt und an AufPosEdit() übergeben worden sein.

Wird lCheckVMENGE übergeben, muss auch oCalc320 übergeben werden! lCheckVMENGE = true führt alle Verfügbarkeitsprüfungen und Validierung der Auftragserfassung auf des Feld VMENGE aus !

Hinweis

Die Funktion sollte nicht mehr verwendet werden. Verwenden Sie stattdessen AufPosPost2()!

Parameter

nOrderNo:N | Auftragsnummer
nOrderPos: | Auftragsposition
oDab000:O | Tabellenobjekt DAB000
oDab050:O | Tabellenobjekt DAB050
oDab055:O | Tabellenobjekt DAB055
oDab010:O | Tabellenobjekt DAB010
oMem050:O | TMemCalcTable-Object
oMem055:O | TMemCalcTable-Object
oCalc000:O | Tabellenobjekt DAB000 für Kalkulationen
oCalc020:O | Tabellenobjekt DAB020 für Kalkulationen
oCalc040:O | Tabellenobjekt DAB040 für Kalkulationen
oCalc055:O | Tabellenobjekt DAB055 für Kalkulationen
oCalc035:O | Tabellenobjekt DAB035 für Kalkulationen
oCalc062:O | Tabellenobjekt DAB062 für Kalkulationen
oCalc210:O | Tabellenobjekt DAB210 für Kalkulationen
oCalc240:O | Tabellenobjekt DAB240 für Kalkulationen
oCalc255:O | Tabellenobjekt DAB255 für Kalkulationen
oCalc310:O | Tabellenobjekt DAB310 für Kalkulationen
oCalc410:O | Tabellenobjekt DAB410 für Kalkulationen
oCalc510:O | Tabellenobjekt DAB510 für Kalkulationen
oCalc520:O | Tabellenobjekt DAB520 für Kalkulationen
oCalc610:O | Tabellenobjekt DAB610 für Kalkulationen
oCalc710:O | Tabellenobjekt DAB710 für Kalkulationen
oCalc720:O | Tabellenobjekt DAB720 für Kalkulationen
oCalc730:O | Tabellenobjekt DAB730 für Kalkulationen
oCalc320:O | Tabellenobjekt DAB320 für Kalkulationen; default = nil
lCheckVMENGE:L | VMENGE überprüfen; default = false
lQuiet:L | Rückfragen wie "Menge <0> bestätigen ?" oder "Abweichung von Verpackungs-Einheit bestätigen ?" unterdrücken; default = true

Rückgabewert

Logisch / Boolean - Post erfolgreich

Beispiel

| oDab000:DB  :=  '1,1', oDab050:DB  :=  '3,1', oDab055:DB  :=  '4,1',

  oDab010:DB  :=  '2,1', oCalc062:DB := '16,1', oCalc000:DB :=  '1,1',

  oCalc520:DB := '35,1', oCalc020:DB :=  '7,1', oCalc310:DB := '19,1',

  oCalc510:DB := '28,1', oCalc710:DB := '31,1', oCalc040:DB :=  '6,1',

  oCalc110:DB := '24,1', oCalc130:DB := '46,1', oCalc055:DB :=  '4,1',

  oCalc035:DB := '13,1', oCalc210:DB := '14,1', oCalc240:DB := '26,1',

  oCalc255:DB := '45,1', oCalc410:DB := '23,1', oCalc610:DB := '30,1',

  oCalc720:DB := '42,1', oCalc730:DB := '47,1', oMem050, oMem055,

  nNummer, nPos |

oMem050 := CreateObject('TMemCalcTable'),

oMem055 := CreateObject('TMemCalcTable'),

nNummer := 123456,

startseq,

   DBStartTrans(),

   nPos := AufPosNeu(nNummer, 'BSP_ART', oDab000, oDab050, oDab055,

                     oDab010, oCalc000, oCalc020, oCalc040, oCalc062,

                     oCalc110, oCalc130, oCalc310, oCalc510, oCalc520,

                     oCalc710, true, oMem050, oMem055),

   if nPos = 0 then

      DBRollBack(),

   else

      if DBState(oDab055) = dsInsert then

         oDab055:BMENGE := 10,

         oDab055:VMENGE := 5,

         if AufPosPost(nNummer, nPos, oDab000, oDab050, oDab055, oDab010,

                       oMem050,  oMem055,  oCalc000, oCalc020, oCalc040,

                       oCalc055, oCalc035, oCalc062, oCalc210, oCalc240,

                       oCalc255, oCalc310, oCalc410, oCalc510, oCalc520,

                       oCalc610, oCalc710, oCalc720, oCalc730) then

            DBCommit(),

         else

            DBRollBack(),

         endif,

      endif,

   endif,

onerror,

   DBRollBack(),

   Meld(GetErrorText()),

stopseq,

Siehe auch

AufPosEdit()

AufPosEdit2()

AufPosFrei()

AufPosNeu()

AufPosNeu2()

AufPosPost2()


AufPosPost2()

AufPosPost2() – Speichern einer Auftragsposition

Beschreibung

Die Funktion übernimmt die gleiche Aufgabe wie AufPosPost(). Übergeben wird im Gegensatz zu AufPosPost() ein Datenmodul.

Parameter

oDM:O | Kontainer/Datenmodul-Objekt
nAufNummer:N | Auftragsnummer
nAufPosNr:C | Auftragspositionsnummer
lCheckVMenge:L | V-Menge validieren; default = false
lVarPreisCalc:L | Varianten/Set-Preis neu berechnen; default = false
lQuiet:L | Rückfragen wie "Menge <0> bestätigen ?" oder "Abweichung von Verpackungs-Einheit bestätigen ?" unterdrücken; default = true

Rückgabewert

Logisch/ Boolean - Post erfolgreich

Beispiel

|oDM, oDAB055|

//neue AufPos mit Bestellmenge = 5

oDM     := CreateObject('TBeDbGet'),

oDAB055 := DBGetTable(oDM, 4,),

startseq,

   DBStartTrans(oDM.ADSConnection),

   AufPosNeu2(oDM, 4711, '4711', true, false, false),

   oDAB055:BMENGE := 5,

   AufPosPost2(oDM, 4711, 1, false, false),

   DBCommit(oDM.ADSConnection),

onerror

   DbCancelAll(oDM),

   DBRollBack(oDM.ADSConnection),

stopseq,

Siehe auch

AufPosEdit2()

AufPosNeu2()


AufPosSet()

AufPosSet() – Auftragspositionsfilter setzen

Beschreibung

Die Funktion setzt einen Auftragspositionsfilter auf die DAB160. Wird oTable leer gelassen, ist die Rückgabe eine globale DAB160 mit entsprechendem Filter.

Diese Funktion wird intern von allen AufPosXXX()-Funktionen verwendet. Es wird dringend empfohlen diese Funktion an Stelle von eigenen Filtern und/oder Scopes zu verwenden.

Parameter

cAPNummer:C | DAB055:APNUMMER
oTable:O | Tabelle, auf die der Filter gelegt werden soll; default = nil

Rückgabewert

Objekt - gefilterte Tabelle

Beispiel

AufPosSet('333568 18')


AufPosVarArray()

AufPosVarArray() – Auftragsstückliste als Array

Beschreibung

Die Funktion liefert eine Auftragsstückliste in dem Format zurück, in dem es u.a. in dem Feld DAB730:VAR_STK gespeichert wird. Diese Funktion kann genutzt werden, um den Inhalt von DAB730:VAR_STK programmatisch zu füllen.

Parameter

oDM:O | Datamodul
nAufNummer:N | Auftragsnr.
nAufPosNr:N | Auftr.Pos.Nr.

Rückgabewert

Array - Array-Format:

{ { <ArtNr>, <Menge>, <Dim1>, <Dim2>, <Dim3> }, { ... }, ... }

sortiert nach allen Array-Feldern

Beispiel

| oDM, oDab730 |

oDab730:VAR_STK := ArrToStr(AufPosVarArray(oDM, 4711, 99))


AufPosVerfueg()

AufPosVerfueg() – Verfügbarkeit einer Auftragsposition

Beschreibung

Die Funktion prüft die Verfügbarkeit einer Auftragsposition. Beide Tabellen müssen vor dem Funktionsaufruf entsprechend positioniert worden sein.

Parameter

oDab055:O | DAB055 Auftragsposition (Datei 4)
oDab010:O | DAB010 Artikelstamm (Datei 2)

Rückgabewert

Numerisch

0 vollständig verfügbar

1 teilweise verfügbar

2 unbekannt (z.B. nicht lagergeführt)

3 nicht verfügbar

Beispiel

| aAvail, oDab010, oDab055 |

aAvail := AufPosVerfueg(oDab055, oDab010)


AufPosWert()

AufPosWert() – Auftragspositionswert

Beschreibung

Die Funktion liefert den Auftragspositionswert zu der bestellten Menge oder zu einer übergebenen Menge.

Parameter

oDM:O | Datenmodul
nAufNummer:N | Auftragsnummer
nAufPosNr:N | Auftragspositionsnummer
nMenge:N | Menge; default = -99999999
lIgnFaktZuschlag:L | Einbeziehung der Zusatzkosten (ja = false, nein = true); default = true
oDAB055:O | Tabellenobjekt der DAB055; default = nil

Rückgabewert

Numerisch - Auftragspositionswert

Beispiel

| oDM |

oDM := CreateObject('TBeDBGet'),

AufPosWert(oDM, 4711, 99, 5, false)


AufResDelete()

AufResDelete() – Auftragspositions-Reservierung löschen

Beschreibung

Die Funktion löscht eine Reservierung für eine Auftragsposition.

Parameter

oDM:O | Datenmodul
nAufNummer:N | Auftragsnummer
nAufPosNr:N | Auftragspositionsnummer
nResID:N | Reservierungs-ID

Rückgabewert

Keiner

Beispiel

| oDM |

oDM := CreateObject('TBeDBGet'),

startseq,

   DBStartTrans(oDM.ADSConnection),

   AufResDelete(oDM, 4711, 99, 37773),

   DBCommit(oDM.ADSConnection),

onerror,

   DBCancelAll(oDM),

   DBRollBack(oDM.ADSConnection),

stopseq,


AufResEdit()

AufResEdit() – Auftragspositions-Reservierung editieren

Beschreibung

Eine Reservierung für eine Auftragsposition wird in den Edit-Modus versetzt. (Betrifft Dab055 und Dab260).

Parameter

oDM:O | Datenmodul
nAufNummer:N | Auftragsnummer
nAufPosNr:N | Auftragspositionsnummer
nResID:N | Reservierungs-ID

Rückgabewert

Keiner

Beispiel

| oDM, oDAB260 |

oDM     := CreateObject('TBeDBGet'),

oDAB260 := DBGetTable(oDM, 68,),

startseq,

   DBStartTrans(oDM.ADSConnection),

   AufResEdit(oDM, 4711, 99, 37773),

   oDAB260:MENGE := 5,

   AufResPost(oDM, 4711, 99, 37773),

   DBCommit(oDM.ADSConnection),

onerror,

   DBCancelAll(oDM),

   DBRollback(oDM.ADSConnection),

   MessageDlg(GetErrorText()),

stopseq,

Siehe auch

AufResNeu()

AufResPost()


AufResNeu()

AufResNeu() – Auftragspositions-Reservierung erstellen

Beschreibung

Eine Reservierung für eine Auftragsposition wird erstellt.

Parameter

oDM:O | Datenmodul
nAufNummer:N | Auftragsnummer
nAufPosNr:N | Auftragspositionsnummer

Rückgabewert

Numerisch - Reservierungs-ID

Beispiel

| oDM, oDAB260, nResId |

oDM     := CreateObject('TBeDBGet'),

oDAB260 := DBGetTable(oDM, 68,),

startseq,

   DBStartTrans(oDM.ADSConnection),

   nResId := AufResNeu(oDM, 4711, 99),

   oDAB260:MENGE := 5,

   AufResPost(oDM, 4711, 99, nResId),

   DBCommit(oDM.ADSConnection),

onerror,

   DBCancelAll(oDM),

   DBRollBack(oDM.ADSConnection),

   MessageDlg(GetErrorText()),

stopseq,

Siehe auch

AufResEdit()

AufResPost()


AufResPost()

AufResPost() – Auftragspositions-Reservierung speichern

Beschreibung

Eine Reservierung für eine Auftragsposition, die sich im Editier-Modus befindet, wird gespeichert.

Parameter

oDM:O | Datenmodul
nAufNummer:N | Auftragsnummer
nAufPosNr:N | Auftragspositionsnummer
nResID:N | Reservierungs-ID

Rückgabewert

Keiner

Beispiel

| oDM, oDAB260, nResId |

oDM     := CreateObject('TBeDBGet'),

oDAB260 := DBGetTable(oDM, 68,),

startseq,

   DBStartTrans(oDM.ADSConnection),

   nResId := AufResNeu(oDM, 4711, 99),

   oDAB260:MENGE := 5,

   AufResPost(oDM, 4711, 99, nResId),

   DBCommit(oDM.ADSConnection),

onerror,

   DBCancelAll(oDM),

   DBRollBack(oDM.ADSConnection),

   MessageDlg(GetErrorText()),

stopseq,

Siehe auch

AufResEdit()

AufResNeu()


AufRueck()

AufRueck() – Prozentuale Differenz

Beschreibung

Die Funktion berechnet die prozentuale Differenz zwischen zwei Werten (z.B. zwischen Verkaufspreis und Einkaufspreis).

Parameter

nVKP:N | Numerischer Wert 1
nEKP:N | Numerischer Wert 2

Rückgabewert

Numerisch - Prozentuale Differenz

Beispiel

AufRueck(120, 100)   // Ergebnis: 20 %

AufRueck(100, 120)   // Ergebnis: -16,67 %


AZeit()

AZeit() – Gesamt-Arbeitszeit einer Baugruppe

Beschreibung

Die Funktion dient der Ermittlung der gesamten Arbeitszeit (in Minuten) für eine Baugruppe, über alle Stücklistenhierarchien.

Parameter

cArtNr:C | Artikelnummer; default = Leerstring
cRS:C | "R"üstzeit/"S"tückzeit; default = 'S'
nFaktor:N | Menge; default = 1
oDab210:O | DAB210 Stücklisten (Datei 14); default = nil

Rückgabewert

Numerisch - Gesamt-Arbeitszeit in Min

Beispiel

| oDAB210:DB := '14,1' |

AZeit('4711', "S", 1, oDab210)


BDEBuch()

BDEBuch() – BDE Buchungsfunktion

Beschreibung

Die Funktion bucht die BDE-Zeiten der Mitarbeiter. Das Datenmodul muss von der Klasse "TDM_TMEdit" sein. Die Funktion muss in jedem Fall in einer Transaktion ausgeführt werden.

- Wird die Funktion ohne den Parameter cAPosNummer aufgerufen, wird eine Anwesenheits-Buchung zu Grunde gelegt.

- Wird die Funktion ohne Stop-Datum/Zeit aufgerufen, wird eine Kommen- bzw. Auftragsstart-Buchung durchgeführt.

- Wird die Funktion ohne Start-Datum/Zeit aufgerufen, wird eine Gehen- bzw. Auftragsende-Buchung durchgeführt.

Parameter

oDM_TMEdit:O | Datamodul-Objekt (Klasse: TDM_TMEdit !!!)
nPersNr:N | Mitarbeiter-Nummer
dStartDatum:D | Start-Datum; default = leer
cStartZeit:C | Start-Zeit (erforderlich falls Start-Datum übergeben); default = Leerstring
dStopDatum:D | Stop-Datum; default = leer
cStopZeit:C | Stop-Zeit (erforderlich falls Stop-Datum übergeben); default = Leerstring
cAPosNummer:C | Kundenauftragsnr. (DAB050:ANUMMER) oder Prod.Auftr.Pos.Nr. (DAB240:B_POS_LFD); default = Leerstring
cTaetigkeit:C | Art.Nr. der Tätigkeit (erforderlich falls Kundenauftragsnr. übergeben); default = Leerstring
cTaetigTyp:C | Typ der Tätigkeit, S = Stundenabrechnung, G = Budgetzeit (erforderlich falls Tätigkeit übergeben); default = Leerstring
cKommentar:C | Kommentar zur Buchung; default = Leerstring
nFertigMenge:N | Gefertigte Stückzahl-Menge

Rückgabewert

Keiner - falls eine Buchung nicht durchgeführt werden kann, wird eine Exception ausgelöst

Beispiel

| oDM |

oDM := CreateObject("TDM_TMEdit"),

startseq,

   DBStartTrans(oDM.ADSConnection),

   // Anwesenheitszeit nachbuchen

   BDEBuch(oDM, 37, SToD("20060505"), "03:00", SToD("20060505"), "03:30"),

   // Auftragszeit nachbuchen

   BDEBuch(oDM, 37, SToD("20060505"), "03:00", SToD("20060505"), "03:30",

           '102622', '4193', 'S', 'Test!'),

   // Kommen buchen

   BDEBuch(oDM, 37, SToD("20060505"), "04:00"),

   // Auftragsstart buchen

   BDEBuch(oDM, 37, SToD("20060505"), "04:00", , ,

           '102622', '4193', 'S', 'Test!'),

   // Auftragsende buchen

   BDEBuch(oDM, 37, , , SToD("20060505"), "04:30",

           '102622', '4193', 'S', 'Test!'),

   // Gehen buchen

   BDEBuch(oDM, 37, , , SToD("20060505"), "04:30"),

   DBCommit(oDM.ADSConnection),

onerror,

   DBRollBack(oDM.ADSConnection),

   WriteLn('Err:' + ClassName(GetErrorObj()) + ':' + GetErrorText()),

stopseq,


BDECheckRights()

BDECheckRights() – Überprüfung der BDE-Rechte

Beschreibung

Die Funktion prüft, ob für BDE-Buchungen die nötigen Rechte vorliegen.

Parameter

cModus:C | Modus; N = Neuanlage; L = Löschen; V = Verändern; T = Text-Verändern
lCheckAnw:L | true: Check ob für BE-User generell freigegeben false: Check ob für MA und Zeitraum freigegeben
nPersNo:N | Personalnummer; default = 0
dStartDate:D | Startdatum; default = 0
oDab262:O | Dab262; default = nil

Rückgabewert

Logisch / Boolean - angefragtes Recht vorhanden / nicht vorhanden

Beispiel

BDECheckRights('N', true)

Siehe auch

BDEValidRights()


BDEDelete()

BDEDelete() – Löschen von Betriebsdaten-Buchungen

Beschreibung

Funktion zum Löschen von BDE-Zeiten. Das Datenmodul muss von der Klasse "TDM_TMEdit" sein. Die Funktion muss in einer Transaktion ausgeführt werden.

Parameter

oDM_TMEdit:O | Datamodul-Objekt (Klasse: "TDM_TMEdit")
nPersNr:N | Mitarbeiter-Nummer
dStartDatum:D | Start-Datum
cStartZeit:C | Start-Zeit
cAPosNummer:C | Kundenauftragsnr. (DAB050:ANUMMER) oder Prod.Auftr.Pos.Nr. (DAB240:B_POS_LFD); default = Leerstring

Rückgabewert

Keiner - falls eine Buchung nicht durchgeführt werden kann, wird eine Exception ausgelöst.

Beispiel

| oDM, oDab340 |

oDM     := CreateObject("TDM_TMEdit"),

oDab340 := DBGetTable(oDM, 41),

DBStartTrans(oDM.AdsConnection),

startseq,

   // Auftragsbuchung löschen

   BDEDelete(oDM, 37, SToD("20060505"), "04:00", "102622"),

   // Anwesenheitsbuchung löschen

   BDEDelete(oDM, 37, SToD("20060505"), "04:00"),

   DBCommit(oDM.AdsConnection),

onerror,

   DBRollBack(oDM.AdsConnection),

   WriteLn('Err:' + ClassName(GetErrorObj()) + ':' + GetErrorText()),

stopseq,


BDEEdit()

BDEEdit() – Ändern von Betriebsdaten-Buchungen

Beschreibung

Funktion zum Editieren von BDE-Zeiten. Das Datenmodul muss von der Klasse "TDM_TMEdit" sein. Die Funktion muss in einer Transaktion ausgeführt werden.

Parameter

oDM_TMEdit:O | Datamodul-Objekt (Klasse: "TDM_TMEdit")
nPersNr:N | Mitarbeiter-Nummer
dStartDatum:D | Start-Datum
cStartZeit:C | Start-Zeit
cAPosNummer:C | Kundenauftragsnr. (DAB050:ANUMMER) oder Prod.Auftr.Pos.Nr. (DAB240:B_POS_LFD); default = leer

Rückgabewert

Keiner - falls eine Buchung nicht durchgeführt werden kann, wird eine Exception ausgelöst.

Beispiel

| oDM, oDab340 |

oDM     := CreateObject("TDM_TMEdit"),

oDab340 := DBGetTable(oDM, 41),

DBStartTrans(oDM.AdsConnection),

startseq,

   // Anwesenheitsbuchung ändern

   BDEEdit(oDM, 37, SToD("20060505"), "02:45"),

   oDab340:S_ZEIT := "02:45",

   oDab340:E_ZEIT := "03:25",

   BDEPost( oDM ),

   // Auftragsbuchung ändern

   BDEEdit(oDM, 37, SToD("20060505"), "02:45", "102622  001"),

   oDab340:S_ZEIT := "02:40",

   oDab340:E_ZEIT := "03:25",

   BDEPost(oDM),

   DBCommit(oDM.AdsConnection),

onerror,

   DBRollBack(oDM.AdsConnection),

   WriteLn('Err:' + ClassName(GetErrorObj()) + ':' + GetErrorText()),

stopseq,


BDEMaDelete()

BDEMaDelete() – Mitarbeiter löschen

Beschreibung

Die Funktion löscht einen Mitarbeiter aus dem Personalstamm.

Parameter

oDM_TMEdit:O | Datamodul-Objekt (Klasse: "TDM_TMEdit")
nPersNr:N | Mitarbeiter-Nummer

Rückgabewert

Keiner

Beispiel

| oDM |

oDM := CreateObject('TDM_TMedit'),

startseq,

   DBStartTrans(oDM.ADSConnection),

   BDEMaDelete(oDM, 5),

   DBCommit(oDM.ADSConnection),

onerror,

   DBRollBack(oDM.ADSConnection),

   WriteLn('Err:' + ClassName(GetErrorObj()) + ':' + GetErrorText()),

stopseq,

Siehe auch

BDEMaEdit()

BDEMaNew()

BDEMaPost()


BDEMaEdit()

BDEMaEdit() – Personalstamm editieren

Beschreibung

Die Funktion editiert einen Mitarbeiter im Personalstamm.

Parameter

oDM_TMEdit:O | Datamodul-Objekt (Klasse: "TDM_TMEdit")
nPersNr:N | Mitarbeiter-Nummer

Rückgabewert

Keiner

Beispiel

| oDM, oDAB262 |

oDM     := CreateObject('TDM_TMedit'),

oDAB262 := DBGetTable(oDM, 40,),

startseq,

   DBStartTrans(oDM.ADSConnection),

   BDEMaEdit(oDM, 5),

   oDAB262:NAME := 'Josef Huber',

   BDEMAPost(oDM),

   DBCommit(oDM.ADSConnection),

onerror,

   DBRollBack(oDM.ADSConnection),

   WriteLn('Err:' + ClassName(GetErrorObj()) + ':' + GetErrorText()),

stopseq,

Siehe auch

BDEMaDelete()

BDEMaNew()

BDEMaPost()


BDEMaNew()

BDEMaNew() – Neuer Mitarbeiter

Beschreibung

Die Funktion erstellt einen neuen Mitarbeiter im Personalstamm.

Parameter

oDM_TMEdit:O | Datamodul-Objekt (Klasse: "TDM_TMEdit")
nPersNr:N | Mitarbeiter-Nummer

Rückgabewert

Keiner

Beispiel

| oDM, oDAB262 |

oDM     := CreateObject('TDM_TMedit'),

oDAB262 := DBGetTable(oDM, 40,),

startseq,

   DBStartTrans(oDM.ADSConnection),

   BDEMaNew(oDM, 5),

   oDAB262:NAME := 'Josef Huber',

   BDEMAPost(oDM),

   DBCommit(oDM.ADSConnection),

onerror,

   DBRollBack(oDM.ADSConnection),

   WriteLn('Err:' + ClassName(GetErrorObj()) + ':' + GetErrorText()),

stopseq,

Siehe auch

BDEMaDelete()

BDEMaEdit()

BDEMaPost()


BDEMaPost()

BDEMaPost() – Speichern im Personalstamm

Beschreibung

Die Funktion speichert einen Datensatz im Personalstamm.

Parameter

oDM_TMPost:O

Datamodul-Objekt (Klasse: "TDM_TMEdit")

Rückgabewert

Keiner

Beispiel

Siehe BDEMaEdit(), BDEMaNew()

Siehe auch

BDEMaDelete()

BDEMaEdit()

BDEMaNew()


BDEPausenSek()

BDEPausenSek() – Anzahl Pausen-Sekunden einer BDE-Buchung

Beschreibung

Die Funktion errechnet die Anzahl der Sekunden, die bei einer BDE-Buchung als Pause abgezogen werden.

Basis ist entweder die Pausen-Tabelle im Personalstamm / die Pausen der Produktionsabteilung oder die Pausen in der Buchung (DAB340:PAUSEN)

Parameter

oDM:O

Datenmodul, Tabelle Dab340 muss geöffnet und positioniert sein

Rückgabewert

Integer

Beispiel

// Beispiel aus dem Default-Updaterecht DAB340:PAUSEN_MIN

| nSecs, nResult |

if not Empty(DAB340:E_DATUM) then

   nSecs   := BDEPausenSek(GetOwner(Dab340)),   // DAB340 ist auf die Buchung positioniert

   nResult := nSecs / 60,

else

   nResult := PAUSEN_MIN,

endif,

nResult


BDEPost()

BDEPost() – Speichern von Betriebsdaten-Buchungen

Beschreibung

Funktion zum Speichern von BDE-Zeiten. Das Datenmodul muss von der Klasse "TDM_TMEdit". Es muss eine Transaktion aktiv sein.

Parameter

oDM_TMEdit:O

Datamodul-Objekt (Klasse: "TDM_TMEdit")

Rückgabewert

Keiner - falls eine Buchung nicht durchgeführt werden kann, wird eine Exception ausgelöst.

Beispiel

| oDM, oDab340 |

oDM     := CreateObject("TDM_TMEdit"),

oDab340 := DBGetTable(oDM, 41),

DBStartTrans(oDM.AdsConnection),

startseq,

   // Anwesenheitsbuchung ändern

   BDEEdit(oDM, 37, SToD("20060505"), "02:45"),

   oDab340:S_ZEIT := "02:45",

   oDab340:E_ZEIT := "03:25",

   BDEPost(oDM),

   // Auftragsbuchung ändern

   BDEEdit(oDM, 37, SToD("20060505"), "02:45", "102622"),

   oDab340:S_ZEIT := "02:40",

   oDab340:E_ZEIT := "03:25",

   BDEPost(oDM),

   DBCommit(oDM.AdsConnection),

onerror,

   DBRollBack(oDM.AdsConnection),

   WriteLn('Err:' + ClassName(GetErrorObj()) + ':' + GetErrorText()),

stopseq,


BDEValidRights()

BDEValidRights() – Prüfung der Validierungsrechte für BDE-Buchungen

Beschreibung

Die Funktion prüft die Validierungsrechte für BDE-Buchungen.

Parameter

cModus:C | Modus; N = Neuanlage; V = Verändern; T = Text-Verändern
lCheckAnw:L | true: Check ob für BE-User generell freigegeben false: Check ob für MA und Zeitraum freigegeben
nPersNo:N | Personalnummer
dStartDate:D | Startdatum
oDab262:O | Dab262; default = nil

Rückgabewert

Logisch / Boolean - Freigabe erteilt

Beispiel

| oDab262 |

if BDEValidRights('N', false, 20019, Now(), oDab262) then

   Meld('Valid'),

endif,

Siehe auch

BDECheckRights()


Bed_Calc()

Bed_Calc() – Bedarfskalkulation

Beschreibung

Die Funktion berechnet ein Array mit zukünftigen Bedarfsmengen eines Artikels.

Hinweis

Bed_Calc() ist veraltet. Verwenden sie stattdessen die Funktion Bed_Calc2(). Bed_Calc() berücksichtigt die Werte der Absatzplanung im Gegensatz zu Bed_Calc2() nicht!

Parameter

oDab010:O | DAB010
oDab410:O | DAB410
oDab320:O | DAB320
oTmpTable:O | Temp.Bedarfstabelle (nur für Modi >= 3)
cArtNo:C | Art.Nr.
nPlanHor:N | Planungshorizont in Wochen
nMeUmr:N | ME-Umrechung
nMode:N | Modus (1=Handel, 2=Baugruppen, 3=SLAufl.Kauft, 4=SL-Aufl.Baugruppen)
lBrutto:L | Brutto-Bedarf (ohne Berücksichtigung existierender Zugänge u.ä.); default = false

Rückgabewert

Array - Array mit Bedarfsterminen und -mengen im Format:

{ { "KW.XX.XX", Menge }, { ... }, ... }

Beispiel

| oDab010, oDab410, oDab320, oTmpTable |

Bed_Calc(oDab010, oDab410, oDab320, oTmpTable, 'F76-X8K', 4, 1, 1, true)

Siehe auch

Bed_Calc2()


Bed_Calc2()

Bed_Calc2() – Bedarfskalkulation

Beschreibung

Die Funktion berechnet ein Array mit zukünftigen Bedarfsmengen eines Artikels.

Parameter

oDM:O | Container-Objekt (TBeDBGetTable)
oTmpTable:O | Temp.Bedarfstabelle (nur für Modi >= 3)
cArtNo:C | Art.Nr.
nPlanHor:N | Planungshorizont in Wochen
nMeUmr:N | ME-Umrechung
nMode:N | Modus (1=Handel, 2=Baugruppen, 3=SLAufl.Kauft, 4=SL-Aufl.Baugruppen)
lBrutto:L | Brutto-Bedarf (ohne Berücksichtigung existierender Zugänge u.ä.); default = false
nForecastMode | Modus; default = 0; 0 = Entsprechend Einstellung im Artikelstamm; 1 = Konventionelle Methode; 2 = nach Absatzplanungsmethode (nur wenn Absatzplanung in DAB010 auf Budgetierung oder Ja steht)

Rückgabewert

Array - Array mit Bedarfsterminen und -mengen im Format:

{ { "KW.XX.XX", Menge }, { ... }, ... }

Beispiel

| oDm |

// Netto-Fertigungs-Primärbedarf ermitteln

oDm := CreateObject("TBeDBGet"),

Bed_Calc2(oDM, nil(), "RT_BG1", 10, 1, 2, false, 1)

Siehe auch

Bed_Calc()


BeImageList()

BeImageList() – Kurzbeschreibung

Beschreibung

Die Funktion ermöglicht den Zugriff auf die internen Imagelist-Objekte von be.

Hinweis

Als Parameter können die folgende Konstanten eingesetzt werden:

nImageListMain16 Imageliste für Bilder im Format 16x16; Standard

nImageListIndi16 Imageliste für Bilder im Format 16x16; individuell definierbarer Inhalt

nImageListMain24 Imageliste für Bilder im Format 24x24; Standard

nImageListMain32 Imageliste für Bilder im Format 32x32; Standard

Parameter

nImageList:N

Nummer der Imageliste

Rückgabewert

Imagelist-Objekt

Beispiel

BeImageList(nImageListMain16) // Standard-Imageliste von be

Siehe auch

AttribImageInfo()


BEMessageDlgEx()

BEMessageDlgEx() – Meldungsdialog (erweitert)

Beschreibung

Die Funktion ermöglicht die Dialogabfrage einer Meldung und gibt einen entsprechenden Wert zurück.

Parameter

Msg:C | Meldungstext
DlgType:N | Dialogtyp: 0 – Warnung; 1 – Fehler; 2 – Information; 3 – Bestätigung/Frage; 4 – BE-Programmierung
Buttons:A | Array mit Buttonbeschriftung
Results:A | Numerisches Array mit Buttonergebnis
DefaultResult:N | Default-Ergebnis/Auswahl
CancelResult:N | Ergebnis bei Abbruch

Rückgabewert

Numersich - Kennziffer des gedrückten Buttons bzw. Abbruch-Ergebnis

Beispiel

BeMessageDlgEx('Fehler! Wie soll weiter verfahren werden?', 3,

               {'Wiederholen', 'Ignorieren', 'Abbrechen'}, {1, 2, 4}, 3, 4)

Siehe auch

MessageDlg()


BEPrintConfig()

BEPrintConfig() – Druckerzuweisungen anzeigen/ändern

Beschreibung

Die Funktion öffnet das Fenster "Druckerzuweisungen".

Parameter

aShowModal:L

Modale Anzeige; default = true

true: Fenster wird modal angezeigt

false: Verarbeitung des Codeblocks läuft weiter (nicht modal)

Rückgabewert

keiner

Beispiel

BEPrintConfig(true)

Siehe auch

BEPrintDoc()


BEPrintDoc()

BEPrintDoc() – Belegdruck

Beschreibung

Die Funktion führt für eine Belegart und eine Beleg-Nummer den Belegdruck aus.

Parameter

aDocType:N | Bestimmt den Belegtyp, der gedruckt werden soll; DT_ANGE Angebot; DT_AUFB Auftragsbestätigung; DT_AUFS Service-Anforderung; DT_PRRE Proformarechnung; DT_KOMM Kommissionierschein; DT_LIEF Lieferschein; DT_SALI Sammellieferschein; DT_VMLI Mietlieferschein; DT_VMRU Mietrückgabe; DT_RECH Rechnung; DT_TLRE Teilrechnung; DT_ABRE Abschlagsrechnung; DT_SARE Sammelrechnung; DT_VMZW Mietzwischenrechnung; DT_MAHN Mahnung; DT_PRAN Preisanfrage; DT_BEST Bestellung; DT_ABEI Abrufeinteilung; DT_BEMA Bestellmahnung
aNo:U | Nummer des Beleges bzw. Kunden- oder Lieferanten-Nr. In den meisten Fällen kann 0 übergeben werden, um das Belegauswahlfenster anzeigen zu lassen; default = 0
aPrintDlg:L | Anzeige des Druckauswahlfensters; default = true
aModal:L | Modale Anzeige (bei Angabe von aNo:U hat dieser Parameter keine Wirkung); default = true true: Fenster wird modal angezeigt false: Verarbeitung des Codeblocks läuft weiter (nicht modal)

Rückgabewert

Numerisch - Handle des Fensters wenn aModal:L = false ansonsten Null

Beispiel

BEPrintDoc(DT_ANGE, 0, true, false)

Siehe auch

BEPrintConfig()


BERemoteClientStart()

BERemoteClientStart() – BE Remote-Client

Beschreibung

Eine BE-Applikation wird als Client-Exe aktiviert.

Die Funktionen BeRemoteServerStart( nPortNr ), BeRemoteServerStop( nPortNr ), BeRemoteClientStart( cRemoteHost, nRemotePort ), BeRemoteClientStop( cRemoteHost, nRemotePort ), BeRemoteExecute( cRemoteHost, nRemotePort, cCodeblock, [lAntw] ) dienen zum Ausführen eines Codeblocks auf einem entfernten Rechner (oder einfach einer anderen BE-Instanz).

Als "Server-Exe" wird die Exe verstanden, auf der ein BeRemoteServerStart() ausgeführt wurde.

Die Client-Exe muss die IP-Adresse oder den Namen des PC, sowie den Port der Server-Exe kennen (sprich: als Parameter in den entsprechenden Funktionen übergeben bekommen).

Zum Ablauf:

Eine BE-Applikation wird als Server-Exe aktiviert (durch Aufruf von BeRemoteServerStart()).

Die Server-Exe wartet jetzt im Hintergrund auf den Empfang einer Sendung einer Client-Exe.

Eine BE-Applikation wird als Client-Exe aktiviert (durch Aufruf von BeRemoteClientStart()).

Die Aktivierung ist nur möglich, wenn die Server-Exe bereits aktiviert wurde!

Die Client-Exe ist jetzt bereit einen Codeblock durch Aufruf von BeRemoteExecute() an die Server-Exe zu senden.

Kommt eine Sendung bei der Server-Exe an, wird der gesendete Codeblock sofort ausgeführt und das Ergebnis als Antwort ggf. zurückgesendet (falls lAntw = True).

Die Client-Exe wartet max. nTimeOut Sekunden (0 = unbegrenzt) auf die Antwort der Server-Exe.

Zu beachten:

Die Kommunikation erfolgt über IP.

Die gemeinsame Port-Nr. dient zur gegenseitigen Identifizierung der Exen.

Die Port-Nr. sollte in einem Bereich zwischen 50000 und 64000 liegen, um Konflikte mit der BE-Funkscanner-Kommunikation zu vermeiden.

Eine BE-Applikation kann gleichzeitig als Server- und Client-Exe aktiviert werden.

Server- und Client-Exe können sich auf dem gleichen PC befinden (müssen sie aber nicht).

Parameter

cRemoteHost:C | IP-Adresse bzw. Name des PC auf dem die Server-Exe läuft
nRemotePort:N | Port-Nr. des PC auf dem die Server-Exe "horcht"

Rückgabewert

Keiner

Beispiel

| cServer |

cServer := 'be-neu', // oder z.B.: 192.168.1.1

startseq,

   BeRemoteClientStart(cServer, 55300),

   if BeRemoteExecute(cServer, 55300, 'JN("Alles klar?")', true) then

// Auf Bestätigung der Meldung warten und Ergebnis interpretieren

      Meld("Es war alles klar!"),

   endif,

// Ergebnis nicht abwarten

   BeRemoteExecute('be-wxp', 55300, 'Call("ServerIndiProg", 4711)', false)

onerror,

   WriteLn('ERROR: ' + GetErrorText()),

stopseq,

BeRemoteClientStop(cServer, 55300),


BERemoteClientStop()

BERemoteClientStop() – BE Remote-Client

Beschreibung

Eine BE-Applikation wird als Client-Exe gestoppt.

Die Funktionen BeRemoteServerStart( nPortNr ), BeRemoteServerStop( nPortNr ), BeRemoteClientStart( cRemoteHost, nRemotePort ), BeRemoteClientStop( cRemoteHost, nRemotePort ), BeRemoteExecute( cRemoteHost, nRemotePort, cCodeblock, [lAntw] ) dienen zum Ausführen eines Codeblocks auf einem entfernten Rechner (oder einfach einer anderen BE-Instanz).

Als "Server-Exe" wird die Exe verstanden, auf der ein BeRemoteServerStart() ausgeführt wurde.

Die Client-Exe muss die IP-Adresse oder den Namen des PC, sowie den Port der Server-Exe kennen (sprich: als Parameter in den entsprechenden Funktionen übergeben bekommen).

Zum Ablauf:

Eine BE-Applikation wird als Server-Exe aktiviert (durch Aufruf von BeRemoteServerStart()).

Die Server-Exe wartet jetzt im Hintergrund auf den Empfang einer Sendung einer Client-Exe.

Eine BE-Applikation wird als Client-Exe aktiviert (durch Aufruf von BeRemoteClientStart()).

Die Aktivierung ist nur möglich, wenn die Server-Exe bereits aktiviert wurde!

Die Client-Exe ist jetzt bereit einen Codeblock durch Aufruf von BeRemoteExecute() an die Server-Exe zu senden.

Kommt eine Sendung bei der Server-Exe an, wird der gesendete Codeblock sofort ausgeführt und das Ergebnis als Antwort ggf. zurückgesendet (falls lAntw = True).

Die Client-Exe wartet max. nTimeOut Sekunden (0 = unbegrenzt) auf die Antwort der Server-Exe.

Zu beachten:

Die Kommunikation erfolgt über IP.

Die gemeinsame Port-Nr. dient zur gegenseitigen Identifizierung der Exen.

Die Port-Nr. sollte in einem Bereich zwischen 50000 und 64000 liegen, um Konflikte mit der BE-Funkscanner-Kommunikation zu vermeiden.

Eine BE-Applikation kann gleichzeitig als Server- und Client-Exe aktiviert werden.

Server- und Client-Exe können sich auf dem gleichen PC befinden (müssen sie aber nicht).

Parameter

cRemoteHost:C | IP-Adresse bzw. Name des PC auf dem die Server-Exe läuft
nRemotePort:N | Port-Nr. des PC auf dem die Server-Exe "horcht"

Rückgabewert

Keiner

Beispiel

| cServer |

cServer := 'be-neu', // oder z.B.: 192.168.1.1

startseq,

   BeRemoteClientStart(cServer, 55300),

   if BeRemoteExecute(cServer, 55300, 'JN("Alles klar?")', true) then

// Auf Bestätigung der Meldung warten und Ergebnis interpretieren

      Meld("Es war alles klar!"),

   endif,

// Ergebnis nicht abwarten

   BeRemoteExecute('be-wxp', 55300, 'Call("ServerIndiProg", 4711)', false)

onerror,

   WriteLn('ERROR: ' + GetErrorText()),

stopseq,

BeRemoteClientStop(cServer, 55300),


BERemoteExecute()

BERemoteExecute() – BE Remote-Client

Beschreibung

Die Client-Exe fordert die Ausführung eines Codeblock Aufrufs auf der Server-Exe an.

Die Funktionen BeRemoteServerStart( nPortNr ), BeRemoteServerStop( nPortNr ), BeRemoteClientStart( cRemoteHost, nRemotePort ), BeRemoteClientStop( cRemoteHost, nRemotePort ), BeRemoteExecute( cRemoteHost, nRemotePort, cCodeblock, [lAntw] ) dienen zum Ausführen eines Codeblocks auf einem entfernten Rechner (oder einfach einer anderen BE-Instanz).

Als "Server-Exe" wird die Exe verstanden, auf der ein BeRemoteServerStart() ausgeführt wurde.

Die Client-Exe muss die IP-Adresse oder den Namen des PC, sowie den Port der Server-Exe kennen (sprich: als Parameter in den entsprechenden Funktionen übergeben bekommen).

Zum Ablauf:

Eine BE-Applikation wird als Server-Exe aktiviert (durch Aufruf von BeRemoteServerStart()).

Die Server-Exe wartet jetzt im Hintergrund auf den Empfang einer Sendung einer Client-Exe.

Eine BE-Applikation wird als Client-Exe aktiviert (durch Aufruf von BeRemoteClientStart()).

Die Aktivierung ist nur möglich, wenn die Server-Exe bereits aktiviert wurde!

Die Client-Exe ist jetzt bereit einen Codeblock durch Aufruf von BeRemoteExecute() an die Server-Exe zu senden.

Kommt eine Sendung bei der Server-Exe an, wird der gesendete Codeblock sofort ausgeführt und das Ergebnis als Antwort ggf. zurückgesendet (falls lAntw = True).

Die Client-Exe wartet max. nTimeOut Sekunden (0 = unbegrenzt) auf die Antwort der Server-Exe.

Zu beachten:

Die Kommunikation erfolgt über IP.

Die gemeinsame Port-Nr. dient zur gegenseitigen Identifizierung der Exen.

Die Port-Nr. sollte in einem Bereich zwischen 50000 und 64000 liegen, um Konflikte mit der BE-Funkscanner-Kommunikation zu vermeiden.

Eine BE-Applikation kann gleichzeitig als Server- und Client-Exe aktiviert werden.

Server- und Client-Exe können sich auf dem gleichen PC befinden (müssen sie aber nicht).

Parameter

cRemoteHost:C | IP-Adresse bzw. Name des PC auf dem die Server-Exe läuft
nRemotePort:N | Port-Nr. des PC auf dem die Server-Exe "horcht"
cCodeblock:C | In der Server-Exe auszuführender Codeblock
lAntw:L | auf Antwort der Server-Exe warten; default = true
nTimeOut:N | Max.Anzahl Sekunden, die auf die entfernte Ausführung gewartet wird. 0 = unbegrenzt; default = 0
lAbbrErl:L | Manueller Abbruch erlaubt; default = true

Rückgabewert

Undefined - Falls lAntw = True, Ergebnis des Codeblockes, sonst keiner

Beispiel

| cServer |

cServer := 'be-neu', // oder z.B.: 192.168.1.1

startseq,

   BeRemoteClientStart(cServer, 55300),

   if BeRemoteExecute(cServer, 55300, 'JN("Alles klar?")', true) then

// Auf Bestätigung der Meldung warten und Ergebnis interpretieren

      Meld("Es war alles klar!"),

   endif,

// Ergebnis nicht abwarten

   BeRemoteExecute('be-wxp', 55300, 'Call("ServerIndiProg", 4711)', false)

onerror,

   WriteLn('ERROR: ' + GetErrorText()),

stopseq,

BeRemoteClientStop(cServer, 55300),


BERemoteServerStart()

BERemoteServerStart() – BE Remote-Client

Beschreibung

Eine BE-Applikation wird als Server-Exe aktiviert.

Die Funktionen BeRemoteServerStart( nPortNr ), BeRemoteServerStop( nPortNr ), BeRemoteClientStart( cRemoteHost, nRemotePort ), BeRemoteClientStop( cRemoteHost, nRemotePort ), BeRemoteExecute( cRemoteHost, nRemotePort, cCodeblock, [lAntw] ) dienen zum Ausführen eines Codeblocks auf einem entfernten Rechner (oder einfach einer anderen BE-Instanz).

Als "Server-Exe" wird die Exe verstanden, auf der ein BeRemoteServerStart() ausgeführt wurde.

Die Client-Exe muss die IP-Adresse oder den Namen des PC, sowie den Port der Server-Exe kennen (sprich: als Parameter in den entsprechenden Funktionen übergeben bekommen).

Zum Ablauf:

Eine BE-Applikation wird als Server-Exe aktiviert (durch Aufruf von BeRemoteServerStart()).

Die Server-Exe wartet jetzt im Hintergrund auf den Empfang einer Sendung einer Client-Exe.

Eine BE-Applikation wird als Client-Exe aktiviert (durch Aufruf von BeRemoteClientStart()).

Die Aktivierung ist nur möglich, wenn die Server-Exe bereits aktiviert wurde!

Die Client-Exe ist jetzt bereit einen Codeblock durch Aufruf von BeRemoteExecute() an die Server-Exe zu senden.

Kommt eine Sendung bei der Server-Exe an, wird der gesendete Codeblock sofort ausgeführt und das Ergebnis als Antwort ggf. zurückgesendet (falls lAntw = True).

Die Client-Exe wartet max. nTimeOut Sekunden (0 = unbegrenzt) auf die Antwort der Server-Exe.

Zu beachten:

Die Kommunikation erfolgt über IP.

Die gemeinsame Port-Nr. dient zur gegenseitigen Identifizierung der Exen.

Die Port-Nr. sollte in einem Bereich zwischen 50000 und 64000 liegen, um Konflikte mit der BE-Funkscanner-Kommunikation zu vermeiden.

Eine BE-Applikation kann gleichzeitig als Server- und Client-Exe aktiviert werden.

Server- und Client-Exe können sich auf dem gleichen PC befinden (müssen sie aber nicht).

Parameter

nRemotePort:N

Port-Nr. auf dem die Server-Exe "horchen" soll

Rückgabewert

Keiner

Beispiel

startseq,

   BeRemoteServerStart(55300),

onerror,

   WriteLn('ERROR: ' + GetErrortext()),

stopseq,


BERemoteServerStop()

BERemoteServerStop() – BE Remote-Client

Beschreibung

Eine Remote Server-Exe wird angehalten.

Die Funktionen BeRemoteServerStart( nPortNr ), BeRemoteServerStop( nPortNr ), BeRemoteClientStart( cRemoteHost, nRemotePort ), BeRemoteClientStop( cRemoteHost, nRemotePort ), BeRemoteExecute( cRemoteHost, nRemotePort, cCodeblock, [lAntw] ) dienen zum Ausführen eines Codeblocks auf einem entfernten Rechner (oder einfach einer anderen BE-Instanz).

Als "Server-Exe" wird die Exe verstanden, auf der ein BeRemoteServerStart() ausgeführt wurde.

Die Client-Exe muss die IP-Adresse oder den Namen des PC, sowie den Port der Server-Exe kennen (sprich: als Parameter in den entsprechenden Funktionen übergeben bekommen).

Zum Ablauf:

Eine BE-Applikation wird als Server-Exe aktiviert (durch Aufruf von BeRemoteServerStart()).

Die Server-Exe wartet jetzt im Hintergrund auf den Empfang einer Sendung einer Client-Exe.

Eine BE-Applikation wird als Client-Exe aktiviert (durch Aufruf von BeRemoteClientStart()).

Die Aktivierung ist nur möglich, wenn die Server-Exe bereits aktiviert wurde!

Die Client-Exe ist jetzt bereit einen Codeblock durch Aufruf von BeRemoteExecute() an die Server-Exe zu senden.

Kommt eine Sendung bei der Server-Exe an, wird der gesendete Codeblock sofort ausgeführt und das Ergebnis als Antwort ggf. zurückgesendet (falls lAntw = True).

Die Client-Exe wartet max. nTimeOut Sekunden (0 = unbegrenzt) auf die Antwort der Server-Exe.

Zu beachten:

Die Kommunikation erfolgt über IP.

Die gemeinsame Port-Nr. dient zur gegenseitigen Identifizierung der Exen.

Die Port-Nr. sollte in einem Bereich zwischen 50000 und 64000 liegen, um Konflikte mit der BE-Funkscanner-Kommunikation zu vermeiden.

Eine BE-Applikation kann gleichzeitig als Server- und Client-Exe aktiviert werden.

Server- und Client-Exe können sich auf dem gleichen PC befinden (müssen sie aber nicht).

Parameter

nRemotePort:N

Port-Nr. auf dem die Server-Exe "horchen" soll

Rückgabewert

Keiner

Beispiel

startseq,

   BeRemoteServerStop(55300),

onerror,

   WriteLn('ERROR: ' + GetErrortext()),

stopseq,


BestPlanAuto()

BestPlanAuto() – Dispo-Planung

Beschreibung

Automatische Dispo-Planung starten. Tabelle "Einkauf Dispo Planung" (DAB315) wird mit Bestellvorschlägen gefüllt.

Parameter

nLiefNr:N | Lieferantennummer
lLoeschPlan:L | DAB315 vor Beginn löschen

Rückgabewert

keiner

Beispiel

BestPlanAuto(4711, false),


BestPlanClear()

BestPlanClear() – Dispo-Planung

Beschreibung

Die Funktion dient dem Löschen von Dispo-Datensätzen inklusive assoziierter Grob-Planung.

Parameter

oDM:O | Datenmodul, Container-Objekt (TBeDBGetTable)
nWorkArea:N | Workarea. Nur DAB315, DAB320, DAB220 und DAB215 zulässig
cFilter:C | Filter; default = Leerstring

Rückgabewert

keiner

Beispiel

| oDm |

oDm := CreateObject("TBeDBGet"),

BestPlanClear(oDM, 32),


BestPosBuch()

BestPosBuch() – Bestellrückstandsbuchung

Beschreibung

Funktion zur automatischen Bestell-Rückstandsbuchung.

Wird eine Bestell-Nr. übergeben, wird der entsprechende Bestell-Rückstand verbucht und ggf. die Restbestellung gelöscht, falls der entsprechende Parameter gesetzt wurde.

Wird keine Bestell-Nr. übergeben, wird eine Buchung ohne Rückstand durchgeführt und ggf. offene Rückstände aufgelöst, falls der entsprechende Parameter gesetzt wurde.

Hinweis

Die Funktion ist veraltet. Verwenden Sie stattdessen BestposBuch2().

Parameter

oConnect:O | Connection (erforderlich, leer erlaubt, Transaktion wird ggf. automatisch durchgeführt)
nLiefNr:N | Lieferantennummer
cArtNr:C | Artikelnummer (erforderlich, leer erlaubt, falls Bestell-Nr./-Pos. übergeben wird)
nZugMengeEK:N | Zug. Menge in EK-Einh.
nZugMengeLAG:N | Zug. Menge in Lager-Einh.
dZugDatum:D | Zug. Datum
cLager:C | Zug. Lager; default = Leerstring
nBestNr:N | Bestell-Nr.; default = 0
nBestPos:N | Bestell-Pos.; default = 0
cBestTermin:C | Termin; default = Leerstring
cBestKommiss:C | Kommission ; default = Leerstring
cBelegNr:C | Belegnummer; default = Leerstring
lRueckAufloes:L | Automatische Bestell. Rückstandsauflösung; default = false
lRestLoesch:L | Rest-Bestellung Löschen; default = false
lAbrufErh:L | Abruf-Bestellung um Diff. erhöhen; default = false
lKdAuftrAuloes:L | Dialog Kunden-Rückstände auflösen anzeigen; default = false
lEtikDruck:L | Art.Etik. drucken; default = false
oDab000:O | Tabellenobjekt DAB000; default = nil
oDab010:O | Tabellenobjekt DAB010; default = nil
oDab055:O | Tabellenobjekt DAB055; default = nil
oDab050:O | Tabellenobjekt DAB050; default = nil
oDab100:O | Tabellenobjekt DAB100; default = nil
oDab240:O | Tabellenobjekt DAB240; default = nil
oDab510:O | Tabellenobjekt DAB510; default = nil
oDab520:O | Tabellenobjekt DAB520; default = nil
oDab020:O | Tabellenobjekt DAB020; default = nil;
oDab035:O | Tabellenobjekt DAB035; default = nil;
oDab110:O | Tabellenobjekt DAB110; default = nil
oDab235:O | Tabellenobjekt DAB235; default = nil
oDab310:O | Tabellenobjekt DAB310; default = nil
oDab410:O | Tabellenobjekt DAB410; default = nil
oDab610:O | Tabellenobjekt DAB610; default = nil
oDab710:O | Tabellenobjekt DAB710; default = nil
oDab720:O | Tabellenobjekt DAB720; default = nil
oDab730:O | Tabellenobjekt DAB730; default = nil
oDab910:O | Tabellenobjekt DAB910; default = nil

Rückgabewert

Alphanumerisch - Dispo-Nr.

Beispiel

| oADSConnection |

BestPosBuch(oADSConnection, 60052, 'XF7-GX-T', 5, 10, Now()+1),

Siehe auch

BestPosBuch2()


BestPosBuch2()

BestPosBuch2() – Bestellrückstandsbuchung

Beschreibung

Funktion zur automatischen Bestell-Rückstandsbuchung.

Wird eine Bestell-Nr. übergeben, wird der entsprechende Bestell-Rückstand verbucht und ggf. die Restbestellung gelöscht, falls der entsprechende Parameter gesetzt wurde.

Wird keine Bestell-Nr. übergeben, wird eine Buchung ohne Rückstand durchgeführt und ggf. offene Rückstände aufgelöst, falls der entsprechende Parameter gesetzt wurde.

Parameter

oDM:O | Datamodul
nLiefNr:N | Liefernummer
nRecID:N | Record ID der DAB035
cArtNr:C | Artikelnummer (erforderlich, leer erlaubt, falls Bestell Nr./-Pos. übergeben wird)
nZugMengeEK:N | Zugangsmenge Wareneingang
nZugMengeLAG:N | Zugangsmenge Lager
dZugDatum:D | Zug. Datum
cLager:C | Zug. Lager
nBestNr:N | Bestell-Nr.
nBestPos:N | Bestell-Pos.
cBestTermin:C | Termin
cBestKommiss:C | Kommission
cBelegNr:C | Belegnummer
lRueckAufloes:L | Automatische Bestell. Rückstandsauflösung
lRestLoesch:L | Rest-Bestellung Löschen
lAbrufErh:L | Abruf-Bestellung um Diff. erhöhen
lKdAuftrAuloes:L | Dialog Kunden-Rückstände auflösen anzeigen
lEtikDruck:L | Art.Etik. drucken
aKomissDetail:A | Detailierte Kommissionsnr.-Information (wichtig für Lagerplatzbuchung!) {Kommiss, WEMenge, Lagerplatz}
dLiefDatum:D | Lieferungsdatum

Rückgabewert

Alphanumerisch - Dispo-Nr.

Beispiel

| oDM, aKommiss, oDAB035 |

oDM      := CreateObject('TBeDBget'),

oDAB035  := DBGetTable(oDM, 13,),

aKommiss := {'123456', 5, 'PLATZ1'},

startseq,

   DBStartTrans(oDM.ADSConnection),

   BestPosBuch2(oDM, 1, DBRecno(oDAB035), 'Testartikel1', oDAB035:MENGE, 5, Date(),

                '0', '23.08.2006', '123456', '1369', , , , , , aKommiss, Date()),

   DBCommit(oDM.ADSConnection),

onerror,

   DBRollBack(oDM.ADSConnection),

   Meld(GetErrorText()),

stopseq,

Siehe auch

BestPosBuch()


BestPosDelete()

BestPosDelete() – Bestellrückstand löschen

Beschreibung

Die Funktion löscht einen Bestellrückstand.

Parameter

oDM:O | Datamodul
nRedID | ID des DAB035 Satzes

Rückgabewert

keiner

Beispiel

| oDM, oDAB035, oDAB010, nID |

oDM      := CreateObject('TBeDBget'),

oDAB035  := DBGetTable(oDM, 13,),

nID      := 528806,

startseq,

   DBStartTrans(oDM.ADSConnection),

   oDAB010 := DBGetTable(oDM, 2,),

   DBSeek(lookup(13, 8, {{nID}}, "ARTNR"), oDAB010),

   BestPosDelete(oDM, nID),

   DBCommit(oDM.ADSConnection),

onerror,

   DBRollBack(oDM.ADSConnection),

   Meld(GetErrorText()),

stopseq,


BestPosEdit()

BestPosEdit() – Bestellrückstand editieren

Beschreibung

Die Funktion versetzt einen Bestellrückstand in den Änderungsmodus.

Parameter

oDM:O | Datenmodul
nRecID | ID des DAB035 Satzes

Rückgabewert

Keiner

Beispiel

| oDM, oDAB035, oDAB010, nID |

oDM      := CreateObject('TBeDBget'),

oDAB035  := DBGetTable(oDM, 13,),

nID      := 528806,

startseq,

   DBStartTrans(oDM.ADSConnection),

   oDAB010 := DBGetTable(oDM, 2,),

   DBSeek(lookup(13, 8, {{nID}}, "ARTNR"), oDAB010),

   BestPosEdit(oDM, nID),

   oDAB035:MENGE := 5,

   BestPosPost(oDM, nID),

   DBCommit(oDM.ADSConnection),

onerror,

   DBRollBack(oDM.ADSConnection),

   Meld(GetErrorText()),

stopseq,


BestPosNew()

BestPosNew() – Neuer Bestellrückstand

Beschreibung

Die Funktion erzeugt einen neuen Bestellrückstand.

Parameter

oDM:O | Datenmodul
nLiefNr:N | Lieferantennummer
nBestNr:N | Bestellnummer
cArtNr:N | Artikelnummer
lKeepInsert:L | Nach dem Erstellen im Bearbeitungsmodus bleiben; default = false

Rückgabewert

Numerisch - RecID des erstellten Bestellrückstands

Beispiel

| oDM, aKommiss, oDAB035, nID |

oDM      := CreateObject('TBeDBget'),

oDAB035  := DBGetTable(oDM, 13,),

startseq,

   DBStartTrans(oDM.ADSConnection),

   nID := BestPosNew(oDM, 1, 10010, 'TESTARTIKEL1', true),

   oDAB035:MENGE := 10,

   BestPosPost(oDM, nID),

   DBCommit(oDM.ADSConnection),

onerror,

   DBRollBack(oDM.ADSConnection),

   Meld(GetErrorText()),

stopseq,


BestPosPost()

BestPosPost() – Bestellrückstand speichern

Beschreibung

Die Funktion speichert einen im Änderungsmodus befindlichen Bestellrückstand.

Hinweis

Artikelstammtabelle (DAB010) muss manuell positioniert werden!

Parameter

oDM:O | Datenmodul
nRecID:N | ID des DAB035 Satzes

Rückgabewert

keiner

Beispiel

| oDM, oDAB035, oDAB010, nID |

oDM      := CreateObject('TBeDBget'),

oDAB035  := DBGetTable(oDM, 13,),

nID      := 528806,

startseq,

   DBStartTrans(oDM.ADSConnection),

   oDAB010 := DBGetTable(oDM, 2,),

   DBSeek(lookup(13, 8, {{nID}}, "ARTNR"), oDAB010),

   BestPosEdit(oDM, nID),

   oDAB035:MENGE := 5,

   BestPosPost(oDM, nID),

   DBCommit(oDM.ADSConnection),

onerror,

   DBRollBack(oDM.ADSConnection),

   Meld(GetErrorText()),

stopseq,


BEUserName()

BEUserName() – Benutzername

Beschreibung

Die Funktion liefert den Benutzernamen zu einer Benutzer-Nummer.

Parameter

aId:N

Benutzernummer

Rückgabewert

Alphanumerisch – Benutzername

Beispiel

| aID |

aID := ASC(Usr),

WriteLn(BeUserName(aId))


CalcSLText()

CalcSLText() – Druckfeld Handelsstückliste

Beschreibung

Die Funktion dient in einem Report zur Anzeige von eindimensionalen Handelsstücklisten aus einem Auftrag.

Die Funktion nicht im Belegdruck verwenden, dort stehen o[pv] Variablen zur Verfügung!

Parameter

cCodedANUMMER:C | Codierte Auftragsnummer (Auftragsnr. * 1000 + Auftragsposition)
nSprachNr:N | Sprachnummer
lCalcChargeText:L | Nur bei eingetragenen Versandmengen, Ausgabe der Chargen/Seriennummern; default = false

Rückgabewert

Alphanumerisch – 3 Spalten: "Anzahl, Einheit, Artikelnr. + Bezeichnung"

Um den Inhalt einzelner Spalten zu erhalten, die im Report jeweils in einem Memo dargestellt werden können, wird die Funktion SplitTabbedText() genutzt.

Beispiel

| aAuftr, aText, oDab055:DB := '4,1' |

aAuftr := Hex(Val(SubStr(oDab055:APNUMMER, 1 6)) * 1000 +

          Val(SubStr(oDab055:APNUMMER, 7, 3)), 32, 6),

aText  := CalcSLText(aAuftr, 0),

if !empty(atext) then

   aText := SplitTabbedText (aText, 1, 3),

endif,

Siehe auch

CalcTSLText()

SplitTabbedText()


CalcTSLText()

CalcTSLText() – Druckfeld Standardstückliste

Beschreibung

Die Funktion dient in einem Report zur Anzeige von eindimensionalen Standardstücklisten aus dem Artikelstamm.

Die Funktion nicht im Belegdruck verwenden, dort stehen o[pv] Variablen zur Verfügung!

Parameter

cArtNr:C | Artikelnummer
nSprachNr:N | Sprachnummer
lMitAPos:L | Anzeige der Arbeitswerte für Artikel; default = false

Rückgabewert

Alphanumerisch – 3 Spalten: "Anzahl, Einheit, Artikelnr. + Bezeichnung"

Um den Inhalt einzelner Spalten zu erhalten, die im Report jeweils in einem Memo dargestellt werden können, wird die Funktion SplitTabbedText() genutzt.

Beispiel

| aText, oDab010:DB := '2,1' |

aText := CalcTSLText(oDab010:ARTNR, 0, false),

if !empty(atext) then

   aText := SplitTabbedText(aText, 1, 3),

endif,

Siehe auch

CalcSLText()

SplitTabbedText()


CalcVarText()

CalcVarText() – Druckfeld Variantenstückliste

Beschreibung

Die Funktion dient in einem Report zur Anzeige von eindimensionalen Variantenstücklisten aus einem Auftrag.

Die Funktion nicht im Belegdruck verwenden, dort stehen o[pv] Variablen zur Verfügung!

Parameter

cCodedANUMMER:C | Codierte Auftragsnummer (Auftragsnr.*1000+Auftragsposition)
cSL_MEMO:C | DAB055:SL_Memo (Auftragspositionssatz:Datei 4)
nSprachNr:N | Sprachnummer
cSprachSL_MEMO:C | DAB055:SL_MemoFS (Auftragspositionssatz:Datei 4)
lIgnoreEmpty:L | Nullmengen ignorieren

Rückgabewert

Alphanumerisch – 3 Spalten: "Anzahl, Einheit, Artikelnr. + Bezeichnung"

Um den Inhalt einzelner Spalten zu erhalten, die im Report jeweils in einem Memo dargestellt werden können, wird die Funktion SplitTabbedText() genutzt.

Beispiel

| aText, aAuftr, oDab055:DB := '4,1' |

aText := CalcVarText(aAuftr, oDab055:SL_MEMO, 0, '', true),

if !empty(atext) then

   aText := SplitTabbedText (aText, 1, 2),

endif,

Siehe auch

CalcSLText()

CalcTSLText()

SplitTabbedText()


Charge_VD()

Charge_VD() – Chargen Verfallsdatum

Beschreibung

Die Funktion gibt das Chargen-Verfallsdatum für einen Artikel/eine Charge zurück.

Parameter

cArtNo:C | Artikelnr.
cCommiss:C | Cahrgennummer
oDab720:O | DAB720 Kommissions/Chargenverfolgung. Sollte aus Performance-Gründen immer mit übergeben werden.

Rückgabewert

Datum - Verfallsdatum

Beispiel

Charge_VD('4711', 'CHARGE_01')


CharOnly()

CharOnly() – Zeichenkettenvergleich

Beschreibung

Die Funktion dient der Bildung der Schnittmenge zwischen zwei Zeichenketten auf der Basis von Einzelzeichen. Es werden alle Zeichen aus der zweiten Zeichenkette entfernt, die nicht in der ersten angegeben wurden. Die Funktion eignet sich besonders zum Datenvergleich.

Parameter

cCharsOnly:C | Zeichenkette 1
cText:C | Zeichenkette 2

Rückgabewert

Alphanumerisch - Schnittmenge der Zeichenketten

Beispiel

CharOnly("0123456789","089 231148-54"),

CharOnly("0123456789","089/231148-54")  // Ergebnis: '08923114854'


ChkSLSperre()

ChkSLSperre() – Gesperrte Stücklistenartikel

Beschreibung

Die Funktion prüft eine Stückliste auf gesperrte Artikel/Baugruppen und gibt die Nr. der ersten Stücklistenebene zurück, in der sich ein gesperrter Artikel befindet.

Parameter

aDab210:O | DAB210 Stückliste (Datei 14)
aDab010:O | DAB010 Artikelstamm (Datei 2)
aArtNo:C | Artikelnummer

Rückgabewert

Numerisch - Stücklistenebene des ersten gesperrten Artikels (0 = keine gesperrten Artikel).

Beispiel

| oDab210:DB := '14,1', oDab010:DB := '2,1', aArtnr |

ChkSLSperre(oDab210, oDab010, aArtnr)


CreateSerialHistory()

CreateSerialHistory() – Seriennummern-Historie

Beschreibung

Mit CreateSerialHistory() wird die Historie einer Serien-Nr. eines Artikels ermittelt und als Tabelle zurückgegeben (entsprechend dem Fenster: "Serien-Nummern verwalten" / "Historie").

Parameter

oDM:O | Datenmodul
cArtNr:C | Artikel-Nr.
cKommiss:C | Serien-Nr.

Rückgabewert

Object (TMemCalcTable)

Die Struktur der Rückgabe-Tabelle entspricht der DAB020 zzgl. folgender Felder:

       RECORDNUM    Integer     Datensatz-Nummer in physischer DAB020

       ORDERBY      Integer     Teil des Sortier-Schlüssels der Tabelle

Default Sortierung der Tabelle:

       DATUM;ORDERBY;RECORDNUM

Beispiel

| oDM, oHist |

oDM   := CreateObject("TBeDBGet"),

oHist := CreateSerialHistory(oDM, '00100000', '000001'),

Browse(, oHist),


CurrConvSales()

CurrConvSales() – Währungstabelle VK-Umrechnung

Beschreibung

Die Funktion gibt den Wert des Feldes “VK-Umr.“ (J/N) aus der Festwerten-Währungstabelle für die jeweilige Währungsnummer zurück.

Parameter

nCurrencyID:N

Währungsnummer

Rückgabewert

Alphanumerisch - ('J'/'N')

Beispiel

CurrConvSales(5)

Siehe auch

CurrDecimals()

CurrDM()

CurrDMPurchase()

CurrEuro()

CurrFixRate()

CurrPurchase()

CurrSale()

CurrSign()

CurrUnit()


CurrDecimals()

CurrDecimals() – Währungstabelle Nachkommastellen

Beschreibung

Die Funktion gibt den numerischen Wert des Feldes “NK-St.“ aus der Währungstabelle (Festwerte) für die jeweilige Währungsnummer zurück.

Parameter

nCurrencyID:N

Währungsnummer

Rückgabewert

Numerisch - Feld "NK-St."

Beispiel

CurrDecimals(7)

Siehe auch

CurrConvSales()

CurrDM()

CurrDMPurchase()

CurrEuro()

CurrFixRate()

CurrPurchase()

CurrSale()

CurrSign()

CurrUnit()


CurrDM()

CurrDM() – Währungstabelle VK-Kurs

Beschreibung

Die Funktion gibt für “Nicht-EUR“-Währungen der Währungstabelle (“EUR-Kurs“ = “N“) den numerischen Wert des Feldes “VK-Kurs.“ zurück.

Für “EUR“-Währungen der Währungstabelle (“EUR-Kurs“ = “J“) wird der berechnete Wert “Einheit“/“VK-Kurs“ zurückgegeben.

Parameter

nCurrencyID:N

Währungsnummer

Rückgabewert

Numerisch - Feld "VK-Kurs"

Beispiel

CurrDM(5)

Siehe auch

CurrConvSales()

CurrDecimals()

CurrDMPurchase()

CurrEuro()

CurrFixRate()

CurrPurchase()

CurrSale()

CurrSign()

CurrUnit()


CurrDMPurchase()

CurrDMPurchase() – Währungstabelle EK-Kurs

Beschreibung

Die Funktion gibt für “Nicht-EUR“-Währungen der Währungstabelle (“EUR-Kurs“ = “N“) den numerischen Wert des Feldes “EK-Kurs.“ zurück.

Für “EUR“-Währungen der Währungstabelle (“EUR-Kurs“ = “J“) wird der berechnete Wert “Einheit“/“EK-Kurs“ zurückgegeben.

Parameter

nCurrencyID:N

Währungsnummer

Rückgabewert

Numerisch - Feld "EK-Kurs."

Beispiel

CurrDMPurchase(5)

Siehe auch

CurrConvSales()

CurrDecimals()

CurrDM()

CurrEuro()

CurrFixRate()

CurrPurchase()

CurrSale()

CurrSign()

CurrUnit()


CurrEuro()

CurrEuro() – Währungstabelle Eur-Kurs

Beschreibung

Die Funktion gibt den Wert des Feldes “EUR-Kurs“ (J/N) aus der Währungstabelle in den Festwerten für die jeweilige Währungsnummer zurück.

Parameter

nCurrencyID:N

Währungsnummer

Rückgabewert

Logisch / Boolean - Feld "EUR-Kurs"

Beispiel

CurrEuro(7)

Siehe auch

CurrConvSales()

CurrDecimals()

CurrDM()

CurrDMPurchase()

CurrFixRate()

CurrPurchase()

CurrSale()

CurrSign()

CurrUnit()


CurrFixRate()

CurrFixRate() – Währungstabelle Fix-Kurs

Beschreibung

Die Funktion gibt den Wert des Feldes “Fix-Kurs“ (J/N) aus der Festwerte-Währungstabelle für die jeweilige Währungsnummer zurück.

Parameter

nCurrencyID:N

Währungsnummer

Rückgabewert

Logisch / Boolean - Feld "Fix-Kurs"

Beispiel

CurrFixRate(7)

Siehe auch

CurrConvSales()

CurrDecimals()

CurrDM()

CurrDMPurchase()

CurrEuro()

CurrPurchase()

CurrSale()

CurrSign()

CurrUnit()


CurrPurchase()

CurrPurchase() – Währungstabelle EK-Kurs direkt

Beschreibung

Die Funktion gibt den numerischen Wert des Feldes “EK-Kurs.“ für die jeweilige Währung zurück.

Parameter

nCurrencyID:N

Währungsnummer

Rückgabewert

Numerisch - Feld "EK-Kurs"

Beispiel

CurrPurchase(5)

Siehe auch

CurrConvSales()

CurrDecimals()

CurrDM()

CurrDMPurchase()

CurrEuro()

CurrFixRate()

CurrSale()

CurrSign()

CurrUnit()


CurrSale()

CurrSale() – Währungstabelle VK-Kurs direkt

Beschreibung

Die Funktion gibt den numerischen Wert des Feldes “VK-Kurs.“ für die jeweilige Währung zurück.

Parameter

nCurrencyID:N

Währungsnummer

Rückgabewert

Numerisch - Feld "VK-Kurs"

Beispiel

CurrSale(5)

Siehe auch

CurrConvSales()

CurrDecimals()

CurrDM()

CurrDMPurchase()

CurrEuro()

CurrFixRate()

CurrPurchase()

CurrSign()

CurrUnit()


CurrSign()

CurrSign() – Währungstabelle Währung

Beschreibung

Die Funktion gibt die Bezeichnung der jeweiligen Währung zurück.

Parameter

nCurrencyID:N

Währungsnummer

Rückgabewert

Alphanumerisch - Währungsname

Beispiel

CurrSign(0)

Siehe auch

CurrConvSales()

CurrDecimals()

CurrDM()

CurrDMPurchase()

CurrEuro()

CurrFixRate()

CurrPurchase()

CurrSale()

CurrUnit()


CurrUnit()

CurrUnit() – Währungstabelle Einheit

Beschreibung

Die Funktion gibt den numerischen Wert des Feldes “Einheit“ für die jeweilige Währung zurück.

Parameter

aValue:N

Währungsnummer

Rückgabewert

Numerisch - Einheit

Beispiel

CurrUnit(5)

Siehe auch

CurrConvSales()

CurrDecimals()

CurrDM()

CurrDMPurchase()

CurrEuro()

CurrFixRate()

CurrPurchase()

CurrSale()

CurrSign()


CustLocationCompany()

CustLocationCompany() – Firmenzugehörigkeit

Beschreibung

Die Funktion gibt die Firmenzugehörigkeits-Nummer einer KundenNr. zurück.

Parameter

aCustNo:N

KundenNr. des Standortes

Rückgabewert

Numerisch - Firmenzugehörigkeit/Standort-Nummer, falls KundenNr. ungültig ist -1

Beispiel

CustLocationCompany(73500)

Siehe auch

CustLocationInfo()

CustLocationNo()

LocationActive()

LocationCompany()

LocationCustNo()

LocationExists()

LocationInfo()

LocationName()

LocationSuppNo()

SuppLocationCompany()

SuppLocationInfo()

SuppLocationNo()


CustLocationInfo()

CustLocationInfo() – Standortinformation

Beschreibung

Die Funktion gibt ein Objekt mit allen Informationen einer KundenNr. eines Standortes zurück.

Parameter

aCustNo:N

KundenNr. des Standortes

Rückgabewert

Objekt - Falls KundenNr. ungültig ist: NIL

Objekt-Eigenschaften

- allowed // Erlaubnis ???

- company // Firmenzugehörigkeit Standort

- custdepart // VK-Abteilung für sto.Umlagerung

- custno // Kundennr. Standort

- custtype // Empfängertyp für sto.Umlagerung

- locname // Mandanten/Abteilungs-Name

- locno // Standort-Nummer

- ordtypeext // Auftragsart für Lieferung firmenextern

- ordtypeint // Auftragsart für Lieferung firmenintern

- suppdepart // EK-Abteilung. für sto.Umlagerung

- suppno // Lieferantennr. Standort

Beispiel

| oCustLocInfo |

oCustLocInfo := CustLocationInfo(73500),

WriteLn(oCustLocInfo.custno),

WriteLn(oCustLocInfo.suppno),

WriteLn(oCustLocInfo.company),

Siehe auch

CustLocationCompany()

CustLocationNo()

LocationActive()

LocationCompany()

LocationCustNo()

LocationExists()

LocationInfo()

LocationName()

LocationSuppNo()

SuppLocationCompany()

SuppLocationInfo()

SuppLocationNo()


CustLocationNo()

CustLocationNo() – Standortinformation

Beschreibung

Die Funktion gibt die Standort-Nummer einer KundenNr. zurück.

Parameter

aCustNo:N

KundenNr. des Standortes

Rückgabewert

Numerisch - Falls KundenNr. ungültig ist: -1

Beispiel

CustLocationNo(73500)

Siehe auch

CustLocationCompany()

CustLocationInfo()

LocationActive()

LocationCompany()

LocationCustNo()

LocationExists()

LocationInfo()

LocationName()

LocationSuppNo()

SuppLocationCompany()

SuppLocationInfo()

SuppLocationNo()


D005_BriefAnrede()

D005_BriefAnrede() – Briefanrede zusammensetzen

Beschreibung

Die Funktion setzt Anredeschlüssel aus den Allg.Parameter mit Name und Titel einer Ansprechperson zusammen.

Parameter

oDab005:O

Tabellenobjekt DAB005

Rückgabewert

Alphanumerisch - Briefanrede

Beispiel

// Allgemeine Parameter (DABPAR)

// Anrede-Text Herr, Sehr geehrter Herr

// …

//

// Ansprechperson (DAB005)

// REC_NO      1

// PERSNR      1

// ANREDESCHL  0

// NAME        Müller, Hans

// TITEL       Dr.

// EMAIL       hans@mueller.de

// …

| oDab005:DB := '38,0' |

DBGoTop(oDab005),

WriteLn(D005_BriefAnrede(oDab005)),   // Ergebnis: 'Sehr geehrter Herr Dr. Müller'

Siehe auch

D005_BriefName()

D005_Email()

D005_Fax()

D005_Telefon()


D005_BriefName()

D005_BriefName() – Briefname zusammensetzen

Beschreibung

Die Funktion setzt Brief-Anredeschlüssel aus den Allg.Parameter mit Name und Titel einer Ansprechperson zusammen.

Parameter

oDab005:O

Tabellenobjekt DAB005

Rückgabewert

Alphanumerisch

Beispiel

// Allgemeine Parameter (DABPAR)

// Anrede-Text 0  Herrn, Sehr geehrter Herr

// …

//

// Ansprechperson (DAB005)

// REC_NO      1

// PERSNR      1

// ANREDESCHL  0

// NAME        Müller, Hans

// TITEL       Dr.

// EMAIL       hans@mueller.de

// …

| oDab005:DB := '38,0' |

DBGoTop(oDab005),

WriteLn(D005_BriefName(oDab005)),   // Ergebnis: 'Herr Dr. Müller'

Siehe auch

D005_BriefAnrede()

D005_Email()

D005_Fax()

D005_Telefon()


D005_Email()

D005_Email() – Email-Adresse zusammensetzen

Beschreibung

Die Funktion gibt die Email-Adresse eines Ansprechpartners zurück. Falls keine Email-Adresse angegeben ist, wird die Email-Adresse des Kunden ausgegeben. Ist in beiden Fällen keine gültige Email-Adresse angegeben, so gibt die Funktion einen leeren Wert zurück.

Gültige Email-Adressen enthalten ein "@".

Parameter

oDab005:O | Tabellenobjekt DAB005
oDab000:O | Tabellenobjekt DAB000

Rückgabewert

Alphanumerisch - Email-Adresse

Beispiel

// Ansprechperson (DAB005)

// REC_NO        1

// PERSNR        1

// ANREDESCHL    0

// NAME          Müller, Hans

// TITEL         Dr.

// EMAIL         hans@mueller.de

// …

| oDab005:DB := '38,0', oDab000:DB := '1' |

DBGoTop(oDab005),

WriteLn(D005_EMAIL(oDab005, oDab000))   // Ergebnis: 'hans@mueller.de'

Siehe auch

D005_BriefAnrede()

D005_BriefName()

D005_Fax()

D005_Telefon()


D005_Fax()

D005_Fax() – Faxnummer zusammensetzen

Beschreibung

Die Funktion setzt eine Fax-Nr. aus der Kunden-Fax- (ab dem "-") und Kontakt-Fax-Nr. zusammen. Falls die Kunden-Fax-Nummer kein "-" beinhaltet, wird die Nummer aus dem Kontakt zurückgegeben. Ist dieser Wert leer so wird die Kunden-Fax-Nummer zurückgegeben.

Parameter

oDab005:O | Tabellenobjekt DAB005
oDab000:O | Tabellenobjekt DAB000

Rückgabewert

Alphanumerisch - Faxnummer

Beispiel

// Kundenstamm

// …

// TELEX  931/332165-

// …

//

// Ansprechperson (DAB005)

// REC_NO     1

// PERSNR     1

// ANREDESCHL 0

// NAME       Müller, Hans

// TITEL      Dr.

// EMAIL      hans@mueller.de

// FAX_DW     5

// …

| oDab005:DB := '38,0', oDab000:DB := '1' |

DBGoTop(oDab005),

WriteLn(D005_Fax(oDab005, oDab000)),   // Ergebnis: '0931/332165-5'

Siehe auch

D005_BriefAnrede()

D005_BriefName()

D005_Email()

D005_Telefon()


D005_Telefon()

D005_Telefon() – Telefonnummer zusammensetzen

Beschreibung

Die Funktion setzt eine Telefon-Nr. aus der Kunden-Telefon- (ab dem "-") und Kontakt-Telefon-Nr. zusammen. Falls die Kunden-Telefon-Nummer kein "-" beinhaltet, wird die Nummer aus dem Kontakt zurückgegeben. Ist dieser Wert leer so wird die Kunden-Telefon-Nummer zurückgegeben.

Parameter

oDab005:O | Tabellenobjekt DAB005
oDab000:O | Tabellenobjekt DAB000

Rückgabewert

Alphanumerisch - Telefonnmmer

Beispiel

// Kundenstamm

// …

// TELEFON    0931/332166-0

// …

//

// Ansprechperson (DAB005)

// REC_NO     1

// PERSNR     1

// ANREDESCHL 0

// NAME       Müller, Hans

// TITEL      Dr.

// EMAIL      hans@mueller.de

// TEL_DW     -37

// …

| oDab005:DB := '38,0', oDab000:DB := '1' |

DBGoTop(oDab005),

WriteLn(D005_Telefon(oDab005, oDab000)),   // Ergebnis: '0931/332166-37'

Siehe auch

D005_BriefAnrede()

D005_BriefName()

D005_Email()

D005_Fax()


D010_AbrufSum()

D010_AbrufSum() – Summe Abruf-EK

Beschreibung

Die Funktion summiert alle ABRUF_EK-Summen einer Artikel-Nr.

Parameter

cArtNr:C | Artikel Nr.
lRefresh:L | Refreshen; default = false false: Bei gleich bleibender Art.Nr. wird jeweils das letzte Result zurückgeliefert true: Wert neu errechnen
nFirma:N | Summe für diesen Standort bilden; default = -1 (aktueller Standort)

Rückgabewert

Numerisch - Summe aller ABRUF_EK

Beispiel

D010_AbrufSum('GX4-F56', true)


D065_CalcConversationSort()

ToDo: Mit MemoBo Umstellung über MemoBo-Objekt abgedeckt -> Doku löschen

D065_CalcConversationSort() – Kurzbeschreibung

Beschreibung

Die Funktion erstellt anhand verschiedener Eigenschaften eines Memos eine eigenen Sortierschlüssel (z.B. für die Sortierung nach Konversationen). Funktion wird im Default-Update-Recht für Dab065:BETRF_SORT verwendet.

Parameter

oDab065:O

Tabellenobjekt Wiedervorlage-Memos (DAB065)

Rückgabewert

Alphanumerisch

Beispiel

|oDAB065|

oDAB065 := beopen(9, 1, True), // Wiedervorlage-Memos

startseq,

   while not eof(oDAB065) do

      writeln(D065_CalcConversationSort(oDab065)),

      dbskip(1, oDAB065),

   end,

always,

   beclose(oDAB065),

stopseq,


D210_Calc()

D210_Calc() – Stücklistenkosten Kalkulation

Beschreibung

Die Funktion kalkuliert die Kosten für die Stückliste eines Artikels.

Parameter

cArtNr:C | Artikel Nr.
cEKPFeld:C | EKP-Feld; default = "EKP". Es muss ein ausführbarer Codeblock-String übergeben werden. Zum Zeitpunkt der Ausführung ist die Tabelle Dab010 im Codeblock verfügbar.
nLosGroesse:N | LosGröße; default = DAB010 Vorgabe
nAusschuss:N | Ausschuss; default = DAB010 Vorgabe

Rückgabewert

zweidimensionales Array

Element | Bezeichnung | EKP-Basis
[1,1]; [1,2]; [2,1]; [2,2]; [3,1]; [3,2]; [4,1]; [4,2]; [5,1]; [5,2]; [6,1]; [6,2] | Arbeits-Rüst-Zeiten-Kosten; Arbeits-Rüst-Zeiten-Kosten; Arbeits-Stück-Zeit-Kosten; Arbeits-Stück-Zeit-Kosten; Material-Kosten; Material-Kosten; Material-Zuschläge; Material-Zuschläge; Externleistungs-Kosten; Externleistungs-Kosten; Werkzeugkosten; Werkzeugkosten | Std.EKP cEKPFeld; Std.EKP cEKPFeld; Std.EKP cEKPFeld; Std.EKP cEKPFeld; Std.EKP cEKPFeld; Std.EKP cEKPFeld

Entsprechend dem Verhalten der Kalkulations-Oberfläche (Aufruf aus dem Artikelstamm -> Info-Menü) rechnet auch diese Funktion immer zusätzlich zur übergebenen Preisbasis (cEKPFeld:C) mit dem Standard-EKP. Die Ergebnisse sind dementsprechend im Rückgabe-Array abgelegt.

Beispiel

| oDab010:DB := '2' |

D210_Calc(oDAB010:ARTNR, "iif(Empty(LTZTEKP),DURCHSCHEK,LTZTEKP)")


D262_Search()

D262_Search() – BDE Mitarbeitersuche

Beschreibung

Die Funktion öffnet ein Fenster für die Suche nach Mitarbeitern.

Parameter

keine Parameter erwartet

Rückgabewert

Numerisch - Personalnummer ausgewählter Mitarbeiter; Kein Treffer/Abbruch = 0

Beispiel

D262_Search(),


D270_ResZNrParent()

D270_ResZNrParent() – Parent Ressourcen-ID

Beschreibung

Die Funktion ermittelt den Parent einer Ressourcen Zuordnungs-ID.

Parameter

oDab270:O | Tabellenobjekt Dab270
nResZuID:N | Ressourcen Zuordnungs-ID

Rückgabewert

Numerisch - Parent der Ressourcen Zuordnungs-ID

Beispiel

| oDAB270:DB := '59,1' |

D270_ResZNrParent(oDab270, 4711)


D610_DelResID()

D610_DelResID() – Lagerplatz Reservierung löschen

Beschreibung

Die Funktion löscht eine Reservierung für einen Lagerort.

Parameter

oDM:O | Datamodul
nReservID:N | Reservierungs-ID

Rückgabewert

Keiner

Beispiel

| oDM |

oDM := CreateObject('TBeDBGet'),

D610_DelResID(oDM, 1342),


D610_SetResID()

D610_SetResID() – Lagerplatz Reservierung

Beschreibung

Die Funktion erstellt eine Reservierung im Lagerort-Verzeichnis.

Parameter

oDM:O | Datamodul
cPlatz:C | Lagerplatznummer

Rückgabewert

Numerisch - Reservierungs-ID

Beispiel

| oDM |

oDM := CreateObject('TBeDBGet'),

D610_SetResID(oDM, '250'),


D700_HistoryAsText()

D700_HistoryAsText() - Beleg-Historie als Klartext

Beschreibung

Die Funktion entfernt die Draw-Commands aus dem Übergabestring und liefert "ReinText" zurück.

Parameter

cVoucherFieldStr:C | Feldname als String; Wenn leer => wird Feldname "Dab700:Daten" verwendet
oDab700:O | Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Text

Beispiel

| oDab700, text |

oDab700 := BEOpen(60, 1),

startseq,

   DBGoBottom(oDab700),

   Skip(-50, oDab700),

   text := D700_HistoryAsText('', oDab700),

always,

   BEClose(oDab700)

stopseq,

text


D700_VoucherAsText()

D700_VoucherAsText() - Beleg-Langtext ohne Formatierungen

Beschreibung

Die Funktion erstellt aus den Belegen (Belegarchiv) Langtext ohne Formatierungen.

Parameter

cVoucherFieldStr:C | Feldname als String; Wenn leer => wird Feldname "Dab700:Daten" verwendet
oDab700:O | Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Text

Beispiel

| oDab700, text |

oDab700 := BEOpen(60, 1),

startseq,

   DBGoBottom(oDab700),

   Skip(-50, oDab700),

   text := D700_VoucherAsText('', oDab700),

always,

   BEClose(oDab700)

stopseq,

text


D730Chk()

D730Chk() – Überprüfung Seriennummer

Beschreibung

Die Funktion überprüft, ob die Buchung einer Seriennummer erlaubt ist.

Parameter

cArtNr:C | Artikel-Nummer
cKommiss:C | Serien-Nummer
cBuart:C | Buchungsart; A - Abgang Verkauf; E - Zugang Einkauf; P - Abgang an Produktion; F - Zugang von Fertigung; I - Inventur; U - Umlagerung; N - Kunden-Auftragseingang; B - Lieferanten-Bestellausgang; K - Kommen/Gehen-Buchung
lNumCheck:L | Prüfung auf Numerisch; default = true
lStatRet:L | Ergebnistyp; default = false true - Ergebnis als Text ausgeben false - Ergebnis als Boolean ausgeben

Rückgabewert

Logisch / Boolean - Seriennummer erlaubt

Character - Seriennummer erlaubt

Beispiel

D730Chk('Art1', '3000000318812', 'F')


Dab010_eh()

Dab010_eh() – Zeiteinheit

Beschreibung

Die Funktion gibt als Ergebnis eine Zeiteinheit zurück.

Parameter

cZeitEH:C | Zeiteinheit; S - Stunden; T - Tage; W - Wochen; M - Monate
lPlural:L | Zeitangabe in der Mehrzahl ausgeben; default = false

Rückgabewert

Keiner

Beispiel

WriteLn('Der Termin dauerte genau 2 ' + Dab010_eh('S', true) + '.')


DArbg_Checkrecursion()

DArbg_CheckRecursion() – Auf Rekursion prüfen

Beschreibung

Die Funktion prüft die Arbeitsgangabfolge in einer Stückliste auf Rekursion.

Parameter

oDabMaster:O | Die Master-Tabelle (Dab210 / Dab240)
cArtNoField:C | Name des Artikelnummerfeldes
nID:N | ID
nParentID:N | Parent-ID

Rückgabewert

Logisch / Boolean

Beispiel

| oDab240:DB := '26' |

DArbg_CheckRecursion(oDab240, 'ARTNR1', 31, 57)


DateStr()

DateStr() – Datums-String

Beschreibung

Die Funktion dient der Umwandlung von Datumseingaben in eine formatierte Zeichenkette.

Parameter

uTermin:U

Datumseingabe, zulässig sind:

TT.MM.JJ,

TT.MM.JJJJ

oder

KW.MM.JJ

KW.MM.JJJJ.

Rückgabewert

Alphanumerisch

String mit Format "JJJJMMTTX".

- "X" steht für "T" = Tagesdatum / "W" = Wochendatum

Beispiel

DateStr('12.02.2003') // Ergebnis: 20030212T - T für Tagesdatum

DateStr('KW.05.03')   // Ergebnis: 20030131W - W für Wochendatum


Dim_Faktor()

Dim_Faktor() – Stücklistenmengenfaktor

Beschreibung

Die Funktion berechnet einen Stücklistenmengenfaktor anhand der eingegebenen Dimension.

Parameter

oDab010:O | Tabellenobjekt Dab010
oDab240:O | Tabellenobjekt Dab240 (od. Dab210)
aNoMsg:L | Exception bei auftretendem Fehler nicht ausgeben; default = false

Rückgabewert

Numerisch - Stücklistenmengenfaktor

Beispiel

| oDAB010:DB := '2,1', oDAB210:DB := '14,1' |

DBSeek({'4711'}, oDAB010),

DBSeek({'4711'}, oDAB210),

Dim_Faktor(oDab010, oDAB210, true)


DispoNr()

DispoNr() – Dispo-Nummer

Beschreibung

Die Funktion erzeugt eine Dispo-Nummer.

Parameter

oDab010:O | Tabellenobjekt DAB010
dDate:D | Datum

Rückgabewert

Alphanumerisch - Dispo-Nummer

Beispiel

| oDM, oDAB010 |

oDM     := CreateObject('TBeDbget'),

oDAB010 := DBGetTable(oDM, 2),

DispoNr(oDab010, Date())   // -> neue Dispo-Nr.


DocDeleted()

DocDeleted() – Beleg gelöscht Prüfung

Beschreibung

Die Funktion prüft, ob ein Beleg im Belegarchiv als gelöscht markiert ist. Der Datensatz muss in der Dab700 auf dem zu überprüfenden Beleg positioniert sein.

Parameter

oDab700:O

Tabellenobjekt DAB700

Rückgabewert

Logisch / Boolean - Beleg gelöscht

Beispiel

| oDab700:DB := '60' |

DBScope('020', '020', oDab700),

while !EoF(oDab700) do

   if DocDeleted(oDab700) then

      WriteLn(oDab700:BELEG_NR),

   endif,

DBSkip(1, oDab700),

end,


DocTitle()

DocTitle() – Belegart Bezeichnung

Beschreibung

Die Funktion gibt die Bezeichnung einer Belegart zurück.

Parameter

aDocTyp:N

ID der Beleg-Art

Rückgabewert

Alphanumerisch - Belegbezeichnung

Beispiel

DocTitle(010)   // Ergebnis: 'Angebot'

Siehe auch

DocDeleted()


EAN_Chk()

EAN_Chk() – EAN-Prüfung

Beschreibung

Die Funktion prüft eine EAN-Nummer auf ihre Gültigkeit.

Parameter

cEAN:C

Zu prüfende Nr.

Rückgabewert

Logisch / Boolean - EAN gültig; Wenn ungültig wird ein Warnfenster angezeigt

Beispiel

EAN_Chk("0000556765434")

Siehe auch

EAN_Nr()

EAN_PruefZ()


EAN_Nr()

EAN_Nr() – EAN-Nummer

Beschreibung

Die Funktion generiert automatisch eine 13-stellige EAN-Nummer mit Prüfziffer auf Grundlage der in den Festwerten eingetragenen EAN-Basis-Nummer.

Anmerkung: Kann im Feld EAN oder in einem beliebigen anderen Feld benutzt werden. Die Funktion wird üblicherweise als "Neuanlage"-Recht für Dab010:EAN hinterlegt.

Parameter

keine Parameter erwartet

Rückgabewert

Alphanumerisch - gültige EAN-Nummer

Beispiel

EAN_Chk(EAN_Nr())   // Ergebnis: .T.

Siehe auch

EAN_Chk()

EAN_PruefZ()


EAN_PruefZ()

EAN_PruefZ() – EAN-Prüfziffer

Beschreibung

Die Funktion gibt die Prüfziffer einer 13-stelligen EAN-Nummer zurück.

Parameter

cEAN:C

13-stellige EAN-Nr.

Rückgabewert

Alphanumerisch - EAN-Prüfziffer

Beispiel

EAN_Pruefz('0000000000116')   // Ergebnis: '6'

Siehe auch

EAN_Chk()

EAN_Nr()


EK_Wert()

EK_Wert() – Einkaufswert einer Lagerbewegung

Beschreibung

Die Funktion berechnet den Einkaufswert einer Lagerbewegung, gegebenenfalls in Fremdwährung.

Parameter

oDAB020:O | DAB020 Tabellenobjekt; default = nil
lFW:L | Fremdwährung; default = false

Rückgabewert

Numerisch - Einkaufswert

Beispiel

| oDAB020:DB := '7,1' |

DBSeek({'4711'}, oDAB020),

EK_Wert(oDAB020)


EKPEw()

EKPEw() – Einkaufspreis in Eigenwährung

Beschreibung

Die Funktion gibt den EKP in der Eigenwährung für einen bestimmten Artikel, Zulieferer und ggf. für eine bestimmte Menge zurück.

Die Tabellen Artikelstamm (DAB010) und Artikel/Zulieferer (DAB510) müssen geöffnet und entsprechend positioniert sein.

Hinweis

Die Funktion berücksichtigt keine Staffel-Preis-/Mengen-Angaben.

Parameter

nEKPFW:N | Einkaufspreis-Fremdwährung; default = DAB510:EKPFW
nRabatt1:N | Rabatt 1; default = DAB510:RABATT1
nRabatt2:N | Rabatt 2; default = DAB510:RABATT1 (!)
nRabatt3:N | Rabatt 3; default = DAB510:RABATT1 (!)
lWaehr:L | Währungsumrechnung nach Eigenwährung; default = true
nMenge:N | Menge, für die der Preis errechnet werden soll; default = DAB010:BESTELLEH. Diese Angabe wird benötigt sofern Zusatzkosten existieren, die "Global je Bestellung" oder "Global einmalig" berechnet werden sollen.
aZ_Kost:A | Zusatz-Kosten (3-dim Array); default = { DAB510:Z_KOST1, DAB510:Z_KOST2, DAB510:Z_KOST3 }
aZ_Mode:A | Zusatz-Kosten-Modi (3-dim Array); default = { DAB510:Z_MODE1, DAB510:Z_ MODE2, DAB510:Z_ MODE3 }
lZoll:L | Zoll/Fracht rechnen; default = true
lUmr_PE:L | Umrechnung auf Lager-Preiseinheit durchführen; default = true

Rückgabewert

Numerisch - EKP in Eigenwährung

Beispiel

| oDab510:DB := '28,1', oDab010:DB := '2,1' |

DBSeek('4711', oDab510),

EkpEW(oDAB510:EKPFW, oDAB510:RABATT1, oDAB510:RABATT2,

      0, true, oDAB010:BESTELLEH,

      {oDAB510:Z_KOST1, oDAB510:Z_KOST2, oDAB510:Z_KOST3},

      {oDAB510:Z_MODE1, oDAB510:Z_ MODE2, oDAB510:Z_MODE3},

      true, true, oDab010, oDab510)


EKPEWert()

EKPEWert() – Einkaufswert in Eigenwährung

Beschreibung

Die Funktion gibt den EK-Wert in Eigenwährung für einen bestimmten Artikel, Zulieferer und ggf. für eine bestimmte Menge zurück (z.B. für Rückstandwerts-Berechnung).

Die Tabellen Artikelstamm (DAB010) und Artikel/Zulieferer (DAB510) müssen geöffnet und entsprechend positioniert sein.

Parameter

nMenge:N | Menge
nSoEK:N | Soll-EKP
nPE:N | PE - Preiseinheit
nRabatt1:N | Rabatt 1
nRabatt2:N | Rabatt 2
nRabatt3:N | Rabatt 3
aZ_Kost:A | Array mit Zusatzkosten
aZ_mode:A | Array mit Zusatzkosten Modalitäten
nFW_Kurs:N | Fremdwährungskurs
nWaeKz:N | Währungsnummer
oDab010:O | Tabellenobjekt DAB010
oDab510:O | Tabellenobjekt DAB510
nMeUmrPE:N | Mengeneinheitumrechnung-Preiseinheit
nMeUmr:N | Mengeneinheitumrechnung

Rückgabewert

Numerisch - EK-Wert in Eigenwährung

Beispiel

| oDAB010:DB := '2,1', oDAB510:DB := '5,1' |

DBSeek({'211-014A100'}, oDAB010),

DBSeek({74104}, oDAB510),

EkpEWert(5, 1.1, 1, 0, 0, 0, {0, 0, 0}, {'0', '0', '0'}, 1, 1, oDab010, oDab510, 1, 1)


FCGetNettoArray()

FCGetNettoArray() – Absatzplanung Netto-Array ermitteln

Beschreibung

Ermittelt für den übergebenen Zeitraum für einen Artikel und Standort ein Array mit Netto-Absatzplanungswerten je Woche.

Parameter

oBeDBget:O | Datenmodul (Klasse: "TBeDBGet")
cTerminVon:C | Von Termin
cTerminBis:C | Bis Termin
cArtNr:C | Artikelnummer
cStandorte:C | Standort; default = Leerstring = aktueller Standort

Rückgabewert

Array - Format:

{ { KW-Termin, Netto-ForeCast }, { ... }, ... }

Beispiel

| oDM |

oDM := CreateObject('TBeDBGet'),

FCGetNettoArray(oDM, '01.01.06', '01.07.07', 'LS-200')


FCGetValue()

FCGetValue() – Forecast-Summe ermitteln

Beschreibung

Die Funktion ermittelt die Absatzplanung zu einem best. Artikel und Termin.

Parameter

oBeDBget:O | Datenmodul (Klasse: "TBeDBGet")
nTyp:N | Typ; 0 - Einzelner Forecast-Wert; 1 - Summe der Forecasts eines Artikels; 2 - Summe der Forecast-IST-Werte eines Artikels; 3 - (Absatzplanungswirksame-)Terminraster-Summe eines Artikels; 4 / 6 - Terminraster-Summe der Unterartikel eines Artikels; 5 - Total-Forecast eines Artikels
cTermin:C | Termin
cArtNr:C | Artikelnummer
nVtNr:N | Vertreternummer; default = 0
nKdNr:N | Kundennummer; default = 0
cStandorte:C | Standorte; default = Leerstring

Rückgabewert

Numerisch - Forecast-Summe

Beispiel

| oDM |

oDM := CreateObject('TBeDbGet'),

FCGetValue(oDM, 0, 'KW.07.06', '4711')


FieldValLabel()

FieldValLabel() – Feldklartext

Beschreibung

Die Funktion ermittelt den Klartext eines Feldes (z.B. der Text aus einer zugewiesenen ComboBox-Liste).

Die optionalen Parameter dienen nur internen Zwecken.

Parameter

oField:O | Feldobjekt
lIsList:L | default = false
cListSep:C | default = ','
uListItem:U | default = null()

Rückgabewert

Alphanumerisch - Feldklartext

Beispiel

| oDAB000:DB := '1,1' |

FieldValLabel(DBField('KDNR', oDAB000))


FindArtNoByMC()

FindArtNoByMC() – Artikelsuche über Matchcode

Beschreibung

Die Funktion sucht Art.Nr. anhand eines beliebigen Suchbegriffes / Matchcodes.

Parameter

aMachcode:C

Feldobjekt

Rückgabewert

Alphanumerisch - Artikelnummer

Beispiel

FindArtNoByMC('ECG CABLE')


FuG()

FuG() – Farben und Größen

Beschreibung

Die Funktion gibt den Wert aus der Farben/Größentabelle zurück.

Parameter

aType:C | Typ: F - Farbe; G - Größe
aGroup:N | Gruppennummer
aCode:C | Code
aLang:N | Sprachen-Nummer
aDabFug:O | Tabellenobjekt der DABFUG (Farben und Größen); default = nil

Rückgabewert

Alphanumerisch - Farbe/Größe

Beispiel

FuG('F', 1, 'F1', 1)


GetBEParam()

GetBEParam() – Globaler BE-Parameter

Beschreibung

Die Funktion ermittelt einen globalen BE Parameter.

Parameter

aKey:C

ID des Parameters

Rückgabewert

Alphanumerisch - BE-Parameter

Beispiel

GetBeParam('USTID')


GetLangText()

GetLangText() – Textelement ausgeben

Beschreibung

Die Funktion liefert einen Text zur übergebenen Text-ID in der aktiven BE-Sprache.

Parameter

aTextNo:N

Text-Id

Rückgabewert

Alphanumerisch - Textelement

Beispiel

GetLangText(65),   // Ergebnis: 'Zulieferer nicht gefunden !'

GetLangText(66)    // Ergebnis: 'Kunde nicht gefunden !'

Siehe auch

GetLangTextEx()


GetLangTextEx()

GetLangTextEx() – Textelement ausgeben

Beschreibung

Die Funktion liefert einen formatierten Text zur übergebenen Text-ID in der aktiven BE-Sprache.

Parameter

aTextNo:N | Text-Id
aArgs:A | Array mit den Formatierungs Argumenten

Rückgabewert

Alphanumerisch - Textelement

Beispiel

GetLangText(6),

// Ergebnis: 'Tabelle <%s> kann nicht geöffnet werden !'

//           (GetLangText liefert den unformatierten Text)

GetLangTextEx(6, {'Dab010'})

// Ergebnis: 'Tabelle <Dab010> kann nicht geöffnet werden !'

//           (GetLangTextEx liefert den Text formatiert zurück)

Siehe auch

GetLangText()


GetLastUsedRecords()

GetLastUsedRecords() – Zuletzt verwendete Einträge im Memo-System

Beschreibung

Diese Funktion liefert die zuletzt bearbeiteten Einträge im Memo-System (WorkArea DAB065). Für die WorkAreas DAB000, DAb062, DAB100 werden die zuletzt verwendeten Memo-Zuordnungen zurückgegeben.

Hinweis

Rückgabe ist absteigend nach Timestamp sortiert

Parameter

nUserID:N | ID des Users (z.Z. nur eigener User möglich "c_usr")
nWorkArea:N | ID der Workarea (DAB000, DAB062, DAB065, DAB100 möglich)
dTimestamp:D | Maximal Alter der Einträge
nMaxCount:N | Maximal Anzahl an Einträgen die zurückgegeben werden

Rückgabewert

Array {UserID, WorkArea, RecordID, Timestamp}

Beispiel

| aLastUsed, i, cSQL:C:='' |

// Erstellt einen SQL-Filter, welcher die letzten 50 im Memo-System veränderten MEMO_ID der DAB065 berücksichtigt

aLastUsed := GetLastUsedRecords(Val(c_usr),9,0,50),

for i := 1 to Alen(aLastUsed) do

   cSQL += if(empty(cSQL), '', ' OR '),

   cSQL += 'MEMO_ID = ' + Str(aLastUsed[i, 3]),

next,

cSQL := iif(empty(cSQL),'', ' (' + cSQL + ') '),

cSQL // (MEMO_ID = 1 OR MEMO_ID = 2 OR MEMO_ID = 3 ...)


GetProdDetail()

GetProdDetail() – Produktionsdetails

Beschreibung

Die Funktion gibt Produktionsdetails zu einem Produktionsauftrag zurück.

Parameter

oDab035:O | Tabellenobjekt Dab035
oDab240:O | Tabellenobjekt Dab240
oDab010:O | Tabellenobjekt Dab010
lAuftrKompl:R | RückgabeParameter: Auftrag vollständig gebucht
nMaxFertigMeld:R | RückgabeParameter: Maximal produzierbare Menge (vor AKA-Druck), bzw. maximal fertig zu meldende Menge (nach AKA-Druck)

Rückgabewert

Rückgabe - keine

Referenz-Parameter beachten! (lAuftrKompl, nMaxFertigMeld)

Beispiel

| oDab035:DB := '13', oDab010:DB := '2', oDab240:DB := '26',

  ergebnisAuftrKompl, ergebnisMaxFertigMeld |

GetProdDetail(oDab035, oDab240, oDab010, ergebnisAuftrKompl, ergebnisMaxFertigMeld),

WriteLn(ergebnisAuftrKompl),

WriteLn(ergebnisMaxFertigMeld),


GetSLText()

GetSLText() – Stücklisten Text

Beschreibung

Die Funktion liefert den Stücklisten-Text zu einer bestimmten Auftragsnummer.

Hinweis

lMitChargeText nur auf TRUE setzen wenn die Versandmenge der Auftragsposition gesetzt ist (DAB055.VMENGE > 0).

Parameter

cANUMMER:C | AuftragsNummer
nSprachNr:N | Sprach-ID; default = aktive BE-Sprache
lMitChargeText:L | Chargen-Text erzeugen; default = false
oDab010:O | Tabellenobjekt Dab010; default = Standard Dab010

Rückgabewert

Alphanumerisch - Stücklisten Text


GFCheck()

GFCheck() – Prüfung von Farbe / Größe

Beschreibung

Die Funktion prüft in der Farben und Größentabelle, ob eine Farbe / Größe existiert.

Parameter

cTyp:C | Typ: F - Farbe; G - Größe
nGruppe:N | Gruppennummer

Rückgabewert

Logisch / Boolean - Farbe / Größe existiert

Beispiel

if GFCheck('F', 1) then

   Meld('Die Farbe ist ' + FuG('F', 1, 'F1', 1)),

else

   Meld('Farbe existiert nicht'),

endif,


GPlanDel()

GPlanDel() – Anonyme Produktions-Grobplanung löschen

Beschreibung

Die Funktion löscht die Produktionsgrobplanung für alle anonymen Einträge, d.h. Einträge, die keinem Eintrag in einer Planungstabelle (DAB220, DAB215, DAB315, DAB320) zugeordnet sind.

Parameter

oDab280:O | Dab280-Tabelle
oDab410:O | Dab410-Tabelle
cArtNr:C | Nur Einträge für eine bestimmte Art.Nr. löschen (Default = leer = alle Artikel-Nummern)

Rückgabewert

Keiner

Beispiel

| oDab280, oDab410, oDBGet |

oDBGet  := CreateObject('TBeDBGet'),

oDab280 := DBGetTable(oDBGet, 51),

oDab410 := DBGetTable(oDBGet, 23),

GPlanDel(oDab280, oDab410),


HLager()

HLager() – Bestand eines Setartikels

Beschreibung

Die Funktion ermittelt den Bestand eines Setartikels und berücksichtigt dabei die Set-Bestandteile.

Parameter

cArtNr:C | Artikelnummer
cnLager:U | Lager
oDab010:O | Tabellenobjekt Dab010; default = Standard-Dab010
oDab210:O | Tabellenobjekt Dab210; default = Standard-Dab210

Rückgabewert

Numerisch - Bestand

Beispiel

HLager('KSH-809', 0)

Siehe auch

RLager()


IBAN_Chk()

IBAN_Chk() – Prüfen einer IBAN

Beschreibung

Funktion überprüft, ob die übergebene IBAN (International Bank Account Number) den geltenden Konventionen entspricht und die IBAN-Prüfsumme korrekt ist.

Hinweis

Die Funktion gibt keine Auskunft darüber, ob die eingegebene IBAN tatsächlich existiert.

Parameter

cIBAN:C

IBAN, die überprüft werden soll

Rückgabewert

Logisch

Beispiel

If IBAN_Chk('DE3600000000000000000000') then

   WriteLn('IBAN ist korrekt')

Else

   WriteLn('IBAN ist fehlerhaft')

EndIf


InitBDatum()

InitBDatum() – Buchungsdatum initiieren

Beschreibung

Die Funktion dient dem Füllen eines leeren Buchungsdatums (Erstinstallation).

Parameter

keine Parameter erwartet

Rückgabewert

Keiner


Is_ArtNr()

Is_ArtNr() – Bestand vorhanden

Beschreibung

Die Funktion prüft, ob für die übergebene Artikelnummer Bestand vorhanden ist.

Parameter

cArtNr:C

Artikelnummer

Rückgabewert

Logisch / Boolean - Bestand vorhanden

Beispiel

if Is_ArtNr('LS-200') then

   Meld('Artikel ist auf Lager.')

else

   Meld('Artikel ist nicht auf Lager.'),

endif,


IsLicense()

IsLicense() – Lizenz für Modul prüfen

Beschreibung

Die Funktion prüft, ob die Lizenz für ein business express - Modul vorhanden ist.

Parameter

nLicenseID:N

Lizenz-ID, die geprüft werden soll

Interne ID | Codeblock-Konstante
1 = Lagerverwaltung | liArticleMasterData
2 = Kunderverwaltung | liCustomerMasterData
3 = Druck - Belege | liPrintVouchers
4 = Festwerte | liParameters
5 = Formulargestaltung | liDesignForms
6 = Memos abfragen | liSearchMemos
7 = Auftragslisten | liOrderLists
8 = Eigenfertigung | liProduction
9 = Zuliefer - Einkauf | liSupplierMasterData
10 = Ausgabe Adressen | liPrintAddress
11 = Textbausteine | liTextModules
12 = Vertreter | liAgentMasterData
13 = Statistik | liStatistics
14 = Individualprogramme | liIndividualProgramms
15 = Filial-Kommunikation | liSubsidiaryCommunications
16 = Barverkauf | liCashSales
17 = Auftrags-Zeiterfassung | liOrderTimeRecording
18 = Datev | liDatev
19 = Ausfuhrerklärungen | liIntraStat
20 = Wareneingang / Qualitätssicherung | liStockReceiving
21 = Sprachen | liLanguage
22 = Vermietung | liRenting
23 = Fremdsprachige Benutzeroberfläche | liMultiLanguage
24 = Handelsstückliste | liTradePartList
25 = Farben und Größen | liColorSize
26 = Mehrwährungsfähigkeit | liMultiCurrency
27 = Sammelrechnung | liCollectInvoice
28 = Terminverwaltung | liTimeLimitAdmin
29 = Versandpapiere | liShippNotes
30 = Import-Modul | liImport
31 = Standort-Verwaltung | liLocationAdmin
32 = Finanzbuchhaltung | liFiBu
33 = FiBu - Liquiditätsanalyse | liFiBuLiqu
34 = Belegscan | liDocumentScan
35 = Artikel-Forecast | liForecast
36 = CRM-Serienaktionen | liCRMBatchAction
37 = Proj.Termin-Planung | liProjDateMgmt
38 = Fertigung Kapazitätsplanung | liProdCapaPlan
39 = Read-Only User | liReadOnlyUser
40 = FiBu Anlagenverwaltung | liFiBuAfA
41 = Named User License | liNamedUserLic
42 = FiBu Bankauszugsdaten | liFiBuBAD
43 = QS-Prüfungen | liQASystem
44 = Web-Server Kommunikation | liWebServerComm
45 = XML Kommunikation | liXMLComm

Rückgabewert

Logisch / Boolean - Lizenz ist vorhanden

Beispiel

IsLicense(liQASystem)


Kom_2_APNr()

Kom_2_APNr() – Auftragsposition aus Kommissionsnummer

Beschreibung

Die Funktion ermittelt die Auftragspositionsnummer aus der Kommissionsnummer.

Parameter

cKommiss:C

Kommissionsnummer

Rückgabewert

Alphanumerisch - Auftragspositionsnummer. Falls keine Auftragsposition vorhanden: ‚?????????’

Beispiel

Kom_2_APNr('123456')


KontoName()

KontoName() – Kontoname

Beschreibung

Die Funktion ermittelt den Kontonamen eines Kontos.

Parameter

aBuchArt:C | Buchungsart; D / E / F = "Debitoren"; K / A = "Kreditoren"; S = "Sachkonten"
aKonto:N | Kontonummer
aDf010:O | Tabellenobjekt der DF010; default = nil
aDf030:O | Tabellenobjekt der DF030; default = nil
aDf040:O | Tabellenobjekt der DF040; default = nil

Rückgabewert

Alphanumerisch - Kontoname

Beispiel

KontoName('D', 4711)


KundLoesch()

KundLoesch() – Kunde löschen

Beschreibung

Die Funktion prüft, ob ein Kunde gelöscht werden kann bzw. löscht einen Kunden.

Parameter

nKdNr:N | Kundennummer
lShowMsg:L | Meldungen/Fragen anzeigen; default = true
lStatLoe:L | Einzel-Umsätze löschen; default = false
lNurCheck:L | Nur Prüfen ob Löschen erlaubt, kein Löschvorgang; default = false
oDab000:O | Dab000 Tabelle; default = Standard Dab000

Rückgabewert

Logisch / Boolean - true - löschen war erfolgreich (lNurCheck = false)

- löschen wäre möglich (lNurCheck = true)

false - löschen fehlgeschlagen (lNurCheck = false)

- löschen nicht möglich (lNurCheck = true)

Beispiel

KundLoesch(900, false, false, true)


KundPreisCalc()

KundPreisCalc() – Kunden-Preis

Beschreibung

Die Funktion berechnet den Kunden-Netto-Preis eines Artikels (inkl. aller Rabatte, Sonderpreise, Staffeln, usw.) für einen Kunden in Eigenwährung.

Parameter

nCustNo:N | Kunden-Nr.
cArtNo:C | Artikel-Nr.
nQuant:N | Preis für Menge (in Lager-Einheiten)
oMem055:O | Tabellenobjekt der Memtable mit Struktur der DAB055; default = nil
oDab010:O | Tabellenobjekt DAB010; default = Standard Dab010
oDab000:O | Tabellenobjekt DAB000; default = Standard Dab000
oDab040:O | Tabellenobjekt DAB040; default = Standard Dab040;
oDab310:O | Tabellenobjekt DAB310; default = Standard Dab310
oDab510:O | Tabellenobjekt DAB510; default = Standard Dab510
nPreisNr:N | Zu verwendende Preis-Nr.; default = -1 (Übernahme vom Kunden)
oDab160:O | Tabellenobjekt DAB160; default = Standard Dab160
cProgID:C | Individuelle Prog-ID (wird an aufgerufene Events weitergegeben)

Rückgabewert

Numerisch - Netto-Preis in EW

Beispiel

KundPreisCalc(12345678, 'BSP_ART', 1)

Siehe auch

KundPreisCalcAll()

KundPreisCalc2()


KundPreisCalc2()

KundPreisCalc2() – Kunden-Preis

Beschreibung

Die Funktion berechnet den Kunden-Netto-Preis (inkl. aller Rabatte, Sonderpreise, Staffeln, usw.) für einen Kunden in Eigenwährung.

Parameter

oDM:O | Datenmodul-Objekt
nCustNo:N | Kunden-Nr.
cArtNo:C | Artikel-Nr.
nQuant:N | Preis für Menge (in Lager-Einheiten)
nPreisNr:N | Zu verwendende Preis-Nr.; default = -1 (Übernahme vom Kunden)
cProgID:C | Individuelle Prog-ID (wird an aufgerufene Events weitergegeben)
dGueltigPer:D | Datum, zu welchem die Sonder-Kondition gültig ist (leer = Tagesdatum)

Rückgabewert

Numerisch - Netto-Preis in EW

Beispiel

| oDM |

KundPreisCalc2(oDM, 12345678, 'BSP_ART', 1)

Siehe auch

KundPreisCalcAll()


KundPreisCalcAll()

KundPreisCalcAll() – Kunden-Preis Konditionen

Beschreibung

Die Funktion berechnet die Kunden-Preis-Konditionen eines Artikels für einen Kunden in Eigenwährung.

Parameter

nCustNo:N | Kunden-Nr.
cArtNo:C | Artikel-Nr.
nQuant:N | Menge (in Lager-Einheiten)
oMem055:O | Tabellenobjekt der Memtable mit Struktur der DAB055; default = nil
oDab010:O | Tabellenobjekt DAB010; default = Standard Dab010
oDab000:O | Tabellenobjekt DAB000; default = Standard Dab000
oDab040:O | Tabellenobjekt DAB040; default = Standard Dab040;
oDab310:O | Tabellenobjekt DAB310; default = Standard Dab310
oDab510:O | Tabellenobjekt DAB510; default = Standard Dab510
oDab050:O | Tabellenobjekt DAB040; default = Standard Dab050;
nPreisNr:N | Zu verwendende Preis-Nr.; default = -1 (Übernahme vom Kunden)
oDab160:O | Tabellenobjekt DAB160; default = Standard Dab160
cProgID:C | Individuelle Prog-ID (wird an aufgerufene Events weitergegeben)

Rückgabewert

Array- {     [ 1]Währung,

                  [ 2]Brutto-Preis,

                  [ 3]PE,

                  [ 4]{ PosRab1, PosRab2, PosRab3 },

                  [ 5]{ GesRab1, GesRab2 },

                  [ 6]Nettopreis,

                  [ 7]Menge(false)/Wert(true),

                  [ 8]Rabatt(false)/Netto(true),

                  [ 9]{ { Staffel-Menge1/Wert1, Staffel-Rabatt%1/Netto1 },

                        { Staffel-Menge2/Wert1, Staffel-Rabatt%2/Netto2 },

                        {...} },

                  [10]Kalkulierter-Netto-Preis,

                  [11]Dab040-Datensatz-Nr.

                  [12]{ { Zusatzkosten-Text1, Zusatzkosten-Typ1, Zusatzkosten1 },

                        { Zusatzkosten-Text2, Zusatzkosten-Typ2, Zusatzkosten2 },

                        { Zusatzkosten-Text3, Zusatzkosten-Typ3, Zusatzkosten3 } }

}

Beispiel

// Beispiel im Positionsbrowser der Auftragsbearbeitung

| nCustNo:N := 220, cArtNo:C := '', nQuant:N := 0, aResult |

nCustNo := DAB055:KDNR,

cArtNo  := DAB055:ARTNR,

nQuant  := DAB055:BMENGE,

aResult := KundPreisCalcAll(nCustNo, cArtNo, nQuant),

aResult[6]  // Netto-Preis -> entspricht KundPreisCalc()

Siehe auch

KundPreisCalc()

KundPreisCalc2()

KundPreisCalcAll2()


KundPreisCalcAll2()

KundPreisCalcAll2() – Kunden-Preis Konditionen

Beschreibung

Die Funktion berechnet die Kunden-Preis-Konditionen für einen Kunden in Kunden- bzw. Auftrags-Währung.

Parameter

oDM:O | Datenmodul-Objekt
nCustNo:N | Kunden-Nr.
cArtNo:C | Artikel-Nr.
nQuant:N | Menge (in Lager-Einheiten)
nPreisNr:N | Zu verwendende Preis-Nr.; default = -1 (Übernahme vom Kunden)
cProgID:C | Individuelle Prog-ID (wird an aufgerufene Events weitergegeben)
dGueltigPer:D | Datum, zu welchem die Sonder-Kondition gültig ist (leer = Tagesdatum)
nCalcOrdNo:N | Auftrags-Nr. zur Bestimmung der Währung; default = 0 (Währung aus den Kundendaten)

Rückgabewert

Array- {     [ ccpCurrID ]                                   Währung

                  [ ccpSinglePrice ]                              Brutto-Preis

                  [ ccpPriceUnit ]                                Preis-Einheit

                  [ ccpDiscount, 1..3 ]                           Pos.-Rabatt 1 - 3

    [ ccpTotalDiscount, 1..2 ]                      Gesamt-Rabatt 1 - 2

    [ ccpNetPrice ]                                 Nettopreis

    [ ccpRateValue ]                                Menge(False) / Wert(True)

    [ ccpRateDiscount ]                             Rabatt(False) / Netto(True)

    [ ccpQuantRate, 1..10,                          Rabatt-Staffel 1 - 10

        { Staffel-Menge  oder Wert,

          Staffel-Rabatt oder Netto

        }

    ]

    [ ccpNetPriceQuant ]                            Kalk. Netto-Preis,

    [ ccpD040RecNo ]                                Dab040-Datensatz-Nr.

    [ ccpExtra, 1..3,                               Zuschläge 1 - 3

        { ccpExtraText,                             Zuschlag-Text

          ccpExtraMode,                             Zuschlag-Art (Kennzeichen)

          ccpExtraCost,                             Betrag in Eigenwährung

          ccpExtraCostFW,                           Betrag ggf. in Fremdwährung

          ccpExtraDisplayText                       Zuschlag-Art (Text)

        }

    ]

}

Beispiel

| oDM, oDab050, oDab000, aRes, cStr, i |

Function PrintCurr(nCurrID)

  Result:= Str(nCurrID) + ' - ' +

           CurrSign(nCurrID)    +

           IIf(CurrConvSales(nCurrID) = 'J', '*', '')

End,

Function PrintStaffelTyp(bTyp)

  Result:= If(bTyp, 'ab Wert', 'ab Menge')

End,

Function PrintStaffelRabattTyp(bRabattTyp)

  Result:= If(bRabattTyp, 'Rabatt', 'Netto-Preis')

End,

Function PrintStaffelArray(bTyp, bRabattTyp, aArray)

| i |

  Result:= PadR(PrintStaffelTyp(bTyp), 11) + PrintStaffelRabattTyp(bRabattTyp)    + CrLf,

  For i:= 1 to ALen(aArray) do

      Result += Space(19) + PadR(aArray[i, 1], 10) + ' ' + Str(aArray[i, 2]) + CrLf

  Next

End,

//---------

oDM:= CreateObject('TBeDBGet'),

StartSeq

   aRes:= KundPreisCalcAll2(oDM, 10006, 'TEST-20', 1),

   cStr:= 'Währung          : ' + PadR(PrintCurr(aRes[ccpCurrID]), 25) +

                                  ' (Kundenwährung oder Währung des Auftrags)'               + CrLf +

          'Brutto-Preis     : ' + PadR(Str(aRes[ccpSinglePrice]), 25) +

                                  ' (in o.a. Währung)'                                       + CrLf +

          'Preis-Einheit    : ' + PadR(Str(aRes[ccpPriceUnit]), 25) +

                                  ' (aus Artikelstamm)'                                      + CrLf +

          ' Pos.-Rabatte  1 : ' + PadR(Str(aRes[ccpDiscount, 1]), 25) +

                                  ' (aus Sonderkondition Dab040, falls vorhanden)'           + CrLf +

          '               2 : ' + Str(aRes[ccpDiscount, 2])                                  + CrLf +

          '               3 : ' + Str(aRes[ccpDiscount, 3])                                  + CrLf +

          ' Ges.-Rabatte  1 : ' + PadR(Str(aRes[ccpTotalDiscount, 1]), 25) +

                                  ' (aus Kundenstamm)'                                       + CrLf +

          '               2 : ' + Str(aRes[ccpTotalDiscount, 2])                             + CrLf +

          'Netto-Preis      : ' + PadR(Str(aRes[ccpNetPrice]), 25) +

                                  ' (Netto-Preis, Positions- und Gesamt-Rabatte verrechnet)' + CrLf +

          'Staffel          : ' + PrintStaffelArray(aRes[ccpRateValue],

                                                    aRes[ccpRateDiscount],

                                                    aRes[ccpQuantRate]) +

          'kalk.Netto-Preis : ' + PadR(Str(aRes[ccpNetPriceQuant]), 25) +

                                  ' (kalkulierter Preis für die angegebene Menge)',

   If !Empty(aRes[ccpD040RecNo]) then

       For i:= 1 to 3 do

          cStr:= cStr       + CrLf + CrLf +

          'Zuschlag-Text  ' + Str(i) + ' : ' + aRes[ccpExtra,     i, ccpExtraText]        + CrLf +

          'Zuschlag-Art   ' + Str(i) + ' : ' + aRes[ccpExtra,     i, ccpExtraMode]        + CrLf +

          'Zuschlag in EW ' + Str(i) + ' : ' + Str(aRes[ccpExtra, i, ccpExtraCost])       + CrLf +

          'Zuschlag in FW ' + Str(i) + ' : ' + Str(aRes[ccpExtra, i, ccpExtraCostFW])     + CrLf +

          'Beschreibung   ' + Str(i) + ' : ' + aRes[ccpExtra,     i, ccpExtraDisplayText] + CrLf

      Next,

   EndIf,

Always

  DestroyObject(oDM)

StopSeq,

WriteLn(cStr)

Siehe auch

KundPreisCalc2()


KundRab_Sperr()

KundRab_Sperr() – Kunden Rabatt-Sperre

Beschreibung

Die Funktion führt die Formel der Rabatt-Sperre in den allgemeinen Parametern aus, und gibt das Ergebnis zurück.

Parameter

keine Parameter erwartet

Rückgabewert

Logisch / Boolean - Formel Rabatt-Sperre

Beispiel

KundRab_Sperr()

www.dontenwill.de | www.business-express.de


KundSperrUpd()

KundSperrUpd() – Aktualisierung des Kundensperrkennzeichens

Beschreibung

Die Funktion aktualisiert das Kundensperrkennzeichen.

Parameter

cNewValue:C

Neuer Wert

Rückgabewert

Alphanumerisch - Neues Kundensperrkennzeichen


Lager()

Lager() – Lagerbestand abfragen

Beschreibung

Die Funktion summiert die Bestände aller Lager, die in den Festwerten als verfügbar definiert wurden. oDab010 muss auf entsprechenden Artikel positioniert werden.

Parameter

aStore:C | Lagerorte, getrennt durch '/' ; default = '' (alle verfügbaren Lager)
oDab010:O | Tabellenobjekt DAB010; default = Standard Dab010
lPhysisch:L | Reservierungen berücksichtigen; default = false true - Reservierungen ignorieren false - Reservierungen miteinberechnen

Rückgabewert

Numerisch - Lagerbestand

Beispiel

Lager()

Siehe auch

HLager()

RLager()


LagerOrt2Array()

LagerOrt2Array() – Lager

Beschreibung

Die Daten eines Lagerorts werden als zweidimensionales Array ausgegeben. Jeder Datensatz und jeder Feldwert des Lagerorts werden ausgegeben.

Parameter

aText:C

LagerOrt

Rückgabewert

Array -       { {Field1,Field2,Field3,...,Fieldn},     //Datensatz 1

                {Field1,Field2,Field3,...,Fieldn},     //Datensatz 2

                (...),

                {Field1,Field2,Field3,...,Fieldn}      //Datensatz n

              }

Beispiel

| oDab055:DB := '4,1' |

LagerOrt2Array(oDab055:LAG_ORT)


LagName()

LagName() – Lagerbezeichnung

Beschreibung

Funktion zum Ermitteln der Bezeichnung einer Lager-Nr eines Standorts.

Parameter

uLagerNr:U | Lagernummer
nStandort:N | Für Standort-Nr., default = -1 = aktueller Standort

Rückgabewert

Alphanumerisch - Lagerbezeichnung

Beispiel

LagName(0)


LagOrtArray()

LagOrtArray() – Umwandlung eines LAG_ORT-Feldes ins Array-Format

Beschreibung

Die Funktion konvertiert das bis business express Version 5.7 gültige Speicherungsformat in LAG_ORT-Feldern (Dab055:LAG_ORT, Dab160:LAG_ORT, etc.) in das ab Version 5.8. gültige Array-Format.

Hinweis

Falls das Array per Codeblock ausgelesen werden soll, muss der Zugriff über die registrierten Index-Konstanten (loa_Quantity, loa_Store, etc) geschehen.

Parameter

cLagOrt:C

Inhalt von LAG_ORT im 5.7 Format

Rückgabewert

Array

Beispiel

| cOldLAG_ORT, aNewLagORT, i |

// 5.7. LAG_ORT - Format, z.B. aus Dab055:LAG_ORT

cOldLAG_ORT := '          -10¦A7B2D   ¦CHARGE1      ¦21.01.08' +

               '          -20¦A7C4E   ¦CHARGE2      ¦21.01.08' +

               '          -30¦--      ¦CHARGE3      ¦21.01.08',

// Konvertierung in neues Format

aNewLagORT  := LagOrtArray(cOldLAG_ORT),

// Ausgabe als Zeilen-Arrays

for i := 1 to ALen(aNewLagORT) do

   WriteLn( ArrToStr(aNewLagORT[i])),

next,

writeln(crlf + crlf),

// Ausgabe als lesbarer Text

for i := 1 to ALen(aNewLagORT) do

   WriteLn( ' ----------------------- ' ),

   WriteLn( ' Menge:       ' + padl(     aNewLagORT[i, loa_Quantity],  10) + crlf +

            ' Lager:       ' + padl(     aNewLagORT[i, loa_Store],     10) + crlf +

            ' Platz:       ' + padl(     aNewLagORT[i, loa_Place],     10) + crlf +

            ' Behälter:    ' + padl(     aNewLagORT[i, loa_Container], 10) + crlf +

            ' Charge/Ser.: ' + padl(     aNewLagORT[i, loa_Commiss],   10) + crlf +

            ' Datum:       ' + padl(DToC(aNewLagORT[i, loa_Date]),     10) ),

next,


LagReserv()

LagReserv() – Lagerreservierung

Beschreibung

Die Funktion liefert den Bestand aller reservierten Mengen zu einem Artikel.

Parameter

cArtNr:C | Artikelnummer
cLagerList:C | Liste der Lagerorte; default = Leerstring
cTermIndexVon:C | Von Termin; default = Leerstring
cTermIndexBis:C | Bis Termin; default = Leerstring
nStandort:N | Standort; default = -1
lAsArray:L | Ergebnis als Array ausgeben; default = false

Rückgabewert

Reservierungsmenge oder Array - je nach Parameter lAsArray

Wird die Array-Rückgabe gewählt, besteht die Rückgabe aus einem Array mit einem Element je Lagernr. (1. Element = Lager 0, 2. Element = Lager 1, usw.)

Beispiel

LagReserv('LS-200')


LBuch()

LBuch() – Lagerbuchung

Beschreibung

Funktion zur Lagerbuchung.

Je nach Buchungsart muss unter anderem

- Der entsprechende Dab020-Eintrag "von Hand" erstellt werden.

- Wird eine übergebene Kommissions- oder Platz-Nr. u.U. nicht berücksichtig

- Wie bei allen BE-Lagerbuchungsfunktionen muss sichergestellt sein, dass bei

Übergabe einer Platz-Nr. im Kommiss.Array, die für die Lager-Nr. gültig und verfügbar ist.

- Wird eine Größenklasse angegeben, muss diese mit der Lagerort-Größenklasse übereinstimmen.

- Wird eine Reservierungs-ID angegeben, muss ein entsprechend reservierter Lagerort existieren.

Ist ein Lagerort bereits für eine abweichende ID reserviert, wird eine Exception ausgelöst.

- Sollte der Buchungsdialog oder alternativ die Kommissions- und Platz-Vorgabe über

das "vor Lagerbuchung"-Ereignis erfolgen

Hinweis

Die Funktion LUmlag() ermöglicht mit einfachen Mitteln vollständige Ein-/Aus- und Umlagerungen per Codeblock.

Im Gegensatz zu LBuch() schreibt LUmlag() die Lagerkartei (DAB020) selbständig fort.

Parameter

oAdsConnect:O | AdsConnection für äußere Transaktion (erforderlich, z.B. Dab010.AdsConnection)
cArtnr:C | Artikel-Nr.
cLager:C | Lager-Nr.
nMenge:N | Menge (+/-)
dDatum:D | Buchungsdatum
cBuArt:C | Buchungsart
cBelegnr:C | Belegnr
uKommiss:U | Kommission (leer erlaubt)
nPersnr:N | Kd./Lief.Nr. (Null erlaubt)
cText:C | Buchungs-Text (leer erlaubt)
cLagort:C | Vorgabe-Lagerort (nur bei Abgang)
oDab010:O | Dab010
lNoCardPrint:L | Keinen Lagerschein drucken; default = false
lQuietMode:L | Keinen Buchungsdialog anzeigen; default = false
lRaiseError:L | Im Fehlerfall Laufzeitfehler auslösen; default = false
lShowDlgOnErr:L | Bei ungültiger Platzvorgabe (u.ä.) Buchungsdialog anzeigen; default = false
oDab055:O | Tabellenobjekt DAB055; default = Standard Dab055
oDab610:O | Tabellenobjekt DAB610; default = Standard Dab610
oDab720:O | Tabellenobjekt DAB720; default = Standard Dab720
oDab020:O | Tabellenobjekt DAB020; default = Standard Dab020
oDab710:O | Tabellenobjekt DAB710; default = Standard Dab710
oDab730:O | Tabellenobjekt DAB730; default = Standard Dab730
oDab050:O | Tabellenobjekt DAB050; default = Standard Dab050
oDab255:O | Tabellenobjekt DAB255; default = Standard Dab255
oDab250:O | Tabellenobjekt DAB250; default = Standard Dab250
cProgID:C | Freie Zeichenfolge zur Übergabe an BE-Events; default = Leerstring
nGroeKlasse:N | Größenklasse; default = 0
nReservID:N | Reservierungs-ID; default = 0
nEntnSchNr:N | Entn.Schein-Nr.; default

Rückgabewert

Logisch / Boolean - Lager-Buchungs-Fenster

Beispiel

| oDab010:DB := '2,1' |

LBuch(oDab010.AdsConnection,

      "01-0015", "00", 10, mbdatum,

      "E",

      "", "", 0, "", "", oDab010, false, true, false, true)


Lief_Sperr()

LiefSperr() – Liefersperre

Beschreibung

Die Funktion dient der Abfrage des Sperrkennzeichens im Kundenstamm.

Parameter

nKdNr:N | Kundennr.
oDab000:O | Tabellenobjekt DAB000; default = Standard Dab000

Rückgabewert

Logisch / Boolean - Liefersperre

Beispiel

| oDab000:DB := '1,1' |

Lief_Sperr(900, oDab000)

Siehe auch

Auf_Sperr()


LiefDiffBuch()

LiefDiffBuch() – Lieferdifferenzen buchen

Beschreibung

Die Funktion bucht Lieferdifferenzen für einen Auftrag bzw. eine Lieferung.

Parameter

aDelivNo:N

Lieferscheinnr.

aOrderNo:N

Auftragsnr.

aChgOrdQuant:L

Anpassung der Bestellmengen (bzw. Löschung Position bei Storno)

aDiffStore:C

Differenz-Menge ggf. auf dieses Lager buchen

aDiffArray:A

Array:

{

{ Auftragsposition, { { Kommiss, Platz, Menge }, { Kommiss, Platz, Menge }, (...) }},

{ Auftragsposition, { { Kommiss, Platz, Menge }, { Kommiss, Platz, Menge }, (...) }},

(...)

}

Wird das Array { Kommiss, Platz, Menge } leer {} übergeben, wird die entsprechende Auftragsposition storniert!

aStornoAll:L

Total-Storno

aShowMsg:L

(Fehler-)Meldungen werden als Meldung angezeigt

aErrMsg:R

Fehlermeldung; default = null

Rückgabewert

Logisch / Boolean - Buchung erfolgreich

Beispiel

LiefDiffBuch(280942, 0, false, "4", {

                                    {"187789  1", {{"400000", "",1}, {"400002", "", 1}}},

                                    {"187789  2", {}}

                                    },

                                    false,

                                    true)


LiefNr()

LiefNr() – Lieferantennummer

Beschreibung

Die Funktion ermittelt die Lieferantennummer zu dem jeweiligen Satz der übergebenen Tabelle. In einem Funktionsaufruf muss immer genau eine Tabelle übergeben werden!

Parameter

oDab010:O | Tabellenobjekt des Artikelstamms; default = nil
oDab510:O | Tabellenobjekt der Artikelzulieferer; default = nil
oDab100:O | Tabellenobjekt des Zuliefererstamms; default = nil
oDab210:O | Tabellenobjekt der Stückliste; default = nil

Rückgabewert

Undefiniert

Beispiel

| oDAB010:DB := '2,1' |

DBGoTop(oDAB010),

DBSkip(2, oDAB010),

LiefNr(oDAB010)


LocationActive()

LocationActive() – Standortprüfung

Beschreibung

Die Funktion prüft, ob der aktuelle Standort aktiv ist.

Parameter

keine Parameter erwartet

Rückgabewert

Logisch / Boolean - Standort aktiv

Beispiel

LocationActive()

Siehe auch

CustLocationCompany()

CustLocationInfo()

CustLocationNo()

LocationCompany()

LocationCustNo()

LocationExists()

LocationInfo()

LocationName()

LocationSuppNo()

SuppLocationCompany()

SuppLocationInfo()

SuppLocationNo()


LocationCompany()

LocationCompany() – Firmenzugehörigkeit

Beschreibung

Die Funktion gibt die Firmenzugehörigkeit/Standort-Nummer eines Standortes zurück. Diese Nummer ist in den Allgemeinen Parametern unter dem jeweiligen Standort zu finden.

Parameter

aLocation:N

Nummer des Standortes (mstandort = aktueller Standort)

Rückgabewert

Numerisch - Standort. Falls Standort-Nummer ungültig ist: -1

Beispiel

LocationCompany(mstandort)

Siehe auch

CustLocationCompany()

CustLocationInfo()

CustLocationNo()

LocationActive()

LocationCustNo()

LocationExists()

LocationInfo()

LocationName()

LocationSuppNo()

SuppLocationCompany()

SuppLocationInfo()

SuppLocationNo()


LocationCustNo()

LocationCustNo() – Kundennummer des Standorts

Beschreibung

Die Funktion gibt die KundenNr. eines Standortes zurück. Unter dieser Nummer ist der Standort als Kunde vorhanden. Diese Nummer ist in den Allgemeinen Parametern unter dem jeweiligen Standort zu finden.

Parameter

aLocation:N

Nummer des Standortes (mstandort = aktueller Standort)

Rückgabewert

Numerisch - Kundennummer des Standorts. Falls Standort-Nummer ungültig ist: -1

Beispiel

LocationCustNo(mstandort)

Siehe auch

CustLocationCompany()

CustLocationInfo()

CustLocationNo()

LocationActive()

LocationCompany()

LocationExists()

LocationInfo()

LocationName()

LocationSuppNo()

SuppLocationCompany()

SuppLocationInfo()

SuppLocationNo()


LocationExists()

LocationExists() – Standort-Prüfung

Beschreibung

Die Funktion prüft, ob ein Standort existiert.

Parameter

aLocation:N

Nummer des Standortes (mstandort = aktueller Standort)

Rückgabewert

Logisch / Boolean

Beispiel

LocationExists(mstandort)

Siehe auch

CustLocationCompany()

CustLocationInfo()

CustLocationNo()

LocationActive()

LocationCompany()

LocationCustNo()

LocationInfo()

LocationName()

LocationSuppNo()

SuppLocationCompany()

SuppLocationInfo()

SuppLocationNo()


LocationInfo()

LocationInfo() – Standort-Informationen

Beschreibung

Die Funktion gibt ein TLocationInfo-Objekt mit allen Informationen eines Standortes zurück.

Parameter

aLocation:N

Nummer des Standortes (mstandort = aktueller Standort)

Rückgabewert

Objekt - TLocationInfo-Objekt. Falls die Nummer des Standortes ungültig ist: NIL

Objekt-Eigenschaften:

- allowed // Erlaubnis

- company // Firmenzugehörigkeit Standort

- custdepart // VK-Abteilung für sto.Umlagerung

- custno // Kundennr. Standort

- custtype // Empfängertyp für sto.Umlagerung

- locname // Mandanten/Abteilungs-Name

- locno // Standort-Nummer

- ordtypeext // Auftragsart für Lieferung firmenextern

- ordtypeint // Auftragsart für Lieferung firmenintern

- suppdepart // EK-Abteilung. für sto.Umlagerung

- suppno // Lieferantennr. Standort

Beispiel

| oLocInfo |

oLocInfo := LocationInfo(mstandort),

WriteLn(oLocInfo.custno),

WriteLn(oLocInfo.suppno),

WriteLn(oLocInfo.company),

Siehe auch

CustLocationCompany()

CustLocationInfo()

CustLocationNo()

LocationActive()

LocationCompany()

LocationCustNo()

LocationExists()

LocationName()

LocationSuppNo()

SuppLocationCompany()

SuppLocationInfo()

SuppLocationNo()


LocationName()

LocationName() – Standortname

Beschreibung

Die Funktion gibt den Namen / Mandanten eines Standortes zurück. Dieser Name ist in den Allgemeinen Parametern unter dem jeweiligen Standort zu finden.

Parameter

aLocation:N

Nummer des Standortes (mstandort = aktueller Standort)

Rückgabewert

Alphanumerisch - Standortname. Falls Standort-Nummer ungültig ist: keiner

Beispiel

LocationName(mstandort)

Siehe auch

CustLocationCompany()

CustLocationInfo()

CustLocationNo()

LocationActive()

LocationCompany()

LocationCustNo()

LocationExists()

LocationInfo()

LocationSuppNo()

SuppLocationCompany()

SuppLocationInfo()

SuppLocationNo()


LocationSuppNo()

LocationSuppNo() – Lieferantennummer eines Standortes

Beschreibung

Die Funktion gibt die LieferantenNr. eines Standortes zurück. Unter dieser Nummer ist der Standort als Lieferant vorhanden. Diese Nummer ist in den Allgemeinen Parametern unter dem jeweiligen Standort zu finden.

Parameter

aLocation:N

Nummer des Standortes (mstandort = aktueller Standort)

Rückgabewert

Numerisch - Lieferantennummer des Standorts. Falls Standort-Nummer ungültig ist: -1

Beispiel

LocationSuppNo(mstandort)

Siehe auch

CustLocationCompany()

CustLocationInfo()

CustLocationNo()

LocationActive()

LocationCompany()

LocationCustNo()

LocationExists()

LocationInfo()

LocationName()

SuppLocationCompany()

SuppLocationInfo()

SuppLocationNo()


LUmlag()

LUmlag() – Lagerumbuchung

Beschreibung

Die Funktion dient dem manuellen Umlagern von Waren.

Wie bei allen BE-Lagerbuchungsfunktionen muss sichergestellt sein, dass bei Übergabe einer Platz-Nr. im Kommiss.Array, diese für die Lager-Nr. gültig und verfügbar ist!

Wird eine Größenklasse angegeben, muss diese mit der Lagerort-Größenklasse übereinstimmen.

Wird eine Reservierungs-ID angegeben, muss ein entsprechend reservierter Lagerort existieren.

Ist ein Lagerort bereits für eine abweichende ID reserviert, wird eine Exception ausgelöst.

Parameter

oDM:O | Datenmodul (TBeDBGet)
cArtnr:C | Artikelnummer
cLagerVon:C | Quell-Lagernr.
aKommissArrVon:A | Quell-Komiss./Platz-Array. Format: { { <Kommission>, <Menge>, [, <Platz> [, <BehälterNr> ]] }, { ... } }
nMengeVon:N | Abgangsmenge
cLagerAn:C | Ziel-Lager-Nr.
aKommissArrAn:A | Ziel-Komiss./Platz-Array. Format: { { <Kommission>, <Menge>; [,<Platz> [,<Verfallsdatum> [,<BehälterNr> [,<EinwegBehälterTyp>]]]]}, { ... }; }
nMengeAn:N | Zugangsmenge
cBuart:C | Buchungsart; default = 'U'
cBelegnr:C | Belegnummer; default = Leerstring
cText:C | Buchungstext; default = Leerstring
lNoCardPrint:L | Keine Lagerkarte drucken; default = false
lQuietMode:L | Kein Buchungsdialog; default = qmQuiet
lShowDlgOnErr:L | Fehler im Dialog zeigen; default = false
cProgID:C | Indiv.Progamm-ID; default = 'Codeblock RestoreAccounting'
nGroeKlasse:N | Geforderte Größenkklasse (0 = Gr.Klasse ignorieren); default = 0
nReservID:N | Lagerort-Reservierungs-ID (hat Priorität vor <Platz>-Angabe in aKommissArrAn !!); default = 0
nEntnSchNr:N | Entn.Schein-Nr.; default = 0
lIgnAuftrRes:L | Auftragsreservierungen vollständig ignorieren (entspricht manueller Inventur-Korrektur); default = false
cKommissVon:C | Abgangs-Kommission zum Eintrag in die Lagerkartei; default = Leerstring
cKommissAn:C | Zugangs-Kommission zum Eintrag in die Lagerkartei; default = Leerstring; Wichtig: Für Erstellung neuer Einwegbehälter <BehälterNr> 0 übergeben

Rückgabewert

Keiner

Beispiel

| oDM, aCommissVon, aCommissAn |

oDM := CreateObject('TBeDBGet'),

// Auslagern Charge R15 von Platz 001C04D3, Behälter 500001

aCommissVon := {{'R15', 20, '001C04D3', 500001}},

// Einlagern Charge R15 auf Platz 001C04D4, neuer EinwegBehälter Typ 30

aCommissAn  := {{'R15', 20, '001C04D4', , 0, 30}},

LUmlag(oDM, 'GRKL1',

       '04', aCommissVon, 20,

       '03', aCommissAn,  20,

       'U',  'TEST', 'Test-Text',

       true, true, false, 'UML_TEST',

       0, 0)


m2Verfueg()

m2Verfueg() – Verfügbarkeit Minus2 Artikel

Beschreibung

Die Funktion gibt die Anzahl an verfügbaren Artikeln für einen minus2 Artikel zurück.

Parameter

oDab240:O | Tabellenobjekt DAB240
oDab010:O | Tabellenobjekt DAB010
oDab055:O | Tabellenobjekt DAB055
cLager:C | Nur für diese Lager-Nr (Verkauf)
lFertigung:L | Berechnung für Produktions-Bedarf

Rückgabewert

Numerisch - Anzahl verfügbarer Artikel

Beispiel

| oDab240:DB := '26', oDab010:DB := '2', oDab055:DB := '4' |

m2Verfueg(oDab240, oDab010, oDab055, "00", false)


MailAttDelete()

MailAttDelete() – Attachement löschen

Beschreibung

Mit MailAttDelete() kann eine gespeicherte Datei über Ihren Dateinamen aus einem Blob-Feld gelöscht werden (das Blob-Feld kann mehrere Dateien enthalten). Die Funktion wird hauptsächlich dafür genutzt, eine angehängte Datei eines Memos zu löschen. Die übergebene Tabelle muss vor dem Aufruf der Funktion in den Edit-Modus versetzt und der Datensatz positioniert werden. Zum Speichern der Änderungen in der Tabelle muss anschließend ein Post ausgeführt werden.

Hinweis

- Die Dateien werden in dem Blob-Feld in gepackter Form (ZIP-komprimiert) gespeichert.

- Es ist nicht möglich, das Blob-Feld für andere Zwecke als der Speicherung von Dateien zu verwenden.

- Es ist nicht möglich direkt auf die Dateiinhalte zuzugreifen, einen Volltextindex auf das Blob-Feld zu erstellen oder ähnlich direkte Operationen durchzuführen

- Operationen, welche Dateien dem Blob-Feld hinzufügen bzw. aus dem Blob-Feld löschen arbeiten relativ langsam, da immer das gesamte Blob-Feld neu aufgebaut werden muss.

Parameter

oTable:O | Tabelle, die das Attachement enthält
cField:C | Name des Feldes
cDeleteFile:C | Name der zu löschenden Datei
lIsCID:L | Name ist eine CID

Rückgabewert

Keiner

Beispiel

| oDab065:DB := '9,1', cFileName |

// Anhang löschen

DBEdit(oDab065),

cFileName := InputBox('LÖSCHEN', 'Anhang:', ''),

MailAttDelete(oDab065, "DATA", cFileName, false),

DBPost(oDab065),


MailAttLoadFromFile()

MailAttLoadFromFile() – Attachement laden

Beschreibung

Mit MailAttLoadFromFile() kann eine Datei mit Ihrem Dateinamen einem Blob-Feld hinzugefügt werden (das Blob-Feld kann mehrere Dateien enthalten). Die Funktion wird hauptsächlich dafür genutzt, einem Memo einen Anhang hinzuzufügen. Die übergebene Tabelle muss vor dem Aufruf der Funktion in den Edit-Modus versetzt und der Datensatz positioniert werden. Zum Speichern der Änderungen in der Tabelle muss anschließend ein Post ausgeführt werden.

Hinweis

- Die Dateien werden in dem Blob-Feld in gepackter Form (ZIP-komprimiert) gespeichert.

- Es ist nicht möglich, das Blob-Feld für andere Zwecke als der Speicherung von Dateien zu verwenden.

- Es ist nicht möglich direkt auf die Dateiinhalte zuzugreifen, einen Volltextindex auf das Blob-Feld zu erstellen oder ähnlich direkte Operationen durchzuführen

- Operationen, welche Dateien dem Blob-Feld hinzufügen bzw. aus dem Blob-Feld löschen arbeiten relativ langsam, da immer das gesamte Blob-Feld neu aufgebaut werden muss.

Parameter

oTable:O | Tabelle, die das Blob-Feld enthält
cField:C | Name des Feldes
cSourceFile:C | Name der zu ladenden Datei
lSaveLinkOnly:L | LadeModus; False = Datei in das Feld kopieren; True = Nur Verweis auf die Datei speichern

Rückgabewert

keiner

Beispiel

| oDab065:DB := '9,1', cFileName |

// Anhang laden

DBEdit(oDab065),

cFileName := InputBox('Laden', 'Datei:', ''),

MailAttLoadFromFile(oDab065, "DATA", cFileName, false),

DBPost(oDab065),


MailAttLoadList()

MailAttLoadList() – Liste und Eigenschaften Attachement

Beschreibung

Mit MailAttLoadList() können die gespeicherten Dateien und deren Eigenschaften eines Blob Feldes ermittelt werden. (Das Blob-Feld kann mehrere Dateien enthalten). Die Funktion wird hauptsächlich dafür genutzt, den Anhang eines Memos zu untersuchen. Die übergebene Tabelle muss vor dem Aufruf der Funktion auf dem entsprechenden Datensatz positioniert werden.

Hinweis

Sind die optionalen Parameter bSkipLinks und bSkipEmbedded aktiviert, so enthält die Rückgabeliste nur "echte" Datei-Anhänge . Für den Zugriff auf Memo-Anhänge Klassen-Methode von TBeMemoBo benutzen.

Parameter

oTable:O | Tabelle, die das Blob-Feld enthält
cField:C | Name des Feldes
bSkipLinks:L | Links ignorieren
bSkipEmbedded:L | Eingebettete Dateien (von Mails) ignorieren

Rückgabewert

Array - Aufbau des Arrays:

{ { Index[1]:N, Offset[2]:N, ZipSize[3]:N, FileSize[4]:N, FileName[5]:C, FileType[6]:N, ContentID[7]:C }, { ... }, ... }

Beispiel

| aAtt, i, cRes, oDab065:DB := "9,6" |

// Anhänge auflisten

cRes := 'Anhänge:' + crlf,

aAtt := MailAttLoadList(oDab065, "DATA"),

if not Empty(aAtt) then

   for i := 1 to Len(aAtt) do

      WriteLn(aAtt[i]),

      cRes := cRes +

             'Nummer: '  + Str(aAtt[i,1]) +

             ' Name: '   + aAtt[i,5] +

             ' Typ: '    + Str(aAtt[i,6]) +

             ' Größe: '  + Str(aAtt[i,4]) + crlf,

   next,

endif,

Meld(cRes),


MailAttSaveFullHtmlToFile()

MailAttSaveFullHtmlToFile() – HTML-Attachement speichern

Beschreibung

Mit MailAttSaveFullHTMLToFile() kann eine gespeicherte HTML-Datei in einem Zielverzeichnis bzw. -datei gespeichert werden.

Die Funktion wird hauptsächlich dafür genutzt um HTML-Seiten zu speichern, die als Anhang an ein Memo angehängt wurden. Die übergebene Tabelle muss vor dem Aufruf der Funktion auf dem entsprechenden Datensatz positioniert werden.

Die Funktion speichert eine vollständige Kopie der gespeicherterten HTML-Datei (im BE-Memo heißt diese immer "ORIGINAL.HTM") inkl. aller Bilder und sonstiger eingebetteter Objekte. Eingebettete Objekte werden im Zielverzeichnis in einem Unterverzeichnis mit dem Namen der Zieldatei ohne Extension zzgl. der Zeichenfolge ".files" gespeichert; z.B. zusätzlich zur gespeicherten HTML-Datei "ORIGINAL.HTM" würde ein Unterverzeichnis namens "ORIGINAL.files" mit den Bildern der HTML-Datei generiert. Die HTML-Datei beinhaltet anschließend relative Pfade, die auf die entsprechenden Bilder verweisen.

Parameter

oTable:O | Tabelle, die das Blob-Feld enthält
cField:C | Name des Feldes
cSourceFile:C | Name bzw. Content-ID der gespeicherten Datei
cDestPath:C | Name des Zielverzeichnisses
cDestFile:C | Name der Ziel-HTML-Datei

Rückgabewert

Keiner

Beispiel

| oDab065:DB := '9,1', cFileName |

// Anhang speichern

cFileName   := InputBox('Speichern','Anhang:',''),

if cFileName = 'ORIGINAL.HTM' and JN('Komplette HTML-Datei speichern?') then

   MailAttSaveFullHTMLToFile(oDab065, "DATA", cFileName, 'c:\Temp\', cFileName),

else

   MailAttSaveToFile(oDab065, "DATA", cFileName, false, 'c:\Temp\' + cFileName),

endif,


MailAttSaveToFile()

MailAttSaveToFile() – Attachement speichern

Beschreibung

Mit MailAttSaveToFile() kann eine gespeicherte Datei über Ihren Dateinamen aus einem Blob-Feld geladen, und in einer Zieldatei gespeichert werden. (Das Blob-Feld kann mehrere Dateien enthalten). Die Funktion wird hauptsächlich dafür genutzt, eine angehängte Datei eines Memos zu speichern. Die übergebene Tabelle muss vor dem Aufruf der Funktion auf dem entsprechenden Datensatz positioniert werden.

Parameter

oTable:O | Tabelle, die das Blob-Feld enthält
cField:C | Name des Feldes
cSourceFile:C | Name bzw. Content-ID der gespeicherten Datei
LisCID:L | Name ist eine Content-ID
cDestFile:C | Name der Zieldatei

Rückgabewert

keiner

Beispiel

| oDab065:DB := '9,1', cFileName |

// Anhang speichern

cFileName := InputBox('Speichern', 'Anhang:', ''),

MailAttSaveToFile(oDab065, "DATA", cFileName, false, 'c:\Programme\' + cFileName),


MailChkAddAccount()

MailChkAddAccount() – MailAccount zu MailChecker hinzufügen

Beschreibung

Die Funktion fügt den übergebenen Mail-Account zum MailChecker hinzu.

Hinweis

Z.Zt. können nur POP3-Email-Konten abgerufen werden.

Mit der Funktion MailChkExecute() werden die Emails aller Accounts abgerufen, die sich im MailChecker befinden.

Parameter

cName:C | Account-Name
cHost:C | Host
cUser:C | User
cPass:C | Passwort
cBeUser:C | Be-User
lDelFromServer:L | True = abgerufene Emails löschen, False = Emails auf dem Server belassen

Rückgabewert

Logisch / Boolean - Hinzufügen erfolgreich

Beispiel

MailChkAddAccount(M_EMAILNAM, DABPAR:EMAIL_POP, M_POPUSER, M_POPPW, C_USR, true),

MailChkExecute(),

Siehe auch

MailChkExecute()


MailchkDeleteAccount()

MailChkDeleteAccount() – MailAccount aus MailChecker löschen

Beschreibung

Die Funktion löscht den übergebenen Mail-Account aus dem MailChecker. Mit der Funktion MailChkExecute() werden die Emails aller Accounts abgerufen, die sich im MailChecker befinden.

Parameter

cName:C

Accountname

Rückgabewert

Logisch / Boolean - Löschen erfolgreich

Beispiel

MailChkDeleteAccount('Acc01')

Siehe auch

MailChkAddAccount()

MailChkExecute()


MailChkDirect()

MailChkDirect() – Mails direkt abrufen

Beschreibung

Die Funktion ruft die EMails für einen Account direkt ab.

Hinweis

Wird der Paramater oMemResultTable nicht angegeben, werden die empfangenen Emails mit der Standardlogik in der Dab065 abgelegt.

Wird der Paramater oMemResultTable angegeben, werden die empfangenen Emails nicht in der Dab065 sondern in der übergebenen Memory-Tabelle abgelegt.

Die Struktur der Tabelle wird von der Funktion automatisch der Dab065 angepasst.

Alle Email-Events werden ausgeführt.

Parameter

cName:C | Account-Name
cHost:C | Host
cUser:C | User
cPass:C | Passwort
cBeUser:C | Be-User
lDelFromServer:L | Abgerufene Emails können vom Server gelöscht werden
oResultMemTable:O | Mem-Table für die Ergebnisse; default = nil
lNoContent:L | Keinen Content abrufen; default = false
cUidOnly:C | Uid verwenden; default = Leerstring

Rückgabewert

Logisch / Boolean - Abrufen erfolgreich

Beispiel

| oMailTemp, i, aAtt, cImpPath |

oMailTemp := CreateObject("TMemCalcTable"),

MailChkDirect(M_EMAILNAM,

              DABPAR:EMAIL_POP,

              M_POPUSER,     // Username

              M_POPPW,       // Password

              C_USR,         // BE-User

              TRUE,          // Delete Mail from Server

              oMailTemp  ),

DBGoTop(oMailTemp),

while not EoF(oMailTemp) do

   aAtt  := MailAttLoadList(oMailTemp,"DATA"),

   for i := 1 to ALen(aAtt) do

      if Lower(RTrim(aAtt[i,5])) = 'zezeiten.bez' then

         MailAttSaveToFile(oMailTemp, "DATA", aAtt[i,5], false, cImpPath+aAtt[i,5]),

      endif,

   next,

   DBSkip(1, oMailTemp),

end,


MailChkExecute()

MailChkExecute() – MailChecker abrufen

Beschreibung

Die Funktion ruft die EMails für alle Accounts ab, die zum MailChecker hinzugefügt wurden.

Hinweis

Es wird ein permanentes Kommunikationslog in der Datei "BeMailCheck.log" geführt.

Erfolgt für mehr als 30 Sek. keine Kommunikation mit dem Server beendet sich der Dialog selber. Wird der Abruf modal per Taskplaner ausgeführt wird in diesem Fall auch der Task beendet.

Parameter

lModal:L | Abrufen modal starten; default = False
lRaiseError:L | Fehlermeldungen / Exceptions nicht unterdrücken; default = True

Rückgabewert

Logisch / Boolean - Abrufen erfolgreich

Beispiel

| oDabPal:DB := '90,1' |

// Modaler Email-Check, der z.B. regelmäßig per Taskplaner aufgerufen werden könnte

DbGoTop(oDabPal),

while not EoF(oDabPal) do

   if oDabPal:USER $ "065/" then

      MailChkAddAccount(oDabPal:M_EMAILNAM,

                        DABPAR:EMAIL_POP,

                        oDabPal:M_POPUSER,

                        oDabPal:M_POPPW,

                        oDabPal:USER,

                        true),

   endif,

   DBSkip(1,oDabPal),

end,

MailChkExecute(true), // Modales Abruf-Fenster anzeigen

Siehe auch

MailChkAddAccount()

MailchkDeleteAccount()


Min_Term()

Min_Term() – Früheren Termin ermitteln

Beschreibung

Die Funktion gibt den früheren von 2 Terminen zurückgeben, jedoch mindestens akt. Woche.

Parameter

aTermin1:U | Termin 1
aTermin2:U | Termin 2

Rückgabewert

Alphanumerisch - Früherer Termin

Beispiel

Min_Term(Date(), Date() + 10)


Mind_Best()

Mind_Best() – Mindestbestand

Beschreibung

Die Funktion gibt ohne Parameter den von BE automatisch errechneten Mindestbestand wieder. Die Parameter können dazu benutzt werden den Mindestbestand mit anderen Vorgaben alternativ zu berechnen.

Parameter

lIgnVKCount:L | Berechnet die Mindestbestandsberechnung auch für -2 und -1 Artikel; default = false
cMode:C | Mindestbestand auf Basis Verkaufsverbrauch; default = "V"; "VP" die Berechnung berücksichtigt auch die Produktionsverbräuche; "P" die Berechnung berücksichtigt nur die Produktionsverbräuche
cBewertung:C | Durch Verwendung dieses Parameters können Sie die Berechnung variieren; default = (Bewertung Vormonate 1-12 gemäß Einstellung in den Festwerten)
nGlaettPos:N | default = (Positive Glättung aus Festwerten)
nGlaettNeg:N | default = (Negative Glättung aus Festwerten)
nEinsPunkt:N | N1 bis N3 können beliebig variiert werden; default = (Berechnung ab wievieltem Monat aus den Festwerten)
oDab010:O | Artikelstamm Dab010 (Datei 2); default = Standard Dab010
lUpRound:L | Rundung auf Nachkommastellen für Mengen aus den Festwerten, Ausgabe mit 4 Kommastellen; default = true

Rückgabewert

Numerisch - Mindestbestand

Beispiel

| o010:DB := '2' |

Mind_Best( , , , , , , o010)


MonatsEndeStat()

MonatsEndeStat() – Artikel-Statistik Monatsende

Beschreibung

Die Funktion erstellt eine Artikel-Statistik für das Monatsende (Füllt Dab520).

Parameter

keine Parameter erwartet

Rückgabewert

Keiner

Beispiel

MonatsEndeStat()

www.dontenwill.de | www.business-express.de


NewArticle()

NewArticle() – Neuen Artikel erstellen

Beschreibung

Die Funktion erstellt einen neuen Artikel.

Parameter

oDab010:O | Tabellenobjekt DAB010
cNewArtNo:C | Neue Artikel Nr.
cSourceArtNo:C | Quellartikel
lAutoNo:L | Nr. automatisch vergeben
lCopyExisting:L | Existierenden Artikel kopieren
lCopySupp:L | Hauptlieferanten kopieren
lCopySuppCompl:L | Alle Lieferanten kopieren
lCopyLang:L | Fremdsprachen kopieren
lCopyPartList:L | Stückliste kopieren
lShowMsg:L | Meldungsfenster anzeigen
oCalc010:O | Tabelleobjekt Calc010; default = nil
aInsertByInUse:L | Im Insertmodus bleiben; default = false

Rückgabewert

Numerisch - Neue Artikelnummer

Beispiel

| oDAB010:DB := '2,1' |

startseq,

   DBStartTrans(),

   NewArticle(oDAB010, 'TestArt2', 'TestArt1', false,

              true, true, true, true, true, false),

   DBCommit(),

onerror,

   DBRollBack(),

   Meld(GetErrorText()),

stopseq,


PersSollMin()

PersSollMin() – Sollanwesenheitszeit

Beschreibung

Die Funktion berechnet die Sollanwesenheitszeit einer Person in Minuten, entsprechend den eingetragenen täglichen Stundenzeiten im Personalstamm ohne die Berücksichtigung von Feiertags- oder anderen Nichtanwesenheitsbuchungen.

Parameter

aDab262:O | DAB262 BDE-Personen/Mitarbeiter (Datei 40)
aDateFrom:D | Datum von
aDateTo:D | Datum bis
aPersNo:N | Personalnummer; default = -1

Rückgabewert

Numerisch - Sollanwesenheitszeit

Beispiel

| oDAB262:DB := '40' |

PersSollMin(oDab262, ctod("01.05.07"), ctod("06.05.07"), 55)


Preis1Check()

Preis1Check() – Preis1 Prüfung

Beschreibung

Nur für interne Zwecke!

Parameter

oDab010:O

Tabellenobjekt DAB010

Rückgabewert

Logisch / Boolean


PrepareTextForFTSSearch()

PrepareTextForFTSSearch() – Optimiert einen Suchtext für die Suche anhand eines FTS-Index

Beschreibung

Diese Funktion optimiert einen übergebenen Text für eine Volltextsuche (Full-Text-Search = FTS). Dabei werden die Einzelnen Suchbegriffe anhand des für den FTS-Index definierten Trennzeichen getrennt.

Hinweis

- Tabulatoren, doppelte Leerzeichen, Zeilenumbrüche, ignorierte Wörter (Noise-Words) und Format-Tags werden entfernt

- als Basis dient die FTS-Index-Definition des übergebenen Feldes (s. Datenbank-Verwaltung / Indexdefinitionen)
oder der mit cFTSIndexName vorgegebene FTS-Index

Parameter

nWorkArea:N | Workarea der Tabelle oder Null, falls ein Feld-Objekt übergeben wird
uFieldName:U | Feldname oder Feld-Objekt (Workarea = 0)
cText:C | Original-Text
cFTSIndexName:C | Vorgabe für den FTS-Index, dann wird dieser nicht anhand des Feld-Namens ermittelt
lLeadingWildcard:L | Platzhalter (*) am Anfang jedes Suchbegriffes anhängen
lTrailingWildcard:L | Platzhalter (*) am Ende jedes Suchbegriffes anhängen
cOperator:C | Verknüpfungsoperator (AND & OR erlaubt, leer entspricht AND)
lResultAsContains:L | Rückgabe als ferigen Contains-Ausdruck ( CONTAINS(FELD, 'SUCHE') )

Rückgabewert

Alphanumerisch

Beispiel

| oDAB065:DB:='9,6', oText, cSeachText|

DbLocate('Memo_ID', 17466, , oDAB065),

cSeachText := 'Suche <nach Test* und ABC!?',

oText := PrepareTextForFTSSearch(9,                         // Für Tabelle 9 = Memos

                                 'SUCHE',                   // Für Ziel-Feld "SUCHE"

                                 cSeachText,                // Suchtext

                                 'SUCHE_FTS',               // FTS-Index

                                 False,                     // Platzhalter am Anfang

                                 True,                      // Platzhalter am Ende

                                 'AND',                     // Verknüpfungsoperator

                                 True),                     // Rückgabe als CONTAINS

// CONTAINS(SUCHE, 'ABC* AND nach* AND Suche* AND Test* AND und*')

WriteLn(oText),

Siehe auch

PrepareTextForFTS()


ProdAKADruck()

ProdAKADruck() – Produktionsauftrag mit AKA-Druck

Beschreibung

Die Funktion druckt eine AKA und startet einen (Teil-)Produktionsauftrag. Wird cProdAbt angegeben, werden die zu dieser Abteilung gehörenden Positionen als gestartet markiert. Ein Auftrag gilt als komplett gestartet (kommissioniert), sobald alle Positionen gestartet wurden. Eine Position kann bebucht werden, sobald sie gestartet wurde.

Parameter

oPd_ProdFileCard:O | Kontainer-Objekt (TPd_ProdFileCard-Object), darf leer bleiben
nAufNr:N | Auftragsnummer
nAufPos:N | Unter-Auftragsposition
lAutoBuch:L | Mengen automatisch buchen
cProdAbt:C | Druck nur für Prod.Abteilung; default = Leerstring (alle)
nLager:N | Primär abbuchen von Lager-Nr. (nur wenn lAutoBuch); default = -1 (Default-Produktionslager)
nPickList:N | Pickliste drucken; default = 0; 0 = keine Pickliste drucken; 1 = Pickliste sofort drucken; 2 = Pickliste später drucken

Hinweis

Keine Transaktion verwenden. Da intern sich die Tabellen gegenseitig sperren.

Rückgabewert

keiner

Beispiel

| oBeDBGet |

oBEDBGet := CreateObject("TBeDBGet"),

startseq,

   DBStartTrans(oBeDbGet.AdsConnection),

   ProdAufStart(oBeDBget, 405627, 0, ""),

   DBCommit(oBeDbGet.AdsConnection),

onerror,

   DBRollback(oBeDbGet.AdsConnection),

   WriteLn("ERROR:" + GetErrorText()),

stopseq,

Siehe auch

ProdAufDelete()

ProdAufEdit()

ProdAufNew()

ProdAufPost()

ProdAufStart()

ProdOrdFinish()

ProdPosBuch()

ProdPosDelete()

ProdPosEdit()

ProdPosNew()

ProdPosPost()


ProdAufDelete()

ProdAufDelete() – Produktionsauftrag löschen

Beschreibung

Die Funktion löscht einen Produktionsauftrag.

Parameter

oBeDBGet:O | Kontainer-Objekt (TBeDBGet-Objekt)
nAufNr:N | Auftragsnummer; default = 0
nAufPos:N | Unter-Auftragsposition; default = 0

Rückgabewert

keiner

Beispiel

| oDM, nProdAufNo |

oDM        := CreateObject('TBeDBGet', 'PROD_AUF_DELETE'),

nProdAufNo := 367653, // Nummer des Produktionsauftrags

startseq,

   startseq,

      DBStartTrans(oDM.AdsConnection),

      ProdAufDelete(oDM, nProdAufNo),

      DBCommit(oDM.AdsConnection),

      MessageDlg('Produktions-Auftrag [' + Str(nProdAufNo) + '] wurde erfolgreich

                 gelöscht.', mtInformation),

   onerror,

      if DBInTrans(oDM.AdsConnection) then

         DBRollBack(oDM.AdsConnection),

         DBCancelAll(oDM),

      endif,

      MessageDlg('Fehler beim Löschen des Produktions-Auftrags [' + Str(nProdAufNo) +

                 ']:' + crlf + crlf + GetErrorText(), mtError),

   stopseq,

always,

   DestroyObject(oDM),

stopseq,

Siehe auch

ProdAKADruck()

ProdAufEdit()

ProdAufNew()

ProdAufPost()

ProdAufStart()

ProdOrdFinish()

ProdPosBuch()

ProdPosDelete()

ProdPosEdit()

ProdPosNew()

ProdPosPost()


ProdAufEdit()

ProdAufEdit() – Produktionsauftrag bearbeiten

Beschreibung

Die Funktion versetzt einen Produktionsauftrag in den Bearbeitungs-Modus.

Parameter

oBeDBGet:O | Kontainer-Objekt (TBeDBGet-Objekt)
nAufNr:N | Auftragsnummer
nAufPos:N | Unter-Auftragsposition

Rückgabewert

keiner

Beispiel

siehe ProdAufNew()

Siehe auch

ProdAKADruck()

ProdAufDelete()

ProdAufNew()

ProdAufPost()

ProdAufStart()

ProdOrdFinish()

ProdPosBuch()

ProdPosDelete()

ProdPosEdit()

ProdPosNew()

ProdPosPost()


ProdAufNew()

ProdAufNew() – Neuen Produktionsauftrag erstellen

Beschreibung

Die Funktion erstellt einen neuen Produktionsauftrag.

Wird nHautAufNr übergeben, wird ein neuer (leerer!) Unterauftrag zu der Auftragsnr. erstellt.

Bei nHautAufNr muss es sich um einen existierenden Haupt-Auftrag handeln.

Parameter

oBeDBGet:O | Kontainer-Objekt (TBeDBGet-Objekt)
nHautAufNr:N | Haupt-Auftragsnummer; default = 0

Rückgabewert

Array - Format:

{ nAufNr, nAufPos }

Beispiel

| oBeDbGet, oDab035, aProdAuf |

oBeDbGet := CreateObject("TBeDBGet"),

oDab035  := DBGetTable(oBeDBget, 13),

startseq,

   DBStartTrans(oBeDbGet.AdsConnection),

   aProdAuf           := ProdAufNew(oBeDBget),

   oDab035:ARTNR      := "BG1-1",

   oDab035:KOMMISS    := "TEST", // Achtung: Feld KOMMISS ist bei -2 Artikel

                                 //          nicht editierbar!

   oDab035:TERMIN     := 'KW.' + KW(Date()),

   oDab035:MENGE_EK   := 10,

   oDab035:PROD_ABT   := "ABC",

   ProdAufPost(oBeDBget),

   ProdAufEdit(oBeDBget, aProdAuf[1], aProdAuf[2]),

   oDab035:KOMMISS    := "TESTEDIT",

   oDab035:TERMIN     := 'KW.' + KW(Date() + 14),

   oDab035:MENGE_EK   := 20,

   ProdAufPost( oBeDBget ),

   DBCommit(oBeDbGet.AdsConnection),

   MessageDlg('Neuer Prod.Auftrag ' + ArrToStr(aProdAuf) + ' angelegt', mtInformation),

onerror,

   DBRollBack(oBeDbGet.AdsConnection),

   MessageDlg("ERROR:" + GetErrorText()),

stopseq,

Siehe auch

ProdAKADruck()

ProdAufDelete()

ProdAufEdit()

ProdAufPost()

ProdAufStart()

ProdOrdFinish()

ProdPosBuch()

ProdPosDelete()

ProdPosEdit()

ProdPosNew()

ProdPosPost()


ProdAufPost()

ProdAufPost() – Produktionsauftrag speichern

Beschreibung

Die Funktion speichert einen durch ProdAufEdit() oder ProdAufNew() im Änderungemodus befindlichen Produktionsauftrag.

Parameter

oBeDBGet:O

Kontainer-Objekt (TBeDBGet-Objekt)

Rückgabewert

keiner

Beispiel

siehe ProdAufNew()

Siehe auch

ProdAKADruck()

ProdAufDelete()

ProdAufEdit()

ProdAufNew()

ProdAufStart()

ProdOrdFinish()

ProdPosBuch()

ProdPosDelete()

ProdPosEdit()

ProdPosNew()

ProdPosPost()


ProdAufStart()

ProdAufStart() – Produktionsauftrag starten

Beschreibung

Die Funktion startet einen (Teil-)Produktionsauftrag ohne AKA-Druck.

Wird cProdAbt angegeben, werden die zu dieser Abteilung gehörenden Positionen als gestartet markiert.

Ein Auftrag gilt als komplett gestartet (kommissioniert), sobald alle Positionen gestartet wurden.

Ein nachträgliches Drucken der AKA ist für gestartete Positionen nicht möglich.

Eine Position kann bebucht werden, sobald sie gestartet wurde.

Parameter

oBeDBGet:O | Kontainer-Objekt (TBeDBGet-Objekt)
nAufNr:N | Auftragsnummer; default = 0
nAufPos:N | Unter-Auftragsposition; default = 0
cProdAbt:C | Produktionsabteilung; default = Leerstring (alle)

Rückgabewert

keiner

Beispiel

| oBeDBGet, oDab035 |

oBeDBGet := CreateObject("TBeDBGet"),

startseq,

   DBStartTrans(oBeDbGet.AdsConnection),

   ProdAufStart(oBeDBget, 405627, 0, ""),

   DBCommit(oBeDbGet.AdsConnection),

onerror,

   DBRollBack(oBeDbGet.AdsConnection),

   WriteLn("ERROR:" + GetErrorText()),

stopseq,

Siehe auch

ProdAKADruck()

ProdAufDelete()

ProdAufEdit()

ProdAufNew()

ProdAufPost()

ProdOrdFinish()

ProdPosBuch()

ProdPosDelete()

ProdPosEdit()

ProdPosNew()

ProdPosPost()


ProdDemPlanDelete()

ProdDemPlanDelete() – Produktions-Bedarfsplanung löschen

Beschreibung

Die Funktion löscht einen Datensatz aus der Produktions-Bedarfsplanungs Tabelle (Dab220).

Parameter

oBeDBGet:O | Kontainer-Objekt (TBeDBGet-Objekt)
nAutoInc:N | Wert des Feldes "AutoInc" der Tabelle Dab220

Rückgabewert

Keiner

Beispiel

| oDab220, oDBGet |

oDBGet  := CreateObject('TBeDBGet'),

oDab220 := DBGetTable(oDBGet, 21),

startseq,

   DBStartTrans(oDBGet.AdsConnection),

   startseq,

      DBGoTop(oDab220),

      ProdDemPlanDelete(oDBGet, oDab220:AUTOINC),

      DBCommit(oDBGet.AdsConnection),

   onerror,

      DBRollBack(oDBGet.AdsConnection),

      WriteLn('Fehler: ' + GetErrorText()),

   stopseq,

always,

   DestroyObject(oDBGet),

stopseq,

Siehe auch

ProdDemPlanNew()

ProdDemPlanEdit()

ProdDemPlanPost()


ProdDemPlanEdit()

ProdDemPlanEdit() – Produktions-Bedarfsplanung bearbeiten

Beschreibung

Die Funktion setzt einen Produktions-Bedarfsplanungs-Datensatz (Dab220) in den Bearbeitungs-Modus.

Parameter

oBeDBGet:O | Kontainer-Objekt (TBeDBGet-Objekt)
nAutoInc:N | Wert des Feldes "AutoInc" der Tabelle Dab220

Rückgabewert

Keiner

Beispiel

| oDab220, oDBGet |

oDBGet  := CreateObject('TBeDBGet'),

oDab220 := DBGetTable(oDBGet, 21),

startseq,

   DBStartTrans(oDBGet.AdsConnection),

   startseq,

      DBGoBottom(oDab220),

      ProdDemPlanEdit(oDBGet, oDab220:AUTOINC),

      oDab220:TERMIN := DToC(Date()),

      ProdDemPlanPost(oDBGet),

      DBCommit(oDBGet.AdsConnection),

   onerror,

      DBRollBack(oDBGet.AdsConnection),

      WriteLn('Fehler: ' + GetErrorText()),

   stopseq,

always,

   DestroyObject(oDBGet),

stopseq,

Siehe auch

ProdDemPlanNew()

ProdDemPlanPost()

ProdDemPlanDelete()


ProdDemPlanNew()

ProdDemPlanNew() – Neue Produktions-Bedarfsplanung

Beschreibung

Die Funktion erzeugt einen neuen Produktions-Bedarfsplanungs-Datensatz (Tabelle Dab220).

Parameter

oBeDBGet:O

Kontainer-Objekt (TBeDBGet-Objekt)

Rückgabewert

Keiner

Beispiel

| oDab220, oDBGet |

oDBGet  := CreateObject('TBeDBGet'),

oDab220 := DBGetTable(oDBGet, 21),

startseq,

   DBStartTrans(oDBGet.AdsConnection),

   startseq,

      ProdDemPlanNew(oDBGet),

      oDab220:ARTNR  := 'TESTARTIKEL',

      oDab220:MENGE  := 5,

      oDab220:TERMIN := DToC(Date()),

      ProdDemPlanPost(oDBGet),

      DBCommit(oDBGet.AdsConnection),

   onerror,

      DBRollBack(oDBGet.AdsConnection),

      WriteLn('Fehler: ' + GetErrorText()),

   stopseq,

always,

   DestroyObject(oDBGet),

stopseq,

Siehe auch

ProdDemPlanEdit()

ProdDemPlanPost()

ProdDemPlanDelete()


ProdDemPlanPost()

ProdDemPlanPost() – Produktions-Bedarfsplanung speichern

Beschreibung

Die Funktion schreibt die nach ProdDemPlanNew() oder ProdDemPlanEdit() zugewiesenen Werte in die Produktions-Bedarfsplanungs-Tabelle (Dab220).

Parameter

oBeDBGet:O | Kontainer-Objekt (TBeDBGet-Objekt)
lShowMsg:L | Anzeige von Meldungen

Rückgabewert

Keiner

Beispiel

siehe ProdDemPlanNew() und ProdDemPlanEdit()

Siehe auch

ProdDemPlanNew()

ProdDemPlanEdit()

ProdDemPlanDelete()


ProdOrdFinish()

ProdOrdFinish() – Produktionsauftrag Fertigmeldung

Beschreibung

Die Funktion dient zur Teil-/Fertigmeldung von Produktionsaufträgen.

Parameter

oBeDBGet:O

Kontainer-Objekt (TBeDBGet-Objekt)

nAufNr:N

Auftragsnummer

nAufPos:N

Unter-Auftragsposition

lKomplett:L

Art der Fertigmeldung

true - End-Fertigmeldung

false - Teil-Fertigmeldung

nMenge:N

Fertigzumeldende Menge

nLager:N

Ziel-Lager des Fertigproduktes

nAusMenge:N

Ausschuss-Menge; default = 0

dDatum:D

Fertigmelde-Datum; default = mBDatum

caFertigSerNr:U

Seriennummer/Charge des Fertigteils oder Array mit Seriennummer/Charge, Menge, Platz; default = Null()

caAusSerNr:U

Seriennummer/Charge des Ausschussteils oder Array mit Seriennummer/Charge, Menge; default = Null()

Array-Format:

 {

   { <Kommission>, <Menge>,

     [,<Platz> [,<Verfallsdatum> [,<BehälterNr> [,<EinwegBehälterTyp> ]]]]},

   { ... }

 }

Wichtig: Für Erstellung neuer Einwegbehälter <BehälterNr> 0 übergeben

oCallbackInfo:O

Callbackobjekt für folgende Abfragen (MessageId):

1 Die fertiggemeldete Variante weicht vom Kunden-Auftrag ab !

Wollen Sie trotzdem die fertiggemeldete Variante für den Kunden-Auftrag X freigeben ?

(Default = mrYes)

2 Fertigmeldung ohne vollständige Verbrauchs-/Zeitbuchungen ?
(nur bei Parameter lKeinCallbackID2 = False)

(Default = mrYes)

3 Kunden-Auftrag X (X) um X X erhöhen / reduzieren ?

(Default = mrYes)

4 Auftragskarten-Quittung-Belegscan durchführen?
In der Callback-Prozedur kann der Beleg-Scan explizit zu- oder abgeschaltet werden.
Eine zusätzliche Abfrage (wie bei ID 1-3) erfolgt defaultmäßig nicht.

5 Lagerschein drucken?
Der Druck des Lagerscheins kann falls nötig verhindert werden.

(Default = mrYes)
Eine zusätzliche Abfrage (wie bei ID 1-3) erfolgt defaultmäßig nicht.

6 Freigabe Kd.Rück. Fertigmeldung ?
Die Zuteilung der Fertigungsmenge auf Kundenrückstände kann verhindert werden.

(Default = mrYes)
Eine zusätzliche Abfrage (wie bei ID 1-3) erfolgt defaultmäßig nicht.

7 Freigabe-Dialog für Produktionsrückstände der fertig gemeldeten Menge anzeigen?
Die Anzeige der Produktionsrückstände kann verhindert werden mit einem Result <> mrYes und Result <> mrOk (im Standard gibt es keine Abfrage der Dialog öffnet sich immer falls der lokale Parameter "M_ZUGPFREI" auf Ja gesetzt ist)

(Default = mrYes)

lKeinCallbackID2:L

Callback-Event mit MessageId 2 nicht ausführen; default = True

Rückgabewert

keiner

Beispiel

| oBeDbGet, oDab240, oCallback |

//************************************************************************************

// Callback-Funktion, der Rückgabewert wird autom. in oCallbackFunc.Result gespeichert

//************************************************************************************

function CallbackFunc(oCallback:O)

  Result:= EmptyValue(),              // als Standard die be-Defaultwerte übernehmen

  Case oCallback.MessageID

    of 3:: Meld('Text: ' +            // Frage  : Kunden-Auftrag an Menge anpassen ?

                oCallback.MsgText + Chr(13) +

                'Vorgabe für ID ' + Str(oCallback.MessageID) + ': ' +

                IIf(oCallback.Result = mrNo, 'Nein', 'Ja')),

           Result:= mrNo,             // Antwort: Nein

    of 5:: Result:= mrNo,             // Frage  : Lagerschein drucken ?

                                      // Antwort: Nein

    of 6:: Result:= mrNone,           // Frage  : Zuteilung Menge auf Kundenrückstände ?

                                      // Antwort: Bestätigung per Dialog anfordern

  EndCase,

End,

//************************************************************************************

oBeDBGet:= CreateObject("TBeDBGet"),

oDab240 := DBGetTable(oBeDBget, 26),

DBStartTrans(oBeDBGet.AdsConnection),

StartSeq

   oCallback:= CallbackInfo('CallbackFunc'), // Erzeugen des Callback-Objekts

   ProdOrdFinish( oBeDBget, 405627, 0, true,

                  3, 00, 0, 0,

                  {{"123456", 3, "TOLVE"}},,

                  oCallback), // optionaler Parameter für die Behandlung von "Rückfragen"

   DBCommit(oBeDBGet.AdsConnection),

OnError

   DBRollBack(oBeDBGet.AdsConnection),

   WriteLn("ERROR:" + GetErrorText()),

StopSeq

Siehe auch

ProdAKADruck()

ProdAufDelete()

ProdAufEdit()

ProdAufNew()

ProdAufPost()

ProdAufStart()

ProdPosBuch()

ProdPosDelete()

ProdPosEdit()

ProdPosNew()

ProdPosPost()


ProdPlanAuto()

ProdPlanAuto() – Automatische Produktionsplanung

Beschreibung

Die Funktion startet die automatische Bedarfsermittlung in der Produktion.

Parameter

cArtNrVon:C | Von Artikelnummer
cArtNrBis:C | Bis Artikelnummer
cProdAbtVon:C | Von Produktionsabteilung
cProdAbtBis:C | Bis Produktionsabteilung

Rückgabewert

keiner

Beispiel

ProdPlanAuto('A', 'Z', '00', '00'),


ProdPosBuch()

ProdPosBuch() – Produktionsauftragsposition buchen

Beschreibung

Die Funktion dient zum manuellen Buchen von Material auf eine Produktionsauftrags-Position.

Parameter

oBeDBGet:O | Kontainer-Objekt (TBeDBGet-Objekt)
nAufNr:N | Auftragsnummer
nAufPos:N | Unter-Auftragsposition
nPosNr:N | Positions-Nr.
nMenge:N | Zu buchende Menge (Positiv oder Negativ)
nLager:N | Material kommt von Lager
cHauptSerNr:C | Seriennummer des Fertigteils (nur bei Vorabvergabe von Fertigteil-Seriennummer); default = Leerstring
caTeileSerNr:U | Seriennummer/Charge des Materials oder Array mit Seriennummer/Charge, Menge, Platz; default = Leerstring; Array-Format: {; { <Kommission>, <Menge>, [,<Platz> [,<Verfallsdatum> [,<BehälterNr> [,<EinwegBehälterTyp> ]]]]}, { ... }; }; Wichtig: Für Erstellung neuer Einwegbehälter <BehälterNr> 0 übergeben
lKeinLS:L | kein Lagerschein drucken; default = false
lReserv:L | Menge wieder reservieren (nur bei Rückbuchung von Material); default = true
cProgID:C | individuelle Prog.ID; default = 'ProdPosBuch'

Rückgabewert

keiner

Beispiel

| oBeDbGet, oDab240 |

oBeDbGet := CreateObject("TBeDBGet"),

oDab240  := DBGetTable( oBeDBget, 26 ),

startseq,

   DBStartTrans(oBeDbGet.AdsConnection),

   ProdPosBuch(oBeDBget, 405595, 0, 2, 2, 4, "",

               {{"213170", 1, "PLATZ1"},

                 {"100003", 1, "PLATZ2"}},

                 false, true, 'XXX'),

   ProdPosBuch(oBeDBget, 405627, 0, 5, -5, 4, "",

               {{"04052284003", -5, "TOLVE"}},

                 false, true, 'XXX'),

   ProdPosBuch(oBeDBget, 405627, 0, 4, 600, 0),

   DBCommit(oBeDbGet.AdsConnection),

onerror,

   DBRollBack(oBeDbGet.AdsConnection),

   WriteLn("ERROR:" + GetErrorText()),

stopseq,

Siehe auch

ProdAKADruck()

ProdAufDelete()

ProdAufEdit()

ProdAufNew()

ProdAufPost()

ProdAufStart()

ProdOrdFinish()

ProdPosDelete()

ProdPosEdit()

ProdPosNew()

ProdPosPost()


ProdPosDelete()

ProdPosDelete() – Produktionsauftragsposition löschen

Beschreibung

Die Funktion löscht eine Position aus einem Produktionsauftrag.

Parameter

oBeDBGet:O | Kontainer-Objekt (TBeDBGet-Objekt)
nAufNr:N | Auftragsnummer; default = 0
nAufPos:N | Unter-Auftragsposition; default = 0
nPosNr:N | Positionsnummer; default = 0

Rückgabewert

keiner

Beispiel

| oBeDbGet, oDab035 |

oBeDbGet := CreateObject("TBeDBGet"),

oDab035  := DBGetTable(oBeDBget, 13),    //erforderlich!

startseq,

   DBStartTrans(oBeDbGet.AdsConnection),

   ProdPosDelete(oBeDBget, 405627, 0, 5),

   DBCommit(oBeDbGet.AdsConnection),

onerror,

   DBRollBack(oBeDbGet.AdsConnection),

   WriteLn("ERROR:" + GetErrorText()),

stopseq,

Siehe auch

ProdAKADruck()

ProdAufDelete()

ProdAufEdit()

ProdAufNew()

ProdAufPost()

ProdAufStart()

ProdOrdFinish()

ProdPosBuch()

ProdPosEdit()

ProdPosNew()

ProdPosPost()


ProdPosEdit()

ProdPosEdit() – Produktionsauftragsposition bearbeiten

Beschreibung

Die Funktion setzt eine Produktionsauftrags-Position in den Editier-Modus.

Parameter

oBeDBGet:O | Kontainer-Objekt (TBeDBGet-Objekt)
nAufNr:N | Auftragsnummer; default = 0
nAufPos:N | Unter-Auftragsposition; default = 0
nPosNr:N | Positionsnummer; default = 0

Rückgabewert

keiner

Beispiel

siehe ProdPosNew()

Siehe auch

ProdAKADruck()

ProdAufDelete()

ProdAufEdit()

ProdAufNew()

ProdAufPost()

ProdAufStart()

ProdOrdFinish()

ProdPosBuch()

ProdPosDelete()

ProdPosNew()

ProdPosPost()


ProdPosNew()

ProdPosNew() – Neue Produktionsauftragsposition

Beschreibung

Die Funktion erstellt eine neue Position für einen Produktionsauftrag.

Parameter

oBeDBGet:O | Kontainer-Objekt (TBeDBGet-Objekt)
nAufNr:N | Auftragsnummer; default = 0
nAufPos:N | Unter-Auftragsposition; default

Rückgabewert

Array - Format:

{ Produktionsauftragsnummer, Unterauftragsnummer, Positionsnummer }

Beispiel

| oBeDbGet, oDab240 |

oBeDbGet := CreateObject("TBeDBGet"),

oDab240  := DBGetTable(oBeDBget, 26),

startseq,

   DBStartTrans(oBeDbGet.AdsConnection),

   ProdPosNew(oBeDBget, 405627, 0),

   oDab240:ARTNR_E := 'BTK-005',

   oDab240:SOLL    := 2,

   oDab240:R_S     := '',

   ProdPosPost(oBeDBget),

   ProdPosEdit(oBeDBget, 405627, 0, 4),

   oDab240:PROD_ABT := "LN2",

   ProdPosPost(oBeDBget),

   DBCommit( oBeDbGet.AdsConnection),

onerror,

   DBRollback( oBeDbGet.AdsConnection),

   WriteLn("ERROR:" + GetErrorText()),

stopseq,

Siehe auch

ProdAKADruck()

ProdAufDelete()

ProdAufEdit()

ProdAufNew()

ProdAufPost()

ProdAufStart()

ProdOrdFinish()

ProdPosBuch()

ProdPosDelete()

ProdPosEdit()

ProdPosPost()


ProdPosPost()

ProdPosPost() – Produktionsauftragsposition speichern

Beschreibung

Die Funktion speichert eine durch ProdPosEdit() oder ProdPosNew() im Änderungsmodus befindliche Produktionsauftragsposition.

Parameter

oBeDBGet:O

Kontainer-Objekt (TBeDBGet-Objekt)

Rückgabewert

keiner

Beispiel

siehe ProdPosNew()

Siehe auch

ProdAKADruck()

ProdAufDelete()

ProdAufEdit()

ProdAufNew()

ProdAufPost()

ProdAufStart()

ProdOrdFinish()

ProdPosBuch()

ProdPosDelete()

ProdPosEdit()

ProdPosNew()


ProdRechAuto()

ProdRechAuto() – Fertigungssekundärbedarfsrechnung

Beschreibung

Funktion zum dialogfreien Start der automatischen Fertigungssekundärbedarfsrechnung.

Parameter

nRechMode:N | Berechnungsmodus; 0 Nachfragen; 1 Standard-Planung; 2 Vollplanung; 3 Bruttoplanung
lLoeschRech:L | Existierende Bedarfsrechung löschen
cFreigabeFilter:C | Positionen die dem Filter entsprechen vorab freigeben; default = Leerstring (alle Planungs-Positionen vorab freigeben)

Rückgabewert

Keiner

Beispiel

ProdRechAuto(1, true, 'ARTNR = "GPL1"'),   // Standardplanung ohne Rückfragen,

                                           // existierende Planung löschen,

                                           // nur Art.Nr. GPL1


ProdRueckCalc()

ProdRueckCalc() – Produktionsrückstandsberechnung

Beschreibung

Die Funktion ermittelt den Produktionsrückstand zu einem Artikel. Der Datensatz muss in der Dab010 vor Aufruf der Funktion auf dem entsprechenden Artikel positioniert werden.

Parameter

oDab010:O | Tabellenobjekt DAB010
oDab035:O | Tabellenobjekt DAB035; default = Standard Dab035
oDab240:O | Tabellenobjekt DAB240; default = Standard Dab240

Rückgabewert

Numerisch - Produktionsrückstand

Beispiel

| oDAB010:DB := '2,1' |

DBSeek('TestArt1', oDab010),

ProdRueckCalc(oDab010)


ProfInv()

ProvInv() – Proforma-Rechnung über Codeblock drucken

Beschreibung

Die Funktion öffnet das Fenster zum Druck einer Proforma-Rechnung

Parameter

aDocNo:N | Auftragsnummer
aModal:L | Modales Fenster oder MDI-Child => Default ist modal

Rückgabewert

Fenster vom Typ TBeProForma


PruefVorgang()

PruefVorgang() – Prüfungserfassung anzeigen

Beschreibung

Die Funktion zeigt das Fenster zur Prüfungserfassung an.

Parameter

oBeDBGet:O | Kontainer-Objekt (TBeDBGet-Objekt)
cWEPNummer:C | Wareneingangs-Positions Nummer
nDab240_ID:N | Produktions-Auftragsstücklisten (Dab240) ID
cChargenNr:C | Chargen-Nummer leer = im Fenster können alle Chargen ausgewählt werden ansonsten wird die übergebene Chargen-Nr. gewählt und diese; Auswahl kann nicht geändert werden
lReadOnly:L | Default = True; True : im Fenster können keinerlei Bearbeitungen durchgeführt werden; False : Fenster entspricht dem Aufruf aus business express (Bearbeitung ist möglich)

Rückgabewert

Keiner

Beispiel

| oDBGet |

oDBGet := CreateObject('TBeDBGet'),

startseq,

   PruefVorgang(oDBGet, '00000001001'),

always,

   DestroyObject(oDBGet),

stopseq,


PVerf_Dat()

PVerf_Dat() – Produktionsverfügbarkeitsdatum

Beschreibung

Die Funktion ermittelt das Produktionsverfügbarkeitsdatum für einen Artikel in einem Auftrag.

Parameter

oDab240:O | DAB240 Fertigungsauftragsstücklisten (Datei 26)
oDab720:O | DAB720 Kommissions-/Chargenverfolgung (Datei 42)
cArtNo:C | Artikelnummer
cProdOrder:C | Produktionsauftragsnummer

Rückgabewert

Datum - Produktionsverfügbarkeitsdatum

Beispiel

| oDab240:DB := '26', oDab720:DB := '42' |

PVerf_Dat(oDab240, oDab720, 'LS-200', '47911')


Rast_Abw()

Rast_Abw() – Abweichungen im Terminraster

Beschreibung

Die Funktion deckt Abweichungen (Minusentwicklungen) im Terminraster auf.

Parameter

nWBZ:N | Zeitraum; default = -1
cArtNr:C | Artikel; default = Leerstring (aktueller Artikel der DAB010)
oDab010:O | Tab. Objekt der DAB010; default = Standard Dab010
oDab410:O | Tab. Objekt der DAB410; default = Standard Dab410

Rückgabewert

Logisch / Boolean - Abweichung

Beispiel

| oDAB010:DB := '2,1' |

Rast_Abw(, 'TestArt1', oDab010,)


RefreshReadOnlyColor()

RefreshReadOnlyColor() – ReadOnly-Status / Farbe aktualisieren

Beschreibung

Die Funktion aktualisiert den ReadOnly-Status eines Edit-Feldes.

Parameter

TBeEdit:O

TBeEdit-Objekt

Rückgabewert

Objekt - Aktualisiertes Edit-Feld

Beispiel

// <Im Maskeneditor>

| oTBeEdit |

oTBeEdit               := FindObject(GetOwner(self), 'TBeEdit_Feld'),

oTBeEdit.readonlycolor := 255,

RefreshReadOnlyColor(oTBeEdit),


RLager()

RLager() – Bestand in allen Rohwarenlagern

Beschreibung

Die Funktion summiert die Mengen alle Lager, die in den Festwerten als Rohwarenlager definiert wurden.

Parameter

cPlatz:C | Lagerort; default = Leerstring (alle Lager)
oDab010:O | DAB010 Artikelstamm (Datei 2); default = Standard Dab010

Rückgabewert

Numerisch - Bestand der Rohwarenlager

Beispiel

| oDab010:DB := '2' |

RLager(, oDab010)

Siehe auch

HLager()


SachKtoChk()

SachKtoChk() – Sachkonto-Check

Beschreibung

Die Funktion dient der Prüfung auf ein gültiges Sachkonto.

Parameter

nKtoNr:N | Kontonummer
cMode:C | gültige Konto-Typen
lNullErl:L | Null erlaubt (als Kontonummer)

Rückgabewert

Logisch / Boolean - Ist gültiges Sachkonto

Beispiel

SachKtoChk(900, 'S', false)


SetBeParam()

SetBeParam() – Globaler BE Parameter

Beschreibung

Die Funktion setzt einen globalen BE Parameter.

Parameter

aKey:C | Keyschlüssel / Parametername
aValue:C | Wert

Rückgabewert

keiner

Beispiel

SetBeParam('Param1', '1')

Siehe auch

GetBEParam()


ShowArtBest()

ShowArtBest() – Lagerbestandsfenster anzeigen

Beschreibung

Die Funktion öffnet das Fenster für den Lagerbestand.

Parameter

Dab010:O

Tabellenobjekt DAB010

Rückgabewert

keiner

Beispiel

| oDab010:DB := '2' |

ShowArtBest(oDab010)

Siehe auch

ShowTermRast()


ShowBeWindow()

ShowBeWindow() – BE Fenster

Beschreibung

Die Funktion ruft ein bestimmes be-Fenster oder -Funktion auf (z.B. Auftragsverwaltung, Kundenstamm) und gibt es als Objekt zurück. Beim Aufruf muss man sich im jeweiligen be-Modul des Fensters befinden.

Hinweis

Wenn der der zweite Parameter leer ist wird das Fenster in angezeigt, ohne dass eine Datensatz-Positionierung oder Vorbelegung durchgeführt wird.

Parameter

nWindowID:N

be Fenster ID

Beschreibung

cParams:C
Parameterübergabe für Aufruf; Optional

0

bwNone

Aktuell aktives Fenster

1

bwArticle

Artikel-Daten

<Art.Nr.>

2

bwCustomer

Kunden-Daten

<Pers.Nr.>;FC;<Art.Nr.>;<Woche>

3

bwSupplier

Lieferanten-Daten

<Lief. Nr.>

4

bwAgent

Vertreter-Daten

<Pers.Nr.>;FC;<Art.Nr.>;<Woche>

5

bwCustOrders

Auftragsverwaltung-Kunden

<Knd.Nr:8><Auftr.Nr:6><Pos.Nr:3>

6

bwSuppOrders

Auftragsverwaltung-Lieferanten

<Knd.Nr:8><Ap.Nr.:9>

7

bwProduction

Produktion

<Auftr.Nr:6+2> (wie DAB035:BESTPOSNR)

8

bwPhoneCall

Anrufen

<Telefon.Nr.>

9

bwArtPartList

Stückliste

<Art.Nr.>

10

bwArtUsedInPart

Stückliste-Verwendung

<Art.Nr.>

11

bwArtUsedInEnd

Stückliste-Verwendung in Endprodukt

<Art.Nr.>

12

bwSerialNo

Seriennummern-Verwaltung

<Serien Nr.>
A<Art.Nr.>;<Serien Nr.>

C<Knd.Nr.>;<Serien Nr.>

13

bwPrintPL

Stücklisten-Druck

<Art.Nr.>

14

bwChargeTrace

Chargen-Verfolgung

<Art.Nr.>

15

bwSuppBackOrdAcc

Bestellrückstände buchen

<Bestell Nr.:6>

16

bwStockReceive

Wareneingang

<Wep.Nr.8+3>;%BlockBegin%<Code-Block>%BlockEnd%

17

bwShippNotes

Versandpapiere

18

bwProdPostCalc

Nachkalkulation-Fertigungsauftrag

<Auftr.Nr.:6><Split.Nr.:2>

19

bwDelivDiffAcc

Lieferschein-Differenzen buchen

<Liefersch.Nr.>;<Auftrag.Nr.>

20

bwServiceMain

Serviceaufträge-Verwaltung

<Knd.Nr.:8><Auftr.Nr.:6>

21

bwSuppAccCtrl

Rechnungskontrolle

<Liefersch.Nr.:8>

22

bwDf000

Sachkonten

<Konto Nr.>

23

bwDfZaA

Zahlarten

24

bwSQLBrowser

SQL-Browser

25

bwSQLSelection

SQL-Selektion

26

bwDfAGr

Anlagekonten / Anlagegruppen

27

bwDfInv

Inventar (Anlagegüter)

28

bwDfASt

Standorte (Inventar)

29

bwDfGAb

Gebäude-AfA

30

bwDfSoA

Sonder-AfA

31

bwDfAZe

Anlagezeiten

32

bwProdCapa

Kapazitätsanalyse

<Auftr.Nr.>;<ShowComplete:L>

33

bwGroupWare

Memo-System

<Workarea:DABTRM>;<EventID>;<StartDate>;<EndDate>;<NewPage:L>
<Workarea:DAB065>;<MemoID>;<ViewID>;<MaskOnly:L>;<NewPage:L>

34

bwPersManagment

<Personal Nr.:DAB262>

35

bwResources

<Ressourcen Nr.:DAB330>

Rückgabewert

oForm:O

Beispiel

// Artikel-Stamm öffnen und auf Testartikel positionieren

ShowBeWindow(bwArticle, "Testartikel"),

// Vertreter-Stamm öffnen auf Vertreter 1000 positionieren

// dann Abstatzplanung für Vertreter öffnen und auf Testartikel und KW40 filtern

ShowBeWindow(bwAgent, "1000;FC;Testartikel;40"),

// Auftragsverwaltung für Kunde 100100 öffnen zu Auftrag 17271 Postion 3 wechseln

ShowBeWindow(bwCustOrders, "100100  17271   3"),

// Erweiterte Verwendung der ShowBeWindow Funktion in der das von ShowBeWindow

// zurückgelieferte Fenster-Objekt weiterverwendet wird.

function AktiviereKontakt(nKunde, nKontakt)

|oSelf, oAct, oForm, oTable|

  Startseq,

  // Kundenstamm öffnen

  oSelf := ShowBeWindow(bwCustomer, Str(nKunde) + ';'),

  // Aktion für Kunden-Kontakte suchen

  oAct  := FindObject(oSelf, "A_Contacts"),

  // Aktion ausführen

  if not Empty(oAct) and ActionExecute(oAct) then

     // Kunden-Kontakte Fenster suchen

     oForm := FindObjByClass(oSelf, "TFormEditContacts"),

     // Wenn Fenster vorhanden dann zu Kontakt springen

     if not Empty(oForm) then

        oForm.ExecRefresh,

        oTable := FindObject(oForm, "MainTable"),

        DbLocate("ID", nKontakt, 0, oTable),

     endif,

  endif,

  Always

  Stopseq,

end,

AktiviereKontakt(9127, 381716)


ShowDiff()

ShowDiff() - Texte vergleichen

Beschreibung

Die Funktion bekommt zwei beliebige Texte übergeben und vergleicht diese mittels eines externen File-Differs. Verwendet wird die Applikation, die im BE32-Verzeichnis liegt und 'DiffTool.exe' heißt (z.B. die FreeWare "CSDiff.exe"). Die übergebenen Texte werden auf der lokalen Festplatte gespeichert und an die externe Applikation per Parameter übergeben.

Parameter

cInput1:C | Vergleichstext 1
cInput2:C | Vergleichstext 2
cName1:C | Dateiname der ersten Datei; Default = 'Text1'
cName2:C | Dateiname der zweiten Datei; Default = 'Text2'
lModal:L | True: DiffTool.exe wird modal angezeigt. Default=true;

Rückgabewert

Boolean

True: Kein Fehler

False: Fehler (z.B. 'DiffTool.exe' konnte nicht gefunden werden)

Beispiel

| cText1, cText2 |

cText1 := 'Dies ist Text 1' + crlf +

          'und die zweite Zeile',

cText2 := 'Dies ist Text 2' + crlf +

          'und die zweite',

ShowDiff(cText1, cText2, 'Text1', 'Text2', false)


ShowTermRast()

ShowTermRast() – Terminraster Fenster

Beschreibung

Die Funktion öffnet das Fenster Termin-Raster.

Parameter

Dab010:O

Tabellenobjekt DAB010

Rückgabewert

keiner

Beispiel

| oDab010:DB := '2'|

ShowTermRast(oDab010)

Siehe auch

ShowArtBest()


SL_Calc()

SL_Calc() – Varianten-Stückliste erzeugen

Beschreibung

Die Funktion erzeugt für einen übergebenen Varianten-Artikel und einen übergebenen "SL_MEMO"-Text eine Varianten-Stückliste und führt die Kalkulation der Preise durch.

Parameter

cArtNr:C | Artikel-Nummer der Varianten. Die Artikelnummer muss eine Varianten-Stückliste besitzen.
nPreisNr:N | Kunden-Preisnummer als Basis für die Preis-Kalkulation
nEPreis:N | Verkaufspreis-Basis des Hauptprodukts. Bei Übergabe von 0 wird die Verkaufspreis-Basis aus dem der übergebenen Preisnummer entsprechenden VK-Preis-Feld des Artikels cArtNr:C übernommen.
cSLText:C | "SL_MEMO"-Text entsprechend z.B. Dab055:SL_MEMO. Wird als Basis für die Erzeugung der Stückliste verwendet.
nEkPreis:R | Referenz-Parameter: Errechneter Einkaufs-Preis
nVkPreis:R | Referenz-Parameter: Errechneter Verkaufs-Preis
oMemTable:O | TMemCalcTable-Objekt, welches mit der errechneten Stückliste befüllt wird. Die übergebene Tabelle wird strukturell von der Funktion angepasst.
lCopyMemos:L | Varianten-Mengenfelder "SL_Memo" und "SL_FixMemo" mit Basis-Werten aus der zugrunde liegenden Variantenstückliste füllen. Default=false

Rückgabewert

Logisch - Varianten-Stückliste wurde erfolgreich berechnet / erzeugt

Beispiel

| nEkPreis, nVkPreis, oMemTable |

// ohne SL-Ausgabe

if SL_Calc('45520040', , , , nEkPreis, nVkPreis) then

   WriteLn('EK: ' + FormatFloat('#,##0.00', nEkPreis)),

   WriteLn('VK: ' + FormatFloat('#,##0.00', nVkPreis)),

else

   WriteLn('Kalkulationsfehler!')

endif,

WriteLn(),

// mit SL-Ausgabe, Preis-Nr 2

oMemTable := CreateObject('TMemCalcTable'),

startseq,

   if SL_Calc('45520040', 2, , , nEkPreis, nVkPreis, oMemTable) then

      WriteLn('EK: ' + FormatFloat('#,##0.00', nEkPreis)),

      WriteLn('VK: ' + FormatFloat('#,##0.00', nVkPreis)),

      WriteLn('Stückliste: '),

      DBGoTop(oMemTable),

      while !EoF(oMemTable) do

         WriteLn('- ' + Trim(oMemTable:ArtNr1) + ' x ' + Str(oMemTable:Menge)),

         DBSkip(1, oMemTable)

      end,

   else

      WriteLn('Kalkulationsfehler!')

   endif,

always,

  DestroyObject(oMemTable),

stopseq

Siehe auch

SL_Spalten()

TVarCalcPanel


SL_Check()

SL_Check() – Terminraster Fenster

Beschreibung

Stücklisten-Check. Nur noch aus Kompatibilitätsgründen verfügbar. Anstattdessen SL_Menu() verwenden!

Parameter

uDummy1:U | Stückliste
uDummy2:L | default = true

Rückgabewert

Logisch / Boolean - Check erfolgreich


SL_Menu()

SL_Menu() – Auswahlfenster Stückliste

Beschreibung

Die Funktion ruft ein Auswahlfenster einer Stückliste auf und listet die einzelnen Stücklistenpositionen auf, die entsprechend markiert und ausgewählt werden können. Die Funktion wird üblicherweise in einer Varianten-Definition verwendet.

Parameter

uArtList:U | Artikelnummer der Stückliste
lDummy:L | default = true; true = Stückliste anzeigen, false = Baugruppe anzeigen

Rückgabewert:

Logisch / Boolean - Anzeige Fenster


SL_Spalten()

SL_Spalten() – Varianten-Stücklisten-Memo als druckbare Spalten

Beschreibung

Die Funktion erzeugt aus einen Varianten-Stücklisten-Memo ein Array mit druckbaren Spalten in der angegebenen Sprache. Das Ergebnis kann im Report-Designer verwendet werden, um Memo-Felder spaltenweise zu füllen.

Parameter

cSLMemo:C | Varianten-Stücklisten-Memo
cSLMemoFs:C | Varianten-Stücklisten-Memo in Fremdsprache; default = Leerstring
nLang:N | Sprach-ID; default = aktuelle BE-Sprache

Rückgabewert

Array. Format:

{<Caption in entspr. Sprache> ,<eingegebener Text> , <leer>}

Siehe auch

SL_Calc()

TVarCalcPanel


StatActive()

StatActive() – Statistikprüfung

Beschreibung

Die Funktion kontrolliert, ob eine Statistik ausgeführt wird.

Parameter

aDab420Rec:N

Statistik-Nr.

Rückgabewert

Logisch / Boolean - Statistik wird ausgeführt

Beispiel

| aStat1:N := 1, aStat2:N := 2, aLastTime |

WriteLn('Start von Statistik 1 ...'),

StatExec(aStat1, .F.),

WriteLn('Start von Statistik 2 ...'),

StatExec(aStat2, .F.),

aLastTime := Time(),

while StatActive(aStat1) or StatActive(aStat2) do

   ProcessMsg(),

   if Right(aLastTime, 2) <> Right(Time(), 2) then

      aLastTime := Time(),

      WriteLn(aLastTime),

   endif,

end,

Siehe auch

StatExec()


StatExec()

StatExec() – Statistik Eingabefenster

Beschreibung

Die Funktion öffnet das Eingabefenster einer Statistik und startet sie, falls angegeben.

Die Eingabefelder können über die Parameter 'aParameter', 'cStandorte', 'cAbteilungen' und 'nMandant' vorbelegt werden.

Die Verarbeitung kann auch ohne Anzeige des Fensters erfolgen.

Hinweis

Wird einer der Aufbereitungs-Parameter (Eingabeparameter, Standorte, Abteilungen, Mandant) nicht übergeben dann wird die letzte Einstellung dieses Parameters wieder hergestellt. Wenn die Aufbereitung im lQuietMode geschieht sollten daher immer alle Parameter vorbelegt werden.

Parameter

nDab420Rec:N | Statistik-Nr.
lWait:L | Wartemodus; Default = True; im Quiet-Mode immer True; True - Programm wartet bis Statistikaufbereitung beendet ist; False - Programm arbeitet weiter
aParameter:A | Liste der Eingabeparameter als Array; kann ausgelassen werden
cStandorte:C | Standorte; kann ausgelassen werden
cAbteilungen:C | Abteilungen; kann ausgelassen werden
nMandant:N | Fibu-Mandant; kann ausgelassen werden
lAutoPrint:L | Druck nach Verarbeitung starten; Default = False (nur sinnvoll iVm. lAutoStart = true)
lShowInfo:L | Benachrichtigung beim Beenden anzeigen; Default = False
lAutoStart:L | Aufbereitung sofort starten; Default = False
lQuietMode:L | Fenster nicht anzeigen (nur mit AutoStart); Default = False

Rückgabewert

keiner

Beispiel

StatExec(36,                                     // Statistik 36 starten

         True,                                   // Warten (im Quiet-Mode immer True)

         {21, 22, '83' , '89999', 3},            // Parameterliste

         '000/001',                              // Auswertung für Standorte 000 und 001

         '12345',                                // Abteilungen 1 bis 5 berücksichtigen

         ,                                       // Mandant (hier nicht relevant)

         False,                                  // kein automatischer Druck

         False,                                  // keine Meldung, wenn Verarbeitung beendet ist

         True,                                   // Parameter validieren und sofort Verarbeitung starten

         True)                                   // Fenster nicht anzeigen

// Mit StatExport() kann eine aufbereitete Statistik, gedruckt oder exportiert werden.

// Export in eine Grafik.

StatExport(36,                                   // Statistik 36 auswählen (muss aufbereitet sein)

           statExpExport,                        // Exportart: Druck-Export

           'C:\test\Export36',                   // Pfad (optional) und Dateiname

           statFmtJPEG)                          // speichert Statistik 36 als JPEG-Grafik

// Anschließend soll auf dem Standarddrucker gedruckt werden.

StatExport(36,                                   // Statistik 36 auswählen

           statExpPrint,                         // Drucken ohne Dialog

           ,                                     // Pfad und Name kann ausgelassen werden

           ,                                     // kein Exporttyp gewünscht

           ,                                     // Name des Druckers (leer = Standard)

           'Statistik 36 Querformat')            // Name des Drucklayouts

Siehe auch

StatActive()


StatExport()

StatExport() – Reportergebnis exportieren

Beschreibung

Mit der Funktion kann das Ergebnis eines bereits aufbereiteten Reports exportiert werden. Hierfür stehen die auch über die Oberfläche wählbaren Exportformate zur Verfügung.

Hinweis

Die Funktion arbeitet "still" und erzeugt im Fehlerfall eine Exception. Eine bestehende Datei im Ziel-Verzeichnis mit gleichem Dateinamen wird ohne Rückfrage überschrieben. Der Dateiname ist ohne Datei-Endung anzugeben.

Parameter

nDab420No: N | Nummer des Reports
nAction: N | auszuführende Aktion, Zahl oder Konstantenname; 0 :statExpDialog - Druckdialog wird angezeigt (Default); 1 :statExpPrint - Drucken ohne Dialog; 2 :statExpPreview - Druckvorschau; 3 :statExpExport - Druck-Export im angegebenen Dateiformat; 4 :statExpExcelExp - Excel-Export der Rohdaten in Datei
cFileName: C | Name und Pfad der Exportdatei (ohne Datei-Endung). Default: "". Falls kein Pfad angegeben wird, erfolgt die Ausgabe auf den Desktop.
nExportType: N | Export-Format, Zahl oder Konstantenname verfügbare Werte im Modus nAction = statExpExport; 0 :statFmtDefault (von be vorgegebener bzw. letzter Wert) (Default); 1 :statFmtPDF; 2 :statFmtRTF; 3 :statFmtHTML; 4 :statFmtXLS; 5 :statFmtGIF; 6 :statFmtJPEG; 7 :statFmtBMP; 8 :statFmtEMF; 9 :statFmtWMF verfügbare Werte im Modus nAction = statExpExcelExp; 10 :statFmtExpXLS; 11 :statFmtExpXLS97; 12 :statFmtExpCSV; 13 :statFmtExpDBF
cPrinterName: C | Name des Druckers; (Default: be-Standarddrucker)
cLayoutName: C | nur wenn nAction = statExpDialog / statExpPrint; Name des Layouts (Default: von be vorgegebener bzw. letzter Wert)
cSendToName: C | nur wenn nAction = statExpExport; Hier kann die Bezeichnung eines "Senden-An" Menüpunkts angegeben werden. Die exportierte Datei wird dann anschließend an das gewählte Fremdprogramm übergeben; (Default: Desktop). Achtung: Die Bezeichnungen sind system-spezifisch.

Beispiel

siehe StatExec()

Siehe auch

StatExec()


SuppLocationCompany()

SuppLocationCompany() – Statistik Eingabefenster

Beschreibung

Die Funktion gibt die Firmenzugehörigkeit / Standort-Nummer einer LieferantenNr. zurück.

Parameter

aSuppNo:N

LieferantenNr. des Standortes

Rückgabewert

Numerisch - Lieferantennummer. Falls Lieferantennummer ungültig: -1

Beispiel

SuppLocationCompany(75000)

Siehe auch

CustLocationCompany()

CustLocationInfo()

CustLocationNo()

LocationActive()

LocationCompany()

LocationCustNo()

LocationExists()

LocationInfo()

LocationName()

LocationSuppNo()

SuppLocationInfo()

SuppLocationNo()


SuppLocationInfo()

SuppLocationInfo() – Standort Information

Beschreibung

Die Funktion gibt ein Objekt zu einem Standort zurück, das zu einer Lieferantenummer eines Standortes gehört.

Parameter

aSuppNo:N

LieferantenNr. des Standortes

Rückgabewert

Objekt - Falls LieferantenNr. ungültig ist: null()

Objekt Eigenschaften

- allowed // Erlaubnis

- company // Firmenzugehörigkeit Standort

- custdepart // VK-Abteilung für sto.Umlagerung

- custno // Kundennr. Standort

- custtype // Empfängertyp für sto.Umlagerung

- locname // Mandanten/Abteilungs-Name

- locno // Standort-Nummer

- ordtypeext // Auftragsart für Lieferung firmenextern

- ordtypeint // Auftragsart für Lieferung firmenintern

- suppdepart // EK-Abteilung. für sto.Umlagerung

- suppno // Lieferantennr. Standort

Beispiel

| oSuppLocInfo |

oSuppLocInfo := SuppLocationInfo(75000),

WriteLn(oSuppLocInfo.custno),

WriteLn(oSuppLocInfo.suppno),

WriteLn(oSuppLocInfo.company),

Siehe auch

CustLocationCompany()

CustLocationInfo()

CustLocationNo()

LocationActive()

LocationCompany()

LocationCustNo()

LocationExists()

LocationInfo()

LocationName()

LocationSuppNo()

SuppLocationCompany()

SuppLocationNo()


SuppLocationNo()

SuppLocationNo() – Standort Information

Beschreibung

Die Funktion gibt die Standorts-Nummer zurück, die zu einer Lieferantenummer gehört.

Parameter

aSuppNo:N

LieferantenNr. des Standortes

Rückgabewert

Numerisch - Falls LieferantenNr. ungültig ist: -1

Beispiel

SuppLocationNo(75000)

Siehe auch

CustLocationCompany()

CustLocationInfo()

CustLocationNo()

LocationActive()

LocationCompany()

LocationCustNo()

LocationExists()

LocationInfo()

LocationName()

LocationSuppNo()

SuppLocationCompany()

SuppLocationInfo()


TeilRech()

TeilRech() – Teilrechnung aufrufen / drucken

Beschreibung

Die Funktion ruft das Fenster zur Eingabe einer Teilrechnung auf oder gibt das Fenster als Objekt zurück.

Parameter

nAnummer:N | Auftragsnummer
lModal:L | Modale Anzeige des Fensters ( Default = True )
lVisible:L | Fenster sichtbar / unsichtbar ( Default = True )

Rückgabewert

Keiner, für lModal = True, ansonsten das Fenster-Objekt (Klasse: TBePartInvWin)

Hinweis lModal = True ist nur zulässig, wenn lVisible ebenfalls True ist.

Eigenschaften des Rückgabe-Objekts 'TBePartInvWin':

Dab050 Memory-Tabelle, Kopie von Dab050

Dab055 Memory-Tabelle, Kopie von Dab055

Funktionen des Rückgabe-Objekts 'TBePartInvWin':

ExecPrint:L Aufruf der Druckausgabe.

Falls die Anzeige des Druckdialogs nicht erwünscht ist, muss die Druckerzuweisung für "Teilrechnung" entsprechend angepasst werden ("kein Druckdialog").

Diese Anpassung könnte auch vorübergehend durch ein Codeblock-Programm geschehen.

ExecDelete:L Satz aus Memory-Tabelle Dab055 löschen

Zusätzliche Datenfelder in der Memory-Tabelle Dab055:

TLFDNR Zähler (lfd. Nummer)

TLF_NR entspricht LF_NUMMER aus Dab020

TLF_DAT entspricht DATUM aus Dab020

TLF_DATEX entspricht LF_DATUM aus Dab020

TLF_MENGE entspricht MENGE aus Dab020

TMENGE In dieses Feld muss die Teilrechnungs-Menge der Position eingetragen werden.

Wird versucht, eine größere als die aktuell berechenbare Menge einzutragen, so wird die maximal berechenbare Menge gesetzt.

Beispiel

| oTRWin, oDab055, lDoPrint |

if !Empty(oTRWin := TeilRech(171282, false, false)) then

   startseq,

      lDoPrint := false,

      oDab055  := oTRWin.Dab055,

      DBGoTop(oDab055),

      while !EoF(oDab055) do

         if Trim(oDab055:ArtNr) <> '@@@@@' and DBEdit(oDab055) then

            oDab055:TMenge := oDab055:TLF_Menge,

            if DBPost(oDab055) then

               lDoPrint := true

            endif,

         endif,

         DBSkip(1, oDab055),

      end,

      if lDoPrint and oTRWin.ExecPrint then

         WriteLn('Ok')

      endif,

   always

      DestroyObject(oTRWin)

   stopseq,

else,

   WriteLn('Teilrechnung kann nicht ausgeführt werden !')

endif


Term_Start()

Term_Start() – Berrechne Produktions-Starttermin

Beschreibung

Die Funktion errechnet den Produktions-Starttermin ausgehend von einem Fertigstellungs-Termin.

Parameter

uTermin:U | Fertigstellungs-Termin
nTage:N | Anzahl Produktionstage

Rückgabewert

Datum - Produktions-Starttermin

Beispiel

DToC(Term_Start(Date() +10, 4))


TranslatorItemInfo()

TranslatorItemInfo() – Übersetzungs-Infos

Beschreibung

Die Funktion liefert Informationen über die hinterlegten Übersetzungen zu einem Objekt.

Hinweis

Diese Funktion liefert nur Informationen aus der DabSPR. Es ist nicht möglich "Caption" oder "Hint" Eigenschaften eines Objekts abzufragen welches über keinen Eintrag in der DabSPR verfügt. In diesem Fall ergibt sich eine leere Rückgabe.

Die Klassen- und Objekt-Namen sind identisch mit denen aus dem Translator ("Sprache bearbeiten" - Fenster).

Parameter

aClass:C | Klasse
aObject:C | Objekt
nLanguage:N | Sprach-ID
lCaption:L | Beschriftung anzeigen; default = true
lSystemTrans:L | System Trans; default = false true - System Default Übersetzung anzeigen false - Benutzer Übersetzung anzeigen
lSystemTransOnEmpty:L | System Default Übersetzung anzeigen falls Benutzer Übersetzung leer ist; default = false
lReload:L | Informationen aktualisieren (keine gecachten Werte verwenden); default = true

Rückgabewert

Alphanumerisch - Infos

Beispiel

// 1) Rückgabe der Caption des Hauptfensters

TranslatorItemInfo('TFormMain', 'FormMain', 4)

// 2) BeMessages: Meldungen und dynamische Bezeichnungen

TranslatorItemInfo('BeMessages', '1008', 61)

// 3) BeFields: Alle Datenbank-Felder

TranslatorItemInfo('BeFields', '001.BEZ', 2)

// Für die Datenbank-Verwaltung zum Anzeigen anderer Sprachen

// 1) Tabellen-Liste

TranslatorItemInfo('BeFields', StrZero(MEMTABLE:WorkArea, 3, 0) + '.', 6)

// 2) Feld-Liste

TranslatorItemInfo('BeFields', StrZero(MEMTABLE:WArea, 3, 0) + '.' + AllTrim(MEMTABLE:FName), 6)

// 4) Browser

TranslatorItemInfo('GridSTORSEL'+c_usr, 'Col_0', 1)


Verd_Bed()

Verd_Bed() – Verdachtsbedarf

Beschreibung

Die Funktion berechnet den Verdachtsbedarf eines Artikels.

Parameter

oDab010:O

Tabellenobjekt Dab010; default = Standard Dab010

Rückgabewert

Numerisch - Verdachtsbedarf

Beispiel

| oDab010:DB := '2' |

WriteLn(Verd_Bed(oDab010)),


VK_Wert()

VK_Wert() – Verkaufswert

Beschreibung

Die Funktion berechnet den Netto-Verkaufswert je Einheit (Menge * Preis / Preiseinheit abzüglich aller Rabatte).

Parameter

oDab020:O | Tabellenobjekt DAB020; default = Standard Dab020
lFW:L | gibt Verkaufswert in Fremdwährung zurück; default = false

Rückgabewert

Numerisch - Verkaufswert

Beispiel

| oDab020:DB := '7' |

WriteLn(VK_Wert(oDab020)),


VPZ()

VPZ() – Vorplanzeit

Beschreibung

Die Funktion errechnet die Vorplanungszeit eines Produkts in Tagen anhand der eigenen Durchlaufzeit und der Durchlauf- bzw. Wiederbeschaffungszeit aller in der Stückliste enthaltenen Bauteile.

Parameter

cArtNr:C | Artikel-Nummer
nTage:N | Wiederbeschaffungszeit; default = 0 (Wiederbeschaffungszeit aus Artikelstamm)

Rückgabewert

Numerisch - Vorplanzeit in Tagen

Beispiel

VPZ('LS-200')


WCheck()

WCheck() – Währungsüberprüfung

Beschreibung

Die Funktion überprüft, ob eine bestimmte Währung im System / Standort gepflegt ist.

Parameter

nCurrencyID:N

Währungs-ID

Rückgabewert

Logisch / Boolean - Währungs-ID existiert

Beispiel

WCheck(0)


WEBuchen()

WEBuchen() – Wareneingangsbuchung

Beschreibung

Die Funktion bucht einen Wareneingang.

Hinweis

Wie bei allen BE-Lagerbuchungsfunktionen muss beachtet werden, dass bei Übergabe einer Platz-Nr. im Kommiss.Array sichergestellt ist, dass diese (Platz-Nr.) für die Lager-Nr. gültig und verfügbar ist.

Parameter

cWEPNummer:C | Wareingangspositionsnummer
oAdsConnect:O | ADS Connection
oDab000:O | Tab. Objekt DAB000
oDab010:O | Tab. Objekt DAB010
oDab020:O | Tab. Objekt DAB020
oDab035:O | Tab. Objekt DAB035
oDab050:O | Tab. Objekt DAB050
oDab055:O | Tab. Objekt DAB055
oDab100:O | Tab. Objekt DAB100
oDab235:O | Tab. Objekt DAB235
oDab240:O | Tab. Objekt DAB240
oDab250:O | Tab. Objekt DAB250
oDab255:O | Tab. Objekt DAB255
oDab262:O | Tab. Objekt DAB262
oDab310:O | Tab. Objekt DAB310
oDab410:O | Tab. Objekt DAB410
oDab510:O | Tab. Objekt DAB510
oDab520:O | Tab. Objekt DAB520
oDab610:O | Tab. Objekt DAB610
oDab710:O | Tab. Objekt DAB710
oDab720:O | Tab. Objekt DAB720
oDab730:O | Tab. Objekt DAB730
nPersNo:N | Personalnummer
nMengeIst:N | IST Menge; default = -999999999
nMengeBuch:N | Buchungsmenge; default = -999999999
cQSCode:C | Qualitätssicherungscode; default = Leerstring
cLager:C | Zugangs-Lager; default = Leerstring
aKommissArr:A | Array der Kommissionsnummern; default = Leerstring; Format: {; { <Kommission>, <Menge>, [,<Platz> [,<Verfallsdatum> [,<BehälterNr> [,<EinwegBehälterTyp> ]]]]}, { ... }; }
nQSMenge:N | Qualitätssicherungsmenge; default = 0
nArchMenge:N | Archivierte Menge; default = -999999999
lAutoErledigt:L | WE Sendungsdaten automatisch auf "erledigt" stellen, wenn Sendung vollständig (Dab250); default = true
lNoBuchDlg:L | Keinen Buchungsdialog anzeigen; default = true
nGroeKlasse:N | Größenklasse; default = 0; 0 = alle Größenklassen erlaubt bei Platzvorgabe per aKommissArr
nResID:N | Reservierungs-ID des zu buchenden, reservierten Platzes; default = 0

Rückgabewert

keiner

Beispiel

| oAdsConnect,

  oDab000:DB:='1,1',  oDab010:DB:='2,1',  oDab020:DB:='7,1',

  oDab035:DB:='13,1', oDab050:DB:='3,1',  oDab055:DB:='4,1',

  oDab100:DB:='5,1',  oDab235:DB:='34,1', oDab240:DB:='26,1',

  oDab250:DB:='44,1', oDab255:DB:='45,1', oDab262:DB:='40,1',

  oDab310:DB:='19,1', oDab410:DB:='23,1', oDab510:DB:='28,1',

  oDab520:DB:='35,1', oDab610:DB:='30,1', oDab710:DB:='31,1',

  oDab720:DB:='42,1', oDab730:DB:='47,1',

  aCommiss |

oAdsConnect := oDab255.AdsConnection,

aCommiss    := {{'05-753822', 20, 'TG042'}},

WEBuchen('06030056001',

         oAdsConnect, oDab000, oDab010, oDab020, oDab035, oDab050, oDab055,

         oDab100, oDab235, oDab240, oDab250, oDab255, oDab262, oDab310,

         oDab410, oDab510, oDab520, oDab610, oDab710, oDab720, oDab730,

         7, 20, , '', '04', aCommiss)

Siehe auch

WEBuchen2()


WEBuchen2()

WEBuchen2() – Wareneingangsbuchung

Beschreibung

Die Funktion bucht einen Wareneingang mit Verwendung eines Datenmoduls, übernimmt also die gleiche Aufgabe wie WEBuchen(). Die Parameterübergabe wurde allerdings vereinfacht, so dass anstatt der Tabellen nur noch ein Datenmodul übergeben werden muss.

Parameter

oDM:O | Datenmodul
cWEPNummer:C | Wareingangspositionsnummer
nPersNo:N | Personlanummer
nMengeIst:N | IST Menge; default = -999999999
nMengeBuch:N | Buchungsmenge; default = -999999999
cQSCode:C | Qualitätssicherungscode; default = Leerstring
cLager:C | Zugangs-Lager; default = Leerstring
aKommissArr:A | Array der Kommissionsnummern; default = Leerstring; Format: {; { <Kommission>, <Menge>, [,<Platz> [,<Verfallsdatum> [,<BehälterNr> [,<EinwegBehälterTyp> ]]]]}, { ... }; }
nQSMenge:N | Qualitätssicherungsmenge; default = 0
nArchMenge:N | Archivierte Menge; default = -999999999
lAutoErledigt:L | WE Sendungsdaten automatisch auf "erledigt" stellen, wenn Sendung vollständig (Dab250); default = true
lNoBuchDlg:L | Keinen Buchungsdialog anzeigen; default = true
nGroeKlasse:N | Größenklasse; default = 0; 0 = alle Größenklassen erlaubt bei Platzvorgabe per aKommissArr
nResID:N | Reservierungs-ID des zu buchenden, reservierten Platzes; default = 0

Rückgabewert

Keiner

Beispiel

| oAdsConnect, oDM, aCommiss |

oDM         := CreateObject('TBeDBGet'),

aCommiss    := {{'05-753822', 20, 'TG042'}},

WEBuchen2(oDM, '06030056001', 7, 20, , '', '04', aCommiss),

Siehe auch

WEBuchen()


WEGewichtAnz()

WEGewichtAnz() – Wareneingangs Gewichtseingabe nötig / möglich

Beschreibung

Die Funktion prüft, ob eine Gewichtseingabe im Wareneingang möglich / erforderlich ist. .

Parameter

oDM:O | Datenmodul
oDab255:O | Tabellenobjekt Dab255
lPruefErford:L | Prüfungsmodus; default = false; True - prüfen, ob Eingabe zwingend erforderlich; False - prüfen, ob Eingabe möglich/erwünscht

Rückgabewert

Logisch / Boolean - Gewichtseingabe nötig/möglich

Beispiel

| oDM, oDab255:DB := '45' |

oDM := CreateObject('TBEDBGet'),

WEGewichtAnz(oDM, oDab255, false)


ChDir()

ChDir() – Verzeichnis wechseln

Beschreibung

Die Funktion wechselt in ein angegebens Verzeichnis, welches dadurch zum aktuellen Verzeichnis wird.

Parameter

aDirName:C

Verzeichnispfad

Rückgabewert

keiner

Beispiel

ChDir('C:\Temp'),

GetCurrentDir()

Siehe auch

CreateDir()

DirArray()


CreateDir()

CreateDir() – Dateiverzeichnis anlegen

Beschreibung

Die Funktion legt ein neues Dateiverzeichnis an, wobei das Verzeichnis bis zur darüberliegenden Ebene vorhanden sein muss.

Parameter

aDirName:C

Verzeichnispfad

Rückgabewert

Logisch / Boolean - Verzeichnis konnte erzeugt werden

Beispiel

CreateDir('C:\temp\Dontenwill')


DateTimeToFileDate()

DateTimeToFileDate() – In FileDate umwandeln

Beschreibung

Mit DateTimeToFileDate() kann man einen Wert des Typs D (Codeblock-Datumstyp) in einen DOS-Datums- / Zeitwert konvertieren. Mit DateTimeToFileDate wird z.B. ein Datums-Wert in ein Format konvertiert, das vom Parameter aFileAge von FileSetDate() verwendet werden kann.

Parameter

aDateTime:D

Datumswert

Rückgabewert

Numerisch - Ergebniscode

Beispiel

| nHandle, dDatum, nDatum, nError |

nHandle := FileOpen('C:\TEMP\U_Zahlung.Pas', _OR(fo_ReadWrite, fo_Shared)),

if nHandle > -1 then

   startseq,

      dDatum := FileDateToDateTime(FileGetDate(nHandle)),

      WriteLn(dDatum),

      nDatum := DateTimeToFileDate(Date() + TimeEx()),

      WriteLn(nDatum),

      nError := FileSetDate(nHandle, nDatum),

      if nError <> 0 then

         WriteLn('Fehlercode ' + Str(nError)),

      else

         WriteLn('Neues Datei-Datum ' + DateTimeToStr(FileDateToDateTime(nDatum)))

      endif,

   always,

      FileClose(nHandle),

   stopseq,

endif,


DeleteFile()

DeleteFile() – Datei löschen

Beschreibung

Die Funktion löscht die angegebene Datei.

Parameter

aFileName:C

Pfadangabe

Rückgabewert

Logisch / Boolean – Datei wurde gefunden und gelöscht

Beispiel

DeleteFile('C:\Test.txt')


DirArray()

DirArray() – Verzeichnisinformationen

Beschreibung

Die Funktion gibt ein Array mit Verzeichniseinträgen und weiteren Informationen zurück.

Parameter

aPath:C | Verzeichnis, aus dem die Einträge geholt werden sollen; default = aktuelles Verzeichnis
aFileName:C | Filterausdruck zur Vorauswahl von bestimmten Dateien; default = '*.*'
aAttr:N | Filter für Dateien mit folgenden Attributen (auch kombinierbar!); default = faAnyFile faReadOnly = Schreibgeschützte Datei faHidden = Verborgene Datei faSysFile = Systemdatei faVolumeID = Laufwerks-ID faDirectory = Verzeichnis faArchive = Archivdatei faAnyFile = Beliebige Datei

Rückgabewert

Array - Format:

 aDirArray[File n, 1]  => Name   DOS-Dateinamen sowie die Namenserweiterung

 aDirArray[File n, 2]  => Time   DOS Datums/Uhrzeitstempel

 aDirArray[File n, 3]  => Size   Größe in Byte

 aDirArray[File n, 4]  => Attr   s. Parameter aAttr

 aDirArray[File n, 5]  => ---    interner Gebrauch

 aDirArray[File n, 6]  => ---    interner Gebrauch

Beispiel

| aDir, i |

aDir := DirArray('C:\TEMP'),

for i := 1 to ALen(aDir) do

   WriteLn('Die '+ Str(i) +'. Datei heißt '''+ aDir[i, 1] + ''' und hat ' +

           Str(aDir[i, 3]) + ' Bytes.')

next


DirectoryExists()

DirectoryExistst() – Prüft Dateiverzeichnis

Beschreibung

Die Funktion prüft, ob ein bestimmtes Verzeichnis existiert.

Parameter

aDirName:C

Verzeichnispfad

Rückgabewert

Logisch / Boolean - Verzeichnis ist vorhanden

Beispiel

DirectoryExists('C:\Temp')


DiskFree()

DiskFree() – Freie Speicherkapazität

Beschreibung

Die Funktion gibt die freie Speicherkapazität eines Laufwerks zurück.

Parameter

aDriveNo:N

Laufwerksnummer

0 – aktives Laufwerk

1 – Laufwerk A

2 – Laufwerk B

3 – Laufwerk C

4 – Laufwerk D

5 – Laufwerk E usw.

Rückgabewert

Numerisch - Freie Speicherkapazität in Byte

Beispiel

| cMeldText |

cMeldText := ' GByte freie Speicherkapazität auf Laufwerk C:',

Meld(Str(Round(DiskFree(3)/1024/1024/1024, 2)) + cMeldText),


DiskSize()

DiskSize() – Speicherkapazität

Beschreibung

Die Funktion gibt die Gesamtspeicherkapazität eines Laufwerks zurück.

Parameter

aDriveNo:N

Laufwerksnummer

0 – aktives Laufwerk

1 – Laufwerk A

2 – Laufwerk B

3 – Laufwerk C

4 – Laufwerk D

5 – Laufwerk E usw.

Rückgabewert

Numerisch - Speicherkapazität in Byte

Beispiel

| cMeldText |

cMeldText := ' GByte Speicherkapazität auf Laufwerk C:',

Meld(Str(Round(DiskSize(3)/1024/1024/1024, 2)) + cMeldText),


DlgGraphicFilter()

DlgGrahpicfilter() – Filterstring aller Grafikformate für Dialogfeld

Beschreibung

Die Funktion liefert einen Filter-String zurück, der mit der Eigenschaft "Filter" eines Öffnen- oder Speichern-Dialogfeldes kompatibel ist. Der Filterstring enthält alle verfügbaren Grafikformate.

Parameter

keine Parameter erwartet

Rückgabewert

Alphanumerisch - Filterstring mit Grafikformaten

Beispiel

| aDlg, cFilterString |

cFilterString := DlgGraphicfilter(),

aDlg          := OpenDlg('BE-Dateiauswahl', cFilterString, MBEDEFAULT),

aDlg.Active   := true,

if aDlg.Selected then

   WriteLn(aDlg.FileName)

else

   WriteLn('Keine Auswahl getroffen ...')

endif,


ExpandUNCFileName()

ExpandUNCFileName() – Datei-Pfad im UNC-Format (mit Netzlaufwerk)

Beschreibung

Vollständigen Pfad einer Datei im UNC-Format (mit Netzlaufwerk) ermitteln.

Hinweis

Datei-Pfad: c:\Verzeichnis

UNC-Pfad: \\Servername\Verzeichnis

Parameter

cFileName:C

Datei-Name

Rückgabewert

Alphanumerisch

Beispiel

// Laufwerk X verweist auf den Server-Ordner \\Server1\Test

ExpandUNCFileName('x:\Ordner1'),

// -> "\\Server1\Test\Ordner1"


ExtractFileDrive()

ExtractFileDrive() – Laufwerksbuchstaben ermitteln

Beschreibung

Die Funktion ermittelt aus einer Pfadangabe den Laufwerksbuchstaben.

Parameter

aFileName:C

Pfadangabe + Filename

Rückgabewert

Alphanumerisch - Laufwerksbuchstabe

Beispiel

| aFileName |

aFileName := 'C:\Temp\Test\Test.txt',

ExtractFileDrive(aFileName)


ExtractFileExt()

ExtractFileExt() – Dateierweiterung ermitteln

Beschreibung

Die Funktion ermittelt aus einer kompletten Pfadangabe die Dateierweiterung.

Parameter

aFileName:C

Pfadangabe + Dateiname

Rückgabewert

Alphanumerisch - Dateierweiterung

Beispiel

| aFileName |

aFileName := 'C:\Temp\Test\Test.txt',

ExtractFileExt(aFileName)


ExtractFileName()

ExtractFileName() – Dateinamen ermitteln

Beschreibung

Die Funktion ermittelt aus einer kompletten Pfadangabe den Dateinamen.

Parameter

aFileName:C

Pfadangabe + Dateiname

Rückgabewert

Alphanumerisch - Dateinamen

Beispiel

| aFileName |

aFileName := 'C:\Temp\Test\Test.txt',

ExtractFileName(aFileName)


ExtractFilePath()

ExtractFilePath() – Dateipfad ermitteln

Beschreibung

Die Funktion ermittelt aus einer kompletten Pfadangabe den Dateipfad.

Parameter

aFileName:C

Pfadangabe + Dateiname

Rückgabewert

Alphanumerisch - Pfadangabe

Beispiel

| aFileName |

aFileName := 'C:\Temp\Test\Test.txt',

ExtractFilePath(aFileName)


FClose()

FClose() – Datei schließen

Beschreibung

Die Funktion schließt eine geöffnete Datei.

Parameter

aFileObject:O

FileObject

Rückgabewert

Keiner

Beispiel

| oFileObject |

oFileObject := FOpen('C:\Temp\Test\Test.txt', FO_READ),

FClose(oFileObject)


File()

File() – Datei vorhanden

Beschreibung

Die Funktion prüft, ob eine Datei vorhanden ist.

Parameter

aFileName:C

Pfadangabe + Dateiname

Rückgabewert

Logisch / Boolean - Datei vorhanden

Beispiel

| aFileName |

aFileName := 'C:\Temp\Test.txt',

if(File(aFileName), Meld('Datei vorhanden'), Meld('Datei nicht vorhanden')),


FileAge()

FileAge() – Dateidatum- u. Zeit

Beschreibung

Die Funktion ermittelt das Änderungsdatum sowie die Änderungszeit als numerischen Wert, der über eine entsprechende Datums- / Zeitfunktion ausgegeben werden kann.

Parameter

aFileName:C

Pfadangabe + Dateiname

Rückgabewert

Numerisch - Dateidatum- u. zeit

Beispiel

FileDateToDateTime(FileAge('C:\Temp\Test\Dontenwill.txt'))

Siehe auch

FileDateToDateTime()

FileSetDate()


FileClose()

FileClose() – File Handle freigeben

Beschreibung

Mit FileClose kann eine Datei anhand ihres Handles geschlossen werden. Sie erhalten das Handle beim Öffnen der Datei mit FileOpen().

Wurde mit FileOpen() ein gültiges Handle bezogen, dann MUSS die Datei nach der Bearbeitung über FileClose() geschlossen werden! => Deshalb immer StartSeq ... Always ... StopSeq verwenden!

Parameter

aFileHandle:N

FileHandle

Rückgabewert

Keiner

Beispiel

| nHandle, dDatum, nDatum, nError |

nHandle := FileOpen('C:\TEMP\U_Zahlung.Pas', _OR(fo_ReadWrite, fo_Shared)),

if nHandle > -1 then

   startseq,

      dDatum := FileDateToDateTime(FileGetDate(nHandle)),

      WriteLn(dDatum),

      nDatum := DateTimeToFileDate(Date() + TimeEx()),

      WriteLn(nDatum),

      nError := FileSetDate(nHandle, nDatum),

      if nError <> 0 then

         WriteLn('Fehlercode ' + Str(nError)),

      else

         WriteLn('Neues Datei-Datum ' + DateTimeToStr(FileDateToDateTime(nDatum))),

      endif,

   always,

      FileClose(nHandle),

   stopseq,

endif,

Siehe auch

FileOpen()


FileDateToDateTime()

FileDateToDateTime() – Umwandlung Dateidatum- u. Zeit

Beschreibung

Die Funktion wandelt das numerische Ergebnis der Funktion FileAge in ein Datums- / Zeitformat um.

Parameter

aFileAge:N

numerischer Wert, der von der Funktion FileAge() zurückgegeben wurde.

Rückgabewert

Datum - umgewandeltes Datum

Beispiel

| aFileDatum |

aFileDatum := FileDateToDateTime(FileAge('C:\Temp\Test\Dontenwill.txt')),

Meld(DateTimeToStr(aFileDatum)),

Siehe auch

FileAge()


FileGetAttr()

FileGetAttr() – Dateiattribut ermitteln

Beschreibung

Die Funktion gibt numerisch codiert die Dateiattribute einer Datei zurück.

Parameter

aFileName:C

Pfadangabe + Dateiname

Rückgabewert

Numerisch - Codierte Dateiattribute. Bei einer nicht gefundenen Datei: -1

Hinweis

Um auf ein bestimmtest Dateiattribut zu testen muss das Ergebnis der Funktion mit "and" + einer Dateiattributs-Konstante verknüpft werden. Ist das Ergebnis dieser logischen Addition > 0 dann ist das Dateiattribut gesetzt.

Beispiel

FileGetAttr('C:\Temp\Test\Text.txt')

Siehe auch

FileSetAttr()

FileGetAttrValue()


FileGetAttrValue()

FileGetAttrValue() – Dateiattribut / Information ermitteln

Beschreibung

Die Funktion gibt ein Dateiattribut oder eine Datei-Information zurück.

Parameter

aFileName:C | Pfadangabe + Dateiname
aAttr:N | Index des Dateiattributs / Datei-Information (siehe FileSetAttr())

Rückgabewert

Alphanumerisch

wenn aAttr eine Dateiattributs-Konstante ist, dann

'J' - für Dateiattribut gesetzt

'N' - für Dateiattribut nicht gesetzt

wenn aAttr eine Datei-Informations-Konstate ist, dann ist die Rückgabe der Text der Information

Beispiel

| aFile |

FileGetAttrValue(aFile, faReadOnly) = 'J'

// entspricht: (FileGetAttr(aFile) and faReadOnly) > 0

Siehe auch

FileGetAttr()

FileSetAttr()


FileGetDate()

FileGetDate() – Datei-Datum ermitteln

Beschreibung

Die Funktion gibt die DOS Datums- und Zeitinformationen einer bestimmten Datei zurück.

Mit FileGetDate() kann der Zeitstempel der Datei mit dem angegebenen Handle ermittelt werden. Bei einem ungültigen Handle wird der Wert -1 zurückgegeben. Der Rückgabewert kann anschließend mit der Funktion FileDateToDateTime() in einen Wert des Typs TDateTime konvertiert werden.

Parameter

aFileHandle:N

FileHandle

Rückgabewert

Numerisch - Dateidatum

Beispiel

| nHandle, dDatum, nDatum, nError |

nHandle:= FileOpen('C:\TEMP\U_Zahlung.Pas', _OR(fo_ReadWrite, fo_Shared)),

if nHandle > -1 then

   startseq,

      dDatum:= FileDateToDateTime(FileGetDate(nHandle)),

      WriteLn(dDatum),

      nDatum:= DateTimeToFileDate(Date() + TimeEx()),

      WriteLn(nDatum),

      nError:= FileSetDate(nHandle, nDatum),

      if nError <> 0 then

         WriteLn('Fehlercode ' + Str(nError))

      else

         WriteLn('Neues Datei-Datum ' + DateTimeToStr(FileDateToDateTime(nDatum)))

      endif,

   always,

      FileClose(nHandle)

   stopseq,

endif


FileOpen()

FileOpen() – File Handle

Beschreibung

Mit FileOpen können Sie eine Datei öffnen und ihr Windows-Datei-Handle abrufen. Der Zugriffsmodus ergibt sich durch eine ODER-Verknüpfung einer fo_Open-Konstante mit einer der fo_Share-Konstanten. Bei Erfolg gibt FileOpen einen positiven Integer-Wert zurück, der als Handle für die geöffnete Datei verwendet werden kann. Der Rückgabewert -1 gibt an, daß ein Fehler aufgetreten ist.

Wurde mit FileOpen() ein gültiges Handle bezogen, dann MUSS die Datei nach der Bearbeitung über FileClose() geschlossen werden! Deshalb immer StartSeq ... Always ... StopSeq verwenden!

Parameter

aFileName:C | File + Pfad
aMode:N | Zugriffsmodus (logische OR-Verknüpfung aus fo_Open Konstante und fo_Share Konstante); Open Konstanten fo_Create Datei erzeugen fo_Read Nur Lesezugriff fo_Write Nur Schreibzugriff fo_ReadWrite Lese- und Schreibzugriff; Share Konstanten fo_Compat Kompatibel zu dem Verfahren, mit dem FCBs geöffnet werden fo_Exclusive Kein Lese- und Schreibzugriff fo_DenyWrite Kein Schreibzugriff fo_DenyRead Kein Lesezugriff fo_Shared Andere haben uneingeschränkten Zugriff

Rückgabewert

Numerisch - FileHandle. Bei Fehler: -1

Beispiel

| nHandle, dDatum, nDatum, nError |

nHandle := FileOpen('C:\TEMP\U_Zahlung.Pas', _OR(fo_ReadWrite, fo_Shared)),

if nHandle > -1 then

   startseq,

      dDatum := FileDateToDateTime(FileGetDate(nHandle)),

      WriteLn(dDatum),

      nDatum := DateTimeToFileDate(Date() + TimeEx()),

      WriteLn(nDatum),

      nError := FileSetDate(nHandle, nDatum),

      if nError <> 0 then

         WriteLn('Fehlercode ' + Str(nError)),

      else

         WriteLn('Neues Datei-Datum ' + DateTimeToStr(FileDateToDateTime(nDatum))),

      endif,

   always,

      FileClose(nHandle),

   stopseq,

endif,

Siehe auch

FileClose()


FileSearch()

FileSearch() – Datei Suchen

Beschreibung

Die Funktion sucht in einem Verzeichnis nach einer Datei.

Parameter

aFileName:C | Name der Datei, die gesucht wird
aDirList:C | Verzeichnis, das durchsucht wird

Rückgabewert

Alphanumerisch - Pfadangabe der Datei.

Wenn die Datei nicht gefunden wurde: Leerer String

Wenn die Datei im aktuellen Verzeichnis gefunden wurde: Nur Dateiname

Beispiel

FileSearch('Test.txt', 'C:\temp')


FileSetAttr()

FileSetAttr() – Dateiattribut setzen

Beschreibung

Die Funktion setzt die Dateiattribute einer Datei oder die Datei-Informationen.

Parameter

aFileName:C | Pfad + Dateiname
aAttr:N | Numerisches Dateiattribut/Information; Dateiattributs-Konstanten faReadOnly - Schreibgeschützte Datei faHidden - Verborgene Datei faSysFile - Systemdatei faVolumeID - Systemdatei faDirectory - Verzeichnis faArchive - Archivdatei faAnyFile - Beliebige Datei; Datei-Informations-Konstanten faFileTitle - Titel faFileSubject - Beschreibung faFileAuthor - Autor faFileKeyWords - Schlüssel-Wörter faFileComment - Kommentar faFileVersion - Datei-Version
aAttrValue:C | Wert der Datei-Information (nur bei aAttr gleich einer Datei-Informations-Konstante)

Rückgabewert

Logisch - setzen der Dateiattribute/Information erfolgreich

Hinweis

Beim Setzen von mehreren Dateiattributen müssen die Dateiattributs-Konstanten mit einem "or" verknüpft werden.

Beim Setzen von mehreren Datei-Informationen

- darf die Datei nicht schreibgeschützt sein

- muss die Funktion mehrmals aufgerufen werden!

Beim Kopieren von Dateien mit Datei-Informationen gehen diese unter Umständen verloren, da diese auf Windows-Ebene und nicht in der Datei gespeichert werden (Kopieren über den Windows-Explorer kopiert auch die Datei-Informationen)

Beispiel

| aFile, aFileAttr, aTitel, aAutor, aVersion, aReadOnly |

aFile := 'C:\temp\test.txt',

// Datei Schreibschutz aufheben falls gesetzt

aReadOnly := false,

aFileAttr := FileGetAttr(aFile),

if (aFileAttr and faReadOnly) > 0 then

   aReadOnly := true,

   FileSetAttr(aFile, _XOR(aFileAttr, faReadOnly)),

endif,

// alte Datei-Informationen ermitteln

aTitel   := FileGetAttrValue(aFile, faFileTitle),

aAutor   := FileGetAttrValue(aFile, faFileAuthor),

aVersion := FileGetAttrValue(aFile, faFileVersion),

// neue Datei-Informationen schreiben

if FileSetAttr(aFile, faFileTitle,   'Test-Datei') and

   FileSetAttr(aFile, faFileAuthor,  'Mustermann') and

   FileSetAttr(aFile, faFileVersion, 'V1.0') then

   // alte Datei-Information ausgeben

   Meld('Datei-Informationen wurden erneuert.' + CRLF +

        'Alte Werte' + CRLF +

        'Titel: '    + aTitel + CRLF +

        'Autor: '    + aAutor + CRLF +

        'Version: '  + aVersion),

endif,

// Schreibschutz der Datei ggf. wieder setzen

if aReadOnly then

   FileSetAttr(aFile, aFileAttr or faReadOnly),

endif,

Siehe auch

FileGetAttr()

FileGetAttrValue()


FileSetDate()

FileSetDate() – Datei Datum setzen

Beschreibung

FileSetDate() setzt die DOS Datums- und Zeitinformationen der mit aFileHandle angegebenen Datei auf den Wert von aFileAge. Mit der Funktion DateTimeToFileDate() kann ein TDateTime-Wert in die entsprechenden DOS-Informationen konvertiert werden. Bei Erfolg gibt FileSetDate() den Wert Null, ansonsten einen Windows-Fehlercode zurück.

Parameter

aFileHandle:N | FileHandle
aFileAge:N | Numerischer Wert (wie z.B. von der Funktion FileAge() zurückgeliefert)

Rückgabewert

Numerisch - Neues numerisches Dateidatum

Beispiel

| nHandle, dDatum, nDatum, nError |

nHandle := FileOpen('C:\TEMP\U_Zahlung.Pas', _OR(fo_ReadWrite, fo_Shared)),

if nHandle > -1 then

   startseq,

      dDatum:= FileDateToDateTime(FileGetDate(nHandle)),

      WriteLn(dDatum),

      nDatum:= DateTimeToFileDate(Date() + TimeEx()),

      WriteLn(nDatum),

      nError:= FileSetDate(nHandle, nDatum),

      if nError <> 0 then

         WriteLn('Fehlercode ' + Str(nError))

      else

         WriteLn('Neues Datei-Datum ' + DateTimeToStr(FileDateToDateTime(nDatum)))

      endif,

   always,

      FileClose(nHandle)

   stopseq,

endif,

Siehe auch

FileAge()

FileDateToDateTime()

FileGetAttr()

FileSetAttr()

FileGetAttrValue()


FileUnZip()

FileUnZip() – Datei entzippen

Beschreibung

Die Funktion entzippt eine gepackte Datei.

Parameter

cZipName:C | Pfadangabe + Filename des ZIP-Archivs
cDestDir:C | Zielverzeichnis
cDestFiles:C | Name der Datei(en), die aus dem ZIP-Archiv entpackt werden sollen; default = Leerstring (Gesamtes ZIP-Archiv entpacken)
cPassword:C | Passwort für ZIP-Archiv

Rückgabewert

Keiner

Beispiel

FileUnZip('C:\temp\test.zip', 'C:\temp\', , 'test')


FileZip()

FileZip() – Datei zippen

Beschreibung

Die Funktion zippt (komprimiert) eine Datei in ein ZIP-Format.

Parameter

cZipName:C | Pfadangabe + Filename des zu erstellenden ZIP-Archivs
cSourceDir:C | Quellverzeichnis
cSourceFiles:C | Name der zu zippenden Datei. Jokerzeichen sind möglich. default = Leerstring (Alle Dateien im Quellverzeichnis zippen); "*.txt" zippt alle Text-Dateien im Quellverzeichnis)
cPassword:C | Datei mit Passwort schützen; default = Leerstring (Kein Passwortschutz)
lRecurse:L | Rekursiv alle in Unterordnern enthaltenen Dateien mitzippen default = true
lPaths:L | Quell-Ordnerstruktur im ZIP-Archiv abbilden (lRelativePaths muss false sein) default = true
lRelativePaths:L | Relative Pfade verwenden; default = true

Rückgabewert

Keiner

Beispiel

FileZip('C:\temp\test.zip', 'C:\temp\', '*.txt', 'Test-PW', false, true, false)


FOpen()

FOpen() – Datei öffnen

Beschreibung

Die Funktion öffnet eine Datei und gibt sie an ein Objekt zurück.

Parameter

aFileName:C | Pfad + Dateiname
aOpenMode:N | Öffnungsmodus; FO_READ nur lesen; FO_WRITE nur schreiben; FO_EXCLUSIVE Datei für andere Benutzer sperren; FO_CREATE Datei anlegen

Rückgabewert

Objekt - Geöffnete Datei

Beispiel

| aFileName, oFileObject |

aFileName   := 'C:\Temp\Test\Text.txt',

oFileObject := FOpen(aFileName, FO_READ),

WriteLn(oFileObject.Active, oFileObject.EoF, oFileObject.FileName,

        oFileObject.Size),


ForceDirectories()

ForceDirectories() – Verzeichnispfad anlegen

Beschreibung

Unter DOS und Windows können Verzeichnisse nur der Reihe nach angelegt werden. Wenn z.B. das Verzeichnis C:\BE\KUNDE\LOKAL angelegt werden soll, müssen die Verzeichnisse BE und KUNDE existieren, bevor LOKAL angelegt werden kann. Mit ForceDirectories() kann ein Verzeichnis und alle übergeordneten Verzeichnisse, die noch nicht existieren, auf einmal angelegt werden.

Parameter

aDirName:C

Verzeichnispfad

Rückgabewert

Logisch / Boolean - alle Verzeichnisse konnten erstellt werden

Beispiel

ForceDirectories('C:\Test1\Test2\Test3\Test4')

Siehe auch

CreateDir()


FRead()

FRead() – Dateiinhalt lesen

Beschreibung

Die Funktion liest aCount Bytes (in diesem Fall Zeichen) eines FileObjekts und schreibt diese in die referenzierte Variable aBufferVar. Der Anfangspunkt für den Lesevorgang wird über die Eigenschaft Position des aFileObject festgelegt.

Parameter

aFileObject:O | Das Fileobjekt, das eingelesen wird
aBufferVar:R | Die Variable, die den Inhalt erhält
aCount:N | Die Anzahl von Bytes, die gelesen werden

Rückgabewert

Numerisch - Anzahl gelesener Bytes

Beispiel

| aFileName, oFileObject, rBuffer |

aFileName   := 'C:\Temp\Test.txt',

oFileObject := FOpen(aFileName, FO_READ),

FRead(oFileObject, rBuffer, 10),

WriteLn(rBuffer),

oFileObject.Position := 6,

FRead(oFileObject, rBuffer, 8),

WriteLn(rBuffer),


FReadLn()

FReadLn() – Dateizeile einlesen

Beschreibung

Die Funktion liest eine Zeile einer Datei von der aktuellen Position ab aus, und gibt sie zurück. Die Position wird anschließend auf die nächste Zeile verschoben.

Parameter

aFileObject:O

Fileobjekt, welches eingelesen wird

Rückgabewert

Alphanumerisch - Textzeile

Beispiel

| aFileName, oFileObject |

aFileName   := 'C:\Temp\Test.txt',

oFileObject := FOpen(aFileName, FO_READ),

WriteLn(FReadLn(oFileObject)),

WriteLn(FReadLn(oFileObject)),

WriteLn(FReadLn(oFileObject)),


FSeek()

FSeek() – Position in einer Datei verändern

Beschreibung

Die Funktion setzt die aktuelle Position einer Datei um aOffset Bytes weiter vor.

Parameter

aFileObject:O | Fileobjekt, welches positioniert wird
aOffset:N | Anzahl der Bytes die vorgerückt wird
aSeekMode:N | Suchmodus; default = FS_RELATIVE; FS_RELATIVE Position wird ausgehend von aktueller verändert; FS_SET Position wird ausgehend vom ersten Byte verändert; FS_END Position wird ausgehen vom letzten Byte verändert

Rückgabewert

Numerisch - Neue Position

Beispiel

| aFileName, oFileObject, rBuffer, rBuffer2 |

aFileName   := 'C:\Temp\Test.txt',

oFileObject := FOpen(aFileName, FO_READ),

FSeek(oFileObject, 5),

WriteLn(FReadLn(oFileObject)),

FSeek(oFileObject, 9, FS_SET),

WriteLn(FReadLn(oFileObject)),

FSeek(oFileObject, -10, FS_END),

WriteLn(FReadLn(oFileObject)),


FWrite()

FWrite() – In eine Datei schreiben

Beschreibung

Die Funktion schreibt aText in die Datei aFileObject. Falls aCount nicht angegeben ist, wird der ganze Inhalt von aText geschrieben, ansonsten nur die in aCount enthaltene Bytezahl.

Parameter

aFileObject:O | Fileobjekt, in welches geschrieben wird
aText:C | Text der geschrieben werden soll
aCount:N | Bytezahl, für Eingrenzung des Inhaltes; default = -1 (Keine Eingrenzung)

Rückgabewert

Numerisch - Anzahl Zeichen geschriebener Text

Beispiel

| aOutFile |

aOutFile := FOpen('C:\Temp\Outfile.txt', FO_CREATE),

FWrite(aOutFile, OemToAnsi('Dieser Text wurde mit FWrite() geschrieben.'))

Siehe auch

FWriteLn()


FWriteLn()

FWriteLn() – In eine Datei zeilenweise schreiben

Beschreibung

Die Funktion schreibt den ganzen Text aus aText in die Datei aFileObject und fügt zusätzlich die Zeichenfolge <Cr><Lf> (Zeilenumbruch) an.

Parameter

aFileObject:O | Fileobjekt, in welches geschrieben wird
aText:C | Text der geschrieben werden soll
aCount:N | Bytezahl für Eingrenzung des Inhaltes default = -1 (Keine Eingrenzung)

Rückgabewert

Numerisch - Anzahl der geschriebenen Bytes

Beispiel

| aOutFile |

aOutFile := FOpen('C:\Temp\Outfile.txt', FO_CREATE),

FWriteLn(aOutFile, OemToAnsi('Dieser Text')),

FWriteLn(aOutFile, OemToAnsi('wurde mit')),

FWriteLn(aOutFile, OemToAnsi('FWriteLn() geschrieben.')),

Siehe auch

FWrite()


GetCurrentDir()

GetCurrentDir() – Aktuelles Verzeichnis

Beschreibung

Die Funktion gibt das aktuelle Verzeichnis zurück.

Parameter

keine Parameter erwartet

Rückgabewert

Alphanumerisch - Aktuelles Verzeichnis

Beispiel

ChDir('C:\Temp'),

GetCurrentDir()

Siehe auch

ChDir()


LoadArray()

LoadArray() – Array aus Datei laden

Beschreibung

Die Funktion lädt ein Array aus einer Datei und übergibt es einer Variablen.

Parameter

aArray:R | Referenziertes Array
aFileName:C | Pfad + Dateiname

Rückgabewert

Logisch / Boolean - Array konnte aus der angegebenen Datei geladen werden

Beispiel

| aFile, aIn, aFileName, cText, nX, aFileArray, i |

aFileName := "C:\Temp\Test.txt",

cText     := "Dontenwill",

nX        := Len(cText),

if !DirectoryExists("C:\temp") then

   CreateDir("C:\Temp"),

endif,

aFile := FOpen(aFileName, FO_CREATE),

while nX >= 0 do

   startseq,

   FWriteLn(aFile, OemToAnsi(SubStr(cText, Len(cText) - nX + 1, 3))),

   onerror,

   stopseq,

   nX := nX - 3,

end,

FClose(aFile),

LoadArray(aFileArray, aFileName),

for i := 1 to Len(aFileArray) do

   WriteLn(aFileArray[i])

end,


LoadFile()

LoadFile() – Objektinhalt aus Datei laden

Beschreibung

Die Funktion läd eine Datei in ein Objekt der Klassen TBlobField, TPicture, TBitmap, TMemoStrings, TStrings ….

Parameter

aObject:O | Objekt
aFileName:C | Pfad + Dateiname

Rückgabewert

Logisch / Boolean - Datei konnte geladen werden

Beispiel

| aForm, aImage, aMemo, aBtn, aBtn2, aDlg, cFilter |

function DoOnClick(sender)

   if sender.name = 'BtnText' then

      cFilter := 'Text Dateien (*.txt)|*.txt',

   else,

      cFilter := 'JPG Dateien (*.jpg)|*.jpg|Bitmap Dateien (*.bmp)|*.bmp|' +

                 'Gif Dateien (*.gif)|*.gif',

   endif,

   aDlg        := OpenDlg('Datei auswählen...', cFilter),

   aDlg.active := true,

   if aDlg.selected then

      if sender.name = 'BtnText' then

         LoadFile(aMemo.lines, aDlg.FileName),

      else,

         LoadFile(aImage.picture, aDlg.FileName),

      endif,

   endif,

   DestroyObject(aDlg),

end,

aForm         := CreateObject('TForm'),

aForm.height  := 150,

aForm.width   := 500,

aForm.caption := 'LoadFile-Beispiel',

aImage        := CreateObject('TImage', 'Image', aForm, aForm),

aImage.left   := 200,

aImage.height := 96,

aImage.width  := 290,

aMemo         := CreateObject('TMemo', 'Memo', aForm, aForm),

aMemo.height  := 96,

aBtn          := CreateObject('TButton', 'BtnText', aForm, aForm),

aBtn.left     := 100,

aBtn.top      := 100,

aBtn.height   := 20,

aBtn.width    := 100,

aBtn.Caption  := 'Text-Datei laden',

aBtn2         := CreateObject('TButton', 'BtnImage', aForm, aForm),

aBtn2.left    := 250,

aBtn2.top     := 100,

aBtn2.height  := 20,

aBtn2.width   := 100,

aBtn2.Caption := 'Bild-Datei laden',

LoadFile(aImage.picture, 'C:\loadfile.jpg'),

LoadFile(aMemo.lines, 'C:\loadfile.txt'),

AssignEvent(aBtn, 'OnClick', 'DoOnClick'),

AssignEvent(aBtn2, 'OnClick', 'DoOnClick'),

ShowModal(aForm)

// Ergebnis: Mit den zwei Buttons können andere Text- oder Bild-Dateien

//           in das Fenster geladen werden.


LoadMemTable()

LoadMemTable() – MemTable laden

Beschreibung

Die Funktion lädt eine MemTable aus einer Datei, die vorher mit SaveMemTable() angelegt wurde.

Parameter

cFileName:C | Pfad + Filename
oMemTable:O | MemTable

Rückgabewert

Keiner

Beispiel

| oMem |

oMem := CreateObject('TMemCalcTable'),

LoadMemTable('C:\Test.txt', oMem),

oMem.Active := true,

Browse(, oMem),


OpenDlg()

OpenDlg() – Dateiauswahlfenster

Beschreibung

Die Funktion öffnet den Standarddialog zur Dateiauswahl.

Parameter

aTitle:C | Titel des Dialogfensters; default = 'Öffnen'
aFilter:C | Filterausdruck; default = Leerstring
aInitialDir:C | Anfangsverzeichnis default = Leerstring (Verzeichnis der zuletzt geöffneten Datei)
aFileName:C | Vorgabe für Pfad + Dateiname; default = Leerstring

Rückgabewert

Objekt - Geöffnete Datei

Beispiel

| aDlg |

aDlg := OpenDlg('BE-Dateiauswahl', 'BE-Programme|*.DWP|Alle Dateien|*.*', MBEDEFAULT),

startseq,

   aDlg.Active := true,

   if aDlg.Selected then

      WriteLn(aDlg.FileName)

   else

      WriteLn('Keine Auswahl getroffen ...')

   endif,

onerror,

stopseq,

DestroyObject(aDlg),


PathCopy()

PathCopy() – Dateipfad kopieren

Beschreibung

Die Funktion durchsucht den angegebenen Pfad nach Dateien, die zur Suchmaske aMask passen und kopiert diese nach cDestPath. Unterverzeichnisse von cSourcePath werden ebenfalls durchsucht. Die Namen der Unterverzeichnisse von cSourcePath werden übernommen und fehlende Verzeichnisse ggf. angelegt. Ist die Zieldatei bereits vorhanden, entscheidet der Parameter nCopyMode, was in der jeweiligen Situation geschehen soll.

Hinweis

Die Verarbeitung dieses Befehls kann u.U. sehr lange dauern.

Achtung: cDestPath darf niemals ein Unterverzeichnis von cSourcePath sein.

Parameter

aMask:U | Suchmaske; kann auch als Array angegeben werden; Platzhalter * bzw. ? sind erlaubt.
cSourcePath:C | Pfad, in dem die Suche ausgeführt werden soll. Leer startet in aktuellen Verzeichnis.
cDestPath:C | Pfad, in den die Dateien kopiert werden sollen. Leer kopiert in das aktuelle Verzeichnis.
nCopyMode:N | Bedeutung von nCopyMode:
 | 0 - nicht kopieren, wenn Datei im Zielverzeichnis bereits vorhanden ist
 | 1 - nur überschreiben, wenn Datei im Quellverzeichnis neuer ist
 | 2 - immer überschreiben

Rückgabewert

Logisch -> True, wenn der Kopiervorgang komplett abgeschlossen wurde, False wenn ein Fehler aufgetreten ist.

Beispiel

// Durchsucht Verzeichnis '\\server\BUILD\' sowie alle darunter liegenden Verzeichnisse

// nach den Dateien 'UPDATE*.RES' und 'DOWN*.RES' und kopiert diese mit Übernahme des

// Teilpfads (unterhalb von '\\server\BUILD\') in das Verzeichnis 'C:\server\BUILD_SAV\'.

// Dateien werden nur überschrieben, wenn die Quelldatei neuer ist als die Zieldatei.

WriteLn(PathCopy({'UPDATE*.RES', 'DOWN*.RES'},   // Suchmaske -> String oder Array

                 '\\server\BUILD\',              // Quell-Verzeichnis

                 'C:\server\BUILD_SAV\',         // Ziel-Verzeichnis

                 1))                             // CopyMode "Nur Neuer"

Siehe auch

PathSeek()


PathSeek()

PathSeek() – Dateipfad durchsuchen

Beschreibung

Die Funktion durchsucht den angegebenen Pfad nach Dateien, die zur Suchmaske aMask passen. Unterverzeichnisse von cPath werden ebenfalls durchsucht.

Hinweis

Die Verarbeitung dieses Befehls kann u.U. sehr lange dauern.

Parameter

aMask:U | Suchmaske; kann auch als Array angegeben werden; Platzhalter * bzw. ? sind erlaubt.
cPath:C | Pfad, in dem die Suche ausgeführt werden soll. Leer startet in aktuellen Verzeichnis.

Rückgabewert

Array, das alle Dateinamen mit vollständiger Pfadangabe enthält, die zur Suchmaske passen.

Beispiel

// Durchsucht Verzeichnis '\\server\BUILD\' sowie alle darunter liegenden Verzeichnisse

// nach den Dateien 'UPDATE.RES' und 'DOWN.RES' und gibt die vollständigen

// Datei-Namen (inkl. Pfadangabe) in einem Array zurück.

| aFileList |

aFileList := PathSeek({'UPDATE.RES', 'DOWN.RES'},   // Suchmaske -> String oder Array

                      '\\server\BUILD\'),           // Such-Verzeichnis

WriteLn(aFileList)

Siehe auch

PathCopy()


Pdf2DataSet()

Pdf2DataSet() – PDF in Tabelle speichern

Beschreibung

Die Funktion wandelt die Seite eines PDF-Files in eine Bilddatei um und speichert diese in das BLOB-Feld einer Tabelle. Jeder Funktionsaufruf legt einen neuen Datensatz in aDataSet an, und speichert in das BLOB-Feld aFieldName das JPEG der angegebenen PDF-Seite ab. Wird kein aDataSet übergeben, wird eine MemTable erstellt und ein BLOB-Feld mit dem Name aFieldName angelegt. Bleibt aFieldName leer, wird ein Feld 'JPEG_DATA' angelegt.

Das Programm GhostScript muss auf dem System installiert sein, um diese Funktion ausführen zu können!

Parameter

aPDFFileName:C | Name des PDF-Files
aFieldName:C | Feldname des BLOB-Feldes
aDataset:O | DataSet, in das gespeichert werden soll default = nil (Ein DataSet wird erstellt)
aPage:N | Seite; default = 1
aResolution:N | Auflösung; default = p2j300 (CB-Konstante)
aQuality:N | Qualität; default = 75

Rückgabewert

Objekt - Tabelle, in die gespeichert wurde

Beispiel

| oDS |

oDS := Pdf2DataSet('C:\test.pdf', '',, 1),

Pdf2DataSet('C:\test.pdf', '', oDS, 2),

Browse(, oDS),


Pdf2Jpeg()

Pdf2Jpeg() – PDF in JPEG konvertieren

Beschreibung

Die Funktion wandelt die Seite eines PDF-Files in eine Bilddatei im Format JPEG um.

Das Programm GhostScript muss auf dem System installiert sein, um diese Funktion ausführen zu können!

Parameter

aPDFFileName:C | Pfad + Name des PDF-Files
aJPGFileName:C | Name des generierten JPEG-Files; default = Leerstring
aPage:N | Seite; default = 1
aResolution:N | Auflösung; default = p2j300 (CB-Konstante)
aQuality:N | Qualität; default = 75

Rückgabewert

Alphanumerisch - Pfad + Name des generierten JPEG

Beispiel

Pdf2Jpeg('C:\test.pdf', 'C:\test.jpg', 2)


RemoveDir()

RemoveDir() – Verzeichnis löschen

Beschreibung

Die Funktion löscht ein Verzeichnis.

Parameter

aDirName:C

Verzeichnispfad

Rückgabewert

Logisch / Boolean - Verzeichnis konnte gelöscht werden

Beispiel

RemoveDir('C:\Temp\Test')

Siehe auch

CreateDir()


RenameFile()

RenameFile() – Datei umbenennen

Beschreibung

Die Funktion ändert den Namen einer Datei.

Parameter

aOldName:C | Alter Pfad + alter Dateiname
aNewName:C | Neuer Pfad + neuer Dateiname

Rückgabewert

Logisch - Datei konnte umbenannt werden

Beispiel

RenameFile('C:\Temp\Test.txt', 'C:\Temp\Ordner1\Test2.txt')


ResizePicture()

ResizePicture() – Skalierung einer Grafik

Beschreibung

Wandelt eine Ausgangsgrafik (Datei, Blob-Feld) in eine Zielgrafik (Datei, Blob-Feld) im PNG-Format um. Der aSize-Parameter gibt dabei den maximalen Wert für Höhe oder Breite an. DIe Grafik wird vergrößert oder verkleinert.

Die Funktion ist gedacht für die "Größen-Normalisierung" von Bilddaten, um diese z.B. als Thumbnails in einem Browser anzuzeigen. Ein weiterer Anwendungsfall ist das Drucken von standardisierten Bildgrößen in Belegen.

Hinweis

Zielformat ist immer PNG.

Parameter

aObjectSource:U | Feld-Objekt oder Dateiname der Bild-Quelle
aSize:N | Maximale Höhe oder Breite der Grafik
aObjectTarget:U | Feld-Objekt oder Dateiname des Bild-Ziels

Rückgabewert

Keiner

Beispiel

// Speichern des Inhalts eines Feldes als Vorschau-Bild

// Das Bild ist maximal 100px breit oder 100px breit.

  aField := dbfield("DATA",KDN707),

  Loadfile(aField,aFileName),

  ResizePicture(dbField("DATA"),100,dbField("THUMBNAIL")),


SaveDlg()

SaveDlg() – Dateiauswahlfenster zum Speichern

Beschreibung

Die Funktion öffnet den Standarddialog zur Dateiauswahl.

Parameter

aTitle:C | Titel des Dialogfensters; default = 'Speichern unter'
aFilter:C | Filterausdruck; default = Leerstring
aInitialDir:C | Anfangsverzeichnis; default = Leerstring (Verzeichnis der zuletzt gespeicherten Datei)
aFileName:C | Vorgabe für Pfad + Dateiname; default = Leerstring

Rückgabewert

Objekt - Gespeicherte Datei

Beispiel

| aDlg |

aDlg := SaveDlg('BE-Dateiauswahl', 'BE-Programme|*.DWP|Alle Dateien|*.*',

                MBEDEFAULT, 'File.txt'),

startseq,

   aDlg.Active := true,

   if aDlg.DoSave then

      WriteLn(aDlg.FileName)

   else

      WriteLn('Keine Auswahl getroffen ...')

   endif,

always,

   DestroyObject(aDlg),

stopseq,


SaveFile()

SaveFile() – Objektinhalt speichern

Beschreibung

Die Funktion speichert den Inhalt eines Objekts der Klassen TBlobField, TPicture, TBitmap, TMemoStrings, TStrings, … in einer Datei.

Parameter

aObject:O | Objekt, welches gespeichert werden soll
aFileName:C | Pfad +Dateiname

Rückgabewert

Logisch - Boolean - Speichern erfolgreich

Beispiel

| aForm, aMemo, aBtnS, aBtnC |

function DoOnResize(sender)

  aMemo.height := aForm.height-60,

  aBtnS.top    := aForm.height-50,

  aBtnC.top    := aForm.height-50,

end,

function save()

   | aDlg, cEndung |

   aDlg        := OpenDlg('Datei auswählen...', 'Text Dateien (*.txt)|*.txt|',

                          'Alle Dateien (*.*)|*.*'),

   aDlg.active := true,

   if aDlg.selected then

      if File(aDlg.filename) then

         if JN('Datei schon vorhanden! Überschreiben?') then

            SaveFile(aMemo.lines, aDlg.filename),

         endif,

      else,

         if TokenCount(aDlg.filename,'.') > 1 then

            cEndung := '',

         else,

            cEndung := '.txt',

         endif,

         SaveFile(aMemo.lines, aDlg.filename + cEndung),

      endif,

   endif,

end,

function DoOnClick(sender)

   case sender.name

      of 'save' :: save(),

      of 'exit' :: CloseForm(aForm),

   endcase,

end,

function DoOnClose(sender, canclose)

   if JN('Wirklich beenden?') then

      canclose := true,

   else,

      canclose := false,

   endif,

end,

aForm         := CreateObject('TForm'),

aForm.caption := 'SaveFile()',

aForm.height  := 500,

aForm.width   := 800,

aForm.left    := SCREENWIDTH - aForm.width,

aForm.top     := 200,

aMemo         := CreateObject('TMemo', '', aForm, aForm),

aMemo.align   := altop,

aBtnS         := CreateObject('TButton', 'save', aForm, aForm),

aBtnS.caption := '

aBtnS.height  := 20,

aBtnS.width   := 100,

aBtnS.left    := 10,

aBtnC         := CreateObject('TButton', 'exit', aForm, aForm),

aBtnC.caption := '

aBtnC.height  := 20,

aBtnC.width   := 100,

aBtnC.left    := aBtns.left+115,

AssignEvent(aForm, 'OnResize',     'DoOnResize'),

AssignEvent(aForm, 'OnCloseQuery', 'DoOnClose'),

AssignEvent(aBtnS, 'OnClick',      'DoOnClick'),

AssignEvent(aBtnC, 'OnClick',      'DoOnClick'),

ShowModal(aForm),

// Ergebnis: Eingabefenster mit einem 'Speichern'- und einem 'Beenden'-Button.

//           Der 'Speichern'-Button ruft ein Datenauswahl-Fenster auf,

//           in welchem der Speicherort festgelegt werden kann.

//           Wird eine bereits existierende Datei ausgewählt, wird gefragt,

//           ob diese überschrieben werden soll.


SaveMemTable()

SaveMemTable() – Objektinhalt speichern

Beschreibung

Die Funktion speichert eine MemTable als Text-File ab.

Parameter

cFileName | Pfad der Datei
oMemTable | Memtable Objekt

Rückgabewert

Keiner

Beispiel

| oMem, oDab:DB:='19' |

oMem                   := CreateObject('TMemCalcTable'),

oMem.BorrowFromDataSet := oDab,

oMem.Active            := true,

oMem.LoadFromDataSet   := oDab,

SaveMemTable('C:\Test.txt', oMem),


AddMonth()

AddMonth() – Monat auf Datum addieren

Beschreibung

Die Funktion addiert eine angegebene Anzahl von Monaten auf ein Datum.

Parameter

aDate:D | Beliebiges Datum
aCount:N | Anzahl der Monate

Rückgabewert

Datum - Neues Datum

Beispiel

AddMonth(CToD('28.02.2009'), 10)   // Ergebnis: '28.12.2009'


BoM()

BoM() – Beginn des Monats

Beschreibung

Die Funktion errechnet aus einem Datum den ersten Tag des entsprechenden Monats.

Parameter

aDate:D

Beliebiges Datum

Rückgabewert

Datum - Erster Tag des Monats

Beispiel

BoM(CToD('28.02.2009'))   // Ergebnis: 01.02.2009

Siehe auch

BoQ()

BoY()

EoM()

EoQ()

EoY()


BoQ()

BoQ() – Beginn des Quartals

Beschreibung

Die Funktion errechnet aus einem Datum den ersten Tag des entsprechenden Quartals.

Parameter

aDate:D

Beliebiges Datum

Rückgabewert

Datum - Erster Tag des Quartals

Beispiel

BoQ(CToD('28.02.2009'))   // Ergebnis: 01.01.2009

Siehe auch

BoM()

BoY()

EoM()

EoQ()

EoY()


BoY()

BoY() – Beginn des Jahres

Beschreibung

Die Funktion errechnet aus einem Datum den ersten Tag des entsprechenden Jahres.

Parameter

aDate:D

Beliebiges Datum

Rückgabewert

Datum - Erster Tag des Jahres

Beispiel

BoY(CToD('28.02.2009'))   // Ergebnis: 01.01.2009

Siehe auch

BoM()

BoQ()

EoM()

EoQ()

EoY()


CMonth()

CMonth() – Monatsname

Beschreibung

Die Funktion gibt den im Datum dargestellten Monat als Zeichenfolge aus.

Parameter

aDate:D

Beliebiges Datum

Rückgabewert

Alphanumerisch - Monatsname

Beispiel

CMonth(CToD('28.02.2009'))   // Ergebnis: 'Juni'

Siehe auch

CToD()

Day()

Month()

Year()


ConvertTimeToUTC()

ConvertTimeToUTC() – Umrechnung der lokalen Zeit in UTC-Zeit

Beschreibung

Umrechnung der übergebenen Zeit in die Koordinierte Weltzeit (UTC-Zeit).

Hinweis

TimeZoneIndex ist systemspezifisch! (Eintrag-Reihenfolge kann abweichen)

Parameter

dDateTime:D | Datum/Zeit welches umgerechnet werden soll
nTimeZoneIndex:N | Zeitzone (Default = -1, entspricht aktueller System-Zeitzone)

Rückgabewert

Datum

Beispiel

|aTime|

aTime := EncodeDate(2011, 8, 1) + EncodeTime(1, 30, 0, 0),

                                                                      // Deutschland

writeln( aTime ),                                                     // lokale Zeit: 01.08.2011 01:30:00

ConvertTimeToUTC( EncodeDate(2011, 8, 1) + EncodeTime(1, 30, 0, 0) )  // UTC-Zeit:    31.07.2011 23:30:00 ( -2 Stunden wegen Sommerzeit)

Siehe auch

TimeZoneBias()

ConvertUTCToTime()


ConvertUTCToTime()

ConvertUTCToTime() – Umrechnung der UTC-Zeit in lokale Zeit

Beschreibung

Umrechnung der übergebenen Zeit von der Koordinierte Weltzeit (UTC-Zeit) in die lokale Zeit.

Hinweis

TimeZoneIndex ist systemspezifisch! (Eintrag-Reihenfolge kann abweichen)

Parameter

dDateTime:D | Datum/Zeit welches umgerechnet werden soll
nTimeZoneIndex:N | Zeitzone (Default = -1, entspricht aktueller System-Zeitzone)

Rückgabewert

Datum

Beispiel

|aTime|

aTime := EncodeDate(2011, 8, 1) + EncodeTime(1, 30, 0, 0),

                                                                      // Deutschland

writeln( aTime ),                                                     // UTC-Zeit:    01.08.2011 01:30:00

ConvertUTCToTime( EncodeDate(2011, 8, 1) + EncodeTime(1, 30, 0, 0) )  // lokale Zeit: 01.08.2011 03:30:00 ( +2 Stunden wegen Sommerzeit)

Siehe auch

TimeZoneBias()

ConvertTimeToUTC()


CToD()

CToD() – Zeichenkette in Datum konvertieren

Beschreibung

Die Funktion wandelt eine Zeichenkette im Format 'TT.MM.JJJJ' in ein Datum um.

Parameter

aText:C

Alphanumerischer Wert, der datumsrelevant ist

Rückgabewert

Datum - Datumswert. Falls aText ungültig: '00:00:00'

Beispiel

CToD('28.02.2009')   // Ergebnis: 28.02.2009

Siehe auch

DToC()

SToD()


Date()

Date() – Systemdatum

Beschreibung

Die Funktion gibt das Systemdatum als Datum zurück.

Parameter

keine Parameter erwartet

Rückgabewert

Datum - Systemdatum

Beispiel

Date()   // Ergebnis: 28.02.2009

         // Hinweis:  Als Rückgabewert wird natürlich das

         //           aktuelle Tagesdatum ausgegeben.

Siehe auch

CMonth()

CToD()

Day()

Month()

Year()


DateChk()

DateChk() – Datumsprüfung

Beschreibung

Die Funktion prüft Datumseingaben auf ihre Gültigkeit und gibt im Falle eines Fehlers eine Meldung aus.

Parameter

cTermin:C | Alphanumerische Datumsangabe; Zulässig Formate sind "TT.MM.JJ" oder "KW.WW.JJ"
nLeerErl:L | Gibt an, ob ein leeres Datum erlaubt ist; default=true

Rückgabewert

Logisch / Boolean - Datum gültig

Beispiel

| i, aDate |

i := 1,

repeat

   case i

      of 1 :: aDate := '',                      // Ergebnis: gültig

      of 2 :: aDate := 'KW.10.09',              // Ergebnis: gültig

// Hinweis: KW-Werte älter als 5 Jahre werden als ungültig eingestuft

      of 3 :: aDate := 'KW.10.03',              // Ergebnis: ungültig

      of 4 :: aDate := '28.02.09',              // Ergebnis: gültig

      of 5 :: aDate := 'Samstag, 2009.02.28',   // Ergebnis: ungültig

   endcase,

   if DateChk(aDate) then

      Meld('''' + aDate + '''' + ' ist gültig'),

   else

      Meld('''' + aDate + '''' + ' ist ungültig'),

   endif,

   i++,

until

   i = 6

end,


Day()

Day() – Tag aus Datum

Beschreibung

Die Funktion gibt den numerischen Wert des im Datum enthaltenen Tages zurück.

Parameter

aDate:D

Beliebiges Datum

Rückgabewert

Numerisch - Tag des Datums

Beispiel

Day(CToD('13.06.2004'))   // Ergebnis: '13'

Siehe auch

CMonth()

CToD()

Month()

Year()


Day_Diff()

Day_Diff() – Tage zwischen zwei Datumsangaben

Beschreibung

Die Funktion gibt die Anzahl der zwischen zwei Datumsangaben liegenden Tage zurück.

Parameter

aDate1:U | Von Datum
aDate2:U | Bis Datum

Rückgabewert

Numerisch - Tagesdifferenz der Daten

Beispiel

Day_Diff(CToD('28.02.2009'), CToD('09.03.2009'))   // Ergebnis: '9'

Day_Diff(CToD('28.02.2009'), CToD('01.01.2009'))   // Ergebnis: '-58'


DecodeDate()

DecodeDate() – Datum decodieren

Beschreibung

Die Funktion decodiert ein beliebiges Datum in die Bestandteile Jahr (aYear), Monat (aMonth) und Tag (aDay).

Parameter

aDate:D | Datumswert
aYear:R | Ergebnis-Parameter für das Jahr des Datums
aMonth:R | Ergebnis-Parameter für den Monat des Datums
aDay:R | Ergebnis-Parameter für den Tag des Datums

Rückgabewert

Ergebnis-Parameter - Die Parameter aYear, aMonth und aDay sind referenzierte Ergebnis-Parameter!

Nach Funktionsaufruf enthalten diese Parameter folgende Werte:

aYear - Jahr des Datums

aMonth - Monat des Datums

aDay - Tag des Datums

Beispiel

| aYear, aMonth, aDay |

DecodeDate(CToD('28.02.2008'), aYear, aMonth, aDay),

WriteLn(aYear),    // Ergebnis: '2008'

WriteLn(aMonth),   // Ergebnis: '2'

WriteLn(aDay),     // Ergebnis: '28'

Siehe auch

DecodeTime()

EncodeDate()

EncodeTime()


DecodeTime()

DecodeTime() – Uhrzeit decodieren

Beschreibung

Die Funktion decodiert eine beliebige Uhrzeit in die Bestandteile Stunden (aHour), Minuten (aMin), Sekunden (aSec) und Millisekunden (aMSec).

Parameter

aDate:D | Datums-/Zeitwert
aHour:R | Ergebnis-Parameter für die Stunden des Datums
aMin:R | Ergebnis-Parameter für die Minuten des Datums
aSec:R | Ergebnis-Parameter für die Sekunden des Datums
aMSec:R | Ergebnis-Parameter für die Millisekunden des Datums

Rückgabewert

Ergebnis-Parameter - Die Parameter aHour, aMin, aSec und aMSec sind Ergebnis-Parameter!

Nach Funktionsaufruf enthalten diese Parameter folgende Werte:

aHour - Stunden des Datums

aMin - Minuten des Datums

aSec - Sekunden des Datums

aMSec - Millisekunden des Datums

Beispiel

| aHour, aMinute, aSecond, aMilliSec |

DecodeTime(Now(), aHour, aMinute, aSecond, aMilliSec),

WriteLn(aHour),       // Ergebnis: '9'

WriteLn(aMinute),     // Ergebnis: '32'

WriteLn(aSecond),     // Ergebnis: '35'

WriteLn(aMilliSec),   // Ergebnis: '750'

// Hinweis: Es wird natürlich die aktuelle Uhrzeit zurückgegeben.

Siehe auch

DecodeDate()

EncodeDate()

EncodeTime()


DoW()

DoW() – Wochentag als Zahl

Beschreibung

Die Funktion gibt für ein Datum den Wochentag als Zahl zurück.

Parameter

aDate:D

Datumswert

Rückgabewert

Numerisch - ID des Wochentages

1 - Sonntag

2 - Montag

3 - Dienstag

4 - Mittwoch

5 - Donnerstag

6 - Freitag

7 - Samstag

Beispiel

DoW(CToD('28.02.2009'))   // Ergebnis: '7'


DToC()

DToC() – Datum in Zeichenkette

Beschreibung

Die Funktion wandelt ein Datum in einen alphanumerischen Wert um.

Parameter

aDate:D

Beliebiges Datum

Rückgabewert

Alphanumerisch - Datumsstring

Beispiel

| aDate |

aDate := CToD('28.02.2009'),

DToC(aDate)   // Ergebnis: '28.02.2009'

Siehe auch

CToD()

DToS()

SToD()


DToS()

DToS() – Datum in Zeichenkette2

Beschreibung

Die Funktion wandelt ein Datum vom Format "TT.MM.JJ" in einen alphanumerischen Wert vom Format "JJJJMMTT" um.

Parameter

aDate:D

Beliebiges Datum

Rückgabewert

Alphanumerisch - Datumsstring

Beispiel

DToS(EncodeDate(2009, 02 , 28))   // Ergebnis: '20090228'

Siehe auch

CToD()

DToC()

SToD()


EncodeDate()

EncodeDate() – Datum erzeugen

Beschreibung

Die Funktion erzeugt aus den Parametern ein Datum vom Typ Date.

Parameter

aYear:N | Jahreszahl
aMonth:N | Monat
aDay:N | Tag

Rückgabewert

Datum - Datumswert

Beispiel

EncodeDate(2009, 02 , 28)   // Ergebnis: 28.02.2009

Siehe auch

DecodeDate()

DecodeTime()

EncodeTime()


EncodeTime()

EncodeTime() – Zeitwert erzeugen

Beschreibung

Die Funktion erzeugt aus den Parametern eine Uhrzeit vom Typ Date.

Parameter

aHour:N | Stunden
aMin:N | Minuten
aSec:N | Sekunden
aMSec:N | Milisekunden

Rückgabewert

Datum - Zeitwert

Beispiel

EncodeTime(9, 20, 25, 554)   // Ergebnis: 09:20:26

Siehe auch

EncodeDate()


EoM()

EoM() – Ende des Monats

Beschreibung

Die Funktion errechnet aus einem Datum den letzten Tag des entsprechenden Monats.

Parameter

aDate:D

Beliebiges Datum

Rückgabewert

Datum - Ende des Monats

Beispiel

EoM(CToD('01.02.2009'))   // Ergebnis: 28.02.2009

Siehe auch

BoM()

BoQ()

BoY()

EoQ()

EoY()


EoQ()

EoQ() – Ende des Quartals

Beschreibung

Die Funktion errechnet aus einem Datum den letzten Tag des entsprechenden Quartals.

Parameter

aDate:D

Beliebiges Datum

Rückgabewert

Datum - Ende des Quartals

Beispiel

EoQ(CToD('28.02.2009'))   // Ergebnis: 31.03.2009

Siehe auch

BoM()

BoQ()

BoY()

EoM()

EoQ()

www.dontenwill.de | www.business-express.de


EoY()

EoY() – Ende des Jahres

Beschreibung

Die Funktion gibt das Jahres-End-Datum für ein übergebenes Datum zurück.

Parameter

aDate:D

Beliebiges Datum

Rückgabewert

Datum - Ende des Jahres

Beispiel

EoY(CToD('28.02.2009'))   // Ergebnis: 31.03.2009

Siehe auch

BoM()

BoQ()

BoY()

EoM()

EoQ()


FridayOfWeek()

FridayOfWeek() – Freitag einer KW

Beschreibung

Die Funktion gibt das Datum des Freitags einer Kalenderwoche zurück.

Parameter

aWeek:C

String im Format 'KW.JJ'

Rückgabewert

Datum - Freitag der Woche

Beispiel

FridayOfWeek('09.09')   // Ergebnis: 27.02.2009

Siehe auch

FrKW()

KW()


FrKW()

FrKW() – Freitag einer KW

Beschreibung

Die Funktion gibt das Datum des Freitags einer Kalenderwoche zurück.

Parameter

cTermin:C

String im Format 'KW.JJ'

Rückgabewert

Datum - Freitag der Woche

Beispiel

FrKW('09.09')  // Ergebnis: 27.02.2009

Siehe auch

FridayOfWeek()

KW()


GetAdsServerTime()

GetAdsServerTime() – Sever Datum ausgeben

Beschreibung

Die Funktion gibt das aktuelle Datum und Zeit des ADS-Servers zurück.

Parameter

keine Parameter erwartet

Rückgabewert

Datum - Datum Ads-Server

Beispiel

GetAdsServerTime()   // Ergebnis: 28.02.2009 10:05:15

                     // Hinweis:  Als Rückgabewert wird natürlich das aktuelles Tagesdatum

                     //           und die aktuelle Uhrzeit ausgegeben.


IsLeapYear()

IsLeapYear() – Schaltjahr

Beschreibung

Die Funktion gibt zurück, ob es sich bei einem bestimmten Jahr um ein Schaltjahr handelt.

Parameter

nJahr:D

Beliebiges Jahr

Rückgabewert

Logisch / Boolean - Ist Schaltjahr

Beispiel

IsLeapYear(2008)   // Ergebnis: .T.

IsLeapYear(2009)   // Ergebnis: .F.


KW()

KW() – Kalenderwoche

Beschreibung

Die Funktion berechnet die Kalenderwoche aus einem Datum.

Parameter

aDate:D

Beliebiges Datum

Rückgabewert

Alphanumerisch - Kalendewoche im Format 'KW.JJ'

Beispiel

KW(CToD('28.02.2009'))   // Ergebnis: 09.09

Siehe auch

FrKW()


LongDayNames()

LongDayNames() – Wochentagnamen

Beschreibung

Die Funktion gibt den Namen des Wochentags abhängig von dem numerischen Wert dieses Tages zurück.

Parameter

aDayIndex:N

Index des Wochentags

Rückgabewert

Alphanumerisch - Wochentagsnamen

Sonntag (1)

Montag (2)

Dienstag (3)

Mittwoch (4)

Donnerstag (5)

Freitag (6)

Samstag (7)

Beispiel

LongDayNames(DoW(CToD('28.02.2009')))   // Ergebnis: 'Samstag'

Siehe auch

ShortDayNames()


Month()

Month() – Monat aus Datum

Beschreibung

Die Funktion gibt den numerischen Wert des im Datum enthaltenen Monats zurück.

Parameter

aDate:D

Beliebiges Datum

Rückgabewert

Numerisch - Monat

Beispiel

Month(CToD('28.02.2009'))   // Ergebnis: '2'

Siehe auch

CMonth()

CToD()

Day()

DoW()

Year()


Now()

Now() – aktuelles Datum und Zeit

Beschreibung

Die Funktion gibt das aktuelle Systemdatum und die aktuelle Systemzeit zurück.

Parameter

keine Parameter erwartet

Rückgabewert

Datum - aktuelle Zeit

Beispiel

Now()   // Ergebnis: 28.02.2009 10:20:09

        // Hinweis:  Als Rückgabewert wird natürlich das aktuelle Tagesdatum

        //           und die aktuelle Uhrzeit ausgegeben.


Quarter()

Quarter() – Quartal aus Datum

Beschreibung

Die Funktion liefert das Quartal des angegebenen Datums.

Parameter

aDate:D

Datum vom Typ Date

Rückgabewert

Numerisch - Quartal

Beispiel

Quarter(CToD('28.02.2009'))   // Ergebnis: '1'


RoundMinToHour()

RoundMinToHour() – Minuten in Stunden

Beschreibung

Die Funktion rundet anhand von nDiv:N die Anzahl der Minuten in Stunden um.

Parameter

nMinutes:N | Minutenanzahl
nDiv:N | Rundungsparameter: Fließkommazahl zwischen -1 und 1

Rückgabewert

Numerisch - Stundenanzahl

Beispiel

RoundMinToHour(110, 1)   // Ergebnis: '2'


ShortDayNames()

ShortDayNames() – Wochentagsnamen

Beschreibung

Die Funktion gibt den Kurznamen des Wochentags abhängig von dem numerischen Wert dieses Tages zurück.

Parameter

aDayIndex:N

Index des Wochentags

Rückgabewert

Alphanumerisch - Wochentagsnamen

So (1)

Mo (2)

Di (3)

Mi (4)

Do (5)

Fr (6)

Sa (7)

Beispiel

ShortDayNames(DoW(CToD('28.02.2009')))   // Ergebnis: 'Sa'

Siehe auch

LongDayNames()


SToD()

SToD() – String zu Datum

Beschreibung

Die Funktion wandelt eine alphanumerische Datumsangabe in ein Datum um.

Parameter

aDateStr:C

Datumsangabe im Format 'JJJJMMDD'

Rückgabewert

Datum - Datumswert

Beispiel

SToD('20090228')   // Ergebnis: 28.02.2009

Siehe auch

CToD()

DToC()

DToS()


TermIndexToStr()

TermIndexToStr() – TerminIndex zu String

Beschreibung

Die Funktion wandelt einen TerminIndex in eine alphanumerische Datumsangabe um.

Parameter

cTermIndex:C

TerminIndex

Format: 'JJJJMMDD'

+ 'W' (W für Ausgabe in KW-Format) + 'T' (T für Ausgabe in Tages-Format)

Rückgabewert

Alphanumerisch - Datumsstring

Beispiel

TermIndexToStr('20090228W')   // Ergebnis: 'KW.09.09'

TermIndexToStr('20090228T')   // Ergebnis: '28.02.09'


Time()

Time() – Systemzeit als String

Beschreibung

Die Funktion gibt die aktuelle Systemzeit als String zurück.

Parameter

keine Parameter erwartet

Rückgabewert

Alphanumerisch - Systemzeit

Beispiel

Time()   // Ergebnis: '10:39:30'

         // Hinweis:  Als Rückgabewert wird natürlich

         //           die aktuelle Systemzeit ausgegeben.

Siehe auch

Date()

TimeEx()


TimeEx()

TimeEx() – Systemzeit als Datums-/Zeitwert

Beschreibung

Die Funktion gibt die aktuelle Systemzeit als Datums-/Zeitwert zurück.

Parameter

keine Parameter erwartet

Rückgabewert

Datum - Zeitwert

Beispiel

TimeEx()   // Ergebnis: 10:39:30

           // Hinweis:  Als Rückgabewert wird natürlich

           //           die aktuelle Systemzeit ausgegeben.

Siehe auch

Date()

Time()


TimeValid()

TimeValid() – Zeitprüfung

Beschreibung

Die Funktion prüft, ob der angegebene Wert eine gültige Zeitangabe ist. Gültiges Format ist 'HH:MM:SS'

Parameter

cZeit:C

Zeitangabe

Rückgabewert

Logisch / Boolean - Zeit ist gültig

Beispiel

TimeValid('22:30:05')   // Ergebnis: .T.

TimeValid('23:30:05')   // Ergebnis: .T.

TimeValid('24:30:05')   // Ergebnis: .F.


TimeZoneBias()

TimeZoneBias() – Zeitverschiebung zur UTC-Zeit in Minuten

Beschreibung

Funktion gibt die Zeitverschiebung in Minuten von der übergebenen Zeitzone zur

Koordinierte Weltzeit (UTC-Zeit) an.

Hinweis

TimeZoneIndex ist systemspezifisch! (Eintrag-Reihenfolge kann abweichen)

Parameter

dDateTime:D | Zeit für welche die Zeitverschiebung berechnet werden soll; Ist nicht relevant wenn lIgnoreDaylightSavingTime = True
nTimeZoneIndex:N | Index der Zeitzone (Default = -1, entspricht der aktuellen System-Zeitzone)
lIgnoreDaylightSavingTime:L | Sommerzeit berücksichtigen (Default = False)

Rückgabewert

Numerisch

Beispiel

TimeZoneBias( CToD('01.08.2011'), -1, False )  // -120 für Deutschland

TimeZoneBias( CToD('01.08.2011'), -1, True )   // -60 für Deutschland

Siehe auch

ConvertTimeToUTC()

ConvertUTCToTime()


Today()

Today() – Systemdatum

Beschreibung

Die Funktion gibt das Systemdatum als Datum zurück. Entspricht der Funktion Date().

Parameter

keine Parameter erwartet

Rückgabewert

Datum- Systemdatum

Beispiel

Today()   // Ergebnis: 27.02.2009

          // Hinweis:  Als Rückgabewert wird natürlich

          //           das aktuelle Tagesdatum ausgegeben.

Siehe auch

CMonth()

CToD()

Date()

Day()

Month()

Year()


TrmChk()

TrmChk() – Termin Check

Beschreibung

Die Funktion prüft, ob uTermin:U zwischen uTerminVon:U und uTerminBis:U liegt.

Parameter

uTermin:U | Zu prüfender Termin
uTerminVon:U | Datum Untergrenze
uTerminBis:U | Datum Obergrenze
lMeld:L | Meldung ausgeben, wenn Prüfung negativ ausfällt; default = false

Rückgabewert

Logisch / Boolean - Termin liegt im Zeitraum

Beispiel

| i, aResult |

for i := 0 to 1 do

   case i

      of 0 :: aResult := TrmChk('03.02.2009', '05.02.2009', '07.02.2009'),

      of 1 :: aResult := TrmChk(Date(), Date()-1, Date()+1),

   endcase,

   if aResult = true then

      Meld('Termin '+ Str(i) + ' liegt im gesuchten Zeitraum.'),

   else

      Meld('Termin '+ Str(i) + ' liegt nicht im gesuchten Zeitraum.'),

   endif,

next,

// Ergebnis: 'Termin 0 liegt nicht im gesuchten Zeitraum.'

//           'Termin 1 liegt im gesuchten Zeitraum.'


WToD()

WToD() – Woche zu Datum

Beschreibung

Die Funktion gibt den letzten Tag der angegebenen Kalenderwoche zurück.

Parameter

aWeek:C

Woche im Format <'KW'.WW.JJ>

Rückgabewert

Datum - Letzter Tag der Woche

Beispiel

WToD('KW.09.09')   // Ergebnis: 27.02.2009


Year()

Year() – Jahr aus Datum

Beschreibung

Die Funktion gibt den numerischen Wert des im Datum enthaltenen Jahres an.

Parameter

aDate:D

Beliebiges Datum

Rückgabewert

Numerisch - Jahreszahl

Beispiel

Year(CToD('28.02.2009'))   // Ergebnis: '2009'

Siehe auch

CMonth()

CToD()

Day()

Month()


Kommunikation

Siehe auch:

AttachmentAdd()

AttachmentDelete()

CallStdWebService()

DBWaitLocked()

DosDevice()

FTPDelete()

FTPDir()

FTPDownload()

FTPRename()

FTPUpload()

InitCom()

MailMemo()

MailObject()

MailSend()

ReadCom()

WriteCom()


AttachmentAdd()

AttachmentAdd() – Anhang einem Email-Objekt hinzufügen

Beschreibung

Die Funktion fügt einen Anhang an ein Email-Objekt an.

Parameter

oBatchMail:O | TBatchMail-Objekt
cFileName:C | Dateiname
lAddToDocument:O | True - Die Datei wird auch dem Beleg hinzugefügt; default = False

Rückgabewert

-1 falls die Datei nicht hinzugefügt werden konnte ansonsten die Index-ID des hinzugefügten Anhangs

Beispiel

// Event vor Email-Versand

| nEvtNo:P1, aInfo:P2, aText:P3, aNote:P4, oBatchMail:P5 |

AttachmentAdd(oBatchMail, 'c:\temp\anhang1.txt'),

AttachmentAdd(oBatchMail, 'c:\temp\anhang2.jpg', true),


AttachmentDelete()

AttachmentDelete() – Entfernt einen Anhang aus einem Email-Objekt

Beschreibung

Die Funktion entfernt einen Anhang eines Email-Objekts.

Hinweis

Nachdem ein Anhang entfernt wurde, rücken automatisch alle folgenden Anhänge eine Position nach vorne, d.h. die Attachment-ID wird um 1 reduziert.

Parameter

oBatchMail:O | TBatchMail-Objekt
nAttachmentID:N | Attachment-ID

Rückgabewert

True falls der Anhang gelöscht wurde, ansonsten False

Beispiel

// Event vor Email-Versand

| nEvtNo:P1, aInfo:P2, aText:P3, aNote:P4, oBatchMail:P5 |

// Alle Anhänge entfernen

for i := 1 to ALen(oBatchMail.AttachmentList) do

   AttachmentDelete(oBatchMail, 1)

next,


CallStdWebService()

CallStdWebService() – Webservice ausführen

Beschreibung

Mit dieser Funktionen kann ein Webservice ausgeführt werden.

Hinweis

Einschränkung:

Die Webservice Funktionen muss "ExecuteServiceStr" heißen und über die Parameter cServiceID:C und cParam:C verfügen.

Parameter

cServiceURL:C | Adresse des Webservices (steht im WSDL-Dokument des Webservices)
cNamespace:C | Namespace des Webservices (steht im WSDL-Dokument des Webservices); (wenn nicht angegeben kann u.U. der Webservice nicht ausgeführt werden)
cServiceID:C | Individuelle Service-ID
cParam:C | Sonstiger Parameter

Rückgabewert

Alphanumerisch - Ergebnis des aufgerufenen Webservices

Beispiel

//****************************************************************

// 1. CB-Programm mit Event "bei WebService-Anforderung" erstellen

| nEvtNo:P1, cServiceID:P2, uParam:P3, uRes |

if cServiceID = '1' then

   uRes := 'Ihre Eingabe lautet: ' + uParam,

else

   uRes := 'Service-ID <' + cServiceID + '> ist nicht definiert!',

endif,

uRes

//****************************************************************

// 2. BE als "Webservice Server" starten (mit Parameter /webservice)

//****************************************************************

// 3. "eigenen" Webservice aufrufen

CallStdWebService('http://localhost:2446/soap/', 'urn:Dontenwill.de/IBeCBService', '1', 'Hallo BE!')

Siehe auch

Event "bei WebService-Anforderung"


DBWaitLocked()

DBWaitLocked() – Datensatzsperre

Beschreibung

Die Funktion dient dem Sperren von Datensätzen mit TimeOut. Der User muss über die entsprechenden Rechte auf der Tabelle verfügen.

Parameter

oTable:O | Tabellenobjekt; default = nil
nTimeOutSec:N | Timeout in Sekunden; default = 0 (wartet unbeschränkt)
cLockText:C | Infotext, der angezeigt werden soll; default = Leerstring
lAbortLocked:L | Zeitüberschreitung erzeugt ein Abort(); default = true
lAdsLockOnly:L | Lock über Funktion AdsLockRecord(); default = false

Rückgabewert

Logisch / Boolean - Sperren erfolgreich

Beispiel

| oDab010_A:DB := '2,1', oDab010_B:DB := '2,1' |

if DBEdit(oDab010_A) then

   if not DBWaitLocked(oDab010_B, 20, 'Mein Text', false) then

      Meld('Satz konnte nicht gesperrt werden ...'),

   endif,

endif,


DosDevice()

DosDevice() – Dos Device Information

Beschreibung

Die Funktion ermittelt den Namen eines Dos Devices.

Parameter

aDeviceName:C | Device-Name
aBufSize:N | Maximale Länge des Rückgabewertes; default = 1024

Rückgabewert

Alphanumerisch - Dos Device

Beispiel

DosDevice('C:', 2048)


FTPDelete()

FTPDelete() – Datei über FTP Löschen

Beschreibung

Die Funktion löscht eine oder mehrere Dateien auf einem FTP-Server. Die Funktion arbeitet Case Sensitive (trifft auch auf die Endungen der Dateien zu).

Parameter

aCaption:C | Titel
aRemoteHost:C | IP oder Domain des Hosts
aRemotePort:N | Port des Hosts
aUserName:C | User-Name
aPassword:C | Password
aPassiveMode:L | Passiver Übertragungsmodus
aFileList:U | Liste der Dateien
aHostPath:C | RemotePath; default = Leerstring
aLogFileName:C | Logfile schreiben; default = Leerstring
aIncludeHostDir:L | Directorylist in TraceFile; default = false

Rückgabewert

Numerisch

- 0 für korrekte Ausführung, ansonsten Fehler-Code

- 1 für Verbindungsfehler

- 2 für Fehler beim Verzeichniswechsel

- 3 u.a Datei nicht gefunden

- 5 für Vorgang abgebrochen

Achtung: FTP-Fehler können auch eine Exception auslösen!

Beispiel

| aResult, i, j, aHostFiles, aHostPath, aSourcePath,

  aDestPath, aDestFile, aFileExt, aLogFile, aGetFiles, aLogTxt |

function ErrChk(aErrNo)

   if aErrNo <> 0 then

      ShowMessage('Error ' + Str(aErrNo)),

      Abort(),

   endif,

end,

aLogFile    := 'C:\FTPTransaktion\MyFtpLog.txt',

aDestPath   := 'C:\FTPTransaktion\Download\',

aSourcePath := 'C:\FTPTransaktion\Upload\',

aHostPath   := 'Server\transfer',

if File(aLogFile) then

   DeleteFile(aLogFile)

endif,

startseq,

   WriteLn('Beispiel: Datei auf dem FTPServer löschen ...'),

   ErrChk(aResult := FTPDelete('Löschen auf dem Server',            // Überschrift

                               '123.123.123.123',                   // RemoteHost

                               21,                                  // RemotePort

                               'user',                              // UserName

                               'pass',                              // Password

                               .t.,                                 // PassivMode

                               'test1.txt',                         // aFileArray

                               aHostPath,                           // HostPath

                               aLogFile)),                          // LogFileName

onerror,

   aResult := -1,

stopseq,

if !Empty(aResult) and LoadArray(aLogTxt, aLogFile) then

   WriteLn(aLogTxt)

endif,

aResult


FTPDir()

FTPDir() – Verzeichnis auf FTP-Server

Beschreibung

Die Funktion liefert in aResultDir das Verzeichnis eines FTP-Servers (s. Beispiel).

Parameter

aCaption:C | Titel
aRemoteHost:C | IP oder Domain des Hosts
aRemotePort:N | Port des Hosts
aUserName:C | User-Name
aPassword:C | Password
aPassiveMode:L | Passiver Übertragungsmodus
aResultDir:R | Ergebnis-Parameter, der nach Ausführen der Funktion das Verzeichnis enthält
aHostPath:C | RemotePath; default = Leerstring
aLogFileName:C | Logfile schreiben; default = Leerstring
aIncludeHostDir:L | Directorylist in TraceFile; default = false

Rückgabewert

Numerisch

- 0 für korrekte Ausführung, ansonsten Fehler-Code

- 1 für Verbindungsfehler

- 2 für Fehler beim Verzeichniswechsel

- 3 u.a Datei nicht gefunden

- 5 für Vorgang abgebrochen

Achtung: FTP-Fehler können auch eine Exception auslösen!

Beispiel

| aResult, i, j, aHostFiles, aHostPath, aSourcePath,

  aDestPath, aDestFile, aFileExt, aLogFile, aGetFiles, aLogTxt |

function ErrChk(aErrNo)

   if aErrNo <> 0 then

      ShowMessage('Error ' + Str(aErrNo)),

      Abort(),

   endif,

end,

aLogFile    := 'C:\FTPTransaktion\MyFtpLog.txt',

aDestPath   := 'C:\FTPTransaktion\Download\',

aSourcePath := 'C:\FTPTransaktion\Upload\',

aHostPath   := 'Server\transfer',

if File(aLogFile) then

   DeleteFile(aLogFile),

endif,

startseq,

  WriteLn('Beispiel: Verzeichnis des FTPServers holen ...'),

  ErrChk(aResult := FTPDir('Hole Verzeichnis vom FTP-Server',   // Überschrift

                           '123.123.123.123',                   // RemoteHost

                           21,                                  // RemotePort

                           'user',                              // UserName

                           'pass',                              // Password

                           .t.,                                 // PassivMode

                           aHostFiles,                          // ResultDir

                           aHostPath,                           // HostPath

                           aLogFile)),                          // LogFileName

onerror,

   aResult := -1,

stopseq,

if !Empty(aResult) and LoadArray(aLogTxt, aLogFile) then

   WriteLn(aLogTxt),

endif,

aResult


FTPDownload()

FTPDownload() – Downloaden eines Files von einem FTP-Server

Beschreibung

Die Funktion lädt eine oder mehrere Dateien von einem FTP-Server herunter.

Die Funktion arbeitet Case Sensitive (trifft auch auf die Endungen der Dateien zu), außerdem wird die Datei auch im Fehlerfall lokal erstellt (0KB).

Parameter

aCaption:C | Titel
aRemoteHost:C | IP oder Domain des Hosts
aRemotePort:N | Port des Hosts
aUserName:C | User-Name
aPassword:C | Password
aPassiveMode:L | Passiver Übertragungsmodus
aFileList:U | Liste der Dateien
aHostPath:C | RemotePath; default = Leerstring
aLogFileName:C | Logfile schreiben; default = Leerstring
aIncludeHostDir:L | Directorylist in TraceFile; default = false

Rückgabewert

Numerisch

- 0 für korrekte Ausführung, ansonsten Fehler-Code

- 1 für Verbindungsfehler

- 2 für Fehler beim Verzeichniswechsel

- 3 u.a Datei nicht gefunden

- 5 für Vorgang abgebrochen

Achtung: FTP-Fehler können auch eine Exception auslösen!

Beispiel

| aResult, i, j, aHostFiles, aHostPath, aSourcePath,

  aDestPath, aDestFile, aFileExt, aLogFile, aGetFiles, aLogTxt |

function ErrChk(aErrNo)

   if aErrNo <> 0 then

      ShowMessage('Error ' + Str(aErrNo)),

      Abort(),

   endif,

end,

aLogFile    := 'C:\FTPTransaktion\MyFtpLog.txt',

aDestPath   := 'C:\FTPTransaktion\Download\',

aSourcePath := 'C:\FTPTransaktion\Upload\',

aHostPath   := 'Server\transfer',

if File(aLogFile) then

   DeleteFile(aLogFile),

endif,

startseq,

  WriteLn(aHostFiles),

  WriteLn('Beispiel: Download vom FTPServer ...'),

  aGetFiles := {},

  for i:= 1 to Len(aHostFiles) do

     // Aufbau eines Elements von aHostFiles: [1] Dateiname

     //                                       [2] Grösse der Datei

     //                                       [3] Datum

     // oder falls SubDir:                    '<' + Dateiname '>'

     if (ValType(aHostFiles[i]) = 'A') and  // kein SubDir

        (aHostFiles[i, 2] < 500000) then    // Im Test nur kleine Dateien holen

        ReDim(aGetFiles, Len(aGetFiles) + 1),

        aDestFile:= aDestPath + aHostFiles[i, 1],

        if File(aDestFile) then

           j := 1,

           repeat,

              aFileExt  := ExtractFileExt(aHostFiles[i, 1]),

              aDestFile := aDestPath + Left(aHostFiles[i, 1],

                           Len(aHostFiles[i, 1]) - Len(aFileExt)) +

                           Str(j) + aFileExt,

                           j += 1,

           until !File(aDestFile),

           end,

           aGetFiles[Len(aGetFiles)] := {aDestFile, aHostFiles[i, 1]}

        else,

           aGetFiles[Len(aGetFiles)] := aDestFile

        endif,

     endif,

  next,

  WriteLn(aGetFiles),

  ErrChk(aResult := FTPDownload('Hole Dateien vom FTP-Server',     // Überschrift

                                '123.123.123.123',                 // RemoteHost

                                21,                                // RemotePort

                                'user',                            // UserName

                                'pass',                            // Password

                                .t.,                               // PassivMode

                                aGetFiles,                         // ResultDir

                                aHostPath,                         // HostPath

                                aLogFile)),                        // LogFileName

onerror,

   aResult := -1,

stopseq,

if !Empty(aResult) and LoadArray(aLogTxt, aLogFile) then

   WriteLn(aLogTxt)

endif,

aResult


FTPRename()

FTPRename() – FTP Datei umbenennen

Beschreibung

Die Funktion ermöglicht das Umbenennen von Dateien auf einem FTP-Server.

Parameter

aCaption:C - Titel

aRemoteHost:C - IP oder Domain des Hosts

aRemotePort:N - Port des Hosts

aUserName:C - User-Name

aPassword:C - Password

aPassiveMode:L - Passiver Übertragungsmodus

aFileList:U - Array mit altem und neuem Dateinamen

aHostPath:C - RemotePath; default = Leerstring

aLogFileName:C - Logfile schreiben; default = Leerstring

aIncludeHostDir:L - Directorylist in TraceFile; default = false

Rückgabewert

Numerisch

- 0 für korrekte Ausführung, ansonsten Fehler-Code

- 1 für Verbindungsfehler

- 2 für Fehler beim Verzeichniswechsel

- 3 u.a Datei nicht gefunden

- 5 für Vorgang abgebrochen

Achtung: FTP-Fehler können auch eine Exception auslösen!

Beispiel

| aResult, i, j, aHostFiles, aHostPath, aSourcePath,

  aDestPath, aDestFile, aFileExt, aLogFile, aGetFiles, aLogTxt |

function ErrChk(aErrNo)

   if aErrNo <> 0 then

      ShowMessage('Error ' + Str(aErrNo)),

      Abort(),

   endif,

end,

aLogFile    := 'C:\FTPTransaktion\MyFtpLog.txt',

aDestPath   := 'C:\FTPTransaktion\Download\',

aSourcePath := 'C:\FTPTransaktion\Upload\',

aHostPath   := 'Server\transfer',

if File(aLogFile) then

   DeleteFile(aLogFile),

endif,

startseq,

   WriteLn('Beispiel: Datei auf dem FTPServer umbenennen ...'),

   ErrChk(aResult := FTPRename('Datei umbenennen',                  // Überschrift

                               '127.0.0.1',                         // RemoteHost

                               21,                                  // RemotePort

                               'User1',                             // UserName

                               'Testpasswort',                      // Password

                               true,                                // PassivMode

                               {'test.txt', 'test1.txt'},           // aFileArray

                               aHostPath,                           // HostPath

                               aLogFile)),                          // LogFileName

onerror,

   aResult := -1,

stopseq,

if !Empty(aResult) and LoadArray(aLogTxt, aLogFile) then

   WriteLn(aLogTxt)

endif,

aResult


FTPUpload()

FTPUpload() – Hochladen eines Files auf einen FTP-Server

Beschreibung

Die Funktion lädt eine oder mehrere Dateien auf einen FTP-Server.

Parameter

aCaption:C | Titel
aRemoteHost:C | IP oder Domain des Hosts
aRemotePort:N | Port des Hosts
aUserName:C | User-Name
aPassword:C | Password
aPassiveMode:L | Passiver Übertragungsmodus
aFileList:U | Liste der Dateien
aHostPath:C | RemotePath; default = Leerstring
aLogFileName:C | Logfile schreiben; default = Leerstring
aIncludeHostDir:L | Directorylist in TraceFile; default = false

Rückgabewert

Numerisch

- 0 für korrekte Ausführung, ansonsten Fehler-Code

- 1 für Verbindungsfehler

- 2 für Fehler beim Verzeichniswechsel

- 3 u.a Datei nicht gefunden

- 5 für Vorgang abgebrochen

Achtung: FTP-Fehler können auch eine Exception auslösen!

Beispiel

| aResult, i, j, aHostFiles, aHostPath, aSourcePath,

  aDestPath, aDestFile, aFileExt, aLogFile, aGetFiles, aLogTxt |

function ErrChk(aErrNo)

   if aErrNo <> 0 then

      ShowMessage('Error ' + Str(aErrNo)),

      Abort(),

   endif,

end,

aLogFile    := 'C:\FTPTransaktion\MyFtpLog.txt',

aDestPath   := 'C:\FTPTransaktion\Download\',

aSourcePath := 'C:\FTPTransaktion\Upload\',

aHostPath   := 'Server\transfer',

if File(aLogFile) then

   DeleteFile(aLogFile),

endif,

startseq,

   WriteLn('Beispiel: Datei zum FTPServer kopieren ...'),

   ErrChk(aResult := FTPUpload('Datei übertragen',                  // Überschrift

                               '123.123.123.123',                   // RemoteHost

                               21,                                  // RemotePort

                               'user',                              // UserName

                               'pass',                              // Password

                               .t.,                                 // PassivMode

                               aSourcePath + 'test.txt',            // aFileArray

                               aHostPath,                           // HostPath

                               aLogFile)),                          // LogFileName

onerror,

   aResult := -1,

stopseq,

if !Empty(aResult) and LoadArray(aLogTxt, aLogFile) then

   WriteLn(aLogTxt),

endif,

aResult


InitCom()

InitCom() – COM-Port initialisieren

Beschreibung

Die Funktion initialisiert den COM-Port und bereitet ihn auf Lese- bzw. Schreibzugriffe vor. Der COM-Port wird als Objekt zurückgegeben.

Parameter

aComPort:N | Com Port
aBaudrate:N | Übertragungsrate
aParityBit:N | Paritätsbit
aDataBits:N | Anzahl Datenbits
StopBits:N | Anzahl Stopp-Bits

Rückgabewert

Objekt - Serial Port

Beispiel

| oSerialPort |

oSerialPort := InitCom(1, 9600, Parity_None, DataBits_8, StopBits_1),


MailMemo()

MailMemo() – EMail versenden

Beschreibung

Die Funktion versendet ein Memo (Dab065-Datensatz) per eMail.

Parameter

nMemoId:N | ID des Memos
oDab065:O | DAB065; default = Standard Dab065
cSendTo:C | Email-Empfänger (durch ";" getrennt, jeweils "to:", "cc:" oder "bcc:" vorangestellt) default = Leerstring
lUseAttach:L | Anhänge versenden; default = true
lProgress:L | Fortschritt anzeigen; default = true
nMaxPerc:N | Max. Wert des Fortschrittbalkens; default = 100
nStartPerc:N | Startwert des Fortschrittbalkens; default

Rückgabewert

Logisch / Boolean - Senden erfolgreich

Beispiel

| oDab065:DB := '9,6' |

if !MailMemo(6610, oDab065, 'x.y@dontenwill.de', true) then

   Beep()

endif,


MailObject()

MailObject() – Mail Objekt

Beschreibung

Die Funktion liefert ein Mail-Object zurück

Parameter

keine Parameter erwartet

Rückgabewert

Objekt - Mail-Object

Beispiel

MailObject()

www.dontenwill.de | www.business-express.de


MailSend()

MailSend() – eMail versenden

Beschreibung

Die Funktion dient dem Senden von EMail-Nachrichten über den Codeblock.

Hinweis

Die Angabe der Priorität/Dringlichkeit funktioniert nur bei Versand über SMTP.

Parameter

cMessage:C | Text der EMail
cSendTo:C | Empfänger oder Empfängerliste (durch ";"-getrennt, jeweils "to:", "cc:" oder "bcc:" vorangestellt)
cSubject:C | Betreff; default = Leerstring
aAttachments:A | Array mit Dateinamen für Anlagen; default = null()
cFrom:C | anderer Absender; default = Leerstring
lPlainText:L | 'Nur Text' - Übertragung; default = false
lProgress:L | Fortschritt anzeigen; default = true
nMaxPerc:N | Max. Wert des Fortschrittbalkens; default = 100
nStartPerc:N | Startwert des Fortschrittbalkens; default
nPriority:N | Dringlichkeit der EMail; default = Normal; (nur bei Versand über SMTP); 1 = Niedrig; 2 = Normal; 3 = Hoch

Rückgabewert

Logisch / Boolean - Senden erfolgreich

Beispiel

MailSend('Bitte einmal ansehen ...',

         'xxxx.yyy@Dontenwill.de',

         'Apago',

         {'C:\Installationen\Apago PDF2JPEG\PSservices\PSservices.pdf'})

Siehe auch

MailMemo()

MailObject()


ReadCom()

ReadCom() – Com-Schnittstelle lesen

Beschreibung

Die Funktion liest das an der COM-Schnittstelle angeschlossene Gerät aus.

Parameter

aPortObject:O

Serial-Port Objekt (geliefert durch InitCom())

Rückgabewert

Alphanumerisch - Data

Beispiel

| oSerialPort |

oSerialPort := InitCom(1, 9600, Parity_None, DataBits_8, StopBits_1),

ReadCom(oSerialPort)


WriteCom()

WriteCom() – Auf COM-Schnittstelle schreiben

Beschreibung

Die Funktion schreibt aText auf das an der COM-Schnittstelle angeschlossene Gerät.

Parameter

aPortObject:O | Serial-Port Objekt ( geliefert durch InitCom() )
aText:C | Text

Rückgabewert

Numerisch - Bytes des übertragenen Textes

Beispiel

| oSerialPort |

oSerialPort := InitCom(1, 9600, Parity_None, DataBits_8, StopBits_1),

WriteCom(oSerialPort, 'Test Text')


Logische Funktionen

Siehe auch:

_AND()

_NOT()

_OR()

_XOR()

SetBit()

TestBit()


_AND()

_AND() – Logische AND-Verknüpfung

Beschreibung

Die Funktion verknüpft zwei Integer bitweise mit einer AND-Verknüpfung.

Parameter

aIntValue1:N | Integer 1
aIntValue2:N | Integer 2

Rückgabewert

Numerisch - Ergebnis

Beispiel

_AND(15, 8)

Siehe auch

_NOT()

_OR()

_XOR()


_NOT()

_NOT() – Logische NOT-Verknüpfung

Beschreibung

Die Funktion führt eine bitweise NOT-Verknüpfung auf einen Integerwert aus.

Parameter

aIntValue1:N

Integer1

Rückgabewert

Numerisch - Ergebnis

Beispiel

_NOT(12)

Siehe auch

_AND()

_OR()

_XOR()


_OR()

_OR() – Logische OR-Verknüpfung

Beschreibung

Die Funktion verknüpft zwei Integer bitweise mit einer OR-Verknüpfung.

Parameter

aIntValue1:N | Integer1
aIntValue2:N | Integer2

Rückgabewert

Numerisch - Ergebnis

Beispiel

_OR(12, 4)

Siehe auch

_AND()

_NOT()

_XOR()


_XOR()

_XOR() – Logische XOR-Verknüpfung

Beschreibung

Die Funktion verknüpft zwei Integer bitweise mit einer XOR-Verknüpfung.

Parameter

aIntValue1:N | Integer1
aIntValue2:N | Integer2

Rückgabewert

Numerisch - Ergebnis

Beispiel

_XOR(12, 4)

Siehe auch

_AND()

_NOT()

_OR()


SetBit()

SetBit() – Bit setzen

Beschreibung

Die Funktion setzt das Bit aBit einer Zahl auf true. (aBit = 0 ist das erste Bit)

Parameter

aIntValue:N | Integer
aBit:N | Bit
DoSetBit:L | Bit setzen; default = true true - Bit setzen false - Bit löschen

Rückgabewert

Numerisch - Neue Zahl

Beispiel

SetBit(12, 1)


TestBit()

TestBit() – Bit testen

Beschreibung

Die Funktion testet, ob das aBit einer Zahl besetzt ist. Bei der Zahl 16 wäre das 3. Bit (aBit = 2) z.B. nicht besetzt, während das 5. Bit (aBit = 4) besetzt ist. (aBit = 0 ist das erste Bit)

Parameter

aIntValue:N | Integer
aBit:N | Bit

Rückgabewert

Numerisch - Bit besetzt

Beispiel

if TestBit(12, 3) then

   Meld('Das 4. Bit ist in der Zahl 12 gesetzt'),

endif,


Abs()

Abs() – Absolutwert

Beschreibung

Die Funktion ermittelt den absoluten Wert einer Zahl.

Parameter

aValue:N

Beliebiger numerischer Wert

Rückgabewert

Numerisch

Beispiel

Abs(-12.5)   // Ergebnis: '12,5'


ArcTan()

ArcTan() – ArcusTangens

Beschreibung

Die Funktion berechnet den Arcustangens einer bestimmten Zahl.

Parameter

aRadValue:N

Beliebiger numerischer Wert

Rückgabewert

Numerisch - Arcustangens

Beispiel

ArcTan(Pi())   // Ergebnis: '1,26262725567891'

Siehe auch

Cos()

Sin()

Tan()


Cos()

Cos() – Cosinus

Beschreibung

Die Funktion berechnet den Cosinus eines Winkels.

Parameter

aRadValue:N

Beliebiger numerischer Wert

Rückgabewert

Numerisch - Cosinus (im Bogenmaß)

Beispiel

Cos(Pi())   // Ergebnis: '-1'

Siehe auch

ArcTan()

Sin()

Tan()


DegToRad()

DegToRad() – Umwandlung Gradmaß Bogenmaß

Beschreibung

Die Funktion konvertiert einen in Grad angegebenen Winkel in das Bogenmaß.

Parameter

aDegrees:N

Beliebiger numerischer Wert

Rückgabewert

Numerisch - Bogenmaß

Beispiel

DegToRad(360)   // Ergebnis: '6,28318530717959'

Siehe auch

RadToDeg()


Exp()

Exp() – e hoch Wert

Beschreibung

Die Funktion berechnet e^aValue (e = 2,71828182845905).

Parameter

aValue:N

Exponent

Rückgabewert

Numerisch - Ergebnis

Beispiel

Exp(3)   // Ergebnis: '20,0855369231877'


Frac()

Frac() – Nachkommaanteil

Beschreibung

Die Funktion gibt den Nachkommaanteil eines numerischen Werts zurück.

Parameter

aValue:N

Beliebiger numerischer Wert

Rückgabewert

Numerisch - Nachkommaanteil

Beispiel

Frac(12.346)   // Ergebnis: '0,346'

Siehe auch

Int()


GetNK()

GetNK() – Anzahl der Nachkommastellen

Beschreibung

Die Funktion gibt die Anzahl der Nachkommastellen des übergebenen Werts zurück.

Parameter

nNumber:N

Numerisch

Rückgabewert

Numerisch - Anzahl der Nachkommastellen

Beispiel

GetNK(12.345)   // Ergebnis: '3'


Hex()

Hex() – Zahlensystemumrechnung

Beschreibung

Die Funktion gibt für vorgegebene Werte den Wert in anderen Zahlensystemen zurück.

Parameter

nNumber:N | Umzurechnende Zahl
nDecSystem:N | Zahlensystem in das umgerechnet werden soll; default = 16 (Hexadezimal)
nMinLen:N | Anzahl der Stellen

Rückgabewert

Alphanumerisch - Ergebnis

Beispiel

Hex(10)   // Ergebnis: 'A'

Siehe auch

UnHex()


Int()

Int() – Vorkommaanteil

Beschreibung

Die Funktion gibt den Vorkommaanteil eines numerischen Werts zurück.

Parameter

aValue:N

Beliebiger numerischer Wert

Rückgabewert

Numerisch - Vorkommaanteil

Beispiel

Int(-12.5)   // Ergebnis: '-12'

Siehe auch

Frac()


IntPower()

IntPower() – Potenz aus Basis

Beschreibung

Die Funktion errechnet die Potenz aus einer Basis.

Parameter

aBase:N | Basis
aExponent:N | Exponent

Rückgabewert

Numerisch - Potenz aus Basis

Beispiel

IntPower(2, 10)   // Ergebnis: '1024'


LN()

LN() – Natürlicher Logarithmus

Beschreibung

Die Funktion gibt den natürlichen Logarithmus eines numerischen Werts zurück.

Parameter

aValue:N

Potenz

Rückgabewert

Numerisch - natürlicher Logarithmus

Beispiel

LN(Exp(1))   // Ergebnis: '1'

Siehe auch

Log10()

Log2()

LogN()


Log10()

Log10() – Logarithmus zur Basis 10

Beschreibung

Die Funktion berechnet den dekadischen Logarithmus zur Basis 10.

Parameter

aValue:N

Potenz

Rückgabewert

Numerisch - Logarithmus zur Basis 10

Beispiel

Log10(100)   // Ergebnis: '2'

Siehe auch

LN()

Log2()

LogN()


Log2()

Log10() – Logarithmus zur Basis 2

Beschreibung

Die Funktion berechnet den Logarithmus zur Basis 2.

Parameter

aValue:N

Potenz

Rückgabewert

Numerisch - Logarithmus zur Basis 2

Beispiel

Log2(1024)   // Ergebnis: '10'

Siehe auch

LN()

Log10()

LogN()


LogN()

LogN() – Logarithmus

Beschreibung

Die Funktion berechnet den Logarithmus zur Basis aValue1.

Parameter

aValue1:N | Basis
aValue2:N | Potenz

Rückgabewert

Numerisch

Beispiel

LogN(10, 100)   // Ergebnis: '2'

Siehe auch

LN()

Log10()

Log2()


Max()

Max() – Maximum

Beschreibung

Die Funktion gibt den größeren von zwei beliebigen Werten zurück.

Parameter

aNumberOrText1:U | Beliebiger Wert
aNumberOrText2:U | Beliebiger Wert

Rückgabewert

Numerisch - Maximum

Beispiel

Max(20, 6)                 // Ergebnis: '20'

Max('Müller', 'Schmidt')   // Ergebnis: 'Schmidt'

Siehe auch

Abs()

Int()

Min()

Round()

Upround()


Min()

Min() – Minimum

Beschreibung

Die Funktion gibt den kleineren von zwei beliebigen Werten zurück.

Parameter

aNumberOrText1:U | Beliebiger Wert
aNumberOrText2:U | Beliebiger Wert

Rückgabewert

Numerisch

Beispiel

Min(20, 6)                 // Ergebnis: '6'

Min('Stefan', 'Michael')   // Ergebnis: 'Michael'

Siehe auch

Abs()

Int()

Max()

Round()

Upround()


Mod()

Mod() – Modulo

Beschreibung

Die Funktion gibt den ganzzahligen Rest einer ganzzahligen Division von zwei numerischen Werten zurück.

Parameter

aIntValue1:N | Dividend
aIntValue2:N | Divisor

Rückgabewert

Numerisch - ganzzahliger Rest

Beispiel

Mod(17, 5)   // Ergebnis: '2'


Odd()

Odd() – Prüfung auf ungerade Zahl

Beschreibung

Die Funktion gibt true zurück, wenn aIntValue eine ungerade Zahl ist.

Parameter

aIntValue:N

Beliebiger numerischer Wert

Rückgabewert

Logisch / Boolean - Nummer ist ungerade

Beispiel

Odd(15)   // Ergebnis: '.T.'


PasRound()

PasRound() – Runden2

Beschreibung

Die Funktion rundet aValue:N auf aDecimals:N Stellen nach dem Komma.

Parameter

aValue:N | Wert
aDecimals:N | Dezimalstellen

Rückgabewert

Numerisch - Gerundete Zahl

Beispiel

PasRound(5.354829, 3)   // Ergebnis: '5,355'

Siehe auch

Round()

RoundInt()


Pi()

Pi() – Kreiszahl Pi

Beschreibung

Die Funktion gibt den Wert der Kreiszahl Pi zurück.

Parameter

keine Parameter erwartet

Rückgabewert

Numerisch - Pi

Beispiel

Pi()   // Ergebnis: '3,14159265358979'


Power()

Power() – Potenz errechnen

Beschreibung

Die Funktion berechnet aus einer Basis und einem Exponenten die Potenz.

Parameter

aBase:N | Basis
aExponent:N | Exponent

Rückgabewert

Numerisch - Potenz

Beispiel

Power(2, 8)   // Ergebnis: '256'


PruefSum()

PruefSum() – Prüfsumme

Beschreibung

Die Funktion bildet aus cText eine Prüfsumme.

Parameter

cText:C

Text

Rückgabewert

Numerisch - Prüfsumme

Beispiel

PruefSum('Hello World')   // Ergebnis: '1101'


RadToDeg()

RadToDeg() – Umwandlung Bogenmaß Gradmaß

Beschreibung

Die Funktion konvertiert einen im Bogenmaß angegebenen Winkel in das Gradmaß.

Parameter

aRadians:N

Beliebiger numerischer Wert

Rückgabewert

Numerisch - Gradmaß

Beispiel

RadToDeg(Pi())   // Ergebnis: '180'

Siehe auch

DegToRad()


RandomRange()

RandomRange() – Zufallszahl erzeugen

Beschreibung

Erzeugt eine ganzzahlige Zufallszahl aus einem übergebenen Zahlenbereich.

Hinweis

Arbeitet auch mit negativen Zahlen.

Parameter

aFrom:N | Wertebereich Anfang
aTo:N | Wertebereich Ende, nicht in der Ergebnismenge enthalten

Rückgabewert

Numerisch

Beispiel

WriteLn( RandomRange( 100, 120 ) ),


Round()

Round() – Runden

Beschreibung

Die Funktion rundet einen numerischen Wert auf n-Stellen.

Parameter

aValue:N | Beliebiger numerischer Wert
aDecimals:N | Anzahl der Nachkommastellen

Rückgabewert

Numerisch - Gerundete Zahl

Beispiel

Round(12.54852, 2)   // Ergebnis: '12,55'

Siehe auch

PasRound()

RoundInt()


RoundDiv()

RoundDiv() – Runden

Beschreibung

Die Funktion rundet eine Zahl im übergebenen Modus. Die Funktion rundet nicht auf die nächste glatte Zahl, sondern auf das nächste Vielfache von 1/nDiv.

Parameter

nValue:N | Wert
nDigit:N | Nachkommastellen
nDiv:N | 1 / nDiv ist der Bruch, auf den hingerundet wird
nMode:N | Modus; default = 0; < 0 - Abrunden; > 0 - Aufrunden; 0 - Kaufmännisches Runden

Rückgabewert

Numerisch - Gerundete Zahl

Beispiel

RoundDiv(0.345, 4, 3)   // Ergebnis: '0,3333'


RoundInt()

RoundInt() – Abrunden

Beschreibung

Die Funktion rundet einen numerischen Wert auf n-Stellen ab.

Parameter

aValue:N | Beliebiger numerischer Wert
aDecimals:N | Anzahl der Nachkommastellen

Rückgabewert

Numerisch - Abgerundete Zahl

Beispiel

RoundInt(2.37589, 4)   // Ergebnis: '2,3758'

Siehe auch

PasRound()

Round()


Sin()

Sin() – Sinus

Beschreibung

Die Funktion berechnet den Sinus eines Winkels im Bogenmaß.

Parameter

aRadValue:N

Beliebiger numerischer Wert

Rückgabewert

Numerisch - Sinus (im Bogenmaß)

Beispiel

Sin(DegToRad(90))   // Ergebnis: '1'

Siehe auch

ArcTan()

Cos()

Tan()


Sqr()

Sqr() – Quadrat

Beschreibung

Die Funktion gibt das Quadrat eines numerischen Wertes zurück.

Parameter

aValue:N

Beliebiger numerischer Wert

Rückgabewert

Numerisch - Wert im Quadrat

Beispiel

Sqr(25)   // Ergebnis: '625'

Siehe auch

Sqrt()


Sqrt()

Sqrt() – Quadratwurzel

Beschreibung

Die Funktion gibt die Quadratwurzel eines numerischen Werts zurück.

Parameter

aValue:N

Beliebiger positiver numerischer Wert

Rückgabewert

Numerisch - Quadratwurzel

Beispiel

Sqrt(625)   // Ergebnis: '25'

Siehe auch

Sqr()


Tan()

Tan() – Tangens

Beschreibung

Die Funktion berechnet den Tangens eines Winkels im Bogenmaß.

Parameter

aRadValue:N

Beliebiger numerischer Wert

Rückgabewert

Numerisch - Tangens (im Bogenmaß)

Beispiel

Tan(DegToRad(100))   // Ergebnis: '-5,67128181961771'

Siehe auch

ArcTan()

Cos()

Sin()


Trunc()

Trunc() – Vorkommaanteil

Beschreibung

Die Funktion gibt einen numerischern Wert ohne Nachkommastellen aus.

Parameter

aValue:N

Beliebiger numerischer Wert

Rückgabewert

Numerisch - Vorkommaanteil

Beispiel

Trunc(123.456)   // Ergebnis: '123'


UnHex()

UnHex() – Umwandlung eines Zahlensystems

Beschreibung

Die Funktion wandelt den vorgegebenen Wert eines Zahlensystemes zurück in das Dezimalsystem um.

Parameter

cValue:C | Umzurechnende Zahl
nDecSystem:N | Zahlensystem; default = 16 (Hexadezimal)

Rückgabewert

Numerisch - Wert im Dezimalsystem

Beispiel

| a, b |

a := Hex(987654321, 32, 6),   // codiertert den Wert 6-stellig in das 32er-System

                              // (Buchstaben 0 bis V)

WriteLn(a),

b := UnHex(a, 32),            // decodiert den Wert aus dem 32er-System

WriteLn(b)

// Ergebnis: TDSQ5H

//           987654321

Siehe auch

Hex()


Upround()

Upround() – Aufrunden

Beschreibung

Die Funktion rundet einen numerischen Wert auf n Stellen auf. Im Gegensatz zu Round(), das kaufmännisch rundet, wird bei Upround() immer aufgerundet.

Parameter

aValue:N | Beliebiger numerischer Wert
aDecimals:N | Anzahl der Nachkommastellen

Rückgabewert

Numerisch - Aufgerundete Zahl

Beispiel

Upround(12.54452, 2)   // Ergebnis: '12,55'

Siehe auch

Abs()

Int()

Round()


ActionExecute()

ActionExecute() – Aufruf eines Aktionsobjektes

Beschreibung

Die Funktion führt ein Action-Objekt aus; d.h., mit dieser Funktion kann jede beliebige business express - Oberflächen-Funktion (jeder Menüpunkt oder Button) "ferngesteuert" ausgeführt werden.

Ein Action-Objekt (die Funktion) kann mit Hilfe von FindObject() ermittelt werden. Voraussetzung hierfür ist, dass der Owner (das Fenster) der Aktion bekannt ist.

Die Objekt-Namen der einzelnen Actions können in der Passwortverwaltung jedes Fensters eingesehen werden (Feldname: "Action").

Parameter

aAction:O

Auszuführendes Action-Objekt

Rückgabewert

Logisch / Boolean - Ausführen erfolgreich

Beispiel

// Beispiel in einer Maske

| oMainForm, oAction |

oMainForm := GetOwnerForm(GetOwner(GetOwner(self))),

oAction   := FindObject(oMainForm, 'TableAdministration'),

ActionExecute(oAction),

// Beispiel (in einem Individual-Menü im Kundenstamm)

| oOwner, oAction, oForm |

// Öffnet Kontakt-Personen-Fenster

// Führt die Funktion "Neu" im Kontakt-Personen-Fenster aus

oOwner  := GetOwner(Self),

oAction := FindObject(oOwner, 'A_Contacts'),

if ActionExecute(oAction) then

   oForm := FindObjByClass(oOwner, "TFormEditContacts"),

   if not Empty(oForm) then

      oForm.ExecRefresh,

      oAction := FindObject(oForm, 'A_New'),

      ActionExecute(oAction),

   endif,

endif,


AddTreeNode()

AddTreeNode() – TreeNode in einem TreeView erstellen

Beschreibung

Die Funktion erzeugt einen neuen TreeNode und fügt diesem einen bestehenden TreeView hinzu.

Parameter

aTreeView:O | TreeView
aTreeNodeParent:O | Parent des TreeNodes
Name:C | Names des TreeNodes
Caption:C | Beschriftung des TreeNodes

Rückgabewert

Objekt - Neu hinzugefügter TreeNode

Beispiel

| oTreeV, oTreeNodeParent, oTreeNode |

oTreeV          := FindObject(self, 'TreeView'),

oTreeNodeParent := FindObject(oTreeV, 'TreeNode3'),

oTreeNode       := AddTreeNode(oTreeV, oTreeNodeParent, 'TreeNode4', 'Test'),

Siehe auch

TTreeNodeEx

TTreeViewEx


AssignEvent()

AssignEvent() – Ereignis festlegen

Beschreibung

Die Funktion legt eine Funktion für ein Objekt fest, die jedes Mal wenn das angegebene Ereignis eintrifft ausgeführt wird.

Parameter

aObject:O | Objekt
aPropName:C | Eventfunktionsname
aFuncName:C | Funktionsname

Rückgabewert

Objekt - Objekt des Events

Beispiel

| oDab010:DB := '2' |

function DoAfterPost(Sender)

   Meld("Neuer\Verändeter Eintrag!")

end,

AssignEvent(oDab010, "AfterPost", "DoAfterPost"),

Siehe auch

AssignBlockEvent()


AssignGlobalEvent()

AssignGlobalEvent() – Globales Ereignis festlegen

Beschreibung

Die Funktion dient dem Setzen eines Globalen Events.

Hinweis

Verfügbares Events "BeMsgObjHook"

Bei gesetztem Event werden ALLE Meldungen der BE-Applikation auf dieses Event umgeleitet.

Parameter des Events:

  aMsgTyp:N          Meldungstyp (mtWarning, mtError, mtInformation, mtConfirmation, mtCustom)

  aTextNo:N          Nummer des Meldungstexts

  aArgs:A            Argumente für den Text

  var aResult:N      Rückgabe: Meldungsergebnis (mrNone = meist default, mrOk, mrCancel, mrYes, mrNo)

  var aHideMsg:L     Rückgabe: default = True = Keine Meldung anzeigen, False = Meldung anzeigen

Parameter

aPropName:C | Name des Events
aFuncName:C | Name zugeordneten Funktion

Rückgabewert

Objekt - Objekt des Events

Beispiel

// Beispiel (alle Meldungen mit "Ja" bzw. "Ok" bestätigen)

function BeMsgHandler(aMsgTyp, aTextNo, aArgs, aResult, aHideMsg)

   if aResult = mrNo then     // aus "nein" mach "ja"

      aResult := mrYes,

   endif,

   if aResult = mrCancel then // aus "abbruch" mach "ok"

      aResult := mrOK,

   endif,

   if aResult = mrNone then   // aus allem anderen mach "ja"

      aResult := mrYes,

   endif,

end,

SetPersistent(true),

AssignGlobalEvent("BeMsgObjHook", "BeMsgHandler"),


BringToFront()

BringToFront() – Objekt nach vorne bringen

Beschreibung

Die Funktion bringt ein Objekt in den Vordergrund.

Parameter

aControl:O

Control-Objekt

Rückgabewert

keiner

Beispiel

| oForm, oBtnFront, oBtnBack, oLabel, oMemo |

function DoHide()

   SendToBack(oBtnBack),

end,

function DoShow()

   BringToFront(oBtnBack),

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 366,

oForm.Height      := 120,

oForm.Caption     := 'SendToBack() und BringToFront()',

oForm.Position    := poScreenCenter,

oBtnFront         := CreateObject('TButton', 'BtnShow', oForm, oForm),

oBtnFront.Width   := 150,

oBtnFront.Height  := 20,

oBtnFront.Caption := '

oBtnFront.Top     := 10,

oBtnFront.Left    := 10,

oBtnBack          := CreateObject('TButton', 'BtnHide', oForm, oForm),

oBtnBack.Width    := 150,

oBtnBack.Height   := 20,

oBtnBack.Caption  := '

oBtnBack.Top      := 10,

oBtnBack.Left     := 190,

oMemo             := CreateObject('TMemo', 'Memo', oForm, oForm),

oMemo.Width       := 160,

oMemo.Height      := 30,

oMemo.Top         := 5,

oMemo.Left        := 185,

SendtoBack(oMemo),

AssignEvent(oBtnFront, 'OnClick', 'DoShow'),

AssignEvent(oBtnBack, 'OnClick', 'DoHide'),

ShowModal(oForm),

Siehe auch

Hide()

SendToBack()


Browse()

Browse() – Tabelle im Datenbrowser anzeigen

Beschreibung

Die Funktion öffnet ein Fenster in welchem eine Tabelle mit den angegebenen Feldern angezeigt wird.

Parameter

aParent:U

Container-Objekt (WinControl), in dem der Datenbankbrowser angezeigt werden soll.

default = nil.

Dies kann z.B. auch das GetForm-Objekt einer GetList sein.

- Ist aParent:U nicht vom Typ Objekt, dann wird ein modales Anzeigefenster mit einem Browser generiert.

- Ist aParent:U ein Text, dient er als Überschrift für das Browserfenster.

- Ist aParent:U leer, wird die Eigenschaft 'DisplayLabel' der Tabelle als Überschrift verwendet.

- Ist 'DisplayLabel' leer oder nicht vorhanden, wird die Eigenschaft 'AliasName' eingesetzt.

- Ist 'AliasName' ebenfalls leer oder nicht vorhanden, wird 'TableName' verwendet.

aTable:U

Bezugstabelle; default = nil

Es ist auch möglich, ein Array mit Tabellen zu übergeben, die für die Codeblöcke des Browsers zur Verfügung stehen sollen. Dies ist nur dann gültig, wenn der 3. Parameter eine Browser-ID darstellt.

aFields:U

Feldname oder FeldnamenArray oder BrowserID ("@" + max. 6 Zeichen);

default = alle Felder der Bezugstabelle

Feldname kann selbst auch ein Array mit folgenden Parametern sein

1. Feldname oder Feldfunktion (selbständiger Codeblock)

2. Spaltenbezeichnung (optional)

3. Spaltenbreite (optional)

aPosition:U

Position des Browsers im Container-Objekt oder Position des Browserfensters selbst.

1. Handelt es sich bei diesem Parameter um einen einzelnen Wert,

wird dieser als Alignment (Ausrichtung) betrachtet.

Folgende Konstante können eingesetzt werden:

   alNone   keinen Bezug zu den Begrenzungen des Container-Objektes

   alLeft   immer linksbündig im Container-Objekt

   alRight  immer rechtsbündig im Container-Objekt

   alTop    immer an der Oberkante des Container-Objektes

   alBottom an der Unterkante des Container-Objektes

   alClient Browser füllt nach Möglichkeit das ganze Container-Objekt

2. Handelt es sich um ein Array mit zwei Elementen,

dann wird das erste Element als Alignment betrachtet.

Im Falle von alLeft oder alRight wird das zweite Element als Breite eingesetzt,

in den Fällen alTop und alBottom als Höhe, ansonsten wird es ignoriert.

3. Handelt es sich um ein Array mit vier Elementen

1. Element: X-Position der linken oberen Ecke,

2. Element: Y-Position der linken oberen Ecke

3. Element: Breite

4. Element: Höhe

Andere Arraydimensionierungen werden ignoriert.

Wird der Browser in einem eigenständigen Fenster angezeigt (1. Parameter Empty),

dann gelten Positionsangaben als Desktop-Koordinaten des Container-Fensters.

Der Browser selbst füllt in diesem Fall immer das gesamte Fenster aus.

Angaben zum Alignment bleiben bei dieser Aufrufvariante unberücksichtigt.

Werden keine Desktopkoordinaten angegeben,

wird das Fenster auf 6/8 der Bildschirmfläche zentriert angezeigt.

aReadOnly:L

ReadOnly; default = true

true – Lesemodus kein editieren möglich

false – editierbar solange die Änderungen nicht den Feldrechten wieder sprechen

aDeleteLock:L

DeleteLock; default = true

true – es können keine Datensätze gelöscht werden

false – Datensätze können gelöscht werden

aInsertLock:L

Insert Lock; default = true

true – es können keine neuen Datensätze erzeugt werden

false – Neue Datensätze können erzeugt werden

aAutoCancel:L

AutoCancel; default = true

Rückgabewert

Tabellenbrowser-Objekt

Beispiel

| oDab000:DB := '1', aFields |

aFields := {{'KDNR', 'Kunden-Nummer', 100}, {'NAME1', 'Name', 300}},

Browse("Kunde mit Kundennummer", oDab000, aFields),

Siehe auch

GetBrowser()


ChartRefreshData()

ChartRefreshData() – Chart refreshen

Beschreibung

Diese Funktion dient dem kompletten Refresh eines Charts.

Parameter

oChart:O

Chart

Rückgabewert

Keiner

Beispiel

ChartRefreshData(oChart),


CheckValidValue()

CheckValidValue() – Gültigkeit einer Eingabe prüfen

Beschreibung

Die Funktion löst das OnValidateValue-Event eines datenbank-gebundenen Oberflächen-Controls aus.

Parameter

oOwner:O | Owner des Controls
oField:O | Datenbank-Feld-Objekt (TField)

Rückgabewert

Logisch / Boolean - valide / nicht valide


ClassName()

ClassName() – Klassenname

Beschreibung

Die Funktion liefert den Namen der Klasse eines Objektes.

Parameter

aObject:O

Objekt, von welchem die Klasse bestimmt werden soll

Rückgabewert

Alphanumerisch - Klassenname

Beispiel

| oDab000:DB := '1', oGetList |

oGetList := CreateGet('Getlist'),

WriteLn(ClassName(oGetList)),

WriteLn(ClassName(oDab000)),

Siehe auch

ClassOf()


ClassOf()

ClassOf() – Klassenprüfung

Beschreibung

Die Funktion prüft, ob ein Objekt von der angegebenen Klasse ist.

Parameter

aObject:O | Objekt, welches geprüft werden soll
aClassName:C | Klasse, auf welche das Objekt geprüft werden soll

Rückgabewert

Logisch / Boolean - Objekt ist von der angegebenen Klasse

Beispiel

| oDab000:DB := '1' |

WriteLn(ClassOf(oDab000, 'TCbGetList')),

WriteLn(ClassOf(oDab000, 'TBeRightsTable')),

Siehe auch

ClassName()


ClearGets()

ClearGets() – Get-Objekte löschen

Beschreibung

Die Funktion löscht alle Get-Objekte aus einem GetList-Objekt.

Parameter

aGetList:O

GetList-Objekt

Rückgabewert

keiner

Beispiel

| oGet, oGetKdnr, oGetArtnr, cKdnr, cArtnr, aButton, lRefresh:L := false |

// Erster Teil

aButton   := {{1,gctbutton}},

cKdnr     := '123',

cArtnr    := 'ABC',

oGet      := CreateGet('RefreshTest', 100, 100, 300, 300),

oGetKdnr  := Get(oget, cKdnr, 10, 10, 100, 20,,,, 'lRefresh'),

oGetArtnr := Get(oget, cArtnr, 10, 40, 100, 20,,,, 'lRefresh'),

function refresh()

   cKdnr    := '456',

   cArtnr   := 'DEF',

   lRefresh := true,

   RefreshGet(oGetArtnr),

end,

Get(oGet, aButton, 10, 80, 100, 20, 'Refresh',,,,, "refresh()"),

ReadGets(oget),

// Zweiter Teil

ClearGets(oGet),

oGetKdnr := Get(oget, cKdnr, 10, 10, 100, 20,,,, 'lRefresh'),

ReadGets(oget),

Siehe auch

CreateGet()

Get()

ReadGets()

GetBrowser()

RefreshGet()


CloseForm()

CloseForm() – Form-Objekt schließen

Beschreibung

Die Funktion schließt ein Form-Objekt.

Parameter

aFormObject:O

TForm-Objekt

Rückgabewert

keiner

Beispiel

| oForm, oBtnCancel, oLblWait |

function DoClose(Sender)

   CloseForm(oForm),

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsNone,

oForm.Width       := 366,

oForm.Height      := 100,

oForm.Caption     := 'CloseForm() Beispiel',

oForm.Position    := poScreenCenter,

oBtnCancel         := CreateObject('TButton', 'BtnCancel', oForm, oForm),

oBtnCancel.Width   := 150,

oBtnCancel.Height  := 20,

oBtnCancel.Caption := '

oBtnCancel.Top     := 10,

oBtnCancel.Left    := 100,

oLblWait         := CreateObject('TLabel', 'LblWait', oForm, oForm),

oLblWait.Width   := 300,

oLblWait.Height  := 40,

oLblWait.Caption := 'Bitte auf den Button drücken um das Fenster zu schließen!',

oLblWait.Top     := 60,

oLblWait.Left    := 40,

AssignEvent(oBtnCancel, 'OnClick', 'DoClose'),

ShowModal(oForm),

Siehe auch

ModalResult()

Show()

ShowModal()


ClRect()

ClRect() – ClientRect

Beschreibung

Die Funktion gibt die Eigenschaft ClientRect des übergebenen Objektes zurück

Parameter

aWinControl:O

Win-Control

Rückgabewert

Array - Format

{ Left, Top, Right, Bottom }

Beispiel

| oForm |

oForm := CreateObject('TForm'),

ClRect(oForm)


CollAdd()

CollAdd() – Collection hinzufügen

Beschreibung

Die Funktion fügt zu einem aCollection Objekt ein Collection-Item hinzu.

Parameter

aCollection:O

Collection-Objekt

Rückgabewert

Objekt - CollectionItem

Beispiel

| oMemTable, oField, oCollection |

oMemTable   := CreateObject("TMemCalcTable"),

oCollection := oMemTable.FieldsDefinition,

oField      := CollAdd(oCollection),

oField.Name := 'POS1',

WriteLn(oField),

Siehe auch

CollCount()

CollDelete()

CollItem()


CollCount()

CollCount() – Collectionanzahl

Beschreibung

Die Funktion gibt die Anzahl der Objekte der aCollection zurück.

Parameter

aCollection:O

Collection-Objekt

Rückgabewert

Numerisch - Anzahl der CollectionItems

Beispiel

| oMemTable, oField, oCollection |

oMemTable   := CreateObject("TMemCalcTable"),

oCollection := oMemTable.FieldsDefinition,

oField      := CollAdd(oCollection),

oField.Name := 'POS1',

oField      := CollAdd(oCollection),

oField.Name := 'POS2',

oField      := CollAdd(oCollection),

oField.Name := 'POS3',

WriteLn(CollCount(oCollection)),

Siehe auch

CollAdd()

CollDelete()

CollItem()


CollDelete()

CollDelete() – Collectionitem löschen

Beschreibung

Die Funktion löscht aus einem aCollection Objekt das aIndex Objekt.

Parameter

aCollection:O | Collection-Objekt
aIndex:N | Index-Zahl

Rückgabewert

keiner

Beispiel

| oMemTable, oField, oCollection |

oMemTable   := CreateObject("TMemCalcTable"),

oCollection := oMemTable.FieldsDefinition,

oField      := CollAdd(oCollection),

oField.Name := 'POS1',

oField      := CollAdd(oCollection),

oField.Name := 'POS2',

oField      := CollAdd(oCollection),

oField.Name := 'POS3',

WriteLn(CollCount(oCollection)),

CollDelete(oCollection, 2),

WriteLn(CollCount(oCollection)),

Siehe auch

CollAdd()

CollCount()

CollItem()


CollItem()

CollItem() – Collectionitem

Beschreibung

Die Funktion gibt das Objekt mit dem Index aIndex aus der Collection aCollection zurück.

Parameter

aCollection:O | Collection-Objekt
aIndex:N | Index-Zahl

Rückgabewert

Objekt - CollectionItem

Beispiel

| oMemTable, oField, oCollection |

oMemTable   := CreateObject("TMemCalcTable"),

oCollection := oMemTable.FieldsDefinition,

oField      := CollAdd(oCollection),

oField.Name := 'POS1',

oField      := CollAdd(oCollection),

oField.Name := 'POS2',

oField      := CollAdd(oCollection),

oField.Name := 'POS3',

WriteLn(CollItem(oCollection, 2)),

Siehe auch

CollAdd()

CollCount()

CollDelete()


CreateGet()

CreateGet() – GetList erstellen

Beschreibung

CreateGet() erzeugt eine GetList. Diese GetList kann über Aufrufe der Funktion Get() näher definiert werden. Mit dem Aufruf von ReadGets() wird die GetList als DialogFenster eingeblendet. Jeder Aufruf von Get() entspricht einer Eingabe-Maske im Dialogfeld. Die Eingaben des Benutzers in diesen Feldern werden in den jeweiligen Parametern gespeichert.

Parameter

aCaption:C | Fensterüberschrift; default = Leerstring
aLeft:N | X-Koordinate des Fensters; default = 0
aTop:N | Y-Koordinate des Fensters; default = 0
aWidth:N | Breite des Fensters; default = Screen.Width
aHeight:N | Höhe des Fensters; default = Screen.Height
aColor:N | Hintergrundfarbe des Fensters; default = clBtnFace

Rückgabewert

Objekt - GetList

Beispiel

| oGetList, oDab005:DB := '38', cName:C := 'Name', dDatum:D := date |

oGetList := CreateGet('Get-Fenster', 10, 10, 300, 250),

Get(oGetList, cName, 10, 40, 150, 20, 'Name'),

Get(oGetList, dDatum, 10, 90, 150, 20, 'Datum'),

if ReadGets(oGetList) then

   Meld('Name: ' + cName + crlf + 'Datum: ' + DToC(dDatum)),

endif,

Siehe auch

ClearGets()

Get()

ReadGets()

GetBrowser()

RefreshGet()


CreateObject()

CreateObject() – Objekt erstellen

Beschreibung

Die Funktion erzeugt ein Objekt.

Parameter

aClassName:C | Klassennamen
aName:C | Objektname
aOwner:O | Besitzer-Objekt
aParent:O | Container-Objekt

Rückgabewert

Objekt - Erstelltes Objekt

Beispiel

| oForm, oBtnC |

function DoOnBtnCClick(sender)

   CloseForm(oForm),

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 200,

oForm.Height      := 100,

oForm.Caption     := 'CreateObject-Test',

oForm.Position    := poScreenCenter,

oBtnC         := CreateObject('TButton', 'BtnC', oForm, oForm),

oBtnC.Width   := 150,

oBtnC.Height  := 20,

oBtnC.Caption := '

oBtnC.Top     := 20,

oBtnC.Left    := 20,

AssignEvent(oBtnC, 'OnClick', 'DoOnBtnCClick'),

ShowModal(oForm),

Siehe auch

DestroyObject()

FindObject()


DestroyObject()

DestroyObject() – Objekt zerstören

Beschreibung

Die Funktion zerstört ein Objekt.

Parameter

aObject:O

Objekt

Rückgabewert

keiner

Beispiel

| oForm |

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 200,

oForm.Height      := 100,

DestroyObject(oForm),

Siehe auch

CreateObject()

FindObject()


EditChangeSel()

EditChangeSel() – Editfeld-Text markieren

Beschreibung

Die Funktion markiert den Text eines von TBeEdit abgeleiteten Edit-Feldes. Es wird der Text von aSelStart bis aSelLength markiert, wobei das erste Zeichen 0 ist. Wird aSelLength nicht übergeben, wird lediglich der Cursor innerhalb des Edit-Feldes versetzt.

Parameter

aEditObject:O | Edit-Objekt
aSelStart:N | Start des markierten Textes
aSelLength:N | Länge des markierten Textes; default

Rückgabewert

Objekt - Edit-Objekt

Beispiel

| oForm, oBtnC, oEdit |

function DoOnBtnCClick(sender)

   oForm.ActiveControl := oEdit,

   EditChangeSel(oEdit, 0, 5),

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 200,

oForm.Height      := 400,

oForm.Caption     := 'CreateObject-Test',

oForm.Position    := poScreenCenter,

oBtnC         := CreateObject('TButton', 'BtnC', oForm, oForm),

oBtnC.Width   := 150,

oBtnC.Height  := 20,

oBtnC.Caption := '

oBtnC.Top     := 20,

oBtnC.Left    := 20,

oEdit      := CreateObject('TBeEdit', 'Edit', oForm, oForm),

oEdit.Top  := 100,

oEdit.Left := 20,

oEdit.Text := 'Hello World',

AssignEvent(oBtnC, 'OnClick', 'DoOnBtnCClick'),

ShowModal(oForm),


FindFieldComponent()

FindFieldComponent() – Feldkomponente finden

Beschreibung

Die Funktion liefert das Control eines DBFields zurück.

Parameter

aOwner:O | Besitzer-Objekt
aField:O | Feldobjekt ( zurückgeliefert durch DbField() )
cClass:C | Klassen-Name des gesuchten Objektes

Rückgabewert

Objekt - Field-Komponente

Beispiel

| oDab010:DB := '2', aField, cClass |

aField := DBField('ARTNR',oDab010),

if Empty(FindFieldComponent(oDab010, aField, 'TEdit')) then

   Meld('Es wurde kein Control gefunden.'),

endif,


FindNextControl()

FindNextControl() – Nächstes Control finden

Beschreibung

Die Funktion ermittlet das in der Tabulatorreihenfolge nach AktControl nachfolgende Control. Wenn AktControl kein untergeordnetes Objekt von Form ist, gibt FindNextControl das erste untergeordnete Control in der Tabulatorreihenfolge zurück.

Parameter

Form:O | Formular
AktControl:O | Aktives Control
SeekForward:L | Vorwärtssuchen
CheckTabStop:L | Das nächste Control muss CheckTabStop = true haben
CheckParent:L | Das nächste Control muss als Parent Form haben

Rückgabewert

Objekt - Nächstes Control

Beispiel

| oForm, oBtnC, oEdit, oObj |

function DoOnBtnCClick(sender)

   oObj := FindNextControl(oForm, oBtnC, false, false, false),

   Meld(oObj.name),

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 200,

oForm.Height      := 400,

oForm.Caption     := 'CreateObject-Test',

oForm.Position    := poScreenCenter,

oBtnC         := CreateObject('TButton', 'BtnC', oForm, oForm),

oBtnC.Width   := 150,

oBtnC.Height  := 20,

oBtnC.Caption := '

oBtnC.Top     := 20,

oBtnC.Left    := 20,

oEdit      := CreateObject('TBeEdit', 'Edit', oForm, oForm),

oEdit.Top  := 100,

oEdit.Left := 20,

oEdit.Text := 'Hello World',

AssignEvent(oBtnC, 'OnClick', 'DoOnBtnCClick'),

ShowModal(oForm),


FindObjByClass()

FindObjByClass() – Objekt nach Klassenname suchen

Beschreibung

Die Funktion gibt, ähnlich wie FindObject(), ein gesuchtes Objekt bzw. Control zurück.

Jedoch wird das Objekt über den angegebenen (u.U. nicht-eindeutigen) Klassen-Namen im Owner-Objekt identifiziert.

Diese Funktion ist im Besonderen dafür gedacht, um gedockte Fenster zu finden, da bei diesen Objekten der Objekt-Name u.U. dynamisch vergeben wird, während der Klassen-Name konstant bleibt.

Parameter

aObject:O | Owner-Objekt
aClassName:C | Klassen-Name des gesuchten Objektes

Rückgabewert

Objekt - Gesuchtes Objekt

Beispiel

| oForm, oBtnC, oEdit, oObj |

function DoOnBtnCClick(sender)

   oObj := FindObjByClass(oForm, 'TButton'),

   Meld(oObj.name),

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 200,

oForm.Height      := 400,

oForm.Caption     := 'CreateObject-Test',

oForm.Position    := poScreenCenter,

oBtnC         := CreateObject('TButton', 'BtnC', oForm, oForm),

oBtnC.Width   := 150,

oBtnC.Height  := 20,

oBtnC.Caption := '

oBtnC.Top     := 20,

oBtnC.Left    := 20,

oEdit      := CreateObject('TBeEdit', 'Edit', oForm, oForm),

oEdit.Top  := 100,

oEdit.Left := 20,

oEdit.Text := 'Hello World',

AssignEvent(oBtnC, 'OnClick', 'DoOnBtnCClick'),

ShowModal(oForm),

Siehe auch

CreateObject()

DestroyObject()

FindObject()


FindObject()

FindObject() – Objekt suchen

Beschreibung

Die Funktion sucht nach einem Objekt und liefert dieses bei Erfolg zurück.

Parameter

aObject:O | Objekt, in welchem gesucht werden soll
aComponentName:C | Name der Komponente

Rückgabewert

Objekt - Gesuchtes Objekt

Beispiel

| oForm, oBtnC, oEdit, oObj |

function DoOnBtnCClick(sender)

   oObj := FindObject(oform, 'Edit'),

   Meld(ClassName(oObj)),

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 200,

oForm.Height      := 400,

oForm.Caption     := 'CreateObject-Test',

oForm.Position    := poScreenCenter,

oBtnC         := CreateObject('TButton', 'BtnC', oForm, oForm),

oBtnC.Width   := 150,

oBtnC.Height  := 20,

oBtnC.Caption := '

oBtnC.Top     := 20,

oBtnC.Left    := 20,

oEdit      := CreateObject('TBeEdit', 'Edit', oForm, oForm),

oEdit.Top  := 100,

oEdit.Left := 20,

oEdit.Text := 'Hello World',

AssignEvent(oBtnC, 'OnClick', 'DoOnBtnCClick'),

ShowModal(oForm),

Siehe auch

CreateObject()

DestroyObject()


FlashTaskBar()

FlashTaskBar() – Taskleiste blinken lassen

Beschreibung

Die Funktion lässt den Taskleisten-Eintrag aufblinken wenn die Applikation zum Zeitpunkt des Funktions-Aufrufs nicht aktiv im Vordergrund ist.

Hinweis

Diese Funktionalität ist evtl. auf älteren Win98/Windows2000-Workstations noch nicht verfügbar.

Parameter

nCount:N

Gibt an, wie oft die Taskleiste blinkt, Default = unendlich

Rückgabewert

Keiner

Beispiel

FlashTaskBar(10)   // Taskleisten-Eintrag 10x blinken lassen


Get()

Get() – GetList definieren

Beschreibung

Die mit CreateGet() erzeugte GetList kann mit Get() näher definiert werden. Jeder Aufruf von Get() entspricht einem Eingabe-Feld im später aufgerufenen Dialogfeld, dabei werden Variablen des Typs C, N, U als Editfeld, D als Datum, und L als Checkbox dargestellt. Die Eingaben des Benutzers in diesen Feldern werden in den jeweiligen Variablen gespeichert. Mit dem Aufruf von ReadGets() wird die GetList als DialogFenster eingeblendet.

Parameter

aGetList:O | GetList Objekt
aVar:R | Ergebnis-Parameter: Variable für Defaultanzeige im Editfeld
aLeft:N | Abstand von Links; default = 0
aTop:N | Abstand von Oben; default = 0
aWidth:N | Breite; default = 0
aHeight:N | Höhe; default = 0
aLabel:C | Bezeichnung; default = Leerstring
aLabelTop:L | Label; default = true true - Bezeichnung über Editfeld false - Bezeichnung links neben Editfeld
aPicture:C | Eingabemaske für Variablen vom Typ N, C oder U; default = Leerstring (Darstellung im Edit-Feld)
aWhen:C | When-Codeblock als Text; default = Leerstring; (vordefinierter Parameter oGet wird an diesen Block übergeben)
aRange:A | Gültigkeitsbereich für Variablen die nicht von Typ L sind; default = nil()
aValidation:C | Codeblock zur Validierung als Text; default = Leerstring; (vordefinierter Parameter oGet wird an diesen Block übergeben)

Rückgabewert

Objekt - GetObjekt

Beispiel

| oGetList, oDab005:DB := '38', cName:C := 'Name', dDatum:D := date |

oGetList := CreateGet('Get-Fenster', 10, 10, 300, 250),

Get(oGetList, cName, 10, 40, 150, 20, 'Name'),

Get(oGetList, dDatum, 10, 90, 150, 20, 'Datum'),

if ReadGets(oGetList) then

   Meld('Name: ' + cName + crlf + 'Datum: ' + DToC(dDatum)),

endif,

Siehe auch

ClearGets()

CreateGet()

ReadGets()

GetBrowser()

RefreshGet()


GetAppMainForm()

GetAppMainForm() – Rückgabe des aktuellen MainForm-Objekts

Beschreibung

Funktion gibt das aktuelle Hauptformular zurück.

Parameter

keine Parameter erwartet

Rückgabewert

Objekt

Beispiel

| oMainForm |

oMainForm := GetAppMainForm(),

writeln(oMainForm.Name)  // 'F_ProgMain' für Programmierung

                         // 'FormMain'   für be-Hauptfenster ...


GetBeOLEProp()

GetBeOLEProp() – OLE-Objekt Eigenschaft auslesen

Beschreibung

Die Funktion ermittelt den Eigenschaftswert eines OLE-Objektes.

Parameter

oOleObj:O | OLE-Objekt
cPropName:C | Eigenschaftsname

Rückgabewert

Undefiniert - Eigenschaftswert

Beispiel

| cCaption, oOleObj |

cCaption := GetBeOLEProp(oOleObj, 'Caption')


GetBrowser()

GetBrowser() – Browser für GetListObjekt

Beschreibung

Die Funktion erzeugt einen Browser für ein GetListObjekt.

Parameter

aGetList:O | GetList-Objekt
aTable:U | Bezugstabelle; default = nil; Es ist auch möglich, ein Array mit Tabellen zu übergeben, die für die Codeblöcke des Browsers zur Verfügung stehen sollen. Dies ist nur dann gültig, wenn der 3. Parameter eine Browser-ID darstellt.
aFields:U | Felder; default = alle Felder der Bezugstabelle; Feldname, FeldnamenArray oder BrowserID (@ + max. 6 Zeichen); Feldname kann selbst auch ein Array mit folgenden Parametern sein; 1. Feldname oder Feldfunktion (selbständiger Codeblock); 2. Spaltenbezeichnung (optional); 3. Spaltenbreite (optional)
aPosition:U | Position, z.B. Positions-Array (siehe Browse())
aReadOnly:L | ReadOnly (trotzdem den Feldrechten untergeordnet); default = true
aDeleteLock:L | Datensätze können nicht gelöscht werden; default = true
aInsertLock:L | Neue Datensätze können nicht erzeugt werden; default = true
aAutoCancel:L | AutoCancel; default = true

Rückgabewert

Objekt - Browser Grid-Objekt

Beispiel

| oGetList, oDab005:DB := '38', cName:C := 'Name', dDatum:D := date |

oGetList := CreateGet('Get-Fenster', 10, 10, 600, 650),

Get(oGetList, cName, 10, 40, 150, 20, 'Name'),

Get(oGetList, dDatum, 10, 90, 150, 20, 'Datum'),

GetBrowser(oGetList, oDab005, {'PERSNR','NAME'}, {100, 150, 400, 400}),

if ReadGets(oGetList) then

   Meld('Name: ' + cName + crlf + 'Datum: ' + DToC(dDatum)),

endif,

Siehe auch

Browse()

ClearGets()

CreateGet()

Get()

ReadGets()

RefreshGet()


GetExTimer()

GetExTimer() – Exakte Zeitmessung

Beschreibung

Die Funktion dient zur genauen Zeitmessung innerhalb von Programmabläufen. Sie gibt eine Zahl zurück, die die Anzahl von Sekunden seit einem Zeitpunkt repräsentiert, und wird von da an hochgezählt. Die Genauigkeit ist hier unter einer ms.

Parameter

keine Parameter erwartet

Rückgabewert

Numerisch - Zeitdifferenz seit Start der Zählung (undefiniert)

Beispiel

| nStart, nEnd |

nStart := GetExTimer(),

Sleep(4000),

nEnd := GetExTimer(),

WriteLn('Programm wurde für ' + Str(nEnd - nStart) + ' Sekunden angehalten.'),


GetOwner()

GetOwner() – Objektowner ermitteln

Beschreibung

Die Funktion gibt den Owner von aComponent wieder.

Parameter

aComponent:O

Komponenten-Objekt von welchem das Owner-Objekt ermittelt werden soll

Rückgabewert

Objekt - Objektowner

Beispiel

| oForm, oBtnC, oEdit, oObj |

function DoOnBtnCClick(sender)

   oObj := GetOwner(oBtnC),

   Meld(oObj.Name),

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 200,

oForm.Height      := 400,

oForm.Name        := 'Form',

oForm.Caption     := 'CreateObject-Test',

oForm.Position    := poScreenCenter,

oBtnC         := CreateObject('TButton', 'BtnC', oForm, oForm),

oBtnC.Width   := 150,

oBtnC.Height  := 20,

oBtnC.Caption := '

oBtnC.Top     := 20,

oBtnC.Left    := 20,

oEdit      := CreateObject('TBeEdit', 'Edit', oForm, oForm),

oEdit.Top  := 100,

oEdit.Left := 20,

oEdit.Text := 'Hello World',

AssignEvent(oBtnC, 'OnClick', 'DoOnBtnCClick'),

ShowModal(oForm),

Siehe auch

GetOwnerForm()

GetParent()

GetParentForm()


GetOwnerForm()

GetOwnerForm() – Formular des Owners ermitteln

Beschreibung

Die Funktion gibt das Formular zurück, zu dem der Owner von aControl gehört.

Parameter

aControl:O

Control-Objekt

Rückgabewert

Objekt - Formular

Beispiel

| oForm, oBtnC, oEdit, oObj |

function DoOnBtnCClick(sender)

   oObj := GetOwnerForm(oEdit),

   Meld(oObj.Name),

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 200,

oForm.Height      := 400,

oForm.Name        := 'Form',

oForm.Caption     := 'CreateObject-Test',

oForm.Position    := poScreenCenter,

oBtnC         := CreateObject('TButton', 'BtnC', oForm, oForm),

oBtnC.Width   := 150,

oBtnC.Height  := 20,

oBtnC.Caption := '

oBtnC.Top     := 20,

oBtnC.Left    := 20,

oEdit      := CreateObject('TBeEdit', 'Edit', oBtnC, oForm),

oEdit.Top  := 100,

oEdit.Left := 20,

oEdit.Text := 'Hello World',

AssignEvent(oBtnC, 'OnClick', 'DoOnBtnCClick'),

ShowModal(oForm),

Siehe auch

GetOwner()

GetParent()

GetParentForm()


GetParent()

GetParent() – Parent ermitteln

Beschreibung

Die Funktion gibt den Parent von aControl zurück.

Parameter

aControl:O

Control-Objekt

Rückgabewert

Objekt - Parent

Beispiel

| oForm, oBtnC, oEdit, oObj |

function DoOnBtnCClick(sender)

   oObj := GetParent(oBtnC),

   Meld(oObj.Name),

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 200,

oForm.Height      := 400,

oForm.Name        := 'Form',

oForm.Caption     := 'CreateObject-Test',

oForm.Position    := poScreenCenter,

oBtnC         := CreateObject('TButton', 'BtnC', oForm, oForm),

oBtnC.Width   := 150,

oBtnC.Height  := 20,

oBtnC.Caption := '

oBtnC.Top     := 20,

oBtnC.Left    := 20,

oEdit      := CreateObject('TBeEdit', 'Edit', oForm, oForm),

oEdit.Top  := 100,

oEdit.Left := 20,

oEdit.Text := 'Hello World',

AssignEvent(oBtnC, 'OnClick', 'DoOnBtnCClick'),

ShowModal(oForm),

Siehe auch

GetOwner()

GetOwnerForm()

GetParentForm()

SetParent()


GetParentForm()

GetParentForm() – Parent eines Controls ermitteln

Beschreibung

Die Funktion gibt das Formular des Controls zurück, das der Parent von aControl ist.

Parameter

aControl:O

Control-Objekt

Rückgabewert

Objekt - Formular

Beispiel

| oForm, oBtnC, oEdit, oObj |

function DoOnBtnCClick(sender)

   oObj := GetParentForm(oBtnC),

   Meld(oObj.Name),

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 200,

oForm.Height      := 400,

oForm.Name        := 'Form',

oForm.Caption     := 'CreateObject-Test',

oForm.Position    := poScreenCenter,

oBtnC         := CreateObject('TButton', 'BtnC', oForm, oForm),

oBtnC.Width   := 150,

oBtnC.Height  := 20,

oBtnC.Caption := '

oBtnC.Top     := 20,

oBtnC.Left    := 20,

oEdit      := CreateObject('TBeEdit', 'Edit', oForm, oForm),

oEdit.Top  := 100,

oEdit.Left := 20,

oEdit.Text := 'Hello World',

AssignEvent(oBtnC, 'OnClick', 'DoOnBtnCClick'),

ShowModal(oForm),

Siehe auch

GetOwner()

GetOwnerForm()

GetParent()

SetParent()


GetWindowNavigator()

GetWindowNavigator() – Fenster-Navigator-Objekt

Beschreibung

Funktion gibt den Fenster-Navigator zurück.

Hinweis

Funktioniert nur in Modulen, die den Fenster-Navigator zur Verfügung stellen.

Parameter

keine Parameter erwartet

Rückgabewert

Objekt

Beispiel

//******************************************************************************

// - Funktion erstellt im Fenster-Navigator eine "eigene Oberfläche", die

//   bisherige Oberfläche wird überblendet.

// - Angezeigt wird ein Browser und ein RichMemo, darin wird die

//   Standard-Tabelle "Textbausteine" (Workarea 12) geladen.

// - Diese Funktion kann aus einem beliebigen Kontext aufgerufen werden

//   (z.B. individueller Menüpunkt). Funktioniert nur in Fenstern, in denen der

//   Fenster-Navigator auch im Standard zur Verfügung steht.

//******************************************************************************

function SwitchNavigatorVisible()

| oDockPanel, oWN, oNavigPanel, oMyForm, oRichMemo, oGrid, oTable, oDataSource |

   oWN := GetWindowNavigator(),

   if not empty(oWN) then

      oDockPanel := FindObject(oWN, 'WINDOW_NAVIG_DOCK_PANEL'),

      if not empty(oDockPanel) then

         oNavigPanel := FindObject(oWN, 'WINDOW_NAVIG_PANEL'),

         if not empty(oNavigPanel) then

            startseq,

               oMyForm := FindObject(oDockPanel, 'MYFORM'),

               if empty(oMyForm) then

                  oMyForm               := CreateObject('TFormEx', 'MYFORM', oDockPanel, oDockPanel),

                  oMyForm.Align         := alCLient,

                  oMyForm.BorderStyle   := bsNone,

                  oTable                := DbGetTable(gl_odm, 12),

                  oDataSource           := CreateObject('TDataSourceEx', , oMyForm, oMyForm),

                  oDataSource.DataSet   := oTable,

                  oGrid                 := CreateObject('TBeAltGrid', , oMyForm, oMyForm),

                  oGrid.Align           := alBottom,

                  oGrid.Height          := 200,

                  oGrid.DataSource      := oDataSource,

                  oGrid.RegisterDataSet := oTable,

                  oGrid.ID              := '@HINTXT',

                  oGrid.ReadWriteProps  := false,

                  oRichMemo             := CreateObject('TBeRichEditEx', , oMyForm, oMyForm),

                  oRichMemo.Align       := alClient,

                  oRichMemo.DataSource  := oDataSource,

                  oRichMemo.DataField   := 'MEMO',

                  Show(oMyForm), // erstes Anzeigen des Forms sollte immer im Show() laufen

               endif,

               // Sichtbarkeit umschalten

               oMyForm.Visible := not oMyForm.Visible,

            onerror,

               MessageDlg('Fehler beim Anzeigen des eigenen Navigators: ' + crlf +

                          GetErrorText(), mtError),

            stopseq,

         endif,

      endif,

   endif,

end,

SwitchNavigatorVisible(),


Hide()

Hide() – Control verstecken

Beschreibung

Die Funktion versteckt ein Control. Dazu wird die Eigenschaft Visible auf false gesetzt. Ein solch verstecktes Objekt kann mit Hilfe von Show() bzw Visible := true wieder angezeigt werden.

Parameter

aFormObject:O

Objekt welches versteckt werden soll

Rückgabewert

keiner

Beispiel

| oForm, oBtnShow, oBtnHide, oLabel |

function DoHide()

   Hide(oLabel),

   oBtnHide.enabled := false,

   oBtnShow.enabled := true,

end,

function DoShow()

   Show(oLabel),

   oBtnHide.enabled := true,

   oBtnShow.enabled := false,

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 366,

oForm.Height      := 120,

oForm.Caption     := 'Hide() und Show()',

oForm.Position    := poScreenCenter,

oBtnShow         := CreateObject('TButton', 'BtnShow', oForm, oForm),

oBtnShow.Width   := 150,

oBtnShow.Height  := 20,

oBtnShow.Caption := '

oBtnShow.Top     := 10,

oBtnShow.Left    := 10,

oBtnShow.enabled := false,

oBtnHide         := CreateObject('TButton', 'BtnHide', oForm, oForm),

oBtnHide.Width   := 150,

oBtnHide.Height  := 20,

oBtnHide.Caption := '

oBtnHide.Top     := 10,

oBtnHide.Left    := 190,

oLabel          := CreateObject('TLabel', 'Label', oForm, oForm),

oLabel.Width    := 150,

oLabel.Height   := 20,

oLabel.Caption  := 'Mich kann man verstecken und wieder anzeigen!',

oLabel.Top      := 60,

oLabel.Left     := 60,

AssignEvent(oBtnShow, 'OnClick', 'DoShow'),

AssignEvent(oBtnHide, 'OnClick', 'DoHide'),

ShowModal(oForm),

Siehe auch

BringToFront()

SendToBack()

Show()


Invalidate()

Invalidate() – Neuzeichnen eines Controls auslösen

Beschreibung

Verwenden Sie Invalidate, wenn das gesamte Steuerelement neu gezeichnet werden muß. Wenn mehrere Bereiche innerhalb des Steuerelements neu aufgebaut werden müssen, zeichnet Invalidate das gesamte Fenster ohne Bildschirmflackern neu.

Es wirkt sich auch nicht negativ auf die Ausführungsgeschwindigkeit aus, wenn Invalidate vor dem Neuzeichnen des Steuerelements mehrere Male aufgerufen wird.

Parameter

aControl:O

Control

Rückgabewert

keiner

Beispiel

| oForm, oBtnC, oEdit |

function DoOnBtnCClick(sender)

   Invalidate(oEdit),

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 200,

oForm.Height      := 400,

oForm.Name        := 'Form',

oForm.Caption     := 'CreateObject-Test',

oForm.Position    := poScreenCenter,

oBtnC         := CreateObject('TButton', 'BtnC', oform, oForm),

oBtnC.Width   := 150,

oBtnC.Height  := 20,

oBtnC.Caption := '

oBtnC.Top     := 20,

oBtnC.Left    := 20,

oEdit      := CreateObject('TBeEdit', 'Edit', oBtnC, oForm),

oEdit.Top  := 100,

oEdit.Left := 20,

oEdit.Text := 'Hello World',

AssignEvent(oBtnC, 'OnClick', 'DoOnBtnCClick'),

ShowModal(oForm),


IsObject()

IsObject() – Prüfung auf Objekt

Beschreibung

Die Funktion prüft, ob es sich bei aVar um ein Objekt handelt.

Parameter

aVar:U

zu prüfende Variable

Rückgabewert

Logisch / Boolean - Ist Objekt

Beispiel

| uIsObj1:DB := '3', uIsObj2:N := 5, uIsObj3:D := date |

WriteLn(IsObject(uIsObj1)),

WriteLn(IsObject(uIsObj2)),

WriteLn(IsObject(uIsObj3)),

Siehe auch

IsWindow()


IsWindow()

IsWindow() – Fensterhandle prüfen

Beschreibung

Die Funktion prüft, ob ein Fensterhandle noch gültig ist.

Parameter

aHandle:N

Handle-Nummer welche geprüft werden soll

Rückgabewert

Logisch / Boolean - Fensterhandle gültig

Beispiel

| aHandle |

IsWindow(aHandle)

Siehe auch

IsObject()


ModalResult()

ModalResult() – Modales Fenster schließen

Beschreibung

Die Funktion schließt ein modal geöffnetes Fenster (z.B. durch ShowModal()), indem aModalValue ein anderer Wert als mrNone zugewiesen wird.

Parameter

aFormObject:O | Fensterobjekt
aModalValue:N | Rückgabewert von ShowModal()

Rückgabewert

keiner

Beispiel

| oForm, oBtnC, oEdit |

function DoOnBtnCClick(sender)

   ModalResult(oForm, 1),

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 200,

oForm.Height      := 400,

oForm.Name        := 'Form',

oForm.Caption     := 'CreateObject-Test',

oForm.Position    := poScreenCenter,

oBtnC         := CreateObject('TButton', 'BtnC', oform, oForm),

oBtnC.Width   := 150,

oBtnC.Height  := 20,

oBtnC.Caption := '

oBtnC.Top     := 20,

oBtnC.Left    := 20,

oEdit      := CreateObject('TBeEdit', 'Edit', oBtnC, oForm),

oEdit.Top  := 100,

oEdit.Left := 20,

oEdit.Text := 'Hello World',

AssignEvent(oBtnC, 'OnClick', 'DoOnBtnCClick'),

if ShowModal(oForm) = 1 then

   Meld('Der Rückgabewert des Formulares ist 1'),

endif,

Siehe auch

Show()

ShowModal()


ReadGets()

ReadGets() – GetList anzeigen

Beschreibung

Die Funktion zeigt ein GetListObjekt an.

Parameter

aGetList:O

GetList-Objekt

Rückgabewert

Logisch / Boolean - Ok Button wurde gedrückt

Beispiel

| oGetList, oDab005:DB := '38', cName:C := 'Name', dDatum:D := date |

oGetList := CreateGet('Get-Fenster', 10, 10, 300, 250),

Get(oGetList, cName, 10, 40, 150, 20, 'Name'),

Get(oGetList, dDatum, 10, 90, 150, 20, 'Datum'),

if ReadGets(oGetList) then

   Meld('Name: ' + cName + crlf + 'Datum: ' + DToC(dDatum)),

endif,

Siehe auch

ClearGets()

CreateGet()

Get()

GetBrowser()

RefreshGet()


RefreshAllGets()

RefreshAllGets() – Alle Get-Objekte aktualisieren

Beschreibung

Die Funktion prüft die WHEN-Bedingung aller Controls eines GetList-Objektes und schaltet ihre ReadOnly-Eigenschaft an bzw. aus. Die Funktion darf nur aufgerufen werden, während das GetList-Objekt angezeigt wird. Die Funktion dient dazu, Statusänderungen unabhängig vom Fokuswechsel überprüfen zu lassen (z.B. bei einem Button-Click).

Parameter

aGetList:O

GetList-Objekt

Rückgabewert

keiner

Beispiel

| oGet, cKdnr:N, aButton, lRefresh:L := false |

aButton := {{1,gctbutton}},

cKdnr   := '123',

oGet    := CreateGet('RefreshTest', 100, 100, 300, 300),

Get(oGet, cKdnr, 10, 10, 100, 20,,,, 'lRefresh'),

function refresh()

   cKdnr    := '456',

   lRefresh := true,

   RefreshAllGets(oGet),

end,

Get(oGet, aButton, 10, 50, 100, 20, 'Refresh',,,,, "refresh()"),

ReadGets(oget),

Siehe auch

ClearGets()

CreateGet()

Get()

ReadGets()

GetBrowser()

RefreshGet()


RefreshGet()

RefreshGet() – Get-Objekt aktualisieren

Beschreibung

Die Funktion prüft die WHEN-Bedingung eines Get-Objektes und schaltet seine ReadOnly-Eigenschaft an bzw. aus. Die Funktion darf nur aufgerufen werden, während das Get-Objekt angezeigt wird.

Parameter

aGetObject:O

Get-Objekt

Rückgabewert

keiner

Beispiel

| oGet, oGetKdnr, oGetArtnr, cKdnr, cArtnr, aButton, lRefresh:L := false |

aButton   := {{1, gctbutton}},

cKdnr     := '123',

cArtnr    := 'ABC',

oGet      := CreateGet('RefreshTest', 100, 100, 300, 300),

oGetKdnr  := Get(oGet, cKdnr, 10, 10, 100, 20,,,, 'lRefresh'),

oGetArtnr := Get(oGet, cArtnr, 10, 40, 100, 20,,,, 'lRefresh'),

function refresh()

   cKdnr    := '456',

   cArtnr   := 'DEF',

   lRefresh := true,

   RefreshGet(oGetArtnr),

end,

Get(oGet, aButton, 10, 80, 100, 20, 'Refresh',,,,, "refresh()"),

ReadGets(oget),

Siehe auch

ClearGets()

CreateGet()

Get()

ReadGets()

GetBrowser()


RetainObject()

RetainObject() – Objekt im Speicher halten

Beschreibung

Normalerweise werden alle Objekte automatisch freigegeben, die innerhalb eines Codeblocks ohne Owner erzeugt wurden. Die Freigabe erfolgt, wenn die Ausführung des Codeblocks endet.

Die Funktion RetainObject() nimmt aObject aus der internen Liste der Objekte, die automatisch gelöscht werden sollen. Damit ergibt sich die Möglichkeit, dass ein Codeblockprogramm als Rückgabewert eine gültige Objektreferenz liefert, die im aufrufenden Block weiter verwendet werden kann. Außerdem kann ein Objekt einer globalen Variablen zugewiesen werden, die auch nach Beendigung des Blocks gültig bleibt.

Parameter

aObject:O

Objekt, welches erhalten bleiben soll

Rückgabewert

keiner

Beispiel

| G_File:_U |

if File('C:\temp\xxx.sql') then

   G_File := FOpen('C:\temp\xxx.sql'),

   RetainObject(G_File),

endif


SendToBack()

SendToBack() – Control in den Hintergrund schicken

Beschreibung

Die Funktion schickt ein Objekt in den Hintergrund, d.h. die Z-Order des Controls wird verringert.

Parameter

aControl:O

Control-Objekt

Rückgabewert

keiner

Beispiel

| oForm, oBtnFront, oBtnBack, oLabel, oMemo |

function DoHide()

   SendToBack(oBtnBack),

end,

function DoShow()

   BringToFront(oBtnBack),

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 366,

oForm.Height      := 120,

oForm.Caption     := 'SendToBack() und BringToFront()',

oForm.Position    := poScreenCenter,

oBtnFront         := CreateObject('TButton', 'BtnShow', oForm, oForm),

oBtnFront.Width   := 150,

oBtnFront.Height  := 20,

oBtnFront.Caption := '

oBtnFront.Top     := 10,

oBtnFront.Left    := 10,

oBtnBack         := CreateObject('TButton', 'BtnHide', oForm, oForm),

oBtnBack.Width   := 150,

oBtnBack.Height  := 20,

oBtnBack.Caption := '

oBtnBack.Top     := 10,

oBtnBack.Left    := 190,

oMemo        := CreateObject('TMemo', 'Memo', oForm, oForm),

oMemo.Width  := 160,

oMemo.Height := 30,

oMemo.Top    := 5,

oMemo.Left   := 185,

SendtoBack(oMemo),

AssignEvent(oBtnFront, 'OnClick', 'DoShow'),

AssignEvent(oBtnBack, 'OnClick', 'DoHide'),

ShowModal(oForm),

Siehe auch

BringToFront()

Hide()


SetBeOLEProp()

SetBeOLEProp() – OLE-Objekt Eigenschaft setzen

Beschreibung

Die Funktion setzt den Eigenschaftswert eines OLE-Objektes.

Parameter

oOleObj:O | OLE-Objekt
cPropName:C | Eigenschaftsname
uValue:U | Neuer Eigenschaftswert

Rückgabewert

keiner

Beispiel

| oOleObj |

SetBeOLEProp(oOleObj, 'Width', 500),


SetParent()

SetParent() – Parent setzen

Beschreibung

Die Funktion setzt für das Control-Objekt ein neues Partent-Objekt.

Parameter

aControl:O | Control-Objekt
aNewParent:O | neues Parent-Objekt

Rückgabewert

keiner

Beispiel

| oParent, oForm, oPanel, oPanel2, oLabel |

oForm   := CreateObject('TForm'),

oPanel  := CreateObject('TBePanel', 'Panel', oForm),

oPanel2 := CreateObject('TBePanel', 'Panel2', oForm),

oLabel  := CreateObject('TLabel', 'Label', oForm, oPanel),

oParent := GetParent(oLabel),

WriteLn(oParent.name),

SetParent(oLabel, oPanel2),

oParent := GetParent(oLabel),

WriteLn(oParent.name),

DestroyObject(oForm),

Siehe auch

GetParent()

GetParentForm()


Show()

Show() – Objekt anzeigen

Beschreibung

Die Funktion blendet ein Control ein. Dazu wird die Eigenschaft Visible auf true gesetzt. Ein Objekt kann mit Hilfe von Hide() bzw Visible = false ausgeblendet werden.

Parameter

aFormObject:O

Objekt, welches angezeigt werden soll

Rückgabewert

keiner

Beispiel

| oForm, oBtnShow, oBtnHide, oLabel |

function DoHide()

   Hide(oLabel),

   oBtnHide.enabled := false,

   oBtnShow.enabled := true,

end,

function DoShow()

   Show(oLabel),

   oBtnHide.enabled := true,

   oBtnShow.enabled := false,

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 366,

oForm.Height      := 120,

oForm.Caption     := 'Hide() und Show()',

oForm.Position    := poScreenCenter,

oBtnShow         := CreateObject('TButton', 'BtnShow', oForm, oForm),

oBtnShow.Width   := 150,

oBtnShow.Height  := 20,

oBtnShow.Caption := '

oBtnShow.Top     := 10,

oBtnShow.Left    := 10,

oBtnShow.enabled := false,

oBtnHide         := CreateObject('TButton', 'BtnHide', oForm, oForm),

oBtnHide.Width   := 150,

oBtnHide.Height  := 20,

oBtnHide.Caption := '

oBtnHide.Top     := 10,

oBtnHide.Left    := 190,

oLabel         := CreateObject('TLabel', 'Label', oForm, oForm),

oLabel.Width   := 150,

oLabel.Height  := 20,

oLabel.Caption := 'Mich kann man verstecken und wieder anzeigen!',

oLabel.Top     := 60,

oLabel.Left    := 60,

AssignEvent(oBtnShow, 'OnClick', 'DoShow'),

AssignEvent(oBtnHide, 'OnClick', 'DoHide'),

ShowModal(oForm),

Siehe auch

CloseForm()

ModalResult()

ShowModal()


ShowModal()

ShowModal() – Fenster modal anzeigen

Beschreibung

Die Funktion zeigt ein Fenster modal an. Das heißt, das Fenster wird in dem Vordergrund von BE erzeugt und solange es nicht beendet wird kann nur in diesem Fenster gearbeitet werden. Wird das Fenster geschlossen, liefert es einen numerischen Wert zurück, der der Eigenschaft ModalResult entspricht. Diese Eigenschaft kann mit der Funktion ModalResult() gesetzt werden.

Parameter

aFormObject:O

Form-Objekt, welches angezeigt werden soll

Rückgabewert

Numerisch - Modales Ergebnis (kann über ModalResult() zugewiesen werden). Standardmäßig: mrNone

Beispiel

| oForm, oBtnC, oEdit |

function DoOnBtnCClick( sender )

   ModalResult(oForm, 1),

end,

oForm             := CreateObject('TForm'),

oForm.BorderStyle := bsSingle,

oForm.Width       := 200,

oForm.Height      := 400,

oForm.Name        := 'Form',

oForm.Caption     := 'CreateObject-Test',

oForm.Position    := poScreenCenter,

oBtnC         := CreateObject('TButton', 'BtnC', oform, oForm),

oBtnC.Width   := 150,

oBtnC.Height  := 20,

oBtnC.Caption := '

oBtnC.Top     := 20,

oBtnC.Left    := 20,

oEdit      := CreateObject('TBeEdit', 'Edit', oBtnC, oForm),

oEdit.Top  := 100,

oEdit.Left := 20,

oEdit.Text := 'Hello World',

AssignEvent(oBtnC, 'OnClick', 'DoOnBtnCClick'),

if ShowModal(oForm) = 1 then

   Meld('Der Rückgabewert des Formulares ist 1'),

endif,

Siehe auch

ModalResult()

Show()


Abort()

Abort() – Programmabbruch

Beschreibung

Die Funktion erzeugt einen künstlichen Programmfehler, der die Ausführung eines Codeblocks abbricht.

Falls ein solcher Fehler nicht durch eine Fehlerauffangroutine abgefangen wird, kann es sein, dass der Fehler sich bis ins Protokoll durchschlägt. Da aber nicht immer eine Fehlerauffangroutine sinnvoll ist, kann die Protokollierung von Fehlern durch den Parameter aNoRecording:L beeinflusst werden.

Parameter

aNoRecording:L

Fehler wird nicht protokolliert; default = false

Rückgabewert

keiner

Beispiel

WriteLn("Ausgabe 1"),

Abort(true),

WriteLn("Ausgabe 2"),

Siehe auch

SetError()


AssignBlockEvent()

AssignBlockEvent() – Ereignis festlegen

Beschreibung

Die Funktion legt ein Ereignis für den aktuellen CodeBlock fest. Jedes Mal, wenn das angegebene Ereignis eintrifft, wird die in aFuncName übergebene Funktion ausgeführt.

Parameter

aPropName:C | Eventfunktionsname
aFuncName:C | Funktionsname

Rückgabewert

Objekt

Beispiel

// < Im Maskeneditor >

function DoBeforeDestroy(sender)

   Meld('Programmcode wurde zerstört'),

end,

AssignBlockEvent("OnDestroy", "DoBeforeDestroy"),

Siehe auch

AssignEvent()


BeCallStack()

BeCallStack() - Ausgabe Delphi-Callstack

Beschreibung

Die Funktion ermittelt den aktuellen Delphi-Callstack (aktueller Funktionsaufrufbaum) an der aktuellen Programmstelle.

Parameter

keine Parameter erwartet

Rückgabewert

Text

Beispiel

BeCallStack()

www.dontenwill.de | www.business-express.de


BeLogError()

BeLogError() - Schreiben BE-Fehlerprotokoll veranlassen

Beschreibung

Die Funktion veranlasst das Schreiben eines BE-Fehlerprotokolls inkl. Delphi-Callstack an der aktuellen Programmstelle.

Parameter

cErrorText:C

eigener Fehlertext

Rückgabewert

Text

Beispiel

| cRes |

cRes := '',

if DAB410:RUE_PROD < 0 then

   cRes := ArrToStr(DAB410.RecAsArray),

   cRes := StrTran(cRes, '},{', '},' + crlf + '{'),

   BeLogError('DAB410:RUE_PROD < 0: ' + crlf + cRes),

endif,


Call()

Call() – CodeBlock-Programm aufrufen

Beschreibung

Die Funktion ruft ein CodeBlock-Programm mit Parametern auf.

Es lassen sich nur freigegebene CodeBlock-Programme aufrufen, Call() startet immer nur die aktive Version eines Programmes. Die Funktion prüft das Ausführungsrecht des Programmes.

Falls das aufgerufene Programm Werte übernehmen soll, müssen diese in der Reihenfolge übergeben werden, wie sie im Deklarationsteil mittels P1 bis Pn zugewiesen sind. Überzählige Parameter werden ignoriert, fehlende Parameter werden mit dem Defaultwert der Deklaration initialisiert.

Parameter

aProg:U | Name des Programmes. Der Programmname muss den kompletten Pfad enthalten.
aParam:U,... | Übergabe von Parametern; default = null()

Rückgabewert

Undefiniert - Rückgabewert des aufgerufenen Programms

Beispiel

// < Programm 'Test-Prog' anlegen und freigeben >

| p1:P1 := false, p2:P2 := false, p3:P3 := false, p4:P4 := 'Parameter 4' |

WriteLn(p1),

WriteLn(p2),

WriteLn(p3),

WriteLn(p4),

// < Neues Programm anlegen >

Call('Test-Prog', 'Parameter1', 5, true),

Siehe auch

CallResident


CallbackInfo()

CallbackInfo() – Callback-Objekt für Rückfrage-Funktionen

Beschreibung

CallbackInfo erzeugt ein Callback-Objekt, mit dem Funktionsaufrufe als Parameter übergeben werden können.

Hinweis

Callback-Funktionen müssen formal folgenden Funktionskopf aufweisen: function AnyCallbackFunc(oCallbackInfo).

Der Callback-Funktion wird das Callback-Objekt als Parameter übergeben. Die Callback-Funktion muss einen Wert (wie unter Execute beschrieben) als Result ausgeben, der der Ausführung des Dialogfelds entspricht.

Wird mrNone zurückgegeben, erscheint ein Dialog entsprechend der Eigenschaften des Callback-Objekts. Jeder andere Rückgabewert unterdrückt den Dialog. Instanzen von TCbCallbackInfo werden vom Codeblock verwaltet. Die Verwendung von DestroyObject ist optional.

Derzeit nutzt die Funktion 'ProdOrdFinish()' einen Parameter diesen Typs.

Parameter

cFuncName:C

Name der Funktion, die über das Callback-Objekt aufgerufen werden soll. Die Funktion muss existieren.

Rückgabewert

Objekt vom Typ TCbCallbackInfo.

Eigenschaften von TCbCallbackInfo:

MessageID: wird vom Programm gesetzt, falls in einer Funktion verschiedene Rückfragen vorkommen

MsgText: Text der Meldung

DlgType: Dialogfeldtyp (mtWarning, mtError, mtInformation, mtConfirmation, mtCustom)

Buttons: Schalter, die angezeigt werden sollen (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry,

mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp)

Result: Während der Callback-Funktion:Vorgabewert für Result, sonst Ergebnis des letzten Aufrufs

der Funktion

Execute: Startet die Callback-Funktion und liefert das Ergebnis der Callback-Funktion bzw. des Dialoges

(mrNone, mrOk, mrCancel, mrAbort, mrRetry, mrIgnore, mrYes, mrNo)

Beispiel

| oCallback |

function MyCallbackFunction(oCallback:O)

  WriteLn('"CallbackFunction" wurde aufgerufen mit MessageID: ' + Str(oCallback.MessageID)),

  case oCallback.MessageID

    of 1 :: Result := mrNo,

    of 2 :: Result := mrNone,

  endcase,

end,

oCallback:= CallbackInfo('MyCallbackFunction'),

StartSeq,

   oCallback.DlgType := mtConfirmation,

   oCallback.Buttons := _OR(mbCancel, mbRetry),

   oCallback.MsgText := 'Der Zugriff auf die Datei war nicht möglich!',

   oCallback.MessageID := 1,

   oCallback.Execute,        // erster Aufruf

   writeln('Antwort der Funktion: ' + Str(oCallback.Result)),

   oCallback.MessageID := 2,

   oCallback.Execute,        // zweiter Aufruf

   writeln('Antwort der Funktion: ' + Str(oCallback.Result)),

Always,

  DestroyObject(oCallback),

StopSeq,


CallPersist()

CallPersist() – CodeBlock-Programm persistent aufrufen

Beschreibung

Die Funktion dient dem Aufruf eines CodeBlock-Programms, dass als eigene Instanz persistent geladen bleibt und sich nach Ende des Programms selber freigibt. CallPersist() unterscheidet sich von einem "normalen" Call() dadurch, dass im Programm mit LoadForm() oder CreateObject( ..., Persist = True) erstellte Objekte und vor allem Events am Ende des Programmes nicht automatisch freigegeben (sprich: gelöscht) werden, sondern dass das Programm persistent im Speicher bleibt. CallPersist() kann z.B. verwendet werden, um ein eigenes MDI-Child-Fenster persistent zu erstellen. Sobald alle zum Programm gehörigen persistenten Objekte freigegeben wurden, gibt sich das Programm selber frei (spich: Löscht sich selber aus dem Speicher). Wird das Programm explizit freigegeben (z.B. durch Drücken des "Programmausführung abbrechen"-Buttons in der Programmierung) werden alle persistenten Objekte freigegeben.

Parameter

uProg:U | Programm-ID (Nr. oder Name)
aParam1:U | Zu übergebende Parameter; default = null()

Rückgabewert

Undefined - Rückgabewert des aufgerufenen Programms

Beispiel

// < Menüpunkt in einem Indiviudal - Haupt-Menü >

| oForm |

if Empty(oForm) then

   oForm := CallPersist('IndiMask\MDITest', GetOwner(Self)),

else

   BringToFront(oForm),

endif,

oForm


CallResident()

CallResident() – CodeBlock-Programm einmalig aufrufen

Beschreibung

Die Funktion ist im Prinzip identisch mit Call(). Bei CallResident() wird das Programm jedoch nur einmal geladen, bleibt dann für jeden weiteren Aufruf im Hauptspeicher und muss so nicht erneut geladen werden. Hierbei ist aber darauf zu achten, dass das auszuführende Programm 100% fehlerfrei sein sollte, da sonst bei einem Fehler die ganze Applikation neugestartet werden muss, um das Programm wieder neu zu laden.

Parameter

aProg:C | Name des Programms, das ausgeführt werden soll
aParam1:U,… | Übergabe von Parametern; default = null()

Rückgabewert

Undefiniert - Rückgabewert des aufgerufenen Programms

Beispiel

// < Programm 'Test-Prog' anlegen und freigeben >

| p1:P1 := false, p2:P2 := false, p3:P3 := false, p4:P4 := 'Parameter 4' |

WriteLn(p1),

WriteLn(p2),

WriteLn(p3),

WriteLn(p4),

// < Neues Programm anlegen >

CallResident('Test-Prog', 'Parameter1', 5, true),

Siehe auch

Call()

Cancel()


CallStack()

CallStack() – Programmliste aller Aufrufe

Beschreibung

Die Funktion liefert die Liste der übergeordneten Programme als Array. Das letzte Element der Liste ist der Name des aufrufenden Programms. In Codeblöcken, die kein Bestandteil der Programm-Library sind (dazu zählen z.B. alle Blöcke des Reportgenerators, der Rechteverwaltung etc.) ist der Rückgabewert im Rahmen der obersten Programmebene leer.

Parameter

keine Parameter erwartet

Rückgabewert

Array

Beispiel

//< Programm 'Prog1' anlegen und freigeben >

| aStack, i |

aStack := CallStack(),

if !Empty(aStack) then

   WriteLn(''),

   Writeln('Callstack'),

   for i := 1 to ALen(aStack) do

      WriteLn(aStack[i]),

   end,

endif,

//< Programm 'Prog2' anlegen und freigeben >

Call('Prog1'),


Cancel()

Cancel() – Residentes Programm abbrechen

Beschreibung

Die Funktion entfernt ein Programm aus der Liste der residenten Programme. Diese Funktion kann dazu verwendet werden um Programme, die mit CallResident() aufgerufen wurden, aus dem Hauptspeicher zu entfernen. Dies ist notwendig falls ein residentes Programm einen Fehler verursacht. Wird Cancel() nicht ausgeführt, würde das residente Programm nicht mehr ausgeführt werden und könnte erst wieder mit einem Neustart der ganzen Applikation gestartet werden.

Parameter

aProg:U

Programm

Rückgabewert

Logisch / Boolean - Abbruch erfolgreich

Beispiel

CallResident('Test-Prog'),

Cancel('Test-Prog')

Siehe auch

CallResident


Compile()

Compile() – Precompilierung eines CodeBlocks

Beschreibung

Die Funktion precompiliert das übergebene CodeBlock-Programm. Es wird ein TEvalBlock für die Weiterverwendung in der Funktion Eval() erzeugt.

Parameter

aFunction:C

Kompletter Text eines CodeBlock-Programms

Rückgabewert

Objekt - TEvalBlock-Objekt. Bei Fehler Exception

Beispiel

| CB |

CB := '| String |' + 'String := ''Hello'',' + 'Meld(String),',

Eval(Compile(CB)),

Siehe auch

Eval()


CreateClassID()

CreateClassID() – Neue GUID erzeugen

Beschreibung

Die Funktion CreateClassID generiert eine neue GUID und gibt diese als String zurück.

Parameter

keine Parameter erwartet

Rückgabewert

Alphanumerisch - Neue GUID

Beispiel

CreateClassID()

www.dontenwill.de | www.business-express.de


EditorMode()

EditorMode() – Überprüfung auf Editor

Beschreibung

Mit dieser Funktion kann im Codeblock festgestellt werden, ob das Programm im Programmeditor ausgeführt wird, oder als echter Programmaufruf über die Programmauswahl oder via Call() gestartet wurde.

Parameter

keine Parameter erwartet

Rückgabewert

Logisch / Boolean - Aufrufmodus

true - im Programmeditor aufgerufen

false - als echter Programmaufruf

Beispiel

if EditorMode() then

   Meld('Aufruf im Programmeditor!')

else

   Meld('Aufruf als echtes Programm!')

endif,


Eval()

Eval() – Ausführung eines Codeblocks

Beschreibung

Die Funktion führt einen precompilierten CodeBlock-Text ("TEvalBlock"-Objekt) aus (geliefert von der Funktion Compile()), oder führt einen direkt übergebenen CodeBlock-Text aus. Bei einem Fehler wird eine Exception ausgeworfen.

Wird im ersten Parameter ein Codeblock (Character) übergeben, so wird der auszuwertende Ausdruck optimiert, berechnet und sofort wieder verworfen. Dies führt bei längeren Funktionen, die mehrfach aufgerufen werden, zu einer niedrigen Ablaufgeschwindigkeit. Wird im ersten Parameter ein Objekt vom Typ 'TEvalBlock' (zovor mit Complile() erzeugt) übergeben, so bliebt die optimierte Funktion erhalten und Eval übergibt nur noch die Parameter an den Block.

Das Objekt "TEvalBlock" besitzt die Eigenschaft 'FuncText', die jederzeit änderbar ist. Eine neue Zuweisung erzeugt eine neue Funktionalität. Ein Fehler beim Erzeugen des Objektes oder bei der Änderung von 'FuncText' löst eine Exception aus, die im Rahmen einer Fehlerauffangroutine behandelt werden kann. Hier kann die Fehlernummer über die Eigenschaft 'ErrCode' ausgewertet werden.

Parameter

aBlock:U | Vollständiger CodeBlock-Text oder TEvalBlock-Objekt
aLocalParam:U | Parameter; default = null()

Rückgabewert

Undefiniert - Rückgabewert des CodeBlock-Textes

Beispiel

| aBlock, aFunction, i, aMax, oDab000:DB := '1,1' |

function MyBlockEval(aBlock)

   ShowMessage(Eval(aBlock, Time())),

end,

aFunction := '| oDab000, aIntro, aResult | '                         + crlf +

             '   aResult := aIntro + '                               + crlf +

             '              AllTrim(AllTrim(oDab000:Name1) + " " + ' + crlf +

             '              AllTrim(oDab000:Name2)), '               + crlf +

             '   DbSkip(1, oDab000), '                               + crlf +

             '   aResult',

aMax := 10,

// Ausführung eines nicht vorkompilierten Blocks mittels "Eval()"

DbGoTop(oDab000),

for i := 1 to aMax do

   WriteLn(Eval(aFunction, oDab000, 'Name: ')),

next,

// Ausführung eines vorkompilierten Blocks

// erzeugt ein TEvalBlock-Objekt

aBlock := Compile(aFunction),

if not Empty(aBlock) then

   for i := 1 to aMax do

      WriteLn(Eval(aBlock, oDab000, 'Name: ')),

   next,

   // eine neue Funktion zuweisen

   aBlock.FuncText := '"Nur noch Text ..."',

   WriteLn(Eval(aBlock)),

   // einen Fehler abfangen

   startseq,

      // A und B sind nicht definiert

      aBlock.FuncText := 'A + B',

      WriteLn('Dies wird nie ausgeführt!'),

   onerror

      WriteLn('Fehler im Codeblock: Code = ' + Str(aBlock.ErrCode)),

   stopseq,

   aBlock.FuncText := '| t | ' + crlf +

                      ' t + " - Ende"',

   // Übergabe als Parameter an Funktionen

   MyBlockEval(aBlock),

   DestroyObject(aBlock),

endif,


ExName()

ExName() – Alle Feld-Namen aus einem CodeBlock-Source extrahieren

Beschreibung

Funktion, um alle Feld-Namen aus einem CodeBlock-Source extrahieren

Parameter

aProgText:C | CodeBlock-Source
aWorkAreas:U | WorkAreas oder Tabellen-Objekte, deren Feld-Namen extrahiert werden sollen
aExArray:A | wird nicht verwendet

Rückgabewert

Array


GetEnv()

GetEnv() – Globale Variable

Beschreibung

Die Funktion gibt den Wert einer globalen Variablen zurück. Der Wert kann mit SetEnv() gesetzt werden.

Parameter

aVarName:C

Variablen-Name

Rückgabewert

Alphanumerisch - Globale Variable

Beispiel

SetEnv('Variable', '1'),

WriteLn(GetEnv('Variable')),

Siehe auch

SetEnv()


GetErrorCode()

GetErrorCode() – Fehlernummer

Beschreibung

Die Funktion gibt aErrorCode aus der Funktion SetError() zurück. Falls SetError() ohne aErrorCode oder gar nicht aufgerufen wurde, liefert GetErrorCode den Wert 0.

Parameter

keine Parameter erwartet

Rückgabewert

Numerisch - Error-Code

Beispiel

startseq,

   WriteLn('Fehlerauffangroutine gestartet!'),

   SetError('Test-Fehlertext', 1),

onerror,

   WriteLn('------'),

   WriteLn('Zeile des Testfehlers: ' + Str(GetErrorLine())),

   WriteLn('Nummer des Testfehlers: ' + Str(GetErrorCode())),

   WriteLn('Beschreibung des Testfehlers: ' + GetErrorText()),

   WriteLn('------'),

stopseq,

Siehe auch

GetErrorLine()

GetErrorObj()

GetErrorText()

SetError()


GetErrorLine()

GetErrorLine() – Fehlerzeile

Beschreibung

Die Funktion liefert die Zeilen-Nummer, in der der Fehler ausgelöst wurde. Diese Funktion liefert nur im Debug-Modus einen gültigen Wert, ansonsten 0.

Parameter

keine Parameter erwartet

Rückgabewert

Numerisch - Zeile des Fehlers

Beispiel

startseq,

   WriteLn('Fehlerauffangroutine gestartet!'),

   SetError('Test-Fehlertext', 1),

onerror,

   WriteLn('------'),

   WriteLn('Zeile des Testfehlers: ' + Str(GetErrorLine())),

   WriteLn('Nummer des Testfehlers: ' + Str(GetErrorCode())),

   WriteLn('Beschreibung des Testfehlers: ' + GetErrorText()),

   WriteLn('------'),

stopseq,

Siehe auch

GetErrorCode()

GetErrorObj()

GetErrorText()


GetErrorObj()

GetErrorObj() – Fehlerobjekt

Beschreibung

Diese Funktion dient der Rückgabe des letzten Fehler-Objektes, welcher innerhalb einer "OnError"-Behandlung einer "StartSeq", "OnError" oder "StopSeq"-Routine aufgetreten ist. Diese Funktion kann ausschließlich zwischen "OnError" und "StopSeq" ausgeführt werden.

Parameter

keine Parameter erwartet

Rückgabewert

Objekt - Fehlerobjekt

Beispiel

| x |

x := 10,

startseq,

   x := x / 0

onerror,

   if not(Empty(GetErrorObj())) then

      Meld(classname(GetErrorObj())),

   endif,

stopseq,

Siehe auch

GetErrorCode()

GetErrorLine()

GetErrorText()


GetErrorText()

GetErrorText() – Fehlertext

Beschreibung

Diese Funktion dient der Rückgabe des letzten Fehler-Textes, welcher innerhalb einer "OnError"-Behandlung einer "StartSeq", "OnError" oder "StopSeq"-Rountine aufgetreten ist. Diese Funktion kann auch noch nach "StopSeq" ausgeführt werden.

Parameter

keine Parameter erwartet

Rückgabewert

Alphanumerisch - Fehlertext

Beispiel

startseq,

   WriteLn('Fehlerauffangroutine gestartet!'),

   SetError('Test-Fehlertext', 1),

onerror,

   WriteLn('------'),

   WriteLn('Zeile des Testfehlers: ' + Str(GetErrorLine())),

   WriteLn('Nummer des Testfehlers: ' + Str(GetErrorCode())),

   WriteLn('Beschreibung des Testfehlers: ' + GetErrorText()),

   WriteLn('------'),

stopseq,

Siehe auch

GetErrorCode()

GetErrorLine()

GetErrorObj()


If()

If() – If-Verzweigung

Beschreibung

Diese Funktion ermöglicht die Formulierung einer 'wenn -> dann' Bedingung. Wenn Bedingung zutrifft, dann wird Ausdruck1 ausgeführt, ansonsten wird Ausdruck2 ausgeführt.

Parameter

aCondition:L | Bedingung
aResultForTrue:U | Wenn Bedingung erfüllt, dann …
aResultForFalse:U | Wenn Bedingung nicht erfüllt, dann

Rückgabewert

Keiner

Beispiel

| x |

x := 5,

if(x=5, Meld('x = 5'), Meld('x <> 5')),


IIf()

IIf() – IIf-Verzweigung

Beschreibung

Diese Funktion ermöglicht die Formulierung einer 'wenn -> dann' Bedingung. Wenn Bedingung zutrifft, dann wird Ausdruck1 ausgeführt, ansonsten wird Ausdruck2 ausgeführt:

IIf( < boolscher Ausdruck >, < Bezeichner | Konstante | Funktionsaufruf >, < Bezeichner | Konstante | Funktionsaufruf > )

Definition:

< Funktionsaufruf > = < benannte Funktion > | < anonyme Funktion >

< anonyme Funktion > = < ( > + < Ausdruck > + < ) >

< Ausdruck > = < boolscher Ausdruck > | < mathematischer Ausdruck >

Bezeichner, Konstante und Funktionsaufruf darf nicht mit Ausdruck verwechselt werden ! Alle übrigen Varianten sind nicht definiert !

Parameter

aCondition:L | Bedingung:
aResultForTrue:U | Wenn Bedingung erfüllt, dann...
aResultForFalse:U | Wenn Bedingung nicht erfüllt, dann...

Rückgabewert

Keiner

Beispiel

| a, b, c|

IIf(a = b, (c := 'Wert 1'), (c := 'Wert 2'))


LoadForm()

LoadForm() – Individual-Formular laden

Beschreibung

Funktion zum Laden und Instantiieren eines Individual-Formulars ("F12-Formular"), welches einem Indi.Prog. zugewiesen wurde.

Hinweis

Mit Zuweisung und Gestaltung eines Formulars eines Indi.Progs. entsteht eine direkte Verbindung von Formular und Programm, so dass i.d.R. das Laden des Formulars mittels LoadForm() im selben Programm erfolgt, dem das Formular zugewiesen wurde.

Prinzipiell ist aber ein unabhängiger Aufruf in einem anderen Kontext möglich.

Parameter

uID:U | ID des Formulars
oOwner:O | Owner des zu erstellenden Formulars

Rückgabewert

Formular-Objekt, Klasse wird in der Formular-Zuweisung in der Programmier-Umgebung angegeben

Beispiel

//******************************************************************************

//******************************************************************************

// Beispiel eines individuell designten Formulars (MDI-Child Fenster)

//******************************************************************************

// Ablauf:

//******************************************************************************

// 1. Neues Indi.Prog. erstellen

// 2. Menü "Extras" / "Formular zuweisen"

//    -> Neue ID vergeben und Klasse des Formular-Objektes definieren

//       (sollte i.d.R. "TFormEx" sein)

// 3. Menü "Extras" / "Formular-Designer anzeigen (F12)"

//    -> Gestaltung des Formulars nach den üblichen Regeln für höhere

//       Programmiersprachen

//    -> Mit F12 / Alt+F12 kann zwischen Editor und Designer gewechselt werden

//    -> Mit einem Doppel-Klick auf ein Ereignis im "Objektinspektor"

//       wird ein entsprechendes Event-Handle automatisch erstellt

// 4. (optional) Menü "Extras" / "Formular-Deklaration einfügen"

//    -> Fügt die Deklaration zum Laden des Formulars, sowie eine (optionale)

//       Definition für sämliche Controls in den Source ein

// 5. Abschließende Statements z.B. "Show(oForm)" / "ShowModal(oForm)"

//    zur Anzeige des Formulars einfügen

// 6. Die Rückgabe des Programms sollte immer das Formular-Objekt sein, damit

//    das Programm z.B. per CallPersist() aufgerufen und das Formular weiter

//    verwendet werden kann

//******************************************************************************

// Das u.g. Bespiel-Formular kann später jederzeit über ein CallPersist()

// aufgerufen werden. Indi.Prog:

| oOwner:P1, oForm |

//******************************************************************************

// FormExClose - Formular freigeben

// Wichtig: sonst wird ein MDI-Formular nicht freigegeben, sonden nur

//          auf nicht-sichtbar gesetzt.

//******************************************************************************

function FormExClose(Sender, CloseAction)

   CloseAction := 2,   // entspricht "caFree"

end,

//******************************************************************************

// Hauptprogramm

//******************************************************************************

if Empty(oOwner) then

   oOwner := Application

endif,

startseq,

   oForm := LoadForm("@MDI1", oOwner),

   if ClassOf(oOwner, "TForm") and oOwner.FormStyle = 2 then

      oForm.FormStyle := 1,   // MDI-Child, aber nur wenn Owner = MDI-Parent

   endif,

onerror

   DestroyObject(oForm),

   Meld(GetErrorText()),

stopseq,

Show(oForm),

oForm

Siehe auch

Show()

ShowModal()


LockDesktop()

LockDesktop() – Applikation sperren und Desktop-Loader anzeigen

Beschreibung

Die Funktion sperrt die Applikation und zeigt den Desktop-Loader an.

Parameter

cCaption:C

Text der im Desktop-Loader angezeigt werden soll

Rückgabewert

Keiner

Beispiel

| oForm, oBtn, aNeedUnlock |

function OnActivate()

   if aNeedUnlock then

      UnlockDesktop(),

      aNeedUnlock := false,

   endif,

end,

function CreateForm()

   oForm             := CreateObject('TFormEx', 'TestForm'),

   oForm.WindowState := 0,

   AssignEvent(oForm, 'OnActivate', 'OnActivate'),

   oBtn              := CreateObject('TBitBtn', 'btn', oForm, oForm),

   oBtn.Kind         := 6,

   oBtn.Top          := 10,

   oBtn.Left         := 10,

   oBtn.Width        := 100,

end,

LockDesktop('Test Programm wird erzeugt...'),

aNeedUnlock := true,

startseq,

   CreateForm(),

   Sleep(1000),

   LockDesktopUpdate('Test Programm wird geladen...'),

   Sleep(1000),

   ShowModal(oForm),

always

   if aNeedUnlock then

      UnlockDesktop(),

   endif,

stopseq,

Siehe auch

LockDesktopUpdate()

UnlockDesktop()


LockDesktopUpdate()

LockDesktopUpdate() – Text im Desktop-Loader ändern

Beschreibung

Die Funktion aktualisiert den Text, der im bereits angezeigten Desktop-Loader erscheint.

Parameter

cCaption:C

Text der im Desktop-Loader angezeigt werden soll

Rückgabewert

Keiner

Beispiel

siehe LockDesktop()

Siehe auch

LockDesktop()

UnlockDesktop()


ProcessMsg()

ProcessMsg() – Verarbeiten von Prozessen

Beschreibung

Die Funktion lässt business express die Möglichkeit weiterzuarbeiten, auch wenn es auf ein Ereignis warten müsste. Alle Prozesse in der Nachrichten-Warteschlange werden verarbeitet.

Parameter

keine Parameter erwartet

Rückgabewert

keiner

Beispiel

| aLastTime |

WriteLn('Starte Statistik'),

StatExec(1, .F.),

aLastTime := Time(),

while StatActive(1) do

   // erlaubt das Weiterarbeiten, obwohl primär die Schleife ausgeführt wird

   ProcessMsg(),

   if Right(aLastTime, 2) <> Right(Time(), 2) then

      aLastTime := Time(),

      WriteLn(aLastTime),

   endif,

end,


ProgName()

ProgName() – Programmname

Beschreibung

Die Funktion gibt den Namen des aktuellen Programmes wieder.

Parameter

keine Parameter erwartet

Rückgabewert

Alphanumerisch - Programmname

Beispiel

ProgName()

www.dontenwill.de | www.business-express.de


ProgressBarHide()

ProgressBarHide() – Fortschrittsanzeige verstecken

Beschreibung

Die Funktion lässt die durch ProgressBarShow() aufgerufene Anzeige wieder verschwinden.

Parameter

keine Parameter erwartet

Rückgabewert

Keiner

Beispiel

| oDab000:DB := '1,0', nY:N := 0, nProg |

nProg := Dim(2),

DBFilter("KDNR<=250000", oDab000),

DBGoBottom(oDab000),

nProg[1] := oDab000:REC_NO,

DBGoTop(oDab000),

nProg[2] := oDab000:REC_NO,

startseq,

   ProgressBarShow("", "Berechnung"),

   while NOT EoF(oDab000) do

      nY++,

      ProgressBarUpdate((oDab000:REC_NO-nProg[2]) / (nProg[1]- nProg[2]) * 100,

                         Str(nY), true),

      DBSkip(1, oDab000),

   end,

   ProgressBarHide(),

   Meld('Es wurden ' + Str(nY) + ' Datensätze berechnet')

onerror,

   ProgressBarHide(),

   Meld('Fehler beim Berechnen!'),

stopseq,

Siehe auch

ProgressBarShow()

ProgressBarUpdate()


ProgressBarShow()

ProgressBarShow() – Fortschrittsanzeige anzeigen

Beschreibung

Die Funktion erzeugt eine Fortschrittsanzeige.

Hinweis

Es muss sichergestellt sein, dass

a) jedem ProgressBarShow() später ein ProgressBarHide() folgt (Schutzblock verwenden -> StartSeq, StopSeq)

b) eine Exception, die durch ein ProgressBarUpdate() ausgelöst wird, durch eine entsprechende Fehlerbehandlung sauber abgefangen wird!

Parameter

aCaption:C | Fensterbezeichnung
aMainCaption:C | Beschreibung im Fenster
aShowBar:L | Balken anzeigen; default = true true Anzeige des Fortschrittbalkens false Ausblendung des Fortschrittbalkens

Rückgabewert

keiner

Beispiel

| oDab000:DB := '1,0', nY:N := 0, nProg |

nProg := Dim(2),

DBFilter("KDNR<=250000", oDab000),

DBGoBottom(oDab000),

nProg[1] := oDab000:REC_NO,

DBGoTop(oDab000),

nProg[2] := oDab000:REC_NO,

startseq,

   ProgressBarShow("", "Berechnung"),

   while NOT EoF(oDab000) do

      nY++,

      ProgressBarUpdate((oDab000:REC_NO-nProg[2]) / (nProg[1]- nProg[2]) * 100,

                         Str(nY), true),

      DBSkip(1, oDab000),

   end,

   ProgressBarHide(),

   Meld('Es wurden ' + Str(nY) + ' Datensätze berechnet')

onerror,

   ProgressBarHide(),

   Meld('Fehler beim Berechnen!'),

stopseq,

Siehe auch

ProgressBarHide()

ProgressBarUpdate()


ProgressBarUpdate()

ProgressBarUpdate() – Fortschrittsanzeige aktualisieren

Beschreibung

Die Funktion ermöglicht die Änderung der dargestellten Werte in der aktuell aktiven Fortschrittsanzeige.

Parameter

aPerc:N | Erreichter Prozentanteil von 100; default = 0
aValue:C | Ausgabe im Fenster für jede Berechnung; default = Zeit seit ProgressBarShow()
aExceptOnCancel:L | Except-Modus; default = false true – CancelButton ist aktiv false – CancelButton ist inaktiv und ausgeblendet

Rückgabewert

Keiner

Beispiel

| oDab000:DB := '1,0', nY:N := 0, nProg |

nProg := Dim(2),

DBFilter("KDNR<=250000", oDab000),

DBGoBottom(oDab000),

nProg[1] := oDab000:REC_NO,

DBGoTop(oDab000),

nProg[2] := oDab000:REC_NO,

startseq,

   ProgressBarShow("", "Berechnung"),

   while NOT EoF(oDab000) do

      nY++,

      ProgressBarUpdate((oDab000:REC_NO-nProg[2]) / (nProg[1]- nProg[2]) * 100,

                         Str(nY), true),

      DBSkip(1, oDab000),

   end,

   ProgressBarHide(),

   Meld('Es wurden ' + Str(nY) + ' Datensätze berechnet')

onerror,

   ProgressBarHide(),

   Meld('Fehler beim Berechnen!'),

stopseq,

Siehe auch

ProgressBarHide()

ProgressBarShow()


Quit()

Quit() – Beenden des Programms

Beschreibung

Die Funktion beendet ohne Nachfrage das komplette Programm und beendet business express.

Parameter

keine Parameter erwartet

Rückgabewert

keiner

Beispiel

Quit()

www.dontenwill.de | www.business-express.de


Raise()

Raise() – Beenden des Programms

Beschreibung

Die Funktion löst den letzten Laufzeitfehler erneut aus. Raise() kann irgendwo innerhalb des Programmblocks 'OnError ... StopSeq' stehen, wobei trotzdem die Ausführung dieses Programmblocks fortgesetzt wird. Die erneute Auslösung des Fehlers erfolgt erst beim Erreichen von 'StopSeq'. Nachfolgende Programmteile werden übersprungen, bis entweder eine außen liegende Fehlerauffangroutine den Fehler erneut behandelt, oder das Programmende erreicht ist. Wird Raise() außerhalb von 'OnError ... StopSeq' ausgeführt, ist diese Funktion undefiniert und hat daher keine Funktion.

Parameter

keine Parameter erwartet

Rückgabewert

Keiner

Beispiel

| x |

startseq,

   startseq,

      WriteLn('Ausgabe 1: Fehler wird ausgelöst'),

      x := 1 / 0,

      WriteLn('Ausgabe 2: Wird nicht mehr angezeigt!'),

   onerror,

      Raise(),

      WriteLn('Ausgabe 3: Wird angezeigt!'),

   stopseq,

   WriteLn('Ausgabe 4: Wird nicht mehr angezeigt!'),

onerror,

   WriteLn('Ausgabe 5: Wird angezeigt!'),

stopseq,

WriteLn('Ausgabe 6: Wird angezeigt!'),


Run()

Run() – Windows Anwendung starten

Beschreibung

Die Funktion startet eine Windows Anwendung (.exe).

Parameter

aProgName:C | Programm welches gestartet werden soll ggf. mit Pfadangabe. Wird kein Pfad angegeben so wird der Default-Pfad von Windows verwendet = Windows-Hauptordner
aWait:L | Wartemodus; default = true true - business express wartet auf das Ende des Programms false - business express arbeitet weiter

Rückgabewert

Keiner

Beispiel

Run('Notepad.exe', true)


SemaphorEdit()

SemaphorEdit() – Sperre setzen

Beschreibung

Die Funktion dient dem Setzen einer globalen Sperre, die über aID abgefragt werden kann. Die Sperre kann nur von demjenigen User wieder aufgehoben werden, der die Sperre auch gesetzt hat. Funktion wird in BE verwendet, um bspw. Programmblöcke zu sperren, so dass nur immer jeweils ein Benutzer ein Programm verwenden kann. Die Sperre kann mit der Funktion SemaphorPost() wieder aufgehoben werden.

Parameter

aID:C | ID der Sperre (beliebiger alphanumerischer Wert)
aRetry:L | Wiederholen true – setzen der Sperre bei Fehlversuch wiederholen false – nur einmal versuchen Sperre zu setzen
aMsg:L | Fehlermessage true – Fehler ausgeben, wenn Sperre bereits gesetzt ist false – keine Benachrichtigung bei gesetzter Sperre

Rückgabewert

Logisch / Boolean - Sperren erfolgreich

Beispiel

| cID |

cID := 'test',

if SemaphorEdit(cID, false, false) then

   WriteLn('ID ''' + cID + ''' wurde erfolgreich gesperrt'),

   WriteLn('------'),

   WriteLn('Beliebige Anweisungen ausführen'),

   WriteLn('------'),

   SemaphorPost(cID),

   WriteLn('Sperre für ''' + cID + ''' wurde wieder aufgehoben'),

else

   WriteLn('ID ''' + cID + ''' wurde bereits gesperrt'),

endif,

Siehe auch

SemaphorPost()


SemaphorPost()

SemaphorPost() – Sperre aufheben

Beschreibung

Die Funktion hebt eine Sperre auf, die mit SemaphorEdit() gesetzt wurde.

Parameter

aID:C

ID der Sperre

Rückgabewert

Logisch / Boolean - Sperre aufheben erfolgreich

Beispiel

| cID |

cID := 'test',

if SemaphorEdit(cID, false, false) then

   WriteLn('ID ''' + cID + ''' wurde erfolgreich gesperrt'),

   WriteLn('------'),

   WriteLn('Beliebige Anweisungen ausführen'),

   WriteLn('------'),

   SemaphorPost(cID),

   WriteLn('Sperre für ''' + cID + ''' wurde wieder aufgehoben'),

else

   WriteLn('ID ''' + cID + ''' wurde bereits gesperrt'),

endif,

Siehe auch

SemaphorEdit()


SetEnv()

SetEnv() – Globale Variable setzen

Beschreibung

Die Funktion setzt eine globale Variable.

Parameter

aVarName:C | Variablen-Name
aVarValue:C | Variablen-Wert

Rückgabewert

Logisch / Boolean - Variable setzen erfolgreich

Beispiel

SetEnv('Variable', '1'),

WriteLn(GetEnv('Variable')),

Siehe auch

GetEnv()


SetError()

SetError() – Fehler erzeugen

Beschreibung

SetError erzeugt einen Abbruchfehler, der innerhalb einer Fehlerauffangroutine ausgelesen werden kann.

Wird SetError() ausserhalb von StartSeq / StopSeq ausgeführt, bewirkt der erzeugte Fehler den Abbruch der Codeblockausführung, als wäre ein echter Fehler aufgetreten!

Parameter

aErrText:C | Fehlertext (kann mit GetErrorText() ausgelesen werden)
aErrCode:N | Fehlernummer (kann mit GetErrorCode() ausgelesen werden)

Rückgabewert

Keiner

Beispiel

startseq,

   WriteLn('Fehlerauffangroutine gestartet!'),

   SetError('Test-Fehlertext', 1),

onerror,

   WriteLn('------'),

   WriteLn('Zeile des Testfehlers: ' + Str(GetErrorLine())),

   WriteLn('Nummer des Testfehlers: ' + Str(GetErrorCode())),

   WriteLn('Beschreibung des Testfehlers: ' + GetErrorText()),

   WriteLn('------'),

stopseq,

Siehe auch

Abort()

GetErrorCode()

GetErrorText()


ShellExecute()

ShellExecute() – Shell-Befehl ausführen

Beschreibung

Die Funktion führt einen Befehl als DOS-Kommandozeile aus.

Parameter

aHWNDorFile:U | Handle eines Windows-Fensters oder Files (In der Regel kann 0 übergeben werden)
aOperation:C | Auszuführende Operation; default = 'open'; 'open' - Öffnet aFile; 'print' - aFile drucken; 'explore' - ein in aFile übergebener Ordner wird geöffnet
aFile:C | File, auf das aOperation angewendet wird; default = Leerstring
aParams:C | Liste der Parameter, die der Operation übergeben werden; default = Leerstring
aDir:C | Default Verzeichnis; default = Leerstring
aShowCmd:N | Anzeige des geöffneten Files; default = SW_SHOWNORMAL
aWait:L | Andere Prozesse müssen warten, bis ShellExecute() fertig abgewickelt wurde; default = false

Rückgabewert

Numerisch - Windows-FehlerCode

Beispiel

ShellExecute( , "open", "http://www.dontenwill.de")


ShowWordCommander()

ShowWordCommander() – WordCommander

Beschreibung

Die Funktion ruft den business express-Wordcommander auf.

Parameter

oDab000:O | Bezugs-Tabelle; default = DAB000; DAB000 Kundenstamm; DAB100 Zulieferestamm; DAB062 Vertreterstamm
oDab005:O | DAB005 Kontakt-/Ansprechperson; default = DAB005

Rückgabewert

Keiner

Beispiel

ShowWordCommander()

www.dontenwill.de | www.business-express.de


Sleep()

Sleep() – Warten

Beschreibung

Das Programm wartet für aMSec Millisekunden mit der weiteren Ausführung.

Parameter

aMSec:N

Anzahl der Millisekunden

Rückgabewert

Keiner

Beispiel

WriteLn(Time()),

Sleep(5000),

WriteLn(Time()),


StrFunc()

StrFunc() – Programm ausführen

Beschreibung

Die Funktion führt ein CodeBlock-Programm aus. Ist der Programmtext fehlerhaft, wird ein leerer String zurückgegeben.

Parameter

aFunctionText:C

Kompletter Programmtext

Rückgabewert

Undefiniert - Rückgabewert des CodeBlock-Textes. Bei Fehler: Leerer String

Beispiel

| CB |

CB :=   '| String |' +

        'String := ''Hello'',' +

        'Meld(String),',

StrFunc(CB),


Trace()

Trace() – Breakpoint setzen

Beschreibung

Die Funktion setzt einen Breakpoint in einem Codeblock-Programm. Ist der Breakpoint aktiviert (aOnOff = true), wird das Programm an dieser Stelle angehalten. Das Programm kann anschließend in der Entwicklungsumgebung normal oder zeilenweise fortgesetzt werden.

Parameter

aOnOff:L

Breakpoint aktiviert; default = true

Rückgabewert

Keiner

Beispiel

Trace(true),

WriteLn('Diese Zeile wird zuerst noch nicht ausgeführt.

        Das Programm wartet auf weitere Ausführung.'),

Trace(false),

WriteLn('An dieser Zeile wird nicht angehalten,

        da der Breakpoint inaktiv ist'),


UnlockDesktop()

UnlockDesktop() – Applikation freigeben und Desktop-Loader verstecken

Beschreibung

Die Funktion gibt die Applikation wieder frei und macht den Desktop-Loader wieder unsichtbar.

Parameter

keine Parameter erwartet

Rückgabewert

Keiner

Beispiel

siehe LockDesktop()

Siehe auch

LockDesktop()

LockDesktopUpdate()


Validate()

Validate() – Rückgabetyp eines Codeblock prüfen

Beschreibung

Die Funktion prüft, ob der Rückgabewert des CodeBlock-Programms aTestText kompatibel mit dem Datentyp aus aTestType ist.

Parameter

aTestText:C | Vollständiger CodeBlock Programmtext
aTestType:C | Buchstabe des Datentyps, mit dem verglichen wird; default = 'C' (Character) , kann über ValType() ermittelt werden
aShowMessage:L | Exception bei Fehler ausgeben; default = true

Rückgabewert

Logisch / Boolean - Datentypen kompatibel

Beispiel

| cCB |

cCB := '| String |' +

       'String := ''Hello'', ' +

       'String ',

Validate(cCB, 'C', false)

Siehe auch

ValType()


ValType()

ValType() – Datentyp ermitteln

Beschreibung

Die Funktion gibt den Datentyp von aVar:U zurück.

Parameter

aVar:U

Variable, dessen Datentyp bestimmt werden soll

Rückgabewert

Alphanumerisch - Datentyp

  A    =      Array         // Array

  C    =      Character     // Alphanumerisch

  D    =      Date          // Datum

  L    =      Logical       // Logisch / Boolean

  N    =      Numeric       // Numerisch

  O    =      Object        // Objekt

  U    =      Undefined     // Undefiniert

Beispiel

| aArray, cChar, dDate, lLog:L := false, nNum, oDab000:DB := '1', uUnd:U |

aArray := {'Element1', 'Element2', 'Element3'},

cChar  := 'alphanummerisch',

dDate  := Date(),

nNum   := 5,

WriteLn(ValType(aArray)),

WriteLn(ValType(cChar)),

WriteLn(ValType(dDate)),

WriteLn(ValType(lLog)),

WriteLn(ValType(nNum)),

WriteLn(ValType(oDab000)),

WriteLn(ValType(uUnd)),


WriteLn()

WriteLn() – Wert ausgeben

Beschreibung

Die Funktion gibt aValue:U in der Kommandozeilen-Ausgabe des Programmier-Editors aus. Es können beliebig viele Parameter übergeben werden.

Parameter

aValue:U,...

Ausgabe; default = Leerstring

Rückgabewert

Keiner

Beispiel

WriteLn(Date()),

WriteLn("hello", "bye"),


Reports und Druck

Siehe auch:

CarryValue()

DocumentDelete()

DocumentPrint()

Pdf2Tiff()

PdfCmd()

PdfMerge()

PdfPageCount()

ReportInit()

ReportPrint()

TiffPageCount()


CarryValue()

CodeblockFunc() – Übertrags-Summe einer Codeblock-Variablen beim Druck

Beschreibung

Die Funktion kann benutzt werden, um die Absummierung einer Codeblock-Variablen zu erhalten. Diese Funktion liefert nur während des laufenden Drucks einen sinnvollen Wert. Die Funktion sollte hauptsächlich in Codeblock-Variablen eingesetzt werden, die sich entweder in den Fußzeilen oder in den neuen Übertragsbändern befinden und deren Eigenschaft 'Direkt berechnen' auf 'True' eingestellt ist.

Parameter

aReportObject:O | Report-Objekt
aPageNo:N | Seitennummer für die Berechnung. Ist aPageNo nicht angegeben, findet die Berechnung bis zur aktuellen Seite statt. Die Angabe einer höheren Seiten-Nummer als 'AbsolutePage' wird ignoriert. Zur Berechnung von 'Übertrag oben' kann Page -1 verwendet werden.

Rückgabewert

Numerisch

Beispiel

| aValue, aStr |

aValue := CarryValue(PrintObject(Report, 'BlockVar1')),   // Summe von BlockVar1 holen

aStr   := 'Übertrag: ' + FloatToStr(aValue),

aStr


DocumentDelete()

DocumentDelete() – Individualbeleg löschen

Beschreibung

Mit Hilfe dieser Funktion kann ein Individual-Beleg im Belegarchiv als gelöscht markieren werden.

Parameter

nDocType:N | Indi.Beleg-Typ (entspr. Archiv-Belegart), 900-999
nDocNo:N | Beleg-Nr.
nCurrNo:N | Lfd.Nr. des Belegs (leer = neuester Beleg); default = 0
dDocDate:D | Druck-Datum des Beleges (leer = neuester Beleg); default = 0
oDab700:O | DAB700, Belegarchiv; default = Standard Dab700

Rückgabewert

Logisch / Boolean - Löschen erfolgreich

Beispiel

| oDab700:DB := '60,1' |

DocumentDelete(901, 6000, , , oDab700)

Siehe auch

DocumentPrint()


DocumentPrint()

DocumentPrint() – Druck eines Individualbelegs

Beschreibung

Die Funktion druckt einen Individual-Beleg, welcher dann im Belegarchiv abgelegt ist.

Hinweis

Es handelt sich hierbei um eine einfache Umsetzung des Belegdruckes, erweiterterte Möglichkeiten zum Belegdruck (z.B. Stapeldruck) bietet die Klasse "TBeIndiPrintData".

DocumentPrint() sollte nicht mehr für den Druck von Standardbelegen verwendet werden. Verwenden Sie stattdessen die jeweilige Druck-Klasse des Belegs (z.B. "TBeDelivData" für Lieferscheine).

Bei Verwendung eines Standard-Belegtyps haben alle Parameter nach nPersNo keine Bedeutung. Als nDocType sind folgende Standard-Belegtypen erlaubt:

- 40 = Kommissionierschein

- 60 = Lieferschein

Parameter

nPrintMode:N | Druckmodus entsprechend ReportPrint() RM_LAYOUT und RM_PRINT
nDocType:N | Indi.Dokument-Typ (entspr. Archiv-Belegart), 900-999, muss definiert worden sein (im Fenster Druckerzuweisungen)
nDocNo:N | Dokument-Nr. frei zu vergeben
nPersNo:N | Pers.Nr. frei zu vergeben
aTables:A | Array mit Tabellen, die beim Belegdruck bzw. Design zur Verfügung stehen
oPrintConnect:O | ADS-Connection auf der die Belegverarbeitung laufen soll; default = Standard-Connection
dPrintDate:D | Druckdatum des Beleges; default = Buchungsdatum
lProcessDataOnly:L | Verarbeitung ohne Druck; default = false
evOnProcDataBefore:C | Event zur Datenverarbeitung vor Belegdruck; default = Leerstring
evOnProcDataAfter:C | Event zur Datenverarbeitung nach Belegdruck; default = Leerstring

Rückgabewert

Keiner

Beispiel

| oDab010, oConnect, oDM, arrArt, nDocNo, nMode |

// In diesem Beispiel wird ein einfacher Einzel-Belegdruck ausgeführt

// Events ----------------------------------------------------------------------

// Events zur Datenverarbeitung des Beleges

function ProcessDataBefore(aSender)

// Verarbeitung der Belegdaten (VOR dem Druck)

// Achtung ! Transaktion auf oConnect und somit oDab010 ist aktiv !

Meld('ProcessDataBefore'),

end,

function ProcessDataAfter(aSender)

// Verarbeitung der Belegdaten (NACH dem Druck)

// Achtung ! Transaktion auf oConnect und somit oDab010 ist aktiv !

Meld('ProcessDataAfter'),

end,

// Hauptprogramm ---------------------------------------------------------------

// WICHTIG: Folgende Zeilen erstellen ein TBeDBGet-Objekt, sowie  eine Tabelle

// welche auf der Connection des TBeDBGet-Objektes läuft !

// Die Connection wird an die DocumentPrint()-Funktion weitergegeben und somit

// kann die oDAb010 in den ProcessData-Events transaktionsgestützt(!) eingesetzt werden !!

oDM     := CreateObject("TBeDBGet"),

oDab010 := DbGetTable(oDM, 2),

startseq,

   DBScope('A', 'A', oDab010),

   nMode := RM_LAYOUT,

   //nMode := RM_PRINT,

   DocumentPrint( nMode, 901, 6000, 4713, {oDab010}, oDM.AdsConnection,

                  DATE(), false, "ProcessDataBefore", "ProcessDataAfter"),

always,

   DestroyObject(oDab010),

   DestroyObject(oDM),

stopseq,

Siehe auch

TBeIndiPrintData

TBeDelivData, TBeCumDelivData

DBGetLookup()

DBGetMemTable()

DBGetTable()


Pdf2Tiff()

Pdf2Tiff() – Pdf-Dokument in Tiff-Datei konvertieren

Beschreibung

Extrahiert eine oder mehrere Seiten eines PDF-Dokuments und erzeugt daraus eine Tiff-Datei.

Hinweis

Die erzeugte Tiff-Datei kann mehrseitig sein.

Parameter

cPdfFileName:C | Name der Quelldatei
cTiffFileName:C nPageFrom:N nPageTo:N nResolution:N lMono:L cPassword:C | Name der Zieldatei; falls nicht angegeben wie Quelldatei mit Endung ".TIF"; Nummer der ersten Seite; falls nicht angegeben wird eins angenommen; Nummer der letzten Seite; falls nicht angegeben wird die letzten Seite des Dokuments angenommen gewünschte Auflösung der Zieldatei; Defaultwert ist 200 dpi; True = monochrome Ausgabe, False= farbige Ausgabe; Default = False optionales Passwort zum Öffnen des PDF-Dokuments

Rückgabewert

Alphanumerisch; Name der erzeugten Tiff-Datei

Beispiel

// Extrahiert Seite 1 aus dem PDF-Dokument und erzeugt daraus eine Tiff-Datei

Pdf2Tiff('c:\temp\Auftragsbestätigung 171286.pdf', 'c:\temp\AB171286.TIF', 1, 1)

Siehe auch

Pdf2Jpeg()

PdfCmd()

PdfMerge()

Pdf2Text()

PdfPageCount()


PdfCmd()

PdfCmd() – Ausführung einen PDF-Kommandos

Beschreibung

Allgemeine Funktion zur Bearbeitung von PDF-Dateien.

Parameter

oBePdfObj:O | Objekt der Klasse TBePdfObj, das eine PDF-Datei im Speicher repräsentiert
nPdfCommand:N uPdfParam1:U nPdfParam2:N | PDF-Kommando, dass auf das PDF-Objekt angewendet werden soll; 101 = PDF laden; 248 = Auswahl aufheben; 249 = Seite auswählen; 505 = Author einstellen; 511 = Auswahl speichern, Ziel wird ggf. überschrieben; 1. Parameter entsprechend nPdfCommand (s. Beispiel); 2. Parameter entsprechend nPdfCommand (s. Beispiel)

Rückgabewert

Numerisch

Beispiel

// Beispiel: ausgewählte Seiten aus einem PDF-Dokument in ein neues Dokument kopieren

// nPdfCommand                           Funktion           Param. 1   Param. 2

|  PDFCOM_Load:N:=101,                // PDF laden          Dateiname  0=gesperrt, 1=frei

   PDFCOM_PageSelectionClear:N:=248,  // Auswahl aufheben   ---        ---

   PDFCOM_PageSelectionAdd:N:=249,    // Seite auswählen    Seite - 1  ---

   PDFCOM_SetAuthor:N:=505,           // Author einstellen  Name       ---

   PDFCOM_SaveSelectionToFile:N:=511, // Auswahl speichern  Dateiname  ---

   oPdfObj |

oPdfObj := CreateObject('TBePdfObj'),                                // PDF-Objekt erzeugen

StartSeq

   PdfCmd(oPdfObj, PDFCOM_Load, 'c:\temp\Pdf01.pdf', 1),             // Pdf-Datei laden

   PdfCmd(oPdfObj, PDFCOM_PageSelectionClear),                       // Selektion aufheben

   PdfCmd(oPdfObj, PDFCOM_PageSelectionAdd, 1),                      // Seite 2 auswählen

   PdfCmd(oPdfObj, PDFCOM_PageSelectionAdd, 2),                      // Seite 3 auswählen

   PdfCmd(oPdfObj, PDFCOM_SetAuthor, 'Testauthor'),                  // Author ändern

   PdfCmd(oPdfObj, PDFCOM_SaveSelectionToFile, 'c:\temp\Pdf02.pdf'), // Pdf-Datei speichern

Always

   DestroyObject(oPdfObj)                                            // PDF-Objekt freigeben

StopSeq

Siehe auch

Pdf2Jpeg()

PdfMerge()

Pdf2Tiff()

Pdf2Text()

PdfPageCount()

TBePdfObj


PdfMerge()

PdfMerge() – PDF-Dateien zusammenfassen

Beschreibung

Zwei oder mehr PDF-Dateien zu einem neuen Dokument zusammenfassen

Hinweis

Quelldateien, die nicht vorhanden sind, werden ignoriert. Die Zieldatei wird ggf. überschrieben.

Parameter

uSourceFiles:U | Array mit Dateinamen von PDF-Dokumenten, die zusammengefasst werden sollen
cDestFile:C cPassword:C cOptions:C | Name der Zieldatei optionales Passwort zum Öffnen der PDF-Dokumente; Optionen, jeweils in doppelten Anführungszeichen und mit Komma getrennt: "UPASSWORD=a" Setzt das Benutzerpasswort für die neue Datei auf "a"; "OPASSWORD=b" Setzt das Besitzerpasswort für die neue Datei auf "b"

Rückgabewert

Numerisch

Beispiel

//******************************************************************************

// Rückgabe = Seitenzahl des Ergebnisdokuments,

//            -1 bedeutet, dass PDFMerge fehlgeschlagen ist

//******************************************************************************

function myPDFMerge(aQuellen, cZiel, cPasswort, cOptionen)

|cPassNeu|

  cPassNeu := '',

  result   := -1,

  if not DeleteFile(cZiel) then                                                 // wird benötigt, damit sichergestellt ist, dass PDFMerge() erfolgreich war und eine neue Datei erstellt wurde

    SetError('Auf Zieldatei konnte nicht zugegriffen werden.'),

  endif,

  PDFMerge(aQuellen, cZiel, cPasswort, cOptionen),

  if File(cZiel) then

    cPassNeu := StrToken(SubStr(cOptionen, At('UPASSWORD=', Upper(cOptionen)) + 10), ',', 1),

    PDFPassword(cPassNeu),

    result := PDFPageCount(cZiel),

  endif,

end,

myPDFMerge({'C:\test1.pdf', 'C:\test2.pdf'}, 'C:\result.pdf',, 'uPassword=abc,oPassword=xyz')

Siehe auch

Pdf2Jpeg()

PdfCmd()

Pdf2Tiff()

Pdf2Text()

PdfPageCount()


PdfPageCount()

PdfPageCount() – Seitenzahl eines PDF-Dokuments

Beschreibung

Ermittelt die Seitenzahl eines PDF-Dokuments.

Hinweis

Ein Fehler beim Zugriff auf das Dokument führt zu einer Exception.

Parameter

aPDFFileName:C | Name des PDF-Dokuments

Rückgabewert

Numerisch; Anzahl der Seiten

Beispiel

Writeln(PdfPageCount('c:\temp\Auftragsbestätigung 171286.pdf'))

Siehe auch

Pdf2Jpeg()

PdfCmd()

PdfMerge()

Pdf2Tiff()

Pdf2Text()


ReportInit()

ReportInit() – Reportobjekt erzeugen

Beschreibung

Die Funktion erzeugt das Reportobjekt, das später für den Druck über ReportPrint() benötigt wird.

Parameter

aReportName:C | Name des Reports unter dem er in der Tabelle DabR10 gespeichert werden soll.
aTables:U | Tabellenobjekt oder ein Array mit Tabellenobjekten
aArguments:U | Parameter oder ein Array mit Parametern. Inhalt wird in die Eigenschaft 'RParams' des Report-Objektes übernommen; default = null()

Rückgabewert

Objekt - Reportobjekt

Beispiel

| aReport, oDab010:DB := '2,1', aPrinters, aOldCursor |

DBFilter('ARTNR = "C"', oDab010),

aReport := ReportInit('Artikelliste', oDab010, {'Artikelliste C'}),

if !Empty(aReport) then

   aOldCursor := SetCursor(crHourGlass),

   startseq,

      ReportPrint(aReport),

   onerror,

      Showmessage('Fehler beim Drucken aufgetreten!'),

   stopseq,

   DestroyObject(aReport),

   SetCursor(aOldCursor),

endif,

Siehe auch

ReportPrint()


ReportPrint()

ReportPrint() – Reportobjekt drucken / Reportdesigner starten

Beschreibung

Die Funktion führt den Druck aus oder startet den Reportdesigner.

Parameter

aReportObject:O | Mit 'ReportInit' erzeugtes Report-Objekt
aMode:N | Druckmodus default = rm_Print (in der Programmierumgebung = rm_Layout) rm_Print (Wert 0) Druck starten rm_Layout (Wert 1) Reportdesigner aufrufen

Rückgabewert

Objekt - Reportobjekt

Beispiel

| aReport, oDab010:DB := '2,1', aPrinters, aOldCursor |

DBFilter('ARTNR = "C"', oDab010),

aReport := ReportInit('Artikelliste', oDab010, {'Artikelliste C'}),

if !Empty(aReport) then

   aOldCursor := SetCursor(crHourGlass),

   startseq,

      ReportPrint(aReport),

   onerror,

      Showmessage('Fehler beim Drucken aufgetreten!'),

   stopseq,

   DestroyObject(aReport),

   SetCursor(aOldCursor),

endif,

Siehe auch

ReportInit()


TiffPageCount()

TiffPageCount() - Seitenanzahl einer Tiff-Datei

Beschreibung

Die Funktion ermittelt die Seitenanzahl einer Tiff-Datei.

Parameter

aFileName:C

Name der Tiff-Datei

Rückgabewert

Numerisch, Anzahl der Seiten


Scanner-Steuerung

Siehe auch:

ScanCreateControl()

ScanModalConf()


ScanCreateControl()

ScanCreateControl() – Scanner Control erzeugen

Beschreibung

Die Funktion erzeugt ein Control auf einem Funkscanner.

Parameter

cClassName:C | Klassenname
cControlName:C | Control-Name; default = Leerstring
oSession:O | Session-Objekt (vom Typ TScBaseSession); default = null()
aBounds:A | Abmaße des Scannerobjekts; default = unassigned
oParent:O | Parent des Scannerobjekt; default = null()

Rückgabewert

Objekt - Erzeugtes Control


ScanModalConf()

ScanModalConf() – Scanner-Dialog erzeugen

Beschreibung

Die Funktion erstellt einen Dialog auf einem Funkscanner. Das Array aButtons definiert die Knöpfe für diesen Dialog, während das Array aResults die Ergebnisse für diese Knöpfe enthalten.

Parameter

oSession:O | Session-Objekt (vom Typ TScBaseSession)
cText:C | Dialog-Text
aButtons:A | Array mit Dialog-Buttons; default = unassigned
aResults:A | Array mit Ergebnissen für die Buttons aus aButtons default = unassigned

Rückgabewert

Undefined - Null()


AdsEval()

AdsEval() – Filter Prüfung

Beschreibung

Die Funktion prüft, ob ein Filter-Ausdruck auf einer bestimmten ADS-Tabelle gültig ist.

Parameter

aExpr:C | Filter-Ausdruck
aTable:O | Bezugstabelle; default = Standard-DataSet

Rückgabewert

Undefiniert - Bei Fehler Exception

Beispiel

| oDab010:DB := '2,1' |

AdsEval('ARTNR = "2"', oDab010)


AdsGetConnectTables()

AdsGetConnectTables() - Tabellen einer ADS-Connection ermitteln

Beschreibung

Die Funktion ermittelt ein Array mit allen Tabellen-Objekten, die auf einer bestimmten ADS-Connection geöffnet sind.

Parameter

oConnect:O

Conncetion-Objekt vom Typ "TBeAdsConnection"

Rückgabewert

Array im Format: { oTable 1, ..., oTable n }

Beispiel

| oDM, oDab000, oDab010 |

function ShowLockedRecors()

   | aTables, aLocks, oTable, i, k |

   aTables := AdsGetConnectTables(oDM.AdsConnection),

   for i := 1 to 5 do

      DBEdit(oDab000),

      DBPost(oDab000),

      DBSkip(1, oDab000),

   next,

   for i := 1 to 5 do

      DBEdit(oDab010),

      DBPost(oDab010),

      DBSkip(1, oDab010),

   next,

   for i := 1 to ALen(aTables) do

      oTable := aTables[i],

      WriteLn(oTable.AliasName),

      aLocks := AdsGetUserLocks(oTable),

      for k := 1 to ALen(aLocks) do

         DBGoto(aLocks[k], oTable),

         if oTable.WorkArea = 1 then

            WriteLn('     ' + Str(oTable:KDNR)),

         else

            WriteLn('     ' + oTable:ARTNR),

         endif,

      next,

   next,

end,

oDM     := CreateObject('TBeDBGet'),

oDab000 := DBGetTable(oDM, 1),

oDab010 := DBGetTable(oDM, 2),

DBStartTrans(oDM.AdsConnection),

startseq,

   WriteLn('Transaktion aktiv'),

   ShowLockedRecors(),

   DBCommit(oDM.AdsConnection),

onerror

   DBRollBack(oDM.AdsConnection),

   Raise(),

stopseq,

WriteLn('Transaktion nicht aktiv'),

ShowLockedRecors()


AdsGetUserLocks()

AdsGetUserLocks() - Eigene Satzsperren einer ADS-Tabelle ermitteln

Beschreibung

Die Funktion ermittelt alle eigenen Satzsperren eines speziellen ADS-Tabellen-Objekts.

Insbesondere in Transaktionen können mit dieser Funktion alle in der Transaktion veränderten Sätze ermittelt werden.

Parameter

oTable:O

Tabellen-Objekt, für welches die Satzsperren ermittlen werden sollen

Rückgabewert

Array im Format: { Gesperrte Satz-Nr. 1, ..., Gesperrte Satz-Nr. n }

Beispiel

| oDM, oDab000, oDab010 |

function ShowLockedRecors()

   | aTables, aLocks, oTable, i, k |

   aTables := AdsGetConnectTables(oDM.AdsConnection),

   for i := 1 to 5 do

      DBEdit(oDab000),

      DBPost(oDab000),

      DBSkip(1, oDab000),

   next,

   for i := 1 to 5 do

      DBEdit(oDab010),

      DBPost(oDab010),

      DBSkip(1, oDab010),

   next,

   for i := 1 to ALen(aTables) do

      oTable := aTables[i],

      WriteLn(oTable.AliasName),

      aLocks := AdsGetUserLocks(oTable),

      for k := 1 to ALen(aLocks) do

         DBGoto(aLocks[k], oTable),

         if oTable.WorkArea = 1 then

            WriteLn('     ' + Str(oTable:KDNR)),

         else

            WriteLn('     ' + oTable:ARTNR),

         endif,

      next,

   next,

end,

oDM     := CreateObject('TBeDBGet'),

oDab000 := DBGetTable(oDM, 1),

oDab010 := DBGetTable(oDM, 2),

DBStartTrans(oDM.AdsConnection),

startseq,

   WriteLn('Transaktion aktiv'),

   ShowLockedRecors(),

   DBCommit(oDM.AdsConnection),

onerror,

   DBRollBack(oDM.AdsConnection),

   Raise(),

stopseq,

WriteLn('Transaktion nicht aktiv'),

ShowLockedRecors()


AsNumber()

AsNumber() – Datenfeld als Nummer

Beschreibung

Die Funktion versucht ein Datenfeld so auszulesen, als wäre der Inhalt ein numerischer Wert.

Parameter

aFieldName:C | Feldname
aTable:U | Tabelle; default = Standard-Tabelle

Rückgabewert

Numerisch - Datenfeldinhalt

Beispiel

| oDab010:DB := '2,1', nNumber |

DBGoTop(oDab010),

nNumber := AsNumber('EAN', oDAb010),

Meld(nNumber),

Siehe auch

AsString()

AsVariant()


AsString()

AsString() – Datenfeld als String

Beschreibung

Die Funktion versucht ein Datenfeld so auszulesen, als wäre der Inhalt ein alphanumerischer Wert.

Parameter

aFieldName:C | Feldname
aTable:U | Tabelle; default = Standard-Tabelle

Rückgabewert

Alphanumerisch - Datenfeldinhalt

Beispiel

| oDab010:DB := '2,1', cString |

DBGoTop(oDab010),

cString := AsString('ARTNR', oDAb010),

Meld(cString),

Siehe auch

AsNumber()

AsVariant()


AsVariant()

AsVariant() – Datenfeld als Variant

Beschreibung

Die Funktion liest ein Datenfeld als Variant aus. Da der Datentyp Variant unbestimmt ist, kann jeder beliebige Wert ausgelesen werden.

Parameter

aFieldName:C | Feldname
aTable:U | Tabelle; default = Standard-Tabelle

Rückgabewert

Undefiniert - Datenfeldinhalt

Beispiel

| oDab010:DB := '2,1', uVariant |

DBGoTop(oDab010),

uVariant := 'Variant als String: ' + AsVariant('ARTNR', oDAb010) + '.',

uVariant := uVariant + ' Variant als Zahl: ' + AsVariant('EAN', oDAb010) + '.',

Meld(uVariant),

Siehe auch

AsNumber()

AsString()


BeClose()

BeClose() – Tabelle schließen

Beschreibung

Die Funktion gibt das Tabellenobjekt für den Cache wieder frei. Neue Aufrufe von BeOpen können nach BeClose das bereits geöffnete Tabellenobjekt wieder zuteilen.

Parameter

aTable:O

Tabellenobjekt, das für den Cache wieder zur Verfügung stehen soll

Rückgabewert

Undefiniert

Beispiel

siehe BeOpen()

Siehe auch

BeOpen()


BeOpen()

BeOpen() – Tabelle öffnen

Beschreibung

Die Funktion gibt ein Tabellenobjekt aus dem Cache zurück. Das Tabellenobjekt bleibt für weitere Aufrufe von BeOpen() mit der gleichen Workarea solange gesperrt, bis es mit BeClose() freigegeben wird. Weitere Aufrufe von BeOpen() vor BeClose() erzeugen eigene Tabellenobjekte.

Hinweis

Die Funktionen BeOpen() bzw. BeClose() dienen zur Verbesserung der Ablaufgeschwindigkeit von datenbankgestützen Programmen. Damit steht im Codeblock ein Datenbank-Cache zur Verfügung, der das häufige Öffnen und Schliessen von Tabellen verhindern soll. Eine Tabelle, die einmal geöffnet wurde, wird im Cache offen gehalten, bis business express beendet wird.

Tabellenobjekte, die mit BeOpen() erzeugt wurden, dürfen NIE über DestroyObject() gelöscht werden. Sie müssen unbedingt mit BeClose() zurückgegeben werden. Events werden nach BeClose() nicht mehr ausgeführt. Die Verwendung von Objektvariablen nach BeClose() ist nicht mehr zulässig und kann zu falschen Ergebnissen führen. Tabellenobjekte aus dem Cache sollten nach Möglichkeit nicht an Transaktionen beteiligt sein. Eine Änderung der Objekteigenschaften ist zwar möglich, muss jedoch vor BeClose() rückgängig gemacht werden! Events, Indices, Scopes, Ranges und Filter dürfen zugewiesen bleiben und werden automatisch entfernt.

Es sollte durch Fehlerauffangroutinen sichergestellt werden, das für jeden BeOpen()-Befehl ein zugehöriger BeClose()-Befehl ausgeführt wird !

Parameter

aWorkArea:N | WorkArea, die geöffnet werden soll
aIndex:N | Indexnummer; default = 1 (falls vorhanden)
aGoTop:L | Tabelle wird auf den Anfang positioniert; default = false

Rückgabewert

Objekt - Geöffnete Tabelle

Beispiel

// Performance-Vergleich BeOpen() / DbOpen()

| aDab010, i, aTime, aCount, aBeOpenTime, aOpenTime |

aCount := 15,

aTime := GetExTimer(),

for i := 1 to aCount do

   aDab010 := BeOpen(2),

   startseq,

      Writeln(aDab010:ArtNr)

   always,

      BeClose(aDab010)

   stopseq,

next,

aBeOpenTime := Str(GetExTimer() - aTime),

aTime := GetExTimer(),

for i := 1 to aCount do

   aDab010 := DBOpen(2),

   startseq,

      Writeln(aDab010:ArtNr)

   always,

      DestroyObject(aDab010)

   stopseq,

next,

aOpenTime := Str(GetExTimer() - aTime),

WriteLn(Replicate('=', 30) + crlf +

        'Tabelle DAB010 ' + Str(aCount) + ' Mal öffnen:' + crlf +

        'aus Cache: '     + Chr(9) + aBeOpenTime + crlf +

        'konventionell: ' + Chr(9) + aOpenTime + crlf +

        Replicate('=', 30)),

Siehe auch

BeClose()


BoF()

BoF() – Tabellenanfang erreicht

Beschreibung

Die Funktion gibt zurück, ob die Tabelle auf dem ersten Datensatz steht. ("begin of file")

Parameter

aTable:U

Bezugstabelle; default = Standardtabelle

Rückgabewert

Logisch / Boolean - Anfang der Tabelle

Beispiel

| oDab010:DB := '2' |

DBGoBottom(oDab010),        // auf den letzten Datensatz springen

while not BoF(oDab010) do   // Schleife über alle Datensätze, bis Anfang erreicht

   WriteLn(oDab010:ARTNR),

   WriteLn(oDab010:ARTTYP),

   DBSkip(-1, oDab010)      // einen Datensatz zurückgehen

end,

Siehe auch

EoF()


DBAppend()

DBAppend() – Datensatz anfügen

Beschreibung

Die Funktion DBAppend() erstellt einen leeren Datensatz am Ende der Tabelle und versetzt diesen in den Einfügemodus.

Parameter

aTable:U

Tabelle; default = Standard-Tablle

Rückgabewert

Logisch / Boolean - Anfügen erfolgreich

Beispiel

| oTable |

oTable := DBOpen(0, "C:\temp\test"),

DBAppend(oTable),

oTable:TEST := 2,

iif(JN('Datensatz übernehmen?'), DBPost(oTable), DBCancel(oTable)),

Siehe auch

DBCancel()

DBEdit()

DBInsert()

DBPost()


DBCancel()

DBCancel() – Bearbeitungsmodus abbrechen

Beschreibung

Die Funktion bricht den Bearbeitungsmodus der Tabelle ab und schreibt eventuell neu zugewiesene Werte nicht in die Tabelle.

Parameter

aTable:U

Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Logisch / Boolean - Abbruch erfolgreich

Beispiel

| oTable |

oTable := DBOpen(0, "C:\temp\test"),

DBAppend(oTable),

oTable:TEST := 2,

iif(JN('Datensatz übernehmen?'), DBPost(oTable), DBCancel(oTable)),

Siehe auch

DBAppend()

DBEdit()

DBInsert()

DBPost()


DBCancelAll()

DBCancelAll() – Bearbeitungsmodus abbrechen

Beschreibung

Die Funktion führt ein DBCancel() auf alle Tabellen aus, welche im Datenmodul enthalten sind und aktuell im Edit / Insert-Modus sind.

Parameter

oBeDbGet:O

Objekt der Klasse TBeDbGet (Datenmodul)

Rückgabewert

Keiner

Beispiel

| oDM, oTable |

oDM    := CreateObject('TBeDbGet'),

oTable := DBGetTable(oDM, 1,),

startseq,

   DBEdit(oTable),

   //Editieren der Tabelle

   DBPost(oTable),

onerror,

   DBCancelAll(oDM),

stopseq,

Siehe auch

DBCancel()

DBUnLock()


DBCommit()

DBCommit() – Transaktion beenden

Beschreibung

Die Funktion führt die Befehle, die in einer Transaktion stehen, aus und beendet somit die Transaktion.

Parameter

keine Parameter erwartet

Rückgabewert

Logisch / Boolean - Beenden erfolgreich

Beispiel

startseq,

   DBStartTrans(),

   WriteLn('------'),

   WriteLn('Verschiedene Datenbankoperationen ausführen'),

   WriteLn('------'),

   iif(JN('Änderungen übernehmen?'), DBCommit(), DBRollBack()),

onerror,

   DBRollBack(),

stopseq,

Siehe auch

DBInTrans()

DBRollBack()

DBStartTrans()


DBConnection()

DBConnection() – Datenbankverbindung

Beschreibung

Die Funktion liefert das Objekt der Datenbankverbindung zurück (Typ TADSConnection), sobald im CodeBlock eine Datenbankverbindung registriert wurde.

Parameter

keine Parameter erwartet

Rückgabewert

Objekt - Datenbankverbindung

Beispiel

DBConnection()

www.dontenwill.de | www.business-express.de


DBCopyTo()

DBCopyTo() – Tabelle kopieren

Beschreibung

Die Funktion kopiert alle Sätze einer Tabelle in eine neue Tabelle. Bereiche und Filter werden berücksichtigt. Existiert die Ausgabetabelle, wird diese zunächst gelöscht. Falls aFieldList angegeben ist, werden nur die ausgewählten Datenfelder kopiert. Die Ausgabetabelle wird ohne Index erstellt.

Parameter

aOutFileName:C | Name und Pfad der Ausgabetabelle (Ohne Dateierweiterung!)
aFieldList:U | Feldliste; default = null()
aTable:U | Bezugstabelle; default = Standard-Table

Rückgabewert

Logisch / Boolean - Kopieren erfolgreich

Beispiel

| aStartNo:N := 70000, aStopNo:N := 80000, oDab000:DB := '1',

  aFileName:C := 'C:\temp\COPY' |

DBScope(Str(aStartNo, 8), Str(aStopNo, 8), oDab000),

if DBCopyTo(aFileName, 'KdNr,Name1', oDab000) then

   WriteLn(aFileName + ' erstellt'),

else

   WriteLn('Fehler beim Kopieren nach ' + aFileName)

endif,


DBCreate()

DBCreate() – Tabelle erzeugen

Beschreibung

DBCreate() erzeugt eine neue Tabelle, deren Name nicht mit 'DAB', 'DF', 'DJ' oder 'BE' beginnen darf.

Parameter

aTableName:U | Name und gegebenenfalls Pfad der zu erstellenden Tabelle
aStructure:A | Zweidimensionales Array zur Definition der Tabellenstruktur; {; { 'Feldname' , 'Feldtyp' , Feldgröße , Nachkommastellen }, {...}; }
aWorkArea:N | Workarea; default

Rückgabewert

Objekt - Neu erstellte Tabelle

Beispiel

| oDabDV, aTableName, aFields |

aTableName := 'C:\temp\' + 'Testtabelle',

aFields  := {{'ARTNR',      'C', 20, 0},    // Feld1

             {'TERM_INDEX', 'C',  9, 0},    // Feld2

             {'GEPLANT',    'N', 15, 4},    // Feld3

             {'VERBAUT',    'N', 15, 4},    // Feld4

             {'VVERBAUT',   'N', 15, 4}},   // Feld5

startseq,

   oDabDV := DBCreate(aTableName + '.ADT',  aFields),

   ShowMessage('Die Tabelle wurde erstellt!'),

onerror,

   ShowMessage('Fehler beim Erzeugen der Tabelle: ' +  aTableName + '!')

stopseq,


DBDelete()

DBDelete() – Datensatz löschen

Beschreibung

Die Funktion DBDelete() löscht den aktuellen Datensatz und setzt den Zeiger auf den nächsten Satz. Falls der Satz gelöscht werden konnte wird true, andernfalls false zurückgegeben.

Hinweis

DBDelete() erlaubt eine Löschung in Standardtabellen nur, sofern es sich um die Stücklisten-Tabelle (Dab210) handelt und die Eigenschaft "WriteProtocol" auf TRUE gesetzt wurde. Auf Individualtabellen existiert keine Einschränkung.

Parameter

aTable:U

Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Logisch / Boolean - Löschen erfolgreich

Beispiel

| oTable |

oTable := DBOpen(0, "C:\temp\test"),

DBGoTop(oTable),

iif(DBDelete(oTable), Meld("Datensatz gelöscht"),

    Meld("Datensatz kann nicht gelöscht werden")),

Siehe auch

DBAppend()

DBCancel()

DBEdit()

DBInsert()

DBPost()


DBDisableControls()

DBDisableControls() – Benachrichtigung datensensitiver Controls stoppen

Beschreibung

Die Funktion DBDisableControls() verhindert die Benachrichtigung von datensensitiven Steuerelementen, die mit der Tabelle verbunden sind. Es werden beispielsweise die Browser, die auf diese Tabelle zugreifen nicht mehr automatisch aktualisiert, was die Geschwindigkeit erheblich erhöhen kann. Durch DBEnableControls() wird die Aktualisierung wieder automatisch durchgeführt.

Parameter

aTable:U

Bezugstabelle; default = Standardtabelle

Rückgabewert

Logisch / Boolean - Disable erfolgreich

Beispiel

| oTable |

oTable := DBOpen(0, "C:\temp\test"),   // die Tabelle öffnen

DBDisableControls(oTable),             // Aktualisierung verhindern

startseq,

   DBGoTop(oTable),                    // zum ersten Datensatz springen

   while not EoF(oTable) do            // Schleife über alle Datensätze

// ----- Hier werden alle Datensätze verarbeitet ----- //

      DBSkip(1,oTable),                // auf nächsten Datensatz springen

   end,

always,

   DBEnableControls(oTable),           // Aktualisierung aktivieren

stopseq,

Siehe auch

DBEnableControls()


DBDisplayText()

DBDisplayText() – Feldinhalt als Text

Beschreibung

DBDisplayText() liefert die String-Darstellung eines Feldwertes. Mit DBDisplayText() lässt sich z.B. ein Feldwert zur Anzeige in einem datensensitiven Steuerelement ermitteln.

Parameter

aFieldName:U | Feldname
aTable:U | Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Alphanumerisch

Beispiel

| oTable, cString |

oTable  := DBOpen(0, 'C:\temp\test'),

cString := DBDisplayText('bool', oTable),

if cString = 'Wahr' then

   Meld('Der Feldinhalt war "true"'),

else

   if cString = 'Falsch' then

      Meld('Der Feldinhalt war "falsch"'),

   else

      Meld('Der Feldinhalt war kein boolescher Wert'),

   endif,

endif,


DBEdit()

DBEdit() – Tabelle in Eingabemodus versetzen

Beschreibung

Die Funktion versetzt die Tabelle in den Eingabemodus. Nach dem Aufruf von DBEdit() können den Datenfeldern neue Werte zugewiesen werden. Um die neuen Werte zu speichern muss die Funktion DBPost() aufgerufen werden.

Parameter

aTable:U

Bezugstabelle; default = Standardtabelle

Rückgabewert

Logisch / Boolean - Editmodus erfolgreich

Beispiel

| oTable, cString |

oTable := DBOpen(0, 'C:\temp\test'),

DBEdit(oTable),

oTable:TEST := 12,

DBPost(oTable),

Siehe auch

DBAppend()

DBCancel()

DBInsert()

DBPost()


DBEnableControls()

DBEnableControls() – Benachrichtigung datensensitiver Controls wiederaufnehmen

Beschreibung

Die Funktion DBEnableControls() aktiviert die Benachrichtigung von datensensitiven Steuerelementen, die mit der Tabelle verbunden sind, falls diese zuvor durch DBDisableControls() deaktiviert wurde.

Parameter

aTable:U

Bezugstabelle; default = Standardtabelle

Rückgabewert

Logisch / Boolean - Aktivierung erfolgreich

Beispiel

| oTable |

oTable := DBOpen(0, "C:\temp\test"),   // die Tabelle öffnen

DBDisableControls(oTable),             // Aktualisierung verhindern

startseq,

   DBGoTop(oTable),                    // zum ersten Datensatz springen

   while not EoF(oTable) do            // Schleife über alle Datensätze

// ----- Hier werden alle Datensätze verarbeitet ----- //

      DBSkip(1, oTable),               // auf nächsten Datensatz springen

   end,

always,

   DBEnableControls(oTable),           // Aktualisierung aktivieren

stopseq,

Siehe auch

DBDisableControls()


DBExecSQL()

DBExecSQL() – SQL Statement ausführen

Beschreibung

Die Funktion führt ein SQL Statement aus. Diese Funktion ist für SQL-Statements gedacht, die keine Rückgabemenge erzeugen, also z.B. ein "UPDATE"-Statement.

Parameter

aQuery:O

SQL-Query-Objekt (vom TYP TBeAdsQuery)

Rückgabewert

Keiner.

Beispiel

|oQuery|

oQuery     := CreateObject('TBEADSQuery'),

oQuery.SQL := 'UPDATE "Dab010.dbf"                  '+

              'SET ARTNR = ''Test-Update''          '+

              'WHERE ARTNR = ''Test-Artikel''       ',

ProgressbarShow("SQL-Query", "SQL-Befehl wird ausgeführt"),

DBExecSQL(oQuery),

ProgressbarHide(),

DestroyObject(oQuery),


DBFCount()

DBFCount() – Anzahl Datenbank-Felder

Beschreibung

Die Funktion liefert die Anzahl der Datenbank-Felder einer Tabelle.

Parameter

aTable:U

Bezugstabelle; default = Standard-Tabelle (es kann auch ein gültiger Aliasname übergeben werden)

Rückgabewert

Numerisch - Anzahl Datenbank-Felder

Beispiel

| oDab100:DB := '5', i, aField |

for i := 1 to DBFCount(oDab100) do

   aField := DBField(i, oDab100),

   WriteLn(aField.DisplayLabel),

end


DBField()

DBField() – Datenbank-Feld ermitteln

Beschreibung

Die Funktion liefert ein Datenbank-Feld-Objekt zurück.

Parameter

aFieldName:U | Name des Feldes oder Feldindex, auf den zugegriffen werden soll
aTable:U | Bezugstabelle; default = Standardtabelle

Rückgabewert

Objekt - Datenbankfeld (vom Typ TField)

Beispiel

| oDab010:DB := '2', aField |

aField := DBField(2, oDab010),

WriteLn(aField.DisplayLabel)

Siehe auch

AsString()


DBFieldDeci()

DBFieldDeci() – Datenbank-Feld Nachkommastellen

Beschreibung

Die Funktion gibt die Anzahl der Nachkommastellen eines Datenfeldes zurück.

Parameter

oDbField:O

Feldobjekt vom Typ TField (z.B. durch DbField()

Rückgabewert

Numerisch - Nachkommastellen des Datenbankfeldes

Beispiel

| oDab000:DB := '1', aField |

aField := DBField('UMSATZVK', oDab000),

WriteLn(DBFieldDeci(aField)),

Siehe auch

DBFieldLen()

DBFieldList()

DBFieldNum()

DBFieldType()


DBFieldLen()

DBFieldLen() – Datenbank-Feld Länge

Beschreibung

Die Funktion gibt die Größe des Datenfeldes zurück.

Parameter

oDbField:O

Feldobjekt vom Typ TField (z.B. durch DbField()

Rückgabewert

Numerisch - Länge des Datenbankfeldes

Beispiel

| oDab010:DB := '2', aField1, aField2 |

aField1 := DBField(23, oDab010),

WriteLn(DBFieldLen(aField1)),

aField2 := DBField(5, oDab010),

WriteLn(DBFieldLen(aField2)),

Siehe auch

DBFieldDeci()

DBFieldList()

DBFieldNum()

DBFieldType()


DBFieldList()

DBFieldList() – Datenbank-Feld Liste

Beschreibung

Die Funktion gibt ein zweidimensionales Array wieder, welches alle Feldnamen und deren Feldtyp, Feldgröße, Nachkommastellen, Position und Beschreibung der Tabelle enthält.

Parameter

nWorkArea:N

Workarea der BE-Datenbank

Rückgabewert

Array - Datenbank-Feld Liste (zweidimensionales Array).

Format:

 {

   { 'Feldname' , 'Feldtyp' , Feldgröße , Nachkommastellen , Position , 'Feldlabel' },

   ..

 }

Beispiel

| oDab100:DB := '5', aFields |

aFields := DBFieldList(oDab100.workarea),

WriteLn(aFields[4]),

WriteLn(aFields[6, 2]),

Siehe auch

DBFieldDeci()

DBFieldLen()

DBFieldNum()

DBFieldType()


DBFieldNum()

DBFieldNum() – Index eines Datenfeldes

Beschreibung

Die Funktion gibt die Position des Datenfeldes zurück.

Parameter

oDbField:O

Datenfeldobjekt

Rückgabewert

Numerisch - Position des Datenfeldes

Beispiel

| oDab000:DB := '1', oField1, oField2 |

oField1 := DBField("NAME2", oDab000),

oField2 := DBField("TELEFON", oDab000),

WriteLn(DbFieldNum(oField1)),

WriteLn(DbFieldNum(oField2)),

Siehe auch

DBFieldDeci()

DBFieldLen()

DBFieldList()

DBFieldType()


DBFieldType()

DBFieldType() – Datentyp eines Datenfeldes

Beschreibung

Die Funktion gibt den Typ des Datenfeldes zurück.

Parameter

oDbField:O

Datenfeldobjekt

Rückgabewert

Alphanumerisch - Datentyp des Datenfeldes

Beispiel

| oDab000:DB := '1', oField1, oField2 |

oField1 := DBField("SKONTOPROZ", oDab000),

oField2 := DBField("TELEFON", oDab000),

WriteLn(DbFieldType(oField1)),

WriteLn(DbFieldType(oField2)),

Siehe auch

DBFieldDeci()

DBFieldLen()

DBFieldList()

DBFieldNum()


DBFilter()

DBFilter() – Tabelle filtern

Beschreibung

Die Funktion filtert die Datensätze einer Tabelle.

Parameter

aFilterText:O | Logischer Ausdruck, der sich auf die zu filternde Tabelle beziehen muss. Leerstring löscht den Filter.
aTable:O | Tabelle auf die der Filter gesetzt werden soll; default = Standardtabelle

Rückgabewert

Keiner

Beispiel

| oDab000:DB := '1', nX |

DBFilter('KDNR<=10000', oDab000),

nX := 0,

while !EoF(oDab000) do

   nX++,

   Skip(1, oDab000),

end,

DBFilter('', oDab000),

WriteLn(nX)

Siehe auch

DBScope()


DBGetLockClientName()

DBGetLockClientName() – Computernamen des sperrenden Windows-Clients ermitteln

Beschreibung

Die Funktion ermittelt den Computernamen des Windows-Clients, von dem der aktuelle Datensatz gesperrt wurde.

Hinweis

Wird die sperrende Applikation in einer Teminalserver-Sitzung ausgeführt, dann wird der Computername des Terminalservers zurück gegeben.

Parameter

aTable:O

Tabellen-Objekt

Rückgabewert

Alphanumerisch, Name des Windows-Clients.

Beispiel

| oDab065:DB := "9, 1", cClientName:C |

DBGoTop(oDab065),                                 // Memo-Tabelle öffnen

startseq,

   DBEdit(oDab065),                               // Datensatz editieren und damit sperren

   cClientName := DbGetLockClientName(oDab065),   // Sperr-Client ermitteln

   WriteLn('sperrender Client: ' + cClientName),

always,

   DBCancel(oDab065),

stopseq,


DBGetLookup()

DBGetLookup() – Lookup Tabelle für Container erzeugen

Beschreibung

Die Funktion erzeugt oder holt eine Tabelle zur Nutzung für Datenlookups und ähnlichem aus einem Kontainer-Objekt. Die Tabelle darf nur lesend verwendet werden, muss sich jedoch nicht auf der Connection des Kontainers befinden.

Parameter

oOwner:O | Kontainer-Objekt
nWorkarea:N | WorkArea der zu holenden Tabelle
cAliasName:C | Alias-Name der Tabelle; default = Leerstring

Rückgabewert

Objekt - Lookup Tabelle

Beispiel

| oDM, oLookup |

oDM     := CreateObject('TBeDBGet'),

oLookup := DBGetLookup(oDM, 2),

WriteLn(oLookup:BEZ1),

Siehe auch

DBGetMemTable()

DBGetTable()


DBGetMemTable()

DBGetMemTable() – Memory Table für Kontainer erzeugen

Beschreibung

Die Funktion erzeugt oder holt eine Memory-Tabelle, mit der Feld-Struktur der Tabelle der angegebenen Workarea, aus einem Kontainer-Objekt.

Parameter

oOwner:O | Kontainer-Objekt
nWorkarea:N | WorkArea der zu holenden Tabelle
cAliasName:C | Alias-Name der Tabelle; default = Standard-Tabelle

Rückgabewert

Objekt - Memory Table

Beispiel

| oDM, oMemTable |

oDM       := CreateObject('TBeDBGet'),

oMemTable := DbGetMemTable(oDM, 1),

DBInsert(oMemTable),

oMemTable:NAME1 := 'Hans Mustermann',

DBPost(oMemTable),

WriteLn(oMemTable:NAME1),

Siehe auch

DBGetLookup()

DBGetTable()


DBGetTable()

DBGetTable() – Tabelle für Kontainer erzeugen

Beschreibung

Die Funktion erzeugt oder holt eine Tabelle zur Datenverarbeitung und transaktionsgestützten Nutzung aus einem Kontainer-Objekt (Datenmodul).

Sie darf zum Lesen und Schreiben verwendet werden und befindet sich immer auf der Connection des Kontainers.

Parameter

oOwner:O | Kontainer-Objekt (Datenmodul)
nWorkarea:N | WorkArea der zu holenden Tabelle
cAliasName:C | Alias-Name der Tabelle; default = Standard-Tabelle

Rückgabewert

Objekt - Tabelle

Beispiel

| oDM, oTable |

oDM    := CreateObject('TBeDBGet'),

oTable := DBGetTable( oDM, 2),

oTable:ARTNR

Siehe auch

DBGetLookup()

DBGetMemTable()


DBGoBottom()

DBGoBottom() – Auf letzten Datensatz positionieren

Beschreibung

Die Funktion springt zum letzten Datensatz der Tabelle.

Parameter

aTable:U

Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Keiner

Beispiel

| oDab000:DB := '1,0' |

DBGoBottom(oDab000),

WriteLn(oDab000:KDNR),

Siehe auch

DBGoTo()

DBGoTop()

DBSeek()


DBGoTo()

DBGoTo() – Auf Datensatz positionieren

Beschreibung

Die Funktion springt zu dem Datensatz wo REC_NO gleich aRecNo ist.

Parameter

aRecNo:U | REC_NO des Datensatzes zu dem gesprungen werden soll
aTable:O | Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Logisch / Boolean - Positionierung erfolgreich

Beispiel

| oDM, oTable |

oDM    := CreateObject('TBEDBGet'),

oTable := DBGetTable(oDM, 2),

if DBGoTo(12, oTable) then

   WriteLn(oTable:ARTNR),

endif,

Siehe auch

DBGoBottom()

DBGoTop()

DBSeek()


DBGoTop()

DBGoTop() – Auf ersten Datensatz positionieren

Beschreibung

Die Funktion springt zum ersten Datensatz der Tabelle.

Parameter

aTable:O

Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Keiner

Beispiel

| oDab000:DB := '1,0', nX |

DBGoTop(oDab000),

nX := 0,

while not EoF(oDab000) and nX <= 100 do

   WriteLn(oDab000:KDNR),

   DBSkip(1, oDab000),

   nX++

end,

Siehe auch

DBGoBottom()

DBGoTo()

DBSeek()


DBIndex()

DBIndex() – Index erstellen

Beschreibung

Die Funktion erstellt einen neuen Index für eine Tabelle. Falls dieser erfolgreich erstellt wurde, ist der neue Index sofort aktiv.

Hinweis

Die übergebene Tabelle muss aktiv sein.

Parameter

aExpression:C | Datenbankfeld oder Ausdruck mit dem indiziert werden soll
aIndexName:C | Name der Indexdatei ohne Extension
aCondition:C | Bedingung, die erfüllt sein muss, damit ein Datensatz in den neuen Index aufgenommen wird default = Leerstring
aOptions:N | Index-Optionen default = 0; Um Optionen zu kombinieren, müssen die Zahlen logisch mit _OR() verknüpft werden: 1 - UNIQUE (eindeutig); 2 - COMPOUND (zusammengesetzt); 4 - DESCENDING (absteigend)
aTable:O | Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Logisch / Boolean - Index erfolgreich erstellt

Beispiel

| oTable |

//******************************************************************************

// Tabelle erstellen

//******************************************************************************

function CreateTable()

   | cPfad, aTableName, aFields |

   startseq,

      cPfad := mbedefault + '\TransaktionsLog',

      if not ForceDirectories(cPfad) then

         SetError('Verzeichnis <' + cPfad + '> kann nicht erstellt werden'),

      endif,

      aTableName := cPfad + '\Transaktionen.ADT',

      aFields    := {{'DATUMZEIT', 'C', 19, 0},

                     {'USER',      'C',  3, 0},

                     {'ID',        'N',  8, 0}},

      Result     := nil,

      Result     := DBCreate(aTableName,  aFields),

      if empty(Result) then

         SetError('Tabelle <' + aTableName + '> wurde nicht erstellt'),

      endif,

      Result.Active := true,    // Tabelle muss für die Indizierung aktiv sein!

      DBIndex('ID', 'ID', '', 2, Result),

   onerror,

      SetError('"CreateTransLogTables()": ' + GetErrorText()),

   stopseq,

end,

oTable := CreateTable(),

DBAppend(oTable),

oTable:DatumZeit := FormatDateTime('YYYY-MM-DD HH:NN:SS', Now()),

oTable:User      := c_usr,

oTable:ID        := 1,

DBPost(oTable),

oTable.Active    := false,


DBIndexList()

DBIndexList() – Liste der Indices einer Tabelle

Beschreibung

Die Funktion gibt ein mehrdimensionales Array zurück, in welchem der Dateiname, Bezeichnung, Indexausdruck, Indexbedingung und Optionen enthalten sind.

Parameter

aWorkArea:N

Nummer der BE-Datenbank

Rückgabewert

Array - Index-Liste.

Format:

 {

   { Dateiname, Bezeichnung, Indexausdruck, Indexbedingung , UNIQUE, COMPOUND, DESCENDING },

   { ..., ..., ..., ..., ..., ..., ... }

 }

Beispiel

| oDab100:DB := '5', aIndexL |

aIndexL := DBIndexList(oDab100.workarea),

WriteLn(aIndexL[1]),

aIndexL := DBIndexList(5),

WriteLn(aIndexL[1, 3])


DBInsert()

DBInsert() – Datensatz einfügen

Beschreibung

Die Funktion fügt einen neuen Datensatz an eine Tabelle an. Nach dem Aufruf von DBInsert() können Werte für die Datenfelder des neuen Datensatzes zugewiesen werden. Um den neuen Datensatz zu speichern, muss die Funktion DBPost() aufgerufen werden.

Parameter

aTable:U

Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Logisch / Boolean - Einfügen erfolgreich

Beispiel

| oDab000:DB := '1', aKdNr |

DBGoBottom(oDab000),

WriteLn(oDab000:KDNR),

WriteLn(oDab000:NAME1),

aKdNr := oDab000:KDNR + 1,

DBInsert(oDab000),

oDab000:KDNR  := aKdNr,

oDab000:NAME1 := "Neue Firma (TEST!)",

DBPost(oDab000),

DBGoBottom(oDab000),

WriteLn(oDab000:KDNR),

WriteLn(oDab000:NAME1),

Siehe auch

DBAppend()

DBCancel()

DBEdit()

DBPost()


DBInTrans()

DBInTrans() – Transaktionszustand abfragen

Beschreibung

Die Funktion überprüft, ob sich die Datenbank in einer Transaktion befindet.

Parameter

keine Parameter erwartet

Rückgabewert

Logisch / Boolean - Transaktion aktiv

Beispiel

startseq,

   DBStartTrans(),

   WriteLn('------'),

   WriteLn('Verschiedene Datenbankoperationen ausführen'),

   WriteLn('------'),

   iif(JN('Änderungen übernehmen?'), DBCommit(), DBRollBack()),

onerror,

   DBRollBack(),

stopseq,

if DBInTrans() then

   Meld('Transaktion läuft'),

else

   Meld('Transaktion beendet'),

endif,

Siehe auch

DBCommit()

DBRollBack()

DBStartTrans()


DBLinkTable()

DBLinkTable() – Tabelle mit Datenmodul verbinden

Beschreibung

Die Funktion verbindet eine bereits existierende Tabelle mit einem Kontainer-Objekt (Datenmodul).

Hinweis

Im Gegensatz zu den DBGet...()-Funktionen kann mit der DBLinkTable()-Funktion eine bereits existierende Tabelle mit einem "TBeDBGet"-Kontainer (Datenmodul) verbunden werden.

Nach Erstellen den Verbindung, kann die Tabelle über DBGetLookup() geholt werden. Ein Holen der Tabelle mit DBGetTable() ist nur möglich, falls die Tabelle sich bereits auf der Connection des Datenmoduls befindet.

Die Tabelle muss eine im Datenmodul eindeutige Workarea / Alias-Kombination besitzen.

Parameter

oBeDBGet:O | Kontainer-Objekt (ausschließlich TBeDBGet-Objekt)
oTable:O | Tabellen-Objekt

Rückgabewert

Keiner

Beispiel

| oDM, oTable:DB := '1', oTable2 |

oDM     := CreateObject('TBeDBGet'),

oTable2 := DBGetTable(oDM, 2),

DBLinkTable(oDM, oTable),

Siehe auch

DBUnLinkTable()


DBLocate()

DBLocate() – Nach Datensatz suchen

Beschreibung

Die Funktion sucht in einer Tabelle nach einem frei definierbaren Wert über frei definierbare Felder.

Parameter

aKeyFields:C | Feldnamen der Felder die durchsucht werden sollen. Durch Semikolon getrennt: 'Feld1;Feld2'
aKeyValues:U | Suchbegriffe als Array: { Wert1, Wert2 }; Wobei sich Wert1 immer auf Feld1 bezieht und Wert2 immer auf Feld2
aOptions:N | Optionen loCaseInsensitive - Schlüsselfelder und Schlüsselwerte werden ohne Berücksichtigung der; Groß-/Kleinschreibung verglichen. loPartialKey - Schlüsselwerte müssen nicht vollständig übereinstimmen. Beispielsweise könnte der String 'HAMMER' sowohl mit 'HAM' als auch mit 'HAMM' gesucht werden.
aTable:U | Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Logisch - Suche erfolgreich

Beispiel

| oDab010:DB := '2' |

DBLocate('ARTNR;BEZ1', {'LS-200', 'Verbinder, 2-fach'}, 0, oDab010)


DBLock()

DBLock() – Datensatz sperren

Beschreibung

Die Funktion sperrt einen Datensatz. Der Datensatz kann solange von anderen Benutzern nicht mehr editiert werden, bis die Datensatzsperre mit DBUnlock() wieder aufgehoben wird.

Parameter

aTable:O

Bezugstabellen-Objekt; default = Standard-Tabelle

Rückgabewert

Logisch / Boolean - Sperren erfolgreich

Beispiel

| oDab010:DB := '2,1', oDab010_2:DB := '2,1' |

startseq,

   DBGoTop(oDab010),

   if DBLock(oDab010) then

      DBGoTop(oDab010_2),

      DBEdit(oDab010_2),

      oDab010_2:ARTNR := 'Test-Artikel',

      DBCancel(oDab010_2),

   endif,

onerror

   Meld('Datensatz kann nicht editiert werden, da er gesperrt ist'),

stopseq,

Siehe auch

DBUnLock()


DBOldVal()

DBOldVal() – Alter Wert eines Datenbankfeldes

Beschreibung

Die Funktion gibt nach einem DBEdit() und vor dem nächsten DBPost() den ursprüglichen Wert eines Datenbankfeldes zurück.

Parameter

aFieldName:C | Name des Datenfeldes
aTable:U | Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Alphanumerisch - Alter Wert

Beispiel

| oDab010:DB := '2,', cOld |

DBGoTop(oDab010),

DBEdit(oDab010),

oDab010:ARTNR := 'Test',

cOld          := DBOldVal('ARTNR', oDab010),

oDab010:ARTNR := cOld,

DBPost(oDab010),


DBOpen()

DBOpen() – Tabelle öffnen

Beschreibung

Die Funktion öffnet eine Tabelle.

Parameter

aWorkArea:U | Nummer der BE-Datenbank
aTableName:C | Name der Tabelle; default = Leerstring
aConnection:O | Connection-Objekt; default = null();

Rückgabewert

Objekt - Geöffnete Tabelle

Beispiel

| oTable, cString |

oTable := DBOpen(0, 'C:\temp\test'),

DBEdit(oTable),

oTable:TEST := 12,

DBPost(oTable),


DBPost()

DBPost() – Datensatz abspeichern

Beschreibung

Die Funktion schreibt die nach DBEdit() zugewiesenen neuen Werte der Datenfelder in die Tabelle.

Parameter

aTable:U

Bezugstabelle; default = Standardtabelle

Rückgabewert

Logisch / Boolean - Speichern erfolgreich

Beispiel

| oTable, cString |

oTable := DBOpen(0, 'C:\temp\test'),

DBEdit(oTable),

oTable:TEST := 12,

DBPost(oTable),

Siehe auch

DBAppend()

DBCancel()

DBEdit()

DBInsert()


DBRec2CSV()

DBRec2CSV() – Datensatz in CSV

Beschreibung

Die Funktion formatiert einen Datensatz in einen "Comma Seperated Value"-String.

Parameter

aFields:A | Array mit Feldnamen; default = Unassigned (Alle Felder)
aHeader:L | Ausgabe des FeldHeaders; default = false
aDateFormat:C | Bei Datumsfeldern Ausgabe im entsprechenden Format; default = Leerstring
aTable | Tabellenobjekt; default = Standardtabelle

Rückgabewert

Alphanumerisch - Datensatz als CSV-String

Beispiel

| oDAB010:DB := '2,1' |

DBRec2CSV(,,, oDAB010)


DBRecNo()

DBRecNo() – Nummer des aktuellen Datensatzes

Beschreibung

Die Funktion gibt die REC_NO Nummer des aktuellen Datensatzes zurück. REC_NO entspricht nicht zwingend der Position eines Datensatzes.

Parameter

aTable:O

Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Numerisch - REC_NO

Beispiel

| oDab010:DB := '2,1' |

DBGoTop(oDab010),

WriteLn(DBRecNo(oDab010)),


DBRefresh()

DBRefresh() – Datenbank aktualisieren

Beschreibung

Die Funktion aktualisiert die angegebene Datenbank, d.h. alle Datensätze werden erneut eingelesen.

Parameter

aTable:U

Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Logisch / Boolean - Refresh erfolgreich

Beispiel

DBRefresh(oTable)


DBRelation()

DBRelation() – Tabellen verbinden

Beschreibung

Die Funktion verbindet zwei geöffnete Tabellen über einen Ausdruck miteinander. Ist Parameter 3 (nicht 4!) das Tabellenobjekt für die Mastertabelle, dann kann Parameter 4 entfallen und der ursprüngliche Parameter 3 wird mit dem Defaultwert (.F.) initialisiert. Ist gar kein Parameter angegeben, dann werden alle Relationen für die Tabelle aufgehoben!

Parameter

aRelFunction:C | Ausdruck, über den der Schlüssel für die Detailtabelle berechnet werden kann; default = Leerstring
aDetailTable:O | Detailtabelle (muss aktiv sein!); default = Default-Tabelle
aDoAddRel:U | Gibt an ob bestehende Relation bestehen bleiben sollen (.T.) oder gelöscht werden sollen (.F.); default = false
aMasterTable | Mastertabelle mit der die Detailtablle synchronisiert wird; default = Default-Tabelle

Rückgabewert

Objekt - Relationsobjekt

Beispiel

| oDab000:DB := '1', oDab005:DB := '38' |

DBRelation('"K" + Str(KDNR,8)', oDab005, oDab000),

DBFilter("kdnr <= 16000", odab000),

DBGoTop(oDab000),

while not EoF(oDab000),

   WriteLn(Str(oDab000:KDNR) + " " + oDab000:NAME1),

   while not Empty(oDab005:NAME) and oDab005:PERSNR = oDab000:KDNR do

      WriteLn(Space(2) + oDab005:NAME),

      DBSkip(1, oDab005)

   end,

   WriteLn(""),

   DBSkip(1, oDab000),

end,


DBReplace()

DBReplace() – Tabellen verbinden

Beschreibung

Die Funktion ersetzt den Wert eines Datenbankfeldes. Die Tabelle des Feldes muss sich im Editmodus befinden (DBEdit()) und die Änderungen müssen über DBPost() gespeichert werden.

Parameter

aField:U | Feld-Objekt ( z.B. durch DBField() )
aNewValue:U | Neuer Wert

Rückgabewert

Logisch / Boolean - Ersetzen erfolgreich

Beispiel

| oDab010:DB := '2' |

DBEdit(oDab010),

DBReplace(DBField('ARTNR', oDab010), 'Test-ARTNR'),

iif(JN('Wollen Sie tatsächlich speichern?'), DBPost(oDab010), DBCancel(oDAb010)),


DBResetDM()

DBResetDM() – Datenmodul in Ursprungszustand versetzen

Beschreibung

Alle Tabellen im Datenmodul werden in ihren ursprünglichen Zustand versetzt.

- der Bearbeitungs-Modus wird abgebrochen

- alle Datensatz-Sperren werden aufgehoben

- ein evtl. vorhandener Filter wird entfernt

- ein evtl. gesetzter Scope wird entfernt

- der erste verfügbare Index wird aktiviert

Parameter

oBeDbGet:O

Objekt der Klasse TBeDbGet (Datenmodul)

Rückgabewert

Keiner - Exception bei Fehler

Beispiel

| oDM, oDab010 |

// das Beispiel geht davon aus, dass es Artikel mit

// Artikel-Gruppe 1 oder 2 und Artikel ohne Artikelgruppen-Zuordnung gibt

oDM := CreateObject('TBeDbGet'),

startseq

   WriteLn('-- Artikel-Gruppe 1/2 --'),

   oDab010           := DbGetTable(oDM, 2),

   oDab010.IndexName := 'DAB013',

   DBScope({1}, {2}, oDab010),

   DBGoTop(oDab010),

   while not EoF(oDab010) do

      WriteLn(oDab010:BEZ2),

      DBSkip(1, oDab010),

   end,

   DBResetDM(oDM), // der auf der Dab010 gesetzte Scope wird hier aufgehoben

   WriteLn('-- Keine Artikel-Gruppe --'),

   DBFilter('ARTGRUPPE = 0', oDab010),

   WriteLn(oDab010:BEZ2),

onerror,

   DBResetDM(oDM), // Im Fehlerfall wird das Datenmodul in den Ursprungszustand

                   // versetzt (wichtig, falls das Datenmodul in anderen

                   // Programmteilen weiter verwendet würde, o.ä.).

stopseq,

DestroyObject(oDM),

Siehe auch

DBCancel()

DBCancelAll()

DBFilter()

DBScope()

DBUnLock()


DBRollBack()

DBRollBack() – Transaktion löschen

Beschreibung

Die Funktion löscht alle Befehle aus einer Transaktion und beendet diese.

Parameter

keine Parameter erwartet

Rückgabewert

Logisch / Boolean - Beenden erfolgreich

Beispiel

startseq,

   DBStartTrans(),

   WriteLn('------'),

   WriteLn('Verschiedene Datenbankoperationen ausführen'),

   WriteLn('------'),

   iif(JN('Änderungen übernehmen?'), DBCommit(), DBRollBack()),

onerror,

   DBRollBack(),

stopseq,

Siehe auch

DBCommit()

DBInTrans()

DBStartTrans()


DBScope()

DBScope() – Sichtbereich einer Tabelle setzen

Beschreibung

Die Funktion begrenzt die sichtbaren Datensätze einer Tabelle. Es muss ein gültiger Index auf der Tabelle aktiv sein. Falls aTopScope:U gleich null() ist, wird die Begrenzung der Tabelle aufgehoben.

Parameter

aTopScope:U | Scope-Beginn
aBottomScope:U | Scope-Ende; default = null() (Ende der Tabelle)
aTable:U | Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Keiner

Beispiel

| aStartNo:N := 70000, aStopNo:N := 80000, oDab000:DB := '1' |

DBScope(Str(aStartNo, 8), Str(aStopNo, 8), oDab000),

DBGoTop(oDab000),

while not EoF(oDab000) do

   WriteLn(oDab000:KdNr),

   Skip(1, oDab000),

end,

DBScope(nil, oDab000),

DBGoTop(oDab000),

WriteLn(oDab000:KdNr)

Siehe auch

DBFilter()

DBGoBottom()

DBGoTop()


DBSeek()

DBSeek() – Datensatz suchen

Beschreibung

Die Funktion sucht einen Datensatz, gemäß dem Suchkriterium von aKey.

Parameter

aKey:U | Schlüssel / Suchkriterium
aTable:O | Bezugstabelle; default = Standard-Tabelle
aSoftSeek:L | Softseek. Nicht nur ein exakter Treffer sondern auch ein teilweiser Treffer (aKey = 'Musterwort', Datensatz = 'Muster') zählt als gefunden; default = false

Rückgabewert

Logisch / Boolean - Datensatz gefunden

Beispiel

| oDab000:DB := '1', oDab010:DB := '2' |

if DBSeek(Str(3, 8), oDab000) then

   WriteLn(oDab000:Name1)

endif,

if DBSeek('L', oDab010, true) then

   WriteLn(oDab010:ARTNR)

endif,

Siehe auch

DBGoBottom()

DBGoTo()

DBGoTop()


DBSkip()

DBSkip() – Datensatz wechseln

Beschreibung

Mit dieser Funktion wird der Zeiger um aRecCount:N Datensätze verschoben.

Parameter

aRecCount:N | Anzahl um wie viele Datensätze der Zeiger verschoben werden soll
aTable:U | Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Logisch / Boolean - Verschieben erfolgreich

Beispiel

| nX, oDab000:DB := '1' |

nx := 0,

DBScope(Str(5000, 8), Str(80000, 8), oDab000),

DBGoTop(oDab000),

while not EoF(oDab000) do

   nX++,

   DBSkip(1,oDab000),

end,

nx


DBSQLTableName()

DBSQLTableName() – Tabellenname für SQL

Beschreibung

Die Funktion gibt den Tabellennamen zzgl. Aliasnamen für SQL Abfragen aus.

Parameter

nWorkarea | Nummer der Workarea
bAlias | Anzeige des Alias; default = false

Rückgabewert

Alphanumerisch - Tabellenname

Beispiel

DBSQLTableName(1, true)


DBStartTrans()

DBStartTrans() – Transaktion starten

Beschreibung

Die Funktion startet eine Transaktion. Während einer Transaktion können mehrere Datenbankoperationen auf der Datenbank nacheinander abgearbeitet werden. Wenn keine Transaktion gestartet wird, würden sich Edit(), Delete(), Insert() usw., die gleichzeitig von mehreren Programmen ausgeführt werden, sich gegenseitig behindern und das Ergebnis womöglich verfälschen. Mit DBRollBack() können alle Aktionen einer Transaktion rückgängig gemacht werden. DBCommit() beendet eine Transaktion.

Parameter

keine Parameter erwartet

Rückgabewert

Logisch / Boolean - Transaktionsbeginn

Beispiel

startseq,

   DBStartTrans(),

   WriteLn('------'),

   WriteLn('Verschiedene Datenbankoperationen ausführen'),

   WriteLn('------'),

   iif(JN('Änderungen übernehmen?'), DBCommit(), DBRollBack()),

onerror,

   DBRollBack(),

stopseq,

Siehe auch

DBCommit()

DBInTrans()

DBRollBack()


DBState()

DBState() – Status der Datenbank

Beschreibung

Die Funktion gibt den Status der Datenbank wieder.

Parameter

aTable:U

Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Numerisch

  0           DSINACTIVE      // Inaktiv

  1           DSBROWSE        // Browse

  2           DSEDIT          // Editmodus

  3           DSINSERT        // Einfügen

  4           DSSETKEY        // Schlüssel setzen

  5           DSCALCFIELDS    // Calc Felder

  6           DSFILTER        // Filtern

  7           DSNEWVALUE      // Neuer Wert

  8           DSOLDVALUE      // Alter Wert

  9           DSCURVALUE      // Jetziger Wert

  10          DSBLOCKREAD     // Block lesen

  11          DSINTERNALCALC  // Internal Calc

  12          DSOPENING       // Öffnen

Beispiel

| oDab010:DB := '2' |

if not(DBState(oDab010) = dsedit) then

   DBEdit(oDab010),

endif,

oDab010:BEZ1 := 'test',

iif(JN('Änderungen wircklich speichern?'), DBPost(oDab010), DBCancel(oDab010)),


DBType()

DBType() – Typ des Datenbankfeldes

Beschreibung

Die Funktion gibt den Typ eines Datenfeldes zurück.

Parameter

aFieldName:C | Feldname
aTable:U | Bezugstabelle; default = Standard-Tabelle

Rückgabewert

Alphanumerisch - Datentyp des Feldes

Beispiel

| oDab000:DB := '1' |

WriteLn(DBType('KDNR', oDAB000)),

WriteLn(DBType('PLZORT', oDAB000)),


DBUnLinkTable()

DBUnLinkTable() – Tabelle von Datenmodul lösen

Beschreibung

Die Funktion löst die Verbindung einer existierenden Tabelle von einem Kontainer-Objekt (Datenmodul).

Parameter

oBeDBGet:O | Kontainer-Objekt (ausschließlich TBeDBGet-Objekt)
oTable:O | Tabellen-Objekt

Rückgabewert

Keiner

Siehe auch

DBLinkTable()


DBUnLock()

DBUnLock() – Datensatz entsperren

Beschreibung

Die Funktion entsperrt einen Datensatz, der zuvor mit DBLock() gesperrt wurde.

Parameter

aTable:O

Bezugstabellen-Objekt; default = Standard-Tabelle

Rückgabewert

Logisch / Boolean - Entsperren erfolgreich

Siehe auch

DBLock()


DBUseExceptions()

DBUseExceptions() – Exception-Handling für Datenbank-Funktionen

Beschreibung

Die Funktion bietet die Möglichkeit, die Datenbankfunktionen auf Exception-Handling umzustellen. Die Umstellung gilt nur für den aktuellen Codeblock. Globale Funktionen verhalten sich wie der Kontext, aus dem sie aufgerufen werden. In diesen Funktionen sollten möglichst keine Änderungen am Exception-Handling vorgenommen werden. Falls es doch notwendig ist, muß vor dem Verlassen der globalen Funktion der alte Wert zurückgeschrieben werden. Module, die per Call() aufgerufen werden, sind kontextunabhängig und ändern ihr Verhalten nicht.

Der Rückgabewert von DBUseExceptions ist die vorherige Einstellung.

Der Vorgabewert für jeden Codeblock ist False, d.h. alle Datenbankfunktionen arbeiten per Default ohne Exceptions.

Vergleich des Verhaltens

Zuweisungen auf geschützte Datenbank-Felder erzeugen im Exception-Modus einen Laufzeitfehler. Folgende Funktionen weisen ein geändertes Verhalten auf:

Funktion:     Fehler             Rückgabe          mit Exception

                                 ohne Exception    Laufzeitfehler

=================================================================

AsString      Falsches Argument  EmptyValue        Abort()

AsVariant     Falsches Argument  EmptyValue        Abort()

DbAppend      Falsches Argument  .F.               Abort()

              Rechtefehler       .F.               Abort()

DbCancel      Falsches Argument  .F.               Abort()

              Rechtefehler       .F.               Abort()

DbDelete      Falsches Argument  .F.               Abort()

              Rechtefehler       .F.               Abort()

DbEdit        Falsches Argument  .F.               Abort()

              Rechtefehler       .F.               Abort()

DbFCount      Falsches Argument   0                Abort()

DbGoBottom    Falsches Argument  EmptyValue        Abort()

DbGoTop       Falsches Argument  EmptyValue        Abort()

DbInsert      Falsches Argument  .F.               Abort()

              Rechtefehler       .F.               Abort()

DbOldVal      Falsches Argument  EmptyValue        Abort()

DbPost        Falsches Argument  .F.               Abort()

              Rechtefehler       .F.               Abort()

DbRefresh     Falsches Argument  .F.               Abort()

DbReplace     Falsches Argument  .F.               Abort()

              Rechtefehler       .F.               Abort()

DbState       Falsches Argument  .F.               Abort()

DbType        Falsches Argument  Leerstring        Abort()

BoF           Falsches Argument  .F.               Abort()

EoF           Falsches Argument  .F.               Abort()

DbRecNo       Falsches Argument   0                Abort()

LastRec       Falsches Argument   0                Abort()

DbReplace     Falsches Argument  .F.               Abort()

              Rechtefehler       .F.               Abort()

DbSkip        Falsches Argument  .F.               Abort()

DbSeek        Falsches Argument  .F.               Abort()

DbOpen        Fehler beim Öffnen EmptyValue        Abort()

DbRecNo       Falsches Argument  -1                Abort()

DbGoTo        Falsches Argument  .F.               Abort()

DbLock        Falsches Argument  .F.               Abort()

DbUnlock      Falsches Argument  .F.               Abort()

DbFilter      Falsches Argument  EmptyValue        Abort()

DbIndex       Falsches Argument  .F.               Abort()

              Nicht ausgeführt   .F.               Abort()

DbZap         Falsches Argument  .F.               Abort()

              Nicht ausgeführt   .F.               Abort()

Parameter

aDoUse:L

Exception-Handling aktivieren / deaktivieren

Rückgabewert

Logisch - Wert der vorherigen Einstellung

Beispiel

// Beispiel im alten Modus:

// ------------------------

| oDab000:DB := '1,1', aFehler |

aFehler := .T.,

If DbEdit(oDab000) then

   If DbReplace(DbField('NAME1', 'XXX') then

      If DbPost(oDab000) then

         aFehler := .F.,

      EndIf,

   EndIf,

EndIf,

WriteLn('Kundenname ' + If(aFehler, 'nicht ', '') + 'geändert!')

 Beispiel im neuen Modus:

 ------------------------

| oDab000:DB := '1,1', aFehler |

StartSeq

   DbEdit(oDab000),

   DbReplace(DbField('NAME1', oDab000), 'XXX'),

   DbPost(oDab000),

   aFehler := .F.,

OnError

   aFehler := .T.,

StopSeq,

WriteLn('Kundenname ' + If(aFehler, 'nicht ', '') + 'geändert!')


DBZap()

DBZap() – Tabelle komplett leeren

Beschreibung

Die Funktion löscht den gesamten Inhalt einer Tabelle.

Hinweis

Die Tabelle muss geöffnet sein. Ist die Tabelle nicht exklusiv geöffnet, dann wird sie geschlossen und es wird versucht, sie exklusiv zu öffnen. Mit dieser Funktion können keine BE-Tabellen bearbeitet werden! BE-Tabellen sind alle Tabellen, deren physikalischer Dateiname mit den Zeichenfolgen 'DAB', 'DF', DJ' oder 'BE' beginnt.

Parameter

aTable:O

Tabellenobjekt

Rückgabewert

Logisch - Löschung erfolgreich

Siehe auch

DBDelete()


EoF()

EoF() – Tabellenende erreicht

Beschreibung

Die Funktion gibt zurück, ob die Tabelle auf dem letzten Datensatz steht. ("end of file")

Parameter

aTable:U

Bezugstabelle; default = Standardtabelle

Rückgabewert

Logisch / Boolean - Ende der Tabelle

Siehe auch

BoF()


GetBookMarkEx()

GetBookMarkEx() - Information über Index / Scope / Filter einer Tabelle ermitteln

Beschreibung

Die Funktion gibt ein Objekt vom Typ TBookMarkEx zurück, welches detaillierte Information über den aktuellen Zustand einer Tabelle (keine MemTable) bzgl. gesetztem Index / Scope / Filter enthält.

Hinweis

Das übergebene Tabellen-Objekt muss sich im Status dsbrowse befinden, da GetBookMarkEx() einen evtl. gesetzten Editmodus verwerfen würde.

Parameter

oDataSet

Tabellen-Objekt

Rückgabewert

Objekt vom Typ TBookMarkEx

Beispiel

| oTable, oDM, oBookMark, i, cResult, aIndexList, cIndexFields |

startseq,

   oDM              := CreateoBject('TBeDbGet'),

   oTable           := DBGetTable(oDM, 2),

   oTable.IndexName := 'DAB011',

   // Filter + Scope setzen

   DBFilter("ARTNR >= 'A' and ARTNR <= 'B'", oTable),

   DBScope({'A'}, {'B'}, oTable),

   aIndexList   := DBIndexList(oTable.Workarea),

   cIndexFields := '',

   for i := 1 to aLen(aIndexList) do

      if aIndexList[i, 2] == oTable.IndexName then

         cIndexFields := aIndexList[i, 3],

      break,

      endif,

   next,

  oBookMark := GetBookMarkEx(oTable),

  cResult   := 'Tabelle aktiv  : ' + if(oBookMark.Active, 'Ja', 'Nein')   + crlf +

               ' Filter'           + crlf +

               '   aktiv       : ' + if(oBookMark.Filtered, 'Ja', 'Nein') + crlf +

               '   Filter      : ' + AllTrim(oBookMark.Filter)            + crlf +

               '   AdsFilter   : ' + AllTrim(oBookMark.AdsFilter)         + crlf +

               ' Scope / Range'    + crlf +

               '   Scope (alt) : ' + if(oBookMark.IsScope, 'Ja', 'Nein')  + crlf +

               '   Range       : ' + if(oBookMark.IsRange, 'Ja', 'Nein')  + crlf +

               '   Index       : ' + AllTrim(oBookMark.IndexOrder)        + crlf +

               '   Felder      : ' + cIndexFields                         + crlf +

               '   TopScope    : ' + AllTrim(oBookMark.TopScope)          + crlf +

               '   BottomScope : ' + AllTrim(oBookMark.BottomScope),

onerror,

   MessageDlg(GetErrorText()),

stopseq,

DestroyObject(oDM),

DestroyObject(oBookMark),

cResult

Siehe auch

SetBookMarkEx()


IsEvenRecNo()

IsEvenRecNo() – Datensatz auf gerade Recordnummer prüfen

Beschreibung

Die Funktion prüft, ob die aktuelle Datensatznummer der übergebenen Tabelle eine gerade Zahl ist.

Hinweis

Bei Nachfahren von ADS-Tabellen (also u.a. alle business express Tabellen) wird für die Prüfung die Nummer des logischen Datensatzes unter Beachtung eines gesetzten Index ermittelt. Der erste Datensatz eines Index hat die logische Nummer 1.

Parameter

aTable:O

Tabellenobjekt, Default = Standard-Tabelle

Rückgabewert

Logisch

Beispiel

| oDab065:DB := "9, 1" |

DBGoTop(oDab065),

WriteLn(DbRecNo(oDab065), IsEvenRecNo(oDab065)),   // Ergebnis: {1; .F.}

DBSkip(1, oDab065),

WriteLn(DbRecNo(oDab065), IsEvenRecNo(oDab065)),   // Ergebnis: {4; .T.}

Siehe auch

DBRecNo()


IsRecordLocked()

IsRecordLocked() – Sperr-Prüfung eines Datensatzes

Beschreibung

Die Funktion prüft, ob der aktuelle Datensatz vom eigenen oder einem anderen Benutzer gesperrt ist.

Parameter

aTable:O

Tabellenobjekt, Default = Standard-Tabelle

Rückgabewert

Logisch

Beispiel

|oDab000:DB:='1,1', lIsLocked|

// Datensatz ggf. entsperren

lIsLocked := IsRecordLocked(oDab000),

if lIsLocked then

   DBUnlock(oDab000),

endif,

writeln(IsRecordLocked(oDab000), recno(oDab000)), //.F. (Datensatz nicht gelockt)

DBLock(oDab000),                                  // Datensatz locken

writeln(IsRecordLocked(oDab000), recno(oDab000)), //.T. (Datensatz gelockt)

// Ursprungszustand herstellen

if not lIsLocked then

   DBUnlock(oDab000)

endif,

Siehe auch

DBLock()

DBUnLock()


LastRec()

LastRec() – Anzahl der Datensätze einer Tabelle

Beschreibung

Die Funktion ermittelt die Anzahl der Datensätze der übergebenen Tabelle über die Ads-Funktion "RecordCount".

Parameter

aTable:U

Tabellenobjekt, Default = Standard-Tabelle

Rückgabewert

Numerisch - Anzahl Datensätze

Beispiel

| oDab065:DB := "9, 1" |

LastRec(oDab065)


LookUp()

LookUp()

Beschreibung

Die Funktion führt eine definierte Codeblock-(Rechen-)Operation auf einem per Workarea, Index und Suchwert definierten Datensatz oder einer solchen definierten Datenmenge aus und liefert das Ergebnis zurück.

Hinweis

Die optionalen Parameter aErrRetVal und aMode sollten optimalerweise immer angegeben werden, insbesondere falls der Lookup in einem Browser, Report oder Maske verwendet wird. Wird kein aErrRetVal angegeben, wird im Fehlerfall u.U. eine endlose Schleife von Fehler-Meldungen angezeigt.

Parameter

aFileNo:U | BE-Datei-Nr
aKeyNo:U | Schlüssel-Nr oder Indexname , 0 für Suche per Record-Nr.
aKey:U | Typ Character -> Schlüssel; Typ 1-Dim. Array -> enthält [von / bis] Schlüssel; Typ 2-Dim. Array -> enhält Schlüssel [für ADT-Tabellen]; Typ Integer -> Record-Nr.
aExpression:C | Codeblock Funktionsausdruck für Rückgabewert
aErrRetVal:U | Rückgabe im Fehlerfall (Default = leer -> Fehlermeldung anzeigen !)
aMode:N | lm_Lookup = LookUp (= Default) lm_Sum = SUM lm_Max = MAX lm_Min = MIN lm_Avarage = Durchschnitt lm_RecCount = Anz.Sätze lm_GroupCount = Anzahl unterschiedlicher Werte
aFilter:C | aMode >= 1 -> Bedingung/Filter (Default = leer) aMode = 0 -> Codeblock zur Ausführung vor dem Zugriff
aLocation:N | aLocation >= 0 -> Standort für Filter auf Lookuptabelle aLocation = -1 -> aktiven Standort für Filter verwenden (= Default) aLocation = -2 -> Standortfilter deaktivieren
aForceRefr:L | True = Gefundenen Satz immer aktualisieren (nur LM_LOOKUP) (Default = FALSE)

Rückgabewert

Ergebnis des aExpression Codeblocks, je nach aMode

Beispiel

// Einige Beispiele zu verschiedenen Index-Typen und LookUp-Keys

// (für ADT- und DBF-Tabellen)

// Unter LookUp-Key versteht sich der 3. Parameter (aKey)

// Einfacher (DBF oder ADT) Character-Index (ein Feld, Character):

Index: "ARTNR"

LookUp-Key: {{PadR("MEIN_ART", mBeArtNoLen)}}

// Zusammengesetzter (DBF oder ADT) Character-Index

// (mehrere Felder, auf Character konvertiert):

Index: "ARTNR + STRZERO(KDNR, 8)"

LookUp-Key: {{PadR("MEIN_ART", mBeArtNoLen) + StrZero(4711, 8)}} // oder

LookUp-Key: {{"MEIN_ART", 4711}}

// Einfacher (DBF oder ADT) Nicht-Character-Index (ein Feld, nicht Character):

Index: "KDNR"

LookUp-Key: {{4711}}

// Zusammengesetzter (nur ADT) RAW-Index

// (mehrere Felder, per Semikolon getrennt, Typ egal):

Index: "ARTNR; KDNR"

LookUp-Key: {{"MEIN_ART", 4711}} // oder

LookUp-Key: {{"MEIN_ART", 4711}}

// Beispiel: Workarea 86, Index: "AENR;POSITNR" (beide Felder numerisch)

LookUp(86, 1, {{33  }},         "not EoF()")

LookUp(86, 1, {{33,1}},         "not EoF()")

LookUp(86, 1, {{31,0}, {33,1}}, "not EoF()", 0, LM_RECCOUNT) > 0

LookUp(86, 1, {{31  }, {33  }}, "not EoF()", 0, LM_RECCOUNT) > 0

// Unzulässige Aufrufe

LookUp(86, 1, {31}, "not EoF()", false)

LookUp(86, 1, {31,33}, "not EoF()", 0, LM_RECCOUNT) > 0


RecNo()

RecNo() – Nummer des aktuellen Datensatzes

Beschreibung

Diese Funktion entspricht der Funktion DbRecNo().

Siehe auch

DBRecNo()


Replace()

Replace()

Beschreibung

Diese Funktion entspricht der Funktion DBReplace().

Siehe auch

DBReplace()


SetBookMarkEx()

SetBookMarkEx() - Zustand einer Tabelle auf zuvor gespeicherten Zustand setzen

Beschreibung

Die Funktion setzt den Zustand einer Tabelle (keine MemTable) auf einen zuvor mit GetBookMarkEx() ermittelten Zustand zurück. Gesetzt werden Index, Scope und Filter.

Hinweis

Das übergebene Tabellen-Objekt muss sich im Status dsbrowse befinden, da SetBookMarkEx() einen evtl. gesetzten Editmodus verwerfen würde.

Parameter

oDataSet:O | Tabellen-Objekt
oBookMarkEx:O | TBookMarkEx-Objekt
lFreeBookmark:L | TBookMarkEx-Objekt nach dem Setzen freigeben; Default = true

Rückgabewert

keiner

Beispiel

| oTable, oDM, oBookMark |

startseq,

   oDM              := CreateoBject('TBeDbGet'),

   oTable           := DBGetTable(oDM, 2),

   oTable.IndexName := 'DAB011',

   // Filter + Scope setzen

   DBFilter("ARTNR >= 'A' and ARTNR <= 'B'", oTable),

   DBScope({'A'}, {'B'}, oTable),

   // aktuelle Einstellungen merken

   oBookMark := GetBookMarkEx(oTable),

   WriteLn('aktueller Filter: ' + oTable.Filter),

   // Filter + Scope verändern

   DBFilter("ARTNR >= 'F' and ARTNR <= 'G'", oTable),

   DBScope({'F'}, {'G'}, oTable),

   WriteLn('aktueller Filter: ' + oTable.Filter),

   // Einstellungen zurücksetzen

   // soll der übergebene oBookMark später noch vewendet werden,

   // muss der Parameter lFreeBookmark = true gesetzt werden,

   // da sonst das Objekt zerstört wird.

   SetBookMarkEx(oTable, oBookMark),

   WriteLn('aktueller Filter: ' + oTable.Filter),

onerror,

   WriteLn(GetErrorText()),

stopseq,

DestroyObject(oDM),

oBookMark

Siehe auch

GetBookMarkEx()


Skip()

Skip() – Datensatz wechseln

Beschreibung

Diese Funktion entspricht der Funktion DBSkip().

Siehe auch

DBSkip()


SQL()

SQL() – SQL-Statement im Codeblock definieren

Beschreibung

Die Funktion SQL() kann zum Öffnen von SQL-Abfragen verwendet werden. Der Parameter dieser Funktion ist ein SQL-Statement, dessen Syntax NICHT über den Codeblock geprüft wird. Das Statement wird nicht als String eingegeben, sondern als SQL-Text, d.h. ohne Anführungszeichen. SQL-Text ist ein eigenständiger Typ (S) und zu keinem anderen Codeblock-Typ kompatibel.

Über die Funktion SQLDefaults() können Eigenschaften definiert werden, die bei der Ausführung berücksichtigt werden (Owner-Objekt, ADS-Connection und Open-Modus).

Hinweis

Ein SQL-Text kann Parameter enthalten, die automatisch ersetzt werden sollen.

Ein '&'-Zeichen leitet einen Parameter ein. Ein Parameter ist definiert als:

1) ein Bezeichner

  SQL(Select kdnr from &aMyTableName where kdnr = 4711)

2) ein Funktionsaufruf

  SQL(Select kdnr, name1, name2 from &.DbSqlTableName(1) where kdnr = 4711)

3) ein geklammerter Ausdruck

  SQL(Select * from &@Dab000 where kdnr = &(aKdNr + 1))

Die Parameter werden unmittelbar vor Ausführung des SQL-Statements berechnet. Für die möglichen Ergebnis-Typen einer Parameterberechnung gilt:

1) Ist das Ergebnis eine Zahl, wird diese als Zahl in den SQL-Text eingefügt.

2) Ist das Ergebnis ein Text, wird dieser im Statement automatisch in Anführungszeichen gestellt.

Dies kann unterbunden werden, indem unmittelbar nach dem '&'-Zeichen ein '.' geschrieben wird.

3) Ist das Ergebnis ein logischer Wert, wird entweder True oder False eingesetzt.

4) Ist das Ergebnis ein Datum, wird ein Text in der Form 'YYYY-MM-DD' erzeugt.

5) Ist das Ergebnis ein Objekt, wird eine Exception ausgelöst.

Ein Sonderfall ist der Parameter &@<Alias>. Diese Kombination dient dazu, den Namen einer Tabelle als Parameter einzusetzen.

Im SQL-Statement wird nur während der Optimierung nach Parametern gesucht. Zur Laufzeit werden lediglich die Parameter berechnet und eingesetzt.

Die Position eines Parameters entscheidet über die Reihenfolge der Berechnung. Wird das Zeichen '&' direkt in einem Statement benötigt, muss es doppelt angegeben werden. Die Syntax innerhalb eines Parameters muss regulärer Codeblock-Code sein. Ein fehlerhafter Parameter führt zu einem Syntaxfehler.

Parameter

aStatement:S

SQL-Statement

Rückgabewert

SQL-Query-Objekt (Typ TBeAdsQuery)

Beispiel

| nStart, nStop, oQuery, aOrder |

WriteLn(SQLEngine()),

nStart := 70000,

nStop  := 80000,

aOrder := 'PLZORT',

//

//

//

//

//

oQuery := SQL(Select LiNr, Name1, Name2, Strasse, PlzOrt

              From

              Where LiNr >=

                    LiNr <=

              Order By

             ),

startseq,

   while not EoF(oQuery) do

      WriteLn(oQuery:PlzOrt, oQuery:LiNr, oQuery:Name1),

      DBSkip(1, oQuery),

   end,

always,

   DestroyObject(oQuery)

stopseq,

Siehe auch

SQLDefaults()

SQLEngine()

SQLStr()


SQLDefaults()

SQLDefaults() – SQL-Default-Eigenschaften setzen

Beschreibung

Mit dieser Funktion werden Standard-Eigenschaften eingestellt, die die Funktion SQL() zum Erzeugen der Abfrage verwendet.

Parameter

aOwner:O | Besitzer des Objektes; Default ist Nil; kann ausgelassen werden;
aConncetion:O | Datenbank-Verbindung, in der die SQL-Abfrage ausgeführt wird;
aOpen:L | Legt fest, ob die Abfrage bereits geöffnet sein soll, wenn das Abfrageobjekt zurückgegeben wird; Default = True

Rückgabewert

Keiner

Siehe auch

SQL()

SQLEngine()

SQLStr()


SQLEngine()

SQLEngine() – SQL-Engine aktivieren

Beschreibung

Die Funktion SQLEngine() setzt eine registrierte SQL-Engine als aktiv ein. Gleichzeitig liefert die Funktion den Namen der zuletzt aktiven Engine zurück.

Eine Engine steuert das Erscheinungsbild einiger Parameter der SQL-Abfrage, wie z.B die Auflösung des Datumsformates oder die Art wie Tabellen-Namen angegeben werden.

Hinweis

Momentan ist nur eine Engine mit dem Namen 'ADS' registriert.

Parameter

aEngine:C

Name der zu aktivierenden SQL-Engine

Rückgabewert

Alphanumerisch - Name der zuletzt aktiven Engine

Siehe auch

SQL()

SQLDefaults()

SQLStr()


SQLStr()

SQLStr() – SQL-Statement im Codeblock definieren

Beschreibung

Die Funktion erzeugt einen SQL-Text als Zeichenfolge. Die Funktion der Parameter ist identisch mit der in der Funktion SQL.

Parameter

aStatement:S

SQL-Statement

Rückgabewert

Alphanumerisch

Beispiel

siehe Funktion SQL()

Siehe auch

SQL()

SQLDefaults()

SQLEngine()


AllTrim()

AllTrim() – Leerzeichen entfernen

Beschreibung

Die Funktion entfernt alle links- und rechtsbündigen Leerzeichen, die am Anfang oder am Ende einer Zeichenkette (String) stehen.

Parameter

aText:C

Beliebige Zeichenkette

Rückgabewert

Alphanumerisch

Beispiel

AllTrim('     Dontenwill   BE     ')   // Ergebnis: 'Dontenwill   BE'

Siehe auch

LTrim()

RTrim()

Trim()


AnsiToOem()

AnsiToOem() – Ansi-Format in Oem-Format umwandeln

Beschreibung

Die Funktion konvertiert eine Zeichenkette (String) aus dem Ansi-Format in das Oem-Format.

Parameter

aText:C

Text, der umgewandelt werden soll

Rückgabewert

Alphanumerisch

Beispiel

Asc(AnsiToOem('ä'))   // Ergebnis: '132'

Asc('ä')              // Ergebnis: '228'

Siehe auch

OemToAnsi()


Asc()

Asc() – Ascii-Code eines Zeichens

Beschreibung

Die Funktion gibt den ASCII-Code (Numerisch) des ersten Zeichens einer Zeichenkette (String) zurück.

Parameter

aText:C

Beliebige Zeichenkette

Rückgabewert

Numerisch

Beispiel

Asc('Dontenwill')   // Ergebnis: 68

Asc(CrLf)           // Ergebnis: 13

Siehe auch

Chr()


At()

At() – Position in Zeichenkette

Beschreibung

Die Funktion gibt die Position des ersten Zeichens einer Zeichenkette innerhalb einer anderen Zeichenkette zurück.

Parameter

aSearchText:C | Gesuchte Zeichenkette
aText:C | Zeichenkette, die durchsucht werden soll

Rückgabewert

Numerisch; wird 0 zurück geliefert wurde die gesuchte Zeichenkette nicht gefunden.

Beispiel

At("ex", "business express")   // Ergebnis: 10

Siehe auch

RAt()

SubStr()


AttachmentsToText()

AttachmentsToText() – Extrahieren von Texten aus Memoanhängen

Beschreibung

Extrahiert Texte aus Anhängen der Memoverwaltung

Hinweis

Geeignet z.B. für Dab065:DATA und Dab700:ANHANG

Parameter

oField:O | Feldobjekt (-> Funktion DbField )
lGetPdf:L lGetTxt:L lGetRtf:L | Texte aus PDF-Anhängen extrahieren; Default = True; Texte aus TXT-Anhängen extrahieren; Default = True; Texte aus RTF-Anhängen extrahieren; Default = True

Rückgabewert

Alphanumerisch; Texte aus den Anhängen

Beispiel

// Beispiel für Updaterecht in Dab700:Text

| cRes1, cRes2 |

cRes1:= '',

cRes2:= '',

// Angebot, Lieferschein, Rechnung, Bestellung, Reparaturbericht

If BELEG_ART = 10  or

   BELEG_ART = 60  or

   BELEG_ART = 160 or

   BELEG_ART = 230 or

   BELEG_ART = 910 then

   StartSeq

     cRes1:= D700_VoucherAsText('DATEN', Dab700),

   OnError

   StopSeq,

   StartSeq

     cRes2:= AttachmentsToText(DbField('ANHANG', Dab700)),

   OnError

   StopSeq,

EndIf,

Alltrim(cRes1 + ' ' + cRes2)

Siehe auch

Pdf2Text()


Base64Decode()

Base64Encode() – Dekodiert einen Base64 kodierten String

Beschreibung

Diese Funktion dient dazu einen String welcher mit Base64 kodiert wurde wieder zu dekodieren.

Parameter

cStringToDecode:C

Base64-String der dekodiert werden soll

Rückgabewert

Alphanumerisch

Beispiel

siehe Base64Encode()

Siehe auch

Base64Encode()


Base64Encode()

Base64Encode() – Wandelt einen String in einen Base64 kodierten String um

Beschreibung

Diese Funktion dient dazu einen String welcher Steuerzeichen (z.B. Zeilenumbruch, Tabulator) enthalten kann so zu kodieren das nur noch "normale" Zeichen verwendet werden. Der so kodierte String kann dann z.B. über Schnittstellen übertragen werden welche sich an Steuerzeichen stören oder diese verändern. Zur Kodierung werden die Zeichen A–Z, a–z, 0–9, + und / verwendet, sowie = als Füllzeichen am Ende. Der kodierte String ist ~30% länger als der ursprüngliche.

Hinweis

Diese Funktion dient nur zum kodieren und stellt keine Verschlüsselung dar!

Parameter

cStringToEncode:C

String welcher Base64 kodiert werden soll

Rückgabewert

Alphanumerisch

Beispiel

|aString, aEncodedString|

// String Base64 kodieren

aString := 'Hallo Welt ' + chr(9) + ' Hallo Weltall',

aEncodedString := Base64Encode(aString),

writeln(aEncodedString), // SGFsbG8gV2VsdCAJIEhhbGxvIFdlbHRhbGw

// Base64-String dekodieren

aString := Base64Decode(aEncodedString),

writeln(aString),        // Hallo Welt      Hallo Weltall

Siehe auch

Base64Decode()


BeFormat()

BeFormat() – Wertformatierung

Beschreibung

Die Funktion formatiert einen übergebenen Wert anhand der angegebenen Maske.

Hinweis

# -> Platzhalter für numerische Ausdrücke

! -> Platzhalter für alphanumerische Ausdrücke

X -> Platzhalter, der die ursprüngliche Formatierung alphanumerischer Zeichen beibehält

Sonstige Zeichen werden in den formatierten Text direkt übernommen.

Parameter

aValue:U | Wert, der formatiert werden soll
aMask:C | Maske, nach der formatiert werden soll

Rückgabewert

Alphanumerisch

Beispiel

BeFormat('Dontenwill123', '!!!!!!!')           // Ergebnis: 'DONTENW'

BeFormat('Dontenwill123', '!!!!XXXXXX')        // Ergebnis: 'DONTenwill'

BeFormat('Dontenwill123', '#############')     // Ergebnis: '123'

BeFormat('Dontenwill123', 'XXX/########.##')   // Ergebnis: 'Don/1.23'

Siehe auch

FormatDateTime()

FormatFloat()


BeToken()

BeToken() – Token in Zeichenkette suchen

Beschreibung

Die Funktion liefert das Token (String) mit dem Index aIndex aus einer Zeichenkette aText (String) zurück, die durch ein oder mehrere Trennzeichen aDelimiter in mehrere Abschnitte unterteilt ist.

Hinweis

Das Erste Token in einer Zeichenkette hat den Index 1.

Parameter

aText:C | Beliebige Zeichenkette mit Trennzeichen
aDelimiter:C | Trennzeichen, durch das die Token voneinander getrennt sind
aIndex:N | Nummer des Tokens, welches gesucht wird

Rückgabewert

Alphanumerisch

Beispiel

BeToken('123,456,789,012,345,678,901', ',', 4)   // Ergebnis: '012'

Siehe auch

SubStr()


BlStr()

BlStr() – Umwandlung in Zeichenkette mit Leerzeichen

Beschreibung

Die Funktion erweitert die übergebene Zeichenkette (String) um Leerzeichen.

Parameter

aValue:N | Beliebiger numerischer Wert
aLen:N | Gesamtlänge der umgewandelten Zeichenkette
aDecimals:N | Anzahl der Nachkommastellen; Default = 0
aZero:L | Mit true werden rechtsseitig nachgestellte Nullen entfernt; Default = false

Rückgabewert

Alphanumerisch

Beispiel

BlStr(560.05, 10)           // Ergebnis: '       560'

BlStr(560.05, 10, 2)        // Ergebnis: '    560.05'

BlStr(560.00, 10, 2)        // Ergebnis: '    560

BlStr(560.05, 10, 6, .T.)   // Ergebnis: '    560.05'

BlStr(560.05, 10, 6, .F.)   // Ergebnis: '560.050000'


Chr()

Chr() – Umwandlung von ASCII-Code

Beschreibung

Umwandlung eines ASCII-Codes zwischen 0 und 255 in ein Zeichen.

Parameter

aInteger:N

Ein ASCII-Code zwischen 0 und 255

Rückgabewert

Alphanumerisch

Beispiel

Chr(65)   // Ergebnis: 'A'

Chr(97)   // Ergebnis: 'a'

Siehe auch

Asc()


ConcatRTF()

ConcatRTF() – Zeichenketten verknüpfen

Beschreibung

Die Funktion verbindet zwei im RTF-Format übergebene Texte miteinander. Zwischen den Texten wird ein Zeilenumbruch vollzogen.

Hinweis

Wird einer der beiden Texte nicht formatiert (d.h. kein RTF-, sondern normaler ASCII-Text) übergeben, wird er automatisch mit den Default-Werten formatiert.

Parameter

cText1:C | Erster Text
cText2:C | Zweiter Text
cDefFontName:C | Default-Font-Name für Nicht-RTF-Text (Default = "Arial")
nDefFontSize:N | Default-Font-Größe für Nicht-RTF-Text (Default = 10)
nDefFontStyles:N | Default-Font-Stil für Nicht RTF-Text (Default = 0/normal)

Rückgabewert

Alphanumerisch - neuer RTF-Text

Beispiel

// Default-Formatierung für o[pvPosMemo] vorgeben ...

PrintVarVal(EinObjekt, ConcatRTF(o[pvPosMemo], "", "Arial Black", 12, 1))

Siehe auch

IsTextRTF()


D065_HistoryToSearchIndex()

ToDo: Mit MemoBo Umstellung über MemoBo-Objekt abgedeckt -> Doku löschen

D065_HistoryToSearchIndex() – Konvertiert History-Array-String in FTS-String

Beschreibung

Konvertiert ein Array des History-Einträge (DAB065:HISTORY) in einen String für die FTS-Suche (DAB065:SUCH_KZ) um.

Hinweis

Ist in der EventID des History-Arrays keine Benutzerkennung enthalten, so wird nach einer Benutzer-Kennung im Von-Feld gesucht.
Jede Kombination von Event-Typ & Benutzerkennung wird nur einmal in den FTS-String übernommen

Nachfolgend die Auflistung aller History Event-Typen und deren entsprechenden FTS-Suchkennzeichen

Event-Typ; (DAB065:HISTORY) | FTS-Suchkennzeichen; (DAB065:SUCHE) | Beschreibung
F | AF | Gesendetes Fax
I | EE | Eingegangene E-Mail
T | AE | Gesendete E-Mail
R | RE | Memo referenziert
Y | YE | Memo beantwortet
W | WE | Memo weitergeleitet
M | MR | Als "gelesen" markiert
U | MU | Als "ungelesen" markiert
P | PR | Memo (Brief) gedruckt
N |  | Notiz für intene Mitarbeiter (bei E-Mail-Versand); Wird nicht in FTS übernommen
V | VM | Manuell archiviert
A | MA | Memo auf andere Pers.-Nr. übertragen
S | SC | Memo-Anhänge durch Scannvorgang hinzugefügt

Parameter

cHistoryArray:C | History-Array-String

Rückgabewert

Alphanumerisch

Beispiel

| aRes, oDAB065:DB:='9,6'|

DbLocate('Memo_ID', 17466, , oDAB065),

aRes := D065_HistoryToSearchIndex(oDAB065: HISTORY),  //Inhalt: {"A","   181291","Demo, Dieter (065)","27.11.2009 20:56:00"}

Writeln(aRes)                                         //Ergibt: MA:065


FormatFloat()

FormatFloat() – Fließkommazahl formatieren

Beschreibung

Die Funktion formatiert eine Fließkommazahl (Float) in das angegebene Format. Falls erforderlich, wird die zuletzt angezeigte Zahl gerundet.

Parameter

aFormat:C | Format, nach dem formatiert werden soll; Zulässige Zeichen für die Formatierung sind 0, #, Punkt(.), und Komma(,)
aValue:N | Zahl, die formatiert werden soll

Rückgabewert

Alphanumerisch

Beispiel

FormatFloat('000000.00', 415.2151)        // Ergebnis: '000415,22'

FormatFloat('00.0', 415.2151)             // Ergebnis: '415,2'

FormatFloat('000,000.00', 415.2151)       // Ergebnis: '000.415,22'

FormatFloat('0,000,000', 11785415.2151)   // Ergebnis: '11.785.415'

Siehe auch

FormatDateTime()

BeFormat()


IsTextRTF()

IsTextRTF() – Auf Formatierung prüfen

Beschreibung

Die Funktion prüft, ob ein Text im RTF-Format vorliegt.

Parameter

cText:C

Zu prüfender Text

Rückgabewert

Logisch

Beispiel

IsTextRTF('Dontenwill')

// Ergebnis: false

IsTextRTF('{\rtf1Guten Tag!\par{\i Dies} ist ein formatierter {\b Text}.}')

// Ergebnis: true

Siehe auch

ConcatRTF()

RTFToText()


Left()

Left() – Linker Teil einer Zeichenkette

Beschreibung

Die Funktion gibt den linken Teil einer Zeichenkette zurück, begrenzt durch aChrCount.

Parameter

aText:C | Beliebige Zeichenkette
aChrCount:N | Anzahl der Zeichen, die zurück gegeben werden sollen

Rückgabewert

Alphanumerisch

Beispiel

Left('Dontenwill AG', 10)   // Ergebnis: 'Dontenwill'

Siehe auch

Right()

SubStr()


Len()

Len() – Länge einer Zeichenkette ermitteln

Beschreibung

Die Funktion gibt die Länge einer Zeichenkette (String) zurück.

Parameter

aText:C

Zeichenkette

Rückgabewert

Numerisch

Beispiel

Len('Dontenwill')   // Ergebnis: 10


Lower()

Lower() – Umwandlung in Kleinbuchstaben

Beschreibung

Die Funktion wandelt alle Zeichen einer Zeichenkette in Kleinbuchstaben um.

Parameter

aText:C

Beliebige Zeichenkette

Rückgabewert

Alphanumerisch

Beispiel

Lower('Dontenwill')   // Ergebnis: 'dontenwill'

Siehe auch

Upper()


LTrim()

LTrim() – Leerzeichen linksbündig löschen

Beschreibung

Die Funktion löscht alle linksbündigen Leerzeichen einer Zeichenkette.

Parameter

aText:C

Beliebige Zeichenkette

Rückgabewert

Alphanumerisch

Beispiel

LTrim('                 Dontenwill')   // Ergebnis: 'Dontenwill'

Siehe auch

AllTrim()

RTrim()

Trim()


MemoLine()

MemoLine() – Memozeile extrahieren

Beschreibung

Die Funktion extrahiert aus einem Memo eine beliebige Zeile oder Zeichenkette.

Parameter

aMemo:C | Beliebiges Memo
aLineLen:N | Zeilenlänge (Default = 70)
aLine:N | Nummer der Zeile (Default = 1)
aTabSize:N | Länge des Tabstopps
UseWordWrap:L | Zeilenumbruch (Default = true)

Rückgabewert

Alphanumerisch

Beispiel

| aFileName, aFile, aPath |

aPath     := 'c:\temp\',

aFileName := 'test.txt',

if !DirectoryExists(aPath) then

   CreateDir(aPath)

endif,

startseq,

   aFile := FOpen(aPath + aFilename, FO_CREATE),

   FWriteLn(aFile, 'Dontenwill AG'),

   FWriteLn(aFile, 'Datum ' + DToC(Date())),

   FClose(aFile)

onerror,

stopseq,

MemoLine(MemoRead(aPath + aFileName), 13, 1)   // Ergebnis: 'Dontenwill AG'


MemoRead()

MemoRead() – Datei als Memo einlesen

Beschreibung

Die Funktion liest eine komplette Datei als Memo ein und gibt deren Inhalt zurück.

Parameter

aFilename:C

Dateiname und Pfad

Rückgabewert

Alphanumerisch

Beispiel

| aFileName, aFile, aPath |

aPath     := 'c:\temp\',

aFileName := 'test.txt',

if !DirectoryExists(aPath) then

   CreateDir(aPath)

endif,

startseq,

   aFile := FOpen(aPath + aFilename, FO_CREATE),

   FWriteLn(aFile, 'Dontenwill AG'),

   FWriteLn(aFile, 'Datum ' + DToC(Date())),

   FClose(aFile)

onerror,

stopseq,

MemoRead(aPath + aFileName)

// Ergebnis: 'Dontenwill AG'

//           'Datum 26.02.09'

// Hinweis:  Als Datum wird natürlich das aktuelle Tagesdatum ausgegeben.


MLCount()

MLCount() – Zeilen in Memo zählen

Beschreibung

Die Funktion zählt die Anzahl der Zeilen in einem Memo.

Parameter

aMemo:C | Beliebiges Memo
aLineLen:N | Zeilenlänge (Default = 70)
aTabSize:N | Länge des Tabstopps
UseWordWrap:L | Zeilenumbruch (Default = true)

Rückgabewert

Numerisch

Beispiel

| aFileName, aFile, aPath |

aPath     := 'c:\temp\',

aFileName := 'test.txt',

if !DirectoryExists(aPath) then

   CreateDir(aPath)

endif,

startseq,

   aFile := FOpen(aPath + aFilename, FO_CREATE),

   FWriteLn(aFile, 'Dontenwill AG'),

   FWriteLn(aFile, 'Datum ' + DToC(Date())),

   FClose(aFile)

onerror,

stopseq,

MLCount(MemoRead(aPath + aFileName))   //Ergebnis: '2'


OemToAnsi()

OemToAnsi() – Oem-Format in Ansi-Format umwandeln

Beschreibung

Die Funktion konvertiert eine Zeichenkette (String) aus dem Oem-Format in das Ansi-Format.

Parameter

aText:C

Text, der umgewandelt werden soll

Rückgabewert

Alphanumerisch

Beispiel

Asc(OemToAnsi('ä'))   // Ergebnis: '245'

Asc('ä')              // Ergebnis: '228'

Siehe auch

AnsiToOem()


Pad()

Pad() – Zeichenkette auffüllen, rechtsseitig

Beschreibung

Die Funktion füllt eine Zeichenkette rechtsseitig mit Leerzeichen auf.

Hinweis

Entspricht der Funktion PadR().

Parameter

aValue:U | Beliebiger Wert
aTotalLen:N | Anzahl Stellen, auf die aufgefüllt wird
aCharacter:C | Zeichen, mit dem gefüllt werden soll (Default = Leerzeichen)

Rückgabewert

Alphanumerisch

Beispiel

Pad('Dontenwill', 20)   // Ergebnis: 'Dontenwill          '

Siehe auch

PadL()

PadR()


PadC()

PadC() – Zeichenkette auffüllen und zentrieren

Beschreibung

Die Funktion füllt eine Zeichenkette beidseitig mit Leerzeichen auf, welche dadurch zentriert wird.

Parameter

aValue:U | Beliebiger Wert
aTotalLen:N | Anzahl Stellen, auf die aufgefüllt wird
aCharacter:C | Zeichen, mit dem gefüllt werden soll (Default = Leerzeichen)

Rückgabewert

Alphanumerisch

Beispiel

PadC('Dontenwill', 30)   // Ergebnis: '          Dontenwill          '

PadC('Dontenwill', 6)    // Ergebnis: 'Donten"

Siehe auch

PadL()

PadR()


PadL()

PadL() – Zeichenkette auffüllen, linksseitig

Beschreibung

Die Funktion füllt eine Zeichenkette linksseitig mit Leerzeichen auf.

Parameter

aValue:U | Beliebiger Wert
aTotalLen:N | Anzahl Stellen, auf die aufgefüllt wird
aCharacter:C | Zeichen, mit dem gefüllt werden soll (Default = Leerzeichen)

Rückgabewert

Alphanumerisch

Beispiel

PadL('Dontenwill', 20)   // Ergebnis: '          Dontenwill'

Siehe auch

PadC()

PadR()


PadR()

PadR() – Zeichenkette auffüllen, rechtsseitig

Beschreibung

Die Funktion füllt eine Zeichenkette rechtsseitig mit Leerzeichen auf.

Parameter

aValue:U | Beliebiger Wert
aTotalLen:N | Anzahl Stellen, auf die aufgefüllt wird
aCharacter:C | Zeichen, mit dem gefüllt werden soll (Default = Leerzeichen)

Rückgabewert

Alphanumerisch

Beispiel

PadR('Dontenwill', 20)   // Ergebnis: 'Dontenwill          '

Siehe auch

PadC()

PadL()


Pdf2Text()

Pdf2Text() – Texte aus PDF-Datei extrahieren

Beschreibung

Extrahiert den Text einer oder mehrerer Seiten aus einem PDF-Dokument.

Hinweis

Ein Fehler beim Zugriff auf das Dokument führt zu einer Exception.

Parameter

cPDFFileName:C | Dateiname des PDF-Dokuments, dem der Text entnommen werden soll
nPageFrom:N nPageTo:N | Nummer der ersten Seite; Default = eins; Nummer der letzten Seite; Default = maximale Seitennummer des Dokuments

Rückgabewert

Alphanumerisch; Texte der angegebenen Seite

Beispiel

| cText |

cText:= Pdf2text('c:\temp\Auftragsbestätigung 171286.pdf')

Siehe auch

Pdf2Jpeg()

PdfCmd()

PdfMerge()

Pdf2Tiff()

PdfPageCount()

AttachmentsToText()


PrepareTextForFTS()

PrepareTextForFTS() – Optimiert Text-Feld für die FTS

Beschreibung

Diese Funktion optimiert einen übergebenen Text für die Volltextsuche (Full-Text-Search = FTS).

Hinweis

- Tabulatoren, doppelte Leerzeichen, Zeilenumbrüche, ignorierte Wörter (Noise-Words) und Format-Tags werden entfernt

- als Basis dient die FTS-Index-Definition des übergebenen Feldes (s. Datenbank-Verwaltung / Indexdefinitionen)
oder der mit cFTSIndexName vorgegebene FTS-Index

Parameter

nWorkArea:N | Workarea der Tabelle oder Null, falls ein Feld-Objekt übergeben wird
uFieldName:U | Feldname oder Feld-Objekt (Workarea = 0)
cText:C | Original-Text
lNoDuplicates:L | Duplikate werden entfernt (falls uFieldName auf ein gültiges Feld zeigt); das Ergebnis ist alphabetisch sortiert; Default = False
cFTSIndexName:C | Vorgabe für den FTS-Index, dann wird dieser nicht anhand des Feld-Namens ermittelt

Rückgabewert

Alphanumerisch

Beispiel

| oDAB065:DB:='9,6', oText|

DbLocate('Memo_ID', 17466, , oDAB065),

oText := PrepareTextForFTS(9,                         // Für Tabelle 9 = Memos

                           'SUCHE',                   // Für Ziel-Feld "SUCHE"

                           AllTrim(oDAB065:BETREFF) +

                           ' ' +

                           RtfToText(oDAB065:MEMO) )  // Ziel-Feld-Inhalt (unformatiert)

WriteLn(oText),

Siehe auch

PrepareTextForFTSSearch()


RAt()

RAt() – Position in Zeichenkette

Beschreibung

Die Funktion gibt die Position des ersten Zeichens einer Zeichenkette (String) zurück, welche zuletzt innerhalb einer anderen Zeichenkette vorkommt.

Parameter

aSearchText:C | Gesuchte Zeichenkette
aText:C | Zeichenkette, in der gesucht werden soll

Rückgabewert

Alphanumerisch

Beispiel

RAt('test', 'test dfdf test dfdf test df')   // Ergebnis: 21

Siehe auch

At()


Replicate()

Replicate() – Wiederholung von Zeichen

Beschreibung

Die Funktion dient dem wiederholten Ausgeben eines Zeichens oder einer Zeichenfolge.

Parameter

aText:C | Beliebige Zeichenfolge
aCount:N | Anzahl der Wiederholungen

Rückgabewert

Alphanumerisch

Beispiel

Replicate('-', 5)       // Ergebnis: '-----'

Replicate(Chr(65), 5)   // Ergebnis: 'AAAAA'


Right()

Right() – Rechter Teil einer Zeichenkette

Beschreibung

Die Funktion gibt den rechten Teil einer Zeichenkette zurück, begrenzt durch aChrCount.

Parameter

aText:C | Beliebige Zeichenkette
aChrCount:N | Anzahl der Zeichen, die von rechts beginnend zurückgegeben werden sollen

Rückgabewert

Alphanumerisch

Beispiel

Right('Dontenwill AG', 2)   // Ergebnis: 'AG'

Siehe auch

Left()

SubStr()


RTFToText()

RTFToText() – Umwandlung von RTF- oder HTML-Text

Beschreibung

Die Funktion wandelt einen String im RTF- oder HTML-Format in einen String im Nur-Text-Format um.

Parameter

cText:C

Beliebiger RTF- oder HTML-Text

Rückgabewert

Alphanumerisch

Beispiel

| cText1 |

cText1 := '{\rtf1Guten Tag!\par{\i Dies} ist ein formatierter {\b Text}.}',

RTFToText(cText1)

// Ergebnis: Guten Tag!

//           Dies ist ein formatierter Text.

//

// Hinweis:  Die Umwandlung von HTML in Nur-Text wird erst ab Version 5.8.55 unterstützt.

Siehe auch

IsTextRTF()


RTrim()

RTrim() – Leerzeichen rechtsbündig löschen

Beschreibung

Die Funktion löscht alle rechtsbündigen Leerzeichen einer Zeichenkette.

Parameter

aText:C

Beliebige Zeichenkette

Rückgabewert

Alphanumerisch

Beispiel

RTrim('Dontenwill                ')   // Ergebnis: 'Dontenwill'

Siehe auch

AllTrim()

LTrim()

Trim()


Space()

Space() – Leerzeichen erzeugen

Beschreibung

Die Funktion erzeugt eine Zeichenkette (String) aus Leerzeichen.

Parameter

aCount:N

Anzahl der Leerzeichen

Rückgabewert

Alphanumerisch

Beispiel

Space(20)   // Ergebnis: '                    '

Siehe auch

Pad()


SplitTabbedText()

SplitTabbedText() – Spalte aus Tabbed-Text extrahieren

Beschreibung

Die Funktion extrahiert aus einem tabulatorgetrennten Text eine Spalte.

Parameter

aText:C | Text
aResultColumn:N | Spalte, die extrahiert werden soll
aMaxColumn:N | Anzahl vorhandener Spalten in aText

Rückgabewert

Alphanumerisch

Beispiel

| cText, cSplitted |

cText     := '1a' + chr(9) + '1b' + chr(9) + '1c' + chr(9) + '1d' + crlf  +

             '2a' + chr(9) + '2b' + chr(9) + '2c' + chr(9) + '2d',

cSplitted := SplitTabbedText(cText, 3),

// Die Werte werden von SplitTabbedText() durch chr(13) getrennt und

// für die Anzeige durch einen Zeilenumbruch ersetzt.

cSplitted := StrTran(cSplitted, chr(13), crlf),

cSplitted


Str()

Str() – Umwandlung in Zeichenkette

Beschreibung

Die Funktion wandelt einen numerischen Wert in eine alphanumerische Zeichenkette um.

Parameter

aValue:N | Beliebiger numerischer Wert
aWidth:N | Anzahl der Stellen insgesamt
aDecimals:N | Anzahl Nachkommastellen

Rückgabewert

Alphanumerisch

Beispiel

Str(410.37, 10, 2)   // Ergebnis: '    410.37'

Str(410.37, 10, 4)   // Ergebnis: '  410.3700'

Str(410.37, 8, 3)    // Ergebnis: ' 410.370'

Siehe auch

CToD()

CurrToStr()

Val()

StrZero()

SubStr()


StrArray()

StrArray() – String in Array-Element umwandeln

Beschreibung

Die Funktion wandelt eine Zeichenkette, welche durch Zeilenumbruch getrennte Werte enthält, in eine Array um, wobei jede Zeile einem Array-Element entspricht.

Parameter

aText:C

Zeichenkette

Rückgabewert

Array

Beispiel

StrArray('Zeile 1' + crlf +

         'Zeile 2' + crlf +

         'Zeile 3')          // Ergebnis: <Array> = [Zeile 1, Zeile 2, Zeile 3]

Siehe auch

StrToArr()


StringOfChar()

StringOfChar() – Zeichenkette aus Zeichen bilden

Beschreibung

Die Funktion bildet eine Zeichenkette (String) aus einem gegebenen Zeichen (Char).

Parameter

aChar:C | Beliebiges Zeichen
aChrCount:N | Länge der Zeichenkette, in der das Zeichen wiederholt wird

Rückgabewert

Alphanumerisch

Beispiel

StringOfChar('D', 10)   // Ergebnis: 'DDDDDDDDDD'

Siehe auch

Asc()

Chr()


StrToken()

StrToken() – Zeichenfolge ausschneiden

Beschreibung

Die Funktion liefert einen Teil einer Zeichenkette an der Position aIndex zurück, welche durch Einteilungen des Textes mittels aDelimiter bestimmt wird.

Parameter

aText:C | Beliebige Zeichenkette
aDelimiter:C | Zeichen, das die Zeichenfolgen trennt
aIndex:N | Position in aText

Rückgabewert

Alphanumerisch

Beispiel

StrToken('80807 München', ' ', 2)    // Ergebnis: 'München'

StrToken('80807 München', '80', 3)   // Ergebnis: '7 München'

Siehe auch

Token()

TokenCount()


StrTran()

StrTran() – Zeichen ersetzen

Beschreibung

Die Funktion durchsucht eine Zeichenkette nach dem Vorkommen einer bestimmten Zeichenkette und ersetzt diese durch einen anderen Wert.

Parameter

aText:C | Beliebige Zeichenkette
aSearchText:C | Zu suchende Zeichenkette
aReplaceText:C | Zeichenkette, mit der bei einem Treffer ersetzt werden soll
aStartPos:N | Position in aText, ab der aSearchText gesucht werden soll
aStopPos:N | Position in aText, bis zu der nach aSearchText gesucht werden soll

Rückgabewert

Alphanumerisch

Beispiel

StrTran('28.02.2009', '.', '')       // Ergebnis: '28022009'

StrTran('28.02.2009', '.02.', '#')   // Ergebnis: '28#2009'

Siehe auch

Stuff()


StrZero()

StrZero() – Umwandlung in Zeichenkette mit führenden Nullen

Beschreibung

Die Funktion wandelt einen numerischen Wert in eine Zeichenkette um und ersetzt Leerzeichen linksbündig mit Nullen.

Hinweis

Wenn Sie Datenbankfelder verwenden und die optionalen Parameter N2 und N3 weglassen, wird bis zur vorgegebenen Feldlänge mit Nullen aufgefüllt.

Parameter

aValue:N | Beliebiger numerischer Wert
aWidth:N | Anzahl der Stellen insgesamt
aDecimals:N | Anzahl der Nachkommastellen

Rückgabewert

Alphanumerisch

Beispiel

StrZero(2009, 9, 2)   // Ergebnis: '002009.00'

Siehe auch

Val()

Str()

SubStr()


StrZerol()

StrZerol() – Umwandlung in Zeichenkette mit Nullen

Beschreibung

Die Funktion wandelt einen numerischen Wert in eine Zeichenkette um und ersetzt Leerzeichen linksbündig mit Nullen.

Parameter

aValue:N | Beliebiger numerischer Wert
aLen:N | Anzahl der Stellen insgesamt
aDecimals:N | Anzahl der Nachkommastellen

Rückgabewert

Alphanumerisch

Siehe auch

Val()

Str()

SubStr()


Stuff()

Stuff() – Zeichenkette einfügen

Beschreibung

Die Funktion fügt einer Zeichenkette eine weitere Zeichenkette an der angegebenen Stelle ein und löscht die angegebene Anzahl an Stellen nach der eingefügten Zeichenkette.

Parameter

aText:C | Beliebige Zeichenkette, in der ein Text eingefügt werden soll
aStartPos:N | Stelle, an der der Text eingefügt werden soll
aDelCount:N | Anzahl der Stellen, die nach dem eingefügten Text gelöscht werden sollen
aInsertText:C | Text, der eingefügt werden soll

Rückgabewert

Alphanumerisch

Beispiel

Stuff('Das ist ein Test!', 13, 0, 'Einfügen')   // Ergebnis: 'Das ist ein EinfügenTest!'

Stuff('Ich bin tun Text!', 9, 3, 'ein')         // Ergebnis: 'Ich bin ein Text!'

Siehe auch

StrTran()

SubStr()


SubStr()

SubStr() – Zeichenfolge ausschneiden

Beschreibung

Die Funktion schneidet aus einer Zeichenkette eine Zeichenfolge beliebiger Länge aus.

Parameter

aText:C | Beliebige Zeichenkette
aStartPos:N | Position, ab der ausgeschnitten wird
aLen:N | Anzahl der auszuschneidenden Zeichen; (keine Angabe gibt Zeichenkette bis zum Ende zurück)

Rückgabewert

Alphanumerisch

Beispiel

SubStr('Dontenwill AG', 12, 2)   // Ergebnis: 'AG'

SubStr('83527 München', 7)       // Ergebnis: 'München'

Siehe auch

Str()

Stuff()


Token()

Token() – Zeichenfolgen in Zeichenketten

Beschreibung

Die Funktion gibt eine Zeichenfolge einer Zeichenkette zurück, die durch ein Zeichen aDelimiter begrenzt ist.

Hinweis

Ist aIndex größer als die Anzahl der gefundenen Zeichenfolgen ('Tokens') oder gleich 0 wird ein leerer String zurückgegeben ('').

Parameter

aText:C | Beliebige Zeichenkette
aDelimiter:C | Zeichen, das die Zeichenfolgen trennt
aIndex:N | Gibt die Position der Zeichenfolge an (auf die Anzahl der Zeichenfolgen bezogen)

Rückgabewert

Alphanumerisch

Beispiel

Token('23/11/muc', '/', 1)   // Ergebnis: '23'

Token('23/11/muc', '/', 3)   // Ergebnis: 'muc'

Siehe auch

StrToken()

TokenCount()


TokenCount()

TokenCount() – Anzahl der Tokens

Beschreibung

Die Funktion gibt die Anzahl der in aText gefundenen Zeichenfolgen zurück, die durch das Zeichen sDelimiter eingegrenzt sind.

Parameter

aText:C | Beliebige Zeichenkette
aDelimiter:C | Zeichen, das die Zeichenfolgen trennt

Rückgabewert

Numerisch

Beispiel

TokenCount('23/11/muc', '/')   // Ergebnis: 3

TokenCount('1.44.56.4', '.')   // Ergebnis: 4

Siehe auch

StrToken()

Token()


Trim()

Trim() – Leerzeichen rechtsbündig löschen

Beschreibung

Die Funktion löscht alle rechtsbündigen Leerzeichen einer Zeichenkette.

Parameter

aText:C

Beliebige Zeichenkette

Rückgabewert

Alphanumerisch

Beispiel

Trim('Dontenwill                ')   // Ergebnis: 'Dontenwill'

Siehe auch

AllTrim()

LTrim()

RTrim()


Upper()

Upper() – Umwandlung in Großbuchstaben

Beschreibung

Die Funktion wandelt alle Zeichen einer Zeichenkette in Großbuchstaben um.

Parameter

aText:C

Beliebige Zeichenkette

Rückgabewert

Alphanumerisch

Beispiel

Upper('Dontenwill')   // Ergebnis: 'DONTENWILL'

Siehe auch

Lower()


Typenumwandlung

Siehe auch:

CurrToStr()

DateTimeToStr()

FloatToStr()

FormatDateTime()

IntToHex()

StrToDateTime()

StrToFloat()

StrToTime()

TextToShortCut()

TimeToStr()

Val()


CurrToStr()

CurrToStr() – Währung in Zeichenkette umwandeln

Beschreibung

Die Funktion wandelt eine Zahl (Numerisch) in eine Zeichenkette (String) um, wobei z.B. der aktuelle Dezimal-Trenner und die Genauigkeit für Währungsangaben berücksichtigt werden.

Parameter

aValue

Zahl

Rückgabewert

Alphanumerisch

Beispiel

CurrToStr(28.04)   // Ergebnis: '28,04'

Siehe auch

Str()


DateTimeToStr()

DateTimeToStr() – Datum/Zeit in Zeichenkette umwandeln

Beschreibung

Die Funktion wandelt ein Datum (Timestamp) in eine Zeichenkette (String) um.

Parameter

aDate:D

Datum/Zeit

Rückgabewert

Alphanumerisch

Beispiel

DateTimeToStr(SToD('20090228'))   // Ergebnis: 28.02.2009

Siehe auch

DToC()

DToS()

StrToDateTime()


FloatToStr()

FloatToStr() – Fließkommazahl in Zeichenkette umwandeln

Beschreibung

Die Funktion wandelt eine Fließkommazahl (Float) in eine Zeichenkette (String) um. Die Anzahl der Nachkommastellen kann festgelegt werden.

Parameter

aValue:N | Zahl, die umgewandelt werden soll
aDecimalCount:N | Anzahl der Nachkommastellen

Rückgabewert

Alphanumerisch

Beispiel

FloatToStr(23.06)        // Ergebnis: '23,06'

FloatToStr(27.3635, 1)   // Ergebnis: '27,4'

Siehe auch

StrToFloat()


FormatDateTime()

FormatDateTime() – Datum/Zeit in Zeichenkette umwandeln

Beschreibung

Die Funktion wandelt ein Datum (Timestamp) in eine Zeichenkette (String) um. Die Darstellung kann dabei frei formatiert werden.

Hinweis

Wird beim Format z.B. bei Tag nur D angegeben, werden alle Tage von 1 bis 9 als 1, 2, 3 … angezeigt, wobei Tage größer 9 als 10, 11, 12 … dargestellt werden. Wird aber z.B. DD als Format für den Tag angegeben, werden auch die Tage von 1 bis 9 mit zwei Stellen angezeigt, also 01, 02, 03 … Diese Formatierung gilt für D, M, H, N, S, Z. Beim Jahr wird bei der Angabe von Y oder YY immer das Jahr im Format 04, 05, 06 … angezeigt und bei der Angabe von YYY oder YYYY wird immer das Jahr im Format 2004, 2005, 2006 … angezeigt.

Parameter

cDateFormat:C | Format, nach dem formatiert werden soll; D Tag (max. 2 Stellen); M Monat (max. 2 Stellen); Y Jahr (2 oder 4 Stellen); H Stunden (max. 2 Stellen); N Minuten (max. 2 Stellen); S Sekunden (max. 2 Stellen); Z Millisekunden (max. 3 Stellen)
aDate:D | Datum, das zu formatieren ist

Rückgabewert

Alphanumerisch

Beispiel

FormatDateTime('DD.MM.YY', Date())                        // 27.02.09

FormatDateTime('DD-MM-YYYY | hh:nn', Date() + TimeEx())   // 27-02-2009 | 11:59

FormatDateTime('D-MM | hh:nn:ss:z', Date() + TimeEx())    // 27-02 | 12:00:10:259

// Hinweis: Als Rückgabewert wird natürlich das aktuelle Systemdatum

//          und die aktuelle Uhrzeit ausgegeben.

Siehe auch

BeFormat()

FormatFloat()


IntToHex()

IntToHex() – Dezimalzahl in Hexadezimalzahl umwandeln

Beschreibung

Die Funktion wandelt eine Dezimalzahl (Numerisch) in eine Hexadezimalzahl (String) um. Die Anzahl der zurückgegebenen Stellen kann festgelegt werden.

Hinweis

Es können bis zu 16 Stellen ausgegeben werden.

Parameter

aValue:N | Zahl, die umgewandelt werden soll
aDigitCount:N | Anzahl der zurückgegebenen Stellen

Rückgabewert

Alphanumerisch

Beispiel

IntToHex(5, 4)       // Ergebnis: '0005'

IntToHex(80331, 1)   // Ergebnis: '139CB'


StrToDateTime()

StrToDateTime() – Zeichenkette in Datum/Zeit umwandeln

Beschreibung

Die Funktion wandelt eine Zeichenkette (String) in ein Datum (Timestamp) um.

Parameter

aText:C

Text, der in ein Datum umgewandelt werden soll

Rückgabewert

Datum

Beispiel

StrToDateTime('28.02.2009 09:52:58')   // Ergebnis: 28.02.2009 09:52:58

StrToDateTime('28.02.2009')            // Ergebnis: 28.02.2009

StrToDateTime('28.02.09')              // Ergebnis: 28.02.2009

StrToDateTime('09:52:58')              // Ergebnis: 09:52:58

StrToDateTime('09:52')                 // Ergebnis: 09:52:00

Siehe auch

DToC()

DToS()

DateTimeToStr()


StrToFloat()

StrToFloat() – Zeichenkette in eine Fließkommazahl umwandeln

Beschreibung

Die Funktion wandelt eine Zeichenkette (String) in eine Fließkommazahl (Float) um.

Parameter

aText:C

Text, der in eine Fließkommazahl umgewandelt werden soll

Rückgabewert

Numerisch

Beispiel

| a, b |

a := '12,5',

b := '17,6',

WriteLn(a + b),                          // Ergebnis: '12,517,6'

WriteLn(StrToFloat(a) + StrToFloat(b))   // Ergebnis: '30,1'

Siehe auch

FloatToStr()


StrToTime()

StrToTime() – Zeichenkette in Zeit umwandeln

Beschreibung

Die Funktion wandelt eine Zeichenkette (String) in eine Zeiteinheit (Timestamp) um.

Parameter

aText:C

Text, der nach Zeit umgewandelt werden soll

Rückgabewert

Datum

Beispiel

StrToTime('18:12:05')   // Ergebnis: 18:12:05

StrToTime('23:5:12')    // Ergebnis: 23:05:12

StrToTime('05:12')      // Ergebnis: 05:12:00

Siehe auch

TimeToStr()


TextToShortCut()

TextToShortCut() – ID eines Short-Cuts

Beschreibung

Die Funktion gibt die interne ID einen Shortcuts zurück.

Parameter

aText:C

Beschreibung der Tastenkombination

Rückgabewert

Numerisch; Referenziert einen Short-Cut anhand seiner internen ID oder liefert 0 wenn kein gültiger Short-Cut übergeben wurde.

Beispiel

TextToShortCut("Strg+C")               // Ergebnis: 16451

TextToShortCut("Strg+Alt+Leertaste")   // Ergebnis: 49184


TimeToStr()

TimeToStr() – Zeit in Zeichenkette umwandeln

Beschreibung

Die Funktion wandelt eine Zeiteinheit (Timestamp) in eine Zeichenkette (String) um.

Parameter

aDate:D

Zeit, die nach Text umgewandelt werden soll

Rückgabewert

Alphanumerisch

Beispiel

TimeToStr(TimeEx())   // Ergebnis: 12:30:00

                      // Hinweis:  Als Rückgabewert wird natürlich

                                   die aktuelle Systemzeit ausgegeben.

Siehe auch

DToC()

DToS()

StrToTime()


Val()

Val() – Zeichenkette in Zahl umwandeln

Beschreibung

Die Funktion wandelt einen Text (String) in eine Zahl (Numerisch) um.

Parameter

aText:C

Text, der in eine Zahl umgewandelt werden soll

Rückgabewert

Numerisch

Beispiel

Val('0005801')   // Ergebnis: 5801

Siehe auch

Str()


TBatchMail

TBatchMail

Klasse zur Bereitstellung von Informationen für den Email-Versand.

Eigenschaften:

Allgemeine-Eigenschaften

From Email-Adresse des Absenders

Aktive-Eigenschaften (Methoden)

AttachmentList Liefert ein Array mit allen an die Email angehängten Dateien

Format: {{nAttachmentId:N, cFileName:C, nFileSize:N}, {...}}

Verwendung:

Auf diese Klasse kann während dem Event "vor Email-Versand" zugegriffen werden

Beispiel

| nEvtNo:P1, aInfo:P2, aText:P3, aNote:P4, oBatchMail:P5, i |

// Aufruf erfolgt vor dem Versenden jeder Email

// ...

// löscht alle Anhänge der Email

for i:=1 to ALen(oBatchMail.AttachmentList) do

  AttachmentDelete(oBatchMail, 1)

next,


TBeArchiveInfo

TBeArchiveInfo

Klasse zur Bereitstellung von Informationen zum aktuellen Beleg.

Eigenschaften:

ArchiveDocType Beleg Art

ArchiveDocNo Beleg Nummer

ArchiveNo Fortlaufende Nummer

ArchivePersNo Kunden-/Lieferanten Nummer

ArchiveDate Datum der Erstellung

ArchiveTime Uhrzeit der Erstellung

ArchiveUserNo Benutzer-Nummer des Erstellers

ArchiveDepartment Erstellt in Abteilung

Verwendung:

Die Komponente "Hintergrundformular" im Report-Designer stellt für die Berechnung im Codeblock "Variable Formularauswahl" ein Objekt names "ArchiveInfo" vom Typ "TBeArchiveInfo" bereit.


TBeAttribCheckCombo

TBeAttribCheckCombo

Erweiterte TBeCheckCombo Klasse für die Verwendung von Merkmalstabellen ohne Bindung an eine Datenbank.

Eigenschaften:

Allgemeine-Eigenschaften

BeAttributeID:N ID der zu verwendenden Merkmalstabelle

CheckedItems:Collection Indizes der aktuell ausgewählten Einträge

CheckedCount:N Anzahl der ausgewählten Einträge

ValuesChecked: Collection Wert (Value) der Einträge im ausgewähltem Zustand

ValuesUnChecked: Collection Wert (Value) der Einträge im abgewähltem Zustand

DisplayText:C Anzeige Text (Text der ausgewählten Einträge mit Trennzeichen)

ShowTextAsHint:L Anzeige Text als Hint anzeigen (ShowHint muss aktiv sein)

Separator:C Trennzeichen für Anzeigetext

Aktive-Eigenschaften (Methoden)

CBCheckAllItems Alle vorhandenen Einträge auswählen

CBUnCheckAllItems Alle vorhandenen Einträge abwählen

Verwendung:

- TBeAttribCheckCombo auf eine F12-Maske platzieren und BeAttributeID zuweisen

- Im F12-Designer findet sich die Komponente unter der Palette "BE-Combo"

Beispiel

// Beispiel siehe TBeCheckCombo

Siehe auch

TBeCheckCombo

TBeFieldAttribCheckCombo


TBeAttribCheckListBox

TBeAttribCheckListBox

Erweiterte TBeCheckListBox Klasse für die Verwendung von Merkmalstabellen ohne Bindung an eine Datenbank.

Eigenschaften:

Allgemeine-Eigenschaften

BeAttributeID:N ID der zu verwendenden Merkmalstabelle

CheckedItems:Collection Indizes der aktuell ausgewählten Einträge

ValuesChecked:Collection Wert (Value) der Einträge

Verwendung:

- TBeAttribCheckListBox auf eine F12-Maske platzieren und BeAttributeID zuweisen

- Im F12-Designer findet sich die Komponente unter der Palette "BE-Combo"

Beispiel

// Beispiel siehe TBeCheckListBox

Siehe auch

TBeCheckListBox

TBeFieldCheckListBox


TBeAttribCombo

TBeAttribCombo

Erweiterte TBeCombo Klasse für die Verwendung von Merkmalstabellen ohne Bindung an eine Datenbank.

Eigenschaften:

Allgemeine-Eigenschaften

BeAttributeID:N ID der zu verwendenden Merkmalstabelle

Verwendung:

- TBeAttribCombo auf eine F12-Maske platzieren und BeAttributeID zuweisen

- Im F12-Designer findet sich die Komponente unter der Palette "BE-Combo"

Beispiel

// demonstriert den Einsatz der Klassen TBeAttribCombo, TBeFieldAttribCombo, TBeCombo

// HINWEIS:

// Die im Beispiel "manuell" erzeugten Klassen können natürlich auch

// im Designer erstellt werden und die entsprechenden Eigenschaften dort gesetzt werden.

| oForm, oBeAttribCombo, oBeFieldAttribCombo, oMemTable, oMemField,

  oDataSourceMem, oBeCombo, oDab010:DB:="2,1", oDataSourceStd, oTextEdit |

function OnBeAttribComboChange( Sender )

  oTextEdit.Text := 'Ohne Tabelle: '

                    + oBeAttribCombo.Text + ' = ' + oBeAttribCombo.Value,

end,

function OnBeFieldAttribComboChange( Sender )

  oTextEdit.Text := 'MemTable: '

                    + oBeFieldAttribCombo.Text + ' = ' + oBeFieldAttribCombo.Value,

end,

function OnBeComboChange( Sender )

  oTextEdit.Text := 'Artikelstamm [' + AllTrim(oDab010:ARTNR) + '] '

                    + oBeCombo.Text + ' = ' + oBeCombo.Value,

end,

startseq

   //***************************************************************************

   // Beispiel-Formular erstellen

   //***************************************************************************

   oForm          := CreateObject('TFormEx'),

   oForm.OrigCapt := 'Merkmalstabellen im Codeblock',

   oForm.Position := POSCREENCENTER,

   oForm.Width    := 400,

   oForm.Height   := 180,

   //***************************************************************************

   // Beispiel eines nicht datengebundenen Combo-Controls

   //***************************************************************************

   oBeAttribCombo         := CreateObject('TBeAttribCombo', 'BeAttribCombo1', oForm, oForm),

   oBeAttribCombo.Left    := 10,

   oBeAttribCombo.Top     := 10,

   oBeAttribCombo.Width   := 360,

   oBeAttribCombo.Height  := 21,

   // Merkmalstabelle wählen (Standard "Lagerplatz-Verwaltung")

   oBeAttribCombo.BeAttributeID := 102023,

   // der Initialwert kann vorgegeben werden !

   oBeAttribCombo.Value   := 'J',

   // Event zuweisen

   AssignEvent(oBeAttribCombo, 'OnChange', 'OnBeAttribComboChange'),

   //***************************************************************************

   // Beispiel eines datengebundenen Combo-Controls auf einer MemTable (jede beliebige Tabelle denkbar)

   //***************************************************************************

   // Memtable erstellen

   oMemTable          := CreateObject('TMemCalcTable', 'MemTable1', oForm),

   // Feld erstellen

   oMemField          := CollAdd( oMemTable.FieldsDefinition ),

   oMemField.Name     := 'PLATZ_VER',

   oMemField.DataType := 1, // Character

   oMemField.Size     := 1,

   oMemTable.Active   := True,

   // Datensatz anlegen mit 'Gebinde-Chargen'

   dbappend(oMemTable),

   oMemTable:PLATZ_VER := 'G',

   // DataSource erstellen

   oDataSourceMem         := CreateObject('TDataSourceEx', 'DataSourceExMem1', oForm),

   oDataSourceMem.DataSet := oMemTable,

   // Combo-Control für Datenbank-Zugriff erstellen

   oBeFieldAttribCombo               := CreateObject('TBeFieldAttribCombo', 'BeFieldAttribCombo1', oForm, oForm),

   oBeFieldAttribCombo.Left          := 10,

   oBeFieldAttribCombo.Top           := 40,

   oBeFieldAttribCombo.Width         := 360,

   oBeFieldAttribCombo.Height        := 21,

   oBeFieldAttribCombo.DataSource    := oDataSourceMem,

   oBeFieldAttribCombo.DataField     := 'PLATZ_VER',

   oBeFieldAttribCombo.BeAttributeID := 102023,

   // Event zuweisen

   AssignEvent(oBeFieldAttribCombo, 'OnChange', 'OnBeFieldAttribComboChange'),

   AssignEvent(oBeFieldAttribCombo, 'OnExit',   'OnBeFieldAttribComboChange'),

   //***************************************************************************

   // Beispiel eines datengebundenen "Standard" Combo-Controls

   //***************************************************************************

   // DataSource erstellen

   oDataSourceStd         := CreateObject('TDataSourceEx', 'DataSourceExStd1', oForm, oForm),

   oDataSourceStd.DataSet := oDab010,

   DbGoBottom(oDab010),

   // "Standard" Combo-Control erstellen

   oBeCombo            := CreateObject('TBeCombo', 'BeCombo1', oForm, oForm),

   oBeCombo.Left       := 10,

   oBeCombo.Top        := 70,

   oBeCombo.Width      := 360,

   oBeCombo.Height     := 21,

   // durch die Zuweisung eines DataSources und eines DataFields, holt sich das BeCombo die MM-Tabelle von selbst

   oBeCombo.DataSource := oDataSourceStd,

   oBeCombo.DataField  := 'PLATZ_VER',

   // Event zuweisen

   AssignEvent(oBeCombo, 'OnChange', 'OnBeComboChange'),

   //***************************************************************************

   // Ausgabe-Control - nur für den Test

   //***************************************************************************

   oTextEdit           := CreateObject('TBeEdit', 'Edit1', oForm, oForm),

   oTextEdit.Text      := '',

   oTextEdit.Left      := 10,

   oTextEdit.Top       := 100,

   oTextEdit.Width     := 360,

   oTextEdit.Height    := 21,

   oTextEdit.ReadOnly  := True,

   // Formular anzeigen

   ShowModal(oForm),

   // Formular zerstören

   DestroyObject(oForm),

onerror,

   writeln(GetErrorText()),

   DestroyObject(oForm),

stopseq,

Siehe auch

TBeFieldAttribCombo

TBeFieldAttribCheckCombo


TBeBillData

TBeBillData

Klasse zum Druck einer Rechnung für einen Kundenauftrag.

Eigenschaften:

In dieser Klasse werden keine neuen Eigenschaften eingeführt. Relevante Eigenschaften befinden sich in den Vorfahr-Klasen. Siehe Hierarchie.

Hierarchie:

TBePrintData -> TBeOfferData -> TBeDelivData -> TBeBillData

Beispiel

function PrintRechnung( nAuftragsNummer )

 | oPrint |

  oPrint := CreateObject("TBeBillData"),

  startseq

     oPrint.QuietMode    := false,

     oPrint.PrintDocNo   := nAuftragsNummer, // Auftragsnummer, für die eine Rechnung gedruckt werden soll

     oPrint.ExecPrint,                       // Einzeldruck anstoßen

   always

      DestroyObject(oPrint),

   stopseq,

end,

PrintRechnung( 123456 )

Siehe auch

TBeRemovalData, TBeCumRemovalData

TBePrintData

TBeCumBillData

TBeConfData

TBeCommissData


TBeCbApplication

TBeCbApplication

Info-Objekt, das zusätzliche Eigenschaften von Application veröffentlicht.

Eigenschaften:

Allgemeine-Eigenschaften

Active:L Die Eigenschaft hat den Wert True, wenn be aktiv ist. Andernfalls hat sie den Wert False.

Active wird beim Start auf True eingestellt.

be ist aktiv, wenn die Anwendung den Eingabefokus besitzt. be wird inaktiv, sobald ein

Fenster einer anderen Anwendung aktiviert wird.

Hinweis: Die Eigenschaft Active kann nur gelesen werden.

ExeName:C Mit ExeName können Sie den Namen der ausführbaren Datei von be ermitteln.

Standardmäßig lautet dieser Name BE_32.EXE.

Die Eigenschaft ExeName kann nur gelesen werden.

Hinweis: ExeName beinhalten auch den Pfad der Anwendung.

HintHidePause:N Mit HintHidePause können Sie eine Wartezeit in Millisekunden angeben. Diese unterscheidet sich

vom Standardwert, der in be vorgegeben wurde.

Der Hinweistext für das Steuerelement oder die Menüoption kann mit der Eigenschaft Hint

festgelegt werden.

Hinweis: Der Standardwert ist eine vordefinierte Konstante, die um ein Vielfaches länger als

HintPause ist.

HintPause:N Mit HintPause können Sie die standardmäßige Wartezeit ändern, die in be eingestellt wurde.

Geben Sie das Intervall für HintPause in Millisekunden an. Nach diesem Intervall wird der

Hilfehinweis angezeigt, der in der Eigenschaft Hint angegeben ist.

MainForm:O Die Eigenschaft MainForm gibt an, welches Formular das Hauptfenster der Anwendung ist.

Title:C Die Eigenschaft Title enthält den Text, der beim Verkleinern der Anwendung auf Symbolgröße

unter dem Symbol angezeigt wird

Verwendung:

Eine Instanz dieser Klasse ist als Konstante registriert. CbApplication kann nicht mit CreateObject erzeugt werden.

Beispiel

| oFrom |

oFrom:= CreateObject('TFormEx', 'MyFormEx', CbApplication.MainForm),

oFrom.Visible:= True


TBeCbArchive

TBeCbArchive - Belegarchiv - Druck, eMail-Versand, Export

Klasse zur Steuerung des Belegarchivs in Bezug auf Druck, eMailversand und Export von Belegen wahlweise mit oder ohne Dialog

Eigenschaften:

Belegauswahl-Eigenschaften

DocType:N Belegtyp

DocNo:U Belegnr. (numerisch oder alpha-numerisch)

CurrNo:N default = -1 (neuester) = Lfd.Nr.

PersNo:N Pers.Nr.

Allg. Export-Eigenschaften

FileName:C default = leer = Ausgabe Dateiname für Email und Export

ShowDialog:L default = False = Druck-, Email-, Exportdialog anzeigen

Druck-Eigenschaften

OutPrinterName:C default = leer = Druckername

OutBinName:C default = leer = Papierschachtname

OutDocName:C default = leer = Dokumentname im Spooler

OutCopies:N default = 1 = Anzahl Druckkopien

PrintBkPages:L default = False = Hintergundformular drucken

OverlayBkPage:N default = -1 = Original Hintergundformular des ursprünglichen Druckes

Email-Eigenschaften

Subject:C default = leer = Email-Betreff

Body:C default = leer = Email-Text (RTF erlaubt)

MailTo.C default = leer = Email-An-Liste

MailCc:C default = leer = Email-Kopie-Liste

MailBcc:C default = leer = Email-Blindkopie-Liste

MailAttach:C default = leer = Email-Dateianhänge-Liste

Hinweise:

Per Default wird als Datei eine PDF-Datei erzeugt, es kann jedoch ein beliebiges, verfügbares Export-Format als Dateiendung angegeben werden.

Beim Druck mit Druck-Dialog werden u.U. nicht alle Vorgaben aus den Eigenschaften übernommen.

Beim Email mit Email-Dialog werden u.U. nicht alle Vorgaben aus den Eigenschaften übernommen.

Beispiel

|oArch, nAction, nShowDlg|

oArch         := CreateObject("TBeCbArchive"),

oArch.DocType := 20,     // z.B. Auftragsbestätigung

oArch.DocNo   := 1545,   // z.B. AB-Nummer

oArch.PersNo  := 120882, // z.B. Kd.Nr.

//nAction := 1,     // Drucken

//nAction := 2,     // Email

nAction   := 3,     // Export

nShowDlg  := False, // Dialog anzeigen ?

case nAction

   of 1 :: // direkt drucken

      oArch.OutPrinterName  := 'HP LaserJet 6P',  // Druckername

      oArch.OutBinName      := 'Schacht 2',       // PapiersachtName

      oArch.OutDocName      := 'Mein Druck !',    // Dokumentname (für Spooler)

      oArch.OutCopies       := 2,                 // Anzahl Druckkopien

      oArch.PrintBkPages    := true,              // Hintergrundformular drucken

      oArch.OverlayBkPage   := 1,                 // Htgrd.form. Nr. 1

      oArch.ShowDialog      := nShowDlg,

      oArch.ExecPrint,

   of 2 :: // direkt per Email versenden

      oArch.Subject         := 'Anbei Angenbot Nr. ' + FloatToStr(oArch.DocNo),

      oArch.Body            := 'Anliegend erhalten Sie unser Angebot.', // darf auch RTF sein

      oArch.MailTo          := '"Dontenwill GmbH" <info@dontenwil.de>',

      //oArch.MailCC        := '"Dontenwill GmbH" <info@dontenwil.de>',

      //oArch.MailBCC       := '"Dontenwill GmbH" <info@dontenwil.de>',

      oArch.MailAttach      := 'C:\test.txt',

      //oArch.Filename      := 'Angebot Nr ' + FloatToStr(oArch.DocNo) + '.RTF', // z.B. anderes Format (MS-Word)

      oArch.Filename        := 'Angebot Nr ' + FloatToStr(oArch.DocNo) + '.PDF',

      oArch.ShowDialog      := nShowDlg,

      oArch.ExecEmail,

   of 3 :: // direkt exportieren

      //oArch.Filename      := 'C:\Temp\Angebot Nr ' + FloatToStr(oArch.DocNo) + '.RTF', // z.B. anderes Format (MS-Word)

      oArch.Filename        := 'c:\temp\Angebot Nr ' + FloatToStr(oArch.DocNo) + '.PDF',

      oArch.ShowDialog      := nShowDlg,

      oArch.ExecExport,

endcase,


TBeCbFolderWatch

TBeCbFolderWatch

Klasse zur Überwachung von Änderungen im Windows-Dateisystem

Eigenschaften:

Allgemeine-Eigenschaften

CbDirectory:C Pfad des Ordners, der überwacht werden soll

CbWatchSubFolders:L Unterordner überwachen

CbWatchNotifyFilters:N Aufzählung der Datei-Aktionen, die überwacht werden sollen.

Mögliche Werte sind

fnfFileName Erzeugung, Löschung und Namensänderung von Dateien

fnfDirName Erzeugung, Löschung und Namensänderung von Verzeichnissen

fnfAttributes Änderung von Attributen an Dateien oder Verzeichnissen

fnfSize Änderung der Dateigröße

fnfLastWrite Änderung der Eigenschaft "zuletzt geändert" einer Datei

fnfLastAccess Änderung der Eigenschaft "zuletzt zugegriffen" einer Datei

fnfCreation Änderung der Eigenschaft "erstellt" einer Datei

fnfSecurity Änderung in den Sicherheitseinstellungen

CbActive:L Aktivieren bzw. Deaktivieren der Überwachung

Events

CbOnActiveChanged Tritt auf, wenn der Überwachungsthread startet bzw. endet

CbOnWatchNotify Tritt auf, wenn ein Überwachungsereignis auftritt.

Einziger Parameter des Events ist ein Objekt

der Klasse TBeCbFolderWatchNotifyObj, welches Informationen

über das aufgetretene Ereignis enthält

Hinweis

Da die Überwachung in einem Hintergrund-Thread läuft, bedeutet die Aktivierung der

Überwachung per CbActive := True nicht den unmittelbaren Start der Überwachung. Änderungen am

Aktiv-Status werden über das Event CbOnActiveChanged mitgeteilt.

Die Eigenschaft CbActive wird dementsprechend gesetzt.

Die Überwachung sollte vom Codeblock vor Programm-Ende beendet werden. (CbActive := false)

Verwendung:

Die Klasse sollte im Kontext eines Formulars genutzt werden, da das Codeblock-Programm auf die

Beispiel

| oForm, oMemo, oWatchFolder  |

//******************************************************************************

// Event: Folder-Watch-Notify ist aufgetreten

//******************************************************************************

function FolderWatchWatchNotify(aSender)

| cActionText |

  cActionText := FormatDateTime('HH:MM:SS', Now()) + ': ' + aSender.CbDirectory + ' / ' + aSender.CbFileName + ' => ' + aSender.CbActionText,

  CollAdd(oMemo.Lines, cActionText),

end,

startseq,

   oForm       := CreateObject('TFormEx'),

   startseq

     oForm.Font.Name := 'Segoe UI',

     oForm.OrigCapt  := 'FolderWatch - Verzeichnis-Überwachung',

     // Memo zur Anzeige der Events

     oMemo             := CreateObject('TMemo', 'Memo', oForm, oForm),

     oMemo.Align       := alClient,

     oMemo.ScrollBars  := 2,

     CollDelete(oMemo.Lines, 1),

     oMemo.Color  := clInfoBk,

       // Folder-Watch erstellen

     oWatchFolder                      := CreateObject('TBeCbFolderWatch', 'WATCH'),

     oWatchFolder.CbDirectory          := 'C:\',

     oWatchFolder.CbWatchSubFolders    := true,

     oWatchFolder.CbWatchNotifyFilters := fnfLastWrite,

     AssignEvent(oWatchFolder, 'CbOnWatchNotify', 'FolderWatchWatchNotify'),

     oWatchFolder.CbActive             := true,

     ShowModal(oForm),

   always

     startseq,

        oWatchFolder.CbActive := false,

     onerror,

     stopseq,

     DestroyObject(oForm),

   stopseq,

onerror,

   MessageDlg('Fehler: ' + crlf + GetErrorText()),

stopseq,

Siehe auch

TBeCbFolderWatchNotifyObj


TBeCbFolderWatchNotifyObj

TBeCbFolderWatchNotifyObj

Info-Klasse, welche im Event CbOnWatchNotify der Klasse TBeCbFolderWatch zur Verfügung steht und Informationen über das aufgetretene Überwachungs-Ereignis enthält.

Eigenschaften:

Allgemeine-Eigenschaften

CbAction:N Typ der Aktion, die aufgetreten ist

Mögliche Werte sind

fwaAdded Datei / Verz. wurde erstellt

fwaRemoved Datei / Verz. wurde gelösch

fwaModified Datei / Verz. wurde geändert

fwaRenamedOldName Datei / Verz. wurde umbenannt -> alter Name

fwaRenamedNewName Datei / Verz. wurde umbenannt -> neuer Name

CbActionText:N Typ der aufgetretenen Aktion als Text

CbDirectory:C Ordner-Name

CbFileName:C Datei- oder Verzeichnis-Name

Verwendung:

Eine Instanz dieser Klasse steht im Event CbOnWatchNotify der Klasse TBeCbFolderWatch als einziger Parameter zur Verfügung.

Beispiel

siehe TBeCbFolderWatch

Siehe auch

TBeCbFolderWatch


TBeCBHTTPGet

TBeCBHTTPGet

Klasse zum Abruf des Quelltextes einer Internetseite.

Eigenschaften:

Allgemeine-Eigenschaften

Address:C HTTP Adresse der Internetseite welche abgerufen werden soll.

Port:N Port, default = 80

Utf8ToAnsi:L Sonderzeichen-Konvertiereung durchführen, default = false.

UserAgent:C UserAgent, default = Mozilla/4.0 (compatible).

Aktive-Eigenschaften (Methoden)

LoadHTTPText Quelltext von gegebener Adresse abrufen. Rückgabe = Quelltext

Beispiel

| oObj |

startseq,

   oObj            := CreateObject('TBeCBHTTPGet'),

   oObj.UserAgent  := 'Mozilla/4.0 (compatible)',

   oObj.Utf8toansi := true,

   oObj.Address    := 'http://www.google.de/',

   writeln(oObj.LoadHTTPText),

always

   DestroyObject(oObj),

stopseq,

Siehe auch

FTPDownload()


TBeCBRegExpr

TBeCBRegExpr

Klasse zum Suchen (und Ersetzen) in einem Text mit Hilfe von regulären Ausdrücken.

Hinweis:

Allgemeine Dokumentation zu regulären Ausdrücken z.B. unter http://www.perl.com/doc/manual/html/pod/perlre.html

Eigenschaften:

Allgemeine-Eigenschaften

SearchText:C Beliebige Zeichenkette.

SearchExpression:C Regulärer Suchausdruck.

ReplaceText:C Zeichenkette, mit der bei einem Treffer ersetzt werden soll.

UseSingleLine:L Behandle den Zielstring als einzelne Zeile, default = false.

UseMultiLine:L Behandle den Zielstring als mehrzeiligen String, default = true.

UseCaseSensitive:L Groß- und Kleinschreibung beachten, default = false.

Matches:A Array mit Suchtreffer (nur lesend)

Aktive-Eigenschaften (Methoden)

ExecSearch Suche ausführen (Rückgabe true/false, Eigenschaft Matches wird gefüllt)

ExecSeachNext Weitersuchen (Rückgabe true/false, Eigenschaft Matches wird gefüllt)

Replace Suchen und Ersetzen (unabhängig von ExecSearch/ExecSearchNext)

Beispiel

|oObj|

startseq,

   oObj            := CreateObject('TBeCBRegExpr'),

   //------ Suche nach allen EMail Adressen

   oObj.SearchText := 'Lorem info@dontenwill.de ipsum dolor sit amet, consetetur' + crlf,

   oObj.SearchText += 'sadipscing elitr, abc@dontenwill.de tempor invidunt ut',

   oObj.SearchExpression := '[\w-]+@([\w-]+\.)+[\w-]+',

                         // beliebige Anzahl alphanum. Zeichen (inkl. -_) +

                         // @ +

                         // beliebige Anzahl alphanum. Zeichen mit nachfolgendem '.' +

                         // beliebige Anzahl alphanum. Zeichen

   if oObj.ExecSearch then

      writeln(oObj.Matches[1]),

      while oObj.ExecSearchNext do

         writeln(oObj.Matches[1]),

      end,

   endif,

   //------ Suchen

   writeln(crlf + crlf + 'Suchen

   oObj.SearchText := 'ArtNr: Y-98498'          + crlf +

                      'Seriennummer: SN1234566' + crlf +

                      'ArtNr: D-12412'          + crlf +

                      'Seriennummer: SN1234567' + crlf +

                      'ArtNr: X-25792'          + crlf +

                      'Seriennummer: SN1234568' + crlf,

   // Suchmuster:

   // X oder Y oder Z gefolgt von '-' gefolgt von genau 5 Ziffern (0-9)

   oObj.SearchExpression := '[X-Z]-[0-9]{5}',

   oObj.ReplaceText      := 'A-11111',

   writeln(oObj.Replace),

always

   DestroyObject(oObj),

stopseq,


TBeCBSerialNoReconstruction

TBeCBSerialNoReconstruction

Klasse zum Umbau eines Seriennr.- Artikels.

Eigenschaften:

Allgemeine-Eigenschaften

ArtNoOld: C Bisherige Artikelnummer

ArtNoNew: C Neue Artikelnummer

SerialOld: C Bisherige Seriennummer (Kommissnr.)

SerialNew: C Neue Seriennummer (Kommissnr.)

DataModule: O Zugewiesenes Datenmodul

Quiet: L Ausführungsmodus

True: Ausführung ohne Dialoge, nur Exceptions

False: Dialogmeldungen

Aktive-Eigenschaften (Methoden)

Execute:L Ausführen der Umbuchung
True = Einstellungen okay

--> Buchung durchgeführt
False = Fehler bei Einstellungen oder Buchung

-->keine Buchung durchgeführt

Validate:L Prüfung der Parameter (Artikel-, Seriennr. alt und neu)

Hinweis:

- Datenmodul muss erzeugt und zugewiesen werden.

- Umbuchung muss in gestarteter Transaktion ablaufen.

- Bisheriger Seriennr.- Artikel muss sich auf Lager befinden / im Bestand sein.

- Neuer Seriennr.- Artikel darf noch nicht auf Lager sein.

- Die neue Artikelnr. muss die Seriennr.-Verwaltung aktiviert haben

- Umbau erfolgt durch Angabe einer neuen Artikel und/oder neuen Seriennr.

Beispiel

function Umbau(cArtNoOld, cSerialOld, cArtNoNew, cSerialNew)

  |oUmbau, oDM|

  oDM    := CreateObject("TBeDBGet"),

  startseq,

     oUmbau := CreateObject("TBeCBSerialNoReconstruction"),

     startseq,

        startseq,

           oUmbau.DataModule := oDM,

           oUmbau.ArtNoOld   := cArtNoOld,

           oUmbau.ArtNoNew   := cArtNoNew,

           oUmbau.SerialOld  := cSerialOld,

           oUmbau.SerialNew  := cSerialNew,

           DbStartTrans(oDM.AdsConnection),

           oUmbau.Execute,

           DbCommit(oDM.AdsConnection),

        onerror,

           if DbInTrans(oDM.AdsConnection) then

              DbRollback(oDM.AdsConnection),

           endif,

           SetError('Umbau nicht erfolgreich: ' + GetErrorText()),

        stopseq,

     always

        DestroyObject(oUmbau),

     stopseq,

  always

    DestroyObject(oDM),

  stopseq,

end,

Umbau('0815', '4711', '0815' , '4712'),


TBeCheckCombo

TBeCheckCombo

TBeCheckCombo ist eine erweiterte TBeCombo Klasse welche zur Auswahl eine bildlauffähige Liste mit Datenbank-Bindung an, deren Einträge mit Kontrollfeldern (Checkboxen) ausgestattet sind. Der Benutzer kann die Listeneinträge aktivieren und deaktivieren.

Eigenschaften:

Allgemeine-Eigenschaften

CheckedItems:Collection Indizes der aktuell ausgewählten Einträge

CheckedCount:N Anzahl der ausgewählten Einträge

ValuesChecked: Collection Wert (Value) der Einträge im ausgewähltem Zustand

ValuesUnChecked: Collection Wert (Value) der Einträge im abgewähltem Zustand

DisplayText:C Anzeige Text (Text der ausgewählten Einträge mit Trennzeichen)

ShowTextAsHint:L Anzeige Text als Hint anzeigen (ShowHint muss aktiv sein)

Separator:C Trennzeichen für Anzeigetext

Aktive-Eigenschaften (Methoden)

CBCheckAllItems Alle vorhandenen Einträge auswählen

CBUnCheckAllItems Alle vorhandenen Einträge abwählen

Verwendung:

- TBeCheckCombo auf eine F12-Maske platzieren

- DataSource muss zugewiesen und aktiv sein

- DataField muss zugewiesen sein

- DataField muss als Control-Typ TBeCheckCombo definiert sein

- Im F12-Designer findet sich die Komponente unter der Palette "BE-Combo"

Beispiel

// demonstriert den Einsatz der Klassen  TBeCheckCombo, TBeAttribCheckCombo und

// TBeFieldAttribCheckCombo

//

// HINWEIS:

// Die im Beispiel "manuell" erzeugten Klassen können natürlich auch im Designer

// erstellt werden und die entsprechenden Eigenschaften dort gesetzt werden.

| oForm, oSeparatorButton, oSeparatorEdit, oLabelSeparator, oCheckAllButton,

  oCheckNoneButton, oBeCheckCombo, oBeFieldAttribCheckCombo, oBeAttribCheckCombo,

  oDab065:DB:="9,1", oDataSourceStd, oTextEdit, oLabelAttribBox, oLabelFieldBox,

  oLabelCheckCombo, oLabelFieldAttribCheckCombo, oMemTable, oMemField,

  oLabelAttribCheckCombo, oDataSourceMem |

//******************************************************************************

function OnBeCheckComboClickCheck( Sender )

| i, aItems, aValues |

  oTextEdit.Text := 'Sender: ' + ClassName(Sender) + crlf,

  // Werte (Value) der einzelnen Einträge

  oTextEdit.Text += 'ValuesChecked: ',

  aValues        := Sender.ValuesChecked,

  for i:=1 to CollCount(aValues) do

     oTextEdit.Text += CollItem(aValues, i) + ',',

  end,

  // Index der ausgewählten Einträge

  aItems         := Sender.CheckedItems,

  oTextEdit.Text += crlf + 'CheckedItems: '  + arrtostr(aItems) + crlf,

  // Werte wie sie in der Table abgelegt werden

  oTextEdit.Text += 'Table: ',

  for i:=1 to aLen(aItems) do

     oTextEdit.Text += CollItem(aValues, aItems[i]) + '/',

  end,

  oTextEdit.Text += crlf + 'Anzeige-Text: ',

  oTextEdit.Text += Sender.DisplayText,

  oTextEdit.Text += crlf + 'Ausgewählt: ',

  oTextEdit.Text += str(Sender.CheckedCount),

end,

//******************************************************************************

function OnSeparatorChangeClick( Sender )

  oBeCheckCombo.Separator := oSeparatorEdit.Text,

end,

//******************************************************************************

function OnCheckAllClick( Sender )

  oBeCheckCombo.CBCheckAllItems,

end,

//******************************************************************************

function OnCheckNoneClick( Sender )

  oBeCheckCombo.CBUnCheckAllItems,

end,

//******************************************************************************

startseq

   //***************************************************************************

   // Beispiel-Formular erzeugen

   //***************************************************************************

   oForm          := CreateObject('TFormEx'),

   oForm.OrigCapt := 'CheckCombo im Codeblock',

   oForm.Position := POSCREENCENTER,

   oForm.Width    := 440,

   oForm.Height   := 320,

   //***************************************************************************

   // Beispiel eines datengebundenen "Standard" CheckCombo-Controls

   //***************************************************************************

   // DataSource erzeugen

   oDataSourceStd           := CreateObject('TDataSourceEx',

                                            'DataSourceExStd1', oForm, oForm),

   oDataSourceStd.DataSet   := oDAB065,

   DbGoBottom(oDAB065),

   // "Standard" CheckCombo-Control erzeugen

   oBeCheckCombo            := CreateObject('TBeCheckCombo',

                                            'BeCheckCombo1', oForm, oForm),

   oBeCheckCombo.Left       := 10,

   oBeCheckCombo.Top        := 30,

   oBeCheckCombo.Width      := 200,

   oBeCheckCombo.Height     := 90,

   oBeCheckCombo.ShowTextAsHint := True,

   // durch die Zuweisung eines DataSources und eines DataFields, holt sich die

   // BeCheckCombo die MM-Tabelle von selbst

   oBeCheckCombo.DataSource := oDataSourceStd,

   oBeCheckCombo.DataField  := 'N_AKTION',

   dbrefresh(oDAB065),

   // Event zuweisen

   AssignEvent(oBeCheckCombo, 'OnClickCheck', 'OnBeCheckComboClickCheck'),

   // Eingabefeld für Anzeigetrenner

   oSeparatorEdit           := CreateObject('TBeEdit',

                                            'TBeEdit2', oForm, oForm),

   oSeparatorEdit.Left      := 220,

   oSeparatorEdit.Top       := 30,

   oSeparatorEdit.Width     := 55,

   oSeparatorEdit.Text      := oBeCheckCombo.Separator,

   oSeparatorButton         := CreateObject('TButton',

                                            'TButton1', oForm, oForm),

   oSeparatorButton.Left    := 285,

   oSeparatorButton.Top     := 28,

   oSeparatorButton.Width   := 55,

   oSeparatorButton.Caption := 'ändern',

   // Event zuweisen

   AssignEvent(oSeparatorButton, 'OnClick', 'OnSeparatorChangeClick'),

   // Button "Alle Einträge auswählen"

   oCheckAllButton          := CreateObject('TBeBitBtn',

                                            'TButton2', oForm, oForm),

   oCheckAllButton.Left     := 220,

   oCheckAllButton.Top      := 58,

   oCheckAllButton.Width    := 55,

   oCheckAllButton.ImageIndex.IndexNormal := 189,

   oCheckAllButton.Caption  := 'alle',

   // Event zuweisen

   AssignEvent(oCheckAllButton, 'OnClick', 'OnCheckAllClick'),

   // Button "Keine Einträge auswählen"

   oCheckNoneButton         := CreateObject('TBeBitBtn',

                                            'TButton3', oForm, oForm),

   oCheckNoneButton.Left    := 285,

   oCheckNoneButton.Top     := 58,

   oCheckNoneButton.Width   := 55,

   oCheckNoneButton.ImageIndex.IndexNormal := 190,

   oCheckNoneButton.Caption := 'keine',

   // Event zuweisen

   AssignEvent(oCheckNoneButton, 'OnClick', 'OnCheckNoneClick'),

   //***************************************************************************

   // Beispiel eines datengebundenen CheckCombo-Controls auf einer MemTable

   // (jede beliebige Tabelle denkbar)

   //***************************************************************************

   // Memtable erzeugen

   oMemTable          := CreateObject('TMemCalcTable', 'MemTable1', oForm),

   // Feld erzeugen

   oMemField          := CollAdd( oMemTable.FieldsDefinition ),

   oMemField.Name     := 'MEM_ABTLG',

   oMemField.DataType := 1, // Character

   oMemField.Size     := 40,

   oMemTable.Active   := True,

   // Datensatz anlegen mit 'Abteilungen'

   dbappend(oMemTable),

   oMemTable:MEM_ABTLG := '100/200/', // Initialwert

   dbpost(oMemTable),

   // DataSource erzeugen

   oDataSourceMem         := CreateObject('TDataSourceEx', 'DataSourceExMem1', oForm),

   oDataSourceMem.DataSet := oMemTable,

   // CheckCombo-Control erzeugen

   oBeFieldAttribCheckCombo            := CreateObject('TBeFieldAttribCheckCombo',

                                                       'BeFieldAttribCheckCombo1', oForm, oForm),

   oBeFieldAttribCheckCombo.Left          := 10,

   oBeFieldAttribCheckCombo.Top           := 130,

   oBeFieldAttribCheckCombo.Width         := 200,

   oBeFieldAttribCheckCombo.Height        := 90,

   oBeFieldAttribCheckCombo.BeAttributeID := -8,

   oBeFieldAttribCheckCombo.DataField     := 'MEM_ABTLG',

   oBeFieldAttribCheckCombo.DataSource    := oDataSourceMem,

   // Event zuweisen

   AssignEvent(oBeFieldAttribCheckCombo, 'OnClickCheck', 'OnBeCheckComboClickCheck'),

   //***************************************************************************

   // Beispiel eines nit datengebundenen CheckCombo-Controls

   //***************************************************************************

   oBeAttribCheckCombo               := CreateObject('TBeAttribCheckCombo',

                                                     'BeAttribCheckCombo1', oForm, oForm),

   oBeAttribCheckCombo.Left          := 220,

   oBeAttribCheckCombo.Top           := 130,

   oBeAttribCheckCombo.Width         := 200,

   oBeAttribCheckCombo.Height        := 90,

   oBeAttribCheckCombo.BeAttributeID := -8,

   oBeAttribCheckCombo.Value         := '200/300', // Initialwert

   // Event zuweisen

   AssignEvent(oBeAttribCheckCombo, 'OnClickCheck', 'OnBeCheckComboClickCheck'),

   //***************************************************************************

   // Ausgabe-Control - nur für den Test

   //***************************************************************************

   oTextEdit             := CreateObject('TBeEdit', 'Edit1', oForm, oForm),

   oTextEdit.Text        := '',

   oTextEdit.Left        := 10,

   oTextEdit.Top         := 170,

   oTextEdit.Width       := 410,

   oTextEdit.AutoSize    := False,

   oTextEdit.Height      := 110,

   oTextEdit.WantReturns := True,

   oTextEdit.WordWrap    := True,

   oTextEdit.ReadOnly    := True,

   //***************************************************************************

   // Beschriftungen

   //***************************************************************************

   oLabelCheckCombo         := CreateObject('TBeLabel', 'BeLabel1', oForm, oForm),

   oLabelCheckCombo.Left    := 10,

   oLabelCheckCombo.Top     := 10,

   oLabelCheckCombo.Caption := 'TBeCheckCombo',

   oLabelFieldAttribCheckCombo         := CreateObject('TBeLabel', 'BeLabel2', oForm, oForm),

   oLabelFieldAttribCheckCombo.Left    := 10,

   oLabelFieldAttribCheckCombo.Top     := 110,

   oLabelFieldAttribCheckCombo.Caption := 'TBeFieldAttribCheckCombo',

   oLabelAttribCheckCombo         := CreateObject('TBeLabel', 'BeLabel3', oForm, oForm),

   oLabelAttribCheckCombo.Left    := 220,

   oLabelAttribCheckCombo.Top     := 110,

   oLabelAttribCheckCombo.Caption := 'TBeAttribCheckCombo',

   oLabelSeparator          := CreateObject('TBeLabel', 'BeLabel4', oForm, oForm),

   oLabelSeparator.Left     := 220,

   oLabelSeparator.Top      := 10,

   oLabelSeparator.Caption  := 'Anzeige Trenner',

   // Formular anzeigen

   ShowModal(oForm),

   // Formular zerstören

   DestroyObject(oForm),

onerror,

   writeln(GetErrorText()),

   DestroyObject(oForm),

stopseq,

Siehe auch

TBeCheckListBox

TBeAttribCheckCombo

TBeFieldAttribCheckCombo


TBeCheckListBox

TBeCheckListBox

TBeCheckListBox zeigt eine bildlauffähige Liste mit Datenbank-Bindung an, deren Einträge mit Kontrollfeldern (Checkboxen) ausgestattet sind. Der Benutzer kann die Listeneinträge aktivieren und deaktivieren.

Eigenschaften:

Allgemeine-Eigenschaften

CheckedItems:Collection Indizes der aktuell ausgewählten Einträge

ValuesChecked: Collection Wert (Value) der Einträge

Verwendung:

- TBeCheckListBox auf eine F12-Maske platzieren und BeAttributeID zuweisen

- DataSource muss zugewiesen und aktiv sein

- DataField muss zugewiesen sein

- DataField muss als Control-Typ TBeCheckListBox definiert sein

- Im F12-Designer findet sich die Komponente unter der Palette "BE-Combo"

Beispiel

// demonstriert den Einsatz der Klassen TBeCheckListBox

//                                      TBeAttribCheckListBox,

//                                      TBeFieldCheckListBox,

// HINWEIS:

// Die im Beispiel "manuell" erzeugten Klassen können natürlich auch im Designer

// erstellt werden und die entsprechenden Eigenschaften dort gesetzt werden.

| oForm, oBeAttribCheckListBox, oBeFieldCheckListBox, oMemTable, oMemField,

  oDataSourceMem, oBeCheckListBox, oDab010:DB:="2,1", oDataSourceStd, oTextEdit,

  oLabelAttribBox, oLabelFieldBox, oLabelListBox, aItems |

//******************************************************************************

function OnBeAttribCheckListBoxClickCheck( Sender )

| i, aItems, aValues |

  oTextEdit.Text := 'Sender: ' + ClassName(Sender) + crlf,

  // Werte (Value) der einzelnen Einträge

  oTextEdit.Text += 'ValuesChecked: ',

  aValues        := oBeAttribCheckListBox.ValuesChecked,

  for i:=1 to CollCount(aValues) do

     oTextEdit.Text += CollItem(aValues, i) + ',',

  end,

  // Index der ausgewählten Einträge

  aItems         := oBeAttribCheckListBox.CheckedItems,

  oTextEdit.Text += crlf + 'CheckedItems: '  + arrtostr(aItems) + crlf,

end,

//******************************************************************************

function OnBeFieldListBoxClickCheck( Sender )

| i, aItems, aValues |

  oTextEdit.Text := 'Sender: ' + ClassName(Sender) + crlf,

  // Werte (Value) der einzelnen Einträge

  oTextEdit.Text += 'ValuesChecked: ',

  aValues        := oBeFieldCheckListBox.ValuesChecked,

  for i:=1 to CollCount(aValues) do

     oTextEdit.Text += CollItem(aValues, i) + ',',

  end,

  // Index der ausgewählten Einträge

  aItems         := oBeFieldCheckListBox.CheckedItems,

  oTextEdit.Text += crlf + 'CheckedItems: '  + arrtostr(aItems) + crlf,

  // Werte wie sie in der MemTable abgelegt werden

  oTextEdit.Text += 'MemTable: ',

  for i:=1 to aLen(aItems) do

     oTextEdit.Text += CollItem(aValues, aItems[i]) + '/',

  end,

end,

//******************************************************************************

function OnBeCheckListBoxClickCheck( Sender )

| i, aItems, aValues |

  oTextEdit.Text := 'Sender: ' + ClassName(Sender) + crlf,

  // Werte (Value) der einzelnen Einträge

  oTextEdit.Text += 'ValuesChecked: ',

  aValues        := oBeCheckListBox.ValuesChecked,

  for i:=1 to CollCount(aValues) do

     oTextEdit.Text += CollItem(aValues, i) + ',',

  end,

  // Index der ausgewählten Einträge

  aItems         := oBeCheckListBox.CheckedItems,

  oTextEdit.Text += crlf + 'CheckedItems: '  + arrtostr(aItems) + crlf,

  // Werte wie sie in der Table abgelegt werden

  oTextEdit.Text += 'Table: ',

  for i:=1 to aLen(aItems) do

     oTextEdit.Text += CollItem(aValues, aItems[i]) + '/',

  end,

end,

//******************************************************************************

startseq

   //***************************************************************************

   // Beispiel-Formular erstellen

   //***************************************************************************

   oForm          := CreateObject('TFormEx'),

   oForm.OrigCapt := 'CheckListBox im Codeblock',

   oForm.Position := POSCREENCENTER,

   oForm.Width    := 505,

   oForm.Height   := 250,

   //***************************************************************************

   // Beispiel eines nicht datengebundenes CheckListBox-Controls

   //***************************************************************************

   oBeAttribCheckListBox         := CreateObject('TBeAttribCheckListBox',

                                                 'BeAttribCheckListBox1',

                                                 oForm, oForm),

   oBeAttribCheckListBox.Left    := 10,

   oBeAttribCheckListBox.Top     := 30,

   oBeAttribCheckListBox.Width   := 150,

   oBeAttribCheckListBox.Height  := 90,

   // Merkmalstabelle wählen (Standard "Lagerplatz-Verwaltung")

   oBeAttribCheckListBox.BeAttributeID := 102023,

   // der Initialwert kann vorgegeben werden !

   aItems := oBeAttribCheckListBox.CheckedItems,

   AAdd(aItems, 1),

   AAdd(aItems, 3),

   oBeAttribCheckListBox.CheckedItems := aItems,

   // Event zuweisen

   AssignEvent(oBeAttribCheckListBox, 'OnClickCheck', 'OnBeAttribCheckListBoxClickCheck'),

   //***************************************************************************

   // Beispiel eines datengebundenes CheckListBox-Controls auf einer MemTable

   // (jede beliebige Tabelle denkbar)

   //***************************************************************************

   // Memtable erstellen

   oMemTable          := CreateObject('TMemCalcTable', 'MemTable1', oForm),

   // Feld erstellen

   oMemField          := CollAdd( oMemTable.FieldsDefinition ),

   oMemField.Name     := 'PLATZ_VER',

   oMemField.DataType := 1, // Character

   oMemField.Size     := 20,

   oMemTable.Active   := True,

   // leeren Datensatz

   dbappend(oMemTable),

   // DataSource erstellen

   oDataSourceMem         := CreateObject('TDataSourceEx',

                                          'DataSourceExMem1', oForm),

   oDataSourceMem.DataSet := oMemTable,

   // CheckListBox-Control für Datenbank-Zugriff erstellen

   oBeFieldCheckListBox               := CreateObject('TBeFieldCheckListBox',

                                                      'BeFieldCheckListBox1',

                                                      oForm, oForm),

   oBeFieldCheckListBox.Left          := 170,

   oBeFieldCheckListBox.Top           := 30,

   oBeFieldCheckListBox.Width         := 150,

   oBeFieldCheckListBox.Height        := 90,

   oBeFieldCheckListBox.DataSource    := oDataSourceMem,

   oBeFieldCheckListBox.DataField     := 'PLATZ_VER',

   oBeFieldCheckListBox.BeAttributeID := 102023,

   // Event zuweisen

   AssignEvent(oBeFieldCheckListBox, 'OnClickCheck', 'OnBeFieldListBoxClickCheck'),

   //***************************************************************************

   // Beispiel eines datengebundenen "Standard" CheckListBox-Controls

   //***************************************************************************

   // DataSource erstellen

   oDataSourceStd         := CreateObject('TDataSourceEx',

                                          'DataSourceExStd1', oForm, oForm),

   oDataSourceStd.DataSet := oDab010,

   DbGoBottom(oDab010),

   // "Standard" CheckListBox-Control erstellen

   oBeCheckListBox            := CreateObject('TBeCheckListBox',

                                              'BeCheckListBox1', oForm, oForm),

   oBeCheckListBox.Left       := 330,

   oBeCheckListBox.Top        := 30,

   oBeCheckListBox.Width      := 150,

   oBeCheckListBox.Height     := 90,

   // durch die Zuweisung eines DataSources und eines DataFields, holt sich die

   // BeCheckListBox die MM-Tabelle von selbst

   oBeCheckListBox.DataSource := oDataSourceStd,

   oBeCheckListBox.DataField  := 'PLATZ_VER', // Feld-Control-Typ muss

                                              // TBeCheckListBox sein!

   dbrefresh(oDab010),

   // Event zuweisen

   AssignEvent(oBeCheckListBox, 'OnClickCheck', 'OnBeCheckListBoxClickCheck'),

   //***************************************************************************

   // Ausgabe-Control - nur für den Test

   //***************************************************************************

   oTextEdit             := CreateObject('TBeEdit', 'Edit1', oForm, oForm),

   oTextEdit.Text        := '',

   oTextEdit.Left        := 10,

   oTextEdit.Top         := 130,

   oTextEdit.Width       := 470,

   oTextEdit.AutoSize    := False,

   oTextEdit.Height      := 80,

   oTextEdit.WantReturns := True,

   oTextEdit.WordWrap    := True,

   oTextEdit.ReadOnly    := True,

   //***************************************************************************

   // Beschriftungen

   //***************************************************************************

   oLabelAttribBox         := CreateObject('TBeLabel', 'BeLabel1', oForm, oForm),

   oLabelAttribBox.Left    := 10,

   oLabelAttribBox.Top     := 10,

   oLabelAttribBox.Caption := 'TBeAttribCheckListBox',

   oLabelFieldBox          := CreateObject('TBeLabel', 'BeLabel2', oForm, oForm),

   oLabelFieldBox.Left     := 170,

   oLabelFieldBox.Top      := 10,

   oLabelFieldBox.Caption  := 'TBeFieldCheckListBox',

   oLabelListBox           := CreateObject('TBeLabel', 'BeLabel3', oForm, oForm),

   oLabelListBox.Left      := 330,

   oLabelListBox.Top       := 10,

   oLabelListBox.Caption   := 'TBeCheckListBox',

   // Formular anzeigen

   ShowModal(oForm),

   // Formular zerstören

   DestroyObject(oForm),

onerror,

   writeln(GetErrorText()),

   DestroyObject(oForm),

stopseq,

Siehe auch

TBeAttribCheckListBox

TBeFieldCheckListBox


TBeCommissData

TBeCommissData

Klasse zum Druck eines Kommissionierschein für einen Kundenauftrag.

Eigenschaften:

In dieser Klasse werden keine neuen Eigenschaften eingeführt. Relevante Eigenschaften befinden sich in den Vorfahr-Klasen. Siehe Hierarchie.

Hierarchie:

TBePrintData -> TBeOfferData -> TBeCommissData

Beispiel

function PrintCommiss( nAuftragsNummer )

 | oPrint |

  oPrint := CreateObject("TBeCommissData"),

  startseq

     oPrint.QuietMode    := false,

     oPrint.PrintDocNo   := nAuftragsNummer, // Auftragsnummer des zu druckenden Kommiss.Schein

     oPrint.ExecPrint,                       // Einzeldruck anstoßen

   always

      DestroyObject(oPrint),

   stopseq,

end,

PrintCommiss( 123456 )

Siehe auch

TBeRemovalData, TBeCumRemovalData

<ungültiger Verweis>

TBePrintData

TBeCumBillData

TBeConfData


TBeConfData

TBeConfData

Klasse zum Druck einer Auftragsbestätigung für einen Kundenauftrag.

Eigenschaften:

In dieser Klasse werden keine neuen Eigenschaften eingeführt. Relevante Eigenschaften befinden sich in den Vorfahr-Klasen. Siehe Hierarchie.

Hierarchie:

TBePrintData -> TBeOfferData -> TBeConfData

Beispiel

function PrintAB( nAuftragsNummer )

 | oPrint |

  oPrint := CreateObject("TBeConfData"),

  startseq

     oPrint.QuietMode    := false,

     oPrint.PrintDocNo   := nAuftragsNummer, // Auftragsnummer der zu druckenden Bestätigung

     oPrint.ExecPrint,                       // Einzeldruck anstoßen

   always

      DestroyObject(oPrint),

   stopseq,

end,

PrintAB( 123456 )

Siehe auch

TBeRemovalData, TBeCumRemovalData

<ungültiger Verweis>

TBePrintData

TBeCumBillData

TBeCommissData


TBeCumBillData

TBeCumBillData

Belegdruck-Klasse zum Druck von Sammelrechnungen.

Eigenschaften:

PrintPersNo:N Kunden-Nummer für den die Sammelrechnung gedruckt werden soll

PrintDocNo:C immer leer

MinTotalSum:N Mindestwert je Rechnung; Default = 0

Hierarchie:

TBePrintData -> TBeOfferData -> TBeDelivData -> TBeBillData -> TBeCumBillData

Hinweis:

für weitere Eigenschaften siehe Vorfahr-Klassen

Beispiel

function PrintSammelRechnung(nKdnr, lShowDoc)

  |oCumBill|

  oCumBill := CreateObject("TBeCumBillData"),

  startseq

    oCumBill.UsePrintDlg := False,

    oCumBill.QuietMode   := True,

    oCumBill.PrintPersNo := nKdnr,    // Kundennummer

    oCumBill.MinTotalSum := -9999999, // kein Mindestwert je Rechnung

    oCumBill.ExecPrint,               // Einzeldruck starten

    // wurde Beleg gedruckt? (DocNo <> 999999) -> dann Belegarchiv anzeigen

    if lShowDoc and (oCumBill.DocNo <> 999999) then

       ShowDocument(160, nKdnr, Str(oCumBill.DocNo)),

    endif,

  always

    DestroyObject(oCumBill),

  stopseq,

end,

// Sammelrechnung für KDNR=1 drucken und anzeigen

PrintSammelRechnung(1, True)

Siehe auch

TBeRemovalData, TBeCumRemovalData

TBeDelivData, TBeCumDelivData

<ungültiger Verweis>

TBePrintData


TBeDBChart

TBeDBChart

Klasse zur grafischen Darstellung von Diagrammen aller Art.

Eigenschaften:

ExecEditChart Öffnet die Chart-Konfiguration (im Design-Modus zu verwenden)

Verwendung:

Die Komponente wird auf eine F12-Maske platziert. Über die Eigenschaft ExecEditChart kann ein Editor für die Diagramm-Konfiguration dargestellt werden. Damit die TBeDBChart-Klasse Datenbanken zur Verfügung hat, müssen diese ebenfalls auf dem Formular platziert werden und bereits zur Designzeit eine Feldliste haben.

Die Eigenschaft ExecRefreshDesigner der Tabellen-Objekte (TMemCalcTable, TBeStandardTable, TBeRightsTable, TBeSemaphorTable) muss einmal aktiviert werden, damit die Feldliste des Tabellen-Objekts dem Designer (und somit der Chart-Komponente) zur Verfügung steht.

Danach kann über den Reiter 'Datenquelle' einer über die Chart-Konfiguration angelegten Reihe die Datenquelle ausgewählt werden.

Beispiel

// Hinweis: Das Beispiel erfodert ein Formular mit der ID "@CHART_1", auf welchem

//          sich die mit "FindObject()" geladenen Objekte befinden

|oForm, BeDBChart1, Series1, ChartTool1,

 BeAdsQuery1, MemCalcTable1, DataSourceEx1, BeAltGrid1,

 cJahr, cJahrBis

|

StartSeq

   // Formular-Objekte laden

   oForm := LoadForm( "@CHART_1", Application ),

   oForm.Visible := false,

   BeDBChart1    := FindObject( oForm, "BeDBChart1" ),

   Series1       := FindObject( oForm, "Series1" ),

   ChartTool1    := FindObject( oForm, "ChartTool1" ),

   BeAdsQuery1   := FindObject( oForm, "BeAdsQuery1" ),

   MemCalcTable1 := FindObject( oForm, "MemCalcTable1" ),

   DataSourceEx1 := FindObject( oForm, "DataSourceEx1" ),

   BeAltGrid1    := FindObject( oForm, "BeAltGrid1" ),

   // Abfrage-Zeitraum

   cJahr    := str(year(date())-1) + '01',

   cJahrBis := str(year(date())-1) + '12',

   // SQL-Abfrage: Gesamt-Umsätze im angegeben Jahr

   BeAdsQuery1.SQL := sqlstr(SELECT DAB520.JAHRMONAT, DAB520.VK_UMSATZ,

                             convert(DAB520.JAHRMONAT, SQL_INTEGER) AS JAHRMONAT_INT

                                FROM

                                WHERE     SUCHBEGR like 'TT%'

                                      AND JAHRMONAT >=

                                      AND JAHRMONAT <=

                                      AND TAG is null

                                      AND ABTEILUNG =

                                      AND STANDORT =

                            ),

   BeAdsQuery1.Active := true,

   // SQL-Ergebnis in Memtable übertragen

   MemCalcTable1.BorrowFromDataSet := BeAdsQuery1,

   // Weitere Spalte wird für die Beschriftung der Monate im Chart gebraucht

   AddMemField(MemCalcTable1, 'BEZ', 'C', 20, 0),

   MemCalcTable1.Active := true,

   dbgotop(BeAdsQuery1),

   while not eof(BeAdsQuery1) do

     myappend(MemCalcTable1),

     MemCalcTable1:JAHRMONAT     := BeAdsQuery1:JAHRMONAT,

     MemCalcTable1:JAHRMONAT_INT := BeAdsQuery1:JAHRMONAT_INT,

     MemCalcTable1:VK_UMSATZ     := BeAdsQuery1:VK_UMSATZ,

     MemCalcTable1:BEZ           := cMonth(stod(BeAdsQuery1:JAHRMONAT + '01')),

     mypost(MemCalcTable1),

     dbskip(1, BeAdsQuery1),

   end,

   // MemTable zusätzlich im Browser anzeigen

   BeAltGrid1.RegisterDataSet := MemCalcTable1,

   BeAltGrid1.ReadWriteProps  := false,

   // Captions setzen

   oForm.OrigCapt := 'Beispielprogramm: TBeDBChart in F12 Masken',

   BeDBChart1.Title.Text := 'Umsätze nach Monaten (' + Str(year(date())) + ')',

   // Chart: Anzeige refreshen

   BeDBChart1.ExecRefreshChart,

   // Formular anzeigen

   ShowModal(oForm),

OnError

   Meld(GetErrorText()),

   DestroyObject( oForm ),

StopSeq,


TBeDBGet

TBeDBGet - Datenmodul

Die Klasse dient als "Kontainer" für Tabellen, welche mit DBGet...() bzw. DB(Un)LinkTable() erstellt oder verlinkt werden.

HINWEIS: Das Objekt verfügt über eine eigene Connection, d.h. alle diesem Objekt zugehörige Tabellen arbeiten auf der Connection des Kontainers.

Eigenschaften:

AdsConnection ADS-Connection auf die Tabellen geöffnet werden

Hinweise:

Der Einsatz des Objektes macht nur in Kombination mit den Funktionen DBGet...() bzw. DB(Un)LinkTable() Sinn.

Es dient zur vereinfachten, gesammelten Übergabe von Tabellen an Funktionen, in dem nur noch das TBeDBGet-Objekt anstelle der einzelnen Tabellen übergeben wird, sowie zur gezielten Steuerung von Transaktionen (mit DBStartTrans(), DBCommit(), DBRollback()) die sich nur noch auf die Tabellen des TBeDBGet-Objektes und nicht auf alle zufällig geöffneten Tabellen der Applikation bezieht.

Siehe auch

DBGetLookup()

DBGetMemTable()

DBGetTable()

DBLinkTable()

DBUnLinkTable()


TBeDBUserList

TBeDBUserList

Klasse zur Datenbank-gebundenen Darstellung / Auswahl von BE-Benutzern in einer Mehrfach-Auswahlliste.

Eigenschaften:

Allgemeine-Eigenschaften

siehe Klasse TBeUserList

DataSource DataSource-Objekt

DataField Datenbank-Feld

Aktive-Eigenschaften (Methoden)

ExecRefresh User-Liste befüllen

Siehe auch

TBeUserList

TBeUserCombo


TBeDelivData, TBeCumDelivData

TBeDelivData, TBeCumDelivData

Belegdruck-Klassen zum Druck von Einzel- bzw. Sammellieferscheinen.

Eigenschaften TBeDelivData:

PrintPersNo:N Immer 0 !

PrintDocNo:C Aufragsnummer, numerisch

Eigenschaften TBeCumDelivData:

PrintPersNo:N Kunden-Nr., numerisch

PrintDocNo:C LPRUEFSUM, alpha

Hierarchie:

TBePrintData -> TBeOfferData -> TBe[Cum]DelivData

Beispiel

function PrintLieferschein( oDab050 )

   |oPrint|

   oPrint := CreateObject("TBeDelivData"),

   startseq

     oPrint.QuietMode    := True,

     oPrint.PrintDocNo   := Val(oDab050:ANUMMER), // Zu druckender Auftrag

     oPrint.ExecPrint,                            // Einzeln drucken

   always

     DestroyObject(oPrint),

   stopseq,

end,

function PrintSammelLieferschein( oDab050 )

   |oPrint|

   oPrint := CreateObject("TBeCumDelivData"),

   startseq

     oPrint.QuietMode    := True,

     oPrint.PrintPersNo  := oDab050:KDNR,         // Zu druckende Kundennr.

     oPrint.PrintDocNo   := oDab050:LPRUEFSUM,    // Zu druckende Lieferanschrift

     oPrint.ExecPrint,                            // Einzeln drucken

   always

     DestroyObject(oPrint),

   stopseq,

end,

Siehe auch

TBeRemovalData, TBeCumRemovalData

<ungültiger Verweis>

TBePrintData

TBeCumBillData


TBeDocScanner

TBeDocScanner - Belege einscannen per Codeblock

Die Klasse dient zum einscannen von Dokumenten mit dem Standard Scan-Dialog. Die gescannten Dokumente können anschließend als Datei oder in der Datenbank (in einem Blob-Feld) gespeichert werden.

Verwendung:

- TBeDocScanner-Objekt erstellen

- die Default-Scan-Einstellungen überschreiben (optional)

- Scan ausführen

- Scan(s) abholen bzw. verarbeiten

Eigenschaften:

Allgemeine-Eigenschaften

ValidSaveFormats:A Funktion liefert ein Array mit allen für den Scan verfügbaren Bild-Formaten.

IsSaveFormatValid:L Funktion prüft ob die Einstellungen zum Speichern korrekt sind.

Aktive-Eigenschaften

ExecScan Scan ausführen bzw. Dialog anzeigen

Hinweise:

Wird FileName nicht angegeben wird der Scan - falls dieser in Schwarz/Weiß gescannt wurde - als TIFF gespeichert, andernfalls immer als JPEG.

Wird FileName angegeben und das Format wird für den Scan nicht unterstützt (z.B. '.jpg' bei Schwarz/Weiß-Scan), so wird eine Exception ausgelöst und der Speicher-/Lese-Vorgang wird unterbrochen.

Beispiel

| oDocScanner, nSeite, oPage, oKdn700:DB:='700,ID' |

// 1. Objekt erstellen

oDocScanner := CreateObject( 'TBeDocScanner' ),

// 2. --> Begin der optionalen Einstellungen --------------------------------------------

oDocScanner.Options.Silence      := 1,  // 0 = BE-Dialog UND Twain-Dialog des Treibers

                                        // 1 = nur BE-Dialog

                                        // 2 = kein Dialog

                                        // 3 = nur Twain-Dialog des Treibers

oDocScanner.Options.ScanMultiple := False, // Kein mehrseitigen Scan zulassen

oDocScanner.Options.ScanSetting.Source     := 'HP PrecisionScan LTX 1.2', // Gerätename

oDocScanner.Options.ScanSetting.Size       := 1,   // A4 = Format

oDocScanner.Options.ScanSetting.Resolution := 150, // 150 dpi = Auflösung

oDocScanner.Options.ScanSetting.Color      := 1,   // Graustufen = Farbstufe

// Sonstige Dialog-Optionen

oDocScanner.Options.DlgSetting.maySelectDevice     := True,

oDocScanner.Options.DlgSetting.maySelectResolution := True,

oDocScanner.Options.DlgSetting.maySelectSize       := True,

oDocScanner.Options.DlgSetting.maySelectColor      := True,

oDocScanner.Options.DlgSetting.mayRotate           := True,

oDocScanner.Options.DlgSetting.mayScratch          := True,

oDocScanner.Options.DlgSetting.mayChangeLum        := True,

oDocScanner.Options.DlgSetting.mayLoad             := True,

oDocScanner.Options.DlgSetting.maySave             := True,

// Beleg-Scansetting laden (Nummer entspricht der Reihenfolge der Einträge in den Druckerzuweisungen)

oDocScanner.SettingID := 2,

// --> Ende der optionalen Einstellungen --------------------------------------------

// 3. Scan ausführen bzw. Dialog anzeigen

oDocScanner.ExecScan,

// 4. Die Scans liegen jetzt in Form einer Collection-Liste vor und können abgeholt werden

// Wurde die Verarbeitung abgebrochen, ist die Liste leer

for nSeite := 1 to CollCount(oDocScanner.StackOfScans) do

   // Beispiel 1: als Datei speichern

   oPage := CollItem(oDocScanner.StackOfScans, nSeite),

   oPage.Filename := 'c:\temp\TestSeite' + StrZero(nSeite,3) + '.jpg',

   if oPage.IsSaveFormatValid then

      oPage.AsFile,

   else

      Meld('Ungültiges Format: Scan kann nicht gespeichert werden!'),

   endif,

   // Beispiel 2: in Blob-Feld speichern

   DBAppend(oKdn700),

   oKdn700:BILD :=oPage.AsString,

   DBPost(oKdn700),

next,


TBeExcelFile

TBeExcelFile

Klasse zur Bearbeitung von Excel-Dateien.

Eigenschaften:

Allgemeine-Eigenschaften

ColId:Integer Spalte nach Nummerierung ansprechen, wird nur verwendet falls ColByName = False

default = 1

Col:String Spalte nach der normalen Excel-Bezeichnung (A,B,C,D, ...), wird nur verwendet falls ColByName = True

default = 'A'

Row:Integer Zeile auf welche zugegriffen werden soll

default = 1

Sheet:Integer Sheet auf welches sich bezogen werden soll (muss vor dem Laden der Datei gesetzt werden)

default = 1

Value:Variant Wert aus der Zelle, ist veränderbar

Alignment:TAlignment Ausrichtung der Zelle nach dem Speichern

default = taRightJustify

FormatIndex:Integer Formatierung

default = -1

ColByName:Boolean Ansprechen der Spalten nach Name

default = True

Aktive-Eigenschaften (Methoden)

LoadFile:String Öffnet die angegebene Excel Datei

SaveFile:String Speichert die Datei (bei leeren String wird die geöffnetet Datei verwendet)

Hinweis:

Beim Laden der Datei kann immer nur ein Sheet geladen werden. Das gleiche gilt auch beim Speichern der Datei. Falls eine Datei gespeichert wird, die mehrere Sheets enthält ist nach dem Speichern nur noch das aktive Sheet vorhanden.

Beispiel

| oExcelFile |

oExcelFile := CreateObject('TBeExcelFile'),

oExcelFile.Sheet := 2,

oExcelFile.LoadFile := 'C:\test.xls',

oExcelFile.Col := 'C',

oExcelFile.Row := 3,

writeln( oExcelFile.Value ),

oExcelFile.Value := 8,

oExcelFile.SaveFile := 'C:\test2.xls',


TBeFieldAttribCheckCombo

TBeFieldAttribCheckCombo

Erweiterte TBeCheckCombo Klasse für die Verwendung von Merkmalstabellen in Verbindung mit nicht "BE-Tabellen" (z.B. Memory-Tables).

Eigenschaften:

Allgemeine-Eigenschaften

BeAttributeID:N ID der zu verwendenden Merkmalstabelle

CheckedItems:Collection Indizes der aktuell ausgewählten Einträge

CheckedCount:N Anzahl der ausgewählten Einträge

ValuesChecked: Collection Wert (Value) der Einträge im ausgewähltem Zustand

ValuesUnChecked: Collection Wert (Value) der Einträge im abgewähltem Zustand

DisplayText:C Anzeige Text (Text der ausgewählten Einträge mit Trennzeichen)

ShowTextAsHint:L Anzeige Text als Hint anzeigen (ShowHint muss aktiv sein)

Separator:C Trennzeichen für Anzeigetext

Aktive-Eigenschaften (Methoden)

CBCheckAllItems Alle vorhandenen Einträge auswählen

CBUnCheckAllItems Alle vorhandenen Einträge abwählen

Verwendung:

- TBeFieldCheckCombo auf eine F12-Maske platzieren und BeAttributeID zuweisen

- DataSource muss zugewiesen und aktiv sein

- DataField muss zugewiesen sein

- Im F12-Designer findet sich die Komponente unter der Palette "BE-Combo"

Beispiel

// Beispiel siehe TBeCheckCombo

Siehe auch

TBeCheckCombo

TBeAttribCheckCombo


TBeFieldAttribCombo

TBeFieldAttribCombo

Erweiterte TBeCombo Klasse für die Verwendung von Merkmalstabellen in Verbindung mit nicht "BE-Tabellen" (z.B. Memory-Tables).

Eigenschaften:

Allgemeine-Eigenschaften

BeAttributeID:N ID der zu verwendenden Merkmalstabelle

Verwendung:

- DataSource muss zugewiesen und aktiv sein

- DataField muss zugewiesen sein

- Im F12-Designer findet sich die Komponente unter der Palette "BE-Combo"

Beispiel

siehe TBeAttribCombo

Siehe auch

TBeAttribCombo

TBeAttribCheckCombo


TBeFieldCheckListBox

TBeFieldCheckListBox

Erweiterte TBeCheckListBox Klasse für die Verwendung von Merkmalstabellen in Verbindung mit nicht "BE-Tabellen" (z.B. Memory-Tables).

Eigenschaften:

Allgemeine-Eigenschaften

BeAttributeID:N ID der zu verwendenden Merkmalstabelle

CheckedItems:Collection Indizes der aktuell ausgewählten Einträge

ValuesChecked:Collection Wert (Value) der Einträge

Verwendung:

- TBeFieldCheckListBox auf eine F12-Maske platzieren und BeAttributeID zuweisen

- DataSource muss zugewiesen und aktiv sein

- DataField muss zugewiesen sein

- Im F12-Designer findet sich die Komponente unter der Palette "BE-Combo"

Beispiel

// Beispiel siehe TBeCheckListBox

Siehe auch

TBeCheckListBox

TBeAttribCheckListBox


TBeIndiPrintData

TBeIndiPrintData - Individual-Belegdruck

Dient zum Druck eines Individual-Belegs, welcher dann im Belegarchiv abgelegt werden kann

HINWEIS: Es handelt sich hier um die "erweiterte" Umsetzung des Belegdruckes, eine "einfache" Möglichkeiten zum Belegdruck (z.B. Einzelbelegdruck) bietet die neu im Codeblock verfügbare Funktion "DocumentPrint()" (siehe entsprechendes Memo)

Eigenschaften:

Allgemein

DocType Archiv-Beleg-ID, 900-999, muss als Druckeinstellung definiert sein !

DocNo Beleg-Nr, frei zu vergeben

PersNo Pers.Nr, frei zu vergeben

PrintDate Druck-Datum (default = Buchungsdatum)

PrintDepart Drucklayout für Abteilung n verwenden (default = aktuelle Abteilung)

PrintLang Drucklayout für Sprache n verwenden (default = 0)

PrintConnect ADS-Connection auf der die Druckendatenverarbeitung läuft

Tables Array mit Tabellen, welche im Belegdruck bzw. -Layout zur Verfügung stehen

TestPrint Test-Druck (Readonly)

ProcessDataOnly Verarbeitung ohne Druck (default = False)

Events

OnInitFirstPrint Initialisierung erster Beleg im Stapeldruck-Modus

OnInitNextPrint Initialisierung nächster Beleg im Stapeldruck-Modus

OnSetLocks Record-Locks für die Verarbeitung setzen

OnReSetLocks Record-Locks der Verarbeitung aufheben (Gegenstück zu SetLocks)

OnProcDataBefore Belegdruck-Datenverarbeitung VOR der Druckausgabe

OnProcDataAfter Belegdruck-Datenverarbeitung NACH der Druckausgabe

Aktive Eigenschaften

ExecLayout Layout-Designer aufrufen

ExecPrint Einzeldruck starten

ExecPrintAll Stapeldruck startem

Hinweise:

Die Verwendung der Klasse an Stelle der Funktion DocumentPrint() bietet erweiterte Steuerungsmöglichkeit des Belegdruck, hierzu zählen insbesondere

- Stapeldruckfunktion

- Setzen/Prüfen von Satzsperren unmittelbar vor der Verarbeitung (wichtig im Stapeldruck)

- Festlegen von Druck-Abteiltung und -Sprache

- Verarbeitung eines Beleges ohne Druck

Beispiel:

| oDab010, oConnect, oDM, arrArt, nDocNo |

// In diesem Beispiel wird ein *Stapel*Druck ausgeführt, der für jedes Element

// in arrArt ein Scope auf die DAB010 setzt und daraufhin einen entsprechenden

// Beleg druckt

// Events ----------------------------------------------------------------------

// Events zur Initialisierung des (nächsten) Belegdruckes ######################

function InitNextPrint( aSender, aContinue:R )

   // (nur im Stapeldruck!)

   // Für jedes Element in arrArt einen eigenen Beleg drucken,

   // bis alle Belege gedruckt...

   // Wird aContinue auf FALSE gesetzt, wird der Stapeldruck beendet

   Meld('InitNextPrint'),

   nDocNo++,

   oDM.DocNo := 5000 + nDocNo, // Nr. des Beleges setzen (5001, 5002, ...)

   aContinue := nDocNo <= Len(arrArt), // True = weiteren Beleg drucken

   if aContinue then

      DbScope( arrArt[nDocNo], arrArt[nDocNo], oDab010 ),

   endif,

end,

function InitFirstPrint( aSender, aContinue:R )

   // (nur im Stapeldruck!, beim Druck des ersten Beleges)

   Meld('InitFirstPrint'),

   aContinue := True, // True = es gibt einen Beleg zu drucken

   // In diesem Fall ist die Initialisierung für alle Belege gleich ...

   InitNextPrint( aSender, aContinue ),

end,

// Events zum Setzen/Prüfen bzw. Aufheben von Datzsperren ######################

function SetLocks( aSender, aContinue:R )

   // Alle für die Verarbeitung des Beleges benötigten Satzsperren setzen

   // aContinue = FALSE, Sperren konnten nicht (vollständig) gesetzt werden,

   // Es wird in diesem Fall mit dem Druck des nächsten Beleges fortgefahren !!

   Meld('SetLocks'),

end,

function ResetLocks( aSender )

   // Alle für die Verarbeitung des Beleges gesetzten Satzsperren (in SetLocks)

   // wieder aufheben

   Meld('ResetLocks'),

end,

// Events zur Datenverarbeitung des Beleges ####################################

function ProcessDataBefore( aSender )

   // Verarbeitung der Belegdaten (VOR dem Druck)

   // Achtung ! Transaktion auf oConnect und somit oDab010 ist aktiv !

   Meld('ProcessDataBefore'),

end,

function ProcessDataAfter( aSender )

   // Verarbeitung der Belegdaten (NACH dem Druck)

   // Achtung ! Transaktion auf oConnect und somit oDab010 ist aktiv !

   Meld('ProcessDataAfter'),

end,

// Hauptprogramm ---------------------------------------------------------------

arrArt   := {"A","B","C"},

nDocNo   := 0,

oDM      := CreateObject("TBeIndiPrintData", "BeIndiPrintData" ),

// WICHTIG: Folgende Zeile erstellt eine Tabelle welche auf der Connection des Druckmoduls läuft

// und somit in den ProcessData-Events transaktionsgestützt eingesetzt werden kann !!

oDab010  := DbGetTable( oDM, 2 ),

startseq

   // Beleg initialisieren

   oDM.DocType         := 901,

   oDM.DocNo           := 5000, // ist hier eigentlich überflüssig, weil das Setzen in InitNextPrint() erfolgt

   oDM.PersNo          := 4711,

   oDM.PrintDate       := Date(), // wäre hier das Druckdatum für ALLE Belege im Stapel

   oDM.PrintDepart     := 1,

   oDM.PrintLang       := 2,

   oDM.Tables          := {oDab010},

   // Recordlock-Routinen (Events) setzen

   AssignEvent( oDM, "OnSetLocks",   "SetLocks" ),

   AssignEvent( oDM, "OnResetLocks", "ResetLocks" ),

   // Stapel-Druck-Routinen (Events) setzen

   AssignEvent( oDM, "OnInitFirstPrint", "InitFirstPrint" ),

   AssignEvent( oDM, "OnInitNextPrint",  "InitNextPrint" ),

   // Verarbeitungs-Routinen (Events) setzen

   AssignEvent( oDM, "OnProcDataBefore", "ProcessDataBefore" ),

   AssignEvent( oDM, "OnProcDataAfter",  "ProcessDataAfter" ),

   // Layout designen oder Beleg drucken

   //oDM.ExecLayout,   // Layout

   oDM.ExecPrintAll, // Stapel-Druck !

always

   DestroyObject(oDab010),

   DestroyObject(oConnect),

   DestroyObject(oDM),

stopseq,

Siehe auch

"Individual-Belege mit Archivierung"

"DocumentPrint()"

"DocumentDelete()"

"Event vor Eintrag Beleghistorie"

"DBGetTable(), DBGetLookup(), DBGetMemTable()"

Beispiel

| oDab010, oConnect, oDM, arrArt, nDocNo |

// In diesem Beispiel wird ein *Stapel*Druck ausgeführt, der für jedes Element

// in arrArt ein Scope auf die DAB010 setzt und daraufhin einen entsprechenden

// Beleg druckt

// Events ----------------------------------------------------------------------

// Events zur Initialisierung des (nächsten) Belegdruckes ######################

function InitNextPrint( aSender, aContinue:R )

   // (nur im Stapeldruck!)

   // Für jedes Element in arrArt einen eigenen Beleg drucken,

   // bis alle Belege gedruckt...

   // Wird aContinue auf FALSE gesetzt, wird der Stapeldruck beendet

   Meld('InitNextPrint'),

   nDocNo++,

   oDM.DocNo := 5000 + nDocNo, // Nr. des Beleges setzen (5001, 5002, ...)

   aContinue := nDocNo <= Len(arrArt), // True = weiteren Beleg drucken

   if aContinue then

      DbScope( arrArt[nDocNo], arrArt[nDocNo], oDab010 ),

   endif,

end,

function InitFirstPrint( aSender, aContinue:R )

   // (nur im Stapeldruck!, beim Druck des ersten Beleges)

   Meld('InitFirstPrint'),

   aContinue := True, // True = es gibt einen Beleg zu drucken

   // In diesem Fall ist die Initialisierung für alle Belege gleich ...

   InitNextPrint( aSender, aContinue ),

end,

// Events zum Setzen/Prüfen bzw. Aufheben von Datzsperren ######################

function SetLocks( aSender, aContinue:R )

   // Alle für die Verarbeitung des Beleges benötigten Satzsperren setzen

   // aContinue = FALSE, Sperren konnten nicht (vollständig) gesetzt werden,

   // Es wird in diesem Fall mit dem Druck des nächsten Beleges fortgefahren !!

   Meld('SetLocks'),

end,

function ResetLocks( aSender )

   // Alle für die Verarbeitung des Beleges gesetzten Satzsperren (in SetLocks)

   // wieder aufheben

   Meld('ResetLocks'),

end,

// Events zur Datenverarbeitung des Beleges ####################################

function ProcessDataBefore( aSender )

   // Verarbeitung der Belegdaten (VOR dem Druck)

   // Achtung ! Transaktion auf oConnect und somit oDab010 ist aktiv !

   Meld('ProcessDataBefore'),

end,

function ProcessDataAfter( aSender )

   // Verarbeitung der Belegdaten (NACH dem Druck)

   // Achtung ! Transaktion auf oConnect und somit oDab010 ist aktiv !

   Meld('ProcessDataAfter'),

end,

// Hauptprogramm ---------------------------------------------------------------

arrArt   := {"A","B","C"},

nDocNo   := 0,

oDM      := CreateObject("TBeIndiPrintData", "BeIndiPrintData" ),

// WICHTIG: Folgende Zeile erstellt eine Tabelle welche auf der Connection des Druckmoduls läuft

// und somit in den ProcessData-Events transaktionsgestützt eingesetzt werden kann !!

oDab010  := DbGetTable( oDM, 2 ),

startseq

   // Beleg initialisieren

   oDM.DocType         := 901,

   oDM.DocNo           := 5000, // ist hier eigentlich überflüssig, weil das Setzen in InitNextPrint() erfolgt

   oDM.PersNo          := 4711,

   oDM.PrintDate       := Date(), // wäre hier das Druckdatum für ALLE Belege im Stapel

   oDM.PrintDepart     := 1,

   oDM.PrintLang       := 2,

   oDM.Tables          := {oDab010},

   // Recordlock-Routinen (Events) setzen

   AssignEvent( oDM, "OnSetLocks",   "SetLocks" ),

   AssignEvent( oDM, "OnResetLocks", "ResetLocks" ),

   // Stapel-Druck-Routinen (Events) setzen

   AssignEvent( oDM, "OnInitFirstPrint", "InitFirstPrint" ),

   AssignEvent( oDM, "OnInitNextPrint",  "InitNextPrint" ),

   // Verarbeitungs-Routinen (Events) setzen

   AssignEvent( oDM, "OnProcDataBefore", "ProcessDataBefore" ),

   AssignEvent( oDM, "OnProcDataAfter",  "ProcessDataAfter" ),

   // Layout designen oder Beleg drucken

   //oDM.ExecLayout,   // Layout

   oDM.ExecPrintAll, // Stapel-Druck !

always

   DestroyObject(oDab010),

   DestroyObject(oConnect),

   DestroyObject(oDM),

stopseq,

Siehe auch

TBeRemovalData, TBeCumRemovalData

<ungültiger Verweis>

TBePrintData

TBeCumBillData

TBeConfData

TBeIndiPrintData

www.dontenwill.de | www.business-express.de


TBeMemoBo

TBeMemoBo

Die Klasse TBeMemoBo kapselt Eigenschaften und Funktionen eines Memos

Eigenschaften:

Allgemeine-Eigenschaften

MemoID:N ID des Memos (entspricht DAB065:MEMO_ID)

Dab065:O Dab065 Tabellenobjekt

PersNoType:N Memo Zuordnungs-Typ (entspricht DAB065:PERSNR_KZ)

PersNo:N Memo Hauptzuordnung (entspricht DAB065:PERSNR)

ContactID:N Memo Zuordnung Kontaktperson (entspricht DAB065:ID)

Subject:S Memo Betreff (entspricht DAB065:BETREFF)

MemoType:N Memo Typ (entspricht DAB065:TYP)

MailRecipient:S Memo E-Mail Empfänger (entspricht DAB065:AN)

MailSender:S Memo E-Mail Absender (entspricht DAB065:VON)

FaxRecipient:S Memo Fax Empfänger (entspricht DAB065:FAXAN)

WriteLastUsed:L (default) True=Nach Änderung Memo in "Zuletzt bearbeitet" Liste aufnehmen

WriteLastUsedUserId:C Be-UserNo, muss gesetzt werden wenn WriteLastUsed aktiv ist

RefreshFTSSearch:L (default) True=Nach Änderung DAB065:SUCHE aktualisieren

RefreshSearchMark:L (default) True=Nach Änderung DAB065:SUCH_KZ aktualisieren

RefreshConversationSort:L (default) True=Nach Änderung DAB065:BETRF_SORT aktualisieren

Methoden und Funktionen

CBInsertEmptyMemo() Neues Memo erstellen
aMemoType:N (entspricht DAB065:TYP)

aPersNoType:N (entspricht DAB065:PERSNR_KZ)

aPersNo:N (entspricht DAB065:PERSNR)

aContactID:N (entspricht DAB065:ID)

CBEdit() Edit-Modus

CBCancel() Edit-Modus verlassen

CBPost() Änderungen speichern

CBDelete() Memo löschen

Unterobjekte

Anhänge

Funktionen / Methoden

Beschreibung & Parameter

Attach.CBAttachmentInfoList():A

Informationen zu den vorhandenen Anhängen; Aufbau des Arrays: {{ Index:N, Offset:N, ZipSize:N, FileSize:N, FileName:C, FileType:N, ContentID:C }, { ... }, ... }
aSkipAttachments:L | "Echte"-Anhänge überspringen
aSkipLinks:L | Verknüpfungen überspringen
aSkipEmbedded:L | "Embedded" überspringen

Attach.CBAttachmentAdd():L

Fügt eine Datei als Anhang hinzu
aFileName:C | Quelldatei (inkl. Pfad)
aSaveAsLink:C | Nur als Verknüpfung anhängen
aSaveAsEmbedded:C | Als "embedded" kennzeichnen (nicht für Verknüpfungen)

Attach.CBAttachmentDelete():L

Löscht eine Datei aus dem Anhang

aFileName:C

Name des Anhangs der gelöscht werden soll

Attach.CBAttachmentSave()

Speichert einen Anhang als Datei
aFileName:C | Anhang der gespeichert werden soll
aDestinationFile:C | Ausgabedatei (inkl. Pfad)
aSaveAsFullHTML:L | "ORIGINAL.HTML" inkl. aller eingebundenen Dateien speichern

Attach.HasRealAttachments():L

Memo hat "echte" (keine embedded) Anhänge (entspricht DAB065:ANHANG)

Attach.HasAttachments():L

Abfrage auf vorhandene Anhänge
aSkipAttachments:L | "Echte"-Anhänge überspringen
aSkipLinks:L | Verknüpfungen überspringen
aSkipEmbedded:L | "Embedded" überspringen

Zuordnung

Funktionen / Methoden

Beschreibung & Parameter

LinkTo.CBInfoCaption():C

Zuordnungs-Beschriftung eines Memos

Anzeige Format: "Präfix: Name (ID)"

aAddTypePrefix:L

Präfix voranstellen (Kunde:; Benutzer: ...)

LinkTo.CBRelink()

Memo Zuordnung ändern
aLinkTo:N | Typ der Zuordnung bcLinkIdUndefined = Keine Zuordnung bcLinkIdCustomer = Zuordnung auf Kunde bcLinkIdSupplier = Zuordnung auf Lieferant bcLinkIdAgent = Zuordnung auf Vertreter bcLinkIdUser = Zuordnung auf Benutzer
aPersNo:N | ID der Hauptzuordnung
aContactID:N | ID der Kontaktperson

Eigeneschaften

Beschreibung

LinkTo.UserID:C

Be-UserNo, muss vor jeder Zuordnung gesetzt werden

LinkTo.WriteHistory:L

(default) True=History-Eintrag bei Änderung schreiben

Gelesen/Ungelesen

Funktionen / Methoden

Beschreibung & Parameter

MarkAsRead.CBMarkAsRead()

Memo gelesen markieren

MarkAsRead.CBMarkAsUnread()

Memo ungelesen markieren

Eigenschaften

Beschreibung

MarkAsRead.IsRead:L

True=Memo ist für die eingestellte UserID als gelesen markiert

MarkAsRead.UserID:C

Be-UserNo, muss vor Abfrage / Methodenaufruf eingestellt werden

MarkAsRead.WriteHistory:L

(default) True=History-Eintrag bei Änderung schreiben

Gelöscht markieren

Funktionen / Methoden

Beschreibung & Parameter

MarkAsDeleted.CBMarkAsDeleted()

Memo als gelöscht markieren bzw. wiederherstellen

(entgültiges Löschen eines Memos über "CBDelete()"

aUndelete:L

False=Memo als gelöscht markieren
True =Memo wiederherstellen

Eigenschaften

Beschreibung

MarkAsDeleted.IsDeleted:L

True=Memo ist als gelöscht markiert

MarkAsDeleted.UserID:C

Be-UserNo, muss vor Abfrage / Methodenaufruf eingestellt werden

nächste Aktion

Funktionen / Methoden

Beschreibung & Parameter

MarkAction.CBMarkActionAdd()

Zu nächste Aktion hinzufügen

MarkAction.CBMarkActionRemove()

Aus nächste Aktion austragen

Eigenschaften

Beschreibung

MarkAction.InActionList

Is der eingestellte User in der "nächste Aktion" Liste

MarkAction.UserID

Be-UserNo, muss vor Abfrage / Methodenaufruf eingestellt werden

Kategorie

Funktionen / Methoden

Beschreibung & Parameter

Objekt.Funktion():X

Beschreibung

aParam:X

XXX

Objekt.Funktion():X

Beschreibung

aParam:X

xxx

Eigenschaften

Beschreibung

Beispiel

//******************************************************************************

//******************************************************************************

// Anhänge

//******************************************************************************

//******************************************************************************

//------------------------------------------------------------------------------

// Informationen zu den Anhängen eines Memos ermitteln

//------------------------------------------------------------------------------

|oMemoBo, aAttachmentInfos|

oMemoBo := CreateObject('TBeMemoBo', 'MemoBo'),

startseq,

  oMemoBo.MemoID := 1491, // MemoBO positionieren

  // Informationen für alle Attachments holen (Echte, Verknüpfungen, Eingebettete)

  aAttachmentInfos := oMemoBo.Attach.CBAttachmentInfoList(False, False, False),

  // Array Aufbau: Index, Offset, ZipSize, FileSize, FileName, FileType, ContentID

  writeln(ArrToStr(aAttachmentInfos)),

always,

  DestroyObject(oMemoBo),

stopseq,

//------------------------------------------------------------------------------

// Datei an Memo anhängen

//------------------------------------------------------------------------------

|oMemoBo, aFileName, i|

oMemoBo := CreateObject('TBeMemoBo', 'MemoBo'),

startseq,

  oMemoBo.MemoID := 1491, // MemoBO positionieren

  oMemoBo.CBEdit(),       // Edit-Modus

  // (gesammte) Datei als normalen Anhang anfügen

  oMemoBo.Attach.CBAttachmentAdd('C:\Temp\Info.txt', False, False),

  oMemoBo.CBPost(),

always,

  DestroyObject(oMemoBo),

stopseq,

//------------------------------------------------------------------------------

// Anhang von Memo löschen

//------------------------------------------------------------------------------

|oMemoBo|

oMemoBo := CreateObject('TBeMemoBo', 'MemoBo'),

startseq,

  oMemoBo.MemoID := 1491, // MemoBO positionieren

  oMemoBo.CBEdit(),       // Edit-Modus

  // Datei löschen

  if oMemoBo.Attach.CBAttachmentDelete('Info.txt') then

     oMemoBo.CBPost(),

  else

     oMemoBo.CBCancel(),

  endif,

always,

  DestroyObject(oMemoBo),

stopseq,

//------------------------------------------------------------------------------

// Alle Anhänge eines Memos exportieren

//------------------------------------------------------------------------------

|oMemoBo, aAttachmentInfos, i, aFileName|

oMemoBo := CreateObject('TBeMemoBo', 'MemoBo'),

startseq,

  oMemoBo.MemoID := 1491, // MemoBO positionieren

  startseq,

    // Liste aller Attachments ermitteln

    aAttachmentInfos := oMemoBo.Attach.CBAttachmentInfoList(False, False, False),

    // Jedes Attachment speichern

    for i:=1 to ALen(aAttachmentInfos) do

      aFileName := aAttachmentInfos[i,5], // Dateiname aus Info-Array

      writeln('Datei ' + str(i) + ' von ' + Str(Alen(aAttachmentInfos)) + ', ' + aFileName),

      // Datei speichern, wenn ORIGINAL.HTML vorhanden sind dann werden diese als volle HTML Dateien

      // gespeichert (inkl. Bilder...)

      oMemoBo.Attach.CBAttachmentSave(aFileName, 'C:\temp\export\'+ExtractFileName(aFileName), True),

    end,

  onerror,

    writeln('Fehler: Datei konnte nicht gespeichert werden' + crlf + GetErrorText()),

  stopseq,

always,

  DestroyObject(oMemoBo),

stopseq,

//******************************************************************************

//******************************************************************************

// Zuordnung

//******************************************************************************

//******************************************************************************

//------------------------------------------------------------------------------

// Memo-Zuordnung ändern

//------------------------------------------------------------------------------

|oMemoBo|

oMemoBo := CreateObject('TBeMemoBo', 'MemoBo'),

startseq,

  oMemoBo.MemoID := 2060, // MemoBO positionieren

  oMemoBo.CBEdit(),       // Edit-Modus

  // Keinen Histroy-Eintrag schreiben

  oMemoBo.LinkTo.WriteHistory := False,

  oMemoBo.LinkTo.UserID       := c_usr,

  // Memo dem Kunden 12345 und dessen Kontaktperson 98765 zuordnen

  oMemoBo.LinkTo.CBRelink(bcLinkIdCustomer , 12345, 98765),

  oMemoBo.CBPost(),

always,

  DestroyObject(oMemoBo),

stopseq,


TBeOfferData

TBeOfferData

Klasse zum Druck eines Angebots für einen Kundenauftrag.

Eigenschaften:

TempUserFilter:C Benutzerdefinierter Positions-Filter

Hinweis:

Beim Druck eines Angebots wird das Feld Dab050:ANG auf True gesetzt. Dieses

Kennzeichen verhindert den weiteren Druck mit TBeOfferData und das Erscheinen

in der Druck-Jobliste des Printmanagers.

Setzen die das Kennzeichen vor dem Druck ggf. zurück.

Hierarchie:

TBePrintData -> TBeOfferData

Beispiel

function PrintAngebot( nAuftragsNummer )

 | oPrint |

  oPrint := CreateObject("TBeOfferData"),

  startseq

     oPrint.QuietMode    := false,

     oPrint.PrintDocNo   := nAuftragsNummer, // Nummer des zu druckenden Angebots

     // ggf. Dab050:ANG auf false setzen, damit ein bereits gedrucktes Angebot nochmals gedruckt werden kann.

     oPrint.ExecPrint,                       // Einzeldruck anstoßen

   always

      DestroyObject(oPrint),

   stopseq,

end,

PrintAngebot( 123456 )

Siehe auch

TBeRemovalData, TBeCumRemovalData

TBePrintData

TBeCumBillData

TBeConfData

TBeCommissData


TBePdfObj

TBePdfObj

Klasse zum Bearbeiten von Pdf-Dokumenten.

Eigenschaften:

keine öffentlichen Eigenschaften

Hierarchie:

TComponent -> TBePdfObj

Siehe auch

PdfCmd()


TBePlanningChart

TBePlanningChart

Hauptsteuerungs-Klasse für das Planungs-Chart

Eigenschaften:

Allgemeine-Eigenschaften

ChartParameter:O Verweis auf die zugehörigen Parameter (TBePlanningChartParameter)

DataContainer:O Verweis auf den zu verwendenden Daten-Kontainer (TBePlanningDataContainer)

ResContainer:O Verweis auf den zu verwendenden Resourcen-Kontainer (TBePlanningResContainer)

MenuManager:O Verweis auf den zugehören Menu-Manager (TBePlanningMenuManager)

StartTime:D schneller Zugriff auf ChartParameter.StartDate mit automatischer Aktualisierung des Planungs-Charts

EndTime:D schneller Zugriff auf ChartParameter.EndDate mit automatischer Aktualisierung des Planungs-Charts

SelectedDataItem:O Verweis auf den aktuell selektierten Termin-Eintrag (TBePlanningDataItem)

SelectedResItem:O Verweis auf die aktuell selektierte Ressource (TBePlanningResItem)

StretchModeOfActDay:N Art des Komprimierbereiches für den Tag über den sich die Maus gerade befindet
0 = kein Komprimierbereich definiert
1 = Komprimierbereich aktiv
2 = Komprimierbereich vorhanden aber nicht aktiv

Aktive-Eigenschaften (Methoden)

OnSelectedDataChange Event wenn ein anderer Termin-Eintrag selektiert wird

OnSelectedResChange Event wenn eine andere Ressource selektiert wird

OnGetDataItemHint Event bevor ein Hinweis für einen Termin-Eintrag angezeigt wird (ist dieser Event zugewiesen so wird das Codeblock-Event "vor Anzeige Termin-Hint" nicht ausgeführt)

AfterHorzScroll Event nachdem horizontal gescrollt wurde

AfterVertScroll Event nachdem vertikal gescroll wurde

CBRefresh:L Zeichnet das komplette Planungs-Chart neu

CBIntervalType:N Anzeige-Modus des Planungs-Charts
1 (itStunden) = Stunden-Ansicht
2 (itTage) = Tages-Ansicht
4 (itWochen) = Wochen-Ansicht
8 (itMonate) = Monats-Ansicht

CBShowNavigator:L Zeigt den Planungs-Chart Navigator an

CBLockSelectedResources:L Sperrt alle selektierten Ressourcen

CBUnlockSelectedResources:L Entsperrt alle selektierten Ressourcen

CBDeleteSelectedResources:L Entfernt alle selektierten Ressourcen aus der Ansicht

CBSearchAndSelect:A Selektiert eine Einträge-Hierarchie (z.B. alle Arbeitsgänge eines Auftrags) und positioniert die Ansicht ggf. passend, so dass die Selektion sichtbar ist.
Zuweisung als Array CBSearchAndSelect := {cHierarchyID, bShowSelection}

Hinweis:

- nicht direkt Erzeugen! Zugriff erfolgt über die Klasse TBePlanningChartComp

Beispiel

// Beispiel siehe TBePlanningChartComp

Siehe auch

TBePlanningChartComp

TBePlanningMenuManager

TBePlanningChartParameter

TBePlanningContainer

TBePlanningItem


TBePlanningChartComp

TBePlanningChartComp

Klasse zur Darstellung des Planungs-Charts auf einem Formular, Panel o.ä.

Eigenschaften:

Allgemeine-Eigenschaften

PlanningChart:O Verweis auf das zugehörige Planungs-Chart (TBePlanningChart)

OptionControl:O Zuweisbare-Komponente welche oben links im Planungs-Chart angezeigt wird

WinPosID:C WinPosition-ID unter welche die letzte Ansicht des Planungs-Chart gespeichert wird

WinPosParamID:C WinPosition-ID unter welche die Planungs-Chart Parameter gespeichert werden

WinPosResID:C WinPosition-ID unter welche die zuletzt angezeigten Resourcen gespeichert werden

WinPosDataID:C WinPosition-ID unter welche die zuletzt angezeigten Termin-Einträge gespeichert werden

Aktive-Eigenschaften (Methoden)

CBInitChart:L Initialisiert das Planungs-Chart (Aufruf nachdem alle Einstellungen getroffen wurden)

CBInitFormHook:L Initialisiert alle Maus-Optionen fürs Planungs-Chart wie "Scrollen/Zoomen per Mausrad"
Vorsicht: hierbei werden einige Events des Formulars auf dem sich das Planungs-Chart
befindet überschrieben (OnKeyDown, OnKeyUp, OnMouseWheel, OnDeactivate).
Überschriebende Events werden dennoch ausgeführt.

CBSaveConfig:L speichert die letzte Ansicht des Planungs-Chart Parameter (siehe WinPosID)

CBSaveParamConfig:L speichert die Planungs-Chart Parameter (siehe WinPosParamID)

CBSaveResConfig:L speichert die Planungs-Chart Resourcen (siehe WinPosResID)

CBSaveDataConfig:L speichert die Planungs-Chart Termin-Einträge (siehe WinPosDataID)

CBLoadConfig:L läd die letzte Ansicht des Planungs-Chart Parameter (siehe WinPosID)

CBLoadParamConfig:L läd die Planungs-Chart Parameter (siehe WinPosParamID)

CBLoadResConfig:L läd die Planungs-Chart Resourcen (siehe WinPosResID)

CBLoadDataConfig:L läd die Planungs-Chart Termin-Einträge (siehe WinPosDataID)

Verwendung:

- Erzeugung per Codeblock-Funktion CreateObject

- (optional) setzen der WinPos... Eigenschaften, falls nicht gesetzt werden keine Einstellungen gespeichert

- (optional) setzten des OptionControls

- Aufruf von CBInitChart

- (optional) Aufruf von CBInitFormHook

Beispiel

|oForm, oChartComp, oChart, oMenuMgr, oParam, oData, oRes, oOptionCtrl|

//******************************************************************************

function InitRes()

|oItem, oItem2|

  oItem               := oRes.CBNewItem,

  oItem.ResType       := rtKategoriePerson,

  oItem.ResID         := 100,

  oItem.Caption       := 'Dreher',

  oItem.SelectedColor := clLime,

  oItem2         := oItem.CBNewItem,

  oItem2.ResType := rtPerson,

  oItem2.ResID   := 101,

  oItem2.Caption := 'Dieter',

  oItem2         := oItem.CBNewItem,

  oItem2.ResType := rtPerson,

  oItem2.ResID   := 102,

  oItem2.Caption := 'Hans',

  oItem               := oRes.CBNewItem,

  oItem.ResType       := rtKategorieMaschine,

  oItem.ResID         := 200,

  oItem.Caption       := 'Drehmaschinen',

  oItem.SelectedColor := clLime,

  oItem2         := oItem.CBNewItem,

  oItem2.ResType := rtMaschine,

  oItem2.ResID   := 201,

  oItem2.Caption := 'DM 201',

  oItem               := oItem.CBNewItem,

  oItem.ResType       := rtKategorieMaschine,

  oItem.ResID         := 300,

  oItem.Caption       := 'Drehmaschinen XXL',

  oItem.SelectedColor := clLime,

  oItem2         := oItem.CBNewItem,

  oItem2.ResType := rtMaschine,

  oItem2.ResID   := 301,

  oItem2.Caption := 'DM XXL 301',

end,

//******************************************************************************

function AddData(aResType, aResID, aID, aStart, aDuration, aCaption, aIsSum)

  Result              := oData.CBNewItem,

  Result.ResType      := aResType,

  Result.ResID        := aResID,

  Result.HierarchyID  := StrZero(aID, 10),

  Result.StartTime    := aStart,

  Result.EndTime      := aStart + aDuration,

  Result.Caption      := aCaption,

  Result.Hint         := FormatDateTime('dd.mm.yy hh:nn', Result.StartTime) + ' - ' +

                         FormatDateTime('dd.mm.yy hh:nn', Result.EndTime) + CRLF +

                         aCaption,

  Result.Color        := clYellow,

  Result.OffsetTop    := 2,

  Result.OffsetBottom := 2,

  if aIsSum then

    Result.Color      := clLime,

    Result.Selectable := False,

    Result.ShowHint   := False,

  endif,

end,

//******************************************************************************

function InitData()

|oItem, aNow, i, aDow|

  oData.CBBeginUpdate,

  startseq

    oData.CBClear,

    AddData(rtPerson,   101, 1, Now(), 1, 'Arbeit1',),

    AddData(rtMaschine, 201, 1, Now(), 1, 'Arbeit1',),

    AddData(rtPerson,   101, 2, Now() + 3, 1, 'Arbeit2',),

    AddData(rtMaschine, 201, 2, Now() + 3, 1, 'Arbeit2',),

    AddData(rtPerson,   102, 3, Now() + 2, 1, 'Arbeit3',),

    AddData(rtMaschine, 301, 3, Now() + 2, 2, 'Arbeit3',),

    AddData(rtMaschine, 301, 3, Now() + 4.2, 1, 'Arbeit3',),

    AddData(rtMaschine, 301, 3, Now(), 1, 'Arbeit3',),

    AddData(rtPerson,   101, 4, Now() + 5, 1, 'Arbeit4',),

    AddData(rtPerson,   102, 4, Now() + 5, 1.5, 'Arbeit4',),

    AddData(rtMaschine, 201, 4, Now() + 5, 1.2, 'Arbeit4',),

    aNow := Trunc(Now()),

    for i := 0 to 6 do

      aDow := Dow(aNow + i),

      if (aDow > 1 and aDow < 7) then

        AddData(rtKategoriePerson, 100, 100, aNow + i, 1, '', True),

        AddData(rtKategorieMaschine, 200, 200, aNow + i, 1, '', True),

        AddData(rtKategorieMaschine, 300, 300, aNow + i, 1, '', True),

      endif,

    next,

  always

    oData.CBEndUpdate,

  stopseq,

end,

//******************************************************************************

function InitMenus()

  oMenuMgr.MainMenu_mnuRes.Visible  := False,

  oMenuMgr.MainMenu_mnuView.Visible := False,

  oMenuMgr.DefaultChartPopupMode    := 0,

end,

//******************************************************************************

function DoOnBtnClearClick()

  oData.CBClear,

  oChart.CBRefresh,

end,

//******************************************************************************

function DoOnBtnLoadClick()

  InitData(),

  oChart.CBRefresh,

end,

//******************************************************************************

function InitOptionControl()

|oButton|

  oOptionCtrl       := CreateObject('TPanel',, oForm),

  oOptionCtrl.Align := alClient,

  oButton                        := CreateObject('TBeBitBtn',, oOptionCtrl, oOptionCtrl),

  oButton.ImageIndex.IndexNormal := 6,

  oButton.Caption                := 'Daten löschen',

  oButton.Width                  := 150,

  oButton.Top                    := 10,

  oButton.Left                   := Round((oOptionCtrl.Width - oButton.Width) / 2, 0),

  AssignEvent(oButton, 'OnClick', 'DoOnBtnClearClick'),

  oButton                        := CreateObject('TBeBitBtn',, oOptionCtrl, oOptionCtrl),

  oButton.ImageIndex.IndexNormal := 12,

  oButton.Caption                := 'Daten laden',

  oButton.Width                  := 150,

  oButton.Top                    := 35,

  oButton.Left                   := Round((oOptionCtrl.Width - oButton.Width) / 2, 0),

  AssignEvent(oButton, 'OnClick', 'DoOnBtnLoadClick'),

end,

//******************************************************************************

oForm       := CreateObject('TFormEx'),

oChartComp  := CreateObject('TBePlanningChartComp',, oForm, oForm),

oData       := CreateObject('TBePlanningDataContainer'),

oRes        := CreateObject('TBePlanningResContainer'),

startseq

  oChart   := oChartComp.PlanningChart,

  oMenuMgr := oChart.MenuManager,

  oParam   := oChart.ChartParameter,

  oData.CBDataItemClass  := 2,

  oChart.DataContainer   := oData,

  oChart.ResContainer    := oRes,

  oParam.ShowNaviOnMouse := False,

  oForm.Width  := 800,

  oForm.Height := 600,

  InitRes(),

  InitData(),

  InitOptionControl(),

  oChartComp.Align         := alClient,

  oChartComp.WinPosParamID := 'CBPCHTP1',

  oChartComp.WinPosResID   := 'CBPCHTR1',

  oChartComp.WinPosDataID  := 'CBPCHTD1',

  oChartComp.OptionControl := oOptionCtrl,

  oChartComp.CBInitChart,                   // erst nach dem setzen der WinPos-IDs ausführen

                                            // damit Einstellungen automatisch geladen werden

  oChartComp.CBInitFormHook,

  InitMenus(),

  oChart.CBIntervalType := 2,

  oChart.StartTime      := Now(),

  oChart.EndTime        := oChart.StartTime + 6,

  ShowModal(oForm),

always

  DestroyObject(oForm),

  DestroyObject(oData),

  DestroyObject(oRes),

stopseq,

Siehe auch

TBePlanningChart

TBePlanningMenuManager

TBePlanningChartParameter

TBePlanningContainer

TBePlanningItem


TBePlanningChartParameter

TBePlanningChartParameter

Klasse welche alle Einstellungen des Planungs-Chart repräsentiert.

Eigenschaften:

Allgemeine-Eigenschaften

StartDate:D Start Datum/Zeit der aktuellen Ansicht

EndDate:D End Datum/Zeit der aktuellen Ansicht

IntervalType:N Ansicht-Modus
0 = Stunden-Ansicht
1 = Tages-Ansicht
2 = Wochen-Ansicht
3 = Monats-Ansicht

PrimColumnColor:N Hauptfarbe einer Spalte (Stunde, Tag, Woche, Monat)

AltColumnColor:N Sekundärfarbe einer Spalte (Stunde, Tag, Woche, Monat)

SaturdayColor:N Farbe für Samstage

SundayColor:N Farbe für Sonntage

HolidayColor:N Farbe für Feiertage

UseStretchAreaColor:L Komprimierbereich mit Farbe "StretchAreaColor" füllen

StretchAreaColor:N Farbe für Komprimierbereiche

SelectedResColor:N Farbe für aktuell selektierte Ressource

DynResColor:N Farbe für dynamisch ein geblendete Ressourcen

SelectedDataColor:N Farbe für aktuell selektierte Termin-Einträge

ResHeight:N Höhe eines Ressourcen-Eintrags

CategHeight:N Höhe einer Kategorie

ResLines:L Linien im Ressourcen-Baum zeichnen (nicht implementiert)

HorzLines:L Horizontale Trennlinen im Planungs-Chart

StretchAreaProc:N Größe des Komprimiertbereich in Prozent

TimeAdjustment:N Zeitanpassung
0 = keine Rundung
1 = auf nächste 5 Minuten ab/aufrunden
2 = auf nächste 10 Minuten ab/aufrunden
3 = auf nächste 15 Minuten ab/aufrunden
4 = auf nächste 30 Minuten ab/aufrunden

AdditivView:N Additive Ansicht aktivieren (nicht implementiert)

DynamicView:N Dynamische Ansicht aktivieren

ShowNaviOnMouse:L Planungs-Chart Navigator bei Maus-Bewegung an den rechten Rand des Charts anzeigen

ShowVertHoliday:L Vertikale Texte für Feiertage anzeigen

ChartIndiMenuID:N Indi. Menü ID fürs Planungs-Chart

ResIndiMenuID:N Indi. Menü ID für den Ressourcen-Baum

Aktive-Eigenschaften (Methoden)

CBShowConfig:L Zeigt den Dialog zur Bearbeitung der Einstellungen an
True = Einstellungen wurden übernommen
False = Bearbeitung wurde abgebrochen

CBLoadDefault:L Stellt die Default-Einstellung wieder her

CBSaveToFile:C Speichert die aktuellen Einstellungen in die zugewiesene Datei

CBLoadFromFile:C Läd die Einstellungen aus der zugewiesenen Datei

Hinweis:

- nicht direkt Erzeugen! Zugriff erfolgt über die Klasse TBePlanningChart

Beispiel

// Beispiel siehe TBePlanningChartComp

Siehe auch

TBePlanningChartComp

TBePlanningChart

TBePlanningMenuManager

TBePlanningContainer

TBePlanningItem


TBePlanningContainer

TBePlanningContainer

Klasse TBePlanningIndexedContainer ist die Grundklasse zur Verwaltung von Daten fürs Planungs-Chart und

wird nie direkt verwendet sondern immer eine Nachfolger-Klasse (siehe Hierarchie).

Eigenschaften:

Allgemeine-Eigenschaften

DataItems:O Objekt-Liste mit allen enthaltenen Einträgen im Container

IndexType:N Schlüssel anhand die Einträge gesucht/identifiziert werden
1 = Ressourcen-Typ und Ressourcen-ID (Default bei TBePlanningResContainer)
2 = HierarchyID (Default bei TBePlanningDataContainer)
3 = HierarchyID2

AutoRefresh:L Automatische Aktualisierung des Planungs-Charts bei Änderung eines Eintrags (Default = False)

SaveFormat:C Speicherformat für Datenexport, sfBinary oder sfText (Default = sfBinary)

Aktive-Eigenschaften (Methoden)

CBNewItem:O Erzeugt einen neuen Eintrag

CBClear:L Entfernt alle Einträge aus dem Container

CBBeginUpdate:L Schaltet die Aktualisierungs-Sperre ein

CBEndUpdate:L Hebt die Aktualisierungs-Sperre auf

CBIsUpdate:L Ermittelt ob die Aktualisierungs-Sperre aktiv ist

CBSaveToFile:C Speichert alle Einträge und Einstellungen des Containers in die zugewiesene Datei

CBLoadFromFile:C Läd alle Einträge und Einstellungen aus der zugewiesenen Datei

Verwendung:

- Erzeugung per Codeblock-Funktion CreateObject

- Erstellen der Einträge über CBNewItem/CBLoadFromFile

- Zuweisen an eine TBePlanningChart Klasse

Hierarchie:

TBePlanningIndexedContainer -> TBePlanningDataContainer

-> TBePlanningResContainer

TBePlanningDataContainer

Klasse zur Verwaltung von Termin-Einträgen.

Eigenschaften:

Allgemeine-Eigenschaften

HierarchyIDLen:N Länge der HierarchyID welche für Such-Operationen verwendet wird (Default = -1 = komplette Länge)

HierarchyID2Len:N Länge der HierarchyID2 welche für Such-Operationen verwendet wird (Default = -1 = komplette Länge)

CBDataItemClass:N TBePlanningItem-Klasse welche der Container verwendet (Default = 0)
(im Codeblock ist nur TBePlanningDataCBItem zulässig)
0 = TBePlanningDataProdCapaItem
2 = TBePlanningDataCBItem

TBePlanningResContainer

Klasse zur Verwaltung von Ressourcen-Einträgen.

Eigenschaften:

Allgemeine-Eigenschaften

Resources:O Objekt-Liste mit den Ressourcen-Einträgen der obersten Ebene

LoadOpt_CreateAlways:L Einträge beim Laden immer erzeugen, auch wenn diese schon vorhanden sind (Default = True)

CBLoadOpt_CreateTypes:N nur relevant wenn LoadOpt_CreateAlways = False
Ressourcen-Typen welche beim Laden automatisch erzeugt werden (Default = Alle)
Folgende Werte können mit OR verknüpft werden
0 = keine
2 = Mitarbeiter-Kategorien
4 = Maschinen-Kategorien
8 = Mitarbeiter
16 = Maschinen
32 = virtuelle Mitarbeiter
64 = virtuelle Maschinen

Aktive-Eigenschaften (Methoden)

CBLoadFromBDE:L Ressourcen aus der BDE laden (Personalstamm Dab262 und Ressourcenstamm Dab330)

Beispiel

// Beispiel siehe TBePlanningChartComp

Siehe auch

TBePlanningChartComp

TBePlanningChart

TBePlanningMenuManager

TBePlanningChartParameter

TBePlanningItem


TBePlanningItem

TBePlanningIndexedItem

Klasse TBePlanningIndexedItem ist die Grundklasse für Einträge in TBePlanningContainer-Klassen und

wird nie direkt verwendet sondern immer eine Nachfolger-Klasse (siehe Hierarchie).

Eigenschaften:

Allgemeine-Eigenschaften

Container:O zugehöriges Container-Objekt TBePlanningContainer

ID:N eindeutige ID

ResType:N Ressourcen-Typ
0 (nicht definiert) = nicht definiert
1 (rtKategoriePerson) = Kategorie für Personen
2 (rtKategorieMaschine) = Kategorie für Maschinen
3 (rtPerson) = Person
4 (rtMaschine) = Maschine
5 (rtVirtuellePerson) = virtuelle Person
6 (rtVirtuelleMaschine) = virtuelle Maschine

ResID:N Ressourcen-ID

Caption:C Bezeichnung

Font:O Font-Objekt zur Festlegung der Schriftart

Color:N normale Hintergrund-Farbe

SelectedColor:N Hintergrund-Farbe wenn der Eintrag selektiert ist

FocusedColor:N Hintergrund-Farbe für das Item welches wirklich selektiert ist bei einer mehrfach Selektion

Visible:L Sichtbarkeit des Eintrags (Default = True)

Aktive-Eigenschaften (Methoden)

CBFree:L Eintrag freigeben

Verwendung:

- nicht direkt Erzeugen! Erstellung erfolgt über eine TBePlanningContainer-Klasse

Hierarchie:

TBePlanningIndexedItem -> TBePlanningDataItem -> TBePlanningDataCBItem

-> TBePlanningDataProdCapaItem (veraltet)

-> TBePlanningPCItem

-> TBePlanningResItem -> TBePlanningResProdCapaItem (veraltet)

-> TBePlanningResPCItem

TBePlanningDataItem

Klasse TBePlanningDataItem ist die erweiterte Grundklasse für Einträge in TBePlanningDataContainer-Klassen und

wird nie direkt verwendet sondern immer eine Nachfolger-Klasse (siehe Hierarchie).

Eigenschaften:

Allgemeine-Eigenschaften

DataType:N

HierarchyID:C HierarchyID primärer Schlüssel-Wert des Termin-Eintrags

HierarchyID2:C HierarchyID2 sekundärer Schlüssel-Wert des Termin-Eintrags

StartTime:D Start-Zeitpunkt des Termin-Eintrags

EndTime:D End-Zeitpunkt des Termin-Eintrags

ShowHint:L Hinweis-Text anzeigbar (Default = True)

Hint:C Hinweis-Text

Selectable:L Termin-Eintrag selektierbar (Default = True)

OffsetTop:N Abstand in Pixel vom oberen Rand

OffsetBottom:N Abstand in Pixel vom unteren Rand

Level:N Anzeige-Level auf welchem der Eintrag in der Ressource angezeigt wird

BorderColor:N Farbe des Rahmens

SelectedBorderColor:N Farbe des Rahmens wenn der Eintrag selektiert ist

FocusedBorderColor:N Farbe des Rahmens für den wirklich selektierten Eintrag bei einer mehrfach Selektion

DrawPatternColor:N Farbe für das Zeichen-Muster

DrawMarkersCount:N Anzahl der Markers die am linken Rand gezeichnet werden

DrawMarkersAsStr:C String-Array mit den Farb-Angaben für die Markers z.b. '{clGreen, clNone, clYellow}'

clNone = Marker wird nicht gezeichnet

DragAlpha:N Alpha-Wert mit welchem der Eintrag gezeichnet wird wenn er verschoben wird

AlphaValue:N Alpha-Wert mit welchem der Eintrag dargestellt wird

DragLevel: Anzeige-Level auf welchem der Eintrag beim verschieben angezeigt wird

CBIntervalTypes:N Modus in welchen Ansichten der Termin-Eintrag angezeigt werden soll (Default = Alle)
Folgende Werte können mit OR verknüpft werden
1 (itStunden) = Stunden-Ansicht
2 (itTage) = Tages-Ansicht
4 (itWochen) = Wochen-Ansicht
8 (itMonate) = Monats-Ansicht

CBDrawPatterns:N Zeichen-Muster

Folgende Werte können mit OR verknüpft werden

1 (ddpHorzLines) = Horizontale-Linien

2 (ddpSlash) = '/' Linien

4 (ddpBackSlash) = '\' Linien

TBePlanningDataCBItem

Klasse zur Verwendung in individuellen Codeblock-Programmen.

Eigenschaften:

Allgemeine-Eigenschaften

Text:C Frei verwendbare Text-Eigenschaft

TBePlanningDataPCItem

Klasse welche in der Kapazitätanalyse-Oberfläche verwendet wird.

Eigenschaften:

Allgemeine-Eigenschaften

CBItemType:N Eintragstyp, mögliche Werte

- pcitArbg Arbeitsgang

- pcitUtilisation Auslastung

- pcitAbsence Abwesenheit

- pcitResourceLocked Ressourcen-Sperre

Diese Eigenschaften sind nur definiert, wenn der Eintragstyp = Arbeitsgang ist.

CBOrdType:N Auftragstyp, mögliche Werte

- otProdOrder Produktionsauftrag

- otDispoOrder Dispo-Vorschlag

CBOrdID:N Auftrags-ID, nur möglich wenn Eintragstyp = Arbeitsgang. Entspricht Dab035:ID.

CBOrdNo:N Auftrags-Nummer, nur möglich wenn Eintragstyp = Arbeitsgang. Ohne Split-Anteil.

CBOrdSplitNo:N Auftrags-Split-Nummer, nur möglich wenn Eintragstyp = Arbeitsgang.

CBArbgLfdNr:N LfdNr. des Arbeitsgangs, nur möglich wenn Eintragstyp = Arbeitsgang.

TBePlanningResItem

Klasse welche Einträge in TBePlanningResContainer-Klassen repräsentiert.

Eigenschaften:

Allgemeine-Eigenschaften

ChildList:O Objekt-Liste mit allen Unter-Ressourcen

Parent:O TBePlanningResItem-Objekt welchem die Ressource untergeordnet ist

Selected:L Ressource markiert

Locked:L Ressource gesperrt

Expanded:L Kategorie aufgeklappt (nur relevant bei ResType = rtKategorie...)

Height:N Höhe der Ressource

LevelCount:N Anzahl der Zeichen-Levels

DragLevelCount:N Anzahl der Zeichen-Levels während eines Drag-Vorgangs

ImageIndex:N Index des Bildes welches verwendet werden soll (Default = -1 = Standard Bilder)

CBNextSibling:O nächste Ressource auf gleicher Ebene ermitteln

CBPrevSibling:O vorherige Ressource auf gleicher Ebene ermitteln

CBLevelHeights:C String-Array mit den Höhen-Angaben der Zeichen-Levels z.b. '{10,10,18}'

Aktive-Eigenschaften (Methoden)

CBNewItem:O Erzeugt eine neue Unter-Ressource

TBePlanningResPCItem

Klasse welche in der Kapazitätanalyse-Oberfläche verwendet wird.

Beispiel

// Beispiel siehe TBePlanningChartComp

Siehe auch

TBePlanningChartComp

TBePlanningChart

TBePlanningMenuManager

TBePlanningChartParameter

TBePlanningContainer


TBePlanningMenuManager

TBePlanningMenuManager

Klasse zur Verwaltung der Popup-Menüs und Menü-Leiste des Planungs-Charts.

Eigenschaften:

Allgemeine-Eigenschaften

PopupMenuChart:O Zuweisbares Popup-Menü welches im Planungs-Chart angezeigt wird

PopupMenuResource:O Zuweisbares Popup-Menü welches im Ressourcen-Baum angezeigt wird

DefaultChartPopupMode:N Modus für die Verwendung des des Standard-Popup-Menüs des Planungs-Charts (Default = 1)
0 = kein Standard-Menü
1 = Standard-Menü oberhalb vom PopupMenuChart
2 = Standard-Menü unterhalb vom PopupMenuChart

DefaultResPopupMode:N Entspricht DefaultChartPopupMenu nur für das Popup-Menü im Ressourcen-Baum

UseDefaultMainMenu:L Standard Hauptmenü-Leiste anzeigen (Default = True)

MainMenu_mnuRes:O Menü-Eintrag "Ressourcen"

MainMenu_mnuAdd:O Menü-Eintrag "Hinzufügen" im "Ressourcen" Menü

MainMenu_mnuView:O Menü-Eintrag "Ansicht"

MainMenu_mnuConfig:O Menü-Eintrag "Einstellungen"

Aktive-Eigenschaften (Methoden)

OnUpdateDataActions Event bei Aktualisierung der Termin-Einträge abhängigen Actions
(z.b. neuer Termin-Eintrag selektiert)

OnUpdateResActions Event bei Aktualisierung der Ressourcen abhängigen Actions
(z.b. neue Ressource markiert)

OnUpdateChartActions Event bei Aktualisierung der Planungs-Chart abhängigen Actions
(z.b. Ansicht geändert)

Hinweis:

- nicht direkt Erzeugen! Zugriff erfolgt über die Klasse TBePlanningChart

- zur Erweiterung der Standard Hauptmenü-Leiste können die "MainMenu..." Eigenschaften zur leichten Eingliederung verwendet werden

Beispiel

// Beispiel siehe TBePlanningChartComp

Siehe auch

TBePlanningChartComp

TBePlanningChart

TBePlanningChartParameter

TBePlanningContainer

TBePlanningItem


TBePrintData

TBePrintData - abstrakte Basisklasse für den Belegdruck

Abstrakte Belegdruck-Klassen die als Vorfahr für verschiedene Belegdruck-Klassen dient.

Eigenschaften:

UsePrintDlg:L default = True = Druckdialog anzeigen

QuietMode:L default = False = Alle Meldungen und Dialog anzeigen

PrintPersNo:N default = 0, Pers.Nr. für den zu druckenden Beleg (falls dieser Pers.Nr. orientiert arbeitet)

PrintDocNo:U default = leer, Dokument-Nr. für den zu druckenden Beleg (falls dieser Dok.Nr. orientiert arbeitet)

ExecLayout Führt den Layoutdialog aus

ExecPrint Führt einen Einzeldruck aus

ExecPrintAll Führt einen Stapaldruck aus

Hinweise:

PrintPersNo wird i.d.R. auf einen Kunden- oder Lieferanten-Nr. gesetzt, falls der Belegtyp dies erfordert (z.B. Sammelbelege)

PrintDocNo wird i.d.R. auf eine Auftrags- oder Bestellnr. gesetzt, falls der Belegtyp dies erfordert (z.B. Einzelbelege)

Beispiel:

Diese Klasse ist nicht autark einsetzbar!


TBeRemovalData, TBeCumRemovalData

TBeRemovalData, TBeCumRemovalData

Klassen zum Druck von Einzel- bzw. Sammel-Entnahmescheinen.

Eigenschaften:

TLType:N default = 0 = Kopftermin prüfen, 1 = Positionstermin prüfen

MaxTimeLimit:C default = leer, Maximaler zu druckender Termin (KW-Termine erlaubt)

weitere Eigenschaften siehe Vorfahren-Klassen!

Hierarchie:

TBePrintData -> TBeOfferData -> TBe[Cum]DelivData -> TBe[Cum]RemovalData

Hinweise:

Das Objekt ist abgeleitet von TBePrintData und TBeOfferData und führt lediglich die o.g. Eigenschaften neu ein, um den Zeitraum der zu berücksichtigenden Aufträge einzuschränken.

Beispiel

function PrintEntnahme()

   |oPrint|

   oPrint := CreateObject("TBeRemovalData"),

   startseq

      oPrint.QuietMode    := true,

      oPrint.TLType       := 0,                // Kopftermine

      oPrint.MaxTimeLimit := "KW."+KW(DATE()), // alle bis Ende Woche (optional)

      oPrint.PrintDocNo      := 123456,           // nur Auftragsnr. (optional)

      oPrint.ExecPrint,                        // Nächsten, einzelnen drucken

   always

      DestroyObject(oPrint),

   stopseq,

end,

Siehe auch

TBeDelivData, TBeCumDelivData

<ungültiger Verweis>

TBePrintData

TBeCumBillData


TBeUserCombo

TBeUserCombo

Klasse zur Auswahl von BE-Benutzern in einer DropDown-Auswahlliste.

Eigenschaften:

Allgemeine-Eigenschaften

siehe Klasse TDBComboBoxEx

OrderBy steuert die Sortierung der Liste

0 = keine Sortierung

1 = User-Nummer

2 = User-Name

Aktive-Eigenschaften (Methoden)

OnRefresh Event beim Aktualisieren des Listen-Inhalts

ExecRefresh User-Liste befüllen

Siehe auch

TBeUserList

TBeDBUserList


TBeUserList

TBeUserList

Klasse zur Darstellung / Auswahl von BE-Benutzern in einer Mehrfach-Auswahlliste.

Eigenschaften:

Allgemeine-Eigenschaften

HightlightColor Farbe der Hervorhebung ( bei ShowUserLogged = true)

ShowUserLogged aktuell angemeldete Benutzer farbig hervorheben

SortBy steuert die Sortierung der Liste

0 = Benutzer-Nummer

1 = ausgewählt / nicht ausgewählt

2 = Benutzer-Name

CheckedAsStr Rückgabe der ausgewählten Benutzer als String im Format "065/066/067"

Aktive-Eigenschaften (Methoden)

ExecRefresh User-Liste befüllen

Beispiel

| oForm, oUserList, oDBUserList, oUserCombo, oMemTable, oMemField, oMemDS |

oForm := CreateObject('TFormEx'),

oForm.OrigCapt := 'TBeUserList / TBeDBUserList / TBeUserCombo',

oForm.Width  := 400,

oForm.Height := 260,

// Datenbank-unabhängige User-Controls =========================================

// User-Liste

oUserList := CreateObject('TBeUserList',,oForm,oForm),

oUserList.Top    := 10,

oUserList.Left   := 10,

oUserList.Width  := 160,

oUserList.Height := 150,

oUserList.HightlightColor := cllime,   // Farbe der Hervorhebung

oUserList.ShowUserLogged  := true,     // angemeldete User hervorheben

oUserList.ExecRefresh,                 // User-Liste füllen

// User-Combo

oUserCombo := CreateObject('TBeUserCombo',,oForm,oForm),

oUserCombo.Left   := 10,

oUserCombo.Top    := 180,

oUserCombo.Width  := 160,

oUserCombo.ExecRefresh,                // User-Combo füllen

// Datenbank-gebundene User-Controls ===========================================

oMemTable := CreateObject('TMemCalcTable'), // Datenbank für Dummy-Programm

  oMemField          := CollAdd( oMemTable.FieldsDefinition ),

  oMemField.Name     := 'USERS',

  oMemField.DataType := 1, // Character

  oMemField.Size     := 30,

oMemTable.Active   := true,

dbappend(oMemTable),

oMemTable:USERS := c_usr + '/',

dbpost(oMemTable),

writeln(AllTrim(oMemTable:USERS)),

oMemDS         := CreateObject('TDataSourceEx'),

oMemDS.DataSet := oMemTable,

// User-Liste

oDBUserList := CreateObject('TBeDBUserList',,oForm,oForm),

oDBUserList.Top    := 10,

oDBUserList.Left   := 210,

oDBUserList.Width  := 160,

oDBUserList.Height := 150,

oDBUserList.DataSource := oMemDS,

oDBUserList.DataField  := 'USERS',

oDBUserList.ExecRefresh,

dbrefresh(oMemTable),

// Eine TBeUserCombo mit Datenbank-Anbindung gibt es momentan nicht.

ShowModal(oForm),

// Rückgabe der Selektion

{oUserList.CheckedAsStr, oUserCombo.Value, AllTrim(oMemTable:USERS)}

Siehe auch

TBeDBUserList

TBeUserCombo


TBeXMLAttribute

TBeXMLAttribute

Klasse für den Zugriff auf die Eigenschaften eines XML-Attributes. Nur verfügbar in Verbindung mit der Lizenz "XML Kommunikation".

Eigenschaften:

Allgemeine-Eigenschaften

Depth:N Aktuelle Ebene im XML-Baum

Name:C Element-Name

NodeType:N Element-Typ (in der jetzigen Implementation immer = 2)

Value:C Element-Wert

Verwendung:

Zugriff auf ein XML-Attribut eines TBeXMLElement-Objektes (per Listen-Eigenschaft TBeXMLElement.Attributes).

Beispiel

// Hinweis: Dies ist kein Codeblock-Source, sondern ein XML-Beispiel um die

//          Bedeutung der TBeXMLAttribute-Eigenschaften zu verdeutlichen

// Für Codeblock-Beispiel siehe "TBeXMLReader"

<auftrag anummer="1923" termin="KW.08.04" datum="20080311">

              Depth = 1

              Name = "anummer"

              NodeType = 2

              Value = "1923"

              Depth = 1

              Name = "termin"

              NodeType = 2

              Value = "KW.08.04"

              Depth = 1

              Name = "Datum"

              NodeType = 2

              Value = "20080311"

   <aufpos posnr="1" artnr="00.609" menge="10.0000"/>

              Depth = 2

              Name = "posnr"

              NodeType = 2

              Value = "1"

              ... usw. ...

</auftrag>

Siehe auch

TBeXMLReader

TBeXMLElement

TBeXMLWriter


TBeXMLElement

TBeXMLElement

Klasse für den Zugriff auf die Eigenschaften eines XML-Elements. Nur verfügbar in Verbindung mit der Lizenz "XML Kommunikation"

Eigenschaften:

Allgemeine-Eigenschaften

Depth:N Aktuelle Ebene im XML-Baum

Name:C Element-Name

NodeType: Element-Typ (siehe unten)

HasValue:L True = Element hat einen Wert

Value:C Element-Wert

IsEmpty:L True = Element ist leer

Attributes:TCollection Element-Attribute (= Liste mit TBeXMLAttribute-Objekten)

siehe TBeXMLAttribute

Mögliche Werte von "NodeType"

xmlElemUnknown = 0

xmlElemElement_node = 1

xmlElemAttribute_node = 2

xmlElemText_node = 3

xmlElemCdata_section_node = 4

xmlElemEntity_ref_node = 5

xmlElemEntity_node = 6

xmlElemPi_node = 7

xmlElemComment_node = 8

xmlElemDocument_node = 9

xmlElemDocument_type_node = 10

xmlElemDocument_frag_node = 11

xmlElemNotation_node = 12

xmlElemHtml_document_node = 13

xmlElemDtd_node = 14

xmlElemElement_decl = 15

xmlElemAttribute_decl = 16

xmlElemEntity_decl = 17

xmlElemNamespace_decl = 18

xmlElemXinclude_start = 19

xmlElemXinclude_end = 20

Verwendung:

Zugriff auf ein XML-Element des TBeXMLReader.

Beispiel

// Hinweis: Dies ist kein Codeblock-Source, sondern ein XML-Beispiel um die

//          Bedeutung der TBeXMLElement-Eigenschaften zu verdeutlichen

// Für Codeblock-Beispiel siehe "TBeXMLReader"

<auftrag anummer="1923" termin="KW.08.04" datum="20080311">

              Depth = 0

              Name = "auftrag"

              NodeType = xmlElemElement_Node

              HasValue = False

              IsEmpty = False

              Attribute.Count = 3

   <aufpos posnr="1">

              Depth = 1

              Name = "aufpos"

              NodeType = xmlElemElement_Node

              HasValue = False

              IsEmpty = False

              Attribute.Count = 1

              Text einer Text-Position

              Depth = 1

              Name = "aufpos"

              NodeType = xmlElemText_Node

              HasValue = True

              Value = "Text einer Text-Position"

              IsEmpty = False

              Attribute.Count = 0

       </aufpos>

</auftrag>

Siehe auch

TBeXMLReader

TBeXMLAttribute

TBeXMLWriter


TBeXMLReader

TBeXMLReader

Klasse zum Import einer XML-Datei. Nur verfügbar in Verbindung mit der Lizenz "XML Kommunikation".

Eigenschaften:

Allgemeine-Eigenschaften

CurrElement: TBeXMLElement Aktuelle eingelesenes XML-Element

FileName:C Datei-Name der XML-Datei

Encoding:C Codierung der XML-Datei (default = "UTF-8")

Active:L True = XML-Datei zum Import öffnen bzw. ist geöffnet
False = XML-Datei schließen bzw. ist geschlossen

Aktive-Eigenschaften (Methoden)

ReadNextElement Nächstes XML-Element inkl. der Attribute aus Datei lesen
(ist anschließend über CurrElement abrufbar)

Ergebnis: True = Nächstes XML-Element wurde gelesen

False = keine weiteren XML-Elemente (EOF)

Verwendung:

- Der XML-Reader liest je ReadNextElement-Aufruf immer ein komplettes XML-Element inkl. aller Attribute und der Attribut-Werte aus, jedoch nicht die folgenden Unter-Elemente und nicht den Element-Wert!
(Der Element-Wert ist ein eigenes XML-Text-Element, siehe Beispiel)

- Hierarchien können über CurrElement.Depth des aktuellen Elements ermittelt werden (siehe Beispiel).

Beispiel

// HINWEIS: XML-Beispiele der Auswertung siehe Klasse "TBeXMLElement" / "TBeXMLAttribute"

// HINWEIS: Mit dem Beispiel-CodeBlock der Klasse "TBeXMLWriter" kann

//          zum Testen eine realistische XML-Datei generiert werden!

|oXMLReader, oXMLElem, oXMLAttrib, cXMLDatei, i, k, m, tTime, lDoOutput|

cXMLDatei  := 'C:\Delphi\VSS\Intern\3rd_Party\DIXml\Demos\output1.xml',

// XML-Reader instanziieren und XML-Datei öffnen

oXMLReader := CreateObject('TBeXMLReader','BeXMLReader'),

oXMLReader.Encoding := 'UTF-8',

oXMLReader.FileName := cXMLDatei,

oXMLReader.Active   := true,

tTime    := TimeEx(),

k        := 0,

m        := 0,

lDoOutput:= true,

while oXMLReader.ReadNextElement do

  // aktuelles Element merken

  oXMLElem := oXMLReader.CurrElement,

  k++,

  // Ist Element ein regulärer Node?

  if oXMLElem.NodeType = XMLELEMELEMENT_NODE

     or oXMLElem.NodeType = XMLELEMTEXT_NODE then

     m++,

     if lDoOutput then

       // Element-Eigenschaften ausgeben

       WriteLn( Replicate('  ', oXMLElem.Depth ) +

                'Ebene: ' +          Str(oXMLElem.Depth,3),

                'Leeres Element: ' + iif(oXMLElem.IsEmpty, ' Ja ', 'Nein'),

                'Hat einen Wert: ' + iif(oXMLElem.HasValue, ' Ja ', 'Nein'),

                'Anz.Attribute: ' +  Str(CollCount(oXMLElem.Attributes), 3),

                'Name: ' +           oXMLElem.Name,

                iif( oXMLElem.Value <> '', 'Wert: ' +           oXMLElem.Value, '' ) ),

     endif,

     // Element-Attribute ausgeben

     for i := 1 to CollCount(oXMLElem.Attributes) do

        // aktuelles Attribut merken

        oXMLAttrib := CollItem(oXMLElem.Attributes, i),

        if lDoOutput then

          // Attribut-Eigenschaften ausgeben

          WriteLn( Replicate(' ', oXMLElem.Depth ) +

                   '    - Element-Typ: ' +  Str(oXMLAttrib.NodeType,3),

                   'Name: ' +         oXMLAttrib.Name,

                   'Wert: ' +         oXMLAttrib.Value ),

        endif,

     next,

  endif,

end,

tTime := Round((TimeEx() - tTime) * 24 * 60 * 60, 6),

writeln( FloatToStr(k) + ' XML-Elemente (davon ' + FloatToStr(m) + ' relevante Nodes) in '

         + FloatToStr(tTime) + ' Sekunden als Datei gelesen.' ),

Siehe auch

TBeXMLElement

TBeXMLAttribute

TBeXMLWriter


TBeXMLWriter

TBeXMLWriter

Klasse zum Export bzw. Generieren einer XML-Datei. Nur verfügbar in Verbindung mit der Lizenz "XML Kommunikation".

Eigenschaften:

Allgemeine-Eigenschaften

FileName:C Datei-Name der XML-Datei

Encoding:C Codierung der XML-Datei (default = "UTF-8")

Standalone:C Angabe, ob es externe Deklarationen gibt. Mögliche Werte 'yes' / 'no'. Default = 'no'. Groß-Kleinschreibung beachten!

Indent:N Anzahl Leerzeichen zu hierarchischen Einrückung der XML-Ausgabe (default = 1)

Active:L True = XML-Datei zum Schreiben öffnen bzw. ist geöffnet
False = XML-Datei schließen bzw. ist geschlossen

Aktive-Eigenschaften (Methoden)

BeginElement:C Name des aktuell zu Schreibenden XML-Elementes setzen
und mit Schreiben des Elements beginnen

EndElement Schreiben des aktuellen Elements beenden

WriteAttrib:A Dem aktuellen Elements ein weiteres Attribut mit Wert zuweisen

Array-Format: { Attribut-Name.C, Attribut-Wert:C }

WriteValue Dem aktuellen Elements einen Wert zuweisen

WriteCData Dem aktuellen Element CDATA-Information zuweisen. CDATA-Bereiche werden beim Parsen von XML-Dokumenten ignoriert, können also z.B. wiederum XML-Tags beinhalten.

Verwendung:

Es ist die folgende Aufruf-Hierarchie der einzelnen Eigenschaften zu beachten:

- 1..1 BeginElement

- 0..n WriteAttrib

- 0..1 WriteValue

- 0..n BeginElement

- 0..n WriteAttrib

- 0..n WriteCData

- 0..1 WriteValue

- 0..n BeginElement

(...)

- 0..n EndElement

- 0..n EndElement

- 1..1 EndElement

Der einzelne umschließende Begin/EndElement-Aufruf ist nicht obligatorisch, sollte jedoch für eine saubere XML-Struktur gesetzt werden (sofern die Anforderung nichts anderes verlangt).

Beispiel

// HINWEIS: Mit diesem Beispiel-CodeBlock kann zum Testen eine realistische

// XML-Datei für das Beispiel der Klasse "TBeXMLReader" generiert werden!

|oXMLWriter, oXMLElem, oXMLAttrib, cXMLDatei, i, k, tTime,

 oDM, oDab000, oDab050, oDab055, nKdNrVon, nKdNrBis|

cXMLDatei  := 'C:\Delphi\VSS\Intern\3rd_Party\DIXml\Demos\Output1.xml',

oDM := CreateObject('TBeDBGet'),

oDab000 := DbGetTable(oDM, 1),

oDab050 := DbGetTable(oDM, 3),

oDab055 := DbGetTable(oDM, 4),

// XML-Writer instanziieren und XML-Datei öffnen

oXMLWriter := CreateObject('TBeXMLWriter'),

oXMLWriter.Encoding := 'UTF-8',

oXMLWriter.Indent   := 2,

oXMLWriter.FileName := cXMLDatei,

oXMLWriter.Active   := true,

startseq

  nKdNrVon := 00001,

  nKdNrBis := 80000,

  k        := 0,

  tTime    := TimeEx(),

  oXMLWriter.BeginElement := 'be',

  // Inhalte generieren

  DBScope( {nKdNrVon}, {nKdNrBis}, oDab000 ),

  DBGoTop(oDab000),

  while not Eof(oDab000) do

     oXMLWriter.BeginElement := 'kunde',

     oXMLWriter.WriteAttrib := { 'kdnr',       Alltrim(Str(oDab000:KDNR,8)) },

     oXMLWriter.WriteAttrib := { 'matchcode',  Alltrim(oDab000:MATCHCODE) },

     oDab050.IndexName := 'DAB052',

     DbScope( {nKdNrVon}, {nKdNrBis}, oDab050 ),

     while not Eof(oDab050) do

        oXMLWriter.BeginElement := 'auftrag',

        oXMLWriter.WriteAttrib := { 'anummer', Alltrim(Str(oDab050:ANUMMER,6)) },

        oXMLWriter.WriteAttrib := { 'termin',  oDab050:TERMIN },

        oXMLWriter.WriteAttrib := { 'datum',   DToS(Date()) },

        i := 0,

        DbScope( {oDab050:ANUMMER+'   '}, {oDab050:ANUMMER+'999'}, oDab055 ),

        while not Eof(oDab055) do

           oXMLWriter.BeginElement := 'aufpos',

           oXMLWriter.WriteAttrib := { 'posnr', Alltrim(Substr(oDab055:APNUMMER,7,3)) },

           if Alltrim(oDab055:ARTNR) <> '@@@@@' then

              oXMLWriter.WriteAttrib := { 'artnr', Alltrim(oDab055:ARTNR) },

              oXMLWriter.WriteAttrib := { 'menge', Alltrim(Str(oDab055:BMenge,14,DABPAR:NKSTELLEN)) },

           else

              oXMLWriter.WriteValue  := oDab055:MEMO,

           endif,

           oXMLWriter.EndElement,

           k++,

           i++,

           DBSkip(1, oDab055),

        end,

        // ---> Hier NICHT mehr erlaubt !!!

        // oXMLWriter.WriteAttrib := { 'posanzahl', Str(i,3) },

        oXMLWriter.EndElement,

        k++,

        DBSkip(1, oDab050)

     end,

     oXMLWriter.EndElement,

     k++,

     DbSkip(1, oDab000),

  end,

  oXMLWriter.EndElement,

always

   oXMLWriter.Active   := false,

stopseq,

tTime := Round((TimeEx() - tTime) * 24 * 60 * 60, 6),

writeln( FloatToStr(k) + ' Sätze in ' + FloatToStr(tTime) + ' Sekunden als XML-Elemente aus Datenbank exportiert.' ),

Siehe auch

TBeXMLReader

TBeXMLElement

TBeXMLAttribute


TCbColorDlg

TCbColorDlg

Klasse zur Anzeige eines Farb-Auswahl-Dialogs.

Eigenschaften:

Allgemeine-Eigenschaften

CustomColors:Array Array mit Elementen in der Form "ColorX=YYYYYY", wobei X den Wertebereich A bis P hat und YYYYYY ein Farbwert in Hexadezimal Schreibweise ist.

Options:Integer 1 = erweiterten Dialog anzeigen (selbstdefinierbare Farben)

Accept:L True wenn Dialog mit OK bestätigt wurde.

Aktive-Eigenschaften (Methoden)

Active:L True = Dialog wird angezeigt

Rückgabewert

Color:Integer Wert der gewählten Farbe

Beispiel

| aColorDlg |

aColorDlg:= CreateObject('TCbColorDlg'),

StartSeq

    aColorDlg.Options      := 1,

    aColorDlg.CustomColors := {"ColorA=00FF33","ColorB=FF00FF"},

    aColorDlg.Active       := True,

    if aColorDlg.Accept then

       WriteLn(aColorDlg.Color)

    else

       WriteLn('Keine Farbe gewählt !')

    endif

Always

   DestroyObject(aColorDlg)

StopSeq


TDataBase

TDataBase

Klasse zum Zugriff auf externe Datenquellen per ODBC

Voraussetzung:

Es muss eine gültige Installation der BDE ("Borland Database Engine") vorhanden sein

1. BDE Installieren, entweder von einer "Delphi-Setup CD": Benutzerdefiniertes Setup, alles bis auf "Gemeinsame Dateien -> BDE" abwählen

oder mit separat erhältlichem "BDE Setup" installieren

2. Datenbank in BDE hinzufügen

Start -> Systemsteuerung -> BDE

Tabkarte "Datenbanken" wählen und über "Objekt" -> "Neu" eine Neue Datenbank anlegen.

Beispiel

|oDB, oTable, cSQL, oQuery, cPath, aReport, aPrinters, aOldCursor, oDab065:DB:= '9,1' |

function BDEConnect(cDBName, cAlias)

  |oDB|

  startseq,

     oDB := CreateObject('TDataBase'),

     oDB.Params := {'PATH=C:\'},

     // bei Verwendung eines User / Passworts:

     // oDB.Params := {'PATH=C:\','USER NAME=USER1','PASSWORD=PASS1'},

     oDB.AliasName := cAlias,

     oDB.DataBaseName := cDBName,

     oDB.LoginPrompt := false,

     oDB.Connected := true,

     result := oDB,

  onerror,

     writeln(GetErrorText()),

  stopseq,

end,

function Get_BDETable(cDBName, cTableName)

  |oTable|

  startseq,

     oTable := CreateObject('TTable','Table'),

     oTable.Databasename := cDBName,

     oTable.TableName := cTableName,

     oTable.Active := true,

     result := oTable,

  onerror,

     writeln(GetErrorText()),

  stopseq,

end,

cPath  := 'C:\',

oDB    := BDEConnect('Mappe1.dbf', 'DBDEMOS'),

oTable := Get_BDETable(cPath, oDB.DataBaseName),

Browse('BDE',oTable),


TDbEditAnyNo

TDbEditAnyNo - Eingabefeld mit eigener Suchfunktion

Diese Eingabefeldklasse ist dafür vorgesehen, eigene Suchfunktionen zu implementieren. Das Erscheinungsbild des Controls entspricht dem eines Eingabefeldes für Kunden-, Lieferanten- oder Artikelnummern, also ein Edit-Feld mit Such-Button.

Verwendung:

Die Zuweisung der Klasse zu einem Datenfeld erfolgt über Datenbankverwaltung / Felder / Optionen / Controltyp / TDbEditAnyNo. Die Suchfunktion muss im Masken-Designer über die Eigenschaft BlockStr als Codeblock realisiert werden. Hier ist natürlich auch die Nutzung bestehender BE-Fenster-Klassen möglich.

Beispiel

// Suchfunktion im Feld Kostenstelle der Eingabemaske FiBu-Sachkonten, realisiert

// über die vorhandene BE-Fensterklasse 'TSachKtoWahl'.

| oObj, oSachKtoWahl, aOldCursor |

aOldCursor:= SetCursor(crHourGlass),

StartSeq

  oSachKtoWahl:= CreateObject('TSachKtoWahl',, Application, Application),

  If !Empty(oSachKtoWahl) then                          // Suchfenster erzeugen

     StartSeq

       oSachKtoWahl.KontoTyp:= 'A',                     // Vorgabe 'Kostenstelle'

       If Df010:KostenSt > 0 then

          oSachKtoWahl.Konto:= Df010:KostenSt           // DB-Tabelle positionieren

       EndIf,

       If ShowModal(oSachKtoWahl) = mrOk then           // Fenster anzeigen

          oObj:= GetOwner(Self),

          If ClassName(oObj) <> 'TBeMaskDesigner' then  // :-( geht nicht anders

             If (DbState(Df010) = dsBrowse) and

                not (BoF(Df010) and EoF(Df010)) then

                DbEdit(Df010),

             EndIf,

             Df010:KostenSt:= oSachKtoWahl.Konto,       // Auswahl holen

          EndIf

       EndIf

     Always

       DestroyObject(oSachKtoWahl)                      // Suchfenster schliessen

     StopSeq,

  EndIf

Always

  SetCursor(aOldCursor)

StopSeq


TDBIndiFilterEx

TDBIndiFilterEx

Klasse zur Filterung von Tabellen / Editierung von Individuellen Filtern über die Benuteroberfläche.

Eigenschaften:

Allgemeine-Eigenschaften

DataSource Verknüpfung zum DataSource des zu filternden DataSets

FilterList Liste von Filtern (TCollection)

Beispiel

oFilter := CreateObject('TDBIndiFilterEx', 'FILTER', oForm, toolbar_filter),

oFilter.DataSource := ds_projekte,

oFilterItem := CollAdd(oFilter.FilterList, ),

  oFilterItem.DisplayText := 'mit Wiedervorlage',

  oFilterItem.FilterBlock := "'not empty(WVDATUM)'",


TFont

TFont

TFont beschreibt die Schriftmerkmale für die Anzeige von Text. TFont definiert einen Zeichensatz über die Schrifthöhe,

die Schriftart, die Schriftattribute ( z.B. fett und kursiv ) usw.

Eigenschaften:

Allgemeine-Eigenschaften

Charset:N Durch die Festlegung von Charset bestimmen Sie den Zeichensatz, der für die Schrift verwendet wird.

Jede Schriftart (angegeben in der Eigenschaft Name) unterstützt mindestens einen Zeichensatz. Die zulässigen Werte für Charset entnehmen Sie der Dokumentation des Zeichensatzherstellers.

Color:N Verwenden Sie Color, um die Farbe für die Textzeichen festzulegen. Es stehen Farbkonstanten wie z.B. clRed, clGreen etc. zur Verfügung, um die Farbe dynamisch zuzuweisen.

Height:N Mit der Eigenschaft Height können Sie die Höhe einer Schrift in Pixel festlegen. Bei einem negativen Wert wird der interne Abstand über den einzelnen Textzeilen nicht berücksichtigt. Bei einem positiven Wert für Height errechnet sich die Höhe aus der Schrifthöhe plus dem internen Abstand.

Verwenden Sie die Eigenschaft Size, wenn die Schriftgröße in Punkt angegeben werden muss. In einer Anwendung wird die Schriftgröße vom Benutzer normalerweise in Punkt angegeben. Anwendungsprogrammierer hingegen befassen sich bei der Anzeige einer Schrift auf dem Bildschirm normalerweise mit der tatsächlichen Größe der Schrift in Pixel.

Mit folgender Formel kann der Wert der Eigenschaft Height aus der Punktgröße ermittelt werden:

Font.Height = -Font.Size * Font.PixelsPerInch / 72

Wenn die Eigenschaft Height einen positiven Wert enthält, wird die Eigenschaft Size in eine negative Zahl umgewandelt.

Wenn die Eigenschaft Size einen positiven Wert enthält, ergibt sich für die Eigenschaft Height eine negative Zahl.

Name:C Verwenden Sie diese Eigenschaft, um die Schriftart für eine Schrift festzulegen.

Hinweis:

Wenn die angegebene Schrift nicht auf dem System verfügbar ist, verwendet Windows eine andere Schrift.

Style:N Die Eigenschaft Style bestimmt, ob die Schrift normal, kursiv, unterstrichen, fett usw. angezeigt wird.

Mit der Eigenschaft Style können Sie ein Attribut für die Zeichen einer Schrift vergeben. Style kann keinen, einen oder mehrere der folgenden Werte enthalten:

Wert Bedeutung

fsBold Der Text wird fett angezeigt.

fsItalic Der Text wird kursiv angezeigt.

fsUnderline Der Text wird unterstrichen.

fsStrikeout Der Text wird durchgestrichen.

Verwendung:

- z.B. im Browser, im Report-Designer, in vielen Steuerelementen etc.

Beispiel

// Beispiel: Spalten-Eigenschaften eines Wiedervorlage-Memo-Browsers

// -> Einstellung von TFont im Codeblock der Vordergrundfarbe einer Textspalte

| oFont |

oFont:= Self.ColumnFont,

// Die Abfrage auf "not Empty()" ist nötig, weil Self.ColumnFont nur bei der

// tatsächlichen Ausgabe der Spalte zur Verfügung steht

If not Empty(oFont) then

   // Die Attribute in Style können durch Addition kombiniert werden

   // oFont.Style:= iif(Status = 'G', 0, fsItalic + fsUnderline),

   // bestehende Attribute in Style können auch mit _OR() ergänzt werden

   // oFont.Style:= iif(Status = 'U', oFont.Style, _Or(oFont.Style, fsBold + fsUnderline)),

   if Status = 'U' then

      oFont.Style := fsBold,

   else

      oFont.Style := 0,

   endif,

EndIf,

// Wenn der Codeblock die komplette Einstellung erledigt hat, zeigt clNone an,

// dass be keine weiteren Einstellungen vornehmen soll. Wird wie eine Farbe

// zurück gegeben, dann überschreibt diese die Farb-Einstellung, die im Codeblock

// vorgenommen wurde.

clNone


TFormArtConsumpt

TFormArtConsumpt

Klasse zum Anzeigen des Formulars für Verbräuche (Lagerverwaltung).

Eigenschaften:

Allgemeine-Eigenschaften

MasterDataSet:O DataSet Objekt (DAB010)

Beispiel

siehe TFormArtDates

Siehe auch

TFormArtDates

TFormArtStock

TFormStoreFile

TFormArtCustArr

TFormSuppBackOrd

TFormProdArr


TFormArtCustArr

TFormArtCustArr

Klasse zum Anzeigen des Kundenrückstände Formulars.

Eigenschaften:

Allgemeine-Eigenschaften

MasterDataSet:O DataSet Objekt (DAB010)

Beispiel

siehe TFormArtDates

Siehe auch

TFormArtDates

TFormArtStock

TFormArtConsumpt

TFormStoreFile

TFormSuppBackOrd

TFormProdArr


TFormArtDates

TFormArtDates

Klasse zum Anzeigen des Terminraster-Formulars.

Eigenschaften:

Allgemeine-Eigenschaften

MasterDataSet:O DataSet Objekt (DAB010)

Beispiel

|oForm, oPnlLeft, oPnlRight, oPnlBottom, oLblInfo, oDBGrid, oDataSource,

 oDAB010, oFormObject,

 oBtnDetach, oBtnArtDates, oBtnArtStock, oBtnArtConsumpt, oBtnStoreFile,

 oBtnArtCustArr, oBtnSuppBackOrd, oBtnProdArr |

//******************************************************************************

// Fenster von Klasse erzeugen und anzeigen

//******************************************************************************

function CreateForm( cClassName )

  if not Empty(oFormObject) then

     DestroyObject(oFormObject),

  endif,

  oFormObject := CreateObject(cClassName,'Fenster',oForm,oPnlLeft),

  oFormObject.Align := alclient,

  oFormObject.BorderStyle := bsnone,

  oFormObject.MasterDataSet := oDAB010,

  Show(oFormObject),

end,

//******************************************************************************

// Fenster lösen

//******************************************************************************

function BtnDetachWindowClick( Sender )

  if not Empty(oFormObject) then

     oFormObject.Align := alNone,

     oFormObject.BorderStyle := bsSizeToolWin,

  endif,

end,

//******************************************************************************

// Fenster erzeugen

//******************************************************************************

function BtnCreateClick( Sender )

  case Sender.Tag

    of 1 :: CreateForm('TFormArtStock'),         // Lagerplatz-Bestände

    of 2 :: CreateForm('TFormArtConsumpt'),      // Verbräuche

    of 3 :: CreateForm('TFormStoreFile'),        // Lagerkartei

    of 4 :: CreateForm('TFormArtCustArr'),       // Kundenrückstände

    of 5 :: CreateForm('TFormSuppBackOrd'),      // Zuliefererrückstände

    of 6 :: CreateForm('TFormProdArr'),          // Produktionsrückstände

    otherwise CreateForm('TFormArtDates'),       // Terminraster

  endcase,

  oLblInfo.Caption := Sender.Caption,

end,

//******************************************************************************

// Bei Formularstart

//******************************************************************************

function MainFormShow( Sender )

  BtnCreateClick( oBtnArtDates ),

end,

//******************************************************************************

//******************************************************************************

// Formular

//******************************************************************************

//******************************************************************************

StartSeq,

  oForm           := CreateObject('TFormEx','MainForm'),

  oPnlLeft        := CreateObject('TPanel','PnlLeft',oForm, oForm),

  oPnlRight       := CreateObject('TPanel','PnlRight',oForm, oForm),

  oPnlBottom      := CreateObject('TPanel','PnlBottom',oForm, oForm),

  oBtnDetach      := CreateObject('TBeBitBtn','BtnDetach',oForm,oPnlRight),

  oLblInfo        := CreateObject('TLabel','LblInfo',oForm,oPnlRight),

  oDAB010         := CreateObject('TBeRightsTable','Table',oForm,oForm),

  oDBGrid         := CreateObject('TBeAltGrid','DBGrid',oForm,oPnlBottom),

  oDataSource     := CreateObject('TDataSourceEx','DataSource',oForm,oForm),

  oBtnArtDates    := CreateObject('TBeBitBtn','oBtnArtDates',oForm,oPnlRight),

  oBtnArtStock    := CreateObject('TBeBitBtn','oBtnArtStock',oForm,oPnlRight),

  oBtnArtConsumpt := CreateObject('TBeBitBtn','BtnArtConsumpt',oForm,oPnlRight),

  oBtnStoreFile   := CreateObject('TBeBitBtn','BtnStoreFile',oForm,oPnlRight),

  oBtnArtCustArr  := CreateObject('TBeBitBtn','BtnArtCustArr',oForm,oPnlRight),

  oBtnSuppBackOrd := CreateObject('TBeBitBtn','BtnSuppBackOrd',oForm,oPnlRight),

  oBtnProdArr     := CreateObject('TBeBitBtn','BtnProdArr',oForm,oPnlRight),

  // Form

  oForm.Width    := 800,

  oForm.Height   := 800,

  oForm.Position := poMainFormCenter,

  assignevent(oForm, 'OnShow', 'MainFormShow'),

  // Panel

  oPnlLeft.Align        := alClient,

  oPnlLeft.BevelOuter   := bvNone,

  oPnlLeft.Caption      := '',

  // Panel

  oPnlRight.Width       := 200,

  oPnlRight.Align       := alRight,

  oPnlRight.BevelOuter  := bvNone,

  oPnlRight.Caption     := '',

  // Panel

  oPnlBottom.Height     := 150,

  oPnlBottom.Align      := alBottom,

  oPnlBottom.BevelOuter := bvNone,

  oPnlBottom.Caption    := '',

  // DAB010

  oDAB010.Workarea := 2,

  oDAB010.Active   := true,

  // Datasource

  oDataSource.DataSet := oDAB010,

  // Grid

  oDBGrid.Align      := alClient,

  oDBGrid.DataSource := oDataSource,

  // Info Label

  oLblInfo.Top        := 10,

  oLblInfo.Left       := 5,

  oLblInfo.Height     := 15,

  oLblInfo.Caption    := '',

  oLblInfo.Font.Size  := 10,

  oLblInfo.Font.Style := 1,

  // Button

  oBtnArtDates.Top     := 35,

  oBtnArtDates.Left    := 5,

  oBtnArtDates.Width   := 190,

  oBtnArtDates.Tag     := 0,

  oBtnArtDates.Caption := 'Terminraster',

  oBtnArtDates.ImageIndex.IndexNormal := 449,

  assignevent(oBtnArtDates, 'OnClick', 'BtnCreateClick'),

  // Button

  oBtnArtStock.Top     := 65,

  oBtnArtStock.Left    := 5,

  oBtnArtStock.Width   := 190,

  oBtnArtStock.Tag     := 1,

  oBtnArtStock.Caption := 'Lagerplatz-Bestände',

  oBtnArtStock.ImageIndex.IndexNormal := 15,

  assignevent(oBtnArtStock, 'OnClick', 'BtnCreateClick'),

  // Button

  oBtnArtConsumpt.Top     := 95,

  oBtnArtConsumpt.Left    := 5,

  oBtnArtConsumpt.Width   := 190,

  oBtnArtConsumpt.Tag     := 2,

  oBtnArtConsumpt.Caption := 'Verbräuche',

  oBtnArtConsumpt.ImageIndex.IndexNormal := 186,

  assignevent(oBtnArtConsumpt, 'OnClick', 'BtnCreateClick'),

  // Button

  oBtnStoreFile.Top     := 125,

  oBtnStoreFile.Left    := 5,

  oBtnStoreFile.Width   := 190,

  oBtnStoreFile.Tag     := 3,

  oBtnStoreFile.Caption := 'Lagerkartei',

  oBtnStoreFile.ImageIndex.IndexNormal := 19,

  assignevent(oBtnStoreFile, 'OnClick', 'BtnCreateClick'),

  // Button

  oBtnArtCustArr.Top     := 155,

  oBtnArtCustArr.Left    := 5,

  oBtnArtCustArr.Width   := 190,

  oBtnArtCustArr.Tag     := 4,

  oBtnArtCustArr.Caption := 'Kundenrückstände',

  oBtnArtCustArr.ImageIndex.IndexNormal := 441,

  assignevent(oBtnArtCustArr, 'OnClick', 'BtnCreateClick'),

  // Button

  oBtnSuppBackOrd.Top     := 185,

  oBtnSuppBackOrd.Left    := 5,

  oBtnSuppBackOrd.Width   := 190,

  oBtnSuppBackOrd.Tag     := 5,

  oBtnSuppBackOrd.Caption := 'Zuliefererrückstände',

  oBtnSuppBackOrd.ImageIndex.IndexNormal := 503,

  assignevent(oBtnSuppBackOrd, 'OnClick', 'BtnCreateClick'),

  // Button

  oBtnProdArr.Top     := 215,

  oBtnProdArr.Left    := 5,

  oBtnProdArr.Width   := 190,

  oBtnProdArr.Tag     := 6,

  oBtnProdArr.Caption := 'Produktionsrückstände',

  oBtnProdArr.ImageIndex.IndexNormal := 224,

  assignevent(oBtnProdArr, 'OnClick', 'BtnCreateClick'),

  // Button

  oBtnDetach.Top     := 265,

  oBtnDetach.Left    := 5,

  oBtnDetach.Width   := 190,

  oBtnDetach.Caption := 'Fenster nicht andocken',

  oBtnDetach.ImageIndex.IndexNormal := 18,

  assignevent(oBtnDetach, 'OnClick', 'BtnDetachWindowClick'),

  // Formular anzeigen

  ShowModal(oForm),

OnError

   meld(GetErrorText()),

   DestroyObject( oForm ),

StopSeq,

Siehe auch

TFormArtStock

TFormArtConsumpt

TFormStoreFile

TFormArtCustArr

TFormSuppBackOrd

TFormProdArr


TFormArtStock

TFormArtStock

Klasse zum Anzeigen des Lagerbestand-Formulars.

Eigenschaften:

Allgemeine-Eigenschaften

MasterDataSet:O DataSet Objekt (DAB010)

Beispiel

siehe TFormArtDates

Siehe auch

TFormArtDates

TFormArtConsumpt

TFormStoreFile

TFormArtCustArr

TFormSuppBackOrd

TFormProdArr


TFormAttribPrev

TFormAttribPrev

Formular zum Anzeigen / Bearbeiten einer Merkmalstabelle.

Eigenschaften:

Allgemeine-Eigenschaften

TabId:Integer ID der Merkmalstabelle

Beispiel

| aMDTForm |

aMDTForm := CreateObject('TFormAttribPrev'),

StartSeq

    aMDTForm.TabId := -1, // Merkmalstabellen ID

    ShowModal(aMDTForm),

Always

   DestroyObject(aMDTForm )

StopSeq


TFormProdArr

TFormProdArr

Klasse zum Anzeigen des Formulars für Produktionsrückstände.

Eigenschaften:

Allgemeine-Eigenschaften

MasterDataSet:O DataSet Objekt (DAB010)

Beispiel

siehe TFormArtDates

Siehe auch

TFormArtDates

TFormArtStock

TFormArtConsumpt

TFormStoreFile

TFormArtCustArr

TFormSuppBackOrd


TFormStoreFile

TFormStoreFile

Klasse zum Anzeigen der Lagerkartei.

Eigenschaften:

Allgemeine-Eigenschaften

MasterDataSet:O DataSet Objekt (DAB010)

Beispiel

siehe TFormArtDates

Siehe auch

TFormArtDates

TFormArtStock

TFormArtConsumpt

TFormArtCustArr

TFormSuppBackOrd

TFormProdArr


TFormSuppBackOrd

TFormSuppBackOrd

Klasse zum Anzeigen des Formulars für Bestell- / Zuliefererrückstände.

Eigenschaften:

Allgemeine-Eigenschaften

MasterDataSet:O DataSet Objekt (DAB010)

Beispiel

siehe TFormArtDates

Siehe auch

TFormArtDates

TFormArtStock

TFormArtConsumpt

TFormStoreFile

TFormArtCustArr

TFormProdArr


TFormVarCalc

TFormVarCalc

Eingabedialog für Varianten.

Eigenschaften:

Allgemeine-Eigenschaften

ShowButtons:L Schließen/Ok/Abbrechen Button anzeigen

ShowCalculation:L Kalkulation anzeigen

LabelWidth:N Breite der linken Spalte in welcher die Bezeichnungen angezeigt werden

ReadOnly:L Nur Lese-Modus aktiv (wird ignoriert falls CalcField gesetzt ist)

Modified:L (nicht aktiv)

PL_Memo:C Varianten-Array (z.b. SL_MEMO Feld-Inhalt)

ArtNo:C Artikel-Nummer

OrderPosNo:C Auftrags-Positions-Nummer

SalesLoc:N Verkaufs-Standort

CalcField:O Varianten-Array Feld (z.b. SL_MEMO Feld)

CalcDab010:O Tabelle Dab010 Kundenstamm

CalcDab050:O Tabelle Dab050 Auftrags-Kopf

CalcDab055:O Tabelle Dab055 Auftrags-Positionen

Aktive-Eigenschaften (Methoden)

OnCalcReady Event nach erfolgreicher Kalkulation

Verwendung:

- Im Codeblock als Eigenschaft der Klasse TVarCalcPanel

Beispiel

siehe TVarCalcPanel

Siehe auch

SL_Calc()

TVarCalcPanel


TPeriodTimer

TPeriodTimer

Klasse zur Performance-Messung und Auswertung.

Eigenschaften:

PerformanceTestActive

FileName

ExecStartTimer

ExecStopTimer

ExecResetAllTimer

ExecWriteAllTimer

Verwendung:

Die Klasse kann auf zwei Arten eingesetzt werden:

-> Verwendung der global registrierten Instanz mittels der CB-Konstante PerformanceTimer

-> Eigene Instanzierung

Beispiel

performancetimer.FileName := 'C:\Debug\Performance_test.txt',

performancetimer.PerformanceTestActive := True,

performancetimer.ExecResetAllTimer,

performancetimer.ExecStartTimer := 'Import',

sleep(100),

performancetimer.ExecStartTimer := 'Import_Schritt1',

sleep(100),

performancetimer.ExecStopTimer  := 'Import_Schritt1',

performancetimer.ExecStartTimer := 'Import_Schritt2',

sleep(100),

performancetimer.ExecStopTimer  := 'Import_Schritt2',

performancetimer.ExecStartTimer := 'Import_Schritt3',

sleep(200),

performancetimer.ExecStopTimer  := 'Import_Schritt3',

performancetimer.ExecStartTimer := 'Import_Schritt1',

sleep(100),

performancetimer.ExecStopTimer  := 'Import_Schritt1',

performancetimer.ExecStopTimer  := 'Import',

performancetimer.ExecWriteAllTimer,


TTreeNodeEx

TTreeNodeEx

Klasse zur Datenhaltung einer Baumstruktur für TTreeViewEx.

Eigenschaften:

Allgemeine-Eigenschaften

Text Anzeigetext des Baumknotens

Parent Übergeordneter Knoten (Objekt: TTreeNodeEx)

HasChildren true = wenn Baumknoten Unterknoten besitzt

Value Optionaler Wert des Baumknotens

Aktive-Eigenschaften (Methoden)

Focused Veraltet (hat keine Funktion)

ImageIndex Index des Bildes das für den Baumknoten angezeigt wird

SelectedIndex Index des Bildes welches für den Baumknoten im selektierten Zustand angezeigt wird

StateIndex Index des Bildes für den Baumknoten welches zusätzlich angezeigt wird

FirstChild Gibt den ersten Unterknoten des aktuellen Knoten zurück, falls vorhanden (Objekt: TTreeNodeEx)

LastChild Gibt den letzten Unterknoten des aktuellen Knoten zurück, falls vorhanden (Objekt: TTreeNodeEx)

NextSibling Gibt den nächsten Knoten des aktuellen Knoten auf gleicher Hierachieebene zurück (Objekt: TTreeNodeEx)

PrevSibling Gibt den vorherigen Knoten des aktuellen Knoten auf gleicher Hierachieebene zurück (Objekt: TTreeNodeEx)

NextVisible Gibt den nächsten sichtbaren Knoten des aktuellen Knoten auf gleicher Hierachieebene zurück (Objekt: TTreeNodeEx)

PrevVisible Gibt den vorherigen sichtbaren Knoten des aktuellen Knoten auf gleicher Hierachieebene zurück (Objekt: TTreeNodeEx)

AddChild Fügt an den Knoten einen Unterknoten an und liefert diesen zurück (Objekt: TTreeNodeEx)

FreeTree Löscht den aktuellen Knoten inklusive aller Unterknoten

DeleteNode Löscht den aktuellen Knoten inklusive aller Unterknoten

DeleteChildNodes Löscht alle Unterknoten des aktuellen Knoten

CollapseNode Klappt die Baumstruktur unterhalb des aktuellen Knoten zusammen

ExpandNode Entfaltet die Baumstruktur unterhalb des aktuellen Knoten

Beispiel

siehe TTreeViewEx

Siehe auch

TTreeViewEx


TTreeViewEx

TTreeViewEx

Klasse zur Darstellung einer Baumstruktur (ähnlich wie File-Explorer).

Eigenschaften:

Allgemeine-Eigenschaften

Images ImageListe des TreeViews

StateImages StateImageListe des TreeViews zur zusätzlichen Statusanzeige

Items Liste aller Knoten (zum hinzufügen muss CollAdd() verwendet werden)

Aktive-Eigenschaften (Methoden)

OnEditAborted Event bei Abbruch des Editierens

DisableDblClick Deaktivierung des DoubleClickEvents

FocusedNode Veraltet (hat keine Funktion)

FirstNode Gibt den obersten Knoten der Baumstruktur zurück (Objekt: TTreeNodeEx)

Selected Gibt den aktuell selektierten Baumknoten zurück (Objekt: TTreeNodeEx)

FullCollapseTree Klappt die gesamte Baumstruktur zusammen

FullExpandTree Entfaltet die gesamte Baumstruktur

BeginUpdate Verhindert bis zu einem Aufruf der Methode EndUpdate das Aktualisieren des Baumdiagramms

EndUpdate Hebt die Sperre die durch BeginUpdate gesetzt wurde wieder auf

AutoExpand true = Unterknoten öffnen sich automatisch bei Auswahl des Baumknoten

HideSelection true = Selektion wird nicht angezeigt wenn TreeView keinen Eingabefokus hat

HotTrack true = Baumknoten werden automatisch hervorgehoben wenn sich der Mauszeiger darüber befindet

MultiSelect true = mehrere Baumknoten können gleichzeitig ausgewählt werden

RowSelect true = Die ganze Zeile des selektierten Baumknotens wir hervorgehoben (ShowLines muss false sein)

ShowButtons true = Symbole (+ & -) zum auf- und zusammenfalten der Baumknoten anzeigen

ShowLines true = Verbindungslinien zwischen den Unterknoten anzeigen

ShowRoot true = Verbindungslinien zwischen den obersten Knoten der Baumstruktur und den Unterknoten anzeigen

EnableScrolling true = Mausrad scrollt Baumknoten; false = Mausrad verschiebt Bildlaufleiste

SortType 0 = Keine automatische Sortierung; 3 = Baumknoten werden automatisch nach deren Text sortiert

Indent Einrückung der Baumknoten (in Pixel)

Beispiel

|oForm, oTreeView, oPnlRight,

 oBtnAddNode, oBtnAddSub, oBtnDelNode, oLblNodeValue |

//******************************************************************************

// Neuen Knoten zum Baum hinzufügen

//******************************************************************************

function AddNode()

|oNode|

  // Knoten hinzufügen

  oNode       := CollAdd(oTreeView.Items),

  // Anzeigetext einstellen

  oNode.Text  := "Knoten " + str(CollCount(oTreeView.Items)),

  // Zusätzlichen Wert füllen

  oNode.Value := "XYZ Wert / " + str(GetExTimer()),

  oNode.ImageIndex    := CollCount(oTreeView.Items),

  oNode.SelectedIndex := 1,

  result := oNode,

end,

//******************************************************************************

// Neuen Unterknoten anfügen

//******************************************************************************

function AddSubNode(oParentNode)

|oSubNode|

  // an Knoten einen Unterknoten anfügen

  oSubNode       := oParentNode.AddChild,

  oSubNode.ImageIndex := CollCount(oTreeView.Items),

  oSubNode.SelectedIndex := 1,

  // Anzeigetext einstellen

  oSubNode.Text  := "Unterknoten " + str(CollCount(oTreeView.Items)),

  // Zusätzlichen Wert füllen

  oSubNode.Value := "ABC Wert / " + str(GetExTimer()),

  result := oSubNode,

end,

//******************************************************************************

// Neuen Knoten zum Baum hinzufügen

//******************************************************************************

function BtnAddNodeClick( Sender )

  AddNode(),

end,

//******************************************************************************

// Neuen Unterknoten an ausgewählten Knoten anfügen

//******************************************************************************

function BtnAddSubClick( Sender )

|oSelected|

  oSelected := oTreeView.Selected, // akt. gewählter Knoten

  if oSelected <> nil then

     // Unterknoten anfügen

     AddSubNode(oSelected),

     // Baumstruktur aufklappen

     oSelected.ExpandNode,

  else

     meld('Bitte erst einen Knoten auswählen'),

  endif,

end,

//******************************************************************************

// Ausgewählten Knoten löschen

//******************************************************************************

function BtnDelNodeClick( Sender )

|oSelected|

  oSelected := oTreeView.Selected, // akt. gewählter Knoten

  if oSelected <> nil then

     // Sind Unterknoten vorhanden?

     if oSelected.HasChildren then

        // Hinweis anzeigen

        if MessageDlg("Vorhandene Unterknoten werden gelöscht!",2,12) = 2 then

           exit,

        endif,

     endif,

     // Knoten inkl. aller Unterknoten löschen

     oSelected.DeleteNode,

  endif,

end,

//******************************************************************************

// Wenn im Baum ein anderer Knoten ausgewählt wird

//******************************************************************************

function TreeViewChange( Sender )

|oSelected|

  oSelected := oTreeView.Selected, // akt. gewählter Knoten

  if oSelected <> nil then

     // Value auslesen und anzeigen

     oLblNodeValue.Caption := 'Wert: ' + oSelected.Value,

  endif,

end,

//******************************************************************************

// Bei Formularstart Baum automatisch befüllen

//******************************************************************************

function MainFormShow( Sender )

|i, j, oNode|

  // Baum sperren

  oTreeView.BeginUpdate,

  startseq,

     // 5 Knoten mit je 3 Unterknoten erstellen

     for i:=0 to 5 do

        oNode := AddNode(),

        for j:=0 to 3 do

           AddSubNode(oNode),

        end,

     end,

  always,

     // Sperre aufheben

     oTreeView.EndUpdate,

  stopseq,

  // Baum komplett aufklappen

  oTreeView.FullExpandTree,

end,

//******************************************************************************

//******************************************************************************

// Formular

//******************************************************************************

//******************************************************************************

StartSeq,

  oForm          := CreateObject('TFormEx','MainForm'),

  oTreeView      := CreateObject('TTreeViewEx', 'TreeView',oForm,oForm),

  oTreeView.Images := FindObject(FindObject(Application, 'DM_ImageList'), 'ImageListMain'),

  oPnlRight      := CreateObject('TPanel','PnlRight',oForm, oForm),

  oLblNodeValue  := CreateObject('TLabel','LblNodeValue',oForm,oPnlRight),

  oBtnAddNode    := CreateObject('TBeBitBtn','BtnAddNode',oForm,oPnlRight),

  oBtnAddSub     := CreateObject('TBeBitBtn','BtnAddSub',oForm,oPnlRight),

  oBtnDelNode    := CreateObject('TBeBitBtn','BtnDelNode',oForm,oPnlRight),

  // Form

  oForm.Width    := 600,

  oForm.Height   := 600,

  oForm.Position := poMainFormCenter,

  assignevent(oForm, 'OnShow', 'MainFormShow'),

  // Tree

  oTreeView.Align         := alClient,

  oTreeView.HideSelection := false,

  assignevent(oTreeView, 'OnChange', 'TreeViewChange'),

  // Panel

  oPnlRight.Width      := 200,

  oPnlRight.Align      := alRight,

  oPnlRight.BevelOuter := bvNone,

  oPnlRight.Caption    := '',

  // Info Label

  oLblNodeValue.Top     := 5,

  oLblNodeValue.Left    := 5,

  oLblNodeValue.Height  := 15,

  oLblNodeValue.Caption := '',

  // Button (Knoten hinzufügen)

  oBtnAddNode.Top     := 35,

  oBtnAddNode.Left    := 5,

  oBtnAddNode.Width   := 190,

  oBtnAddNode.Caption := 'Neuen Knoten hinzufügen',

  oBtnAddNode.ImageIndex.IndexNormal := 15,

  assignevent(oBtnAddNode, 'OnClick', 'BtnAddNodeClick'),

  // Button (Unterknoten hinzufügen)

  oBtnAddSub.Top     := 65,

  oBtnAddSub.Left    := 5,

  oBtnAddSub.Width   := 190,

  oBtnAddSub.Caption := 'Neuen Unterknoten hinzufügen',

  oBtnAddSub.ImageIndex.IndexNormal := 15,

  assignevent(oBtnAddSub, 'OnClick', 'BtnAddSubClick'),

  // Button (ausgewählten Knoten löschen)

  oBtnDelNode.Top     := 95,

  oBtnDelNode.Left    := 5,

  oBtnDelNode.Width   := 190,

  oBtnDelNode.Caption := 'ausgewählten Knoten löschen',

  oBtnDelNode.ImageIndex.IndexNormal := 6,

  assignevent(oBtnDelNode, 'OnClick', 'BtnDelNodeClick'),

  // Formular anzeigen

  ShowModal(oForm),

OnError

   meld(GetErrorText()),

   DestroyObject( oForm ),

StopSeq,

Siehe auch

TTreeNodeEx


TVarCalcPanel

TVarCalcPanel

Klasse zur Anzeige des Varianten-Dialogs auf einem Panel.

Eigenschaften:

Allgemeine-Eigenschaften

FormVarCalc:O Varianten-Dialog Formular (Objekt vom Typ TFormVarCalc)

DataSource:O DataSource Objekt

DataField:C Feld zu Varianten-Array (z.b. SL_Memo Feld)

ArtNo:C Artikel-Nummer (entspricht FormVarCalc.ArtNo)

PurchPrice:N Einkaufs-Preis (erst während und nach dem Event OnCalcReady gefüllt)

SalesPrice:N Verkaufs-Preis (erst während und nach dem Event OnCalcReady gefüllt)

ReadOnly:L nur Lese-Modus (wird ignoriert falls DataField/DataSource gesetzt ist) (entspricht FormVarCalc.ReadOnly)

Modified:L (nicht aktiv) (entspricht FormVarCalc.Modified)

Aktive-Eigenschaften (Methoden)

ValidValue:L Alle Eingabe-Felder validieren

TRUE - alle Eingaben sind korrekt

FALSE - der Fokus wird auf das Eingabe-Feld mit dem inkorrekten Inhalt gesetzt

OnCalcReady Event nach erfolgreicher Kalkulation (entspricht FormVarCalc.OnCalcReady)

Verwendung:

- Erzeugen der TVarCalcPanel-Klasse per CreateObject im Codeblock

- Zuweisen des Parents auf ein Formular (TFormEx, ...)

- Zuweisen eines DataSource und eines DataFields oder direktes setzen von FormVarCalc.PL_Memo

Beispiel

| oVCPanel, oDab010, oForm, oPanel, oEdit1, oEdit2, oBtn, oNavigator, oCheckBox,

  oDM, oDs, oField |

//******************************************************************************

// Artikel suchen

//******************************************************************************

function BtnSearchClick()

  if not DbSeek({Upper(RTrim(oEdit1.Text))}, oDab010) then

     MessageDlg('Artikel wurde nicht gefunden.', mtError)

  endif

end,

//******************************************************************************

// Kalkulation ein/ausblenden

//******************************************************************************

function CbShowCalcClick()

  oVCPanel.FormVarCalc.ShowCalculation:= not oVCPanel.FormVarCalc.ShowCalculation,

end,

//******************************************************************************

// Supervisor-Modus de/aktivieren

// (funktioniert nur in der Programmier-Umgebung)

//******************************************************************************

function CbAdminModeClick()

| oForm, oAktion |

oForm:= FindObject(Application, 'F_ProgMain'),

if not Empty(oForm) then

   oAktion:= FindObject(oForm, 'A_GodMode'),

   if not Empty(oAktion) then

      ActionExecute(oAktion)

   endif,

endif,

end,

//******************************************************************************

// Artikel-Nummer des TVarCalcPanels setzen

//******************************************************************************

function DsDab010Change()

  if not Empty(oVCPanel) then

     oVCPanel.ArtNo:= oDab010:ArtNr,

  endif,

end,

//******************************************************************************

// Ergebnis der Varianten-Eingabe ausgeben

//******************************************************************************

function CalcReady()

  Writeln(oVCPanel.FormVarCalc.PL_Memo),

end,

//******************************************************************************

// alle Eingaben prüfen

//******************************************************************************

function D010BeforePost()

   if not oVCPanel.ValidValue then

      abort(true),

   endif,

end,

//******************************************************************************

// Dialog erzeugen

//******************************************************************************

oDM:= CreateObject('TBeDBGet'),

StartSeq

  oDab010:= DbGetTable(oDM, 2),

  StartSeq

    oDab010.CheckUserRights:= false,

    oForm:= CreateObject('TFormEx', '', Application),

    StartSeq

      AssignEvent(oDab010, 'BeforePost', 'D010BeforePost'),

      oForm.KeyPreView     := True,

      oForm.Width          := ScreenWidth / 3,

      oForm.Height         := ScreenHeight / 3 * 2,

      oForm.Position       := poScreenCenter,

      oPanel               := CreateObject('TPanel', '', oForm, oForm),

      oPanel.Align         := alTop,

      oPanel.Height        := 120,

      oEdit1:= CreateObject('TBeEdit', '', oForm, oPanel),

      oEdit1.Left          := 10,

      oEdit1.Top           := 10,

      oEdit1.Text          := 'TEST',

      oEdit2:= CreateObject('TBeEdit', '', oForm, oPanel),

      oEdit2.Left          := oEdit1.Left + oEdit1.Width + 10,

      oEdit2.Top           := oEdit1.Top,

      oEdit2.ReadOnly      := True,

      oBtn                 := CreateObject('TBeBitBtn', '', oForm, oPanel),

      oBtn.Left            := oEdit2.Left + oEdit2.Width + 10,

      oBtn.Top             := oEdit2.Top - 2,

      oBtn.Caption         := 'Suche',

      startseq,

         oBtn.Images          := FindObject(FindObject(Application, 'DM_ImageList'), 'ImageListMain'),

         oBtn.ImageIndex.IndexNormal := 91,

      onerror,

         writeln('Imagelist nicht geladen: ' + GetErrorText()),

      stopseq,

      AssignEvent(oBtn, 'OnClick', 'BtnSearchClick'),

      oDS                  := CreateObject('TDataSourceEx', '', oForm),

      oNavigator           := CreateObject('TDBNavigator', '', oForm, oPanel),

      oNavigator.DataSource:= oDS,

      AssignEvent(oDs, 'OnDataChange', 'DSDab010Change'),

      oDS.DataSet          := oDab010,

      oNavigator.Left      := 10,

      oNavigator.Top       := oEdit1.Top + oEdit1.Height + 10,

      oEdit2.DataSource    := oDS,

      oEdit2.DataField     := 'ARTNR',

      oField:= DbField('SL_MEMO', oDab010),

      oCheckBox            := CreateObject('TCheckBox', '', oForm, oPanel),

      oCheckBox.Left       := 10,

      oCheckBox.Top        := oNavigator.Top + oNavigator.Height + 10,

      oCheckBox.Caption    := 'ShowCalculation',

      AssignEvent(oCheckBox, 'OnClick', 'CbShowCalcClick'),

      oCheckBox            :=  CreateObject('TCheckBox', '', oForm, oPanel),

      oCheckBox.Left       := 10,

      oCheckBox.Top        := oNavigator.Top + oNavigator.Height + 30,

      oCheckBox.Caption    := 'AdminMode',

      AssignEvent(oCheckBox, 'OnClick', 'CbAdminModeClick'),

      // TVarCalcPanel erzeugen

      oVCPanel:= CreateObject('TVarCalcPanel', '', oForm, oForm),

      oVCPanel.DataSource:= oDs,

      oVCPanel.DataField := 'SL_MEMO',

      oVCPanel.Align     := alClient,

      oVCPanel.ArtNo     := 'TEST',

      AssignEvent(oVCPanel, 'OnCalcReady', 'CalcReady'),

      ShowModal(oForm),

    Always

      DestroyObject(oForm),

    StopSeq,

  Always

    DestroyObject(oDab010),

  Stopseq

Always

  DestroyObject(oDM),

StopSeq

Siehe auch

SL_Spalten()

SL_Calc()

TFormVarCalc


Events

Siehe auch:

Event "bei Auswahl Prüfplan-Vorlage"

Event "bei Kopplung Vertreter/PLZ"

Event "beim Auflösen der Stückliste"

Event "nach Erfassen Prüfschritt"

Event "Versions-Verwaltung: Status-Änderung"

Event "vor Bestands-Berichtigung"


Event "bei Auswahl Prüfplan-Vorlage"

Event "bei Auswahl Prüfplan-Vorlage"

Der Aufruf erfolgt vor der Erstellung der Prüfpläne für die QS-Prüfung (Wareneingang -> Prüfvorgang).

Beispiel

| nEvtNo:P1, nModus:P2, cKommiss:P3, cPlanArtNo:P4, nPlanD210ID:P5,

  oDab250:P6, oDab255:P7, oDab035:P8, oDab240:P9, lCheckDisabled |

// Auswahl einer Prüfplan-Vorlage

// nModus      : Prüfplan-Vorlage für

//               1 - Wareneingangs-Position

//               2 - Produktionsauftrags-Position

// cKommiss    : Chargen/Serien-Nr. wenn "Prüfung je Charge/Serien-Nr." aktiv

//               ansonsten leer

// cPlanArtNo  : Artikelnummer oder Stücklisten-Artikel von welcher der Prüfplan

//               kopiert wird

// nPlanD210ID : Stücklistenpositions-ID von welcher der Prüfplan kopiert wird

//               wenn es sich um einen Prüfplan einer Stücklistenposition handelt

// oDab250     : Tabelle Wareneingang-Kopfdaten         bei nModus=1 ansonsten nil

// oDab255     : Tabelle Wareneingang-Positionsdaten    bei nModus=1 ansonsten nil

// oDab035     : Tabelle Produktion-Bestellrückstände   bei nModus=2 ansonsten nil

// oDab240     : Tabelle Produktion-Auftragsstücklisten bei nModus=2 ansonsten nil

//

// Rückgabe    : Array {cPlanArtNo, nPlanD210ID, lNoCheck}

// lNoCheck    : Schaltet die Prüfung aus

// Prüfung für Lieferant '1111' ausschalten

lCheckDisabled := (oDab250:ABS_TYP = 'Z') and (oDab250:ABS_NR = 1111),

{cPlanArtNo, nPlanD210ID, lCheckDisabled}


Event "bei Kopplung Vertreter/PLZ"

Event "bei Kopplung Vertreter/PLZ"

Dieser Event wird aufgerufen, sobald die automatische Zuweisung der Vertreternummer stattfindet (bei einer Änderung der Haupt- bzw. Lieferanschrift im Kundenstamm/Auftragskopf).

Der Event wird nur bei vorhandener Lizenz für das Vertreter-Modul sowie aktiver PLZ-Automatik aufgerufen (Allg. Parameter - Kunden/Vertrieb - Seite 1).

Beispiel

| nEvtNo:P1, nMode:P2, oTable:P3, nAddressMode:P4, cAgentField:P5,

  nOldAgentNo:P6, nNewAgentNo:P7, lShowMsg:P8, oForm, oCmb_action, oChk_msg,

  oEdt_vertnr, oBtn_ok, oEdt_info, cRes |

// nMode        : Modus zeigt an, in welcher Tabelle die Änderung erfolgt

//                1 = DAB000 (Kunden-Stamm)

//                2 = DAB050 (Kunden Auftrags-Kopfsatz)

// oTable       : Tabellenobjekt (je nach nMode DAB000 oder DAB050)

// nAddressMode : Modus zeigt an, für welche PLZ/Ort die Vertreter-Zuweisung erfolgt

//                1 = Hauptanschrift

//                2 = Lieferanschrift

// cAgentField  : Feldname in welchem die Vertreter-Nr. gespeichert ist

//                in DAB000 möglich "VERTRETER", "VERTRETER1" bis "VERTRETER9"

//                in DAB050 möglich "VERTRETER"

// nOldAgentNo  : Vertreter-Nr. vor der Änderung (nur lesend)

// nNewAgentNo  : neue Vertreter-Nr. welche automatisch ermittelt wurde

// lShowMsg     : Nachricht über Änderung der Vertreter-Nr. ausgeben?

function CreateForm()

  oForm                 := CreateObject('TFormEx', '', Application),

  oForm.OrigCapt        := 'Event: "bei Kopplung Vertreter/PLZ" ',

  oForm.Width           := 220,

  oForm.Height          := 260,

  oForm.Position        := PoMainFormCenter,

  oCmb_action           := CreateObject('TBeCombo', '', oForm, oForm),

  oCmb_action.Left      := 6,

  oCmb_action.Top       := 6,

  oCmb_action.Width     := 200,

  oCmb_action.Items     := {'Automatik',

                            'Keine Änderung zulassen (alte Vert.Nr)',

                            'Vertreter-Nr. aus Eingabefeld übernhemen'},

  oCmb_action.ItemIndex := 0,

  oEdt_vertnr           := CreateObject('TBeEdit', '', oForm, oForm),

  oEdt_vertnr.Left      := 6,

  oEdt_vertnr.Top       := 35,

  oEdt_vertnr.Width     := 200,

  oEdt_vertnr.Text      := '2006',

  oChk_msg              := CreateObject('TCheckBox', '', oForm, oForm),

  oChk_msg.Left         := 6,

  oChk_msg.Top          := 63,

  oChk_msg.Width        := 200,

  oChk_msg.Caption      := 'Meldung anzeigen',

  oChk_msg.Checked      := lShowMsg,

  oBtn_ok               := CreateObject('TBitBtn', '', oForm, oForm),

  oBtn_ok.Left          := 6,

  oBtn_ok.Top           := 87,

  oBtn_ok.Width         := 200,

  oBtn_ok.Kind          := 1,

  oEdt_info             := CreateObject('TBeEdit', '', oForm, oForm),

  oEdt_info.AutoSize    := false,

  oEdt_info.WantReturns := true,

  oEdt_info.WordWrap    := true,

  oEdt_info.Align       := alBottom,

  oEdt_info.Height      := 110,

  oEdt_info.Font.Name   := 'Courier New',

end,

//******************************************************************************

StartSeq

   // Formular erzeugen

   CreateForm(),

   // Parameter auslesen

   oEdt_info.text := 'nEvtNo:       ' + str(nEvtNo)       + crlf +

                     'nMode:        ' + str(nMode)        + crlf +

                     'nAddressMode: ' + str(nAddressMode) + crlf +

                     'cAgentField:  ' + cAgentField       + crlf +

                     'nOldAgentNo:  ' + str(nOldAgentNo)  + crlf +

                     'nNewAgentNo:  ' + str(nNewAgentNo)  + crlf +

                     'lShowMsg:     ' + str(lShowMsg),

   // Formular anzegeigen

   ShowModal(oForm),

   // Aktion auswerten

   case oCmb_action.ItemIndex

     of 0 :: cRes := nNewAgentNo,

     of 1 :: cRes := nOldAgentNo,

     of 2 :: cRes := val(oEdt_vertnr.text),

   otherwise

     cRes := nNewAgentNo,

   endcase,

   // Meldung anzeigen ja/nein?

   cRes := {cRes,oChk_msg.checked},

Always

   DestroyObject( oForm ),

StopSeq,

cRes


Event "beim Auflösen der Stückliste"

Event "beim Auflösen der Stückliste"

Der Event ermöglicht es, an diversen Stellen der Stücklisten-Auflösung eine von der Stamm-Stückliste abweichende Bauteil-Nr und eine evtl. abweichende Menge anzugeben.

Beispiel

| nEvtNo:P1, nMode:P2, nPlId:P3, cArtNo:P4, nAmount1:P5, nAmount2:P6, oDataMod:P7 |

// nMode   : Modus zeigt an, aus welchem Programm der Aufruf erfolgt

//           0 = Generierung Grobplanung "Abgang in Produktion" (DAB280:ARTNR2)

//           1 = Generierung Produktions Dispo-Planung (DAB220->DAB215, Änderung

//               DAB280:Workarea)

//           2 = Generierung temporäre Reservierungs-Tabelle Bedarfsrechnung ->

//               Dispovorschläge (DABDV...:ARTNR)

//           3 = Erstellung einer Stücklisten-Kalkulation

//           4 = Generierung Fertigungs-Auftrag /  Aktualisierung einer Prod.Stückliste

//               aus der Stücklisten-Verwaltung (DAB240:ARTNR_E)

// nPlId   : DAB210:ID bzw. Dab160:ID = aktuelle Stücklisten-Position

// cArtNo  : Vorgabe - Artikel-Nr

// nAmount1: gerechnete Menge Rüst.

// nAmount2: gerechnete Menge Stück

// oDab210 : Datensatz der Stückliste

// Rückgabe: Array { cArtNo, nAmount1, nAmount2 }

{ cArtNo, nAmount1, nAmount2 }


Event "nach Erfassen Prüfschritt"

Event "nach Erfassen Prüfschritt"

Der Aufruf erfolgt nach Erfassen eines Prüfschritts aber noch bevor dieser gespeichert ist (QS-Prüfung Prüfvorgang).

Beispiel

| nEvtNo:P1, nModus:P2, nAction:P3, oDabPPV:P4, oDabPPE:P5, oDab250:P6, oDab255:P7,

  oDab035:P8, oDab240:P9 |

// Berechnung nächste Prüfergebnis-Aktion

// nModus   : Prüfplan-Vorlage für

//            1 - Wareneingangs-Position

//            2 - Produktionsauftrags-Position

// nAction  : vorberechnete nächste Aktion

//            1 - Prüfung ist abgeschlossen

//            2 - Prüfung fortsetzen

//            3 - Prüfung abbrechen

//            4 - Gesamtprüfung starten

//            5 - Neustart

// oDabPPV  : Tabelle Prüfvorgänge   im Editmodus

// oDabPPE  : Tabelle Prüfergebnisse im Einfügemodus

// oDab250  : Tabelle Wareneingang-Kopfdaten         bei nModus=1 ansonsten leer

// oDab255  : Tabelle Wareneingang-Positionsdaten    bei nModus=1 ansonsten leer

// oDab035  : Tabelle Produktion-Bestellrückstände   bei nModus=2 ansonsten leer

// oDab240  : Tabelle Produktion-Auftragsstücklisten bei nModus=2 ansonsten leer

//

// Rückgabe : nAction

// HINWEIS  : - Transaktion aktiv!

//            - Rückgabe von 5 führt zur Neuberechnung der nächsten Aktion und löst

//              den Codeblock erneut aus. VORSICHT Endlosschleife möglich!

// Meldung ausgeben, dass die Prüfung beendet ist

if nAction = 1 then

  Meld('Prüfung ist abgeschlossen!'),

endif,

nAction


Event "Versions-Verwaltung: Status-Änderung"

Event "Versions-Verwaltung: Status-Änderung"

Der Aufruf erfolgt abhängig von dem Parameter

nModus =

3. nachdem der neue Versions-Artikel angelegt wurde, noch vor der Anzeige des selben im Artikelstamm

4. nachdem der Versions-Wechsel abgeschlossen wurde aber noch vor Beendigung der Transaktion

5. bei der "Freigabe von technischen Änderungen" - nach der Archivierung der 'aktuellen Version' (assoziierte Stammdaten wurden noch nicht verschoben)

6. bei der "Freigabe von technischen Änderungen" - nach Übernahme der Daten von der 'künftigen Version' auf die 'aktuellen Version' (assoziierte Stammdaten wurden noch nicht verschoben)

Beispiel

| nEvtNo:P1, nModus:P2, oDab010Quell:P3, oDab010Ziel:P4, aPost |

// nModus      : 1 - Neuanlage Artikel "als neue Version"

//               2 - Release-Wechsel - Neue Version freigeben

//               3 - Freigabe technische Änderungen - Archivierung

//               4 - Freigabe technische Änderungen - Übernahme

// oDab010Quell: Tabelle Artikelstamm positioniert auf der 'Quell-Version'

// oDab010Ziel : Tabelle Artikelstamm positioniert auf der 'Ziel-Version'

// HINWEIS     : Transaktion aktiv!

aPost := False,

if (DbState(oDab010Ziel) <> dsEdit) and (DbState(oDab010Ziel) <> dsInsert) then

   DbEdit(oDab010Ziel),

   aPost := True,

endif,

// 1 - Neuanlage Artikel "als neue Version"

//     - oDab010Quell = 'aktuelle Version'

//     - oDab010Ziel  = Neuer Artikel

if nModus = 1 then

   oDab010Ziel:VERS_INFO := 'Neue Version!' + CRLF +

                            'Kopiert von Artikel: ' + oDab010Quell:ARTNR + CRLF +

                            'Datum/Zeit:          ' + DateTimeToStr(Now()),

else

   // 2 - Release-Wechsel - Neue Version freigeben

   //     - Kunden-Sonderpreise und Absatzplanung wurden (ggf.) bereits verschoben

   //     - Feld DAB010:VERS_STAT wurde bereits geändert

   //     - oDab010Quell = vormals 'aktuelle Version'

   //     - oDab010Ziel  = vormals 'künftige Version'

   if nModus = 2 then

      oDab010Ziel:VERS_INFO := oDab010Ziel:VERS_INFO + CRLF +

                               'Freigegeben am: ' + DateTimeToStr(Now()),

   else

      // 3 - Freigabe technische Änderungen - Archivierung

      //     - assoziierte Stammdaten wurden noch nicht verschoben, nur Feldinhalte

      //       DAB010!

      //     - oDab010Quell = 'aktuelle Version'

      //     - oDab010Ziel  = Archiv-Version

      if nModus = 3 then

         oDab010Ziel:VERS_INFO := oDab010Ziel:VERS_INFO + CRLF +

                                  'Freigabe technischer Änderungen -------------' + CRLF +

                                  'Archiviert am: ' + DateTimeToStr(Now()) + CRLF +

                                  'von Artikel: '  + oDab010Quell:ARTNR,

      else

         // 4 - Freigabe technische Änderungen - Übernahme

         //     - assoziierte Stammdaten wurden noch nicht verschoben, nur Feldinhalte

         //       DAB010!

         //     - oDab010Quell = 'künftige Version'

         //     - oDab010Ziel  = 'aktuelle Version'

         if nModus = 4 then

            oDab010Ziel:VERS_INFO := oDab010Ziel:VERS_INFO + CRLF +

                                     'Freigabe technischer Änderungen --------------' +

                                     CRLF + 'am: ' + DateTimeToStr(Now()) + CRLF +

                                     'Daten-Übernahme von Artikel: ' + oDab010Quell:ARTNR,

         endif,

      endif,

   endif,

endif,

if aPost then

   DbPost(oDab010Ziel),

endif,


Event "vor Bestands-Berichtigung"

Event "vor Bestands-Berichtigung"

Der Event wird in folgenden Prozessen (nMode) aufgerufen:

1+ 2: Rechnungskontrolle, jeweils nachdem DAB020 (WE-Zugangs-Satz) / DAB235 (Rechnungs-Kontroll-Satz) korrigiert wurden, aber bevor die Wertberichtigung auf den Bestand (Dab010:DURSCHEK) umgelegt wird (also innerhalb der Transaktion):

- Bei der Berichtigung einer Position (Menge / Preis / Preiseinheit / Umrechungsfaktor / Zusatzkosten etc.)

- Beim Rechnungsabschluss (Korrektur aller Positionen, falls Nebenkosten vorhanden)

3: Anonyme Produktions-Verbrauchs-Buchung (aus der Lager-Verwaltung heraus, gleiches Fenster wie Inventur-Einzelbuchung)

4+ 5: Inventur-Buchung (Einzel- und Stapel), vor Ende der Transaktion

6+ 7: Fertigmeldung (Teil und End), vor Ende der Transaktion

Beispiel

| nEvtNo:P1, nMode:P2, oDataMod:P3, cArtNo:P4,

  cDispoNo:P5, nQuantity:P6, uValue:P7, nCorrValue:P8 |

// nMode     : Modus zeigt an, aus welchem Programm der Aufruf erfolgt

//             1 = Re.Kontrolle Pos.Berichtigung

//             2 = Re.Kontrolle Freigabe

//             3 = Produktions-Verbrauch anonym

//             4 = Inventur-Korrektur manuell

//             5 = Inventur-Korrektur Stapel

//             6 = Produktion Teil-Fertigmeldung

//             7 = Produktion End-Fertigmeldung

// oDataMod  : Datenmodul oder AdsConnecton

// cArtNo    : Artikel-Nummer

// cDispoNo  : Dispo-Nummer (Dab020)

// nQuantity : Buchungs-Menge +/- (in Modus 1 und 2 = Differenzmenge)

// uValue    : Modus 1-2: gesamter Umlagebetrag der Korrektur (+/-)

//             Modus 3-5: gesamter Buchungswert (+/-)

//             Modus 6-7: Array mit detaillierten Informationen über die Zusammensetzung des

//                        Gesamt-Zugangswertes der Fertigmeldung. Struktur des Arrays:

//                        { {B_POS_LFD, ARTNR_E, Gesamtwert (ohne Zuschlag), Zuschlagswert}, {...}, ... }

// nCorrValue: umlagefähiger Betrag (nur verfügbar in Modus 1 und 2)

// Rückgabe  : nCorrValue (Vorzeichen darf nicht umgekehrt werden, absoluter Wert darf nicht erhöht werden)

// HINWEIS   : Transaktion aktiv!

//******************************************************************

// Dieses Beispiel dient dazu, die Funktionsweise des Events und die

// zur Verfügung stehenden Informationen zu demonstrieren

//******************************************************************

function GetLockInfo(aTable)

|aLock|

  Result := 'Trans: ',

  if DbInTrans(aTable.AdsConnection) then

     Result := Result + 'aktiv'

  else

     Result := Result + 'inaktiv'

  endif,

  Result := Result + crlf + '        Lockname: ' + DbGetLockClientName(aTable),

  aLock  := AdsGetUserLocks(aTable),

  if empty(aLock) then

     Result := Result + crlf + '        Locks: ',

  else

     Result := Result + crlf + '        Locks: ' + ArrToStr( aLock ),

  endif

end,

function ModusAsString()

  case nMode

     of 1 :: Result := '1 = Re.Kontrolle Pos.Berichtigung',

     of 2 :: Result := '2 = Re.Kontrolle Freigabe',

     of 3 :: Result := '3 = Produktions-Verbrauch anonym',

     of 4 :: Result := '4 = Inventur-Korrektur manuell',

     of 5 :: Result := '5 = Inventur-Korrektur Stapel',

     of 6 :: Result := '6 = Produktion Teil-Fertigmeldung',

     of 7 :: Result := '7 = Produktion End-Fertigmeldung',

  otherwise

     Result := 'unbekannter Modus',

  endcase,

end,

function FormatArrayOutput(aArray)

| i, aItem |

  Result := '',

  startseq,

     for i := 1 to ALen(aArray) do

        Result += if(empty(Result), '', crlf),

        aItem := aArray[i],

        Result += replicate(' ', 2) + padl(aItem[1],13) + '|' + padl(aItem[2],20) + '|' + padl(aItem[3],10) + '|' + padl(aItem[4],10),

     next,

  onerror,

     Result := 'Fehler',

  stopseq,

end,

startseq,

   aInfo := 'Modus:                ' + ModusAsString()            + crlf +

            'Typ Datenmodul:       ' + ClassName(oDataMod)        + crlf +

            'Artikel:              ' + cArtNo                     + crlf +

            'DispoNummer:          ' + cDispoNo                   + crlf +

            'Buchungs-Menge +/-:   ' + Str(nQuantity)             + crlf +

              if( nMode < 6,

                  '  Zu-/Abgangs-Wert:   ' + Str(uValue),

                  if(valtype(uValue) = 'A' ,

                     '  Werte-Array:        ' + crlf + FormatArrayOutput(uValue),

                     'kein Array'))

                                                                    + crlf +

            if(nMode <= 2, '  Umlagefäh. Betrag:  ' + Str(nCorrValue), ''),

onerror,

   aInfo := 'Fehler bei der Ermittlung',

stopseq,

if not empty(oDataMod) and ((nMode = 2) or (nMode = 1)) then

  aD010 := DBGetTable(oDataMod, 2),

  aD020 := DBGetTable(oDataMod, 7),

  aD235 := DBGetTable(oDataMod, 34),

  aD055 := DBGetTable(oDataMod, 4),

  aD240 := DBGetTable(oDataMod, 26),

  aInfo := aInfo + crlf + crlf + crlf +

           'Dab010: ' + GetLockInfo(aD010) + crlf +

           'Dab020: ' + GetLockInfo(aD020) + crlf +

           'Dab055: ' + GetLockInfo(aD055) + crlf +

           'Dab240: ' + GetLockInfo(aD240),

endif,

aForm := CreateObject('TFormEx'),

startseq

   aForm.Width    := 500,

   aForm.Height   := 300  + 100,

   aForm.OrigCapt := 'Event "vor Bestand-Berichtigung"',

   aForm.Top      := 400,

   aForm.Left     := 300,

   aBtn := CreateObject('TBeBitBtn', '', aForm, aForm),

   aBtn.Caption := 'Ändern',

   aBtn.Images  := FindObject(FindObject(Application, 'DM_ImageList'), 'ImageListMain'),

   aBtn.ImageIndex.IndexNormal := 7,

   aBtn.Width   := 100,

   aBtn.Left    := 140,

   aBtn.Top     := 240 + 95,

   aBtn.ModalResult := mrOK,

   aBtn := CreateObject('TBeBitBtn', '', aForm, aForm),

   aBtn.Caption := 'Abbrechen',

   aBtn.Images  := FindObject(FindObject(Application, 'DM_ImageList'), 'ImageListMain'),

   aBtn.ImageIndex.IndexNormal := 8,

   aBtn.Width   := 100,

   aBtn.Left    := 240,

   aBtn.Top     := 240 + 95,

   aBtn.ModalResult := mrCancel,

   aLabel  := CreateObject('TLabel', '', aForm, aForm),

   aLabel.Width    := 150,

   aLabel.Left     := 20,

   aLabel.Top      := 205 + 100 + 3,

   aLabel.Caption  := 'umlagefähiger Betrag: ',

   aEdit := CreateObject('TBeEdit', '', aForm, aForm),

   aEdit.Width    := 250,

   aEdit.Left     := 150,

   aEdit.Top      := 205 + 100,

   aEdit.Text     := FloatToStr(nCorrValue),

   aEdit.ReadOnly := not ( nMode = 2 or nMode = 1),

   aMemo := CreateObject('TMemo', '', aForm, aForm),

   aMemo.Align     := altop,

   aMemo.Width     := 380,

   aMemo.Height    := 200 + 100,

   aMemo.Left      := 0,

   aMemo.Top       := 0,

   aMemo.Font.Name := 'Courier New',

   aMemo.Font.Size := 10,

   CollAdd(aMemo.Lines, aInfo),

   aRes := ShowModal(aForm),

   if aRes = 1 then

      nCorrValue := StrToFloat(aEdit.Text),

   endif,

always

   DestroyObject(aForm),

stopseq,

nCorrValue