g-artikelumsatz.w 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gArtikelumsatz
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gArtikelumsatz
  6. /*------------------------------------------------------------------------
  7. File:
  8. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  9. Input Parameters:
  10. <none>
  11. Output Parameters:
  12. <none>
  13. Author:
  14. Created:
  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. DEF VAR MaxPage AS INT NO-UNDO.
  28. DEF VAR AktSeite AS INT NO-UNDO.
  29. DEF VAR FMutFlag AS LOG NO-UNDO.
  30. DEF VAR Selektion AS CHAR NO-UNDO.
  31. DEF VAR Firma AS CHAR NO-UNDO.
  32. DEF VAR AdFirma AS CHAR NO-UNDO.
  33. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  34. DEF VAR DatenName AS CHAR NO-UNDO.
  35. DEF VAR DateiName AS CHAR NO-UNDO.
  36. DEF VAR VKnr AS INT NO-UNDO.
  37. DEF VAR FwSprcd AS INT NO-UNDO.
  38. DEF VAR xHerst AS CHAR NO-UNDO.
  39. DEF VAR nFontGroesse AS INT INIT 9 NO-UNDO.
  40. DEF VAR nMaxBreite AS DEC INIT 97 NO-UNDO.
  41. DEF VAR nTotBreite AS DEC NO-UNDO.
  42. DEF VAR nRepBreite AS DEC NO-UNDO.
  43. DEF TEMP-TABLE TWork FIELD Wgr AS INT
  44. FIELD Pgr AS INT
  45. FIELD Artnr AS INT
  46. FIELD Inhalt AS INT
  47. FIELD Jahr AS INT
  48. FIELD GebInhalt AS DEC DECIMALS 4
  49. FIELD KBez AS CHAR
  50. FIELD RID AS RECID
  51. FIELD Menge AS DEC DECIMALS 4
  52. FIELD Liter AS DEC DECIMALS 4
  53. FIELD Betr AS DEC DECIMALS 4
  54. FIELD Ep AS DEC DECIMALS 4
  55. FIELD MeKum AS DEC DECIMALS 4
  56. FIELD LiKum AS DEC DECIMALS 4
  57. FIELD BeKum AS DEC DECIMALS 4
  58. FIELD EpKum AS DEC DECIMALS 4
  59. INDEX TWork-k1
  60. Artnr
  61. Inhalt
  62. Jahr.
  63. DEF TEMP-TABLE tSpalten NO-UNDO
  64. FIELD iSpalte AS INT
  65. FIELD cFeld AS CHAR
  66. FIELD nBreite AS DEC
  67. FIELD lAktiv AS LOG
  68. INDEX tSpalten-k1 IS PRIMARY
  69. iSpalte.
  70. /* _UIB-CODE-BLOCK-END */
  71. &ANALYZE-RESUME
  72. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  73. /* ******************** Preprocessor Definitions ******************** */
  74. &Scoped-define PROCEDURE-TYPE SmartDialog
  75. &Scoped-define DB-AWARE no
  76. &Scoped-define ADM-CONTAINER DIALOG-BOX
  77. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  78. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  79. &Scoped-define FRAME-NAME gArtikelumsatz
  80. /* Standard List Definitions */
  81. &Scoped-Define ENABLED-OBJECTS CB_Hersteller F_Wgr F_Prodgrp F_VArtnr ~
  82. F_BArtnr T_Fakturiert T_Menge T_Hektoliter T_Betrag F_VonDat F_BisDat ~
  83. T_MengeKum T_HektoliterKum T_BetragKum F_KumBeg Btn_Excel Btn_Cancel ~
  84. RECT-39 RECT-41 RECT-42
  85. &Scoped-Define DISPLAYED-OBJECTS CB_Hersteller F_Wgr F_Prodgrp F_VArtnr ~
  86. F_BArtnr T_Fakturiert T_Menge T_Hektoliter T_Betrag F_VonDat F_BisDat ~
  87. T_MengeKum T_HektoliterKum T_BetragKum F_KumBeg
  88. /* Custom List Definitions */
  89. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  90. &Scoped-define List-5 Btn_Excel
  91. &Scoped-define List-6 CB_Hersteller F_Wgr F_Prodgrp F_VArtnr F_BArtnr ~
  92. T_Fakturiert T_Menge T_Hektoliter T_Betrag F_VonDat F_BisDat T_MengeKum ~
  93. T_HektoliterKum T_BetragKum F_KumBeg
  94. /* _UIB-PREPROCESSOR-BLOCK-END */
  95. &ANALYZE-RESUME
  96. /* ************************ Function Prototypes ********************** */
  97. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createSpaltenBreiten gArtikelumsatz
  98. FUNCTION createSpaltenBreiten RETURNS DECIMAL
  99. ( /* parameter-definitions */ ) FORWARD.
  100. /* _UIB-CODE-BLOCK-END */
  101. &ANALYZE-RESUME
  102. /* *********************** Control Definitions ********************** */
  103. /* Define a dialog box */
  104. /* Definitions of the field level widgets */
  105. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  106. LABEL "&Abbrechen"
  107. SIZE 15 BY 1.14.
  108. DEFINE BUTTON Btn_Excel
  109. IMAGE-UP FILE "grafik/results%.ico":U
  110. IMAGE-INSENSITIVE FILE "grafik/results%.ico":U
  111. LABEL "Excel"
  112. SIZE 7 BY 1.81.
  113. DEFINE VARIABLE CB_Hersteller AS CHARACTER FORMAT "X(256)":U
  114. LABEL "Hersteller"
  115. VIEW-AS COMBO-BOX SORT INNER-LINES 5
  116. LIST-ITEM-PAIRS "Item 1","Item 1"
  117. DROP-DOWN-LIST
  118. SIZE 40 BY 1
  119. BGCOLOR 15 NO-UNDO.
  120. DEFINE VARIABLE F_BArtnr AS INTEGER FORMAT "999999":U INITIAL 0
  121. LABEL "-"
  122. VIEW-AS FILL-IN NATIVE
  123. SIZE 11 BY 1
  124. BGCOLOR 15 NO-UNDO.
  125. DEFINE VARIABLE F_BisDat AS DATE FORMAT "99.99.9999":U INITIAL 01/01/001
  126. LABEL "/"
  127. VIEW-AS FILL-IN NATIVE
  128. SIZE 16 BY 1
  129. BGCOLOR 15 NO-UNDO.
  130. DEFINE VARIABLE F_KumBeg AS DATE FORMAT "99.99.9999":U INITIAL 01/01/001
  131. LABEL "Kummulation seit"
  132. VIEW-AS FILL-IN NATIVE
  133. SIZE 16 BY 1
  134. BGCOLOR 15 NO-UNDO.
  135. DEFINE VARIABLE F_Prodgrp AS CHARACTER FORMAT "X(256)":U
  136. LABEL "Produktegruppen"
  137. VIEW-AS FILL-IN NATIVE
  138. SIZE 40 BY 1 TOOLTIP "Leer = Alle, Doppel-Klick = Auswahl"
  139. BGCOLOR 15 NO-UNDO.
  140. DEFINE VARIABLE F_VArtnr AS INTEGER FORMAT "999999":U INITIAL 0
  141. LABEL "von - bis Artikelnummer"
  142. VIEW-AS FILL-IN NATIVE
  143. SIZE 11 BY 1
  144. BGCOLOR 15 NO-UNDO.
  145. DEFINE VARIABLE F_VonDat AS DATE FORMAT "99.99.9999":U INITIAL 01/01/001
  146. LABEL "Datumbereich"
  147. VIEW-AS FILL-IN NATIVE
  148. SIZE 16 BY 1
  149. BGCOLOR 15 NO-UNDO.
  150. DEFINE VARIABLE F_Wgr AS CHARACTER FORMAT "X(256)":U
  151. LABEL "Warengruppen"
  152. VIEW-AS FILL-IN NATIVE
  153. SIZE 40 BY 1 TOOLTIP "Leer = Alle, Doppel-Klick = Auswahl"
  154. BGCOLOR 15 NO-UNDO.
  155. DEFINE RECTANGLE RECT-39
  156. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  157. SIZE 86 BY 5.67.
  158. DEFINE RECTANGLE RECT-41
  159. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  160. SIZE 86 BY 3.1.
  161. DEFINE RECTANGLE RECT-42
  162. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  163. SIZE 86 BY 3.1.
  164. DEFINE VARIABLE T_Betrag AS LOGICAL INITIAL no
  165. LABEL "Betrag"
  166. VIEW-AS TOGGLE-BOX
  167. SIZE 16 BY .81 NO-UNDO.
  168. DEFINE VARIABLE T_BetragKum AS LOGICAL INITIAL no
  169. LABEL "Betrag (Kum)"
  170. VIEW-AS TOGGLE-BOX
  171. SIZE 20 BY .81 NO-UNDO.
  172. DEFINE VARIABLE T_Fakturiert AS LOGICAL INITIAL yes
  173. LABEL "nur Fakturierte"
  174. VIEW-AS TOGGLE-BOX
  175. SIZE 25 BY 1 NO-UNDO.
  176. DEFINE VARIABLE T_Hektoliter AS LOGICAL INITIAL no
  177. LABEL "Hektoliter"
  178. VIEW-AS TOGGLE-BOX
  179. SIZE 16 BY .81 NO-UNDO.
  180. DEFINE VARIABLE T_HektoliterKum AS LOGICAL INITIAL no
  181. LABEL "Hektoliter (Kum)"
  182. VIEW-AS TOGGLE-BOX
  183. SIZE 20 BY .81 NO-UNDO.
  184. DEFINE VARIABLE T_Menge AS LOGICAL INITIAL no
  185. LABEL "Menge"
  186. VIEW-AS TOGGLE-BOX
  187. SIZE 16 BY .81 NO-UNDO.
  188. DEFINE VARIABLE T_MengeKum AS LOGICAL INITIAL no
  189. LABEL "Menge (Kum)"
  190. VIEW-AS TOGGLE-BOX
  191. SIZE 20 BY .81 NO-UNDO.
  192. /* ************************ Frame Definitions *********************** */
  193. DEFINE FRAME gArtikelumsatz
  194. CB_Hersteller AT ROW 1.52 COL 44 COLON-ALIGNED
  195. F_Wgr AT ROW 2.52 COL 44 COLON-ALIGNED
  196. F_Prodgrp AT ROW 3.52 COL 44 COLON-ALIGNED
  197. F_VArtnr AT ROW 4.52 COL 44 COLON-ALIGNED
  198. F_BArtnr AT ROW 4.52 COL 57 COLON-ALIGNED
  199. T_Fakturiert AT ROW 5.52 COL 46 WIDGET-ID 2
  200. T_Menge AT ROW 7.52 COL 5
  201. T_Hektoliter AT ROW 8.29 COL 5
  202. T_Betrag AT ROW 9.1 COL 5
  203. F_VonDat AT ROW 7.52 COL 44 COLON-ALIGNED
  204. F_BisDat AT ROW 7.52 COL 68 COLON-ALIGNED
  205. T_MengeKum AT ROW 10.95 COL 5
  206. T_HektoliterKum AT ROW 11.71 COL 5
  207. T_BetragKum AT ROW 12.52 COL 5
  208. F_KumBeg AT ROW 11 COL 44 COLON-ALIGNED
  209. Btn_Excel AT ROW 14.14 COL 79
  210. Btn_Cancel AT ROW 14.52 COL 4
  211. "Artikelselektion" VIEW-AS TEXT
  212. SIZE 24 BY 1 AT ROW 1.52 COL 5
  213. RECT-39 AT ROW 1.24 COL 2
  214. RECT-41 AT ROW 7.19 COL 2
  215. RECT-42 AT ROW 10.62 COL 2
  216. SPACE(0.99) SKIP(2.75)
  217. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  218. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  219. TITLE "Artikelumsatz"
  220. CANCEL-BUTTON Btn_Cancel.
  221. /* *********************** Procedure Settings ************************ */
  222. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  223. /* Settings for THIS-PROCEDURE
  224. Type: SmartDialog
  225. Allow: Basic,Browse,DB-Fields,Query,Smart
  226. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  227. Design Page: 1
  228. Other Settings: COMPILE
  229. */
  230. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  231. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gArtikelumsatz
  232. /* ************************* Included-Libraries *********************** */
  233. {src/adm2/containr.i}
  234. /* _UIB-CODE-BLOCK-END */
  235. &ANALYZE-RESUME
  236. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  237. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  238. /* SETTINGS FOR DIALOG-BOX gArtikelumsatz
  239. FRAME-NAME Custom */
  240. ASSIGN
  241. FRAME gArtikelumsatz:SCROLLABLE = FALSE
  242. FRAME gArtikelumsatz:HIDDEN = TRUE.
  243. /* SETTINGS FOR BUTTON Btn_Excel IN FRAME gArtikelumsatz
  244. 5 */
  245. /* SETTINGS FOR COMBO-BOX CB_Hersteller IN FRAME gArtikelumsatz
  246. 6 */
  247. /* SETTINGS FOR FILL-IN F_BArtnr IN FRAME gArtikelumsatz
  248. 6 */
  249. /* SETTINGS FOR FILL-IN F_BisDat IN FRAME gArtikelumsatz
  250. 6 */
  251. /* SETTINGS FOR FILL-IN F_KumBeg IN FRAME gArtikelumsatz
  252. 6 */
  253. /* SETTINGS FOR FILL-IN F_Prodgrp IN FRAME gArtikelumsatz
  254. 6 */
  255. /* SETTINGS FOR FILL-IN F_VArtnr IN FRAME gArtikelumsatz
  256. 6 */
  257. /* SETTINGS FOR FILL-IN F_VonDat IN FRAME gArtikelumsatz
  258. 6 */
  259. /* SETTINGS FOR FILL-IN F_Wgr IN FRAME gArtikelumsatz
  260. 6 */
  261. /* SETTINGS FOR TOGGLE-BOX T_Betrag IN FRAME gArtikelumsatz
  262. 6 */
  263. /* SETTINGS FOR TOGGLE-BOX T_BetragKum IN FRAME gArtikelumsatz
  264. 6 */
  265. /* SETTINGS FOR TOGGLE-BOX T_Fakturiert IN FRAME gArtikelumsatz
  266. 6 */
  267. /* SETTINGS FOR TOGGLE-BOX T_Hektoliter IN FRAME gArtikelumsatz
  268. 6 */
  269. /* SETTINGS FOR TOGGLE-BOX T_HektoliterKum IN FRAME gArtikelumsatz
  270. 6 */
  271. /* SETTINGS FOR TOGGLE-BOX T_Menge IN FRAME gArtikelumsatz
  272. 6 */
  273. /* SETTINGS FOR TOGGLE-BOX T_MengeKum IN FRAME gArtikelumsatz
  274. 6 */
  275. /* _RUN-TIME-ATTRIBUTES-END */
  276. &ANALYZE-RESUME
  277. /* Setting information for Queries and Browse Widgets fields */
  278. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gArtikelumsatz
  279. /* Query rebuild information for DIALOG-BOX gArtikelumsatz
  280. _Options = "SHARE-LOCK"
  281. _Query is NOT OPENED
  282. */ /* DIALOG-BOX gArtikelumsatz */
  283. &ANALYZE-RESUME
  284. /* ************************ Control Triggers ************************ */
  285. &Scoped-define SELF-NAME gArtikelumsatz
  286. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gArtikelumsatz gArtikelumsatz
  287. ON END-ERROR OF FRAME gArtikelumsatz /* Artikelumsatz */
  288. DO:
  289. RUN ENDE.
  290. RETURN NO-APPLY.
  291. END.
  292. /* _UIB-CODE-BLOCK-END */
  293. &ANALYZE-RESUME
  294. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gArtikelumsatz gArtikelumsatz
  295. ON GO OF FRAME gArtikelumsatz /* Artikelumsatz */
  296. DO:
  297. /*
  298. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR.
  299. */
  300. END.
  301. /* _UIB-CODE-BLOCK-END */
  302. &ANALYZE-RESUME
  303. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gArtikelumsatz gArtikelumsatz
  304. ON WINDOW-CLOSE OF FRAME gArtikelumsatz /* Artikelumsatz */
  305. DO:
  306. RUN ENDE.
  307. RETURN NO-APPLY.
  308. END.
  309. /* _UIB-CODE-BLOCK-END */
  310. &ANALYZE-RESUME
  311. &Scoped-define SELF-NAME Btn_Cancel
  312. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gArtikelumsatz
  313. ON CHOOSE OF Btn_Cancel IN FRAME gArtikelumsatz /* Abbrechen */
  314. DO:
  315. RUN ENDE.
  316. RETURN NO-APPLY.
  317. END.
  318. /* _UIB-CODE-BLOCK-END */
  319. &ANALYZE-RESUME
  320. &Scoped-define SELF-NAME Btn_Excel
  321. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel gArtikelumsatz
  322. ON CHOOSE OF Btn_Excel IN FRAME gArtikelumsatz /* Excel */
  323. DO:
  324. Btn_Excel:HIDDEN = TRUE.
  325. RUN REPORT.
  326. Btn_Excel:HIDDEN = FALSE.
  327. RUN ENDE.
  328. END.
  329. /* _UIB-CODE-BLOCK-END */
  330. &ANALYZE-RESUME
  331. &Scoped-define SELF-NAME F_Prodgrp
  332. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Prodgrp gArtikelumsatz
  333. ON LEFT-MOUSE-DBLCLICK OF F_Prodgrp IN FRAME gArtikelumsatz /* Produktegruppen */
  334. DO:
  335. IF F_Wgr:SCREEN-VALUE <> ''
  336. THEN RUN 'g-auswahl-pgr.w':U ( INPUT F_Wgr:HANDLE, INPUT SELF ).
  337. END.
  338. /* _UIB-CODE-BLOCK-END */
  339. &ANALYZE-RESUME
  340. &Scoped-define SELF-NAME F_Wgr
  341. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Wgr gArtikelumsatz
  342. ON LEFT-MOUSE-DBLCLICK OF F_Wgr IN FRAME gArtikelumsatz /* Warengruppen */
  343. DO:
  344. RUN 'g-auswahl-wgr.w':U ( INPUT SELF ).
  345. END.
  346. /* _UIB-CODE-BLOCK-END */
  347. &ANALYZE-RESUME
  348. &UNDEFINE SELF-NAME
  349. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gArtikelumsatz
  350. /* *************************** Main Block *************************** */
  351. MaxPage = 1.
  352. AktSeite = 1.
  353. SESSION:DATA-ENTRY-RETURN = TRUE.
  354. SUBSCRIBE TO 'TOOLBAR' ANYWHERE.
  355. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  356. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  357. FwSprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR.
  358. /* TRIGGERS ------------------------------------------------------ */
  359. ON 'ALT-CURSOR-RIGHT':U OF FRAME {&FRAME-NAME} ANYWHERE
  360. DO:
  361. RUN NEXTPAGE.
  362. END.
  363. ON 'ALT-CURSOR-LEFT':U OF FRAME {&FRAME-NAME} ANYWHERE
  364. DO:
  365. RUN PREVPAGE.
  366. END.
  367. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE
  368. DO:
  369. RUN ENTRY_CURSOR.
  370. END.
  371. /*
  372. ON 'PAGE-DOWN':U OF {&WINDOW-NAME} ANYWHERE
  373. DO:
  374. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Next':U ).
  375. END.
  376. ON 'PAGE-UP':U OF {&WINDOW-NAME} ANYWHERE
  377. DO:
  378. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Prev':U ).
  379. END.
  380. ON 'ALT-RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE
  381. DO:
  382. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'UPDATE':U ).
  383. END.
  384. ON 'ALT-INS':U OF FRAME {&FRAME-NAME} ANYWHERE
  385. DO:
  386. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'ADD':U ).
  387. END.
  388. ON 'ALT-DEL':U OF FRAME {&FRAME-NAME} ANYWHERE
  389. DO:
  390. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'DELETE':U ).
  391. END.
  392. ON 'ALT-R':U OF FRAME {&FRAME-NAME} ANYWHERE
  393. DO:
  394. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'RESET':U ).
  395. END.
  396. ON 'F9':U OF FRAME {&FRAME-NAME} ANYWHERE
  397. DO:
  398. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ).
  399. END.
  400. ON 'ALT-S':U OF FRAME {&FRAME-NAME} ANYWHERE
  401. DO:
  402. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ).
  403. END.
  404. ON 'ALT-K':U OF FRAME {&FRAME-NAME} ANYWHERE
  405. DO:
  406. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'COPY':U ).
  407. END.
  408. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE
  409. DO:
  410. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  411. IF FMutFlag = FALSE THEN DO:
  412. RUN ENDE.
  413. RETURN NO-APPLY.
  414. END.
  415. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'CANCEL':U ).
  416. RETURN NO-APPLY.
  417. END.
  418. */
  419. ON 'RETURN':U OF CB_Hersteller, T_Menge, T_Hektoliter, T_Betrag,
  420. F_VonDat, F_BisDat, T_MengeKum, T_HektoliterKum,
  421. T_BetragKum, F_KumBeg IN FRAME {&FRAME-NAME}
  422. DO:
  423. APPLY 'TAB' TO SELF.
  424. RETURN NO-APPLY.
  425. END.
  426. /* ------------------------------------------------------------------ */
  427. {src/adm2/dialogmn.i}
  428. /* _UIB-CODE-BLOCK-END */
  429. &ANALYZE-RESUME
  430. /* ********************** Internal Procedures *********************** */
  431. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gArtikelumsatz _ADM-CREATE-OBJECTS
  432. PROCEDURE adm-create-objects :
  433. /*------------------------------------------------------------------------------
  434. Purpose: Create handles for all SmartObjects used in this procedure.
  435. After SmartObjects are initialized, then SmartLinks are added.
  436. Parameters: <none>
  437. ------------------------------------------------------------------------------*/
  438. END PROCEDURE.
  439. /* _UIB-CODE-BLOCK-END */
  440. &ANALYZE-RESUME
  441. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BEREINIGEN gArtikelumsatz
  442. PROCEDURE BEREINIGEN :
  443. /*------------------------------------------------------------------------------
  444. Purpose:
  445. Parameters: <none>
  446. Notes:
  447. ------------------------------------------------------------------------------*/
  448. DEF INPUT PARAMETER ipFeld AS HANDLE NO-UNDO.
  449. DEF VAR Inhalt AS CHAR NO-UNDO.
  450. DEF VAR ix AS INT NO-UNDO.
  451. DEF VAR i1 AS INT NO-UNDO.
  452. Inhalt = ''.
  453. DO ix = 1 TO NUM-ENTRIES(ipFeld:SCREEN-VALUE, ','):
  454. i1 = INTEGER(ENTRY(ix, ipFeld:SCREEN-VALUE, ',')) NO-ERROR.
  455. IF ERROR-STATUS:ERROR THEN NEXT.
  456. Inhalt = Inhalt + STRING(i1,'999') + ','.
  457. END.
  458. Inhalt = SUBSTRING(Inhalt,01,LENGTH(Inhalt) - 1).
  459. ipFeld:SCREEN-VALUE = Inhalt.
  460. END PROCEDURE.
  461. /* _UIB-CODE-BLOCK-END */
  462. &ANALYZE-RESUME
  463. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage gArtikelumsatz
  464. PROCEDURE changePage :
  465. /*------------------------------------------------------------------------------
  466. Purpose: Super Override
  467. Parameters:
  468. Notes:
  469. ------------------------------------------------------------------------------*/
  470. /* Code placed here will execute PRIOR to standard behavior. */
  471. RUN SUPER.
  472. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  473. CASE AktSeite:
  474. WHEN 1 THEN DO:
  475. /* RUN addLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */
  476. /* RUN addLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */
  477. /* RUN ToolbarInit ( INPUT h_d-auftr ). */
  478. RUN ENTRY_CURSOR.
  479. END.
  480. WHEN 2 THEN DO:
  481. RUN ENTRY_CURSOR.
  482. END.
  483. END CASE.
  484. END PROCEDURE.
  485. /* _UIB-CODE-BLOCK-END */
  486. &ANALYZE-RESUME
  487. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gArtikelumsatz _DEFAULT-DISABLE
  488. PROCEDURE disable_UI :
  489. /*------------------------------------------------------------------------------
  490. Purpose: DISABLE the User Interface
  491. Parameters: <none>
  492. Notes: Here we clean-up the user-interface by deleting
  493. dynamic widgets we have created and/or hide
  494. frames. This procedure is usually called when
  495. we are ready to "clean-up" after running.
  496. ------------------------------------------------------------------------------*/
  497. /* Hide all frames. */
  498. HIDE FRAME gArtikelumsatz.
  499. END PROCEDURE.
  500. /* _UIB-CODE-BLOCK-END */
  501. &ANALYZE-RESUME
  502. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gArtikelumsatz
  503. PROCEDURE enableObject :
  504. /*------------------------------------------------------------------------------
  505. Purpose: Super Override
  506. Parameters:
  507. Notes:
  508. ------------------------------------------------------------------------------*/
  509. /* Code placed here will execute PRIOR to standard behavior. */
  510. RUN SUPER.
  511. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR.
  512. RUN COMBO_HERSTELLER ( CB_Hersteller:HANDLE ).
  513. CB_Hersteller:ADD-LAST ( 'Alle', 'AAAAAA' ).
  514. END PROCEDURE.
  515. /* _UIB-CODE-BLOCK-END */
  516. &ANALYZE-RESUME
  517. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gArtikelumsatz _DEFAULT-ENABLE
  518. PROCEDURE enable_UI :
  519. /*------------------------------------------------------------------------------
  520. Purpose: ENABLE the User Interface
  521. Parameters: <none>
  522. Notes: Here we display/view/enable the widgets in the
  523. user-interface. In addition, OPEN all queries
  524. associated with each FRAME and BROWSE.
  525. These statements here are based on the "Other
  526. Settings" section of the widget Property Sheets.
  527. ------------------------------------------------------------------------------*/
  528. DISPLAY CB_Hersteller F_Wgr F_Prodgrp F_VArtnr F_BArtnr T_Fakturiert T_Menge
  529. T_Hektoliter T_Betrag F_VonDat F_BisDat T_MengeKum T_HektoliterKum
  530. T_BetragKum F_KumBeg
  531. WITH FRAME gArtikelumsatz.
  532. ENABLE CB_Hersteller F_Wgr F_Prodgrp F_VArtnr F_BArtnr T_Fakturiert T_Menge
  533. T_Hektoliter T_Betrag F_VonDat F_BisDat T_MengeKum T_HektoliterKum
  534. T_BetragKum F_KumBeg Btn_Excel Btn_Cancel RECT-39 RECT-41 RECT-42
  535. WITH FRAME gArtikelumsatz.
  536. VIEW FRAME gArtikelumsatz.
  537. {&OPEN-BROWSERS-IN-QUERY-gArtikelumsatz}
  538. END PROCEDURE.
  539. /* _UIB-CODE-BLOCK-END */
  540. &ANALYZE-RESUME
  541. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gArtikelumsatz
  542. PROCEDURE ENDE :
  543. /*------------------------------------------------------------------------------
  544. Purpose:
  545. Parameters: <none>
  546. Notes:
  547. ------------------------------------------------------------------------------*/
  548. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  549. IF AktSeite > 1 THEN DO:
  550. RUN selectPage ( INPUT 1 ).
  551. RETURN NO-APPLY.
  552. END.
  553. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  554. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  555. RETURN NO-APPLY.
  556. END PROCEDURE.
  557. /* _UIB-CODE-BLOCK-END */
  558. &ANALYZE-RESUME
  559. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR gArtikelumsatz
  560. PROCEDURE ENTRY_CURSOR :
  561. /*------------------------------------------------------------------------------
  562. Purpose:
  563. Parameters: <none>
  564. Notes:
  565. ------------------------------------------------------------------------------*/
  566. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  567. CASE AktSeite:
  568. /* WHEN 1 THEN RUN applyEntry IN h_v-adresse ( INPUT ? ). */
  569. /* WHEN 2 THEN RUN applyEntry IN h_f-adrkomm ( INPUT ? ). */
  570. /* WHEN 3 THEN RUN applyEntry IN h_b-auftbb ( INPUT ? ). */
  571. /* WHEN 4 THEN RUN applyEntry IN h_b-aufdet ( INPUT ? ). */
  572. /* WHEN 5 THEN RUN applyEntry IN h_b-aufstreu ( INPUT ? ). */
  573. /* WHEN 6 THEN RUN applyEntry IN h_b-auffak ( INPUT ? ). */
  574. /* WHEN 7 THEN RUN applyEntry IN h_b-position ( INPUT ? ). */
  575. END CASE.
  576. RETURN NO-APPLY.
  577. END PROCEDURE.
  578. /* _UIB-CODE-BLOCK-END */
  579. &ANALYZE-RESUME
  580. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gArtikelumsatz
  581. PROCEDURE exitObject :
  582. /*------------------------------------------------------------------------------
  583. Purpose: Super Override
  584. Parameters:
  585. Notes:
  586. ------------------------------------------------------------------------------*/
  587. RUN ENDE.
  588. RETURN NO-APPLY.
  589. END PROCEDURE.
  590. /* _UIB-CODE-BLOCK-END */
  591. &ANALYZE-RESUME
  592. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF gArtikelumsatz
  593. PROCEDURE KOPF :
  594. /*------------------------------------------------------------------------------
  595. Purpose:
  596. Parameters: <none>
  597. Notes:
  598. ------------------------------------------------------------------------------*/
  599. DEF VAR Zelle AS CHAR NO-UNDO.
  600. DEF VAR i1 AS INT NO-UNDO.
  601. DEF VAR cTit AS CHAR NO-UNDO.
  602. FIND Steuer USE-INDEX Steuer-k1
  603. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  604. i1 = 2.
  605. IF NOT T_BetragKum THEN i1 = i1 + 1.
  606. IF NOT T_HektoliterKum THEN i1 = i1 + 1.
  607. IF NOT T_MengeKum THEN i1 = i1 + 1.
  608. IF NOT T_Betrag THEN i1 = i1 + 1.
  609. IF NOT T_Hektoliter THEN i1 = i1 + 1.
  610. IF NOT T_Menge THEN i1 = i1 + 1.
  611. i1 = 8 - (i1 / 2).
  612. cTit = CHR(64 + i1).
  613. Zelle = 'A1'.
  614. excelAppl:Range(Zelle):SELECT.
  615. excelAppl:SELECTION:VALUE = Steuer.Firma1.
  616. Zelle = cTit + '1'.
  617. excelAppl:Range(Zelle):SELECT.
  618. excelAppl:SELECTION:VALUE = 'Artikelumsätze'.
  619. Zelle = 'O1'.
  620. excelAppl:Range(Zelle):SELECT.
  621. excelAppl:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  622. Zelle = 'A2'.
  623. excelAppl:Range(Zelle):SELECT.
  624. excelAppl:SELECTION:VALUE = Steuer.Ort.
  625. Zelle = cTit + '2'.
  626. excelAppl:Range(Zelle):SELECT.
  627. excelAppl:SELECTION:VALUE = ''.
  628. Zelle = 'O2'.
  629. excelAppl:Range(Zelle):SELECT.
  630. excelAppl:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  631. END PROCEDURE.
  632. /* _UIB-CODE-BLOCK-END */
  633. &ANALYZE-RESUME
  634. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE gArtikelumsatz
  635. PROCEDURE NEXTPAGE :
  636. /*------------------------------------------------------------------------------
  637. Purpose:
  638. Parameters: <none>
  639. Notes:
  640. ------------------------------------------------------------------------------*/
  641. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  642. IF AktSeite = MaxPage THEN AktSeite = 1.
  643. ELSE AktSeite = AktSeite + 1.
  644. RUN selectPage ( INPUT AktSeite ).
  645. END PROCEDURE.
  646. /* _UIB-CODE-BLOCK-END */
  647. &ANALYZE-RESUME
  648. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREVPAGE gArtikelumsatz
  649. PROCEDURE PREVPAGE :
  650. /*------------------------------------------------------------------------------
  651. Purpose:
  652. Parameters: <none>
  653. Notes:
  654. ------------------------------------------------------------------------------*/
  655. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  656. IF AktSeite = 1 THEN AktSeite = MaxPage.
  657. ELSE AktSeite = AktSeite - 1.
  658. RUN selectPage ( INPUT AktSeite ).
  659. END PROCEDURE.
  660. /* _UIB-CODE-BLOCK-END */
  661. &ANALYZE-RESUME
  662. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gArtikelumsatz
  663. PROCEDURE REPORT :
  664. /*------------------------------------------------------------------------------
  665. Purpose:
  666. Parameters: <none>
  667. Notes:
  668. ------------------------------------------------------------------------------*/
  669. DEF VAR Fenster AS HANDLE NO-UNDO.
  670. DEF VAR ix AS INT NO-UNDO.
  671. DEF VAR i1 AS INT NO-UNDO.
  672. DEF VAR i2 AS INT NO-UNDO.
  673. DEF VAR Rundbetr AS DEC DECIMALS 4 NO-UNDO.
  674. DEF VAR Ja AS LOG NO-UNDO.
  675. DEF VAR Zelle AS CHAR NO-UNDO.
  676. DEF VAR xDat1 AS CHAR NO-UNDO.
  677. DEF VAR xDat2 AS CHAR NO-UNDO.
  678. DEF VAR Totale AS DEC DECIMALS 4
  679. EXTENT 20 NO-UNDO.
  680. DEF VAR Faktor AS DEC DECIMALS 4 NO-UNDO.
  681. DEF VAR Punkt AS DEC NO-UNDO INIT 8.
  682. DEF VAR dBreite AS DEC NO-UNDO.
  683. DEF VAR dZellBr AS DEC NO-UNDO.
  684. DEF VAR Marge AS DEC NO-UNDO.
  685. DEF VAR MargeKum AS DEC NO-UNDO.
  686. DEF VAR nBreitFakt AS DEC NO-UNDO.
  687. DEF VAR nFontFakt AS DEC NO-UNDO.
  688. DO WITH FRAME {&FRAME-NAME}:
  689. RUN BEREINIGEN ( INPUT F_Wgr :HANDLE ).
  690. RUN BEREINIGEN ( INPUT F_Prodgrp:HANDLE ).
  691. ASSIGN {&List-6}.
  692. IF F_VArtnr = 0 AND F_BArtnr = 0 THEN F_BArtnr = 999999.
  693. IF F_BArtnr < F_VArtnr THEN F_BArtnr = F_VArtnr.
  694. IF F_VonDat = ? THEN F_VonDat = DATE(MONTH(TODAY),01,YEAR(TODAY)).
  695. IF F_BisDat = ? THEN F_BisDat = DATE(12,31,YEAR(TODAY)).
  696. IF F_KumBeg = ? THEN F_KumBeg = DATE(01,01,YEAR(TODAY)).
  697. IF T_MengeKum = FALSE AND
  698. T_HektoliterKum = FALSE AND
  699. T_BetragKum = FALSE THEN F_KumBeg = F_VonDat.
  700. IF F_KumBeg > F_VonDat THEN F_KumBeg = F_VonDat.
  701. Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION NO-ERROR.
  702. Fenster = Fenster:FIRST-CHILD NO-ERROR.
  703. Selektion = ''.
  704. DO WHILE VALID-HANDLE(Fenster):
  705. DO WHILE TRUE:
  706. IF Fenster:TYPE = 'RECTANGLE' THEN LEAVE.
  707. IF Fenster:TYPE = 'BUTTON' THEN LEAVE.
  708. IF Fenster:TYPE = 'TEXT' THEN LEAVE.
  709. IF Fenster:TYPE = 'LITERAL' THEN LEAVE.
  710. Selektion = Selektion + Fenster:SCREEN-VALUE + '@'.
  711. LEAVE.
  712. END.
  713. Fenster = Fenster:NEXT-SIBLING.
  714. END.
  715. Selektion = SUBSTRING(Selektion,01,LENGTH(Selektion) - 1).
  716. DISPLAY {&List-6}.
  717. END.
  718. DYNAMIC-FUNCTION('SETSELEKTION':U, INPUT '{&FRAME-NAME}',
  719. INPUT Selektion ) NO-ERROR.
  720. nTotBreite = DYNAMIC-FUNCTION('createSpaltenBreiten':U) NO-ERROR.
  721. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  722. DatenName = 'Artikelumsätze.txt'.
  723. DateiName = 'Artikelumsätze.xls' + CHR(01) + 'Artikelumsätze.xls'.
  724. DO WHILE TRUE:
  725. RUN CREATEDATEI ( INPUT DateiName ).
  726. IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE.
  727. CASE RETURN-VALUE:
  728. WHEN 'ERROR-PARAMETER' THEN DO:
  729. RUN FEHLER ( INPUT 1036 ).
  730. RETURN NO-APPLY.
  731. END.
  732. WHEN 'ERROR-LOESCHEN' THEN DO:
  733. RUN FEHLER ( INPUT 1037 ).
  734. RETURN NO-APPLY.
  735. END.
  736. WHEN 'ERROR-VORLAGE' THEN DO:
  737. RUN FEHLER ( INPUT 1038 ).
  738. RETURN NO-APPLY.
  739. END.
  740. OTHERWISE DO:
  741. MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR.
  742. RETURN NO-APPLY.
  743. END.
  744. END CASE.
  745. LEAVE.
  746. END.
  747. DateiName = RETURN-VALUE.
  748. DO WHILE TRUE:
  749. RUN CREATEDATEI ( INPUT DatenName ).
  750. IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE.
  751. CASE RETURN-VALUE:
  752. WHEN 'ERROR-PARAMETER' THEN DO:
  753. RUN FEHLER ( INPUT 1036 ).
  754. RETURN NO-APPLY.
  755. END.
  756. WHEN 'ERROR-LOESCHEN' THEN DO:
  757. RUN FEHLER ( INPUT 1037 ).
  758. RETURN NO-APPLY.
  759. END.
  760. WHEN 'ERROR-VORLAGE' THEN DO:
  761. RUN FEHLER ( INPUT 1038 ).
  762. RETURN NO-APPLY.
  763. END.
  764. OTHERWISE DO:
  765. MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR.
  766. RETURN NO-APPLY.
  767. END.
  768. END CASE.
  769. LEAVE.
  770. END.
  771. DatenName = RETURN-VALUE.
  772. SESSION:SET-WAIT-STATE('GENERAL').
  773. RUN TEMPTABELLE.
  774. Totale = 0.
  775. xDat1 = STRING(F_VonDat,'99.99.9999') + ' - '
  776. + STRING(F_BisDat,'99.99.9999').
  777. xDat2 = STRING(F_KumBeg,'99.99.9999') + ' - '
  778. + STRING(F_BisDat,'99.99.9999').
  779. i1 = LOOKUP(CB_Hersteller:SCREEN-VALUE, CB_Hersteller:LIST-ITEM-PAIRS, ';').
  780. xHerst = ENTRY(i1 - 1, CB_Hersteller:LIST-ITEM-PAIRS, ';').
  781. OUTPUT TO VALUE(DatenName).
  782. PUT CONTROL 'Hersteller : ' XHerst
  783. CHR(10).
  784. PUT CONTROL '£' CHR(10)
  785. '£Artnr£Artikel£JG£Alk%£Gebinde£Menge£HL£Betrag£Marge£Menge£HL£Betrag£Marge'
  786. CHR(10).
  787. ASSIGN Totale[01] = 0
  788. Totale[02] = 0
  789. Totale[03] = 0
  790. Totale[04] = 0
  791. Totale[05] = 0
  792. Totale[06] = 0
  793. Totale[07] = 0
  794. Totale[08] = 0
  795. Totale[09] = 0
  796. Totale[10] = 0.
  797. FOR EACH tWork USE-INDEX tWork-k1
  798. BREAK BY tWork.Wgr
  799. BY tWork.Pgr
  800. BY tWork.Artnr
  801. BY tWork.Inhalt
  802. BY tWork.Jahr :
  803. FIND Artst WHERE RECID(Artst) = tWork.RID NO-ERROR.
  804. FIND Artbez NO-LOCK USE-INDEX Artbez-k1
  805. WHERE Artbez.Firma = Artst.Firma
  806. AND Artbez.Artnr = Artst.Artnr
  807. AND Artbez.Inhalt = Artst.Inhalt
  808. AND Artbez.Jahr = Artst.Jahr
  809. AND Artbez.Sprcd = FwSprcd NO-ERROR.
  810. IF NOT AVAILABLE Artbez THEN DO:
  811. FIND FIRST Artbez NO-LOCK USE-INDEX Artbez-k1
  812. WHERE Artbez.Firma = Artst.Firma
  813. AND Artbez.Artnr = Artst.Artnr
  814. AND Artbez.Inhalt = Artst.Inhalt
  815. AND Artbez.Jahr = Artst.Jahr NO-ERROR.
  816. END.
  817. Totale[01] = Totale[01] + tWork.Menge.
  818. Totale[02] = Totale[02] + tWork.Liter.
  819. Totale[03] = Totale[03] + tWork.Betr .
  820. Totale[04] = Totale[04] + tWork.Ep .
  821. Totale[06] = Totale[06] + tWork.MeKum.
  822. Totale[07] = Totale[07] + tWork.LiKum.
  823. Totale[08] = Totale[08] + tWork.BeKum.
  824. Totale[09] = Totale[09] + tWork.EpKum.
  825. Totale[11] = Totale[11] + tWork.Menge.
  826. Totale[12] = Totale[12] + tWork.Liter.
  827. Totale[13] = Totale[13] + tWork.Betr .
  828. Totale[14] = Totale[14] + tWork.Ep .
  829. Totale[16] = Totale[16] + tWork.MeKum.
  830. Totale[17] = Totale[17] + tWork.LiKum.
  831. Totale[18] = Totale[18] + tWork.BeKum.
  832. Totale[19] = Totale[19] + tWork.EpKum.
  833. IF FIRST-OF ( tWork.Pgr )
  834. THEN PUT CONTROL STRING(tWork.Wgr,'999')
  835. '/'
  836. STRING(tWork.Pgr,'999') CHR(10).
  837. PUT CONTROL '£'
  838. STRING(tWork.Artnr,'999999')
  839. '£'.
  840. DO WHILE TRUE.
  841. IF NOT AVAILABLE Artbez THEN LEAVE.
  842. PUT CONTROL Artbez.Bez1.
  843. IF Artbez.bez2 = '' THEN LEAVE.
  844. IF NOT Artbez.Bez2_Druck THEN LEAVE.
  845. PUT CONTROL ', ' Artbez.Bez2.
  846. LEAVE.
  847. END.
  848. PUT CONTROL '£'
  849. TRIM(STRING(tWork.Jahr ,'zzzz'))
  850. '£'.
  851. IF Artst.Alk_Gehalt > 0 THEN PUT CONTROL TRIM(STRING(Artst.Alk_Gehalt,'>9.9%')).
  852. PUT CONTROL '£'
  853. tWork.KBez '£'.
  854. IF tWork.Betr <> 0 AND
  855. tWork.Ep <> 0 THEN Marge = (ABS(tWork.Betr) * 100 / ABS(tWork.Ep)) - 100.
  856. ELSE Marge = 0.
  857. IF tWork.BeKum <> 0 AND
  858. tWork.EpKum <> 0 THEN MargeKum = (ABS(tWork.BeKum) * 100 / ABS(tWork.EpKum)) - 100.
  859. ELSE MargeKum = 0.
  860. IF ABS(Marge) > 999.99 THEN DO:
  861. IF Marge < 0 THEN Marge = -999.99.
  862. ELSE Marge = +999.99.
  863. END.
  864. IF ABS(MargeKum) > 999.99 THEN DO:
  865. IF MargeKum < 0 THEN MargeKum = -999.99.
  866. ELSE MargeKum = +999.99.
  867. END.
  868. PUT CONTROL TRIM(STRING(tWork.Menge ,'->>>>>>>>>')) '£'
  869. TRIM(STRING(tWork.Liter / 10000,'->>>>>>.99' )) '£'
  870. TRIM(STRING(tWork.Betr ,'->>>>>>>>>')) '£'
  871. TRIM(STRING(Marge ,'->>>>>>.99')) '£'
  872. TRIM(STRING(tWork.MeKum ,'->>>>>>>>>')) '£'
  873. TRIM(STRING(tWork.LiKum / 10000,'->>>>>>.99' )) '£'
  874. TRIM(STRING(tWork.BeKum ,'->>>>>>>>>')) '£'
  875. TRIM(STRING(MargeKum ,'->>>>>>.99')) CHR(10).
  876. IF LAST-OF ( tWork.Pgr ) THEN PUT CONTROL '£' CHR(10).
  877. END.
  878. PUT CONTROL '£' CHR(10)
  879. 'Gesamttotal££££££'.
  880. IF Totale[13] <> 0 AND
  881. Totale[14] <> 0 THEN Marge = (ABS(Totale[13])) * 100 / ABS(ABS(Totale[14])) - 100.
  882. ELSE Marge = 0.
  883. IF Totale[18] <> 0 AND
  884. Totale[19] <> 0 THEN MargeKum = (ABS(Totale[19]) * 100 / ABS(Totale[18])) - 100.
  885. ELSE MargeKum = 0.
  886. IF ABS(Marge) > 999.99 THEN DO:
  887. IF Marge < 0 THEN Marge = -999.99.
  888. ELSE Marge = +999.99.
  889. END.
  890. IF ABS(MargeKum) > 999.99 THEN DO:
  891. IF MargeKum < 0 THEN MargeKum = -999.99.
  892. ELSE MargeKum = +999.99.
  893. END.
  894. PUT CONTROL TRIM(STRING(Totale[11] ,'->>>>>>>>>')) '£'
  895. TRIM(STRING(Totale[12] / 10000,'->>>>>>.99' )) '£'
  896. TRIM(STRING(Totale[13] ,'->>>>>>>>>')) '£'
  897. TRIM(STRING(Marge ,'->>>>>>.99')) '£'
  898. TRIM(STRING(Totale[16] ,'->>>>>>>>>')) '£'
  899. TRIM(STRING(Totale[17] / 10000,'->>>>>>.99' )) '£'
  900. TRIM(STRING(Totale[18] ,'->>>>>>>>>')) '£'
  901. TRIM(STRING(MargeKum ,'->>>>>>.99')) CHR(10).
  902. OUTPUT CLOSE.
  903. DO WHILE TRUE:
  904. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  905. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  906. RUN FEHLER ( INPUT 1035 ).
  907. RETURN NO-APPLY.
  908. END.
  909. LEAVE.
  910. END.
  911. nBreitFakt = nMaxBreite / nTotBreite * 0.8.
  912. nFontFakt = nFontGroesse * nBreitFakt * 0.8.
  913. RUN OPENEXCEL ( INPUT excelAppl,
  914. INPUT DateiName,
  915. INPUT '',
  916. OUTPUT Ja ).
  917. IF NOT Ja THEN DO:
  918. RUN FEHLER ( INPUT 1040 ).
  919. RETURN NO-APPLY.
  920. END.
  921. Zelle = 'A1'.
  922. excelAppl:Range(Zelle):SELECT.
  923. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + DatenName.
  924. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  925. RUN KOPF.
  926. Zelle = 'A1'.
  927. excelAppl:Range(Zelle):SELECT.
  928. excelAppl:Selection:ColumnWidth = 0.3.
  929. Zelle = 'O1'.
  930. excelAppl:Range(Zelle):SELECT.
  931. excelAppl:Selection:ColumnWidth = 0.3.
  932. FOR EACH tSpalten WHERE tSpalten.lAktiv:
  933. Zelle = CHR(64 + tSpalten.iSpalte)
  934. + ':'
  935. + CHR(64 + tSpalten.iSpalte).
  936. dZellBr = tSpalten.nBreite * nBreitFakt.
  937. excelAppl:Range(Zelle):SELECT.
  938. excelAppl:Selection:ColumnWidth = dZellBr.
  939. END.
  940. i1 = 4.
  941. i2 = 4.
  942. FOR EACH tSpalten
  943. WHERE NOT tSpalten.lAktiv
  944. BY tSpalten.iSpalte DESCENDING:
  945. Zelle = CHR(64 + tSpalten.iSpalte)
  946. + ':'
  947. + CHR(64 + tSpalten.iSpalte).
  948. dZellBr = tSpalten.nBreite * nBreitFakt.
  949. excelAppl:Range(Zelle):SELECT.
  950. excelAppl:Selection:ColumnWidth = dZellBr.
  951. excelAppl:Selection:DELETE.
  952. IF tSpalten.iSpalte > 10 THEN i2 = i2 - 1.
  953. ELSE i1 = i1 - 1.
  954. END.
  955. IF i1 > 0 THEN DO:
  956. Zelle = 'G4' + ':' + CHR(70 + i1) + '4'.
  957. excelAppl:Range(Zelle):SELECT.
  958. excelAppl:SELECTION:MergeCells = TRUE.
  959. excelAppl:Selection:FormulaR1C1 = xDat1.
  960. END.
  961. IF i2 > 0 THEN DO:
  962. Zelle = CHR(71 + i1) + '4:' + CHR(70 + i1 + i2) + '4'.
  963. excelAppl:Range(Zelle):SELECT.
  964. excelAppl:SELECTION:MergeCells = TRUE.
  965. excelAppl:Selection:FormulaR1C1 = xDat2.
  966. END.
  967. excelAppl:Cells:Select.
  968. excelAppl:Selection:Font:Size = nFontFakt.
  969. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  970. SESSION:SET-WAIT-STATE('').
  971. END PROCEDURE.
  972. /* _UIB-CODE-BLOCK-END */
  973. &ANALYZE-RESUME
  974. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage gArtikelumsatz
  975. PROCEDURE selectPage :
  976. /*------------------------------------------------------------------------------
  977. Purpose: Super Override
  978. Parameters:
  979. Notes:
  980. ------------------------------------------------------------------------------*/
  981. DEF INPUT PARAMETER piPageNum AS INT NO-UNDO.
  982. DEF VAR FMutFlag AS LOG NO-UNDO.
  983. DEF VAR MutProg AS CHAR NO-UNDO.
  984. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  985. DO WHILE TRUE:
  986. IF NOT FMutFlag THEN LEAVE.
  987. MutProg = DYNAMIC-FUNCTION('GETMUTPROG':U).
  988. IF MutProg <> THIS-PROCEDURE:FILE-NAME THEN LEAVE.
  989. RETURN NO-APPLY.
  990. END.
  991. CASE piPageNum:
  992. END CASE.
  993. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  994. CASE AktSeite:
  995. WHEN 1 THEN DO:
  996. /* RUN removeLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */
  997. /* RUN removeLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */
  998. END.
  999. END CASE.
  1000. RUN SUPER( INPUT piPageNum).
  1001. END PROCEDURE.
  1002. /* _UIB-CODE-BLOCK-END */
  1003. &ANALYZE-RESUME
  1004. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEMPTABELLE gArtikelumsatz
  1005. PROCEDURE TEMPTABELLE :
  1006. /*------------------------------------------------------------------------------
  1007. Purpose:
  1008. Parameters: <none>
  1009. Notes:
  1010. ------------------------------------------------------------------------------*/
  1011. DEF VAR ja AS LOG NO-UNDO.
  1012. DEF VAR Herst AS INT NO-UNDO.
  1013. DEF VAR Rundbetr AS DEC DECIMALS 4 NO-UNDO.
  1014. DEF VAR Netto AS DEC DECIMALS 4 NO-UNDO.
  1015. DEF VAR iArtnr AS INT INIT -1 NO-UNDO.
  1016. DEF VAR dDatum AS DATE NO-UNDO.
  1017. FOR EACH TWork:
  1018. DELETE TWork.
  1019. END.
  1020. Herst = INTEGER(CB_Hersteller:SCREEN-VALUE IN FRAME {&FRAME-NAME}) NO-ERROR.
  1021. IF ERROR-STATUS:ERROR THEN Herst = -1.
  1022. FOR EACH Artst USE-INDEX Artst-k1
  1023. WHERE Artst.Firma = Firma
  1024. AND Artst.Artnr >= F_VArtnr
  1025. AND Artst.Artnr <= F_BArtnr NO-LOCK:
  1026. IF Herst > -1 AND
  1027. Artst.Herst <> Herst THEN NEXT.
  1028. IF F_Wgr <> '' AND
  1029. LOOKUP(STRING(Artst.Wg_Grp,"999"), F_Wgr, ',') = 0 THEN NEXT.
  1030. IF F_Prodgrp <> '' AND
  1031. LOOKUP(STRING(Artst.Prod_Grp,"999"), F_ProdGrp, ',') = 0 THEN NEXT.
  1032. FOR EACH Artbw NO-LOCK USE-INDEX Artbw-k2
  1033. WHERE Artbw.Firma = Artst.Firma
  1034. AND Artbw.Artnr = Artst.Artnr
  1035. AND Artbw.Inhalt = Artst.Inhalt
  1036. AND Artbw.Jahr = Artst.Jahr
  1037. AND Artbw.Tr_Art < 11 :
  1038. IF T_Fakturiert THEN DO:
  1039. IF Artbw.Faknr = 0 THEN NEXT.
  1040. IF Artbw.Fak_Dat < F_KumBeg THEN NEXT.
  1041. IF Artbw.Fak_Dat > F_BisDat THEN NEXT.
  1042. dDatum = Artbw.Fak_Dat.
  1043. END.
  1044. ELSE DO:
  1045. IF Artbw.Datum < F_KumBeg THEN NEXT.
  1046. IF Artbw.Datum > F_BisDat THEN NEXT.
  1047. dDatum = Artbw.Datum.
  1048. END.
  1049. FIND FIRST TWork USE-INDEX TWork-k1
  1050. WHERE TWork.Artnr = Artbw.Artnr
  1051. AND TWork.Inhalt = Artbw.Inhalt
  1052. AND TWork.Jahr = Artbw.Jahr NO-ERROR.
  1053. IF NOT AVAILABLE TWork THEN DO:
  1054. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1
  1055. WHERE KGebinde.Firma = Artst.Firma
  1056. AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR.
  1057. IF NOT AVAILABLE KGebinde THEN DO:
  1058. IF Artst.Artnr = iArtnr THEN NEXT.
  1059. MESSAGE 'KGebinde ' Artst.KGeb_Cd ' von Artikel ' Artst.Artnr ' fehlt '
  1060. VIEW-AS ALERT-BOX.
  1061. iArtnr = Artst.Artnr.
  1062. NEXT.
  1063. END.
  1064. CREATE TWork.
  1065. ASSIGN TWork.Artnr = Artbw.Artnr
  1066. TWork.Inhalt = Artbw.Inhalt
  1067. TWork.Jahr = Artbw.Jahr
  1068. TWork.GebInhalt = KGebinde.Inhalt
  1069. tWork.KBez = KGebinde.KBez
  1070. TWork.RID = RECID(Artst)
  1071. TWork.Wgr = Artst.Wg_Grp
  1072. TWork.Pgr = Artst.Prod_Grp.
  1073. END.
  1074. Rundbetr = Artbw.Menge * TWork.GebInhalt.
  1075. Netto = Artbw.Net_Betr
  1076. - Artbw.Auf_Rab
  1077. - Artbw.Abh_Rab
  1078. - Artbw.Auf_Sp_Rab.
  1079. IF Artbw.MWST_Inkl THEN Netto = Netto * 100 / (100 + Artbw.MWST%).
  1080. IF dDatum >= F_VonDat THEN DO:
  1081. ASSIGN TWork.Menge = TWork.Menge + Artbw.Menge
  1082. TWork.Liter = TWork.Liter + Rundbetr
  1083. TWork.Ep = TWork.Ep + (Artbw.Menge * Artbw.Ep)
  1084. TWork.Betr = TWork.Betr + Netto.
  1085. END.
  1086. ASSIGN TWork.MeKum = TWork.MeKum + Artbw.Menge
  1087. TWork.LiKum = TWork.LiKum + Rundbetr
  1088. TWork.EpKum = TWork.EpKum + (Artbw.Menge * Artbw.Ep)
  1089. TWork.BeKum = TWork.BeKum + Netto.
  1090. END.
  1091. END.
  1092. FOR EACH TWork WHERE TWork.Menge = 0
  1093. AND TWork.MeKum = 0:
  1094. DELETE TWork.
  1095. END.
  1096. END PROCEDURE.
  1097. /* _UIB-CODE-BLOCK-END */
  1098. &ANALYZE-RESUME
  1099. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR gArtikelumsatz
  1100. PROCEDURE TOOLBAR :
  1101. /*------------------------------------------------------------------------------
  1102. Purpose:
  1103. Parameters: <none>
  1104. Notes:
  1105. ------------------------------------------------------------------------------*/
  1106. DEF INPUT PARAMETER pcAction AS CHAR NO-UNDO.
  1107. /*
  1108. RUN TOOLBAR IN h_dyntoolbar ( INPUT pcAction ).
  1109. */
  1110. END PROCEDURE.
  1111. /* _UIB-CODE-BLOCK-END */
  1112. &ANALYZE-RESUME
  1113. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject gArtikelumsatz
  1114. PROCEDURE viewObject :
  1115. /*------------------------------------------------------------------------------
  1116. Purpose: Super Override
  1117. Parameters:
  1118. Notes:
  1119. ------------------------------------------------------------------------------*/
  1120. /* Code placed here will execute PRIOR to standard behavior. */
  1121. RUN SUPER.
  1122. Selektion = DYNAMIC-FUNCTION('GETSELEKTION':U, INPUT '{&FRAME-NAME}' ) NO-ERROR.
  1123. IF Selektion = '?' OR
  1124. Selektion = ? THEN DO:
  1125. Selektion = 'AAAAAA' + '@'
  1126. + '' + '@'
  1127. + '' + '@'
  1128. + '000000' + '@'
  1129. + '999999' + '@'
  1130. + 'yes' + '@'
  1131. + 'yes' + '@'
  1132. + 'yes' + '@'
  1133. + 'yes' + '@'
  1134. + STRING(DATE(01,01,YEAR(TODAY)),'99.99.9999') + '@'
  1135. + STRING(DATE(12,31,YEAR(TODAY)),'99.99.9999') + '@'
  1136. + 'yes' + '@'
  1137. + 'yes' + '@'
  1138. + 'yes' + '@'
  1139. + STRING(DATE(01,01,YEAR(TODAY)),'99.99.9999').
  1140. END.
  1141. DO WITH FRAME {&FRAME-NAME}:
  1142. CB_Hersteller :SCREEN-VALUE = ENTRY( 1, Selektion, '@').
  1143. F_Wgr :SCREEN-VALUE = ENTRY( 2, Selektion, '@').
  1144. F_Prodgrp :SCREEN-VALUE = ENTRY( 3, Selektion, '@').
  1145. F_VArtnr :SCREEN-VALUE = ENTRY( 4, Selektion, '@').
  1146. F_BArtnr :SCREEN-VALUE = ENTRY( 5, Selektion, '@').
  1147. T_Fakturiert :SCREEN-VALUE = ENTRY( 6, Selektion, '@').
  1148. T_Menge :SCREEN-VALUE = ENTRY( 7, Selektion, '@').
  1149. T_Hektoliter :SCREEN-VALUE = ENTRY( 8, Selektion, '@').
  1150. T_Betrag :SCREEN-VALUE = ENTRY( 9, Selektion, '@').
  1151. F_VonDat :SCREEN-VALUE = ENTRY(10, Selektion, '@').
  1152. F_BisDat :SCREEN-VALUE = ENTRY(11, Selektion, '@').
  1153. T_MengeKum :SCREEN-VALUE = ENTRY(12, Selektion, '@').
  1154. T_HektoliterKum :SCREEN-VALUE = ENTRY(13, Selektion, '@').
  1155. T_BetragKum :SCREEN-VALUE = ENTRY(14, Selektion, '@').
  1156. F_KumBeg :SCREEN-VALUE = ENTRY(15, Selektion, '@').
  1157. END.
  1158. /* Code placed here will execute AFTER standard behavior. */
  1159. END PROCEDURE.
  1160. /* _UIB-CODE-BLOCK-END */
  1161. &ANALYZE-RESUME
  1162. /* ************************ Function Implementations ***************** */
  1163. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createSpaltenBreiten gArtikelumsatz
  1164. FUNCTION createSpaltenBreiten RETURNS DECIMAL
  1165. ( /* parameter-definitions */ ) :
  1166. /*------------------------------------------------------------------------------
  1167. Purpose:
  1168. Notes:
  1169. ------------------------------------------------------------------------------*/
  1170. DEF VAR nTotal AS DEC NO-UNDO.
  1171. DEF VAR iFaktor AS INT NO-UNDO.
  1172. DO WITH FRAME {&FRAME-NAME}:
  1173. CREATE tSpalten.
  1174. ASSIGN tSpalten.iSpalte = 2
  1175. tSpalten.cFeld = 'Artnr'
  1176. tSpalten.nBreite = 5
  1177. tSpalten.lAktiv = TRUE.
  1178. CREATE tSpalten.
  1179. ASSIGN tSpalten.iSpalte = 3
  1180. tSpalten.cFeld = 'Bez'
  1181. tSpalten.nBreite = 20
  1182. tSpalten.lAktiv = TRUE.
  1183. CREATE tSpalten.
  1184. ASSIGN tSpalten.iSpalte = 4
  1185. tSpalten.cFeld = 'Jahr'
  1186. tSpalten.nBreite = 4
  1187. tSpalten.lAktiv = TRUE.
  1188. CREATE tSpalten.
  1189. ASSIGN tSpalten.iSpalte = 5
  1190. tSpalten.cFeld = 'Alk%'
  1191. tSpalten.nBreite = 5
  1192. tSpalten.lAktiv = TRUE.
  1193. CREATE tSpalten.
  1194. ASSIGN tSpalten.iSpalte = 6
  1195. tSpalten.cFeld = 'Gebinde'
  1196. tSpalten.nBreite = 7
  1197. tSpalten.lAktiv = TRUE.
  1198. CREATE tSpalten.
  1199. ASSIGN tSpalten.iSpalte = 7
  1200. tSpalten.cFeld = 'Menge'
  1201. tSpalten.nBreite = 5
  1202. tSpalten.lAktiv = T_Menge.
  1203. CREATE tSpalten.
  1204. ASSIGN tSpalten.iSpalte = 8
  1205. tSpalten.cFeld = 'HL'
  1206. tSpalten.nBreite = 4
  1207. tSpalten.lAktiv = T_Hektoliter.
  1208. CREATE tSpalten.
  1209. ASSIGN tSpalten.iSpalte = 9
  1210. tSpalten.cFeld = 'Betrag'
  1211. tSpalten.nBreite = 7
  1212. tSpalten.lAktiv = T_Betrag.
  1213. CREATE tSpalten.
  1214. ASSIGN tSpalten.iSpalte = 10
  1215. tSpalten.cFeld = 'Marge'
  1216. tSpalten.nBreite = 5
  1217. tSpalten.lAktiv = T_Betrag.
  1218. CREATE tSpalten.
  1219. ASSIGN tSpalten.iSpalte = 11
  1220. tSpalten.cFeld = 'Menge'
  1221. tSpalten.nBreite = 5
  1222. tSpalten.lAktiv = T_MengeKum.
  1223. CREATE tSpalten.
  1224. ASSIGN tSpalten.iSpalte = 12
  1225. tSpalten.cFeld = 'HL'
  1226. tSpalten.nBreite = 4
  1227. tSpalten.lAktiv = T_HektoliterKum.
  1228. CREATE tSpalten.
  1229. ASSIGN tSpalten.iSpalte = 13
  1230. tSpalten.cFeld = 'Betrag'
  1231. tSpalten.nBreite = 7
  1232. tSpalten.lAktiv = T_BetragKum.
  1233. CREATE tSpalten.
  1234. ASSIGN tSpalten.iSpalte = 14
  1235. tSpalten.cFeld = 'Marge'
  1236. tSpalten.nBreite = 5
  1237. tSpalten.lAktiv = T_BetragKum.
  1238. END.
  1239. FOR EACH tSpalten WHERE tSpalten.lAktiv:
  1240. nTotal = nTotal + tSpalten.nBreite.
  1241. END.
  1242. RETURN nTotal.
  1243. END FUNCTION.
  1244. /* _UIB-CODE-BLOCK-END */
  1245. &ANALYZE-RESUME