| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160 |
- /*------------------------------------------------------------------------
- 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 zAufze LIKE tAufze.
-
- DEFINE TEMP-TABLE tRueck NO-UNDO LIKE tAufze
-
- INDEX tRueck-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 = 'wsPALETT'
- AND bTabel.CodeI > iCodeI
- AND bTabel.Bez1 = ''
- AND bTabel.Int_2 = 2 NO-ERROR.
- IF NOT AVAILABLE bTabel THEN LEAVE TABELLE.
- tRecid = RECID(bTabel).
- iCodeI = bTabel.CodeI.
- iPlatz = bTabel.Dec_1.
- 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 = ''.
- 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('Palettenschein &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 PALETTENSCHEIN.
-
- cRetValue = RETURN-VALUE.
- cMessage = SUBSTITUTE('Palettenschein &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.
- EMPTY TEMP-TABLE tRueck.
-
- ASSIGN
- minPos = 0
- maxPos = 9999.
- /* -------------------------------------- */
- /* Kommentar zu Beginn eines Auftrages */
- /* -------------------------------------- */
- lArtikel = FALSE.
- FOR EACH Aufze NO-LOCK USE-INDEX Aufze-k1
- WHERE Aufze.Firma = Firma
- AND Aufze.Aufnr = bAufko.Aufnr
- AND Aufze.Pos > minPos:
-
- IF Aufze.Artnr > 0 THEN
- DO:
- lArtikel = TRUE.
- LEAVE.
- END.
-
- minPos = Aufze.Pos.
- CREATE tAufze.
- BUFFER-COPY Aufze TO tAufze
- ASSIGN
- tAufze.Platz = iPlatz
- tAufze.LagOrt = ''.
- END.
-
- /* ---------------------------------------------- */
- /* Kommentar am Ende eines Auftrages */
- /* ebenfalls an den Anfang des Auftrages schieben */
- /* ---------------------------------------------- */
- IF lArtikel THEN
- DO:
- FOR EACH Aufze NO-LOCK
- WHERE Aufze.Firma = Firma
- AND Aufze.Aufnr = bAufko.Aufnr
-
- BY Aufze.Pos DESCENDING:
-
- IF Aufze.Artnr > 0 THEN LEAVE.
- maxPos = Aufze.Pos.
- CREATE tAufze.
- BUFFER-COPY Aufze TO tAufze
- ASSIGN
- tAufze.Platz = iPlatz
- tAufze.LagOrt = 'zz'.
- END.
- END.
-
- /* ------------------------------------------------------ */
- /* Artikelzeilen dem Ruestsektor und Lagerplatz zuteilen */
- /* ------------------------------------------------------ */
- FOR EACH Aufze NO-LOCK
- WHERE Aufze.Firma = Firma
- AND Aufze.Aufnr = bAufko.Aufnr
- AND Aufze.Pos > minPos
- AND Aufze.Pos < MaxPos:
-
- IF Aufze.Artnr > 0 THEN
- DO:
- FIND FIRST RuestAuf NO-LOCK
- WHERE RuestAuf.Firma = Aufze.Firma
- AND RuestAuf.Aufnr = Aufze.Aufnr
- AND RuestAuf.Pos = Aufze.Pos NO-ERROR.
- IF NOT AVAILABLE RuestAuf THEN NEXT.
- IF RuestAuf.Platz <> iPlatz THEN NEXT.
- END.
-
- CREATE tAufze.
- BUFFER-COPY Aufze TO tAufze
- ASSIGN
- tAufze.Platz = RuestAuf.Platz
- tAufze.LagOrt = RuestAuf.Lagerort.
-
- IF tAufze.MRuek > 0 THEN
- DO:
- CREATE tRueck.
- BUFFER-COPY tAufze TO tRueck.
- END.
- 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 PALETTENSCHEIN:
- /*------------------------------------------------------------------------------*/
- /* 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 nFakBetr AS DECIMAL 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.
-
- 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('Palettenschein &1 Platz &2 gestartet', tAufze.Aufnr, iPlatz).
- RUN writeLogFile.p ( Progname, cLogName, cMessage) NO-ERROR.
-
- cDokArt = 'PALETTEN'.
- iSeite = 0.
- iZeile = 0.
- cDrucker = ''.
- lOpen = FALSE.
- cZeile = ''.
- dDatum = bAufko.Lief_Datum.
- 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.PA_Doku = TRUE:
- xPlatz = RuestDaten.Platz.
- RUN GET_DRUCKERDATEN ( xPlatz, RuestDaten.PA_Drucker, RuestDaten.PA_Schrift ).
- IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
-
- FIND FIRST tSchrift WHERE tSchrift.iPlatz = xPlatz.
- ASSIGN
- tSchrift.Schzztot = RuestDaten.PA_TotZZ
- tSchrift.Schzzbeg = RuestDaten.PA_KopfZZ
- tSchrift.Schzzend = RuestDaten.PA_FussZZ
- tSchrift.Schacht = RuestDaten.PA_Schacht
- tSchrift.Anzahl = iAnzahl.
- 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.
-
- EMPTY TEMP-TABLE zAufze.
-
- CREATE zAufze.
- FOR EACH tAufze NO-LOCK
- WHERE tAufze.Platz = iPlatz
- BREAK BY tAufze.Platz
- BY tAufze.Lagort
- BY tAufze.Pos :
- DO WHILE TRUE:
- IF NOT FIRST-OF ( tAufze.Platz ) THEN LEAVE.
-
- cDrucker = tSchrift.Schname.
- cDateiName = SESSION:TEMP-DIR
- + 'PalettPapier'
- + STRING(TIME,'999999')
- + STRING(RANDOM(1, 999999),'999999')
- + '.txt'.
- OUTPUT STREAM out_Stream TO VALUE(cDateiName) NO-MAP NO-CONVERT.
- lOpen = TRUE.
-
- LEAVE.
- END.
-
- IF iSeite = 0 THEN RUN PALETTENSCHEIN_KOPF ( iPlatz ).
-
- IF (tSchrift.Schzztot - iZeile - 2) <= tSchrift.Schzzend THEN
- DO:
- RUN PALETTENSCHEIN_KOPF ( iPlatz ).
- END.
-
- IF tAufze.MGeli <> 0 THEN
- DO:
- FIND FIRST zAufze.
- BUFFER-COPY tAufze TO zAufze.
- RUN PALETTENSCHEIN_ARTIKELZEILE.
- END.
-
- IF NOT LAST-OF ( tAufze.Platz ) THEN NEXT.
- cZeile = FILL('=', 100).
- DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
-
- END.
-
- DO WHILE TRUE:
- FIND FIRST tRueck NO-LOCK
- WHERE tRueck.Platz = iPlatz NO-ERROR.
- IF NOT AVAILABLE tRueck THEN LEAVE.
-
- IF NOT lOpen THEN
- DO:
- cDrucker = tSchrift.Schname.
- cDateiName = SESSION:TEMP-DIR
- + 'PalettPapier'
- + STRING(TIME,'999999')
- + STRING(RANDOM(1, 999999),'999999')
- + '.txt'.
- OUTPUT STREAM out_Stream TO VALUE(cDateiName) NO-MAP NO-CONVERT.
- lOpen = TRUE.
- RUN PALETTENSCHEIN_KOPF ( iPlatz ).
- END.
- ELSE
- DO:
- DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
-
- FOR EACH tRueck NO-LOCK
- WHERE tRueck.Platz = iPlatz
-
- BREAK BY tRueck.Platz
- BY tRueck.Lagort
- BY tRueck.Pos :
-
- IF (tSchrift.Schzztot - iZeile - 6) <= tSchrift.Schzzend THEN
- DO:
- RUN PALETTENSCHEIN_KOPF ( iPlatz ).
- END.
- IF FIRST-OF ( tRueck.Platz ) THEN
- DO:
- cZeile = FILL('=', 100).
- SUBSTRING(cZeile,30) = ' Rückstände/Teillieferungen '.
- DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
- RUN PALETTENSCHEIN_RUECKSTAND ( RECID(tRueck) ).
- END.
- DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
- LEAVE.
- END.
-
- IF lOpen THEN
- DO:
- SUBSTRING(cZeile,008) = 'Gerüstet durch : ' + cRuester.
- DYNAMIC-FUNCTION('putStream':U, 'N', 3, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
- DO WHILE TRUE:
- IF NOT lOpen THEN LEAVE.
-
- FIND FIRST RuestAuf NO-LOCK
- WHERE RuestAuf.Firma = Firma
- AND RuestAuf.Aufnr = bAufko.Aufnr
- AND RuestAuf.Platz <> iPlatz NO-ERROR.
- IF NOT AVAILABLE RuestAuf THEN LEAVE.
-
- SUBSTRING(cZeile,10) = 'Weitere Rüstplätze'.
- DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
- FOR EACH RuestAuf NO-LOCK
- WHERE RuestAuf.Firma = Firma
- AND RuestAuf.Aufnr = bAufko.Aufnr
- AND RuestAuf.Platz <> iPlatz
-
- BREAK BY RuestAuf.Platz:
-
- IF NOT FIRST-OF ( RuestAuf.Platz ) THEN NEXT.
- FIND RuestPlatz NO-LOCK
- WHERE RuestPlatz.Firma = RuestAuf.Firma
- AND RuestPlatz.RuestArt = iRuestArt
- AND RuestPlatz.Platz = RuestAuf.Platz NO-ERROR.
- IF NOT AVAILABLE RuestPlatz THEN NEXT.
- SUBSTRING(cZeile,12) = '- ' + RuestPlatz.Bezeichnung.
- DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
- LEAVE.
- END.
-
- IF lOpen THEN
- DO:
- OUTPUT STREAM out_Stream CLOSE.
- lOpen = FALSE.
- RUN DRUCKAUSGABE NO-ERROR.
- IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
- END.
-
- FIND FIRST tAufze NO-LOCK NO-ERROR.
- cMessage = SUBSTITUTE('Palettenschein &1 Platz &2 beendet', tAufze.Aufnr, iPlatz).
- RUN writeLogFile.p ( ProgName, cLogName, cMessage ) NO-ERROR.
-
- RETURN ''.
-
- END PROCEDURE.
- PROCEDURE PALETTENSCHEIN_ARTIKELZEILE:
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE cBarCode AS CHARACTER NO-UNDO.
- DEFINE VARIABLE oBarCode AS CHARACTER NO-UNDO.
- /*
- DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO.
- */
- DEFINE VARIABLE cCodeArt AS CHARACTER INIT 'P0205080' NO-UNDO.
- FIND FIRST zAufze NO-LOCK.
-
- PUT STREAM Out_Stream CONTROL bDrucker.Dru15cpi.
- DO WHILE zAufze.Artnr = 0:
- SUBSTRING(cZeile,036) = STRING(zAufze.Bez1,"x(30)").
- DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
- IF zAufze.Bez2 <> '' THEN
- DO:
- SUBSTRING(cZeile,036) = STRING(zAufze.Bez2,"x(30)").
- DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
- RETURN.
- END.
-
- FIND Artst NO-LOCK OF zAufze.
-
- FIND VGebinde
- WHERE VGebinde.Firma = zAufze.Firma
- AND VGebinde.Geb_Cd = zAufze.VGeb_Cd NO-ERROR.
- FIND KGebinde
- WHERE KGebinde.Firma = zAufze.Firma
- AND KGebinde.Geb_Cd = zAufze.KGeb_Cd NO-ERROR.
-
- SUBSTRING(cZeile,001) = STRING(KGebinde.KBez,"x(10)").
- IF zAufze.VGeb_Me <> 0 THEN
- DO:
- SUBSTRING(cZeile,012) = STRING(zAufze.VGeb_Me,'->>>')
- + 'x '
- + VGebinde.KBez.
- END.
- SUBSTRING(cZeile,028) = STRING(zAufze.MGeli ,"->>>>9").
- SUBSTRING(cZeile,036) = STRING(zAufze.Bez1 ,"x(30)").
- IF zAufze.Alk_Gehalt <> 0 THEN SUBSTRING(cZeile,068) = STRING(zAufze.Alk_Gehalt,"zz9.9%").
- IF zAufze.Jahr > 9 THEN SUBSTRING(cZeile,075) = STRING(zAufze.Jahr,"9999").
- SUBSTRING(cZeile,081) = STRING(zAufze.Artnr ,"999999").
- SUBSTRING(cZeile,089) = STRING(zAufze.LagOrt,'x(08)').
- cZeile = bDrucker.Drufettb
- + SUBSTRING(cZeile,001,027)
- + bDrucker.Drufette
- + SUBSTRING(cZeile,028,061)
- + bDrucker.Drufettb
- + SUBSTRING(cZeile,089,008)
- + bDrucker.Drufette
- + SUBSTRING(cZeile,097).
- DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
-
- IF zAufze.Bez2 <> '' THEN
- DO:
- SUBSTRING(cZeile,036) = STRING(zAufze.Bez2,"x(30)").
- DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
-
- DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
- END PROCEDURE.
- PROCEDURE PALETTENSCHEIN_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.
-
- /*
- 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')
- + '.'
- + TRIM(STRING(ipPlatz,'>9')).
- 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.
- IF tSchrift.Schzzbeg = 0 THEN tSchrift.Schzzbeg = 1.
- 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.
-
- 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.
- SUBSTRING(cZeile,001) = TRIM(SUBSTRING(FormText[03],01,70)).
- SUBSTRING(cZeile,071) = TRIM(SUBSTRING(FormText[04],01,70)).
- DYNAMIC-FUNCTION('putStream':U, 'F', 2, INPUT-OUTPUT cZeile) NO-ERROR.
-
- 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.
- IF iSeite = 1 THEN
- DO:
- 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.
- FIND FIRST RuestPlatz NO-LOCK
- WHERE RuestPlatz.Firma = bAufko.Firma
- AND RuestPlatz.RuestArt = iRuestArt
- AND RuestPlatz.Platz = ipPlatz.
- i1 = (98 - LENGTH(RuestPlatz.Bezeichnung)) / 2.
- cZeile = FILL('=', i1) + ' ' + RuestPlatz.Bezeichnung + ' ' + FILL('=', i1).
- DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
-
- DO WHILE iSeite > 1:
- DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
- LEAVE.
- END.
- END PROCEDURE.
- PROCEDURE PALETTENSCHEIN_RUECKSTAND:
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipRecid AS RECID NO-UNDO.
- DEFINE VARIABLE cBarCode AS CHARACTER NO-UNDO.
- DEFINE VARIABLE oBarCode AS CHARACTER NO-UNDO.
- /*
- DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO.
- */
- DEFINE VARIABLE cCodeArt AS CHARACTER INIT 'P0205080' NO-UNDO.
- FIND tRueck WHERE RECID(tRueck) = ipRecid NO-LOCK.
-
- PUT STREAM Out_Stream CONTROL bDrucker.Dru15cpi.
- DO WHILE tRueck.Artnr = 0:
- SUBSTRING(cZeile,036) = STRING(tRueck.Bez1,"x(30)").
- DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
- IF tRueck.Bez2 <> '' THEN
- DO:
- SUBSTRING(cZeile,036) = STRING(tRueck.Bez2,"x(30)").
- DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
- RETURN.
- END.
-
- FIND Artst NO-LOCK OF tRueck.
-
- FIND VGebinde NO-LOCK
- WHERE VGebinde.Firma = tRueck.Firma
- AND VGebinde.Geb_Cd = tRueck.VGeb_Cd NO-ERROR.
- FIND KGebinde NO-LOCK
- WHERE KGebinde.Firma = tRueck.Firma
- AND KGebinde.Geb_Cd = tRueck.KGeb_Cd NO-ERROR.
-
- SUBSTRING(cZeile,001) = STRING(KGebinde.KBez,"x(10)").
- IF tRueck.VGeb_Ru <> 0 AND
- tRueck.VGeb_Me <> tRueck.VGeb_Be THEN
- DO:
- SUBSTRING(cZeile,012) = STRING(tRueck.VGeb_Ru,'->>>')
- + 'x '
- + VGebinde.KBez.
- END.
- SUBSTRING(cZeile,028) = STRING(tRueck.MRuek ,"->>>>9").
- SUBSTRING(cZeile,036) = STRING(tRueck.Bez1 ,"x(30)").
- IF tRueck.Alk_Gehalt <> 0 THEN SUBSTRING(cZeile,068) = STRING(tRueck.Alk_Gehalt,"zz9.9%").
- IF tRueck.Jahr > 9 THEN SUBSTRING(cZeile,075) = STRING(tRueck.Jahr,"9999").
- SUBSTRING(cZeile,081) = STRING(tRueck.Artnr ,"999999").
- SUBSTRING(cZeile,089) = STRING(tRueck.LagOrt,'x(08)').
- cZeile = bDrucker.Drufettb
- + SUBSTRING(cZeile,001,027)
- + bDrucker.Drufette
- + SUBSTRING(cZeile,028,061)
- + bDrucker.Drufettb
- + SUBSTRING(cZeile,089,008)
- + bDrucker.Drufette
- + SUBSTRING(cZeile,097).
- DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
-
- IF tRueck.Bez2 <> '' THEN
- DO:
- SUBSTRING(cZeile,036) = STRING(tRueck.Bez2,"x(30)").
- DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
- END.
-
- 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.
|