Auftragsschein.p 79 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12
  2. &ANALYZE-RESUME
  3. USING OpenEdge.Core.String FROM PROPATH.
  4. USING OpenEdge.Net.HTTP.ClientBuilder FROM PROPATH.
  5. USING OpenEdge.Net.HTTP.Credentials FROM PROPATH.
  6. USING OpenEdge.Net.HTTP.IHttpClient FROM PROPATH.
  7. USING OpenEdge.Net.HTTP.IHttpRequest FROM PROPATH.
  8. USING OpenEdge.Net.HTTP.IHttpResponse FROM PROPATH.
  9. USING OpenEdge.Net.HTTP.RequestBuilder FROM PROPATH.
  10. USING OpenEdge.Net.HTTP.ResponseBuilder FROM PROPATH.
  11. USING OpenEdge.Net.URI FROM PROPATH.
  12. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure
  13. /*------------------------------------------------------------------------
  14. File :
  15. Purpose :
  16. Syntax :
  17. Description :
  18. Author(s) :
  19. Created :
  20. Notes :
  21. ----------------------------------------------------------------------*/
  22. /* This .W file was created with the Progress AppBuilder. */
  23. /*----------------------------------------------------------------------*/
  24. /* *************************** Definitions ************************** */
  25. DEFINE VARIABLE iRuestArt AS INTEGER NO-UNDO.
  26. DEFINE VARIABLE AdFirma AS CHARACTER NO-UNDO FORMAT "x(04)".
  27. DEFINE VARIABLE FBFirma AS CHARACTER NO-UNDO FORMAT "x(04)".
  28. DEFINE VARIABLE Firma AS CHARACTER NO-UNDO FORMAT "x(04)".
  29. DEFINE VARIABLE Progname AS CHARACTER NO-UNDO.
  30. DEFINE VARIABLE cLogName AS CHARACTER NO-UNDO.
  31. DEFINE VARIABLE lBatch AS LOGICAL NO-UNDO INIT TRUE.
  32. DEFINE VARIABLE cUser AS CHARACTER NO-UNDO.
  33. DEFINE VARIABLE sAktiv AS LOGICAL NO-UNDO INIT FALSE.
  34. /*DEFINE VARIABLE cBenutzerDaten AS CHARACTER NO-UNDO. */
  35. /*DEFINE VARIABLE cBenutzer AS CHARACTER NO-UNDO. */
  36. /*DEFINE VARIABLE cRuester AS CHARACTER NO-UNDO. */
  37. DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO.
  38. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  39. DEFINE VARIABLE iPlatz AS INTEGER NO-UNDO.
  40. DEFINE VARIABLE iAnzahl AS INTEGER NO-UNDO.
  41. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  42. DEFINE VARIABLE FormText AS CHARACTER NO-UNDO EXTENT 30.
  43. DEFINE VARIABLE iSeite AS INTEGER NO-UNDO.
  44. DEFINE VARIABLE iZeile AS INTEGER NO-UNDO.
  45. DEFINE VARIABLE iZusZZ AS INTEGER NO-UNDO.
  46. DEFINE VARIABLE dDatum AS DATE NO-UNDO.
  47. DEFINE VARIABLE cZeile AS CHARACTER NO-UNDO.
  48. DEFINE VARIABLE cKopf AS CHARACTER NO-UNDO EXTENT 50.
  49. DEFINE VARIABLE cRabText AS CHARACTER NO-UNDO FORMAT "x(25)".
  50. DEFINE VARIABLE cZusText AS CHARACTER NO-UNDO FORMAT "x(25)".
  51. DEFINE VARIABLE cEpzText AS CHARACTER NO-UNDO FORMAT "x(25)".
  52. DEFINE VARIABLE lOpen AS LOGICAL NO-UNDO.
  53. DEFINE VARIABLE lMutation AS LOGICAL NO-UNDO INIT FALSE.
  54. DEFINE VARIABLE lMailLS AS LOGICAL NO-UNDO INIT FALSE.
  55. DEFINE VARIABLE lFirst AS LOGICAL NO-UNDO.
  56. DEFINE VARIABLE lDrucken AS LOGICAL NO-UNDO.
  57. { properties.i }
  58. { incl/ttdruckparam.i }
  59. { incl/ttsendmail.i }
  60. DEFINE STREAM out_Stream.
  61. DEFINE BUFFER bAufko FOR Aufko .
  62. DEFINE BUFFER bAufze FOR Aufze .
  63. DEFINE BUFFER bTabel FOR Tabel .
  64. DEFINE BUFFER bArtst FOR Artst .
  65. DEFINE BUFFER bSchrift FOR Schrift .
  66. DEFINE BUFFER bDrucker FOR Drucker .
  67. DEFINE BUFFER bSteuer FOR Steuer .
  68. DEFINE BUFFER bDebst FOR Debst .
  69. DEFINE BUFFER bAdresse FOR Adresse .
  70. DEFINE BUFFER bLotLager FOR LotLager .
  71. DEFINE BUFFER bHoReLager FOR HoReLager.
  72. DEFINE TEMP-TABLE tAufze NO-UNDO LIKE Aufze
  73. FIELD Platz AS INTEGER
  74. FIELD Lagort AS CHARACTER
  75. FIELD cMutArt AS CHARACTER
  76. INDEX tAufze-k1 IS PRIMARY
  77. Platz
  78. Lagort
  79. Pos
  80. INDEX tAufze-k2
  81. Firma
  82. Aufnr
  83. Pos.
  84. DEFINE BUFFER btAufze FOR tAufze.
  85. DEFINE TEMP-TABLE zAufze LIKE tAufze.
  86. DEFINE TEMP-TABLE tRuestAuf LIKE RuestAuf.
  87. DEFINE VARIABLE htRuestAuf AS HANDLE NO-UNDO.
  88. DEFINE VARIABLE hrawTable AS HANDLE NO-UNDO.
  89. htRuestAuf = TEMP-TABLE tRuestAuf:DEFAULT-BUFFER-HANDLE.
  90. hrawTable = BUFFER rawTable:HANDLE.
  91. DEFINE TEMP-TABLE tDrucker NO-UNDO
  92. FIELD Drucker AS CHARACTER.
  93. DEFINE TEMP-TABLE tSchrift NO-UNDO LIKE Schrift
  94. FIELD iPlatz AS INTEGER
  95. FIELD Schacht AS INTEGER
  96. FIELD Anzahl AS INTEGER
  97. FIELD iRecid AS RECID
  98. INDEX tSchrift-k1 IS PRIMARY
  99. iPlatz
  100. Schname
  101. Schbild.
  102. DEFINE TEMP-TABLE tTabTexte
  103. FIELD cRecArt AS CHARACTER
  104. FIELD iZeile AS INTEGER
  105. FIELD cFeld1 AS CHARACTER
  106. FIELD cFeld2 AS CHARACTER
  107. FIELD cFeld3 AS CHARACTER
  108. FIELD iFeld1 AS INTEGER
  109. FIELD iFeld2 AS INTEGER
  110. FIELD iFeld3 AS INTEGER
  111. INDEX tTabTexte-k1 IS PRIMARY
  112. cRecArt
  113. iZeile.
  114. DEFINE TEMP-TABLE tLagerorte
  115. FIELD iPrio AS INTEGER
  116. FIELD Art AS INTEGER
  117. FIELD Artnr AS INTEGER
  118. FIELD Inhalt AS INTEGER
  119. FIELD Jahr AS INTEGER
  120. FIELD cSort AS CHARACTER
  121. FIELD HoReLager_Id AS INTEGER
  122. FIELD rHoReLager AS RECID
  123. FIELD rLotLager AS RECID
  124. FIELD Lotnr AS CHARACTER
  125. FIELD Verfall AS DATE
  126. FIELD Bestand AS INTEGER
  127. FIELD Platz AS INTEGER
  128. INDEX tLagerorte-k1 IS PRIMARY
  129. Artnr
  130. Inhalt
  131. Jahr
  132. iPrio
  133. Art
  134. cSort.
  135. /* _UIB-CODE-BLOCK-END */
  136. &ANALYZE-RESUME
  137. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  138. /* ******************** Preprocessor Definitions ******************** */
  139. &Scoped-define PROCEDURE-TYPE Procedure
  140. &Scoped-define DB-AWARE no
  141. /* _UIB-PREPROCESSOR-BLOCK-END */
  142. &ANALYZE-RESUME
  143. /* ************************ Function Prototypes ********************** */
  144. &IF DEFINED(EXCLUDE-getLogfileName) = 0 &THEN
  145. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getLogfileName Procedure
  146. FUNCTION getLogfileName RETURNS CHARACTER
  147. ( /* parameter-definitions */ ) FORWARD.
  148. /* _UIB-CODE-BLOCK-END */
  149. &ANALYZE-RESUME
  150. &ENDIF
  151. &IF DEFINED(EXCLUDE-putStream) = 0 &THEN
  152. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD putStream Procedure
  153. FUNCTION putStream RETURNS LOGICAL
  154. (ipAttrib AS CHARACTER,
  155. ipAnzZeilen AS INTEGER,
  156. INPUT-OUTPUT ipZeile AS CHARACTER) FORWARD.
  157. /* _UIB-CODE-BLOCK-END */
  158. &ANALYZE-RESUME
  159. &ENDIF
  160. /* *********************** Procedure Settings ************************ */
  161. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  162. /* Settings for THIS-PROCEDURE
  163. Type: Procedure
  164. Allow:
  165. Frames: 0
  166. Add Fields to: Neither
  167. Other Settings: CODE-ONLY COMPILE
  168. */
  169. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  170. /* ************************* Create Window ************************** */
  171. &ANALYZE-SUSPEND _CREATE-WINDOW
  172. /* DESIGN Window definition (used by the UIB)
  173. CREATE WINDOW Procedure ASSIGN
  174. HEIGHT = 15
  175. WIDTH = 60.
  176. /* END WINDOW DEFINITION */
  177. */
  178. &ANALYZE-RESUME
  179. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
  180. /* *************************** Main Block *************************** */
  181. DEFINE VARIABLE cPrinters AS CHARACTER NO-UNDO.
  182. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  183. DEFINE VARIABLE kRecid AS RECID NO-UNDO.
  184. DEFINE VARIABLE tRecid AS RECID NO-UNDO.
  185. DEFINE VARIABLE cRetValue AS CHARACTER NO-UNDO.
  186. DEFINE VARIABLE iCodeI AS INTEGER NO-UNDO.
  187. DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO.
  188. DEFINE BUFFER dTabel FOR Tabel.
  189. DEFINE BUFFER brawTable FOR rawTable.
  190. SAktiv = DYNAMIC-FUNCTION('getSuperaktiv':U) NO-ERROR.
  191. IF SAktiv = ? THEN SAktiv = FALSE.
  192. IF SAktiv THEN
  193. DO:
  194. AdFirma = DYNAMIC-FUNCTION('getAdMandant':U) NO-ERROR.
  195. FBFirma = DYNAMIC-FUNCTION('getFBMandant':U) NO-ERROR.
  196. Firma = DYNAMIC-FUNCTION('getMandant':U) NO-ERROR.
  197. Progname = DYNAMIC-FUNCTION('makeProgname':U, INPUT THIS-PROCEDURE ) NO-ERROR.
  198. cUser = DYNAMIC-FUNCTION('getBenutzer') NO-ERROR.
  199. cLogName = DYNAMIC-FUNCTION('getLogFileName':U) NO-ERROR.
  200. lBatch = DYNAMIC-FUNCTION('getBatch':U) NO-ERROR.
  201. END.
  202. EMPTY TEMP-TABLE tDrucker.
  203. EMPTY TEMP-TABLE tSchrift.
  204. cPrinters = SESSION:GET-PRINTERS().
  205. DO ix = 1 TO NUM-ENTRIES(cPrinters, ','):
  206. CREATE tDrucker.
  207. ASSIGN
  208. tDrucker.Drucker = ENTRY(ix, cPrinters, ',').
  209. END.
  210. FIND bSteuer NO-LOCK
  211. WHERE bSteuer.Firma = Firma.
  212. TABELLE:
  213. DO WHILE TRUE:
  214. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  215. FIND FIRST bTabel NO-LOCK
  216. WHERE bTabel.Firma = Firma
  217. AND bTabel.RecArt = 'AUFDRUCK'
  218. AND bTabel.CodeI > iCodeI
  219. AND bTabel.Bez1 = ''
  220. AND bTabel.Int_2 = 1 NO-ERROR.
  221. IF NOT AVAILABLE bTabel THEN LEAVE TABELLE.
  222. tRecid = RECID(bTabel).
  223. iCodeI = bTabel.CodeI.
  224. FIND bTabel EXCLUSIVE-LOCK WHERE RECID(bTabel) = tRecid NO-WAIT NO-ERROR.
  225. IF NOT AVAILABLE bTabel AND
  226. LOCKED bTabel THEN
  227. DO:
  228. RELEASE bTabel.
  229. FIND Tabel NO-LOCK WHERE RECID(Tabel) = tRecid NO-ERROR.
  230. IF NOT AVAILABLE Tabel THEN NEXT.
  231. cMessage = SUBSTITUTE('Tabel LOCKED RecArt &1, CodeI &2, Aufnr &3, Int_2 &4, Drucker &5',
  232. Tabel.RecArt, Tabel.CodeI, Tabel.Int_1, Tabel.Int_2, cPrinters).
  233. RUN writeLogfile.p ( ProgName, cLogName, cMessage ) NO-ERROR.
  234. RELEASE Tabel.
  235. NEXT.
  236. END.
  237. IF NOT AVAILABLE bTabel THEN NEXT.
  238. bTabel.Bez1 = 'A'.
  239. lDrucken = bTabel.Flag_3.
  240. cMessage = SUBSTITUTE('Tabel Flag_3 = &1 ', bTabel.Flag_3 ).
  241. RUN writeLogfile.p ( ProgName, cLogName, cMessage ) NO-ERROR.
  242. FIND bAufko NO-LOCK
  243. WHERE bAufko.Firma = bTabel.Firma
  244. AND bAufko.Aufnr = bTabel.Int_1 NO-ERROR.
  245. IF NOT AVAILABLE bAufko THEN
  246. DO:
  247. DELETE bTabel.
  248. RELEASE bTabel.
  249. NEXT.
  250. END.
  251. iAufnr = bAufko.Aufnr.
  252. kRecid = RECID(bAufko).
  253. iRuestArt = bTabel.Int_3.
  254. cRetValue = ''.
  255. DO WHILE TRUE:
  256. RUN LAGERORTE_ERMITTELN.
  257. RUN FUELLEN_tAufze.
  258. FIND FIRST tAufze WHERE tAufze.Artnr > 0 NO-ERROR.
  259. IF NOT AVAILABLE tAufze THEN
  260. DO:
  261. DELETE bTabel.
  262. RELEASE bTabel.
  263. NEXT TABELLE.
  264. END.
  265. RUN writeLogfile.p ( ProgName, cLogName, '' ) NO-ERROR.
  266. cMessage = SUBSTITUTE('Auftragsschein &1 in Batch = &3 mit &2 gestartet', iAufnr, cPrinters, lBatch).
  267. RUN writeLogfile.p ( ProgName, cLogName, cMessage ) NO-ERROR.
  268. FIND bAufko WHERE RECID(bAufko) = kRecid.
  269. RUN AUFTRAGSSCHEIN.
  270. cRetValue = RETURN-VALUE.
  271. cMessage = SUBSTITUTE('Auftragsschein &1 beendet mit Return-Value = &2', iAufnr, cRetValue).
  272. RUN writeLogfile.p ( ProgName, cLogName, cMessage ) NO-ERROR.
  273. IF cRetValue <> '' THEN LEAVE.
  274. RUN writeLogfile.p ( ProgName, cLogName, '' ) NO-ERROR.
  275. cMessage = SUBSTITUTE('Rüstschein &1 in Batch = &3 mit &2 gestartet', iAufnr, cPrinters, lBatch).
  276. RUN writeLogfile.p ( ProgName, cLogName, cMessage ) NO-ERROR.
  277. FIND bAufko WHERE RECID(bAufko) = kRecid.
  278. RUN RUESTSCHEIN.
  279. cRetValue = RETURN-VALUE.
  280. cMessage = SUBSTITUTE('Ruestschein &1 beendet mit Return-Value = &2', iAufnr, cRetValue).
  281. RUN writeLogfile.p ( ProgName, cLogName, cMessage ) NO-ERROR.
  282. LEAVE.
  283. END.
  284. IF cRetValue <> '' THEN
  285. DO:
  286. bTabel.Bez1 = 'F'.
  287. RELEASE bTabel.
  288. NEXT TABELLE.
  289. END.
  290. IF AVAILABLE bTabel THEN
  291. DO:
  292. FIND Aufko EXCLUSIVE-LOCK WHERE RECID(Aufko) = kRecid NO-WAIT NO-ERROR.
  293. IF AVAILABLE Aufko THEN Aufko.Gedruckt = TRUE.
  294. RELEASE Aufko.
  295. DELETE bTabel.
  296. RELEASE bTabel.
  297. END.
  298. LEAVE.
  299. END.
  300. IF NOT lMailLS THEN LEAVE.
  301. RUN START_HTML_DOKUMENT ( iAufnr ).
  302. LEAVE.
  303. END.
  304. /* _UIB-CODE-BLOCK-END */
  305. &ANALYZE-RESUME
  306. /* ********************** Internal Procedures *********************** */
  307. &IF DEFINED(EXCLUDE-AUFTRAGSSCHEIN) = 0 &THEN
  308. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGSSCHEIN Procedure
  309. PROCEDURE AUFTRAGSSCHEIN :
  310. /*------------------------------------------------------------------------------*/
  311. /* Purpose: */
  312. /* Parameters: <none> */
  313. /* Notes: */
  314. /*------------------------------------------------------------------------------*/
  315. DEFINE VARIABLE cDokArt AS CHARACTER NO-UNDO.
  316. DEFINE VARIABLE hbAufko AS HANDLE NO-UNDO.
  317. DEFINE VARIABLE htTabTexte AS HANDLE NO-UNDO.
  318. DEFINE VARIABLE nFakBetr AS DECIMAL NO-UNDO.
  319. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  320. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  321. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  322. cDokArt = 'AUFTRAGSSCHEIN'.
  323. iSeite = 0.
  324. iZeile = 0.
  325. iPlatz = 0.
  326. cZeile = ''.
  327. lOpen = FALSE.
  328. dDatum = bAufko.Lief_Datum.
  329. RUN LIBILD ( cDokArt ).
  330. hbAufko = BUFFER bAufko:HANDLE.
  331. htTabTexte = TEMP-TABLE tTabTexte:DEFAULT-BUFFER-HANDLE.
  332. RUN CREATE_TABTEXTE ( INPUT hbAufko, INPUT-OUTPUT htTabTexte ) NO-ERROR.
  333. EMPTY TEMP-TABLE tSchrift.
  334. DO WHILE TRUE:
  335. FIND FIRST RuestDaten NO-LOCK
  336. WHERE RuestDaten.Firma = bAufko.Firma
  337. AND RuestDaten.RuestArt = iRuestArt
  338. AND Ruestdaten.AS_Doku = TRUE NO-ERROR.
  339. IF AVAILABLE RuestDaten THEN
  340. DO:
  341. iPlatz = RuestDaten.Platz.
  342. RUN GET_DRUCKERDATEN ( iPlatz, RuestDaten.AS_Drucker, RuestDaten.AS_Schrift ).
  343. IF RETURN-VALUE <> '' THEN RETURN RETURN-VALUE.
  344. FIND FIRST tSchrift WHERE tSchrift.iPlatz = iPlatz.
  345. ASSIGN
  346. tSchrift.Schzztot = RuestDaten.AS_TotZZ
  347. tSchrift.Schzzbeg = RuestDaten.AS_KopfZZ
  348. tSchrift.Schzzend = RuestDaten.AS_FussZZ
  349. tSchrift.Schacht = RuestDaten.AS_Schacht
  350. tSchrift.Anzahl = RuestDaten.AS_Anzahl.
  351. LEAVE.
  352. END.
  353. LEAVE.
  354. END.
  355. EMPTY TEMP-TABLE zAufze.
  356. CREATE zAufze.
  357. FIND bAdresse NO-LOCK USE-INDEX Adresse-k1
  358. WHERE bAdresse.Firma = AdFirma
  359. AND bAdresse.Knr = bAufko.Knr NO-ERROR.
  360. cDateiName = SESSION:TEMP-DIR
  361. + 'AuftragsSchein'
  362. + STRING(TIME,'999999')
  363. + STRING(RANDOM(1, 999999),'999999')
  364. + '.txt'.
  365. OUTPUT STREAM out_Stream TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  366. lOpen = TRUE.
  367. RUN AUFTRAGSSCHEIN_KOPF.
  368. i2 = 0.
  369. FOR EACH tAufze NO-LOCK
  370. WHERE tAufze.Platz = 0:
  371. FIND FIRST zAufze.
  372. BUFFER-COPY tAufze TO zAufze.
  373. RUN AUFTRAGSSCHEIN_ARTIKELZEILE.
  374. i2 = i2 + 1.
  375. END.
  376. IF i2 > 0 THEN
  377. DO:
  378. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  379. END.
  380. FOR EACH tAufze NO-LOCK
  381. WHERE tAufze.Platz > 0
  382. AND tAufze.Platz < 99
  383. BY tAufze.Platz
  384. BY tAufze.Lagort
  385. BY tAufze.Pos :
  386. FIND FIRST zAufze.
  387. BUFFER-COPY tAufze TO zAufze.
  388. IF (tSchrift.Schzztot - iZeile - 2) < tSchrift.Schzzend THEN
  389. DO:
  390. RUN AUFTRAGSSCHEIN_KOPF.
  391. END.
  392. RUN AUFTRAGSSCHEIN_ARTIKELZEILE.
  393. nFakBetr = nFakBetr + tAufze.Net_Betr.
  394. END.
  395. PUT STREAM Out_Stream CONTROL bDrucker.Dru15cpi.
  396. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  397. SUBSTRING(cZeile,040) = SUBSTRING(FormText[15],21,20).
  398. SUBSTRING(cZeile,100) = STRING(nFakBetr,"->>>,>>9.99").
  399. DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  400. PUT STREAM Out_Stream CONTROL bDrucker.Dru12cpi.
  401. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  402. IF BAufko.Auf_Text <> '' THEN
  403. DO:
  404. cString = BAufko.Auf_Text.
  405. i1 = NUM-ENTRIES(cString, CHR(10)).
  406. IF i1 > 0 THEN iZusZZ = iZusZZ + i1 + 1.
  407. END.
  408. IF iZusZZ > 0 THEN iZusZZ = iZusZZ + 2.
  409. IF (tSchrift.Schzztot - iZeile - iZusZZ) < tSchrift.Schzzend THEN
  410. DO:
  411. RUN AUFTRAGSSCHEIN_KOPF.
  412. END.
  413. /* Auftragstext ------------------------------------------------------ */
  414. cString = BAufko.Auf_Text.
  415. IF cString <> '' THEN
  416. DO:
  417. i2 = 0.
  418. DO i1 = 1 TO NUM-ENTRIES(cString, CHR(10)):
  419. SUBSTRING(cZeile,005) = ENTRY(i1, cString, CHR(10)).
  420. DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  421. i2 = i2 + 1.
  422. END.
  423. END.
  424. IF i2 > 0 THEN
  425. DO:
  426. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  427. END.
  428. FOR EACH tAufze NO-LOCK
  429. WHERE tAufze.Platz = 99:
  430. FIND FIRST zAufze.
  431. BUFFER-COPY tAufze TO zAufze.
  432. RUN AUFTRAGSSCHEIN_ARTIKELZEILE.
  433. i2 = i2 + 1.
  434. END.
  435. IF lOpen = TRUE THEN
  436. DO:
  437. OUTPUT STREAM out_Stream CLOSE.
  438. lOpen = FALSE.
  439. RUN DRUCKAUSGABE NO-ERROR.
  440. IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
  441. END.
  442. RETURN ''.
  443. END PROCEDURE.
  444. /* _UIB-CODE-BLOCK-END */
  445. &ANALYZE-RESUME
  446. &ENDIF
  447. &IF DEFINED(EXCLUDE-AUFTRAGSSCHEIN_ARTIKELZEILE) = 0 &THEN
  448. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGSSCHEIN_ARTIKELZEILE Procedure
  449. PROCEDURE AUFTRAGSSCHEIN_ARTIKELZEILE :
  450. /*------------------------------------------------------------------------------*/
  451. /* Purpose: */
  452. /* Parameters: <none> */
  453. /* Notes: */
  454. /*------------------------------------------------------------------------------*/
  455. DEFINE VARIABLE dRabWert AS DECIMAL NO-UNDO.
  456. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  457. FIND FIRST zAufze NO-LOCK.
  458. PUT STREAM Out_Stream CONTROL bDrucker.Dru15cpi.
  459. DO WHILE zAufze.Artnr = 0:
  460. SUBSTRING(cZeile,040) = STRING(zAufze.Bez1,"x(30)").
  461. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  462. IF zAufze.Bez2 <> '' THEN
  463. DO:
  464. SUBSTRING(cZeile,040) = STRING(zAufze.Bez2,"x(30)").
  465. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  466. END.
  467. RETURN.
  468. END.
  469. FIND Artst NO-LOCK
  470. WHERE Artst.Firma = zAufze.Firma
  471. AND Artst.Artnr = zAufze.Artnr
  472. AND Artst.Inhalt = zAufze.Inhalt
  473. AND Artst.Jahr = zAufze.Jahr.
  474. FIND VGebinde NO-LOCK
  475. WHERE VGebinde.Firma = bAufko.Firma
  476. AND VGebinde.Geb_Cd = zAufze.VGeb_Cd NO-ERROR.
  477. FIND KGebinde NO-LOCK
  478. WHERE KGebinde.Firma = bAufko.Firma
  479. AND KGebinde.Geb_Cd = zAufze.KGeb_Cd NO-ERROR.
  480. SUBSTRING(cZeile,003) = STRING(KGebinde.KBez,"x(10)").
  481. IF zAufze.VGeb_Be <> 0 THEN
  482. DO:
  483. SUBSTRING(cZeile,015) = STRING(zAufze.VGeb_Be,'->>>')
  484. + 'x '
  485. + STRING(VGebinde.KBez,'x(10)').
  486. END.
  487. SUBSTRING(cZeile,031) = STRING(zAufze.MGeli ,"->>,>>9").
  488. SUBSTRING(cZeile,040) = STRING(zAufze.Bez1 ,"x(30)").
  489. IF zAufze.Jahr > 9 THEN SUBSTRING(cZeile,069) = STRING(zAufze.Jahr,"9999").
  490. IF zAufze.Alk_Gehalt <> 0 THEN SUBSTRING(cZeile,074) = STRING(zAufze.Alk_Gehalt,"zz9.9%").
  491. SUBSTRING(cZeile,082) = STRING(zAufze.Artnr ,"999999").
  492. SUBSTRING(cZeile,090) = STRING(zAufze.Preis ,">>,>>9.999").
  493. SUBSTRING(cZeile,100) = STRING(zAufze.Bru_Betr ,"->>>,>>9.99").
  494. SUBSTRING(cZeile,112) = STRING(zAufze.WuCd ,"z9").
  495. cZeile = SUBSTRING(cZeile,001,014)
  496. + bDrucker.Drufettb
  497. + SUBSTRING(cZeile,015,016)
  498. + bDrucker.Drufette
  499. + SUBSTRING(cZeile,031).
  500. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  501. IF zAufze.Bez2 <> '' THEN
  502. DO:
  503. SUBSTRING(cZeile,040) = STRING(zAufze.Bez2,"x(30)").
  504. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  505. END.
  506. IF zAufze.Aktion THEN
  507. DO:
  508. SUBSTRING(cZeile,040) = STRING(zAufze.Aktion_Text,"x(30)").
  509. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  510. END.
  511. DO WHILE TRUE:
  512. IF zAufze.Rab_Betr = 0 THEN LEAVE.
  513. dRabWert = ABSOLUTE(zAufze.Rab_Wert).
  514. IF zAufze.Rab_Art = 3 THEN cString = cEpzText.
  515. ELSE
  516. DO:
  517. IF zAufze.Rab_Betr < 0 THEN cString = cZusText.
  518. IF zAufze.Rab_Betr > 0 THEN cString = cRabText.
  519. END.
  520. SUBSTRING(cZeile,040) = TRIM(cString).
  521. IF zAufze.Rab_Art = 1
  522. THEN SUBSTRING(cZeile,095) = STRING(dRabWert,"->9.9%").
  523. IF zAufze.Rab_Art = 2 OR
  524. zAufze.Rab_Art = 3
  525. THEN SUBSTRING(cZeile,095) = STRING(dRabWert,"-9.99").
  526. SUBSTRING(cZeile,100) = STRING(- zAufze.Rab_Betr ,"->>>,>>9.99").
  527. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  528. LEAVE.
  529. END.
  530. DO WHILE TRUE:
  531. IF zAufze.Zus_Betr = 0 THEN LEAVE.
  532. dRabWert = ABSOLUTE(zAufze.Zus_Wert).
  533. IF zAufze.Zus_Art = 3 THEN cString = cEpzText.
  534. ELSE
  535. DO:
  536. IF zAufze.Zus_Betr < 0 THEN cString = cRabText.
  537. IF zAufze.Zus_Betr > 0 THEN cString = cZusText.
  538. END.
  539. SUBSTRING(cZeile,040) = TRIM(cString).
  540. IF zAufze.Zus_Art = 1
  541. THEN SUBSTRING(cZeile,095) = STRING(dRabWert,"->9.9%").
  542. IF zAufze.Zus_Art = 2 OR
  543. zAufze.Zus_Art = 3
  544. THEN SUBSTRING(cZeile,095) = STRING(dRabWert,"-9.99").
  545. SUBSTRING(cZeile,100) = STRING(+ zAufze.Zus_Betr ,"->>>,>>9.99").
  546. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  547. LEAVE.
  548. END.
  549. END PROCEDURE.
  550. /* _UIB-CODE-BLOCK-END */
  551. &ANALYZE-RESUME
  552. &ENDIF
  553. &IF DEFINED(EXCLUDE-AUFTRAGSSCHEIN_KOPF) = 0 &THEN
  554. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGSSCHEIN_KOPF Procedure
  555. PROCEDURE AUFTRAGSSCHEIN_KOPF :
  556. /*------------------------------------------------------------------------------*/
  557. /* Purpose: */
  558. /* Parameters: <none> */
  559. /* Notes: */
  560. /*------------------------------------------------------------------------------*/
  561. DEFINE VARIABLE kk AS INTEGER NO-UNDO.
  562. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  563. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  564. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  565. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  566. DEFINE VARIABLE cAufnr AS CHARACTER NO-UNDO.
  567. DEFINE VARIABLE cCodeArt AS CHARACTER INIT 'P0210100' NO-UNDO.
  568. DEFINE VARIABLE cBarcode AS CHARACTER NO-UNDO.
  569. RUN NEUE_SEITE.
  570. IF iSeite = 1 THEN
  571. DO:
  572. FIND bDebst NO-LOCK USE-INDEX Debst-k1
  573. WHERE bDebst.Firma = bAufko.Firma
  574. AND bDebst.Knr = bAufko.Knr NO-ERROR.
  575. END.
  576. ASSIGN
  577. cKopf = ''
  578. cZeile = ''
  579. kk = 0.
  580. IF bAufko.Adresse[05] <> '' THEN
  581. DO:
  582. kk = kk + 2.
  583. DO ix = 1 TO 5:
  584. IF ix = 5 THEN SUBSTRING(cZeile,003) = bDrucker.Drufettb + bAufko.Adresse[ix] + bDrucker.Drufette.
  585. ELSE SUBSTRING(cZeile,003) = bAufko.Adresse[ix].
  586. kk = kk + 1.
  587. cKopf[kk] = cZeile.
  588. cZeile = ''.
  589. END.
  590. END.
  591. ELSE
  592. DO:
  593. DO ix = 5 TO 11:
  594. IF ix = 11 THEN SUBSTRING(cZeile,003) = bDrucker.Drufettb + bAdresse.Anschrift[ix] + bDrucker.Drufette.
  595. ELSE SUBSTRING(cZeile,003) = bAdresse.Anschrift[ix].
  596. kk = kk + 1.
  597. cKopf[kk] = cZeile.
  598. cZeile = ''.
  599. END.
  600. END.
  601. IF iSeite = 1 THEN
  602. DO:
  603. cAufnr = STRING(bAufko.Aufnr,'9999999').
  604. RUN BAR-CODE-39 ( INPUT cAufnr ,
  605. INPUT cCodeArt,
  606. OUTPUT cBarCode ).
  607. kk = kk + 2.
  608. SUBSTRING(cKopf[kk],003) = CHR(27) + "&f0S" /* Cursorposition speichern */
  609. + CHR(27) + "*p" /* Cursor neu Positionieren anhand der Zeile */
  610. + STRING(((kk + iZeile) * 50),"9999") + "Y"
  611. + cBarcode
  612. + CHR(027) + "&f1S". /* Cusrorposition zurückholen */
  613. END.
  614. kk = 12.
  615. IF bAufko.Auf_Tot >= 0
  616. THEN SUBSTRING(cKopf[kk],067) = TRIM(SUBSTRING(FormText[02],01,20)).
  617. ELSE SUBSTRING(cKopf[kk],067) = TRIM(SUBSTRING(FormText[02],21,20)).
  618. cKopf[kk] = cKopf[kk] + STRING(bAufko.Aufnr,"zz999999").
  619. cKopf[kk] = SUBSTRING(cKopf[kk],001,066)
  620. + bDrucker.Drufettb
  621. + SUBSTRING(cKopf[kk],067)
  622. + bDrucker.Drufette.
  623. kk = kk + 2.
  624. IF iSeite = 1 THEN
  625. DO:
  626. FIND FIRST tTabtexte NO-LOCK
  627. WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR.
  628. IF AVAILABLE tTabTexte THEN
  629. DO:
  630. SUBSTRING(cKopf[kk],003) = TRIM(SUBSTRING(FormText[19],01,20))
  631. + TRIM(bDrucker.Drufettb)
  632. + ' '
  633. + tTabTexte.cFeld3
  634. + TRIM(bDrucker.Drufette).
  635. cZeile = ''.
  636. kk = kk + 1.
  637. END.
  638. FIND FIRST tTabtexte NO-LOCK
  639. WHERE tTabTexte.cRecArt = 'WISO' NO-ERROR.
  640. IF AVAILABLE tTabTexte THEN
  641. DO:
  642. SUBSTRING(cKopf[kk],003) = TRIM(SUBSTRING(FormText[19],21,20))
  643. + TRIM(bDrucker.Drufettb)
  644. + ' '
  645. + tTabTexte.cFeld3
  646. + TRIM(bDrucker.Drufette).
  647. cZeile = ''.
  648. kk = kk + 1.
  649. END.
  650. SUBSTRING(cKopf[kk],003) = TRIM(SUBSTRING(FormText[07],41,20))
  651. + " "
  652. + STRING(bAufko.Auf_Datum,"99.99.9999").
  653. SUBSTRING(cKopf[kk],034) = TRIM(SUBSTRING(FormText[08],01,20))
  654. + STRING(bAufko.Knr,"zzzzzzz999999").
  655. SUBSTRING(cKopf[kk],067) = TRIM(SUBSTRING(FormText[07],01,20))
  656. + " "
  657. + STRING(dDatum,"99.99.9999").
  658. cZeile = ''.
  659. kk = kk + 1.
  660. SUBSTRING(cKopf[kk],003) = TRIM(SUBSTRING(FormText[09],21,20))
  661. + " "
  662. + STRING(bAufko.Lief_Datum,"99.99.9999").
  663. SUBSTRING(cKopf[kk],034) = TRIM(SUBSTRING(FormText[08],21,20))
  664. + STRING(bAufko.Gewicht,"z,zzz,zz9.999-").
  665. SUBSTRING(cKopf[kk],067) = TRIM(SUBSTRING(FormText[20],01,20))
  666. + STRING(iSeite,'z9').
  667. cKopf[kk] = SUBSTRING(cKopf[kk],01,33)
  668. + bDrucker.Drufettb
  669. + SUBSTRING(cKopf[kk],34,33)
  670. + bDrucker.Drufette
  671. + SUBSTRING(cKopf[kk],67).
  672. cZeile = ''.
  673. kk = kk + 1.
  674. SUBSTRING(cKopf[kk],003) = TRIM(SUBSTRING(FormText[07],21,20))
  675. + " "
  676. + STRING(bAufko.U_Ref,'x(20)').
  677. SUBSTRING(cKopf[kk],067) = TRIM(SUBSTRING(FormText[08],41,20))
  678. + " "
  679. + bAdresse.Tel-1.
  680. cZeile = ''.
  681. END.
  682. ELSE
  683. DO:
  684. kk = kk + 2.
  685. SUBSTRING(cKopf[kk],067) = TRIM(SUBSTRING(FormText[20],01,20))
  686. + STRING(iSeite,'z9').
  687. kk = kk + 1.
  688. END.
  689. kk = kk + 2.
  690. cZeile = 'Inhalt Gebinde Menge Bezeichnung JG Alk% ArtNr Preis Betrag C'.
  691. SUBSTRING(cKopf[kk],003) = bDrucker.Druunterb
  692. + cZeile
  693. + bDrucker.Druuntere.
  694. SUBSTRING(cKopf[kk - 1],003) = bDrucker.Druunterb
  695. + FILL(' ', LENGTH(cZeile))
  696. + bDrucker.Druuntere.
  697. cKopf[kk - 1] = bDrucker.Dru15cpi + bDrucker.Drufettb
  698. + cKopf[kk - 1]
  699. + bDrucker.Drufettb + bDrucker.Dru12cpi.
  700. cKopf[kk] = bDrucker.Dru15cpi + bDrucker.Drufettb
  701. + cKopf[kk]
  702. + bDrucker.Drufettb + bDrucker.Dru12cpi.
  703. kk = kk + 1.
  704. cZeile = ''.
  705. DO ix = 1 TO kk:
  706. cZeile = cKopf[ix].
  707. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  708. END.
  709. IF iSeite = 1 AND
  710. bAufko.Abh_Text <> '' THEN
  711. DO:
  712. cString = bAufko.Abh_Text.
  713. i2 = 0.
  714. DO i1 = 1 TO NUM-ENTRIES(cString, CHR(10)):
  715. SUBSTRING(cZeile,003) = ENTRY(i1, cString, CHR(10)).
  716. DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile ) NO-ERROR.
  717. i2 = i2 + 1.
  718. END.
  719. IF i2 > 0 THEN
  720. DO:
  721. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  722. END.
  723. END.
  724. END PROCEDURE.
  725. /* _UIB-CODE-BLOCK-END */
  726. &ANALYZE-RESUME
  727. &ENDIF
  728. &IF DEFINED(EXCLUDE-BAR-CODE-39) = 0 &THEN
  729. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BAR-CODE-39 Procedure
  730. PROCEDURE BAR-CODE-39 :
  731. /*------------------------------------------------------------------------------*/
  732. /* Purpose: */
  733. /* Parameters: <none> */
  734. /* Notes: */
  735. /*------------------------------------------------------------------------------*/
  736. DEFINE INPUT PARAMETER ipWert AS CHARACTER NO-UNDO.
  737. DEFINE INPUT PARAMETER ipCodeArt AS CHARACTER NO-UNDO.
  738. DEFINE OUTPUT PARAMETER opBarCode AS CHARACTER NO-UNDO.
  739. DEFINE VARIABLE clr AS LOG INIT TRUE NO-UNDO.
  740. DEFINE VARIABLE wk AS CHARACTER NO-UNDO.
  741. DEFINE VARIABLE drw AS CHARACTER NO-UNDO.
  742. DEFINE VARIABLE cDir AS CHARACTER NO-UNDO.
  743. DEFINE VARIABLE k AS CHARACTER NO-UNDO.
  744. DEFINE VARIABLE att AS CHARACTER NO-UNDO.
  745. DEFINE VARIABLE kod AS CHARACTER NO-UNDO
  746. INIT "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.Ø *$/+%".
  747. att =
  748. "100100001001100001101100000000110001100110000001110000000100101100100100"
  749. + "001100100000110100100001001001001001101001000000011001100011000001011000"
  750. + "000001101100001100001001100000011100100000011001000011101000010000010011"
  751. + "100010010001010010000000111100000110001000110000010110110000001011000001"
  752. + "111000000010010001110010000011010000010000101110000100011000100010010100"
  753. + "010101000010100010010001010000101010".
  754. DEFINE VARIABLE i AS INTEGER NO-UNDO.
  755. DEFINE VARIABLE j AS INTEGER NO-UNDO.
  756. DEFINE VARIABLE l AS INTEGER NO-UNDO.
  757. DEFINE VARIABLE brd AS INTEGER NO-UNDO.
  758. DEFINE VARIABLE jst AS INTEGER NO-UNDO.
  759. ASSIGN
  760. i = (IF SUBSTRING (ipCodeArt, 1, 1) = "P" THEN 1 ELSE 2)
  761. opBarCode = "~E&f0S~E*c100G"
  762. drw = SUBSTRING("ab" , i, 1)
  763. + SUBSTRING(ipCodeArt, 6)
  764. + SUBSTRING("ba" , i, 1)
  765. + "P"
  766. cDir = SUBSTRING("XY", i, 1)
  767. k = "*" + ipWert + "*" .
  768. DO i = 1 TO LENGTH(k):
  769. ASSIGN
  770. j = INDEX(kod, SUBSTRING (k, i, 1)) * 9 - 8
  771. wk = SUBSTRING (att, j, 9) + "0" .
  772. DO l = 1 TO 10:
  773. ASSIGN
  774. brd = IF SUBSTRING(wk,l,1) = "0" THEN 2 ELSE 4
  775. opBarCode = opBarCode
  776. + (IF clr THEN "~E*c" + SUBSTRING (ipCodeArt, brd, 2) + drw
  777. ELSE "~E*p+" + STRING(INTEGER(SUBSTRING(ipCodeArt, brd, 2))
  778. + jst) + cDir)
  779. jst = INTEGER (SUBSTRING (ipCodeArt, brd, 2))
  780. clr = NOT clr.
  781. END. /* of looping 1 to 10 */
  782. END. /* of going through string 'k' */
  783. ASSIGN
  784. opBarCode = opBarCode + "~E&f1S"
  785. wk = "".
  786. END PROCEDURE.
  787. /* _UIB-CODE-BLOCK-END */
  788. &ANALYZE-RESUME
  789. &ENDIF
  790. &IF DEFINED(EXCLUDE-CREATE_RUESTAUFTRAG) = 0 &THEN
  791. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_RUESTAUFTRAG Procedure
  792. PROCEDURE CREATE_RUESTAUFTRAG :
  793. /*------------------------------------------------------------------------------*/
  794. /* Purpose: */
  795. /* Parameters: <none> */
  796. /* Notes: */
  797. /*------------------------------------------------------------------------------*/
  798. DEFINE VARIABLE iSubPos AS INTEGER NO-UNDO.
  799. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
  800. DEFINE BUFFER bRuestAuf FOR RuestAuf.
  801. DEFINE BUFFER mTabel FOR Tabel.
  802. DISABLE TRIGGERS FOR LOAD OF RuestAuf.
  803. EMPTY TEMP-TABLE tRuestAuf.
  804. EMPTY TEMP-TABLE zAufze .
  805. FIND FIRST tAufze NO-ERROR.
  806. IF NOT AVAILABLE tAufze THEN RETURN.
  807. FIND bAufko NO-LOCK OF tAufze NO-ERROR.
  808. lMailLS = TRUE.
  809. IF bAufko.Auf_Sta > 1 THEN lMailLS = FALSE.
  810. IF bAufko.Fahrer = 0 THEN lMailLS = FALSE.
  811. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  812. FIND FIRST RuestAuf NO-LOCK
  813. WHERE RuestAuf.Firma = tAufze.Firma
  814. AND RuestAuf.Aufnr = tAufze.Aufnr NO-ERROR.
  815. lFirst = (IF AVAILABLE RuestAuf THEN FALSE ELSE TRUE).
  816. IF lFirst THEN lMailLS = FALSE.
  817. IF lFirst THEN
  818. DO:
  819. /* ------------------------------------------ */
  820. /* Erstmaliger Druck */
  821. /* ------------------------------------------ */
  822. FOR EACH tAufze:
  823. CREATE zAufze.
  824. BUFFER-COPY tAufze
  825. TO zAufze
  826. ASSIGN
  827. zAufze.cMutArt = 'NN'.
  828. END.
  829. LEAVE.
  830. END.
  831. FOR EACH RuestAuf NO-LOCK
  832. WHERE RuestAuf.Firma = tAufze.Firma
  833. AND RuestAuf.Aufnr = tAufze.Aufnr:
  834. /* ------------------------------------------ */
  835. /* Test auf RuestAuftragszeilen ohne Aufze */
  836. /* ------------------------------------------ */
  837. FIND Aufze NO-LOCK OF RuestAuf NO-ERROR.
  838. IF NOT AVAILABLE Aufze THEN
  839. DO:
  840. lMutation = TRUE.
  841. lRetVal = DYNAMIC-FUNCTION ('deleteRuestAuf':U, RECID(RuestAuf)) NO-ERROR.
  842. RELEASE RuestAuf.
  843. NEXT.
  844. END.
  845. CREATE tRuestAuf.
  846. BUFFER-COPY RuestAuf TO tRuestAuf.
  847. END.
  848. FOR EACH tAufze:
  849. CREATE zAufze.
  850. BUFFER-COPY tAufze
  851. TO zAufze.
  852. FIND FIRST tRuestAuf
  853. WHERE tRuestAuf.Firma = tAufze.Firma
  854. AND tRuestAuf.Aufnr = tAufze.Aufnr
  855. AND tRuestAuf.Pos = tAufze.Pos NO-ERROR.
  856. IF NOT AVAILABLE tRuestAuf THEN
  857. DO:
  858. zAufze.cMutArt = 'NN'.
  859. NEXT.
  860. END.
  861. IF tRuestAuf.lGeruestet AND
  862. tRuestAuf.MBest = zAufze.MBest AND
  863. tRuestAuf.Lagerort = zAufze.Lagort THEN NEXT.
  864. IF NOT tRuestAuf.lGeruestet AND
  865. tRuestAuf.MGeli = 0 AND
  866. tRuestAuf.Lagerort = zAufze.Lagort THEN NEXT.
  867. IF zAufze.MBest < tRuestAuf.MGeli THEN
  868. DO:
  869. FIND Aufze NO-LOCK OF tAufze.
  870. FIND RuestAuf NO-LOCK OF tRuestAuf.
  871. lRetVal = DYNAMIC-FUNCTION ('deleteRuestAuf':U, RECID(RuestAuf)) NO-ERROR.
  872. lRetVal = DYNAMIC-FUNCTION ('deleteAufLot':U , RECID(Aufze)) NO-ERROR.
  873. zAufze.cMutArt = 'NN'.
  874. NEXT.
  875. END.
  876. zAufze.cMutArt = 'M'.
  877. END.
  878. LEAVE.
  879. END.
  880. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  881. FOR EACH zAufze NO-LOCK
  882. WHERE zAufze.cMutArt <> '':
  883. FIND FIRST tLagerorte
  884. WHERE tlagerorte.Artnr = zAufze.Artnr
  885. AND tLagerorte.Inhalt = zAufze.Inhalt
  886. AND tLagerorte.Jahr = zAufze.Jahr.
  887. IF zAufze.cMutArt BEGINS 'N' THEN
  888. DO:
  889. CREATE RuestAuf.
  890. ASSIGN
  891. RuestAuf.Firma = zAufze.Firma
  892. RuestAuf.Aufnr = zAufze.Aufnr
  893. RuestAuf.Platz = tLagerorte.Platz
  894. RuestAuf.Pos = zAufze.Pos
  895. RuestAuf.SubPos = iSubPos
  896. RuestAuf.Artnr = zAufze.Artnr
  897. RuestAuf.Inhalt = zAufze.Inhalt
  898. RuestAuf.Jahr = zAufze.Jahr
  899. RuestAuf.Lagerort = tLagerorte.cSort
  900. RuestAuf.GGeb_Best = zAufze.GGeb_Be
  901. RuestAuf.VGeb_Best = zAufze.VGeb_Be
  902. RuestAuf.KGeb_Best = zAufze.KGeb_Be
  903. RuestAuf.lGeladen = FALSE
  904. RuestAuf.lGeruestet = FALSE
  905. RuestAuf.lLAGedruckt = FALSE
  906. RuestAuf.lLSGedruckt = FALSE
  907. RuestAuf.lPAGedruckt = FALSE
  908. RuestAuf.lRSGedruckt = FALSE
  909. RuestAuf.lWeiter = FALSE
  910. RuestAuf.MBest = zAufze.MBest
  911. RuestAuf.AnzPaletten = 0
  912. RuestAuf.iMenge = 0
  913. RuestAuf.GGeb_Geli = 0
  914. RuestAuf.VGeb_Geli = 0
  915. RuestAuf.KGeb_Geli = 0
  916. RuestAuf.MGeli = 0
  917. RuestAuf.RecidArtLager = ?
  918. RuestAuf.Verfall = ?
  919. RuestAuf.Lotnr = ''
  920. RuestAuf.RecidHoReLager = tLagerorte.rHoReLager
  921. RuestAuf.RecidLotLager = tLagerorte.rLotLager
  922. RuestAuf.iMenge = zAufze.KGeb_Be NO-ERROR.
  923. NEXT.
  924. END.
  925. IF zAufze.cMutArt = 'M' THEN
  926. DO:
  927. FIND FIRST RuestAuf
  928. WHERE RuestAuf.Firma = zAufze.Firma
  929. AND RuestAuf.Aufnr = zAufze.Aufnr
  930. AND RuestAuf.Pos = zAufze.Pos.
  931. ASSIGN
  932. RuestAuf.Lagerort = zAufze.Lagort
  933. RuestAuf.Platz = tLagerorte.Platz
  934. RuestAuf.MBest = zAufze.MBest
  935. RuestAuf.iMenge = zAufze.MBest
  936. RuestAuf.GGeb_Best = zAufze.GGeb_Be
  937. RuestAuf.VGeb_Best = zAufze.VGeb_Be
  938. RuestAuf.KGeb_Best = zAufze.KGeb_Be
  939. RuestAuf.lGeladen = FALSE
  940. RuestAuf.lGeruestet = FALSE
  941. RuestAuf.lLAGedruckt = FALSE
  942. RuestAuf.lLSGedruckt = FALSE
  943. RuestAuf.lPAGedruckt = FALSE
  944. RuestAuf.lRSGedruckt = FALSE
  945. RuestAuf.lWeiter = FALSE.
  946. END.
  947. END.
  948. RELEASE Aufze .
  949. RELEASE RuestAuf.
  950. RELEASE Aufko .
  951. LEAVE.
  952. END.
  953. IF NOT lMailLS THEN RETURN .
  954. lMutation = FALSE.
  955. FOR EACH zAufze NO-LOCK
  956. WHERE zAufze.cMutArt <> '':
  957. FIND Aufze NO-LOCK OF zAufze NO-ERROR.
  958. FIND FIRST rawTable NO-LOCK
  959. WHERE rawTable.Firma = Aufze.Firma
  960. AND rawTable.Tabelle = 'RUESTAUF'
  961. AND rawTable.Tabelle_Id = RECID(Aufze) NO-ERROR.
  962. IF NOT AVAILABLE rawTable THEN NEXT.
  963. lMutation = TRUE.
  964. LEAVE.
  965. END.
  966. IF lMutation THEN
  967. DO:
  968. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  969. FIND FIRST zAufze NO-ERROR.
  970. FOR EACH RuestAuf NO-LOCK
  971. WHERE RuestAuf.Firma = zAufze.Firma
  972. AND RuestAuf.Aufnr = zAufze.Aufnr
  973. AND RuestAuf.lGeladen:
  974. FIND bRuestAuf WHERE RECID(bRuestAuf) = RECID(RuestAuf) EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  975. IF AVAILABLE bRuestAuf THEN
  976. DO:
  977. bRuestAuf.lGeladen = FALSE.
  978. RELEASE bRuestAuf.
  979. NEXT.
  980. END.
  981. END.
  982. RELEASE RuestAuf.
  983. LEAVE.
  984. END.
  985. END.
  986. lMailLS = lMutation.
  987. RETURN. /* Neuer Rüstschein erstellt */
  988. END PROCEDURE.
  989. /* _UIB-CODE-BLOCK-END */
  990. &ANALYZE-RESUME
  991. &ENDIF
  992. &IF DEFINED(EXCLUDE-DRUCKAUSGABE) = 0 &THEN
  993. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE Procedure
  994. PROCEDURE DRUCKAUSGABE:
  995. /*------------------------------------------------------------------------------*/
  996. /* Purpose: */
  997. /* Parameters: <none> */
  998. /* Notes: */
  999. /*------------------------------------------------------------------------------*/
  1000. DEFINE VARIABLE iAnzKopien AS INTEGER NO-UNDO.
  1001. DEFINE VARIABLE sRecid AS RECID NO-UNDO.
  1002. DEFINE VARIABLE iSize AS INTEGER NO-UNDO.
  1003. DEFINE VARIABLE iKopie AS INTEGER NO-UNDO.
  1004. DEFINE VARIABLE iSchacht AS INTEGER NO-UNDO.
  1005. DEFINE VARIABLE cString AS CHARACTER INIT '' NO-UNDO.
  1006. FIND FIRST tSchrift NO-LOCK
  1007. WHERE tSchrift.iPlatz = iPlatz NO-ERROR.
  1008. IF NOT AVAILABLE tSchrift THEN FIND FIRST tSchrift.
  1009. sRecid = tSchrift.iRecid.
  1010. iAnzKopien = tSchrift.Anzahl.
  1011. iSchacht = tSchrift.Schacht.
  1012. RUN writeLogfile.p ( ProgName, cLogName, SUBSTITUTE('Druckausgabe -> Platz: &1, Drucker: &2, Schrift: &3', tSchrift.iPlatz, tSchrift.Schname, tSchrift.Schbild) ) NO-ERROR.
  1013. IF iAnzKopien = 0 THEN iAnzKopien = 1.
  1014. DO iKopie = 1 TO iAnzKopien WHILE lDrucken:
  1015. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, cDateiName ,
  1016. sRecid ,
  1017. tSchrift.Schacht ,
  1018. 240 , /* Blockgrösse */
  1019. 'ibm850' ,
  1020. iAnzKopien ). /* Anzahl Kopien */
  1021. IF iSize = 0 THEN
  1022. DO:
  1023. cString = 'Druckvorgang gescheitert !!! '.
  1024. RUN writeLogfile.p ( ProgName, cLogName, cString ) NO-ERROR.
  1025. IF lBatch THEN RETURN ERROR.
  1026. MESSAGE cString VIEW-AS ALERT-BOX ERROR.
  1027. RETURN ERROR.
  1028. END.
  1029. IF iKopie < iAnzKopien THEN
  1030. DO:
  1031. ETIME(TRUE).
  1032. DO WHILE ETIME(FALSE) < 200:
  1033. END.
  1034. END.
  1035. END.
  1036. OS-DELETE VALUE(cDateiName) NO-ERROR.
  1037. END PROCEDURE.
  1038. /* _UIB-CODE-BLOCK-END */
  1039. &ANALYZE-RESUME
  1040. &ENDIF
  1041. &IF DEFINED(EXCLUDE-FUELLEN_tAUFZE) = 0 &THEN
  1042. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_tAUFZE Procedure
  1043. PROCEDURE FUELLEN_tAufze :
  1044. /*------------------------------------------------------------------------------*/
  1045. /* Purpose: */
  1046. /* Parameters: <none> */
  1047. /* Notes: */
  1048. /*------------------------------------------------------------------------------*/
  1049. DEFINE VARIABLE minPos AS INTEGER NO-UNDO.
  1050. DEFINE VARIABLE maxPos AS INTEGER NO-UNDO.
  1051. DEFINE VARIABLE jPlatz AS INTEGER NO-UNDO.
  1052. DEFINE VARIABLE cLagOrt AS CHARACTER NO-UNDO.
  1053. DEFINE VARIABLE lArtikel AS LOG NO-UNDO.
  1054. EMPTY TEMP-TABLE tAufze.
  1055. ASSIGN
  1056. minPos = 0
  1057. maxPos = 9999.
  1058. /* -------------------------------------- */
  1059. /* Kommentar zu Beginn eines Auftrages */
  1060. /* -------------------------------------- */
  1061. lArtikel = FALSE.
  1062. FOR EACH Aufze NO-LOCK USE-INDEX Aufze-k1
  1063. WHERE Aufze.Firma = Firma
  1064. AND Aufze.Aufnr = bAufko.Aufnr
  1065. AND Aufze.Pos > minPos:
  1066. IF Aufze.Artnr > 0 THEN
  1067. DO:
  1068. lArtikel = TRUE.
  1069. LEAVE.
  1070. END.
  1071. minPos = Aufze.Pos.
  1072. CREATE tAufze.
  1073. BUFFER-COPY Aufze TO tAufze
  1074. ASSIGN
  1075. tAufze.Platz = 0
  1076. tAufze.LagOrt = ''.
  1077. END.
  1078. /* ---------------------------------------------- */
  1079. /* Kommentar am Ende eines Auftrages */
  1080. /* ebenfalls an den Anfang des Auftrages schieben */
  1081. /* ---------------------------------------------- */
  1082. IF lArtikel THEN
  1083. DO:
  1084. FOR EACH Aufze NO-LOCK
  1085. WHERE Aufze.Firma = Firma
  1086. AND Aufze.Aufnr = bAufko.Aufnr
  1087. BY Aufze.Pos DESCENDING:
  1088. IF Aufze.Artnr > 0 THEN LEAVE.
  1089. maxPos = Aufze.Pos.
  1090. CREATE tAufze.
  1091. BUFFER-COPY Aufze TO tAufze
  1092. ASSIGN
  1093. tAufze.Platz = 0
  1094. tAufze.LagOrt = ''.
  1095. END.
  1096. END.
  1097. /* ------------------------------------------------------ */
  1098. /* Artikelzeilen dem Ruestsektor und Lagerplatz zuteilen */
  1099. /* ------------------------------------------------------ */
  1100. FOR EACH Aufze NO-LOCK
  1101. WHERE Aufze.Firma = Firma
  1102. AND Aufze.Aufnr = bAufko.Aufnr
  1103. AND Aufze.Pos > minPos
  1104. AND Aufze.Pos < MaxPos:
  1105. IF Aufze.Artnr > 0 THEN
  1106. DO:
  1107. cLagOrt = ''.
  1108. jPlatz = -1.
  1109. FOR FIRST tLagerOrte NO-LOCK
  1110. WHERE tLagerOrte.Artnr = Aufze.Artnr
  1111. AND tLagerOrte.Inhalt = Aufze.Inhalt
  1112. AND tLagerOrte.Jahr = Aufze.Jahr :
  1113. cLagOrt = tLagerorte.cSort.
  1114. jPlatz = tLagerorte.Platz.
  1115. END.
  1116. END.
  1117. CREATE tAufze.
  1118. BUFFER-COPY Aufze TO tAufze
  1119. ASSIGN
  1120. tAufze.Platz = jPlatz
  1121. tAufze.LagOrt = cLagort.
  1122. END.
  1123. /* OUTPUT TO 'C:\Entwicklung\TEMP\OE117WRK\tAufze.csv'.*/
  1124. /* FOR EACH tAufze: */
  1125. /* EXPORT DELIMITER ';' tAufze. */
  1126. /* END. */
  1127. /* OUTPUT CLOSE. */
  1128. END PROCEDURE.
  1129. /* _UIB-CODE-BLOCK-END */
  1130. &ANALYZE-RESUME
  1131. &ENDIF
  1132. &IF DEFINED(EXCLUDE-GET_DRUCKERDATEN) = 0 &THEN
  1133. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GET_DRUCKERDATEN Procedure
  1134. PROCEDURE GET_DRUCKERDATEN :
  1135. /*------------------------------------------------------------------------------*/
  1136. /* Purpose: */
  1137. /* Parameters: <none> */
  1138. /* Notes: */
  1139. /*------------------------------------------------------------------------------*/
  1140. DEFINE INPUT PARAMETER ipPlatz AS INTEGER NO-UNDO.
  1141. DEFINE INPUT PARAMETER ipDrucker AS CHARACTER NO-UNDO.
  1142. DEFINE INPUT PARAMETER ipSchrift AS CHARACTER NO-UNDO.
  1143. DEFINE VARIABLE lJa AS LOG INIT TRUE NO-UNDO.
  1144. DEFINE VARIABLE lError AS LOG INIT TRUE NO-UNDO.
  1145. DO WHILE TRUE:
  1146. FIND FIRST tDrucker NO-LOCK
  1147. WHERE tDrucker.Drucker = ipDrucker NO-ERROR.
  1148. IF AVAILABLE tDrucker THEN LEAVE.
  1149. cMessage = SUBSTITUTE('Der gewünschte Drucker &1 ist nicht verfügbar ', ipDrucker).
  1150. RETURN cMessage.
  1151. END.
  1152. RUN CHECKPRINTER ( ipDrucker, OUTPUT lError ) NO-ERROR.
  1153. IF lError THEN RETURN SUBSTITUTE('Drucker &1 konnte nicht angewählt werden', ipDrucker).
  1154. DO WHILE TRUE:
  1155. FIND FIRST Schrift NO-LOCK
  1156. WHERE Schrift.SchName = ipDrucker
  1157. AND Schrift.SchBild = ipSchrift NO-ERROR.
  1158. IF AVAILABLE Schrift THEN LEAVE.
  1159. FIND FIRST Schrift NO-LOCK
  1160. WHERE Schrift.SchName = SESSION:PRINTER-NAME
  1161. AND Schrift.SchBild = ipSchrift NO-ERROR.
  1162. IF AVAILABLE Schrift THEN LEAVE.
  1163. cMessage = 'Es konnte keine Schrift für den gewählten Drucker ermittelt werden'.
  1164. RETURN cMessage.
  1165. END.
  1166. CREATE tSchrift.
  1167. BUFFER-COPY Schrift TO tSchrift
  1168. ASSIGN
  1169. tSchrift.iPlatz = ipPlatz
  1170. tSchrift.SchName = SESSION:PRINTER-NAME
  1171. tSchrift.iRecid = RECID(Schrift).
  1172. FIND bDrucker NO-LOCK
  1173. WHERE bDrucker.Drucker = tSchrift.SchDru.
  1174. RETURN ''.
  1175. END PROCEDURE.
  1176. /* _UIB-CODE-BLOCK-END */
  1177. &ANALYZE-RESUME
  1178. &ENDIF
  1179. &IF DEFINED(EXCLUDE-LAGERORTE_ERMITTELN) = 0 &THEN
  1180. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LAGERORTE_ERMITTELN Procedure
  1181. PROCEDURE LAGERORTE_ERMITTELN :
  1182. /*------------------------------------------------------------------------------*/
  1183. /* Purpose: */
  1184. /* Parameters: <none> */
  1185. /* Notes: */
  1186. /*------------------------------------------------------------------------------*/
  1187. DEFINE VARIABLE iArt AS INTEGER NO-UNDO.
  1188. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  1189. EMPTY TEMP-TABLE tLagerOrte.
  1190. FOR EACH bAufze NO-LOCK
  1191. WHERE bAufze.Firma = bAufko.Firma
  1192. AND bAufze.Aufnr = bAUfko.Aufnr
  1193. AND bAufze.Artnr > 0,
  1194. FIRST bArtst NO-LOCK
  1195. WHERE bArtst.Firma = bAufze.Firma
  1196. AND bArtst.Artnr = bAufze.Artnr
  1197. AND bArtst.Inhalt = bAufze.Inhalt
  1198. AND bArtst.Jahr = bAufze.Jahr :
  1199. FIND FIRST HoReLager NO-LOCK
  1200. WHERE HoReLager.Firma = bAufze.Firma
  1201. AND HoReLager.Art = 1
  1202. AND HoReLager.Lager = bAufze.Lager
  1203. AND HoReLager.Artnr = bAufze.Artnr
  1204. AND HoReLager.Inhalt = bAufze.Inhalt
  1205. AND HoReLager.Jahr = bAufze.Jahr NO-ERROR.
  1206. IF NOT AVAILABLE HoReLager THEN
  1207. DO:
  1208. FIND FIRST HoReLager NO-LOCK
  1209. WHERE HoReLager.Firma = bAufze.Firma
  1210. AND HoReLager.Art = 1
  1211. AND HoReLager.Lager = bAufze.Lager
  1212. AND HoReLager.Artnr = bAufze.Artnr
  1213. AND HoReLager.Inhalt = bAufze.Inhalt NO-ERROR.
  1214. END.
  1215. IF NOT AVAILABLE HoReLager THEN
  1216. DO:
  1217. FIND FIRST HoReLager NO-LOCK
  1218. WHERE HoReLager.Firma = bAufze.Firma
  1219. AND HoReLager.Art = 3
  1220. AND HoReLager.Lager = bAufze.Lager
  1221. AND HoReLager.Artnr = bAufze.Artnr
  1222. AND HoReLager.Inhalt = bAufze.Inhalt NO-ERROR.
  1223. END.
  1224. CREATE tLagerOrte.
  1225. ASSIGN
  1226. tLagerorte.iPrio = 1
  1227. tLagerorte.Artnr = bAufze.Artnr
  1228. tLagerorte.Inhalt = bAufze.Inhalt
  1229. tLagerorte.Jahr = bAufze.Jahr
  1230. tLagerorte.cSort = (IF AVAILABLE HoReLager THEN HoReLager.cSort ELSE '99' )
  1231. tLagerorte.HoReLager_Id = (IF AVAILABLE HoReLager THEN HoReLager.HoReLager_Id ELSE 0 )
  1232. tLagerorte.Bestand = (IF AVAILABLE HoReLager THEN HoReLager.Bestand ELSE bAufze.MBest )
  1233. tLagerorte.Lotnr = ''
  1234. tLagerorte.Verfall = ?
  1235. tLagerorte.rHoReLager = (IF AVAILABLE HoReLager THEN RECID(HoReLager) ELSE ? )
  1236. tLagerorte.rLotLager = ?
  1237. tLagerorte.Art = (IF AVAILABLE HoReLager THEN HoReLager.Art ELSE 1 )
  1238. tLagerorte.Platz = iPlatz.
  1239. END.
  1240. FOR EACH tLagerOrte:
  1241. FIND LAST RuestPlatz NO-LOCK USE-INDEX RuestPlatz-k2
  1242. WHERE RuestPlatz.Firma = Firma
  1243. AND RuestPlatz.RuestArt = iRuestArt
  1244. AND RuestPlatz.abLagort <= tLagerorte.cSort NO-ERROR.
  1245. tLagerorte.Platz = (IF AVAILABLE RuestPlatz THEN RuestPlatz.Platz ELSE 0).
  1246. END.
  1247. /* OUTPUT TO 'C:\Entwicklung\TEMP\OE117WRK\tLagerorte.csv'.*/
  1248. /* FOR EACH tLagerorte: */
  1249. /* EXPORT DELIMITER ';' tLagerorte. */
  1250. /* END. */
  1251. /* OUTPUT CLOSE. */
  1252. END PROCEDURE.
  1253. /* _UIB-CODE-BLOCK-END */
  1254. &ANALYZE-RESUME
  1255. &ENDIF
  1256. &IF DEFINED(EXCLUDE-LIBILD) = 0 &THEN
  1257. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIBILD Procedure
  1258. PROCEDURE LIBILD:
  1259. /*------------------------------------------------------------------------------*/
  1260. /* Purpose: */
  1261. /* Parameters: <none> */
  1262. /* Notes: */
  1263. /*------------------------------------------------------------------------------*/
  1264. DEFINE INPUT PARAMETER ipDokArt AS CHARACTER NO-UNDO.
  1265. DEFINE VARIABLE cProgName AS CHARACTER NO-UNDO.
  1266. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  1267. cProgName = bSteuer.Fwc10 + ":" + ipDokArt.
  1268. FormText = "".
  1269. FOR EACH LiBild USE-INDEX LiBild-k1
  1270. WHERE LiBild.Sprcd = 1
  1271. AND LiBild.Prog = cProgName
  1272. AND LiBild.Tenr > 0 NO-LOCK
  1273. ix = 1 TO 40:
  1274. FormText[ix] = LiBild.Litext.
  1275. END.
  1276. cRabText = TRIM(SUBSTRING(FormText[21],01,20)).
  1277. cZusText = TRIM(SUBSTRING(FormText[21],21,20)).
  1278. cEpzText = TRIM(SUBSTRING(FormText[21],41,20)).
  1279. END PROCEDURE.
  1280. /* _UIB-CODE-BLOCK-END */
  1281. &ANALYZE-RESUME
  1282. &ENDIF
  1283. &IF DEFINED(EXCLUDE-NEUE_SEITE) = 0 &THEN
  1284. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUE_SEITE Procedure
  1285. PROCEDURE NEUE_SEITE :
  1286. /*------------------------------------------------------------------------------*/
  1287. /* Purpose: */
  1288. /* Parameters: <none> */
  1289. /* Notes: */
  1290. /*------------------------------------------------------------------------------*/
  1291. DEFINE VARIABLE cLeerZeile AS CHARACTER NO-UNDO.
  1292. IF iSeite > 0 THEN
  1293. DO:
  1294. PUT STREAM out_Stream CONTROL CHR(12).
  1295. END.
  1296. FIND FIRST tSchrift NO-LOCK
  1297. WHERE tSchrift.iPlatz = iPlatz.
  1298. cLeerZeile = FILL(CHR(10), tSchrift.Schzzbeg).
  1299. IF cLeerZeile <> '' THEN PUT STREAM out_Stream cLeerZeile.
  1300. iZeile = tSchrift.Schzzbeg.
  1301. iSeite = iSeite + 1.
  1302. END PROCEDURE.
  1303. /* _UIB-CODE-BLOCK-END */
  1304. &ANALYZE-RESUME
  1305. &ENDIF
  1306. &IF DEFINED(EXCLUDE-RUESTSCHEIN) = 0 &THEN
  1307. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUESTSCHEIN Procedure
  1308. PROCEDURE RUESTSCHEIN :
  1309. /*------------------------------------------------------------------------------*/
  1310. /* Purpose: */
  1311. /* Parameters: <none> */
  1312. /* Notes: */
  1313. /*------------------------------------------------------------------------------*/
  1314. DEFINE VARIABLE cDokArt AS CHARACTER NO-UNDO.
  1315. DEFINE VARIABLE hbAufko AS HANDLE NO-UNDO.
  1316. DEFINE VARIABLE htTabTexte AS HANDLE NO-UNDO.
  1317. DEFINE VARIABLE nFakBetr AS DECIMAL NO-UNDO.
  1318. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1319. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  1320. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  1321. DEFINE VARIABLE cDrucker AS CHARACTER NO-UNDO.
  1322. ASSIGN
  1323. cDokArt = 'RUEST'
  1324. iSeite = 0
  1325. iZeile = 0
  1326. iPlatz = 0
  1327. cZeile = ''
  1328. lOpen = FALSE
  1329. dDatum = bAufko.Lief_Datum
  1330. lMutation = FALSE.
  1331. RUN CREATE_RUESTAUFTRAG.
  1332. RUN LIBILD ( cDokArt ).
  1333. hbAufko = BUFFER bAufko:HANDLE.
  1334. htTabTexte = TEMP-TABLE tTabTexte:DEFAULT-BUFFER-HANDLE.
  1335. RUN CREATE_TABTEXTE ( INPUT hbAufko, INPUT-OUTPUT htTabTexte ) NO-ERROR.
  1336. EMPTY TEMP-TABLE tSchrift.
  1337. FOR EACH RuestDaten NO-LOCK
  1338. WHERE RuestDaten.Firma = bAufko.Firma
  1339. AND RuestDaten.RuestArt = iRuestArt
  1340. AND RuestDaten.Platz > 0
  1341. AND RuestDaten.RU_Doku = TRUE :
  1342. iPlatz = RuestDaten.Platz.
  1343. RUN GET_DRUCKERDATEN ( iPlatz, RuestDaten.RU_Drucker, RuestDaten.RU_Schrift ).
  1344. IF RETURN-VALUE <> '' THEN RETURN RETURN-VALUE.
  1345. FIND FIRST tSchrift WHERE tSchrift.iPlatz = iPlatz.
  1346. ASSIGN
  1347. tSchrift.Schzztot = RuestDaten.RU_TotZZ
  1348. tSchrift.Schzzbeg = RuestDaten.RU_KopfZZ
  1349. tSchrift.Schzzend = RuestDaten.RU_FussZZ
  1350. tSchrift.Schacht = RuestDaten.RU_Schacht
  1351. tSchrift.Anzahl = RuestDaten.RU_Anzahl.
  1352. END.
  1353. EMPTY TEMP-TABLE zAufze.
  1354. CREATE zAufze.
  1355. FOR EACH tAufze NO-LOCK
  1356. WHERE tAufze.Platz > 0
  1357. AND tAufze.Platz < 99
  1358. AND tAufze.Artnr > 0
  1359. BREAK
  1360. BY tAufze.Platz
  1361. BY tAufze.Lagort
  1362. BY tAufze.Pos :
  1363. FIND FIRST zAufze.
  1364. BUFFER-COPY tAufze TO zAufze
  1365. ASSIGN
  1366. zAufze.Lagort = tAufze.Lagort
  1367. zAufze.Platz = tAufze.Platz.
  1368. DO WHILE TRUE:
  1369. IF NOT FIRST-OF ( tAufze.Platz ) THEN LEAVE.
  1370. ASSIGN
  1371. iSeite = 0
  1372. iZeile = 0
  1373. iPlatz = tAufze.Platz.
  1374. FIND FIRST tSchrift NO-LOCK
  1375. WHERE tSchrift.iPlatz = iPlatz.
  1376. FIND bDrucker NO-LOCK
  1377. WHERE bDrucker.Drucker = tSchrift.SchDru.
  1378. IF NOT lOpen THEN
  1379. DO:
  1380. cDrucker = tSchrift.Schname.
  1381. cDateiName = SESSION:TEMP-DIR
  1382. + 'RuestPapier'
  1383. + STRING(TIME,'999999')
  1384. + STRING(RANDOM(1, 999999),'999999')
  1385. + '.txt'.
  1386. OUTPUT STREAM out_Stream TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  1387. lOpen = TRUE.
  1388. LEAVE.
  1389. END.
  1390. IF tSchrift.Schname = cDrucker THEN
  1391. DO:
  1392. PUT STREAM out_Stream CONTROL CHR(12).
  1393. LEAVE.
  1394. END.
  1395. OUTPUT STREAM out_Stream CLOSE.
  1396. lOpen = FALSE.
  1397. RUN DRUCKAUSGABE NO-ERROR.
  1398. IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
  1399. cDrucker = tSchrift.Schname.
  1400. cDateiName = SESSION:TEMP-DIR
  1401. + 'RuestPapier'
  1402. + STRING(TIME,'999999')
  1403. + STRING(RANDOM(1, 999999),'999999')
  1404. + '.txt'.
  1405. OUTPUT STREAM out_Stream TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  1406. lOpen = TRUE.
  1407. LEAVE.
  1408. END.
  1409. IF iSeite = 0 OR
  1410. (tSchrift.Schzztot - iZeile - 2) <= tSchrift.Schzzend THEN
  1411. DO:
  1412. RUN RUESTSCHEIN_KOPF ( iPlatz ).
  1413. FIND FIRST zAufze.
  1414. BUFFER-COPY tAufze TO zAufze.
  1415. END.
  1416. RUN RUESTSCHEIN_ARTIKELZEILE.
  1417. IF NOT LAST-OF ( tAufze.Platz ) THEN NEXT.
  1418. cZeile = FILL('=', 100).
  1419. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  1420. FOR EACH btAufze NO-LOCK
  1421. WHERE btAufze.Platz = 99:
  1422. FIND FIRST zAufze.
  1423. BUFFER-COPY btAufze TO zAufze.
  1424. RUN RUESTSCHEIN_ARTIKELZEILE.
  1425. i2 = i2 + 1.
  1426. END.
  1427. END.
  1428. FOR EACH RuestAuf
  1429. WHERE RuestAuf.Firma = bAufko.Firma
  1430. AND RuestAuf.Aufnr = bAufko.Aufnr:
  1431. RuestAuf.lRSGedruckt = TRUE.
  1432. END.
  1433. IF lOpen THEN
  1434. DO:
  1435. OUTPUT STREAM out_Stream CLOSE.
  1436. lOpen = FALSE.
  1437. RUN DRUCKAUSGABE NO-ERROR.
  1438. IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
  1439. END.
  1440. IF bAufko.Auf_Sta < 1 THEN RUN WEITER ( bAufko.Aufnr ).
  1441. RETURN ''.
  1442. END PROCEDURE.
  1443. /* _UIB-CODE-BLOCK-END */
  1444. &ANALYZE-RESUME
  1445. &ENDIF
  1446. &IF DEFINED(EXCLUDE-RUESTSCHEIN_ARTIKELZEILE) = 0 &THEN
  1447. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUESTSCHEIN_ARTIKELZEILE Procedure
  1448. PROCEDURE RUESTSCHEIN_ARTIKELZEILE:
  1449. /*------------------------------------------------------------------------------*/
  1450. /* Purpose: */
  1451. /* Parameters: <none> */
  1452. /* Notes: */
  1453. /*------------------------------------------------------------------------------*/
  1454. DEFINE VARIABLE cBarCode AS CHARACTER NO-UNDO.
  1455. DEFINE VARIABLE oBarCode AS CHARACTER NO-UNDO.
  1456. /*
  1457. DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO.
  1458. */
  1459. DEFINE VARIABLE cCodeArt AS CHARACTER INIT 'P0205080' NO-UNDO.
  1460. FIND FIRST zAufze NO-LOCK.
  1461. PUT STREAM Out_Stream CONTROL bDrucker.Dru15cpi.
  1462. DO WHILE zAufze.Artnr = 0:
  1463. SUBSTRING(cZeile,036) = STRING(zAufze.Bez1,"x(30)").
  1464. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1465. IF zAufze.Bez2 <> '' THEN
  1466. DO:
  1467. SUBSTRING(cZeile,036) = STRING(zAufze.Bez2,"x(30)").
  1468. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1469. END.
  1470. RETURN.
  1471. END.
  1472. FIND Artst NO-LOCK OF zAufze.
  1473. FIND VGebinde
  1474. WHERE VGebinde.Firma = zAufze.Firma
  1475. AND VGebinde.Geb_Cd = zAufze.VGeb_Cd NO-ERROR.
  1476. FIND KGebinde
  1477. WHERE KGebinde.Firma = zAufze.Firma
  1478. AND KGebinde.Geb_Cd = zAufze.KGeb_Cd NO-ERROR.
  1479. FIND FIRST ArtLief NO-LOCK
  1480. WHERE ArtLief.Firma = zAufze.Firma
  1481. AND ArtLief.Artnr = zAufze.Artnr
  1482. AND ArtLief.Inhalt = zAufze.Inhalt
  1483. AND ArtLief.Jahr = zAufze.Jahr
  1484. AND ArtLief.Strichcode_KGeb <> '' NO-ERROR.
  1485. cBarCode = ''.
  1486. oBarCode = ''.
  1487. IF AVAILABLE ArtLief THEN
  1488. DO:
  1489. IF ArtLief.Strichcode_KGeb <> '' THEN cBarCode = ArtLief.Strichcode_KGeb.
  1490. END.
  1491. IF cBarCode = '' THEN cBarCode = Artst.Strichcode.
  1492. IF cBarCode = '' THEN cBarCode = TRIM(STRING(zAufze.Artnr ,'zzzzz9'))
  1493. + '.'
  1494. + TRIM(STRING(zAufze.Inhalt,'zzz9'))
  1495. + '.'
  1496. + TRIM(STRING(zAufze.Jahr ,'zzz9')).
  1497. ELSE cBarCode = ''.
  1498. /* Alle Artikelbarcode drucken */
  1499. /* IF cBarCode = '' THEN cBarCode = TRIM(STRING(zAufze.Artnr ,'zzzzz9'))*/
  1500. /* + '.' */
  1501. /* + TRIM(STRING(zAufze.Inhalt,'zzz9')) */
  1502. /* + '.' */
  1503. /* + TRIM(STRING(zAufze.Jahr ,'zzz9')). */
  1504. /* -------------------------- */
  1505. IF cBarCode <> '' THEN
  1506. DO: .
  1507. RUN BAR-CODE-39 ( INPUT cBarCode,
  1508. INPUT cCodeArt,
  1509. OUTPUT oBarCode ).
  1510. END.
  1511. SUBSTRING(cZeile,001) = STRING(KGebinde.KBez,"x(10)").
  1512. IF zAufze.VGeb_Be <> 0 THEN
  1513. DO:
  1514. SUBSTRING(cZeile,012) = STRING(zAufze.VGeb_Be,'->>>')
  1515. + 'x '
  1516. + VGebinde.KBez.
  1517. END.
  1518. SUBSTRING(cZeile,028) = STRING(zAufze.MBest ,"->>>>9").
  1519. SUBSTRING(cZeile,036) = STRING(zAufze.Bez1 ,"x(30)").
  1520. IF zAufze.Alk_Gehalt <> 0 THEN SUBSTRING(cZeile,068) = STRING(zAufze.Alk_Gehalt,"zz9.9%").
  1521. IF zAufze.Jahr > 9 THEN SUBSTRING(cZeile,075) = STRING(zAufze.Jahr,"9999").
  1522. SUBSTRING(cZeile,081) = STRING(zAufze.Artnr ,"999999").
  1523. FIND FIRST RuestAuf NO-LOCK
  1524. WHERE RuestAuf.Firma = zAufze.Firma
  1525. AND RuestAuf.Aufnr = zAufze.Aufnr
  1526. AND RuestAuf.Pos = zAufze.Pos.
  1527. SUBSTRING(cZeile,089) = RuestAuf.Lagerort.
  1528. cZeile = bDrucker.Drufettb
  1529. + SUBSTRING(cZeile,001,027)
  1530. + bDrucker.Drufette
  1531. + SUBSTRING(cZeile,028,061)
  1532. + bDrucker.Drufettb
  1533. + SUBSTRING(cZeile,089,014)
  1534. + bDrucker.Drufette
  1535. + SUBSTRING(cZeile,103).
  1536. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1537. IF zAufze.Bez2 <> '' THEN
  1538. DO:
  1539. SUBSTRING(cZeile,036) = STRING(zAufze.Bez2,"x(30)").
  1540. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1541. END.
  1542. IF oBarCode <> '' THEN
  1543. DO:
  1544. SUBSTRING(cZeile,036) = CHR(27) + "&f0S" /* Cursorposition speichern */
  1545. + CHR(27) + "*p" /* Cursor neu Positionieren anhand der Zeile */
  1546. + STRING((iZeile * 50) - 25,"9999") + "Y"
  1547. + oBarcode
  1548. + CHR(027) + "&f1S". /* Cusrorposition zurückholen */
  1549. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  1550. END.
  1551. ELSE
  1552. DO:
  1553. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1554. END.
  1555. END PROCEDURE.
  1556. /* _UIB-CODE-BLOCK-END */
  1557. &ANALYZE-RESUME
  1558. &ENDIF
  1559. &IF DEFINED(EXCLUDE-RUESTSCHEIN_KOPF) = 0 &THEN
  1560. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUESTSCHEIN_KOPF Procedure
  1561. PROCEDURE RUESTSCHEIN_KOPF:
  1562. /*------------------------------------------------------------------------------*/
  1563. /* Purpose: */
  1564. /* Parameters: <none> */
  1565. /* Notes: */
  1566. /*------------------------------------------------------------------------------*/
  1567. DEFINE INPUT PARAMETER ipPlatz AS INTEGER NO-UNDO.
  1568. DEFINE VARIABLE cAufnr AS CHARACTER NO-UNDO.
  1569. DEFINE VARIABLE oBarCode AS CHARACTER NO-UNDO.
  1570. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  1571. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  1572. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  1573. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1574. DEFINE VARIABLE cLeerZeile AS CHARACTER NO-UNDO.
  1575. /*
  1576. DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO.
  1577. */
  1578. /* P = Portrait */
  1579. /* L = Landscape */
  1580. DEFINE VARIABLE cCodeArt AS CHARACTER INIT 'P0210200' NO-UNDO.
  1581. RUN NEUE_SEITE.
  1582. PUT STREAM out_Stream CONTROL bDrucker.Dru15cpi.
  1583. PUT STREAM out_Stream CONTROL CHR(27) '&k2G'.
  1584. cAufnr = STRING(bAufko.Aufnr,'9999999')
  1585. + '.'
  1586. + TRIM(STRING(ipPlatz,'>9')).
  1587. RUN BAR-CODE-39 ( INPUT cAufnr ,
  1588. INPUT cCodeArt,
  1589. OUTPUT oBarCode ).
  1590. oBarCode = CHR(027) + "*p" + "100y" + "100X" + oBarCode
  1591. + CHR(027) + "*p" + "405y" + "260X"
  1592. + bDrucker.Drufettb + bDrucker.Dru10cpi + bDrucker.Drufettb
  1593. + cAufnr
  1594. + bDrucker.Drufette + bDrucker.Dru15cpi + bDrucker.Drufette
  1595. + CHR(027) + "*p" + "0y" + "0X".
  1596. PUT STREAM out_Stream CONTROL oBarCode.
  1597. FIND FIRST tSchrift NO-LOCK
  1598. WHERE tSchrift.iPlatz = iPlatz.
  1599. cLeerZeile = FILL(CHR(10), tSchrift.Schzzbeg).
  1600. IF cLeerZeile <> '' THEN PUT STREAM out_Stream cLeerZeile.
  1601. iZeile = tSchrift.Schzzbeg.
  1602. /* IF iSeite = 1 THEN */
  1603. /* DO: */
  1604. /* FIND LDebst USE-INDEX Debst-k1 */
  1605. /* WHERE LDebst.Firma = bAufko.Firma */
  1606. /* AND LDebst.Knr = bAufko.Knr NO-LOCK NO-ERROR.*/
  1607. /* FIND FDebst USE-INDEX Debst-k1 */
  1608. /* WHERE FDebst.Firma = bAufko.Firma */
  1609. /* AND FDebst.Knr = bAufko.Fak_Knr NO-LOCK NO-ERROR.*/
  1610. /* END. */
  1611. IF bAufko.Adresse[05] <> '' THEN
  1612. DO:
  1613. DO ix = 1 TO 5:
  1614. SUBSTRING(cZeile,066) = bAufko.Adresse[ix].
  1615. IF ix = 5 THEN
  1616. DO: DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1617. END.
  1618. ELSE
  1619. DO: DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1620. END.
  1621. END.
  1622. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  1623. END.
  1624. ELSE
  1625. DO:
  1626. DO ix = 6 TO 12:
  1627. SUBSTRING(cZeile,066) = bAdresse.Anschrift[ix].
  1628. IF ix = 11 THEN
  1629. DO: DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1630. END.
  1631. ELSE
  1632. DO: DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1633. END.
  1634. END.
  1635. END.
  1636. IF bAufko.Auf_Tot >= 0
  1637. THEN SUBSTRING(cZeile,008) = SUBSTRING(FormText[02],01,20).
  1638. ELSE SUBSTRING(cZeile,008) = SUBSTRING(FormText[02],21,20).
  1639. IF lMutation THEN cZeile = cZeile + ' (KORREKTUR) '.
  1640. SUBSTRING(cZeile,066) = TRIM(SUBSTRING(FormText[07],01,20))
  1641. + " "
  1642. + STRING(dDatum,"99.99.9999").
  1643. cZeile = bDrucker.Drufettb
  1644. + SUBSTRING(cZeile,001,50)
  1645. + bDrucker.Drufette
  1646. + SUBSTRING(cZeile,051).
  1647. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  1648. IF iSeite = 1 THEN
  1649. DO:
  1650. FIND FIRST tTabtexte NO-LOCK
  1651. WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR.
  1652. IF AVAILABLE tTabTexte THEN SUBSTRING(cZeile,008) = tTabTexte.cFeld3.
  1653. SUBSTRING(cZeile,066) = TRIM(SUBSTRING(FormText[08],21,20))
  1654. + STRING(bAufko.Gewicht,"zz,zz9.999-").
  1655. cZeile = TRIM(bDrucker.Drufettb)
  1656. + SUBSTRING(cZeile,001,65)
  1657. + TRIM(bDrucker.Drufette)
  1658. + SUBSTRING(cZeile,066).
  1659. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1660. SUBSTRING(cZeile,008) = TRIM(SUBSTRING(FormText[07],41,20))
  1661. + " "
  1662. + STRING(bAufko.Auf_Datum,"99.99.9999").
  1663. SUBSTRING(cZeile,038) = TRIM(SUBSTRING(FormText[08],01,20))
  1664. + STRING(bAufko.Knr,"z999999").
  1665. SUBSTRING(cZeile,066) = TRIM(SUBSTRING(FormText[08],41,20))
  1666. + " "
  1667. + bAdresse.Tel-1.
  1668. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1669. SUBSTRING(cZeile,008) = TRIM(SUBSTRING(FormText[09],21,20))
  1670. + " "
  1671. + STRING(bAufko.Lief_Datum,"99.99.9999").
  1672. SUBSTRING(cZeile,038) = TRIM(SUBSTRING(FormText[09],01,20))
  1673. + " ". /* Lieferart */
  1674. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1675. SUBSTRING(cZeile,008) = TRIM(SUBSTRING(FormText[07],21,20))
  1676. + " "
  1677. + STRING(bAufko.U_Ref,'x(20)').
  1678. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  1679. END.
  1680. SUBSTRING(cZeile,001) = TRIM(SUBSTRING(FormText[03],01,70)).
  1681. SUBSTRING(cZeile,071) = TRIM(SUBSTRING(FormText[04],01,70)).
  1682. DYNAMIC-FUNCTION('putStream':U, 'F', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  1683. IF iSeite = 1 AND
  1684. bAufko.Abh_Text <> '' THEN
  1685. DO:
  1686. cString = bAufko.Abh_Text.
  1687. i2 = 0.
  1688. DO i1 = 1 TO NUM-ENTRIES(cString, CHR(10)):
  1689. SUBSTRING(cZeile,008) = ENTRY(i1, cString, CHR(10)).
  1690. DYNAMIC-FUNCTION('putStream':U, 'F', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1691. i2 = i2 + 1.
  1692. END.
  1693. IF i2 > 0 THEN
  1694. DO:
  1695. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1696. END.
  1697. END.
  1698. IF iSeite = 1 THEN
  1699. DO:
  1700. i2 = 0.
  1701. FOR EACH btAufze NO-LOCK
  1702. WHERE btAufze.Platz = 0:
  1703. FIND FIRST zAufze.
  1704. BUFFER-COPY btAufze TO zAufze.
  1705. RUN RUESTSCHEIN_ARTIKELZEILE.
  1706. i2 = i2 + 1.
  1707. END.
  1708. IF i2 > 0 THEN
  1709. DO:
  1710. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1711. END.
  1712. FIND FIRST RuestPlatz NO-LOCK
  1713. WHERE RuestPlatz.Firma = bAufko.Firma
  1714. AND RuestPlatz.RuestArt = iRuestArt
  1715. AND RuestPlatz.Platz = ipPlatz NO-ERROR.
  1716. i1 = (98 - LENGTH(RuestPlatz.Bezeichnung)) / 2.
  1717. cZeile = FILL('=', i1) + ' ' + RuestPlatz.Bezeichnung + ' ' + FILL('=', i1).
  1718. DYNAMIC-FUNCTION('putStream':U, 'N', 2, INPUT-OUTPUT cZeile) NO-ERROR.
  1719. END.
  1720. DO WHILE iSeite > 1:
  1721. DYNAMIC-FUNCTION('putStream':U, 'N', 1, INPUT-OUTPUT cZeile) NO-ERROR.
  1722. LEAVE.
  1723. END.
  1724. END PROCEDURE.
  1725. /* _UIB-CODE-BLOCK-END */
  1726. &ANALYZE-RESUME
  1727. &ENDIF
  1728. &IF DEFINED(EXCLUDE-START_HTML_DOKUMENT) = 0 &THEN
  1729. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE START_HTML_DOKUMENT Procedure
  1730. PROCEDURE START_HTML_DOKUMENT :
  1731. /*------------------------------------------------------------------------------*/
  1732. /* Purpose: */
  1733. /* Parameters: <none> */
  1734. /* Notes: */
  1735. /*------------------------------------------------------------------------------*/
  1736. DEFINE INPUT PARAMETER ipiAufnr AS INTEGER NO-UNDO.
  1737. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  1738. DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO.
  1739. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
  1740. DEFINE VARIABLE oClient AS IHttpClient NO-UNDO.
  1741. DEFINE VARIABLE oURI AS URI NO-UNDO.
  1742. DEFINE VARIABLE oCredentials AS Credentials NO-UNDO.
  1743. DEFINE VARIABLE oRequest AS IHttpRequest NO-UNDO.
  1744. DEFINE VARIABLE oResponse AS IHttpResponse NO-UNDO.
  1745. DEFINE VARIABLE oResponseBody AS String NO-UNDO.
  1746. DEFINE VARIABLE lcString AS LONGCHAR NO-UNDO INIT ''.
  1747. DEFINE VARIABLE cString AS LONGCHAR NO-UNDO INIT ''.
  1748. DEFINE VARIABLE cPath AS CHARACTER NO-UNDO.
  1749. cDateiName = SUBSTITUTE('&1&2.html', SESSION:TEMP-DIRECTORY, STRING(ipiAufnr,'9999999')).
  1750. System.Net.ServicePointManager:CertificatePolicy = NEW AllowCertificatePolicy().
  1751. oClient = ClientBuilder:Build():Client.
  1752. oURI = NEW URI('http', cWebHost, INTEGER(cWebPort) ).
  1753. cPath = '/'
  1754. + cWebPath
  1755. + REPLACE(SUBSTITUTE('/ruesten_anpassung.p?Firma=&1£Aufnr=&2', Firma, ipiAufnr ), '£', '&').
  1756. oURI:Path = cPath.
  1757. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  1758. oRequest = RequestBuilder:Build('POST', oURI):ContentType('application/x-www-form-urlencoded'):Request.
  1759. oResponse = ResponseBuilder:Build():Response.
  1760. oResponse = ClientBuilder:Build():Client:Execute(oRequest).
  1761. oResponseBody = CAST(oResponse:Entity, OpenEdge.Core.STRING).
  1762. lcString = oResponseBody:VALUE.
  1763. COPY-LOB lcString TO FILE cDateiName NO-CONVERT.
  1764. /* cDateiName = SEARCH(cDateiName).*/
  1765. cString = lcString.
  1766. IF cString <> '' THEN
  1767. DO:
  1768. EMPTY TEMP-TABLE tRuestAuf.
  1769. CREATE tRuestAuf.
  1770. FOR EACH rawTable
  1771. WHERE rawTable.Firma = Firma
  1772. AND rawTable.Tabelle = 'RUESTAUF':
  1773. FIND FIRST tRuestAuf.
  1774. htRuestAuf:RAW-TRANSFER (FALSE, hrawTable:BUFFER-FIELD('rawData')).
  1775. IF tRuestAuf.Aufnr <> ipiAufnr THEN NEXT.
  1776. DELETE rawTable.
  1777. RELEASE rawTable.
  1778. END.
  1779. END.
  1780. LEAVE.
  1781. END.
  1782. DELETE OBJECT oUri.
  1783. EMPTY TEMP-TABLE ttSendMail.
  1784. CREATE ttSendMail.
  1785. ASSIGN
  1786. /* ttSendMail.cFrom = cMailFromRuestAuf*/
  1787. ttSendMail.cTo = cMailToRuestAuf
  1788. ttSendMail.cCC = 'wr@adprime.ch'
  1789. ttSendMail.cBC = ''
  1790. ttSendMail.cSubject = SUBSTITUTE('Aenderung in gerüstetem Auftrag &1', ipiAufnr)
  1791. ttSendMail.cBody = SUBSTITUTE('FILE:&1', cDateiName)
  1792. ttSendMail.cAttachedName = ''
  1793. ttSendMail.cAttachedFile = ''
  1794. ttSendMail.cMailServer = cMailServer
  1795. ttSendMail.cMailPort = cMailPort
  1796. ttSendMail.cMailKonto = cMailKonto
  1797. ttSendMail.cMailPassw = cMailPassw
  1798. ttSendMail.cDomaine = cMailDomaine
  1799. ttsendmail.lAuth = lMailAuth
  1800. ttSendMail.lSSLEnabled = lSSLEnabled.
  1801. RUN 'sendsmtpmail.p' ( INPUT httSendMail, OUTPUT cMessage, OUTPUT lRetVal ).
  1802. END PROCEDURE.
  1803. /* _UIB-CODE-BLOCK-END */
  1804. &ANALYZE-RESUME
  1805. &ENDIF
  1806. /* ************************ Function Implementations ***************** */
  1807. &IF DEFINED(EXCLUDE-getLogfileName) = 0 &THEN
  1808. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getLogfileName Procedure
  1809. FUNCTION getLogfileName RETURNS CHARACTER
  1810. ( /* parameter-definitions */ ) :
  1811. /*------------------------------------------------------------------------------*/
  1812. /* Purpose: */
  1813. /* Parameters: <none> */
  1814. /* Notes: */
  1815. /*------------------------------------------------------------------------------*/
  1816. DEFINE VARIABLE cPath AS CHARACTER NO-UNDO.
  1817. DEFINE VARIABLE cProg AS CHARACTER NO-UNDO.
  1818. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  1819. cPath = DYNAMIC-FUNCTION ('getLogFilePfad':U) NO-ERROR.
  1820. cProg = REPLACE(Progname, '\', '/').
  1821. ii = R-INDEX(cProg, '/').
  1822. IF ii > 0 THEN cProg = SUBSTRING(cProg, ii + 1).
  1823. cPath = cPath
  1824. + cProg
  1825. + '_'
  1826. + REPLACE(STRING(TODAY,'99.99.9999'), '.', '')
  1827. + '.Log'.
  1828. RETURN cPath.
  1829. END FUNCTION.
  1830. /* _UIB-CODE-BLOCK-END */
  1831. &ANALYZE-RESUME
  1832. &ENDIF
  1833. &IF DEFINED(EXCLUDE-putStream) = 0 &THEN
  1834. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION putStream Procedure
  1835. FUNCTION putStream RETURNS LOGICAL
  1836. ( ipAttrib AS CHARACTER, ipAnzZeilen AS INTEGER, INPUT-OUTPUT ipZeile AS CHARACTER ) :
  1837. /*------------------------------------------------------------------------------*/
  1838. /* Purpose: */
  1839. /* Parameters: <none> */
  1840. /* Notes: */
  1841. /*------------------------------------------------------------------------------*/
  1842. DEFINE VARIABLE cLF AS CHARACTER NO-UNDO.
  1843. cLF = FILL(CHR(10), ipAnzZeilen).
  1844. CASE ipAttrib:
  1845. WHEN 'N' THEN
  1846. PUT STREAM out_Stream CONTROL ipZeile.
  1847. WHEN 'F' THEN
  1848. PUT STREAM out_Stream CONTROL bDrucker.Drufettb ipZeile bDrucker.Drufette.
  1849. WHEN 'U' THEN
  1850. PUT STREAM out_Stream CONTROL bDrucker.Druunterb ipZeile bDrucker.Druuntere.
  1851. END CASE.
  1852. PUT STREAM out_Stream CONTROL cLF.
  1853. iZeile = iZeile + ipAnzZeilen.
  1854. ipZeile = ''.
  1855. RETURN TRUE.
  1856. END FUNCTION.
  1857. /* _UIB-CODE-BLOCK-END */
  1858. &ANALYZE-RESUME
  1859. &ENDIF