PMS32 Online- Hilfereferenz

MY.FUNCTIONS.BARCODES

BarCodes - Umwandeln und Berechnen von Barcodes. EAN13, EAN8, CODE39 und CODE128


Hilfe: Barcode Funktionen
Umwandeln und Berechnen von Barcodes. EAN13, EAN8, CODE39, CODE128 und andere.
Wenn Sie diese Funktionen für die Ausgabe von Barcodes nutzen, müssen Sie die von PMS mitgelieferten Fonts installieren! Alle Druckfunktionen funktionieren nur mit den mitgelieferten Fonts!
Diverse BarCodes haben Einschränkungen, was die Ausgabe von "gültigen" Zeichen angeht. Um diese Zeichen herauszufinden sehen Sie sich bitte das Codebeispiel an.


Code: Barcode Funktionen
*/ Codebeispiel zur Ermittlung der "gültigen" Zeichen bei verschiedenen BarCodes
*/ Dieses Beispiel kann nur als Programm ausgeführt werden!
*/ Sie können auch PMS32K.EXE (SQL-Manager) verwenden!
LOCAL lcText AS String, lcFile AS String, loBarCode AS My_Fu_BarCodes
*/ Die Datei wird auf dem Desktop abgelegt
lcFile = My.Systems.Computer.Desktop + "BarCode.txt"
loBarCode = My.Functions.BarCodes
*/ Jetzt erzeugen wir den Text ...
TEXT TO m.lcText NOSHOW TEXTMERGE PRETEXT 3
CODE-128:	<<loBarCode.Code128(.NULL.)>>
CODEABAR:	<<loBarCode.CodeABar(.NULL.)>>
CODE-25INT:	<<loBarCode.Code25int(.NULL.)>>
CODE-25IND:	<<loBarCode.Code25ind(.NULL.)>>
CODE-39:	<<loBarCode.Code39(.NULL.)>>
CODE-39EX:	<<loBarCode.Code39EX(.NULL.)>>
CODE-93:	<<loBarCode.Code93(.NULL.)>>
CODE-93EX:	<<loBarCode.Code93EX(.NULL.)>>
EANCODE:	<<loBarCode.EanCode(.NULL.)>>
ENDTEXT
*/ Jetzt den String ausgeben...
=STRTOFILE(m.lcText,m.lcFile,0)

Memberliste von BarCodes


Liste der Methoden von BarCodes


Codabar() - Druckstring für CODABAR

Rückgabe:[String], Gibt einen druckbaren String für Codabar Barcode zurück
Hilfeinformation
Rückgabe:[String], Gibt einen druckbaren String für Codabar Barcode zurück

Aufrufinformation
String = My.Functions.BarCodes.Codabar(tcCodaBar AS String)
String = My.Functions.BarCodes.Codabar(tcCodaBar)
Codeinformation
*/ Beispielcode im Report:
My.Functions.BarCodes.Codabar(b01.idb01)

Code128() - Druckstring für CODE-128

Rückgabe:[String], Gibt eine Zeichenfolge für den Ausdruck von Code128 zurück. Incl. Prüfziffer, Randzone und Ruhezone
Hilfeinformation
Rückgabe:[String], Gibt eine Zeichenfolge für den Ausdruck von Code128 zurück. Incl. Prüfziffer, Randzone und Ruhezone

Aufrufinformation
String = My.Functions.BarCodes.Code128(tcCode128 AS STRING)
String = My.Functions.BarCodes.Code128(tcCode128)
Codeinformation
*/ Beispielcode im Report:
My.Functions.BarCodes.Code128(RTRIM(b01.artnr))

Code128PM1() - Prüfung auf NUR Ziffern

Unterroutine zu Code128
Hilfeinformation
Unterroutine zu Code128

Aufrufinformation
Variant = My.Functions.BarCodes.Code128PM1()
Codeinformation


Code25Ind() - Druckstring für CODE-25IND

Rückgabe:[String], Gibt einen druckbaren String für Code 25 Industrial zurück
Hilfeinformation
Rückgabe:[String], Gibt einen druckbaren String für Code 25 Industrial zurück

Aufrufinformation
String = My.Functions.BarCodes.Code25Ind(tcCode25 AS String)
String = My.Functions.BarCodes.Code25Ind(tcCode25)
Codeinformation
*/ Beispielcode im Report:
My.Functions.BarCodes.Code25Ind(b01.idb01)

Code25Int() - Druckstring für CODE-25INT

Rückgabe:[String], Gibt einen druckbaren String für Code 25 Interleave zurück
Hilfeinformation
Rückgabe:[String], Gibt einen druckbaren String für Code 25 Interleave zurück

Aufrufinformation
String = My.Functions.BarCodes.Code25Int(tcCode25 AS STRING)
String = My.Functions.BarCodes.Code25Int(tcCode25)
Codeinformation
*/ Beispielcode im Report:
My.Functions.BarCodes.Code25Ind(b01.idb01)

Code25PZ() - Prüfziffer für CODE-25IND/INT

Berechnung der Prüfziffer für Code25Ind und Code25Int
Hilfeinformation
Berechnung der Prüfziffer für Code25Ind und Code25Int

Aufrufinformation
Variant = My.Functions.BarCodes.Code25PZ(tcCode25 AS String)
Variant = My.Functions.BarCodes.Code25PZ(tcCode25)
Codeinformation


Code39() - Durckstring für CODE-39

Rückgabe:[String], Gibt den String für den Ausdruck eines Code 39 Barcodes zurück.
Hilfeinformation
Rückgabe:[String], Gibt den String für den Ausdruck eines Code 39 Barcodes zurück.

Aufrufinformation
String = My.Functions.BarCodes.Code39(tcCode39 AS String,tlWithPZ AS Boolean)
String = My.Functions.BarCodes.Code39(tcCode39,tlWithPZ)
Codeinformation
*/ Beispielcode im Report:
My.Functions.BarCodes.Code39(RTRIM(b01.artnr))

Code39EX() - Druckstring CODE-39EX

Rückgabe:[String], Gibt einen druckbaren String für Code39 Extended zurück
Hilfeinformation
Rückgabe:[String], Gibt einen druckbaren String für Code39 Extended zurück

Aufrufinformation
String = My.Functions.BarCodes.Code39EX(tcCode39 AS STRING,tlWithPZ AS Boolean)
String = My.Functions.BarCodes.Code39EX(tcCode39,tlWithPZ)
Codeinformation
*/ Beispielcode im Report:
My.Functions.BarCodes.Code39EX(RTRIM(b01.artnr))

Code39PZ() - Prüfziffer für CODE-39/EX

Rückgabe:[String], Rückgabe für druckbare Code 39 Zeichen incl. Prüfziffer
Hilfeinformation
Rückgabe:[String], Rückgabe für druckbare Code 39 Zeichen incl. Prüfziffer

Aufrufinformation
String = My.Functions.BarCodes.Code39PZ(tcCode39 AS String,tcCodeBar AS String)
String = My.Functions.BarCodes.Code39PZ(tcCode39,tcCodeBar)
Codeinformation


Code93() - Druckstring CODE-93

Rückgabe:[String], Gibt einen druckbaren String für Code93 zurück
Hilfeinformation
Rückgabe:[String], Gibt einen druckbaren String für Code93 zurück

Aufrufinformation
String = My.Functions.BarCodes.Code93(tcCode93 AS STRING,tlWithPZ AS Boolean)
String = My.Functions.BarCodes.Code93(tcCode93,tlWithPZ)
Codeinformation
*/ Beispielcode im Report:
My.Functions.BarCodes.Code93(RTRIM(b01.artnr))

Code93EX() - Druckstring CODE-93EX

Rückgabe:[String], Gibt einen druckbaren String für Code93 Extended zurück
Hilfeinformation
Rückgabe:[String], Gibt einen druckbaren String für Code93 Extended zurück

Aufrufinformation
String = My.Functions.BarCodes.Code93EX(tcCode93 AS STRING,tlWithPZ AS Boolean)
String = My.Functions.BarCodes.Code93EX(tcCode93,tlWithPZ)
Codeinformation


Code93PZ() - Prüfziffer für CODE-93/EX

Berechnung der Prüfziffer aus Code93
Hilfeinformation
Berechnung der Prüfziffer aus Code93

Aufrufinformation
Variant = My.Functions.BarCodes.Code93PZ(tcCode93 AS String,tcCodeBar AS String)
Variant = My.Functions.BarCodes.Code93PZ(tcCode93,tcCodeBar)
Codeinformation
*/ Beispielcode im Report:
My.Functions.BarCodes.Code93EX(RTRIM(b01.artnr))

CodeQR() - Ausgabe eines QR-Codes

Gibt ein Bild mit QR-Code zurück
Hilfeinformation
Diese Funktion gibt einen QR-Code als Bild zurück. Das Bild wird im temporären Verzeichnis von PMS32C gespeichert und kann auch bei einer Reportausgabe genutzt werden.
Die Übergabeparameter sind folgende:
tcText AS String, hier kann ein langer Text übergeben werden.
tnSize AS Number, hier kann die Bildgröße angegeben werden. Der Wertebereich ist 2-12.
tnType AS Number, hier kann der Bildtyp angegeben werden. Der Wertebereich ist 0-2.

Zur Größe des Bildes (tnSize):
  *     2 = 66 x 66 (in Pixel)
  *     3 = 99 x 99
  *     4 = 132 x 132
  *     5 = 165 x 165
  *     6 = 198 x 198
  *     7 = 231 x 231
  *     8 = 264 x 264
  *     9 = 297 x 297
  *    10 = 330 x 330
  *    11 = 363 x 363
  *    12 = 396 x 396

 Der Bildtyp (tnType):
  *     0 = BMP
  *     1 = JPG
  *     2 = PNG

Im Standard sind eingestellt:
tnSize = 2, 66x66 Pixel
tnType = 2, PNG Bild (Hinweis: Ein PNG Bild benötigt den kleinsten Speicherplatz!)

Aufrufinformation
Variant = My.Functions.BarCodes.CodeQR(tcText AS STRING , tnSize AS INTEGER , tnType AS INTEGER)
Variant = My.Functions.BarCodes.CodeQR(tcText,tnSize,tnType)
Codeinformation
*/ Ein Beispiel, My wird vorausgesetzt...
LOCAL lcText AS String , lcBildDatei AS String

*/ Der Text...
TEXT TO lcText NOSHOW
Michael Bergner
Treppenstraße 53
66787 Wadgassen
ENDTEXT

*/ Bildgröße 66x66, Bildtyp=PNG
lcBildDatei = My.Functions.Barcodes.CodeQR(m.lcText)
*/ Bildgröße 99x99
lcBildDatei = My.Functions.Barcodes.CodeQR(m.lcText,3)
*/ Bildtyp=BMP, Bildgröße ist Voreinstellung (66x66)
lcBildDatei = My.Functions.Barcodes.CodeQR(m.lcText,,0)

In einem Report kann ein Image verwendet werden...
Controlsource = 'Expression or variable name' = My.Functions.Barcodes.CodeQR(m.lcText)
Bildanpassung = 'Scale contains, retain shape'

CodeQRc() - Ausgabe eines QR-Codes

Wie CodeQR jedoch mit anderen Parametern
Hilfeinformation
Diese Funktion gibt einen QR-Code als Bild zurück. Das Bild wird im temporären Verzeichnis von PMS32C gespeichert und kann auch bei einer Reportausgabe genutzt werden.
Die Übergabeparameter sind folgende:
tcText AS String, hier kann ein langer Text übergeben werden.
tnSize AS Number, hier kann die Bildgröße angegeben werden. Der Wertebereich ist 0-1000
tcType AS String, hier kann der Bildtyp angegeben werden. Der Wertebereich BMP,JPG,PNG

Zur Größe des Bildes (tnSize):
Die Bildgröße wird nach Vorgabe berechnet! Wenn Sie z.B. 100 übergeben so wird die eigentliche Bildgröße 99x99 Pixel sein!
Bei einer Größe von 300, wird das Bild 297x297 Pixel groß sein...
  *    <98 = 66 x 66 (in Pixel, kleinstes Bild)
  *     >98 = 99 x 99
  *     >131 = 132 x 132
  *     >164 = 165 x 165
  *     >197 = 198 x 198
  *     >230 = 231 x 231
  *     >265 = 264 x 264
  *     >296 = 297 x 297
  *    >329 = 330 x 330
  *    >362 = 363 x 363
  *    >395 = 396 x 396 (größtes Bild)

 Der Bildtyp (tcType):
  *     "BMP"
  *     "JPG"
  *     "PNG"

Aufrufinformation
Variant = My.Functions.BarCodes.CodeQRc(tcText AS STRING , tnSize AS NUMBER , tcType AS STRING)
Variant = My.Functions.BarCodes.CodeQRc(tcText,tnSize,tcType)
Codeinformation
*/ Ein Beispiel, My wird vorausgesetzt...
LOCAL lcText AS String , lcBildDatei AS String

*/ Der Text...
TEXT TO lcText NOSHOW
Michael Bergner
Treppenstraße 53
66787 Wadgassen
ENDTEXT

*/ Bildgröße 66x66, Bildtyp=PNG
lcBildDatei = My.Functions.Barcodes.CodeQRc(m.lcText)
*/ Bildgröße 99x99
lcBildDatei = My.Functions.Barcodes.CodeQRc(m.lcText,99)
*/ Bildtyp=BMP, Bildgröße ist Voreinstellung (66x66)
lcBildDatei = My.Functions.Barcodes.CodeQRc(m.lcText,,"BMP")

EanCode() - Druckstring EAN-CODE

Rückgabe:[String], Gibt den Zeichenstring für die Ausgabe eines EAN-13 bzw. EAN-8 Codes per Font zurück. Leerstring ist Fehler
Hilfeinformation
Rückgabe:[String], Gibt den Zeichenstring für die Ausgabe eines EAN-13 bzw. EAN-8 Codes per Font zurück. Leerstring ist Fehler.
Ab Version 1.0.04#1300 wurden in verschiedenen Tabellen EAN Felder eingebaut, damit man die Werte mit den EAN Funktionen von PMS einfach Drucken und auch Scannen kann. Der Artikelstamm enthält schon seit der Version (16Bit) ein EAN Feld. Neu hinzugekommen sind EAN Felder in den Tabellen: E10,K10,J40,C02,V05 und V04 (BDE-Tabellen)

Aufrufinformation
String = My.Functions.BarCodes.EanCode(tvEanCode AS Variant)
String = My.Functions.BarCodes.EanCode(tvEanCode)
Codeinformation
*/ Beispielcode im Report:
My.Functions.BarCodes.EanCode(My.Functions.BarCodes.IdToEan(b01.idb01,b01.ipb01))
*/ Oder wenn der EAN Code des Artikels vorliegt:
My.Functions.BarCodes.EanCode(b01.ieb01)
*/ Oder aus den "neuen" Tabellen
My.Functions.BarCodes.EanCode(k10.iek10)
My.Functions.BarCodes.EanCode(e10.iee10)
My.Functions.BarCodes.EanCode(j40.iej40)
My.Functions.BarCodes.EanCode(c02.iec02)
My.Functions.BarCodes.EanCode(v04.iev04)
My.Functions.BarCodes.EanCode(v05.iev05)


EanCodePP() - EAN-CODE incl. Prüfziffer

Rückgabe:[String], Gibt einen EAN Code 7 oder 12 Zeichen incl. der Prüfziffer zurück. Es wird lediglich der Code erzeugt, nicht der Druckcode!. Rückgabe ist 8 oder 13 Zeichen
Hilfeinformation
Rückgabe:[String], Gibt einen EAN Code 7 oder 12 Zeichen incl. der Prüfziffer zurück. Es wird lediglich der Code erzeugt, nicht der Druckcode!. Rückgabe ist 8 oder 13 Zeichen

Aufrufinformation
String = My.Functions.BarCodes.EanCodePP(tvEanCode AS Variant)
String = My.Functions.BarCodes.EanCodePP(tvEanCode)
Codeinformation
*/ Codebeispiel
*/ Wir erzeugen uns aus der Projekt-ID k10.idk10 eine 7 Stellige Nummer ohne Prüfziffer und verlängern diese dann auf EAN-8
LOCAL lcIdk10Short AS String, lcEan8 AS String
USE k10
lcIdk10Short = RIGHT(k10.idk10,7)	&& Sofern die K10 zur Verfügung steht!
lcEan8 = My.Functions.BarCodes.EanCodePP(m.lcIdk10Short)
WAIT WINDOW "Beispiel EAN-8: IDK10: "+k10.idk10+" => Short: "+m.lcIdk10Short+" => EAN8: "+m.lcEan8
USE IN (SELECT("k10"))

EanToId() - EAN-CODE nach ID und IP umwandeln

Rückgabe:[String], Umkehrfunktion von IdToEan() Rückgabe ist die ID des EAN-13 Codes. IP kann als Referenz mitgegeben werden
Hilfeinformation
Rückgabe:[String], Umkehrfunktion von IdToEan() Rückgabe ist die ID des EAN-13 Codes. IP kann als Referenz mitgegeben werden

Aufrufinformation
String = My.Functions.BarCodes.EanToId(tcEanCode AS STRING,tcID AS STRING @,tcIP AS STRING @)
String = My.Functions.BarCodes.EanToId(tcEanCode,@tcID,@tcIP)
Codeinformation
*/ Codebeispiel aus IdToEan entnommen
LOCAL lcEanK10 AS String,lcIdk10,lcIp
*/ Projektdatei öffnen und ans Ende gehen
USE k10
GO BOTTOM
*/ Jetzt den EAN Code berechnen incl. Prüfziffer
lcEanK10 = My.Functions.BarCodes.IdToEan(k10.idk10,"109")
=My.Functions.BarCodes.EanToId(m.lcEanK10,@lcIdk10,@lcIp)
WAIT WINDOW k10.idk10+" = "+m.lcIdk10
USE IN (SELECT("k10"))

Ean_13() - Unterroutine nicht verwenden

Rückgabe:[String], Berechnet die Zeichenfolge für die Ausgabe eines EAN-13 Codes. Die Zeichenfolge muss mit dem korrekten EAN-Font ausgegeben werden!
Hilfeinformation
Rückgabe:[String], Berechnet die Zeichenfolge für die Ausgabe eines EAN-13 Codes. Die Zeichenfolge muss mit dem korrekten EAN-Font ausgegeben werden!

Aufrufinformation
String = My.Functions.BarCodes.Ean_13(tcEanCode AS STRING)
String = My.Functions.BarCodes.Ean_13(tcEanCode)
Codeinformation


Ean_8() - Unterroutine nicht verwenden

Rückgabe:[String], Berechnet die Zeichenfolge für die Ausgabe eines EAN-8 Codes. Die Zeichenfolge muss mit dem korrekten EAN-Font ausgegeben werden!
Hilfeinformation
Rückgabe:[String], Berechnet die Zeichenfolge für die Ausgabe eines EAN-8 Codes. Die Zeichenfolge muss mit dem korrekten EAN-Font ausgegeben werden!

Aufrufinformation
String = My.Functions.BarCodes.Ean_8(tcEanCode AS STRING)
String = My.Functions.BarCodes.Ean_8(tcEanCode)
Codeinformation


Ean_PZ() - Prüfziffer für EAN-Codes

Rückgabe:[String], Rückgabe der Prüfziffer eines EAN Codes. Wobei der übergebene Code entweder 7 oder 12 Zeichen lang ist
Hilfeinformation
Rückgabe:[String], Rückgabe der Prüfziffer eines EAN Codes. Wobei der übergebene Code entweder 7 oder 12 Zeichen lang ist

Aufrufinformation
String = My.Functions.BarCodes.Ean_PZ(tcEanCode AS STRING)
String = My.Functions.BarCodes.Ean_PZ(tcEanCode)
Codeinformation


Ean_XP() - EAN-CODE incl. Prüfziffer

Rückgabe:[String], Gibt den EAN-Code (8/13) incl. der fehlenden Prüfziffer zurück. Rückgabe ist entweder EAN-8 oder EAN-13
Hilfeinformation
Rückgabe:[String], Gibt den EAN-Code (8/13) incl. der fehlenden Prüfziffer zurück. Rückgabe ist entweder EAN-8 oder EAN-13

Aufrufinformation
String = My.Functions.BarCodes.Ean_XP(tcEanCode AS STRING)
String = My.Functions.BarCodes.Ean_XP(tcEanCode)
Codeinformation


Evaluate() - Ausführen eines Befehls

Mit Setzen dieser Property auf .T. kann die Form zentriert werden.
Hilfeinformation
Ausführen eines VFP-Befehls mit EVALUATE().
Achtung! Eventuell müssen Variablen als PRIVATE deklariert werden!ENDTEXT
*
TEXT TO lcMessage NOSHOW TEXTMERGE
Ausführen eines VFP-Befehls mit EVALUATE().

Aufrufinformation
Variant = My.Functions.BarCodes.Evaluate(pcExpression AS STRING,pvDefault AS Variant,tvP1 AS Variant,tvP2 AS Variant,tvP3 AS Variant,tvP4 AS Variant, tvP5 AS Variant,tvP6 AS Variant,tvP7 AS Variant,tvP8 AS Variant,tvP9 AS Variant)
Variant = My.Functions.BarCodes.Evaluate(pcExpression,pvDefault,tvP1,tvP2,tvP3,tvP4,tvP5,tvP6,tvP7,tvP8,tvP9)
Codeinformation
*/ Mit Evaluate kann eine Befehlszeile ausgeführt werden
*/ Eventuell benutzte Variablen sind PRIVATE zu deklarieren
PRIVATE pnVar1 AS Number , pnVar2 AS Number
LOCAL lnVar AS Number
STORE 2 TO pnVar1,pnVar2
lnVar = My.Functions.BarCodes.Evaluate([m.pnVar1+m.pnVar2])
WAIT WINDOW m.lnVar		&& Ergibt 4...	ENDTEXT

ExecScript() - Ausführen eines VFP-Scripts

Ausführen eines VFP-Scripts incl. der Prüfung, ob ein ALIAS besteht.
Hilfeinformation
Ausführen eines VFP-Scripts incl. der Prüfung, ob ein ALIAS besteht.

Aufrufinformation
Variant = My.Functions.BarCodes.ExecScript(_es_pcAlias AS STRING,_es_pcScript AS STRING,_es_tlBoolean AS Boolean, _es_tvP1 AS Variant,_es_tvP2 AS Variant,_es_tvP3 AS Variant,_es_tvP4 AS Variant,_es_tvP5 AS Variant,_es_tvP6 AS Variant, _es_tvP7 AS Variant,_es_tvP8 AS Variant,_es_tvP9 AS V)
Variant = My.Functions.BarCodes.ExecScript(_es_pcAlias,_es_pcScript,_es_tlBoolean,_es_tvP1,_es_tvP2,_es_tvP3,_es_tvP4,_es_tvP5,_es_tvP6,_es_tvP7,_es_tvP8,_es_tvP9)
Codeinformation
*/ Mit EXECSCRIPT kann ein VFP-Script ausgeführt werden
LOCAL lcScript AS String,lnVar1 AS Number,lnVar2 AS Number,lnVar AS Number
TEXT TO lcScript NOSHOW TEXTMERGE
LPARAMETERS tnVar1 AS Number @,tnVar2 AS Number @
tnVar1 = m.tnVar1 + 1
tnVar2 = m.tnVar2 - 2
RETURN m.tnVar1 + m.tnVar2
ENDTEXT
*/ Vorbelegen der Variablen (Parameter)
STORE 2 TO lnVar1,lnVar2
lnVar = My.Functions.BarCodes.ExecScript("",m.lcScript,0,@lnVar1,@lnVar2)
*/ und das Ergebnis...
WAIT WINDOW m.lnVar
WAIT WINDOW m.lnVar1
WAIT WINDOW m.lnVar2

ExecScriptP() - Ausführen eines VFP-Scripts

Ausführen eines VFP-Scripts incl. PARAMETER (Collection)
Hilfeinformation
Ausführen eines VFP-Scripts incl. PARAMETER (Collection)
Als Parameter wird eine Collection mit Informationen übergeben!

Aufrufinformation
Variant = My.Functions.BarCodes.ExecScriptP(tcScript AS STRING,toPara AS COLLECTION)
Variant = My.Functions.BarCodes.ExecScriptP(tcScript,toPara)
Codeinformation
*/ Mit EXECSCRIPTP kann ein VFP-Script ausgeführt werden
LOCAL lcScript AS String,lnVar AS Number,loColl AS Collection
loColl = CREATEOBJECT("Collection")
loColl.Add(2,"Var1")
loColl.Add(2,"Var2")
TEXT TO lcScript NOSHOW TEXTMERGE
LPARAMETERS toColl AS Collection
RETURN toColl.Item("Var1") + toColl.Item("Var2")
ENDTEXT
lnVar = My.Functions.BarCodes.ExecScriptP(m.lcScript,m.loColl)
*/ und das Ergebnis...
WAIT WINDOW m.lnVar

GetParameters() - Parameter to Collection

Wandelt übergebene Parameter in eine Collection um.
Hilfeinformation
Wandelt übergebene Parameter in eine Collection um.
Umkehrfunktion zu SetParameters.

Aufrufinformation
Variant = My.Functions.BarCodes.GetParameters(tvP1 AS Variant,tvP2 AS Variant,tvP3 AS Variant,tvP4 AS Variant,tvP5 AS Variant,tvP6 AS Variant,tvP7 AS Variant,tvP8 AS Variant,tvP9 AS Variant)
Variant = My.Functions.BarCodes.GetParameters(tvP1,tvP2,tvP3,tvP4,tvP5,tvP6,tvP7,tvP8,tvP9)
Codeinformation
*/ Hier können mehrere Parameter in eine Collection übertragen werden
LOCAL loCollection AS Collection , lni AS Integer , lcNames AS String
loCollection = My.Functions.BarCodes.GetParameters(1,DATE(),TIME())
WAIT WINDOW m.loCollection.Count		&& Anzahl der Werte (3)
*/ Die Namen der Parameter bestimmen
lcNames = ""
FOR m.lni = 1 TO m.loCollection.Count
	lcNames = m.lcNames + ";" + m.loCollection.GetKey(m.lni)
NEXT m.lni
WAIT WINDOW SUBSTR(m.lcNames,2)

GetParametersCount() - Parameter to Collection

Wandelt übergebene Parameter in eine Collection um.
Hilfeinformation
Wandelt übergebene Parameter in eine Collection um.
Jedoch wird als 'erster' Parameter die Anzahl der Parameter mitgegeben.

Aufrufinformation
Variant = My.Functions.BarCodes.GetParametersCount(tnCnt AS Number,tvP1 AS Variant,tvP2 AS Variant,tvP3 AS Variant,tvP4 AS Variant,tvP5 AS Variant,tvP6 AS Variant,tvP7 AS Variant,tvP8 AS Variant,tvP9 AS Variant)
Variant = My.Functions.BarCodes.GetParametersCount(tnCnt,tvP1,tvP2,tvP3,tvP4,tvP5,tvP6,tvP7,tvP8,tvP9)
Codeinformation
*/ Hier können mehrere Parameter in eine Collection übertragen werden
*/ Als Beispiel kann nur der Aufruf eines Scripts / einer Methode dienen
LPARAMETERS tp1 AS Variant , tp2 AS Variant , tp3 AS Variant 	&& Es könnten mehr sein!
LOCAL loCollection AS Collection , lni AS Integer
lni = PCOUNT()		&& Wieviele Parameter wurden übergeben?
loCollection = My.Functions.BarCodes.GetParametersCount(m.lni,m.tp1,m.tp2,m.tp3)
WAIT WINDOW m.loCollection.Count		&& Anzahl der Werte (?)

IdToEan() - ID und IP in einen EAN-CODE umwandeln

Rückgabe:[String], Umwandlung von ID und IP in einen EAN-13 Code. Rückgabe ist EAN-13 incl. Prüfziffer von IP+ID
Hilfeinformation
Rückgabe:[String], Umwandlung von ID und IP in einen EAN-13 Code. Rückgabe ist EAN-13 incl. Prüfziffer von IP+ID

Aufrufinformation
String = My.Functions.BarCodes.IdToEan(tcId AS String,tcIp AS String)
String = My.Functions.BarCodes.IdToEan(tcId,tcIp)
Codeinformation
*/ Codebeispiel:
LOCAL lcEanK10 AS String
*/ Projektdatei öffnen und ans Ende gehen
USE k10
GO BOTTOM
*/ Jetzt den EAN Code berechnen incl. Prüfziffer
lcEanK10 = My.Functions.BarCodes.IdToEan(k10.idk10,"109")
WAIT WINDOW "Beispiel EAN13: "+k10.idk10+" => EAN13: "+m.lcEanK10
USE IN (SELECT("k10"))

SetParameters() - Collection to Parameter

Wandelt eine übergebene Collection in Parameter um.
Hilfeinformation
Wandelt eine übergebene Collection in Parameter um.
Umkehrfunktion zu GetParameters.

Aufrufinformation
Variant = My.Functions.BarCodes.SetParameters(toPara AS Collection,tvP1 AS Variant @,tvP2 AS Variant @,tvP3 AS Variant @,tvP4 AS Variant @,tvP5 AS Variant @,tvP6 AS Variant @,tvP7 AS Variant @,tvP8 AS Variant @,tvP9 AS Variant @)
Variant = My.Functions.BarCodes.SetParameters(toPara,@tvP1,@tvP2,@tvP3,@tvP4,@tvP5,@tvP6,@tvP7,@tvP8,@tvP9)
Codeinformation
*/ Umwandeln einer Collection in Parameter
LOCAL loCollection AS Collection,lnVar1 AS Number,lnVar2 AS Number
loCollection = CREATEOBJECT("Collection")
=loCollection.Add(1,"tvp1")
=loCollection.Add(2,"tvp2")
=My.Functions.BarCodes.SetParameters(m.loCollection,@lnVar1,@lnVar2)
WAIT WINDOW m.lnVar1
WAIT WINDOW m.lnVar2

_SqlCount() - Anzahl der Datensätze

Anzahl der Datensätze eines SQL Statements ermitteln.
Hilfeinformation
Anzahl der Datensätze eines SQL Statements ermitteln.
Die Rückgabe ist Number oder .NULL.
Die Datenbankangaben:
      CSYSDIR! => My.Clients.Path.cSysDir
      CDBFDIR! => My.Clients.Path.cDbfDir
      CFRXDIR! => My.Clients.Path.cFrxDir
      CNETDIR! => My.Clients.Path.cNetDir
      CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.

Aufrufinformation
Variant = My.Functions.BarCodes._SqlCount(tcSql AS String)
Variant = My.Functions.BarCodes._SqlCount(tcSql)
Codeinformation
LOCAL lcSql AS String
lcSql = [SELECT COUNT(*) FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"]
IF My.Functions.BarCodes._SqlCount(m.lcSql)>0
	WAIT WINDOW "Es sind Daten vorhanden!"
ENDIF
*/ Bemerkung:
*/ Bei der Angabe der Datenbank, hier CSYSDIR!, wird der Wert gegen den Pfad ausgetauscht!

_SqlExist() - Gibt es Datensätze?

Werden Datensätze durch den SQL ermittelt?
Hilfeinformation
Werden Datensätze im SQL-Statement ermittelt?
Die Rückgabe ist Boolean oder .NULL.
Die Datenbankangaben:
      CSYSDIR! => My.Clients.Path.cSysDir
      CDBFDIR! => My.Clients.Path.cDbfDir
      CFRXDIR! => My.Clients.Path.cFrxDir
      CNETDIR! => My.Clients.Path.cNetDir
      CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.

Aufrufinformation
Variant = My.Functions.BarCodes._SqlExist(tcSql AS String)
Variant = My.Functions.BarCodes._SqlExist(tcSql)
Codeinformation
LOCAL lcSql AS String
lcSql = [SELECT ipy01 FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"]
IF My.Functions.BarCodes._SqlExist(m.lcSql)		&& Gibt Boolean zurück
	WAIT WINDOW "Es sind Daten vorhanden!"
ENDIF
*/ Bemerkung:
*/ Bei der Angabe der Datenbank, hier CSYSDIR!, wird der Wert gegen den Pfad ausgetauscht!

_SqlRead() - Lesen von SQL Daten

Ausführen eines SQL-Statements und Rückgabe des angegebenen Cursors.
Hilfeinformation
Ausführen eines SQL-Statements und Rückgabe des angegebenen Cursors.
Die Rückgabe ist Boolean oder .NULL.
Die Datenbankangaben:
      CSYSDIR! => My.Clients.Path.cSysDir
      CDBFDIR! => My.Clients.Path.cDbfDir
      CFRXDIR! => My.Clients.Path.cFrxDir
      CNETDIR! => My.Clients.Path.cNetDir
      CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.

Aufrufinformation
Variant = My.Functions.BarCodes._SqlRead(tcSql AS String,tcAlias AS String,tvTable AS Variant,tcIndex AS String)
Variant = My.Functions.BarCodes._SqlRead(tcSql,tcAlias,tvTable,tcIndex)
Codeinformation
LOCAL lcSql AS String
lcSql = [SELECT * FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"]
IF My.Functions.BarCodes._SqlRead(m.lcSql,"qY01",2)		&& Gibt Boolean zurück
	ACTIVATE _SCREEN
	BROWSE
ENDIF
*/ Bemerkung:
*/ Bei der Angabe der Datenbank, hier CSYSDIR!, wird der Wert gegen den Pfad ausgetauscht!
*/ Die einzelnen Parameter:
*/	tcSql AS String,tcAlias AS String,tvTable AS Variant,tcIndex AS String
*/	Ein muss sind: tcSql AS String,tcAlias AS String
*/	tvTable kann angegeben werden mit:
*/		.F.		=> Cursor incl. __Changed [L] und __New [L], .T. - Tabelle incl.
*/		Bit-0	=> 1 - Als Tabelle, 0 - Als Cursor
*/		Bit-1	=> 1 - Ohne __Changed und __New, 0 - Mit...
*/	tcIndex kann angegeben werden, wenn Indizes auf dem Cursor / der Tabelle benötigt werden.
*/		"IndexKey1#IndexTag1;IndexKey2#IndexTag2;...."
*/		Wird kein IndexTag angegeben und der IndexKey NICHT aus einer Funktion ermittelt, so hat der IndexKey den Namen des IndexTag!
*/		Wird der IndexKey aus einer Funktion gebildet und es ist kein IndexTag angegeben, so erhält der IndexTag den Namen _Index<Nummer>

_SqlReadArray() - SQL Daten in ein Array

Ausführen eines SQL-Statements in ein Array und Rückgabe der Datensätze.
Hilfeinformation
Ausführen eines SQL-Statements in ein Array und Rückgabe ob Daten ermittelt wurden.
Die Rückgabe ist Boolean oder .NULL.
Die Datenbankangaben:
      CSYSDIR! => My.Clients.Path.cSysDir
      CDBFDIR! => My.Clients.Path.cDbfDir
      CFRXDIR! => My.Clients.Path.cFrxDir
      CNETDIR! => My.Clients.Path.cNetDir
      CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.

Aufrufinformation
Variant = My.Functions.BarCodes._SqlReadArray(tcSql AS String,toObject AS Object,taArray)
Variant = My.Functions.BarCodes._SqlReadArray(tcSql,toObject,taArray)
Codeinformation
LOCAL lcSql AS String , laErg[1] , loObject AS Object
lcSql = [SELECT * FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"]
*/ Ausführen in ein lokales Array
IF My.Functions.BarCodes._SqlReadArray(m.lcSql,.NULL.,@laErg)			&& Es gibt Datensätze...
	*/ FOR i = ... NEXT i
ENDIF
*/ Ausführen in ein Objekt-Array
loObject = CREATEOBJECT("EMPTY")
=ADDPROPERTY(loObject,"aErg[1]")
IF My.Functions.BarCodes._SqlReadArray(m.lcSql,m.loObject,"aErg")		&& Es gibt Datensätze...
	*/ FOR i = ... NEXT i
ENDIF

_SqlReadCollection() - SQL Daten in eine Collection

Ausführen eines SQL-Statements in eine Collection und Rückgabe der Collection.
Hilfeinformation
Ausführen eines SQL-Statements in eine Collection und Rückgabe der Collection.
Die Rückgabe ist Collection oder .NULL.
Die Datenbankangaben:
      CSYSDIR! => My.Clients.Path.cSysDir
      CDBFDIR! => My.Clients.Path.cDbfDir
      CFRXDIR! => My.Clients.Path.cFrxDir
      CNETDIR! => My.Clients.Path.cNetDir
      CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.

Aufrufinformation
Variant = My.Functions.BarCodes._SqlReadCollection(tcSql AS String,tcIndex AS String)
Variant = My.Functions.BarCodes._SqlReadCollection(tcSql,tcIndex)
Codeinformation
LOCAL lcSql AS String , loColl AS Collection
lcSql = [SELECT * FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"]
*/ Normale Ausführung OHNE Indexangabe.
*/ Die Keys der Collection sind fortlaufend nummeriert!
loColl= My.Functions.BarCodes._SqlReadCollection(m.lcSql)
WAIT WINDOW loColl.GetKey(1)		&& "0000001"
*/ Hat der SQL einen eindeutigen Key so kann dieser benutzt werden!
loColl= My.Functions.BarCodes._SqlReadCollection(m.lcSql,"ipy01")
WAIT WINDOW loColl.GetKey(1)		&& "SU0"

_SqlReadValue() - SQL Abfrage einer Value

Ausführen eines SQL-Statements und Rückgabe der Value des ERSTEN Feldes.
Hilfeinformation
Ausführen eines SQL-Statements und Rückgabe der Value des ERSTEN Feldes.
Die Rückgabe ist Variant oder .NULL.
Die Datenbankangaben:
      CSYSDIR! => My.Clients.Path.cSysDir
      CDBFDIR! => My.Clients.Path.cDbfDir
      CFRXDIR! => My.Clients.Path.cFrxDir
      CNETDIR! => My.Clients.Path.cNetDir
      CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.

Aufrufinformation
Variant = My.Functions.BarCodes._SqlReadValue(tcSql AS String,tiValue AS Integer)
Variant = My.Functions.BarCodes._SqlReadValue(tcSql,tiValue)
Codeinformation
LOCAL lcSql AS String , lvValue AS Variant
*/ Gibt den Inhalt der ERSTEN Spalte zurück
lcSql = [SELECT bezei,kurz,master FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"]
lvValue = My.Functions.BarCodes._SqlReadValue(m.lcSql)		&& y01.Bezei
*/ Gibt den Inhalt der ZWEITEN Spalte zurück
lcSql = [SELECT bezei,kurz,master FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"]
lvValue = My.Functions.BarCodes._SqlReadValue(m.lcSql,2)	&& y01.Kurz

_SqlUpdate() - Einen Cursor updaten

UPDATE eines lokalen Cursors gegenüber der angegebenen Tabelle durchführen.
Hilfeinformation
UPDATE eines lokalen Cursors gegenüber der angegebenen Tabelle durchführen.
Die Rückgabe ist Boolean oder .NULL.
Der Cursor MUSS die Spalten __Changed und __New enthalten!
Außerdem MUSS die Zieltabelle die Spalte LastUpd enthalten!

Aufrufinformation
Variant = My.Functions.BarCodes._SqlUpdate(tcTable AS STRING,tcAlias AS STRING,tcIdName AS STRING,tcFilter AS String)
Variant = My.Functions.BarCodes._SqlUpdate(tcTable,tcAlias,tcIdName,tcFilter)
Codeinformation
LOCAL lcSql AS String , tlUpdate AS Boolean
lcSql = [SELECT * FROM CDBFDIR!B01 WHERE b01.artnr='SIE.3TH']
*/ Lesen der Daten vom Backend
IF My.Functions.BarCodes._SqlRead(m.lcSql,"qB01",1)
	*/ Ändern der Daten...
	SELECT qB01
	REPLACE ALL match WITH "LEISTUNGSSCHALTER",__Changed WITH .T.
	tlUpdate = My.Functions.BarCodes._SqlUpdate("B01",ALIAS(),"IDB01")
	IF NOT m.tlUpdate
		WAIT WINDOW My.Functions.BarCodes.cLastError
	ENDIF
ENDIF

_SqlUpdateAll() - Eine Cursorliste updaten

UPDATE eines lokalen Cursors gegenüber der angegebenen Tabelle durchführen.
Hilfeinformation
UPDATE mehrerer lokaler Cursor gegenüber den angegebenen Tabellen durchführen.
Die Rückgabe ist Boolean oder .NULL.
Die Cursor MUSS die Spalten __Changed und __New enthalten!
Außerdem MUSS die Zieltabelle die Spalte LastUpd enthalten!

Aufrufinformation
;Filter1 = My.Functions.BarCodes._SqlUpdateAll(tcList AS STRING)
;Filter1 = My.Functions.BarCodes._SqlUpdateAll(tcList)
Codeinformation
LOCAL tlUpdate AS Boolean
*/ Lesen der Daten vom Backend
IF My.Functions.BarCodes._SqlRead([SELECT * FROM CDBFDIR!B01 WHERE b01.artnr='SIE.3TH'],"qB01",1) AND ;
	My.Functions.BarCodes._SqlRead([SELECT d03.* FROM CDBFDIR!D03 INNER JOIN CDBFDIR!B01 ON d03.idd03=b01.idd03 WHERE b01.artnr='SIE.3TH'],"qD03",1)
	*/ Ändern der Daten...
	UPDATE qB01 SET lang = qD03.bez, __Changed = .T. FROM qD03 WHERE qB01.idd03=qD03.idd03
	UPDATE qD03 SET ekpdatum = My.xDate, __Changed = .T.
	tlUpdate = My.Functions.BarCodes._SqlUpdateAll("B01;QB01;IDB01#D03;QD03;IDD03")
	IF NOT m.tlUpdate
		WAIT WINDOW My.Functions.BarCodes.cLastError
	ENDIF
ENDIF
*/ Hinweis:
*/	Der Update der einzel angegebenen Cursor wird mit einer Transaktion durchgeführt!
*/	Läuft einer der Updates auf einen Fehler wird die Änderung rückgängig gemacht!
*/ Der String ist folgendermaßen aufgebaut:
*/	"Tableinfo1#Tableinfo2#Tableinfo3#..."
*/ Tableinfo:
*/	Tabelle;Cursor;ID-Field[;Filter]


Liste der Properties von BarCodes


cLastError - Letzter Fehler

Mit dieser Property kann der letzte Fehler im Klartext abgerufen werden.
Hilfeinformation
Mit dieser Property kann der letzte Fehler im Klartext abgerufen werden.

Aufrufinformation
String = My.Functions.BarCodes.cLastError
Codeinformation
*/ Vorausgesetzt wird, dass My bekannt ist...
LOCAL lcError AS String
lcError = My.Functions.BarCodes.cLastError

cMethod - Methode des Fehlers

Methode in der der letzte Fehler auftrat.
Hilfeinformation
Methode in der der letzte Fehler auftrat.
Aufbau: [Fehlernummer] [Methode] [Zeilennummer] [Message]

Aufrufinformation
String = My.Functions.BarCodes.cMethod
Codeinformation
*/ Abruf...
WAIT WINDOW My.Functions.BarCodes.cMethod

lShowThermos - Thermosanzeige

Thermosanzeige bei der Ausführung
Hilfeinformation
Thermosanzeige bei der Ausführung

Aufrufinformation
Boolean = My.Functions.BarCodes.lShowThermos
Codeinformation
My.Functions.BarCodes.lShowThermos = .T.

nError - Fehlernummer d. Fehlers

Fehlernummer des letzten Fehlers.
Hilfeinformation
Fehlernummer des letzten Fehlers.
Ist der Wert kleiner null, so handelt es sich um einen logischen Fehler.

Aufrufinformation
Number = My.Functions.BarCodes.nError
Codeinformation
WAIT WINDOW My.Functions.BarCodes.nError

nLine - Zeilennummer d. Fehlers

Zeilennummer, in der der letzte Fehler auftrat
Hilfeinformation
Zeilennummer, in der der letzte Fehler auftrat

Aufrufinformation
Number = My.Functions.BarCodes.nLine
Codeinformation
WAIT WINDOW My.Functions.BarCodes.nLine

nRecords - Verarbeitete Datensätze

Verarbeitete Datensätze
Hilfeinformation
Verarbeitete Datensätze

Aufrufinformation
Number = My.Functions.BarCodes.nRecords
Codeinformation
WAIT WINDOW My.Functions.BarCodes.nRecords

nSeconds - Ausführungszeit

Ausführungszeit in Sekunden
Hilfeinformation
Ausführungszeit in Sekunden

Aufrufinformation
Number = My.Functions.BarCodes.nSeconds
Codeinformation
WAIT WINDOW My.Functions.BarCodes.nSeconds

nStatus - Status der Ausführung

Status der Ausführung
Hilfeinformation
Status der Ausführung

Aufrufinformation
Number = My.Functions.BarCodes.nStatus
Codeinformation
WAIT WINDOW My.Functions.BarCodes.nStatus

oSelected - Datenumgebung

Merkt sich die Datenumgebung für eine Verarbeitung.
Hilfeinformation
Merkt sich die Datenumgebung für eine Verarbeitung.
Beim Release der Variable wird die vorherige Datenumgebung wieder hergestellt.

Aufrufinformation
Object = My.Functions.BarCodes.oSelected
Codeinformation
LOCAL loSelected AS My_Fu_Selected
loSelected = My.Functions.BarCodes.oSelected
*/ Danach können Tabellen und Cursor geöffnet werden...

*/ Mit dem Nachfolgenden Befehl wird der obige Zustand der Datenumgebung wieder hergestellt
RELEASE loSelected

oThermos - temp. Thermos

Instanziiert einen temporären Thermos
Hilfeinformation
Instanziiert einen temporären Thermos

Aufrufinformation
Object = My.Functions.BarCodes.oThermos
Codeinformation
LOCAL loThermos AS My_Sy_Thermos
*/ Instanziieren
loThermos = My.Functions.BarCodes.oThermos

loThermos.AutoCenter = .T.
loThermos.cFaktor(1,1/10,.F.,"Info-1...")
loThermos.cFaktor(1,2/10,.F.,"Info-2...")
*/ ...
*/ Schliesst den Thermos
RELEASE loThermos


Siehe auch : Hauptmenü /  Hauptindex /  Such Index /  Cursor Index /  Programm Module /  Tabellen Index /  Tabellenmodule /  Masken Index /  Programmcode Index /  Servicepacks /  My.Struktur /  Funktionen /  Sonstiges Index

Lokale Benutzerhilfe : Meine eigene Hilfe /  Zurück zur PMS32 - Hilfe


Dateiversion:1.0.04#3648 - H.U.DD#SSFF 02.12.2022  Senden Sie Ihren Kommentar zu diesem Thema an das Entwicklungsteam von PMS32  Weitere Informationen finden Sie unter der aktuellen PMS32 WEB-Hilfe
Die Informationen dieser Mitteilung sind vertraulich und nur für Sie bestimmt. Unbefugtes Weiterleiten,  Veröffentlichen, Kopieren usw. sind untersagt und werden gerichtlich verfolgt.  © PMS Compelec GmbH 2022 ® el-Projekt