| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874 |
- /*------------------------------------------------------------------------
- File : Palettenschein.p
- Purpose :
- Syntax :
- Description :
- Author(s) : walter.riechsteiner
- Created : Mon May 31 14:11:18 CEST 2021
- Notes :
- ----------------------------------------------------------------------*/
- /* This .W file was created with the Progress AppBuilder. */
- /*----------------------------------------------------------------------*/
- /* *************************** Definitions ************************** */
- BLOCK-LEVEL ON ERROR UNDO, THROW.
- DEFINE VARIABLE sAktiv AS LOGICAL NO-UNDO INIT FALSE.
- DEFINE VARIABLE AdFirma AS CHARACTER NO-UNDO FORMAT "x(04)".
- DEFINE VARIABLE Firma AS CHARACTER NO-UNDO FORMAT "x(04)".
- DEFINE VARIABLE Progname AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cLogName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lBatch AS LOGICAL NO-UNDO INIT TRUE.
- DEFINE VARIABLE cUser AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iRuestArt AS INTEGER NO-UNDO.
- DEFINE VARIABLE cRuester AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iPlatz AS INTEGER NO-UNDO.
- DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iAnzahl AS INTEGER NO-UNDO.
- DEFINE VARIABLE iSeite AS INTEGER NO-UNDO.
- DEFINE VARIABLE iZeile AS INTEGER NO-UNDO.
- DEFINE VARIABLE dDatum AS DATE NO-UNDO.
- DEFINE VARIABLE lOpen AS LOGICAL NO-UNDO.
- DEFINE VARIABLE cZeile AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cKopf AS CHARACTER NO-UNDO EXTENT 50.
- DEFINE VARIABLE FormText AS CHARACTER NO-UNDO EXTENT 30.
- DEFINE VARIABLE cDruckProgramm AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cDrucker AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO.
- { properties.i }
- { incl/ttdruckparam.i }
- DEFINE STREAM out_Stream.
- DEFINE BUFFER bAufko FOR Aufko .
- DEFINE BUFFER bAufze FOR Aufze .
- DEFINE BUFFER bTabel FOR Tabel .
- DEFINE BUFFER bArtst FOR Artst .
- DEFINE BUFFER bSchrift FOR Schrift .
- DEFINE BUFFER bDrucker FOR Drucker .
- DEFINE BUFFER bSteuer FOR Steuer .
- DEFINE BUFFER bDebst FOR Debst .
- DEFINE BUFFER bAdresse FOR Adresse .
- DEFINE BUFFER bLotLager FOR LotLager .
- DEFINE BUFFER bHoReLager FOR HoReLager.
- DEFINE TEMP-TABLE tDrucker NO-UNDO
- FIELD Drucker AS CHARACTER.
-
- DEFINE TEMP-TABLE tSchrift NO-UNDO LIKE Schrift
- FIELD iPlatz AS INTEGER
- FIELD Schacht AS INTEGER
- FIELD Anzahl AS INTEGER
- FIELD iRecid AS RECID
- INDEX tSchrift-k1 IS PRIMARY
- iPlatz
- Schname
- Schbild.
- DEFINE TEMP-TABLE tAufze NO-UNDO LIKE Aufze
- FIELD Platz AS INTEGER
- FIELD Lagort AS CHARACTER
-
- INDEX tAufze-k1 IS PRIMARY
- Platz
- Lagort
- Artnr.
- DEFINE TEMP-TABLE tTabTexte
- FIELD cRecArt AS CHARACTER
- FIELD iZeile AS INTEGER
- FIELD cFeld1 AS CHARACTER
- FIELD cFeld2 AS CHARACTER
- FIELD cFeld3 AS CHARACTER
- FIELD iFeld1 AS INTEGER
- FIELD iFeld2 AS INTEGER
- FIELD iFeld3 AS INTEGER
-
- INDEX tTabTexte-k1 IS PRIMARY
- cRecArt
- iZeile.
-
- /* ******************** Preprocessor Definitions ******************** */
- /* ************************ Function Prototypes ********************** */
- FUNCTION getLogfileName RETURNS CHARACTER
- ( ) FORWARD.
- FUNCTION putStream RETURNS LOGICAL
- (ipAttrib AS CHARACTER,
- ipAnzZeilen AS INTEGER,
- INPUT-OUTPUT ipZeile AS CHARACTER) FORWARD.
- /* *************************** Main Block *************************** */
- DEFINE VARIABLE cPrinters AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ix AS INTEGER NO-UNDO.
- DEFINE VARIABLE kRecid AS RECID NO-UNDO.
- DEFINE VARIABLE tRecid AS RECID NO-UNDO.
- DEFINE VARIABLE cRetValue AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iCodeI AS INTEGER NO-UNDO INIT -1.
-
- DEFINE BUFFER dTabel FOR Tabel.
-
- SAktiv = DYNAMIC-FUNCTION('getSuperaktiv':U) NO-ERROR.
- IF SAktiv = ? THEN SAktiv = FALSE.
- IF SAktiv THEN
- DO:
- AdFirma = DYNAMIC-FUNCTION('getAdMandant':U) NO-ERROR.
- Firma = DYNAMIC-FUNCTION('getMandant':U) NO-ERROR.
- Progname = DYNAMIC-FUNCTION('makeProgname':U, INPUT THIS-PROCEDURE ) NO-ERROR.
- cUser = DYNAMIC-FUNCTION('getBenutzer') NO-ERROR.
- cLogName = DYNAMIC-FUNCTION('getLogFileName':U) NO-ERROR.
- lBatch = DYNAMIC-FUNCTION('getBatch':U) NO-ERROR.
- END.
- EMPTY TEMP-TABLE tDrucker.
- EMPTY TEMP-TABLE tSchrift.
- cPrinters = SESSION:GET-PRINTERS().
- DO ix = 1 TO NUM-ENTRIES(cPrinters, ','):
- CREATE tDrucker.
- ASSIGN
- tDrucker.Drucker = ENTRY(ix, cPrinters, ',').
- END.
-
- FIND bSteuer NO-LOCK
- WHERE bSteuer.Firma = Firma.
- TABELLE:
- DO WHILE TRUE:
- TABTRANS:
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
- FIND FIRST bTabel NO-LOCK
- WHERE bTabel.Firma = Firma
- AND bTabel.RecArt = 'wsLADEPAPIER'
- AND bTabel.CodeI > iCodeI
- AND bTabel.Bez1 = ''
- AND bTabel.Int_2 = 3 NO-ERROR.
- IF NOT AVAILABLE bTabel THEN LEAVE TABELLE.
- tRecid = RECID(bTabel).
- iCodeI = bTabel.CodeI.
- iPlatz = bTabel.Dec_1.
- iAnzahl = bTabel.Dec_2.
- iRuestArt = bTabel.Int_3.
- iAufnr = bTabel.Int_1.
- cRuester = bTabel.Bez2.
- FIND bTabel EXCLUSIVE-LOCK WHERE RECID(bTabel) = tRecid NO-WAIT NO-ERROR.
- IF NOT AVAILABLE bTabel AND
- LOCKED bTabel THEN
- DO:
- RELEASE bTabel.
- FIND Tabel NO-LOCK WHERE RECID(Tabel) = tRecid NO-ERROR.
- IF NOT AVAILABLE Tabel THEN NEXT.
-
- cMessage = SUBSTITUTE('Tabel LOCKED RecArt &1, CodeI &2, Aufnr &3, Int_2 &4, Drucker &5',
- Tabel.RecArt, Tabel.CodeI, Tabel.Int_1, Tabel.Int_2, cPrinters).
- RUN writeLogfile.p ( ProgName, cLogName, cMessage ) NO-ERROR.
- RELEASE Tabel.
- LEAVE TABTRANS.
- END.
- IF NOT AVAILABLE bTabel THEN LEAVE TABTRANS.
-
- bTabel.Bez1 = 'A'.
-
- FIND bAufko NO-LOCK
- WHERE bAufko.Firma = bTabel.Firma
- AND bAufko.Aufnr = iAufnr NO-ERROR.
-
- IF NOT AVAILABLE bAufko THEN
- DO:
- DELETE bTabel.
- RELEASE bTabel.
- LEAVE TABTRANS.
- END.
-
- kRecid = RECID(bAufko).
- cRetValue = ''.
- dDatum = bAufko.Lief_Datum.
- DO WHILE TRUE:
- RUN FUELLEN_tAufze.
-
- FIND FIRST tAufze WHERE tAufze.Artnr > 0 NO-ERROR.
- IF NOT AVAILABLE tAufze THEN
- DO:
- DELETE bTabel.
- RELEASE bTabel.
- LEAVE TABTRANS.
- END.
-
- RUN writeLogfile.p ( ProgName, cLogName, '' ) NO-ERROR.
- cMessage = SUBSTITUTE('Ladeschein &1 in Batch = &3 mit &2 gestartet', iAufnr, cPrinters, lBatch).
- RUN writeLogfile.p ( ProgName, cLogName, cMessage ) NO-ERROR.
-
- FIND bAufko NO-LOCK WHERE RECID(bAufko) = kRecid.
- RUN LADESCHEIN.
-
- cRetValue = RETURN-VALUE.
- cMessage = SUBSTITUTE('Ladeschein &1 beendet mit Return-Value = &2', iAufnr, cRetValue).
- RUN writeLogfile.p ( ProgName, cLogName, cMessage ) NO-ERROR.
-
- LEAVE.
- END.
-
- IF cRetValue <> '' THEN
- DO:
- bTabel.Bez1 = 'F'.
- RELEASE bTabel.
- LEAVE TABTRANS.
- END.
-
- IF AVAILABLE bTabel THEN
- DO:
- FIND Aufko EXCLUSIVE-LOCK WHERE RECID(Aufko) = kRecid NO-WAIT NO-ERROR.
- IF AVAILABLE Aufko THEN Aufko.Gedruckt = TRUE.
- RELEASE Aufko.
- DELETE bTabel.
- RELEASE bTabel.
- END.
-
- LEAVE.
- END.
-
- END.
- /* ********************** Internal Procedures *********************** */
- PROCEDURE BAR-CODE-39 :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipWert AS CHARACTER NO-UNDO.
- DEFINE INPUT PARAMETER ipCodeArt AS CHARACTER NO-UNDO.
- DEFINE OUTPUT PARAMETER opBarCode AS CHARACTER NO-UNDO.
- DEFINE VARIABLE clr AS LOG INIT TRUE NO-UNDO.
- DEFINE VARIABLE wk AS CHARACTER NO-UNDO.
- DEFINE VARIABLE drw AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cDir AS CHARACTER NO-UNDO.
- DEFINE VARIABLE k AS CHARACTER NO-UNDO.
- DEFINE VARIABLE att AS CHARACTER NO-UNDO.
- DEFINE VARIABLE kod AS CHARACTER NO-UNDO
- INIT "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.Ø *$/+%".
- att =
- "100100001001100001101100000000110001100110000001110000000100101100100100"
- + "001100100000110100100001001001001001101001000000011001100011000001011000"
- + "000001101100001100001001100000011100100000011001000011101000010000010011"
- + "100010010001010010000000111100000110001000110000010110110000001011000001"
- + "111000000010010001110010000011010000010000101110000100011000100010010100"
- + "010101000010100010010001010000101010".
- DEFINE VARIABLE i AS INTEGER NO-UNDO.
- DEFINE VARIABLE j AS INTEGER NO-UNDO.
- DEFINE VARIABLE l AS INTEGER NO-UNDO.
- DEFINE VARIABLE brd AS INTEGER NO-UNDO.
- DEFINE VARIABLE jst AS INTEGER NO-UNDO.
- ASSIGN
- i = (IF SUBSTRING (ipCodeArt, 1, 1) = "P" THEN 1 ELSE 2)
- opBarCode = "~E&f0S~E*c100G"
- drw = SUBSTRING("ab" , i, 1)
- + SUBSTRING(ipCodeArt, 6)
- + SUBSTRING("ba" , i, 1)
- + "P"
- cDir = SUBSTRING("XY", i, 1)
- k = "*" + ipWert + "*" .
- DO i = 1 TO LENGTH(k):
- ASSIGN
- j = INDEX(kod, SUBSTRING (k, i, 1)) * 9 - 8
- wk = SUBSTRING (att, j, 9) + "0" .
- DO l = 1 TO 10:
- ASSIGN
- brd = IF SUBSTRING(wk,l,1) = "0" THEN 2 ELSE 4
- opBarCode = opBarCode
- + (IF clr THEN "~E*c" + SUBSTRING (ipCodeArt, brd, 2) + drw
- ELSE "~E*p+" + STRING(INTEGER(SUBSTRING(ipCodeArt, brd, 2))
- + jst) + cDir)
- jst = INTEGER (SUBSTRING (ipCodeArt, brd, 2))
- clr = NOT clr.
- END. /* of looping 1 to 10 */
- END. /* of going through string 'k' */
- ASSIGN
- opBarCode = opBarCode + "~E&f1S"
- wk = "".
-
- END PROCEDURE.
- PROCEDURE DRUCKAUSGABE:
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE iAnzKopien AS INTEGER NO-UNDO.
- DEFINE VARIABLE sRecid AS RECID NO-UNDO.
- DEFINE VARIABLE iSize AS INTEGER NO-UNDO.
- DEFINE VARIABLE iKopie AS INTEGER NO-UNDO.
- DEFINE VARIABLE iSchacht AS INTEGER NO-UNDO.
- DEFINE VARIABLE cString AS CHARACTER INIT '' NO-UNDO.
- FIND FIRST tSchrift NO-LOCK
- WHERE tSchrift.iPlatz = iPlatz NO-ERROR.
- IF NOT AVAILABLE tSchrift THEN FIND FIRST tSchrift.
- sRecid = tSchrift.iRecid.
- iAnzKopien = tSchrift.Anzahl.
- iSchacht = tSchrift.Schacht.
-
- RUN writeLogfile.p ( ProgName, cLogName, SUBSTITUTE('Druckausgabe -> Platz: &1, Drucker: &2, Schrift: &3', tSchrift.iPlatz, tSchrift.Schname, tSchrift.Schbild) ) NO-ERROR.
-
- IF iAnzKopien = 0 THEN iAnzKopien = 1.
- DO iKopie = 1 TO iAnzKopien:
- iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, cDateiName ,
- sRecid ,
- tSchrift.Schacht ,
- 240 , /* Blockgrösse */
- 'ibm850' ,
- iAnzKopien ). /* Anzahl Kopien */
- IF iSize = 0 THEN
- DO:
- cString = 'Druckvorgang gescheitert !!! '.
- RUN writeLogfile.p ( ProgName, cLogName, cString ) NO-ERROR.
-
- IF lBatch THEN RETURN ERROR.
-
- RETURN cString.
- END.
-
- IF iKopie < iAnzKopien THEN
- DO:
- ETIME(TRUE).
- DO WHILE ETIME(FALSE) < 200:
- END.
- END.
- END.
- OS-DELETE VALUE(cDateiName) NO-ERROR.
- END PROCEDURE.
- PROCEDURE FUELLEN_tAufze:
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE minPos AS INTEGER NO-UNDO.
- DEFINE VARIABLE maxPos AS INTEGER NO-UNDO.
- DEFINE VARIABLE jPlatz AS INTEGER NO-UNDO.
- DEFINE VARIABLE cLagOrt AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lArtikel AS LOG NO-UNDO.
- EMPTY TEMP-TABLE tAufze.
-
- FOR EACH Aufze NO-LOCK
- WHERE Aufze.Firma = Firma
- AND Aufze.Aufnr = bAufko.Aufnr
- AND Aufze.Artnr > 0,
-
- FIRST RuestAuf NO-LOCK
- WHERE RuestAuf.Firma = Aufze.Firma
- AND RuestAuf.Aufnr = Aufze.Aufnr
- AND RuestAuf.Pos = Aufze.Pos :
-
- CREATE tAufze.
- BUFFER-COPY Aufze TO tAufze
- ASSIGN
- tAufze.Platz = RuestAuf.Platz
- tAufze.LagOrt = RuestAuf.Lagerort.
-
- END.
-
- END PROCEDURE.
- PROCEDURE GET_DRUCKERDATEN :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipPlatz AS INTEGER NO-UNDO.
- DEFINE INPUT PARAMETER ipDrucker AS CHARACTER NO-UNDO.
- DEFINE INPUT PARAMETER ipSchrift AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lJa AS LOG INIT TRUE NO-UNDO.
- DEFINE VARIABLE lError AS LOG INIT TRUE NO-UNDO.
- DO WHILE TRUE:
- FIND FIRST tDrucker NO-LOCK
- WHERE tDrucker.Drucker = ipDrucker NO-ERROR.
- IF AVAILABLE tDrucker THEN LEAVE.
-
- cMessage = SUBSTITUTE('Der gewünschte Drucker &1 ist nicht verfügbar ', ipDrucker).
- RETURN cMessage.
- END.
-
- RUN CHECKPRINTER ( ipDrucker, OUTPUT lError ) NO-ERROR.
- IF lError THEN RETURN SUBSTITUTE('Drucker &1 konnte nicht angewählt werden', ipDrucker).
-
- DO WHILE TRUE:
- FIND FIRST Schrift NO-LOCK
- WHERE Schrift.SchName = ipDrucker
- AND Schrift.SchBild = ipSchrift NO-ERROR.
- IF AVAILABLE Schrift THEN LEAVE.
- FIND FIRST Schrift NO-LOCK
- WHERE Schrift.SchName = SESSION:PRINTER-NAME
- AND Schrift.SchBild = ipSchrift NO-ERROR.
- IF AVAILABLE Schrift THEN LEAVE.
- cMessage = 'Es konnte keine Schrift für den gewählten Drucker ermittelt werden'.
- RETURN cMessage.
- END.
- CREATE tSchrift.
- BUFFER-COPY Schrift TO tSchrift
- ASSIGN
- tSchrift.iPlatz = ipPlatz
- tSchrift.SchName = SESSION:PRINTER-NAME
- tSchrift.iRecid = RECID(Schrift).
- FIND bDrucker NO-LOCK
- WHERE bDrucker.Drucker = tSchrift.SchDru.
- RETURN ''.
- END PROCEDURE.
- PROCEDURE LIBILD:
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipDokArt AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cProgName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ix AS INTEGER NO-UNDO.
-
- cProgName = bSteuer.Fwc10 + ":" + ipDokArt.
- FormText = "".
- FOR EACH LiBild USE-INDEX LiBild-k1
- WHERE LiBild.Sprcd = 1
- AND LiBild.Prog = cProgName
- AND LiBild.Tenr > 0 NO-LOCK ix = 1 TO 40:
-
- FormText[ix] = LiBild.Litext.
- END.
-
- END PROCEDURE.
- PROCEDURE NEUE_SEITE :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE cLeerZeile AS CHARACTER NO-UNDO.
- IF iSeite > 0 THEN
- DO:
- PUT STREAM out_Stream CONTROL CHR(12).
- END.
-
- FIND FIRST tSchrift NO-LOCK
- WHERE tSchrift.iPlatz = iPlatz.
- cLeerZeile = FILL(CHR(10), tSchrift.Schzzbeg).
- IF cLeerZeile <> '' THEN PUT STREAM out_Stream cLeerZeile.
- iZeile = tSchrift.Schzzbeg.
- iSeite = iSeite + 1.
- END PROCEDURE.
- PROCEDURE LADESCHEIN:
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE cDokArt AS CHARACTER NO-UNDO.
- DEFINE VARIABLE hbAufko AS HANDLE NO-UNDO.
- DEFINE VARIABLE htTabTexte AS HANDLE NO-UNDO.
- /* DEFINE VARIABLE cString AS CHARACTER NO-UNDO.*/
- /* DEFINE VARIABLE i1 AS INTEGER NO-UNDO.*/
- /* DEFINE VARIABLE i2 AS INTEGER NO-UNDO.*/
- DEFINE VARIABLE xPlatz AS INTEGER NO-UNDO.
- DEFINE VARIABLE nTotale AS DECIMAL EXTENT 15 NO-UNDO.
- DEFINE VARIABLE cRetVal AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iAnz AS INTEGER NO-UNDO.
- DEFINE VARIABLE iAnzPal AS INTEGER NO-UNDO.
- DEFINE VARIABLE cAufnr AS CHARACTER NO-UNDO.
- DEFINE VARIABLE oBarCode AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cCodeArt AS CHARACTER INIT 'P0205090' NO-UNDO.
-
- FIND FIRST tAufze NO-LOCK WHERE tAufze.Artnr > 0 NO-ERROR.
- IF NOT AVAILABLE tAufze THEN RETURN ''.
- cRetVal = DYNAMIC-FUNCTION('calculateAuftragsTotal':U, tAufze.Firma, tAufze.Aufnr, OUTPUT nTotale) NO-ERROR.
-
- cMessage = SUBSTITUTE('Ladeschein &1 Platz &2 gestartet', tAufze.Aufnr, iPlatz).
- RUN writeLogFile.p ( Progname, cLogName, cMessage) NO-ERROR.
-
- cDokArt = 'LADEPAPIER'.
- iSeite = 0.
- iZeile = 0.
- cDrucker = ''.
- lOpen = FALSE.
- cZeile = ''.
- RUN LIBILD ( cDokArt ).
- hbAufko = BUFFER bAufko:HANDLE.
- htTabTexte = TEMP-TABLE tTabTexte:DEFAULT-BUFFER-HANDLE.
- RUN CREATE_TABTEXTE ( INPUT hbAufko, INPUT-OUTPUT htTabTexte ).
- EMPTY TEMP-TABLE tSchrift.
- FOR EACH RuestDaten NO-LOCK
- WHERE RuestDaten.Firma = bAufko.Firma
- AND RuestDaten.RuestArt = iRuestArt
- AND RuestDaten.Platz > 0
- AND Ruestdaten.LA_Doku = TRUE:
- xPlatz = RuestDaten.Platz.
- RUN GET_DRUCKERDATEN ( xPlatz, RuestDaten.LA_Drucker, RuestDaten.LA_Schrift ).
- IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
-
- FIND FIRST tSchrift WHERE tSchrift.iPlatz = xPlatz.
- ASSIGN
- tSchrift.Schzztot = RuestDaten.LA_TotZZ
- tSchrift.Schzzbeg = RuestDaten.LA_KopfZZ
- tSchrift.Schzzend = RuestDaten.LA_FussZZ
- tSchrift.Schacht = RuestDaten.LA_Schacht
- tSchrift.Anzahl = RuestDaten.LA_Anzahl.
- END.
- FIND FIRST tSchrift NO-LOCK
- WHERE tSchrift.iPlatz = iPlatz.
- IF tSchrift.Schzzbeg = 0 THEN tSchrift.Schzzbeg = 1.
- IF tSchrift.Schzzend = 0 THEN tSchrift.Schzzend = 3.
- IF tSchrift.Schzztot = 0 THEN tSchrift.Schzztot = 66.
-
- FIND bDrucker NO-LOCK
- WHERE bDrucker.Drucker = tSchrift.SchDru.
-
- FIND bAdresse NO-LOCK USE-INDEX Adresse-k1
- WHERE bAdresse.Firma = AdFirma
- AND bAdresse.Knr = bAufko.Knr NO-ERROR.
-
- FOR EACH tAufze NO-LOCK
-
- BREAK BY tAufze.Platz
- BY tAufze.Lagort
- BY tAufze.Pos :
- IF FIRST-OF ( tAufze.Platz ) THEN iAnz = 0.
- IF tAufze.MGeli <> 0 THEN iAnz = iAnz + 1.
- IF NOT LAST-OF ( tAufze.Platz ) THEN NEXT.
-
- FIND FIRST tSchrift WHERE tSchrift.iPlatz = iPlatz NO-ERROR.
- IF NOT AVAILABLE tSchrift THEN FIND FIRST tSchrift.
- FIND bDrucker NO-LOCK
- WHERE bDrucker.Drucker = tSchrift.SchDru.
-
- IF NOT lOpen THEN
- DO:
- cDrucker = tSchrift.Schname.
- cDateiName = SESSION:TEMP-DIR
- + 'LadePapier'
- + STRING(TIME,'999999')
- + STRING(RANDOM(1, 999999),'999999')
- + '.txt'.
- OUTPUT STREAM out_Stream TO VALUE(cDateiName) NO-MAP NO-CONVERT.
- lOpen = TRUE.
- END.
-
- IF iSeite = 0 THEN RUN LADESCHEIN_KOPF ( iPlatz ).
- FIND FIRST RuestAuf NO-LOCK
- WHERE RuestAuf.Firma = tAufze.Firma
- AND RuestAuf.Aufnr = tAufze.Aufnr
- AND RuestAuf.Platz = tAufze.Platz NO-ERROR.
- IF NOT AVAILABLE RuestAuf THEN
- DO:
- FIND FIRST RuestAuf NO-LOCK
- WHERE RuestAuf.Firma = tAufze.Firma
- AND RuestAuf.Aufnr = tAufze.Aufnr
- AND RuestAuf.Artnr = tAufze.Artnr NO-ERROR.
- END.
- iAnzPal = (IF AVAILABLE RuestAuf THEN RuestAuf.AnzPaletten ELSE 1).
-
- cAufnr = STRING(bAufko.Aufnr,'9999999')
- + '.'
- + TRIM(STRING(tAufze.Platz,'>9'))
- + ' - '
- + (IF iAnz = 0 THEN 'KEINE LIEFERUNG' ELSE TRIM(STRING(iAnzPal,'->>>>>>>>>>9')))
- + ' / '
- + (IF AVAILABLE RuestAuf THEN RuestAuf.Ruester ELSE 'unbekannt').
- SUBSTRING(cZeile,20) = bDrucker.Dru10cpi
- + cAufnr
- + bDrucker.Dru15cpi.
-
- DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
-
- IF iAnz > 0 THEN
- DO:
- cAufnr = STRING(bAufko.Aufnr,'9999999')
- + '.'
- + TRIM(STRING(tAufze.Platz,'>9')).
- RUN BAR-CODE-39 ( INPUT cAufnr ,
- INPUT cCodeArt,
- OUTPUT oBarCode ).
- SUBSTRING(cZeile,20) = oBarCode.
- DYNAMIC-FUNCTION('putStream':U, 'N', 4, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
-
- END.
-
- IF lOpen THEN
- DO:
- OUTPUT STREAM out_Stream CLOSE.
- lOpen = FALSE.
- RUN DRUCKAUSGABE NO-ERROR.
- IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
- END.
- cMessage = SUBSTITUTE('Ladepapier &1 beendet', bAufko.Aufnr).
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
-
- RETURN ''.
-
- END PROCEDURE.
- PROCEDURE LADESCHEIN_KOPF:
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipPlatz AS INTEGER NO-UNDO.
- DEFINE VARIABLE cAufnr AS CHARACTER NO-UNDO.
- DEFINE VARIABLE oBarCode AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ix AS INTEGER NO-UNDO.
- DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
- DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
- DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cLeerZeile AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cFahrer AS CHARACTER NO-UNDO.
-
- DEFINE BUFFER btAufze FOR tAufze.
-
- /*
- DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO.
- */
- /* P = Portrait */
- /* L = Landscape */
- DEFINE VARIABLE cCodeArt AS CHARACTER INIT 'P0210200' NO-UNDO.
- RUN NEUE_SEITE.
- PUT STREAM out_Stream CONTROL bDrucker.Dru15cpi.
- PUT STREAM out_Stream CONTROL CHR(27) '&k2G'.
-
- cAufnr = STRING(bAufko.Aufnr,'9999999').
- RUN BAR-CODE-39 ( INPUT cAufnr ,
- INPUT cCodeArt,
- OUTPUT oBarCode ).
-
- oBarCode = CHR(027) + "*p" + "100y" + "100X" + oBarCode
- + CHR(027) + "*p" + "405y" + "260X"
- + bDrucker.Drufettb + bDrucker.Dru10cpi + bDrucker.Drufettb
- + cAufnr
- + bDrucker.Drufette + bDrucker.Dru15cpi + bDrucker.Drufette
- + CHR(027) + "*p" + "0y" + "0X".
- PUT STREAM out_Stream CONTROL oBarCode.
-
- FIND FIRST tSchrift NO-LOCK
- WHERE tSchrift.iPlatz = iPlatz.
- cLeerZeile = FILL(CHR(10), tSchrift.Schzzbeg).
- IF cLeerZeile <> '' THEN PUT STREAM out_Stream cLeerZeile.
- iZeile = tSchrift.Schzzbeg.
-
- IF bAufko.Adresse[05] <> '' THEN
- DO:
- DO ix = 1 TO 5:
- SUBSTRING(cZeile,066) = bAufko.Adresse[ix].
- IF ix = 5 THEN
- DO: DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
- ELSE
- DO: DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
- END.
- DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
- ELSE
- DO:
- DO ix = 6 TO 12:
- SUBSTRING(cZeile,066) = bAdresse.Anschrift[ix].
- IF ix = 11 THEN
- DO: DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
- ELSE
- DO: DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
- END.
- END.
- DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
-
- IF bAufko.Auf_Tot >= 0
- THEN SUBSTRING(cZeile,008) = SUBSTRING(FormText[02],01,20).
- ELSE
- SUBSTRING(cZeile,008) = SUBSTRING(FormText[02],21,20).
- cZeile = bDrucker.Dru10cpi
- + SUBSTRING(cZeile,001,30)
- + bDrucker.Dru15cpi.
- DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
- SUBSTRING(cZeile,066) = TRIM(SUBSTRING(FormText[07],01,20))
- + " "
- + STRING(dDatum,"99.99.9999").
- DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
-
- IF iSeite = 1 THEN
- DO:
- FIND FIRST tTabtexte NO-LOCK
- WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR.
- IF AVAILABLE tTabTexte THEN SUBSTRING(cZeile,008) = tTabTexte.cFeld3.
- SUBSTRING(cZeile,066) = TRIM(SUBSTRING(FormText[08],21,20))
- + STRING(bAufko.Gewicht,"zz,zz9.999-").
- cZeile = TRIM(bDrucker.Drufettb)
- + SUBSTRING(cZeile,001,65)
- + TRIM(bDrucker.Drufette)
- + SUBSTRING(cZeile,066).
- DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
-
- SUBSTRING(cZeile,008) = TRIM(SUBSTRING(FormText[07],41,20))
- + " "
- + STRING(bAufko.Auf_Datum,"99.99.9999").
- SUBSTRING(cZeile,038) = TRIM(SUBSTRING(FormText[08],01,20))
- + STRING(bAufko.Knr,"z999999").
- SUBSTRING(cZeile,066) = TRIM(SUBSTRING(FormText[08],41,20))
- + " "
- + bAdresse.Tel-1.
- DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
-
- SUBSTRING(cZeile,008) = TRIM(SUBSTRING(FormText[09],21,20))
- + " "
- + STRING(bAufko.Lief_Datum,"99.99.9999").
- SUBSTRING(cZeile,038) = TRIM(SUBSTRING(FormText[09],01,20))
- + " ". /* Lieferart */
- DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
-
- SUBSTRING(cZeile,008) = TRIM(SUBSTRING(FormText[07],21,20))
- + " "
- + STRING(bAufko.U_Ref,'x(20)').
- DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
- IF iSeite = 1 AND
- bAufko.Abh_Text <> '' THEN
- DO:
- cString = bAufko.Abh_Text.
- i2 = 0.
- DO i1 = 1 TO NUM-ENTRIES(cString, CHR(10)):
- SUBSTRING(cZeile,008) = ENTRY(i1, cString, CHR(10)).
- DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
- i2 = i2 + 1.
- END.
- IF i2 > 0 THEN
- DO:
- DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
- END.
-
- DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
-
- RUN FIND_FAHRER ( bAufko.Fahrer, OUTPUT cString ).
- IF cString <> '' THEN cFahrer = ENTRY(2, cString, CHR(01)) + ' ' + ENTRY(3, cString, CHR(01)).
- i1 = (80 - LENGTH(cFahrer)) / 2.
- SUBSTRING(cZeile,i1) = CHR(27) + "(s6H"
- + cFahrer
- + bDrucker.Dru15cpi.
- DYNAMIC-FUNCTION('putStream':U, 'F', 2, INPUT-OUTPUT cZeile) NO-ERROR.
- END PROCEDURE.
- /* ************************ Function Implementations ***************** */
- FUNCTION getLogfileName RETURNS CHARACTER
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE cPath AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cProg AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
-
- cPath = DYNAMIC-FUNCTION ('getLogFilePfad':U) NO-ERROR.
- cProg = REPLACE(Progname, '\', '/').
- ii = R-INDEX(cProg, '/').
- IF ii > 0 THEN cProg = SUBSTRING(cProg, ii + 1).
-
- cPath = cPath
- + cProg
- + '_'
- + REPLACE(STRING(TODAY,'99.99.9999'), '.', '')
- + '.Log'.
- RETURN cPath.
- END FUNCTION.
- FUNCTION putStream RETURNS LOGICAL
- ( ipAttrib AS CHARACTER, ipAnzZeilen AS INTEGER, INPUT-OUTPUT ipZeile AS CHARACTER ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE cLF AS CHARACTER NO-UNDO.
-
- cLF = FILL(CHR(10), ipAnzZeilen).
- CASE ipAttrib:
- WHEN 'N' THEN
- PUT STREAM out_Stream CONTROL ipZeile.
- WHEN 'F' THEN
- PUT STREAM out_Stream CONTROL bDrucker.Drufettb ipZeile bDrucker.Drufette.
- WHEN 'U' THEN
- PUT STREAM out_Stream CONTROL bDrucker.Druunterb ipZeile bDrucker.Druuntere.
- END CASE.
-
- PUT STREAM out_Stream CONTROL cLF.
- iZeile = iZeile + ipAnzZeilen.
- ipZeile = ''.
- RETURN TRUE.
- END FUNCTION.
|