g-verkaufszahlen.w 40 KB

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