w-umsatzstat.w 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME wUmsatz
  7. /* Temp-Table and Buffer definitions */
  8. DEFINE TEMP-TABLE TUmsatz NO-UNDO LIKE HilfsTab.
  9. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS wUmsatz
  10. /*------------------------------------------------------------------------
  11. File:
  12. Description: from cntnrwin.w - ADM SmartWindow Template
  13. Input Parameters:
  14. <none>
  15. Output Parameters:
  16. <none>
  17. History: New V9 Version - January 15, 1998
  18. ------------------------------------------------------------------------*/
  19. /* This .W file was created with the Progress AB. */
  20. /*----------------------------------------------------------------------*/
  21. /* Create an unnamed pool to store all the widgets created
  22. by this procedure. This is a good default which assures
  23. that this procedure's triggers and internal procedures
  24. will execute in this procedure's storage, and that proper
  25. cleanup will occur on deletion of the procedure. */
  26. CREATE WIDGET-POOL.
  27. /* *************************** Definitions ************************** */
  28. /* Parameters Definitions --- */
  29. /* Local Variable Definitions --- */
  30. DEFINE VARIABLE MaxPage AS INTEGER NO-UNDO.
  31. DEFINE VARIABLE AktSeite AS INTEGER NO-UNDO.
  32. DEFINE VARIABLE Fenster AS HANDLE NO-UNDO.
  33. DEFINE VARIABLE hToolbar AS HANDLE NO-UNDO.
  34. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO INIT FALSE.
  35. DEFINE VARIABLE VDiff AS DECIMAL DECIMALS 4 NO-UNDO.
  36. DEFINE VARIABLE XMonate AS CHARACTER NO-UNDO
  37. INIT 'Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember,Kummulation'.
  38. { incl/tmpbrowser.i }
  39. /* _UIB-CODE-BLOCK-END */
  40. &ANALYZE-RESUME
  41. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  42. /* ******************** Preprocessor Definitions ******************** */
  43. &Scoped-define PROCEDURE-TYPE SmartWindow
  44. &Scoped-define DB-AWARE no
  45. &Scoped-define ADM-CONTAINER WINDOW
  46. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
  47. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  48. &Scoped-define FRAME-NAME fMain
  49. &Scoped-define BROWSE-NAME Br_TUmsatz
  50. /* Internal Tables (found by Frame, Query & Browse Queries) */
  51. &Scoped-define INTERNAL-TABLES TUmsatz
  52. /* Definitions for BROWSE Br_TUmsatz */
  53. &Scoped-define FIELDS-IN-QUERY-Br_TUmsatz TUmsatz.Sort_1 TUmsatz.Zeichen[1] ~
  54. TUmsatz.Zeichen[2] TUmsatz.Wert_1 TUmsatz.Wert_2 TUmsatz.Wert[1] ~
  55. TUmsatz.Wert[2]
  56. &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_TUmsatz
  57. &Scoped-define QUERY-STRING-Br_TUmsatz FOR EACH TUmsatz NO-LOCK INDEXED-REPOSITION
  58. &Scoped-define OPEN-QUERY-Br_TUmsatz OPEN QUERY Br_TUmsatz FOR EACH TUmsatz NO-LOCK INDEXED-REPOSITION.
  59. &Scoped-define TABLES-IN-QUERY-Br_TUmsatz TUmsatz
  60. &Scoped-define FIRST-TABLE-IN-QUERY-Br_TUmsatz TUmsatz
  61. /* Definitions for FRAME fMain */
  62. /* Standard List Definitions */
  63. &Scoped-Define ENABLED-OBJECTS F_VonDatum F_BisDatum Btn_Rechnen Br_TUmsatz ~
  64. F_AnzArtums F_AnzAufze RECT-33
  65. &Scoped-Define DISPLAYED-OBJECTS F_VonDatum F_BisDatum F_AnzArtums ~
  66. F_AnzAufze
  67. /* Custom List Definitions */
  68. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  69. &Scoped-define List-6 F_VonDatum F_BisDatum
  70. /* _UIB-PREPROCESSOR-BLOCK-END */
  71. &ANALYZE-RESUME
  72. /* *********************** Control Definitions ********************** */
  73. /* Define the widget handle for the window */
  74. DEFINE VARIABLE wUmsatz AS WIDGET-HANDLE NO-UNDO.
  75. /* Definitions of the field level widgets */
  76. DEFINE BUTTON Btn_Rechnen
  77. LABEL "Rechnen"
  78. SIZE 15 BY 1.
  79. DEFINE VARIABLE F_AnzArtums AS INTEGER FORMAT "z,zzz,zz9":U INITIAL 0
  80. LABEL "Anzahl Umsatzzeilen"
  81. VIEW-AS FILL-IN NATIVE
  82. SIZE 16 BY 1
  83. BGCOLOR 15 NO-UNDO.
  84. DEFINE VARIABLE F_AnzAufze AS INTEGER FORMAT "z,zzz,zz9":U INITIAL 0
  85. LABEL "Anzahl Auftragszeilen"
  86. VIEW-AS FILL-IN NATIVE
  87. SIZE 16 BY 1
  88. BGCOLOR 15 NO-UNDO.
  89. DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999":U INITIAL 01/01/02
  90. LABEL "--"
  91. VIEW-AS FILL-IN NATIVE
  92. SIZE 16 BY 1
  93. BGCOLOR 15 NO-UNDO.
  94. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U INITIAL 01/01/02
  95. LABEL "von - bis Datum"
  96. VIEW-AS FILL-IN NATIVE
  97. SIZE 16 BY 1
  98. BGCOLOR 15 NO-UNDO.
  99. DEFINE RECTANGLE RECT-33
  100. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  101. SIZE 103 BY 14.29.
  102. /* Query definitions */
  103. &ANALYZE-SUSPEND
  104. DEFINE QUERY Br_TUmsatz FOR
  105. TUmsatz SCROLLING.
  106. &ANALYZE-RESUME
  107. /* Browse definitions */
  108. DEFINE BROWSE Br_TUmsatz
  109. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_TUmsatz wUmsatz _STRUCTURED
  110. QUERY Br_TUmsatz NO-LOCK DISPLAY
  111. TUmsatz.Sort_1 COLUMN-LABEL "Jahr" FORMAT "x(06)":U
  112. TUmsatz.Zeichen[1] COLUMN-LABEL "Warengruppe" FORMAT "x(26)":U
  113. TUmsatz.Zeichen[2] COLUMN-LABEL "Monat" FORMAT "x(12)":U
  114. TUmsatz.Wert_1 COLUMN-LABEL "Wert EP" FORMAT "zzz,zzz,zz9-":U
  115. TUmsatz.Wert_2 COLUMN-LABEL "Wert VP" FORMAT "zzz,zzz,zz9-":U
  116. TUmsatz.Wert[1] COLUMN-LABEL "DB Betrag" FORMAT "zzz,zzz,zz9-":U
  117. TUmsatz.Wert[2] COLUMN-LABEL "Marge %" FORMAT "zzz9.99-":U
  118. WIDTH 14
  119. /* _UIB-CODE-BLOCK-END */
  120. &ANALYZE-RESUME
  121. WITH NO-ROW-MARKERS SEPARATORS SIZE 100 BY 8.67
  122. BGCOLOR 15 FIT-LAST-COLUMN.
  123. /* ************************ Frame Definitions *********************** */
  124. DEFINE FRAME fMain
  125. F_VonDatum AT ROW 11 COL 28 COLON-ALIGNED
  126. F_BisDatum AT ROW 11 COL 49.2 COLON-ALIGNED
  127. Btn_Rechnen AT ROW 13.52 COL 73.4
  128. Br_TUmsatz AT ROW 1.48 COL 3
  129. F_AnzArtums AT ROW 12.52 COL 28 COLON-ALIGNED NO-TAB-STOP
  130. F_AnzAufze AT ROW 13.52 COL 28 COLON-ALIGNED NO-TAB-STOP
  131. RECT-33 AT ROW 1.24 COL 2
  132. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  133. SIDE-LABELS NO-UNDERLINE THREE-D
  134. AT COL 1 ROW 1
  135. SIZE 119 BY 16.
  136. /* *********************** Procedure Settings ************************ */
  137. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  138. /* Settings for THIS-PROCEDURE
  139. Type: SmartWindow
  140. Allow: Basic,Browse,DB-Fields,Query,Smart,Window
  141. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
  142. Design Page: 1
  143. Other Settings: COMPILE
  144. Temp-Tables and Buffers:
  145. TABLE: TUmsatz T "?" NO-UNDO AnaDat HilfsTab
  146. END-TABLES.
  147. */
  148. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  149. /* ************************* Create Window ************************** */
  150. &ANALYZE-SUSPEND _CREATE-WINDOW
  151. IF SESSION:DISPLAY-TYPE = "GUI":U THEN
  152. CREATE WINDOW wUmsatz ASSIGN
  153. HIDDEN = YES
  154. TITLE = "Umsatzstatistik"
  155. HEIGHT = 14.76
  156. WIDTH = 105
  157. MAX-HEIGHT = 48.76
  158. MAX-WIDTH = 256
  159. VIRTUAL-HEIGHT = 48.76
  160. VIRTUAL-WIDTH = 256
  161. RESIZE = NO
  162. SCROLL-BARS = NO
  163. STATUS-AREA = NO
  164. BGCOLOR = ?
  165. FGCOLOR = ?
  166. THREE-D = YES
  167. MESSAGE-AREA = NO
  168. SENSITIVE = YES.
  169. ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
  170. /* END WINDOW DEFINITION */
  171. &ANALYZE-RESUME
  172. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB wUmsatz
  173. /* ************************* Included-Libraries *********************** */
  174. {src/adm2/containr.i}
  175. /* _UIB-CODE-BLOCK-END */
  176. &ANALYZE-RESUME
  177. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  178. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  179. /* SETTINGS FOR WINDOW wUmsatz
  180. VISIBLE,,RUN-PERSISTENT */
  181. /* SETTINGS FOR FRAME fMain
  182. FRAME-NAME Custom */
  183. /* BROWSE-TAB Br_TUmsatz Btn_Rechnen fMain */
  184. ASSIGN
  185. F_AnzArtums:READ-ONLY IN FRAME fMain = TRUE.
  186. ASSIGN
  187. F_AnzAufze:READ-ONLY IN FRAME fMain = TRUE.
  188. /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME fMain
  189. 6 */
  190. /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME fMain
  191. 6 */
  192. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wUmsatz)
  193. THEN wUmsatz:HIDDEN = YES.
  194. /* _RUN-TIME-ATTRIBUTES-END */
  195. &ANALYZE-RESUME
  196. /* Setting information for Queries and Browse Widgets fields */
  197. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_TUmsatz
  198. /* Query rebuild information for BROWSE Br_TUmsatz
  199. _TblList = "Temp-Tables.TUmsatz"
  200. _Options = "NO-LOCK INDEXED-REPOSITION"
  201. _FldNameList[1] > Temp-Tables.TUmsatz.Sort_1
  202. "TUmsatz.Sort_1" "Jahr" "x(06)" "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  203. _FldNameList[2] > Temp-Tables.TUmsatz.Zeichen[1]
  204. "TUmsatz.Zeichen[1]" "Warengruppe" "x(26)" "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  205. _FldNameList[3] > Temp-Tables.TUmsatz.Zeichen[2]
  206. "TUmsatz.Zeichen[2]" "Monat" "x(12)" "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  207. _FldNameList[4] > Temp-Tables.TUmsatz.Wert_1
  208. "TUmsatz.Wert_1" "Wert EP" "zzz,zzz,zz9-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  209. _FldNameList[5] > Temp-Tables.TUmsatz.Wert_2
  210. "TUmsatz.Wert_2" "Wert VP" "zzz,zzz,zz9-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  211. _FldNameList[6] > Temp-Tables.TUmsatz.Wert[1]
  212. "TUmsatz.Wert[1]" "DB Betrag" "zzz,zzz,zz9-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  213. _FldNameList[7] > Temp-Tables.TUmsatz.Wert[2]
  214. "TUmsatz.Wert[2]" "Marge %" "zzz9.99-" "decimal" ? ? ? ? ? ? no ? no no "14" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  215. _Query is NOT OPENED
  216. */ /* BROWSE Br_TUmsatz */
  217. &ANALYZE-RESUME
  218. /* ************************ Control Triggers ************************ */
  219. &Scoped-define SELF-NAME wUmsatz
  220. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wUmsatz wUmsatz
  221. ON END-ERROR OF wUmsatz /* Umsatzstatistik */
  222. OR ENDKEY OF {&WINDOW-NAME} ANYWHERE
  223. DO:
  224. IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
  225. RUN ENDE.
  226. RETURN NO-APPLY.
  227. END.
  228. /* _UIB-CODE-BLOCK-END */
  229. &ANALYZE-RESUME
  230. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wUmsatz wUmsatz
  231. ON WINDOW-CLOSE OF wUmsatz /* Umsatzstatistik */
  232. DO:
  233. RUN ENDE.
  234. RETURN NO-APPLY.
  235. END.
  236. /* _UIB-CODE-BLOCK-END */
  237. &ANALYZE-RESUME
  238. &Scoped-define BROWSE-NAME Br_TUmsatz
  239. &Scoped-define SELF-NAME Br_TUmsatz
  240. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_TUmsatz wUmsatz
  241. ON ROW-DISPLAY OF Br_TUmsatz IN FRAME fMain
  242. DO:
  243. IF NOT AVAILABLE TUmsatz THEN RETURN.
  244. DO WITH FRAME {&FRAME-NAME}:
  245. IF INTEGER(TUmsatz.Sort_3) = 13 THEN
  246. DO:
  247. TUmsatz.Sort_1 :BGCOLOR IN BROWSE Br_TUmsatz = 14.
  248. TUmsatz.Zeichen[01]:BGCOLOR IN BROWSE Br_TUmsatz = 14.
  249. TUmsatz.Zeichen[02]:BGCOLOR IN BROWSE Br_TUmsatz = 14.
  250. TUmsatz.Wert_1 :BGCOLOR IN BROWSE Br_TUmsatz = 14.
  251. TUmsatz.Wert_2 :BGCOLOR IN BROWSE Br_TUmsatz = 14.
  252. TUmsatz.Wert [01]:BGCOLOR IN BROWSE Br_TUmsatz = 14.
  253. TUmsatz.Wert [02]:BGCOLOR IN BROWSE Br_TUmsatz = 14.
  254. END.
  255. END.
  256. END.
  257. /* _UIB-CODE-BLOCK-END */
  258. &ANALYZE-RESUME
  259. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_TUmsatz wUmsatz
  260. ON START-SEARCH OF Br_TUmsatz IN FRAME fMain
  261. DO:
  262. { incl/brwstartsearch.i }
  263. END.
  264. /* _UIB-CODE-BLOCK-END */
  265. &ANALYZE-RESUME
  266. &Scoped-define SELF-NAME Btn_Rechnen
  267. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Rechnen wUmsatz
  268. ON CHOOSE OF Btn_Rechnen IN FRAME fMain /* Rechnen */
  269. DO:
  270. DO WITH FRAME {&FRAME-NAME}:
  271. Btn_Rechnen:SENSITIVE = FALSE.
  272. SESSION:SET-WAIT-STATE('GENERAL').
  273. RUN RECHNEN.
  274. SESSION:SET-WAIT-STATE('').
  275. Btn_Rechnen:SENSITIVE = TRUE.
  276. APPLY 'ENTRY' TO Br_TUmsatz.
  277. RETURN NO-APPLY.
  278. END.
  279. END.
  280. /* _UIB-CODE-BLOCK-END */
  281. &ANALYZE-RESUME
  282. &UNDEFINE SELF-NAME
  283. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wUmsatz
  284. /* *************************** Main Block *************************** */
  285. MaxPage = 1.
  286. AktSeite = 1.
  287. SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR.
  288. IF SAktiv THEN
  289. DO:
  290. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  291. END.
  292. SESSION:DATA-ENTRY-RETURN = TRUE.
  293. /*
  294. SUBSCRIBE TO 'TOOLBAR' ANYWHERE.
  295. */
  296. /* TRIGGERS ------------------------------------------------------ */
  297. ON 'ALT-CURSOR-RIGHT':U OF {&WINDOW-NAME} ANYWHERE
  298. DO:
  299. RUN NEXTPAGE.
  300. RETURN NO-APPLY.
  301. END.
  302. ON 'ALT-CURSOR-LEFT':U OF {&WINDOW-NAME} ANYWHERE
  303. DO:
  304. RUN PREVPAGE.
  305. RETURN NO-APPLY.
  306. END.
  307. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE
  308. DO:
  309. RUN ENTRY_CURSOR.
  310. RETURN NO-APPLY.
  311. END.
  312. ON 'END-ERROR':U OF {&WINDOW-NAME} ANYWHERE
  313. DO:
  314. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  315. IF FMutFlag = FALSE THEN
  316. DO:
  317. RUN ENDE.
  318. RETURN NO-APPLY.
  319. END.
  320. RUN TOOLBAR IN hToolbar ( INPUT 'CANCEL':U ).
  321. RETURN NO-APPLY.
  322. END.
  323. /* Include custom Main Block code for SmartWindows. */
  324. PROCEDURE ShellExecuteA EXTERNAL "shell32.dll":
  325. DEFINE INPUT PARAMETER hwnd AS LONG. /* Handle to parent window */
  326. DEFINE INPUT PARAMETER lpOperation AS CHARACTER. /* Operation to perform: open, print */
  327. DEFINE INPUT PARAMETER lpFile AS CHARACTER. /* Document or executable name */
  328. DEFINE INPUT PARAMETER lpParameters AS CHARACTER. /* Command line parameters to executable in lpFile */
  329. DEFINE INPUT PARAMETER lpDirectory AS CHARACTER. /* Default directory */
  330. DEFINE INPUT PARAMETER nShowCmd AS LONG. /* whether shown when opened:
  331. 0 hidden, 1 normal, minimized 2, maximized 3,
  332. 0 if lpFile is a document */
  333. DEFINE RETURN PARAMETER hInstance AS LONG. /* Less than or equal to 32 */
  334. END PROCEDURE.
  335. PROCEDURE EXPORT_EXCEL:
  336. RUN EXPORT_EXCEL_DATEI.
  337. END PROCEDURE.
  338. PROCEDURE SORTIERBAR:
  339. DEFINE INPUT PARAMETER ipSort AS HANDLE NO-UNDO.
  340. DEFINE INPUT PARAMETER ipMove AS HANDLE NO-UNDO.
  341. DEFINE VARIABLE hBrowser AS HANDLE NO-UNDO.
  342. ipMove:CHECKED = FALSE.
  343. ipSort:CHECKED = TRUE .
  344. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}.
  345. hBrowser:COLUMN-MOVABLE = FALSE.
  346. hBrowser:ALLOW-COLUMN-SEARCHING = TRUE.
  347. END PROCEDURE.
  348. PROCEDURE VERSCHIEBBAR:
  349. DEFINE INPUT PARAMETER ipMove AS HANDLE NO-UNDO.
  350. DEFINE INPUT PARAMETER ipSort AS HANDLE NO-UNDO.
  351. DEFINE VARIABLE hBrowser AS HANDLE NO-UNDO.
  352. ipSort:CHECKED = FALSE.
  353. ipMove:CHECKED = TRUE .
  354. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}.
  355. hBrowser:ALLOW-COLUMN-SEARCHING = FALSE.
  356. hBrowser:COLUMN-MOVABLE = TRUE.
  357. END PROCEDURE.
  358. {src/adm2/windowmn.i}
  359. /* _UIB-CODE-BLOCK-END */
  360. &ANALYZE-RESUME
  361. /* ********************** Internal Procedures *********************** */
  362. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects wUmsatz _ADM-CREATE-OBJECTS
  363. PROCEDURE adm-create-objects :
  364. /*------------------------------------------------------------------------------
  365. Purpose: Create handles for all SmartObjects used in this procedure.
  366. After SmartObjects are initialized, then SmartLinks are added.
  367. Parameters: <none>
  368. ------------------------------------------------------------------------------*/
  369. END PROCEDURE.
  370. /* _UIB-CODE-BLOCK-END */
  371. &ANALYZE-RESUME
  372. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage wUmsatz
  373. PROCEDURE changePage :
  374. /*------------------------------------------------------------------------------
  375. Purpose: Super Override
  376. Parameters:
  377. Notes:
  378. ------------------------------------------------------------------------------*/
  379. RUN SUPER.
  380. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  381. CASE AktSeite:
  382. WHEN 1 THEN
  383. DO:
  384. /*
  385. RUN addLink ( hToolbar , 'TableIO':U , h_v-auftr ).
  386. RUN addLink ( hToolbar , 'Navigation':U , h_d-auftr ).
  387. */
  388. RUN ENTRY_CURSOR.
  389. END.
  390. WHEN 2 THEN
  391. DO:
  392. RUN ENTRY_CURSOR.
  393. END.
  394. END CASE.
  395. END PROCEDURE.
  396. /* _UIB-CODE-BLOCK-END */
  397. &ANALYZE-RESUME
  398. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI wUmsatz _DEFAULT-DISABLE
  399. PROCEDURE disable_UI :
  400. /*------------------------------------------------------------------------------
  401. Purpose: DISABLE the User Interface
  402. Parameters: <none>
  403. Notes: Here we clean-up the user-interface by deleting
  404. dynamic widgets we have created and/or hide
  405. frames. This procedure is usually called when
  406. we are ready to "clean-up" after running.
  407. ------------------------------------------------------------------------------*/
  408. /* Delete the WINDOW we created */
  409. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wUmsatz)
  410. THEN DELETE WIDGET wUmsatz.
  411. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  412. END PROCEDURE.
  413. /* _UIB-CODE-BLOCK-END */
  414. &ANALYZE-RESUME
  415. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject wUmsatz
  416. PROCEDURE enableObject :
  417. /*------------------------------------------------------------------------------
  418. Purpose: Super Override
  419. Parameters:
  420. Notes:
  421. ------------------------------------------------------------------------------*/
  422. DEFINE VARIABLE wx AS INTEGER NO-UNDO.
  423. DEFINE VARIABLE wy AS INTEGER NO-UNDO.
  424. DEFINE VARIABLE xString AS CHARACTER NO-UNDO.
  425. GET-KEY-VALUE SECTION 'FensterPositionen'
  426. KEY 'UmsatzStatistik'
  427. VALUE xString.
  428. IF xString = ? THEN xString = '30;30'.
  429. IF xString = '' THEN xString = '30;30'.
  430. wx = INTEGER(ENTRY(1, xString, ';')).
  431. wy = INTEGER(ENTRY(2, xString, ';')).
  432. IF wx < 0 THEN wx = 1.
  433. IF wy < 0 THEN wy = 1.
  434. {&WINDOW-NAME}:X = wx.
  435. {&WINDOW-NAME}:Y = wy.
  436. RUN SUPER.
  437. /*
  438. hToolbar = h_dyntoolbar.
  439. */
  440. IF SAktiv THEN RUN FENSTER_TITEL ( INPUT {&WINDOW-NAME}:HANDLE ) NO-ERROR.
  441. IF VALID-HANDLE(hToolbar) THEN
  442. DO:
  443. RUN SETPROGNAME IN hToolbar ( THIS-PROCEDURE ).
  444. RUN setButtons IN hToolbar ( INPUT 'Initial-TableIo':U ).
  445. END.
  446. END PROCEDURE.
  447. /* _UIB-CODE-BLOCK-END */
  448. &ANALYZE-RESUME
  449. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI wUmsatz _DEFAULT-ENABLE
  450. PROCEDURE enable_UI :
  451. /*------------------------------------------------------------------------------
  452. Purpose: ENABLE the User Interface
  453. Parameters: <none>
  454. Notes: Here we display/view/enable the widgets in the
  455. user-interface. In addition, OPEN all queries
  456. associated with each FRAME and BROWSE.
  457. These statements here are based on the "Other
  458. Settings" section of the widget Property Sheets.
  459. ------------------------------------------------------------------------------*/
  460. DISPLAY F_VonDatum F_BisDatum F_AnzArtums F_AnzAufze
  461. WITH FRAME fMain IN WINDOW wUmsatz.
  462. ENABLE F_VonDatum F_BisDatum Btn_Rechnen Br_TUmsatz F_AnzArtums F_AnzAufze
  463. RECT-33
  464. WITH FRAME fMain IN WINDOW wUmsatz.
  465. {&OPEN-BROWSERS-IN-QUERY-fMain}
  466. VIEW wUmsatz.
  467. END PROCEDURE.
  468. /* _UIB-CODE-BLOCK-END */
  469. &ANALYZE-RESUME
  470. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE wUmsatz
  471. PROCEDURE ENDE :
  472. /*------------------------------------------------------------------------------
  473. Purpose:
  474. Parameters: <none>
  475. Notes:
  476. ------------------------------------------------------------------------------*/
  477. DEFINE VARIABLE wx AS INTEGER NO-UNDO.
  478. DEFINE VARIABLE wy AS INTEGER NO-UNDO.
  479. DEFINE VARIABLE xString AS CHARACTER NO-UNDO.
  480. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  481. IF AktSeite > 1 THEN
  482. DO:
  483. RUN selectPage ( INPUT 1 ).
  484. RETURN NO-APPLY.
  485. END.
  486. IF Saktiv THEN RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  487. wx = {&WINDOW-NAME}:X NO-ERROR.
  488. wy = {&WINDOW-NAME}:Y NO-ERROR.
  489. xString = STRING(wx) + ';' + STRING(wy).
  490. PUT-KEY-VALUE SECTION 'FensterPositionen'
  491. KEY 'UmsatzStatistik'
  492. VALUE xString.
  493. APPLY "CLOSE":U TO THIS-PROCEDURE.
  494. END PROCEDURE.
  495. /* _UIB-CODE-BLOCK-END */
  496. &ANALYZE-RESUME
  497. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR wUmsatz
  498. PROCEDURE ENTRY_CURSOR :
  499. /*------------------------------------------------------------------------------
  500. Purpose:
  501. Parameters: <none>
  502. Notes:
  503. ------------------------------------------------------------------------------*/
  504. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  505. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U).
  506. APPLY 'ENTRY' TO F_VonDatum IN FRAME {&FRAME-NAME}.
  507. RETURN NO-APPLY.
  508. END PROCEDURE.
  509. /* _UIB-CODE-BLOCK-END */
  510. &ANALYZE-RESUME
  511. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject wUmsatz
  512. PROCEDURE exitObject :
  513. /*------------------------------------------------------------------------------
  514. Purpose: Window-specific override of this procedure which destroys
  515. its contents and itself.
  516. Notes:
  517. ------------------------------------------------------------------------------*/
  518. RUN ENDE.
  519. RETURN NO-APPLY.
  520. END PROCEDURE.
  521. /* _UIB-CODE-BLOCK-END */
  522. &ANALYZE-RESUME
  523. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXPORT_EXCEL_DATEI wUmsatz
  524. PROCEDURE EXPORT_EXCEL_DATEI :
  525. /*------------------------------------------------------------------------------
  526. Purpose:
  527. Parameters: <none>
  528. Notes:
  529. ------------------------------------------------------------------------------*/
  530. DEFINE VARIABLE cName AS CHARACTER NO-UNDO.
  531. DEFINE VARIABLE cWhere AS CHARACTER NO-UNDO.
  532. DEFINE VARIABLE cLabel AS CHARACTER NO-UNDO.
  533. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  534. DEFINE VARIABLE ij AS INTEGER NO-UNDO.
  535. DEFINE VARIABLE ik AS INTEGER NO-UNDO.
  536. DEFINE VARIABLE iRet AS INTEGER NO-UNDO.
  537. DEFINE VARIABLE cDelim AS CHARACTER NO-UNDO INIT '£'.
  538. DO WITH FRAME {&FRAME-NAME}:
  539. cName = SESSION:TEMP-DIR
  540. + ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.')
  541. + '.csv'.
  542. OUTPUT TO VALUE(cName).
  543. SESSION:SET-WAIT-STATE('GENERAL').
  544. cString = 'Jahr' + cDelim
  545. + 'Warengruppe' + cDelim
  546. + 'Monat' + cDelim
  547. + 'Wert EP' + cDelim
  548. + 'Wert VP' + cDelim
  549. + 'DB Betrag' + cDelim
  550. + 'Marge'
  551. .
  552. cString = REPLACE(cString, ';', ':').
  553. cString = REPLACE(cString, cDelim, ';').
  554. PUT CONTROL cString CHR(10).
  555. FOR EACH TUmsatz NO-LOCK:
  556. cString = TUmsatz.Sort_1 + cDelim
  557. + TUmsatz.Zeichen[01] + cDelim
  558. + TUmsatz.Zeichen[02] + cDelim
  559. + TRIM(STRING(TUmsatz.Wert_1 ,'->>>>>>>>9.99')) + cDelim
  560. + TRIM(STRING(TUmsatz.Wert_2 ,'->>>>>>>>9.99')) + cDelim
  561. + TRIM(STRING(TUmsatz.Wert[01],'->>>>>>>>9.99')) + cDelim
  562. + TRIM(STRING(TUmsatz.Wert[02],'->>>>>>>>9.99')).
  563. cString = REPLACE(cString, ';', ':').
  564. cString = REPLACE(cString, cDelim, ';').
  565. PUT CONTROL cString CHR(10).
  566. END.
  567. OUTPUT CLOSE.
  568. SESSION:SET-WAIT-STATE('').
  569. END.
  570. RUN ShellExecuteA ( INPUT 0,
  571. INPUT 'open',
  572. INPUT 'Excel.exe',
  573. INPUT cName,
  574. INPUT '',
  575. INPUT 1,
  576. OUTPUT iRet ).
  577. END PROCEDURE.
  578. /* _UIB-CODE-BLOCK-END */
  579. &ANALYZE-RESUME
  580. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject wUmsatz
  581. PROCEDURE initializeObject :
  582. /*------------------------------------------------------------------------------
  583. Purpose: Super Override
  584. Parameters:
  585. Notes:
  586. ------------------------------------------------------------------------------*/
  587. { incl/brwinitialize.i }
  588. END PROCEDURE.
  589. /* _UIB-CODE-BLOCK-END */
  590. &ANALYZE-RESUME
  591. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE wUmsatz
  592. PROCEDURE NEXTPAGE :
  593. /*------------------------------------------------------------------------------
  594. Purpose:
  595. Parameters: <none>
  596. Notes:
  597. ------------------------------------------------------------------------------*/
  598. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  599. IF AktSeite = MaxPage THEN AktSeite = 1.
  600. ELSE AktSeite = AktSeite + 1.
  601. RUN selectPage ( INPUT AktSeite ).
  602. END PROCEDURE.
  603. /* _UIB-CODE-BLOCK-END */
  604. &ANALYZE-RESUME
  605. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREVPAGE wUmsatz
  606. PROCEDURE PREVPAGE :
  607. /*------------------------------------------------------------------------------
  608. Purpose:
  609. Parameters: <none>
  610. Notes:
  611. ------------------------------------------------------------------------------*/
  612. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  613. IF AktSeite = 1 THEN AktSeite = MaxPage.
  614. ELSE AktSeite = AktSeite - 1.
  615. RUN selectPage ( INPUT AktSeite ).
  616. END PROCEDURE.
  617. /* _UIB-CODE-BLOCK-END */
  618. &ANALYZE-RESUME
  619. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RECHNEN wUmsatz
  620. PROCEDURE RECHNEN :
  621. /*------------------------------------------------------------------------------
  622. Purpose:
  623. Parameters: <none>
  624. Notes:
  625. ------------------------------------------------------------------------------*/
  626. DEFINE VARIABLE VEp AS DECIMAL DECIMALS 4 NO-UNDO.
  627. DEFINE VARIABLE VVp AS DECIMAL DECIMALS 4 NO-UNDO.
  628. DEFINE VARIABLE VAnsatz AS DECIMAL NO-UNDO.
  629. DEFINE VARIABLE KonDat AS DATE NO-UNDO.
  630. DEFINE VARIABLE BuDat AS DATE NO-UNDO.
  631. DEFINE VARIABLE SMM AS INTEGER NO-UNDO.
  632. DEFINE VARIABLE SJJ AS INTEGER NO-UNDO.
  633. DEFINE VARIABLE EMM AS INTEGER NO-UNDO.
  634. DEFINE VARIABLE EJJ AS INTEGER NO-UNDO.
  635. DEFINE VARIABLE VPer AS INTEGER NO-UNDO.
  636. DEFINE VARIABLE BPer AS INTEGER NO-UNDO.
  637. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  638. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  639. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  640. DO WITH FRAME {&FRAME-NAME}:
  641. ASSIGN {&list-6}.
  642. IF F_VonDatum = ? THEN F_VonDatum = DATE(01,01,YEAR(TODAY)).
  643. IF F_BisDatum = ? THEN F_BisDatum = DATE(12,31,YEAR(TODAY)).
  644. SMM = MONTH(F_VonDatum).
  645. SJJ = YEAR (F_VonDatum).
  646. EMM = MONTH(F_BisDatum).
  647. EJJ = YEAR (F_BisDatum).
  648. DO ix = 1 TO 31:
  649. IF MONTH(F_VonDatum - 1) = SMM THEN F_VonDatum = F_VonDatum - 1.
  650. IF MONTH(F_BisDatum + 1) = EMM THEN F_BisDatum = F_BisDatum + 1.
  651. END.
  652. DISPLAY F_VonDatum.
  653. DISPLAY F_BisDatum.
  654. FOR EACH TUmsatz:
  655. DELETE TUmsatz.
  656. END.
  657. F_AnzArtums = 0.
  658. FOR EACH ArtUms USE-INDEX ArtUms-k1
  659. WHERE ArtUms.Firma = D1Firma
  660. AND ArtUms.Jahr >= SJJ
  661. AND ArtUms.Jahr <= EJJ NO-LOCK:
  662. F_AnzArtums = F_AnzArtums + 1.
  663. IF F_AnzArtums MOD 10 = 0 THEN DISPLAY F_AnzArtums.
  664. VPer = 01.
  665. BPer = 12.
  666. IF ArtUms.Jahr = SJJ THEN VPer = SMM.
  667. IF ArtUms.Jahr = EJJ THEN BPer = EMM.
  668. FIND Artst USE-INDEX Artst-k1
  669. WHERE Artst.Firma = ArtUms.Firma
  670. AND Artst.Artnr = ArtUms.Artnr
  671. AND Artst.Inhalt = ArtUms.Inhalt
  672. AND Artst.Jahr = ArtUms.Jahrg NO-LOCK NO-ERROR.
  673. IF NOT AVAILABLE Artst THEN NEXT.
  674. FIND FIRST TUmsatz WHERE TUmsatz.Sort_1 = STRING(ArtUms.Jahr ,'9999')
  675. AND TUmsatz.Sort_2 = STRING(Artst.Wg_Grp,'9999')
  676. NO-ERROR.
  677. IF NOT AVAILABLE TUmsatz THEN
  678. DO:
  679. FIND WarenGrp USE-INDEX WarenGrp-k1
  680. WHERE WarenGrp.Firma = D1Firma
  681. AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
  682. DO ix = VPer TO 13:
  683. CREATE TUmsatz.
  684. ASSIGN
  685. TUmsatz.Sort_1 = STRING(ArtUms.Jahr ,'9999')
  686. TUmsatz.Sort_2 = STRING(Artst.Wg_Grp,'9999')
  687. TUmsatz.Sort_3 = STRING(ix ,'9999')
  688. TUmsatz.Zeichen[02] = ENTRY (ix, XMonate , ',').
  689. IF AVAILABLE WarenGrp THEN TUmsatz.Zeichen[01] = WarenGrp.Bez1.
  690. ELSE TUmsatz.Zeichen[01] = FILL('?', 10).
  691. END.
  692. END.
  693. FIND FIRST TUmsatz WHERE TUmsatz.Sort_1 = STRING(ArtUms.Jahr,'9999')
  694. AND TUmsatz.Sort_2 = '1000' NO-ERROR.
  695. IF NOT AVAILABLE TUmsatz THEN
  696. DO:
  697. DO ix = VPer TO 13:
  698. CREATE TUmsatz.
  699. ASSIGN
  700. TUmsatz.Sort_1 = STRING(ArtUms.Jahr ,'9999')
  701. TUmsatz.Sort_2 = STRING(1000 ,'9999')
  702. TUmsatz.Sort_3 = STRING(ix ,'9999')
  703. TUmsatz.Zeichen[02] = ENTRY (ix, XMonate , ',')
  704. TUmsatz.Zeichen[01] = 'Gesamttotal'.
  705. END.
  706. END.
  707. DO ix = VPer TO BPer:
  708. FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(ArtUms.Jahr ,'9999')
  709. AND TUmsatz.Sort_2 = STRING(Artst.Wg_Grp ,'9999')
  710. AND TUmsatz.Sort_3 = STRING(ix ,'9999').
  711. TUmsatz.Wert_1 = TUmsatz.Wert_1 + ArtUms.Ep_Mon[ix].
  712. TUmsatz.Wert_2 = TUmsatz.Wert_2 + ArtUms.Vp_Mon[ix].
  713. FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(ArtUms.Jahr ,'9999')
  714. AND TUmsatz.Sort_2 = STRING(1000 ,'9999')
  715. AND TUmsatz.Sort_3 = STRING(ix ,'9999').
  716. TUmsatz.Wert_1 = TUmsatz.Wert_1 + ArtUms.Ep_Mon[ix].
  717. TUmsatz.Wert_2 = TUmsatz.Wert_2 + ArtUms.Vp_Mon[ix].
  718. END.
  719. FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(ArtUms.Jahr ,'9999')
  720. AND TUmsatz.Sort_2 = STRING(Artst.Wg_Grp ,'9999')
  721. AND TUmsatz.Sort_3 = STRING(13 ,'9999').
  722. TUmsatz.Wert_1 = TUmsatz.Wert_1 + ArtUms.Ep_Kum.
  723. TUmsatz.Wert_2 = TUmsatz.Wert_2 + ArtUms.Vp_Kum.
  724. FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(ArtUms.Jahr ,'9999')
  725. AND TUmsatz.Sort_2 = STRING(1000 ,'9999')
  726. AND TUmsatz.Sort_3 = STRING(13 ,'9999').
  727. TUmsatz.Wert_1 = TUmsatz.Wert_1 + ArtUms.Ep_Kum.
  728. TUmsatz.Wert_2 = TUmsatz.Wert_2 + ArtUms.Vp_Kum.
  729. END.
  730. DISPLAY F_AnzArtums.
  731. F_AnzAufze = 0.
  732. FOR EACH Aufko USE-INDEX Aufko-k1
  733. WHERE Aufko.Firma = D1Firma
  734. AND Aufko.Verbucht = FALSE NO-LOCK.
  735. IF Aufko.Fak_Datum<> ? THEN DO:
  736. i1 = YEAR (Aufko.Fak_Datum).
  737. i2 = MONTH(Aufko.Fak_Datum).
  738. BuDat = Aufko.Fak_Datum.
  739. END.
  740. ELSE DO:
  741. i1 = YEAR (Aufko.Lief_Datum).
  742. i2 = MONTH(Aufko.Lief_Datum).
  743. BuDat = Aufko.Lief_Datum.
  744. END.
  745. IF BuDat < F_VonDatum THEN NEXT.
  746. IF BuDat > F_BisDatum THEN NEXT.
  747. KonDat = Aufko.Kond_Datum.
  748. IF KonDat = ? THEN KonDat = Aufko.Lief_Dat.
  749. FIND Wust USE-INDEX Wust-k1
  750. WHERE Wust.CodeK = Aufko.MWST
  751. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  752. FOR EACH Aufze USE-INDEX Aufze-k1
  753. WHERE Aufze.Firma = D1Firma
  754. AND Aufze.Aufnr = Aufko.Aufnr
  755. AND Aufze.Artnr > 0
  756. AND Aufze.Verbucht = FALSE NO-LOCK:
  757. F_AnzAufze = F_AnzAufze + 1.
  758. IF F_AnzAufze MOD 10 = 0 THEN DISPLAY F_AnzAufze.
  759. FIND Artst USE-INDEX Artst-k1
  760. WHERE Artst.Firma = Aufze.Firma
  761. AND Artst.Artnr = Aufze.Artnr
  762. AND Artst.Inhalt = Aufze.Inhalt
  763. AND Artst.Jahr = Aufze.Jahr NO-LOCK NO-ERROR.
  764. IF NOT AVAILABLE Artst THEN NEXT.
  765. VEp = Aufze.Ep * Aufze.MGeli.
  766. VVp = Aufze.Net_Betr - Aufze.Auf_Rab - Aufze.Abh_Rab.
  767. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  768. WHERE MWSTAns.MWST_Cd = Aufze.WuCd
  769. AND MWSTAns.Datum <= KonDat NO-LOCK NO-ERROR.
  770. VAnsatz = MWSTAns.Ansatz.
  771. IF Wust.Incl THEN VVp = VVp * 100 / (100 + VAnsatz).
  772. FIND FIRST TUmsatz WHERE TUmsatz.Sort_1 = STRING(i1 ,'9999')
  773. AND TUmsatz.Sort_2 = STRING(Artst.Wg_Grp,'9999')
  774. NO-ERROR.
  775. IF NOT AVAILABLE TUmsatz THEN
  776. DO:
  777. FIND WarenGrp USE-INDEX WarenGrp-k1
  778. WHERE WarenGrp.Firma = D1Firma
  779. AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
  780. DO ix = 1 TO 13:
  781. CREATE TUmsatz.
  782. ASSIGN
  783. TUmsatz.Sort_1 = STRING(i1 ,'9999')
  784. TUmsatz.Sort_2 = STRING(Artst.Wg_Grp,'9999')
  785. TUmsatz.Sort_3 = STRING(ix ,'9999')
  786. TUmsatz.Zeichen[02] = ENTRY (ix, XMonate , ',').
  787. IF AVAILABLE WarenGrp THEN TUmsatz.Zeichen[01] = WarenGrp.Bez1.
  788. ELSE TUmsatz.Zeichen[01] = FILL('?', 10).
  789. END.
  790. END.
  791. FIND FIRST TUmsatz WHERE TUmsatz.Sort_1 = STRING(i1 ,'9999')
  792. AND TUmsatz.Sort_2 = STRING(1000,'9999')
  793. NO-ERROR.
  794. IF NOT AVAILABLE TUmsatz THEN
  795. DO:
  796. DO ix = 1 TO 13:
  797. CREATE TUmsatz.
  798. ASSIGN
  799. TUmsatz.Sort_1 = STRING(i1 ,'9999')
  800. TUmsatz.Sort_2 = STRING(1000,'9999')
  801. TUmsatz.Sort_3 = STRING(ix ,'9999')
  802. TUmsatz.Zeichen[02] = ENTRY (ix, XMonate , ',')
  803. TUmsatz.Zeichen[01] = 'Gesamttotal'.
  804. END.
  805. END.
  806. FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(i1 ,'9999')
  807. AND TUmsatz.Sort_2 = STRING(Artst.Wg_Grp ,'9999')
  808. AND TUmsatz.Sort_3 = STRING(i2 ,'9999').
  809. TUmsatz.Wert_1 = TUmsatz.Wert_1 + VEp.
  810. TUmsatz.Wert_2 = TUmsatz.Wert_2 + VVp.
  811. FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(i1 ,'9999')
  812. AND TUmsatz.Sort_2 = STRING(1000 ,'9999')
  813. AND TUmsatz.Sort_3 = STRING(i2 ,'9999').
  814. TUmsatz.Wert_1 = TUmsatz.Wert_1 + VEp.
  815. TUmsatz.Wert_2 = TUmsatz.Wert_2 + VVp.
  816. FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(i1 ,'9999')
  817. AND TUmsatz.Sort_2 = STRING(Artst.Wg_Grp ,'9999')
  818. AND TUmsatz.Sort_3 = STRING(13 ,'9999').
  819. TUmsatz.Wert_1 = TUmsatz.Wert_1 + VEp.
  820. TUmsatz.Wert_2 = TUmsatz.Wert_2 + VVp.
  821. FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(i1 ,'9999')
  822. AND TUmsatz.Sort_2 = STRING(1000 ,'9999')
  823. AND TUmsatz.Sort_3 = STRING(13 ,'9999').
  824. TUmsatz.Wert_1 = TUmsatz.Wert_1 + VEp.
  825. TUmsatz.Wert_2 = TUmsatz.Wert_2 + VVp.
  826. END.
  827. END.
  828. DISPLAY F_AnzAufze.
  829. FOR EACH TUmsatz:
  830. IF TUmsatz.Wert_1 = 0 AND
  831. TUmsatz.Wert_2 = 0 THEN
  832. DO:
  833. DELETE TUmsatz.
  834. NEXT.
  835. END.
  836. TUmsatz.Wert[01] = TUmsatz.Wert_2 - TUmsatz.Wert_1.
  837. IF TUmsatz.Wert_1 > 0 THEN
  838. DO:
  839. TUmsatz.Wert[02] = (100 - (TUmsatz.Wert_1 * 100 / TUmsatz.Wert_2)).
  840. END.
  841. ELSE
  842. DO:
  843. TUmsatz.Wert[02] = (100 - (TUmsatz.Wert_1 * 100 / TUmsatz.Wert_2 * -1)).
  844. END.
  845. END.
  846. END.
  847. OPEN QUERY Br_TUmsatz FOR EACH TUmsatz NO-LOCK.
  848. END PROCEDURE.
  849. /* _UIB-CODE-BLOCK-END */
  850. &ANALYZE-RESUME
  851. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage wUmsatz
  852. PROCEDURE selectPage :
  853. /*------------------------------------------------------------------------------
  854. Purpose: Super Override
  855. Parameters:
  856. Notes:
  857. ------------------------------------------------------------------------------*/
  858. DEFINE INPUT PARAMETER piPageNum AS INTEGER NO-UNDO.
  859. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO.
  860. DEFINE VARIABLE MutProg AS CHARACTER NO-UNDO.
  861. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  862. DO WHILE TRUE:
  863. IF NOT FMutFlag THEN LEAVE.
  864. MutProg = DYNAMIC-FUNCTION('GETMUTPROG':U).
  865. IF MutProg <> THIS-PROCEDURE:FILE-NAME THEN LEAVE.
  866. RETURN NO-APPLY.
  867. END.
  868. CASE piPageNum:
  869. END CASE.
  870. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  871. CASE AktSeite:
  872. WHEN 1 THEN
  873. DO:
  874. /* RUN removeLink ( hToolbar , 'TableIO':U , h_v-auftr ). */
  875. /* RUN removeLink ( hToolbar , 'Navigation':U , h_d-auftr ). */
  876. END.
  877. END CASE.
  878. RUN SUPER( INPUT piPageNum).
  879. END PROCEDURE.
  880. /* _UIB-CODE-BLOCK-END */
  881. &ANALYZE-RESUME
  882. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR wUmsatz
  883. PROCEDURE TOOLBAR :
  884. /*------------------------------------------------------------------------------
  885. Purpose:
  886. Parameters: <none>
  887. Notes:
  888. ------------------------------------------------------------------------------*/
  889. DEFINE INPUT PARAMETER pcAction AS CHARACTER NO-UNDO.
  890. IF VALID-HANDLE(hToolbar) THEN RUN TOOLBAR IN hToolbar ( INPUT pcAction ).
  891. END PROCEDURE.
  892. /* _UIB-CODE-BLOCK-END */
  893. &ANALYZE-RESUME
  894. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject wUmsatz
  895. PROCEDURE viewObject :
  896. /*------------------------------------------------------------------------------
  897. Purpose: Super Override
  898. Parameters:
  899. Notes:
  900. ------------------------------------------------------------------------------*/
  901. RUN SUPER.
  902. RUN ENTRY_CURSOR.
  903. END PROCEDURE.
  904. /* _UIB-CODE-BLOCK-END */
  905. &ANALYZE-RESUME