Funktionen

codeblock
Funktionen


Allgemeine Funktionen

codeblock
Allgemeine Funktionen


Beep()

codeblock
Beep()

Beep() – Signalton

Beschreibung:

Funktion gibt einen Signalton aus.

Syntax:

Beep()

keine Parameter erwartet

Rückgabewert:

keiner

Beispiel:

Beep()


BeSetLanguage()

codeblock
BeSetLanguage()

BeSetLanguage() – Sprache einstellen

Beschreibung:

Funktion stellt die Sprache auf den gegebenen Wert ein.

Syntax:

BeSetLanguage(nIndex:N):N

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:

BeSetLanguage(6)


ClearClipBoard()

codeblock
ClearClipBoard()

ClearClipBoard() – Zwischenablage löschen

Beschreibung:

Löscht den in der Zwischenablage gespeicherten Text.

Syntax:

ClearClipboard()

keine Parameter erwartet

Rückgabewert:

keiner

Beispiel:

ClearClipBoard()


CopyToClipBoard()

codeblock
CopyToClipBoard()

CopyToClipBoard() – Text in Zwischenablage kopieren

Beschreibung:

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

Syntax:

CopyToClipboard(aText:C)

aText:C - beliebige Zeichenkette

Rückgabewert:

keiner

Beispiel:

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

aText := alltrim(oDAB000:NAME1)+", "+

          alltrim(oDAB000:NAME2)+CRLF+

          oDAB000:PLZORT+CRLF+oDAB000:STRASSE,

CopyToClipboard(aText),


CypherGetHash()

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

Syntax:

CypherGetHash(cText:C):C

cText:C - beliebige Zeichenkette

Rückgabewert:

Alphanumerisch - Gebildeter Hash-Wert

Beispiel:

CypherGetHash('Test')


Array-Funktionen

codeblock
Array-Funktionen


AAdd()

codeblock
AAdd()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


ADelete()

codeblock
ADelete()

ADelete() – Element aus Array löschen

Beschreibung:

Funktion löscht ein Element aus einem Array

Syntax:

ADelete(aArray:R, aIndex:N)

aArray:R - referenziertes Array, in dem ein Element gelöscht werden soll

aIndex:N - Index des Array-Elements

Rückgabewert:

keiner

Beispiel:

ADelete(aArr,5)            Löscht das 5. Element im Array.

Siehe auch:

AAdd()

AFill()

AInsert()

ArrToStr()

Dim()

ReDim()

StrToArr()


AFill()

codeblock
AFill()

AFill() – Array mit Werten füllen

Beschreibung:

Funktion füllt ein Array mit einem Wert.

Syntax:

AFill(aArray:R, aValue:U)

aArray:R - referenziertes, zu füllendes Array

aValue:U - Wert

Rückgabewert:

keiner

Beispiel:

| aArr |

aArr := Dim(5),

AFill(aArr, 'Test'),

writeln(ArrToStr(aArr))

// Ergebnis: aArr={"Test","Test","Test","Test","Test"}

Siehe auch:

AAdd()

ADelete()

AInsert()

ALen()

ArrToStr()

Dim()

ReDim()

StrToArr()


AInsert()

codeblock
AInsert()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


ALen()

codeblock
ALen()

ALen() – Anzahl der Array Elemente

Beschreibung:

Funktion liefert die Anzahl der Arrayelemente zurück.

Syntax:

ALen(aArray:A):N

aArray:A - Array

Rückgabewert:

Numerisch

Beispiel:

| aArray |

aArray := dim(39),

ALen(aArray)  -->  39


BE-Funktionen

codeblock
BE-Funktionen


ArtLoesch()

codeblock
ArtLoesch()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


AttribIDArray()

codeblock
AttribIDArray()

AttribIDArray() – Array von Merkmal-IDs einer Merkmalstabelle

Beschreibung:

Funktion gibt ein Array mit den SortierungsID’s einer Merkmalstabelle zurück

Syntax:

AttribIdArray(nTabID:N, nSortID:N, oDabMDT:O):A

nTabID:N - ID der Merkmalstabelle

nSortID:N - Sortierungs ID

oDabMDT:O - Tabellenobjekt der DABMDT

Rückgabewert:

Array - Array mit Sortierungs-IDs

Beispiel:

AttribIdArray(2001)

Siehe auch:

AttribIDFor()

AttribTabID()

AttribValues()


AttribIDFor()

codeblock
AttribIDFor()

AttribIDFor() – ID eines Merkmals

Beschreibung:

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

Syntax:

AttribIdFor(nTabID:N, cValue:C, oDabMDT:O):N

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()


AttribTabID()

codeblock
AttribTabID()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


AttribTranslate()

codeblock
AttribTranslate()

AttribTranslate() – Merkmalsbezeichnung ausgeben

Beschreibung:

Funktion gibt eine Merkmalsbezeichnung aus einer Merkmalstabelle in der übergebenen Sprache zurück.

Syntax:

AttribTranslate(nAttribID:N,cValue:C,nLangID:N):C

nAttribID:N - ID der Merkmalstabelle

cValue:C - Merkmals-ID

nLangID:N - Sprach-ID; default = aktuelle BE-Sprache

Rückgabewert:

Alphanumerisch - Merkmalsbezeichnung

Beispiel:

| cMerkmal |

cMerkmal := AttribTranslate(2002, '10', 3)


Datei- und Festplattenverwaltung

codeblock
Datei- und Festplattenverwaltung


ChDir()

codeblock
ChDir()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


CreateDir()

codeblock
CreateDir()

CreateDir() – Dateiverzeichnis anlegen

Beschreibung:

Funktion legt ein neues Dateiverzeichnis an, wobei das Verzeichnis bis zur darüberliegenden

Ebene vorhanden sein muss.

Syntax:

CreateDir(aDirName:C):L

aDirName:C - Verzeichnispfad

Rückgabewert:

Logisch / Boolean - Verzeichnis konnte erzeugt werden

Beispiel:

CreateDir('C:\temp\Dontenwill')


DateTimeToFileDate()

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

Syntax:

DateTimeToFileDate(aDateTime:D):N

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()

codeblock
DeleteFile()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


DirArray()

codeblock
DirArray()

DirArray() – Verzeichnisinformationen

Beschreibung:

Gibt ein Array mit Verzeichniseinträgen und weiteren Informationen zurück.

Syntax:

DirArray(aPath:C, aFileName:C, aAttr:N):A

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


Datum und Zeit

codeblock
Datum und Zeit


AddMonth()

codeblock
AddMonth()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


BoM()

codeblock
BoM()

BoM() – Beginn des Monats

Beschreibung:

Errechnet aus einem Datum den ersten Tag des entsprechenden Monats.

Syntax:

BoM(aDate:D):D

aDate:D - beliebiges Datum

Rückgabewert:

Datum - Erster Tag des Monats

Beispiel:

BoM(CToD('13.06.2004'))

Siehe auch:

BoQ()

BoY()

EoM()

EoQ()

EoY()


BoQ()

codeblock
BoQ()

BoQ() – Beginn des Quartals

Beschreibung:

Errechnet aus einem Datum den ersten Tag des entsprechenden Quartals.

Syntax:

BoQ(aDate:D):D

aDate:D - beliebiges Datum

Rückgabewert:

Datum - Erster Tag des Quartals

Beispiel:

BoQ(CToD('13.06.2004'))

Siehe auch:

BoM()

BoY()

EoM()

EoQ()

EoY()


BoY()

codeblock
BoY()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


CMonth()

codeblock
CMonth()

CMonth() – Monatsname

Beschreibung:

Gibt den im Datum dargestellten Monat als Zeichenfolge aus.

Syntax:

CMonth(aDate:D):C

aDate:D - beliebiges Datum

Rückgabewert:

Alphanumerisch - Monatsname

Beispiel:

CMonth(CToD('13.06.2004'))

Siehe auch:

CToD

Day()

Month()

Year()


Kommunikation

codeblock
Kommunikation


AttachmentAdd()

codeblock
AttachmentAdd()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


AttachmentDelete()

codeblock
AttachmentDelete()

AttachmentDelete() – Entfernt einen Anhang aus einem Email-Objekt

Beschreibung:

Funktion entfernt einen Anhang eines Email-Objekts.

HINWEIS: Nach dem ein Anhang entfernt wurde rücken automatisch alle folgenden Anhänge eine

Position nach vorne, d.h. die Attachment-ID wird um 1 reduziert.

Syntax:

AttachmentAdd(oBatchMail:O, nAttachmentID:N):L

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,


DBWaitLocked()

codeblock
DBWaitLocked()

DBWaitLocked() – Datensatzsperre

Beschreibung:

Sperren von Datensätzen mit TimeOut.

Der User muss über die entsprechenden Rechte auf der Tabelle verfügen.

Syntax:

DBWaitLocked(oTable:O, nTimeOutSec:N, cLockText:C, lAbortLocked:L, lAdsLockOnly:L):L

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 !DbWaitLocked(oDab010_B, 20, 'Mein Text', False) then

      Meld('Satz konnte nicht gesperrt werden ...')

   EndIf,

EndIf,


DosDevice()

codeblock
DosDevice()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


FTPDelete()

codeblock
FTPDelete()

FTPDelete() – Datei über FTP Löschen

Beschreibung:

Löscht eine oder mehrere Dateien auf einem FTP-Server.

Die Funktion arbeitet Case Sensitive (trifft auch auf die Endungen der Dateien zu),

Syntax:

FTPDelete(aCaption:C, aRemoteHost:C, aRemotePort:N, aUserName:C, aPassword:C, aPassiveMode:L, aFileList:U, aHostPath:C, aLogFileName:C, aIncludeHostDir:L):N

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:\FTPTransaktio\MyFtpLog.txt',

aDestPath  := 'C:\FTPTransaktio\Download\',

aSourcePath:= 'C:\FTPTransaktio\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

                             '213.73.73.178',                      // RemoteHost

                             21,                                   // RemotePort

                             'krapp',                                // UserName

                             '21423816515',                          // 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


Logische Funktionen

codeblock
Logische Funktionen


_AND()

codeblock
_AND()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


_NOT()

codeblock
_NOT()

_NOT() – Logische NOT-Verknüpfung

Beschreibung:

Funktion führt eine bitweise NOT-Verknüpfung auf einen Integerwert aus.

Syntax:

_NOT(aIntValue1:N):N

aIntValue1:N - Integer1

Rückgabewert:

Numerisch - Ergebnis

Beispiel:

_NOT(12),

Siehe auch:

_AND()

_OR()

_XOR


_OR()

codeblock
_OR()

_OR() – Logische OR-Verknüpfung

Beschreibung:

Funktion verknüpft zwei Integer bitweise mit einer OR-Verknüpfung.

Syntax:

_NOT(aIntValue1:N):N

aIntValue1:N - Integer1

aIntValue2:N - Integer 2

Rückgabewert:

Numerisch - Ergebnis

Beispiel:

_OR(12,4),

Siehe auch:

_AND()

_NOT()

_XOR


_XOR

codeblock
_XOR

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


SetBit()

codeblock
SetBit()

SetBit() – Bit setzen

Beschreibung:

Funktion setzt das Bit aBit einer Zahl auf true. (aBit = 0 ist das erste Bit)

Syntax:

SetBit(aIntValue:N, aBit:N, DoSetBit:L):N

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)


Mathematische Funktionen

codeblock
Mathematische Funktionen


Abs()

codeblock
Abs()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


ArcTan()

codeblock
ArcTan()

ArcTan() – ArcusTangens

Beschreibung:

Funktion berechnet den Arcustangens einer bestimmten Zahl.

Syntax:

ArcTan(aRadValue:N):N

aRadValue:N - beliebiger numerischer Wert

Rückgabewert:

Numerisch - Arcustangens

Beispiel:

ArcTan(Pi())

Siehe auch:

Cos()

Sin()

Tan()


Cos()

codeblock
Cos()

Cos() – Cosinus

Beschreibung:

Funktion berechnet den Cosinus eines Winkels.

Syntax:

Cos(aRadValue:N):N

aRadValue:N - beliebiger numerischer Wert

Rückgabewert:

Numerisch - Cosinus (im Bogenmaß)

Beispiel:

Cos(Pi())

Siehe auch:

ArcTan()

Sin()

Tan()


DegToRad()

codeblock
DegToRad()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


Exp()

codeblock
Exp()

Exp() – e hoch Wert

Beschreibung:

Funktion berechnet e^aValue. (e = 2,71828182845905)

Syntax:

Exp(aValue:N):N

aValue:N - Exponent

Rückgabewert:

Numerisch - Ergebnis

Beispiel:

Exp(3)


Objekte, Fenster, Steuerelemente

codeblock
Objekte, Fenster, Steuerelemente


ActionExecute()

codeblock
ActionExecute()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


AddTreeNode()

codeblock
AddTreeNode()

AddTreeNode() – TreeNode in einem TreeView erstellen

Beschreibung:

Funktion erzeugt einen neuen TreeNode und fügt diesen einem bestehenden TreeView hinzu.

Syntax:

AddTreeNode(aTreeView:O, aTreeNodeParent:O, Name:C, Caption:C):O

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()

codeblock
AssignEvent()

AssignEvent() – Ereignis festlegen

Beschreibung:

Legt eine Funktion für ein Objekt fest, die jedes Mal wenn das angegebene Ereignis eintrifft ausgeführt wird.

Syntax:

AssignEvent(aObject:O, aPropName:C, aFuncName:C):O

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()

codeblock
AssignGlobalEvent()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


BringToFront()

codeblock
BringToFront()

BringToFront() – Objekt nach vorne bringen

Beschreibung:

Funktion bringt ein Objekt in den Vordergrund.

Syntax:

BringToFront (aControl:O)

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()


Programmierung

codeblock
Programmierung


Abort()

codeblock
Abort()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


AssignBlockEvent()

codeblock
AssignBlockEvent()

AssignBlockEvent() – Ereignis festlegen

Beschreibung:

Legt ein Ereignis für den aktuellen CodeBlock fest. Jedes Mal wenn das angegebene Ereignis eintrifft, wird die in aFuncName übergebene Funktion ausgeführt.

Syntax:

AssignBlockEvent(aPropName:C, aFuncName:C):O

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()

codeblock
BeCallStack()

BeCallStack() - Ausgabe Delphi-Callstack

Beschreibung:

Ermittelt den aktuellen Delphi-Callstack (aktueller Funktionsaufrufbaum) an der aktuellen Programmstelle.

Syntax:

BeCallStack()

Rückgabewert:

Text

Beispiel:

BeCallStack()


BeLogError()

codeblock
BeLogError()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


Call()

codeblock
Call()

Call() – CodeBlock-Programm aufrufen

Beschreibung:

Funktion ruft ein CodeBlock-Programm mit Parametern auf.

Es lassen sich hiermit nur freigegebene CodeBlock-Programme aufrufen!

Syntax:

Call(aProg:U, aParam1:U, ...):U

aProg:U - Name des Programmes

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


Reports und Druck

codeblock
Reports und Druck


DocumentDelete()

codeblock
DocumentDelete()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


DocumentPrint()

codeblock
DocumentPrint()

DocumentPrint() – Druck eines Individualbelegs

Beschreibung:

Druckt einen Individual-Beleg, welcher dann im Belegarchiv abgelegt ist.

Syntax:

DocumentPrint(nPrintMode:N, nDocType:N, nDocNo:N, nPersNo:N, aTables:A, oPrintConnect:O, aDateDepLang:U, lProcessDataOnly:L, evOnProcDataBefore:C, evOnProcDataAfter:C, cDocPrintClass:C)

nPrintMode:N - Druckmodus entsprechend ReportPrint() LM_LAYOUT und LM_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:

DocumentDelete()

DBGetLookup()

DBGetMemTable()

DBGetTable()


ReportInit()

codeblock
ReportInit()

ReportInit() – Reportobjekt erzeugen

Beschreibung:

Erzeugt das Reportobjekt, das später für den Druck über ReportPrint() benötigt wird.

Syntax:

ReportInit(aReportName:C, aTables:U, aArguments:U):O

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()

codeblock
ReportPrint()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


TiffPageCount()

codeblock
TiffPageCount()

TiffPageCount() - Seitenanzahl einer Tiff-Datei

Beschreibung:

Ermittelt die Seitenanzahl einer Tiff-Datei.

Syntax:

TiffPageCount(aFileName:C)

aFileName         Name der Tiff-Datei

Rückgabewert:

Numerisch, Anzahl der Seiten


Scanner-Steuerung

codeblock
Scanner-Steuerung


ScanCreateControl()

codeblock
ScanCreateControl()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


ScanModalConf()

codeblock
ScanModalConf()

ScanModalConf() – Scanner

Beschreibung:

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.

Syntax:

ScanModalConf(oSession:O, cText:C, aButtons:A, aResults:A):U

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()


Tabellen und Datenbanken

codeblock
Tabellen und Datenbanken


AdsEval()

codeblock
AdsEval()

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


AdsGetConnectTables()

codeblock
AdsGetConnectTables()

AdsGetConnectTables() - Tabellen einer ADS-Connection ermitteln

Beschreibung:

Ermitteln ein Array mit allen Tabellen-Objekten, die auf einer bestimmten ADS-Connection geöffnet sind.

Syntax:

AdsGetConnectTables( oConnect:O )

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()

codeblock
AdsGetUserLocks()

AdsGetUserLocks() - Eigene Satzsperren einer ADS-Tabelle ermitteln

Beschreibung:

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.

Syntax:

AdsGetUserLocks( oTable:O )

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()


Text-Funktionen

codeblock
Text-Funktionen

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


Typenumwandlung

codeblock
Typenumwandlung


Klassen

codeblock
Klassen


TBatchMail

codeblock
TBatchMail

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


TBeArchiveInfo

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


TBeAttribCombo

codeblock
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-Edits"

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,


TBeCbArchive

codeblock
TBeCbArchive

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


TBeDBChart

codeblock
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

codeblock
TBeDBGet

TBeDBGet - Datenmodul

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

DBGetTable()

DBGetLookup()

DBGetMemTable()

DBLinkTable()

DBUnLinkTable()


TBeDBUserList

codeblock
TBeDBUserList

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


TBeDelivData, TBeCumDelivData

codeblock
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,


TBeDocScanner

codeblock
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 nun der Scan falls dieser in Schwarz/Weiß gescannt wurde als TIFF gespeichert, andernfalls immer als JPEG.

Wird FileName angegeben und das Format (z.B. '.jpg' bei Schwarz/Weiß-Scan) wird für den Scan nicht unterstützt 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,


TBeFieldAttribCombo

codeblock
TBeFieldAttribCombo

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


TBeIndiPrintData

codeblock
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()"


TBeOfferData

codeblock
TBeOfferData

TBeOfferData

Abstrakte Belegdruck-Klassen die als Vorfahr für verschiedene Belegdruck-Klassen dient

Eigenschaften

TempUserFilter:C Benutzerdefinierter Positions-Filter

Hierarchie:

TBePrintData -> TBeOfferData

Hinweise:

Das Objekt basiert auf der Parent-Klasse TBePrintData

Beispiel:

TBePrintData kann nicht autark eingesetzt werden!


TBePrintData

codeblock
TBePrintData

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


TBeRemovalData, TBeCumRemovalData

codeblock
TBeRemovalData, TBeCumRemovalData

TBeRemovalData, TBeCumRemovalData

Neue Belegdruck-Klassen zum Druck von Einzel- bzw. Sammelentnahmescheinen.

neue 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 basiert auf den Parent-Klassen 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,


TBeUserCombo

codeblock
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


TBeUserList

codeblock
TBeUserList

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


TBeXMLAttribute

codeblock
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>


TBeXMLElement

codeblock
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 (ID:27329)

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:

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>


TBeXMLReader

codeblock
TBeXMLReader

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


TBeXMLWriter

codeblock
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

Verwendung:

Es ist die folgende Aufruf-Hierarchie der einzelnen Eigenschaften zu beachten:

· 1..1 BeginElement

o       0..n WriteAttrib

o       0..1 WriteValue

o       0..n BeginElement

§ 0..n WriteAttrib

§ 0..1 WriteValue

§ 0..n BeginElement

(...)

§ 0..n EndElement

o       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.' ),


TDataBase

codeblock
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),


TDBIndiFilterEx

codeblock
TDBIndiFilterEx

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com


TPeriodTimer

codeblock
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

codeblock
TTreeNodeEx

TTreeNodeEx

Klasse zur Datenhaltung einer Baumstruktur für TTreeViewEx.

Eigenschaften:

Allgemeine-Eigenschaften

Text Name des Baumknotens

Parent Vaterknoten (Objekt: TTreeNodeEx)

HasChildren TRUE wenn Baumknoten Kindknoten besitzt

Value Optionaler Wert des Baumknotens

Aktive-Eigenschaften (Methoden)

Focused TRUE wenn Baumknoten den Eingabefokus hat, sonst FALSE

ImageIndex Index des Images für den Baumknoten

SelectedIndex Index des Images für den Baumknoten im selektierten Zustand

StateIndex Index des Images für den Baumknoten für anderen Zustand

FirstChild Gibt den ersten Kindknoten des aktuellen Knoten zurück, falls vorhanden (Objekt: TTreeNodeEx)

LastChild Gibt den letzten Kindknoten 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 einen Kindknoten zum aktuellen Knoten hinzu und liefert diesen zurück (Objekt: TTreeNodeEx)

FreeTree Löscht die aktuelle Baumstruktur vollständig

DeleteNode Löscht den aktuellen Knoten

DeleteChildNodes Löscht alle Kindknoten des aktuellen Knoten

CollapseNode Klappt die Baumstruktur unterhalb des aktuellen Knoten zusammen

ExpandNode Entfaltet die Baumstruktur unterhalb des aktuellen Knoten

Beispiel:

// 1. Anfügen eines Baumknotens auf Rootebene

       // ...

       // MyTree ist ein TTreeViewEx

       oMyTree := FindObject( oForm, "MyTree" ),

       // ...

       oNode := CollAdd(oMyTree.Items),

       oNode.Text := "Mein neuer Knoten",

       oNode.ImageIndex := 0,

       oNode.SelectedIndex := 0,

       oNode.StateIndex := 0,

       oNode.Value := "Extra Wert",

       // ...

// 2. Anfügen eines Kindknotens

       // ...

       // MyTree ist ein TTreeViewEx

       oMyTree := FindObject( oForm, "MyTree" ),

       // ...

       oSelected := oMyTree.Selected,

        oChild      := oSelected.AddChild,

        oChild.Text := "Mein Kindknoten",

       // ...


TTreeViewEx

codeblock
TTreeViewEx

This document is created from a Word file automatically by an unregistered copy of Word-2-CHM Pro.
The content of this chapter is skipped, please register Word-2-CHM Pro to get full features.
For registration information, please refer to: http://www.macrobject.com