g-artikel-analyse.w 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gArtikelanalyse
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gArtikelanalyse
  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 Fenster AS HANDLE NO-UNDO.
  31. DEFINE VARIABLE Firma AS CHARACTER INIT '1000' NO-UNDO.
  32. DEFINE VARIABLE AdFirma AS CHARACTER INIT '1000' NO-UNDO.
  33. DEFINE VARIABLE Besnr AS INTEGER NO-UNDO.
  34. DEFINE VARIABLE FwFRW AS CHARACTER NO-UNDO.
  35. DEFINE VARIABLE FwSprcd AS INTEGER NO-UNDO.
  36. DEFINE VARIABLE RetVal AS CHARACTER NO-UNDO.
  37. DEFINE BUFFER BArtst FOR Artst.
  38. DEFINE TEMP-TABLE tArtLief LIKE ArtLief
  39. FIELD Verbrauch AS DECIMAL
  40. FIELD Umsatz AS DECIMAL
  41. FIELD LagOrt AS CHARACTER
  42. FIELD Lieferanten AS CHARACTER
  43. FIELD TagesBestand AS INTEGER
  44. FIELD Bestand AS INTEGER .
  45. /* _UIB-CODE-BLOCK-END */
  46. &ANALYZE-RESUME
  47. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  48. /* ******************** Preprocessor Definitions ******************** */
  49. &Scoped-define PROCEDURE-TYPE SmartDialog
  50. &Scoped-define DB-AWARE no
  51. &Scoped-define ADM-CONTAINER DIALOG-BOX
  52. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  53. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  54. &Scoped-define FRAME-NAME gArtikelanalyse
  55. /* Standard List Definitions */
  56. &Scoped-Define ENABLED-OBJECTS Hersteller Warengruppen Preisgruppen ~
  57. VonArtnr BisArtnr VonKnr BisKnr VonDatum BisDatum Btn_Excel RECT-37
  58. &Scoped-Define DISPLAYED-OBJECTS Hersteller Warengruppen Preisgruppen ~
  59. VonArtnr BisArtnr VonKnr BisKnr VonDatum BisDatum
  60. /* Custom List Definitions */
  61. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  62. &Scoped-define List-5 Btn_Excel
  63. &Scoped-define List-6 Hersteller Warengruppen Preisgruppen VonArtnr ~
  64. BisArtnr VonKnr BisKnr VonDatum BisDatum
  65. /* _UIB-PREPROCESSOR-BLOCK-END */
  66. &ANALYZE-RESUME
  67. /* *********************** Control Definitions ********************** */
  68. /* Define a dialog box */
  69. /* Definitions of the field level widgets */
  70. DEFINE BUTTON Btn_Excel
  71. IMAGE-UP FILE "grafik/results%.ico":U
  72. LABEL "Excel"
  73. SIZE 7 BY 1.81.
  74. DEFINE VARIABLE BisArtnr AS INTEGER FORMAT "999999":U INITIAL 999999
  75. VIEW-AS FILL-IN NATIVE
  76. SIZE 11 BY 1
  77. BGCOLOR 15 NO-UNDO.
  78. DEFINE VARIABLE BisDatum AS DATE FORMAT "99.99.9999":U INITIAL 01/01/02
  79. VIEW-AS FILL-IN NATIVE
  80. SIZE 16 BY 1
  81. BGCOLOR 15 NO-UNDO.
  82. DEFINE VARIABLE BisKnr AS INTEGER FORMAT "999999":U INITIAL 999999
  83. VIEW-AS FILL-IN NATIVE
  84. SIZE 11 BY 1
  85. BGCOLOR 15 NO-UNDO.
  86. DEFINE VARIABLE Hersteller AS CHARACTER FORMAT "X(256)":U
  87. LABEL "Hersteller"
  88. VIEW-AS FILL-IN NATIVE
  89. SIZE 46 BY 1
  90. BGCOLOR 15 NO-UNDO.
  91. DEFINE VARIABLE Preisgruppen AS CHARACTER FORMAT "X(256)":U
  92. LABEL "ausgeschl. Preisgruppen"
  93. VIEW-AS FILL-IN NATIVE
  94. SIZE 46 BY 1
  95. BGCOLOR 15 NO-UNDO.
  96. DEFINE VARIABLE VonArtnr AS INTEGER FORMAT "999999":U INITIAL 0
  97. LABEL "von - bis Artikelnummer"
  98. VIEW-AS FILL-IN NATIVE
  99. SIZE 11 BY 1
  100. BGCOLOR 15 NO-UNDO.
  101. DEFINE VARIABLE VonDatum AS DATE FORMAT "99.99.9999":U INITIAL 01/01/02
  102. LABEL "Verbrauch von - bis Datum"
  103. VIEW-AS FILL-IN NATIVE
  104. SIZE 16 BY 1
  105. BGCOLOR 15 NO-UNDO.
  106. DEFINE VARIABLE VonKnr AS INTEGER FORMAT "999999":U INITIAL 0
  107. LABEL "von - bis Lieferant"
  108. VIEW-AS FILL-IN NATIVE
  109. SIZE 11 BY 1
  110. BGCOLOR 15 NO-UNDO.
  111. DEFINE VARIABLE Warengruppen AS CHARACTER FORMAT "X(256)":U
  112. LABEL "Warengruppen"
  113. VIEW-AS FILL-IN NATIVE
  114. SIZE 46 BY 1
  115. BGCOLOR 15 NO-UNDO.
  116. DEFINE RECTANGLE RECT-37
  117. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  118. SIZE 90 BY 7.14.
  119. /* ************************ Frame Definitions *********************** */
  120. DEFINE FRAME gArtikelanalyse
  121. Hersteller AT ROW 2 COL 28 COLON-ALIGNED
  122. Warengruppen AT ROW 3 COL 28 COLON-ALIGNED
  123. Preisgruppen AT ROW 4 COL 28 COLON-ALIGNED
  124. VonArtnr AT ROW 5 COL 28 COLON-ALIGNED
  125. BisArtnr AT ROW 5 COL 45 COLON-ALIGNED NO-LABELS
  126. VonKnr AT ROW 6 COL 28 COLON-ALIGNED
  127. BisKnr AT ROW 6 COL 45 COLON-ALIGNED NO-LABELS
  128. VonDatum AT ROW 7 COL 28 COLON-ALIGNED
  129. BisDatum AT ROW 7 COL 45 COLON-ALIGNED NO-LABELS
  130. Btn_Excel AT ROW 5.24 COL 82.2
  131. RECT-37 AT ROW 1.24 COL 2
  132. SPACE(0.99) SKIP(0.23)
  133. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  134. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  135. TITLE "Artikelanalyse".
  136. /* *********************** Procedure Settings ************************ */
  137. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  138. /* Settings for THIS-PROCEDURE
  139. Type: SmartDialog
  140. Allow: Basic,Browse,DB-Fields,Query,Smart
  141. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  142. Design Page: 1
  143. Other Settings: COMPILE
  144. */
  145. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  146. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gArtikelanalyse
  147. /* ************************* Included-Libraries *********************** */
  148. {src/adm2/containr.i}
  149. /* _UIB-CODE-BLOCK-END */
  150. &ANALYZE-RESUME
  151. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  152. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  153. /* SETTINGS FOR DIALOG-BOX gArtikelanalyse
  154. FRAME-NAME Custom */
  155. ASSIGN
  156. FRAME gArtikelanalyse:SCROLLABLE = FALSE
  157. FRAME gArtikelanalyse:HIDDEN = TRUE.
  158. /* SETTINGS FOR FILL-IN BisArtnr IN FRAME gArtikelanalyse
  159. 6 */
  160. /* SETTINGS FOR FILL-IN BisDatum IN FRAME gArtikelanalyse
  161. 6 */
  162. /* SETTINGS FOR FILL-IN BisKnr IN FRAME gArtikelanalyse
  163. 6 */
  164. /* SETTINGS FOR BUTTON Btn_Excel IN FRAME gArtikelanalyse
  165. 5 */
  166. /* SETTINGS FOR FILL-IN Hersteller IN FRAME gArtikelanalyse
  167. 6 */
  168. /* SETTINGS FOR FILL-IN Preisgruppen IN FRAME gArtikelanalyse
  169. 6 */
  170. /* SETTINGS FOR FILL-IN VonArtnr IN FRAME gArtikelanalyse
  171. 6 */
  172. /* SETTINGS FOR FILL-IN VonDatum IN FRAME gArtikelanalyse
  173. 6 */
  174. /* SETTINGS FOR FILL-IN VonKnr IN FRAME gArtikelanalyse
  175. 6 */
  176. /* SETTINGS FOR FILL-IN Warengruppen IN FRAME gArtikelanalyse
  177. 6 */
  178. /* _RUN-TIME-ATTRIBUTES-END */
  179. &ANALYZE-RESUME
  180. /* Setting information for Queries and Browse Widgets fields */
  181. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gArtikelanalyse
  182. /* Query rebuild information for DIALOG-BOX gArtikelanalyse
  183. _Options = "SHARE-LOCK"
  184. _Query is NOT OPENED
  185. */ /* DIALOG-BOX gArtikelanalyse */
  186. &ANALYZE-RESUME
  187. /* ************************ Control Triggers ************************ */
  188. &Scoped-define SELF-NAME gArtikelanalyse
  189. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gArtikelanalyse gArtikelanalyse
  190. ON END-ERROR OF FRAME gArtikelanalyse /* Artikelanalyse */
  191. DO:
  192. RUN ENDE.
  193. RETURN NO-APPLY.
  194. END.
  195. /* _UIB-CODE-BLOCK-END */
  196. &ANALYZE-RESUME
  197. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gArtikelanalyse gArtikelanalyse
  198. ON GO OF FRAME gArtikelanalyse /* Artikelanalyse */
  199. DO:
  200. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR.
  201. END.
  202. /* _UIB-CODE-BLOCK-END */
  203. &ANALYZE-RESUME
  204. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gArtikelanalyse gArtikelanalyse
  205. ON WINDOW-CLOSE OF FRAME gArtikelanalyse /* Artikelanalyse */
  206. DO:
  207. RUN ENDE.
  208. RETURN NO-APPLY.
  209. END.
  210. /* _UIB-CODE-BLOCK-END */
  211. &ANALYZE-RESUME
  212. &Scoped-define SELF-NAME BisKnr
  213. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL BisKnr gArtikelanalyse
  214. ON ALT-F OF BisKnr IN FRAME gArtikelanalyse
  215. DO:
  216. DEFINE VARIABLE aRecid AS RECID NO-UNDO.
  217. RUN 'g-suchen-adresse.w':U ( 'LIE;', OUTPUT aRecid ).
  218. IF aRecid = ? OR
  219. aRecid = 0 THEN RETURN NO-APPLY.
  220. FIND Adresse NO-LOCK
  221. WHERE RECID(Adresse) = aRecid.
  222. SELF:SCREEN-VALUE = STRING(Adresse.Knr).
  223. APPLY 'ENTRY' TO SELF.
  224. RETURN NO-APPLY.
  225. END.
  226. /* _UIB-CODE-BLOCK-END */
  227. &ANALYZE-RESUME
  228. &Scoped-define SELF-NAME Btn_Excel
  229. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel gArtikelanalyse
  230. ON CHOOSE OF Btn_Excel IN FRAME gArtikelanalyse /* Excel */
  231. DO:
  232. DO WITH FRAME {&FRAME-NAME}:
  233. Btn_Excel:VISIBLE = FALSE.
  234. RUN REPORT.
  235. Btn_Excel:VISIBLE = TRUE.
  236. RUN ENDE.
  237. END.
  238. END.
  239. /* _UIB-CODE-BLOCK-END */
  240. &ANALYZE-RESUME
  241. &Scoped-define SELF-NAME Hersteller
  242. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Hersteller gArtikelanalyse
  243. ON HELP OF Hersteller IN FRAME gArtikelanalyse /* Hersteller */
  244. DO:
  245. RUN g-auswahl-tabelle.w ( INPUT SELF:HANDLE, INPUT 'HERST' ).
  246. APPLY 'END' TO SELF.
  247. END.
  248. /* _UIB-CODE-BLOCK-END */
  249. &ANALYZE-RESUME
  250. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Hersteller gArtikelanalyse
  251. ON LEFT-MOUSE-DBLCLICK OF Hersteller IN FRAME gArtikelanalyse /* Hersteller */
  252. DO:
  253. RUN g-auswahl-tabelle.w ( INPUT SELF:HANDLE, INPUT 'HERST' ).
  254. APPLY 'END' TO SELF.
  255. END.
  256. /* _UIB-CODE-BLOCK-END */
  257. &ANALYZE-RESUME
  258. &Scoped-define SELF-NAME Preisgruppen
  259. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Preisgruppen gArtikelanalyse
  260. ON HELP OF Preisgruppen IN FRAME gArtikelanalyse /* ausgeschl. Preisgruppen */
  261. DO:
  262. RUN g-auswahl-tabelle.w ( INPUT SELF:HANDLE, 'PREGRP' ).
  263. APPLY 'END' TO SELF.
  264. END.
  265. /* _UIB-CODE-BLOCK-END */
  266. &ANALYZE-RESUME
  267. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Preisgruppen gArtikelanalyse
  268. ON LEFT-MOUSE-DBLCLICK OF Preisgruppen IN FRAME gArtikelanalyse /* ausgeschl. Preisgruppen */
  269. DO:
  270. RUN g-auswahl-tabelle.w ( INPUT SELF:HANDLE, 'PREGRP' ).
  271. APPLY 'END' TO SELF.
  272. END.
  273. /* _UIB-CODE-BLOCK-END */
  274. &ANALYZE-RESUME
  275. &Scoped-define SELF-NAME VonKnr
  276. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL VonKnr gArtikelanalyse
  277. ON ALT-F OF VonKnr IN FRAME gArtikelanalyse /* von - bis Lieferant */
  278. DO:
  279. DEFINE VARIABLE aRecid AS RECID NO-UNDO.
  280. RUN 'g-suchen-adresse.w':U ( 'LIE;', OUTPUT aRecid ).
  281. IF aRecid = ? OR
  282. aRecid = 0 THEN RETURN NO-APPLY.
  283. FIND Adresse NO-LOCK
  284. WHERE RECID(Adresse) = aRecid.
  285. SELF:SCREEN-VALUE = STRING(Adresse.Knr).
  286. BisKnr:SCREEN-VALUE = STRING(Adresse.Knr).
  287. APPLY 'ENTRY' TO SELF.
  288. RETURN NO-APPLY.
  289. END.
  290. /* _UIB-CODE-BLOCK-END */
  291. &ANALYZE-RESUME
  292. &Scoped-define SELF-NAME Warengruppen
  293. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Warengruppen gArtikelanalyse
  294. ON HELP OF Warengruppen IN FRAME gArtikelanalyse /* Warengruppen */
  295. DO:
  296. RUN g-auswahl-wgr.w ( INPUT SELF:HANDLE ).
  297. APPLY 'END' TO SELF.
  298. END.
  299. /* _UIB-CODE-BLOCK-END */
  300. &ANALYZE-RESUME
  301. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Warengruppen gArtikelanalyse
  302. ON LEFT-MOUSE-DBLCLICK OF Warengruppen IN FRAME gArtikelanalyse /* Warengruppen */
  303. DO:
  304. RUN g-auswahl-wgr.w ( INPUT SELF:HANDLE ).
  305. APPLY 'END' TO SELF.
  306. END.
  307. /* _UIB-CODE-BLOCK-END */
  308. &ANALYZE-RESUME
  309. &UNDEFINE SELF-NAME
  310. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gArtikelanalyse
  311. /* *************************** Main Block *************************** */
  312. MaxPage = 1.
  313. AktSeite = 1.
  314. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  315. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  316. GET-KEY-VALUE SECTION 'FwSteuer' KEY 'FwFRW' VALUE RetVal.
  317. IF RetVal = ? THEN RetVal = 'CHF'.
  318. FwFRW = RetVal.
  319. GET-KEY-VALUE SECTION 'FwSteuer' KEY 'FwSprcd' VALUE RetVal.
  320. IF RetVal = ? THEN RetVal = '1'.
  321. FwSprcd = INTEGER(RetVal) NO-ERROR.
  322. SESSION:DATA-ENTRY-RETURN = TRUE.
  323. /* ------------------------------------------------------------------ */
  324. {src/adm2/dialogmn.i}
  325. /* _UIB-CODE-BLOCK-END */
  326. &ANALYZE-RESUME
  327. /* ********************** Internal Procedures *********************** */
  328. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gArtikelanalyse _ADM-CREATE-OBJECTS
  329. PROCEDURE adm-create-objects :
  330. /*------------------------------------------------------------------------------
  331. Purpose: Create handles for all SmartObjects used in this procedure.
  332. After SmartObjects are initialized, then SmartLinks are added.
  333. Parameters: <none>
  334. ------------------------------------------------------------------------------*/
  335. END PROCEDURE.
  336. /* _UIB-CODE-BLOCK-END */
  337. &ANALYZE-RESUME
  338. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BEREINIGEN gArtikelanalyse
  339. PROCEDURE BEREINIGEN :
  340. /*------------------------------------------------------------------------------
  341. Purpose:
  342. Parameters: <none>
  343. Notes:
  344. ------------------------------------------------------------------------------*/
  345. DEFINE INPUT-OUTPUT PARAMETER ipString AS CHARACTER NO-UNDO.
  346. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  347. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  348. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  349. cString = ''.
  350. DO ix = 1 TO NUM-ENTRIES(ipString, ','):
  351. IF CString <> '' THEN cString = cString + ','.
  352. cString = cString + STRING(INTEGER(ENTRY(ix, ipString)),'999').
  353. END.
  354. ipString = cString.
  355. END PROCEDURE.
  356. /* _UIB-CODE-BLOCK-END */
  357. &ANALYZE-RESUME
  358. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BESTELLKOPF gArtikelanalyse
  359. PROCEDURE BESTELLKOPF :
  360. /*------------------------------------------------------------------------------
  361. Purpose:
  362. Parameters: <none>
  363. Notes:
  364. ------------------------------------------------------------------------------*/
  365. RUN NUMMER_LOESEN ( INPUT 3, OUTPUT Besnr ).
  366. IF Besnr = ? THEN RETURN 'ERROR'.
  367. REPEAT TRANSACTION:
  368. FIND Liefst USE-INDEX Liefst-k1
  369. WHERE Liefst.Firma = Firma
  370. AND Liefst.Knr = tArtLief.Knr NO-LOCK.
  371. CREATE Besko.
  372. ASSIGN
  373. Besko.Firma = Firma
  374. Besko.Besnr = Besnr
  375. Besko.Knr = Liefst.Knr
  376. Besko.Best_Datum = TODAY
  377. Besko.Lief_Datum = TODAY + 7
  378. Besko.Buch_Datum = ?
  379. Besko.I_Best = Liefst.Kontakt
  380. Besko.Rabatt = Liefst.Rabatt
  381. Besko.Gedruckt = FALSE
  382. Besko.Verbucht = FALSE
  383. Besko.Best_Sta = 1
  384. Besko.Bemerkung = Liefst.Bemerkung
  385. Besko.Kopf = Liefst.Kopf
  386. Besko.Schluss = Liefst.Schluss
  387. Besko.Kond = Liefst.Kond.
  388. FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1
  389. WHERE Waehrung.Firma = Liefst.Firma
  390. AND Waehrung.FRW = Liefst.FRW NO-ERROR.
  391. IF AVAILABLE Waehrung THEN
  392. DO:
  393. ASSIGN
  394. Besko.FRW = Waehrung.FRW
  395. Besko.Faktor = Waehrung.Faktor
  396. Besko.Kurs = Waehrung.Kurs.
  397. END.
  398. ELSE
  399. DO:
  400. ASSIGN
  401. Besko.FRW = FwFRW
  402. Besko.Faktor = 1
  403. Besko.Kurs = 1.0.
  404. END.
  405. LEAVE.
  406. END.
  407. RELEASE Besko.
  408. RETURN ''.
  409. END PROCEDURE.
  410. /* _UIB-CODE-BLOCK-END */
  411. &ANALYZE-RESUME
  412. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BESTELLZEILE gArtikelanalyse
  413. PROCEDURE BESTELLZEILE :
  414. /*------------------------------------------------------------------------------
  415. Purpose:
  416. Parameters: <none>
  417. Notes:
  418. ------------------------------------------------------------------------------*/
  419. DEFINE VARIABLE VPos AS INTEGER NO-UNDO.
  420. REPEAT TRANSACTION:
  421. FIND LAST Besze USE-INDEX Besze-k1
  422. WHERE Besze.Firma = Firma
  423. AND Besze.Besnr = Besnr NO-LOCK NO-ERROR.
  424. IF AVAILABLE Besze THEN VPos = Besze.Pos + 10.
  425. ELSE VPos = 10.
  426. CREATE Besze.
  427. ASSIGN
  428. Besze.Firma = Firma
  429. Besze.Besnr = Besnr
  430. Besze.Pos = VPos
  431. Besze.Artnr = BArtst.Artnr
  432. Besze.Inhalt = BArtst.Inhalt
  433. Besze.Jahr = BArtst.Jahr
  434. Besze.Bez1 = Artbez.Bez1
  435. Besze.Bez2 = Artbez.Bez2
  436. Besze.Preis = tArtLief.S_Preis
  437. Besze.Aktion = FALSE
  438. Besze.Lager = 0
  439. Besze.KGeb_Cd = BArtst.KGeb_Cd
  440. Besze.VGeb_Cd = BArtst.VGeb_Cd
  441. Besze.GGeb_Cd = BArtst.GGeb_Cd
  442. Besze.KGebKto = KGebinde.Geb_Kto
  443. Besze.VGebKto = VGebinde.Geb_Kto
  444. Besze.GGebKto = GGebinde.Geb_Kto
  445. Besze.EP = tArtLief.L_EP
  446. Besze.S_Artnr = tArtLief.S_Artnr
  447. Besze.S_Bez1 = tArtLief.S_Bez1
  448. Besze.S_Bez2 = tArtLief.S_Bez2
  449. Besze.S_Preis = tArtLief.S_Preis
  450. Besze.S_Preis_FRW = tArtLief.S_Preis_FRW
  451. Besze.L_EP = tArtLief.L_EP
  452. Besze.L_EP_FRW = tArtLief.L_EP_FRW
  453. Besze.L_Rabatt = tArtLief.L_Rabatt
  454. Besze.Spesen = tArtLief.Spesen
  455. Besze.Rabatt = tArtLief.Rabatt.
  456. LEAVE.
  457. END.
  458. RELEASE Besze.
  459. END PROCEDURE.
  460. /* _UIB-CODE-BLOCK-END */
  461. &ANALYZE-RESUME
  462. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage gArtikelanalyse
  463. PROCEDURE changePage :
  464. /*------------------------------------------------------------------------------
  465. Purpose: Super Override
  466. Parameters:
  467. Notes:
  468. ------------------------------------------------------------------------------*/
  469. /* Code placed here will execute PRIOR to standard behavior. */
  470. RUN SUPER.
  471. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  472. CASE AktSeite:
  473. WHEN 1 THEN
  474. 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
  481. DO:
  482. RUN ENTRY_CURSOR.
  483. END.
  484. END CASE.
  485. END PROCEDURE.
  486. /* _UIB-CODE-BLOCK-END */
  487. &ANALYZE-RESUME
  488. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gArtikelanalyse _DEFAULT-DISABLE
  489. PROCEDURE disable_UI :
  490. /*------------------------------------------------------------------------------
  491. Purpose: DISABLE the User Interface
  492. Parameters: <none>
  493. Notes: Here we clean-up the user-interface by deleting
  494. dynamic widgets we have created and/or hide
  495. frames. This procedure is usually called when
  496. we are ready to "clean-up" after running.
  497. ------------------------------------------------------------------------------*/
  498. /* Hide all frames. */
  499. HIDE FRAME gArtikelanalyse.
  500. END PROCEDURE.
  501. /* _UIB-CODE-BLOCK-END */
  502. &ANALYZE-RESUME
  503. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gArtikelanalyse
  504. PROCEDURE enableObject :
  505. /*------------------------------------------------------------------------------
  506. Purpose: Super Override
  507. Parameters:
  508. Notes:
  509. ------------------------------------------------------------------------------*/
  510. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  511. RUN SUPER.
  512. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR.
  513. IF NOT VALID-HANDLE(Fenster)
  514. THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  515. IF VALID-HANDLE(Fenster) THEN Fenster = Fenster:FIRST-CHILD.
  516. DO WHILE VALID-HANDLE(Fenster).
  517. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  518. IF Fenster:TYPE = 'EDITOR' THEN LEAVE.
  519. IF Fenster:TYPE = 'LITERAL' THEN LEAVE.
  520. IF Fenster:TYPE = 'RECTANGLE' THEN LEAVE.
  521. IF Fenster:TYPE = 'BUTTON' THEN LEAVE.
  522. GET-KEY-VALUE SECTION 'ArtikelAnalyse'
  523. KEY Fenster:NAME
  524. VALUE cString.
  525. IF cString = ? THEN LEAVE.
  526. Fenster:SCREEN-VALUE = cString.
  527. LEAVE.
  528. END.
  529. Fenster = Fenster:NEXT-SIBLING.
  530. END.
  531. DO WITH FRAME {&FRAME-NAME}:
  532. ASSIGN {&List-6}.
  533. END.
  534. END PROCEDURE.
  535. /* _UIB-CODE-BLOCK-END */
  536. &ANALYZE-RESUME
  537. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gArtikelanalyse _DEFAULT-ENABLE
  538. PROCEDURE enable_UI :
  539. /*------------------------------------------------------------------------------
  540. Purpose: ENABLE the User Interface
  541. Parameters: <none>
  542. Notes: Here we display/view/enable the widgets in the
  543. user-interface. In addition, OPEN all queries
  544. associated with each FRAME and BROWSE.
  545. These statements here are based on the "Other
  546. Settings" section of the widget Property Sheets.
  547. ------------------------------------------------------------------------------*/
  548. DISPLAY Hersteller Warengruppen Preisgruppen VonArtnr BisArtnr VonKnr BisKnr
  549. VonDatum BisDatum
  550. WITH FRAME gArtikelanalyse.
  551. ENABLE Hersteller Warengruppen Preisgruppen VonArtnr BisArtnr VonKnr BisKnr
  552. VonDatum BisDatum Btn_Excel RECT-37
  553. WITH FRAME gArtikelanalyse.
  554. VIEW FRAME gArtikelanalyse.
  555. {&OPEN-BROWSERS-IN-QUERY-gArtikelanalyse}
  556. END PROCEDURE.
  557. /* _UIB-CODE-BLOCK-END */
  558. &ANALYZE-RESUME
  559. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gArtikelanalyse
  560. PROCEDURE ENDE :
  561. /*------------------------------------------------------------------------------
  562. Purpose:
  563. Parameters: <none>
  564. Notes:
  565. ------------------------------------------------------------------------------*/
  566. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  567. IF AktSeite > 1 THEN
  568. DO:
  569. RUN selectPage ( INPUT 1 ).
  570. RETURN NO-APPLY.
  571. END.
  572. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  573. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  574. RETURN NO-APPLY.
  575. END PROCEDURE.
  576. /* _UIB-CODE-BLOCK-END */
  577. &ANALYZE-RESUME
  578. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR gArtikelanalyse
  579. PROCEDURE ENTRY_CURSOR :
  580. /*------------------------------------------------------------------------------
  581. Purpose:
  582. Parameters: <none>
  583. Notes:
  584. ------------------------------------------------------------------------------*/
  585. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  586. CASE AktSeite:
  587. /* WHEN 1 THEN RUN applyEntry IN h_v-adresse ( INPUT ? ). */
  588. /* WHEN 2 THEN RUN applyEntry IN h_f-adrkomm ( INPUT ? ). */
  589. /* WHEN 3 THEN RUN applyEntry IN h_b-auftbb ( INPUT ? ). */
  590. /* WHEN 4 THEN RUN applyEntry IN h_b-aufdet ( INPUT ? ). */
  591. /* WHEN 5 THEN RUN applyEntry IN h_b-aufstreu ( INPUT ? ). */
  592. /* WHEN 6 THEN RUN applyEntry IN h_b-auffak ( INPUT ? ). */
  593. /* WHEN 7 THEN RUN applyEntry IN h_b-position ( INPUT ? ). */
  594. END CASE.
  595. RETURN NO-APPLY.
  596. END PROCEDURE.
  597. /* _UIB-CODE-BLOCK-END */
  598. &ANALYZE-RESUME
  599. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gArtikelanalyse
  600. PROCEDURE exitObject :
  601. /*------------------------------------------------------------------------------
  602. Purpose: Super Override
  603. Parameters:
  604. Notes:
  605. ------------------------------------------------------------------------------*/
  606. RUN ENDE.
  607. RETURN NO-APPLY.
  608. END PROCEDURE.
  609. /* _UIB-CODE-BLOCK-END */
  610. &ANALYZE-RESUME
  611. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF gArtikelanalyse
  612. PROCEDURE KOPF :
  613. /*------------------------------------------------------------------------------
  614. Purpose:
  615. Parameters: <none>
  616. Notes:
  617. ------------------------------------------------------------------------------*/
  618. DEFINE INPUT PARAMETER eh AS COMPONENT-HANDLE NO-UNDO.
  619. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO.
  620. FIND Steuer USE-INDEX Steuer-k1
  621. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  622. Zelle = 'B1'.
  623. eh:Range(Zelle):SELECT.
  624. eh:SELECTION:VALUE = Steuer.Firma1.
  625. Zelle = 'H1'.
  626. eh:Range(Zelle):SELECT.
  627. eh:SELECTION:VALUE = 'Artikel - Analyse'.
  628. Zelle = 'Q1'.
  629. eh:Range(Zelle):SELECT.
  630. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  631. Zelle = 'B2'.
  632. eh:Range(Zelle):SELECT.
  633. eh:SELECTION:VALUE = Steuer.Ort.
  634. Zelle = 'H2'.
  635. eh:Range(Zelle):SELECT.
  636. eh:SELECTION:VALUE = STRING(VonDatum,'99.99.9999')
  637. + ' - '
  638. + STRING(BisDatum,'99.99.9999').
  639. Zelle = 'Q2'.
  640. eh:Range(Zelle):SELECT.
  641. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  642. END PROCEDURE.
  643. /* _UIB-CODE-BLOCK-END */
  644. &ANALYZE-RESUME
  645. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gArtikelanalyse
  646. PROCEDURE REPORT :
  647. /*------------------------------------------------------------------------------
  648. Purpose:
  649. Parameters: <none>
  650. Notes:
  651. ------------------------------------------------------------------------------*/
  652. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  653. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  654. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  655. DEFINE VARIABLE Stern AS CHARACTER NO-UNDO.
  656. DEFINE VARIABLE Alk AS CHARACTER NO-UNDO.
  657. DEFINE VARIABLE xWgr AS CHARACTER NO-UNDO.
  658. DEFINE VARIABLE xPgr AS CHARACTER NO-UNDO.
  659. DEFINE VARIABLE xAgr AS CHARACTER NO-UNDO.
  660. DEFINE VARIABLE iVG AS DECIMAL NO-UNDO.
  661. DEFINE VARIABLE iGG AS DECIMAL NO-UNDO.
  662. DEFINE VARIABLE Divisor AS DECIMAL NO-UNDO.
  663. DEFINE VARIABLE OK AS LOG NO-UNDO.
  664. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO.
  665. DEFINE VARIABLE Vorlage AS CHARACTER NO-UNDO.
  666. DEFINE VARIABLE Dokument AS CHARACTER NO-UNDO.
  667. DEFINE VARIABLE Daten AS CHARACTER NO-UNDO.
  668. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO.
  669. DO WITH FRAME {&FRAME-NAME}:
  670. ASSIGN {&List-6}.
  671. IF VonArtnr = 0 AND BisArtnr = 0 THEN BisArtnr = 999999.
  672. IF VonKnr = 0 AND BisKnr = 0 THEN BisKnr = 999999.
  673. RUN BEREINIGEN ( INPUT-OUTPUT Hersteller ).
  674. RUN BEREINIGEN ( INPUT-OUTPUT Warengruppen ).
  675. RUN BEREINIGEN ( INPUT-OUTPUT Preisgruppen ).
  676. IF VonDatum = ? THEN VonDatum = DATE(MONTH(TODAY - 1),01,YEAR(TODAY - 1)).
  677. IF BisDatum = ? THEN BisDatum = DATE(MONTH(TODAY),01,YEAR(TODAY)) - 1.
  678. IF BisDatum < VonDatum THEN BisDatum = VonDatum.
  679. DISPLAY {&list-6}.
  680. END.
  681. IF NOT VALID-HANDLE(Fenster)
  682. THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  683. IF VALID-HANDLE(Fenster) THEN Fenster = Fenster:FIRST-CHILD.
  684. DO WHILE VALID-HANDLE(Fenster).
  685. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  686. IF Fenster:TYPE = 'EDITOR' THEN LEAVE.
  687. IF Fenster:TYPE = 'LITERAL' THEN LEAVE.
  688. IF Fenster:TYPE = 'RECTANGLE' THEN LEAVE.
  689. IF Fenster:TYPE = 'BUTTON' THEN LEAVE.
  690. cString = Fenster:SCREEN-VALUE.
  691. PUT-KEY-VALUE SECTION 'ArtikelAnalyse'
  692. KEY Fenster:NAME
  693. VALUE cString.
  694. LEAVE.
  695. END.
  696. Fenster = Fenster:NEXT-SIBLING.
  697. END.
  698. SESSION:SET-WAIT-STATE('GENERAL').
  699. RUN SELEKTION.
  700. Vorlage = 'ArtikelAnalyse.xls'.
  701. Dokument = Vorlage + CHR(01) + Vorlage.
  702. Daten = 'ArtikelAnalyse.csv'.
  703. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  704. IF NOT VALID-HANDLE(excelAppl) THEN
  705. DO:
  706. RUN FEHLER ( INPUT 1035 ).
  707. RETURN NO-APPLY.
  708. END.
  709. DO WHILE TRUE:
  710. RUN CREATEDATEI ( INPUT Dokument ).
  711. IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE.
  712. CASE RETURN-VALUE:
  713. WHEN 'ERROR-PARAMETER' THEN
  714. DO:
  715. RUN FEHLER ( INPUT 1036 ).
  716. RETURN NO-APPLY.
  717. END.
  718. WHEN 'ERROR-LOESCHEN' THEN
  719. DO:
  720. RUN FEHLER ( INPUT 1037 ).
  721. RETURN NO-APPLY.
  722. END.
  723. WHEN 'ERROR-VORLAGE' THEN
  724. DO:
  725. RUN FEHLER ( INPUT 1038 ).
  726. RETURN NO-APPLY.
  727. END.
  728. OTHERWISE
  729. DO:
  730. MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR.
  731. RETURN NO-APPLY.
  732. END.
  733. END CASE.
  734. LEAVE.
  735. END.
  736. Dokument = RETURN-VALUE.
  737. DO WHILE TRUE:
  738. RUN CREATEDATEI ( INPUT Daten ).
  739. IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE.
  740. CASE RETURN-VALUE:
  741. WHEN 'ERROR-PARAMETER' THEN
  742. DO:
  743. RUN FEHLER ( INPUT 1036 ).
  744. RETURN NO-APPLY.
  745. END.
  746. WHEN 'ERROR-LOESCHEN' THEN
  747. DO:
  748. RUN FEHLER ( INPUT 1037 ).
  749. RETURN NO-APPLY.
  750. END.
  751. WHEN 'ERROR-VORLAGE' THEN
  752. DO:
  753. RUN FEHLER ( INPUT 1038 ).
  754. RETURN NO-APPLY.
  755. END.
  756. OTHERWISE
  757. DO:
  758. MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR.
  759. RETURN NO-APPLY.
  760. END.
  761. END CASE.
  762. LEAVE.
  763. END.
  764. Daten = RETURN-VALUE.
  765. Divisor = (BisDatum - VonDatum) * 0.72.
  766. OUTPUT TO VALUE(Daten).
  767. PUT CONTROL '£' CHR(10)
  768. '£' CHR(10)
  769. '£' CHR(10)
  770. '£' CHR(10)
  771. '£Artnr/Inhalt£Bezeichnung£Wgr'
  772. '£Klein-£Verkaufs-£Gross-'
  773. '£Inhalt£Lieferant£Verbrauch£'
  774. 'Einheiten£Paletten£Tages-£Umsatz Fr.'
  775. '£Standort'
  776. '£Bestand'
  777. '£TagesBest' CHR(10)
  778. '££££Gebinde£Gebinde£Gebinde'
  779. '££Kdnr££££Umsatz££' CHR(10)
  780. '££££££££££££in VE££' CHR(10)
  781. '£' CHR(10).
  782. FOR EACH tArtLief USE-INDEX ArtLief-k2 NO-LOCK,
  783. FIRST BArtst USE-INDEX Artst-k1
  784. WHERE BArtst.Firma = tArtLief.Firma
  785. AND BArtst.Artnr = tArtLief.Artnr
  786. AND BArtst.Inhalt = tArtLief.Inhalt
  787. AND BArtst.Jahr = tArtLief.Jahr NO-LOCK
  788. BREAK BY tArtLief.Verbrauch DESCENDING
  789. BY BArtst.Artnr
  790. BY BArtst.Inhalt
  791. BY BArtst.Jahr :
  792. IF (BArtst.Bestand + BArtst.Bestellt) <= BArtst.Mind_Bestand
  793. THEN Stern = '*'.
  794. ELSE Stern = ''.
  795. FIND Artbez USE-INDEX Artbez-k1
  796. WHERE Artbez.Firma = BArtst.Firma
  797. AND Artbez.Artnr = BArtst.Artnr
  798. AND Artbez.Inhalt = BArtst.Inhalt
  799. AND Artbez.Jahr = BArtst.Jahr
  800. AND Artbez.Sprcd = FwSprcd NO-LOCK NO-ERROR.
  801. IF NOT AVAILABLE Artbez THEN
  802. DO:
  803. FIND FIRST Artbez OF BArtst NO-LOCK NO-ERROR.
  804. END.
  805. FIND KGebinde USE-INDEX KGebinde-k1
  806. WHERE KGebinde.Firma = BArtst.Firma
  807. AND KGebinde.Geb_Cd = BArtst.KGeb_Cd NO-LOCK NO-ERROR.
  808. FIND VGebinde USE-INDEX VGebinde-k1
  809. WHERE VGebinde.Firma = BArtst.Firma
  810. AND VGebinde.Geb_Cd = BArtst.VGeb_Cd NO-LOCK NO-ERROR.
  811. FIND GGebinde USE-INDEX GGebinde-k1
  812. WHERE GGebinde.Firma = BArtst.Firma
  813. AND GGebinde.Geb_Cd = BArtst.GGeb_Cd NO-LOCK NO-ERROR.
  814. iVG = tArtLief.Verbrauch / VGebinde.Inhalt NO-ERROR.
  815. iGG = iVG / GGebinde.Inhalt NO-ERROR.
  816. PUT CONTROL '£'
  817. STRING(BArtst.Artnr ,'999999/')
  818. STRING(BArtst.Inhalt ,'9999') '£'
  819. ArtBez.Bez1 '£'
  820. STRING(BArtst.Wg_Grp ,'zzz') '£'
  821. KGebinde.KBez '£'
  822. VGebinde.KBez '£'
  823. GGebinde.KBez '£'
  824. STRING(KGebinde.Inhalt ,'zzzz') '£'
  825. tArtLief.Lieferanten '£'
  826. TRIM(STRING(tArtLief.Verbrauch,'->>>>>>>>')) '£'.
  827. IF VGebinde.Inhalt > 1 THEN PUT CONTROL TRIM(STRING(iVG,'zzzzz9.9')).
  828. PUT CONTROL '£'.
  829. IF GGebinde.Inhalt > 1 THEN PUT CONTROL TRIM(STRING(iGG,'zzzzz9.9')).
  830. PUT CONTROL '£'.
  831. IF VGebinde.Inhalt > 0 THEN PUT CONTROL TRIM(STRING((iVG / Divisor),'zzzzz9.9')).
  832. PUT CONTROL '£'
  833. TRIM(STRING(tArtLief.Umsatz,'->>>>>>>>>'))
  834. '£'
  835. tArtLief.LagOrt
  836. '£'
  837. TRIM(STRING(tArtLief.Bestand ,'->>>>>>>>>'))
  838. '£'
  839. TRIM(STRING(tArtLief.TagesBestand,'->>>>>>>>>'))
  840. CHR(10).
  841. IF ArtBez.Bez2 <> '' THEN
  842. DO:
  843. PUT CONTROL '££'
  844. ArtBez.Bez2 CHR(10).
  845. END.
  846. END.
  847. OUTPUT CLOSE.
  848. RUN OPENEXCEL ( INPUT excelAppl,
  849. INPUT Dokument,
  850. INPUT '',
  851. OUTPUT ok ).
  852. IF NOT ok THEN
  853. DO:
  854. RUN FEHLER ( INPUT 1040 ).
  855. RETURN NO-APPLY.
  856. END.
  857. Zelle = 'A1'.
  858. excelAppl:Range(Zelle):SELECT.
  859. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + Daten.
  860. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  861. RUN KOPF ( INPUT excelAppl ).
  862. Zelle = 'A1'.
  863. excelAppl:Range(Zelle):SELECT.
  864. excelAppl:Selection:ColumnWidth = 0.3.
  865. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  866. SESSION:SET-WAIT-STATE('').
  867. END PROCEDURE.
  868. /* _UIB-CODE-BLOCK-END */
  869. &ANALYZE-RESUME
  870. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage gArtikelanalyse
  871. PROCEDURE selectPage :
  872. /*------------------------------------------------------------------------------
  873. Purpose: Super Override
  874. Parameters:
  875. Notes:
  876. ------------------------------------------------------------------------------*/
  877. DEFINE INPUT PARAMETER piPageNum AS INTEGER NO-UNDO.
  878. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO.
  879. DEFINE VARIABLE MutProg AS CHARACTER NO-UNDO.
  880. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  881. DO WHILE TRUE:
  882. IF NOT FMutFlag THEN LEAVE.
  883. MutProg = DYNAMIC-FUNCTION('GETMUTPROG':U).
  884. IF MutProg <> THIS-PROCEDURE:FILE-NAME THEN LEAVE.
  885. RETURN NO-APPLY.
  886. END.
  887. CASE piPageNum:
  888. END CASE.
  889. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  890. CASE AktSeite:
  891. WHEN 1 THEN
  892. DO:
  893. /* RUN removeLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */
  894. /* RUN removeLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */
  895. END.
  896. END CASE.
  897. RUN SUPER( INPUT piPageNum).
  898. END PROCEDURE.
  899. /* _UIB-CODE-BLOCK-END */
  900. &ANALYZE-RESUME
  901. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SELEKTION gArtikelanalyse
  902. PROCEDURE SELEKTION :
  903. /*------------------------------------------------------------------------------
  904. Purpose:
  905. Parameters: <none>
  906. Notes:
  907. ------------------------------------------------------------------------------*/
  908. DEFINE VARIABLE Unter AS LOG NO-UNDO.
  909. DEFINE VARIABLE Menge AS DECIMAL NO-UNDO.
  910. DEFINE VARIABLE Umsatz AS DECIMAL NO-UNDO.
  911. DEFINE VARIABLE Netto AS DECIMAL NO-UNDO.
  912. FOR EACH tArtLief:
  913. DELETE tArtLief.
  914. END.
  915. FOR EACH ArtLief USE-INDEX ArtLief-k2
  916. WHERE ArtLief.Firma = Firma
  917. AND ArtLief.Knr >= VonKnr
  918. AND ArtLief.Knr <= BisKnr
  919. AND ArtLief.Artnr >= VonArtnr
  920. AND ArtLief.Artnr <= BisArtnr NO-LOCK,
  921. FIRST Artst USE-INDEX Artst-k1
  922. WHERE Artst.Firma = ArtLief.Firma
  923. AND Artst.Artnr = ArtLief.Artnr
  924. AND Artst.Inhalt = ArtLief.Inhalt
  925. AND Artst.Jahr = ArtLief.Jahr
  926. AND ((Warengruppen = '') OR
  927. (Warengruppen <> '' AND
  928. LOOKUP(STRING(Artst.Wg_Grp,"999"), Warengruppen, ',') > 0))
  929. AND ((Hersteller = '') OR
  930. (Hersteller <> '' AND
  931. LOOKUP(STRING(Artst.Herst,"999"), Hersteller , ',') > 0))
  932. AND Artst.Aktiv = TRUE
  933. AND Artst.Ausverk < 2 NO-LOCK :
  934. FIND FIRST tArtLief USE-INDEX ArtLief-k1
  935. WHERE tArtLief.Firma = Firma
  936. AND tArtLief.Artnr = ArtLief.Artnr NO-LOCK NO-ERROR.
  937. IF AVAILABLE tArtLief THEN
  938. DO:
  939. tArtLief.Lieferanten = tArtLief.Lieferanten
  940. + '/'
  941. + TRIM(STRING(ArtLief.Knr,'zzzzzz')).
  942. NEXT.
  943. END.
  944. Unter = FALSE.
  945. IF (Artst.Bestand + Artst.Bestellt) <= Artst.Mind_Bestand THEN Unter = TRUE.
  946. FIND ArtLager NO-LOCK
  947. WHERE ArtLager.Firma = Artst.Firma
  948. AND ArtLager.Lager = 0
  949. AND ArtLager.Artnr = Artst.Artnr
  950. AND ArtLager.Inhalt = Artst.Inhalt
  951. AND ArtLager.Jahr = Artst.Jahr NO-ERROR.
  952. IF NOT AVAILABLE ArtLager THEN NEXT.
  953. CREATE tArtLief.
  954. BUFFER-COPY ArtLief TO tArtLief.
  955. tArtLief.LagOrt = DYNAMIC-FUNCTION('GETLAGERORT':U, INPUT ArtLager.Lager ,
  956. INPUT tArtLief.Artnr ,
  957. INPUT tArtLief.Inhalt,
  958. INPUT tArtLief.Jahr ) NO-ERROR.
  959. tArtLief.Lieferanten = TRIM(STRING(ArtLief.Knr,'zzzzzz')).
  960. tArtLief.TagesBestand = ArtLager.Bestand.
  961. tArtLief.Bestand = ArtLager.Bestand.
  962. Menge = 0.
  963. Umsatz = 0.
  964. FOR EACH Artbw USE-INDEX Artbw-k2
  965. WHERE Artbw.Firma = ArtLief.Firma
  966. AND Artbw.Artnr = ArtLief.Artnr
  967. AND Artbw.Inhalt = ArtLief.Inhalt
  968. AND Artbw.Jahr = ArtLief.Jahr
  969. AND Artbw.Datum >= VonDatum
  970. AND Artbw.Tr_Art = 01 NO-LOCK:
  971. IF Preisgruppen <> '' THEN
  972. DO:
  973. FIND Debst NO-LOCK USE-INDEX Debst-k1
  974. WHERE Debst.Firma = Artbw.Firma
  975. AND Debst.Knr = Artbw.Knr NO-ERROR.
  976. IF NOT AVAILABLE Debst THEN NEXT.
  977. IF LOOKUP(STRING(Debst.Preis_Grp,"999"), Preisgruppen, ',') = 0 THEN NEXT.
  978. END.
  979. IF Artbw.Datum <= BisDatum THEN Menge = Menge + Artbw.Menge.
  980. IF Artbw.Datum > (TODAY + 1) THEN tArtLief.TagesBestand = tArtLief.TagesBestand + Artbw.Menge.
  981. Netto = (Artbw.Net_Betr - Artbw.Auf_Rab - Artbw.Abh_Rab - Artbw.Auf_Sp_Rab).
  982. IF Artbw.MWST_Inkl THEN Netto = Netto * 100 / (100 + Artbw.MWST%).
  983. Umsatz = Umsatz + Netto.
  984. END.
  985. ASSIGN
  986. tArtLief.Verbrauch = Menge
  987. tArtLief.Umsatz = Umsatz.
  988. END.
  989. END PROCEDURE.
  990. /* _UIB-CODE-BLOCK-END */
  991. &ANALYZE-RESUME