f-debjournale.w 75 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS fFrameWin
  8. /*------------------------------------------------------------------------
  9. File:
  10. Description: from cntnrfrm.w - ADM2 SmartFrame Template
  11. Input Parameters:
  12. <none>
  13. Output Parameters:
  14. <none>
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress AppBuilder. */
  17. /*----------------------------------------------------------------------*/
  18. /* Create an unnamed pool to store all the widgets created
  19. by this procedure. This is a good default which assures
  20. that this procedure's triggers and internal procedures
  21. will execute in this procedure's storage, and that proper
  22. cleanup will occur on deletion of the procedure. */
  23. CREATE WIDGET-POOL.
  24. /* *************************** Definitions ************************** */
  25. /* Parameters Definitions --- */
  26. /* Local Variable Definitions --- */
  27. DEFINE VARIABLE sAktiv AS LOG NO-UNDO.
  28. DEFINE VARIABLE GlobKon AS CHARACTER INIT '9999' NO-UNDO.
  29. DEFINE VARIABLE GlobFir AS CHARACTER INIT '1000' NO-UNDO.
  30. DEFINE VARIABLE GlobFil AS CHARACTER INIT '0000' NO-UNDO.
  31. DEFINE VARIABLE DBFirma AS CHARACTER NO-UNDO.
  32. DEFINE VARIABLE D1Firma AS CHARACTER NO-UNDO.
  33. DEFINE VARIABLE D2Firma AS CHARACTER NO-UNDO.
  34. DEFINE VARIABLE ADFirma AS CHARACTER NO-UNDO.
  35. DEFINE VARIABLE FBFirma AS CHARACTER NO-UNDO.
  36. DEFINE VARIABLE NRFirma AS CHARACTER NO-UNDO.
  37. DEFINE VARIABLE Frw AS CHARACTER NO-UNDO.
  38. DEFINE VARIABLE Liste AS INTEGER NO-UNDO.
  39. DEFINE VARIABLE cVorlage AS CHARACTER NO-UNDO.
  40. DEFINE VARIABLE cDokument AS CHARACTER NO-UNDO.
  41. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO.
  42. DEFINE VARIABLE cZelle AS CHARACTER NO-UNDO.
  43. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO.
  44. DEFINE VARIABLE cAdresse AS CHARACTER NO-UNDO.
  45. DEFINE VARIABLE aRecid AS RECID NO-UNDO.
  46. DEFINE TEMP-TABLE tSelektion
  47. FIELD Sort-1 AS CHARACTER
  48. FIELD Sort-2 AS CHARACTER
  49. FIELD Sort-3 AS CHARACTER
  50. FIELD Id AS RECID
  51. FIELD Knr AS INTEGER
  52. FIELD Adresse AS CHARACTER
  53. FIELD KurzAdr AS CHARACTER
  54. FIELD Faknr AS INTEGER
  55. FIELD Datum AS DATE
  56. FIELD Konto AS CHARACTER
  57. FIELD Frw AS CHARACTER
  58. FIELD Betrag AS DECIMAL
  59. INDEX tSelektion-k1 AS PRIMARY
  60. Sort-1
  61. Sort-2
  62. Sort-3 .
  63. DEFINE TEMP-TABLE tRekap
  64. FIELD RecArt AS CHARACTER
  65. FIELD Feld AS CHARACTER
  66. FIELD Ansatz AS DECIMAL
  67. FIELD Inkl AS LOG
  68. FIELD Betrag AS DECIMAL
  69. FIELD Betrag_Frw AS DECIMAL
  70. FIELD Skonto AS DECIMAL
  71. FIELD Skonto_Frw AS DECIMAL
  72. FIELD MwstPfli AS DECIMAL
  73. FIELD MwstBetr AS DECIMAL
  74. INDEX tRekap-k1 AS PRIMARY
  75. RecArt
  76. Feld.
  77. DEFINE TEMP-TABLE tInterf NO-UNDO LIKE Interf.
  78. DEFINE TEMP-TABLE TZeile NO-UNDO
  79. FIELD Nummer AS INTEGER
  80. FIELD Feld AS CHARACTER EXTENT 16
  81. INDEX TZeile-k1 IS PRIMARY UNIQUE
  82. Nummer.
  83. DEFINE BUFFER BZeile FOR TZeile.
  84. /* _UIB-CODE-BLOCK-END */
  85. &ANALYZE-RESUME
  86. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  87. /* ******************** Preprocessor Definitions ******************** */
  88. &Scoped-define PROCEDURE-TYPE SmartFrame
  89. &Scoped-define DB-AWARE no
  90. &Scoped-define ADM-CONTAINER FRAME
  91. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  92. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  93. &Scoped-define FRAME-NAME fMain
  94. /* Internal Tables (found by Frame, Query & Browse Queries) */
  95. &Scoped-define INTERNAL-TABLES Debfa
  96. /* Definitions for FRAME fMain */
  97. &Scoped-define QUERY-STRING-fMain FOR EACH Debfa NO-LOCK
  98. &Scoped-define OPEN-QUERY-fMain OPEN QUERY fMain FOR EACH Debfa NO-LOCK.
  99. &Scoped-define TABLES-IN-QUERY-fMain Debfa
  100. &Scoped-define FIRST-TABLE-IN-QUERY-fMain Debfa
  101. /* Standard List Definitions */
  102. &Scoped-Define ENABLED-OBJECTS RECT-8 RECT-9 F_VonKnr F_BisKnr F_VonFaknr ~
  103. F_BisFaknr F_VonDatum F_BisDatum F_VonBetrag F_BisBetrag F_VonKonto ~
  104. F_BisKonto CB_Frw T_perData R_Sort Btn_Faktura Btn_Zahlung Btn_Umsatz ~
  105. Btn_OP
  106. &Scoped-Define DISPLAYED-OBJECTS F_VonKnr F_BisKnr F_VonFaknr F_BisFaknr ~
  107. F_VonDatum F_BisDatum F_VonBetrag F_BisBetrag F_VonKonto F_BisKonto CB_Frw ~
  108. T_perData R_Sort
  109. /* Custom List Definitions */
  110. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  111. &Scoped-define List-6 F_VonKnr F_BisKnr F_VonFaknr F_BisFaknr F_VonDatum ~
  112. F_BisDatum F_VonBetrag F_BisBetrag F_VonKonto F_BisKonto T_perData R_Sort
  113. /* _UIB-PREPROCESSOR-BLOCK-END */
  114. &ANALYZE-RESUME
  115. /* *********************** Control Definitions ********************** */
  116. /* Definitions of the field level widgets */
  117. DEFINE BUTTON Btn_Faktura
  118. IMAGE-UP FILE "grafik/results%.ico":U
  119. IMAGE-INSENSITIVE FILE "grafik/exit.bmp":U
  120. LABEL "F"
  121. SIZE 8 BY 1.91.
  122. DEFINE BUTTON Btn_OP
  123. IMAGE-UP FILE "grafik/results%.ico":U
  124. IMAGE-INSENSITIVE FILE "grafik/exit.bmp":U
  125. LABEL "O"
  126. SIZE 8 BY 1.91.
  127. DEFINE BUTTON Btn_Umsatz
  128. IMAGE-UP FILE "grafik/results%.ico":U
  129. IMAGE-INSENSITIVE FILE "grafik/exit.bmp":U
  130. LABEL "U"
  131. SIZE 8 BY 1.91.
  132. DEFINE BUTTON Btn_Zahlung
  133. IMAGE-UP FILE "grafik/results%.ico":U
  134. IMAGE-INSENSITIVE FILE "grafik/exit.bmp":U
  135. LABEL "Z"
  136. SIZE 8 BY 1.91.
  137. DEFINE VARIABLE CB_Frw AS CHARACTER FORMAT "X(256)":U
  138. LABEL "Währungen"
  139. VIEW-AS COMBO-BOX INNER-LINES 5
  140. LIST-ITEM-PAIRS "Item 1","Item 1"
  141. DROP-DOWN-LIST
  142. SIZE 49 BY 1
  143. BGCOLOR 15 NO-UNDO.
  144. DEFINE VARIABLE F_BisBetrag AS DECIMAL FORMAT "zzz,zzz,zz9.99-" INITIAL 0
  145. LABEL "-"
  146. VIEW-AS FILL-IN NATIVE
  147. SIZE 23 BY 1
  148. BGCOLOR 15 .
  149. DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999"
  150. LABEL "-"
  151. VIEW-AS FILL-IN NATIVE
  152. SIZE 16 BY 1
  153. BGCOLOR 15 .
  154. DEFINE VARIABLE F_BisFaknr AS INTEGER FORMAT "9999999" INITIAL 0
  155. LABEL "-"
  156. VIEW-AS FILL-IN NATIVE
  157. SIZE 12 BY 1
  158. BGCOLOR 15 .
  159. DEFINE VARIABLE F_BisKnr AS INTEGER FORMAT "999999" INITIAL 0
  160. LABEL "-"
  161. VIEW-AS FILL-IN NATIVE
  162. SIZE 11 BY 1
  163. BGCOLOR 15 .
  164. DEFINE VARIABLE F_BisKonto AS CHARACTER FORMAT "x(12)"
  165. LABEL "-"
  166. VIEW-AS FILL-IN NATIVE
  167. SIZE 23 BY 1
  168. BGCOLOR 15 .
  169. DEFINE VARIABLE F_VonBetrag AS DECIMAL FORMAT "zzz,zzz,zz9.99-" INITIAL 0
  170. LABEL "Betrag"
  171. VIEW-AS FILL-IN NATIVE
  172. SIZE 23 BY 1
  173. BGCOLOR 15 .
  174. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999"
  175. LABEL "Datum"
  176. VIEW-AS FILL-IN NATIVE
  177. SIZE 16 BY 1
  178. BGCOLOR 15 .
  179. DEFINE VARIABLE F_VonFaknr AS INTEGER FORMAT "9999999" INITIAL 0
  180. LABEL "Fakturanummer"
  181. VIEW-AS FILL-IN NATIVE
  182. SIZE 12 BY 1
  183. BGCOLOR 15 .
  184. DEFINE VARIABLE F_VonKnr AS INTEGER FORMAT "999999" INITIAL 0
  185. LABEL "Kundennummer"
  186. VIEW-AS FILL-IN NATIVE
  187. SIZE 11 BY 1
  188. BGCOLOR 15 .
  189. DEFINE VARIABLE F_VonKonto AS CHARACTER FORMAT "x(12)"
  190. LABEL "FibuKonto"
  191. VIEW-AS FILL-IN NATIVE
  192. SIZE 23 BY 1
  193. BGCOLOR 15 .
  194. DEFINE VARIABLE R_Sort AS INTEGER
  195. VIEW-AS RADIO-SET VERTICAL
  196. RADIO-BUTTONS
  197. "Rechnungsnummer", 1,
  198. "Kundennummer", 2,
  199. "Suchbegriff", 3,
  200. "Datum", 4
  201. SIZE 49 BY 3 NO-UNDO.
  202. DEFINE RECTANGLE RECT-8
  203. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  204. SIZE 100 BY 16.19.
  205. DEFINE RECTANGLE RECT-9
  206. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  207. SIZE 100 BY 3.81.
  208. DEFINE VARIABLE T_perData AS LOGICAL INITIAL NO
  209. LABEL "Saldo per Data (OP-Liste (bis Fakruradatum))"
  210. VIEW-AS TOGGLE-BOX
  211. SIZE 49 BY 1 NO-UNDO.
  212. /* Query definitions */
  213. &ANALYZE-SUSPEND
  214. DEFINE QUERY fMain FOR
  215. Debfa SCROLLING.
  216. &ANALYZE-RESUME
  217. /* ************************ Frame Definitions *********************** */
  218. DEFINE FRAME fMain
  219. F_VonKnr AT ROW 1.52 COL 28 COLON-ALIGNED
  220. F_BisKnr AT ROW 1.52 COL 54 COLON-ALIGNED
  221. F_VonFaknr AT ROW 2.52 COL 28 COLON-ALIGNED
  222. F_BisFaknr AT ROW 2.52 COL 54 COLON-ALIGNED
  223. F_VonDatum AT ROW 3.52 COL 28 COLON-ALIGNED
  224. F_BisDatum AT ROW 3.52 COL 54 COLON-ALIGNED
  225. F_VonBetrag AT ROW 4.52 COL 28 COLON-ALIGNED
  226. F_BisBetrag AT ROW 4.52 COL 54 COLON-ALIGNED
  227. F_VonKonto AT ROW 5.57 COL 28 COLON-ALIGNED
  228. F_BisKonto AT ROW 5.57 COL 54 COLON-ALIGNED
  229. CB_Frw AT ROW 6.52 COL 28 COLON-ALIGNED
  230. T_perData AT ROW 7.52 COL 30
  231. R_Sort AT ROW 9.48 COL 30 NO-LABELS
  232. Btn_Faktura AT ROW 14 COL 10
  233. Btn_Zahlung AT ROW 14 COL 30
  234. Btn_Umsatz AT ROW 14 COL 50
  235. Btn_OP AT ROW 14 COL 70
  236. "Offene Posten" VIEW-AS TEXT
  237. SIZE 15.4 BY .95 AT ROW 16.1 COL 68
  238. "Mehrwertsteuerjournal" VIEW-AS TEXT
  239. SIZE 20.2 BY .95 AT ROW 16.1 COL 46
  240. "Zahlungsjournal" VIEW-AS TEXT
  241. SIZE 16 BY .95 AT ROW 16.1 COL 26
  242. "Fakturajournal" VIEW-AS TEXT
  243. SIZE 16 BY .95 AT ROW 16.1 COL 6
  244. RECT-8 AT ROW 1.24 COL 2
  245. RECT-9 AT ROW 9.14 COL 2
  246. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  247. SIDE-LABELS NO-UNDERLINE THREE-D
  248. AT COL 1 ROW 1
  249. SIZE 102 BY 16.67.
  250. /* *********************** Procedure Settings ************************ */
  251. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  252. /* Settings for THIS-PROCEDURE
  253. Type: SmartFrame
  254. Allow: Basic,Browse,DB-Fields,Query,Smart
  255. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  256. Other Settings: PERSISTENT-ONLY COMPILE
  257. */
  258. /* This procedure should always be RUN PERSISTENT. Report the error, */
  259. /* then cleanup and return. */
  260. IF NOT THIS-PROCEDURE:PERSISTENT THEN
  261. DO:
  262. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  263. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  264. RETURN.
  265. END.
  266. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  267. /* ************************* Create Window ************************** */
  268. &ANALYZE-SUSPEND _CREATE-WINDOW
  269. /* DESIGN Window definition (used by the UIB)
  270. CREATE WINDOW fFrameWin ASSIGN
  271. HEIGHT = 16.81
  272. WIDTH = 103.
  273. /* END WINDOW DEFINITION */
  274. */
  275. &ANALYZE-RESUME
  276. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB fFrameWin
  277. /* ************************* Included-Libraries *********************** */
  278. {src/adm2/containr.i}
  279. /* _UIB-CODE-BLOCK-END */
  280. &ANALYZE-RESUME
  281. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  282. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  283. /* SETTINGS FOR WINDOW fFrameWin
  284. VISIBLE,,RUN-PERSISTENT */
  285. /* SETTINGS FOR FRAME fMain
  286. NOT-VISIBLE FRAME-NAME */
  287. ASSIGN
  288. FRAME fMain:HIDDEN = TRUE.
  289. /* SETTINGS FOR FILL-IN F_BisBetrag IN FRAME fMain
  290. 6 */
  291. /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME fMain
  292. 6 */
  293. /* SETTINGS FOR FILL-IN F_BisFaknr IN FRAME fMain
  294. 6 */
  295. /* SETTINGS FOR FILL-IN F_BisKnr IN FRAME fMain
  296. 6 */
  297. /* SETTINGS FOR FILL-IN F_BisKonto IN FRAME fMain
  298. 6 */
  299. /* SETTINGS FOR FILL-IN F_VonBetrag IN FRAME fMain
  300. 6 */
  301. /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME fMain
  302. 6 */
  303. /* SETTINGS FOR FILL-IN F_VonFaknr IN FRAME fMain
  304. 6 */
  305. /* SETTINGS FOR FILL-IN F_VonKnr IN FRAME fMain
  306. 6 */
  307. /* SETTINGS FOR FILL-IN F_VonKonto IN FRAME fMain
  308. 6 */
  309. /* SETTINGS FOR RADIO-SET R_Sort IN FRAME fMain
  310. 6 */
  311. /* SETTINGS FOR TOGGLE-BOX T_perData IN FRAME fMain
  312. 6 */
  313. /* _RUN-TIME-ATTRIBUTES-END */
  314. &ANALYZE-RESUME
  315. /* Setting information for Queries and Browse Widgets fields */
  316. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME fMain
  317. /* Query rebuild information for FRAME fMain
  318. _TblList = "AnaDat.Debfa"
  319. _Options = ""
  320. _Query is NOT OPENED
  321. */ /* FRAME fMain */
  322. &ANALYZE-RESUME
  323. /* ************************ Control Triggers ************************ */
  324. &Scoped-define SELF-NAME Btn_Faktura
  325. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Faktura fFrameWin
  326. ON CHOOSE OF Btn_Faktura IN FRAME fMain /* F */
  327. DO:
  328. Liste = 1.
  329. RUN REPORT.
  330. END.
  331. /* _UIB-CODE-BLOCK-END */
  332. &ANALYZE-RESUME
  333. &Scoped-define SELF-NAME Btn_OP
  334. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OP fFrameWin
  335. ON CHOOSE OF Btn_OP IN FRAME fMain /* O */
  336. DO:
  337. Liste = 4.
  338. RUN REPORT.
  339. END.
  340. /* _UIB-CODE-BLOCK-END */
  341. &ANALYZE-RESUME
  342. &Scoped-define SELF-NAME Btn_Umsatz
  343. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Umsatz fFrameWin
  344. ON CHOOSE OF Btn_Umsatz IN FRAME fMain /* U */
  345. DO:
  346. Liste = 3.
  347. RUN REPORT.
  348. END.
  349. /* _UIB-CODE-BLOCK-END */
  350. &ANALYZE-RESUME
  351. &Scoped-define SELF-NAME Btn_Zahlung
  352. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Zahlung fFrameWin
  353. ON CHOOSE OF Btn_Zahlung IN FRAME fMain /* Z */
  354. DO:
  355. Liste = 2.
  356. RUN REPORT.
  357. END.
  358. /* _UIB-CODE-BLOCK-END */
  359. &ANALYZE-RESUME
  360. &Scoped-define SELF-NAME F_BisKnr
  361. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_BisKnr fFrameWin
  362. ON ALT-F OF F_BisKnr IN FRAME fMain /* - */
  363. DO:
  364. RUN g-such-debit.w ( INPUT 0, OUTPUT cAdresse ).
  365. IF cAdresse = '' THEN RETURN NO-APPLY.
  366. SELF:SCREEN-VALUE = STRING(INTEGER(ENTRY(3, cAdresse, CHR(01)))).
  367. RETURN NO-APPLY.
  368. END.
  369. /* _UIB-CODE-BLOCK-END */
  370. &ANALYZE-RESUME
  371. &Scoped-define SELF-NAME F_VonKnr
  372. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_VonKnr fFrameWin
  373. ON ALT-F OF F_VonKnr IN FRAME fMain /* Kundennummer */
  374. DO:
  375. RUN g-such-debit.w ( INPUT 0, OUTPUT cAdresse ).
  376. IF cAdresse = '' THEN RETURN NO-APPLY.
  377. SELF:SCREEN-VALUE = STRING(INTEGER(ENTRY(3, cAdresse, CHR(01)))).
  378. F_BisKnr:SCREEN-VALUE = SELF:SCREEN-VALUE.
  379. RETURN NO-APPLY.
  380. END.
  381. /* _UIB-CODE-BLOCK-END */
  382. &ANALYZE-RESUME
  383. &UNDEFINE SELF-NAME
  384. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK fFrameWin
  385. /* *************************** Main Block *************************** */
  386. SAktiv = DYNAMIC-FUNCTION('getSuperaktiv':U) NO-ERROR.
  387. IF SAktiv THEN
  388. DO:
  389. D1Firma = DYNAMIC-FUNCTION('getMandant':U ) NO-ERROR.
  390. AdFirma = DYNAMIC-FUNCTION('getAdMandant':U ) NO-ERROR.
  391. FBFirma = DYNAMIC-FUNCTION('getFBMandant':U ) NO-ERROR.
  392. END.
  393. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  394. /* Now enable the interface if in test mode - otherwise this happens when
  395. the object is explicitly initialized from its container. */
  396. RUN initializeObject.
  397. &ENDIF
  398. /* _UIB-CODE-BLOCK-END */
  399. &ANALYZE-RESUME
  400. /* ********************** Internal Procedures *********************** */
  401. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects fFrameWin _ADM-CREATE-OBJECTS
  402. PROCEDURE adm-create-objects :
  403. /*------------------------------------------------------------------------------
  404. Purpose: Create handles for all SmartObjects used in this procedure.
  405. After SmartObjects are initialized, then SmartLinks are added.
  406. Parameters: <none>
  407. ------------------------------------------------------------------------------*/
  408. END PROCEDURE.
  409. /* _UIB-CODE-BLOCK-END */
  410. &ANALYZE-RESUME
  411. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI fFrameWin _DEFAULT-DISABLE
  412. PROCEDURE disable_UI :
  413. /*------------------------------------------------------------------------------
  414. Purpose: DISABLE the User Interface
  415. Parameters: <none>
  416. Notes: Here we clean-up the user-interface by deleting
  417. dynamic widgets we have created and/or hide
  418. frames. This procedure is usually called when
  419. we are ready to "clean-up" after running.
  420. ------------------------------------------------------------------------------*/
  421. /* Hide all frames. */
  422. HIDE FRAME fMain.
  423. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  424. END PROCEDURE.
  425. /* _UIB-CODE-BLOCK-END */
  426. &ANALYZE-RESUME
  427. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI fFrameWin _DEFAULT-ENABLE
  428. PROCEDURE enable_UI :
  429. /*------------------------------------------------------------------------------
  430. Purpose: ENABLE the User Interface
  431. Parameters: <none>
  432. Notes: Here we display/view/enable the widgets in the
  433. user-interface. In addition, OPEN all queries
  434. associated with each FRAME and BROWSE.
  435. These statements here are based on the "Other
  436. Settings" section of the widget Property Sheets.
  437. ------------------------------------------------------------------------------*/
  438. DISPLAY F_VonKnr F_BisKnr F_VonFaknr F_BisFaknr F_VonDatum F_BisDatum
  439. F_VonBetrag F_BisBetrag F_VonKonto F_BisKonto CB_Frw T_perData R_Sort
  440. WITH FRAME fMain.
  441. ENABLE RECT-8 RECT-9 F_VonKnr F_BisKnr F_VonFaknr F_BisFaknr F_VonDatum
  442. F_BisDatum F_VonBetrag F_BisBetrag F_VonKonto F_BisKonto CB_Frw
  443. T_perData R_Sort Btn_Faktura Btn_Zahlung Btn_Umsatz Btn_OP
  444. WITH FRAME fMain.
  445. {&OPEN-BROWSERS-IN-QUERY-fMain}
  446. END PROCEDURE.
  447. /* _UIB-CODE-BLOCK-END */
  448. &ANALYZE-RESUME
  449. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA_JOURNAL fFrameWin
  450. PROCEDURE FAKTURA_JOURNAL :
  451. /*------------------------------------------------------------------------------
  452. Purpose:
  453. Parameters: <none>
  454. Notes:
  455. ------------------------------------------------------------------------------*/
  456. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  457. DEFINE VARIABLE ja AS LOG NO-UNDO.
  458. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  459. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
  460. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  461. DEFINE VARIABLE GTotal AS DECIMAL EXTENT 5 NO-UNDO.
  462. DEFINE VARIABLE Cd AS INTEGER NO-UNDO.
  463. DEFINE VARIABLE Ans AS DECIMAL NO-UNDO.
  464. DEFINE VARIABLE nMwst AS DECIMAL NO-UNDO.
  465. cVorlage = 'FakturaJournal.xls'.
  466. cDokument = 'FakturaJournal.xls'.
  467. cDaten = 'FakturaJournal.txt'.
  468. cDateiName = cDokument + CHR(01) + cVorlage.
  469. RUN CREATEDATEI ( INPUT cDateiName ).
  470. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  471. cDokument = RETURN-VALUE.
  472. cDateiName = cDaten.
  473. RUN CREATEDATEI ( INPUT cDateiName ).
  474. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  475. cDaten = RETURN-VALUE.
  476. OUTPUT TO VALUE(cDaten) NO-MAP NO-CONVERT.
  477. GTotal = 0.
  478. FOR EACH tSelektion USE-INDEX tSelektion-k1 NO-LOCK:
  479. FIND Debfa WHERE RECID(Debfa) = tSelektion.id NO-LOCK.
  480. FIND Debop USE-INDEX Debop-k1
  481. WHERE Debop.Firma = Debfa.Firma
  482. AND Debop.Knr = Debfa.Knr
  483. AND Debop.Faknr = Debfa.Faknr NO-LOCK NO-ERROR.
  484. PUT CONTROL '£'
  485. STRING(Debfa.Knr ,'999999') '£'
  486. tSelektion.Adresse '££'
  487. STRING(Debfa.Faknr ,'9999999') '£'
  488. STRING(Debfa.FakDat ,'99.99.9999') '£'
  489. STRING(Debfa.Faellig ,'99.99.9999') '£'
  490. Debfa.Kte '£'
  491. Debfa.Frw '£'
  492. TRIM(STRING(Debfa.Kurs ,'zzzz9.9999')) '£'
  493. TRIM(STRING(Debfa.Fakbetr_Frw,'->>>>>>>>9.99')) '£'
  494. TRIM(STRING(Debfa.Fakbetr ,'->>>>>>>>9.99')) '£'
  495. Debfa.Konto '£'
  496. CHR(10).
  497. GTotal[01] = GTotal[01] + Debfa.Fakbetr_Frw.
  498. GTotal[02] = GTotal[02] + Debfa.Fakbetr .
  499. FIND FIRST tRekap USE-INDEX tRekap-k1
  500. WHERE tRekap.RecArt = 'Konto'
  501. AND tRekap.Feld = Debfa.Konto NO-ERROR.
  502. IF NOT AVAILABLE tRekap THEN
  503. DO:
  504. CREATE tRekap.
  505. ASSIGN
  506. tRekap.RecArt = 'Konto'
  507. tRekap.Feld = Debfa.Konto.
  508. END.
  509. ASSIGN
  510. tRekap.Betrag = tRekap.Betrag + Debfa.FakBetr
  511. tRekap.Betrag_Frw = tRekap.Betrag_Frw + Debfa.FakBetr_Frw.
  512. FIND FIRST tRekap USE-INDEX tRekap-k1
  513. WHERE tRekap.RecArt = 'Frw'
  514. AND tRekap.Feld = Debfa.Frw NO-ERROR.
  515. IF NOT AVAILABLE tRekap THEN
  516. DO:
  517. CREATE tRekap.
  518. ASSIGN
  519. tRekap.RecArt = 'Frw'
  520. tRekap.Feld = Debfa.Frw.
  521. END.
  522. ASSIGN
  523. tRekap.Betrag = tRekap.Betrag + Debfa.FakBetr
  524. tRekap.Betrag_Frw = tRekap.Betrag_Frw + Debfa.FakBetr_Frw.
  525. DO ix = 1 TO 11:
  526. IF Debfa.FakWpfl[ix] = 0 THEN NEXT.
  527. FIND LAST MWSTAns NO-LOCK
  528. WHERE MWSTAns.MWST_Cd = ix
  529. AND MWSTAns.Datum <= Debfa.Fakdat NO-ERROR.
  530. cFeld = STRING(ix,'99 ')
  531. + STRING(Debop.FakWPro[ix],'99.99').
  532. FIND FIRST tRekap USE-INDEX tRekap-k1
  533. WHERE tRekap.RecArt = 'MWST'
  534. AND tRekap.Feld = cFeld NO-ERROR.
  535. IF NOT AVAILABLE tRekap THEN
  536. DO:
  537. CREATE tRekap.
  538. ASSIGN
  539. tRekap.RecArt = 'MWST'
  540. tRekap.Feld = cFeld
  541. tRekap.Inkl = MWSTAns.Incl.
  542. END.
  543. IF MWSTAns.Incl THEN nMwst = Debfa.FakWpfl[ix] * MWSTAns.Ansatz / (100 + MWSTAns.Ansatz).
  544. ELSE nMwst = Debfa.FakWust[ix].
  545. ASSIGN
  546. tRekap.MwstPfli = tRekap.MwstPfli + Debfa.FakWpfl[ix] - (IF MWSTAns.Incl THEN nMwst ELSE 0.00)
  547. tRekap.MwstBetr = tRekap.MwstBetr + nMwst.
  548. END.
  549. END.
  550. PUT CONTROL '£' CHR(10).
  551. PUT CONTROL '£££Gesamttotal£'
  552. '££££££'
  553. TRIM(STRING(GTotal[01],'->>>>>>>>9.99')) '£'
  554. TRIM(STRING(GTotal[02],'->>>>>>>>9.99')) CHR(10).
  555. PUT CONTROL '£' CHR(10)
  556. '£' CHR(10).
  557. ja = TRUE.
  558. FOR EACH tRekap USE-INDEX tRekap-k1
  559. WHERE tRekap.RecArt = 'Konto':
  560. IF ja THEN PUT CONTROL '£££Kontorekapitulation£'.
  561. ELSE PUT CONTROL '££££'.
  562. PUT CONTROL '££££££'
  563. TRIM(STRING(tRekap.Betrag_Frw,'->>>>>>>>9.99')) '£'
  564. TRIM(STRING(tRekap.Betrag ,'->>>>>>>>9.99')) '£'
  565. tRekap.Feld CHR(10).
  566. ja = FALSE.
  567. END.
  568. PUT CONTROL '£' CHR(10)
  569. '£' CHR(10).
  570. ja = TRUE.
  571. FOR EACH tRekap USE-INDEX tRekap-k1
  572. WHERE tRekap.RecArt = 'Frw':
  573. IF ja THEN PUT CONTROL '£££Rekapitulation nach Währung£'.
  574. ELSE PUT CONTROL '££££'.
  575. PUT CONTROL '££££'
  576. tRekap.Feld '££'
  577. STRING(tRekap.Betrag_Frw,'->>>>>>>>9.99') '£'
  578. STRING(tRekap.Betrag ,'->>>>>>>>9.99') '£'
  579. CHR(10).
  580. ja = FALSE.
  581. END.
  582. PUT CONTROL '£' CHR(10)
  583. '£' CHR(10)
  584. '£££MWSt-Rekapitulation££££Ansatz£££Ums netto£Steuer'
  585. CHR(10).
  586. GTotal = 0.
  587. FOR EACH tRekap USE-INDEX tRekap-k1
  588. WHERE tRekap.RecArt = 'MWST':
  589. Cd = INTEGER(SUBSTRING(tRekap.Feld,01,02)).
  590. Ans = DECIMAL(SUBSTRING(tRekap.Feld,04,05)).
  591. cString = STRING(Cd ,'99')
  592. + ' / '
  593. + STRING(Ans,'zz9.99% ').
  594. IF tRekap.Inkl THEN cString = cString + ' inkl'.
  595. ELSE cString = cString + ' exkl'.
  596. IF tRekap.MwstBetr = 0 THEN
  597. DO:
  598. tRekap.MwstBetr = tRekap.MwstPfli * Ans / (100 + Ans).
  599. tRekap.MwstBetr = tRekap.MwstBetr - tRekap.MwstBetr.
  600. END.
  601. GTotal[01] = GTotal[01] + tRekap.MwstPfli.
  602. GTotal[02] = GTotal[02] + tRekap.MwstBetr.
  603. PUT CONTROL '£££££££'
  604. cString '£££'
  605. STRING(tRekap.MwstPfli ,'->>>>>>>>9.99') '£'
  606. STRING(tRekap.MwstBetr ,'->>>>>>>>9.99') CHR(10).
  607. END.
  608. PUT CONTROL '£££Gesamttotal£'
  609. '££££££'
  610. STRING(GTotal[01],'->>>>>>>>9.99') '£'
  611. STRING(GTotal[02],'->>>>>>>>9.99') CHR(10).
  612. OUTPUT CLOSE.
  613. excelAppl = DYNAMIC-FUNCTION('createExcel':U) NO-ERROR.
  614. IF NOT VALID-HANDLE(excelAppl) THEN
  615. DO:
  616. DYNAMIC-FUNCTION('FEHLER', INPUT 1035) NO-ERROR.
  617. RETURN.
  618. END.
  619. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
  620. IF NOT ja THEN
  621. DO:
  622. DYNAMIC-FUNCTION('FEHLER', INPUT 1040) NO-ERROR.
  623. DYNAMIC-FUNCTION('ReleaseExcel':U, INPUT excelAppl ) NO-ERROR.
  624. RETURN NO-APPLY.
  625. END.
  626. cZelle = 'A6'.
  627. excelAppl:Range(cZelle):SELECT.
  628. excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten.
  629. excelAppl:APPLICATION:RUN ( 'DateiEinfuegen' ).
  630. RUN KOPF.
  631. cZelle = 'A1'.
  632. excelAppl:Range(cZelle):SELECT.
  633. DYNAMIC-FUNCTION('ReleaseExcel':U, INPUT excelAppl ) NO-ERROR.
  634. END PROCEDURE.
  635. /* _UIB-CODE-BLOCK-END */
  636. &ANALYZE-RESUME
  637. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject fFrameWin
  638. PROCEDURE initializeObject :
  639. /*------------------------------------------------------------------------------
  640. Purpose: Super Override
  641. Parameters:
  642. Notes:
  643. ------------------------------------------------------------------------------*/
  644. DEFINE VARIABLE cValue AS CHARACTER NO-UNDO.
  645. DO WITH FRAME {&FRAME-NAME}:
  646. IF sAktiv THEN RUN COMBO_FRW (CB_Frw:HANDLE) NO-ERROR.
  647. CB_Frw:LIST-ITEM-PAIRS = 'Alle'
  648. + ';'
  649. + '...'
  650. + ';'
  651. + CB_Frw:LIST-ITEM-PAIRS.
  652. GET-KEY-VALUE SECTION 'FwDebJournale'
  653. KEY 'Knr'
  654. VALUE cValue.
  655. IF cValue = ? THEN cValue = ''.
  656. IF cValue = '' THEN cValue = '000000;999999'.
  657. F_VonKnr = INTEGER(ENTRY(1, cValue, ';')) NO-ERROR.
  658. F_BisKnr = INTEGER(ENTRY(2, cValue, ';')) NO-ERROR.
  659. GET-KEY-VALUE SECTION 'FwDebJournale'
  660. KEY 'Faknr'
  661. VALUE cValue.
  662. IF cValue = ? THEN cValue = ''.
  663. IF cValue = '' THEN cValue = '0000000;9999999'.
  664. F_VonFaknr = INTEGER(ENTRY(1, cValue, ';')) NO-ERROR.
  665. F_BisFaknr = INTEGER(ENTRY(2, cValue, ';')) NO-ERROR.
  666. GET-KEY-VALUE SECTION 'FwDebJournale'
  667. KEY 'Datum'
  668. VALUE cValue.
  669. IF cValue = ? THEN cValue = ''.
  670. IF cValue = '' THEN cValue = '01.01.0001;31.12.9999'.
  671. F_VonDatum = DATE (ENTRY(1, cValue, ';')) NO-ERROR.
  672. F_BisDatum = DATE (ENTRY(2, cValue, ';')) NO-ERROR.
  673. GET-KEY-VALUE SECTION 'FwDebJournale'
  674. KEY 'Betrag'
  675. VALUE cValue.
  676. IF cValue = ? THEN cValue = ''.
  677. IF cValue = '' THEN cValue = '-999999999.99;999999999.99'.
  678. F_VonBetrag = DECIMAL(ENTRY(1, cValue, ';')) NO-ERROR.
  679. F_BisBetrag = DECIMAL(ENTRY(2, cValue, ';')) NO-ERROR.
  680. GET-KEY-VALUE SECTION 'FwDebJournale'
  681. KEY 'Konto'
  682. VALUE cValue.
  683. IF cValue = ? THEN cValue = ''.
  684. IF cValue = '' THEN cValue = ';zzzzzzzzzzzz'.
  685. F_VonKonto = ENTRY(1, cValue, ';') NO-ERROR.
  686. F_BisKonto = ENTRY(2, cValue, ';') NO-ERROR.
  687. GET-KEY-VALUE SECTION 'FwDebJournale'
  688. KEY 'Frw'
  689. VALUE cValue.
  690. IF cValue = ? THEN cValue = ''.
  691. IF cValue = '' THEN cValue = '...'.
  692. CB_Frw:SCREEN-VALUE = cValue NO-ERROR.
  693. GET-KEY-VALUE SECTION 'FwDebJournale'
  694. KEY 'Sort'
  695. VALUE cValue.
  696. IF cValue = ? THEN cValue = ''.
  697. IF cValue = '' THEN cValue = '1'.
  698. R_Sort = INTEGER(cValue) NO-ERROR.
  699. END.
  700. RUN SUPER.
  701. END PROCEDURE.
  702. /* _UIB-CODE-BLOCK-END */
  703. &ANALYZE-RESUME
  704. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF fFrameWin
  705. PROCEDURE KOPF :
  706. /*------------------------------------------------------------------------------
  707. Purpose:
  708. Parameters: <none>
  709. Notes:
  710. ------------------------------------------------------------------------------*/
  711. FIND Steuer NO-LOCK USE-INDEX Steuer-k1
  712. WHERE Steuer.Firma = D1Firma NO-ERROR.
  713. DO WHILE Liste = 1:
  714. cZelle = 'A1'.
  715. excelAppl:Range(cZelle):Select.
  716. excelAppl:Selection:VALUE = Steuer.Firma1.
  717. cZelle = 'E1'.
  718. excelAppl:Range(cZelle):Select.
  719. excelAppl:Selection:VALUE = 'Fakturajournal'.
  720. cZelle = 'M1'.
  721. excelAppl:Range(cZelle):Select.
  722. excelAppl:Selection:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  723. cZelle = 'A2'.
  724. excelAppl:Range(cZelle):Select.
  725. excelAppl:Selection:VALUE = Steuer.Ort.
  726. cZelle = 'E2'.
  727. excelAppl:Range(cZelle):Select.
  728. excelAppl:Selection:VALUE = STRING(F_VonDatum,'99.99.9999')
  729. + ' - '
  730. + STRING(F_BisDatum,'99.99.9999').
  731. cZelle = 'M2'.
  732. excelAppl:Range(cZelle):Select.
  733. excelAppl:Selection:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  734. LEAVE.
  735. END.
  736. DO WHILE Liste = 2:
  737. cZelle = 'A1'.
  738. excelAppl:Range(cZelle):Select.
  739. excelAppl:Selection:VALUE = Steuer.Firma1.
  740. cZelle = 'E1'.
  741. excelAppl:Range(cZelle):Select.
  742. excelAppl:Selection:VALUE = 'Zahlungsjournal'.
  743. cZelle = 'N1'.
  744. excelAppl:Range(cZelle):Select.
  745. excelAppl:Selection:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  746. cZelle = 'A2'.
  747. excelAppl:Range(cZelle):Select.
  748. excelAppl:Selection:VALUE = Steuer.Ort.
  749. cZelle = 'E2'.
  750. excelAppl:Range(cZelle):Select.
  751. excelAppl:Selection:VALUE = STRING(F_VonDatum,'99.99.9999')
  752. + ' - '
  753. + STRING(F_BisDatum,'99.99.9999').
  754. cZelle = 'N2'.
  755. excelAppl:Range(cZelle):Select.
  756. excelAppl:Selection:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  757. LEAVE.
  758. END.
  759. DO WHILE Liste = 3:
  760. cZelle = 'A1'.
  761. excelAppl:Range(cZelle):Select.
  762. excelAppl:Selection:VALUE = Steuer.Firma1.
  763. cZelle = 'H1'.
  764. excelAppl:Range(cZelle):Select.
  765. excelAppl:Selection:VALUE = 'MwSt-Journal'.
  766. cZelle = 'P1'.
  767. excelAppl:Range(cZelle):Select.
  768. excelAppl:Selection:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  769. cZelle = 'A2'.
  770. excelAppl:Range(cZelle):Select.
  771. excelAppl:Selection:VALUE = Steuer.Ort.
  772. cZelle = 'H2'.
  773. excelAppl:Range(cZelle):Select.
  774. excelAppl:Selection:VALUE = STRING(F_VonDatum,'99.99.9999')
  775. + ' - '
  776. + STRING(F_BisDatum,'99.99.9999').
  777. cZelle = 'P2'.
  778. excelAppl:Range(cZelle):Select.
  779. excelAppl:Selection:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  780. LEAVE.
  781. END.
  782. DO WHILE Liste = 4:
  783. cZelle = 'A1'.
  784. excelAppl:Range(cZelle):Select.
  785. excelAppl:Selection:VALUE = Steuer.Firma1.
  786. cZelle = 'K1'.
  787. excelAppl:Range(cZelle):Select.
  788. excelAppl:Selection:VALUE = 'Offene Posten'.
  789. cZelle = 'S1'.
  790. excelAppl:Range(cZelle):Select.
  791. excelAppl:Selection:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  792. cZelle = 'A2'.
  793. excelAppl:Range(cZelle):Select.
  794. excelAppl:Selection:VALUE = Steuer.Ort.
  795. cZelle = 'K2'.
  796. excelAppl:Range(cZelle):Select.
  797. IF T_perData THEN
  798. DO:
  799. excelAppl:Selection:VALUE = 'Saldo per : '
  800. + STRING(F_BisDatum,'99.99.9999').
  801. END.
  802. ELSE
  803. DO:
  804. excelAppl:Selection:VALUE = STRING(F_VonDatum,'99.99.9999')
  805. + ' - '
  806. + STRING(F_BisDatum,'99.99.9999').
  807. END.
  808. cZelle = 'S2'.
  809. excelAppl:Range(cZelle):Select.
  810. excelAppl:Selection:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  811. LEAVE.
  812. END.
  813. excelAppl:Columns("A:A"):Select.
  814. excelAppl:Selection:ColumnWidth = 0.2.
  815. END PROCEDURE.
  816. /* _UIB-CODE-BLOCK-END */
  817. &ANALYZE-RESUME
  818. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OFFENE_POSTEN fFrameWin
  819. PROCEDURE OFFENE_POSTEN :
  820. /*------------------------------------------------------------------------------
  821. Purpose:
  822. Parameters: <none>
  823. Notes:
  824. ------------------------------------------------------------------------------*/
  825. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  826. DEFINE VARIABLE ja AS LOG NO-UNDO.
  827. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  828. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
  829. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  830. DEFINE VARIABLE GTotal AS DECIMAL EXTENT 5 NO-UNDO.
  831. DEFINE VARIABLE Cd AS INTEGER NO-UNDO.
  832. DEFINE VARIABLE Ans AS DECIMAL NO-UNDO.
  833. DEFINE VARIABLE SaldoBas AS DECIMAL NO-UNDO.
  834. DEFINE VARIABLE SaldoFrw AS DECIMAL NO-UNDO.
  835. DEFINE VARIABLE ZahlBas AS DECIMAL NO-UNDO.
  836. DEFINE VARIABLE ZahlFrw AS DECIMAL NO-UNDO.
  837. DEFINE VARIABLE SkonBas AS DECIMAL NO-UNDO.
  838. DEFINE VARIABLE SkonFrw AS DECIMAL NO-UNDO.
  839. DEFINE VARIABLE cAdresse AS CHARACTER NO-UNDO.
  840. DEFINE VARIABLE fOffen AS LOG NO-UNDO.
  841. DEFINE VARIABLE FDatum AS DATE NO-UNDO.
  842. DEFINE VARIABLE ZDatum AS DATE NO-UNDO.
  843. DEFINE VARIABLE AnzTg AS INTEGER NO-UNDO.
  844. DEFINE VARIABLE AnzHist AS INTEGER NO-UNDO.
  845. DEFINE VARIABLE cStern AS CHARACTER NO-UNDO.
  846. DEFINE VARIABLE HTotal AS DECIMAL NO-UNDO.
  847. DEFINE VARIABLE MTotal AS DECIMAL NO-UNDO.
  848. DEFINE VARIABLE HonMed AS LOG FORMAT "H/M" NO-UNDO.
  849. cVorlage = 'OffenePosten.xls'.
  850. cDokument = 'OffenePosten.xls'.
  851. cDaten = 'OffenePosten.txt'.
  852. cDateiName = cDokument + CHR(01) + cVorlage.
  853. RUN CREATEDATEI ( INPUT cDateiName ).
  854. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  855. cDokument = RETURN-VALUE.
  856. cDateiName = cDaten.
  857. RUN CREATEDATEI ( INPUT cDateiName ).
  858. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  859. cDaten = RETURN-VALUE.
  860. OUTPUT TO VALUE(cDaten) NO-MAP NO-CONVERT.
  861. GTotal = 0.
  862. HTotal = 0.
  863. MTotal = 0.
  864. IF T_perData THEN FDatum = F_BisDatum.
  865. ELSE FDatum = TODAY.
  866. FOR EACH tSelektion USE-INDEX tSelektion-k1 NO-LOCK
  867. BREAK BY tSelektion.Sort-1
  868. BY tSelektion.Sort-2:
  869. FIND Debop WHERE RECID(Debop) = tSelektion.id NO-LOCK.
  870. IF FIRST-OF ( tSelektion.Sort-2 ) THEN
  871. DO:
  872. FIND Debst USE-INDEX Debst-k1
  873. WHERE Debst.Firma = Debop.Firma
  874. AND Debst.Knr = Debop.Knr NO-LOCK NO-ERROR.
  875. cAdresse = STRING(Debst.Knr,'999999 ')
  876. + tSelektion.Adresse.
  877. fOffen = FALSE.
  878. END.
  879. ZahlBas = 0.
  880. ZahlFrw = 0.
  881. SkonBas = 0.
  882. SkonFrw = 0.
  883. IF T_perData THEN
  884. DO:
  885. ASSIGN
  886. ZDatum = ?
  887. AnzHist = 0.
  888. FOR EACH Debhi USE-INDEX Debhi-k3
  889. WHERE Debhi.Firma = Debop.Firma
  890. AND Debhi.Knr = Debop.Knr
  891. AND Debhi.Faknr = Debop.Faknr
  892. AND Debhi.Datum <= F_BisDatum
  893. /*
  894. AND NOT Debhi.Kte BEGINS 'KDI'
  895. */
  896. NO-LOCK:
  897. AnzHist = AnzHist + 1.
  898. IF Debhi.Soll <> 0 THEN NEXT.
  899. ZahlBas = ZahlBas + Debhi.Haben .
  900. ZahlFrw = ZahlFrw + Debhi.Haben_Frw .
  901. SkonBas = SkonBas + Debhi.Skonto .
  902. SkonFrw = SkonFrw + Debhi.Skonto_Frw.
  903. IF ZDatum = ? OR
  904. ZDatum < Debhi.Datum THEN ZDatum = Debhi.Datum.
  905. END.
  906. IF AnzHist = 0 THEN
  907. DO:
  908. FOR EACH Debza USE-INDEX Debza-k1
  909. WHERE Debza.Firma = Debop.Firma
  910. AND Debza.Knr = Debop.Knr
  911. AND Debza.Faknr = Debop.Faknr
  912. AND Debza.ZahDat <= F_BisDatum NO-LOCK:
  913. AnzHist = AnzHist + 1.
  914. ZahlBas = ZahlBas + Debza.ZahBetr .
  915. ZahlFrw = ZahlFrw + Debza.ZahBetr_Frw .
  916. SkonBas = SkonBas + Debza.Skonto .
  917. SkonFrw = SkonFrw + Debza.Skonto_Frw.
  918. IF ZDatum = ? OR
  919. ZDatum < Debza.ZahDat THEN ZDatum = Debza.ZahDat.
  920. END.
  921. END.
  922. IF AnzHist = 0 THEN
  923. ASSIGN
  924. SaldoBas = Debop.Saldo
  925. SaldoFrw = Debop.Saldo_Frw.
  926. ELSE
  927. ASSIGN
  928. SaldoBas = Debop.Fakbetr - ZahlBas - SkonBas
  929. SaldoFrw = Debop.Fakbetr_Frw - ZahlFrw - SkonFrw.
  930. END.
  931. ELSE
  932. DO:
  933. ZDatum = Debop.ZahDat .
  934. ZahlBas = Debop.ZahBetr .
  935. ZahlFrw = Debop.Zahbetr_FRW.
  936. SkonBas = Debop.Skonto .
  937. SkonFrw = Debop.Skonto_FRW .
  938. SaldoBas = Debop.Saldo .
  939. SaldoFrw = Debop.Saldo_Frw .
  940. /*
  941. IF ZahlBas <> 0 THEN SkonBas = SkonFrw * (ZahlBas / ZahlFrw).
  942. */
  943. END.
  944. IF SaldoBas = 0 THEN
  945. DO:
  946. IF LAST-OF ( tSelektion.Sort-2 ) AND
  947. fOffen THEN PUT CONTROL '£' CHR(10) '£' CHR(10).
  948. NEXT.
  949. END.
  950. IF cAdresse <> '' THEN
  951. DO:
  952. PUT CONTROL cAdresse '££££££££££££'
  953. STRING(Debst.Saldo_Frw,'->>>>>>>>9.99') '££££'
  954. STRING(Debst.Saldo ,'->>>>>>>>9.99') CHR(10).
  955. cAdresse = ''.
  956. END.
  957. AnzTg = FDatum - Debop.Faellig.
  958. IF AnzTg < 0 THEN AnzTg = 0.
  959. AnzTg = AnzTg + 29.
  960. AnzTg = (AnzTg - (AnzTg MOD 30)) / 30.
  961. cStern = FILL('*', AnzTg ).
  962. cStern = TRIM(SUBSTRING(cStern,01,05)).
  963. PUT CONTROL '£'
  964. STRING(Debop.Faknr ,'9999999') '£'
  965. STRING(Debop.FakDat ,'99.99.9999') '£'
  966. STRING(Debop.Faellig ,'99.99.9999') '£'.
  967. IF ZDatum <> ? THEN PUT CONTROL STRING(ZDatum,'99.99.9999').
  968. PUT CONTROL '££'.
  969. PUT CONTROL Debop.Kte '£'.
  970. PUT CONTROL Debop.Frw '£'
  971. STRING(Debop.Kurs ,'zzzz9.9999') '£'
  972. STRING(Debop.Fakbetr_Frw,'->>>>>>>>9.99') '£'
  973. STRING(ZahlFrw ,'->>>>>>>>9.99') '£'
  974. STRING(SkonFrw ,'->>>>>>>>9.99') '£'
  975. STRING(SaldoFrw ,'->>>>>>>>9.99') '£'
  976. STRING(Debop.Fakbetr ,'->>>>>>>>9.99') '£'
  977. STRING(ZahlBas ,'->>>>>>>>9.99') '£'
  978. STRING(SkonBas ,'->>>>>>>>9.99') '£'
  979. STRING(SaldoBas ,'->>>>>>>>9.99') '£'
  980. Debop.Konto '£'
  981. cStern '£'
  982. CHR(10).
  983. IF HonMed THEN HTotal = HTotal + SaldoBas.
  984. ELSE MTotal = MTotal + SaldoBas.
  985. GTotal[01] = GTotal[01] + SaldoFrw.
  986. GTotal[02] = GTotal[02] + SaldoBas.
  987. fOffen = TRUE.
  988. FIND FIRST tRekap USE-INDEX tRekap-k1
  989. WHERE tRekap.RecArt = 'Konto'
  990. AND tRekap.Feld = Debop.Konto NO-ERROR.
  991. IF NOT AVAILABLE tRekap THEN
  992. DO:
  993. CREATE tRekap.
  994. ASSIGN
  995. tRekap.RecArt = 'Konto'
  996. tRekap.Feld = Debop.Konto.
  997. END.
  998. ASSIGN
  999. tRekap.Betrag = tRekap.Betrag + SaldoBas
  1000. tRekap.Betrag_Frw = tRekap.Betrag_Frw + SaldoFrw.
  1001. FIND FIRST tRekap USE-INDEX tRekap-k1
  1002. WHERE tRekap.RecArt = 'Frw'
  1003. AND tRekap.Feld = Debop.Frw NO-ERROR.
  1004. IF NOT AVAILABLE tRekap THEN
  1005. DO:
  1006. CREATE tRekap.
  1007. ASSIGN
  1008. tRekap.RecArt = 'Frw'
  1009. tRekap.Feld = Debop.Frw.
  1010. END.
  1011. ASSIGN
  1012. tRekap.Betrag = tRekap.Betrag + SaldoBas
  1013. tRekap.Betrag_Frw = tRekap.Betrag_Frw + SaldoFrw.
  1014. FIND FIRST tRekap USE-INDEX tRekap-k1
  1015. WHERE tRekap.RecArt = 'Stern'
  1016. AND tRekap.Feld = cStern NO-ERROR.
  1017. IF NOT AVAILABLE tRekap THEN
  1018. DO:
  1019. CREATE tRekap.
  1020. ASSIGN
  1021. tRekap.RecArt = 'Stern'
  1022. tRekap.Feld = cStern.
  1023. END.
  1024. ASSIGN
  1025. tRekap.Betrag = tRekap.Betrag + SaldoBas
  1026. tRekap.Betrag_Frw = tRekap.Betrag_Frw + SaldoFrw.
  1027. IF LAST-OF ( tSelektion.Sort-2 ) AND
  1028. fOffen THEN PUT CONTROL '£' CHR(10) '£' CHR(10).
  1029. END.
  1030. PUT CONTROL '£££££Gesamttotal£££££££'
  1031. STRING(GTotal[01],'->>>>>>>>9.99') '££££'
  1032. STRING(GTotal[02],'->>>>>>>>9.99') CHR(10).
  1033. PUT CONTROL '£' CHR(10).
  1034. PUT CONTROL '£' CHR(10)
  1035. '£' CHR(10).
  1036. ja = TRUE.
  1037. FOR EACH tRekap USE-INDEX tRekap-k1
  1038. WHERE tRekap.RecArt = 'Konto':
  1039. IF ja THEN PUT CONTROL '£££££Kontorekapitulation£'.
  1040. ELSE PUT CONTROL '££££££'.
  1041. PUT CONTROL '££££££'
  1042. STRING(tRekap.Betrag_Frw,'->>>>>>>>9.99') '££££'
  1043. STRING(tRekap.Betrag ,'->>>>>>>>9.99') '£'
  1044. tRekap.Feld CHR(10).
  1045. ja = FALSE.
  1046. END.
  1047. PUT CONTROL '£' CHR(10) '£' CHR(10).
  1048. ja = TRUE.
  1049. FOR EACH tRekap USE-INDEX tRekap-k1
  1050. WHERE tRekap.RecArt = 'Frw':
  1051. IF ja THEN PUT CONTROL '£££££Rekapitulation nach Währung£'.
  1052. ELSE PUT CONTROL '££££££'.
  1053. PUT CONTROL '££££££'
  1054. STRING(tRekap.Betrag_Frw,'->>>>>>>>9.99') '££££'
  1055. STRING(tRekap.Betrag ,'->>>>>>>>9.99') '£'
  1056. tRekap.Feld CHR(10).
  1057. ja = FALSE.
  1058. END.
  1059. PUT CONTROL '£' CHR(10)
  1060. '£' CHR(10).
  1061. ja = TRUE.
  1062. FOR EACH tRekap USE-INDEX tRekap-k1
  1063. WHERE tRekap.RecArt = 'Stern':
  1064. IF ja THEN PUT CONTROL '£££££Rekapitulation nach Fälligkeit£'.
  1065. ELSE PUT CONTROL '££££££'.
  1066. IF tRekap.Feld = '' THEN cFeld = 'nicht fällig'.
  1067. ELSE
  1068. DO:
  1069. ix = ((LENGTH(tRekap.Feld) - 1) * 30) + 1.
  1070. IF LENGTH(tRekap.Feld) < 5 THEN
  1071. DO:
  1072. cFeld = STRING(ix,'>>>>9')
  1073. + ' - '
  1074. + STRING(LENGTH(tRekap.Feld) * 30)
  1075. + ' Tage'.
  1076. END.
  1077. ELSE
  1078. DO:
  1079. cFeld = 'ueber '
  1080. + STRING(ix,'>>>>9')
  1081. + ' Tage'.
  1082. END.
  1083. END.
  1084. PUT CONTROL '££££'
  1085. cFeld
  1086. '££'
  1087. STRING(tRekap.Betrag_Frw,'->>>>>>>>9.99') '££££'
  1088. STRING(tRekap.Betrag ,'->>>>>>>>9.99') '£'
  1089. tRekap.Feld CHR(10).
  1090. ja = FALSE.
  1091. END.
  1092. OUTPUT CLOSE.
  1093. excelAppl = DYNAMIC-FUNCTION('createExcel':U) NO-ERROR.
  1094. IF NOT VALID-HANDLE(excelAppl) THEN
  1095. DO:
  1096. DYNAMIC-FUNCTION('FEHLER', INPUT 1035) NO-ERROR.
  1097. RETURN.
  1098. END.
  1099. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
  1100. IF NOT ja THEN
  1101. DO:
  1102. DYNAMIC-FUNCTION('FEHLER', INPUT 1040) NO-ERROR.
  1103. DYNAMIC-FUNCTION('ReleaseExcel':U, INPUT excelAppl ) NO-ERROR.
  1104. RETURN NO-APPLY.
  1105. END.
  1106. cZelle = 'A6'.
  1107. excelAppl:Range(cZelle):SELECT.
  1108. excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten.
  1109. excelAppl:APPLICATION:RUN ( 'DateiEinfuegen' ).
  1110. RUN KOPF.
  1111. cZelle = 'A1'.
  1112. excelAppl:Range(cZelle):SELECT.
  1113. DYNAMIC-FUNCTION('ReleaseExcel':U, INPUT excelAppl ) NO-ERROR.
  1114. END PROCEDURE.
  1115. /* _UIB-CODE-BLOCK-END */
  1116. &ANALYZE-RESUME
  1117. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT fFrameWin
  1118. PROCEDURE REPORT :
  1119. /*------------------------------------------------------------------------------
  1120. Purpose:
  1121. Parameters: <none>
  1122. Notes:
  1123. ------------------------------------------------------------------------------*/
  1124. DEFINE VARIABLE cDatei AS CHARACTER NO-UNDO.
  1125. DEFINE VARIABLE cKey AS CHARACTER NO-UNDO.
  1126. DEFINE VARIABLE cKnr AS CHARACTER NO-UNDO.
  1127. DEFINE VARIABLE cFaknr AS CHARACTER NO-UNDO.
  1128. DEFINE VARIABLE cDatum AS CHARACTER NO-UNDO.
  1129. DEFINE VARIABLE cBetrag AS CHARACTER NO-UNDO.
  1130. DEFINE VARIABLE cKonto AS CHARACTER NO-UNDO.
  1131. DEFINE VARIABLE cFrw AS CHARACTER NO-UNDO.
  1132. DEFINE VARIABLE cSuchbe AS CHARACTER NO-UNDO.
  1133. DEFINE VARIABLE cAdresse AS CHARACTER NO-UNDO.
  1134. DEFINE VARIABLE cKurzAdr AS CHARACTER NO-UNDO.
  1135. DEFINE VARIABLE sKnr AS CHARACTER NO-UNDO.
  1136. DEFINE VARIABLE sFaknr AS CHARACTER NO-UNDO.
  1137. DEFINE VARIABLE sDatum AS CHARACTER NO-UNDO.
  1138. DEFINE VARIABLE sBetrag AS CHARACTER NO-UNDO.
  1139. DEFINE VARIABLE sKonto AS CHARACTER NO-UNDO.
  1140. DEFINE VARIABLE sFrw AS CHARACTER NO-UNDO.
  1141. DEFINE VARIABLE qHandle AS WIDGET-HANDLE NO-UNDO.
  1142. DEFINE VARIABLE bHandle AS WIDGET-HANDLE NO-UNDO.
  1143. DEFINE VARIABLE dHandle AS WIDGET-HANDLE NO-UNDO.
  1144. DEFINE VARIABLE fHandle AS WIDGET-HANDLE NO-UNDO.
  1145. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
  1146. DEFINE VARIABLE sSelektion AS CHARACTER NO-UNDO.
  1147. DEFINE VARIABLE fErst AS LOG NO-UNDO.
  1148. DO WITH FRAME {&FRAME-NAME}:
  1149. Btn_Faktura :SENSITIVE = FALSE.
  1150. Btn_Zahlung :SENSITIVE = FALSE.
  1151. Btn_Umsatz :SENSITIVE = FALSE.
  1152. Btn_OP :SENSITIVE = FALSE.
  1153. END.
  1154. SESSION:SET-WAIT-STATE('GENERAL').
  1155. RUN SELEKTION.
  1156. CASE Liste:
  1157. WHEN 1 THEN
  1158. DO:
  1159. cDatei = 'Debfa'.
  1160. cKnr = 'Debfa.Knr'.
  1161. cFaknr = 'Debfa.Faknr'.
  1162. cDatum = 'Debfa.FakDat'.
  1163. cBetrag = 'Debfa.FakBetr_Frw'.
  1164. cKonto = 'Debfa.Konto'.
  1165. cFrw = 'Debfa.Frw'.
  1166. CASE R_Sort:
  1167. WHEN 1 THEN
  1168. cKey = 'Debfa-k2'.
  1169. WHEN 2 THEN
  1170. cKey = 'Debfa-k1'.
  1171. WHEN 3 THEN
  1172. cKey = 'Debfa-k1'.
  1173. WHEN 4 THEN
  1174. cKey = 'Debfa-k3'.
  1175. END CASE.
  1176. END.
  1177. WHEN 2 THEN
  1178. DO:
  1179. cDatei = 'Debza'.
  1180. cKnr = 'Debza.Knr'.
  1181. cFaknr = 'Debza.Faknr'.
  1182. cDatum = 'Debza.ZahDat'.
  1183. cBetrag = 'Debza.ZahBetr_Frw'.
  1184. cKonto = 'Debza.Konto'.
  1185. cFrw = 'Debza.Frw'.
  1186. CASE R_Sort:
  1187. WHEN 1 THEN
  1188. cKey = 'Debza-k2'.
  1189. WHEN 2 THEN
  1190. cKey = 'Debza-k1'.
  1191. WHEN 3 THEN
  1192. cKey = 'Debza-k1'.
  1193. WHEN 4 THEN
  1194. cKey = 'Debza-k3'.
  1195. END CASE.
  1196. END.
  1197. WHEN 3 THEN
  1198. DO:
  1199. cDatei = 'Debwu'.
  1200. cKnr = 'Debwu.Knr'.
  1201. cFaknr = 'Debwu.Faknr'.
  1202. cDatum = 'Debwu.Datum'.
  1203. cBetrag = 'Debwu.Betrag_Frw'.
  1204. cKonto = 'Debwu.Konto'.
  1205. cFrw = 'Debwu.Frw'.
  1206. CASE R_Sort:
  1207. WHEN 1 THEN
  1208. cKey = 'Debwu-k2'.
  1209. WHEN 2 THEN
  1210. cKey = 'Debwu-k1'.
  1211. WHEN 3 THEN
  1212. cKey = 'Debwu-k1'.
  1213. WHEN 4 THEN
  1214. cKey = 'Debwu-k3'.
  1215. END CASE.
  1216. END.
  1217. WHEN 4 THEN
  1218. DO:
  1219. cDatei = 'Debop'.
  1220. cKnr = 'Debop.Knr'.
  1221. cFaknr = 'Debop.Faknr'.
  1222. cDatum = 'Debop.FakDat'.
  1223. cBetrag = 'Debop.Fakbetr_Frw'.
  1224. cKonto = 'Debop.Konto'.
  1225. cFrw = 'Debop.Frw'.
  1226. IF R_Sort = 1 THEN R_Sort = 2.
  1227. IF R_Sort = 4 THEN R_Sort = 2.
  1228. CASE R_Sort:
  1229. WHEN 2 THEN
  1230. cKey = 'Debop-k1'.
  1231. WHEN 3 THEN
  1232. cKey = 'Debop-k1'.
  1233. END CASE.
  1234. END.
  1235. END CASE.
  1236. CREATE QUERY qHandle.
  1237. CREATE BUFFER bHandle FOR TABLE cDatei.
  1238. qHandle:SET-BUFFERS(bHandle).
  1239. sSelektion = 'FOR EACH ' + cDatei + ' USE-INDEX ' + cKey
  1240. + ' WHERE ' + cDatei + '.Firma = "' + D1Firma + '" '
  1241. + ' AND ' + cKnr + ' >= ' + STRING(F_VonKnr)
  1242. + ' AND ' + cKnr + ' <= ' + STRING(F_BisKnr)
  1243. + ' AND ' + cFaknr + ' >= ' + STRING(F_VonFaknr)
  1244. + ' AND ' + cFaknr + ' <= ' + STRING(F_BisFaknr)
  1245. + ' AND ' + cDatum + ' >= ' + STRING(F_VonDatum)
  1246. + ' AND ' + cDatum + ' <= ' + STRING(F_BisDatum)
  1247. + ' AND ' + cBetrag + ' >= ' + STRING(F_VonBetrag)
  1248. + ' AND ' + cBetrag + ' <= ' + STRING(F_BisBetrag)
  1249. + ' AND ' + cKonto + ' >= "' + F_VonKonto + '"'
  1250. + ' AND ' + cKonto + ' <= "' + F_BisKonto + '"'
  1251. + ' AND ' + cFrw + ' BEGINS "' + Frw + '"'
  1252. + ' NO-LOCK: '.
  1253. qHandle:QUERY-PREPARE(sSelektion).
  1254. qHandle:QUERY-OPEN().
  1255. EMPTY TEMP-TABLE tSelektion.
  1256. EMPTY TEMP-TABLE tRekap .
  1257. fErst = TRUE.
  1258. REPEAT:
  1259. IF fErst THEN qHandle:GET-FIRST(NO-LOCK).
  1260. ELSE qHandle:GET-NEXT (NO-LOCK).
  1261. IF qHandle:QUERY-OFF-END THEN LEAVE.
  1262. dHandle = qHandle:GET-BUFFER-HANDLE().
  1263. cFeld = ENTRY(2, cKnr , '.').
  1264. fHandle = dHandle:BUFFER-FIELD(cFeld).
  1265. sKnr = fHandle:BUFFER-VALUE().
  1266. cFeld = ENTRY(2, cFaknr , '.').
  1267. fHandle = dHandle:BUFFER-FIELD(cFeld).
  1268. sFaknr = fHandle:BUFFER-VALUE().
  1269. cFeld = ENTRY(2, cDatum , '.').
  1270. fHandle = dHandle:BUFFER-FIELD(cFeld).
  1271. sDatum = fHandle:BUFFER-VALUE().
  1272. cFeld = ENTRY(2, cBetrag, '.').
  1273. fHandle = dHandle:BUFFER-FIELD(cFeld).
  1274. sBetrag = fHandle:BUFFER-VALUE().
  1275. cFeld = ENTRY(2, cKonto , '.').
  1276. fHandle = dHandle:BUFFER-FIELD(cFeld).
  1277. sKonto = fHandle:BUFFER-VALUE().
  1278. cFeld = ENTRY(2, cFrw , '.').
  1279. fHandle = dHandle:BUFFER-FIELD(cFeld).
  1280. sFrw = fHandle:BUFFER-VALUE().
  1281. CREATE tSelektion.
  1282. ASSIGN
  1283. tSelektion.id = dHandle:RECID
  1284. tSelektion.Knr = INTEGER(sKnr)
  1285. tSelektion.Faknr = INTEGER(sFaknr)
  1286. tSelektion.Datum = DATE (sDatum)
  1287. tSelektion.Betrag = DECIMAL(sBetrag)
  1288. tSelektion.Konto = sKonto
  1289. tSelektion.Frw = sFrw.
  1290. fErst = FALSE.
  1291. END.
  1292. qHandle:QUERY-CLOSE().
  1293. DELETE OBJECT bHandle.
  1294. DELETE OBJECT qHandle.
  1295. FOR EACH tSelektion BREAK BY tSelektion.Knr:
  1296. IF FIRST-OF ( tSelektion.Knr ) THEN
  1297. DO:
  1298. FIND Adresse USE-INDEX Adresse-k1
  1299. WHERE Adresse.Firma = AdFirma
  1300. AND Adresse.Knr = tSelektion.Knr NO-LOCK.
  1301. cSuchbe = Adresse.Suchbe.
  1302. cAdresse = Adresse.Anzeig_Br.
  1303. IF Adresse.Firma1 <> '' THEN
  1304. DO:
  1305. cKurzAdr = TRIM(Adresse.Firma1 + ' ' + Adresse.Firma2).
  1306. END.
  1307. ELSE
  1308. DO:
  1309. cKurzAdr = TRIM(Adresse.Name + ' ' + Adresse.Vorname).
  1310. END.
  1311. cKurzAdr = cKurzAdr + ', '
  1312. + Adresse.Lkz + ' '
  1313. + Adresse.Plz + ' '
  1314. + Adresse.Ort.
  1315. END.
  1316. ASSIGN
  1317. tSelektion.Adresse = cAdresse
  1318. tSelektion.KurzAdr = cKurzAdr.
  1319. CASE R_Sort:
  1320. WHEN 1 THEN
  1321. ASSIGN
  1322. tSelektion.Sort-1 = STRING(tSelektion.Faknr,'9999999')
  1323. tSelektion.Sort-3 = STRING(tSelektion.Knr ,'999999').
  1324. WHEN 2 THEN
  1325. ASSIGN
  1326. tSelektion.Sort-1 = STRING(tSelektion.Knr ,'999999')
  1327. tSelektion.Sort-3 = STRING(tSelektion.Faknr,'9999999').
  1328. WHEN 3 THEN
  1329. ASSIGN
  1330. tSelektion.Sort-1 = cSuchbe
  1331. tSelektion.Sort-2 = STRING(tSelektion.Knr ,'999999')
  1332. tSelektion.Sort-3 = STRING(tSelektion.Faknr,'9999999').
  1333. WHEN 4 THEN
  1334. ASSIGN
  1335. tSelektion.Sort-1 = STRING(INTEGER(tSelektion.Datum),'99999999')
  1336. tSelektion.Sort-2 = STRING(tSelektion.Knr ,'999999')
  1337. tSelektion.Sort-3 = STRING(tSelektion.Faknr,'9999999').
  1338. END CASE.
  1339. END.
  1340. DO WHILE TRUE:
  1341. FIND FIRST tSelektion NO-ERROR.
  1342. IF NOT AVAILABLE tSelektion THEN
  1343. DO:
  1344. DYNAMIC-FUNCTION('FEHLER', INPUT 1112) NO-ERROR.
  1345. LEAVE.
  1346. END.
  1347. CASE Liste:
  1348. WHEN 1 THEN RUN FAKTURA_JOURNAL.
  1349. WHEN 2 THEN RUN ZAHLUNGS_JOURNAL.
  1350. WHEN 3 THEN RUN UMSATZSTEUER_JOURNAL.
  1351. WHEN 4 THEN RUN OFFENE_POSTEN.
  1352. END CASE.
  1353. LEAVE.
  1354. END.
  1355. DO WITH FRAME {&FRAME-NAME}:
  1356. Btn_Faktura :SENSITIVE = TRUE .
  1357. Btn_Zahlung :SENSITIVE = TRUE .
  1358. Btn_Umsatz :SENSITIVE = TRUE .
  1359. Btn_OP :SENSITIVE = TRUE .
  1360. SESSION:SET-WAIT-STATE('').
  1361. APPLY 'ENTRY' TO F_VonKnr.
  1362. RETURN NO-APPLY.
  1363. END.
  1364. END PROCEDURE.
  1365. /* _UIB-CODE-BLOCK-END */
  1366. &ANALYZE-RESUME
  1367. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SELEKTION fFrameWin
  1368. PROCEDURE SELEKTION :
  1369. /*------------------------------------------------------------------------------
  1370. Purpose:
  1371. Parameters: <none>
  1372. Notes:
  1373. ------------------------------------------------------------------------------*/
  1374. DO WITH FRAME {&FRAME-NAME}:
  1375. ASSIGN {&List-6}.
  1376. Frw = CB_Frw:SCREEN-VALUE.
  1377. IF F_VonKnr = 0 AND
  1378. F_BisKnr = 0 THEN F_BisKnr = 999999.
  1379. IF F_BisKnr < F_VonKnr THEN F_BisKnr = F_VonKnr.
  1380. IF F_VonFaknr = 0 AND
  1381. F_BisFaknr = 0 THEN F_BisFaknr = 9999999.
  1382. IF F_BisFaknr < F_VonFaknr THEN F_BisFaknr = F_VonFaknr.
  1383. IF F_VonDatum = ? AND
  1384. F_BisDatum = ? THEN
  1385. ASSIGN F_VonDatum = DATE('01/01/1901')
  1386. F_BisDatum = DATE('12/31/9999').
  1387. IF F_BisDatum < F_VonDatum THEN F_BisDatum = F_VonDatum.
  1388. IF F_VonKonto = '' AND
  1389. F_BisKonto = '' THEN F_BisKonto = 'zzzzzzzzzzzz'.
  1390. IF F_BisKonto < F_VonKonto THEN F_BisKonto = F_VonKonto.
  1391. IF Frw = '...' THEN Frw = ''.
  1392. DISPLAY {&List-6}.
  1393. DO WITH FRAME {&FRAME-NAME}:
  1394. PUT-KEY-VALUE SECTION 'FwDebJournale'
  1395. KEY 'Knr'
  1396. VALUE F_VonKnr:SCREEN-VALUE + ';' +
  1397. F_BisKnr:SCREEN-VALUE NO-ERROR.
  1398. PUT-KEY-VALUE SECTION 'FwDebJournale'
  1399. KEY 'Faknr'
  1400. VALUE F_VonFaknr:SCREEN-VALUE + ';' +
  1401. F_BisFaknr:SCREEN-VALUE NO-ERROR.
  1402. PUT-KEY-VALUE SECTION 'FwDebJournale'
  1403. KEY 'Datum'
  1404. VALUE F_VonDatum:SCREEN-VALUE + ';' +
  1405. F_BisDatum:SCREEN-VALUE NO-ERROR.
  1406. PUT-KEY-VALUE SECTION 'FwDebJournale'
  1407. KEY 'Betrag'
  1408. VALUE F_VonBetrag:SCREEN-VALUE + ';' +
  1409. F_BisBetrag:SCREEN-VALUE NO-ERROR.
  1410. PUT-KEY-VALUE SECTION 'FwDebJournale'
  1411. KEY 'Konto'
  1412. VALUE F_VonKonto:SCREEN-VALUE + ';' +
  1413. F_BisKonto:SCREEN-VALUE NO-ERROR.
  1414. PUT-KEY-VALUE SECTION 'FwDebJournale'
  1415. KEY 'Frw'
  1416. VALUE CB_Frw:SCREEN-VALUE NO-ERROR.
  1417. PUT-KEY-VALUE SECTION 'FwDebJournale'
  1418. KEY 'Sort'
  1419. VALUE R_Sort:SCREEN-VALUE NO-ERROR.
  1420. END.
  1421. END.
  1422. END PROCEDURE.
  1423. /* _UIB-CODE-BLOCK-END */
  1424. &ANALYZE-RESUME
  1425. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE UMSATZSTEUER_JOURNAL fFrameWin
  1426. PROCEDURE UMSATZSTEUER_JOURNAL :
  1427. /*------------------------------------------------------------------------------
  1428. Purpose:
  1429. Parameters: <none>
  1430. Notes:
  1431. ------------------------------------------------------------------------------*/
  1432. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  1433. DEFINE VARIABLE ja AS LOG NO-UNDO.
  1434. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  1435. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
  1436. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1437. DEFINE VARIABLE GTotal AS DECIMAL EXTENT 5 NO-UNDO.
  1438. DEFINE VARIABLE Cd AS INTEGER NO-UNDO.
  1439. DEFINE VARIABLE Ans AS DECIMAL NO-UNDO.
  1440. DEFINE VARIABLE cKonto AS CHARACTER NO-UNDO.
  1441. DEFINE VARIABLE cInkl AS CHARACTER NO-UNDO.
  1442. DEFINE VARIABLE fErst AS LOG NO-UNDO.
  1443. DEFINE VARIABLE xx AS INTEGER NO-UNDO.
  1444. DEFINE VARIABLE nMwst AS DECIMAL NO-UNDO.
  1445. DEFINE BUFFER BRekap FOR tRekap.
  1446. cVorlage = 'MwStJournal.xls'.
  1447. cDokument = 'MwStJournal.xls'.
  1448. cDaten = 'MwStJournal.txt'.
  1449. cDateiName = cDokument + CHR(01) + cVorlage.
  1450. RUN CREATEDATEI ( INPUT cDateiName ).
  1451. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1452. cDokument = RETURN-VALUE.
  1453. cDateiName = cDaten.
  1454. RUN CREATEDATEI ( INPUT cDateiName ).
  1455. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1456. cDaten = RETURN-VALUE.
  1457. OUTPUT TO VALUE(cDaten) NO-MAP NO-CONVERT.
  1458. GTotal = 0.
  1459. FOR EACH tSelektion USE-INDEX tSelektion-k1 NO-LOCK:
  1460. FIND Debwu WHERE RECID(Debwu) = tSelektion.id NO-LOCK.
  1461. FIND Debop USE-INDEX Debop-k1
  1462. WHERE Debop.Firma = Debwu.Firma
  1463. AND Debop.Knr = Debwu.Knr
  1464. AND Debop.Faknr = Debwu.Faknr NO-LOCK NO-ERROR.
  1465. cString = Debwu.Konto.
  1466. fErst = TRUE.
  1467. xx = 0.
  1468. EMPTY TEMP-TABLE TZeile .
  1469. EMPTY TEMP-TABLE tInterf.
  1470. FOR EACH Interf NO-LOCK USE-INDEX Interf-k1
  1471. WHERE Interf.Firma = FBFirma
  1472. AND Interf.TrNr1 = Debwu.TrNr1
  1473. AND Interf.TrNr2 = Debwu.TrNr2
  1474. AND Interf.BEBU = 0 :
  1475. /* AND Interf.BEBU_Art = 0 : */
  1476. /* AND Interf.MWST_Art < 5 */
  1477. /* AND (Interf.Kto2 BEGINS '1' OR */
  1478. /* Interf.Kto2 BEGINS '2'): */
  1479. CREATE tInterf.
  1480. BUFFER-COPY Interf TO tInterf.
  1481. END.
  1482. xx = xx + 1.
  1483. CREATE TZeile.
  1484. ASSIGN
  1485. TZeile.Nummer = xx
  1486. TZeile.Feld[01] = STRING(Debwu.Knr,'999999')
  1487. TZeile.Feld[02] = tSelektion.KurzAdr
  1488. TZeile.Feld[04] = STRING(Debwu.Faknr,'9999999')
  1489. TZeile.Feld[05] = STRING(Debwu.Datum,'99.99.9999')
  1490. TZeile.Feld[06] = Debwu.Frw
  1491. TZeile.Feld[07] = TRIM(STRING(Debwu.Kurs,'zzzz9.9999'))
  1492. TZeile.Feld[08] = TRIM(STRING(Debwu.Betrag_Frw,'->>>>>>>>9.99'))
  1493. TZeile.Feld[09] = TRIM(STRING(Debwu.Betrag ,'->>>>>>>>9.99')).
  1494. DO ix = 1 TO 11:
  1495. IF Debwu.Wustpfl[ix] = 0 THEN NEXT.
  1496. IF NOT fErst THEN
  1497. DO:
  1498. FIND BZeile WHERE BZeile.Nummer = 1.
  1499. xx = xx + 1.
  1500. CREATE TZeile.
  1501. BUFFER-COPY BZeile EXCEPT Nummer TO TZeile
  1502. ASSIGN
  1503. TZeile.Nummer = xx
  1504. TZeile.Feld[08] = ''
  1505. TZeile.Feld[09] = ''
  1506. TZeile.Feld[15] = ''.
  1507. END.
  1508. ASSIGN
  1509. TZeile.Feld[10] = TRIM(STRING(Debwu.WustPfl[ix],'->>>>>>>>9.99'))
  1510. TZeile.Feld[11] = TRIM(STRING(Debwu.Wust [ix],'->>>>>>>>9.99'))
  1511. TZeile.Feld[12] = TRIM(STRING(ix,'z9'))
  1512. TZeile.Feld[13] = cString.
  1513. FIND FIRST tInterf NO-ERROR.
  1514. IF AVAILABLE tInterf THEN
  1515. DO:
  1516. ASSIGN
  1517. TZeile.Feld[13] = tInterf.Kto1
  1518. TZeile.Feld[14] = tInterf.Kto2
  1519. TZeile.Feld[15] = TRIM(STRING(tInterf.Betrag_Frw,'->>>>>>>>>9.99')).
  1520. DELETE tInterf.
  1521. END.
  1522. fErst = FALSE.
  1523. GTotal[03] = GTotal[03] + Debwu.Wustpfl[ix].
  1524. GTotal[04] = GTotal[04] + Debwu.Wust [ix].
  1525. cString = ''.
  1526. END.
  1527. FOR EACH tInterf:
  1528. FIND BZeile WHERE BZeile.Nummer = 1 NO-ERROR.
  1529. xx = xx + 1.
  1530. CREATE TZeile.
  1531. BUFFER-COPY BZeile EXCEPT Nummer TO TZeile
  1532. ASSIGN
  1533. TZeile.Nummer = xx
  1534. TZeile.Feld[08] = ''
  1535. TZeile.Feld[09] = ''
  1536. TZeile.Feld[10] = ''
  1537. TZeile.Feld[11] = ''
  1538. TZeile.Feld[12] = ''
  1539. TZeile.Feld[13] = ''
  1540. TZeile.Feld[14] = ''
  1541. TZeile.Feld[15] = ''.
  1542. ASSIGN
  1543. TZeile.Feld[13] = tInterf.Kto1
  1544. TZeile.Feld[14] = tInterf.Kto2
  1545. TZeile.Feld[15] = STRING(tInterf.Betrag_Frw,'->>>>>>>>>9.99').
  1546. DELETE tInterf.
  1547. END.
  1548. FOR EACH TZeile:
  1549. PUT CONTROL '£'
  1550. TZeile.Feld[01] '£'
  1551. TZeile.Feld[02] '£'
  1552. TZeile.Feld[03] '£'
  1553. TZeile.Feld[04] '£'
  1554. TZeile.Feld[05] '£'
  1555. TZeile.Feld[06] '£'
  1556. TZeile.Feld[07] '£'
  1557. TZeile.Feld[08] '£'
  1558. TZeile.Feld[09] '£'
  1559. TZeile.Feld[10] '£'
  1560. TZeile.Feld[11] '£'
  1561. TZeile.Feld[12] '£'
  1562. TZeile.Feld[13] '£'
  1563. TZeile.Feld[14] '£'
  1564. TZeile.Feld[15] CHR(10).
  1565. END.
  1566. GTotal[01] = GTotal[01] + Debwu.Betrag_Frw.
  1567. GTotal[02] = GTotal[02] + Debwu.Betrag .
  1568. DO ix = 1 TO 11:
  1569. IF Debwu.Wustpfl[ix] = 0 THEN NEXT.
  1570. cFeld = STRING(ix,'99 ')
  1571. + STRING(Debop.FakWPro[ix],'99.99').
  1572. FIND FIRST tRekap USE-INDEX tRekap-k1
  1573. WHERE tRekap.RecArt = 'MWST'
  1574. AND tRekap.Feld = cFeld NO-ERROR.
  1575. IF NOT AVAILABLE tRekap THEN
  1576. DO:
  1577. CREATE tRekap.
  1578. ASSIGN
  1579. tRekap.RecArt = 'MWST'
  1580. tRekap.Feld = cFeld
  1581. tRekap.Inkl = Debop.Fakincl[ix].
  1582. END.
  1583. IF Debop.Fakincl[ix] THEN nMwst = Debwu.Wustpfl[ix] * Debop.FakWPro[ix] / (100 + Debop.FakWPro[ix]).
  1584. ELSE nMwst = Debwu.Wust [ix].
  1585. ASSIGN
  1586. tRekap.MwstPfli = tRekap.MwstPfli + Debwu.Wustpfl[ix] - (IF tRekap.Inkl THEN nMwst ELSE 0.00)
  1587. tRekap.MwstBetr = tRekap.MwstBetr + nMwst.
  1588. END.
  1589. END.
  1590. FOR EACH tRekap WHERE tRekap.RecArt = 'MWST':
  1591. Cd = INTEGER(SUBSTRING(tRekap.Feld,01,02)).
  1592. Ans = DECIMAL(SUBSTRING(tRekap.Feld,03,05)).
  1593. FIND LAST MWStAns USE-INDEX MWStAns-k1
  1594. WHERE MWStAns.MWST_Cd = Cd
  1595. AND MWSTAns.Datum <= TODAY NO-LOCK NO-ERROR.
  1596. cFeld = STRING(Cd ,'99')
  1597. + STRING(MWSTAns.Konto,'x(12)')
  1598. + STRING(Ans ,'99.99')
  1599. + STRING(MWSTAns.incl ,'j/n').
  1600. FIND FIRST BRekap USE-INDEX tRekap-k1
  1601. WHERE BRekap.RecArt = 'MWSTKTO'
  1602. AND BRekap.Feld = cFeld NO-ERROR.
  1603. IF NOT AVAILABLE BRekap THEN
  1604. DO:
  1605. CREATE BRekap.
  1606. ASSIGN
  1607. BRekap.RecArt = 'MWSTKTO'
  1608. BRekap.Feld = cFeld.
  1609. END.
  1610. ASSIGN
  1611. BRekap.MwstPfli = BRekap.MwstPfli + tRekap.MwstPfli
  1612. BRekap.MwstBetr = BRekap.MwstBetr + tRekap.MwstBetr.
  1613. END.
  1614. PUT CONTROL '£££Gesamttotal£'
  1615. '££££'
  1616. STRING(GTotal[01],'->>>>>>>>9.99') '£'
  1617. STRING(GTotal[02],'->>>>>>>>9.99') '£'
  1618. STRING(GTotal[03],'->>>>>>>>9.99') '£'
  1619. STRING(GTotal[04],'->>>>>>>>9.99') CHR(10).
  1620. PUT CONTROL '£' CHR(10)
  1621. '£' CHR(10).
  1622. GTotal = 0.
  1623. ja = TRUE.
  1624. /* FOR EACH tRekap USE-INDEX tRekap-k1 */
  1625. /* WHERE tRekap.RecArt = 'MWST': */
  1626. /* IF ja THEN PUT CONTROL '£££MwSt-Rekapitulation£'. */
  1627. /* ELSE PUT CONTROL '££££'. */
  1628. /* Cd = INTEGER(SUBSTRING(tRekap.Feld,01,02)). */
  1629. /* Ans = DECIMAL(SUBSTRING(tRekap.Feld,04,05)). */
  1630. /* cString = STRING(Cd ,'z9') */
  1631. /* + ' / ' */
  1632. /* + STRING(Ans,'zz9.99% '). */
  1633. /* IF tRekap.MwstBetr = 0 THEN cString = cString + ' inkl'. */
  1634. /* ELSE cString = cString + ' exkl'. */
  1635. /* IF tRekap.MwstBetr = 0 THEN DO: */
  1636. /* tRekap.MwstBetr = tRekap.MwstPfli * Ans / (100 + Ans). */
  1637. /* tRekap.MwstBetr = tRekap.MwstBetr - tRekap.MwstBetr. */
  1638. /* END. */
  1639. /* GTotal[01] = GTotal[01] + tRekap.MwstPfli. */
  1640. /* GTotal[02] = GTotal[02] + tRekap.MwstBetr. */
  1641. /* PUT CONTROL '£££' */
  1642. /* cString '£££' */
  1643. /* STRING(tRekap.MwstPfli ,'->>>>>>>>9.99') '£' */
  1644. /* STRING(tRekap.MwstBetr ,'->>>>>>>>9.99') CHR(10). */
  1645. /* ja = FALSE. */
  1646. /* END. */
  1647. /* PUT CONTROL '£' CHR(10). */
  1648. ja = TRUE.
  1649. FOR EACH tRekap USE-INDEX tRekap-k1
  1650. WHERE tRekap.RecArt = 'MWSTKTO':
  1651. IF ja THEN PUT CONTROL '££MwSt-Konto/Ansatz-Rekapitulation££'.
  1652. ELSE PUT CONTROL '££££'.
  1653. Cd = INTEGER(SUBSTRING(tRekap.Feld,01,02)).
  1654. cKonto = TRIM (SUBSTRING(tRekap.Feld,03,12)).
  1655. Ans = DECIMAL(SUBSTRING(tRekap.Feld,15,05)).
  1656. cInkl = TRIM (SUBSTRING(tRekap.Feld,20,01)).
  1657. FIND LAST MwstAns NO-LOCK
  1658. WHERE MwstAns.Mwst_Cd = Cd
  1659. AND MwstAns.Ansatz = Ans NO-ERROR.
  1660. cString = STRING(Cd,'z9 ')
  1661. + cKonto
  1662. + ' / '
  1663. + MwstAns.Bez.
  1664. IF tRekap.MwstBetr = 0 THEN
  1665. DO:
  1666. tRekap.MwstBetr = tRekap.MwstPfli * Ans / (100 + Ans).
  1667. tRekap.MwstBetr = tRekap.MwstBetr - tRekap.MwstBetr.
  1668. END.
  1669. ASSIGN
  1670. GTotal[01] = GTotal[01] + tRekap.MwstPfli
  1671. GTotal[02] = GTotal[02] + tRekap.MwstBetr.
  1672. PUT CONTROL '£'
  1673. cString '£££££'
  1674. STRING(tRekap.MwstPfli ,'->>>>>>>>9.99') '£'
  1675. STRING(tRekap.MwstBetr ,'->>>>>>>>9.99') CHR(10).
  1676. ja = FALSE.
  1677. END.
  1678. PUT CONTROL '£' CHR(10).
  1679. PUT CONTROL '£££Gesamttotal£'
  1680. '££££££'
  1681. STRING(GTotal[01],'->>>>>>>>9.99') '£'
  1682. STRING(GTotal[02],'->>>>>>>>9.99') CHR(10).
  1683. OUTPUT CLOSE.
  1684. excelAppl = DYNAMIC-FUNCTION('createExcel':U) NO-ERROR.
  1685. IF NOT VALID-HANDLE(excelAppl) THEN
  1686. DO:
  1687. DYNAMIC-FUNCTION('FEHLER', INPUT 1035) NO-ERROR.
  1688. RETURN.
  1689. END.
  1690. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
  1691. IF NOT ja THEN
  1692. DO:
  1693. DYNAMIC-FUNCTION('FEHLER', INPUT 1040) NO-ERROR.
  1694. DYNAMIC-FUNCTION('ReleaseExcel':U, INPUT excelAppl ) NO-ERROR.
  1695. RETURN NO-APPLY.
  1696. END.
  1697. cZelle = 'A6'.
  1698. excelAppl:Range(cZelle):SELECT.
  1699. excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten.
  1700. excelAppl:APPLICATION:RUN ( 'DateiEinfuegen' ).
  1701. RUN KOPF.
  1702. cZelle = 'A1'.
  1703. excelAppl:Range(cZelle):SELECT.
  1704. DYNAMIC-FUNCTION('ReleaseExcel':U, INPUT excelAppl ) NO-ERROR.
  1705. END PROCEDURE.
  1706. /* _UIB-CODE-BLOCK-END */
  1707. &ANALYZE-RESUME
  1708. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ZAHLUNGS_JOURNAL fFrameWin
  1709. PROCEDURE ZAHLUNGS_JOURNAL :
  1710. /*------------------------------------------------------------------------------
  1711. Purpose:
  1712. Parameters: <none>
  1713. Notes:
  1714. ------------------------------------------------------------------------------*/
  1715. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  1716. DEFINE VARIABLE ja AS LOG NO-UNDO.
  1717. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  1718. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
  1719. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1720. DEFINE VARIABLE GTotal AS DECIMAL EXTENT 5 NO-UNDO.
  1721. DEFINE VARIABLE Cd AS INTEGER NO-UNDO.
  1722. DEFINE VARIABLE Ans AS DECIMAL NO-UNDO.
  1723. cVorlage = 'ZahlungsJournal.xls'.
  1724. cDokument = 'ZahlungsJournal.xls'.
  1725. cDaten = 'ZahlungsJournal.txt'.
  1726. cDateiName = cDokument + CHR(01) + cVorlage.
  1727. RUN CREATEDATEI ( INPUT cDateiName ).
  1728. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1729. cDokument = RETURN-VALUE.
  1730. cDateiName = cDaten.
  1731. RUN CREATEDATEI ( INPUT cDateiName ).
  1732. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1733. cDaten = RETURN-VALUE.
  1734. OUTPUT TO VALUE(cDaten) NO-MAP NO-CONVERT.
  1735. GTotal = 0.
  1736. FOR EACH tSelektion USE-INDEX tSelektion-k1 NO-LOCK:
  1737. FIND Debza WHERE RECID(Debza) = tSelektion.id NO-LOCK.
  1738. FIND Debop USE-INDEX Debop-k1
  1739. WHERE Debop.Firma = Debza.Firma
  1740. AND Debop.Knr = Debza.Knr
  1741. AND Debop.Faknr = Debza.Faknr NO-LOCK NO-ERROR.
  1742. PUT CONTROL '£'
  1743. STRING(Debza.Knr ,'999999') '£'
  1744. tSelektion.Adresse '££'
  1745. STRING(Debza.Faknr ,'9999999') '£'
  1746. STRING(Debza.ZahDat ,'99.99.9999') '£'
  1747. Debza.Kte '£'
  1748. Debza.Frw '£'
  1749. STRING(Debza.Kurs ,'zzzz9.9999') '£'
  1750. STRING(Debza.ZahBetr_Frw,'->>>>>>>>9.99') '£'
  1751. STRING(Debza.ZahBetr ,'->>>>>>>>9.99') '£'
  1752. STRING(Debza.Skonto_Frw ,'->>>>>>>>9.99') '£'
  1753. STRING(Debza.Skonto ,'->>>>>>>>9.99') '£'
  1754. Debza.Konto CHR(10).
  1755. GTotal[01] = GTotal[01] + Debza.ZahBetr_Frw.
  1756. GTotal[02] = GTotal[02] + Debza.ZahBetr .
  1757. GTotal[03] = GTotal[03] + Debza.Skonto_Frw .
  1758. GTotal[04] = GTotal[04] + Debza.Skonto .
  1759. FIND FIRST tRekap USE-INDEX tRekap-k1
  1760. WHERE tRekap.RecArt = 'Konto'
  1761. AND tRekap.Feld = Debza.Konto NO-ERROR.
  1762. IF NOT AVAILABLE tRekap THEN
  1763. DO:
  1764. CREATE tRekap.
  1765. ASSIGN
  1766. tRekap.RecArt = 'Konto'
  1767. tRekap.Feld = Debza.Konto.
  1768. END.
  1769. ASSIGN
  1770. tRekap.Betrag = tRekap.Betrag + Debza.ZahBetr
  1771. tRekap.Betrag_Frw = tRekap.Betrag_Frw + Debza.ZahBetr_Frw
  1772. tRekap.Skonto = tRekap.Skonto + Debza.Skonto
  1773. tRekap.Skonto_Frw = tRekap.Skonto_Frw + Debza.Skonto_Frw.
  1774. FIND FIRST tRekap USE-INDEX tRekap-k1
  1775. WHERE tRekap.RecArt = 'Frw'
  1776. AND tRekap.Feld = Debza.Frw NO-ERROR.
  1777. IF NOT AVAILABLE tRekap THEN
  1778. DO:
  1779. CREATE tRekap.
  1780. ASSIGN
  1781. tRekap.RecArt = 'Frw'
  1782. tRekap.Feld = Debza.Frw.
  1783. END.
  1784. ASSIGN
  1785. tRekap.Betrag = tRekap.Betrag + Debza.ZahBetr
  1786. tRekap.Betrag_Frw = tRekap.Betrag_Frw + Debza.ZahBetr_Frw
  1787. tRekap.Skonto = tRekap.Skonto + Debza.Skonto
  1788. tRekap.Skonto_Frw = tRekap.Skonto_Frw + Debza.Skonto_Frw.
  1789. END.
  1790. PUT CONTROL '£££Gesamttotal££££££'
  1791. STRING(GTotal[01],'->>>>>>>>9.99') '£'
  1792. STRING(GTotal[02],'->>>>>>>>9.99') '£'
  1793. STRING(GTotal[03],'->>>>>>>>9.99') '£'
  1794. STRING(GTotal[04],'->>>>>>>>9.99') CHR(10).
  1795. PUT CONTROL '£' CHR(10)
  1796. '£' CHR(10).
  1797. ja = TRUE.
  1798. FOR EACH tRekap USE-INDEX tRekap-k1
  1799. WHERE tRekap.RecArt = 'Konto':
  1800. IF ja THEN PUT CONTROL '£££Kontorekapitulation£'.
  1801. ELSE PUT CONTROL '££££'.
  1802. PUT CONTROL '£££££'
  1803. STRING(tRekap.Betrag_Frw,'->>>>>>>>9.99') '£'
  1804. STRING(tRekap.Betrag ,'->>>>>>>>9.99') '£'
  1805. STRING(tRekap.Skonto_Frw,'->>>>>>>>9.99') '£'
  1806. STRING(tRekap.Skonto ,'->>>>>>>>9.99') '£'
  1807. tRekap.Feld CHR(10).
  1808. ja = FALSE.
  1809. END.
  1810. PUT CONTROL '£' CHR(10)
  1811. '£' CHR(10).
  1812. ja = TRUE.
  1813. FOR EACH tRekap USE-INDEX tRekap-k1
  1814. WHERE tRekap.RecArt = 'Frw':
  1815. IF ja THEN PUT CONTROL '£££Rekapitulation nach Währung£'.
  1816. ELSE PUT CONTROL '££££'.
  1817. PUT CONTROL '£££'
  1818. tRekap.Feld '££'
  1819. STRING(tRekap.Betrag_Frw,'->>>>>>>>9.99') '£'
  1820. STRING(tRekap.Betrag ,'->>>>>>>>9.99') '£'
  1821. STRING(tRekap.Skonto_Frw,'->>>>>>>>9.99') '£'
  1822. STRING(tRekap.Skonto ,'->>>>>>>>9.99') '£'
  1823. CHR(10).
  1824. ja = FALSE.
  1825. END.
  1826. OUTPUT CLOSE.
  1827. excelAppl = DYNAMIC-FUNCTION('createExcel':U) NO-ERROR.
  1828. IF NOT VALID-HANDLE(excelAppl) THEN
  1829. DO:
  1830. DYNAMIC-FUNCTION('FEHLER', INPUT 1035) NO-ERROR.
  1831. RETURN.
  1832. END.
  1833. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
  1834. IF NOT ja THEN
  1835. DO:
  1836. DYNAMIC-FUNCTION('FEHLER', INPUT 1040) NO-ERROR.
  1837. DYNAMIC-FUNCTION('ReleaseExcel':U, INPUT excelAppl ) NO-ERROR.
  1838. RETURN NO-APPLY.
  1839. END.
  1840. cZelle = 'A6'.
  1841. excelAppl:Range(cZelle):SELECT.
  1842. excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten.
  1843. excelAppl:APPLICATION:RUN ( 'DateiEinfuegen' ).
  1844. RUN KOPF.
  1845. cZelle = 'A1'.
  1846. excelAppl:Range(cZelle):SELECT.
  1847. DYNAMIC-FUNCTION('ReleaseExcel':U, INPUT excelAppl ) NO-ERROR.
  1848. END PROCEDURE.
  1849. /* _UIB-CODE-BLOCK-END */
  1850. &ANALYZE-RESUME