c-p_sanmartino-sk.w 132 KB

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