c-p_oswald-sk.w 118 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME C-Win
  7. /* Temp-Table and Buffer definitions */
  8. DEFINE NEW SHARED TEMP-TABLE XTermOut NO-UNDO LIKE TermOut.
  9. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS C-Win
  10. /*------------------------------------------------------------------------
  11. File:
  12. Description:
  13. Input Parameters:
  14. <none>
  15. Output Parameters:
  16. <none>
  17. Author:
  18. Created:
  19. ------------------------------------------------------------------------*/
  20. /* This .W file was created with the Progress UIB. */
  21. /*----------------------------------------------------------------------*/
  22. /* Create an unnamed pool to store all the widgets created
  23. by this procedure. This is a good default which assures
  24. that this procedure's triggers and internal procedures
  25. will execute in this procedure's storage, and that proper
  26. cleanup will occur on deletion of the procedure. */
  27. CREATE WIDGET-POOL.
  28. /* *************************** Definitions ************************** */
  29. /* Parameters Definitions --- */
  30. DEFINE INPUT PARAMETER iphtParam AS HANDLE NO-UNDO.
  31. /* Local Variable Definitions --- */
  32. DEF VAR FDrucken AS LOG NO-UNDO.
  33. DEF VAR TRecid AS RECID NO-UNDO.
  34. DEF VAR RabText AS CHAR NO-UNDO.
  35. DEF VAR RabWert AS DEC NO-UNDO.
  36. DEF VAR VFak_Betr AS DEC DECIMALS 4 NO-UNDO.
  37. DEF VAR GTWpfl AS DEC EXTENT 12 NO-UNDO.
  38. DEF VAR GTWust AS DEC EXTENT 12 NO-UNDO.
  39. DEF VAR GTFak_Betr AS DEC NO-UNDO.
  40. DEF VAR GTSk_Ber AS DEC NO-UNDO.
  41. DEF VAR SFaknr AS INT NO-UNDO.
  42. DEF VAR FLetzt AS LOG NO-UNDO.
  43. DEF VAR FErste AS LOG NO-UNDO.
  44. DEF VAR VZeile AS CHAR FORMAT "x(180)" NO-UNDO.
  45. DEF VAR RZeile AS CHAR FORMAT "x(180)" NO-UNDO.
  46. DEF VAR LiKopf AS LOG NO-UNDO.
  47. DEF VAR StBreite AS INT NO-UNDO.
  48. DEF VAR VWC AS INT NO-UNDO.
  49. DEF VAR VZTot AS DEC DECIMALS 4 NO-UNDO.
  50. DEF VAR FDatum AS DATE FORMAT "99.99.9999" NO-UNDO.
  51. DEF VAR VFaknr AS INT NO-UNDO.
  52. DEF VAR VesrKnr AS INT NO-UNDO.
  53. DEF VAR VesrFnr AS INT NO-UNDO.
  54. DEF VAR VBesr AS INT NO-UNDO.
  55. DEF VAR VRabText AS CHAR FORMAT "x(20)" NO-UNDO.
  56. DEF VAR VZusText AS CHAR FORMAT "x(20)" NO-UNDO.
  57. DEF VAR VEpzText AS CHAR FORMAT "x(20)" NO-UNDO.
  58. DEF VAR XVersand AS CHAR NO-UNDO.
  59. DEF VAR XAblade AS CHAR NO-UNDO.
  60. DEF VAR XChauffeur AS CHAR NO-UNDO.
  61. DEF VAR XAuf_Text LIKE Savko.Auf_Text NO-UNDO.
  62. DEF VAR XTelnr LIKE Savko.Auf_Text NO-UNDO.
  63. DEF VAR VTemp AS CHAR FORMAT "x(100)" NO-UNDO.
  64. DEF VAR FPreis AS LOG NO-UNDO.
  65. DEF VAR FBetrag AS LOG NO-UNDO.
  66. DEF VAR FRabatt AS LOG NO-UNDO.
  67. DEF VAR FUeber AS LOG NO-UNDO.
  68. DEF VAR FSamm AS LOG NO-UNDO.
  69. DEF VAR VTabTexte LIKE TabTexte.Inhalt NO-UNDO.
  70. DEF VAR VDokArt AS CHAR NO-UNDO.
  71. DEF VAR VKopfArt AS CHAR NO-UNDO.
  72. DEF VAR LiefAdr AS CHAR NO-UNDO.
  73. DEFINE VARIABLE ARecid AS RECID NO-UNDO.
  74. DEFINE VARIABLE BRecid AS RECID NO-UNDO.
  75. DEFINE VARIABLE CRecid AS RECID NO-UNDO.
  76. DEF VAR Laser AS LOG NO-UNDO.
  77. DEF VAR Schacht AS INT NO-UNDO.
  78. DEF VAR Schacht1 AS CHAR NO-UNDO.
  79. DEF VAR Schacht2 AS CHAR NO-UNDO.
  80. DEF VAR Schacht3 AS CHAR NO-UNDO.
  81. DEF VAR Schacht4 AS CHAR NO-UNDO.
  82. DEF VAR cWag AS CHAR INIT '-' NO-UNDO.
  83. DEF VAR cSenk AS CHAR INIT '|' NO-UNDO.
  84. DEF VAR cPlus AS CHAR INIT '+' NO-UNDO.
  85. DEF VAR DruckInit AS CHAR NO-UNDO.
  86. DEF VAR SchriftInit AS CHAR NO-UNDO.
  87. DEF VAR OCRBInit AS CHAR NO-UNDO.
  88. DEF VAR cUSER AS CHAR NO-UNDO.
  89. DEF VAR FormText AS CHAR FORMAT "x(80)" EXTENT 40.
  90. DEF BUFFER BSavko FOR Savko.
  91. DEF BUFFER XSavko FOR Savko.
  92. DEF BUFFER BSavze FOR Savze.
  93. DEF BUFFER BSavGebKo FOR SavGebKo.
  94. DEF BUFFER FDebst FOR Debst.
  95. DEF BUFFER LDebst FOR Debst.
  96. DEF BUFFER BTabel FOR Tabel.
  97. DEF BUFFER DTabel FOR Tabel.
  98. DEF BUFFER TFakart FOR Tabel.
  99. DEF BUFFER TAufsta FOR Tabel.
  100. DEF BUFFER BAdresse FOR Adresse.
  101. DEF VAR DebInkl AS LOG NO-UNDO.
  102. DEF VAR VWg_Grp AS INT INIT 0 NO-UNDO.
  103. DEF VAR VProd_Grp AS INT INIT 0 NO-UNDO.
  104. DEF VAR VArt_Grp AS INT INIT 0 NO-UNDO.
  105. DEF VAR AArtnr AS INT INIT 0 NO-UNDO.
  106. DEF VAR AInhalt AS INT INIT 0 NO-UNDO.
  107. DEF VAR AJahr AS INT INIT 0 NO-UNDO.
  108. DEF TEMP-TABLE TSavze FIELD Aufnr AS INT
  109. FIELD Sort1 AS CHAR
  110. FIELD Sort2 AS CHAR
  111. FIELD Sort3 AS CHAR
  112. FIELD Artnr AS INT
  113. FIELD Inhalt AS INT
  114. FIELD Jahr AS INT
  115. FIELD Pos AS INT
  116. FIELD Zeile AS RECID
  117. FIELD Preis AS DEC DECIMALS 4
  118. FIELD Aktion AS LOG.
  119. DEF TEMP-TABLE TGebKto FIELD Sort_Cd AS CHAR
  120. FIELD Geb_Cd AS CHAR
  121. FIELD Bez AS CHAR
  122. FIELD Preis AS DEC
  123. FIELD A_Anz AS DEC
  124. FIELD A_Betrag AS DEC
  125. FIELD E_Anz AS DEC
  126. FIELD E_Betrag AS DEC
  127. FIELD MWST_Art AS INT
  128. FIELD MWST_Cd AS INT.
  129. DEF TEMP-TABLE TRabSumm FIELD Rab_Summ AS INT
  130. FIELD Bez AS CHAR
  131. FIELD F_Rab_Art AS INT
  132. FIELD F_Wert AS DEC DECIMALS 4
  133. FIELD A_Rab_Art AS INT
  134. FIELD A_Wert AS DEC DECIMALS 4
  135. FIELD Auf_Rab AS DEC DECIMALS 4
  136. FIELD Abh_Rab AS DEC DECIMALS 4.
  137. DEF TEMP-TABLE TUmsGrp FIELD Ums_Grp AS INT
  138. FIELD Mwst AS DEC DECIMALS 2
  139. FIELD Bez AS CHAR
  140. FIELD Ums_Betr AS DEC DECIMALS 4.
  141. DEF TEMP-TABLE TGebuehr FIELD MWST_Cd AS INT
  142. FIELD Anz AS DEC
  143. FIELD Betrag AS DEC.
  144. DEF TEMP-TABLE SammFak FIELD Knr AS INT
  145. FIELD Samm_Nr AS INT
  146. FIELD Aufnr AS INT
  147. FIELD Faknr AS INT
  148. FIELD RID AS RECID.
  149. DEF TEMP-TABLE TSpeRab FIELD Rab_Grp AS INT
  150. FIELD Auf_Betr AS DEC DECIMALS 4.
  151. /* ---------- Globale Variablen ---------------------------------- */
  152. { v8/globvar.i" " " " "SHARED" }
  153. { v8/debivar.i " " " " "SHARED" }
  154. { v8/artivar.i " " " " "SHARED" }
  155. { v8/contvar.i " " " " "SHARED" }
  156. { v8/listtitv.i "NEW" "SHARED" }
  157. { v8/aufkototv.i "NEW" "SHARED" }
  158. { ttdruckparam.i }
  159. /* _UIB-CODE-BLOCK-END */
  160. &ANALYZE-RESUME
  161. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  162. /* ******************** Preprocessor Definitions ******************** */
  163. &Scoped-define PROCEDURE-TYPE Window
  164. &Scoped-define DB-AWARE no
  165. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  166. &Scoped-define FRAME-NAME DEFAULT-FRAME
  167. /* Standard List Definitions */
  168. &Scoped-Define ENABLED-OBJECTS RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz ~
  169. F_Kzz F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite
  170. &Scoped-Define DISPLAYED-OBJECTS F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz ~
  171. F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite
  172. /* Custom List Definitions */
  173. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  174. &Scoped-define List-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz ~
  175. F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite
  176. /* _UIB-PREPROCESSOR-BLOCK-END */
  177. &ANALYZE-RESUME
  178. /* *********************** Control Definitions ********************** */
  179. /* Define the widget handle for the window */
  180. DEFINE VAR C-Win AS WIDGET-HANDLE NO-UNDO.
  181. /* Definitions of the field level widgets */
  182. DEFINE VARIABLE E_Adresse AS CHARACTER
  183. VIEW-AS EDITOR MAX-CHARS 1000
  184. SIZE 47.6 BY 6.19
  185. BGCOLOR 15 FONT 6 NO-UNDO.
  186. DEFINE VARIABLE F_Aufnr AS INTEGER FORMAT "zzzzzz9":U INITIAL 0
  187. LABEL "Auftragsnummer"
  188. VIEW-AS FILL-IN NATIVE
  189. SIZE 14 BY 1
  190. BGCOLOR 15 NO-UNDO.
  191. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U
  192. LABEL "Fakturadatum"
  193. VIEW-AS FILL-IN NATIVE
  194. SIZE 19.6 BY 1
  195. BGCOLOR 15 NO-UNDO.
  196. DEFINE VARIABLE F_Dokart AS CHARACTER FORMAT "x(50)":U
  197. LABEL "Dokumentart"
  198. VIEW-AS FILL-IN NATIVE
  199. SIZE 29.2 BY 1
  200. BGCOLOR 15 NO-UNDO.
  201. DEFINE VARIABLE F_Drucker AS CHARACTER FORMAT "x(50)":U
  202. LABEL "Drucker"
  203. VIEW-AS FILL-IN NATIVE
  204. SIZE 50 BY 1
  205. BGCOLOR 15 NO-UNDO.
  206. DEFINE VARIABLE F_Faknr AS INTEGER FORMAT "zzzzzzz":U INITIAL 0
  207. LABEL "Fakturanummer"
  208. VIEW-AS FILL-IN NATIVE
  209. SIZE 14 BY 1
  210. BGCOLOR 15 NO-UNDO.
  211. DEFINE VARIABLE F_Fzz AS INTEGER FORMAT "zz9":U INITIAL 0
  212. LABEL "Leere Fusszeilen"
  213. VIEW-AS FILL-IN NATIVE
  214. SIZE 7 BY 1
  215. BGCOLOR 15 NO-UNDO.
  216. DEFINE VARIABLE F_KOPIE AS INTEGER FORMAT "zz9":U INITIAL 0
  217. LABEL "Anz. Kopien"
  218. VIEW-AS FILL-IN NATIVE
  219. SIZE 7 BY 1
  220. BGCOLOR 15 NO-UNDO.
  221. DEFINE VARIABLE F_Kzz AS INTEGER FORMAT "zz9":U INITIAL 0
  222. LABEL "Leere Kopfzeilen"
  223. VIEW-AS FILL-IN NATIVE
  224. SIZE 7 BY 1
  225. BGCOLOR 15 NO-UNDO.
  226. DEFINE VARIABLE F_Schrift AS CHARACTER FORMAT "x(50)":U
  227. LABEL "Schriftbild"
  228. VIEW-AS FILL-IN NATIVE
  229. SIZE 50 BY 1
  230. BGCOLOR 15 NO-UNDO.
  231. DEFINE VARIABLE F_Seite AS INTEGER FORMAT "zz9":U INITIAL 0
  232. LABEL "Seite"
  233. VIEW-AS FILL-IN NATIVE
  234. SIZE 7 BY 1
  235. BGCOLOR 15 NO-UNDO.
  236. DEFINE VARIABLE F_Tzz AS INTEGER FORMAT "zz9":U INITIAL 0
  237. LABEL "Total Zeilen"
  238. VIEW-AS FILL-IN NATIVE
  239. SIZE 7 BY 1
  240. BGCOLOR 15 NO-UNDO.
  241. DEFINE RECTANGLE RECT-1
  242. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  243. SIZE 126 BY 10.95.
  244. /* ************************ Frame Definitions *********************** */
  245. DEFINE FRAME DEFAULT-FRAME
  246. F_Drucker AT ROW 2 COL 20 COLON-ALIGNED
  247. E_Adresse AT ROW 2 COL 76.6 NO-LABEL
  248. F_Schrift AT ROW 3 COL 20 COLON-ALIGNED
  249. F_Tzz AT ROW 4 COL 20 COLON-ALIGNED
  250. F_Kzz AT ROW 5 COL 20 COLON-ALIGNED
  251. F_Fzz AT ROW 6 COL 20 COLON-ALIGNED
  252. F_Aufnr AT ROW 7 COL 20 COLON-ALIGNED
  253. F_KOPIE AT ROW 7 COL 63.4 COLON-ALIGNED
  254. F_Faknr AT ROW 8 COL 20 COLON-ALIGNED
  255. F_Datum AT ROW 9 COL 20 COLON-ALIGNED
  256. F_Dokart AT ROW 9 COL 74.6 COLON-ALIGNED
  257. F_Seite AT ROW 9 COL 115.2 COLON-ALIGNED
  258. RECT-1 AT ROW 1.24 COL 2
  259. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  260. SIDE-LABELS NO-UNDERLINE THREE-D
  261. AT COL 1 ROW 1
  262. SIZE 128 BY 13.86.
  263. /* *********************** Procedure Settings ************************ */
  264. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  265. /* Settings for THIS-PROCEDURE
  266. Type: Window
  267. Allow: Basic,Browse,DB-Fields,Window,Query
  268. Other Settings: COMPILE
  269. Temp-Tables and Buffers:
  270. TABLE: XTermOut T "NEW SHARED" NO-UNDO AnaDat TermOut
  271. END-TABLES.
  272. */
  273. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  274. /* ************************* Create Window ************************** */
  275. &ANALYZE-SUSPEND _CREATE-WINDOW
  276. IF SESSION:DISPLAY-TYPE = "GUI":U THEN
  277. CREATE WINDOW C-Win ASSIGN
  278. HIDDEN = YES
  279. TITLE = "Drucken von verbuchten Rechnungen"
  280. HEIGHT = 11.43
  281. WIDTH = 128
  282. MAX-HEIGHT = 65.57
  283. MAX-WIDTH = 512
  284. VIRTUAL-HEIGHT = 65.57
  285. VIRTUAL-WIDTH = 512
  286. RESIZE = YES
  287. SCROLL-BARS = NO
  288. STATUS-AREA = NO
  289. BGCOLOR = ?
  290. FGCOLOR = ?
  291. KEEP-FRAME-Z-ORDER = YES
  292. THREE-D = YES
  293. MESSAGE-AREA = NO
  294. SENSITIVE = YES.
  295. ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
  296. /* END WINDOW DEFINITION */
  297. &ANALYZE-RESUME
  298. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  299. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  300. /* SETTINGS FOR WINDOW C-Win
  301. VISIBLE,,RUN-PERSISTENT */
  302. /* SETTINGS FOR FRAME DEFAULT-FRAME
  303. FRAME-NAME */
  304. /* SETTINGS FOR EDITOR E_Adresse IN FRAME DEFAULT-FRAME
  305. 1 */
  306. ASSIGN
  307. E_Adresse:READ-ONLY IN FRAME DEFAULT-FRAME = TRUE.
  308. /* SETTINGS FOR FILL-IN F_Aufnr IN FRAME DEFAULT-FRAME
  309. 1 */
  310. /* SETTINGS FOR FILL-IN F_Datum IN FRAME DEFAULT-FRAME
  311. 1 */
  312. /* SETTINGS FOR FILL-IN F_Dokart IN FRAME DEFAULT-FRAME
  313. 1 */
  314. /* SETTINGS FOR FILL-IN F_Drucker IN FRAME DEFAULT-FRAME
  315. 1 */
  316. /* SETTINGS FOR FILL-IN F_Faknr IN FRAME DEFAULT-FRAME
  317. 1 */
  318. /* SETTINGS FOR FILL-IN F_Fzz IN FRAME DEFAULT-FRAME
  319. 1 */
  320. /* SETTINGS FOR FILL-IN F_KOPIE IN FRAME DEFAULT-FRAME
  321. 1 */
  322. /* SETTINGS FOR FILL-IN F_Kzz IN FRAME DEFAULT-FRAME
  323. 1 */
  324. /* SETTINGS FOR FILL-IN F_Schrift IN FRAME DEFAULT-FRAME
  325. 1 */
  326. /* SETTINGS FOR FILL-IN F_Seite IN FRAME DEFAULT-FRAME
  327. 1 */
  328. /* SETTINGS FOR FILL-IN F_Tzz IN FRAME DEFAULT-FRAME
  329. 1 */
  330. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
  331. THEN C-Win:HIDDEN = NO.
  332. /* _RUN-TIME-ATTRIBUTES-END */
  333. &ANALYZE-RESUME
  334. /* ************************ Control Triggers ************************ */
  335. &Scoped-define SELF-NAME C-Win
  336. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win
  337. ON END-ERROR OF C-Win /* Drucken von verbuchten Rechnungen */
  338. OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
  339. /* This case occurs when the user presses the "Esc" key.
  340. In a persistently run window, just ignore this. If we did not, the
  341. application would exit. */
  342. IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
  343. END.
  344. /* _UIB-CODE-BLOCK-END */
  345. &ANALYZE-RESUME
  346. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win
  347. ON WINDOW-CLOSE OF C-Win /* Drucken von verbuchten Rechnungen */
  348. DO:
  349. /* This event will close the window and terminate the procedure. */
  350. APPLY "CLOSE":U TO THIS-PROCEDURE.
  351. RETURN NO-APPLY.
  352. END.
  353. /* _UIB-CODE-BLOCK-END */
  354. &ANALYZE-RESUME
  355. &UNDEFINE SELF-NAME
  356. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK C-Win
  357. /* *************************** Main Block *************************** */
  358. /* Set CURRENT-WINDOW: this will parent dialog-boxes and frames. */
  359. ASSIGN CURRENT-WINDOW = {&WINDOW-NAME}
  360. THIS-PROCEDURE:CURRENT-WINDOW = {&WINDOW-NAME}.
  361. Laser = FALSE.
  362. Schacht1 = CHR(27) + '&l4H'.
  363. Schacht2 = CHR(27) + '&l1H'.
  364. Schacht3 = CHR(27) + '&l5H'.
  365. Schacht4 = CHR(27) + '&l3H'.
  366. Druckinit = CHR(27) + 'E'
  367. + CHR(27) + '&l0O'
  368. + CHR(27) + '&k2G'
  369. + CHR(27) + '&l6d26a70P'
  370. + CHR(27) + '9'
  371. + CHR(27) + '&a0L'
  372. + CHR(27) + '&l0E'.
  373. SchriftInit = CHR(27) + '(s4102t13h0b0s0P'
  374. + CHR(27) + '(10U'.
  375. OCRBInit = CHR(27) + '(1O' + CHR(27) + '(s10h0b0s0p110T'.
  376. EMPTY TEMP-TABLE tParam.
  377. htParam:BUFFER-COPY(iphtParam).
  378. FIND FIRST tParam.
  379. GVFirma = tParam.cFirma.
  380. RUN INITIALISIERUNG.
  381. ON CLOSE OF THIS-PROCEDURE RUN disable_UI.
  382. PAUSE 0 BEFORE-HIDE.
  383. MAIN-BLOCK:
  384. DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK
  385. ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK:
  386. RUN enable_UI.
  387. FDrucken = TRUE.
  388. /* cUser = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR. */
  389. VERARBEITEN:
  390. DO WHILE FDrucken:
  391. FIND FIRST Tabel USE-INDEX Tabel-k1
  392. WHERE Tabel.Firma = GVFirma
  393. AND Tabel.RecArt = 'AUFDRUCK'
  394. AND Tabel.CodeC = cUser
  395. AND Tabel.Bez1 = '' NO-LOCK NO-ERROR.
  396. IF NOT AVAILABLE Tabel THEN DO:
  397. FDrucken = FALSE.
  398. NEXT.
  399. END.
  400. TRecid = RECID(Tabel).
  401. REPEAT TRANSACTION:
  402. FIND BTabel WHERE RECID(BTabel) = TRecid
  403. EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  404. IF AVAILABLE BTabel THEN DO:
  405. BTabel.Bez1 = 'A'.
  406. RELEASE BTabel.
  407. LEAVE.
  408. END.
  409. IF LOCKED BTabel THEN NEXT.
  410. TRecid = 0.
  411. LEAVE.
  412. END.
  413. IF TRecid = 0 THEN NEXT.
  414. FIND Tabel WHERE RECID(Tabel) = TRecid NO-LOCK.
  415. RUN DRUCKEN.
  416. REPEAT TRANSACTION:
  417. FIND BTabel WHERE RECID(BTabel) = TRecid.
  418. DELETE BTabel.
  419. RELEASE BTabel.
  420. LEAVE.
  421. END.
  422. END.
  423. /*
  424. IF NOT THIS-PROCEDURE:PERSISTENT THEN WAIT-FOR CLOSE OF THIS-PROCEDURE.
  425. */
  426. APPLY 'CLOSE' TO THIS-PROCEDURE.
  427. END.
  428. /* _UIB-CODE-BLOCK-END */
  429. &ANALYZE-RESUME
  430. /* ********************** Internal Procedures *********************** */
  431. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ABLADEVORSCHRIFT C-Win
  432. PROCEDURE ABLADEVORSCHRIFT :
  433. /*------------------------------------------------------------------------------
  434. Purpose:
  435. Parameters: <none>
  436. Notes:
  437. ------------------------------------------------------------------------------*/
  438. XAblade = ''.
  439. FIND Tabel USE-INDEX Tabel-k1
  440. WHERE Tabel.Firma = GVFirma
  441. AND Tabel.RecArt = 'ABLAD'
  442. AND Tabel.CodeC = ''
  443. AND Tabel.CodeI = BSavko.Ablad_Vor
  444. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  445. IF NOT AVAILABLE tabel THEN DO:
  446. XAblade = BSavko.Ablad_Vor_Text.
  447. RETURN.
  448. END.
  449. IF LENGTH(Tabel.Bez1) > 4 THEN XAblade = Tabel.Bez1.
  450. IF BSavko.Ablad_Vor_Text <> '' THEN DO:
  451. IF XAblade <> '' THEN XAblade = XAblade + " / ".
  452. XAblade = BSavko.Ablad_Vor_Text.
  453. END.
  454. END PROCEDURE.
  455. /* _UIB-CODE-BLOCK-END */
  456. &ANALYZE-RESUME
  457. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE C-Win
  458. PROCEDURE ARTIKELZEILE :
  459. /*------------------------------------------------------------------------------
  460. Purpose:
  461. Parameters: <none>
  462. Notes:
  463. ------------------------------------------------------------------------------*/
  464. VZeile = RZeile.
  465. DO WHILE Savze.Artnr = 0:
  466. SUBSTRING(VZeile,036) = STRING(Savze.Bez1,"x(30)").
  467. { v8/putstream.i "1" }
  468. IF Savze.Bez2 <> '' THEN DO:
  469. VZeile = RZeile.
  470. SUBSTRING(VZeile,036) = STRING(Savze.Bez2,"x(30)").
  471. { v8/putstream.i "1" }
  472. END.
  473. RETURN.
  474. END.
  475. FIND Artst OF Savze NO-LOCK.
  476. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  477. AND GGebinde.Geb_Cd = Savze.GGeb_Cd NO-LOCK NO-ERROR.
  478. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  479. AND VGebinde.Geb_Cd = Savze.VGeb_Cd NO-LOCK NO-ERROR.
  480. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  481. AND KGebinde.Geb_Cd = Savze.KGeb_Cd NO-LOCK NO-ERROR.
  482. VZeile = RZeile.
  483. SUBSTRING(VZeile,001) = STRING(Savze.Artnr,"999999").
  484. IF Savze.GGeb_Me <> 0 THEN DO:
  485. SUBSTRING(VZeile,008) = STRING(Savze.GGeb_Me,"->9").
  486. SUBSTRING(VZeile,012) = STRING(GGebinde.KBez,"x(08)").
  487. { v8/putstream.i "1" }
  488. VZeile = RZeile.
  489. END.
  490. IF Savze.VGeb_Me <> 0 THEN DO:
  491. SUBSTRING(VZeile,008) = STRING(Savze.VGeb_Me ,"->9").
  492. SUBSTRING(VZeile,012) = STRING(VGebinde.KBez ,"x(08)").
  493. END.
  494. SUBSTRING(VZeile,021) = STRING(Savze.MGeli ,"->>>9").
  495. SUBSTRING(VZeile,027) = STRING(KGebinde.KBez ,"x(08)").
  496. SUBSTRING(VZeile,036) = STRING(Savze.Bez1 ,"x(30)").
  497. IF Savze.Alk_Gehalt <> 0 THEN DO:
  498. SUBSTRING(VZeile,066) = STRING(Savze.Alk_Gehalt,"z9.9%").
  499. END.
  500. IF Savze.Jahr > 9 THEN DO:
  501. SUBSTRING(VZeile,072) = SUBSTRING(STRING(Savze.Jahr,"9999"),03).
  502. END.
  503. IF FPreis THEN DO:
  504. IF Savze.Preis > 999.99 THEN SUBSTRING(VZeile,075) = STRING(Savze.Preis,"zzz9.99").
  505. ELSE SUBSTRING(VZeile,075) = STRING(Savze.Preis,"zz9.999").
  506. END.
  507. IF FBetrag THEN DO:
  508. SUBSTRING(VZeile,083) = STRING(Savze.Bru_Betr ,"->>,>>9.99").
  509. SUBSTRING(VZeile,094) = STRING(Savze.WuCd ,"z9").
  510. END.
  511. { v8/putstream.i "1" }
  512. IF Savze.Bez2 <> '' THEN DO:
  513. VZeile = RZeile.
  514. SUBSTRING(VZeile,036) = STRING(Savze.Bez2,"x(30)").
  515. { v8/putstream.i "1" }
  516. END.
  517. IF Savze.Aktion THEN DO:
  518. VZeile = RZeile.
  519. SUBSTRING(VZeile,036) = STRING(Savze.Aktion_Text,"x(30)").
  520. { v8/putstream.i "1" }
  521. END.
  522. DO WHILE FBetrag:
  523. IF Savze.Rab_Betr = 0 THEN LEAVE.
  524. VZeile = RZeile.
  525. RabWert = ABSOLUTE(Savze.Rab_Wert).
  526. IF Savze.Rab_Art = 3 THEN RabText = VEpzText.
  527. ELSE DO:
  528. IF Savze.Rab_Betr < 0 THEN RabText = VZusText.
  529. IF Savze.Rab_Betr > 0 THEN RabText = VRabText.
  530. END.
  531. SUBSTRING(VZeile,036) = TRIM(RabText).
  532. IF Savze.Rab_Art = 1
  533. THEN SUBSTRING(VZeile,055) = STRING(RabWert,"->9.9 %").
  534. IF Savze.Rab_Art = 2 OR
  535. Savze.Rab_Art = 3
  536. THEN SUBSTRING(VZeile,055) = STRING(RabWert,"-9.99 Fr.").
  537. SUBSTRING(VZeile,083) = STRING(- Savze.Rab_Betr ,"->>,>>9.99").
  538. { v8/putstream.i "1" }
  539. LEAVE.
  540. END.
  541. DO WHILE FBetrag:
  542. IF Savze.Zus_Betr = 0 THEN LEAVE.
  543. VZeile = RZeile.
  544. RabWert = ABSOLUTE(Savze.Zus_Wert).
  545. IF Savze.Zus_Art = 3 THEN RabText = VEpzText.
  546. ELSE DO:
  547. IF Savze.Zus_Betr > 0 THEN RabText = VZusText.
  548. IF Savze.Zus_Betr < 0 THEN RabText = VRabText.
  549. END.
  550. SUBSTRING(VZeile,036) = TRIM(RabText).
  551. IF Savze.Zus_Art = 1
  552. THEN SUBSTRING(VZeile,055) = STRING(RabWert,"->9.9 %").
  553. IF Savze.Zus_Art = 2 OR
  554. Savze.Zus_Art = 3
  555. THEN SUBSTRING(VZeile,055) = STRING(RabWert,"-9.99 Fr.").
  556. SUBSTRING(VZeile,083) = STRING(+ Savze.Zus_Betr ,"->>,>>9.99").
  557. { v8/putstream.i "1" }
  558. LEAVE.
  559. END.
  560. /* ---- Summengruppen-Total -------------------------------------------- */
  561. IF Savze.Rab_Su_Grp <> 0 THEN DO:
  562. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Savze.Rab_Su_Grp NO-ERROR.
  563. IF AVAILABLE TRabSumm THEN DO:
  564. TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Savze.Auf_Rab.
  565. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Savze.Abh_Rab.
  566. END.
  567. END.
  568. /* ---- Warengruppen-Totale -------------------------------------------- */
  569. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
  570. AND TUmsGrp.MWst = Savze.MWSt% NO-ERROR.
  571. IF NOT AVAILABLE TUmsGrp THEN DO:
  572. FIND WarenGrp USE-INDEX WarenGrp-k1
  573. WHERE WarenGrp.Firma = GVFirma
  574. AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
  575. CREATE TUmsGrp.
  576. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp
  577. TUmsGrp.Mwst = Savze.MWSt%.
  578. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
  579. ELSE TUmsGrp.Bez = "??????????".
  580. END.
  581. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
  582. + Savze.Net_Betr
  583. - Savze.Auf_Rab
  584. - Savze.Abh_Rab.
  585. END PROCEDURE.
  586. /* _UIB-CODE-BLOCK-END */
  587. &ANALYZE-RESUME
  588. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CHAUFFEUR C-Win
  589. PROCEDURE CHAUFFEUR :
  590. /*------------------------------------------------------------------------------
  591. Purpose:
  592. Parameters: <none>
  593. Notes:
  594. ------------------------------------------------------------------------------*/
  595. XChauffeur = ''.
  596. FIND Tabel USE-INDEX Tabel-k1
  597. WHERE Tabel.Firma = GVFirma
  598. AND Tabel.RecArt = 'FAHRER'
  599. AND Tabel.CodeC = ''
  600. AND Tabel.CodeI = BSavko.Fahrer
  601. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  602. IF AVAILABLE Tabel THEN XChauffeur = Tabel.Bez1.
  603. END PROCEDURE.
  604. /* _UIB-CODE-BLOCK-END */
  605. &ANALYZE-RESUME
  606. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI C-Win _DEFAULT-DISABLE
  607. PROCEDURE disable_UI :
  608. /*------------------------------------------------------------------------------
  609. Purpose: DISABLE the User Interface
  610. Parameters: <none>
  611. Notes: Here we clean-up the user-interface by deleting
  612. dynamic widgets we have created and/or hide
  613. frames. This procedure is usually called when
  614. we are ready to "clean-up" after running.
  615. ------------------------------------------------------------------------------*/
  616. /* Delete the WINDOW we created */
  617. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
  618. THEN DELETE WIDGET C-Win.
  619. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  620. END PROCEDURE.
  621. /* _UIB-CODE-BLOCK-END */
  622. &ANALYZE-RESUME
  623. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE C-Win
  624. PROCEDURE DRUCKAUSGABE :
  625. /*------------------------------------------------------------------------------
  626. Purpose:
  627. Parameters: <none>
  628. Notes:
  629. ------------------------------------------------------------------------------*/
  630. DEF VAR AnzKopien AS INT NO-UNDO.
  631. DEF VAR sRecid AS RECID NO-UNDO.
  632. DEF VAR iSize AS INT NO-UNDO.
  633. AnzKopien = F_Kopie.
  634. IF AnzKopien = 0 THEN AnzKopien = 1.
  635. DO VCopy = 1 TO AnzKopien:
  636. sRecid = RECID(BSchrift).
  637. Schacht = BLiDruck.Schacht.
  638. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, VTemp ,
  639. RECID(BSchrift),
  640. ? ,
  641. 240 , /* Blockgrösse */
  642. 'ibm850' ,
  643. 1 ). /* Anzahl Kopien */
  644. IF iSize = 0 THEN DO:
  645. MESSAGE 'Druckvorgang gescheitert !!! '
  646. VIEW-AS ALERT-BOX ERROR.
  647. END.
  648. END.
  649. END PROCEDURE.
  650. /* _UIB-CODE-BLOCK-END */
  651. &ANALYZE-RESUME
  652. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN C-Win
  653. PROCEDURE DRUCKEN :
  654. /*------------------------------------------------------------------------------
  655. Purpose:
  656. Parameters: <none>
  657. Notes:
  658. ------------------------------------------------------------------------------*/
  659. DO WITH FRAME {&FRAME-NAME}:
  660. DEF VAR XFakArt AS INT NO-UNDO.
  661. DEF VAR XAufSta AS INT NO-UNDO.
  662. DEF VAR ARecid AS RECID NO-UNDO.
  663. DEF VAR BRecid AS RECID NO-UNDO.
  664. DEF VAR CRecid AS RECID NO-UNDO.
  665. ARecid = Tabel.Int_1.
  666. BRecid = Tabel.Int_2.
  667. CRecid = Tabel.Int_3.
  668. VBesr = Tabel.Dec_1.
  669. Schacht = Tabel.Dec_3.
  670. VDokArt = Tabel.Bez2.
  671. F_DokArt = Tabel.Bez2.
  672. IF Schacht > 0 THEN Laser = TRUE.
  673. ELSE Laser = FALSE.
  674. IF Laser THEN DO:
  675. cWag = CHR(142).
  676. cSenk = CHR(131).
  677. cPlus = CHR(143).
  678. END.
  679. vDokArt = 'LieferFak'.
  680. FIND BSteuer WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR.
  681. FIND BListen WHERE RECID(BListen) = ARecid NO-LOCK NO-ERROR.
  682. FIND BLiDruck WHERE RECID(BLiDruck) = BRecid NO-LOCK NO-ERROR.
  683. FIND BSavko WHERE RECID(BSavko) = CRecid NO-LOCK NO-ERROR.
  684. IF NOT AVAILABLE BSavko THEN RETURN.
  685. F_Aufnr = BSavko.Aufnr.
  686. F_Faknr = BSavko.Faknr.
  687. F_Datum = BSavko.Fak_Datum.
  688. IF F_Datum = ? THEN F_Datum = TODAY.
  689. FDatum = F_Datum.
  690. VSort = BListen.Sort.
  691. F_Drucker = BLiDruck.ListDru.
  692. F_Schrift = BLiDruck.ListBild.
  693. F_TZZ = BLiDruck.Listtzz.
  694. F_KZZ = BLiDruck.Listkzz.
  695. F_FZZ = BLiDruck.Listfzz.
  696. F_KOPIE = BLiDruck.ListCopy.
  697. FIND TFakart USE-INDEX Tabel-k1
  698. WHERE TFakart.Firma = GVFirma
  699. AND TFakart.RecArt = 'FAKART'
  700. AND TFakart.CodeC = ''
  701. AND TFakart.CodeI = BSavko.Fak_Art
  702. AND TFakart.Sprcd = 1 NO-LOCK NO-ERROR.
  703. F_Dokart = TFakart.Bez1.
  704. FIND TAufsta USE-INDEX Tabel-k1
  705. WHERE TAufsta.Firma = GVFirma
  706. AND TAufsta.RecArt = 'AUFSTATUS'
  707. AND TAufsta.CodeC = ''
  708. AND TAufsta.CodeI = BSavko.Auf_Sta
  709. AND TAufsta.Sprcd = 1 NO-LOCK NO-ERROR.
  710. FIND Adresse USE-INDEX Adresse-k1
  711. WHERE Adresse.Firma = AdFirma
  712. AND Adresse.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  713. E_Adresse = ''.
  714. IF BSavko.Adresse[05] <> '' THEN DO:
  715. E_Adresse = CHR(10)
  716. + CHR(10)
  717. + BSavko.Adresse[01] + CHR(10)
  718. + BSavko.Adresse[02] + CHR(10)
  719. + BSavko.Adresse[03] + CHR(10)
  720. + BSavko.Adresse[04] + CHR(10)
  721. + BSavko.Adresse[05].
  722. END.
  723. ELSE DO:
  724. E_Adresse = Adresse.Anschrift[05] + CHR(10) +
  725. Adresse.Anschrift[06] + CHR(10) +
  726. Adresse.Anschrift[07] + CHR(10) +
  727. Adresse.Anschrift[08] + CHR(10) +
  728. Adresse.Anschrift[09] + CHR(10) +
  729. Adresse.Anschrift[10] + CHR(10) +
  730. Adresse.Anschrift[11] + CHR(10) +
  731. Adresse.Anschrift[12].
  732. END.
  733. DISPLAY {&List-1}.
  734. RUN LIBILD.
  735. FOR EACH SammFak:
  736. DELETE SammFak.
  737. END.
  738. IF BSavko.Samm_Nr <> 0 AND
  739. NOT VDokArt BEGINS 'Ruest' THEN DO:
  740. RUN SAMMELSUCHEN.
  741. END.
  742. ELSE DO:
  743. CREATE SammFak.
  744. ASSIGN SammFak.Knr = BSavko.Fak_Knr
  745. SammFak.Aufnr = BSavko.Aufnr
  746. SammFak.Samm_Nr = BSavko.Aufnr
  747. SammFak.RID = RECID(BSavko).
  748. END.
  749. RUN WORKFILE.
  750. IF DOpen = TRUE THEN OUTPUT STREAM Out_Stream TO VALUE(VTemp).
  751. FOR EACH SammFak BREAK BY SammFak.Knr
  752. BY SammFak.Samm_Nr
  753. BY SammFak.Aufnr :
  754. FIND BSavko WHERE RECID(BSavko) = SammFak.RID NO-LOCK NO-ERROR.
  755. F_Aufnr = BSavko.Aufnr.
  756. DISPLAY F_Aufnr WITH FRAME {&FRAME-NAME}.
  757. VWg_Grp = 0.
  758. VProd_Grp = 0.
  759. VArt_Grp = 0.
  760. VFak_Betr = 0.
  761. FErste = FALSE.
  762. FOR EACH TSavze:
  763. DELETE TSavze.
  764. END.
  765. FOR EACH TGebKto:
  766. DELETE TGebKto.
  767. END.
  768. FOR EACH TRabSumm:
  769. DELETE TRabSumm.
  770. END.
  771. FOR EACH TSpeRab:
  772. DELETE TSpeRab.
  773. END.
  774. FOR EACH TGebuehr:
  775. DELETE TGebuehr.
  776. END.
  777. IF FIRST-OF ( SammFak.Samm_Nr ) THEN DO:
  778. FOR EACH TUmsGrp :
  779. DELETE TUmsGrp .
  780. END.
  781. GTWpfl = 0.
  782. GTWust = 0.
  783. GTFak_Betr = 0.
  784. GTSk_Ber = 0.
  785. SFaknr = BSavko.Faknr.
  786. FLetzt = FALSE.
  787. FErste = TRUE.
  788. TiDruck = TRUE.
  789. VSeite = 0.
  790. END.
  791. FOR EACH BSavze USE-INDEX Savze-k1
  792. WHERE BSavze.Firma = BSavko.Firma
  793. AND BSavze.Aufnr = BSavko.Aufnr NO-LOCK:
  794. IF BSavze.Artnr <> 0 THEN DO:
  795. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  796. AND GGebinde.Geb_Cd = BSavze.GGeb_Cd NO-LOCK NO-ERROR.
  797. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  798. AND VGebinde.Geb_Cd = BSavze.VGeb_Cd NO-LOCK NO-ERROR.
  799. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  800. AND KGebinde.Geb_Cd = BSavze.KGeb_Cd NO-LOCK NO-ERROR.
  801. END.
  802. CREATE TSavze.
  803. ASSIGN TSavze.Aufnr = BSavze.Aufnr
  804. TSavze.Artnr = BSavze.Artnr
  805. TSavze.Inhalt = BSavze.Inhalt
  806. TSavze.Jahr = BSavze.Jahr
  807. TSavze.Pos = BSavze.Pos
  808. TSavze.Zeile = RECID(BSavze)
  809. TSavze.Aktion = BSavze.Aktion
  810. TSavze.Preis = BSavze.Preis.
  811. IF BSavze.Artnr <> 0 THEN DO:
  812. FIND Artst OF BSavze NO-LOCK.
  813. VWg_Grp = Artst.Wg_Grp.
  814. VProd_Grp = Artst.Prod_Grp.
  815. VArt_Grp = Artst.Art_Grp.
  816. AArtnr = Artst.Artnr.
  817. AInhalt = Artst.Inhalt.
  818. AJahr = Artst.Jahr.
  819. END.
  820. IF VSort = 1 THEN DO:
  821. ASSIGN TSavze.Sort1 = STRING(VWg_Grp ,"999")
  822. TSavze.Sort2 = STRING(VProd_Grp ,"999")
  823. TSavze.Sort3 = STRING(VArt_Grp ,"999").
  824. END.
  825. IF BSavze.Artnr = 0 THEN DO:
  826. ASSIGN TSavze.Artnr = AArtnr
  827. TSavze.Inhalt = AInhalt
  828. TSavze.Jahr = AJahr.
  829. END.
  830. IF BSavze.Artnr = 0 THEN NEXT.
  831. /* Spezial-Auftrags-Rabatt -------------------------------------------- */
  832. IF BSavze.Auf_Sp_Grp > 0 THEN DO:
  833. FIND FIRST TSpeRab WHERE TSpeRab.Rab_Grp = BSavze.Auf_Sp_Grp NO-ERROR.
  834. IF NOT AVAILABLE TSpeRab THEN DO:
  835. CREATE TSpeRab.
  836. ASSIGN TSpeRab.Rab_Grp = BSavze.Auf_Sp_Grp.
  837. END.
  838. TSpeRab.Auf_Betr = TSpeRab.Auf_Betr + BSavze.Auf_Sp_Rab.
  839. END.
  840. /* Summengruppen-Totale ------------------------------------------------ */
  841. DO WHILE BSavze.Rab_Su_Grp > 0:
  842. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = BSavze.Rab_Su_Grp NO-ERROR.
  843. IF NOT AVAILABLE TRabSumm THEN DO:
  844. FIND FIRST RabSumm USE-INDEX RabSumm-k1
  845. WHERE RabSumm.Firma = GVFirma
  846. AND RabSumm.Rab_Summ = BSavze.Rab_Su_Grp
  847. NO-LOCK NO-ERROR.
  848. IF NOT AVAILABLE RabSumm THEN LEAVE.
  849. CREATE TRabSumm.
  850. ASSIGN TRabSumm.Rab_Summ = BSavze.Rab_Su_Grp
  851. TRabSumm.Bez = RabSumm.Bez
  852. TRabSumm.Auf_Rab = 0
  853. TRabSumm.Abh_Rab = 0.
  854. END.
  855. LEAVE.
  856. END.
  857. END.
  858. IF LAST-OF ( SammFak.Samm_Nr ) THEN DO:
  859. FLetzt = TRUE.
  860. END.
  861. RUN VALUE(VDokArt).
  862. IF NOT FLetzt THEN NEXT.
  863. END. /* FOR EACH SammFak */
  864. IF DOpen THEN OUTPUT STREAM Out_Stream CLOSE.
  865. DOpen = FALSE.
  866. RUN DRUCKAUSGABE.
  867. IF VTemp <> '' THEN OS-DELETE VALUE(VTemp).
  868. REPEAT TRANSACTION:
  869. FIND BListen WHERE RECID(BListen) = ARecid.
  870. BListen.Listfl = ''.
  871. RELEASE BListen.
  872. LEAVE.
  873. END.
  874. END. /* DO WITH FRAME */
  875. RETURN NO-APPLY.
  876. END PROCEDURE.
  877. /* _UIB-CODE-BLOCK-END */
  878. &ANALYZE-RESUME
  879. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI C-Win _DEFAULT-ENABLE
  880. PROCEDURE enable_UI :
  881. /*------------------------------------------------------------------------------
  882. Purpose: ENABLE the User Interface
  883. Parameters: <none>
  884. Notes: Here we display/view/enable the widgets in the
  885. user-interface. In addition, OPEN all queries
  886. associated with each FRAME and BROWSE.
  887. These statements here are based on the "Other
  888. Settings" section of the widget Property Sheets.
  889. ------------------------------------------------------------------------------*/
  890. DISPLAY F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_KOPIE
  891. F_Faknr F_Datum F_Dokart F_Seite
  892. WITH FRAME DEFAULT-FRAME IN WINDOW C-Win.
  893. ENABLE RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_KOPIE
  894. F_Faknr F_Datum F_Dokart F_Seite
  895. WITH FRAME DEFAULT-FRAME IN WINDOW C-Win.
  896. {&OPEN-BROWSERS-IN-QUERY-DEFAULT-FRAME}
  897. VIEW C-Win.
  898. END PROCEDURE.
  899. /* _UIB-CODE-BLOCK-END */
  900. &ANALYZE-RESUME
  901. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA C-Win
  902. PROCEDURE FAKTURA :
  903. /*------------------------------------------------------------------------------
  904. Purpose:
  905. Parameters: <none>
  906. Notes:
  907. ------------------------------------------------------------------------------*/
  908. VSeite = 0.
  909. VFak_Betr = 0.
  910. LiKopf = TRUE.
  911. FPreis = TRUE.
  912. FBetrag = TRUE.
  913. FRabatt = TRUE.
  914. FUeber = TRUE.
  915. FSamm = FALSE.
  916. VKopfArt = 'FAKTURA_KOPF'.
  917. RUN VALUE(VKopfArt).
  918. FOR EACH TSavze NO-LOCK
  919. BY TSavze.Aufnr
  920. BY TSavze.Sort1
  921. BY TSavze.Sort2
  922. BY TSavze.Sort3
  923. BY TSavze.Artnr
  924. BY TSavze.Inhalt
  925. BY TSavze.Jahr
  926. BY TSavze.Pos :
  927. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  928. RUN VALUE(VKopfArt).
  929. END.
  930. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK.
  931. RUN ARTIKELZEILE.
  932. VFak_Betr = VFak_Betr + Savze.Net_Betr.
  933. END.
  934. VZeile = FILL(cWag, StBreite).
  935. { v8/putstream.i "1" }
  936. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)).
  937. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  938. { v8/putstreamf.i "1" }
  939. LiKopf = FALSE.
  940. RUN SUMMENRABATTE.
  941. { v8/putstream.i "1" }
  942. RUN GEBINDE_SALDO.
  943. RUN GEBINDE_ABRECHNUNG.
  944. RUN MEHRWERTSTEUER.
  945. SUBSTRING(VZeile,083) = '=========='.
  946. { v8/putstream.i "2" }
  947. FUeber = FALSE.
  948. RUN ZAHLUNGSKONDITION.
  949. RUN UMSATZVERTEILUNG.
  950. RUN KOPF_MUTATION.
  951. Rundbetr = VFak_Betr.
  952. VesrKnr = BSavko.Fak_Knr.
  953. VesrFnr = BSavko.Faknr.
  954. IF VBesr = 2 THEN RUN VESR_DRUCK02.
  955. ELSE RUN VESR_DRUCK.
  956. END PROCEDURE.
  957. /* _UIB-CODE-BLOCK-END */
  958. &ANALYZE-RESUME
  959. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA_KOPF C-Win
  960. PROCEDURE FAKTURA_KOPF :
  961. /*------------------------------------------------------------------------------
  962. Purpose:
  963. Parameters: <none>
  964. Notes:
  965. ------------------------------------------------------------------------------*/
  966. RUN NEUE_SEITE.
  967. IF VSeite = 1 THEN DO:
  968. IF Laser THEN DO:
  969. VZeile = DruckInit + SchriftInit.
  970. CASE Schacht:
  971. WHEN 1 THEN VZeile = VZeile + Schacht1.
  972. WHEN 2 THEN VZeile = VZeile + Schacht2.
  973. WHEN 3 THEN VZeile = VZeile + Schacht3.
  974. WHEN 4 THEN VZeile = VZeile + Schacht4.
  975. END CASE.
  976. PUT STREAM Out_Stream CONTROL VZeile.
  977. END.
  978. FIND Adresse USE-INDEX Adresse-k1
  979. WHERE Adresse.Firma = AdFirma
  980. AND Adresse.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  981. FIND LDebst USE-INDEX Debst-k1
  982. WHERE LDebst.Firma = GVFirma
  983. AND LDebst.Knr = BSavko.Knr NO-LOCK NO-ERROR.
  984. FIND FDebst USE-INDEX Debst-k1
  985. WHERE FDebst.Firma = GVFirma
  986. AND FDebst.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  987. FIND Wust USE-INDEX Wust-k1
  988. WHERE Wust.CodeK = LDebst.MWST
  989. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  990. LVSprcd = Adresse.Sprcd.
  991. DebInkl = FALSE.
  992. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  993. XTelnr = ''.
  994. IF DebInkl THEN DO:
  995. IF Adresse.Tel-2 <> '' THEN XTelnr = Adresse.Tel-2.
  996. ELSE XTelnr = Adresse.Tel-1.
  997. END.
  998. ELSE DO:
  999. IF Adresse.Tel-1 <> '' THEN XTelnr = Adresse.Tel-1.
  1000. ELSE XTelnr = Adresse.Tel-2.
  1001. END.
  1002. END.
  1003. F_Seite = VSeite.
  1004. F_Faknr = SFaknr.
  1005. DISPLAY F_Seite
  1006. F_Faknr WITH FRAME {&FRAME-NAME}.
  1007. VZeile = ''.
  1008. { v8/putstream.i BLiDruck.Listkzz }.
  1009. IF BSavko.Adresse[05] <> '' THEN DO:
  1010. DO ix = 1 TO 5:
  1011. SUBSTRING(VZeile,053) = BSavko.Adresse[ix].
  1012. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END.
  1013. ELSE DO: { v8/putstream.i "1" }. END.
  1014. END.
  1015. END.
  1016. ELSE DO:
  1017. DO ix = 7 TO 11:
  1018. SUBSTRING(VZeile,053) = Adresse.Anschrift[ix].
  1019. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END.
  1020. ELSE DO: { v8/putstream.i "1" }. END.
  1021. END.
  1022. END.
  1023. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20))
  1024. + STRING(SFaknr,"z999999")
  1025. + " /"
  1026. + STRING(VSeite,"zz9").
  1027. { v8/putstreamf.i "1" }
  1028. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20))
  1029. + " "
  1030. + BSteuer.MWST_Nr.
  1031. { v8/putstream.i "1" }
  1032. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20))
  1033. + " "
  1034. + STRING(FDatum,"99.99.9999").
  1035. { v8/putstream.i "2" }
  1036. DO WHILE VSeite = 1.
  1037. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],21,20))
  1038. + " "
  1039. + BSavko.I_Best.
  1040. { v8/putstream.i "1" }
  1041. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20))
  1042. + " "
  1043. + STRING(BSavko.Aufnr,"9999999").
  1044. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[07],41,20))
  1045. + " "
  1046. + STRING(BSavko.Auf_Datum,"99.99.9999").
  1047. SUBSTRING(VZeile,071) = TRIM(SUBSTRING(FormText[08],01,20))
  1048. + " "
  1049. + STRING(BSavko.Fak_Knr,"999999").
  1050. { v8/putstream.i "2" }
  1051. XAuf_Text = BSavko.Auf_Text.
  1052. i1 = INDEX(XAuf_Text, CHR(10)).
  1053. i2 = 0.
  1054. DO WHILE i1 > 0:
  1055. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  1056. { v8/putstreamf.i "1" }
  1057. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  1058. i1 = INDEX(XAuf_Text, CHR(10)).
  1059. i2 = i2 + 1.
  1060. END.
  1061. IF XAuf_Text <> '' THEN DO:
  1062. SUBSTRING(VZeile,001) = XAuf_Text.
  1063. { v8/putstreamf.i "1" }
  1064. i2 = i2 + 1.
  1065. END.
  1066. IF i2 > 0 THEN DO:
  1067. { v8/putstream.i "1" }
  1068. END.
  1069. XAuf_Text = BSavko.Abh_Text.
  1070. i1 = INDEX(XAuf_Text, CHR(10)).
  1071. i2 = 0.
  1072. DO WHILE i1 > 0:
  1073. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  1074. { v8/putstreamf.i "1" }
  1075. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  1076. i1 = INDEX(XAuf_Text, CHR(10)).
  1077. i2 = i2 + 1.
  1078. END.
  1079. IF XAuf_Text <> '' THEN DO:
  1080. SUBSTRING(VZeile,001) = XAuf_Text.
  1081. { v8/putstreamf.i "1" }
  1082. i2 = i2 + 1.
  1083. END.
  1084. IF i2 > 0 THEN DO:
  1085. { v8/putstream.i "1" }
  1086. END.
  1087. LEAVE.
  1088. END.
  1089. IF LiKopf THEN DO:
  1090. SUBSTRING(VZeile,001) = FormText[03].
  1091. SUBSTRING(VZeile,071) = FormText[04].
  1092. { v8/putstream.i "1" }
  1093. SUBSTRING(VZeile,001) = FormText[05].
  1094. SUBSTRING(VZeile,071) = FormText[06].
  1095. StBreite = LENGTH(VZeile).
  1096. { v8/putstream.i "1" }
  1097. END.
  1098. ELSE DO:
  1099. { v8/putstream.i "1" }
  1100. END.
  1101. IF VSeite > 1 AND
  1102. FUeber = TRUE THEN DO:
  1103. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)).
  1104. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  1105. { v8/putstreamf.i "2" }
  1106. END.
  1107. END PROCEDURE.
  1108. /* _UIB-CODE-BLOCK-END */
  1109. &ANALYZE-RESUME
  1110. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_ABRECHNUNG C-Win
  1111. PROCEDURE GEBINDE_ABRECHNUNG :
  1112. /*------------------------------------------------------------------------------
  1113. Purpose:
  1114. Parameters: <none>
  1115. Notes:
  1116. ------------------------------------------------------------------------------*/
  1117. Zuszz = 0.
  1118. FOR EACH SavGKon USE-INDEX SavGKon-k1
  1119. WHERE SavGKon.Firma = BSavko.Firma
  1120. AND SavGKon.Aufnr = BSavko.Aufnr
  1121. AND SavGKon.Depot <> 0 NO-LOCK:
  1122. IF SavGKon.Eingang = 0 AND
  1123. SavGKon.Ausgang = 0 THEN NEXT.
  1124. Zuszz = Zuszz + 1.
  1125. END.
  1126. Ja = FALSE.
  1127. IF Zuszz > 0 THEN DO:
  1128. Zuszz = Zuszz + 2.
  1129. Ja = TRUE.
  1130. END.
  1131. IF (BLiDruck.Listtzz - VLine - Zuszz) <= BLiDruck.Listfzz THEN DO:
  1132. RUN VALUE(VKopfArt).
  1133. END.
  1134. i5 = 0.
  1135. VZTot = 0.
  1136. IF Ja THEN DO:
  1137. SUBSTRING(VZeile,001) = FormText[12].
  1138. SUBSTRING(VZeile,071) = FormText[13].
  1139. { v8/putstreamf.i "1" }
  1140. END.
  1141. FOR EACH SavGKon USE-INDEX SavGKon-k1
  1142. WHERE SavGKon.Firma = BSavko.Firma
  1143. AND SavGKon.Aufnr = BSavko.Aufnr
  1144. AND SavGKon.Depot <> 0 NO-LOCK:
  1145. IF SavGKon.Eingang = 0 AND
  1146. SavGKon.Ausgang = 0 THEN NEXT.
  1147. FIND GebKonto USE-INDEX GebKonto-k1
  1148. WHERE GebKonto.Firma = GVFirma
  1149. AND GebKonto.Geb_Cd = SavGKon.Geb_Cd NO-LOCK.
  1150. i1 = SavGKon.Ausgang - SavGKon.Eingang.
  1151. Rundbetr = SavGKon.Betrag.
  1152. VWC = SavGKon.MWSt_Cd.
  1153. VZTot = VZTot + Rundbetr.
  1154. SUBSTRING(VZeile,004) = GebKonto.Bez.
  1155. SUBSTRING(VZeile,035) = STRING(SavGKon.Ausgang,"->>,>>9").
  1156. SUBSTRING(VZeile,045) = STRING(SavGKon.Eingang,"->>,>>9").
  1157. SUBSTRING(VZeile,055) = STRING(i1 ,"->>,>>9").
  1158. SUBSTRING(VZeile,065) = STRING(Rundbetr ,"->>,>>9.99").
  1159. SUBSTRING(VZeile,094) = STRING(VWC ,"z9").
  1160. { v8/putstream.i "1" }
  1161. i5 = i5 + 1.
  1162. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  1163. WHERE MWSTAns.MWST_Cd = VWC
  1164. AND MWSTAns.Datum <= FDatum NO-LOCK NO-ERROR.
  1165. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 9990
  1166. AND TUmsGrp.Mwst = MWSTAns.Ansatz NO-ERROR.
  1167. IF NOT AVAILABLE TUmsGrp THEN DO:
  1168. CREATE TUmsGrp.
  1169. ASSIGN TUmsGrp.Ums_Grp = 9990
  1170. TUmsGrp.Mwst = MWSTAns.Ansatz
  1171. TUmsGrp.Bez = 'Gebinde-Kosten'.
  1172. END.
  1173. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + Rundbetr.
  1174. END.
  1175. IF i5 > 0 THEN DO:
  1176. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[11],21,20)).
  1177. SUBSTRING(VZeile,083) = STRING(VZTot,"->>,>>9.99").
  1178. { v8/putstream.i "1" }
  1179. VFak_Betr = VFak_Betr + VZTot.
  1180. END.
  1181. IF NOT FSamm THEN DO:
  1182. SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026).
  1183. { v8/putstream.i "1" }
  1184. SUBSTRING(VZeile,027) = TRIM(SUBSTRING(FormText[15],21,20)).
  1185. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  1186. { v8/putstreamf.i "1" }
  1187. SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026).
  1188. { v8/putstream.i "1" }
  1189. END.
  1190. END PROCEDURE.
  1191. /* _UIB-CODE-BLOCK-END */
  1192. &ANALYZE-RESUME
  1193. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_LIEFERUNG C-Win
  1194. PROCEDURE GEBINDE_LIEFERUNG :
  1195. /*------------------------------------------------------------------------------
  1196. Purpose:
  1197. Parameters: <none>
  1198. Notes:
  1199. ------------------------------------------------------------------------------*/
  1200. Zuszz = 0.
  1201. FOR EACH TGebKto NO-LOCK:
  1202. Zuszz = Zuszz + 1.
  1203. END.
  1204. IF Zuszz > 0 THEN Zuszz = Zuszz + 2.
  1205. Zuszz = (Zuszz + 1) / 2.
  1206. IF (BLiDruck.Listtzz - VLine - Zuszz) <= BLiDruck.Listfzz THEN DO:
  1207. RUN VALUE(VKopfArt).
  1208. END.
  1209. i5 = 0.
  1210. VZTot = 0.
  1211. SUBSTRING(VZeile,001) = BDrucker.DruUnterB
  1212. + TRIM(SUBSTRING(FormText[10],01,20))
  1213. + BDrucker.DruUnterE.
  1214. { v8/putstream.i "2" }
  1215. i1 = 1.
  1216. i2 = 0.
  1217. FOR EACH TGebKto BY TGebKto.Sort_Cd
  1218. BY TGebKto.Geb_Cd :
  1219. i2 = i2 + 1.
  1220. IF i2 MOD 2 = 0 THEN i1 = 41.
  1221. ELSE i1 = 01.
  1222. SUBSTRING(VZeile,i1) = STRING(TGebKto.A_Anz,"->>>>9")
  1223. + " "
  1224. + STRING(TGebKto.Bez,"x(30)").
  1225. IF i1 > 30 THEN DO:
  1226. { v8/putstream.i "1" }
  1227. i5 = i5 + 1.
  1228. END.
  1229. END.
  1230. IF VZeile <> '' THEN DO:
  1231. { v8/putstream.i "1" }
  1232. i5 = i5 + 1.
  1233. END.
  1234. IF i5 > 0 THEN DO:
  1235. { v8/putstream.i "1" }
  1236. END.
  1237. END PROCEDURE.
  1238. /* _UIB-CODE-BLOCK-END */
  1239. &ANALYZE-RESUME
  1240. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_RUECKNAHME_TABELLE C-Win
  1241. PROCEDURE GEBINDE_RUECKNAHME_TABELLE :
  1242. /*------------------------------------------------------------------------------
  1243. Purpose:
  1244. Parameters: <none>
  1245. Notes:
  1246. ------------------------------------------------------------------------------*/
  1247. /* Gebinderücknahmetabelle ------------------------------------------- */
  1248. DEFINE VARIABLE cTextArt AS CHARACTER NO-UNDO.
  1249. cTextArt = 'GEBINDERETOUR' + STRING(bSavko.Fak_Art,'99').
  1250. FIND TabTexte USE-INDEX TabTexte-k1
  1251. WHERE TabTexte.Firma = GVFirma
  1252. AND TabTexte.TextArt = cTextArt
  1253. AND TabTexte.Sprcd = LVSprcd.
  1254. VTabTexte = TabTexte.Inhalt.
  1255. Zuszz = NUM-ENTRIES(VTabTexte, CHR(10)).
  1256. IF Zuszz > 0 THEN Zuszz = Zuszz + 2.
  1257. IF (BLiDruck.Listtzz - VLine - Zuszz) <= BLiDruck.Listfzz THEN DO:
  1258. RUN VALUE(VKopfArt).
  1259. END.
  1260. DO WHILE TRUE:
  1261. ix = INDEX(VTabTexte, CHR(10)).
  1262. IF ix = 0 THEN DO:
  1263. VZeile = VTabTexte.
  1264. LEAVE.
  1265. END.
  1266. VZeile = SUBSTRING(VTabTexte,01,ix - 1).
  1267. VTabTexte = SUBSTRING(VTabTexte,ix + 1).
  1268. { v8/putstream.i "1" }.
  1269. END.
  1270. IF VZeile <> '' THEN DO:
  1271. { v8/putstream.i "1" }.
  1272. END.
  1273. END PROCEDURE.
  1274. /* _UIB-CODE-BLOCK-END */
  1275. &ANALYZE-RESUME
  1276. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_SALDO C-Win
  1277. PROCEDURE GEBINDE_SALDO :
  1278. /*------------------------------------------------------------------------------
  1279. Purpose:
  1280. Parameters: <none>
  1281. Notes:
  1282. ------------------------------------------------------------------------------*/
  1283. FOR EACH SavGKon USE-INDEX SavGKon-k1
  1284. WHERE SavGKon.Firma = BSavko.Firma
  1285. AND SavGKon.Aufnr = BSavko.Aufnr
  1286. AND SavGKon.Depot <> 0
  1287. AND SavGKon.Betrag <> 0 NO-LOCK:
  1288. FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = SavGKon.Geb_Cd NO-ERROR.
  1289. IF NOT AVAILABLE TGebKto THEN DO:
  1290. FIND GebKonto USE-INDEX GebKonto-k1
  1291. WHERE GebKonto.Firma = SavGKon.Firma
  1292. AND GebKonto.Geb_Cd = SavGKon.Geb_Cd NO-LOCK.
  1293. CREATE TGebKto.
  1294. ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd
  1295. TGebKto.Geb_Cd = GebKonto.Geb_Cd
  1296. TGebKto.Bez = GebKonto.Bez
  1297. TGebKto.Preis = SavGKon.Depot
  1298. TGebKto.MWST_Cd = SavGKon.MWSt_Cd.
  1299. END.
  1300. TGebKto.A_Anz = TGebKto.A_Anz + SavGKon.Ausgang.
  1301. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis.
  1302. TGebKto.E_Anz = TGebKto.E_Anz + SavGKon.Eingang.
  1303. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis.
  1304. END.
  1305. END PROCEDURE.
  1306. /* _UIB-CODE-BLOCK-END */
  1307. &ANALYZE-RESUME
  1308. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INITIALISIERUNG C-Win
  1309. PROCEDURE INITIALISIERUNG :
  1310. /*------------------------------------------------------------------------------
  1311. Purpose:
  1312. Parameters: <none>
  1313. Notes:
  1314. ------------------------------------------------------------------------------*/
  1315. DEFINE VARIABLE VProgName AS CHARACTER NO-UNDO.
  1316. DEFINE VARIABLE VListnr AS INTEGER NO-UNDO.
  1317. DEFINE VARIABLE cTemplate AS CHARACTER NO-UNDO.
  1318. DEFINE BUFFER aTabel FOR Tabel.
  1319. FIND FIRST tParam.
  1320. cUser = tParam.cBenutzer.
  1321. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  1322. FIND bSavko NO-LOCK
  1323. WHERE bSavko.Firma = tParam.cFirma
  1324. AND bSavko.Aufnr = tParam.iAufnr NO-ERROR.
  1325. FIND aTabel NO-LOCK USE-INDEX Tabel-k1
  1326. WHERE aTabel.Firma = GVFirma
  1327. AND aTabel.RecArt = 'FAKART'
  1328. AND aTabel.CodeC = ''
  1329. AND aTabel.CodeI = bSavko.Fak_Art
  1330. AND aTabel.Sprcd = 1 NO-ERROR.
  1331. IF NOT AVAILABLE aTabel THEN RETURN.
  1332. .
  1333. LVCodeC = aTabel.Bez2.
  1334. cTemplate = aTabel.Bez2.
  1335. FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1
  1336. WHERE HilfsTab.Firma = cFirma
  1337. AND HilfsTab.Sort_1 = tParam.cBenutzer
  1338. AND HilfsTab.Sort_2 = cTemplate NO-ERROR.
  1339. IF NOT AVAILABLE HilfsTab THEN
  1340. DO:
  1341. FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1
  1342. WHERE HilfsTab.Firma = cFirma
  1343. AND HilfsTab.Sort_1 = ''
  1344. AND HilfsTab.Sort_2 = cTemplate NO-ERROR.
  1345. END.
  1346. IF NOT AVAILABLE HilfsTab THEN RETURN 'NOK'.
  1347. FIND bSchrift NO-LOCK
  1348. WHERE bSchrift.Schname = HilfsTab.Zeichen_1
  1349. AND bSchrift.Schbild = HilfsTab.Zeichen_2 NO-ERROR.
  1350. FIND bDrucker NO-LOCK
  1351. WHERE bDrucker.Drucker = bSchrift.Schdru NO-ERROR.
  1352. VProgname = TRIM(cUser) + '!AUFTRAG'.
  1353. FIND FIRST Listen USE-INDEX Listen-k1
  1354. WHERE Listen.Firma = GVFirma
  1355. AND Listen.Progname = VProgname
  1356. AND Listen.Listfl = '' NO-ERROR.
  1357. IF NOT AVAILABLE Listen THEN
  1358. DO:
  1359. FIND LAST Listen USE-INDEX Listen-k1
  1360. WHERE Listen.Firma = GVFirma NO-LOCK NO-ERROR.
  1361. IF AVAILABLE Listen THEN VListnr = Listen.Listnr + 1.
  1362. ELSE VListnr = 1.
  1363. CREATE Listen.
  1364. ASSIGN
  1365. Listen.Firma = GVFirma
  1366. Listen.Listnr = VListnr
  1367. Listen.Progname = VProgname
  1368. Listen.Listfl = ''
  1369. Listen.Jahr = YEAR(TODAY)
  1370. Listen.Sprcd = GVSprcd
  1371. Listen.Sort = 1
  1372. Listen.ProgWahl = 1.
  1373. END.
  1374. Listen.Listfl = 'A'.
  1375. FIND LiDruck USE-INDEX LiDruck-k1
  1376. WHERE LiDruck.Firma = GVFirma
  1377. AND LiDruck.Listnr = Listen.Listnr
  1378. AND LiDruck.ProgWahl = Listen.ProgWahl NO-ERROR.
  1379. IF NOT AVAILABLE LiDruck THEN
  1380. DO:
  1381. CREATE LiDruck.
  1382. ASSIGN
  1383. LiDruck.Firma = GVFirma
  1384. LiDruck.Listnr = Listen.Listnr
  1385. LiDruck.ProgWahl = Listen.ProgWahl
  1386. LiDruck.Listprog = 'AUFTRAG' + STRING(Listen.ProgWahl,'99')
  1387. LiDruck.ListCopy = 1
  1388. LiDruck.Schacht = 0
  1389. LiDruck.Listlq = FALSE.
  1390. END.
  1391. ASSIGN
  1392. LiDruck.ListDru = HilfsTab.Zeichen_1
  1393. LiDruck.ListBild = HilfsTab.Zeichen_2
  1394. LiDruck.Listtzz = HilfsTab.Zahl[01]
  1395. LiDruck.Listkzz = HilfsTab.Zahl[02]
  1396. LiDruck.Listfzz = HilfsTab.Zahl[03]
  1397. LiDruck.ListCopy = HilfsTab.Zahl[04]
  1398. LiDruck.Schacht = HilfsTab.Zahl[05]
  1399. VBesr = HilfsTab.Zahl[07]
  1400. Schacht = HilfsTab.Zahl[08].
  1401. IF LiDruck.ListCopy = 0 THEN LiDruck.ListCopy = 1.
  1402. FIND LAST Tabel NO-LOCK USE-INDEX Tabel-k1
  1403. WHERE Tabel.Firma = GVFirma
  1404. AND Tabel.RecArt = 'AUFDRUCK'
  1405. AND Tabel.CodeC = cUser NO-ERROR.
  1406. IF AVAILABLE Tabel THEN i1 = Tabel.CodeI + 1.
  1407. ELSE i1 = 1.
  1408. CREATE Tabel.
  1409. ASSIGN
  1410. Tabel.Firma = GVFirma
  1411. Tabel.RecArt = 'AUFDRUCK'
  1412. Tabel.CodeC = cUser
  1413. Tabel.CodeI = i1
  1414. Tabel.Sprcd = 1
  1415. Tabel.Int_1 = INTEGER(RECID(Listen))
  1416. Tabel.Int_2 = INTEGER(RECID(LiDruck))
  1417. Tabel.Int_3 = INTEGER(RECID(bSavko))
  1418. Tabel.Dec_1 = DECIMAL(VBesr)
  1419. Tabel.Dec_2 = INTEGER(RECID(HilfsTab))
  1420. Tabel.Dec_3 = Schacht
  1421. Tabel.Bez1 = ''
  1422. Tabel.Bez2 = cTemplate
  1423. Tabel.BezL = SUBSTITUTE('&1;&2;&3;&4',
  1424. HilfsTab.Zahl[05],
  1425. HilfsTab.Zahl[06],
  1426. HilfsTab.Zahl[08],
  1427. HilfsTab.Zahl[07]).
  1428. ASSIGN
  1429. TRecid = RECID(Tabel)
  1430. ARecid = RECID(Listen)
  1431. BRecid = RECID(LiDruck)
  1432. CRecid = RECID(bSavko)
  1433. .
  1434. RELEASE Tabel .
  1435. RELEASE Listen .
  1436. RELEASE LiDruck .
  1437. RELEASE HilfsTab.
  1438. LEAVE.
  1439. END.
  1440. END PROCEDURE.
  1441. /* _UIB-CODE-BLOCK-END */
  1442. &ANALYZE-RESUME
  1443. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF_MUTATION C-Win
  1444. PROCEDURE KOPF_MUTATION :
  1445. /*------------------------------------------------------------------------------
  1446. Purpose:
  1447. Parameters: <none>
  1448. Notes:
  1449. ------------------------------------------------------------------------------*/
  1450. END PROCEDURE.
  1451. /* _UIB-CODE-BLOCK-END */
  1452. &ANALYZE-RESUME
  1453. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIBILD C-Win
  1454. PROCEDURE LIBILD :
  1455. /*------------------------------------------------------------------------------
  1456. Purpose:
  1457. Parameters: <none>
  1458. Notes:
  1459. ------------------------------------------------------------------------------*/
  1460. DEF VAR VProgName AS CHAR NO-UNDO.
  1461. VProgName = BSteuer.Fwc10 + ":" + VDokArt.
  1462. FormText = "".
  1463. FOR EACH LiBild USE-INDEX LiBild-k1
  1464. WHERE LiBild.Sprcd = GVSprcd
  1465. AND LiBild.Prog = VProgname
  1466. AND LiBild.Tenr > 0 NO-LOCK
  1467. ix = 1 TO 40:
  1468. FormText[ix] = LiBild.Litext.
  1469. END.
  1470. Formtext[05] = REPLACE(Formtext[05], '-', cWag ).
  1471. Formtext[05] = REPLACE(Formtext[05], '+', cPlus).
  1472. Formtext[06] = REPLACE(Formtext[06], '-', cWag ).
  1473. Formtext[06] = REPLACE(Formtext[06], '+', cPlus).
  1474. Fuell = SUBSTRING(FormText[01],01,01).
  1475. Breite = INTEGER(SUBSTRING(FormText[01],02,03)).
  1476. VRand = INTEGER(SUBSTRING(FormText[01],68,03)).
  1477. Dattxt = SUBSTRING(FormText[01],05,10).
  1478. Seitxt = SUBSTRING(FormText[01],15,10).
  1479. Zeitxt = SUBSTRING(FormText[01],25,10).
  1480. Firtxt = SUBSTRING(FormText[01],35,10).
  1481. Jahtxt = SUBSTRING(FormText[01],45,10).
  1482. Ueber1 = "".
  1483. Ueber2 = "".
  1484. Ueber3 = "".
  1485. ap = 1.
  1486. XDruDat = ?.
  1487. VRabText = TRIM(SUBSTRING(FormText[21],01,20)).
  1488. VZusText = TRIM(SUBSTRING(FormText[21],21,20)).
  1489. VEpzText = TRIM(SUBSTRING(FormText[21],41,20)).
  1490. SUBSTRING(VZeile,001) = FormText[05].
  1491. SUBSTRING(VZeile,071) = FormText[06].
  1492. StBreite = LENGTH(VZeile).
  1493. RZeile = FILL(cSenk, Breite).
  1494. SUBSTRING(RZeile,001) = STRING(' ',"x(06)").
  1495. SUBSTRING(RZeile,008) = STRING(' ',"x(03)").
  1496. SUBSTRING(RZeile,012) = STRING(' ',"x(08)").
  1497. SUBSTRING(RZeile,021) = STRING(' ',"x(05)").
  1498. SUBSTRING(RZeile,027) = STRING(' ',"x(08)").
  1499. SUBSTRING(RZeile,036) = STRING(' ',"x(35)").
  1500. SUBSTRING(RZeile,072) = STRING(' ',"x(02)").
  1501. SUBSTRING(RZeile,075) = STRING(' ',"x(07)").
  1502. SUBSTRING(RZeile,083) = STRING(' ',"x(10)").
  1503. SUBSTRING(RZeile,094) = STRING(' ',"x(02)").
  1504. RZeile = SUBSTRING(RZeile,01,StBreite).
  1505. VZeile = ''.
  1506. END PROCEDURE.
  1507. /* _UIB-CODE-BLOCK-END */
  1508. &ANALYZE-RESUME
  1509. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK C-Win
  1510. PROCEDURE LIEFERFAK :
  1511. /*------------------------------------------------------------------------------
  1512. Purpose:
  1513. Parameters: <none>
  1514. Notes:
  1515. ------------------------------------------------------------------------------*/
  1516. VSeite = 0.
  1517. VFak_Betr = 0.
  1518. LiKopf = TRUE.
  1519. FPreis = TRUE.
  1520. FBetrag = TRUE.
  1521. FRabatt = TRUE.
  1522. FUeber = TRUE.
  1523. FSamm = FALSE.
  1524. VKopfArt = 'LIEFERFAK_KOPF'.
  1525. RUN VALUE(VKopfArt).
  1526. FOR EACH TSavze NO-LOCK
  1527. BY TSavze.Aufnr
  1528. BY TSavze.Sort1
  1529. BY TSavze.Sort2
  1530. BY TSavze.Sort3
  1531. BY TSavze.Artnr
  1532. BY TSavze.Inhalt
  1533. BY TSavze.Jahr
  1534. BY TSavze.Pos :
  1535. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  1536. RUN VALUE(VKopfArt).
  1537. END.
  1538. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK.
  1539. RUN ARTIKELZEILE.
  1540. VFak_Betr = VFak_Betr + Savze.Net_Betr.
  1541. END.
  1542. VZeile = FILL(cWag, StBreite).
  1543. { v8/putstream.i "1" }
  1544. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)).
  1545. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  1546. { v8/putstreamf.i "1" }
  1547. LiKopf = FALSE.
  1548. RUN SUMMENRABATTE.
  1549. { v8/putstream.i "1" }
  1550. RUN GEBINDE_SALDO.
  1551. RUN GEBINDE_ABRECHNUNG.
  1552. RUN MEHRWERTSTEUER.
  1553. { v8/putstream.i "1" }
  1554. SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[18],21,20)).
  1555. SUBSTRING(VZeile,083) = "__________".
  1556. { v8/putstreamf.i "2" }
  1557. SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[18],41,20)).
  1558. SUBSTRING(VZeile,083) = "__________".
  1559. { v8/putstreamf.i "2" }
  1560. RUN GEBINDE_RUECKNAHME_TABELLE.
  1561. RUN KOPF_MUTATION.
  1562. Rundbetr = 0.
  1563. VesrKnr = BSavko.Fak_Knr.
  1564. VesrFnr = BSavko.Faknr.
  1565. IF VBesr = 2 THEN RUN VESR_DRUCK02.
  1566. ELSE RUN VESR_DRUCK.
  1567. END PROCEDURE.
  1568. /* _UIB-CODE-BLOCK-END */
  1569. &ANALYZE-RESUME
  1570. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK_KOPF C-Win
  1571. PROCEDURE LIEFERFAK_KOPF :
  1572. /*------------------------------------------------------------------------------
  1573. Purpose:
  1574. Parameters: <none>
  1575. Notes:
  1576. ------------------------------------------------------------------------------*/
  1577. RUN NEUE_SEITE.
  1578. IF VSeite = 1 THEN DO:
  1579. IF Laser THEN DO:
  1580. VZeile = DruckInit + SchriftInit.
  1581. CASE Schacht:
  1582. WHEN 1 THEN VZeile = VZeile + Schacht1.
  1583. WHEN 2 THEN VZeile = VZeile + Schacht2.
  1584. WHEN 3 THEN VZeile = VZeile + Schacht3.
  1585. WHEN 4 THEN VZeile = VZeile + Schacht4.
  1586. END CASE.
  1587. PUT STREAM Out_Stream CONTROL VZeile.
  1588. END.
  1589. FIND Adresse USE-INDEX Adresse-k1
  1590. WHERE Adresse.Firma = AdFirma
  1591. AND Adresse.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  1592. FIND LDebst USE-INDEX Debst-k1
  1593. WHERE LDebst.Firma = GVFirma
  1594. AND LDebst.Knr = BSavko.Knr NO-LOCK NO-ERROR.
  1595. FIND FDebst USE-INDEX Debst-k1
  1596. WHERE FDebst.Firma = GVFirma
  1597. AND FDebst.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  1598. FIND Wust USE-INDEX Wust-k1
  1599. WHERE Wust.CodeK = LDebst.MWST
  1600. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  1601. LVSprcd = Adresse.Sprcd.
  1602. DebInkl = FALSE.
  1603. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  1604. XTelnr = ''.
  1605. IF DebInkl THEN DO:
  1606. IF Adresse.Tel-2 <> '' THEN XTelnr = Adresse.Tel-2.
  1607. ELSE XTelnr = Adresse.Tel-1.
  1608. END.
  1609. ELSE DO:
  1610. IF Adresse.Tel-1 <> '' THEN XTelnr = Adresse.Tel-1.
  1611. ELSE XTelnr = Adresse.Tel-2.
  1612. END.
  1613. END.
  1614. F_Seite = VSeite.
  1615. F_Faknr = SFaknr.
  1616. DISPLAY F_Seite
  1617. F_Faknr WITH FRAME {&FRAME-NAME}.
  1618. VZeile = ''.
  1619. { v8/putstream.i BLiDruck.Listkzz }.
  1620. IF BSavko.Adresse[05] <> '' THEN DO:
  1621. DO ix = 1 TO 5:
  1622. SUBSTRING(VZeile,053) = BSavko.Adresse[ix].
  1623. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END.
  1624. ELSE DO: { v8/putstream.i "1" }. END.
  1625. END.
  1626. END.
  1627. ELSE DO:
  1628. DO ix = 7 TO 11:
  1629. SUBSTRING(VZeile,053) = Adresse.Anschrift[ix].
  1630. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END.
  1631. ELSE DO: { v8/putstream.i "1" }. END.
  1632. END.
  1633. END.
  1634. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20))
  1635. + STRING(SFaknr,"z999999")
  1636. + " /"
  1637. + STRING(VSeite,"zz9").
  1638. { v8/putstreamf.i "1" }
  1639. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20))
  1640. + " "
  1641. + BSteuer.MWST_Nr.
  1642. { v8/putstream.i "1" }
  1643. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20))
  1644. + " "
  1645. + STRING(FDatum,"99.99.9999").
  1646. { v8/putstream.i "2" }
  1647. DO WHILE VSeite = 1.
  1648. RUN ABLADEVORSCHRIFT.
  1649. RUN VERSANDART.
  1650. RUN CHAUFFEUR.
  1651. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],21,20))
  1652. + " "
  1653. + BSavko.I_Best.
  1654. SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],21,20))
  1655. + STRING(BSavko.Gewicht,"zzz,zz9.999-").
  1656. { v8/putstream.i "1" }
  1657. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20))
  1658. + " "
  1659. + STRING(BSavko.Auf_Datum,"99.99.9999").
  1660. SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[08],01,20))
  1661. + STRING(BSavko.Knr,"zz999999").
  1662. SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],41,20))
  1663. + " "
  1664. + XTelnr.
  1665. { v8/putstream.i "1" }
  1666. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[09],21,20))
  1667. + " "
  1668. + STRING(BSavko.Lief_Datum,"99.99.9999").
  1669. SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[09],01,20))
  1670. + " "
  1671. + XVersand.
  1672. { v8/putstream.i "1" }
  1673. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20))
  1674. + " "
  1675. + STRING(BSavko.Aufnr,"9999999").
  1676. SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[22],01,20))
  1677. + " "
  1678. + XChauffeur.
  1679. { v8/putstream.i "2" }
  1680. IF XAblade <> '' THEN DO:
  1681. SUBSTRING(VZeile,001) = XAblade.
  1682. { v8/putstreamf.i "2" }
  1683. END.
  1684. XAuf_Text = BSavko.Auf_Text.
  1685. i1 = INDEX(XAuf_Text, CHR(10)).
  1686. i2 = 0.
  1687. DO WHILE i1 > 0:
  1688. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  1689. { v8/putstreamf.i "1" }
  1690. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  1691. i1 = INDEX(XAuf_Text, CHR(10)).
  1692. i2 = i2 + 1.
  1693. END.
  1694. IF XAuf_Text <> '' THEN DO:
  1695. SUBSTRING(VZeile,001) = XAuf_Text.
  1696. { v8/putstreamf.i "1" }
  1697. i2 = i2 + 1.
  1698. END.
  1699. IF i2 > 0 THEN DO:
  1700. { v8/putstream.i "1" }
  1701. END.
  1702. XAuf_Text = BSavko.Abh_Text.
  1703. i1 = INDEX(XAuf_Text, CHR(10)).
  1704. i2 = 0.
  1705. DO WHILE i1 > 0:
  1706. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  1707. { v8/putstreamf.i "1" }
  1708. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  1709. i1 = INDEX(XAuf_Text, CHR(10)).
  1710. i2 = i2 + 1.
  1711. END.
  1712. IF XAuf_Text <> '' THEN DO:
  1713. SUBSTRING(VZeile,001) = XAuf_Text.
  1714. { v8/putstreamf.i "1" }
  1715. i2 = i2 + 1.
  1716. END.
  1717. IF i2 > 0 THEN DO:
  1718. { v8/putstream.i "1" }
  1719. END.
  1720. LEAVE.
  1721. END.
  1722. IF LiKopf THEN DO:
  1723. SUBSTRING(VZeile,001) = FormText[03].
  1724. SUBSTRING(VZeile,071) = FormText[04].
  1725. { v8/putstream.i "1" }
  1726. SUBSTRING(VZeile,001) = FormText[05].
  1727. SUBSTRING(VZeile,071) = FormText[06].
  1728. { v8/putstream.i "1" }
  1729. END.
  1730. ELSE DO:
  1731. { v8/putstream.i "1" }
  1732. END.
  1733. IF VSeite > 1 AND
  1734. FUeber = TRUE THEN DO:
  1735. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)).
  1736. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  1737. { v8/putstreamf.i "2" }
  1738. END.
  1739. END PROCEDURE.
  1740. /* _UIB-CODE-BLOCK-END */
  1741. &ANALYZE-RESUME
  1742. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERPREIS C-Win
  1743. PROCEDURE LIEFERPREIS :
  1744. /*------------------------------------------------------------------------------
  1745. Purpose:
  1746. Parameters: <none>
  1747. Notes:
  1748. ------------------------------------------------------------------------------*/
  1749. VSeite = 0.
  1750. VFak_Betr = 0.
  1751. LiKopf = TRUE.
  1752. FPreis = TRUE.
  1753. FBetrag = FALSE.
  1754. FRabatt = FALSE.
  1755. FSamm = FALSE.
  1756. VKopfArt = 'LIEFERSCHEIN_KOPF'.
  1757. RUN VALUE(VKopfArt).
  1758. FOR EACH TSavze NO-LOCK
  1759. BY TSavze.Aufnr
  1760. BY TSavze.Sort1
  1761. BY TSavze.Sort2
  1762. BY TSavze.Sort3
  1763. BY TSavze.Artnr
  1764. BY TSavze.Inhalt
  1765. BY TSavze.Jahr
  1766. BY TSavze.Pos :
  1767. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  1768. RUN VALUE(VKopfArt).
  1769. END.
  1770. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK.
  1771. RUN ARTIKELZEILE.
  1772. VFak_Betr = VFak_Betr + Savze.Net_Betr.
  1773. END.
  1774. VZeile = FILL(cWag, StBreite).
  1775. { v8/putstream.i "2" }
  1776. LiKopf = FALSE.
  1777. RUN GEBINDE_SALDO.
  1778. RUN GEBINDE_LIEFERUNG.
  1779. RUN GEBINDE_RUECKNAHME_TABELLE.
  1780. RUN KOPF_MUTATION.
  1781. END PROCEDURE.
  1782. /* _UIB-CODE-BLOCK-END */
  1783. &ANALYZE-RESUME
  1784. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERSCHEIN C-Win
  1785. PROCEDURE LIEFERSCHEIN :
  1786. /*------------------------------------------------------------------------------
  1787. Purpose:
  1788. Parameters: <none>
  1789. Notes:
  1790. ------------------------------------------------------------------------------*/
  1791. VSeite = 0.
  1792. VFak_Betr = 0.
  1793. LiKopf = TRUE.
  1794. FPreis = FALSE.
  1795. FBetrag = FALSE.
  1796. FRabatt = FALSE.
  1797. FSamm = FALSE.
  1798. VKopfArt = 'LIEFERSCHEIN_KOPF'.
  1799. RUN VALUE(VKopfArt).
  1800. FOR EACH TSavze NO-LOCK
  1801. BY TSavze.Aufnr
  1802. BY TSavze.Sort1
  1803. BY TSavze.Sort2
  1804. BY TSavze.Sort3
  1805. BY TSavze.Artnr
  1806. BY TSavze.Inhalt
  1807. BY TSavze.Jahr
  1808. BY TSavze.Pos :
  1809. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  1810. RUN VALUE(VKopfArt).
  1811. END.
  1812. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK.
  1813. RUN ARTIKELZEILE.
  1814. VFak_Betr = VFak_Betr + Savze.Net_Betr.
  1815. END.
  1816. VZeile = FILL(cWag, StBreite).
  1817. { v8/putstream.i "2" }
  1818. LiKopf = FALSE.
  1819. RUN GEBINDE_SALDO.
  1820. RUN GEBINDE_LIEFERUNG.
  1821. RUN GEBINDE_RUECKNAHME_TABELLE.
  1822. RUN KOPF_MUTATION.
  1823. END PROCEDURE.
  1824. /* _UIB-CODE-BLOCK-END */
  1825. &ANALYZE-RESUME
  1826. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERSCHEIN_KOPF C-Win
  1827. PROCEDURE LIEFERSCHEIN_KOPF :
  1828. /*------------------------------------------------------------------------------
  1829. Purpose:
  1830. Parameters: <none>
  1831. Notes:
  1832. ------------------------------------------------------------------------------*/
  1833. RUN NEUE_SEITE.
  1834. IF VSeite = 1 THEN DO:
  1835. IF Laser THEN DO:
  1836. VZeile = DruckInit + SchriftInit.
  1837. CASE Schacht:
  1838. WHEN 1 THEN VZeile = VZeile + Schacht1.
  1839. WHEN 2 THEN VZeile = VZeile + Schacht2.
  1840. WHEN 3 THEN VZeile = VZeile + Schacht3.
  1841. WHEN 4 THEN VZeile = VZeile + Schacht4.
  1842. END CASE.
  1843. PUT STREAM Out_Stream CONTROL VZeile.
  1844. END.
  1845. FIND Adresse USE-INDEX Adresse-k1
  1846. WHERE Adresse.Firma = AdFirma
  1847. AND Adresse.Knr = BSavko.Knr NO-LOCK NO-ERROR.
  1848. FIND LDebst USE-INDEX Debst-k1
  1849. WHERE LDebst.Firma = GVFirma
  1850. AND LDebst.Knr = BSavko.Knr NO-LOCK NO-ERROR.
  1851. FIND FDebst USE-INDEX Debst-k1
  1852. WHERE FDebst.Firma = GVFirma
  1853. AND FDebst.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  1854. FIND Wust USE-INDEX Wust-k1
  1855. WHERE Wust.CodeK = LDebst.MWST
  1856. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  1857. LVSprcd = Adresse.Sprcd.
  1858. DebInkl = FALSE.
  1859. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  1860. XTelnr = ''.
  1861. IF DebInkl THEN DO:
  1862. IF Adresse.Tel-2 <> '' THEN XTelnr = Adresse.Tel-2.
  1863. ELSE XTelnr = Adresse.Tel-1.
  1864. END.
  1865. ELSE DO:
  1866. IF Adresse.Tel-1 <> '' THEN XTelnr = Adresse.Tel-1.
  1867. ELSE XTelnr = Adresse.Tel-2.
  1868. END.
  1869. END.
  1870. F_Seite = VSeite.
  1871. F_Faknr = BSavko.Faknr.
  1872. DISPLAY F_Seite
  1873. F_Faknr WITH FRAME {&FRAME-NAME}.
  1874. VZeile = ''.
  1875. { v8/putstream.i BLiDruck.Listkzz }.
  1876. IF BSavko.Adresse[05] <> '' THEN DO:
  1877. DO ix = 1 TO 5:
  1878. SUBSTRING(VZeile,053) = BSavko.Adresse[ix].
  1879. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END.
  1880. ELSE DO: { v8/putstream.i "1" }. END.
  1881. END.
  1882. END.
  1883. ELSE DO:
  1884. DO ix = 7 TO 11:
  1885. SUBSTRING(VZeile,053) = Adresse.Anschrift[ix].
  1886. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END.
  1887. ELSE DO: { v8/putstream.i "1" }. END.
  1888. END.
  1889. END.
  1890. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20))
  1891. + STRING(BSavko.Aufnr,"z999999")
  1892. + " /"
  1893. + STRING(VSeite,"zz9").
  1894. { v8/putstreamf.i "1" }
  1895. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20))
  1896. + " "
  1897. + BSteuer.MWST_Nr.
  1898. { v8/putstream.i "1" }
  1899. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20))
  1900. + " "
  1901. + STRING(FDatum,"99.99.9999").
  1902. { v8/putstream.i "2" }
  1903. DO WHILE VSeite = 1.
  1904. RUN ABLADEVORSCHRIFT.
  1905. RUN VERSANDART.
  1906. RUN CHAUFFEUR.
  1907. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],21,20))
  1908. + " "
  1909. + BSavko.I_Best.
  1910. SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],21,20))
  1911. + STRING(BSavko.Gewicht,"zzz,zz9.999-").
  1912. { v8/putstream.i "1" }
  1913. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20))
  1914. + " "
  1915. + STRING(BSavko.Auf_Datum,"99.99.9999").
  1916. SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[08],01,20))
  1917. + STRING(BSavko.Knr,"zz999999").
  1918. SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],41,20))
  1919. + " "
  1920. + XTelnr.
  1921. { v8/putstream.i "1" }
  1922. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[09],21,20))
  1923. + " "
  1924. + STRING(BSavko.Lief_Datum,"99.99.9999").
  1925. SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[09],01,20))
  1926. + " "
  1927. + XVersand
  1928. + " / "
  1929. + XChauffeur.
  1930. { v8/putstream.i "2" }
  1931. /* SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[22],01,20))
  1932. * + " "
  1933. * + XChauffeur.
  1934. * { v8/putstream.i "2" }
  1935. * */
  1936. IF XAblade <> '' THEN DO:
  1937. SUBSTRING(VZeile,001) = XAblade.
  1938. { v8/putstreamf.i "2" }
  1939. END.
  1940. XAuf_Text = BSavko.Auf_Text.
  1941. i1 = INDEX(XAuf_Text, CHR(10)).
  1942. i2 = 0.
  1943. DO WHILE i1 > 0:
  1944. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  1945. { v8/putstreamf.i "1" }
  1946. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  1947. i1 = INDEX(XAuf_Text, CHR(10)).
  1948. i2 = i2 + 1.
  1949. END.
  1950. IF XAuf_Text <> '' THEN DO:
  1951. SUBSTRING(VZeile,001) = XAuf_Text.
  1952. { v8/putstreamf.i "1" }
  1953. i2 = i2 + 1.
  1954. END.
  1955. IF i2 > 0 THEN DO:
  1956. { v8/putstream.i "1" }
  1957. END.
  1958. XAuf_Text = BSavko.Abh_Text.
  1959. i1 = INDEX(XAuf_Text, CHR(10)).
  1960. i2 = 0.
  1961. DO WHILE i1 > 0:
  1962. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  1963. { v8/putstreamf.i "1" }
  1964. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  1965. i1 = INDEX(XAuf_Text, CHR(10)).
  1966. i2 = i2 + 1.
  1967. END.
  1968. IF XAuf_Text <> '' THEN DO:
  1969. SUBSTRING(VZeile,001) = XAuf_Text.
  1970. { v8/putstreamf.i "1" }
  1971. i2 = i2 + 1.
  1972. END.
  1973. IF i2 > 0 THEN DO:
  1974. { v8/putstream.i "1" }
  1975. END.
  1976. LEAVE.
  1977. END.
  1978. IF LiKopf THEN DO:
  1979. SUBSTRING(VZeile,001) = FormText[03].
  1980. SUBSTRING(VZeile,071) = FormText[04].
  1981. { v8/putstream.i "1" }
  1982. SUBSTRING(VZeile,001) = FormText[05].
  1983. SUBSTRING(VZeile,071) = FormText[06].
  1984. StBreite = LENGTH(VZeile).
  1985. { v8/putstream.i "1" }
  1986. END.
  1987. ELSE DO:
  1988. { v8/putstream.i "1" }
  1989. END.
  1990. END PROCEDURE.
  1991. /* _UIB-CODE-BLOCK-END */
  1992. &ANALYZE-RESUME
  1993. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER C-Win
  1994. PROCEDURE MEHRWERTSTEUER :
  1995. /*------------------------------------------------------------------------------
  1996. Purpose:
  1997. Parameters: <none>
  1998. Notes:
  1999. ------------------------------------------------------------------------------*/
  2000. VWpfl = 0.
  2001. VWust = 0.
  2002. Zuszz = 0.
  2003. DO ix = 1 TO 11:
  2004. IF BSavko.WPfl[ix] = 0 THEN NEXT.
  2005. VWpfl[ix] = BSavko.Wpfl[ix].
  2006. VWust[ix] = BSavko.Wust[ix].
  2007. Zuszz = Zuszz + 1.
  2008. END.
  2009. IF Zuszz > 0 THEN Zuszz + 4.
  2010. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  2011. RUN VALUE(VKopfArt).
  2012. END.
  2013. DO ix = 1 TO 11:
  2014. IF VWpfl[ix] = 0 THEN NEXT.
  2015. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  2016. WHERE MWSTAns.MWST_Cd = ix
  2017. AND MWSTAns.Datum <= BSavko.Kond_Datum NO-LOCK.
  2018. SUBSTRING(VZeile,027) = MWSTAns.Bez.
  2019. SUBSTRING(VZeile,065) = STRING(VWpfl[ix],"->>,>>9.99").
  2020. SUBSTRING(VZeile,083) = STRING(VWust[ix],"->>,>>9.99").
  2021. SUBSTRING(VZeile,094) = STRING(ix ,"z9").
  2022. { v8/putstream.i "1" }
  2023. VFak_Betr = VFak_Betr + VWust[ix].
  2024. END.
  2025. Rundbetr = VFak_Betr.
  2026. Rundcode = 1.
  2027. RUN "v8/runden.p".
  2028. VFak_Betr = Rundbetr.
  2029. SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026).
  2030. { v8/putstream.i "1" }
  2031. SUBSTRING(VZeile,027) = TRIM(FormText[16]).
  2032. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  2033. { v8/putstreamf.i "1" }
  2034. END PROCEDURE.
  2035. /* _UIB-CODE-BLOCK-END */
  2036. &ANALYZE-RESUME
  2037. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUE_SEITE C-Win
  2038. PROCEDURE NEUE_SEITE :
  2039. /*------------------------------------------------------------------------------
  2040. Purpose:
  2041. Parameters: <none>
  2042. Notes:
  2043. ------------------------------------------------------------------------------*/
  2044. DEF VAR A AS INT NO-UNDO.
  2045. DEF VAR B AS INT NO-UNDO.
  2046. DO WHILE VSeite > 0:
  2047. IF DOpen THEN DO:
  2048. PUT STREAM Out_Stream CHR(12).
  2049. LEAVE.
  2050. END.
  2051. A = BLiDruck.Listtzz.
  2052. DO B = VLine TO A:
  2053. VZNr = VZNr + 1.
  2054. CREATE XTermOut.
  2055. ASSIGN XTermOut.ZNr = VZNr
  2056. XTermOut.Zeile = ''.
  2057. END.
  2058. LEAVE.
  2059. END.
  2060. VLine = 0.
  2061. VSeite = VSeite + 1.
  2062. END PROCEDURE.
  2063. /* _UIB-CODE-BLOCK-END */
  2064. &ANALYZE-RESUME
  2065. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PRUEFZIFFER C-Win
  2066. PROCEDURE PRUEFZIFFER :
  2067. /*------------------------------------------------------------------------------
  2068. Purpose:
  2069. Parameters: <none>
  2070. Notes:
  2071. ------------------------------------------------------------------------------*/
  2072. /* ------------------------------------------------------------------------- */
  2073. /* Prufziffer MODULO 10, Rekursiv (27 Stellig Ref.-Nr.) */
  2074. /* ------------------------------------------------------------------------- */
  2075. /* */
  2076. /* Uebergabe Variable: 1. String Betrag (12-stellig) */
  2077. /* 2. String Referenz (27-stellig) */
  2078. /* 3. String Teilnehmernummer ( 9-stellig) */
  2079. /* */
  2080. /* Erstellung der VESR-Codierzeile */
  2081. /* */
  2082. /*---------------------------------------------------------------------------*/
  2083. DEF INPUT-OUTPUT PARAMETER PZBetrag AS CHAR FORMAT "x(13)".
  2084. DEF INPUT-OUTPUT PARAMETER PZReferenz AS CHAR FORMAT "x(27)".
  2085. DEF INPUT-OUTPUT PARAMETER PZTNummer AS CHAR FORMAT "x(09)".
  2086. DEF OUTPUT PARAMETER VSZeile AS CHAR FORMAT "x(58)".
  2087. DEF VAR l1 AS INT.
  2088. DEF VAR l2 AS INT.
  2089. DEF VAR l3 AS INT.
  2090. DEF VAR PZ AS INT.
  2091. DEF VAR x1 AS INT.
  2092. DEF VAR x2 AS INT.
  2093. DEF VAR x3 AS INT.
  2094. DEF VAR VMOD10 AS CHAR FORMAT "x(11)" EXTENT 11.
  2095. VMOD10[01] = "09468271350".
  2096. VMOD10[02] = "94682713509".
  2097. VMOD10[03] = "46827135098".
  2098. VMOD10[04] = "68271350947".
  2099. VMOD10[05] = "82713509466".
  2100. VMOD10[06] = "27135094685".
  2101. VMOD10[07] = "71350946824".
  2102. VMOD10[08] = "13509468273".
  2103. VMOD10[09] = "35094682712".
  2104. VMOD10[10] = "50946827131".
  2105. l1 = 12.
  2106. l2 = 26.
  2107. l3 = 08.
  2108. DO WHILE SUBSTRING(PZBetrag,01,01) <> " ": /* Mit Betrag */
  2109. x2 = 1.
  2110. x1 = INT(SUBSTRING(PZBetrag ,01 ,01)).
  2111. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  2112. DO x3 = 2 TO 12:
  2113. x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)).
  2114. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  2115. END.
  2116. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  2117. SUBSTRING(PZBetrag,13) = STRING(PZ,"9").
  2118. LEAVE.
  2119. END.
  2120. DO WHILE SUBSTRING(PZBetrag,01,01) = " ": /* Ohne Betrag */
  2121. x2 = 11.
  2122. x1 = INT(SUBSTRING(PZBetrag ,01 ,01)).
  2123. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  2124. DO x3 = 12 TO 12:
  2125. x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)).
  2126. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  2127. END.
  2128. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  2129. SUBSTRING(PZBetrag,13) = STRING(PZ,"9").
  2130. LEAVE.
  2131. END.
  2132. DO WHILE l2 = 26:
  2133. x2 = 1.
  2134. x1 = INT(SUBSTRING(PZReferenz,01 ,01)).
  2135. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  2136. DO x3 = 2 TO 26:
  2137. x1 = INT(SUBSTRING(PZReferenz ,x3 ,01)).
  2138. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  2139. END.
  2140. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  2141. SUBSTRING(PZReferenz,27) = STRING(PZ,"9").
  2142. LEAVE.
  2143. END.
  2144. DO WHILE l3 = 08:
  2145. x2 = 1.
  2146. x1 = INT(SUBSTRING(PZTNummer ,01 ,01)).
  2147. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  2148. DO x3 = 2 TO 08:
  2149. x1 = INT(SUBSTRING(PZTNummer ,x3 ,01)).
  2150. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  2151. END.
  2152. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  2153. SUBSTRING(PZTNummer,09) = STRING(PZ,"9").
  2154. LEAVE.
  2155. END.
  2156. VSZeile = "".
  2157. SUBSTRING(VSZeile,01) = PZBetrag.
  2158. SUBSTRING(VSZeile,14) = ">".
  2159. SUBSTRING(VSZeile,15) = PZReferenz.
  2160. SUBSTRING(VSZeile,42) = "+ ".
  2161. SUBSTRING(VSZeile,44) = PZTNummer.
  2162. SUBSTRING(VSZeile,53) = ">".
  2163. SUBSTRING(VSZeile,58) = "H".
  2164. END PROCEDURE.
  2165. /* _UIB-CODE-BLOCK-END */
  2166. &ANALYZE-RESUME
  2167. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMELSUCHEN C-Win
  2168. PROCEDURE SAMMELSUCHEN :
  2169. /*------------------------------------------------------------------------------
  2170. Purpose:
  2171. Parameters: <none>
  2172. Notes:
  2173. ------------------------------------------------------------------------------*/
  2174. FIND FIRST SammFak WHERE SammFak.Knr = BSavko.Fak_Knr
  2175. AND SammFak.Samm_Nr = BSavko.Samm_Nr NO-ERROR.
  2176. IF AVAILABLE SammFak THEN RETURN.
  2177. SFaknr = 0.
  2178. FOR EACH Savko USE-INDEX Savko-k4
  2179. WHERE Savko.Firma = BSavko.Firma
  2180. AND Savko.Knr = BSavko.Knr
  2181. AND Savko.Fak_Art = BSavko.Fak_Art
  2182. AND Savko.Faknr = BSavko.Faknr
  2183. AND Savko.Samm_Nr = BSavko.Samm_Nr NO-LOCK:
  2184. IF SFaknr = 0 THEN SFaknr = Savko.Faknr.
  2185. CREATE SammFak.
  2186. ASSIGN SammFak.Knr = Savko.Fak_Knr
  2187. SammFak.Aufnr = Savko.Aufnr
  2188. SammFak.Samm_Nr = Savko.Faknr
  2189. SammFak.RID = RECID(Savko).
  2190. END.
  2191. FOR EACH SammFak:
  2192. SammFak.Faknr = SFaknr.
  2193. END.
  2194. END PROCEDURE.
  2195. /* _UIB-CODE-BLOCK-END */
  2196. &ANALYZE-RESUME
  2197. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK C-Win
  2198. PROCEDURE SAMMFAK :
  2199. /*------------------------------------------------------------------------------
  2200. Purpose:
  2201. Parameters: <none>
  2202. Notes:
  2203. ------------------------------------------------------------------------------*/
  2204. Zuszz = 8.
  2205. LiKopf = TRUE.
  2206. FPreis = TRUE.
  2207. FBetrag = TRUE.
  2208. FRabatt = TRUE.
  2209. FUeber = FALSE.
  2210. FSamm = TRUE.
  2211. VKopfArt = 'SAMMFAK_KOPF'.
  2212. IF (BLiDruck.Listtzz - VLine - Zuszz ) < BLiDruck.Listfzz THEN DO:
  2213. TiDruck = TRUE.
  2214. END.
  2215. IF TiDruck THEN DO:
  2216. RUN VALUE(VKopfArt).
  2217. END.
  2218. ELSE DO:
  2219. { v8/putstream.i "2" }
  2220. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20))
  2221. + " "
  2222. + STRING(BSavko.Aufnr,"zzzzzzzzz9").
  2223. { v8/putstream.i "1" }
  2224. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20))
  2225. + " "
  2226. + STRING(BSavko.Auf_Datum,"99.99.9999").
  2227. { v8/putstream.i "2" }
  2228. SUBSTRING(VZeile,001) = FormText[03].
  2229. SUBSTRING(VZeile,071) = FormText[04].
  2230. { v8/putstream.i "1" }
  2231. SUBSTRING(VZeile,001) = FormText[05].
  2232. SUBSTRING(VZeile,071) = FormText[06].
  2233. { v8/putstream.i "1" }
  2234. END.
  2235. LiefAdr = ''.
  2236. IF BSavko.Knr <> BSavko.Fak_Knr THEN DO:
  2237. FIND BAdresse USE-INDEX Adresse-k1
  2238. WHERE BAdresse.Firma = AdFirma
  2239. AND BAdresse.Knr = BSavko.Knr NO-LOCK NO-ERROR.
  2240. LiefAdr = BAdresse.Anzeig_Br.
  2241. END.
  2242. IF LiefAdr <> '' THEN DO:
  2243. VZeile = LiefAdr.
  2244. { v8/putstreamf.i "1" }
  2245. END.
  2246. FOR EACH TSavze NO-LOCK
  2247. BY TSavze.Aufnr
  2248. BY TSavze.Sort1
  2249. BY TSavze.Sort2
  2250. BY TSavze.Sort3
  2251. BY TSavze.Artnr
  2252. BY TSavze.Inhalt
  2253. BY TSavze.Jahr
  2254. BY TSavze.Pos :
  2255. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  2256. RUN VALUE(VKopfArt).
  2257. END.
  2258. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK.
  2259. RUN ARTIKELZEILE.
  2260. VFak_Betr = VFak_Betr + Savze.Net_Betr.
  2261. END.
  2262. VZeile = FILL(cWag, StBreite).
  2263. { v8/putstream.i "1" }
  2264. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)).
  2265. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  2266. { v8/putstreamf.i "1" }
  2267. LiKopf = FALSE.
  2268. RUN SUMMENRABATTE.
  2269. { v8/putstream.i "1" }
  2270. RUN GEBINDE_SALDO.
  2271. RUN GEBINDE_ABRECHNUNG.
  2272. DO ix = 1 TO 12:
  2273. GTWpfl[ix] = GTWpfl[ix] + BSavko.Wpfl[ix].
  2274. GTWust[ix] = GTWust[ix] + BSavko.Wust[ix].
  2275. END.
  2276. GTFak_Betr = GTFak_Betr + VFak_Betr.
  2277. GTSk_Ber = GTSk_Ber + BSavko.Sk_Ber.
  2278. RUN KOPF_MUTATION.
  2279. TiDruck = FALSE.
  2280. IF FLetzt THEN RUN SAMMFAK_ENDE.
  2281. END PROCEDURE.
  2282. /* _UIB-CODE-BLOCK-END */
  2283. &ANALYZE-RESUME
  2284. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_ENDE C-Win
  2285. PROCEDURE SAMMFAK_ENDE :
  2286. /*------------------------------------------------------------------------------
  2287. Purpose:
  2288. Parameters: <none>
  2289. Notes:
  2290. ------------------------------------------------------------------------------*/
  2291. SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026).
  2292. { v8/putstream.i "1" }
  2293. SUBSTRING(VZeile,027) = TRIM(SUBSTRING(FormText[14],01,20)).
  2294. SUBSTRING(VZeile,083) = STRING(GTFak_Betr,"->>,>>9.99").
  2295. { v8/putstreamf.i "1" }
  2296. SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026).
  2297. { v8/putstream.i "1" }
  2298. DO ix = 1 TO 11:
  2299. IF GTWpfl[ix] = 0 THEN NEXT.
  2300. GTFak_Betr = GTFak_Betr + GTWust[ix].
  2301. Zuszz = Zuszz + 1.
  2302. END.
  2303. IF Zuszz > 0 THEN Zuszz = Zuszz + 6.
  2304. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  2305. RUN VALUE(VKopfArt).
  2306. END.
  2307. DO ix = 1 TO 11:
  2308. IF GTWpfl[ix] = 0 THEN NEXT.
  2309. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  2310. WHERE MWSTAns.MWST_Cd = ix
  2311. AND MWSTAns.Datum <= BSavko.Kond_Datum NO-LOCK.
  2312. SUBSTRING(VZeile,027) = MWSTAns.Bez.
  2313. SUBSTRING(VZeile,065) = STRING(GTWpfl[ix],"->>,>>9.99").
  2314. SUBSTRING(VZeile,083) = STRING(GTWust[ix],"->>,>>9.99").
  2315. SUBSTRING(VZeile,094) = STRING(ix ,"z9").
  2316. { v8/putstream.i "1" }
  2317. END.
  2318. Rundbetr = GTFak_Betr.
  2319. Rundcode = 1.
  2320. RUN "v8/runden.p".
  2321. GTFak_Betr = Rundbetr.
  2322. SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026).
  2323. { v8/putstream.i "1" }
  2324. SUBSTRING(VZeile,027) = TRIM(FormText[16]).
  2325. SUBSTRING(VZeile,083) = STRING(GTFak_Betr,"->>,>>9.99").
  2326. { v8/putstreamf.i "1" }
  2327. SUBSTRING(VZeile,083) = FILL('=', StBreite - 082).
  2328. { v8/putstream.i "2" }
  2329. FIND Kondi USE-INDEX Kondi-k1
  2330. WHERE Kondi.Kond = BSavko.Kond
  2331. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  2332. IF AVAILABLE Kondi THEN DO:
  2333. SUBSTRING(VZeile,001) = Kondi.KoText.
  2334. IF Kondi.Skonto[01] <> 0 THEN DO:
  2335. Rundbetr = GTSk_Ber * Kondi.Skonto[01] / 100.
  2336. Rundcode = 1.
  2337. RUN "v8/runden.p".
  2338. SUBSTRING(VZeile,083) = STRING(Rundbetr,"->>,>>9.99").
  2339. END.
  2340. END.
  2341. ELSE DO:
  2342. SUBSTRING(VZeile,001) = FILL('?', 30).
  2343. END.
  2344. { v8/putstream.i "2" }
  2345. RUN UMSATZVERTEILUNG.
  2346. VZeile = CHR(12).
  2347. { v8/putstream.i "1" }
  2348. Rundbetr = GTFak_Betr.
  2349. VesrKnr = BSavko.Fak_Knr.
  2350. VesrFnr = BSavko.Faknr.
  2351. IF VBesr = 2 THEN RUN VESR_DRUCK02.
  2352. ELSE RUN VESR_DRUCK.
  2353. END PROCEDURE.
  2354. /* _UIB-CODE-BLOCK-END */
  2355. &ANALYZE-RESUME
  2356. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_KOPF C-Win
  2357. PROCEDURE SAMMFAK_KOPF :
  2358. /*------------------------------------------------------------------------------
  2359. Purpose:
  2360. Parameters: <none>
  2361. Notes:
  2362. ------------------------------------------------------------------------------*/
  2363. RUN NEUE_SEITE.
  2364. IF VSeite = 1 THEN DO:
  2365. IF Laser THEN DO:
  2366. VZeile = DruckInit + SchriftInit.
  2367. CASE Schacht:
  2368. WHEN 1 THEN VZeile = VZeile + Schacht1.
  2369. WHEN 2 THEN VZeile = VZeile + Schacht2.
  2370. WHEN 3 THEN VZeile = VZeile + Schacht3.
  2371. WHEN 4 THEN VZeile = VZeile + Schacht4.
  2372. END CASE.
  2373. PUT STREAM Out_Stream CONTROL VZeile.
  2374. END.
  2375. SFaknr = BSavko.Faknr.
  2376. FIND Adresse USE-INDEX Adresse-k1
  2377. WHERE Adresse.Firma = AdFirma
  2378. AND Adresse.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  2379. FIND LDebst USE-INDEX Debst-k1
  2380. WHERE LDebst.Firma = GVFirma
  2381. AND LDebst.Knr = BSavko.Knr NO-LOCK NO-ERROR.
  2382. FIND FDebst USE-INDEX Debst-k1
  2383. WHERE FDebst.Firma = GVFirma
  2384. AND FDebst.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  2385. FIND Wust USE-INDEX Wust-k1
  2386. WHERE Wust.CodeK = LDebst.MWST
  2387. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  2388. LVSprcd = Adresse.Sprcd.
  2389. DebInkl = FALSE.
  2390. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  2391. END.
  2392. F_Seite = VSeite.
  2393. F_Faknr = SFaknr.
  2394. DISPLAY F_Seite
  2395. F_Faknr WITH FRAME {&FRAME-NAME}.
  2396. VZeile = ''.
  2397. { v8/putstream.i BLiDruck.Listkzz }.
  2398. DO ix = 6 TO 12:
  2399. SUBSTRING(VZeile,056) = Adresse.Anschrift[ix].
  2400. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END.
  2401. ELSE DO: { v8/putstream.i "1" }. END.
  2402. END.
  2403. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20))
  2404. + STRING(SFaknr,"z999999")
  2405. + " /"
  2406. + STRING(VSeite,"zz9").
  2407. { v8/putstreamf.i "1" }
  2408. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20))
  2409. + " "
  2410. + BSteuer.MWST_Nr.
  2411. { v8/putstream.i "1" }
  2412. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20)).
  2413. SUBSTRING(VZeile,012) = STRING(FDatum,"99.99.9999").
  2414. { v8/putstream.i "2" }
  2415. IF VSeite = 1 THEN DO:
  2416. END.
  2417. DO WHILE TiDruck.
  2418. SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[17],21,20))
  2419. + " "
  2420. + STRING(BSavko.Aufnr,"zzzzzzzzz9").
  2421. { v8/putstream.i "1" }
  2422. SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[07],41,20))
  2423. + " "
  2424. + STRING(BSavko.Auf_Datum,"99.99.9999").
  2425. SUBSTRING(VZeile,056) = TRIM(SUBSTRING(FormText[08],01,20))
  2426. + STRING(BSavko.Fak_Knr,"zz999999").
  2427. { v8/putstream.i "2" }
  2428. LEAVE.
  2429. END.
  2430. IF LiKopf THEN DO:
  2431. SUBSTRING(VZeile,001) = FormText[03].
  2432. SUBSTRING(VZeile,071) = FormText[04].
  2433. { v8/putstream.i "1" }
  2434. SUBSTRING(VZeile,001) = FormText[05].
  2435. SUBSTRING(VZeile,071) = FormText[06].
  2436. StBreite = LENGTH(VZeile).
  2437. { v8/putstream.i "1" }
  2438. END.
  2439. ELSE DO:
  2440. { v8/putstream.i "1" }
  2441. END.
  2442. IF VSeite > 1 AND
  2443. FUeber = TRUE THEN DO:
  2444. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)).
  2445. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  2446. { v8/putstreamf.i "2" }
  2447. END.
  2448. END PROCEDURE.
  2449. /* _UIB-CODE-BLOCK-END */
  2450. &ANALYZE-RESUME
  2451. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUMMENRABATTE C-Win
  2452. PROCEDURE SUMMENRABATTE :
  2453. /*------------------------------------------------------------------------------
  2454. Purpose:
  2455. Parameters: <none>
  2456. Notes:
  2457. ------------------------------------------------------------------------------*/
  2458. DEF VAR RText AS CHAR FORMAT "x(20)" NO-UNDO.
  2459. DEF VAR WText AS CHAR NO-UNDO.
  2460. DO WHILE FRabatt:
  2461. Zuszz = 0.
  2462. FOR EACH TRabSumm NO-LOCK:
  2463. IF TRabSumm.Auf_Rab <> 0 THEN Zuszz = Zuszz + 1.
  2464. IF TRabSumm.Abh_Rab <> 0 THEN Zuszz = Zuszz + 1.
  2465. END.
  2466. FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0 NO-LOCK:
  2467. Zuszz = Zuszz + 1.
  2468. END.
  2469. /* Receycling */
  2470. FOR EACH SavGKon USE-INDEX SavGKon-k1
  2471. WHERE SavGKon.Firma = BSavko.Firma
  2472. AND SavGKon.Aufnr = BSavko.Aufnr
  2473. AND SavGKon.Gebuehr <> 0
  2474. AND SavGKon.Betrag <> 0 NO-LOCK:
  2475. Zuszz = Zuszz + 1.
  2476. END.
  2477. IF Zuszz > 0 THEN Zuszz = Zuszz + 7.
  2478. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  2479. RUN VALUE(VKopfArt).
  2480. END.
  2481. LEAVE.
  2482. END.
  2483. /* Auftragsrabatt ---------------------------------------------------- */
  2484. i5 = 0.
  2485. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
  2486. BY TRabSumm.Rab_Summ:
  2487. Rundbetr = TRabSumm.Auf_Rab.
  2488. VFak_Betr = VFak_Betr - Rundbetr.
  2489. IF NOT FRabatt THEN NEXT.
  2490. IF Rundbetr < 0 THEN RText = VZusText.
  2491. ELSE RText = VRabText.
  2492. FIND FIRST SavRabSu USE-INDEX SavRabSu-k1
  2493. WHERE SavRabSu.Firma = BSavko.Firma
  2494. AND SavRabSu.Aufnr = BSavko.Aufnr
  2495. AND SavRabSu.Rab_Summ = TRabSumm.Rab_Summ NO-LOCK.
  2496. IF SavRabSu.F_Art = 1 THEN WText = "%".
  2497. ELSE WText = "Fr.".
  2498. RabWert = ABSOLUT(SavRabSu.F_Wert).
  2499. SUBSTRING(VZeile,036) = RText
  2500. + " "
  2501. + TRabSumm.Bez.
  2502. SUBSTRING(VZeile,055) = STRING(RabWert,"z9.99-")
  2503. + WText.
  2504. SUBSTRING(VZeile,083) = STRING(- Rundbetr,"->>,>>9.99").
  2505. { v8/putstream.i "1" }
  2506. i5 = i5 + 1.
  2507. END.
  2508. /* Abholrabatt ------------------------------------------------------- */
  2509. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
  2510. BY TRabSumm.Rab_Summ:
  2511. Rundbetr = TRabSumm.Abh_Rab.
  2512. VFak_Betr = VFak_Betr - Rundbetr.
  2513. IF NOT FRabatt THEN NEXT.
  2514. IF Rundbetr < 0 THEN RText = VZusText.
  2515. ELSE RText = VRabText.
  2516. FIND FIRST SavRabSu USE-INDEX SavRabSu-k1
  2517. WHERE SavRabSu.Firma = BSavko.Firma
  2518. AND SavRabSu.Aufnr = BSavko.Aufnr
  2519. AND SavRabSu.Rab_Summ = TRabSumm.Rab_Summ NO-LOCK.
  2520. IF SavRabSu.A_Art = 1 THEN WText = "%".
  2521. ELSE WText = "Fr.".
  2522. RabWert = ABSOLUT(SavRabSu.A_Wert).
  2523. SUBSTRING(VZeile,036) = RText
  2524. + " "
  2525. + TRabSumm.Bez.
  2526. SUBSTRING(VZeile,055) = STRING(RabWert,"z9.99-")
  2527. + WText.
  2528. SUBSTRING(VZeile,083) = STRING(- Rundbetr,"->>,>>9.99").
  2529. { v8/putstream.i "1" }
  2530. i5 = i5 + 1.
  2531. END.
  2532. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */
  2533. FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0
  2534. BY TSpeRab.Rab_Grp:
  2535. Rundbetr = TSpeRab.Auf_Betr.
  2536. VFak_Betr = VFak_Betr - Rundbetr.
  2537. IF NOT FRabatt THEN NEXT.
  2538. FIND Tabel USE-INDEX Tabel-k1
  2539. WHERE Tabel.Firma = GVFirma
  2540. AND Tabel.RecArt = 'ARABGRP'
  2541. AND Tabel.CodeC = ''
  2542. AND Tabel.CodeI = TSpeRab.Rab_Grp
  2543. AND Tabel.Sprcd = 1 NO-LOCK.
  2544. IF Rundbetr < 0 THEN RText = VZusText.
  2545. ELSE RText = VRabText.
  2546. FIND FIRST SavSpRab USE-INDEX SavSpRab-k1
  2547. WHERE SavSpRab.Firma = BSavko.Firma
  2548. AND SavSpRab.Aufnr = BSavko.Aufnr
  2549. AND SavSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK.
  2550. IF SavSpRab.Auf_Proz_Betr THEN WText = "%".
  2551. ELSE WText = "Fr.".
  2552. RabWert = ABSOLUT(SavSpRab.Auf_Wert).
  2553. SUBSTRING(VZeile,036) = RText
  2554. + " "
  2555. + TRIM(Tabel.Bez1).
  2556. SUBSTRING(VZeile,055) = STRING(RabWert,"z9.99-")
  2557. + WText.
  2558. SUBSTRING(VZeile,083) = STRING(- Rundbetr,"->>,>>9.99").
  2559. { v8/putstream.i "1" }
  2560. i5 = i5 + 1.
  2561. END.
  2562. IF i5 > 0 THEN DO:
  2563. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[14],21,20)).
  2564. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  2565. { v8/putstreamf.i "1" }
  2566. END.
  2567. /* Recycling-Gebühren ------------------------------------------------ */
  2568. i5 = 0.
  2569. FOR EACH SavGKon USE-INDEX SavGKon-k1
  2570. WHERE SavGKon.Firma = BSavko.Firma
  2571. AND SavGKon.Aufnr = BSavko.Aufnr
  2572. AND SavGKon.Gebuehr <> 0
  2573. AND SavGKon.Betrag <> 0 NO-LOCK:
  2574. VFak_Betr = VFak_Betr + SavGKon.Betrag.
  2575. IF NOT FRabatt THEN NEXT.
  2576. VWC = SavGKon.MWSt_Cd.
  2577. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[11],41,20)).
  2578. SUBSTRING(VZeile,083) = STRING(SavGKon.Betrag ,"->>,>>9.99").
  2579. SUBSTRING(VZeile,094) = STRING(SavGKon.MWSt_Cd ,"z9").
  2580. { v8/putstream.i "1" }
  2581. i5 = i5 + 1.
  2582. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  2583. WHERE MWSTAns.MWST_Cd = VWC
  2584. AND MWSTAns.Datum <= FDatum NO-LOCK NO-ERROR.
  2585. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 9991
  2586. AND TUmsGrp.Mwst = MWSTAns.Ansatz NO-ERROR.
  2587. IF NOT AVAILABLE TUmsGrp THEN DO:
  2588. CREATE TUmsGrp.
  2589. ASSIGN TUmsGrp.Ums_Grp = 9991
  2590. TUmsGrp.Mwst = MWSTAns.Ansatz
  2591. TUmsGrp.Bez = 'Recycling-Gebühren'.
  2592. END.
  2593. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + SavGKon.Betrag.
  2594. END.
  2595. IF i5 > 0 THEN DO:
  2596. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[14],41,20)).
  2597. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  2598. { v8/putstreamf.i "1" }
  2599. END.
  2600. END PROCEDURE.
  2601. /* _UIB-CODE-BLOCK-END */
  2602. &ANALYZE-RESUME
  2603. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE UMSATZVERTEILUNG C-Win
  2604. PROCEDURE UMSATZVERTEILUNG :
  2605. /*------------------------------------------------------------------------------
  2606. Purpose:
  2607. Parameters: <none>
  2608. Notes:
  2609. ------------------------------------------------------------------------------*/
  2610. DEF VAR Total1 AS DEC NO-UNDO.
  2611. DEF VAR Total2 AS DEC NO-UNDO.
  2612. DEF VAR Total3 AS DEC NO-UNDO.
  2613. DEF VAR Brutto AS DEC NO-UNDO.
  2614. DEF VAR cDaten AS CHAR NO-UNDO.
  2615. DEF VAR fInkl AS LOG NO-UNDO.
  2616. RUN FIND_PREISGRUPPE ( INPUT BSavko.Preis_Grp, OUTPUT cDaten ).
  2617. IF INTEGER(ENTRY(3, cDaten, CHR(01))) = 0 THEN fInkl = FALSE.
  2618. ELSE fInkl = TRUE.
  2619. Zuszz = 0.
  2620. Ja = FALSE.
  2621. FOR EACH TUmsGrp NO-LOCK:
  2622. Zuszz = Zuszz + 1.
  2623. END.
  2624. IF Zuszz > 0 THEN DO:
  2625. Zuszz = Zuszz + 2.
  2626. Ja = TRUE.
  2627. END.
  2628. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  2629. RUN VALUE(VKopfArt).
  2630. END.
  2631. IF Ja THEN DO:
  2632. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[15],41,20)).
  2633. { v8/putstreamf.i "1" }
  2634. END.
  2635. Total1 = 0.
  2636. Total2 = 0.
  2637. Total3 = 0.
  2638. FOR EACH TUmsGrp WHERE TUmsGrp.Ums_Betr <> 0 NO-LOCK
  2639. BY TUmsGrp.Ums_Grp :
  2640. IF fInkl THEN Rundbetr = TUmsGrp.Ums_Betr
  2641. * TUmsGrp.Mwst
  2642. / (100 + TUmsGrp.Mwst).
  2643. ELSE Rundbetr = TUmsGrp.Ums_Betr
  2644. * TUmsGrp.Mwst
  2645. / 100.
  2646. IF fInkl THEN Brutto = TUmsGrp.Ums_Betr.
  2647. ELSE Brutto = TUmsGrp.Ums_Betr + Rundbetr.
  2648. SUBSTRING(VZeile,001) = TUmsGrp.Bez.
  2649. SUBSTRING(VZeile,040) = BSteuer.Fwc03.
  2650. SUBSTRING(VZeile,050) = STRING(TUmsGrp.Ums_Betr,"->>>,>>9.99").
  2651. SUBSTRING(VZeile,065) = STRING(TUmsGrp.Mwst ,"z9.99%").
  2652. SUBSTRING(VZeile,071) = STRING(Rundbetr ,"->>>,>>9.99").
  2653. SUBSTRING(VZeile,082) = STRING(Brutto ,"->>>,>>9.99").
  2654. { v8/putstream.i "1" }
  2655. Total1 = Total1 + TUmsGrp.Ums_Betr.
  2656. Total2 = Total2 + Rundbetr.
  2657. Total3 = Total3 + Brutto.
  2658. END.
  2659. SUBSTRING(VZeile,050) = STRING(Total1,"->>>,>>9.99").
  2660. SUBSTRING(VZeile,071) = STRING(Total2,"->>>,>>9.99").
  2661. SUBSTRING(VZeile,082) = STRING(Total3,"->>>,>>9.99").
  2662. { v8/putstreamf.i "1" }
  2663. END PROCEDURE.
  2664. /* _UIB-CODE-BLOCK-END */
  2665. &ANALYZE-RESUME
  2666. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERSANDART C-Win
  2667. PROCEDURE VERSANDART :
  2668. /*------------------------------------------------------------------------------
  2669. Purpose:
  2670. Parameters: <none>
  2671. Notes:
  2672. ------------------------------------------------------------------------------*/
  2673. XVersand = ''.
  2674. FIND Tabel USE-INDEX Tabel-k1
  2675. WHERE Tabel.Firma = GVFirma
  2676. AND Tabel.RecArt = 'LIEFART'
  2677. AND Tabel.CodeC = ''
  2678. AND Tabel.CodeI = BSavko.Lief_Bed
  2679. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  2680. IF AVAILABLE Tabel THEN XVersand = Tabel.Bez1.
  2681. END PROCEDURE.
  2682. /* _UIB-CODE-BLOCK-END */
  2683. &ANALYZE-RESUME
  2684. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK C-Win
  2685. PROCEDURE VESR_DRUCK :
  2686. /*------------------------------------------------------------------------------
  2687. Purpose:
  2688. Parameters: <none>
  2689. Notes:
  2690. ------------------------------------------------------------------------------*/
  2691. IF VBesr = 0 THEN RETURN.
  2692. FIND Kondi USE-INDEX Kondi-k1
  2693. WHERE Kondi.Kond = BSavko.Kond
  2694. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  2695. IF AVAILABLE Kondi THEN DO:
  2696. IF Kondi.Skonto[01] <> 0 THEN Rundbetr = 0.
  2697. END.
  2698. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
  2699. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  2700. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  2701. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  2702. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  2703. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  2704. DEF VAR XArt AS INT.
  2705. DEF VAR XAnz AS INT.
  2706. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  2707. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  2708. DEF VAR VESR AS CHAR FORMAT "x(02)".
  2709. DEF VAR DruBetr AS DEC NO-UNDO.
  2710. DEF VAR XBetrag AS CHAR FORMAT "x(12)" NO-UNDO.
  2711. i1 = BLiDruck.Listtzz - VLine.
  2712. { v8/putstream.i i1 }
  2713. IF Rundbetr <= 0 THEN DruBetr = 0.
  2714. ELSE DruBetr = Rundbetr.
  2715. DO WHILE TRUE:
  2716. PZBetrag = ''.
  2717. XBetrag = ''.
  2718. IF DruBetr < 0 THEN DO:
  2719. PZBetrag = FILL('*', 13).
  2720. PZReferenz = FILL('*', 27).
  2721. PZTNummer = FILL('*', 09).
  2722. XBetrag = FILL('*', 12).
  2723. END.
  2724. ELSE DO:
  2725. IF DruBetr > 0 THEN DO:
  2726. PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  2727. XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999").
  2728. END.
  2729. IF DruBetr = 0 THEN DO:
  2730. PZBetrag = " 04 ".
  2731. END.
  2732. PZReferenz = "996665000000"
  2733. + STRING(VesrKnr,"999999")
  2734. + "0"
  2735. + STRING(VesrFnr,"9999999")
  2736. + " ".
  2737. PZTNummer = "01000530".
  2738. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  2739. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  2740. END.
  2741. FIND Adresse USE-INDEX Adresse-k1
  2742. WHERE Adresse.Firma = AdFirma
  2743. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  2744. VVesr = "".
  2745. SUBSTRING(VVesr[01],01) = "Graubündner Kantonalbank".
  2746. SUBSTRING(VVesr[01],30) = "Graubündner Kantonalbank".
  2747. SUBSTRING(VVesr[02],01) = "7002 Chur".
  2748. SUBSTRING(VVesr[02],30) = "7002 Chur".
  2749. SUBSTRING(VVesr[05],01) = "Oswald Getränke AG".
  2750. SUBSTRING(VVesr[05],30) = "Oswald Getränke AG".
  2751. SUBSTRING(VVesr[06],01) = "Via Santeri 76".
  2752. SUBSTRING(VVesr[06],30) = "Via Santeri 76".
  2753. SUBSTRING(VVesr[07],01) = "7130 Ilanz".
  2754. SUBSTRING(VVesr[07],30) = "7130 Ilanz".
  2755. SUBSTRING(VVesr[09],14) = "01-530-4".
  2756. SUBSTRING(VVesr[09],43) = "01-530-4".
  2757. SUBSTRING(VVesr[07],61) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  2758. SUBSTRING(VVesr[11],09) = STRING(XBetrag,"XXXXXXXXXX XX").
  2759. SUBSTRING(VVesr[11],38) = STRING(XBetrag,"XXXXXXXXXX XX").
  2760. SUBSTRING(VVesr[11],61) = Adresse.Anschrift[08].
  2761. SUBSTRING(VVesr[12],61) = Adresse.Anschrift[09].
  2762. SUBSTRING(VVesr[13],61) = Adresse.Anschrift[10].
  2763. SUBSTRING(VVesr[14],61) = Adresse.Anschrift[11].
  2764. SUBSTRING(VVesr[15],61) = Adresse.Anschrift[12].
  2765. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  2766. SUBSTRING(VVesr[13],04) = SUBSTRING(VZeile,01,14).
  2767. SUBSTRING(VVesr[14],01) = SUBSTRING(VZeile,16,17).
  2768. SUBSTRING(VVesr[15],01) = Adresse.Anschrift[09].
  2769. SUBSTRING(VVesr[16],01) = Adresse.Anschrift[10].
  2770. SUBSTRING(VVesr[17],01) = Adresse.Anschrift[11].
  2771. SUBSTRING(VVesr[18],01) = Adresse.Anschrift[12].
  2772. SUBSTRING(VVesr[19],27) = STRING(VSZeile,"x(53)").
  2773. SUBSTRING(VVesr[19],84) = "H".
  2774. VVesr[19] = BDrucker.Dru10cpi
  2775. + BDrucker.DruLQb
  2776. + CHR(27) + "k" + CHR(05)
  2777. + VVesr[19]
  2778. + CHR(27) + "k" + CHR(30)
  2779. + BDrucker.DruLQe
  2780. + BDrucker.Dru12cpi.
  2781. DO ix = 1 TO 20:
  2782. VZeile = VVesr[ix].
  2783. { v8/putstream.i "1" }
  2784. END.
  2785. LEAVE.
  2786. END.
  2787. END PROCEDURE.
  2788. /* _UIB-CODE-BLOCK-END */
  2789. &ANALYZE-RESUME
  2790. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK02 C-Win
  2791. PROCEDURE VESR_DRUCK02 :
  2792. /*------------------------------------------------------------------------------
  2793. Purpose:
  2794. Parameters: <none>
  2795. Notes:
  2796. ------------------------------------------------------------------------------*/
  2797. DEF VAR rRand AS INT NO-UNDO.
  2798. DEF VAR xx AS INT NO-UNDO.
  2799. DEF VAR yy AS INT NO-UNDO.
  2800. DEF VAR zPos AS CHAR NO-UNDO.
  2801. IF VBesr <> 2 THEN RETURN.
  2802. FIND Kondi USE-INDEX Kondi-k1
  2803. WHERE Kondi.Kond = BSavko.Kond
  2804. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  2805. IF AVAILABLE Kondi THEN DO:
  2806. IF Kondi.Skonto[01] <> 0 THEN Rundbetr = 0.
  2807. END.
  2808. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
  2809. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  2810. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  2811. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  2812. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  2813. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  2814. DEF VAR XArt AS INT.
  2815. DEF VAR XAnz AS INT.
  2816. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  2817. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  2818. DEF VAR VESR AS CHAR FORMAT "x(02)".
  2819. DEF VAR DruBetr AS DEC NO-UNDO.
  2820. DEF VAR XBetrag AS CHAR FORMAT "x(12)" NO-UNDO.
  2821. FIND DTabel USE-INDEX Tabel-k1
  2822. WHERE DTabel.Firma = GVFirma
  2823. AND DTabel.RecArt = 'FAKDRU'
  2824. AND DTabel.CodeC = 'BESR02'
  2825. AND DTabel.CodeI = 0
  2826. AND DTabel.Sprcd = 1 NO-LOCK NO-ERROR.
  2827. VZeile = ''.
  2828. CASE DTabel.Dec_3:
  2829. WHEN 1.0 THEN VZeile = VZeile + Schacht1.
  2830. WHEN 2.0 THEN VZeile = VZeile + Schacht2.
  2831. WHEN 3.0 THEN VZeile = VZeile + Schacht3.
  2832. WHEN 4.0 THEN VZeile = VZeile + Schacht4.
  2833. END CASE.
  2834. xx = 00.
  2835. yy = 2345.
  2836. VZeile = VZeile + CHR(27) + '*p' + STRING(yy) + 'y' + STRING(xx) + 'x'
  2837. + CHR(10).
  2838. i1 = 1.
  2839. /*
  2840. i1 = DTabel.Int_2.
  2841. */
  2842. PUT STREAM Out_Stream CONTROL VZeile.
  2843. IF Rundbetr <= 0 THEN DruBetr = 0.
  2844. ELSE DruBetr = Rundbetr.
  2845. DO WHILE TRUE:
  2846. PZBetrag = ''.
  2847. XBetrag = ''.
  2848. IF DruBetr < 0 THEN DO:
  2849. PZBetrag = FILL('*', 13).
  2850. PZReferenz = FILL('*', 27).
  2851. PZTNummer = FILL('*', 09).
  2852. XBetrag = FILL('*', 12).
  2853. END.
  2854. ELSE DO:
  2855. IF DruBetr > 0 THEN DO:
  2856. PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  2857. XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999").
  2858. END.
  2859. IF DruBetr = 0 THEN DO:
  2860. PZBetrag = " 04 ".
  2861. END.
  2862. PZReferenz = "996665000000"
  2863. + STRING(VesrKnr,"999999")
  2864. + "0"
  2865. + STRING(VesrFnr,"9999999")
  2866. + " ".
  2867. PZTNummer = "01000530".
  2868. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  2869. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  2870. END.
  2871. FIND Adresse USE-INDEX Adresse-k1
  2872. WHERE Adresse.Firma = AdFirma
  2873. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  2874. VVesr = "".
  2875. SUBSTRING(VVesr[01],01) = "Graubündner Kantonalbank".
  2876. SUBSTRING(VVesr[01],30) = "Graubündner Kantonalbank".
  2877. SUBSTRING(VVesr[02],01) = "7002 Chur".
  2878. SUBSTRING(VVesr[02],30) = "7002 Chur".
  2879. SUBSTRING(VVesr[05],01) = "Oswald Getränke AG".
  2880. SUBSTRING(VVesr[05],30) = "Oswald Getränke AG".
  2881. SUBSTRING(VVesr[06],01) = "Via Santeri 76".
  2882. SUBSTRING(VVesr[06],30) = "Via Santeri 76".
  2883. SUBSTRING(VVesr[07],01) = "7130 Ilanz".
  2884. SUBSTRING(VVesr[07],30) = "7130 Ilanz".
  2885. SUBSTRING(VVesr[09],14) = "01-530-4".
  2886. SUBSTRING(VVesr[09],43) = "01-530-4".
  2887. SUBSTRING(VVesr[07],65) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  2888. SUBSTRING(VVesr[11],09) = STRING(XBetrag,"XXXXXXXXXX XX").
  2889. SUBSTRING(VVesr[11],40) = STRING(XBetrag,"XXXXXXXXXX XX").
  2890. SUBSTRING(VVesr[11],63) = Adresse.Anschrift[08].
  2891. SUBSTRING(VVesr[12],63) = Adresse.Anschrift[09].
  2892. SUBSTRING(VVesr[13],63) = Adresse.Anschrift[10].
  2893. SUBSTRING(VVesr[14],63) = Adresse.Anschrift[11].
  2894. SUBSTRING(VVesr[15],63) = Adresse.Anschrift[12].
  2895. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  2896. SUBSTRING(VVesr[13],04) = SUBSTRING(VZeile,01,14).
  2897. SUBSTRING(VVesr[14],01) = SUBSTRING(VZeile,16,17).
  2898. SUBSTRING(VVesr[15],01) = Adresse.Anschrift[09].
  2899. SUBSTRING(VVesr[16],01) = Adresse.Anschrift[10].
  2900. SUBSTRING(VVesr[17],01) = Adresse.Anschrift[11].
  2901. SUBSTRING(VVesr[18],01) = Adresse.Anschrift[12].
  2902. SUBSTRING(VVesr[19],25) = STRING(VSZeile,"x(53)").
  2903. SUBSTRING(VVesr[19],82) = "H".
  2904. xx = 09.
  2905. yy = 3287.
  2906. zPos = CHR(27) + '*p' + STRING(yy) + 'y' + STRING(xx) + 'x'.
  2907. VVesr[19] = zPos
  2908. + CHR(27) + '(1O' + CHR(27) + '(s10h0b0s0p110T'
  2909. + VVesr[19]
  2910. + SchriftInit.
  2911. rRand = VRand.
  2912. VRand = 0.
  2913. DO ix = 1 TO 19:
  2914. VZeile = VVesr[ix] + CHR(10).
  2915. PUT STREAM Out_Stream CONTROL VZeile.
  2916. END.
  2917. VRand = rRand.
  2918. LEAVE.
  2919. END.
  2920. END PROCEDURE.
  2921. /* _UIB-CODE-BLOCK-END */
  2922. &ANALYZE-RESUME
  2923. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WORKFILE C-Win
  2924. PROCEDURE WORKFILE :
  2925. /*------------------------------------------------------------------------------
  2926. Purpose:
  2927. Parameters: <none>
  2928. Notes:
  2929. ------------------------------------------------------------------------------*/
  2930. FIND BSchrift USE-INDEX Schrift-k1
  2931. WHERE BSchrift.Schname = BLiDruck.ListDru
  2932. AND BSchrift.Schbild = BLiDruck.ListBild NO-LOCK NO-ERROR.
  2933. FIND BDrucker USE-INDEX Drucker-k1
  2934. WHERE BDrucker.Drucker = BSchrift.Schdru NO-LOCK NO-ERROR.
  2935. DOpen = FALSE.
  2936. VTemp = ''.
  2937. IF BDrucker.Emul = 'TERMINAL' THEN DO:
  2938. FOR EACH XTermOut:
  2939. DELETE XTermOut.
  2940. END.
  2941. VZNr = 0.
  2942. RETURN.
  2943. END.
  2944. DO WHILE TRUE TRANSACTION:
  2945. FIND Tabel USE-INDEX Tabel-k1
  2946. WHERE Tabel.Firma = GVFirma
  2947. AND Tabel.RecArt = 'TEMPFILE'
  2948. AND Tabel.CodeI = 0
  2949. AND Tabel.CodeC = 'AUFTRAG'
  2950. AND Tabel.Sprcd = 1 NO-ERROR.
  2951. IF NOT AVAILABLE Tabel THEN DO:
  2952. CREATE Tabel.
  2953. ASSIGN Tabel.Firma = GVFirma
  2954. Tabel.RecArt = 'TEMPFILE'
  2955. Tabel.CodeI = 0
  2956. Tabel.CodeC = 'AUFTRAG'
  2957. Tabel.Sprcd = 1
  2958. Tabel.Bez1 = SESSION:TEMP-DIR.
  2959. END.
  2960. Tabel.Int_1 = Tabel.Int_1 + 1.
  2961. VTemp = Tabel.Bez1 + 'Faktura' + STRING(Tabel.Int_1) + '.tmp'.
  2962. RELEASE Tabel.
  2963. LEAVE.
  2964. END.
  2965. DOpen = TRUE.
  2966. END PROCEDURE.
  2967. /* _UIB-CODE-BLOCK-END */
  2968. &ANALYZE-RESUME
  2969. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ZAHLUNGSKONDITION C-Win
  2970. PROCEDURE ZAHLUNGSKONDITION :
  2971. /*------------------------------------------------------------------------------
  2972. Purpose:
  2973. Parameters: <none>
  2974. Notes:
  2975. ------------------------------------------------------------------------------*/
  2976. FIND Kondi USE-INDEX Kondi-k1
  2977. WHERE Kondi.Kond = BSavko.Kond
  2978. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  2979. IF AVAILABLE Kondi THEN DO:
  2980. SUBSTRING(VZeile,001) = Kondi.KoText.
  2981. IF Kondi.Skonto[01] <> 0 THEN DO:
  2982. Rundbetr = BSavko.Sk_Ber * Kondi.Skonto[01] / 100.
  2983. IF DebInkl THEN DO:
  2984. Rundcode = 1.
  2985. RUN "v8/runden.p".
  2986. END.
  2987. SUBSTRING(VZeile,083) = STRING(Rundbetr,"->>,>>9.99").
  2988. END.
  2989. END.
  2990. ELSE DO:
  2991. SUBSTRING(VZeile,001) = FILL('?', 30).
  2992. END.
  2993. { v8/putstream.i "2" }
  2994. END PROCEDURE.
  2995. /* _UIB-CODE-BLOCK-END */
  2996. &ANALYZE-RESUME