g-p_huber.w 132 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gDruckenRuesten
  5. {adecomm/appserv.i}
  6. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gDruckenRuesten
  7. /*------------------------------------------------------------------------
  8. File:
  9. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  10. Input Parameters:
  11. <none>
  12. Output Parameters:
  13. <none>
  14. Author:
  15. Created:
  16. ------------------------------------------------------------------------*/
  17. /* This .W file was created with the Progress AppBuilder. */
  18. /*----------------------------------------------------------------------*/
  19. /* Create an unnamed pool to store all the widgets created
  20. by this procedure. This is a good default which assures
  21. that this procedure's triggers and internal procedures
  22. will execute in this procedure's storage, and that proper
  23. cleanup will occur on deletion of the procedure. */
  24. CREATE WIDGET-POOL.
  25. /* *************************** Definitions ************************** */
  26. /* Parameters Definitions --- */
  27. /* Local Variable Definitions --- */
  28. { incl/dlgdefinition.i }
  29. { incl/ttdruckparam.i }
  30. DEFINE VARIABLE cBenutzerDaten AS CHARACTER NO-UNDO.
  31. DEFINE VARIABLE cBenutzer AS CHARACTER NO-UNDO.
  32. DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO.
  33. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  34. DEFINE VARIABLE iRuestArt AS INTEGER NO-UNDO.
  35. DEFINE VARIABLE iPlatz AS INTEGER NO-UNDO.
  36. DEFINE VARIABLE iAnzahl AS INTEGER NO-UNDO.
  37. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  38. DEFINE VARIABLE FormText AS CHARACTER EXTENT 30 NO-UNDO.
  39. DEFINE VARIABLE iSeite AS INTEGER NO-UNDO.
  40. DEFINE VARIABLE iZeile AS INTEGER NO-UNDO.
  41. DEFINE VARIABLE iZusZZ AS INTEGER NO-UNDO.
  42. DEFINE VARIABLE dDatum AS DATE NO-UNDO.
  43. DEFINE VARIABLE cZeile AS CHARACTER NO-UNDO.
  44. DEFINE VARIABLE cKopf AS CHARACTER EXTENT 50 NO-UNDO.
  45. DEFINE VARIABLE cRabText AS CHARACTER FORMAT "x(25)" NO-UNDO.
  46. DEFINE VARIABLE cZusText AS CHARACTER FORMAT "x(25)" NO-UNDO.
  47. DEFINE VARIABLE cEpzText AS CHARACTER FORMAT "x(25)" NO-UNDO.
  48. DEFINE VARIABLE cRuester AS CHARACTER NO-UNDO.
  49. DEFINE VARIABLE lOpen AS LOG NO-UNDO.
  50. DEFINE VARIABLE lWebSpeed AS LOG NO-UNDO.
  51. DEFINE VARIABLE cLogName AS CHARACTER NO-UNDO.
  52. DEFINE VARIABLE lBatch AS LOG INIT TRUE NO-UNDO.
  53. DEFINE STREAM LogStream.
  54. DEFINE BUFFER bAufko FOR Aufko .
  55. DEFINE BUFFER bAufze FOR Aufze .
  56. DEFINE BUFFER bAufGKon FOR AufGKon .
  57. DEFINE BUFFER bTabel FOR Tabel .
  58. DEFINE BUFFER bSchrift FOR Schrift .
  59. DEFINE BUFFER bDrucker FOR Drucker .
  60. DEFINE BUFFER bSteuer FOR Steuer .
  61. DEFINE BUFFER LDebst FOR Debst .
  62. DEFINE BUFFER FDebst FOR Debst .
  63. DEFINE BUFFER bAdresse FOR Adresse .
  64. DEFINE TEMP-TABLE tAufze NO-UNDO LIKE Aufze
  65. FIELD Platz AS INTEGER
  66. FIELD Lagort AS CHARACTER
  67. INDEX tAufze-k1 IS PRIMARY
  68. Platz
  69. Lagort
  70. Artnr.
  71. DEFINE TEMP-TABLE btAufze LIKE tAufze.
  72. DEFINE TEMP-TABLE zAufze LIKE tAufze.
  73. DEFINE TEMP-TABLE tRueck NO-UNDO LIKE tAufze
  74. INDEX tRueck-k1 IS PRIMARY
  75. Platz
  76. Lagort
  77. Artnr.
  78. DEFINE TEMP-TABLE tDrucker NO-UNDO
  79. FIELD Drucker AS CHARACTER.
  80. DEFINE TEMP-TABLE tSchrift NO-UNDO LIKE Schrift
  81. FIELD iPlatz AS INTEGER
  82. FIELD Schacht AS INTEGER
  83. FIELD Anzahl AS INTEGER
  84. FIELD iRecid AS RECID
  85. INDEX tSchrift-k1 IS PRIMARY
  86. iPlatz
  87. Schname
  88. Schbild.
  89. DEFINE TEMP-TABLE tTabTexte
  90. FIELD cRecArt AS CHARACTER
  91. FIELD iZeile AS INTEGER
  92. FIELD cFeld1 AS CHARACTER
  93. FIELD cFeld2 AS CHARACTER
  94. FIELD cFeld3 AS CHARACTER
  95. FIELD iFeld1 AS INTEGER
  96. FIELD iFeld2 AS INTEGER
  97. FIELD iFeld3 AS INTEGER
  98. INDEX tTabTexte-k1 IS PRIMARY
  99. cRecArt
  100. iZeile.
  101. DEFINE WORKFILE WDrucker
  102. FIELD Drucker AS CHARACTER
  103. FIELD Schrift AS CHARACTER
  104. FIELD TotZZ AS INTEGER
  105. FIELD BegZZ AS INTEGER
  106. FIELD EndZZ AS INTEGER
  107. FIELD AnzKop AS INTEGER
  108. FIELD SchOri AS INTEGER
  109. FIELD SchKop AS INTEGER
  110. FIELD Besr AS INTEGER
  111. FIELD SchBesr AS INTEGER
  112. FIELD iRecid AS RECID.
  113. DEFINE TEMP-TABLE tHoReLager LIKE HoReLager
  114. FIELD iPrior AS INTEGER
  115. FIELD iRecid AS RECID .
  116. DEFINE VARIABLE htHoReLager AS HANDLE NO-UNDO.
  117. htHoReLager = TEMP-TABLE tHoReLager:DEFAULT-BUFFER-HANDLE.
  118. DEFINE TEMP-TABLE tLotLager LIKE LotLager
  119. FIELD iRecid AS RECID .
  120. DEFINE VARIABLE htLotLager AS HANDLE NO-UNDO.
  121. htLotLager = TEMP-TABLE tLotLager:DEFAULT-BUFFER-HANDLE.
  122. DEFINE TEMP-TABLE tLagerorte
  123. FIELD cArt AS CHARACTER
  124. FIELD iRecid AS RECID
  125. FIELD iBestand AS INTEGER
  126. FIELD cSort AS CHARACTER
  127. FIELD Lotnr AS CHARACTER
  128. FIELD Verfall AS DATE
  129. FIELD lLotnr AS LOGICAL
  130. FIELD lVerfall AS LOGICAL
  131. FIELD HoReLager_Id AS INTEGER
  132. FIELD rHoReLager AS RECID
  133. FIELD rLotLager AS RECID
  134. FIELD iMenge AS INTEGER
  135. INDEX tLagerorte-k1 IS PRIMARY
  136. cSort.
  137. DEFINE STREAM out_Stream.
  138. { src/adm2/widgetprto.i }
  139. /* _UIB-CODE-BLOCK-END */
  140. &ANALYZE-RESUME
  141. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  142. /* ******************** Preprocessor Definitions ******************** */
  143. &Scoped-define PROCEDURE-TYPE SmartDialog
  144. &Scoped-define DB-AWARE no
  145. &Scoped-define ADM-CONTAINER DIALOG-BOX
  146. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  147. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  148. &Scoped-define FRAME-NAME gDruckenRuesten
  149. /* Standard List Definitions */
  150. &Scoped-Define ENABLED-OBJECTS RECT-2 F_Aufnr F_Knr F_Kunde F_Dokument ~
  151. F_Drucker F_Schrift Btn_OK Btn_Cancel
  152. &Scoped-Define DISPLAYED-OBJECTS F_Aufnr F_Knr F_Kunde F_Dokument F_Drucker ~
  153. F_Schrift
  154. /* Custom List Definitions */
  155. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  156. &Scoped-define List-6 F_Aufnr F_Knr F_Kunde F_Dokument F_Drucker F_Schrift
  157. /* _UIB-PREPROCESSOR-BLOCK-END */
  158. &ANALYZE-RESUME
  159. /* ************************ Function Prototypes ********************** */
  160. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getHoreLager gDruckenRuesten
  161. FUNCTION getHoreLager RETURNS INTEGER
  162. (iprtAufze AS RECID) FORWARD.
  163. /* _UIB-CODE-BLOCK-END */
  164. &ANALYZE-RESUME
  165. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getLogName gDruckenRuesten
  166. FUNCTION getLogName RETURNS CHARACTER
  167. ( /* parameter-definitions */ ) FORWARD.
  168. /* _UIB-CODE-BLOCK-END */
  169. &ANALYZE-RESUME
  170. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getLotLager gDruckenRuesten
  171. FUNCTION getLotLager RETURNS INTEGER
  172. (iprtAufze AS RECID) FORWARD.
  173. /* _UIB-CODE-BLOCK-END */
  174. &ANALYZE-RESUME
  175. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD putStream gDruckenRuesten
  176. FUNCTION putStream RETURNS LOGICAL
  177. ( ipAttrib AS CHARACTER, ipAnzZeilen AS INTEGER, INPUT-OUTPUT ipZeile AS CHARACTER ) FORWARD.
  178. /* _UIB-CODE-BLOCK-END */
  179. &ANALYZE-RESUME
  180. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD writeLogFile gDruckenRuesten
  181. FUNCTION writeLogFile RETURNS LOGICAL
  182. ( ipMessage AS CHARACTER ) FORWARD.
  183. /* _UIB-CODE-BLOCK-END */
  184. &ANALYZE-RESUME
  185. /* *********************** Control Definitions ********************** */
  186. /* Define a dialog box */
  187. /* Definitions of the field level widgets */
  188. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  189. LABEL "abbrechen"
  190. SIZE 15 BY 1.
  191. DEFINE BUTTON Btn_OK AUTO-GO
  192. LABEL "OK"
  193. SIZE 15 BY 1.
  194. DEFINE VARIABLE F_Aufnr AS INTEGER FORMAT "zzzzzz9":U INITIAL 0
  195. LABEL "Auftrag"
  196. VIEW-AS FILL-IN NATIVE
  197. SIZE 12 BY 1
  198. BGCOLOR 15 NO-UNDO.
  199. DEFINE VARIABLE F_Dokument AS CHARACTER FORMAT "X(256)":U
  200. LABEL "Dokument"
  201. VIEW-AS FILL-IN NATIVE
  202. SIZE 40 BY 1
  203. BGCOLOR 15 NO-UNDO.
  204. DEFINE VARIABLE F_Drucker AS CHARACTER FORMAT "X(256)":U
  205. LABEL "Drucker"
  206. VIEW-AS FILL-IN NATIVE
  207. SIZE 40 BY 1
  208. BGCOLOR 15 NO-UNDO.
  209. DEFINE VARIABLE F_Knr AS INTEGER FORMAT "zzzzzz9":U INITIAL 0
  210. LABEL "Kunde"
  211. VIEW-AS FILL-IN NATIVE
  212. SIZE 12 BY 1
  213. BGCOLOR 15 NO-UNDO.
  214. DEFINE VARIABLE F_Kunde AS CHARACTER FORMAT "X(256)":U
  215. LABEL "/"
  216. VIEW-AS FILL-IN NATIVE
  217. SIZE 80 BY 1
  218. BGCOLOR 15 NO-UNDO.
  219. DEFINE VARIABLE F_Schrift AS CHARACTER FORMAT "X(256)":U
  220. LABEL "Schrift"
  221. VIEW-AS FILL-IN NATIVE
  222. SIZE 40 BY 1
  223. BGCOLOR 15 NO-UNDO.
  224. DEFINE RECTANGLE RECT-2
  225. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  226. SIZE 115.2 BY 8.1.
  227. /* ************************ Frame Definitions *********************** */
  228. DEFINE FRAME gDruckenRuesten
  229. F_Aufnr AT ROW 2 COL 14 COLON-ALIGNED WIDGET-ID 4
  230. F_Knr AT ROW 3 COL 14 COLON-ALIGNED WIDGET-ID 6
  231. F_Kunde AT ROW 3 COL 29 COLON-ALIGNED WIDGET-ID 8 NO-TAB-STOP
  232. F_Dokument AT ROW 4.52 COL 14 COLON-ALIGNED WIDGET-ID 10 NO-TAB-STOP
  233. F_Drucker AT ROW 5.52 COL 14 COLON-ALIGNED WIDGET-ID 12 NO-TAB-STOP
  234. F_Schrift AT ROW 6.52 COL 14 COLON-ALIGNED WIDGET-ID 14 NO-TAB-STOP
  235. Btn_OK AT ROW 10.91 COL 34.6
  236. Btn_Cancel AT ROW 10.91 COL 55.8
  237. RECT-2 AT ROW 1.48 COL 3 WIDGET-ID 2
  238. SPACE(3.99) SKIP(3.08)
  239. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  240. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  241. TITLE "Drucken bei Rüstverwaltung"
  242. CANCEL-BUTTON Btn_Cancel WIDGET-ID 100.
  243. /* *********************** Procedure Settings ************************ */
  244. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  245. /* Settings for THIS-PROCEDURE
  246. Type: SmartDialog
  247. Allow: Basic,Browse,DB-Fields,Query,Smart
  248. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  249. Design Page: 1
  250. Other Settings: COMPILE APPSERVER
  251. */
  252. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  253. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gDruckenRuesten
  254. /* ************************* Included-Libraries *********************** */
  255. {src/adm2/containr.i}
  256. /* _UIB-CODE-BLOCK-END */
  257. &ANALYZE-RESUME
  258. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  259. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  260. /* SETTINGS FOR DIALOG-BOX gDruckenRuesten
  261. FRAME-NAME */
  262. ASSIGN
  263. FRAME gDruckenRuesten:SCROLLABLE = FALSE
  264. FRAME gDruckenRuesten:HIDDEN = TRUE.
  265. /* SETTINGS FOR FILL-IN F_Aufnr IN FRAME gDruckenRuesten
  266. 6 */
  267. /* SETTINGS FOR FILL-IN F_Dokument IN FRAME gDruckenRuesten
  268. 6 */
  269. ASSIGN
  270. F_Dokument:READ-ONLY IN FRAME gDruckenRuesten = TRUE.
  271. /* SETTINGS FOR FILL-IN F_Drucker IN FRAME gDruckenRuesten
  272. 6 */
  273. ASSIGN
  274. F_Drucker:READ-ONLY IN FRAME gDruckenRuesten = TRUE.
  275. /* SETTINGS FOR FILL-IN F_Knr IN FRAME gDruckenRuesten
  276. 6 */
  277. /* SETTINGS FOR FILL-IN F_Kunde IN FRAME gDruckenRuesten
  278. 6 */
  279. ASSIGN
  280. F_Kunde:READ-ONLY IN FRAME gDruckenRuesten = TRUE.
  281. /* SETTINGS FOR FILL-IN F_Schrift IN FRAME gDruckenRuesten
  282. 6 */
  283. ASSIGN
  284. F_Schrift:READ-ONLY IN FRAME gDruckenRuesten = TRUE.
  285. /* _RUN-TIME-ATTRIBUTES-END */
  286. &ANALYZE-RESUME
  287. /* Setting information for Queries and Browse Widgets fields */
  288. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gDruckenRuesten
  289. /* Query rebuild information for DIALOG-BOX gDruckenRuesten
  290. _Options = "SHARE-LOCK"
  291. _Query is NOT OPENED
  292. */ /* DIALOG-BOX gDruckenRuesten */
  293. &ANALYZE-RESUME
  294. /* ************************ Control Triggers ************************ */
  295. &Scoped-define SELF-NAME gDruckenRuesten
  296. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gDruckenRuesten gDruckenRuesten
  297. ON END-ERROR OF FRAME gDruckenRuesten /* Drucken bei Rüstverwaltung */
  298. DO:
  299. RUN ENDE.
  300. RETURN NO-APPLY.
  301. END.
  302. /* _UIB-CODE-BLOCK-END */
  303. &ANALYZE-RESUME
  304. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gDruckenRuesten gDruckenRuesten
  305. ON WINDOW-CLOSE OF FRAME gDruckenRuesten /* Drucken bei Rüstverwaltung */
  306. DO:
  307. RUN ENDE.
  308. RETURN NO-APPLY.
  309. END.
  310. /* _UIB-CODE-BLOCK-END */
  311. &ANALYZE-RESUME
  312. &Scoped-define SELF-NAME Btn_Cancel
  313. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gDruckenRuesten
  314. ON CHOOSE OF Btn_Cancel IN FRAME gDruckenRuesten /* abbrechen */
  315. DO:
  316. RUN ENDE.
  317. RETURN NO-APPLY.
  318. END.
  319. /* _UIB-CODE-BLOCK-END */
  320. &ANALYZE-RESUME
  321. &Scoped-define SELF-NAME Btn_OK
  322. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gDruckenRuesten
  323. ON CHOOSE OF Btn_OK IN FRAME gDruckenRuesten /* OK */
  324. DO:
  325. btnOK = TRUE.
  326. RUN ENDE.
  327. RETURN NO-APPLY.
  328. END.
  329. /* _UIB-CODE-BLOCK-END */
  330. &ANALYZE-RESUME
  331. &UNDEFINE SELF-NAME
  332. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gDruckenRuesten
  333. /* *************************** Main Block *************************** */
  334. { incl/dlgmainblock.i }
  335. IF VALID-HANDLE(ACTIVE-WINDOW) AND FRAME {&FRAME-NAME}:PARENT EQ ?
  336. THEN FRAME {&FRAME-NAME}:PARENT = ACTIVE-WINDOW.
  337. RUN createObjects.
  338. SESSION:IMMEDIATE-DISPLAY = TRUE.
  339. /* Now enable the interface and wait for the exit condition. */
  340. /* (NOTE: handle ERROR and END-KEY so cleanup code will always fire. */
  341. MAIN-BLOCK:
  342. DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK
  343. ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK:
  344. SESSION:IMMEDIATE-DISPLAY = TRUE.
  345. RUN initializeObject.
  346. END.
  347. RUN destroyObject.
  348. /* _UIB-CODE-BLOCK-END */
  349. &ANALYZE-RESUME
  350. /* ********************** Internal Procedures *********************** */
  351. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gDruckenRuesten _ADM-CREATE-OBJECTS
  352. PROCEDURE adm-create-objects :
  353. /*------------------------------------------------------------------------------
  354. Purpose: Create handles for all SmartObjects used in this procedure.
  355. After SmartObjects are initialized, then SmartLinks are added.
  356. Parameters: <none>
  357. ------------------------------------------------------------------------------*/
  358. END PROCEDURE.
  359. /* _UIB-CODE-BLOCK-END */
  360. &ANALYZE-RESUME
  361. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGSSCHEIN gDruckenRuesten
  362. PROCEDURE AUFTRAGSSCHEIN :
  363. /*------------------------------------------------------------------------------
  364. Purpose:
  365. Parameters: <none>
  366. Notes:
  367. ------------------------------------------------------------------------------*/
  368. DEFINE VARIABLE cDokArt AS CHARACTER NO-UNDO.
  369. DEFINE VARIABLE hbAufko AS HANDLE NO-UNDO.
  370. DEFINE VARIABLE htTabTexte AS HANDLE NO-UNDO.
  371. DEFINE VARIABLE nFakBetr AS DECIMAL NO-UNDO.
  372. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  373. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  374. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  375. cDokArt = 'AUFTRAGSSCHEIN'.
  376. iSeite = 0.
  377. iZeile = 0.
  378. iPlatz = 0.
  379. cZeile = ''.
  380. lOpen = FALSE.
  381. dDatum = bAufko.Lief_Datum.
  382. hbAufko = BUFFER bAufko:HANDLE.
  383. htTabTexte = TEMP-TABLE tTabTexte:DEFAULT-BUFFER-HANDLE.
  384. RUN CREATE_TABTEXTE ( INPUT hbAufko, INPUT-OUTPUT htTabTexte ) NO-ERROR.
  385. EMPTY TEMP-TABLE tSchrift.
  386. DO WHILE TRUE:
  387. FIND FIRST RuestDaten NO-LOCK
  388. WHERE RuestDaten.Firma = bAufko.Firma
  389. AND RuestDaten.RuestArt = iRuestArt
  390. /* AND RuestDaten.Platz = iPlatz*/
  391. AND Ruestdaten.AS_Doku = TRUE NO-ERROR.
  392. IF AVAILABLE RuestDaten THEN
  393. DO:
  394. iPlatz = RuestDaten.Platz.
  395. RUN GET_DRUCKERDATEN ( iPlatz, RuestDaten.AS_Drucker, RuestDaten.AS_Schrift ).
  396. IF RETURN-VALUE <> '' THEN RETURN RETURN-VALUE.
  397. FIND FIRST tSchrift WHERE tSchrift.iPlatz = iPlatz.
  398. ASSIGN
  399. tSchrift.Schzztot = RuestDaten.AS_TotZZ
  400. tSchrift.Schzzbeg = RuestDaten.AS_KopfZZ
  401. tSchrift.Schzzend = RuestDaten.AS_FussZZ
  402. tSchrift.Schacht = RuestDaten.AS_Schacht
  403. tSchrift.Anzahl = RuestDaten.AS_Anzahl.
  404. LEAVE.
  405. END.
  406. LEAVE.
  407. END.
  408. FIND bAdresse NO-LOCK USE-INDEX Adresse-k1
  409. WHERE bAdresse.Firma = AdFirma
  410. AND bAdresse.Knr = bAufko.Knr NO-ERROR.
  411. DO WITH FRAME {&FRAME-NAME}:
  412. F_Aufnr :SCREEN-VALUE = STRING(bAufko.Aufnr).
  413. F_Knr :SCREEN-VALUE = STRING(bAufko.Knr).
  414. F_Kunde :SCREEN-VALUE = bAdresse.Anzeig_Br.
  415. F_Dokument:SCREEN-VALUE = cDokArt.
  416. F_Drucker :SCREEN-VALUE = tSchrift.Schname.
  417. F_Schrift :SCREEN-VALUE = tSchrift.Schbild.
  418. ASSIGN {&List-6}.
  419. DISPLAY {&List-6}.
  420. END.
  421. cDateiName = SESSION:TEMP-DIR
  422. + 'AuftragsSchein'
  423. + STRING(TIME,'999999')
  424. + STRING(RANDOM(1, 999999),'999999')
  425. + '.txt'.
  426. OUTPUT STREAM out_Stream TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  427. lOpen = TRUE.
  428. RUN LIBILD ( cDokArt ).
  429. RUN AUFTRAGSSCHEIN_KOPF.
  430. i2 = 0.
  431. FOR EACH btAufze NO-LOCK
  432. WHERE btAufze.Platz = 0:
  433. FIND FIRST zAufze.
  434. BUFFER-COPY btAufze TO zAufze.
  435. RUN AUFTRAGSSCHEIN_ARTIKELZEILE.
  436. i2 = i2 + 1.
  437. END.
  438. IF i2 > 0 THEN
  439. DO:
  440. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  441. END.
  442. FOR EACH tAufze NO-LOCK
  443. BY tAufze.Platz
  444. BY tAufze.Lagort
  445. BY tAufze.Pos :
  446. IF (tSchrift.Schzztot - iZeile - 2) < tSchrift.Schzzend THEN
  447. DO:
  448. RUN AUFTRAGSSCHEIN_KOPF.
  449. END.
  450. FIND FIRST zAufze.
  451. BUFFER-COPY tAufze TO zAufze.
  452. RUN AUFTRAGSSCHEIN_ARTIKELZEILE.
  453. nFakBetr = nFakBetr + tAufze.Net_Betr.
  454. END.
  455. PUT STREAM Out_Stream CONTROL bDrucker.Dru15cpi.
  456. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  457. SUBSTRING(cZeile,040) = SUBSTRING(FormText[15],21,20).
  458. SUBSTRING(cZeile,100) = STRING(nFakBetr,"->>>,>>9.99").
  459. DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  460. PUT STREAM Out_Stream CONTROL bDrucker.Dru12cpi.
  461. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  462. IF BAufko.Auf_Text <> '' THEN
  463. DO:
  464. cString = BAufko.Auf_Text.
  465. i1 = NUM-ENTRIES(cString, CHR(10)).
  466. IF i1 > 0 THEN iZusZZ = iZusZZ + i1 + 1.
  467. END.
  468. IF iZusZZ > 0 THEN iZusZZ = iZusZZ + 2.
  469. IF (tSchrift.Schzztot - iZeile - iZusZZ) < tSchrift.Schzzend THEN
  470. DO:
  471. RUN AUFTRAGSSCHEIN_KOPF.
  472. END.
  473. /* Auftragstext ------------------------------------------------------ */
  474. cString = BAufko.Auf_Text.
  475. IF cString <> '' THEN
  476. DO:
  477. i2 = 0.
  478. DO i1 = 1 TO NUM-ENTRIES(cString, CHR(10)):
  479. SUBSTRING(cZeile,005) = ENTRY(i1, cString, CHR(10)).
  480. DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  481. i2 = i2 + 1.
  482. END.
  483. END.
  484. IF i2 > 0 THEN
  485. DO:
  486. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  487. END.
  488. FOR EACH btAufze NO-LOCK
  489. WHERE btAufze.Platz = 99:
  490. FIND FIRST zAufze.
  491. BUFFER-COPY btAufze TO zAufze.
  492. RUN AUFTRAGSSCHEIN_ARTIKELZEILE.
  493. i2 = i2 + 1.
  494. END.
  495. IF lOpen = TRUE THEN
  496. DO:
  497. OUTPUT STREAM out_Stream CLOSE.
  498. lOpen = FALSE.
  499. RUN DRUCKAUSGABE NO-ERROR.
  500. IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
  501. END.
  502. RETURN ''.
  503. END PROCEDURE.
  504. /* _UIB-CODE-BLOCK-END */
  505. &ANALYZE-RESUME
  506. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGSSCHEIN_ARTIKELZEILE gDruckenRuesten
  507. PROCEDURE AUFTRAGSSCHEIN_ARTIKELZEILE :
  508. /*--------------------------------------------------------------------------
  509. Purpose:
  510. Parameters: <none>
  511. Notes:
  512. ------------------------------------------------------------------------------*/
  513. DEFINE VARIABLE dRabWert AS DECIMAL NO-UNDO.
  514. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  515. FIND FIRST zAufze NO-LOCK.
  516. PUT STREAM Out_Stream CONTROL bDrucker.Dru15cpi.
  517. DO WHILE zAufze.Artnr = 0:
  518. SUBSTRING(cZeile,040) = STRING(zAufze.Bez1,"x(30)").
  519. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  520. IF zAufze.Bez2 <> '' THEN
  521. DO:
  522. SUBSTRING(cZeile,040) = STRING(zAufze.Bez2,"x(30)").
  523. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  524. END.
  525. RETURN.
  526. END.
  527. FIND Artst NO-LOCK
  528. WHERE Artst.Firma = zAufze.Firma
  529. AND Artst.Artnr = zAufze.Artnr
  530. AND Artst.Inhalt = zAufze.Inhalt
  531. AND Artst.Jahr = zAufze.Jahr.
  532. FIND VGebinde NO-LOCK
  533. WHERE VGebinde.Firma = bAufko.Firma
  534. AND VGebinde.Geb_Cd = zAufze.VGeb_Cd NO-ERROR.
  535. FIND KGebinde NO-LOCK
  536. WHERE KGebinde.Firma = bAufko.Firma
  537. AND KGebinde.Geb_Cd = zAufze.KGeb_Cd NO-ERROR.
  538. SUBSTRING(cZeile,003) = STRING(KGebinde.KBez,"x(10)").
  539. IF zAufze.VGeb_Be <> 0 THEN
  540. DO:
  541. SUBSTRING(cZeile,015) = STRING(zAufze.VGeb_Be,'->>>')
  542. + 'x '
  543. + STRING(VGebinde.KBez,'x(10)').
  544. END.
  545. SUBSTRING(cZeile,031) = STRING(zAufze.MGeli ,"->>,>>9").
  546. SUBSTRING(cZeile,040) = STRING(zAufze.Bez1 ,"x(30)").
  547. IF zAufze.Jahr > 9 THEN SUBSTRING(cZeile,069) = STRING(zAufze.Jahr,"9999").
  548. IF zAufze.Alk_Gehalt <> 0 THEN SUBSTRING(cZeile,074) = STRING(zAufze.Alk_Gehalt,"zz9.9%").
  549. SUBSTRING(cZeile,082) = STRING(zAufze.Artnr ,"999999").
  550. SUBSTRING(cZeile,090) = STRING(zAufze.Preis ,">>,>>9.999").
  551. SUBSTRING(cZeile,100) = STRING(zAufze.Bru_Betr ,"->>>,>>9.99").
  552. SUBSTRING(cZeile,112) = STRING(zAufze.WuCd ,"z9").
  553. cZeile = SUBSTRING(cZeile,001,014)
  554. + bDrucker.Drufettb
  555. + SUBSTRING(cZeile,015,016)
  556. + bDrucker.Drufette
  557. + SUBSTRING(cZeile,031).
  558. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  559. IF zAufze.Bez2 <> '' THEN
  560. DO:
  561. SUBSTRING(cZeile,040) = STRING(zAufze.Bez2,"x(30)").
  562. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  563. END.
  564. IF zAufze.Aktion THEN
  565. DO:
  566. SUBSTRING(cZeile,040) = STRING(zAufze.Aktion_Text,"x(30)").
  567. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  568. END.
  569. DO WHILE TRUE:
  570. IF zAufze.Rab_Betr = 0 THEN LEAVE.
  571. dRabWert = ABSOLUTE(zAufze.Rab_Wert).
  572. IF zAufze.Rab_Art = 3 THEN cString = cEpzText.
  573. ELSE
  574. DO:
  575. IF zAufze.Rab_Betr < 0 THEN cString = cZusText.
  576. IF zAufze.Rab_Betr > 0 THEN cString = cRabText.
  577. END.
  578. SUBSTRING(cZeile,040) = TRIM(cString).
  579. IF zAufze.Rab_Art = 1
  580. THEN SUBSTRING(cZeile,095) = STRING(dRabWert,"->9.9%").
  581. IF zAufze.Rab_Art = 2 OR
  582. zAufze.Rab_Art = 3
  583. THEN SUBSTRING(cZeile,095) = STRING(dRabWert,"-9.99").
  584. SUBSTRING(cZeile,100) = STRING(- zAufze.Rab_Betr ,"->>>,>>9.99").
  585. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  586. LEAVE.
  587. END.
  588. DO WHILE TRUE:
  589. IF zAufze.Zus_Betr = 0 THEN LEAVE.
  590. dRabWert = ABSOLUTE(zAufze.Zus_Wert).
  591. IF zAufze.Zus_Art = 3 THEN cString = cEpzText.
  592. ELSE
  593. DO:
  594. IF zAufze.Zus_Betr < 0 THEN cString = cRabText.
  595. IF zAufze.Zus_Betr > 0 THEN cString = cZusText.
  596. END.
  597. SUBSTRING(cZeile,040) = TRIM(cString).
  598. IF zAufze.Zus_Art = 1
  599. THEN SUBSTRING(cZeile,095) = STRING(dRabWert,"->9.9%").
  600. IF zAufze.Zus_Art = 2 OR
  601. zAufze.Zus_Art = 3
  602. THEN SUBSTRING(cZeile,095) = STRING(dRabWert,"-9.99").
  603. SUBSTRING(cZeile,100) = STRING(+ zAufze.Zus_Betr ,"->>>,>>9.99").
  604. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  605. LEAVE.
  606. END.
  607. END PROCEDURE.
  608. /* _UIB-CODE-BLOCK-END */
  609. &ANALYZE-RESUME
  610. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGSSCHEIN_KOPF gDruckenRuesten
  611. PROCEDURE AUFTRAGSSCHEIN_KOPF :
  612. /*------------------------------------------------------------------------------
  613. Purpose:
  614. Parameters: <none>
  615. Notes:
  616. ------------------------------------------------------------------------------*/
  617. DEFINE VARIABLE kk AS INTEGER NO-UNDO.
  618. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  619. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  620. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  621. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  622. DEFINE VARIABLE cAufnr AS CHARACTER NO-UNDO.
  623. DEFINE VARIABLE cCodeArt AS CHARACTER INIT 'P0210100' NO-UNDO.
  624. DEFINE VARIABLE cBarcode AS CHARACTER NO-UNDO.
  625. RUN NEUE_SEITE.
  626. IF iSeite = 1 THEN
  627. DO:
  628. FIND LDebst NO-LOCK USE-INDEX Debst-k1
  629. WHERE LDebst.Firma = bAufko.Firma
  630. AND LDebst.Knr = bAufko.Knr NO-ERROR.
  631. FIND FDebst NO-LOCK USE-INDEX Debst-k1
  632. WHERE FDebst.Firma = bAufko.Firma
  633. AND FDebst.Knr = bAufko.Fak_Knr NO-ERROR.
  634. END.
  635. ASSIGN
  636. cKopf = ''
  637. cZeile = ''
  638. kk = 0.
  639. IF bAufko.Adresse[05] <> '' THEN
  640. DO:
  641. kk = kk + 2.
  642. DO ix = 1 TO 5:
  643. IF ix = 5 THEN SUBSTRING(cZeile,003) = bDrucker.Drufettb + bAufko.Adresse[ix] + bDrucker.Drufette.
  644. ELSE SUBSTRING(cZeile,003) = bAufko.Adresse[ix].
  645. kk = kk + 1.
  646. cKopf[kk] = cZeile.
  647. cZeile = ''.
  648. END.
  649. END.
  650. ELSE
  651. DO:
  652. DO ix = 5 TO 11:
  653. IF ix = 11 THEN SUBSTRING(cZeile,003) = bDrucker.Drufettb + bAdresse.Anschrift[ix] + bDrucker.Drufette.
  654. ELSE SUBSTRING(cZeile,003) = bAdresse.Anschrift[ix].
  655. kk = kk + 1.
  656. cKopf[kk] = cZeile.
  657. cZeile = ''.
  658. END.
  659. END.
  660. IF iSeite = 1 THEN
  661. DO:
  662. cAufnr = STRING(bAufko.Aufnr,'9999999').
  663. RUN BAR-CODE-39 ( INPUT cAufnr ,
  664. INPUT cCodeArt,
  665. OUTPUT cBarCode ).
  666. kk = kk + 2.
  667. SUBSTRING(cKopf[kk],003) = CHR(27) + "&f0S" /* Cursorposition speichern */
  668. + CHR(27) + "*p" /* Cursor neu Positionieren anhand der Zeile */
  669. + STRING(((kk + iZeile) * 50),"9999") + "Y"
  670. + cBarcode
  671. + CHR(027) + "&f1S". /* Cusrorposition zurückholen */
  672. END.
  673. kk = 12.
  674. IF bAufko.Auf_Tot >= 0
  675. THEN SUBSTRING(cKopf[kk],067) = TRIM(SUBSTRING(FormText[02],01,20)).
  676. ELSE SUBSTRING(cKopf[kk],067) = TRIM(SUBSTRING(FormText[02],21,20)).
  677. cKopf[kk] = cKopf[kk] + STRING(bAufko.Aufnr,"zz999999").
  678. cKopf[kk] = SUBSTRING(cKopf[kk],001,066)
  679. + bDrucker.Drufettb
  680. + SUBSTRING(cKopf[kk],067)
  681. + bDrucker.Drufette.
  682. kk = kk + 2.
  683. IF iSeite = 1 THEN
  684. DO:
  685. FIND FIRST tTabtexte NO-LOCK
  686. WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR.
  687. IF AVAILABLE tTabTexte THEN
  688. DO:
  689. SUBSTRING(cKopf[kk],003) = TRIM(SUBSTRING(FormText[19],01,20))
  690. + TRIM(bDrucker.Drufettb)
  691. + ' '
  692. + tTabTexte.cFeld3
  693. + TRIM(bDrucker.Drufette).
  694. cZeile = ''.
  695. kk = kk + 1.
  696. END.
  697. FIND FIRST tTabtexte NO-LOCK
  698. WHERE tTabTexte.cRecArt = 'WISO' NO-ERROR.
  699. IF AVAILABLE tTabTexte THEN
  700. DO:
  701. SUBSTRING(cKopf[kk],003) = TRIM(SUBSTRING(FormText[19],21,20))
  702. + TRIM(bDrucker.Drufettb)
  703. + ' '
  704. + tTabTexte.cFeld3
  705. + TRIM(bDrucker.Drufette).
  706. cZeile = ''.
  707. kk = kk + 1.
  708. END.
  709. SUBSTRING(cKopf[kk],003) = TRIM(SUBSTRING(FormText[07],41,20))
  710. + " "
  711. + STRING(bAufko.Auf_Datum,"99.99.9999").
  712. SUBSTRING(cKopf[kk],034) = TRIM(SUBSTRING(FormText[08],01,20))
  713. + STRING(bAufko.Knr,"zzzzzzz999999").
  714. SUBSTRING(cKopf[kk],067) = TRIM(SUBSTRING(FormText[07],01,20))
  715. + " "
  716. + STRING(dDatum,"99.99.9999").
  717. cZeile = ''.
  718. kk = kk + 1.
  719. SUBSTRING(cKopf[kk],003) = TRIM(SUBSTRING(FormText[09],21,20))
  720. + " "
  721. + STRING(bAufko.Lief_Datum,"99.99.9999").
  722. SUBSTRING(cKopf[kk],034) = TRIM(SUBSTRING(FormText[08],21,20))
  723. + STRING(bAufko.Gewicht,"z,zzz,zz9.999-").
  724. SUBSTRING(cKopf[kk],067) = TRIM(SUBSTRING(FormText[20],01,20))
  725. + STRING(iSeite,'z9').
  726. cKopf[kk] = SUBSTRING(cKopf[kk],01,33)
  727. + bDrucker.Drufettb
  728. + SUBSTRING(cKopf[kk],34,33)
  729. + bDrucker.Drufette
  730. + SUBSTRING(cKopf[kk],67).
  731. cZeile = ''.
  732. kk = kk + 1.
  733. SUBSTRING(cKopf[kk],003) = TRIM(SUBSTRING(FormText[07],21,20))
  734. + " "
  735. + STRING(bAufko.U_Ref,'x(20)').
  736. SUBSTRING(cKopf[kk],067) = TRIM(SUBSTRING(FormText[08],41,20))
  737. + " "
  738. + bAdresse.Tel-1.
  739. cZeile = ''.
  740. END.
  741. ELSE
  742. DO:
  743. kk = kk + 2.
  744. SUBSTRING(cKopf[kk],067) = TRIM(SUBSTRING(FormText[20],01,20))
  745. + STRING(iSeite,'z9').
  746. kk = kk + 1.
  747. END.
  748. kk = kk + 2.
  749. cZeile = 'Inhalt Gebinde Menge Bezeichnung JG Alk% ArtNr Preis Betrag C'.
  750. SUBSTRING(cKopf[kk],003) = bDrucker.Druunterb
  751. + cZeile
  752. + bDrucker.Druuntere.
  753. SUBSTRING(cKopf[kk - 1],003) = bDrucker.Druunterb
  754. + FILL(' ', LENGTH(cZeile))
  755. + bDrucker.Druuntere.
  756. cKopf[kk - 1] = bDrucker.Dru15cpi + bDrucker.Drufettb
  757. + cKopf[kk - 1]
  758. + bDrucker.Drufettb + bDrucker.Dru12cpi.
  759. cKopf[kk] = bDrucker.Dru15cpi + bDrucker.Drufettb
  760. + cKopf[kk]
  761. + bDrucker.Drufettb + bDrucker.Dru12cpi.
  762. kk = kk + 1.
  763. cZeile = ''.
  764. DO ix = 1 TO kk:
  765. cZeile = cKopf[ix].
  766. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  767. END.
  768. IF iSeite = 1 AND
  769. bAufko.Abh_Text <> '' THEN
  770. DO:
  771. cString = bAufko.Abh_Text.
  772. i2 = 0.
  773. DO i1 = 1 TO NUM-ENTRIES(cString, CHR(10)):
  774. SUBSTRING(cZeile,003) = ENTRY(i1, cString, CHR(10)).
  775. DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  776. i2 = i2 + 1.
  777. END.
  778. IF i2 > 0 THEN
  779. DO:
  780. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  781. END.
  782. END.
  783. END PROCEDURE.
  784. /* _UIB-CODE-BLOCK-END */
  785. &ANALYZE-RESUME
  786. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BAR-CODE-39 gDruckenRuesten
  787. PROCEDURE BAR-CODE-39 :
  788. /*------------------------------------------------------------------------------
  789. Purpose:
  790. Parameters: <none>
  791. Notes:
  792. ------------------------------------------------------------------------------*/
  793. DEFINE INPUT PARAMETER ipWert AS CHARACTER NO-UNDO.
  794. DEFINE INPUT PARAMETER ipCodeArt AS CHARACTER NO-UNDO.
  795. DEFINE OUTPUT PARAMETER opBarCode AS CHARACTER NO-UNDO.
  796. DEFINE VARIABLE clr AS LOG INIT TRUE NO-UNDO.
  797. DEFINE VARIABLE wk AS CHARACTER NO-UNDO.
  798. DEFINE VARIABLE drw AS CHARACTER NO-UNDO.
  799. DEFINE VARIABLE cDir AS CHARACTER NO-UNDO.
  800. DEFINE VARIABLE k AS CHARACTER NO-UNDO.
  801. DEFINE VARIABLE att AS CHARACTER NO-UNDO.
  802. DEFINE VARIABLE kod AS CHARACTER NO-UNDO
  803. INIT "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.Ø *$/+%".
  804. att =
  805. "100100001001100001101100000000110001100110000001110000000100101100100100"
  806. + "001100100000110100100001001001001001101001000000011001100011000001011000"
  807. + "000001101100001100001001100000011100100000011001000011101000010000010011"
  808. + "100010010001010010000000111100000110001000110000010110110000001011000001"
  809. + "111000000010010001110010000011010000010000101110000100011000100010010100"
  810. + "010101000010100010010001010000101010".
  811. DEFINE VARIABLE i AS INTEGER NO-UNDO.
  812. DEFINE VARIABLE j AS INTEGER NO-UNDO.
  813. DEFINE VARIABLE l AS INTEGER NO-UNDO.
  814. DEFINE VARIABLE brd AS INTEGER NO-UNDO.
  815. DEFINE VARIABLE jst AS INTEGER NO-UNDO.
  816. ASSIGN
  817. i = (IF SUBSTRING (ipCodeArt, 1, 1) = "P" THEN 1 ELSE 2)
  818. opBarCode = "~E&f0S~E*c100G"
  819. drw = SUBSTRING("ab" , i, 1)
  820. + SUBSTRING(ipCodeArt, 6)
  821. + SUBSTRING("ba" , i, 1)
  822. + "P"
  823. cDir = SUBSTRING("XY", i, 1)
  824. k = "*" + ipWert + "*" .
  825. DO i = 1 TO LENGTH(k):
  826. ASSIGN
  827. j = INDEX(kod, SUBSTRING (k, i, 1)) * 9 - 8
  828. wk = SUBSTRING (att, j, 9) + "0" .
  829. DO l = 1 TO 10:
  830. ASSIGN
  831. brd = IF SUBSTRING(wk,l,1) = "0" THEN 2 ELSE 4
  832. opBarCode = opBarCode
  833. + (IF clr THEN "~E*c" + SUBSTRING (ipCodeArt, brd, 2) + drw
  834. ELSE "~E*p+" + STRING(INTEGER(SUBSTRING(ipCodeArt, brd, 2))
  835. + jst) + cDir)
  836. jst = INTEGER (SUBSTRING (ipCodeArt, brd, 2))
  837. clr = NOT clr.
  838. END. /* of looping 1 to 10 */
  839. END. /* of going through string 'k' */
  840. ASSIGN
  841. opBarCode = opBarCode + "~E&f1S"
  842. wk = "".
  843. END PROCEDURE.
  844. /* _UIB-CODE-BLOCK-END */
  845. &ANALYZE-RESUME
  846. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gDruckenRuesten _DEFAULT-DISABLE
  847. PROCEDURE disable_UI :
  848. /*------------------------------------------------------------------------------
  849. Purpose: DISABLE the User Interface
  850. Parameters: <none>
  851. Notes: Here we clean-up the user-interface by deleting
  852. dynamic widgets we have created and/or hide
  853. frames. This procedure is usually called when
  854. we are ready to "clean-up" after running.
  855. ------------------------------------------------------------------------------*/
  856. /* Hide all frames. */
  857. HIDE FRAME gDruckenRuesten.
  858. END PROCEDURE.
  859. /* _UIB-CODE-BLOCK-END */
  860. &ANALYZE-RESUME
  861. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE gDruckenRuesten
  862. PROCEDURE DRUCKAUSGABE :
  863. /*------------------------------------------------------------------------------
  864. Purpose:
  865. Parameters: <none>
  866. Notes:
  867. ------------------------------------------------------------------------------*/
  868. DEFINE VARIABLE iAnzKopien AS INTEGER NO-UNDO.
  869. DEFINE VARIABLE sRecid AS RECID NO-UNDO.
  870. DEFINE VARIABLE iSize AS INTEGER NO-UNDO.
  871. DEFINE VARIABLE iKopie AS INTEGER NO-UNDO.
  872. DEFINE VARIABLE iSchacht AS INTEGER NO-UNDO.
  873. DEFINE VARIABLE cString AS CHARACTER INIT '' NO-UNDO.
  874. DYNAMIC-FUNCTION ('writeLogFile':U, 'Druckausgabe start') NO-ERROR.
  875. FIND FIRST tSchrift NO-LOCK
  876. WHERE tSchrift.iPlatz = iPlatz NO-ERROR.
  877. IF NOT AVAILABLE tSchrift THEN FIND FIRST tSchrift.
  878. sRecid = tSchrift.iRecid.
  879. iAnzKopien = tSchrift.Anzahl.
  880. iSchacht = tSchrift.Schacht.
  881. DYNAMIC-FUNCTION ('writeLogFile':U, SUBSTITUTE('Druckausgabe mit Platz &1, Drucker &2, Schrift &3', tSchrift.iPlatz, tSchrift.Schname, tSchrift.Schbild) ) NO-ERROR.
  882. IF iAnzKopien = 0 THEN iAnzKopien = 1.
  883. DO iKopie = 1 TO iAnzKopien:
  884. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, cDateiName ,
  885. sRecid ,
  886. tSchrift.Schacht ,
  887. 240 , /* Blockgrösse */
  888. 'ibm850' ,
  889. iAnzKopien ). /* Anzahl Kopien */
  890. IF iSize = 0 THEN
  891. DO:
  892. cString = 'Druckvorgang gescheitert !!! '.
  893. DYNAMIC-FUNCTION('writeLogFile':U, cString) NO-ERROR.
  894. IF lBatch THEN RETURN ERROR.
  895. MESSAGE cString VIEW-AS ALERT-BOX ERROR.
  896. RETURN ERROR.
  897. END.
  898. IF iKopie < iAnzKopien THEN
  899. DO:
  900. ETIME(TRUE).
  901. DO WHILE ETIME(FALSE) < 200:
  902. END.
  903. END.
  904. END.
  905. OS-DELETE VALUE(cDateiName) NO-ERROR.
  906. END PROCEDURE.
  907. /* _UIB-CODE-BLOCK-END */
  908. &ANALYZE-RESUME
  909. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gDruckenRuesten
  910. PROCEDURE enableObject :
  911. /*------------------------------------------------------------------------------
  912. Purpose: Super Override
  913. Parameters:
  914. Notes:
  915. ------------------------------------------------------------------------------*/
  916. { incl/dlgenableobject.i }
  917. END PROCEDURE.
  918. /* _UIB-CODE-BLOCK-END */
  919. &ANALYZE-RESUME
  920. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gDruckenRuesten _DEFAULT-ENABLE
  921. PROCEDURE enable_UI :
  922. /*------------------------------------------------------------------------------
  923. Purpose: ENABLE the User Interface
  924. Parameters: <none>
  925. Notes: Here we display/view/enable the widgets in the
  926. user-interface. In addition, OPEN all queries
  927. associated with each FRAME and BROWSE.
  928. These statements here are based on the "Other
  929. Settings" section of the widget Property Sheets.
  930. ------------------------------------------------------------------------------*/
  931. DISPLAY F_Aufnr F_Knr F_Kunde F_Dokument F_Drucker F_Schrift
  932. WITH FRAME gDruckenRuesten.
  933. ENABLE RECT-2 F_Aufnr F_Knr F_Kunde F_Dokument F_Drucker F_Schrift Btn_OK
  934. Btn_Cancel
  935. WITH FRAME gDruckenRuesten.
  936. VIEW FRAME gDruckenRuesten.
  937. {&OPEN-BROWSERS-IN-QUERY-gDruckenRuesten}
  938. END PROCEDURE.
  939. /* _UIB-CODE-BLOCK-END */
  940. &ANALYZE-RESUME
  941. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gDruckenRuesten
  942. PROCEDURE ENDE :
  943. /*------------------------------------------------------------------------------
  944. Purpose:
  945. Parameters: <none>
  946. Notes:
  947. ------------------------------------------------------------------------------*/
  948. IF btnOK THEN
  949. DO:
  950. END.
  951. { incl/dlgende.i }
  952. END PROCEDURE.
  953. /* _UIB-CODE-BLOCK-END */
  954. &ANALYZE-RESUME
  955. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_tAufze gDruckenRuesten
  956. PROCEDURE FUELLEN_tAufze :
  957. /*------------------------------------------------------------------------------
  958. Purpose:
  959. Parameters: <none>
  960. Notes:
  961. ------------------------------------------------------------------------------*/
  962. DEFINE VARIABLE minPos AS INTEGER NO-UNDO.
  963. DEFINE VARIABLE maxPos AS INTEGER NO-UNDO.
  964. DEFINE VARIABLE jPlatz AS INTEGER NO-UNDO.
  965. DEFINE VARIABLE cLagOrt AS CHARACTER NO-UNDO.
  966. DEFINE VARIABLE lArtikel AS LOG NO-UNDO.
  967. EMPTY TEMP-TABLE btAufze.
  968. EMPTY TEMP-TABLE tAufze.
  969. EMPTY TEMP-TABLE tRueck.
  970. ASSIGN
  971. minPos = 0
  972. maxPos = 9999.
  973. /* Kommentar zu Beginn eines Auftrages */
  974. lArtikel = FALSE.
  975. FOR EACH Aufze NO-LOCK USE-INDEX Aufze-k1
  976. WHERE Aufze.Firma = Firma
  977. AND Aufze.Aufnr = bAufko.Aufnr
  978. AND Aufze.Pos > minPos:
  979. IF Aufze.Artnr > 0 THEN
  980. DO:
  981. lArtikel = TRUE.
  982. LEAVE.
  983. END.
  984. minPos = Aufze.Pos.
  985. CREATE btAufze.
  986. BUFFER-COPY Aufze TO btAufze
  987. ASSIGN
  988. btAufze.Platz = 0
  989. btAufze.LagOrt = ''.
  990. END.
  991. /* Kommentar am Ende eines Auftrages */
  992. /* ebenfalls an den Anfang des Auftrages schieben */
  993. IF lArtikel THEN
  994. DO:
  995. FOR EACH Aufze NO-LOCK
  996. WHERE Aufze.Firma = Firma
  997. AND Aufze.Aufnr = bAufko.Aufnr
  998. BY Aufze.Pos DESCENDING:
  999. IF Aufze.Artnr > 0 THEN LEAVE.
  1000. maxPos = Aufze.Pos.
  1001. CREATE btAufze.
  1002. BUFFER-COPY Aufze TO btAufze
  1003. ASSIGN
  1004. btAufze.Platz = 0
  1005. btAufze.LagOrt = ''.
  1006. END.
  1007. END.
  1008. /* Artikelzeilen nach Ruestplatz und Ort */
  1009. cLagOrt = ''.
  1010. FOR EACH Aufze NO-LOCK
  1011. WHERE Aufze.Firma = Firma
  1012. AND Aufze.Aufnr = bAufko.Aufnr
  1013. AND Aufze.Pos > minPos
  1014. AND Aufze.Pos < MaxPos
  1015. BY Aufze.Pos DESCENDING:
  1016. IF Aufze.Artnr > 0 THEN
  1017. DO:
  1018. cLagOrt = DYNAMIC-FUNCTION ('getLagerplatz':U, Aufze.Artnr, Aufze.Inhalt, Aufze.Jahr) NO-ERROR.
  1019. cLagOrt = ENTRY(1, cLagOrt, ';').
  1020. cLagOrt = ENTRY(1, cLagOrt, ',').
  1021. IF cLagOrt = '' THEN cLagOrt = '99'.
  1022. END.
  1023. FIND LAST RuestPlatz NO-LOCK USE-INDEX RuestPlatz-k2
  1024. WHERE RuestPlatz.Firma = Aufze.Firma
  1025. AND RuestPlatz.RuestArt = iRuestArt
  1026. AND RuestPlatz.abLagOrt <= cLagOrt NO-ERROR.
  1027. IF NOT AVAILABLE RuestPlatz THEN
  1028. DO:
  1029. FIND LAST RuestPlatz NO-LOCK USE-INDEX RuestPlatz-k1
  1030. WHERE RuestPlatz.Firma = Aufze.Firma
  1031. AND RuestPlatz.RuestArt = iRuestArt.
  1032. END.
  1033. IF AVAILABLE RuestPlatz THEN jPlatz = RuestPlatz.Platz.
  1034. ELSE jPlatz = 1.
  1035. CREATE tAufze.
  1036. BUFFER-COPY Aufze TO tAufze
  1037. ASSIGN
  1038. tAufze.Platz = jPlatz
  1039. tAufze.LagOrt = cLagort.
  1040. IF tAufze.MRuek > 0 THEN
  1041. DO:
  1042. CREATE tRueck.
  1043. BUFFER-COPY tAufze TO tRueck.
  1044. END.
  1045. END.
  1046. END PROCEDURE.
  1047. /* _UIB-CODE-BLOCK-END */
  1048. &ANALYZE-RESUME
  1049. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GET_DRUCKERDATEN gDruckenRuesten
  1050. PROCEDURE GET_DRUCKERDATEN :
  1051. /*------------------------------------------------------------------------------
  1052. Purpose:
  1053. Parameters: <none>
  1054. Notes:
  1055. ------------------------------------------------------------------------------*/
  1056. DEFINE INPUT PARAMETER ipPlatz AS INTEGER NO-UNDO.
  1057. DEFINE INPUT PARAMETER ipDrucker AS CHARACTER NO-UNDO.
  1058. DEFINE INPUT PARAMETER ipSchrift AS CHARACTER NO-UNDO.
  1059. DEFINE VARIABLE lJa AS LOG INIT TRUE NO-UNDO.
  1060. DEFINE VARIABLE lError AS LOG INIT TRUE NO-UNDO.
  1061. DYNAMIC-FUNCTION ('writeLogFile':U, SUBSTITUTE ('GET_DRUCKERDATEN Platz &1, Drucker &2, Schrift &3', ipPlatz, ipDrucker, ipSchrift)).
  1062. DO WHILE TRUE:
  1063. FIND FIRST tDrucker NO-LOCK
  1064. WHERE tDrucker.Drucker = ipDrucker NO-ERROR.
  1065. IF AVAILABLE tDrucker THEN LEAVE.
  1066. IF lBatch THEN
  1067. DO:
  1068. lJa = FALSE.
  1069. LEAVE.
  1070. END.
  1071. MESSAGE 'Der gewünschte Drucker "' ipDrucker '" ist nicht verfügbar ' SKIP
  1072. 'Bitte wählen Sie einen Drucker aus <Ja> oder brechen Sie den Druck ab <Nein>'
  1073. VIEW-AS ALERT-BOX INFORMATION BUTTONS YES-NO
  1074. UPDATE lJa.
  1075. IF NOT lJa THEN LEAVE.
  1076. SYSTEM-DIALOG PRINTER-SETUP
  1077. PORTRAIT
  1078. UPDATE lJa.
  1079. LEAVE.
  1080. END.
  1081. IF NOT lJa THEN RETURN 'Kein Drucker'.
  1082. RUN CHECKPRINTER ( ipDrucker, OUTPUT lError ) NO-ERROR.
  1083. IF lError THEN RETURN SUBSTITUTE('Drucker &1 konnte nicht angewählt werden', ipDrucker).
  1084. DO WHILE TRUE:
  1085. FIND FIRST Schrift NO-LOCK
  1086. WHERE Schrift.SchName = ipDrucker
  1087. AND Schrift.SchBild = ipSchrift NO-ERROR.
  1088. IF AVAILABLE Schrift THEN LEAVE.
  1089. FIND FIRST Schrift NO-LOCK
  1090. WHERE Schrift.SchName = SESSION:PRINTER-NAME
  1091. AND Schrift.SchBild = ipSchrift NO-ERROR.
  1092. IF AVAILABLE Schrift THEN LEAVE.
  1093. IF NOT lBatch THEN
  1094. DO:
  1095. MESSAGE 'Es konnte keine Schrift für den gewählten Drucker ermittelt werden'
  1096. VIEW-AS ALERT-BOX ERROR.
  1097. END.
  1098. RETURN 'KEINE SCHRIFT'.
  1099. END.
  1100. CREATE tSchrift.
  1101. BUFFER-COPY Schrift TO tSchrift
  1102. ASSIGN
  1103. tSchrift.iPlatz = ipPlatz
  1104. tSchrift.SchName = SESSION:PRINTER-NAME
  1105. tSchrift.iRecid = RECID(Schrift).
  1106. FIND bDrucker NO-LOCK
  1107. WHERE bDrucker.Drucker = tSchrift.SchDru.
  1108. RETURN ''.
  1109. END PROCEDURE.
  1110. /* _UIB-CODE-BLOCK-END */
  1111. &ANALYZE-RESUME
  1112. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject gDruckenRuesten
  1113. PROCEDURE initializeObject :
  1114. /*------------------------------------------------------------------------------
  1115. Purpose: Super Override
  1116. Parameters:
  1117. Notes:
  1118. ------------------------------------------------------------------------------*/
  1119. DEFINE VARIABLE cPrinters AS CHARACTER NO-UNDO.
  1120. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  1121. DEFINE VARIABLE kRecid AS RECID NO-UNDO.
  1122. DEFINE VARIABLE tRecid AS RECID NO-UNDO.
  1123. DEFINE VARIABLE cRetValue AS CHARACTER NO-UNDO.
  1124. DEFINE VARIABLE iCodeI AS INTEGER NO-UNDO.
  1125. DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO.
  1126. DEFINE BUFFER dTabel FOR Tabel.
  1127. EMPTY TEMP-TABLE zAufze .
  1128. CREATE zAufze.
  1129. EMPTY TEMP-TABLE tDrucker.
  1130. EMPTY TEMP-TABLE tSchrift.
  1131. cPrinters = SESSION:GET-PRINTERS().
  1132. DO ix = 1 TO NUM-ENTRIES(cPrinters, ','):
  1133. CREATE tDrucker.
  1134. ASSIGN
  1135. tDrucker.Drucker = ENTRY(ix, cPrinters, ',').
  1136. END.
  1137. lBatch = SESSION:BATCH.
  1138. FIND bSteuer NO-LOCK
  1139. WHERE bSteuer.Firma = Firma.
  1140. RUN SUPER.
  1141. cBenutzer = DYNAMIC-FUNCTION('getBenutzer':U) NO-ERROR.
  1142. cLogName = DYNAMIC-FUNCTION('getLogName':U) NO-ERROR.
  1143. lBatch = DYNAMIC-FUNCTION('getBatch':U) NO-ERROR.
  1144. lWebSpeed = FALSE.
  1145. iCodeI = -1.
  1146. TABELLE:
  1147. REPEAT TRANSACTION:
  1148. FIND FIRST bTabel NO-LOCK
  1149. WHERE bTabel.Firma = Firma
  1150. AND bTabel.RecArt = 'AUFDRUCK'
  1151. AND bTabel.CodeI > iCodeI
  1152. AND bTabel.Bez1 = ''
  1153. AND bTabel.Int_2 < 2 NO-ERROR.
  1154. IF NOT AVAILABLE bTabel THEN LEAVE.
  1155. tRecid = RECID(bTabel).
  1156. iCodeI = bTabel.CodeI.
  1157. FIND bTabel EXCLUSIVE-LOCK WHERE RECID(bTabel) = tRecid NO-WAIT NO-ERROR.
  1158. IF LOCKED bTabel THEN
  1159. DO:
  1160. RELEASE bTabel.
  1161. FIND Tabel NO-LOCK WHERE RECID(Tabel) = tRecid NO-ERROR.
  1162. IF NOT AVAILABLE Tabel THEN NEXT.
  1163. cMessage = SUBSTITUTE('Tabel LOCKED RecArt &1, CodeI &2, Aufnr &3, Int_2 &4, Drucker &5',
  1164. Tabel.RecArt, Tabel.CodeI, Tabel.Int_1, Tabel.Int_2, cPrinters).
  1165. DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
  1166. RELEASE Tabel.
  1167. NEXT.
  1168. END.
  1169. IF NOT AVAILABLE bTabel THEN NEXT.
  1170. bTabel.Bez1 = 'A'.
  1171. FIND bAufko NO-LOCK
  1172. WHERE bAufko.Firma = bTabel.Firma
  1173. AND bAufko.Aufnr = bTabel.Int_1 NO-ERROR.
  1174. IF NOT AVAILABLE bAufko THEN
  1175. DO:
  1176. DELETE bTabel.
  1177. RELEASE bTabel.
  1178. NEXT.
  1179. END.
  1180. iAufnr = bAufko.Aufnr.
  1181. kRecid = RECID(bAufko).
  1182. iRuestArt = bTabel.Int_3.
  1183. cRetValue = ''.
  1184. DO WHILE TRUE:
  1185. CASE bTabel.Int_2:
  1186. WHEN 1 THEN
  1187. DO:
  1188. lWebSpeed = TRUE.
  1189. RUN FUELLEN_tAufze.
  1190. FIND FIRST tAufze WHERE tAufze.Artnr > 0 NO-ERROR.
  1191. IF NOT AVAILABLE tAufze THEN
  1192. DO:
  1193. DELETE bTabel.
  1194. RELEASE bTabel.
  1195. NEXT TABELLE.
  1196. END.
  1197. cMessage = SUBSTITUTE('Auftragsschein &1 in Batch = &3 mit &2 gestartet', iAufnr, cPrinters, lBatch).
  1198. DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
  1199. RUN AUFTRAGSSCHEIN.
  1200. cRetValue = RETURN-VALUE.
  1201. cMessage = SUBSTITUTE('Auftragsschein &1 mit Return-Value &2 beendet', iAufnr, cRetValue).
  1202. DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
  1203. IF cRetValue <> '' THEN LEAVE.
  1204. cMessage = SUBSTITUTE('Rüstschein &1 in Batch = &3 mit &2 gestartet', iAufnr, cPrinters, lBatch).
  1205. DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
  1206. RUN RUESTSCHEIN.
  1207. cRetValue = RETURN-VALUE.
  1208. cMessage = SUBSTITUTE('Ruestschein &1 mit Return-Value &2 beendet', iAufnr, cRetValue).
  1209. DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
  1210. LEAVE.
  1211. END.
  1212. OTHERWISE
  1213. DO:
  1214. bTabel.Bez1 = ''.
  1215. RELEASE bTabel.
  1216. NEXT TABELLE.
  1217. END.
  1218. END CASE.
  1219. LEAVE.
  1220. END.
  1221. IF cRetValue <> '' THEN
  1222. DO:
  1223. bTabel.Bez1 = 'F'.
  1224. RELEASE bTabel.
  1225. NEXT TABELLE.
  1226. END.
  1227. IF AVAILABLE bTabel THEN
  1228. DO:
  1229. FIND Aufko EXCLUSIVE-LOCK WHERE RECID(Aufko) = kRecid NO-WAIT NO-ERROR.
  1230. IF AVAILABLE Aufko THEN Aufko.Gedruckt = TRUE.
  1231. RELEASE Aufko.
  1232. DELETE bTabel.
  1233. RELEASE bTabel.
  1234. END.
  1235. END.
  1236. REPEAT TRANSACTION:
  1237. FOR EACH Tabel NO-LOCK
  1238. WHERE Tabel.Firma = Firma
  1239. AND Tabel.RecArt = 'AUFDRUCK'
  1240. AND Tabel.Bez1 = 'F'
  1241. AND Tabel.Int_2 < 2 :
  1242. FIND bTabel EXCLUSIVE-LOCK
  1243. WHERE RECID(bTabel) = RECID(Tabel) NO-WAIT NO-ERROR.
  1244. IF NOT AVAILABLE bTabel THEN NEXT.
  1245. ASSIGN
  1246. bTabel.Bez1 = ''.
  1247. RELEASE bTabel.
  1248. END.
  1249. RELEASE Tabel.
  1250. RELEASE bTabel.
  1251. LEAVE.
  1252. END.
  1253. lWebSpeed = TRUE.
  1254. iCodeI = -1.
  1255. FOR EACH bTabel USE-INDEX Tabel-k2 NO-LOCK
  1256. WHERE bTabel.Firma = Firma
  1257. AND bTabel.RecArt BEGINS 'ws':
  1258. tRecid = RECID(bTabel).
  1259. FIND bAufko NO-LOCK
  1260. WHERE bAufko.Firma = bTabel.Firma
  1261. AND bAufko.Aufnr = bTabel.Int_1 NO-ERROR.
  1262. IF NOT AVAILABLE bAufko THEN
  1263. DO:
  1264. REPEAT TRANSACTION:
  1265. FIND Tabel EXCLUSIVE-LOCK
  1266. WHERE RECID(Tabel) = tRecid NO-WAIT NO-ERROR.
  1267. IF AVAILABLE Tabel THEN
  1268. DO:
  1269. DELETE Tabel.
  1270. RELEASE Tabel.
  1271. END.
  1272. LEAVE.
  1273. END.
  1274. NEXT.
  1275. END.
  1276. kRecid = RECID(bAufko).
  1277. iAufnr = bAufko.Aufnr .
  1278. iRecid = RECID(bAufko).
  1279. iRuestArt = bTabel.Int_3 .
  1280. iPlatz = INTEGER(bTabel.Dec_1).
  1281. iAnzahl = INTEGER(bTabel.Dec_2).
  1282. cRuester = bTabel.Bez2.
  1283. ERROR-STATUS:ERROR = FALSE.
  1284. CASE bTabel.Int_2:
  1285. WHEN 2 THEN
  1286. DO:
  1287. RUN FUELLEN_tAufze.
  1288. FIND FIRST tAufze NO-LOCK WHERE tAufze.Artnr > 0 NO-ERROR.
  1289. IF AVAILABLE tAufze THEN
  1290. DO:
  1291. RUN PALETTENSCHEIN.
  1292. cRetValue = RETURN-VALUE.
  1293. END.
  1294. END.
  1295. WHEN 3 THEN
  1296. DO:
  1297. RUN FUELLEN_tAufze.
  1298. FIND FIRST tAufze NO-LOCK WHERE tAufze.Artnr > 0 NO-ERROR.
  1299. IF AVAILABLE tAufze THEN
  1300. DO:
  1301. RUN LADEPAPIER.
  1302. cRetValue = RETURN-VALUE.
  1303. END.
  1304. END.
  1305. WHEN 4 THEN
  1306. DO:
  1307. RUN LIEFERSCHEIN.
  1308. cRetValue = RETURN-VALUE.
  1309. END.
  1310. END CASE.
  1311. IF cRetValue <> '' THEN
  1312. DO:
  1313. REPEAT TRANSACTION:
  1314. FIND dTabel WHERE RECID(dTabel) = tRecid NO-ERROR.
  1315. dTabel.Bez1 = ''.
  1316. RELEASE dTabel.
  1317. LEAVE.
  1318. END.
  1319. NEXT.
  1320. END.
  1321. REPEAT TRANSACTION:
  1322. FIND dTabel WHERE RECID(dTabel) = tRecid NO-ERROR.
  1323. IF AVAILABLE dTabel THEN DELETE dTabel.
  1324. RELEASE dTabel.
  1325. LEAVE.
  1326. END.
  1327. END.
  1328. RUN ENDE.
  1329. END PROCEDURE.
  1330. /* _UIB-CODE-BLOCK-END */
  1331. &ANALYZE-RESUME
  1332. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LADEPAPIER gDruckenRuesten
  1333. PROCEDURE LADEPAPIER :
  1334. /*------------------------------------------------------------------------------
  1335. Purpose:
  1336. Parameters: <none>
  1337. Notes:
  1338. ------------------------------------------------------------------------------*/
  1339. DEFINE VARIABLE cDokArt AS CHARACTER NO-UNDO.
  1340. DEFINE VARIABLE hbAufko AS HANDLE NO-UNDO.
  1341. DEFINE VARIABLE htTabTexte AS HANDLE NO-UNDO.
  1342. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1343. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  1344. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  1345. DEFINE VARIABLE xPlatz AS INTEGER NO-UNDO.
  1346. DEFINE VARIABLE iTime AS INTEGER NO-UNDO.
  1347. DEFINE VARIABLE cAufnr AS CHARACTER NO-UNDO.
  1348. DEFINE VARIABLE oBarCode AS CHARACTER NO-UNDO.
  1349. DEFINE VARIABLE cCodeArt AS CHARACTER INIT 'P0205100' NO-UNDO.
  1350. DEFINE VARIABLE iAnz AS INTEGER NO-UNDO.
  1351. DEFINE VARIABLE cDrucker AS CHARACTER NO-UNDO.
  1352. DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO.
  1353. cDokArt = 'LADEPAPIER'.
  1354. iSeite = 0.
  1355. iZeile = 0.
  1356. cDrucker = ''.
  1357. lOpen = FALSE.
  1358. dDatum = bAufko.Lief_Datum.
  1359. iTime = TIME.
  1360. cMessage = SUBSTITUTE('Ladepapier &1 gestartet auf Platz &2', bAufko.Aufnr, iPlatz).
  1361. DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
  1362. RUN LIBILD ( cDokArt ).
  1363. hbAufko = BUFFER bAufko:HANDLE.
  1364. htTabTexte = TEMP-TABLE tTabTexte:DEFAULT-BUFFER-HANDLE.
  1365. RUN CREATE_TABTEXTE ( INPUT hbAufko, INPUT-OUTPUT htTabTexte ).
  1366. EMPTY TEMP-TABLE tSchrift.
  1367. FOR EACH RuestDaten NO-LOCK
  1368. WHERE RuestDaten.Firma = bAufko.Firma
  1369. AND RuestDaten.RuestArt = iRuestArt
  1370. AND RuestDaten.Platz > 0
  1371. AND Ruestdaten.LA_Doku = TRUE:
  1372. xPlatz = RuestDaten.Platz.
  1373. RUN GET_DRUCKERDATEN ( xPlatz, RuestDaten.LA_Drucker, RuestDaten.LA_Schrift ).
  1374. IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
  1375. FIND FIRST tSchrift WHERE tSchrift.iPlatz = xPlatz NO-ERROR.
  1376. ASSIGN
  1377. tSchrift.Schzztot = RuestDaten.LA_TotZZ
  1378. tSchrift.Schzzbeg = RuestDaten.LA_KopfZZ
  1379. tSchrift.Schzzend = RuestDaten.LA_FussZZ
  1380. tSchrift.Schacht = RuestDaten.LA_Schacht.
  1381. END.
  1382. FIND FIRST tSchrift NO-LOCK NO-ERROR.
  1383. IF NOT AVAILABLE tSchrift THEN RETURN 'ERROR'.
  1384. FIND bAdresse NO-LOCK USE-INDEX Adresse-k1
  1385. WHERE bAdresse.Firma = AdFirma
  1386. AND bAdresse.Knr = bAufko.Knr NO-ERROR.
  1387. FIND FIRST tSchrift
  1388. WHERE tSchrift.iPlatz = iPlatz NO-ERROR.
  1389. IF NOT AVAILABLE tSchrift THEN FIND FIRST tSchrift.
  1390. FIND bDrucker NO-LOCK
  1391. WHERE bDrucker.Drucker = tSchrift.SchDru.
  1392. DO WITH FRAME {&FRAME-NAME}:
  1393. F_Aufnr :SCREEN-VALUE = STRING(bAufko.Aufnr).
  1394. F_Knr :SCREEN-VALUE = STRING(bAufko.Knr).
  1395. F_Kunde :SCREEN-VALUE = bAdresse.Anzeig_Br.
  1396. F_Dokument:SCREEN-VALUE = cDokArt.
  1397. F_Drucker :SCREEN-VALUE = tSchrift.Schname.
  1398. F_Schrift :SCREEN-VALUE = tSchrift.Schbild.
  1399. ASSIGN {&List-6}.
  1400. DISPLAY {&List-6}.
  1401. END.
  1402. FOR EACH tAufze NO-LOCK
  1403. WHERE tAufze.Platz > 0
  1404. AND tAufze.Platz < 99
  1405. BREAK BY tAufze.Platz
  1406. BY tAufze.Lagort
  1407. BY tAufze.Pos :
  1408. IF FIRST-OF ( tAufze.Platz ) THEN iAnz = 0.
  1409. IF tAufze.MGeli <> 0 THEN iAnz = iAnz + 1.
  1410. IF NOT LAST-OF ( tAufze.Platz ) THEN NEXT.
  1411. FIND FIRST tSchrift WHERE tSchrift.iPlatz = iPlatz NO-ERROR.
  1412. IF NOT AVAILABLE tSchrift THEN FIND FIRST tSchrift.
  1413. FIND bDrucker NO-LOCK
  1414. WHERE bDrucker.Drucker = tSchrift.SchDru.
  1415. IF NOT lOpen THEN
  1416. DO:
  1417. cDrucker = tSchrift.Schname.
  1418. cDateiName = SESSION:TEMP-DIR
  1419. + 'LadePapier'
  1420. + STRING(TIME,'999999')
  1421. + STRING(RANDOM(1, 999999),'999999')
  1422. + '.txt'.
  1423. OUTPUT STREAM out_Stream TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  1424. lOpen = TRUE.
  1425. END.
  1426. IF iSeite = 0 THEN RUN LADEPAPIER_KOPF ( iPlatz ).
  1427. FIND FIRST RuestAuf NO-LOCK
  1428. WHERE RuestAuf.Firma = tAufze.Firma
  1429. AND RuestAuf.Aufnr = tAufze.Aufnr
  1430. AND RuestAuf.Platz = tAufze.Platz NO-ERROR.
  1431. IF NOT AVAILABLE RuestAuf THEN LEAVE.
  1432. cAufnr = STRING(bAufko.Aufnr,'9999999')
  1433. + '.'
  1434. + TRIM(STRING(tAufze.Platz,'>9'))
  1435. + ' - '
  1436. + (IF iAnz = 0 THEN 'KEINE LIEFERUNG' ELSE TRIM(STRING(RuestAuf.AnzPaletten,'->>>>>>>>>>9')))
  1437. + ' / '
  1438. + RuestAuf.Ruester.
  1439. SUBSTRING(cZeile,20) = bDrucker.Dru10cpi
  1440. + cAufnr
  1441. + bDrucker.Dru15cpi.
  1442. DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1443. IF iAnz > 0 THEN
  1444. DO:
  1445. cAufnr = STRING(bAufko.Aufnr,'9999999')
  1446. + '.'
  1447. + TRIM(STRING(tAufze.Platz,'>9')).
  1448. RUN BAR-CODE-39 ( INPUT cAufnr ,
  1449. INPUT cCodeArt,
  1450. OUTPUT oBarCode ).
  1451. SUBSTRING(cZeile,20) = oBarCode.
  1452. DYNAMIC-FUNCTION('putStream':U, 'N', 4, INPUT-OUTPUT cZeile) NO-ERROR.
  1453. END.
  1454. END.
  1455. IF lOpen THEN
  1456. DO:
  1457. OUTPUT STREAM out_Stream CLOSE.
  1458. lOpen = FALSE.
  1459. RUN DRUCKAUSGABE NO-ERROR.
  1460. IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
  1461. END.
  1462. cMessage = SUBSTITUTE('Ladepapier &1 beendet', bAufko.Aufnr).
  1463. DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
  1464. RETURN ''.
  1465. END PROCEDURE.
  1466. /* _UIB-CODE-BLOCK-END */
  1467. &ANALYZE-RESUME
  1468. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LADEPAPIER_KOPF gDruckenRuesten
  1469. PROCEDURE LADEPAPIER_KOPF :
  1470. /*------------------------------------------------------------------------------
  1471. Purpose:
  1472. Parameters: <none>
  1473. Notes:
  1474. ------------------------------------------------------------------------------*/
  1475. DEFINE INPUT PARAMETER ipPlatz AS INTEGER NO-UNDO.
  1476. DEFINE VARIABLE cAufnr AS CHARACTER NO-UNDO.
  1477. DEFINE VARIABLE oBarCode AS CHARACTER NO-UNDO.
  1478. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  1479. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  1480. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  1481. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1482. DEFINE VARIABLE cLeerZeile AS CHARACTER NO-UNDO.
  1483. DEFINE VARIABLE cFahrer AS CHARACTER NO-UNDO.
  1484. DEFINE BUFFER btAufze FOR tAufze.
  1485. /*
  1486. DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO.
  1487. */
  1488. /* P = Portrait */
  1489. /* L = Landscape */
  1490. DEFINE VARIABLE cCodeArt AS CHARACTER INIT 'P0210200' NO-UNDO.
  1491. RUN NEUE_SEITE.
  1492. PUT STREAM out_Stream CONTROL bDrucker.Dru15cpi.
  1493. PUT STREAM out_Stream CONTROL CHR(27) '&k2G'.
  1494. cAufnr = STRING(bAufko.Aufnr,'9999999').
  1495. RUN BAR-CODE-39 ( INPUT cAufnr ,
  1496. INPUT cCodeArt,
  1497. OUTPUT oBarCode ).
  1498. oBarCode = CHR(027) + "*p" + "100y" + "100X" + oBarCode
  1499. + CHR(027) + "*p" + "405y" + "260X"
  1500. + bDrucker.Drufettb + bDrucker.Dru10cpi + bDrucker.Drufettb
  1501. + cAufnr
  1502. + bDrucker.Drufette + bDrucker.Dru15cpi + bDrucker.Drufette
  1503. + CHR(027) + "*p" + "0y" + "0X".
  1504. PUT STREAM out_Stream CONTROL oBarCode.
  1505. FIND FIRST tSchrift NO-LOCK
  1506. WHERE tSchrift.iPlatz = iPlatz.
  1507. cLeerZeile = FILL(CHR(10), tSchrift.Schzzbeg).
  1508. IF cLeerZeile <> '' THEN PUT STREAM out_Stream cLeerZeile.
  1509. iZeile = tSchrift.Schzzbeg.
  1510. IF iSeite = 1 THEN
  1511. DO:
  1512. FIND LDebst USE-INDEX Debst-k1
  1513. WHERE LDebst.Firma = bAufko.Firma
  1514. AND LDebst.Knr = bAufko.Knr NO-LOCK NO-ERROR.
  1515. FIND FDebst USE-INDEX Debst-k1
  1516. WHERE FDebst.Firma = bAufko.Firma
  1517. AND FDebst.Knr = bAufko.Fak_Knr NO-LOCK NO-ERROR.
  1518. END.
  1519. IF bAufko.Adresse[05] <> '' THEN
  1520. DO:
  1521. DO ix = 1 TO 5:
  1522. SUBSTRING(cZeile,066) = bAufko.Adresse[ix].
  1523. IF ix = 5 THEN
  1524. DO: DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1525. END.
  1526. ELSE
  1527. DO: DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1528. END.
  1529. END.
  1530. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  1531. END.
  1532. ELSE
  1533. DO:
  1534. DO ix = 6 TO 12:
  1535. SUBSTRING(cZeile,066) = bAdresse.Anschrift[ix].
  1536. IF ix = 11 THEN
  1537. DO: DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1538. END.
  1539. ELSE
  1540. DO: DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1541. END.
  1542. END.
  1543. END.
  1544. IF bAufko.Auf_Tot >= 0
  1545. THEN SUBSTRING(cZeile,008) = SUBSTRING(FormText[02],01,20).
  1546. ELSE SUBSTRING(cZeile,008) = SUBSTRING(FormText[02],21,20).
  1547. cZeile = bDrucker.Dru10cpi
  1548. + SUBSTRING(cZeile,001,30)
  1549. + bDrucker.Dru15cpi.
  1550. DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1551. SUBSTRING(cZeile,066) = TRIM(SUBSTRING(FormText[07],01,20))
  1552. + " "
  1553. + STRING(dDatum,"99.99.9999").
  1554. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  1555. IF iSeite = 1 THEN
  1556. DO:
  1557. FIND FIRST tTabtexte NO-LOCK
  1558. WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR.
  1559. IF AVAILABLE tTabTexte THEN SUBSTRING(cZeile,008) = tTabTexte.cFeld3.
  1560. SUBSTRING(cZeile,066) = TRIM(SUBSTRING(FormText[08],21,20))
  1561. + STRING(bAufko.Gewicht,"zz,zz9.999-").
  1562. cZeile = TRIM(bDrucker.Drufettb)
  1563. + SUBSTRING(cZeile,001,65)
  1564. + TRIM(bDrucker.Drufette)
  1565. + SUBSTRING(cZeile,066).
  1566. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1567. SUBSTRING(cZeile,008) = TRIM(SUBSTRING(FormText[07],41,20))
  1568. + " "
  1569. + STRING(bAufko.Auf_Datum,"99.99.9999").
  1570. SUBSTRING(cZeile,038) = TRIM(SUBSTRING(FormText[08],01,20))
  1571. + STRING(bAufko.Knr,"z999999").
  1572. SUBSTRING(cZeile,066) = TRIM(SUBSTRING(FormText[08],41,20))
  1573. + " "
  1574. + bAdresse.Tel-1.
  1575. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1576. SUBSTRING(cZeile,008) = TRIM(SUBSTRING(FormText[09],21,20))
  1577. + " "
  1578. + STRING(bAufko.Lief_Datum,"99.99.9999").
  1579. SUBSTRING(cZeile,038) = TRIM(SUBSTRING(FormText[09],01,20))
  1580. + " ". /* Lieferart */
  1581. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1582. SUBSTRING(cZeile,008) = TRIM(SUBSTRING(FormText[07],21,20))
  1583. + " "
  1584. + STRING(bAufko.U_Ref,'x(20)').
  1585. DYNAMIC-FUNCTION('putStream':U, 'N', 3, INPUT-OUTPUT cZeile) NO-ERROR.
  1586. END.
  1587. IF iSeite = 1 AND
  1588. bAufko.Abh_Text <> '' THEN
  1589. DO:
  1590. cString = bAufko.Abh_Text.
  1591. i2 = 0.
  1592. DO i1 = 1 TO NUM-ENTRIES(cString, CHR(10)):
  1593. SUBSTRING(cZeile,008) = ENTRY(i1, cString, CHR(10)).
  1594. DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1595. i2 = i2 + 1.
  1596. END.
  1597. IF i2 > 0 THEN
  1598. DO:
  1599. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1600. END.
  1601. /*
  1602. i2 = 0.
  1603. FOR EACH btAufze NO-LOCK
  1604. WHERE btAufze.Platz = 0:
  1605. RUN RUESTSCHEIN_ARTIKELZEILE ( RECID(btAufze ) ).
  1606. i2 = i2 + 1.
  1607. END.
  1608. IF i2 > 0 THEN DO:
  1609. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1610. END.
  1611. */
  1612. END.
  1613. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  1614. RUN FIND_FAHRER ( bAufko.Fahrer, OUTPUT cString ).
  1615. IF cString <> '' THEN cFahrer = ENTRY(2, cString, CHR(01)) + ' ' + ENTRY(3, cString, CHR(01)).
  1616. i1 = (80 - LENGTH(cFahrer)) / 2.
  1617. SUBSTRING(cZeile,i1) = CHR(27) + "(s6H"
  1618. + cFahrer
  1619. + bDrucker.Dru15cpi.
  1620. DYNAMIC-FUNCTION('putStream':U, 'F', 3, INPUT-OUTPUT cZeile) NO-ERROR.
  1621. END PROCEDURE.
  1622. /* _UIB-CODE-BLOCK-END */
  1623. &ANALYZE-RESUME
  1624. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIBILD gDruckenRuesten
  1625. PROCEDURE LIBILD :
  1626. /*------------------------------------------------------------------------------
  1627. Purpose:
  1628. Parameters: <none>
  1629. Notes:
  1630. ------------------------------------------------------------------------------*/
  1631. DEFINE INPUT PARAMETER ipDokArt AS CHARACTER NO-UNDO.
  1632. DEFINE VARIABLE cProgName AS CHARACTER NO-UNDO.
  1633. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  1634. cProgName = bSteuer.Fwc10 + ":" + ipDokArt.
  1635. FormText = "".
  1636. FOR EACH LiBild USE-INDEX LiBild-k1
  1637. WHERE LiBild.Sprcd = 1
  1638. AND LiBild.Prog = cProgName
  1639. AND LiBild.Tenr > 0 NO-LOCK
  1640. ix = 1 TO 40:
  1641. FormText[ix] = LiBild.Litext.
  1642. END.
  1643. cRabText = TRIM(SUBSTRING(FormText[21],01,20)).
  1644. cZusText = TRIM(SUBSTRING(FormText[21],21,20)).
  1645. cEpzText = TRIM(SUBSTRING(FormText[21],41,20)).
  1646. END PROCEDURE.
  1647. /* _UIB-CODE-BLOCK-END */
  1648. &ANALYZE-RESUME
  1649. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOCK_TEST gDruckenRuesten
  1650. PROCEDURE LOCK_TEST :
  1651. /*------------------------------------------------------------------------------
  1652. Purpose:
  1653. Parameters: <none>
  1654. Notes:
  1655. ------------------------------------------------------------------------------*/
  1656. DEFINE INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  1657. DEFINE OUTPUT PARAMETER oplLocked AS LOG NO-UNDO.
  1658. DEFINE OUTPUT PARAMETER opcDaten AS CHARACTER NO-UNDO.
  1659. DEFINE VARIABLE xRecid AS RECID NO-UNDO.
  1660. oplLocked = FALSE.
  1661. opcDaten = ''.
  1662. LOCK:
  1663. REPEAT TRANSACTION:
  1664. FIND Aufko EXCLUSIVE-LOCK WHERE RECID(Aufko) = ipRecid NO-WAIT NO-ERROR.
  1665. IF LOCKED Aufko THEN
  1666. DO:
  1667. oplLocked = TRUE.
  1668. opcDaten = 'Aufko'.
  1669. RELEASE Aufko.
  1670. LEAVE LOCK.
  1671. END.
  1672. FOR EACH Aufze NO-LOCK
  1673. WHERE Aufze.Firma = Aufko.Firma
  1674. AND Aufze.Aufnr = Aufko.Aufnr:
  1675. xRecid = RECID(Aufze).
  1676. FIND bAufze EXCLUSIVE-LOCK WHERE RECID(bAufze) = xRecid NO-WAIT NO-ERROR.
  1677. IF LOCKED bAufze THEN
  1678. DO:
  1679. oplLocked = TRUE.
  1680. opcDaten = 'Aufze'.
  1681. RELEASE bAufze.
  1682. LEAVE LOCK.
  1683. END.
  1684. END.
  1685. FOR EACH AufGKon NO-LOCK
  1686. WHERE AufGKon.Firma = Aufko.Firma
  1687. AND AufGKon.Aufnr = Aufko.Aufnr:
  1688. xRecid = RECID(AufGKon).
  1689. FIND bAufGKon EXCLUSIVE-LOCK WHERE RECID(bAufGKon) = xRecid NO-WAIT NO-ERROR.
  1690. IF LOCKED bAufGKon THEN
  1691. DO:
  1692. oplLocked = TRUE.
  1693. opcDaten = 'AufGKon'.
  1694. RELEASE bAufGKon.
  1695. LEAVE LOCK.
  1696. END.
  1697. END.
  1698. RELEASE Aufko .
  1699. RELEASE Aufze .
  1700. RELEASE bAufze .
  1701. RELEASE bAufGKon.
  1702. RELEASE AufGKon .
  1703. LEAVE.
  1704. END.
  1705. END PROCEDURE.
  1706. /* _UIB-CODE-BLOCK-END */
  1707. &ANALYZE-RESUME
  1708. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUE_SEITE gDruckenRuesten
  1709. PROCEDURE NEUE_SEITE :
  1710. /*------------------------------------------------------------------------------
  1711. Purpose:
  1712. Parameters: <none>
  1713. Notes:
  1714. ------------------------------------------------------------------------------*/
  1715. DEFINE VARIABLE cLeerZeile AS CHARACTER NO-UNDO.
  1716. IF iSeite > 0 THEN
  1717. DO:
  1718. PUT STREAM out_Stream CONTROL CHR(12).
  1719. END.
  1720. FIND FIRST tSchrift NO-LOCK
  1721. WHERE tSchrift.iPlatz = iPlatz.
  1722. cLeerZeile = FILL(CHR(10), tSchrift.Schzzbeg).
  1723. IF cLeerZeile <> '' THEN PUT STREAM out_Stream cLeerZeile.
  1724. iZeile = tSchrift.Schzzbeg.
  1725. iSeite = iSeite + 1.
  1726. END PROCEDURE.
  1727. /* _UIB-CODE-BLOCK-END */
  1728. &ANALYZE-RESUME
  1729. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PALETTENSCHEIN gDruckenRuesten
  1730. PROCEDURE PALETTENSCHEIN :
  1731. /*------------------------------------------------------------------------------
  1732. Purpose:
  1733. Parameters: <none>
  1734. Notes:
  1735. ------------------------------------------------------------------------------*/
  1736. DEFINE VARIABLE cDokArt AS CHARACTER NO-UNDO.
  1737. DEFINE VARIABLE hbAufko AS HANDLE NO-UNDO.
  1738. DEFINE VARIABLE htTabTexte AS HANDLE NO-UNDO.
  1739. DEFINE VARIABLE nFakBetr AS DECIMAL NO-UNDO.
  1740. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1741. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  1742. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  1743. DEFINE VARIABLE xPlatz AS INTEGER NO-UNDO.
  1744. DEFINE VARIABLE nTotale AS DECIMAL EXTENT 15 NO-UNDO.
  1745. DEFINE VARIABLE cRetVal AS CHARACTER NO-UNDO.
  1746. DEFINE VARIABLE cDrucker AS CHARACTER NO-UNDO.
  1747. DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO.
  1748. FIND FIRST tAufze NO-LOCK WHERE tAufze.Artnr > 0 NO-ERROR.
  1749. IF NOT AVAILABLE tAufze THEN RETURN ''.
  1750. cRetVal = DYNAMIC-FUNCTION('calculateAuftragsTotal':U, tAufze.Firma, tAufze.Aufnr, OUTPUT nTotale) NO-ERROR.
  1751. cMessage = SUBSTITUTE('Palettenschein &1 Platz &2 gestartet', tAufze.Aufnr, iPlatz).
  1752. DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
  1753. cDokArt = 'PALETTEN'.
  1754. iSeite = 0.
  1755. iZeile = 0.
  1756. cDrucker = ''.
  1757. lOpen = FALSE.
  1758. cZeile = ''.
  1759. dDatum = bAufko.Lief_Datum.
  1760. RUN LIBILD ( cDokArt ).
  1761. hbAufko = BUFFER bAufko:HANDLE.
  1762. htTabTexte = TEMP-TABLE tTabTexte:DEFAULT-BUFFER-HANDLE.
  1763. RUN CREATE_TABTEXTE ( INPUT hbAufko, INPUT-OUTPUT htTabTexte ).
  1764. EMPTY TEMP-TABLE tSchrift.
  1765. FOR EACH RuestDaten NO-LOCK
  1766. WHERE RuestDaten.Firma = bAufko.Firma
  1767. AND RuestDaten.RuestArt = iRuestArt
  1768. AND RuestDaten.Platz > 0
  1769. AND Ruestdaten.PA_Doku = TRUE:
  1770. xPlatz = RuestDaten.Platz.
  1771. RUN GET_DRUCKERDATEN ( xPlatz, RuestDaten.PA_Drucker, RuestDaten.PA_Schrift ).
  1772. IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
  1773. FIND FIRST tSchrift WHERE tSchrift.iPlatz = xPlatz.
  1774. ASSIGN
  1775. tSchrift.Schzztot = RuestDaten.PA_TotZZ
  1776. tSchrift.Schzzbeg = RuestDaten.PA_KopfZZ
  1777. tSchrift.Schzzend = RuestDaten.PA_FussZZ
  1778. tSchrift.Schacht = RuestDaten.PA_Schacht
  1779. tSchrift.Anzahl = iAnzahl.
  1780. END.
  1781. FIND bAdresse NO-LOCK USE-INDEX Adresse-k1
  1782. WHERE bAdresse.Firma = AdFirma
  1783. AND bAdresse.Knr = bAufko.Knr NO-ERROR.
  1784. DO WITH FRAME {&FRAME-NAME}:
  1785. F_Aufnr :SCREEN-VALUE = STRING(bAufko.Aufnr).
  1786. F_Knr :SCREEN-VALUE = STRING(bAufko.Knr).
  1787. F_Kunde :SCREEN-VALUE = bAdresse.Anzeig_Br.
  1788. F_Dokument:SCREEN-VALUE = cDokArt.
  1789. F_Drucker :SCREEN-VALUE = tSchrift.Schname.
  1790. F_Schrift :SCREEN-VALUE = tSchrift.Schbild.
  1791. ASSIGN {&List-6}.
  1792. DISPLAY {&List-6}.
  1793. END.
  1794. EMPTY TEMP-TABLE zAufze.
  1795. CREATE zAufze.
  1796. FOR EACH tAufze NO-LOCK
  1797. WHERE tAufze.Platz = iPlatz
  1798. BREAK BY tAufze.Platz
  1799. BY tAufze.Lagort
  1800. BY tAufze.Pos :
  1801. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  1802. IF NOT FIRST-OF ( tAufze.Platz ) THEN LEAVE.
  1803. ASSIGN
  1804. iSeite = 0
  1805. iZeile = 0
  1806. iPlatz = tAufze.Platz.
  1807. FIND FIRST tSchrift NO-LOCK
  1808. WHERE tSchrift.iPlatz = iPlatz.
  1809. FIND bDrucker NO-LOCK
  1810. WHERE bDrucker.Drucker = tSchrift.SchDru.
  1811. F_Drucker:SCREEN-VALUE = tSchrift.Schname.
  1812. F_Schrift:SCREEN-VALUE = tSchrift.Schbild.
  1813. IF NOT lOpen THEN
  1814. DO:
  1815. cDrucker = tSchrift.Schname.
  1816. cDateiName = SESSION:TEMP-DIR
  1817. + 'PalettPapier'
  1818. + STRING(TIME,'999999')
  1819. + STRING(RANDOM(1, 999999),'999999')
  1820. + '.txt'.
  1821. OUTPUT STREAM out_Stream TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  1822. lOpen = TRUE.
  1823. LEAVE.
  1824. END.
  1825. IF tSchrift.Schname = cDrucker THEN
  1826. DO:
  1827. PUT STREAM out_Stream CONTROL CHR(12).
  1828. LEAVE.
  1829. END.
  1830. OUTPUT STREAM out_Stream CLOSE.
  1831. lOpen = FALSE.
  1832. RUN DRUCKAUSGABE NO-ERROR.
  1833. IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
  1834. cDrucker = tSchrift.Schname.
  1835. cDateiName = SESSION:TEMP-DIR
  1836. + 'PalettPapier'
  1837. + STRING(TIME,'999999')
  1838. + STRING(RANDOM(1, 999999),'999999')
  1839. + '.txt'.
  1840. OUTPUT STREAM out_Stream TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  1841. lOpen = TRUE.
  1842. LEAVE.
  1843. END.
  1844. IF iSeite = 0 THEN RUN PALETTENSCHEIN_KOPF ( iPlatz ).
  1845. IF (tSchrift.Schzztot - iZeile - 2) <= tSchrift.Schzzend THEN
  1846. DO:
  1847. RUN PALETTENSCHEIN_KOPF ( iPlatz ).
  1848. END.
  1849. IF tAufze.MGeli <> 0 THEN
  1850. DO:
  1851. FIND FIRST zAufze.
  1852. BUFFER-COPY tAufze TO zAufze.
  1853. RUN PALETTENSCHEIN_ARTIKELZEILE.
  1854. END.
  1855. IF NOT LAST-OF ( tAufze.Platz ) THEN NEXT.
  1856. /*
  1857. FOR EACH btAufze NO-LOCK
  1858. WHERE btAufze.Platz = 99:
  1859. FIND FIRST zAufze.
  1860. BUFFER-COPY btAufze TO zAufze.
  1861. RUN PALETTENSCHEIN_ARTIKELZEILE.
  1862. i2 = i2 + 1.
  1863. END.
  1864. */
  1865. cZeile = FILL('=', 100).
  1866. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  1867. END.
  1868. DO WHILE TRUE:
  1869. FIND FIRST tRueck NO-LOCK
  1870. WHERE tRueck.Platz = iPlatz NO-ERROR.
  1871. IF NOT AVAILABLE tRueck THEN LEAVE.
  1872. IF NOT lOpen THEN
  1873. DO:
  1874. cDrucker = tSchrift.Schname.
  1875. cDateiName = SESSION:TEMP-DIR
  1876. + 'PalettPapier'
  1877. + STRING(TIME,'999999')
  1878. + STRING(RANDOM(1, 999999),'999999')
  1879. + '.txt'.
  1880. OUTPUT STREAM out_Stream TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  1881. lOpen = TRUE.
  1882. RUN PALETTENSCHEIN_KOPF ( iPlatz ).
  1883. END.
  1884. ELSE
  1885. DO:
  1886. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  1887. END.
  1888. FOR EACH tRueck NO-LOCK
  1889. WHERE tRueck.Platz = iPlatz
  1890. BREAK BY tRueck.Platz
  1891. BY tRueck.Lagort
  1892. BY tRueck.Pos :
  1893. IF (tSchrift.Schzztot - iZeile - 6) <= tSchrift.Schzzend THEN
  1894. DO:
  1895. RUN PALETTENSCHEIN_KOPF ( iPlatz ).
  1896. END.
  1897. IF FIRST-OF ( tRueck.Platz ) THEN
  1898. DO:
  1899. cZeile = FILL('=', 100).
  1900. SUBSTRING(cZeile,30) = ' Rückstände/Teillieferungen '.
  1901. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  1902. END.
  1903. RUN PALETTENSCHEIN_RUECKSTAND ( RECID(tRueck) ).
  1904. END.
  1905. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  1906. LEAVE.
  1907. END.
  1908. IF lOpen THEN
  1909. DO:
  1910. SUBSTRING(cZeile,008) = 'Gerüstet durch : ' + cRuester.
  1911. DYNAMIC-FUNCTION('putStream':U, 'N', 3, INPUT-OUTPUT cZeile) NO-ERROR.
  1912. END.
  1913. DO WHILE TRUE:
  1914. IF NOT lOpen THEN LEAVE.
  1915. FIND FIRST RuestAuf NO-LOCK
  1916. WHERE RuestAuf.Firma = Firma
  1917. AND RuestAuf.Aufnr = bAufko.Aufnr
  1918. AND RuestAuf.Platz <> iPlatz NO-ERROR.
  1919. IF NOT AVAILABLE RuestAuf THEN LEAVE.
  1920. SUBSTRING(cZeile,10) = 'Weitere Rüstplätze'.
  1921. DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1922. FOR EACH RuestAuf NO-LOCK
  1923. WHERE RuestAuf.Firma = Firma
  1924. AND RuestAuf.Aufnr = bAufko.Aufnr
  1925. AND RuestAuf.Platz <> iPlatz
  1926. BREAK BY RuestAuf.Platz:
  1927. IF NOT FIRST-OF ( RuestAuf.Platz ) THEN NEXT.
  1928. FIND RuestPlatz NO-LOCK
  1929. WHERE RuestPlatz.Firma = RuestAuf.Firma
  1930. AND RuestPlatz.RuestArt = iRuestArt
  1931. AND RuestPlatz.Platz = RuestAuf.Platz NO-ERROR.
  1932. IF NOT AVAILABLE RuestPlatz THEN NEXT.
  1933. SUBSTRING(cZeile,12) = '- ' + RuestPlatz.Bezeichnung.
  1934. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1935. END.
  1936. LEAVE.
  1937. END.
  1938. IF lOpen THEN
  1939. DO:
  1940. OUTPUT STREAM out_Stream CLOSE.
  1941. lOpen = FALSE.
  1942. RUN DRUCKAUSGABE NO-ERROR.
  1943. IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
  1944. END.
  1945. FIND FIRST tAufze NO-LOCK NO-ERROR.
  1946. cMessage = SUBSTITUTE('Palettenschein &1 Platz &2 beendet', tAufze.Aufnr, iPlatz).
  1947. DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
  1948. RETURN ''.
  1949. END PROCEDURE.
  1950. /* _UIB-CODE-BLOCK-END */
  1951. &ANALYZE-RESUME
  1952. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PALETTENSCHEIN_ARTIKELZEILE gDruckenRuesten
  1953. PROCEDURE PALETTENSCHEIN_ARTIKELZEILE :
  1954. /*------------------------------------------------------------------------------
  1955. Purpose:
  1956. Parameters: <none>
  1957. Notes:
  1958. ------------------------------------------------------------------------------*/
  1959. DEFINE VARIABLE cBarCode AS CHARACTER NO-UNDO.
  1960. DEFINE VARIABLE oBarCode AS CHARACTER NO-UNDO.
  1961. /*
  1962. DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO.
  1963. */
  1964. DEFINE VARIABLE cCodeArt AS CHARACTER INIT 'P0205080' NO-UNDO.
  1965. FIND FIRST zAufze NO-LOCK.
  1966. PUT STREAM Out_Stream CONTROL bDrucker.Dru15cpi.
  1967. DO WHILE zAufze.Artnr = 0:
  1968. SUBSTRING(cZeile,036) = STRING(zAufze.Bez1,"x(30)").
  1969. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1970. IF zAufze.Bez2 <> '' THEN
  1971. DO:
  1972. SUBSTRING(cZeile,036) = STRING(zAufze.Bez2,"x(30)").
  1973. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  1974. END.
  1975. RETURN.
  1976. END.
  1977. FIND Artst NO-LOCK OF zAufze.
  1978. FIND VGebinde
  1979. WHERE VGebinde.Firma = zAufze.Firma
  1980. AND VGebinde.Geb_Cd = zAufze.VGeb_Cd NO-ERROR.
  1981. FIND KGebinde
  1982. WHERE KGebinde.Firma = zAufze.Firma
  1983. AND KGebinde.Geb_Cd = zAufze.KGeb_Cd NO-ERROR.
  1984. SUBSTRING(cZeile,001) = STRING(KGebinde.KBez,"x(10)").
  1985. IF zAufze.VGeb_Me <> 0 THEN
  1986. DO:
  1987. SUBSTRING(cZeile,012) = STRING(zAufze.VGeb_Me,'->>>')
  1988. + 'x '
  1989. + VGebinde.KBez.
  1990. END.
  1991. SUBSTRING(cZeile,028) = STRING(zAufze.MGeli ,"->>>>9").
  1992. SUBSTRING(cZeile,036) = STRING(zAufze.Bez1 ,"x(30)").
  1993. IF zAufze.Alk_Gehalt <> 0 THEN SUBSTRING(cZeile,068) = STRING(zAufze.Alk_Gehalt,"zz9.9%").
  1994. IF zAufze.Jahr > 9 THEN SUBSTRING(cZeile,075) = STRING(zAufze.Jahr,"9999").
  1995. SUBSTRING(cZeile,081) = STRING(zAufze.Artnr ,"999999").
  1996. SUBSTRING(cZeile,089) = STRING(zAufze.LagOrt,'x(08)').
  1997. cZeile = bDrucker.Drufettb
  1998. + SUBSTRING(cZeile,001,027)
  1999. + bDrucker.Drufette
  2000. + SUBSTRING(cZeile,028,061)
  2001. + bDrucker.Drufettb
  2002. + SUBSTRING(cZeile,089,008)
  2003. + bDrucker.Drufette
  2004. + SUBSTRING(cZeile,097).
  2005. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2006. IF zAufze.Bez2 <> '' THEN
  2007. DO:
  2008. SUBSTRING(cZeile,036) = STRING(zAufze.Bez2,"x(30)").
  2009. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2010. END.
  2011. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2012. END PROCEDURE.
  2013. /* _UIB-CODE-BLOCK-END */
  2014. &ANALYZE-RESUME
  2015. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PALETTENSCHEIN_KOPF gDruckenRuesten
  2016. PROCEDURE PALETTENSCHEIN_KOPF :
  2017. /*------------------------------------------------------------------------------
  2018. Purpose:
  2019. Parameters: <none>
  2020. Notes:
  2021. ------------------------------------------------------------------------------*/
  2022. DEFINE INPUT PARAMETER ipPlatz AS INTEGER NO-UNDO.
  2023. DEFINE VARIABLE cAufnr AS CHARACTER NO-UNDO.
  2024. DEFINE VARIABLE oBarCode AS CHARACTER NO-UNDO.
  2025. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  2026. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  2027. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  2028. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  2029. DEFINE VARIABLE cLeerZeile AS CHARACTER NO-UNDO.
  2030. DEFINE VARIABLE cFahrer AS CHARACTER NO-UNDO.
  2031. /*
  2032. DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO.
  2033. */
  2034. /* P = Portrait */
  2035. /* L = Landscape */
  2036. DEFINE VARIABLE cCodeArt AS CHARACTER INIT 'P0210200' NO-UNDO.
  2037. RUN NEUE_SEITE.
  2038. PUT STREAM out_Stream CONTROL bDrucker.Dru15cpi.
  2039. PUT STREAM out_Stream CONTROL CHR(27) '&k2G'.
  2040. cAufnr = STRING(bAufko.Aufnr,'9999999')
  2041. + '.'
  2042. + TRIM(STRING(ipPlatz,'>9')).
  2043. RUN BAR-CODE-39 ( INPUT cAufnr ,
  2044. INPUT cCodeArt,
  2045. OUTPUT oBarCode ).
  2046. oBarCode = CHR(027) + "*p" + "100y" + "100X" + oBarCode
  2047. + CHR(027) + "*p" + "405y" + "260X"
  2048. + bDrucker.Drufettb + bDrucker.Dru10cpi + bDrucker.Drufettb
  2049. + cAufnr
  2050. + bDrucker.Drufette + bDrucker.Dru15cpi + bDrucker.Drufette
  2051. + CHR(027) + "*p" + "0y" + "0X".
  2052. PUT STREAM out_Stream CONTROL oBarCode.
  2053. FIND FIRST tSchrift NO-LOCK
  2054. WHERE tSchrift.iPlatz = iPlatz.
  2055. cLeerZeile = FILL(CHR(10), tSchrift.Schzzbeg).
  2056. IF cLeerZeile <> '' THEN PUT STREAM out_Stream cLeerZeile.
  2057. iZeile = tSchrift.Schzzbeg.
  2058. IF iSeite = 1 THEN
  2059. DO:
  2060. FIND LDebst USE-INDEX Debst-k1
  2061. WHERE LDebst.Firma = bAufko.Firma
  2062. AND LDebst.Knr = bAufko.Knr NO-LOCK NO-ERROR.
  2063. FIND FDebst USE-INDEX Debst-k1
  2064. WHERE FDebst.Firma = bAufko.Firma
  2065. AND FDebst.Knr = bAufko.Fak_Knr NO-LOCK NO-ERROR.
  2066. END.
  2067. IF bAufko.Adresse[05] <> '' THEN
  2068. DO:
  2069. DO ix = 1 TO 5:
  2070. SUBSTRING(cZeile,066) = bAufko.Adresse[ix].
  2071. IF ix = 5 THEN
  2072. DO: DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2073. END.
  2074. ELSE
  2075. DO: DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2076. END.
  2077. END.
  2078. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  2079. END.
  2080. ELSE
  2081. DO:
  2082. DO ix = 6 TO 12:
  2083. SUBSTRING(cZeile,066) = bAdresse.Anschrift[ix].
  2084. IF ix = 11 THEN
  2085. DO: DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2086. END.
  2087. ELSE
  2088. DO: DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2089. END.
  2090. END.
  2091. END.
  2092. IF bAufko.Auf_Tot >= 0
  2093. THEN SUBSTRING(cZeile,008) = SUBSTRING(FormText[02],01,20).
  2094. ELSE SUBSTRING(cZeile,008) = SUBSTRING(FormText[02],21,20).
  2095. cZeile = bDrucker.Dru10cpi
  2096. + SUBSTRING(cZeile,001,30)
  2097. + bDrucker.Dru15cpi.
  2098. DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2099. SUBSTRING(cZeile,066) = TRIM(SUBSTRING(FormText[07],01,20))
  2100. + " "
  2101. + STRING(dDatum,"99.99.9999").
  2102. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  2103. IF iSeite = 1 THEN
  2104. DO:
  2105. FIND FIRST tTabtexte NO-LOCK
  2106. WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR.
  2107. IF AVAILABLE tTabTexte THEN SUBSTRING(cZeile,008) = tTabTexte.cFeld3.
  2108. SUBSTRING(cZeile,066) = TRIM(SUBSTRING(FormText[08],21,20))
  2109. + STRING(bAufko.Gewicht,"zz,zz9.999-").
  2110. cZeile = TRIM(bDrucker.Drufettb)
  2111. + SUBSTRING(cZeile,001,65)
  2112. + TRIM(bDrucker.Drufette)
  2113. + SUBSTRING(cZeile,066).
  2114. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2115. SUBSTRING(cZeile,008) = TRIM(SUBSTRING(FormText[07],41,20))
  2116. + " "
  2117. + STRING(bAufko.Auf_Datum,"99.99.9999").
  2118. SUBSTRING(cZeile,038) = TRIM(SUBSTRING(FormText[08],01,20))
  2119. + STRING(bAufko.Knr,"z999999").
  2120. SUBSTRING(cZeile,066) = TRIM(SUBSTRING(FormText[08],41,20))
  2121. + " "
  2122. + bAdresse.Tel-1.
  2123. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2124. SUBSTRING(cZeile,008) = TRIM(SUBSTRING(FormText[09],21,20))
  2125. + " "
  2126. + STRING(bAufko.Lief_Datum,"99.99.9999").
  2127. SUBSTRING(cZeile,038) = TRIM(SUBSTRING(FormText[09],01,20))
  2128. + " ". /* Lieferart */
  2129. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2130. SUBSTRING(cZeile,008) = TRIM(SUBSTRING(FormText[07],21,20))
  2131. + " "
  2132. + STRING(bAufko.U_Ref,'x(20)').
  2133. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  2134. END.
  2135. SUBSTRING(cZeile,001) = TRIM(SUBSTRING(FormText[03],01,70)).
  2136. SUBSTRING(cZeile,071) = TRIM(SUBSTRING(FormText[04],01,70)).
  2137. DYNAMIC-FUNCTION('putStream':U, 'F', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  2138. IF iSeite = 1 AND
  2139. bAufko.Abh_Text <> '' THEN
  2140. DO:
  2141. cString = bAufko.Abh_Text.
  2142. i2 = 0.
  2143. DO i1 = 1 TO NUM-ENTRIES(cString, CHR(10)):
  2144. SUBSTRING(cZeile,008) = ENTRY(i1, cString, CHR(10)).
  2145. DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2146. i2 = i2 + 1.
  2147. END.
  2148. IF i2 > 0 THEN
  2149. DO:
  2150. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2151. END.
  2152. END.
  2153. IF iSeite = 1 THEN
  2154. DO:
  2155. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2156. RUN FIND_FAHRER ( bAufko.Fahrer, OUTPUT cString ).
  2157. IF cString <> '' THEN cFahrer = ENTRY(2, cString, CHR(01)) + ' ' + ENTRY(3, cString, CHR(01)).
  2158. i1 = (80 - LENGTH(cFahrer)) / 2.
  2159. SUBSTRING(cZeile,i1) = CHR(27) + "(s6H"
  2160. + cFahrer
  2161. + bDrucker.Dru15cpi.
  2162. DYNAMIC-FUNCTION('putStream':U, 'F', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  2163. FIND FIRST RuestPlatz NO-LOCK
  2164. WHERE RuestPlatz.Firma = bAufko.Firma
  2165. AND RuestPlatz.RuestArt = iRuestArt
  2166. AND RuestPlatz.Platz = ipPlatz.
  2167. i1 = (98 - LENGTH(RuestPlatz.Bezeichnung)) / 2.
  2168. cZeile = FILL('=', i1) + ' ' + RuestPlatz.Bezeichnung + ' ' + FILL('=', i1).
  2169. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  2170. END.
  2171. DO WHILE iSeite > 1:
  2172. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2173. LEAVE.
  2174. END.
  2175. END PROCEDURE.
  2176. /* _UIB-CODE-BLOCK-END */
  2177. &ANALYZE-RESUME
  2178. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PALETTENSCHEIN_RUECKSTAND gDruckenRuesten
  2179. PROCEDURE PALETTENSCHEIN_RUECKSTAND :
  2180. /*------------------------------------------------------------------------------
  2181. Purpose:
  2182. Parameters: <none>
  2183. Notes:
  2184. ------------------------------------------------------------------------------*/
  2185. DEFINE INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  2186. DEFINE VARIABLE cBarCode AS CHARACTER NO-UNDO.
  2187. DEFINE VARIABLE oBarCode AS CHARACTER NO-UNDO.
  2188. /*
  2189. DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO.
  2190. */
  2191. DEFINE VARIABLE cCodeArt AS CHARACTER INIT 'P0205080' NO-UNDO.
  2192. FIND tRueck WHERE RECID(tRueck) = ipRecid NO-LOCK.
  2193. PUT STREAM Out_Stream CONTROL bDrucker.Dru15cpi.
  2194. DO WHILE tRueck.Artnr = 0:
  2195. SUBSTRING(cZeile,036) = STRING(tRueck.Bez1,"x(30)").
  2196. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2197. IF tRueck.Bez2 <> '' THEN
  2198. DO:
  2199. SUBSTRING(cZeile,036) = STRING(tRueck.Bez2,"x(30)").
  2200. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2201. END.
  2202. RETURN.
  2203. END.
  2204. FIND Artst NO-LOCK OF tRueck.
  2205. FIND VGebinde NO-LOCK
  2206. WHERE VGebinde.Firma = tRueck.Firma
  2207. AND VGebinde.Geb_Cd = tRueck.VGeb_Cd NO-ERROR.
  2208. FIND KGebinde NO-LOCK
  2209. WHERE KGebinde.Firma = tRueck.Firma
  2210. AND KGebinde.Geb_Cd = tRueck.KGeb_Cd NO-ERROR.
  2211. SUBSTRING(cZeile,001) = STRING(KGebinde.KBez,"x(10)").
  2212. IF tRueck.VGeb_Ru <> 0 AND
  2213. tRueck.VGeb_Me <> tRueck.VGeb_Be THEN
  2214. DO:
  2215. SUBSTRING(cZeile,012) = STRING(tRueck.VGeb_Ru,'->>>')
  2216. + 'x '
  2217. + VGebinde.KBez.
  2218. END.
  2219. SUBSTRING(cZeile,028) = STRING(tRueck.MRuek ,"->>>>9").
  2220. SUBSTRING(cZeile,036) = STRING(tRueck.Bez1 ,"x(30)").
  2221. IF tRueck.Alk_Gehalt <> 0 THEN SUBSTRING(cZeile,068) = STRING(tRueck.Alk_Gehalt,"zz9.9%").
  2222. IF tRueck.Jahr > 9 THEN SUBSTRING(cZeile,075) = STRING(tRueck.Jahr,"9999").
  2223. SUBSTRING(cZeile,081) = STRING(tRueck.Artnr ,"999999").
  2224. SUBSTRING(cZeile,089) = STRING(tRueck.LagOrt,'x(08)').
  2225. cZeile = bDrucker.Drufettb
  2226. + SUBSTRING(cZeile,001,027)
  2227. + bDrucker.Drufette
  2228. + SUBSTRING(cZeile,028,061)
  2229. + bDrucker.Drufettb
  2230. + SUBSTRING(cZeile,089,008)
  2231. + bDrucker.Drufette
  2232. + SUBSTRING(cZeile,097).
  2233. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2234. IF tRueck.Bez2 <> '' THEN
  2235. DO:
  2236. SUBSTRING(cZeile,036) = STRING(tRueck.Bez2,"x(30)").
  2237. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  2238. END.
  2239. END PROCEDURE.
  2240. /* _UIB-CODE-BLOCK-END */
  2241. &ANALYZE-RESUME
  2242. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUESTSCHEIN gDruckenRuesten
  2243. PROCEDURE RUESTSCHEIN :
  2244. /*------------------------------------------------------------------------------
  2245. Purpose:
  2246. Parameters: <none>
  2247. Notes:
  2248. ------------------------------------------------------------------------------*/
  2249. DEFINE VARIABLE cDokArt AS CHARACTER NO-UNDO.
  2250. DEFINE VARIABLE hbAufko AS HANDLE NO-UNDO.
  2251. DEFINE VARIABLE htTabTexte AS HANDLE NO-UNDO.
  2252. DEFINE VARIABLE nFakBetr AS DECIMAL NO-UNDO.
  2253. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  2254. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  2255. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  2256. DEFINE VARIABLE iTime AS INTEGER NO-UNDO.
  2257. DEFINE VARIABLE iMenge AS INTEGER NO-UNDO.
  2258. DEFINE VARIABLE cLagOrt AS CHARACTER NO-UNDO.
  2259. DEFINE VARIABLE cSort AS CHARACTER NO-UNDO.
  2260. DEFINE VARIABLE iGeli AS INTEGER NO-UNDO.
  2261. DEFINE VARIABLE iSubPos AS INTEGER NO-UNDO.
  2262. DEFINE VARIABLE rLotLager AS INTEGER NO-UNDO.
  2263. DEFINE VARIABLE rHoReLager AS RECID NO-UNDO.
  2264. DEFINE VARIABLE rArtLager AS RECID NO-UNDO.
  2265. DEFINE VARIABLE cRecid AS CHARACTER NO-UNDO.
  2266. DEFINE VARIABLE iAnz AS INTEGER NO-UNDO.
  2267. DEFINE VARIABLE lNeu AS LOGICAL NO-UNDO INIT FALSE.
  2268. DEFINE VARIABLE lMut AS LOGICAL NO-UNDO INIT FALSE.
  2269. DEFINE VARIABLE cDrucker AS CHARACTER NO-UNDO.
  2270. cDokArt = 'RUEST'.
  2271. iSeite = 0.
  2272. iZeile = 0.
  2273. cDrucker = ''.
  2274. lOpen = FALSE.
  2275. cZeile = ''.
  2276. dDatum = bAufko.Lief_Datum.
  2277. iTime = TIME.
  2278. RUN LIBILD ( cDokArt ).
  2279. hbAufko = BUFFER bAufko:HANDLE.
  2280. htTabTexte = TEMP-TABLE tTabTexte:DEFAULT-BUFFER-HANDLE.
  2281. RUN CREATE_TABTEXTE ( INPUT hbAufko, INPUT-OUTPUT htTabTexte ).
  2282. EMPTY TEMP-TABLE tSchrift.
  2283. FOR EACH RuestDaten NO-LOCK
  2284. WHERE RuestDaten.Firma = bAufko.Firma
  2285. AND RuestDaten.RuestArt = iRuestArt
  2286. AND RuestDaten.Platz > 0
  2287. AND RuestDaten.RU_Doku = TRUE:
  2288. iPlatz = RuestDaten.Platz.
  2289. RUN GET_DRUCKERDATEN ( iPlatz, RuestDaten.RU_Drucker, RuestDaten.RU_Schrift ).
  2290. IF RETURN-VALUE <> '' THEN RETURN RETURN-VALUE.
  2291. FIND FIRST tSchrift WHERE tSchrift.iPlatz = iPlatz.
  2292. ASSIGN
  2293. tSchrift.Schzztot = RuestDaten.RU_TotZZ
  2294. tSchrift.Schzzbeg = RuestDaten.RU_KopfZZ
  2295. tSchrift.Schzzend = RuestDaten.RU_FussZZ
  2296. tSchrift.Schacht = RuestDaten.RU_Schacht
  2297. tSchrift.Anzahl = RuestDaten.RU_Anzahl.
  2298. END.
  2299. FIND bAdresse NO-LOCK USE-INDEX Adresse-k1
  2300. WHERE bAdresse.Firma = AdFirma
  2301. AND bAdresse.Knr = bAufko.Knr NO-ERROR.
  2302. FIND FIRST tSchrift.
  2303. DO WITH FRAME {&FRAME-NAME}:
  2304. F_Aufnr :SCREEN-VALUE = STRING(bAufko.Aufnr).
  2305. F_Knr :SCREEN-VALUE = STRING(bAufko.Knr).
  2306. F_Kunde :SCREEN-VALUE = bAdresse.Anzeig_Br.
  2307. F_Dokument:SCREEN-VALUE = cDokArt.
  2308. F_Drucker :SCREEN-VALUE = tSchrift.Schname.
  2309. F_Schrift :SCREEN-VALUE = tSchrift.Schbild.
  2310. ASSIGN {&List-6}.
  2311. DISPLAY {&List-6}.
  2312. END.
  2313. FOR EACH RuestAuf
  2314. WHERE RuestAuf.Firma = tAufze.Firma
  2315. AND RuestAuf.Aufnr = tAufze.Aufnr
  2316. BREAK BY RuestAuf.Firma
  2317. BY RuestAuf.Aufnr
  2318. BY RuestAuf.Pos :
  2319. IF NOT FIRST-OF ( RuestAuf.Pos ) THEN NEXT.
  2320. FIND FIRST tAufze NO-LOCK
  2321. WHERE tAufze.Firma = RuestAuf.Firma
  2322. AND tAufze.Aufnr = RuestAuf.Aufnr
  2323. AND tAufze.Pos = RuestAuf.Pos
  2324. AND tAufze.Artnr = RuestAuf.Artnr
  2325. AND tAufze.Inhalt = RuestAuf.Inhalt
  2326. AND tAufze.Jahr = RuestAuf.Jahr NO-ERROR.
  2327. IF NOT AVAILABLE tAufze THEN DELETE RuestAuf.
  2328. RELEASE RuestAuf.
  2329. END.
  2330. FOR EACH tAufze NO-LOCK
  2331. WHERE tAufze.Platz > 0
  2332. AND tAufze.Platz < 99
  2333. AND tAufze.Artnr > 0
  2334. BREAK
  2335. BY tAufze.Platz
  2336. BY tAufze.Lagort
  2337. BY tAufze.Pos :
  2338. EMPTY TEMP-TABLE tHoReLager.
  2339. EMPTY TEMP-TABLE tLotLager .
  2340. EMPTY TEMP-TABLE tLagerorte.
  2341. /* ------------------------------------------------------ */
  2342. /* Ist die Rüstposition bereits vorhanden ? */
  2343. /* Wenn Ja ? (lNeu = FALSE) */
  2344. /* sind die Mengen noch gleich ? (lMut = FALSE) */
  2345. /* ------------------------------------------------------ */
  2346. FIND FIRST RuestAuf NO-LOCK
  2347. WHERE RuestAuf.Firma = tAufze.Firma
  2348. AND RuestAuf.Aufnr = tAufze.Aufnr
  2349. AND RuestAuf.Pos = tAufze.Pos NO-ERROR.
  2350. lNeu = (IF AVAILABLE RuestAuf THEN FALSE ELSE TRUE).
  2351. IF NOT lNeu THEN lMut = (IF RuestAuf.MBest = tAufze.MBest THEN FALSE ELSE TRUE).
  2352. /* ------------------------------------------------------ */
  2353. IF lMut THEN
  2354. DO:
  2355. FOR EACH RuestAuf
  2356. WHERE RuestAuf.Firma = tAufze.Firma
  2357. AND RuestAuf.Aufnr = tAufze.Aufnr
  2358. AND RuestAuf.Pos = tAufze.Pos :
  2359. ASSIGN
  2360. RuestAuf.iMenge = tAufze.MBest - RuestAuf.MBest
  2361. RuestAuf.MBest = tAufze.MBest.
  2362. IF RuestAuf.lGeruestet THEN
  2363. DO:
  2364. ASSIGN
  2365. RuestAuf.lGeruestet = FALSE
  2366. RuestAuf.lPAGedruckt = FALSE
  2367. RuestAuf.lGeladen = FALSE
  2368. RuestAuf.lLAGedruckt = FALSE.
  2369. END.
  2370. END.
  2371. END.
  2372. DO WHILE TRUE:
  2373. IF NOT lNeu AND
  2374. NOT lMut THEN LEAVE.
  2375. iAnz = DYNAMIC-FUNCTION ('getHoReLager':U IN THIS-PROCEDURE, RECID(tAufze) ).
  2376. IF iAnz = 0 THEN
  2377. DO:
  2378. FIND ArtLager NO-LOCK OF tAufze.
  2379. CREATE tLagerOrte.
  2380. ASSIGN
  2381. tLagerOrte.cSort = '.KeinLager'
  2382. tLagerOrte.iBestand = ArtLager.Bestand
  2383. tLagerOrte.rLotLager = 0
  2384. tLagerOrte.rHoReLager = 0
  2385. tLagerorte.HoReLager_Id = 0
  2386. tLagerOrte.Lotnr = ''
  2387. tLagerOrte.Verfall = ?
  2388. tLagerOrte.lLotnr = tAufze.lLotnr
  2389. tLagerOrte.lVerfall = tAufze.lVerfall
  2390. tLagerorte.cArt = 'A'
  2391. tLagerOrte.iMenge = ArtLager.Bestand
  2392. .
  2393. LEAVE.
  2394. END.
  2395. IF tAufze.lVerfall OR
  2396. tAufze.lLotnr THEN
  2397. DO:
  2398. iAnz = DYNAMIC-FUNCTION ('getLotLager':U IN THIS-PROCEDURE, RECID(tAufze) ).
  2399. IF iAnz > 0 THEN LEAVE.
  2400. END.
  2401. iMenge = tAufze.MBest.
  2402. FOR EACH tHoReLager NO-LOCK
  2403. WHERE tHoReLager.Firma = tAufze.Firma
  2404. AND tHoReLager.Lager = tAufze.Lager
  2405. AND tHoReLager.Artnr = tAufze.Artnr
  2406. AND tHoReLager.Inhalt = tAufze.Inhalt
  2407. /* AND tHoReLager.Jahr = tAufze.Jahr*/
  2408. BY tHoReLager.iPrior
  2409. BY tHoReLager.Bestand :
  2410. CREATE tLagerOrte.
  2411. ASSIGN
  2412. tLagerOrte.cSort = tHoReLager.cSort
  2413. tLagerOrte.iBestand = tHoReLager.Bestand
  2414. tLagerOrte.rLotLager = 0
  2415. tLagerOrte.rHoReLager = tHoReLager.iRecid
  2416. tLagerorte.HoReLager_Id = tHoReLager.HoReLager_Id
  2417. tLagerOrte.Lotnr = ''
  2418. tLagerOrte.Verfall = ?
  2419. tLagerOrte.lLotnr = tAufze.lLotnr
  2420. tLagerOrte.lVerfall = tAufze.lVerfall
  2421. tLagerorte.cArt = 'H'
  2422. tLagerOrte.iMenge = (IF tHoReLager.Bestand >= iMenge THEN iMenge ELSE tHoReLager.Bestand)
  2423. .
  2424. iAnz = iAnz + 1.
  2425. IF tLagerOrte.iBestand >= iMenge THEN LEAVE.
  2426. iMenge = iMenge - tLagerOrte.iBestand.
  2427. IF iMenge <= 0 THEN
  2428. DO:
  2429. iMenge = 0.
  2430. LEAVE.
  2431. END.
  2432. END.
  2433. IF iMenge > 0 THEN
  2434. DO:
  2435. FIND FIRST tLagerOrte
  2436. WHERE tLagerOrte.iMenge = 0 NO-ERROR.
  2437. IF AVAILABLE tLagerOrte THEN tLagerOrte.iMenge = iMenge.
  2438. ELSE
  2439. DO:
  2440. FIND FIRST tLagerOrte NO-ERROR.
  2441. IF AVAILABLE tLagerOrte THEN tLagerOrte.iMenge = iMenge.
  2442. END.
  2443. END.
  2444. LEAVE.
  2445. END.
  2446. /* ------------------------------------------------------ */
  2447. /* Schreiben RuestAuf für die Rüstapplikation */
  2448. /* Aufgeteilt nach Rüstplatz */
  2449. /* ------------------------------------------------------ */
  2450. FOR EACH tLagerOrte
  2451. BY tLagerOrte.Verfall
  2452. BY tLagerOrte.cSort :
  2453. IF tLagerOrte.iMenge < 0 THEN tLagerOrte.iMenge = 0.
  2454. FIND LAST RuestAuf
  2455. WHERE RuestAuf.Firma = tAufze.Firma
  2456. AND RuestAuf.Aufnr = tAufze.Aufnr
  2457. AND RuestAuf.Pos = tAufze.Pos NO-ERROR.
  2458. iSubPos = (IF AVAILABLE RuestAuf THEN RuestAuf.SubPos + 5 ELSE 0).
  2459. FIND FIRST RuestAuf
  2460. WHERE RuestAuf.Firma = tAufze.Firma
  2461. AND RuestAuf.Aufnr = tAufze.Aufnr
  2462. AND RuestAuf.Pos = tAufze.Pos
  2463. AND RuestAuf.Verfall = tLagerOrte.Verfall
  2464. AND RuestAuf.Lotnr = tLagerOrte.Lotnr NO-ERROR.
  2465. IF NOT AVAILABLE RuestAuf THEN
  2466. DO:
  2467. CREATE RuestAuf.
  2468. ASSIGN
  2469. RuestAuf.Firma = tAufze.Firma
  2470. RuestAuf.Aufnr = tAufze.Aufnr
  2471. RuestAuf.Platz = tAufze.Platz
  2472. RuestAuf.Pos = tAufze.Pos
  2473. RuestAuf.SubPos = iSubPos
  2474. RuestAuf.Artnr = tAufze.Artnr
  2475. RuestAuf.Inhalt = tAufze.Inhalt
  2476. RuestAuf.Jahr = tAufze.Jahr
  2477. RuestAuf.MBest = tAufze.MBest
  2478. RuestAuf.MGeli = 0
  2479. RuestAuf.GGeb_Best = tAufze.GGeb_Be
  2480. RuestAuf.GGeb_Geli = 0
  2481. RuestAuf.VGeb_Best = tAufze.VGeb_Be
  2482. RuestAuf.VGeb_Geli = 0
  2483. RuestAuf.KGeb_Best = tAufze.KGeb_Be
  2484. RuestAuf.KGeb_Geli = 0
  2485. RuestAuf.lRSGedruckt = TRUE
  2486. RuestAuf.lGeruestet = FALSE
  2487. RuestAuf.lPAGedruckt = FALSE
  2488. RuestAuf.lLAGedruckt = FALSE
  2489. RuestAuf.lGeladen = FALSE
  2490. RuestAuf.lLSGedruckt = FALSE
  2491. RuestAuf.Lotnr = tLagerorte.Lotnr
  2492. RuestAuf.Verfall = tLagerorte.Verfall
  2493. RuestAuf.RecidHoReLager = tLagerOrte.rHoReLager
  2494. RuestAuf.RecidLotLager = tLagerOrte.rLotLager
  2495. .
  2496. END.
  2497. RuestAuf.iMenge = tLagerOrte.iMenge.
  2498. IF RuestAuf.MBest <> tAufze.MBest THEN
  2499. DO:
  2500. ASSIGN
  2501. RuestAuf.MBest = tAufze.MBest
  2502. RuestAuf.GGeb_Best = tAufze.GGeb_Be
  2503. RuestAuf.VGeb_Best = tAufze.VGeb_Be
  2504. RuestAuf.KGeb_Best = tAufze.KGeb_Be
  2505. RuestAuf.lGeruestet = FALSE
  2506. RuestAuf.lPAGedruckt = FALSE.
  2507. IF RuestAuf.MBest < RuestAuf.MGeli THEN RuestAuf.MGeli = RuestAuf.MBest.
  2508. IF RuestAuf.GGeb_Best < RuestAuf.GGeb_Geli THEN RuestAuf.GGeb_Geli = RuestAuf.GGeb_Best.
  2509. IF RuestAuf.VGeb_Best < RuestAuf.VGeb_Geli THEN RuestAuf.VGeb_Geli = RuestAuf.VGeb_Best.
  2510. IF RuestAuf.KGeb_Best < RuestAuf.KGeb_Geli THEN RuestAuf.KGeb_Geli = RuestAuf.KGeb_Best.
  2511. END.
  2512. ASSIGN
  2513. RuestAuf.lRSGedruckt = TRUE
  2514. RuestAuf.Lagerort = tLagerOrte.cSort
  2515. RuestAuf.Platz = tAufze.Platz.
  2516. iSubPos = iSubPos + 5.
  2517. END.
  2518. /* ------------------------------------------------------ */
  2519. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  2520. IF NOT FIRST-OF ( tAufze.Platz ) THEN LEAVE.
  2521. ASSIGN
  2522. iSeite = 0
  2523. iZeile = 0
  2524. iTime = iTime + 1
  2525. iPlatz = tAufze.Platz.
  2526. FIND FIRST tSchrift NO-LOCK
  2527. WHERE tSchrift.iPlatz = iPlatz.
  2528. FIND bDrucker NO-LOCK
  2529. WHERE bDrucker.Drucker = tSchrift.SchDru.
  2530. F_Drucker:SCREEN-VALUE = tSchrift.Schname.
  2531. F_Schrift:SCREEN-VALUE = tSchrift.Schbild.
  2532. IF NOT lOpen THEN
  2533. DO:
  2534. cDrucker = tSchrift.Schname.
  2535. cDateiName = SESSION:TEMP-DIR
  2536. + 'RuestPapier'
  2537. + STRING(TIME,'999999')
  2538. + STRING(RANDOM(1, 999999),'999999')
  2539. + '.txt'.
  2540. OUTPUT STREAM out_Stream TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  2541. lOpen = TRUE.
  2542. LEAVE.
  2543. END.
  2544. IF tSchrift.Schname = cDrucker THEN
  2545. DO:
  2546. PUT STREAM out_Stream CONTROL CHR(12).
  2547. LEAVE.
  2548. END.
  2549. OUTPUT STREAM out_Stream CLOSE.
  2550. lOpen = FALSE.
  2551. RUN DRUCKAUSGABE NO-ERROR.
  2552. IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
  2553. cDrucker = tSchrift.Schname.
  2554. cDateiName = SESSION:TEMP-DIR
  2555. + 'RuestPapier'
  2556. + STRING(TIME,'999999')
  2557. + STRING(RANDOM(1, 999999),'999999')
  2558. + '.txt'.
  2559. OUTPUT STREAM out_Stream TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  2560. lOpen = TRUE.
  2561. LEAVE.
  2562. END.
  2563. IF iSeite = 0 OR
  2564. (tSchrift.Schzztot - iZeile - 2) <= tSchrift.Schzzend THEN
  2565. DO:
  2566. RUN RUESTSCHEIN_KOPF ( iPlatz ).
  2567. END.
  2568. FIND FIRST zAufze.
  2569. BUFFER-COPY tAufze TO zAufze.
  2570. RUN RUESTSCHEIN_ARTIKELZEILE.
  2571. IF NOT LAST-OF ( tAufze.Platz ) THEN NEXT.
  2572. cZeile = FILL('=', 100).
  2573. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  2574. FOR EACH btAufze NO-LOCK
  2575. WHERE btAufze.Platz = 99:
  2576. FIND FIRST zAufze.
  2577. BUFFER-COPY btAufze TO zAufze.
  2578. RUN RUESTSCHEIN_ARTIKELZEILE.
  2579. i2 = i2 + 1.
  2580. END.
  2581. END.
  2582. IF lOpen THEN
  2583. DO:
  2584. OUTPUT STREAM out_Stream CLOSE.
  2585. lOpen = FALSE.
  2586. RUN DRUCKAUSGABE NO-ERROR.
  2587. IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
  2588. END.
  2589. IF bAufko.Auf_Sta < 1 THEN RUN WEITER ( bAufko.Aufnr ).
  2590. RETURN ''.
  2591. END PROCEDURE.
  2592. /* _UIB-CODE-BLOCK-END */
  2593. &ANALYZE-RESUME
  2594. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUESTSCHEIN_ARTIKELZEILE gDruckenRuesten
  2595. PROCEDURE RUESTSCHEIN_ARTIKELZEILE :
  2596. /*------------------------------------------------------------------------------
  2597. Purpose:
  2598. Parameters: <none>
  2599. Notes:
  2600. ------------------------------------------------------------------------------*/
  2601. DEFINE VARIABLE cBarCode AS CHARACTER NO-UNDO.
  2602. DEFINE VARIABLE oBarCode AS CHARACTER NO-UNDO.
  2603. /*
  2604. DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO.
  2605. */
  2606. DEFINE VARIABLE cCodeArt AS CHARACTER INIT 'P0205080' NO-UNDO.
  2607. FIND FIRST zAufze NO-LOCK.
  2608. PUT STREAM Out_Stream CONTROL bDrucker.Dru15cpi.
  2609. DO WHILE zAufze.Artnr = 0:
  2610. SUBSTRING(cZeile,036) = STRING(zAufze.Bez1,"x(30)").
  2611. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2612. IF zAufze.Bez2 <> '' THEN
  2613. DO:
  2614. SUBSTRING(cZeile,036) = STRING(zAufze.Bez2,"x(30)").
  2615. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2616. END.
  2617. RETURN.
  2618. END.
  2619. FIND Artst NO-LOCK OF zAufze.
  2620. FIND VGebinde
  2621. WHERE VGebinde.Firma = zAufze.Firma
  2622. AND VGebinde.Geb_Cd = zAufze.VGeb_Cd NO-ERROR.
  2623. FIND KGebinde
  2624. WHERE KGebinde.Firma = zAufze.Firma
  2625. AND KGebinde.Geb_Cd = zAufze.KGeb_Cd NO-ERROR.
  2626. FIND FIRST ArtLief NO-LOCK
  2627. WHERE ArtLief.Firma = zAufze.Firma
  2628. AND ArtLief.Artnr = zAufze.Artnr
  2629. AND ArtLief.Inhalt = zAufze.Inhalt
  2630. AND ArtLief.Jahr = zAufze.Jahr NO-ERROR.
  2631. cBarCode = ''.
  2632. oBarCode = ''.
  2633. IF AVAILABLE ArtLief THEN
  2634. DO:
  2635. IF ArtLief.Strichcode_KGeb <> '' THEN cBarCode = ArtLief.Strichcode_KGeb.
  2636. END.
  2637. IF cBarCode = '' THEN cBarCode = Artst.Strichcode.
  2638. IF cBarCode = '' THEN cBarCode = TRIM(STRING(zAufze.Artnr ,'zzzzz9'))
  2639. + '.'
  2640. + TRIM(STRING(zAufze.Inhalt,'zzz9'))
  2641. + '.'
  2642. + TRIM(STRING(zAufze.Jahr ,'zzz9')).
  2643. ELSE cBarCode = ''.
  2644. /* IF cBarCode = '' THEN cBarCode = TRIM(STRING(zAufze.Artnr ,'zzzzz9'))*/
  2645. /* + '.' */
  2646. /* + TRIM(STRING(zAufze.Inhalt,'zzz9')) */
  2647. /* + '.' */
  2648. /* + TRIM(STRING(zAufze.Jahr ,'zzz9')). */
  2649. IF cBarCode <> '' THEN
  2650. DO: .
  2651. RUN BAR-CODE-39 ( INPUT cBarCode,
  2652. INPUT cCodeArt,
  2653. OUTPUT oBarCode ).
  2654. END.
  2655. SUBSTRING(cZeile,001) = STRING(KGebinde.KBez,"x(10)").
  2656. IF zAufze.VGeb_Be <> 0 THEN
  2657. DO:
  2658. SUBSTRING(cZeile,012) = STRING(zAufze.VGeb_Be,'->>>')
  2659. + 'x '
  2660. + VGebinde.KBez.
  2661. END.
  2662. SUBSTRING(cZeile,028) = STRING(zAufze.MBest ,"->>>>9").
  2663. SUBSTRING(cZeile,036) = STRING(zAufze.Bez1 ,"x(30)").
  2664. IF zAufze.Alk_Gehalt <> 0 THEN SUBSTRING(cZeile,068) = STRING(zAufze.Alk_Gehalt,"zz9.9%").
  2665. IF zAufze.Jahr > 9 THEN SUBSTRING(cZeile,075) = STRING(zAufze.Jahr,"9999").
  2666. SUBSTRING(cZeile,081) = STRING(zAufze.Artnr ,"999999").
  2667. SUBSTRING(cZeile,089) = STRING(ENTRY(1, zAufze.LagOrt, ','),'x(14)').
  2668. cZeile = bDrucker.Drufettb
  2669. + SUBSTRING(cZeile,001,027)
  2670. + bDrucker.Drufette
  2671. + SUBSTRING(cZeile,028,061)
  2672. + bDrucker.Drufettb
  2673. + SUBSTRING(cZeile,089,014)
  2674. + bDrucker.Drufette
  2675. + SUBSTRING(cZeile,103).
  2676. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2677. IF zAufze.Bez2 <> '' THEN
  2678. DO:
  2679. SUBSTRING(cZeile,036) = STRING(zAufze.Bez2,"x(30)").
  2680. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2681. END.
  2682. IF oBarCode <> '' THEN
  2683. DO:
  2684. SUBSTRING(cZeile,036) = CHR(27) + "&f0S" /* Cursorposition speichern */
  2685. + CHR(27) + "*p" /* Cursor neu Positionieren anhand der Zeile */
  2686. + STRING((iZeile * 50) - 25,"9999") + "Y"
  2687. + oBarcode
  2688. + CHR(027) + "&f1S". /* Cusrorposition zurückholen */
  2689. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  2690. END.
  2691. ELSE
  2692. DO:
  2693. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2694. END.
  2695. END PROCEDURE.
  2696. /* _UIB-CODE-BLOCK-END */
  2697. &ANALYZE-RESUME
  2698. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUESTSCHEIN_KOPF gDruckenRuesten
  2699. PROCEDURE RUESTSCHEIN_KOPF :
  2700. /*------------------------------------------------------------------------------
  2701. Purpose:
  2702. Parameters: <none>
  2703. Notes:
  2704. ------------------------------------------------------------------------------*/
  2705. DEFINE INPUT PARAMETER ipPlatz AS INTEGER NO-UNDO.
  2706. DEFINE VARIABLE cAufnr AS CHARACTER NO-UNDO.
  2707. DEFINE VARIABLE oBarCode AS CHARACTER NO-UNDO.
  2708. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  2709. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  2710. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  2711. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  2712. DEFINE VARIABLE cLeerZeile AS CHARACTER NO-UNDO.
  2713. /*
  2714. DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO.
  2715. */
  2716. /* P = Portrait */
  2717. /* L = Landscape */
  2718. DEFINE VARIABLE cCodeArt AS CHARACTER INIT 'P0210200' NO-UNDO.
  2719. RUN NEUE_SEITE.
  2720. PUT STREAM out_Stream CONTROL bDrucker.Dru15cpi.
  2721. PUT STREAM out_Stream CONTROL CHR(27) '&k2G'.
  2722. cAufnr = STRING(bAufko.Aufnr,'9999999')
  2723. + '.'
  2724. + TRIM(STRING(ipPlatz,'>9')).
  2725. RUN BAR-CODE-39 ( INPUT cAufnr ,
  2726. INPUT cCodeArt,
  2727. OUTPUT oBarCode ).
  2728. oBarCode = CHR(027) + "*p" + "100y" + "100X" + oBarCode
  2729. + CHR(027) + "*p" + "405y" + "260X"
  2730. + bDrucker.Drufettb + bDrucker.Dru10cpi + bDrucker.Drufettb
  2731. + cAufnr
  2732. + bDrucker.Drufette + bDrucker.Dru15cpi + bDrucker.Drufette
  2733. + CHR(027) + "*p" + "0y" + "0X".
  2734. PUT STREAM out_Stream CONTROL oBarCode.
  2735. FIND FIRST tSchrift NO-LOCK
  2736. WHERE tSchrift.iPlatz = iPlatz.
  2737. cLeerZeile = FILL(CHR(10), tSchrift.Schzzbeg).
  2738. IF cLeerZeile <> '' THEN PUT STREAM out_Stream cLeerZeile.
  2739. iZeile = tSchrift.Schzzbeg.
  2740. IF iSeite = 1 THEN
  2741. DO:
  2742. FIND LDebst USE-INDEX Debst-k1
  2743. WHERE LDebst.Firma = bAufko.Firma
  2744. AND LDebst.Knr = bAufko.Knr NO-LOCK NO-ERROR.
  2745. FIND FDebst USE-INDEX Debst-k1
  2746. WHERE FDebst.Firma = bAufko.Firma
  2747. AND FDebst.Knr = bAufko.Fak_Knr NO-LOCK NO-ERROR.
  2748. END.
  2749. IF bAufko.Adresse[05] <> '' THEN
  2750. DO:
  2751. DO ix = 1 TO 5:
  2752. SUBSTRING(cZeile,066) = bAufko.Adresse[ix].
  2753. IF ix = 5 THEN
  2754. DO: DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2755. END.
  2756. ELSE
  2757. DO: DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2758. END.
  2759. END.
  2760. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  2761. END.
  2762. ELSE
  2763. DO:
  2764. DO ix = 6 TO 12:
  2765. SUBSTRING(cZeile,066) = bAdresse.Anschrift[ix].
  2766. IF ix = 11 THEN
  2767. DO: DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2768. END.
  2769. ELSE
  2770. DO: DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2771. END.
  2772. END.
  2773. END.
  2774. IF bAufko.Auf_Tot >= 0
  2775. THEN SUBSTRING(cZeile,008) = SUBSTRING(FormText[02],01,20).
  2776. ELSE SUBSTRING(cZeile,008) = SUBSTRING(FormText[02],21,20).
  2777. SUBSTRING(cZeile,066) = TRIM(SUBSTRING(FormText[07],01,20))
  2778. + " "
  2779. + STRING(dDatum,"99.99.9999").
  2780. cZeile = bDrucker.Drufettb
  2781. + SUBSTRING(cZeile,001,30)
  2782. + bDrucker.Drufette
  2783. + SUBSTRING(cZeile,031).
  2784. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  2785. IF iSeite = 1 THEN
  2786. DO:
  2787. FIND FIRST tTabtexte NO-LOCK
  2788. WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR.
  2789. IF AVAILABLE tTabTexte THEN SUBSTRING(cZeile,008) = tTabTexte.cFeld3.
  2790. SUBSTRING(cZeile,066) = TRIM(SUBSTRING(FormText[08],21,20))
  2791. + STRING(bAufko.Gewicht,"zz,zz9.999-").
  2792. cZeile = TRIM(bDrucker.Drufettb)
  2793. + SUBSTRING(cZeile,001,65)
  2794. + TRIM(bDrucker.Drufette)
  2795. + SUBSTRING(cZeile,066).
  2796. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2797. SUBSTRING(cZeile,008) = TRIM(SUBSTRING(FormText[07],41,20))
  2798. + " "
  2799. + STRING(bAufko.Auf_Datum,"99.99.9999").
  2800. SUBSTRING(cZeile,038) = TRIM(SUBSTRING(FormText[08],01,20))
  2801. + STRING(bAufko.Knr,"z999999").
  2802. SUBSTRING(cZeile,066) = TRIM(SUBSTRING(FormText[08],41,20))
  2803. + " "
  2804. + bAdresse.Tel-1.
  2805. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2806. SUBSTRING(cZeile,008) = TRIM(SUBSTRING(FormText[09],21,20))
  2807. + " "
  2808. + STRING(bAufko.Lief_Datum,"99.99.9999").
  2809. SUBSTRING(cZeile,038) = TRIM(SUBSTRING(FormText[09],01,20))
  2810. + " ". /* Lieferart */
  2811. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2812. SUBSTRING(cZeile,008) = TRIM(SUBSTRING(FormText[07],21,20))
  2813. + " "
  2814. + STRING(bAufko.U_Ref,'x(20)').
  2815. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  2816. END.
  2817. SUBSTRING(cZeile,001) = TRIM(SUBSTRING(FormText[03],01,70)).
  2818. SUBSTRING(cZeile,071) = TRIM(SUBSTRING(FormText[04],01,70)).
  2819. DYNAMIC-FUNCTION('putStream':U, 'F', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  2820. IF iSeite = 1 AND
  2821. bAufko.Abh_Text <> '' THEN
  2822. DO:
  2823. cString = bAufko.Abh_Text.
  2824. i2 = 0.
  2825. DO i1 = 1 TO NUM-ENTRIES(cString, CHR(10)):
  2826. SUBSTRING(cZeile,008) = ENTRY(i1, cString, CHR(10)).
  2827. DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2828. i2 = i2 + 1.
  2829. END.
  2830. IF i2 > 0 THEN
  2831. DO:
  2832. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2833. END.
  2834. END.
  2835. IF iSeite = 1 THEN
  2836. DO:
  2837. i2 = 0.
  2838. FOR EACH btAufze NO-LOCK
  2839. WHERE btAufze.Platz = 0:
  2840. FIND FIRST zAufze.
  2841. BUFFER-COPY btAufze TO zAufze.
  2842. RUN RUESTSCHEIN_ARTIKELZEILE.
  2843. i2 = i2 + 1.
  2844. END.
  2845. IF i2 > 0 THEN
  2846. DO:
  2847. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2848. END.
  2849. FIND FIRST RuestPlatz NO-LOCK
  2850. WHERE RuestPlatz.Firma = bAufko.Firma
  2851. AND RuestPlatz.RuestArt = iRuestArt
  2852. AND RuestPlatz.Platz = ipPlatz NO-ERROR.
  2853. i1 = (98 - LENGTH(RuestPlatz.Bezeichnung)) / 2.
  2854. cZeile = FILL('=', i1) + ' ' + RuestPlatz.Bezeichnung + ' ' + FILL('=', i1).
  2855. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  2856. END.
  2857. DO WHILE iSeite > 1:
  2858. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  2859. LEAVE.
  2860. END.
  2861. END PROCEDURE.
  2862. /* _UIB-CODE-BLOCK-END */
  2863. &ANALYZE-RESUME
  2864. /* ************************ Function Implementations ***************** */
  2865. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getHoreLager gDruckenRuesten
  2866. FUNCTION getHoReLager RETURNS INTEGER
  2867. ( iprtAufze AS RECID ):
  2868. /*------------------------------------------------------------------------------
  2869. Purpose:
  2870. Notes:
  2871. ------------------------------------------------------------------------------*/
  2872. DEFINE VARIABLE iAnz AS INTEGER NO-UNDO.
  2873. DEFINE BUFFER btAufze FOR tAufze.
  2874. FIND btAufze WHERE RECID(btAufze) = iprtAufze.
  2875. DO WHILE TRUE:
  2876. /* ------------------------------------------------------ */
  2877. /* Artikel genau (inkl. Jahrgang) und Bestand */
  2878. /* ------------------------------------------------------ */
  2879. FOR EACH HoReLager NO-LOCK
  2880. WHERE HoReLager.Firma = Firma
  2881. AND HoReLager.Art = 1
  2882. AND HoReLager.Lager = tAufze.Lager
  2883. AND HoReLager.Artnr = tAufze.Artnr
  2884. AND HoReLager.Inhalt = tAufze.Inhalt
  2885. AND HoReLager.Jahr = tAufze.Jahr
  2886. AND HoReLager.Bestand > 0 :
  2887. CREATE tHoReLager.
  2888. BUFFER-COPY HoReLager
  2889. TO tHoReLager
  2890. ASSIGN
  2891. tHoReLager.iRecid = RECID(HoReLager)
  2892. tHoReLager.iPrior = 1.
  2893. iAnz = iAnz + 1.
  2894. END.
  2895. /* ------------------------------------------------------ */
  2896. /* Artikel ohne Jahrgang aber mit Bestand */
  2897. /* ------------------------------------------------------ */
  2898. FOR EACH HoReLager NO-LOCK
  2899. WHERE HoReLager.Firma = Firma
  2900. AND HoReLager.Art = 1
  2901. AND HoReLager.Lager = tAufze.Lager
  2902. AND HoReLager.Artnr = tAufze.Artnr
  2903. AND HoReLager.Inhalt = tAufze.Inhalt
  2904. AND HoReLager.Bestand > 0 :
  2905. FIND FIRST tHoReLager NO-LOCK
  2906. WHERE tHoReLager.cSort = HoReLager.cSort NO-ERROR.
  2907. IF AVAILABLE tHoReLager THEN
  2908. DO:
  2909. tHoReLager.Bestand = tHoReLager.Bestand + HoReLager.Bestand.
  2910. NEXT.
  2911. END.
  2912. CREATE tHoReLager.
  2913. BUFFER-COPY HoReLager
  2914. TO tHoReLager
  2915. ASSIGN
  2916. tHoReLager.iRecid = RECID(HoReLager)
  2917. tHoReLager.iPrior = 2.
  2918. iAnz = iAnz + 1.
  2919. END.
  2920. /* ------------------------------------------------------ */
  2921. /* Artikel genau (inkl. Jahrgang) ohne Bestand */
  2922. /* ------------------------------------------------------ */
  2923. FOR EACH HoReLager NO-LOCK
  2924. WHERE HoReLager.Firma = Firma
  2925. AND HoReLager.Art = 1
  2926. AND HoReLager.Lager = tAufze.Lager
  2927. AND HoReLager.Artnr = tAufze.Artnr
  2928. AND HoReLager.Inhalt = tAufze.Inhalt
  2929. AND HoReLager.Jahr = tAufze.Jahr
  2930. AND HoReLager.Bestand = 0 :
  2931. FIND FIRST tHoReLager NO-LOCK
  2932. WHERE tHoReLager.cSort = HoReLager.cSort NO-ERROR.
  2933. IF AVAILABLE tHoReLager THEN NEXT.
  2934. CREATE tHoReLager.
  2935. BUFFER-COPY HoReLager
  2936. TO tHoReLager
  2937. ASSIGN
  2938. tHoReLager.iRecid = RECID(HoReLager)
  2939. tHoReLager.iPrior = 3.
  2940. iAnz = iAnz + 1.
  2941. END.
  2942. /* ------------------------------------------------------ */
  2943. /* Artikel ohne Jahrgang und ohne Bestand */
  2944. /* ------------------------------------------------------ */
  2945. FOR EACH HoReLager NO-LOCK
  2946. WHERE HoReLager.Firma = Firma
  2947. AND HoReLager.Art = 1
  2948. AND HoReLager.Lager = tAufze.Lager
  2949. AND HoReLager.Artnr = tAufze.Artnr
  2950. AND HoReLager.Inhalt = tAufze.Inhalt
  2951. AND HoReLager.Bestand = 0 :
  2952. FIND FIRST tHoReLager NO-LOCK
  2953. WHERE tHoReLager.cSort = HoReLager.cSort NO-ERROR.
  2954. IF AVAILABLE tHoReLager THEN NEXT.
  2955. CREATE tHoReLager.
  2956. BUFFER-COPY HoReLager
  2957. TO tHoReLager
  2958. ASSIGN
  2959. tHoReLager.iRecid = RECID(HoReLager)
  2960. tHoReLager.iPrior = 4.
  2961. iAnz = iAnz + 1.
  2962. END.
  2963. IF iAnz > 0 THEN RETURN iAnz.
  2964. /* ------------------------------------------------------ */
  2965. /* NACHFUELLLAGER */
  2966. /* ------------------------------------------------------ */
  2967. /* Artikel genau (inkl. Jahrgang) und Bestand */
  2968. /* ------------------------------------------------------ */
  2969. /*
  2970. FOR EACH HoReLager NO-LOCK
  2971. WHERE HoReLager.Firma = Firma
  2972. AND HoReLager.Art = 2
  2973. AND HoReLager.Lager = tAufze.Lager
  2974. AND HoReLager.Artnr = tAufze.Artnr
  2975. AND HoReLager.Inhalt = tAufze.Inhalt
  2976. AND HoReLager.Jahr = tAufze.Jahr
  2977. AND HoReLager.Bestand > 0 :
  2978. FIND FIRST tHoReLager NO-LOCK
  2979. WHERE tHoReLager.cSort = HoReLager.cSort NO-ERROR.
  2980. IF AVAILABLE tHoReLager THEN
  2981. DO:
  2982. tHoReLager.Bestand = tHoReLager.Bestand + HoReLager.Bestand.
  2983. NEXT.
  2984. END.
  2985. CREATE tHoReLager.
  2986. BUFFER-COPY HoReLager
  2987. TO tHoReLager
  2988. ASSIGN
  2989. tHoReLager.iRecid = RECID(HoReLager)
  2990. tHoReLager.iPrior = 5.
  2991. iAnz = iAnz + 1.
  2992. END.
  2993. /* ------------------------------------------------------ */
  2994. /* Artikel ohne Jahrgang aber mit Bestand */
  2995. /* ------------------------------------------------------ */
  2996. FOR EACH HoReLager NO-LOCK
  2997. WHERE HoReLager.Firma = Firma
  2998. AND HoReLager.Art = 2
  2999. AND HoReLager.Lager = tAufze.Lager
  3000. AND HoReLager.Artnr = tAufze.Artnr
  3001. AND HoReLager.Inhalt = tAufze.Inhalt
  3002. AND HoReLager.Bestand > 0 :
  3003. FIND FIRST tHoReLager NO-LOCK
  3004. WHERE tHoReLager.cSort = HoReLager.cSort NO-ERROR.
  3005. IF AVAILABLE tHoReLager THEN
  3006. DO:
  3007. tHoReLager.Bestand = tHoReLager.Bestand + HoReLager.Bestand.
  3008. NEXT.
  3009. END.
  3010. CREATE tHoReLager.
  3011. BUFFER-COPY HoReLager
  3012. TO tHoReLager
  3013. ASSIGN
  3014. tHoReLager.iRecid = RECID(HoReLager)
  3015. tHoReLager.iPrior = 6.
  3016. iAnz = iAnz + 1.
  3017. END.
  3018. /* ------------------------------------------------------ */
  3019. /* Artikel genau (inkl. Jahrgang) ohne Bestand */
  3020. /* ------------------------------------------------------ */
  3021. FOR EACH HoReLager NO-LOCK
  3022. WHERE HoReLager.Firma = Firma
  3023. AND HoReLager.Art = 2
  3024. AND HoReLager.Lager = tAufze.Lager
  3025. AND HoReLager.Artnr = tAufze.Artnr
  3026. AND HoReLager.Inhalt = tAufze.Inhalt
  3027. AND HoReLager.Jahr = tAufze.Jahr
  3028. AND HoReLager.Bestand = 0 :
  3029. FIND FIRST tHoReLager NO-LOCK
  3030. WHERE tHoReLager.cSort = HoReLager.cSort NO-ERROR.
  3031. IF AVAILABLE tHoReLager THEN NEXT.
  3032. CREATE tHoReLager.
  3033. BUFFER-COPY HoReLager
  3034. TO tHoReLager
  3035. ASSIGN
  3036. tHoReLager.iRecid = RECID(HoReLager)
  3037. tHoReLager.iPrior = 7.
  3038. iAnz = iAnz + 1.
  3039. END.
  3040. /* ------------------------------------------------------ */
  3041. /* Artikel ohne Jahrgang und ohne Bestand */
  3042. /* ------------------------------------------------------ */
  3043. FOR EACH HoReLager NO-LOCK
  3044. WHERE HoReLager.Firma = Firma
  3045. AND HoReLager.Art = 2
  3046. AND HoReLager.Lager = tAufze.Lager
  3047. AND HoReLager.Artnr = tAufze.Artnr
  3048. AND HoReLager.Inhalt = tAufze.Inhalt
  3049. AND HoReLager.Bestand = 0:
  3050. FIND FIRST tHoReLager NO-LOCK
  3051. WHERE tHoReLager.cSort = HoReLager.cSort NO-ERROR.
  3052. IF AVAILABLE tHoReLager THEN NEXT.
  3053. CREATE tHoReLager.
  3054. BUFFER-COPY HoReLager
  3055. TO tHoReLager
  3056. ASSIGN
  3057. tHoReLager.iRecid = RECID(HoReLager)
  3058. tHoReLager.iPrior = 8.
  3059. iAnz = iAnz + 1.
  3060. END.
  3061. */
  3062. LEAVE.
  3063. END.
  3064. RETURN iAnz.
  3065. END FUNCTION.
  3066. /* _UIB-CODE-BLOCK-END */
  3067. &ANALYZE-RESUME
  3068. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getLogName gDruckenRuesten
  3069. FUNCTION getLogName RETURNS CHARACTER
  3070. ( /* parameter-definitions */ ) :
  3071. /*------------------------------------------------------------------------------*/
  3072. /* Purpose: */
  3073. /* Parameters: <none> */
  3074. /* Notes: */
  3075. /*------------------------------------------------------------------------------*/
  3076. DEFINE VARIABLE cPath AS CHARACTER NO-UNDO.
  3077. GET-KEY-VALUE SECTION 'GrundEinstellungen'
  3078. KEY 'Ge_MIS_TEMP'
  3079. VALUE cPath.
  3080. IF cPath = '' OR
  3081. cPath = ? THEN cPath = SESSION:TEMP-DIRECTORY.
  3082. IF SUBSTRING(cPath, LENGTH(cPath), 01) <> '/' AND
  3083. SUBSTRING(cPath, LENGTH(cPath), 01) <> '\' THEN cPath = cPath + '\'.
  3084. cPath = cPath + Progname + REPLACE(STRING(TODAY,'99.99.9999'), '.', '') + '.Log'.
  3085. RETURN cPath.
  3086. END FUNCTION.
  3087. /* _UIB-CODE-BLOCK-END */
  3088. &ANALYZE-RESUME
  3089. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getLotLager gDruckenRuesten
  3090. FUNCTION getLotLager RETURNS INTEGER
  3091. ( iprtAufze AS RECID ):
  3092. /*------------------------------------------------------------------------------*/
  3093. /* Purpose: */
  3094. /* Parameters: <none> */
  3095. /* Notes: */
  3096. /*------------------------------------------------------------------------------*/
  3097. DEFINE VARIABLE iMenge AS INTEGER NO-UNDO.
  3098. DEFINE VARIABLE iAnz AS INTEGER NO-UNDO.
  3099. DEFINE BUFFER btAufze FOR tAufze.
  3100. DEFINE BUFFER bLotLager FOR LotLager.
  3101. FIND btAufze WHERE RECID(btAufze) = iprtAufze.
  3102. iMenge = btAufze.MBest.
  3103. iAnz = 0.
  3104. FOR EACH bLotLager NO-LOCK USE-INDEX LotLager-k3
  3105. WHERE bLotLager.Firma = btAufze.Firma
  3106. AND bLotLager.Lager = btAufze.Lager
  3107. AND bLotLager.Artnr = btAufze.Artnr
  3108. AND bLotLager.Inhalt = btAufze.Inhalt
  3109. AND bLotLager.Jahr = btAufze.Jahr
  3110. AND bLotLager.Bestand > 0 ,
  3111. FIRST tHoReLager WHERE tHoReLager.HoReLager_Id = bLotLager.HoReLager_Id:
  3112. CREATE tLagerOrte.
  3113. ASSIGN
  3114. tLagerOrte.cSort = tHoReLager.cSort
  3115. tLagerOrte.iBestand = bLotLager.Bestand
  3116. tLagerOrte.rLotLager = RECID(bLotLager)
  3117. tLagerOrte.rHoReLager = tHoReLager.iRecid
  3118. tLagerorte.HoReLager_Id = tHoReLager.HoReLager_Id
  3119. tLagerOrte.Lotnr = bLotLager.Lotnummer
  3120. tLagerOrte.Verfall = bLotLager.Verfall
  3121. tLagerOrte.lLotnr = btAufze.lLotnr
  3122. tLagerOrte.lVerfall = btAufze.lVerfall
  3123. tLagerorte.cArt = 'L'
  3124. tLagerOrte.iMenge = (IF bLotLager.Bestand >= iMenge THEN iMenge ELSE bLotLager.Bestand)
  3125. .
  3126. iAnz = iAnz + 1.
  3127. IF bLotLager.Bestand >= iMenge THEN RETURN iAnz.
  3128. iMenge = iMenge - bLotLager.Bestand.
  3129. END.
  3130. FOR EACH bLotLager NO-LOCK USE-INDEX LotLager-k3
  3131. WHERE bLotLager.Firma = btAufze.Firma
  3132. AND bLotLager.Lager = btAufze.Lager
  3133. AND bLotLager.Artnr = btAufze.Artnr
  3134. AND bLotLager.Inhalt = btAufze.Inhalt
  3135. AND bLotLager.Jahr = btAufze.Jahr
  3136. AND bLotLager.Bestand = 0,
  3137. FIRST tHoReLager WHERE tHoReLager.HoReLager_Id = bLotLager.HoReLager_Id:
  3138. CREATE tLagerOrte.
  3139. ASSIGN
  3140. tLagerOrte.cSort = tHoReLager.cSort
  3141. tLagerOrte.iBestand = bLotLager.Bestand
  3142. tLagerOrte.rLotLager = RECID(bLotLager)
  3143. tLagerOrte.rHoReLager = tHoReLager.iRecid
  3144. tLagerorte.HoReLager_Id = tHoReLager.HoReLager_Id
  3145. tLagerOrte.Lotnr = bLotLager.Lotnummer
  3146. tLagerOrte.Verfall = bLotLager.Verfall
  3147. tLagerOrte.lLotnr = btAufze.lLotnr
  3148. tLagerOrte.lVerfall = btAufze.lVerfall
  3149. tLagerorte.cArt = 'L'
  3150. tLagerOrte.iMenge = iMenge.
  3151. .
  3152. iMenge = 0.
  3153. iAnz = iAnz + 1.
  3154. LEAVE.
  3155. END.
  3156. RETURN iAnz.
  3157. END FUNCTION.
  3158. /* _UIB-CODE-BLOCK-END */
  3159. &ANALYZE-RESUME
  3160. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION putStream gDruckenRuesten
  3161. FUNCTION putStream RETURNS LOGICAL
  3162. ( ipAttrib AS CHARACTER, ipAnzZeilen AS INTEGER, INPUT-OUTPUT ipZeile AS CHARACTER ) :
  3163. /*------------------------------------------------------------------------------
  3164. Purpose:
  3165. Notes:
  3166. ------------------------------------------------------------------------------*/
  3167. DEFINE VARIABLE cLF AS CHARACTER NO-UNDO.
  3168. cLF = FILL(CHR(10), ipAnzZeilen).
  3169. CASE ipAttrib:
  3170. WHEN 'N' THEN
  3171. PUT STREAM out_Stream CONTROL ipZeile.
  3172. WHEN 'F' THEN
  3173. PUT STREAM out_Stream CONTROL bDrucker.Drufettb ipZeile bDrucker.Drufette.
  3174. WHEN 'U' THEN
  3175. PUT STREAM out_Stream CONTROL bDrucker.Druunterb ipZeile bDrucker.Druuntere.
  3176. END CASE.
  3177. PUT STREAM out_Stream CONTROL cLF.
  3178. iZeile = iZeile + ipAnzZeilen.
  3179. ipZeile = ''.
  3180. RETURN TRUE.
  3181. END FUNCTION.
  3182. /* _UIB-CODE-BLOCK-END */
  3183. &ANALYZE-RESUME
  3184. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION writeLogFile gDruckenRuesten
  3185. FUNCTION writeLogFile RETURNS LOGICAL
  3186. ( ipMessage AS CHARACTER ) :
  3187. /*------------------------------------------------------------------------------
  3188. Purpose:
  3189. Notes:
  3190. ------------------------------------------------------------------------------*/
  3191. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  3192. cString = SUBSTITUTE('&1 &2 -> &3', STRING(TODAY,'99.99.9999'), STRING(TIME,'HH:MM:SS'), ipMessage).
  3193. OUTPUT STREAM LogStream TO VALUE(cLogName) APPEND.
  3194. PUT STREAM LogStream CONTROL cString CHR(10).
  3195. OUTPUT STREAM LogStream CLOSE.
  3196. RETURN TRUE.
  3197. END FUNCTION.
  3198. /* _UIB-CODE-BLOCK-END */
  3199. &ANALYZE-RESUME