g-prodgrpums.w 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gProdgrp
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gProdgrp
  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. DEFINE VARIABLE MaxPage AS INTEGER NO-UNDO.
  28. DEFINE VARIABLE AktSeite AS INTEGER NO-UNDO.
  29. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO.
  30. DEFINE VARIABLE Selektion AS CHARACTER NO-UNDO.
  31. DEFINE VARIABLE Firma AS CHARACTER NO-UNDO.
  32. DEFINE VARIABLE AdFirma AS CHARACTER NO-UNDO.
  33. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO.
  34. DEFINE VARIABLE DatenName AS CHARACTER NO-UNDO.
  35. DEFINE VARIABLE DateiName AS CHARACTER NO-UNDO.
  36. DEFINE VARIABLE VKnr AS INTEGER NO-UNDO.
  37. DEFINE VARIABLE FwSprcd AS INTEGER NO-UNDO.
  38. DEFINE VARIABLE xHerst AS CHARACTER NO-UNDO.
  39. DEFINE VARIABLE KumBegVj AS DATE NO-UNDO.
  40. DEFINE VARIABLE VonDatVj AS DATE NO-UNDO.
  41. DEFINE VARIABLE BisDatVj AS DATE NO-UNDO.
  42. DEFINE VARIABLE cInstallation AS CHARACTER NO-UNDO.
  43. DEFINE TEMP-TABLE TWork
  44. FIELD Wgr AS INTEGER
  45. FIELD Pgr AS INTEGER
  46. FIELD Artnr AS INTEGER
  47. FIELD Inhalt AS INTEGER
  48. FIELD Jahr AS INTEGER
  49. FIELD GebInhalt AS DECIMAL DECIMALS 4
  50. FIELD RID AS RECID
  51. FIELD MengeLf AS DECIMAL DECIMALS 4
  52. FIELD LiterLf AS DECIMAL DECIMALS 4
  53. FIELD BetrLf AS DECIMAL DECIMALS 4
  54. FIELD MeKumLf AS DECIMAL DECIMALS 4
  55. FIELD LiKumLf AS DECIMAL DECIMALS 4
  56. FIELD BeKumLf AS DECIMAL DECIMALS 4
  57. FIELD MengeVj AS DECIMAL DECIMALS 4
  58. FIELD LiterVj AS DECIMAL DECIMALS 4
  59. FIELD BetrVj AS DECIMAL DECIMALS 4
  60. FIELD MeKumVj AS DECIMAL DECIMALS 4
  61. FIELD LiKumVj AS DECIMAL DECIMALS 4
  62. FIELD BeKumVj AS DECIMAL DECIMALS 4
  63. INDEX TWork-k1
  64. Artnr
  65. Inhalt
  66. Jahr.
  67. /* _UIB-CODE-BLOCK-END */
  68. &ANALYZE-RESUME
  69. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  70. /* ******************** Preprocessor Definitions ******************** */
  71. &Scoped-define PROCEDURE-TYPE SmartDialog
  72. &Scoped-define DB-AWARE no
  73. &Scoped-define ADM-CONTAINER DIALOG-BOX
  74. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  75. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  76. &Scoped-define FRAME-NAME gProdgrp
  77. /* Standard List Definitions */
  78. &Scoped-Define ENABLED-OBJECTS CB_Hersteller F_Wgr F_Prodgrp F_VArtnr ~
  79. F_BArtnr F_VonDat F_BisDat F_KumBeg T_Verbuchte Btn_Excel Btn_Cancel ~
  80. RECT-39 RECT-41
  81. &Scoped-Define DISPLAYED-OBJECTS CB_Hersteller F_Wgr F_Prodgrp F_VArtnr ~
  82. F_BArtnr F_VonDat F_BisDat F_KumBeg T_Verbuchte
  83. /* Custom List Definitions */
  84. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  85. &Scoped-define List-5 Btn_Excel
  86. &Scoped-define List-6 CB_Hersteller F_Wgr F_Prodgrp F_VArtnr F_BArtnr ~
  87. F_VonDat F_BisDat F_KumBeg T_Verbuchte
  88. /* _UIB-PREPROCESSOR-BLOCK-END */
  89. &ANALYZE-RESUME
  90. /* *********************** Control Definitions ********************** */
  91. /* Define a dialog box */
  92. /* Definitions of the field level widgets */
  93. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  94. LABEL "&Abbrechen"
  95. SIZE 15 BY 1.14.
  96. DEFINE BUTTON Btn_Excel
  97. IMAGE-UP FILE "grafik/results%.ico":U
  98. IMAGE-INSENSITIVE FILE "grafik/results%.ico":U
  99. LABEL "Excel"
  100. SIZE 7 BY 1.81.
  101. DEFINE VARIABLE CB_Hersteller AS CHARACTER FORMAT "X(256)":U
  102. LABEL "Hersteller"
  103. VIEW-AS COMBO-BOX SORT INNER-LINES 5
  104. LIST-ITEM-PAIRS "Item 1","Item 1"
  105. DROP-DOWN-LIST
  106. SIZE 40 BY 1
  107. BGCOLOR 15 NO-UNDO.
  108. DEFINE VARIABLE F_BArtnr AS INTEGER FORMAT "999999":U INITIAL 0
  109. LABEL "-"
  110. VIEW-AS FILL-IN NATIVE
  111. SIZE 11 BY 1
  112. BGCOLOR 15 NO-UNDO.
  113. DEFINE VARIABLE F_BisDat AS DATE FORMAT "99.99.9999":U INITIAL 01/01/001
  114. LABEL "/"
  115. VIEW-AS FILL-IN NATIVE
  116. SIZE 16 BY 1
  117. BGCOLOR 15 NO-UNDO.
  118. DEFINE VARIABLE F_KumBeg AS DATE FORMAT "99.99.9999":U INITIAL 01/01/001
  119. LABEL "Kummulation seit"
  120. VIEW-AS FILL-IN NATIVE
  121. SIZE 16 BY 1
  122. BGCOLOR 15 NO-UNDO.
  123. DEFINE VARIABLE F_Prodgrp AS CHARACTER FORMAT "X(256)":U
  124. LABEL "Produktegruppen"
  125. VIEW-AS FILL-IN NATIVE
  126. SIZE 40 BY 1 TOOLTIP "Leer = Alle, Doppel-Klick = Auswahl"
  127. BGCOLOR 15 NO-UNDO.
  128. DEFINE VARIABLE F_VArtnr AS INTEGER FORMAT "999999":U INITIAL 0
  129. LABEL "von - bis Artikelnummer"
  130. VIEW-AS FILL-IN NATIVE
  131. SIZE 11 BY 1
  132. BGCOLOR 15 NO-UNDO.
  133. DEFINE VARIABLE F_VonDat AS DATE FORMAT "99.99.9999":U INITIAL 01/01/001
  134. LABEL "Datumbereich"
  135. VIEW-AS FILL-IN NATIVE
  136. SIZE 16 BY 1
  137. BGCOLOR 15 NO-UNDO.
  138. DEFINE VARIABLE F_Wgr AS CHARACTER FORMAT "X(256)":U
  139. LABEL "Warengruppen"
  140. VIEW-AS FILL-IN NATIVE
  141. SIZE 40 BY 1 TOOLTIP "Leer = Alle, Doppel-Klick = Auswahl"
  142. BGCOLOR 15 NO-UNDO.
  143. DEFINE RECTANGLE RECT-39
  144. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  145. SIZE 86 BY 5.67.
  146. DEFINE RECTANGLE RECT-41
  147. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  148. SIZE 86 BY 3.1.
  149. DEFINE VARIABLE T_Verbuchte AS LOGICAL INITIAL NO
  150. LABEL "nur verbuchte"
  151. VIEW-AS TOGGLE-BOX
  152. SIZE 24.4 BY 1 NO-UNDO.
  153. /* ************************ Frame Definitions *********************** */
  154. DEFINE FRAME gProdgrp
  155. CB_Hersteller AT ROW 1.52 COL 44 COLON-ALIGNED
  156. F_Wgr AT ROW 2.52 COL 44 COLON-ALIGNED
  157. F_Prodgrp AT ROW 3.52 COL 44 COLON-ALIGNED
  158. F_VArtnr AT ROW 4.52 COL 44 COLON-ALIGNED
  159. F_BArtnr AT ROW 4.52 COL 57 COLON-ALIGNED
  160. F_VonDat AT ROW 7.52 COL 44 COLON-ALIGNED
  161. F_BisDat AT ROW 7.52 COL 68 COLON-ALIGNED
  162. F_KumBeg AT ROW 8.52 COL 44 COLON-ALIGNED
  163. T_Verbuchte AT ROW 5.52 COL 45.8 WIDGET-ID 2
  164. Btn_Excel AT ROW 11.19 COL 79
  165. Btn_Cancel AT ROW 11.57 COL 4
  166. "Artikelselektion" VIEW-AS TEXT
  167. SIZE 24 BY 1 AT ROW 1.52 COL 5
  168. RECT-39 AT ROW 1.24 COL 2
  169. RECT-41 AT ROW 7.19 COL 2
  170. SPACE(0.99) SKIP(3.32)
  171. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  172. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  173. TITLE "Artikelumsatz"
  174. CANCEL-BUTTON Btn_Cancel.
  175. /* *********************** Procedure Settings ************************ */
  176. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  177. /* Settings for THIS-PROCEDURE
  178. Type: SmartDialog
  179. Allow: Basic,Browse,DB-Fields,Query,Smart
  180. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  181. Design Page: 1
  182. Other Settings: COMPILE
  183. */
  184. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  185. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gProdgrp
  186. /* ************************* Included-Libraries *********************** */
  187. {src/adm2/containr.i}
  188. /* _UIB-CODE-BLOCK-END */
  189. &ANALYZE-RESUME
  190. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  191. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  192. /* SETTINGS FOR DIALOG-BOX gProdgrp
  193. FRAME-NAME Custom */
  194. ASSIGN
  195. FRAME gProdgrp:SCROLLABLE = FALSE
  196. FRAME gProdgrp:HIDDEN = TRUE.
  197. /* SETTINGS FOR BUTTON Btn_Excel IN FRAME gProdgrp
  198. 5 */
  199. /* SETTINGS FOR COMBO-BOX CB_Hersteller IN FRAME gProdgrp
  200. 6 */
  201. /* SETTINGS FOR FILL-IN F_BArtnr IN FRAME gProdgrp
  202. 6 */
  203. /* SETTINGS FOR FILL-IN F_BisDat IN FRAME gProdgrp
  204. 6 */
  205. /* SETTINGS FOR FILL-IN F_KumBeg IN FRAME gProdgrp
  206. 6 */
  207. /* SETTINGS FOR FILL-IN F_Prodgrp IN FRAME gProdgrp
  208. 6 */
  209. /* SETTINGS FOR FILL-IN F_VArtnr IN FRAME gProdgrp
  210. 6 */
  211. /* SETTINGS FOR FILL-IN F_VonDat IN FRAME gProdgrp
  212. 6 */
  213. /* SETTINGS FOR FILL-IN F_Wgr IN FRAME gProdgrp
  214. 6 */
  215. /* SETTINGS FOR TOGGLE-BOX T_Verbuchte IN FRAME gProdgrp
  216. 6 */
  217. /* _RUN-TIME-ATTRIBUTES-END */
  218. &ANALYZE-RESUME
  219. /* Setting information for Queries and Browse Widgets fields */
  220. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gProdgrp
  221. /* Query rebuild information for DIALOG-BOX gProdgrp
  222. _Options = "SHARE-LOCK"
  223. _Query is NOT OPENED
  224. */ /* DIALOG-BOX gProdgrp */
  225. &ANALYZE-RESUME
  226. /* ************************ Control Triggers ************************ */
  227. &Scoped-define SELF-NAME gProdgrp
  228. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gProdgrp gProdgrp
  229. ON END-ERROR OF FRAME gProdgrp /* Artikelumsatz */
  230. DO:
  231. RUN ENDE.
  232. RETURN NO-APPLY.
  233. END.
  234. /* _UIB-CODE-BLOCK-END */
  235. &ANALYZE-RESUME
  236. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gProdgrp gProdgrp
  237. ON GO OF FRAME gProdgrp /* Artikelumsatz */
  238. DO:
  239. /*
  240. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR.
  241. */
  242. END.
  243. /* _UIB-CODE-BLOCK-END */
  244. &ANALYZE-RESUME
  245. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gProdgrp gProdgrp
  246. ON WINDOW-CLOSE OF FRAME gProdgrp /* Artikelumsatz */
  247. DO:
  248. RUN ENDE.
  249. RETURN NO-APPLY.
  250. END.
  251. /* _UIB-CODE-BLOCK-END */
  252. &ANALYZE-RESUME
  253. &Scoped-define SELF-NAME Btn_Cancel
  254. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gProdgrp
  255. ON CHOOSE OF Btn_Cancel IN FRAME gProdgrp /* Abbrechen */
  256. DO:
  257. RUN ENDE.
  258. RETURN NO-APPLY.
  259. END.
  260. /* _UIB-CODE-BLOCK-END */
  261. &ANALYZE-RESUME
  262. &Scoped-define SELF-NAME Btn_Excel
  263. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel gProdgrp
  264. ON CHOOSE OF Btn_Excel IN FRAME gProdgrp /* Excel */
  265. DO:
  266. Btn_Excel:HIDDEN = TRUE.
  267. RUN REPORT.
  268. Btn_Excel:HIDDEN = FALSE.
  269. RUN ENDE.
  270. END.
  271. /* _UIB-CODE-BLOCK-END */
  272. &ANALYZE-RESUME
  273. &Scoped-define SELF-NAME F_Prodgrp
  274. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Prodgrp gProdgrp
  275. ON LEFT-MOUSE-DBLCLICK OF F_Prodgrp IN FRAME gProdgrp /* Produktegruppen */
  276. DO:
  277. IF F_Wgr:SCREEN-VALUE <> ''
  278. THEN RUN 'g-auswahl-pgr.w':U ( INPUT F_Wgr:HANDLE, INPUT SELF ).
  279. END.
  280. /* _UIB-CODE-BLOCK-END */
  281. &ANALYZE-RESUME
  282. &Scoped-define SELF-NAME F_Wgr
  283. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Wgr gProdgrp
  284. ON LEFT-MOUSE-DBLCLICK OF F_Wgr IN FRAME gProdgrp /* Warengruppen */
  285. DO:
  286. RUN 'g-auswahl-wgr.w':U ( INPUT SELF ).
  287. END.
  288. /* _UIB-CODE-BLOCK-END */
  289. &ANALYZE-RESUME
  290. &UNDEFINE SELF-NAME
  291. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gProdgrp
  292. /* *************************** Main Block *************************** */
  293. MaxPage = 1.
  294. AktSeite = 1.
  295. SESSION:DATA-ENTRY-RETURN = TRUE.
  296. SUBSCRIBE TO 'TOOLBAR' ANYWHERE.
  297. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  298. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  299. FwSprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR.
  300. /* TRIGGERS ------------------------------------------------------ */
  301. ON 'ALT-CURSOR-RIGHT':U OF FRAME {&FRAME-NAME} ANYWHERE
  302. DO:
  303. RUN NEXTPAGE.
  304. END.
  305. ON 'ALT-CURSOR-LEFT':U OF FRAME {&FRAME-NAME} ANYWHERE
  306. DO:
  307. RUN PREVPAGE.
  308. END.
  309. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE
  310. DO:
  311. RUN ENTRY_CURSOR.
  312. END.
  313. ON 'RETURN':U OF CB_Hersteller, F_VonDat, F_BisDat, F_KumBeg
  314. IN FRAME {&FRAME-NAME}
  315. DO:
  316. APPLY 'TAB' TO SELF.
  317. RETURN NO-APPLY.
  318. END.
  319. /* ------------------------------------------------------------------ */
  320. {src/adm2/dialogmn.i}
  321. /* _UIB-CODE-BLOCK-END */
  322. &ANALYZE-RESUME
  323. /* ********************** Internal Procedures *********************** */
  324. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gProdgrp _ADM-CREATE-OBJECTS
  325. PROCEDURE adm-create-objects :
  326. /*------------------------------------------------------------------------------
  327. Purpose: Create handles for all SmartObjects used in this procedure.
  328. After SmartObjects are initialized, then SmartLinks are added.
  329. Parameters: <none>
  330. ------------------------------------------------------------------------------*/
  331. END PROCEDURE.
  332. /* _UIB-CODE-BLOCK-END */
  333. &ANALYZE-RESUME
  334. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BEREINIGEN gProdgrp
  335. PROCEDURE BEREINIGEN :
  336. /*------------------------------------------------------------------------------
  337. Purpose:
  338. Parameters: <none>
  339. Notes:
  340. ------------------------------------------------------------------------------*/
  341. DEFINE INPUT PARAMETER ipFeld AS HANDLE NO-UNDO.
  342. DEFINE VARIABLE Inhalt AS CHARACTER NO-UNDO.
  343. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  344. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  345. Inhalt = ''.
  346. DO ix = 1 TO NUM-ENTRIES(ipFeld:SCREEN-VALUE, ','):
  347. i1 = INTEGER(ENTRY(ix, ipFeld:SCREEN-VALUE, ',')) NO-ERROR.
  348. IF ERROR-STATUS:ERROR THEN NEXT.
  349. Inhalt = Inhalt + STRING(i1,'999') + ','.
  350. END.
  351. Inhalt = SUBSTRING(Inhalt,01,LENGTH(Inhalt) - 1).
  352. ipFeld:SCREEN-VALUE = Inhalt.
  353. END PROCEDURE.
  354. /* _UIB-CODE-BLOCK-END */
  355. &ANALYZE-RESUME
  356. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage gProdgrp
  357. PROCEDURE changePage :
  358. /*------------------------------------------------------------------------------
  359. Purpose: Super Override
  360. Parameters:
  361. Notes:
  362. ------------------------------------------------------------------------------*/
  363. /* Code placed here will execute PRIOR to standard behavior. */
  364. RUN SUPER.
  365. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  366. CASE AktSeite:
  367. WHEN 1 THEN
  368. DO:
  369. /* RUN addLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */
  370. /* RUN addLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */
  371. /* RUN ToolbarInit ( INPUT h_d-auftr ). */
  372. RUN ENTRY_CURSOR.
  373. END.
  374. WHEN 2 THEN
  375. DO:
  376. RUN ENTRY_CURSOR.
  377. END.
  378. END CASE.
  379. END PROCEDURE.
  380. /* _UIB-CODE-BLOCK-END */
  381. &ANALYZE-RESUME
  382. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gProdgrp _DEFAULT-DISABLE
  383. PROCEDURE disable_UI :
  384. /*------------------------------------------------------------------------------
  385. Purpose: DISABLE the User Interface
  386. Parameters: <none>
  387. Notes: Here we clean-up the user-interface by deleting
  388. dynamic widgets we have created and/or hide
  389. frames. This procedure is usually called when
  390. we are ready to "clean-up" after running.
  391. ------------------------------------------------------------------------------*/
  392. /* Hide all frames. */
  393. HIDE FRAME gProdgrp.
  394. END PROCEDURE.
  395. /* _UIB-CODE-BLOCK-END */
  396. &ANALYZE-RESUME
  397. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gProdgrp
  398. PROCEDURE enableObject :
  399. /* ------------------------------------------------------------------------------ */
  400. /* Purpose: Super Override */
  401. /* Parameters: */
  402. /* Notes: */
  403. /* ------------------------------------------------------------------------------ */
  404. /* Code placed here will execute PRIOR to standard behavior. */
  405. RUN SUPER.
  406. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR.
  407. RUN COMBO_HERSTELLER ( CB_Hersteller:HANDLE ).
  408. CB_Hersteller:ADD-LAST ( 'Alle', 'AAAAAA' ).
  409. cInstallation = DYNAMIC-FUNCTION ('getInstallation':U) NO-ERROR.
  410. END PROCEDURE.
  411. /* _UIB-CODE-BLOCK-END */
  412. &ANALYZE-RESUME
  413. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gProdgrp _DEFAULT-ENABLE
  414. PROCEDURE enable_UI :
  415. /*------------------------------------------------------------------------------
  416. Purpose: ENABLE the User Interface
  417. Parameters: <none>
  418. Notes: Here we display/view/enable the widgets in the
  419. user-interface. In addition, OPEN all queries
  420. associated with each FRAME and BROWSE.
  421. These statements here are based on the "Other
  422. Settings" section of the widget Property Sheets.
  423. ------------------------------------------------------------------------------*/
  424. DISPLAY CB_Hersteller F_Wgr F_Prodgrp F_VArtnr F_BArtnr F_VonDat F_BisDat
  425. F_KumBeg T_Verbuchte
  426. WITH FRAME gProdgrp.
  427. ENABLE CB_Hersteller F_Wgr F_Prodgrp F_VArtnr F_BArtnr F_VonDat F_BisDat
  428. F_KumBeg T_Verbuchte Btn_Excel Btn_Cancel RECT-39 RECT-41
  429. WITH FRAME gProdgrp.
  430. VIEW FRAME gProdgrp.
  431. {&OPEN-BROWSERS-IN-QUERY-gProdgrp}
  432. END PROCEDURE.
  433. /* _UIB-CODE-BLOCK-END */
  434. &ANALYZE-RESUME
  435. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gProdgrp
  436. PROCEDURE ENDE :
  437. /*------------------------------------------------------------------------------
  438. Purpose:
  439. Parameters: <none>
  440. Notes:
  441. ------------------------------------------------------------------------------*/
  442. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  443. IF AktSeite > 1 THEN
  444. DO:
  445. RUN selectPage ( INPUT 1 ).
  446. RETURN NO-APPLY.
  447. END.
  448. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  449. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  450. RETURN NO-APPLY.
  451. END PROCEDURE.
  452. /* _UIB-CODE-BLOCK-END */
  453. &ANALYZE-RESUME
  454. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR gProdgrp
  455. PROCEDURE ENTRY_CURSOR :
  456. /*------------------------------------------------------------------------------
  457. Purpose:
  458. Parameters: <none>
  459. Notes:
  460. ------------------------------------------------------------------------------*/
  461. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  462. CASE AktSeite:
  463. /* WHEN 1 THEN RUN applyEntry IN h_v-adresse ( INPUT ? ). */
  464. /* WHEN 2 THEN RUN applyEntry IN h_f-adrkomm ( INPUT ? ). */
  465. /* WHEN 3 THEN RUN applyEntry IN h_b-auftbb ( INPUT ? ). */
  466. /* WHEN 4 THEN RUN applyEntry IN h_b-aufdet ( INPUT ? ). */
  467. /* WHEN 5 THEN RUN applyEntry IN h_b-aufstreu ( INPUT ? ). */
  468. /* WHEN 6 THEN RUN applyEntry IN h_b-auffak ( INPUT ? ). */
  469. /* WHEN 7 THEN RUN applyEntry IN h_b-position ( INPUT ? ). */
  470. END CASE.
  471. RETURN NO-APPLY.
  472. END PROCEDURE.
  473. /* _UIB-CODE-BLOCK-END */
  474. &ANALYZE-RESUME
  475. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gProdgrp
  476. PROCEDURE exitObject :
  477. /*------------------------------------------------------------------------------
  478. Purpose: Super Override
  479. Parameters:
  480. Notes:
  481. ------------------------------------------------------------------------------*/
  482. RUN ENDE.
  483. RETURN NO-APPLY.
  484. END PROCEDURE.
  485. /* _UIB-CODE-BLOCK-END */
  486. &ANALYZE-RESUME
  487. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE gProdgrp
  488. PROCEDURE NEXTPAGE :
  489. /*------------------------------------------------------------------------------
  490. Purpose:
  491. Parameters: <none>
  492. Notes:
  493. ------------------------------------------------------------------------------*/
  494. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  495. IF AktSeite = MaxPage THEN AktSeite = 1.
  496. ELSE AktSeite = AktSeite + 1.
  497. RUN selectPage ( INPUT AktSeite ).
  498. END PROCEDURE.
  499. /* _UIB-CODE-BLOCK-END */
  500. &ANALYZE-RESUME
  501. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREVPAGE gProdgrp
  502. PROCEDURE PREVPAGE :
  503. /*------------------------------------------------------------------------------
  504. Purpose:
  505. Parameters: <none>
  506. Notes:
  507. ------------------------------------------------------------------------------*/
  508. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  509. IF AktSeite = 1 THEN AktSeite = MaxPage.
  510. ELSE AktSeite = AktSeite - 1.
  511. RUN selectPage ( INPUT AktSeite ).
  512. END PROCEDURE.
  513. /* _UIB-CODE-BLOCK-END */
  514. &ANALYZE-RESUME
  515. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gProdgrp
  516. PROCEDURE REPORT :
  517. /*------------------------------------------------------------------------------
  518. Purpose:
  519. Parameters: <none>
  520. Notes:
  521. ------------------------------------------------------------------------------*/
  522. DEFINE VARIABLE Fenster AS HANDLE NO-UNDO.
  523. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  524. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  525. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  526. DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
  527. DEFINE VARIABLE Ja AS LOG NO-UNDO.
  528. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO.
  529. DEFINE VARIABLE xDat1 AS CHARACTER NO-UNDO.
  530. DEFINE VARIABLE xDat2 AS CHARACTER NO-UNDO.
  531. DEFINE VARIABLE Totale AS DECIMAL DECIMALS 4
  532. EXTENT 20 NO-UNDO.
  533. DEFINE VARIABLE cBreite AS CHARACTER NO-UNDO
  534. INIT '0.3,5.5,22,3,3,7,7,6.5,8,7,6.5,8'.
  535. DEFINE VARIABLE Faktor AS DECIMAL DECIMALS 4 NO-UNDO.
  536. DEFINE VARIABLE Punkt AS DECIMAL NO-UNDO INIT 8.
  537. DEFINE VARIABLE cWgr AS CHARACTER NO-UNDO.
  538. DEFINE VARIABLE cPgr AS CHARACTER NO-UNDO.
  539. DO WITH FRAME {&FRAME-NAME}:
  540. RUN BEREINIGEN ( INPUT F_Wgr :HANDLE ).
  541. RUN BEREINIGEN ( INPUT F_Prodgrp:HANDLE ).
  542. ASSIGN {&List-6}.
  543. IF F_VArtnr = 0 AND F_BArtnr = 0 THEN F_BArtnr = 999999.
  544. IF F_BArtnr < F_VArtnr THEN F_BArtnr = F_VArtnr.
  545. IF F_VonDat = ? THEN F_VonDat = DATE(MONTH(TODAY),01,YEAR(TODAY)).
  546. IF F_BisDat = ? THEN F_BisDat = DATE(12,31,YEAR(TODAY)).
  547. IF F_KumBeg = ? THEN F_KumBeg = DATE(01,01,YEAR(TODAY)).
  548. Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION NO-ERROR.
  549. Fenster = Fenster:FIRST-CHILD NO-ERROR.
  550. Selektion = ''.
  551. DO WHILE VALID-HANDLE(Fenster):
  552. DO WHILE TRUE:
  553. IF Fenster:TYPE = 'RECTANGLE' THEN LEAVE.
  554. IF Fenster:TYPE = 'BUTTON' THEN LEAVE.
  555. IF Fenster:TYPE = 'TEXT' THEN LEAVE.
  556. IF Fenster:TYPE = 'LITERAL' THEN LEAVE.
  557. Selektion = Selektion + Fenster:SCREEN-VALUE + '@'.
  558. LEAVE.
  559. END.
  560. Fenster = Fenster:NEXT-SIBLING.
  561. END.
  562. Selektion = SUBSTRING(Selektion,01,LENGTH(Selektion) - 1).
  563. DISPLAY {&List-6}.
  564. END.
  565. DYNAMIC-FUNCTION('SETSELEKTION':U, INPUT '{&FRAME-NAME}',
  566. INPUT Selektion ) NO-ERROR.
  567. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  568. DatenName = 'Prodgrpumsätze.txt'.
  569. DateiName = SUBSTITUTE('Prodgrpumsätze_&1.xls', cInstallation) + CHR(01) + SUBSTITUTE('Prodgrpumsätze_&1.xls', cInstallation).
  570. DO WHILE TRUE:
  571. RUN CREATEDATEI ( INPUT DateiName ).
  572. IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE.
  573. CASE RETURN-VALUE:
  574. WHEN 'ERROR-PARAMETER' THEN
  575. DO:
  576. RUN FEHLER ( INPUT 1036 ).
  577. RETURN NO-APPLY.
  578. END.
  579. WHEN 'ERROR-LOESCHEN' THEN
  580. DO:
  581. RUN FEHLER ( INPUT 1037 ).
  582. RETURN NO-APPLY.
  583. END.
  584. WHEN 'ERROR-VORLAGE' THEN
  585. DO:
  586. RUN FEHLER ( INPUT 1038 ).
  587. RETURN NO-APPLY.
  588. END.
  589. OTHERWISE
  590. DO:
  591. MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR.
  592. RETURN NO-APPLY.
  593. END.
  594. END CASE.
  595. LEAVE.
  596. END.
  597. DateiName = RETURN-VALUE.
  598. DO WHILE TRUE:
  599. RUN CREATEDATEI ( INPUT DatenName ).
  600. IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE.
  601. CASE RETURN-VALUE:
  602. WHEN 'ERROR-PARAMETER' THEN
  603. DO:
  604. RUN FEHLER ( INPUT 1036 ).
  605. RETURN NO-APPLY.
  606. END.
  607. WHEN 'ERROR-LOESCHEN' THEN
  608. DO:
  609. RUN FEHLER ( INPUT 1037 ).
  610. RETURN NO-APPLY.
  611. END.
  612. WHEN 'ERROR-VORLAGE' THEN
  613. DO:
  614. RUN FEHLER ( INPUT 1038 ).
  615. RETURN NO-APPLY.
  616. END.
  617. OTHERWISE
  618. DO:
  619. MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR.
  620. RETURN NO-APPLY.
  621. END.
  622. END CASE.
  623. LEAVE.
  624. END.
  625. DatenName = RETURN-VALUE.
  626. SESSION:SET-WAIT-STATE('GENERAL').
  627. RUN TEMPTABELLE.
  628. Totale = 0.
  629. xDat1 = STRING(F_VonDat,'99.99.9999') + ' - '
  630. + STRING(F_BisDat,'99.99.9999').
  631. xDat2 = STRING(F_KumBeg,'99.99.9999') + ' - '
  632. + STRING(F_BisDat,'99.99.9999').
  633. i1 = LOOKUP(CB_Hersteller:SCREEN-VALUE, CB_Hersteller:LIST-ITEM-PAIRS, ';').
  634. xHerst = ENTRY(i1 - 1, CB_Hersteller:LIST-ITEM-PAIRS, ';').
  635. OUTPUT TO VALUE(DatenName).
  636. PUT CONTROL '£££££££'
  637. STRING(F_VonDat,'99.99.9999')
  638. ' - '
  639. STRING(F_BisDat,'99.99.9999')
  640. '£££'
  641. STRING(F_KumBeg,'99.99.9999')
  642. ' - '
  643. STRING(F_BisDat,'99.99.9999')
  644. '£££'
  645. STRING(VonDatVj,'99.99.9999')
  646. ' - '
  647. STRING(BisDatVj,'99.99.9999')
  648. '£££'
  649. STRING(KumBegVj,'99.99.9999')
  650. ' - '
  651. STRING(BisDatVj,'99.99.9999')
  652. CHR(10)
  653. '£Wgr£Warengruppe£Pgr£Produktegruppe£WgrPgr£Menge£HL£Betrag£Menge£HL£Betrag£Menge£HL£Betrag£Menge£HL£Betrag'
  654. CHR(10).
  655. FOR EACH TWork USE-INDEX TWork-k1
  656. BREAK BY TWork.Wgr
  657. BY TWork.Pgr
  658. BY TWork.Artnr
  659. BY TWork.Inhalt
  660. BY TWork.Jahr :
  661. IF FIRST-OF ( TWork.Wgr ) THEN
  662. DO:
  663. FIND WarenGrp WHERE Warengrp.Firma = Firma
  664. AND Warengrp.Wgr = TWork.Wgr NO-LOCK NO-ERROR.
  665. IF AVAILABLE WarenGrp THEN cWgr = WarenGrp.Bez1.
  666. ELSE cWgr = '??????????'.
  667. END.
  668. IF FIRST-OF ( TWork.Pgr ) THEN
  669. DO:
  670. Totale = 0.
  671. FIND ProdGrp WHERE Prodgrp.Firma = Firma
  672. AND Prodgrp.Wgr = TWork.Wgr
  673. AND Prodgrp.Prod_Grp = TWork.Pgr NO-LOCK NO-ERROR.
  674. IF AVAILABLE ProdGrp THEN cPgr = ProdGrp.Bez1.
  675. ELSE cPgr = '??????????'.
  676. END.
  677. FIND Artst WHERE RECID(Artst) = TWork.RID NO-ERROR.
  678. ASSIGN
  679. Totale[01] = Totale[01] + TWork.MengeLf
  680. Totale[02] = Totale[02] + TWork.LiterLf
  681. Totale[03] = Totale[03] + TWork.BetrLf
  682. Totale[04] = Totale[04] + TWork.MeKumLf
  683. Totale[05] = Totale[05] + TWork.LiKumLf
  684. Totale[06] = Totale[06] + TWork.BeKumLf
  685. Totale[07] = Totale[07] + TWork.MengeVj
  686. Totale[08] = Totale[08] + TWork.LiterVj
  687. Totale[09] = Totale[09] + TWork.BetrVj
  688. Totale[10] = Totale[10] + TWork.MeKumVj.
  689. Totale[11] = Totale[11] + TWork.LiKumVj.
  690. Totale[12] = Totale[12] + TWork.BeKumVj.
  691. IF NOT LAST-OF ( TWork.Pgr) THEN NEXT.
  692. PUT CONTROL '£'
  693. STRING(TWork.Wgr,'999')
  694. '£'
  695. cWgr
  696. '£'
  697. STRING(TWork.Pgr,'999')
  698. '£'
  699. cPgr
  700. '£'
  701. STRING(TWork.Wgr,'999')
  702. STRING(TWork.Pgr,'999').
  703. DO ix = 1 TO 12:
  704. CASE ix:
  705. WHEN 2 OR
  706. WHEN 5 OR
  707. WHEN 8 OR
  708. WHEN 11 THEN
  709. Rundbetr = Totale[ix] / 10000.
  710. OTHERWISE
  711. Rundbetr = Totale[ix].
  712. END CASE.
  713. PUT CONTROL '£'
  714. TRIM(STRING(Rundbetr,'>>>>>>>>9-')).
  715. END.
  716. PUT CONTROL CHR(10).
  717. END.
  718. OUTPUT CLOSE.
  719. DO WHILE TRUE:
  720. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  721. IF NOT VALID-HANDLE(excelAppl) THEN
  722. DO:
  723. RUN FEHLER ( INPUT 1035 ).
  724. RETURN NO-APPLY.
  725. END.
  726. LEAVE.
  727. END.
  728. RUN OPENEXCEL ( INPUT excelAppl,
  729. INPUT DateiName,
  730. INPUT '',
  731. OUTPUT Ja ).
  732. IF NOT Ja THEN
  733. DO:
  734. RUN FEHLER ( INPUT 1040 ).
  735. RETURN NO-APPLY.
  736. END.
  737. ExcelAppl:Sheets("Tabelle"):Select.
  738. Zelle = 'A1'.
  739. excelAppl:Range(Zelle):SELECT.
  740. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + DatenName.
  741. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  742. Zelle = 'A1'.
  743. excelAppl:Range(Zelle):SELECT.
  744. excelAppl:Selection:ColumnWidth = 0.3.
  745. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  746. SESSION:SET-WAIT-STATE('').
  747. END PROCEDURE.
  748. /* _UIB-CODE-BLOCK-END */
  749. &ANALYZE-RESUME
  750. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage gProdgrp
  751. PROCEDURE selectPage :
  752. /*------------------------------------------------------------------------------
  753. Purpose: Super Override
  754. Parameters:
  755. Notes:
  756. ------------------------------------------------------------------------------*/
  757. DEFINE INPUT PARAMETER piPageNum AS INTEGER NO-UNDO.
  758. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO.
  759. DEFINE VARIABLE MutProg AS CHARACTER NO-UNDO.
  760. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  761. DO WHILE TRUE:
  762. IF NOT FMutFlag THEN LEAVE.
  763. MutProg = DYNAMIC-FUNCTION('GETMUTPROG':U).
  764. IF MutProg <> THIS-PROCEDURE:FILE-NAME THEN LEAVE.
  765. RETURN NO-APPLY.
  766. END.
  767. CASE piPageNum:
  768. END CASE.
  769. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  770. CASE AktSeite:
  771. WHEN 1 THEN
  772. DO:
  773. /* RUN removeLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */
  774. /* RUN removeLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */
  775. END.
  776. END CASE.
  777. RUN SUPER( INPUT piPageNum).
  778. END PROCEDURE.
  779. /* _UIB-CODE-BLOCK-END */
  780. &ANALYZE-RESUME
  781. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEMPTABELLE gProdgrp
  782. PROCEDURE TEMPTABELLE :
  783. /*------------------------------------------------------------------------------
  784. Purpose:
  785. Parameters: <none>
  786. Notes:
  787. ------------------------------------------------------------------------------*/
  788. DEFINE VARIABLE ja AS LOG NO-UNDO.
  789. DEFINE VARIABLE Herst AS INTEGER NO-UNDO.
  790. DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
  791. DEFINE VARIABLE Netto AS DECIMAL DECIMALS 4 NO-UNDO.
  792. DEFINE VARIABLE dDatum AS DATE NO-UNDO.
  793. FOR EACH TWork:
  794. DELETE TWork.
  795. END.
  796. Herst = INTEGER(CB_Hersteller:SCREEN-VALUE IN FRAME {&FRAME-NAME}) NO-ERROR.
  797. IF ERROR-STATUS:ERROR THEN Herst = -1.
  798. KumBegVj = DATE(MONTH(F_KumBeg),DAY(F_KumBeg),YEAR(F_KumBeg) - 1) NO-ERROR.
  799. IF ERROR-STATUS:ERROR THEN
  800. KumBegVj = DATE(MONTH(F_KumBeg),DAY(F_KumBeg - 1),YEAR(F_KumBeg) - 1) NO-ERROR.
  801. VonDatVj = DATE(MONTH(F_VonDat),DAY(F_VonDat),YEAR(F_VonDat) - 1) NO-ERROR.
  802. IF ERROR-STATUS:ERROR THEN
  803. VonDatVj = DATE(MONTH(F_VonDat),DAY(F_VonDat - 1),YEAR(F_VonDat) - 1) NO-ERROR.
  804. BisDatVj = DATE(MONTH(F_BisDat),DAY(F_BisDat),YEAR(F_BisDat) - 1) NO-ERROR.
  805. IF ERROR-STATUS:ERROR THEN
  806. BisDatVj = DATE(MONTH(F_BisDat),DAY(F_BisDat - 1),YEAR(F_BisDat) - 1) NO-ERROR.
  807. FOR EACH Artst USE-INDEX Artst-k1
  808. WHERE Artst.Firma = Firma
  809. AND Artst.Artnr >= F_VArtnr
  810. AND Artst.Artnr <= F_BArtnr NO-LOCK:
  811. IF Herst > -1 AND
  812. Artst.Herst <> Herst THEN NEXT.
  813. IF F_Wgr <> '' AND
  814. LOOKUP(STRING(Artst.Wg_Grp,"999"), F_Wgr, ',') = 0 THEN NEXT.
  815. IF F_Prodgrp <> '' AND
  816. LOOKUP(STRING(Artst.Prod_Grp,"999"), F_ProdGrp, ',') = 0 THEN NEXT.
  817. FOR EACH Artbw NO-LOCK USE-INDEX Artbw-k2
  818. WHERE Artbw.Firma = Artst.Firma
  819. AND Artbw.Artnr = Artst.Artnr
  820. AND Artbw.Inhalt = Artst.Inhalt
  821. AND Artbw.Jahr = Artst.Jahr
  822. AND Artbw.Tr_Art < 11 :
  823. IF T_Verbuchte THEN dDatum = Artbw.Fak_Dat.
  824. ELSE dDatum = Artbw.Datum.
  825. IF dDatum = ? THEN NEXT.
  826. IF dDatum < F_KumBeg THEN NEXT.
  827. IF dDatum > F_BisDat THEN NEXT.
  828. FIND FIRST TWork USE-INDEX TWork-k1
  829. WHERE TWork.Artnr = Artbw.Artnr
  830. AND TWork.Inhalt = Artbw.Inhalt
  831. AND TWork.Jahr = Artbw.Jahr NO-ERROR.
  832. IF NOT AVAILABLE TWork THEN
  833. DO:
  834. FIND KGebinde USE-INDEX KGebinde-k1
  835. WHERE KGebinde.Firma = Artst.Firma
  836. AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-LOCK.
  837. CREATE TWork.
  838. ASSIGN
  839. TWork.Artnr = Artbw.Artnr
  840. TWork.Inhalt = Artbw.Inhalt
  841. TWork.Jahr = Artbw.Jahr
  842. TWork.GebInhalt = KGebinde.Inhalt
  843. TWork.RID = RECID(Artst)
  844. TWork.Wgr = Artst.Wg_Grp
  845. TWork.Pgr = Artst.Prod_Grp.
  846. END.
  847. Rundbetr = Artbw.Menge * TWork.GebInhalt.
  848. Netto = Artbw.Net_Betr
  849. - Artbw.Auf_Rab
  850. - Artbw.Abh_Rab
  851. - Artbw.Auf_Sp_Rab.
  852. IF Artbw.MWST_Inkl THEN Netto = Netto * 100 / (100 + Artbw.MWST%).
  853. IF dDatum >= F_VonDat THEN
  854. DO:
  855. ASSIGN
  856. TWork.MengeLf = TWork.MengeLf + Artbw.Menge
  857. TWork.LiterLf = TWork.LiterLf + Rundbetr
  858. TWork.BetrLf = TWork.BetrLf + Netto.
  859. END.
  860. ASSIGN
  861. TWork.MeKumLf = TWork.MeKumLf + Artbw.Menge
  862. TWork.LiKumLf = TWork.LiKumLf + Rundbetr
  863. TWork.BeKumLf = TWork.BeKumLf + Netto.
  864. END.
  865. FOR EACH Artbw NO-LOCK USE-INDEX Artbw-k2
  866. WHERE Artbw.Firma = Artst.Firma
  867. AND Artbw.Artnr = Artst.Artnr
  868. AND Artbw.Inhalt = Artst.Inhalt
  869. AND Artbw.Jahr = Artst.Jahr
  870. AND Artbw.Tr_Art < 11 :
  871. IF T_Verbuchte THEN dDatum = Artbw.Fak_Dat.
  872. ELSE dDatum = Artbw.Datum.
  873. IF dDatum = ? THEN NEXT.
  874. IF dDatum < KumBegVj THEN NEXT.
  875. IF dDatum > BisDatVj THEN NEXT.
  876. FIND FIRST TWork USE-INDEX TWork-k1
  877. WHERE TWork.Artnr = Artbw.Artnr
  878. AND TWork.Inhalt = Artbw.Inhalt
  879. AND TWork.Jahr = Artbw.Jahr NO-ERROR.
  880. IF NOT AVAILABLE TWork THEN
  881. DO:
  882. FIND KGebinde USE-INDEX KGebinde-k1
  883. WHERE KGebinde.Firma = Artst.Firma
  884. AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-LOCK.
  885. CREATE TWork.
  886. ASSIGN
  887. TWork.Artnr = Artbw.Artnr
  888. TWork.Inhalt = Artbw.Inhalt
  889. TWork.Jahr = Artbw.Jahr
  890. TWork.GebInhalt = KGebinde.Inhalt
  891. TWork.RID = RECID(Artst)
  892. TWork.Wgr = Artst.Wg_Grp
  893. TWork.Pgr = Artst.Prod_Grp.
  894. END.
  895. Rundbetr = Artbw.Menge * TWork.GebInhalt.
  896. Netto = Artbw.Net_Betr
  897. - Artbw.Auf_Rab
  898. - Artbw.Abh_Rab
  899. - Artbw.Auf_Sp_Rab.
  900. IF Artbw.MWST_Inkl THEN Netto = Netto * 100 / (100 + Artbw.MWST%).
  901. IF dDatum >= VonDatVj THEN
  902. DO:
  903. ASSIGN
  904. TWork.MengeVj = TWork.MengeVj + Artbw.Menge
  905. TWork.LiterVj = TWork.LiterVj + Rundbetr
  906. TWork.BetrVj = TWork.BetrVj + Netto.
  907. END.
  908. ASSIGN
  909. TWork.MeKumVj = TWork.MeKumVj + Artbw.Menge
  910. TWork.LiKumVj = TWork.LiKumVj + Rundbetr
  911. TWork.BeKumVj = TWork.BeKumVj + Netto.
  912. END.
  913. END.
  914. FOR EACH TWork WHERE TWork.MengeLf = 0
  915. AND TWork.MeKumLf = 0
  916. AND TWork.MeKumVj = 0:
  917. DELETE TWork.
  918. END.
  919. END PROCEDURE.
  920. /* _UIB-CODE-BLOCK-END */
  921. &ANALYZE-RESUME
  922. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR gProdgrp
  923. PROCEDURE TOOLBAR :
  924. /*------------------------------------------------------------------------------
  925. Purpose:
  926. Parameters: <none>
  927. Notes:
  928. ------------------------------------------------------------------------------*/
  929. DEFINE INPUT PARAMETER pcAction AS CHARACTER NO-UNDO.
  930. /*
  931. RUN TOOLBAR IN h_dyntoolbar ( INPUT pcAction ).
  932. */
  933. END PROCEDURE.
  934. /* _UIB-CODE-BLOCK-END */
  935. &ANALYZE-RESUME
  936. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject gProdgrp
  937. PROCEDURE viewObject :
  938. /*------------------------------------------------------------------------------
  939. Purpose: Super Override
  940. Parameters:
  941. Notes:
  942. ------------------------------------------------------------------------------*/
  943. /* Code placed here will execute PRIOR to standard behavior. */
  944. RUN SUPER.
  945. Selektion = DYNAMIC-FUNCTION('GETSELEKTION':U, INPUT '{&FRAME-NAME}' ) NO-ERROR.
  946. IF Selektion = '?' OR
  947. Selektion = ? THEN
  948. DO:
  949. Selektion = 'AAAAAA' + '@'
  950. + '' + '@'
  951. + '' + '@'
  952. + '000000' + '@'
  953. + '999999' + '@'
  954. + STRING(DATE(01,01,YEAR(TODAY)),'99.99.9999') + '@'
  955. + STRING(DATE(12,31,YEAR(TODAY)),'99.99.9999') + '@'
  956. + STRING(DATE(01,01,YEAR(TODAY)),'99.99.9999').
  957. END.
  958. DO WITH FRAME {&FRAME-NAME}:
  959. CB_Hersteller :SCREEN-VALUE = ENTRY( 1, Selektion, '@').
  960. F_Wgr :SCREEN-VALUE = ENTRY( 2, Selektion, '@').
  961. F_Prodgrp :SCREEN-VALUE = ENTRY( 3, Selektion, '@').
  962. F_VArtnr :SCREEN-VALUE = ENTRY( 4, Selektion, '@').
  963. F_BArtnr :SCREEN-VALUE = ENTRY( 5, Selektion, '@').
  964. F_VonDat :SCREEN-VALUE = ENTRY( 6, Selektion, '@').
  965. F_BisDat :SCREEN-VALUE = ENTRY( 7, Selektion, '@').
  966. F_KumBeg :SCREEN-VALUE = ENTRY( 8, Selektion, '@').
  967. END.
  968. /* Code placed here will execute AFTER standard behavior. */
  969. END PROCEDURE.
  970. /* _UIB-CODE-BLOCK-END */
  971. &ANALYZE-RESUME