b-p_vesr_1.w 91 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. /* Temp-Table and Buffer definitions */
  8. DEFINE TEMP-TABLE XSchrift NO-UNDO LIKE Schrift.
  9. DEFINE NEW SHARED TEMP-TABLE XTermOut NO-UNDO LIKE TermOut.
  10. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS B-table-Win
  11. /*------------------------------------------------------------------------
  12. File:
  13. Description: from BROWSER.W - Basic SmartBrowser Object Template
  14. Input Parameters:
  15. <none>
  16. Output Parameters:
  17. <none>
  18. ------------------------------------------------------------------------*/
  19. /* This .W file was created with the Progress UIB. */
  20. /*----------------------------------------------------------------------*/
  21. /* Create an unnamed pool to store all the widgets created
  22. by this procedure. This is a good default which assures
  23. that this procedure's triggers and internal procedures
  24. will execute in this procedure's storage, and that proper
  25. cleanup will occur on deletion of the procedure. */
  26. CREATE WIDGET-POOL.
  27. /* *************************** Definitions ************************** */
  28. /* Parameters Definitions --- */
  29. /* Local Variable Definitions --- */
  30. DEFINE VARIABLE AltSchname LIKE Schrift.Schname NO-UNDO.
  31. DEFINE VARIABLE QOpen AS LOG NO-UNDO.
  32. DEFINE VARIABLE FOpen AS LOG NO-UNDO.
  33. DEFINE VARIABLE OBreite AS INTEGER NO-UNDO.
  34. DEFINE VARIABLE cInstallation AS CHARACTER NO-UNDO.
  35. DEFINE VARIABLE VProgname AS CHARACTER NO-UNDO.
  36. DEFINE VARIABLE ARecid AS RECID INIT -1 NO-UNDO.
  37. DEFINE VARIABLE BRecid AS RECID INIT -1 NO-UNDO.
  38. DEFINE VARIABLE FInit AS LOG NO-UNDO.
  39. DEFINE VARIABLE FVerbuchen AS LOG NO-UNDO.
  40. /* ------------------------------------------------------------------------- */
  41. DEFINE VARIABLE VZeile AS CHARACTER FORMAT "x(180)".
  42. DEFINE VARIABLE VPage AS INTEGER.
  43. DEFINE VARIABLE RRand AS INTEGER INIT 0.
  44. DEFINE VARIABLE VDatei AS CHARACTER FORMAT "x(30)".
  45. DEFINE VARIABLE VTage AS INTEGER FORMAT "99".
  46. DEFINE VARIABLE VDatum AS DATE FORMAT "99.99.9999".
  47. DEFINE VARIABLE BDatum AS DATE FORMAT "99.99.9999".
  48. DEFINE VARIABLE nDatum AS INTEGER NO-UNDO.
  49. DEFINE VARIABLE VName AS CHARACTER FORMAT "x(30)".
  50. DEFINE VARIABLE VOrt AS CHARACTER FORMAT "x(30)".
  51. DEFINE VARIABLE VTrArt AS INTEGER.
  52. DEFINE VARIABLE VTot AS DECIMAL EXTENT 10.
  53. DEFINE VARIABLE VDat AS INTEGER.
  54. DEFINE VARIABLE VAnzDat AS INTEGER.
  55. DEFINE VARIABLE VBuDat AS DATE FORMAT "99.99.9999".
  56. DEFINE VARIABLE VKonto AS CHARACTER FORMAT "x(12)".
  57. DEFINE VARIABLE VFirma AS CHARACTER FORMAT "x(08)".
  58. DEFINE VARIABLE AFirma AS CHARACTER FORMAT "x(08)".
  59. DEFINE VARIABLE VFaknr AS INTEGER.
  60. DEFINE VARIABLE VDebst AS LOG.
  61. DEFINE VARIABLE KnrPos AS INTEGER NO-UNDO.
  62. DEFINE VARIABLE FnrPos AS INTEGER NO-UNDO.
  63. DEFINE VARIABLE KnrLang AS INTEGER NO-UNDO.
  64. DEFINE VARIABLE FnrLang AS INTEGER NO-UNDO.
  65. DEFINE VARIABLE SperrDat AS DATE NO-UNDO.
  66. DEFINE VARIABLE cDrucker AS CHARACTER NO-UNDO.
  67. DEFINE VARIABLE XFakBetr AS DECIMAL.
  68. DEFINE VARIABLE XSaldo AS DECIMAL.
  69. DEFINE VARIABLE XSkBer AS DECIMAL.
  70. DEFINE VARIABLE XSkonto AS DECIMAL.
  71. DEFINE VARIABLE XFakDat AS DATE.
  72. DEFINE VARIABLE XKond AS INTEGER.
  73. DEFINE VARIABLE VSkonto AS DECIMAL.
  74. DEFINE VARIABLE VBetrag AS DECIMAL.
  75. DEFINE VARIABLE VTol AS DECIMAL.
  76. DEFINE VARIABLE VSk_Tol_Max AS DECIMAL.
  77. DEFINE VARIABLE VSk_Tol_% AS DECIMAL.
  78. DEFINE BUFFER BAdresse FOR Adresse.
  79. DEFINE BUFFER BDebst FOR Debst .
  80. DEFINE BUFFER BTabel FOR Tabel .
  81. DEFINE BUFFER CSteuer FOR Steuer .
  82. DEFINE VARIABLE VZaBetr AS DECIMAL.
  83. DEFINE VARIABLE VSkBetr AS DECIMAL.
  84. DEFINE VARIABLE XDatum AS DATE.
  85. DEFINE VARIABLE VTrNr1 AS INTEGER.
  86. DEFINE VARIABLE VTrNr2 AS INTEGER.
  87. DEFINE VARIABLE VHerk AS INTEGER.
  88. DEFINE VARIABLE VBankKto AS CHARACTER.
  89. DEFINE VARIABLE VSkoKto AS CHARACTER.
  90. DEFINE VARIABLE VDebKto AS CHARACTER.
  91. DEFINE VARIABLE VBuchtxt1 AS CHARACTER.
  92. DEFINE VARIABLE VBuchtxt2 AS CHARACTER.
  93. DEFINE VARIABLE VZahFl AS LOG.
  94. DEFINE VARIABLE FFehler AS LOG.
  95. DEFINE VARIABLE VKte AS CHARACTER.
  96. DEFINE VARIABLE VDateiName AS CHARACTER FORMAT "x(40)" NO-UNDO.
  97. DEFINE VARIABLE OKpressed AS LOG NO-UNDO.
  98. DEFINE VARIABLE zz AS INTEGER.
  99. DEFINE BUFFER BDebop FOR Debop.
  100. DEFINE BUFFER BDebza FOR Debza.
  101. DEFINE BUFFER BDebfa FOR Debfa.
  102. DEFINE VARIABLE VAntZ AS DECIMAL DECIMALS 4.
  103. DEFINE VARIABLE VAntS AS DECIMAL DECIMALS 4.
  104. DEFINE VARIABLE XTot AS DECIMAL EXTENT 12.
  105. DEFINE VARIABLE VZah AS DECIMAL EXTENT 12.
  106. DEFINE VARIABLE VSko AS DECIMAL EXTENT 12.
  107. DEFINE VARIABLE VZRes AS DECIMAL.
  108. DEFINE VARIABLE VSRes AS DECIMAL.
  109. DEFINE VARIABLE VMax AS INTEGER.
  110. DEFINE TEMP-TABLE WFile
  111. FIELD Kto1 AS CHARACTER
  112. FIELD Kto2 AS CHARACTER
  113. FIELD MWST_Cd AS INTEGER
  114. FIELD Betrag AS DECIMAL.
  115. /* ---------- Globale Variablen ---------------------------------- */
  116. { v8/globvar.i" " " " "SHARED" }
  117. { v8/debivar.i " " " " "SHARED" }
  118. { v8/artivar.i " " " " "SHARED" }
  119. { v8/contvar.i " " " " "SHARED" }
  120. { v8/listtitv.i "NEW" "SHARED" }
  121. { incl/ttcamt054_esr.i }
  122. /* _UIB-CODE-BLOCK-END */
  123. &ANALYZE-RESUME
  124. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  125. /* ******************** Preprocessor Definitions ******************** */
  126. &Scoped-define PROCEDURE-TYPE SmartBrowser
  127. &Scoped-define DB-AWARE no
  128. &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target
  129. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  130. &Scoped-define FRAME-NAME F-Main
  131. &Scoped-define BROWSE-NAME Br_Druckername
  132. /* Internal Tables (found by Frame, Query & Browse Queries) */
  133. &Scoped-define INTERNAL-TABLES XSchrift Schrift
  134. /* Define KEY-PHRASE in case it is used by any query. */
  135. &Scoped-define KEY-PHRASE TRUE
  136. /* Definitions for BROWSE Br_Druckername */
  137. &Scoped-define FIELDS-IN-QUERY-Br_Druckername XSchrift.Schname
  138. &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Druckername
  139. &Scoped-define QUERY-STRING-Br_Druckername FOR EACH XSchrift WHERE ~{&KEY-PHRASE} NO-LOCK ~
  140. ~{&SORTBY-PHRASE}
  141. &Scoped-define OPEN-QUERY-Br_Druckername OPEN QUERY Br_Druckername FOR EACH XSchrift WHERE ~{&KEY-PHRASE} NO-LOCK ~
  142. ~{&SORTBY-PHRASE}.
  143. &Scoped-define TABLES-IN-QUERY-Br_Druckername XSchrift
  144. &Scoped-define FIRST-TABLE-IN-QUERY-Br_Druckername XSchrift
  145. /* Definitions for BROWSE Br_Schriftbild */
  146. &Scoped-define FIELDS-IN-QUERY-Br_Schriftbild Schrift.Schbild
  147. &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Schriftbild
  148. &Scoped-define QUERY-STRING-Br_Schriftbild FOR EACH Schrift NO-LOCK ~
  149. BY Schrift.Schbild
  150. &Scoped-define OPEN-QUERY-Br_Schriftbild OPEN QUERY Br_Schriftbild FOR EACH Schrift NO-LOCK ~
  151. BY Schrift.Schbild.
  152. &Scoped-define TABLES-IN-QUERY-Br_Schriftbild Schrift
  153. &Scoped-define FIRST-TABLE-IN-QUERY-Br_Schriftbild Schrift
  154. /* Definitions for FRAME F-Main */
  155. /* Standard List Definitions */
  156. &Scoped-Define ENABLED-FIELDS Listen.VFl[1] Listen.VCh[1] Listen.ENr[1] ~
  157. Listen.ECh[1] Listen.VDa[1] Listen.BDa[1] Listen.ENr[3]
  158. &Scoped-define ENABLED-TABLES Listen
  159. &Scoped-define FIRST-ENABLED-TABLE Listen
  160. &Scoped-Define ENABLED-OBJECTS Br_Druckername Br_Schriftbild F_Sort F_USER ~
  161. F_TZZ F_KZZ F_FZZ F_Programm F_LQ F_Zeichen F_KOPIE F_SCHACHT Btn_Start ~
  162. Btn_Ende S_Anzahl F_Bemerk RECT-10 RECT-11 RECT-12 RECT-13 RECT-17
  163. &Scoped-Define DISPLAYED-FIELDS Listen.VFl[1] Listen.VCh[1] Listen.ENr[1] ~
  164. Listen.ECh[1] Listen.VDa[1] Listen.BDa[1] Listen.ENr[3]
  165. &Scoped-define DISPLAYED-TABLES Listen
  166. &Scoped-define FIRST-DISPLAYED-TABLE Listen
  167. &Scoped-Define DISPLAYED-OBJECTS F_Sort F_USER F_TZZ F_KZZ F_FZZ F_Programm ~
  168. F_LQ F_Zeichen F_KOPIE F_SCHACHT S_Anzahl F_Bemerk
  169. /* Custom List Definitions */
  170. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  171. &Scoped-define List-1 F_Sort F_TZZ F_KZZ F_FZZ F_LQ F_KOPIE F_SCHACHT
  172. &Scoped-define List-2 Listen.VFl[1] Listen.VCh[1] Listen.ENr[1] ~
  173. Listen.ECh[1] Listen.VDa[1] Listen.BDa[1] Listen.ENr[3]
  174. /* _UIB-PREPROCESSOR-BLOCK-END */
  175. &ANALYZE-RESUME
  176. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" B-table-Win _INLINE
  177. /* Actions: ? adm/support/keyedit.w ? ? ? */
  178. /* STRUCTURED-DATA
  179. <KEY-OBJECT>
  180. &BROWSE-NAME
  181. </KEY-OBJECT>
  182. <FOREIGN-KEYS>
  183. </FOREIGN-KEYS
  184. ><EXECUTING-CODE>
  185. **************************
  186. * Set attributes related to FOREIGN KEYS
  187. */
  188. RUN set-attribute-list (
  189. 'Keys-Accepted = "",
  190. Keys-Supplied = ""':U).
  191. /**************************
  192. </EXECUTING-CODE> */
  193. /* _UIB-CODE-BLOCK-END */
  194. &ANALYZE-RESUME
  195. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Advanced Query Options" B-table-Win _INLINE
  196. /* Actions: ? adm/support/advqedit.w ? ? ? */
  197. /* STRUCTURED-DATA
  198. <KEY-OBJECT>
  199. &BROWSE-NAME
  200. </KEY-OBJECT>
  201. <SORTBY-OPTIONS>
  202. </SORTBY-OPTIONS>
  203. <SORTBY-RUN-CODE>
  204. ************************
  205. * Set attributes related to SORTBY-OPTIONS */
  206. RUN set-attribute-list (
  207. 'SortBy-Options = ""':U).
  208. /************************
  209. </SORTBY-RUN-CODE>
  210. <FILTER-ATTRIBUTES>
  211. </FILTER-ATTRIBUTES> */
  212. /* _UIB-CODE-BLOCK-END */
  213. &ANALYZE-RESUME
  214. /* *********************** Control Definitions ********************** */
  215. /* Definitions of the field level widgets */
  216. DEFINE BUTTON Btn_Ende
  217. LABEL "&Ende"
  218. SIZE 14 BY 1.
  219. DEFINE BUTTON Btn_Start
  220. LABEL "&Starten"
  221. SIZE 14 BY 1.
  222. DEFINE VARIABLE F_Bemerk AS CHARACTER FORMAT "X(256)":U
  223. VIEW-AS FILL-IN NATIVE
  224. SIZE 77 BY 1.05
  225. BGCOLOR 10 NO-UNDO.
  226. DEFINE VARIABLE F_FZZ AS INTEGER FORMAT "999":U INITIAL 0
  227. LABEL "Fusszeilen"
  228. VIEW-AS FILL-IN NATIVE
  229. SIZE 7 BY 1.05 TOOLTIP "Wieviele Zeilen müssen am Ende der Seite leer bleiben"
  230. BGCOLOR 15 NO-UNDO.
  231. DEFINE VARIABLE F_KOPIE AS INTEGER FORMAT "9":U INITIAL 0
  232. LABEL "Anz. Kopien"
  233. VIEW-AS FILL-IN NATIVE
  234. SIZE 4.2 BY 1.05 TOOLTIP "Anzahl Listenkopien"
  235. BGCOLOR 15 NO-UNDO.
  236. DEFINE VARIABLE F_KZZ AS INTEGER FORMAT "999":U INITIAL 0
  237. LABEL "Kopfzeilen"
  238. VIEW-AS FILL-IN NATIVE
  239. SIZE 7 BY 1.05 TOOLTIP "Wieviele leere Kopfzeilen müssen gedruckt werden"
  240. BGCOLOR 15 NO-UNDO.
  241. DEFINE VARIABLE F_LQ AS LOGICAL FORMAT "j/n":U INITIAL NO
  242. LABEL "Schönschrift"
  243. VIEW-AS FILL-IN NATIVE
  244. SIZE 4.2 BY 1.05 TOOLTIP "Wieviele Zeilen müssen am Ende der Seite leer bleiben"
  245. BGCOLOR 15 NO-UNDO.
  246. DEFINE VARIABLE F_Programm AS CHARACTER FORMAT "X(20)":U INITIAL "VESREIN"
  247. LABEL "Programm"
  248. VIEW-AS FILL-IN NATIVE
  249. SIZE 25 BY 1
  250. BGCOLOR 15 NO-UNDO.
  251. DEFINE VARIABLE F_SCHACHT AS INTEGER FORMAT "9":U INITIAL 0
  252. LABEL "Schacht"
  253. VIEW-AS FILL-IN NATIVE
  254. SIZE 4.2 BY 1.05 TOOLTIP "Welcher Schacht muss angesteuer werden"
  255. BGCOLOR 15 NO-UNDO.
  256. DEFINE VARIABLE F_TZZ AS INTEGER FORMAT "999":U INITIAL 0
  257. LABEL "Zeilen"
  258. VIEW-AS FILL-IN NATIVE
  259. SIZE 7 BY 1.05 TOOLTIP "Wieviele Zeilen hat die ganze Seite"
  260. BGCOLOR 15 NO-UNDO.
  261. DEFINE VARIABLE F_USER AS CHARACTER FORMAT "X(20)":U
  262. LABEL "Benutzer"
  263. VIEW-AS FILL-IN NATIVE
  264. SIZE 25 BY 1
  265. BGCOLOR 15 NO-UNDO.
  266. DEFINE VARIABLE F_Zeichen AS INTEGER FORMAT "zz9":U INITIAL 0
  267. LABEL "Anz. Zeichen"
  268. VIEW-AS FILL-IN NATIVE
  269. SIZE 6 BY 1
  270. BGCOLOR 15 NO-UNDO.
  271. DEFINE VARIABLE F_Sort AS INTEGER
  272. VIEW-AS RADIO-SET VERTICAL
  273. RADIO-BUTTONS
  274. "Kundennummer", 1
  275. SIZE 43.2 BY .95 NO-UNDO.
  276. DEFINE RECTANGLE RECT-10
  277. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  278. SIZE 47.6 BY 4.14.
  279. DEFINE RECTANGLE RECT-11
  280. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  281. SIZE 79.2 BY 9.43.
  282. DEFINE RECTANGLE RECT-12
  283. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  284. SIZE 47.6 BY 4.52.
  285. DEFINE RECTANGLE RECT-13
  286. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  287. SIZE 124 BY 1.81.
  288. DEFINE RECTANGLE RECT-17
  289. EDGE-PIXELS 5 GRAPHIC-EDGE NO-FILL
  290. SIZE 131 BY 18.14.
  291. DEFINE VARIABLE S_Anzahl AS INTEGER INITIAL 0
  292. VIEW-AS SLIDER MIN-VALUE 0 MAX-VALUE 500 HORIZONTAL
  293. TIC-MARKS BOTH FREQUENCY 20
  294. SIZE 20.8 BY 2.76 NO-UNDO.
  295. /* Query definitions */
  296. &ANALYZE-SUSPEND
  297. DEFINE QUERY Br_Druckername FOR
  298. XSchrift SCROLLING.
  299. DEFINE QUERY Br_Schriftbild FOR
  300. Schrift SCROLLING.
  301. &ANALYZE-RESUME
  302. /* Browse definitions */
  303. DEFINE BROWSE Br_Druckername
  304. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Druckername B-table-Win _STRUCTURED
  305. QUERY Br_Druckername NO-LOCK DISPLAY
  306. XSchrift.Schname COLUMN-LABEL "Drucker" FORMAT "x(50)":U
  307. WIDTH 51
  308. /* _UIB-CODE-BLOCK-END */
  309. &ANALYZE-RESUME
  310. WITH NO-ASSIGN NO-ROW-MARKERS SEPARATORS SIZE 55 BY 9
  311. BGCOLOR 15 ROW-HEIGHT-CHARS .62.
  312. DEFINE BROWSE Br_Schriftbild
  313. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Schriftbild B-table-Win _STRUCTURED
  314. QUERY Br_Schriftbild DISPLAY
  315. Schrift.Schbild FORMAT "x(30)":U
  316. /* _UIB-CODE-BLOCK-END */
  317. &ANALYZE-RESUME
  318. WITH NO-ROW-MARKERS SEPARATORS SIZE 20 BY 9
  319. BGCOLOR 15 .
  320. /* ************************ Frame Definitions *********************** */
  321. DEFINE FRAME F-Main
  322. Br_Druckername AT ROW 1.71 COL 4
  323. Br_Schriftbild AT ROW 1.71 COL 61
  324. Listen.VFl[1] AT ROW 16.38 COL 20 WIDGET-ID 2
  325. LABEL "ISO 20022"
  326. VIEW-AS TOGGLE-BOX
  327. SIZE 30 BY 1
  328. F_Sort AT ROW 6.62 COL 86 NO-LABELS
  329. F_USER AT ROW 2.14 COL 97.8 COLON-ALIGNED NO-TAB-STOP
  330. F_TZZ AT ROW 11.71 COL 11 COLON-ALIGNED
  331. F_KZZ AT ROW 11.71 COL 32 COLON-ALIGNED
  332. F_FZZ AT ROW 11.71 COL 53 COLON-ALIGNED
  333. F_Programm AT ROW 3.24 COL 97.8 COLON-ALIGNED NO-TAB-STOP
  334. F_LQ AT ROW 11.71 COL 77 COLON-ALIGNED
  335. F_Zeichen AT ROW 4.38 COL 97.8 COLON-ALIGNED NO-TAB-STOP
  336. F_KOPIE AT ROW 11.71 COL 98 COLON-ALIGNED
  337. F_SCHACHT AT ROW 11.71 COL 115 COLON-ALIGNED
  338. Listen.VCh[1] AT ROW 13.38 COL 18 COLON-ALIGNED
  339. LABEL "Dateiname" FORMAT "x(100)"
  340. VIEW-AS FILL-IN NATIVE
  341. SIZE 42.2 BY 1 TOOLTIP "mit rechter Maustaste kann Datei gesucht werden !"
  342. BGCOLOR 15
  343. Listen.ENr[1] AT ROW 14.38 COL 18 COLON-ALIGNED
  344. LABEL "Toleranztage" FORMAT "99"
  345. VIEW-AS FILL-IN NATIVE
  346. SIZE 5 BY 1
  347. BGCOLOR 15
  348. Listen.ECh[1] AT ROW 14.38 COL 41 COLON-ALIGNED
  349. LABEL "Konto" FORMAT "x(12)"
  350. VIEW-AS FILL-IN NATIVE
  351. SIZE 19.6 BY 1
  352. BGCOLOR 15
  353. Listen.VDa[1] AT ROW 15.38 COL 18 COLON-ALIGNED AUTO-RETURN
  354. LABEL "von - bis Datum" FORMAT "99.99.9999"
  355. VIEW-AS FILL-IN NATIVE
  356. SIZE 18.2 BY 1
  357. BGCOLOR 15
  358. Listen.BDa[1] AT ROW 15.38 COL 41 COLON-ALIGNED
  359. LABEL "-" FORMAT "99.99.9999"
  360. VIEW-AS FILL-IN NATIVE
  361. SIZE 18.2 BY 1
  362. BGCOLOR 15
  363. Listen.ENr[3] AT ROW 13.67 COL 69.2 NO-LABELS
  364. VIEW-AS RADIO-SET VERTICAL
  365. RADIO-BUTTONS
  366. "Einzahlungsdatum", 0,
  367. "Ueberweisungsdatum", 1,
  368. "Guschriftsdatum", 2
  369. SIZE 33.2 BY 2.29
  370. Btn_Start AT ROW 13.52 COL 112
  371. Btn_Ende AT ROW 14.67 COL 112
  372. S_Anzahl AT ROW 15.95 COL 104.8 NO-LABELS NO-TAB-STOP
  373. F_Bemerk AT ROW 17.81 COL 18 COLON-ALIGNED NO-LABELS NO-TAB-STOP
  374. RECT-10 AT ROW 1.71 COL 83.6
  375. RECT-11 AT ROW 1.48 COL 3
  376. RECT-12 AT ROW 6.38 COL 83.6
  377. RECT-13 AT ROW 11.33 COL 3.8
  378. RECT-17 AT ROW 1.24 COL 2
  379. WITH 1 DOWN KEEP-TAB-ORDER OVERLAY
  380. SIDE-LABELS NO-UNDERLINE THREE-D
  381. AT COL 1 ROW 1
  382. SIZE 132.6 BY 19.57
  383. TITLE "Aufbereiten der VESR-Daten ab Diskette".
  384. /* *********************** Procedure Settings ************************ */
  385. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  386. /* Settings for THIS-PROCEDURE
  387. Type: SmartBrowser
  388. Allow: Basic,Browse
  389. Frames: 1
  390. Add Fields to: EXTERNAL-TABLES
  391. Other Settings: PERSISTENT-ONLY COMPILE
  392. Temp-Tables and Buffers:
  393. TABLE: XSchrift T "?" NO-UNDO Anadat Schrift
  394. TABLE: XTermOut T "NEW SHARED" NO-UNDO AnaDat TermOut
  395. END-TABLES.
  396. */
  397. /* This procedure should always be RUN PERSISTENT. Report the error, */
  398. /* then cleanup and return. */
  399. IF NOT THIS-PROCEDURE:PERSISTENT THEN
  400. DO:
  401. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  402. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  403. RETURN.
  404. END.
  405. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  406. /* ************************* Create Window ************************** */
  407. &ANALYZE-SUSPEND _CREATE-WINDOW
  408. /* DESIGN Window definition (used by the UIB)
  409. CREATE WINDOW B-table-Win ASSIGN
  410. HEIGHT = 19.57
  411. WIDTH = 132.6.
  412. /* END WINDOW DEFINITION */
  413. */
  414. &ANALYZE-RESUME
  415. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB B-table-Win
  416. /* ************************* Included-Libraries *********************** */
  417. {src/adm/method/browser.i}
  418. /* _UIB-CODE-BLOCK-END */
  419. &ANALYZE-RESUME
  420. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  421. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  422. /* SETTINGS FOR WINDOW B-table-Win
  423. NOT-VISIBLE,,RUN-PERSISTENT */
  424. /* SETTINGS FOR FRAME F-Main
  425. NOT-VISIBLE FRAME-NAME Custom */
  426. /* BROWSE-TAB Br_Druckername 1 F-Main */
  427. /* BROWSE-TAB Br_Schriftbild Br_Druckername F-Main */
  428. ASSIGN
  429. FRAME F-Main:HIDDEN = TRUE.
  430. /* SETTINGS FOR FILL-IN Listen.BDa[1] IN FRAME F-Main
  431. 2 EXP-LABEL EXP-FORMAT */
  432. /* SETTINGS FOR FILL-IN Listen.ECh[1] IN FRAME F-Main
  433. 2 EXP-LABEL EXP-FORMAT */
  434. /* SETTINGS FOR FILL-IN Listen.ENr[1] IN FRAME F-Main
  435. 2 EXP-LABEL EXP-FORMAT */
  436. /* SETTINGS FOR RADIO-SET Listen.ENr[3] IN FRAME F-Main
  437. 2 */
  438. ASSIGN
  439. F_Bemerk:READ-ONLY IN FRAME F-Main = TRUE.
  440. /* SETTINGS FOR FILL-IN F_FZZ IN FRAME F-Main
  441. 1 */
  442. /* SETTINGS FOR FILL-IN F_KOPIE IN FRAME F-Main
  443. 1 */
  444. /* SETTINGS FOR FILL-IN F_KZZ IN FRAME F-Main
  445. 1 */
  446. /* SETTINGS FOR FILL-IN F_LQ IN FRAME F-Main
  447. 1 */
  448. ASSIGN
  449. F_Programm:READ-ONLY IN FRAME F-Main = TRUE.
  450. /* SETTINGS FOR FILL-IN F_SCHACHT IN FRAME F-Main
  451. 1 */
  452. /* SETTINGS FOR RADIO-SET F_Sort IN FRAME F-Main
  453. 1 */
  454. /* SETTINGS FOR FILL-IN F_TZZ IN FRAME F-Main
  455. 1 */
  456. ASSIGN
  457. F_USER:READ-ONLY IN FRAME F-Main = TRUE.
  458. ASSIGN
  459. F_Zeichen:READ-ONLY IN FRAME F-Main = TRUE.
  460. /* SETTINGS FOR FILL-IN Listen.VCh[1] IN FRAME F-Main
  461. 2 EXP-LABEL EXP-FORMAT */
  462. /* SETTINGS FOR FILL-IN Listen.VDa[1] IN FRAME F-Main
  463. 2 EXP-LABEL EXP-FORMAT */
  464. /* SETTINGS FOR TOGGLE-BOX Listen.VFl[1] IN FRAME F-Main
  465. 2 EXP-LABEL */
  466. /* _RUN-TIME-ATTRIBUTES-END */
  467. &ANALYZE-RESUME
  468. /* Setting information for Queries and Browse Widgets fields */
  469. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Druckername
  470. /* Query rebuild information for BROWSE Br_Druckername
  471. _TblList = "Temp-Tables.XSchrift"
  472. _Options = "NO-LOCK KEY-PHRASE SORTBY-PHRASE"
  473. _FldNameList[1] > Temp-Tables.XSchrift.Schname
  474. "XSchrift.Schname" "Drucker" "x(50)" "character" ? ? ? ? ? ? no ? no no "51" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  475. _Query is NOT OPENED
  476. */ /* BROWSE Br_Druckername */
  477. &ANALYZE-RESUME
  478. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Schriftbild
  479. /* Query rebuild information for BROWSE Br_Schriftbild
  480. _TblList = "Anadat.Schrift"
  481. _OrdList = "Anadat.Schrift.Schbild|yes"
  482. _FldNameList[1] = Anadat.Schrift.Schbild
  483. _Query is NOT OPENED
  484. */ /* BROWSE Br_Schriftbild */
  485. &ANALYZE-RESUME
  486. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  487. /* Query rebuild information for FRAME F-Main
  488. _Options = "NO-LOCK"
  489. _Query is NOT OPENED
  490. */ /* FRAME F-Main */
  491. &ANALYZE-RESUME
  492. /* ************************ Control Triggers ************************ */
  493. &Scoped-define SELF-NAME F-Main
  494. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F-Main B-table-Win
  495. ON END-ERROR OF FRAME F-Main /* Aufbereiten der VESR-Daten ab Diskette */
  496. DO:
  497. RUN new-state ( INPUT 'ENDE, MAIN':U ).
  498. RETURN NO-APPLY.
  499. END.
  500. /* _UIB-CODE-BLOCK-END */
  501. &ANALYZE-RESUME
  502. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F-Main B-table-Win
  503. ON GO OF FRAME F-Main /* Aufbereiten der VESR-Daten ab Diskette */
  504. DO:
  505. DO TRANSACTION:
  506. FIND Listen WHERE RECID(Listen) = ARecid.
  507. Listen.Listfl = ''.
  508. END.
  509. RUN new-state ('drucken_ende':U).
  510. END.
  511. /* _UIB-CODE-BLOCK-END */
  512. &ANALYZE-RESUME
  513. &Scoped-define BROWSE-NAME Br_Druckername
  514. &Scoped-define SELF-NAME Br_Druckername
  515. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Druckername B-table-Win
  516. ON ROW-ENTRY OF Br_Druckername IN FRAME F-Main
  517. DO:
  518. /* This code displays initial values for newly added or copied rows. */
  519. {src/adm/template/brsentry.i}
  520. END.
  521. /* _UIB-CODE-BLOCK-END */
  522. &ANALYZE-RESUME
  523. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Druckername B-table-Win
  524. ON ROW-LEAVE OF Br_Druckername IN FRAME F-Main
  525. DO:
  526. /* Do not disable this code or no updates will take place except
  527. by pressing the Save button on an Update SmartPanel. */
  528. {src/adm/template/brsleave.i}
  529. END.
  530. /* _UIB-CODE-BLOCK-END */
  531. &ANALYZE-RESUME
  532. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Druckername B-table-Win
  533. ON VALUE-CHANGED OF Br_Druckername IN FRAME F-Main
  534. DO:
  535. {src/adm/template/brschnge.i}
  536. ASchname = XSchrift.Schname.
  537. OPEN QUERY Br_Schriftbild
  538. FOR EACH Schrift WHERE Schrift.Schname = ASchname NO-LOCK.
  539. FIND BSchrift WHERE BSchrift.Schname = ASchname
  540. AND BSchrift.Schbild = ASchbild NO-LOCK NO-ERROR.
  541. IF AVAILABLE BSchrift THEN
  542. DO:
  543. REPOSITION Br_Schriftbild TO RECID RECID(BSchrift) NO-ERROR.
  544. Br_Schriftbild:SELECT-FOCUSED-ROW() IN FRAME {&FRAME-NAME}.
  545. Br_Schriftbild:FETCH-SELECTED-ROW(1) IN FRAME {&FRAME-NAME}.
  546. END.
  547. ELSE
  548. DO:
  549. APPLY 'VALUE-CHANGED' TO BROWSE Br_Schriftbild.
  550. END.
  551. END.
  552. /* _UIB-CODE-BLOCK-END */
  553. &ANALYZE-RESUME
  554. &Scoped-define BROWSE-NAME Br_Schriftbild
  555. &Scoped-define SELF-NAME Br_Schriftbild
  556. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Schriftbild B-table-Win
  557. ON ROW-ENTRY OF Br_Schriftbild IN FRAME F-Main
  558. DO:
  559. /* This code displays initial values for newly added or copied rows. */
  560. {src/adm/template/brsentry.i}
  561. END.
  562. /* _UIB-CODE-BLOCK-END */
  563. &ANALYZE-RESUME
  564. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Schriftbild B-table-Win
  565. ON ROW-LEAVE OF Br_Schriftbild IN FRAME F-Main
  566. DO:
  567. /* Do not disable this code or no updates will take place except
  568. by pressing the Save button on an Update SmartPanel. */
  569. {src/adm/template/brsleave.i}
  570. END.
  571. /* _UIB-CODE-BLOCK-END */
  572. &ANALYZE-RESUME
  573. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Schriftbild B-table-Win
  574. ON VALUE-CHANGED OF Br_Schriftbild IN FRAME F-Main
  575. DO:
  576. {src/adm/template/brschnge.i}
  577. IF ASchbild <> Schrift.Schbild THEN
  578. DO:
  579. ASSIGN
  580. F_TZZ = Schrift.Schzztot
  581. F_KZZ = Schrift.Schzzbeg
  582. F_FZZ = Schrift.Schzzend.
  583. DISPLAY {&List-1} WITH FRAME {&FRAME-NAME}.
  584. END.
  585. ASchbild = Schrift.Schbild.
  586. END.
  587. /* _UIB-CODE-BLOCK-END */
  588. &ANALYZE-RESUME
  589. &Scoped-define SELF-NAME Btn_Ende
  590. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Ende B-table-Win
  591. ON CHOOSE OF Btn_Ende IN FRAME F-Main /* Ende */
  592. DO:
  593. DO TRANSACTION:
  594. FIND Listen WHERE RECID(Listen) = ARecid.
  595. Listen.Listfl = ''.
  596. END.
  597. { v8/druck_ende.i }
  598. RUN new-state ( INPUT 'ENDE, MAIN':U ).
  599. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  600. END.
  601. /* _UIB-CODE-BLOCK-END */
  602. &ANALYZE-RESUME
  603. &Scoped-define SELF-NAME Btn_Start
  604. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Start B-table-Win
  605. ON CHOOSE OF Btn_Start IN FRAME F-Main /* Starten */
  606. DO:
  607. DO WITH FRAME {&FRAME-NAME}:
  608. IF Listen.ECh[01]:SCREEN-VALUE = '' THEN
  609. DO:
  610. MESSAGE 'Kontonummer eingeben ! ' VIEW-AS ALERT-BOX ERROR.
  611. APPLY 'ENTRY' TO Listen.ECh[01].
  612. RETURN NO-APPLY.
  613. END.
  614. DEFINE VARIABLE DateiName AS CHARACTER NO-UNDO.
  615. DateiName = LC(VCh[01]:SCREEN-VALUE).
  616. IF DateiName = '' THEN
  617. DO:
  618. RUN FILESUCHEN ( INPUT-OUTPUT DateiName ).
  619. IF DateiName = '' THEN
  620. DO:
  621. APPLY 'ENTRY' TO VCh[01].
  622. RETURN NO-APPLY.
  623. END.
  624. Listen.VCh[01]:SCREEN-VALUE = DateiName.
  625. END.
  626. IF SEARCH(DateiName) = ? THEN
  627. DO:
  628. MESSAGE 'Datei ' DateiName ' ist nicht zu finden' VIEW-AS ALERT-BOX.
  629. APPLY 'ENTRY' TO Listen.VCh[01] IN FRAME {&FRAME-NAME}.
  630. RETURN NO-APPLY.
  631. END.
  632. FILE-INFO:FILE-NAME = SEARCH(DateiName).
  633. DateiName = FILE-INFO:FULL-PATHNAME.
  634. Listen.VCh[01]:SCREEN-VALUE = DateiName.
  635. IF VDa[01]:SCREEN-VALUE = ? THEN VDa[01]:SCREEN-VALUE = STRING(SperrDat + 1).
  636. IF VDa[01]:SCREEN-VALUE = '' THEN VDa[01]:SCREEN-VALUE = STRING(SperrDat + 1).
  637. IF BDa[01]:SCREEN-VALUE = ? THEN BDa[01]:SCREEN-VALUE = STRING(DATE(12,31,2099)).
  638. IF BDa[01]:SCREEN-VALUE = '' THEN BDa[01]:SCREEN-VALUE = STRING(DATE(12,31,2099)).
  639. END.
  640. IF XSchrift.Schname = "TERMINAL" THEN
  641. DO:
  642. { v8/fehler.i "0094" }
  643. REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}:
  644. FIND Listen WHERE RECID(Listen) = ARecid.
  645. ASSIGN
  646. Listen.Listfl = ''.
  647. RELEASE Listen .
  648. LEAVE.
  649. END.
  650. FIND Listen WHERE RECID(Listen ) = ARecid NO-LOCK.
  651. APPLY 'CHOOSE' TO Btn_Ende IN FRAME {&FRAME-NAME}.
  652. RETURN NO-APPLY.
  653. END.
  654. DO TRANSACTION WITH FRAME {&FRAME-NAME}:
  655. DISABLE Btn_Start.
  656. DISABLE Btn_Ende.
  657. ASSIGN {&List-1}.
  658. FIND Listen WHERE RECID(Listen) = ARecid.
  659. FIND LiDruck WHERE RECID(LiDruck) = BRecid.
  660. ASSIGN
  661. Breite = F_Zeichen
  662. Listen.Sort = F_Sort
  663. LiDruck.Listtzz = F_TZZ
  664. LiDruck.Listkzz = F_KZZ
  665. LiDruck.Listfzz = F_FZZ
  666. LiDruck.Listlq = F_LQ
  667. LiDruck.ListCopy = F_KOPIE
  668. LiDruck.Schacht = F_SCHACHT
  669. LiDruck.Listdru = XSchrift.Schname
  670. LiDruck.Listbild = Schrift.Schbild.
  671. IF LiDruck.ListCopy = 0 THEN LiDruck.ListCopy = 1.
  672. ASSIGN {&List-2}.
  673. IF VDa[01] = ? THEN VDa[01] = SperrDat + 1.
  674. IF BDa[01] = ? THEN BDa[01] = DATE(31,12,YEAR(TODAY)).
  675. IF VDa[01] <= SperrDat THEN VDa[01] = SperrDat + 1.
  676. DateiName = LC(Listen.VCh[01]).
  677. IF SEARCH(DateiName) = ? THEN
  678. DO:
  679. MESSAGE 'Datei ist nicht zu finden' VIEW-AS ALERT-BOX.
  680. APPLY 'ENTRY' TO Listen.VCh[01] IN FRAME {&FRAME-NAME}.
  681. RETURN NO-APPLY.
  682. END.
  683. DateiName = SEARCH(DateiName).
  684. DISPLAY {&List-2} WITH FRAME {&FRAME-NAME}.
  685. ASSIGN
  686. LiDruck.ProgWahl = Listen.ProgWahl
  687. LiDruck.Listprog = TRIM(F_Programm) + STRING(Listen.ProgWahl,'99').
  688. RELEASE Listen .
  689. RELEASE LiDruck.
  690. END.
  691. FIND Listen WHERE RECID(Listen ) = ARecid NO-LOCK.
  692. FIND LiDruck WHERE RECID(LiDruck) = BRecid NO-LOCK.
  693. RUN LIBILD.
  694. FVerbuchen = FALSE.
  695. RUN DRUCKEN.
  696. IF FVerbuchen THEN RUN VERBUCHEN.
  697. DO TRANSACTION WITH FRAME {&FRAME-NAME}:
  698. FIND Listen WHERE RECID(Listen) = ARecid.
  699. ASSIGN
  700. Listen.Listfl = ''.
  701. RELEASE Listen .
  702. END.
  703. FIND Listen WHERE RECID(Listen) = ARecid NO-LOCK.
  704. DO WITH FRAME {&FRAME-NAME}:
  705. ENABLE Btn_Start.
  706. ENABLE Btn_Ende.
  707. APPLY 'CHOOSE' TO Btn_Ende IN FRAME {&FRAME-NAME}.
  708. RETURN NO-APPLY.
  709. END.
  710. TiDruck = TRUE.
  711. END.
  712. /* _UIB-CODE-BLOCK-END */
  713. &ANALYZE-RESUME
  714. &Scoped-define SELF-NAME Listen.ENr[3]
  715. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.ENr[3] B-table-Win
  716. ON RETURN OF Listen.ENr[3] IN FRAME F-Main /* ENr */
  717. DO:
  718. APPLY 'TAB' TO SELF.
  719. RETURN NO-APPLY.
  720. END.
  721. /* _UIB-CODE-BLOCK-END */
  722. &ANALYZE-RESUME
  723. &Scoped-define SELF-NAME Listen.VCh[1]
  724. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.VCh[1] B-table-Win
  725. ON RIGHT-MOUSE-CLICK OF Listen.VCh[1] IN FRAME F-Main /* Dateiname */
  726. DO:
  727. SYSTEM-DIALOG GET-FILE VDateiName
  728. TITLE "Auswahl der BESR-Datei ..."
  729. FILTERS "Alle Dateien (*.*)" "*.*"
  730. MUST-EXIST
  731. USE-FILENAME
  732. UPDATE OKpressed.
  733. IF OKpressed = FALSE THEN RETURN NO-APPLY.
  734. DO WITH FRAME {&FRAME-NAME}:
  735. Listen.VCh[01]:SCREEN-VALUE = VDateiName.
  736. END.
  737. APPLY 'ENTRY' TO SELF.
  738. RETURN NO-APPLY.
  739. END.
  740. /* _UIB-CODE-BLOCK-END */
  741. &ANALYZE-RESUME
  742. &Scoped-define BROWSE-NAME Br_Druckername
  743. &UNDEFINE SELF-NAME
  744. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK B-table-Win
  745. /* *************************** Main Block *************************** */
  746. FIND Steuer USE-INDEX Steuer-k1
  747. WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR.
  748. FIND BSteuer USE-INDEX Steuer-k1
  749. WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR.
  750. KnrPos = INTEGER(SUBSTRING(STRING(Steuer.St07,'9999'),01,02)).
  751. KnrLang = INTEGER(SUBSTRING(STRING(Steuer.St07,'9999'),03,02)).
  752. FnrPos = INTEGER(SUBSTRING(STRING(Steuer.St08,'9999'),01,02)).
  753. FnrLang = INTEGER(SUBSTRING(STRING(Steuer.St08,'9999'),03,02)).
  754. IF KnrLang = 0 THEN KnrLang = 6.
  755. IF FnrLang = 0 THEN FnrLang = 6.
  756. IF KnrPos = 0 THEN KnrPos = 27 - KnrLang - FnrLang.
  757. IF FnrPos = 0 THEN FnrPos = 27 - FnrLang.
  758. cInstallation = DYNAMIC-FUNCTION('getInstallation') NO-ERROR.
  759. ON END-ERROR ANYWHERE
  760. DO:
  761. DO TRANSACTION:
  762. FIND Listen WHERE RECID(Listen) = ARecid.
  763. Listen.Listfl = ''.
  764. RELEASE Listen.
  765. END.
  766. END.
  767. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  768. RUN dispatch IN THIS-PROCEDURE ('initialize':U).
  769. &ENDIF
  770. /* _UIB-CODE-BLOCK-END */
  771. &ANALYZE-RESUME
  772. /* ********************** Internal Procedures *********************** */
  773. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available B-table-Win _ADM-ROW-AVAILABLE
  774. PROCEDURE adm-row-available :
  775. /*------------------------------------------------------------------------------
  776. Purpose: Dispatched to this procedure when the Record-
  777. Source has a new row available. This procedure
  778. tries to get the new row (or foriegn keys) from
  779. the Record-Source and process it.
  780. Parameters: <none>
  781. ------------------------------------------------------------------------------*/
  782. /* Define variables needed by this internal procedure. */
  783. {src/adm/template/row-head.i}
  784. /* Process the newly available records (i.e. display fields,
  785. open queries, and/or pass records on to any RECORD-TARGETS). */
  786. {src/adm/template/row-end.i}
  787. END PROCEDURE.
  788. /* _UIB-CODE-BLOCK-END */
  789. &ANALYZE-RESUME
  790. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_ISO20022 B-table-Win
  791. PROCEDURE CREATE_ISO20022 :
  792. /*------------------------------------------------------------------------------
  793. Purpose:
  794. Parameters: <none>
  795. Notes:
  796. ------------------------------------------------------------------------------*/
  797. DEFINE INPUT PARAMETER ipcDatei AS CHARACTER NO-UNDO.
  798. DEFINE VARIABLE iTT AS INTEGER NO-UNDO.
  799. DEFINE VARIABLE iMM AS INTEGER NO-UNDO.
  800. DEFINE VARIABLE iJJ AS INTEGER NO-UNDO.
  801. DEFINE VARIABLE iTrArt AS INTEGER NO-UNDO.
  802. DEFINE VARIABLE iAnz AS INTEGER NO-UNDO.
  803. DEFINE VARIABLE iTotBetr AS DECIMAL NO-UNDO.
  804. DEFINE VARIABLE iTotTax AS DECIMAL NO-UNDO.
  805. DEFINE VARIABLE iTeilnrNr AS INTEGER NO-UNDO.
  806. DEFINE VARIABLE cKto AS CHARACTER NO-UNDO.
  807. EMPTY TEMP-TABLE tHeader .
  808. EMPTY TEMP-TABLE tSubHeader .
  809. EMPTY TEMP-TABLE tZahlung .
  810. RUN read_camt054_esr.p ( ipcDatei ,
  811. INPUT-OUTPUT htHeader ,
  812. INPUT-OUTPUT htSubHeader,
  813. INPUT-OUTPUT htZahlung ).
  814. IF RETURN-VALUE <> '' THEN
  815. DO:
  816. MESSAGE 'Verarbeitung fehlerhaft'
  817. VIEW-AS ALERT-BOX.
  818. RETURN.
  819. END.
  820. ASSIGN
  821. VAnzahl = 0
  822. iTotBetr = 0
  823. iTotTax = 0
  824. iAnz = 0.
  825. FOR EACH tSubHeader WITH FRAME {&FRAME-NAME}:
  826. ASSIGN
  827. VAnzahl = VAnzahl + tSubHeader.Anzahl
  828. iTotBetr = iTotBetr + tSubHeader.Total
  829. iTotTax = iTotTax + tSubHeader.Taxen.
  830. FOR EACH tZahlung
  831. WHERE tZahlung.iSeq = tSubHeader.iSeq:
  832. FIND LAST VESRZahl NO-LOCK NO-ERROR.
  833. IF AVAILABLE VESRZahl THEN ix = VESRZahl.Trnr + 1.
  834. ELSE ix = 1.
  835. iTrArt = 1.
  836. IF SUBSTRING(tSubHeader.TeilnrNr,01,01) >= '0' AND
  837. SUBSTRING(tSubHeader.TeilnrNr,01,01) <= '9' THEN iTeilnrNr = INTEGER(SUBSTRING(tSubHeader.TeilnrNr,001,09)).
  838. ELSE
  839. DO:
  840. cKto = ''.
  841. DO ii = 13 TO LENGTH(tSubHeader.TeilnrNr):
  842. IF SUBSTRING(tSubHeader.TeilnrNr,ii,01) >= '0' AND
  843. SUBSTRING(tSubHeader.TeilnrNr,ii,01) <= '9' THEN cKto = cKto + SUBSTRING(tSubHeader.TeilnrNr,ii,01).
  844. IF LENGTH(cKto) >= 9 THEN LEAVE.
  845. END.
  846. iTeilnrNr = INTEGER(cKto).
  847. END.
  848. CREATE VESRZahl.
  849. ASSIGN
  850. VESRZahl.Trnr = ix
  851. VESRZahl.Tr_Art = iTrArt
  852. VESRZahl.Tn_Nr = iTeilnrNr
  853. VESRZahl.Referenz = tZahlung.Referenz
  854. VESRZahl.Betrag = tZahlung.Betrag
  855. VESRZahl.Aufg_Ref = tZahlung.AufRef
  856. VESRZahl.Mi_Fi_Nr = tZahlung.ServiceRef
  857. VESRZahl.Rj_Cd = ''
  858. VESRZahl.Taxen_02 = DECIMAL(tZahlung.Taxen).
  859. iJJ = INTEGER(SUBSTRING(tSubHeader.Buchdat,001,04)).
  860. iMM = INTEGER(SUBSTRING(tSubHeader.Buchdat,006,02)).
  861. iTT = INTEGER(SUBSTRING(tSubHeader.Buchdat,009,02)).
  862. VESRZahl.Aufg_Dat = DATE(iMM,iTT,iJJ).
  863. VESRZahl.Verb_Dat = DATE(iMM,iTT,iJJ).
  864. iJJ = INTEGER(SUBSTRING(tSubHeader.Valuta,001,04)).
  865. iMM = INTEGER(SUBSTRING(tSubHeader.Valuta,006,02)).
  866. iTT = INTEGER(SUBSTRING(tSubHeader.Valuta,009,02)).
  867. VESRZahl.Guts_Dat = DATE(iMM,iTT,iJJ).
  868. IF tZahlung.lStorno THEN
  869. DO:
  870. VESRZahl.Betrag = VESRZahl.Betrag * -1.
  871. VESRZahl.Taxen_02 = VESRZahl.Taxen_02 * -1.
  872. END.
  873. iAnz = iAnz + 1.
  874. S_Anzahl:SCREEN-VALUE = STRING(iAnz).
  875. END.
  876. END.
  877. FIND FIRST tHeader.
  878. ASSIGN
  879. ix = ix + 1
  880. iTrArt = 900.
  881. CREATE VESRZahl.
  882. ASSIGN
  883. VESRZahl.Trnr = ix
  884. VESRZahl.Tr_Art = iTrArt
  885. VESRZahl.Tn_Nr = 0
  886. VESRZahl.Referenz = tHeader.IBAN
  887. VESRZahl.Betrag = iTotBetr
  888. VESRZahl.Aufg_Ref = STRING(VAnzahl)
  889. VESRZahl.Mi_Fi_Nr = ''
  890. VESRZahl.Rj_Cd = ''
  891. VESRZahl.Taxen_02 = iTotTax.
  892. END PROCEDURE.
  893. /* _UIB-CODE-BLOCK-END */
  894. &ANALYZE-RESUME
  895. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_V11 B-table-Win
  896. PROCEDURE CREATE_V11 :
  897. /*------------------------------------------------------------------------------
  898. Purpose:
  899. Parameters: <none>
  900. Notes:
  901. ------------------------------------------------------------------------------*/
  902. DEFINE INPUT PARAMETER ipcDatei AS CHARACTER NO-UNDO.
  903. DEFINE VARIABLE VDatum1 AS DATE NO-UNDO.
  904. DEFINE VARIABLE VDatum2 AS DATE NO-UNDO.
  905. DEFINE VARIABLE VDatum3 AS DATE NO-UNDO.
  906. DEFINE VARIABLE iTeilnrNr AS INTEGER NO-UNDO.
  907. OUTPUT TO 'VESR.V11'.
  908. INPUT FROM VALUE(ipcdatei) NO-ECHO.
  909. VAnzahl = 0.
  910. B010:
  911. REPEAT WITH FRAME {&FRAME-NAME}:
  912. VZeile = "".
  913. ix = 0.
  914. DO WHILE TRUE:
  915. READKEY.
  916. IF INTEGER(LASTKEY) < 0 THEN LEAVE B010.
  917. IF INT(LASTKEY) = 13 OR
  918. INT(LASTKEY) = 10 THEN
  919. DO:
  920. IF ix > 0 THEN
  921. DO:
  922. PUT CONTROL CHR(34) VZeile CHR(34) CHR(10).
  923. VZeile = "".
  924. ix = 0.
  925. VAnzahl = VAnzahl + 1.
  926. S_Anzahl:SCREEN-VALUE = STRING(VAnzahl).
  927. END.
  928. NEXT.
  929. END.
  930. VZeile = VZeile + CHR(LASTKEY).
  931. ix = ix + 1.
  932. IF ix = 128 THEN
  933. DO:
  934. PUT CONTROL CHR(34) VZeile CHR(34) CHR(10).
  935. VZeile = "".
  936. ix = 0.
  937. VAnzahl = VAnzahl + 1.
  938. S_Anzahl:SCREEN-VALUE = STRING(VAnzahl).
  939. END.
  940. END.
  941. END.
  942. IF ix > 0 THEN
  943. DO:
  944. PUT CONTROL CHR(34) VZeile CHR(34) CHR(10).
  945. VZeile = "".
  946. ix = 0.
  947. VAnzahl = VAnzahl + 1.
  948. S_Anzahl:SCREEN-VALUE = STRING(VAnzahl).
  949. END.
  950. OUTPUT CLOSE.
  951. INPUT CLOSE.
  952. FIND Femeld NO-LOCK
  953. WHERE Femeld.Sprcd = GVSprcd
  954. AND Femeld.Fenr = 442 NO-ERROR.
  955. F_Bemerk = Femeld.Fetext.
  956. RELEASE Femeld.
  957. DISPLAY F_Bemerk WITH FRAME {&FRAME-NAME}.
  958. VAnzahl = 0.
  959. INPUT FROM "VESR.V11" NO-ECHO.
  960. B020:
  961. REPEAT:
  962. IMPORT VZeile.
  963. FIND LAST VESRZahl NO-LOCK NO-ERROR.
  964. IF AVAILABLE VESRZahl THEN ix = VESRZahl.Trnr + 1.
  965. ELSE ix = 1.
  966. VTrArt = INTEGER(SUBSTRING(VZeile,001,03)).
  967. IF VTrArt >= 900 THEN
  968. DO:
  969. IF INTEGER(SUBSTRING(VZeile,064,02)) < 90 THEN
  970. VDatum1 = DATE(INTEGER(SUBSTRING(VZeile,066,02)),
  971. INTEGER(SUBSTRING(VZeile,068,02)),
  972. INTEGER(SUBSTRING(VZeile,064,02)) + 2000).
  973. ELSE
  974. VDatum1 = DATE(INTEGER(SUBSTRING(VZeile,066,02)),
  975. INTEGER(SUBSTRING(VZeile,068,02)),
  976. INTEGER(SUBSTRING(VZeile,064,02)) + 1900).
  977. IF SUBSTRING(VZeile,04,01) >= '0' AND
  978. SUBSTRING(VZeile,04,01) <= '9' THEN iTeilnrNr = INTEGER(SUBSTRING(VZeile,004,09)).
  979. ELSE iTeilnrNr = 0.
  980. CREATE VESRZahl.
  981. ASSIGN
  982. VESRZahl.Trnr = ix
  983. VESRZahl.Tr_Art = VTrArt
  984. VESRZahl.Tn_Nr = iTeilnrNr
  985. VESRZahl.Referenz = SUBSTRING(VZeile,013,27)
  986. VESRZahl.Betrag = INTEGER(SUBSTRING(VZeile,040,12)) / 100
  987. VESRZahl.Aufg_Ref = SUBSTRING(VZeile,054,10)
  988. VESRZahl.Aufg_Dat = VDatum1
  989. VESRZahl.Taxen_01 = INTEGER(SUBSTRING(VZeile,070,09)) / 100
  990. VESRZahl.Taxen_02 = INTEGER(SUBSTRING(VZeile,079,09)) / 100.
  991. IF VTrArt = 995 THEN
  992. DO:
  993. VESRZahl.Betrag = VESRZahl.Betrag * -1.
  994. VESRZahl.Taxen_01 = VESRZahl.Taxen_01 * -1.
  995. END.
  996. NEXT.
  997. END.
  998. IF INTEGER(SUBSTRING(VZeile,060,02)) < 90 THEN
  999. VDatum1 = DATE(INTEGER(SUBSTRING(VZeile,062,02)),
  1000. INTEGER(SUBSTRING(VZeile,064,02)),
  1001. INTEGER(SUBSTRING(VZeile,060,02)) + 2000).
  1002. ELSE
  1003. VDatum1 = DATE(INTEGER(SUBSTRING(VZeile,062,02)),
  1004. INTEGER(SUBSTRING(VZeile,064,02)),
  1005. INTEGER(SUBSTRING(VZeile,060,02)) + 1900).
  1006. IF INTEGER(SUBSTRING(VZeile,066,02)) < 90 THEN
  1007. VDatum2 = DATE(INTEGER(SUBSTRING(VZeile,068,02)),
  1008. INTEGER(SUBSTRING(VZeile,070,02)),
  1009. INTEGER(SUBSTRING(VZeile,066,02)) + 2000).
  1010. ELSE
  1011. VDatum2 = DATE(INTEGER(SUBSTRING(VZeile,068,02)),
  1012. INTEGER(SUBSTRING(VZeile,070,02)),
  1013. INTEGER(SUBSTRING(VZeile,066,02)) + 1900).
  1014. IF INTEGER(SUBSTRING(VZeile,072,02)) < 90 THEN
  1015. VDatum3 = DATE(INTEGER(SUBSTRING(VZeile,074,02)),
  1016. INTEGER(SUBSTRING(VZeile,076,02)),
  1017. INTEGER(SUBSTRING(VZeile,072,02)) + 2000).
  1018. ELSE
  1019. VDatum3 = DATE(INTEGER(SUBSTRING(VZeile,074,02)),
  1020. INTEGER(SUBSTRING(VZeile,076,02)),
  1021. INTEGER(SUBSTRING(VZeile,072,02)) + 1900).
  1022. IF SUBSTRING(VZeile,04,01) >= '0' AND
  1023. SUBSTRING(VZeile,04,01) <= '9' THEN iTeilnrNr = INTEGER(SUBSTRING(VZeile,004,09)).
  1024. ELSE iTeilnrNr = 0.
  1025. CREATE VESRZahl.
  1026. ASSIGN
  1027. VESRZahl.Trnr = ix
  1028. VESRZahl.Tr_Art = VTrArt
  1029. VESRZahl.Tn_Nr = iTeilnrNr
  1030. VESRZahl.Referenz = SUBSTRING(VZeile,013,27)
  1031. VESRZahl.Betrag = INTEGER(SUBSTRING(VZeile,040,10)) / 100
  1032. VESRZahl.Aufg_Ref = SUBSTRING(VZeile,050,10)
  1033. VESRZahl.Aufg_Dat = VDatum1
  1034. VESRZahl.Verb_Dat = VDatum2
  1035. VESRZahl.Guts_Dat = VDatum3
  1036. VESRZahl.Mi_Fi_Nr = SUBSTRING(VZeile,078,09)
  1037. VESRZahl.Rj_Cd = SUBSTRING(VZeile,087,01)
  1038. VESRZahl.Taxen_02 = INTEGER(SUBSTRING(VZeile,097,04)) / 100.
  1039. IF VTrArt = 005 OR
  1040. VTrArt = 015 OR
  1041. VTrArt = 105 OR
  1042. VTrArt = 115 THEN
  1043. DO:
  1044. VESRZahl.Betrag = VESRZahl.Betrag * -1.
  1045. VESRZahl.Taxen_02 = VESRZahl.Taxen_02 * -1.
  1046. END.
  1047. VAnzahl = VAnzahl + 1.
  1048. S_Anzahl:SCREEN-VALUE = STRING(VAnzahl).
  1049. END.
  1050. INPUT CLOSE.
  1051. RETURN ''.
  1052. END PROCEDURE.
  1053. /* _UIB-CODE-BLOCK-END */
  1054. &ANALYZE-RESUME
  1055. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI B-table-Win _DEFAULT-DISABLE
  1056. PROCEDURE disable_UI :
  1057. /*------------------------------------------------------------------------------
  1058. Purpose: DISABLE the User Interface
  1059. Parameters: <none>
  1060. Notes: Here we clean-up the user-interface by deleting
  1061. dynamic widgets we have created and/or hide
  1062. frames. This procedure is usually called when
  1063. we are ready to "clean-up" after running.
  1064. ------------------------------------------------------------------------------*/
  1065. /* Hide all frames. */
  1066. HIDE FRAME F-Main.
  1067. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  1068. END PROCEDURE.
  1069. /* _UIB-CODE-BLOCK-END */
  1070. &ANALYZE-RESUME
  1071. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN B-table-Win
  1072. PROCEDURE DRUCKEN :
  1073. /*------------------------------------------------------------------------------
  1074. Purpose:
  1075. Parameters: <none>
  1076. Notes:
  1077. ------------------------------------------------------------------------------*/
  1078. DEFINE VARIABLE XHelptx AS CHARACTER FORMAT "x(70)".
  1079. DEFINE VARIABLE TT AS INTEGER.
  1080. DEFINE VARIABLE MM AS INTEGER.
  1081. DEFINE VARIABLE JJ AS INTEGER.
  1082. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  1083. /* -------------------------------------------------------------------------- */
  1084. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR.
  1085. VSort = Listen.Sort.
  1086. VTage = Listen.ENr[01].
  1087. VDatum = Listen.VDa[01].
  1088. BDatum = Listen.BDa[01].
  1089. VKonto = Listen.ECh[01].
  1090. nDatum = Listen.ENr[03].
  1091. cDateiName = Listen.VCh[01].
  1092. XHelptx = Helptext[02].
  1093. TitTxt = "".
  1094. FIND Femeld NO-LOCK
  1095. WHERE Femeld.Sprcd = GVSprcd
  1096. AND Femeld.Fenr = 441 NO-ERROR.
  1097. F_Bemerk = Femeld.Fetext.
  1098. DISPLAY F_Bemerk WITH FRAME {&FRAME-NAME}.
  1099. VAnzahl = 0.
  1100. FOR EACH VESRZahl:
  1101. DELETE VESRZahl.
  1102. VAnzahl = VAnzahl + 1.
  1103. S_Anzahl:SCREEN-VALUE = STRING(VAnzahl).
  1104. END.
  1105. VAnzahl = 0.
  1106. FOR EACH Zahlung WHERE Zahlung.Zahl_Art = 99:
  1107. DELETE Zahlung.
  1108. VAnzahl = VAnzahl + 1.
  1109. S_Anzahl:SCREEN-VALUE = STRING(VAnzahl).
  1110. END.
  1111. DO WHILE NOT VFl[01] :
  1112. RUN CREATE_V11 ( cDateiName ).
  1113. LEAVE.
  1114. END.
  1115. DO WHILE VFl[01] :
  1116. RUN CREATE_ISO20022 ( cDateiName ).
  1117. LEAVE.
  1118. END.
  1119. FIND Femeld NO-LOCK
  1120. WHERE Femeld.Sprcd = GVSprcd
  1121. AND Femeld.Fenr = 443 NO-ERROR.
  1122. F_Bemerk = Femeld.Fetext.
  1123. DISPLAY F_Bemerk WITH FRAME {&FRAME-NAME}.
  1124. Linkcd = 8.
  1125. DO WHILE Linkcd = 8:
  1126. XHelptx = Helptext[02].
  1127. TitTxt = "".
  1128. RUN LISTTIT1.
  1129. VCopy = 1.
  1130. VKonto = TRIM(Listen.ECh[01]).
  1131. VDat = 3.
  1132. DO PRESELECT
  1133. EACH VESRZahl NO-LOCK:
  1134. DO VCopy = 1 TO LiDruck.ListCopy:
  1135. LNeu = TRUE.
  1136. /* -------------------------------------------------------------------------- */
  1137. { v8/opendruck.i}
  1138. /* -------------------------------------------------------------------------- */
  1139. VLine = 0.
  1140. VRand = 0.
  1141. RRand = 0.
  1142. VTot = 0.
  1143. VAnzDat = 0.
  1144. DruFl = TRUE.
  1145. TiDruck = TRUE.
  1146. Uebertrag = ''.
  1147. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR.
  1148. REPEAT:
  1149. IF LNeu THEN FIND FIRST VESRZahl NO-ERROR.
  1150. ELSE FIND NEXT VESRZahl NO-ERROR.
  1151. IF NOT AVAILABLE VESRZahl THEN LEAVE.
  1152. LNeu = FALSE.
  1153. RUN LISTTIT2.
  1154. DO WHILE VESRZahl.Tr_Art < 900:
  1155. LVKnr = INTEGER(SUBSTRING(VESRZahl.Refe,KnrPos,KnrLang)).
  1156. LVFaknr = INTEGER(SUBSTRING(VESRZahl.Refe,FnrPos,FnrLang)).
  1157. LVFirma = GVFirma.
  1158. VBuDat = VESRZahl.Guts_Dat.
  1159. CASE nDatum:
  1160. WHEN 0 THEN
  1161. VBuDat = VESRZahl.Aufg_Dat.
  1162. WHEN 1 THEN
  1163. VBuDat = VESRZahl.Verb_Dat.
  1164. WHEN 2 THEN
  1165. VBuDat = VESRZahl.Guts_Dat.
  1166. END CASE.
  1167. IF VDatum <> ? AND
  1168. VBuDat < VDatum THEN VBuDat = VDatum.
  1169. IF BDatum <> ? AND
  1170. VBuDat > BDatum THEN VBuDat = BDatum.
  1171. IF VBuDat <= SperrDat THEN VBuDat = SperrDat + 1.
  1172. FIND CSteuer WHERE CSteuer.Firma = LVFirma NO-LOCK NO-ERROR.
  1173. IF AVAILABLE CSteuer THEN AdFirma = CSteuer.AdFirma.
  1174. ELSE AdFirma = LVFirma.
  1175. FIND Adresse NO-LOCK USE-INDEX Adresse-k1
  1176. WHERE Adresse.Firma = AdFirma
  1177. AND Adresse.Knr = LVKnr NO-ERROR.
  1178. FIND Debop NO-LOCK
  1179. WHERE Debop.Firma = LVFirma
  1180. AND Debop.Knr = LVKnr
  1181. AND Debop.Faknr = LVFaknr NO-ERROR.
  1182. /* ---------------------------------------------------------------------- */
  1183. /* Wiederkehr temporärer Spezialfall 18.10.2016 */
  1184. /* ---------------------------------------------------------------------- */
  1185. DO WHILE NOT AVAILABLE Adresse OR
  1186. NOT AVAILABLE Debop :
  1187. IF NOT cInstallation BEGINS 'Wieder' THEN LEAVE.
  1188. LVKnr = INTEGER(SUBSTRING(VESRZahl.Refe,13,06)).
  1189. LVFaknr = INTEGER(SUBSTRING(VESRZahl.Refe,20,07)).
  1190. FIND Adresse NO-LOCK USE-INDEX Adresse-k1
  1191. WHERE Adresse.Firma = AdFirma
  1192. AND Adresse.Knr = LVKnr NO-ERROR.
  1193. FIND Debop NO-LOCK
  1194. WHERE Debop.Firma = LVFirma
  1195. AND Debop.Knr = LVKnr
  1196. AND Debop.Faknr = LVFaknr NO-ERROR.
  1197. IF AVAILABLE Debop THEN LEAVE.
  1198. LVKnr = INTEGER(SUBSTRING(VESRZahl.Refe,KnrPos,KnrLang)).
  1199. LVFaknr = INTEGER(SUBSTRING(VESRZahl.Refe,FnrPos,FnrLang)).
  1200. LEAVE.
  1201. END.
  1202. PUT VESRZahl.Tr_Art FORMAT "999" AT 001
  1203. LVKnr FORMAT "999999" AT 005.
  1204. IF AVAILABLE Adresse THEN
  1205. PUT Adresse.Anzeig_br FORMAT "x(35)" AT 014.
  1206. ELSE
  1207. PUT '????????????????????' FORMAT "x(35)" AT 014.
  1208. PUT LVFaknr FORMAT "9999999" AT 051
  1209. VBuDat FORMAT "99.99.9999" AT 059
  1210. VESRZahl.Betrag FORMAT "zzz,zz9.99-" AT 070.
  1211. PUT VESRZahl.Aufg_Ref FORMAT "x(10)" AT 083
  1212. VESRZahl.Aufg_Dat FORMAT "99.99.9999" AT 096
  1213. VESRZahl.Mi_Fi_Nr FORMAT "x(09)" AT 108 SKIP.
  1214. VTot[01] = VTot[01] + VESRZahl.Betrag.
  1215. VTot[02] = VTot[02] + VESRZahl.Taxen_02.
  1216. VTot[03] = VTot[03] + 1.
  1217. IF NOT AVAILABLE Adresse THEN
  1218. DO:
  1219. FIND Debop USE-INDEX Debop-k2
  1220. WHERE Debop.Firma = GVFirma
  1221. AND Debop.Faknr = LVFaknr NO-LOCK NO-ERROR.
  1222. IF AVAILABLE Debop THEN LVKnr = Debop.Knr.
  1223. END.
  1224. FIND FIRST Zahlung USE-INDEX Zahlung-k2
  1225. WHERE Zahlung.Firma = LVFirma
  1226. AND Zahlung.Knr = LVKnr
  1227. AND Zahlung.Zahl_Art = 99
  1228. AND Zahlung.Faknr = STRING(LVFaknr,"9999999")
  1229. AND Zahlung.Konto_S = VKonto
  1230. AND Zahlung.Datum_1 = VBuDat
  1231. AND NOT Zahlung.Verbucht NO-ERROR.
  1232. IF NOT AVAILABLE Zahlung THEN
  1233. DO:
  1234. FIND LAST Zahlung USE-INDEX Zahlung-k1
  1235. WHERE Zahlung.Firma = LVFirma NO-LOCK NO-ERROR.
  1236. IF AVAILABLE Zahlung THEN i5 = Zahlung.Trnr + 1.
  1237. ELSE i5 = 1.
  1238. CREATE Zahlung.
  1239. ASSIGN
  1240. Zahlung.Firma = LVFirma
  1241. Zahlung.Trnr = i5
  1242. Zahlung.Knr = LVKnr
  1243. Zahlung.Zahl_Art = 99
  1244. Zahlung.Faknr = STRING(LVFaknr,"9999999")
  1245. Zahlung.Konto_S = VKonto
  1246. Zahlung.Datum_1 = VBuDat
  1247. Zahlung.Verbucht = FALSE.
  1248. END.
  1249. Zahlung.Betrag = Zahlung.Betrag + VESRZahl.Betrag.
  1250. LEAVE.
  1251. END.
  1252. DO WHILE VESRZahl.Tr_Art >= 900:
  1253. PUT CONTROL Drufettb.
  1254. PUT TRIM(SUBSTRING(Helptext[16],01,35))
  1255. FORMAT "x(35)" AT 014
  1256. VTot[03] FORMAT "zzz,zz9" AT 055
  1257. VTot[01] FORMAT "zzz,zz9.99-" AT 070.
  1258. PUT CONTROL Drufette.
  1259. PUT "" SKIP(1).
  1260. PUT CONTROL Drufettb.
  1261. VTot[04] = VESRZahl.Betrag.
  1262. VTot[05] = INTEGER(VESRZahl.Aufg_Ref).
  1263. PUT TRIM(SUBSTRING(Helptext[16],36,35))
  1264. FORMAT "x(35)" AT 014
  1265. VTot[05] FORMAT "zzz,zz9" AT 055
  1266. VTot[04] FORMAT "zzz,zz9.99-" AT 070
  1267. VESRZahl.Taxen_01 FORMAT "z,zz9.99-" AT 082
  1268. VESRZahl.Taxen_02 FORMAT "z,zz9.99-" AT 092.
  1269. PUT CONTROL Drufette.
  1270. PUT "" SKIP.
  1271. VTot[06] = VTot[06] + VTot[03].
  1272. VTot[07] = VTot[07] + VTot[01].
  1273. VTot[08] = VTot[08] + VTot[05].
  1274. VTot[09] = VTot[09] + VTot[04].
  1275. VTot[01] = 0.
  1276. VTot[02] = 0.
  1277. VTot[03] = 0.
  1278. VTot[04] = 0.
  1279. VTot[05] = 0.
  1280. VAnzDat = VAnzDat + 1.
  1281. TiDruck = TRUE.
  1282. LEAVE.
  1283. END.
  1284. END. /* FIND NEXT */
  1285. IF VAnzDat > 1 THEN
  1286. DO:
  1287. PUT "" SKIP(1).
  1288. PUT CONTROL Drufettb.
  1289. PUT TRIM(SUBSTRING(Helptext[17],01,35))
  1290. FORMAT "x(35)" AT 014
  1291. VTot[06] FORMAT "zzz,zz9" AT 055
  1292. VTot[07] FORMAT "zzz,zz9.99-" AT 070.
  1293. PUT CONTROL Drufette.
  1294. PUT "" SKIP(1).
  1295. PUT CONTROL Drufettb.
  1296. PUT TRIM(SUBSTRING(Helptext[17],36,35))
  1297. FORMAT "x(35)" AT 014
  1298. VTot[08] FORMAT "zzz,zz9" AT 055
  1299. VTot[09] FORMAT "zzz,zz9.99-" AT 070.
  1300. PUT CONTROL Drufette.
  1301. PUT "" SKIP.
  1302. END.
  1303. END. /* KOPIEN */
  1304. END. /* PRESELECT */
  1305. Linkcd = 0.
  1306. IF DOpen = TRUE THEN
  1307. DO:
  1308. OUTPUT CLOSE.
  1309. IF lPDF THEN RUN datei2viper.p ( cDrucker ).
  1310. END.
  1311. ELSE
  1312. DO:
  1313. RUN "v8/d-liste.w" ( INPUT Helptext[02] ).
  1314. END.
  1315. IF VTot[06] = VTot[08] AND
  1316. VTot[07] = VTot[09] THEN
  1317. DO:
  1318. Linkcd = 7.
  1319. END.
  1320. Helptext[02] = XHelpTx.
  1321. END. /* Linkcd = 8 */
  1322. DO WHILE Linkcd = 7:
  1323. RUN VERARBEITEN.
  1324. IF DOpen = TRUE THEN
  1325. DO:
  1326. OUTPUT CLOSE.
  1327. IF lPDF THEN RUN datei2viper.p ( cDrucker ).
  1328. END.
  1329. ELSE
  1330. DO:
  1331. RUN "v8/d-liste.w" ( INPUT Helptext[02] ).
  1332. END.
  1333. LEAVE.
  1334. END.
  1335. END PROCEDURE.
  1336. /* _UIB-CODE-BLOCK-END */
  1337. &ANALYZE-RESUME
  1338. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FILESUCHEN B-table-Win
  1339. PROCEDURE FILESUCHEN :
  1340. /*------------------------------------------------------------------------------
  1341. Purpose:
  1342. Parameters: <none>
  1343. Notes:
  1344. ------------------------------------------------------------------------------*/
  1345. DEFINE INPUT-OUTPUT PARAMETER ipDateiName AS CHARACTER NO-UNDO.
  1346. DEFINE VARIABLE cDatei AS CHARACTER NO-UNDO.
  1347. cDatei = ipDateiName.
  1348. ipDateiName = ''.
  1349. ja = FALSE.
  1350. SYSTEM-DIALOG GET-FILE cDatei
  1351. MUST-EXIST
  1352. TITLE 'BESR-Dateiname ? '
  1353. USE-FILENAME
  1354. UPDATE Ja.
  1355. IF Ja THEN ipDateiName = cDatei.
  1356. END PROCEDURE.
  1357. /* _UIB-CODE-BLOCK-END */
  1358. &ANALYZE-RESUME
  1359. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INTERFACE B-table-Win
  1360. PROCEDURE INTERFACE :
  1361. /*------------------------------------------------------------------------------
  1362. Purpose:
  1363. Parameters: <none>
  1364. Notes:
  1365. ------------------------------------------------------------------------------*/
  1366. FOR EACH WFile WHERE WFile.Betrag <> 0
  1367. BY WFile.Kto1:
  1368. FIND LAST Interf USE-INDEX Interf-k1
  1369. WHERE Interf.Firma = BSteuer.FBFirma
  1370. AND Interf.TrNr1 = VTrNr1
  1371. AND Interf.TrNr2 = VTrNr2 NO-LOCK NO-ERROR.
  1372. IF AVAILABLE Interf THEN ix = Interf.Trnr + 1.
  1373. ELSE ix = 1.
  1374. CREATE Interf.
  1375. ASSIGN
  1376. Interf.Firma = BSteuer.FBFirma
  1377. Interf.TrNr1 = VTrNr1
  1378. Interf.TrNr2 = VTrNr2
  1379. Interf.TrNr = ix
  1380. Interf.Kto1 = WFile.Kto1
  1381. Interf.Kto2 = WFile.Kto2
  1382. Interf.Herk = TransNr.Herk
  1383. Interf.Datum = BDebza.ZahDat
  1384. Interf.Buchtxt1 = VBuchtxt1
  1385. Interf.Buchtxt2 = VBuchtxt2
  1386. Interf.Betrag = WFile.Betrag
  1387. Interf.Betrag_Frw = WFile.Betrag
  1388. Interf.FRW = BDebop.FRW
  1389. Interf.Faktor = BDebop.Faktor
  1390. Interf.Kurs = BDebop.Kurs
  1391. Interf.Verbucht = FALSE
  1392. Interf.Faknr = STRING(BDebop.Faknr,"9999999")
  1393. Interf.Knr = BDebop.Knr
  1394. Interf.MWST_Nr = ""
  1395. Interf.MWST_Cd = WFile.MWST_Cd
  1396. Interf.HKFirma = BDebop.Firma.
  1397. DELETE WFile.
  1398. END.
  1399. END PROCEDURE.
  1400. /* _UIB-CODE-BLOCK-END */
  1401. &ANALYZE-RESUME
  1402. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIBILD B-table-Win
  1403. PROCEDURE LIBILD :
  1404. /*------------------------------------------------------------------------------
  1405. Purpose:
  1406. Parameters: <none>
  1407. Notes:
  1408. ------------------------------------------------------------------------------*/
  1409. { v8/libild.i }
  1410. END PROCEDURE.
  1411. /* _UIB-CODE-BLOCK-END */
  1412. &ANALYZE-RESUME
  1413. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LISTTIT1 B-table-Win
  1414. PROCEDURE LISTTIT1 :
  1415. /*------------------------------------------------------------------------------
  1416. Purpose:
  1417. Parameters: <none>
  1418. Notes:
  1419. ------------------------------------------------------------------------------*/
  1420. { v8/listtit1.i }
  1421. END PROCEDURE.
  1422. /* _UIB-CODE-BLOCK-END */
  1423. &ANALYZE-RESUME
  1424. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LISTTIT2 B-table-Win
  1425. PROCEDURE LISTTIT2 :
  1426. /*------------------------------------------------------------------------------
  1427. Purpose:
  1428. Parameters: <none>
  1429. Notes:
  1430. ------------------------------------------------------------------------------*/
  1431. { v8/listtit2.i }
  1432. END PROCEDURE.
  1433. /* _UIB-CODE-BLOCK-END */
  1434. &ANALYZE-RESUME
  1435. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-display-fields B-table-Win
  1436. PROCEDURE local-display-fields :
  1437. /*------------------------------------------------------------------------------
  1438. Purpose: Override standard ADM method
  1439. Notes:
  1440. ------------------------------------------------------------------------------*/
  1441. RUN dispatch IN THIS-PROCEDURE ( INPUT 'display-fields':U ) .
  1442. DISPLAY {&List-1} WITH FRAME {&FRAME-NAME}.
  1443. IF ARecid > -1 THEN
  1444. DO:
  1445. FIND Listen WHERE RECID(Listen) = ARecid NO-LOCK.
  1446. DISPLAY {&List-2} WITH FRAME {&FRAME-NAME}.
  1447. END.
  1448. ENABLE {&List-2} WITH FRAME {&FRAME-NAME}.
  1449. END PROCEDURE.
  1450. /* _UIB-CODE-BLOCK-END */
  1451. &ANALYZE-RESUME
  1452. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-hide B-table-Win
  1453. PROCEDURE local-hide :
  1454. /*------------------------------------------------------------------------------
  1455. Purpose: Override standard ADM method
  1456. Notes:
  1457. ------------------------------------------------------------------------------*/
  1458. DO TRANSACTION:
  1459. FIND Listen WHERE RECID(Listen) = ARecid.
  1460. Listen.Listfl = ''.
  1461. END.
  1462. RUN dispatch IN THIS-PROCEDURE ( INPUT 'hide':U ) .
  1463. END PROCEDURE.
  1464. /* _UIB-CODE-BLOCK-END */
  1465. &ANALYZE-RESUME
  1466. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize B-table-Win
  1467. PROCEDURE local-initialize :
  1468. /*------------------------------------------------------------------------------
  1469. Purpose: Override standard ADM method
  1470. Notes:
  1471. ------------------------------------------------------------------------------*/
  1472. DEFINE BUFFER BListen FOR Listen.
  1473. DEFINE VARIABLE VListnr LIKE Listen.Listnr.
  1474. F_USER = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR.
  1475. QOpen = FALSE.
  1476. FInit = TRUE.
  1477. RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) .
  1478. VProgname = TRIM(F_USER) + '!' + TRIM(F_Programm).
  1479. FIND FIRST Listen USE-INDEX Listen-k1
  1480. WHERE Listen.Firma = GVFirma
  1481. AND Listen.Progname = VProgname
  1482. AND Listen.Listfl = '' NO-LOCK NO-ERROR.
  1483. DO TRANSACTION:
  1484. IF NOT AVAILABLE Listen THEN
  1485. DO:
  1486. FIND LAST BListen USE-INDEX Listen-k1
  1487. WHERE BListen.Firma = GVFirma NO-LOCK NO-ERROR.
  1488. IF AVAILABLE BListen THEN VListnr = BListen.Listnr + 1.
  1489. ELSE VListnr = 1.
  1490. CREATE Listen.
  1491. ASSIGN
  1492. Listen.Firma = GVFirma
  1493. Listen.Listnr = VListnr
  1494. Listen.Progname = VProgname
  1495. Listen.Listfl = ''
  1496. Listen.Jahr = GVJahr
  1497. Listen.Sprcd = GVSprcd
  1498. Listen.Sort = 1
  1499. Listen.ProgWahl = 1.
  1500. END.
  1501. ARecid = RECID(Listen).
  1502. FIND LiDruck USE-INDEX LiDruck-k1
  1503. WHERE LiDruck.Firma = GVFirma
  1504. AND LiDruck.Listnr = Listen.Listnr
  1505. AND LiDruck.ProgWahl = Listen.ProgWahl NO-LOCK NO-ERROR.
  1506. IF NOT AVAILABLE LiDruck THEN
  1507. DO:
  1508. CREATE LiDruck.
  1509. ASSIGN
  1510. LiDruck.Firma = GVFirma
  1511. LiDruck.Listnr = Listen.Listnr
  1512. LiDruck.ProgWahl = Listen.ProgWahl
  1513. LiDruck.Listprog = TRIM(F_Programm) + STRING(Listen.ProgWahl,'99')
  1514. LiDruck.ListCopy = 1
  1515. LiDruck.Schacht = 0
  1516. LiDruck.Listlq = FALSE.
  1517. END.
  1518. BRecid = RECID(LiDruck).
  1519. FIND Listen WHERE RECID(Listen) = ARecid.
  1520. Listen.Listfl = 'A'.
  1521. SperrDat = DYNAMIC-FUNCTION('getSperrDatum':U) NO-ERROR.
  1522. Listen.VDa[01] = SperrDat + 1.
  1523. RELEASE Listen.
  1524. RELEASE LiDruck.
  1525. END. /* TRANSACTION */
  1526. FIND Listen WHERE RECID(Listen) = ARecid NO-LOCK.
  1527. FIND LiDruck WHERE RECID(LiDruck) = BRecid NO-LOCK.
  1528. FOpen = TRUE.
  1529. ASchname = LiDruck.ListDru.
  1530. ASchbild = LiDruck.ListBild.
  1531. RUN dispatch IN THIS-PROCEDURE ('open-query':U).
  1532. FIND FIRST XSchrift WHERE XSchrift.Schname = ASchname NO-LOCK NO-ERROR.
  1533. IF AVAILABLE XSchrift THEN
  1534. DO:
  1535. REPOSITION Br_Druckername TO RECID RECID(XSchrift) NO-ERROR.
  1536. Br_Druckername:SELECT-FOCUSED-ROW() IN FRAME {&FRAME-NAME}.
  1537. Br_Druckername:FETCH-SELECTED-ROW(1) IN FRAME {&FRAME-NAME}.
  1538. END.
  1539. ELSE
  1540. DO:
  1541. Br_Druckername:FETCH-SELECTED-ROW(1) IN FRAME {&FRAME-NAME}.
  1542. END.
  1543. APPLY 'VALUE-CHANGED' TO BROWSE Br_Druckername.
  1544. RUN LIBILD.
  1545. F_Zeichen = Breite.
  1546. F_Sort = Listen.Sort.
  1547. F_TZZ = LiDruck.Listtzz.
  1548. F_KZZ = LiDruck.Listkzz.
  1549. F_FZZ = LiDruck.Listfzz.
  1550. F_LQ = LiDruck.Listlq.
  1551. F_KOPIE = LiDruck.ListCopy.
  1552. F_SCHACHT = LiDruck.Schacht.
  1553. OBreite = Breite.
  1554. RUN dispatch IN THIS-PROCEDURE ('display-fields':U).
  1555. Helptext = ''.
  1556. FOR EACH LiBild WHERE LiBild.Sprcd = GVSprcd
  1557. AND LiBild.Prog = 'ZAHLUNG' NO-LOCK:
  1558. Helptext[LiBild.Tenr] = LiBild.Litext.
  1559. END.
  1560. END PROCEDURE.
  1561. /* _UIB-CODE-BLOCK-END */
  1562. &ANALYZE-RESUME
  1563. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-open-query B-table-Win
  1564. PROCEDURE local-open-query :
  1565. /*------------------------------------------------------------------------------
  1566. Purpose: Override standard ADM method
  1567. Notes:
  1568. ------------------------------------------------------------------------------*/
  1569. IF FOpen = FALSE THEN RETURN NO-APPLY.
  1570. IF QOpen = TRUE THEN
  1571. DO:
  1572. CLOSE QUERY Br_Druckername.
  1573. CLOSE QUERY Br_Schriftbild.
  1574. END.
  1575. QOpen = FALSE.
  1576. FOR EACH XSchrift:
  1577. DELETE XSchrift.
  1578. END.
  1579. AltSchname = ''.
  1580. FOR EACH Schrift NO-LOCK:
  1581. IF Schrift.Schname = AltSchname THEN NEXT.
  1582. CREATE XSchrift.
  1583. BUFFER-COPY Schrift TO XSchrift.
  1584. AltSchname = Schrift.Schname.
  1585. END.
  1586. OPEN QUERY Br_Druckername
  1587. FOR EACH XSchrift NO-LOCK.
  1588. QOpen = TRUE.
  1589. END PROCEDURE.
  1590. /* _UIB-CODE-BLOCK-END */
  1591. &ANALYZE-RESUME
  1592. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-row-changed B-table-Win
  1593. PROCEDURE local-row-changed :
  1594. /*------------------------------------------------------------------------------
  1595. Purpose: Override standard ADM method
  1596. Notes:
  1597. ------------------------------------------------------------------------------*/
  1598. RUN dispatch IN THIS-PROCEDURE ( INPUT 'row-changed':U ) .
  1599. OPEN QUERY Br_Schriftbild
  1600. FOR EACH Schrift WHERE Schrift.Schname = XSchrift.Schname NO-LOCK.
  1601. IF AVAILABLE LiDruck THEN
  1602. DO:
  1603. FIND BSchrift WHERE BSchrift.Schname = LiDruck.ListDru
  1604. AND BSchrift.Schbild = LiDruck.ListBild NO-LOCK NO-ERROR.
  1605. IF AVAILABLE BSchrift THEN
  1606. DO:
  1607. REPOSITION Br_Schriftbild TO RECID RECID(BSchrift) NO-ERROR.
  1608. END.
  1609. END.
  1610. APPLY 'VALUE-CHANGED' TO BROWSE Br_Schriftbild.
  1611. END PROCEDURE.
  1612. /* _UIB-CODE-BLOCK-END */
  1613. &ANALYZE-RESUME
  1614. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view B-table-Win
  1615. PROCEDURE local-view :
  1616. /*------------------------------------------------------------------------------
  1617. Purpose: Override standard ADM method
  1618. Notes:
  1619. ------------------------------------------------------------------------------*/
  1620. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
  1621. IF ARecid < 0 THEN RETURN.
  1622. DO TRANSACTION:
  1623. FIND Listen WHERE RECID(Listen) = ARecid.
  1624. ASSIGN
  1625. Listen.VNr[01] = XVAufnr
  1626. Listen.BNr[01] = XVAufnr.
  1627. RELEASE Listen.
  1628. END.
  1629. FIND Listen WHERE RECID(Listen) = ARecid NO-LOCK.
  1630. RUN dispatch IN THIS-PROCEDURE ('display-fields':U).
  1631. END PROCEDURE.
  1632. /* _UIB-CODE-BLOCK-END */
  1633. &ANALYZE-RESUME
  1634. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER B-table-Win
  1635. PROCEDURE MEHRWERTSTEUER :
  1636. /*------------------------------------------------------------------------------
  1637. Purpose:
  1638. Parameters: <none>
  1639. Notes:
  1640. ------------------------------------------------------------------------------*/
  1641. XTot = 0.
  1642. VZah = 0.
  1643. VSko = 0.
  1644. VMax = 0.
  1645. VZRes = VZaBetr.
  1646. VSRes = VSkBetr.
  1647. VAntZ = VZaBetr * 100 / BDebop.FakBetr.
  1648. VAntS = VSkBetr * 100 / BDebop.FakBetr.
  1649. DO zz = 1 TO 11:
  1650. XTot[zz] = BDebop.FakWpfl[zz] + BDebop.FakWust[zz].
  1651. IF BDebop.FakWpfl[zz] <> 0 THEN VMax = zz.
  1652. END.
  1653. DO zz = 1 TO 11:
  1654. IF XTot[zz] = 0 THEN NEXT.
  1655. IF zz = VMax THEN
  1656. DO:
  1657. VZah[zz] = VZRes.
  1658. VSko[zz] = VSRes.
  1659. LEAVE.
  1660. END.
  1661. Rundbetr = XTot[zz] * VAntZ / 100.
  1662. Rundcode = 1.
  1663. RUN "v8/runden.p".
  1664. VZah[zz] = Rundbetr.
  1665. VZRes = VZRes - Rundbetr.
  1666. Rundbetr = XTot[zz] * VAntS / 100.
  1667. Rundcode = 1.
  1668. RUN "v8/runden.p".
  1669. VSko[zz] = Rundbetr.
  1670. VSRes = VSRes - Rundbetr.
  1671. END.
  1672. DO zz = 1 TO 11:
  1673. IF XTot[zz] = 0 THEN NEXT.
  1674. Rundbetr = 0.
  1675. IF NOT BDebop.FakIncl[zz] THEN
  1676. DO:
  1677. Rundbetr = VZah[zz] * BDebop.Fakwpro[zz]
  1678. / (100 + BDebop.Fakwpro[zz]).
  1679. Rundcode = 1.
  1680. RUN "v8/runden.p".
  1681. END.
  1682. ASSIGN
  1683. BDebza.ZahWpfl[zz] = VZah[zz] - Rundbetr
  1684. BDebza.ZahWust[zz] = Rundbetr
  1685. BDebza.ZahSkon[zz] = VSko[zz]
  1686. BDebop.ZahWpfl[zz] = BDebop.ZahWpfl[zz] + BDebza.ZahWpfl[zz]
  1687. BDebop.ZahWust[zz] = BDebop.ZahWust[zz] + BDebza.ZahWust[zz]
  1688. BDebop.ZahSkon[zz] = BDebop.ZahSkon[zz] + BDebza.ZahSkon[zz].
  1689. END.
  1690. END PROCEDURE.
  1691. /* _UIB-CODE-BLOCK-END */
  1692. &ANALYZE-RESUME
  1693. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records B-table-Win _ADM-SEND-RECORDS
  1694. PROCEDURE send-records :
  1695. /*------------------------------------------------------------------------------
  1696. Purpose: Send record ROWID's for all tables used by
  1697. this file.
  1698. Parameters: see template/snd-head.i
  1699. ------------------------------------------------------------------------------*/
  1700. /* Define variables needed by this internal procedure. */
  1701. {src/adm/template/snd-head.i}
  1702. /* For each requested table, put it's ROWID in the output list. */
  1703. {src/adm/template/snd-list.i "Schrift"}
  1704. {src/adm/template/snd-list.i "XSchrift"}
  1705. /* Deal with any unexpected table requests before closing. */
  1706. {src/adm/template/snd-end.i}
  1707. END PROCEDURE.
  1708. /* _UIB-CODE-BLOCK-END */
  1709. &ANALYZE-RESUME
  1710. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed B-table-Win
  1711. PROCEDURE state-changed :
  1712. /* -----------------------------------------------------------
  1713. Purpose:
  1714. Parameters: <none>
  1715. Notes:
  1716. -------------------------------------------------------------*/
  1717. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  1718. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  1719. CASE p-state:
  1720. /* Object instance CASEs can go here to replace standard behavior
  1721. or add new cases. */
  1722. {src/adm/template/bstates.i}
  1723. END CASE.
  1724. END PROCEDURE.
  1725. /* _UIB-CODE-BLOCK-END */
  1726. &ANALYZE-RESUME
  1727. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERARBEITEN B-table-Win
  1728. PROCEDURE VERARBEITEN :
  1729. /*------------------------------------------------------------------------------
  1730. Purpose:
  1731. Parameters: <none>
  1732. Notes:
  1733. ------------------------------------------------------------------------------*/
  1734. DEFINE BUFFER XSteuNr FOR SteuNr.
  1735. /* -------------------------------------------------------------------------- */
  1736. Helptext[03] = Helptext[12].
  1737. Helptext[04] = Helptext[13].
  1738. Helptext[05] = Helptext[14].
  1739. Helptext[02] = Helptext[15].
  1740. TitTxt = "".
  1741. RUN LISTTIT1.
  1742. { v8/opendruck.i }
  1743. VTot = 0.
  1744. AFirma = "".
  1745. FOR EACH Zahlung USE-INDEX Zahlung-k2
  1746. WHERE Zahlung.Zahl_Art = 99
  1747. AND Zahlung.Verbucht = FALSE TRANSACTION:
  1748. IF Zahlung.Betrag = 0 THEN
  1749. DO:
  1750. DELETE Zahlung.
  1751. NEXT.
  1752. END.
  1753. IF AFirma = "" THEN AFirma = Zahlung.Firma.
  1754. IF Zahlung.Firma <> AFirma THEN
  1755. DO:
  1756. PUT "" SKIP.
  1757. PUT CONTROL Drufettb.
  1758. PUT TRIM(SUBSTRING(Helptext[18],01,35))
  1759. FORMAT "x(35)" AT 014
  1760. VTot[01] FORMAT "zzz,zz9.99-" AT 076
  1761. VTot[02] FORMAT "zzz,zz9.99-" AT 087.
  1762. PUT CONTROL Drufette.
  1763. PUT "" SKIP(1).
  1764. IF VTot[06] <> 0 THEN
  1765. DO:
  1766. PUT CONTROL Drufettb.
  1767. PUT TRIM(SUBSTRING(Helptext[18],36,35))
  1768. FORMAT "x(35)" AT 014
  1769. VTot[06] FORMAT "zzz,zz9.99-" AT 076
  1770. VTot[07] FORMAT "zzz,zz9.99-" AT 087.
  1771. PUT CONTROL Drufette.
  1772. PUT "" SKIP(1).
  1773. END.
  1774. VTot[01] = 0.
  1775. VTot[02] = 0.
  1776. VTot[06] = 0.
  1777. VTot[07] = 0.
  1778. AFirma = Zahlung.Firma.
  1779. Zuszz = 5.
  1780. END.
  1781. RUN LISTTIT2.
  1782. VFirma = Zahlung.Firma.
  1783. LVFirma = Zahlung.Firma.
  1784. FIND XSteuNr WHERE XSteuNr.Firma = VFirma NO-LOCK NO-ERROR.
  1785. FIND CSteuer WHERE CSteuer.Firma = VFirma NO-LOCK NO-ERROR.
  1786. LVKnr = Zahlung.Knr.
  1787. VFaknr = INTEGER(Zahlung.Faknr).
  1788. LVFaknr = INTEGER(Zahlung.Faknr).
  1789. LVDat = Zahlung.Datum_1.
  1790. VDebst = TRUE.
  1791. IF AVAILABLE CSteuer THEN AdFirma = CSteuer.AdFirma.
  1792. ELSE AdFirma = FILL("!", 04).
  1793. IF AVAILABLE XSteuNr THEN
  1794. DO:
  1795. VSK_Tol_Max = XSteuNr.Sk_Tol_Max.
  1796. VSK_Tol_% = XSteuNr.Sk_Tol_%.
  1797. END.
  1798. ELSE
  1799. DO:
  1800. VSK_Tol_Max = 0.
  1801. VSK_Tol_% = 0.
  1802. END.
  1803. FIND Debst USE-INDEX Debst-k1
  1804. WHERE Debst.Firma = LVFirma
  1805. AND Debst.Knr = LVKnr NO-LOCK NO-ERROR.
  1806. IF NOT AVAILABLE Debst THEN VDebst = FALSE.
  1807. FIND Adresse USE-INDEX Adresse-k1
  1808. WHERE Adresse.Firma = AdFirma
  1809. AND Adresse.Knr = LVKnr NO-LOCK NO-ERROR.
  1810. IF NOT AVAILABLE Adresse THEN
  1811. DO:
  1812. VName = FILL("?", 20).
  1813. VOrt = FILL("?", 20).
  1814. VDebst = FALSE.
  1815. END.
  1816. ELSE
  1817. DO:
  1818. VName = Adresse.Anzeig_br.
  1819. END.
  1820. PUT VFirma FORMAT "x(06)" AT 001
  1821. LVKnr FORMAT "999999" AT 008
  1822. VName FORMAT "x(39)" AT 016
  1823. VFaknr FORMAT "9999999" AT 057
  1824. Zahlung.Datum_1 FORMAT VDatForm AT 065
  1825. Zahlung.Betrag FORMAT "zzz,zz9.99-" AT 076.
  1826. IF NOT VDebst THEN
  1827. DO:
  1828. { v8/femeld.i "0430" }
  1829. PUT Fetext FORMAT "x(28)" AT 111 SKIP.
  1830. VTot[06] = VTot[06] + Zahlung.Betrag.
  1831. VTot[07] = VTot[07] + Zahlung.Skonto.
  1832. VTot[08] = VTot[08] + Zahlung.Betrag.
  1833. VTot[09] = VTot[09] + Zahlung.Skonto.
  1834. DELETE Zahlung.
  1835. NEXT.
  1836. END.
  1837. FIND Debop WHERE Debop.Firma = VFirma
  1838. AND Debop.Knr = LVKnr
  1839. AND Debop.Faknr = VFaknr NO-LOCK NO-ERROR.
  1840. IF NOT AVAILABLE Debop THEN
  1841. DO:
  1842. { v8/femeld.i "0431" }
  1843. PUT Fetext FORMAT "x(28)" AT 111 SKIP.
  1844. VTot[06] = VTot[06] + Zahlung.Betrag.
  1845. VTot[07] = VTot[07] + Zahlung.Skonto.
  1846. VTot[08] = VTot[08] + Zahlung.Betrag.
  1847. VTot[09] = VTot[09] + Zahlung.Skonto.
  1848. DELETE Zahlung.
  1849. NEXT.
  1850. END.
  1851. XFakBetr = Debop.FakBetr.
  1852. XSaldo = Debop.Saldo.
  1853. XFakDat = Debop.FakDat.
  1854. XKond = Debop.Kond.
  1855. XSkBer = Debop.SkBer.
  1856. XSkonto = Debop.Skonto.
  1857. IF XFakBetr > 0 AND Zahlung.Betrag > XSaldo THEN
  1858. DO:
  1859. { v8/femeld.i "0432" }
  1860. PUT Fetext FORMAT "x(28)" AT 111 SKIP.
  1861. VTot[06] = VTot[06] + Zahlung.Betrag.
  1862. VTot[07] = VTot[07] + Zahlung.Skonto.
  1863. VTot[08] = VTot[08] + Zahlung.Betrag.
  1864. VTot[09] = VTot[09] + Zahlung.Skonto.
  1865. DELETE Zahlung.
  1866. NEXT.
  1867. END.
  1868. IF XFakBetr < 0 AND Zahlung.Betrag < XSaldo THEN
  1869. DO:
  1870. { v8/femeld.i "0433" }
  1871. PUT Fetext FORMAT "x(28)" AT 111 SKIP.
  1872. VTot[06] = VTot[06] + Zahlung.Betrag.
  1873. VTot[07] = VTot[07] + Zahlung.Skonto.
  1874. VTot[08] = VTot[08] + Zahlung.Betrag.
  1875. VTot[09] = VTot[09] + Zahlung.Skonto.
  1876. DELETE Zahlung.
  1877. NEXT.
  1878. END.
  1879. VSkonto = 0.
  1880. Rundbetr = XFakBetr * VSk_Tol_% / 100.
  1881. RundCode = 1.
  1882. RUN "v8/runden.p".
  1883. VTol = Rundbetr.
  1884. IF VTol > VSk_Tol_Max THEN VTol = XSteuNr.Sk_Tol_Max.
  1885. DO WHILE XSaldo <> Zahlung.Betrag:
  1886. IF XFakBetr > 0 AND Zahlung.Betrag > XSaldo THEN LEAVE.
  1887. IF XFakBetr < 0 AND Zahlung.Betrag < XSaldo THEN LEAVE.
  1888. FIND Kondi WHERE Kondi.Kond = XKond
  1889. AND Kondi.Sprcd = GVSprcd NO-LOCK.
  1890. IF (XFakDat + Kondi.Tage[02] + VTage >= LVDat) THEN
  1891. DO:
  1892. Rundbetr = XFakBetr * Kondi.Skonto[02] / 100.
  1893. Rundcode = 1.
  1894. RUN "v8/runden.p".
  1895. VSkonto = Rundbetr - XSkonto.
  1896. END.
  1897. IF (XFakDat + Kondi.Tage[01] + VTage >= LVDat) THEN
  1898. DO:
  1899. Rundbetr = XFakBetr * Kondi.Skonto[01] / 100.
  1900. Rundcode = 1.
  1901. RUN "v8/runden.p".
  1902. VSkonto = Rundbetr - XSkonto.
  1903. END.
  1904. IF XFakBetr > 0 AND
  1905. (XSaldo - Zahlung.Betrag - VSkonto) < 0 THEN
  1906. DO:
  1907. VSkonto = XSaldo - Zahlung.Betrag.
  1908. END.
  1909. IF XFakBetr < 0 AND
  1910. (XSaldo - Zahlung.Betrag - VSkonto) > 0 THEN
  1911. DO:
  1912. VSkonto = XSaldo - Zahlung.Betrag.
  1913. END.
  1914. VBetrag = XSaldo - Zahlung.Betrag - VSkonto.
  1915. IF VBetrag = 0 THEN LEAVE.
  1916. IF VBetrag < 0 THEN VBetrag = - VBetrag.
  1917. IF VBetrag <= VTol THEN VSkonto = XSaldo - Zahlung.Betrag.
  1918. LEAVE.
  1919. END.
  1920. Zahlung.Skonto = VSkonto.
  1921. PUT Zahlung.Skonto FORMAT "zzz,zz9.99-" AT 087
  1922. Zahlung.Konto_S FORMAT "x(12)" AT 099.
  1923. IF (XSaldo - Zahlung.Betrag - Zahlung.Skonto) <> 0 THEN
  1924. PUT "*** " FORMAT "x(20)" AT 111 SKIP.
  1925. ELSE PUT " " FORMAT "x(20)" AT 111 SKIP.
  1926. VTot[01] = VTot[01] + Zahlung.Betrag.
  1927. VTot[02] = VTot[02] + Zahlung.Skonto.
  1928. VTot[03] = VTot[03] + Zahlung.Betrag.
  1929. VTot[04] = VTot[04] + Zahlung.Skonto.
  1930. END.
  1931. PUT "" SKIP.
  1932. PUT CONTROL Drufettb.
  1933. PUT TRIM(SUBSTRING(Helptext[18],01,35))
  1934. FORMAT "x(35)" AT 014
  1935. VTot[01] FORMAT "zzz,zz9.99-" AT 076
  1936. VTot[02] FORMAT "zzz,zz9.99-" AT 087.
  1937. PUT CONTROL Drufette.
  1938. PUT "" SKIP(1).
  1939. IF VTot[06] <> 0 THEN
  1940. DO:
  1941. PUT CONTROL Drufettb.
  1942. PUT TRIM(SUBSTRING(Helptext[18],36,35))
  1943. FORMAT "x(35)" AT 014
  1944. VTot[06] FORMAT "zzz,zz9.99-" AT 076
  1945. VTot[07] FORMAT "zzz,zz9.99-" AT 087.
  1946. PUT CONTROL Drufette.
  1947. PUT "" SKIP(1).
  1948. END.
  1949. IF VTot[06] = VTot[08] THEN
  1950. DO:
  1951. FVerbuchen = TRUE.
  1952. LEAVE.
  1953. END.
  1954. PUT CONTROL Drufettb.
  1955. PUT TRIM(SUBSTRING(Helptext[19],01,35))
  1956. FORMAT "x(35)" AT 014
  1957. VTot[03] FORMAT "zzz,zz9.99-" AT 076
  1958. VTot[04] FORMAT "zzz,zz9.99-" AT 087.
  1959. PUT CONTROL Drufette.
  1960. PUT "" SKIP(1).
  1961. IF VTot[08] <> 0 THEN
  1962. DO:
  1963. PUT CONTROL Drufettb.
  1964. PUT TRIM(SUBSTRING(Helptext[19],36,35))
  1965. FORMAT "x(35)" AT 014
  1966. VTot[08] FORMAT "zzz,zz9.99-" AT 076
  1967. VTot[09] FORMAT "zzz,zz9.99-" AT 087.
  1968. PUT CONTROL Drufette.
  1969. PUT "" SKIP(1).
  1970. END.
  1971. END PROCEDURE.
  1972. /* _UIB-CODE-BLOCK-END */
  1973. &ANALYZE-RESUME
  1974. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERBUCHEN B-table-Win
  1975. PROCEDURE VERBUCHEN :
  1976. /*------------------------------------------------------------------------------
  1977. Purpose:
  1978. Parameters: <none>
  1979. Notes:
  1980. ------------------------------------------------------------------------------*/
  1981. F_Bemerk = 'Zahlungen werden verbucht ...'.
  1982. DISPLAY F_Bemerk WITH FRAME {&FRAME-NAME}.
  1983. DEFINE VARIABLE VKnr AS INTEGER.
  1984. DEFINE VARIABLE VFaknr AS INTEGER.
  1985. Helptext = ''.
  1986. i5 = 0.
  1987. FOR EACH LiBild USE-INDEX LiBild-k1
  1988. WHERE LiBild.Sprcd = GVSprcd
  1989. AND LiBild.Prog = 'ZAHLUNG' NO-LOCK:
  1990. i5 = i5 + 1.
  1991. Helptext[i5] = LiBild.Litext.
  1992. END.
  1993. VAnzahl = 0.
  1994. FOR EACH Zahlung USE-INDEX Zahlung-k1
  1995. WHERE Zahlung.Firma = GVFirma
  1996. AND Zahlung.Zahl_Art = 99
  1997. AND Zahlung.Verbucht = FALSE TRANSACTION:
  1998. VAnzahl = VAnzahl + 1.
  1999. S_Anzahl:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(VAnzahl).
  2000. VZaBetr = Zahlung.Betrag.
  2001. VSkBetr = Zahlung.Skonto.
  2002. VBankKto = Zahlung.Konto_S.
  2003. VHerk = 63.
  2004. DVKnr = Zahlung.Knr.
  2005. DVFaknr = INTEGER(Zahlung.Faknr).
  2006. XDatum = Zahlung.Datum_1.
  2007. /*
  2008. CASE nDatum:
  2009. WHEN 0 THEN XDatum = Zahlung.Datum_1.
  2010. WHEN 1 THEN XDatum = Zahlung.Datum_2.
  2011. WHEN 2 THEN XDatum = Zahlung.Datum_3.
  2012. END CASE.
  2013. */
  2014. FIND Debop USE-INDEX Debop-k1
  2015. WHERE Debop.Firma = Zahlung.Firma
  2016. AND Debop.Knr = DVKnr
  2017. AND Debop.Faknr = DVFaknr NO-LOCK.
  2018. FIND BDebop USE-INDEX Debop-k1
  2019. WHERE BDebop.Firma = Debop.Firma
  2020. AND BDebop.Knr = Debop.Knr
  2021. AND BDebop.Faknr = Debop.Faknr.
  2022. FIND BDebst USE-INDEX Debst-k1
  2023. WHERE BDebst.Firma = Debop.Firma
  2024. AND BDebst.Knr = Debop.Knr.
  2025. FIND Adresse USE-INDEX Adresse-k1
  2026. WHERE Adresse.Firma = AdFirma
  2027. AND Adresse.Knr = Debop.Knr NO-LOCK.
  2028. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK.
  2029. FIND SteuNr WHERE SteuNr.Firma = GVFirma NO-LOCK.
  2030. IF XDatum > BDebop.Faellig THEN VZahFl = FALSE.
  2031. ELSE VZahFl = TRUE.
  2032. IF VZahFl THEN VKte = TRIM(SUBSTRING(Helptext[02],21,04)).
  2033. ELSE VKte = TRIM(SUBSTRING(Helptext[02],31,04)).
  2034. IF VSkoKto = '' THEN
  2035. DO:
  2036. VSkoKto = SteuNr.Konto_Skonto.
  2037. IF VSkoKto = '' THEN
  2038. DO:
  2039. FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1
  2040. WHERE Waehrung.Firma = GVFirma
  2041. AND Waehrung.FRW = Steuer.Fwc03 NO-ERROR.
  2042. IF AVAILABLE Waehrung THEN VSkoKto = Waehrung.DebSammKto.
  2043. END.
  2044. END.
  2045. VDebKto = BDebop.Konto.
  2046. FIND LAST TransNr USE-INDEX TransNr-k1
  2047. WHERE TransNr.Firma = StFirma
  2048. AND TransNr.TrNr1 = BDebop.TrNr1 NO-LOCK NO-ERROR.
  2049. VTrNr1 = TransNr.TrNr1.
  2050. VTrNr2 = TransNr.TrNr2 + 1.
  2051. CREATE TransNr.
  2052. ASSIGN
  2053. TransNr.Firma = StFirma
  2054. TransNr.TrNr1 = VTrNr1
  2055. TransNr.TrNr2 = VTrNr2
  2056. TransNr.Herk = VHerk.
  2057. VBuchtxt1 = Adresse.Anzeig_Br.
  2058. VBuchtxt2 = Helptext[01]
  2059. + " "
  2060. + STRING(BDebop.Faknr,"9999999").
  2061. FOR EACH WFile:
  2062. DELETE WFile.
  2063. END.
  2064. /* ---- Zahlung verarbeiten (Normal) --------------------------------------- */
  2065. DO WHILE VZaBetr <> 0 OR VSkBetr <> 0:
  2066. FIND LAST BDebza USE-INDEX Debza-k1
  2067. WHERE BDebza.Firma = GVFirma
  2068. AND BDebza.Knr = DVKnr
  2069. AND BDebza.Faknr = DVFaknr NO-LOCK NO-ERROR.
  2070. IF AVAILABLE BDebza THEN VTrnr = BDebza.Trnr + 1.
  2071. ELSE VTrnr = 1.
  2072. CREATE BDebza.
  2073. ASSIGN
  2074. BDebza.Firma = GVFirma
  2075. BDebza.Knr = DVKnr
  2076. BDebza.Faknr = DVFaknr
  2077. BDebza.Trnr = VTrnr
  2078. BDebza.Zahdat = XDatum
  2079. BDebza.Zahbetr = VZaBetr
  2080. BDebza.Skonto = VSkBetr
  2081. BDebza.Konto = VBankKto
  2082. BDebza.TrNr1 = VTrNr1
  2083. BDebza.TrNr2 = VTrNr2
  2084. BDebza.FRW = BDebop.Frw
  2085. BDebza.Kurs = BDebop.Kurs
  2086. BDebza.Faktor = BDebop.Faktor
  2087. BDebza.Kte = VKte.
  2088. RUN MEHRWERTSTEUER. /* MWSTBERECHNUNG */
  2089. BDebop.Saldo = BDebop.Saldo - VZaBetr - VSkBetr.
  2090. BDebop.Skonto = BDebop.Skonto + VSkBetr.
  2091. BDebop.Zahbetr = BDebop.Zahbetr + VZaBetr.
  2092. BDebop.Zahdat = XDatum.
  2093. BDebst.Saldo = BDebst.Saldo - VZaBetr - VSkBetr.
  2094. FIND LAST Debhi USE-INDEX Debhi-k1
  2095. WHERE Debhi.Firma = GVFirma
  2096. AND Debhi.Knr = DVKnr NO-LOCK NO-ERROR.
  2097. IF AVAILABLE Debhi THEN VTrnr = Debhi.Trnr + 1.
  2098. ELSE VTrnr = 1.
  2099. CREATE Debhi.
  2100. ASSIGN
  2101. Debhi.Firma = BDebza.Firma
  2102. Debhi.Knr = BDebza.Knr
  2103. Debhi.Trnr = VTrnr
  2104. Debhi.TrNr1 = VTrNr1
  2105. Debhi.TrNr2 = VTrNr2
  2106. Debhi.Datum = BDebza.Zahdat
  2107. Debhi.Faknr = BDebza.Faknr
  2108. Debhi.Haben = BDebza.Zahbetr
  2109. Debhi.Kte = BDebza.Kte
  2110. Debhi.Konto = BDebza.Konto
  2111. Debhi.Skonto = BDebza.Skonto
  2112. Debhi.Saldo = BDebst.Saldo
  2113. Debhi.FRW = BDebop.Frw
  2114. Debhi.Kurs = BDebop.Kurs
  2115. Debhi.Faktor = BDebop.Faktor.
  2116. IF NOT BDebop.Wustabr THEN
  2117. DO:
  2118. FIND LAST Debwu USE-INDEX Debwu-k1
  2119. WHERE Debwu.Firma = GVFirma
  2120. AND Debwu.Knr = BDebza.Knr
  2121. AND Debwu.Faknr = BDebza.Faknr NO-LOCK NO-ERROR.
  2122. IF AVAILABLE Debwu THEN VTrnr = Debwu.Trnr + 1.
  2123. ELSE VTrnr = 1.
  2124. CREATE Debwu.
  2125. ASSIGN
  2126. Debwu.Firma = BDebza.Firma
  2127. Debwu.Knr = BDebza.Knr
  2128. Debwu.Faknr = BDebza.Faknr
  2129. Debwu.Trnr = VTrnr
  2130. Debwu.TrNr1 = VTrNr1
  2131. Debwu.TrNr2 = VTrNr2
  2132. Debwu.Datum = BDebza.Zahdat
  2133. Debwu.Betrag = BDebza.Zahbetr
  2134. Debwu.Konto = BDebza.Konto
  2135. Debwu.Kte = BDebza.Kte
  2136. Debwu.FRW = BDebop.Frw
  2137. Debwu.Kurs = BDebop.Kurs
  2138. Debwu.Faktor = BDebop.Faktor.
  2139. DO ix = 1 TO 11:
  2140. ASSIGN
  2141. Debwu.Wustpfl[ix] = BDebza.Zahwpfl[ix]
  2142. Debwu.Wust [ix] = BDebza.Zahwust[ix]
  2143. Debwu.Skonto [ix] = BDebza.ZahSkon[ix].
  2144. END.
  2145. END.
  2146. /* ---- Interface fuer Zahlung, Skonto ------------------------------------- */
  2147. FIND FIRST WFile WHERE WFile.Kto1 = BDebza.Konto
  2148. AND WFile.Kto2 = BDebop.Konto NO-ERROR.
  2149. IF NOT AVAILABLE WFile THEN
  2150. DO:
  2151. CREATE WFile.
  2152. ASSIGN
  2153. WFile.Kto1 = BDebza.Konto
  2154. WFile.Kto2 = BDebop.Konto
  2155. WFile.MWST_Cd = 0.
  2156. END.
  2157. ASSIGN
  2158. WFile.Betrag = WFile.Betrag + VZaBetr.
  2159. FIND FIRST WFile WHERE WFile.Kto1 = VSkoKto
  2160. AND WFile.Kto2 = BDebop.Konto NO-ERROR.
  2161. IF NOT AVAILABLE WFile THEN
  2162. DO:
  2163. CREATE WFile.
  2164. ASSIGN
  2165. WFile.Kto1 = VSkoKto
  2166. WFile.Kto2 = BDebop.Konto
  2167. WFile.MWST_Cd = 0.
  2168. END.
  2169. ASSIGN
  2170. WFile.Betrag = WFile.Betrag + VSkBetr.
  2171. /* ---- Interface fuer Mehrwertsteuer (Vereinnahmt und Skonto) ------------- */
  2172. DO ix = 1 TO 10:
  2173. IF BDebza.ZahWpfl[ix] = 0 AND
  2174. BDebza.ZahSkon[ix] = 0 THEN NEXT.
  2175. FIND FIRST Wust USE-INDEX Wust-k2
  2176. WHERE Wust.WuCd = ix NO-LOCK.
  2177. IF NOT BDebop.WustAbr AND
  2178. BDebza.ZahWpfl[ix] <> 0 THEN
  2179. DO:
  2180. IF BDebop.Fakincl[ix] THEN
  2181. DO:
  2182. RundBetr = BDebza.ZahWpfl[ix]
  2183. / (100 + BDebop.FakWPro[ix])
  2184. * BDebop.FakWPro[ix].
  2185. Rundcode = 1.
  2186. RUN "v8/runden.p".
  2187. END.
  2188. ELSE
  2189. DO:
  2190. Rundbetr = BDebza.ZahWust[ix].
  2191. END.
  2192. FIND FIRST WFile WHERE WFile.Kto1 = SteuNr.Konto_Wust_H
  2193. AND WFile.Kto2 = Wust.Konto NO-ERROR.
  2194. IF NOT AVAILABLE WFile THEN
  2195. DO:
  2196. CREATE WFile.
  2197. ASSIGN
  2198. WFile.Kto1 = SteuNr.Konto_Wust_H
  2199. WFile.Kto2 = Wust.Konto
  2200. WFile.MWST_Cd = 0.
  2201. END.
  2202. ASSIGN
  2203. WFile.Betrag = WFile.Betrag + Rundbetr.
  2204. END.
  2205. IF BDebza.ZahSkon[ix] <> 0 THEN
  2206. DO:
  2207. IF NOT BDebop.WustAbr THEN LVKto1 = SteuNr.Konto_Wust_H.
  2208. ELSE LVKto1 = Wust.Konto.
  2209. LVKto2 = VSkoKto.
  2210. RundBetr = BDebza.ZahSkon[ix] * BDebop.FakWPro[ix]
  2211. / (100 + BDebop.FakWPro[ix]).
  2212. Rundcode = 1.
  2213. RUN "v8/runden.p".
  2214. FIND FIRST WFile WHERE WFile.Kto1 = LVKto1
  2215. AND WFile.Kto2 = LVKto2 NO-ERROR.
  2216. IF NOT AVAILABLE WFile THEN
  2217. DO:
  2218. CREATE WFile.
  2219. ASSIGN
  2220. WFile.Kto1 = LVKto1
  2221. WFile.Kto2 = LVKto2
  2222. WFile.MWST_Cd = 0.
  2223. END.
  2224. ASSIGN
  2225. WFile.Betrag = WFile.Betrag + Rundbetr.
  2226. END.
  2227. END.
  2228. RUN INTERFACE.
  2229. DVFaknr = BDebop.Faknr.
  2230. DVKnr = BDebop.Knr.
  2231. RUN new-state ('zahlung_verbucht, *':U).
  2232. LEAVE.
  2233. END. /* Zahlung Normal */
  2234. Zahlung.Verbucht = TRUE.
  2235. END.
  2236. DVKnr = VKnr.
  2237. DVFaknr = VFaknr.
  2238. F_Bemerk = 'Zahlungen sind verbucht'.
  2239. DISPLAY F_Bemerk WITH FRAME {&FRAME-NAME}.
  2240. FOR EACH Zahlung WHERE Zahlung.Firma = GVFirma
  2241. AND Zahlung.Verbucht = TRUE TRANSACTION:
  2242. DELETE Zahlung.
  2243. END.
  2244. END PROCEDURE.
  2245. /* _UIB-CODE-BLOCK-END */
  2246. &ANALYZE-RESUME