w-provabrechnung.w 38 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME wProvisionsabrechnung
  4. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS wProvisionsabrechnung
  5. /*------------------------------------------------------------------------
  6. File:
  7. Description: from cntnrwin.w - ADM SmartWindow Template
  8. Input Parameters:
  9. <none>
  10. Output Parameters:
  11. <none>
  12. History: New V9 Version - January 15, 1998
  13. ------------------------------------------------------------------------*/
  14. /* This .W file was created with the Progress AB. */
  15. /*----------------------------------------------------------------------*/
  16. /* Create an unnamed pool to store all the widgets created
  17. by this procedure. This is a good default which assures
  18. that this procedure's triggers and internal procedures
  19. will execute in this procedure's storage, and that proper
  20. cleanup will occur on deletion of the procedure. */
  21. CREATE WIDGET-POOL.
  22. /* *************************** Definitions ************************** */
  23. /* Parameters Definitions --- */
  24. /* Local Variable Definitions --- */
  25. DEF VAR MaxPage AS INT NO-UNDO.
  26. DEF VAR AktSeite AS INT NO-UNDO.
  27. DEF VAR Fenster AS HANDLE NO-UNDO.
  28. DEF VAR hToolbar AS HANDLE NO-UNDO.
  29. DEF VAR FMutFlag AS LOG NO-UNDO INIT FALSE.
  30. DEF VAR SAktiv AS LOG NO-UNDO INIT FALSE.
  31. DEF VAR Firma AS CHAR NO-UNDO.
  32. DEF VAR Progname AS CHAR NO-UNDO.
  33. DEF VAR Vertr AS INT NO-UNDO.
  34. DEF VAR iMaxPer AS INT NO-UNDO.
  35. DEF VAR cVorlage AS CHAR NO-UNDO.
  36. DEF VAR cDokument AS CHAR NO-UNDO.
  37. DEF VAR cDaten AS CHAR NO-UNDO.
  38. DEF VAR cDateiName AS CHAR NO-UNDO.
  39. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  40. DEF TEMP-TABLE TProv FIELD Vertr AS INT
  41. FIELD Knr AS INT
  42. FIELD Artnr AS INT
  43. FIELD Inhalt AS INT
  44. FIELD Jahr AS INT
  45. FIELD Wgr AS INT
  46. FIELD Datum AS DATE
  47. FIELD Menge AS DEC
  48. FIELD Netto AS DEC
  49. FIELD Liter AS DEC
  50. FIELD Prov_Summ AS INT
  51. FIELD Prov_Art AS INT
  52. INDEX TProv-k1 AS PRIMARY
  53. Vertr
  54. Knr
  55. Artnr
  56. Inhalt
  57. Jahr
  58. INDEX TProv-k2
  59. Vertr
  60. Prov_Summ
  61. Artnr
  62. Inhalt
  63. Jahr.
  64. DEF TEMP-TABLE tProvMonat
  65. FIELD Vertr AS INT
  66. FIELD Knr AS INT
  67. FIELD Artnr AS INT
  68. FIELD Inhalt AS INT
  69. FIELD Jahr AS INT
  70. FIELD iJahr AS INT
  71. FIELD iMonat AS INT
  72. FIELD Menge AS DEC
  73. FIELD Netto AS DEC
  74. FIELD Liter AS DEC
  75. INDEX tProvMonat-k1 IS PRIMARY
  76. Vertr
  77. Knr
  78. Artnr
  79. Inhalt
  80. Jahr
  81. iJahr
  82. iMonat.
  83. DEF TEMP-TABLE tPerioden
  84. FIELD Periode AS INT
  85. FIELD Jahr AS INT
  86. FIELD Monat AS INT
  87. INDEX tPerioden-k1 IS PRIMARY
  88. Jahr
  89. Monat
  90. .
  91. /* _UIB-CODE-BLOCK-END */
  92. &ANALYZE-RESUME
  93. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  94. /* ******************** Preprocessor Definitions ******************** */
  95. &Scoped-define PROCEDURE-TYPE SmartWindow
  96. &Scoped-define DB-AWARE no
  97. &Scoped-define ADM-CONTAINER WINDOW
  98. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
  99. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  100. &Scoped-define FRAME-NAME fMain
  101. /* Standard List Definitions */
  102. &Scoped-Define ENABLED-OBJECTS RECT-13 CB_Vertreter F_VonKnr F_BisKnr ~
  103. F_VonArtnr F_BisArtnr F_VonDatum F_BisDatum R_Vertr T_Monat Btn_OK ~
  104. Btn_Cancel
  105. &Scoped-Define DISPLAYED-OBJECTS CB_Vertreter F_VonKnr F_BisKnr F_VonArtnr ~
  106. F_BisArtnr F_VonDatum F_BisDatum R_Vertr T_Monat
  107. /* Custom List Definitions */
  108. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  109. &Scoped-define List-6 F_VonKnr F_BisKnr F_VonArtnr F_BisArtnr F_VonDatum ~
  110. F_BisDatum R_Vertr T_Monat
  111. /* _UIB-PREPROCESSOR-BLOCK-END */
  112. &ANALYZE-RESUME
  113. /* ************************ Function Prototypes ********************** */
  114. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD XGET_VERTRETER wProvisionsabrechnung
  115. FUNCTION XGET_VERTRETER RETURNS INTEGER
  116. ( ipKnr AS INT ) FORWARD.
  117. /* _UIB-CODE-BLOCK-END */
  118. &ANALYZE-RESUME
  119. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD XGET_WARENGRUPPE wProvisionsabrechnung
  120. FUNCTION XGET_WARENGRUPPE RETURNS INTEGER
  121. ( ipArtnr AS INT ) FORWARD.
  122. /* _UIB-CODE-BLOCK-END */
  123. &ANALYZE-RESUME
  124. /* *********************** Control Definitions ********************** */
  125. /* Define the widget handle for the window */
  126. DEFINE VAR wProvisionsabrechnung AS WIDGET-HANDLE NO-UNDO.
  127. /* Definitions of the field level widgets */
  128. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  129. LABEL "&abbrechen"
  130. SIZE 14 BY 1.
  131. DEFINE BUTTON Btn_OK
  132. IMAGE-UP FILE "grafik/results%.ico":U
  133. IMAGE-INSENSITIVE FILE "grafik/results%.ico":U
  134. LABEL "Excel"
  135. SIZE 7 BY 1.71.
  136. DEFINE VARIABLE CB_Vertreter AS CHARACTER FORMAT "X(256)":U
  137. LABEL "Vertreter"
  138. VIEW-AS COMBO-BOX INNER-LINES 5
  139. LIST-ITEM-PAIRS "Item 1","Item 1"
  140. DROP-DOWN-LIST
  141. SIZE 40 BY 1
  142. BGCOLOR 15 NO-UNDO.
  143. DEFINE VARIABLE F_BisArtnr AS INTEGER FORMAT "999999":U INITIAL 0
  144. LABEL "-"
  145. VIEW-AS FILL-IN NATIVE
  146. SIZE 11 BY 1
  147. BGCOLOR 15 NO-UNDO.
  148. DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999":U
  149. LABEL "-"
  150. VIEW-AS FILL-IN NATIVE
  151. SIZE 16 BY 1
  152. BGCOLOR 15 NO-UNDO.
  153. DEFINE VARIABLE F_BisKnr AS INTEGER FORMAT "999999":U INITIAL 0
  154. LABEL "-"
  155. VIEW-AS FILL-IN NATIVE
  156. SIZE 11 BY 1
  157. BGCOLOR 15 NO-UNDO.
  158. DEFINE VARIABLE F_VonArtnr AS INTEGER FORMAT "999999":U INITIAL 0
  159. LABEL "von - bis Artikelnummer"
  160. VIEW-AS FILL-IN NATIVE
  161. SIZE 11 BY 1
  162. BGCOLOR 15 NO-UNDO.
  163. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U
  164. LABEL "von - bis Fakturadatum"
  165. VIEW-AS FILL-IN NATIVE
  166. SIZE 16 BY 1
  167. BGCOLOR 15 NO-UNDO.
  168. DEFINE VARIABLE F_VonKnr AS INTEGER FORMAT "999999":U INITIAL 0
  169. LABEL "von - bis Kundennummer"
  170. VIEW-AS FILL-IN NATIVE
  171. SIZE 11 BY 1
  172. BGCOLOR 15 NO-UNDO.
  173. DEFINE VARIABLE R_Vertr AS INTEGER
  174. VIEW-AS RADIO-SET VERTICAL
  175. RADIO-BUTTONS
  176. "Vertreter aus Auftrag", 1,
  177. "Vertreter aus Debitorstamm", 2
  178. SIZE 36.8 BY 1.43 NO-UNDO.
  179. DEFINE RECTANGLE RECT-13
  180. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  181. SIZE 72 BY 10.
  182. DEFINE VARIABLE T_Monat AS LOGICAL INITIAL no
  183. LABEL "Monatsspalten"
  184. VIEW-AS TOGGLE-BOX
  185. SIZE 38.2 BY 1 NO-UNDO.
  186. /* ************************ Frame Definitions *********************** */
  187. DEFINE FRAME fMain
  188. CB_Vertreter AT ROW 1.52 COL 26 COLON-ALIGNED
  189. F_VonKnr AT ROW 2.52 COL 26 COLON-ALIGNED
  190. F_BisKnr AT ROW 2.52 COL 44 COLON-ALIGNED
  191. F_VonArtnr AT ROW 3.52 COL 26 COLON-ALIGNED
  192. F_BisArtnr AT ROW 3.52 COL 44 COLON-ALIGNED
  193. F_VonDatum AT ROW 4.52 COL 26 COLON-ALIGNED
  194. F_BisDatum AT ROW 4.52 COL 44 COLON-ALIGNED
  195. R_Vertr AT ROW 5.86 COL 28 NO-LABEL
  196. T_Monat AT ROW 7.62 COL 28 WIDGET-ID 2
  197. Btn_OK AT ROW 9 COL 28.4
  198. Btn_Cancel AT ROW 9.48 COL 52
  199. RECT-13 AT ROW 1.24 COL 2
  200. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  201. SIDE-LABELS NO-UNDERLINE THREE-D
  202. AT COL 1 ROW 1
  203. SIZE 74 BY 11.14.
  204. /* *********************** Procedure Settings ************************ */
  205. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  206. /* Settings for THIS-PROCEDURE
  207. Type: SmartWindow
  208. Allow: Basic,Browse,DB-Fields,Query,Smart,Window
  209. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
  210. Design Page: 1
  211. Other Settings: COMPILE
  212. */
  213. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  214. /* ************************* Create Window ************************** */
  215. &ANALYZE-SUSPEND _CREATE-WINDOW
  216. IF SESSION:DISPLAY-TYPE = "GUI":U THEN
  217. CREATE WINDOW wProvisionsabrechnung ASSIGN
  218. HIDDEN = YES
  219. TITLE = "Provisionsabrechnung"
  220. HEIGHT = 11.14
  221. WIDTH = 74
  222. MAX-HEIGHT = 48.76
  223. MAX-WIDTH = 256
  224. VIRTUAL-HEIGHT = 48.76
  225. VIRTUAL-WIDTH = 256
  226. RESIZE = no
  227. SCROLL-BARS = no
  228. STATUS-AREA = no
  229. BGCOLOR = ?
  230. FGCOLOR = ?
  231. THREE-D = yes
  232. MESSAGE-AREA = no
  233. SENSITIVE = yes.
  234. ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
  235. /* END WINDOW DEFINITION */
  236. &ANALYZE-RESUME
  237. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB wProvisionsabrechnung
  238. /* ************************* Included-Libraries *********************** */
  239. {src/adm2/containr.i}
  240. /* _UIB-CODE-BLOCK-END */
  241. &ANALYZE-RESUME
  242. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  243. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  244. /* SETTINGS FOR WINDOW wProvisionsabrechnung
  245. VISIBLE,,RUN-PERSISTENT */
  246. /* SETTINGS FOR FRAME fMain
  247. FRAME-NAME */
  248. /* SETTINGS FOR FILL-IN F_BisArtnr IN FRAME fMain
  249. 6 */
  250. /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME fMain
  251. 6 */
  252. /* SETTINGS FOR FILL-IN F_BisKnr IN FRAME fMain
  253. 6 */
  254. /* SETTINGS FOR FILL-IN F_VonArtnr IN FRAME fMain
  255. 6 */
  256. /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME fMain
  257. 6 */
  258. /* SETTINGS FOR FILL-IN F_VonKnr IN FRAME fMain
  259. 6 */
  260. /* SETTINGS FOR RADIO-SET R_Vertr IN FRAME fMain
  261. 6 */
  262. /* SETTINGS FOR TOGGLE-BOX T_Monat IN FRAME fMain
  263. 6 */
  264. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wProvisionsabrechnung)
  265. THEN wProvisionsabrechnung:HIDDEN = yes.
  266. /* _RUN-TIME-ATTRIBUTES-END */
  267. &ANALYZE-RESUME
  268. /* ************************ Control Triggers ************************ */
  269. &Scoped-define SELF-NAME wProvisionsabrechnung
  270. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wProvisionsabrechnung wProvisionsabrechnung
  271. ON END-ERROR OF wProvisionsabrechnung /* Provisionsabrechnung */
  272. OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
  273. IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
  274. RUN ENDE.
  275. RETURN NO-APPLY.
  276. END.
  277. /* _UIB-CODE-BLOCK-END */
  278. &ANALYZE-RESUME
  279. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wProvisionsabrechnung wProvisionsabrechnung
  280. ON WINDOW-CLOSE OF wProvisionsabrechnung /* Provisionsabrechnung */
  281. DO:
  282. RUN ENDE.
  283. RETURN NO-APPLY.
  284. END.
  285. /* _UIB-CODE-BLOCK-END */
  286. &ANALYZE-RESUME
  287. &Scoped-define SELF-NAME Btn_Cancel
  288. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel wProvisionsabrechnung
  289. ON CHOOSE OF Btn_Cancel IN FRAME fMain /* abbrechen */
  290. DO:
  291. RUN ENDE.
  292. RETURN NO-APPLY.
  293. END.
  294. /* _UIB-CODE-BLOCK-END */
  295. &ANALYZE-RESUME
  296. &Scoped-define SELF-NAME Btn_OK
  297. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK wProvisionsabrechnung
  298. ON CHOOSE OF Btn_OK IN FRAME fMain /* Excel */
  299. DO:
  300. DO WITH FRAME {&FRAME-NAME}:
  301. Btn_OK:SENSITIVE = FALSE.
  302. Btn_Cancel:SENSITIVE = FALSE.
  303. SESSION:SET-WAIT-STATE ('GENERAL').
  304. END.
  305. RUN REPORT.
  306. DO WITH FRAME {&FRAME-NAME}:
  307. Btn_OK:SENSITIVE = TRUE.
  308. Btn_Cancel:SENSITIVE = TRUE.
  309. SESSION:SET-WAIT-STATE('').
  310. END.
  311. RUN ENDE.
  312. RETURN NO-APPLY.
  313. END.
  314. /* _UIB-CODE-BLOCK-END */
  315. &ANALYZE-RESUME
  316. &UNDEFINE SELF-NAME
  317. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wProvisionsabrechnung
  318. /* *************************** Main Block *************************** */
  319. MaxPage = 1.
  320. AktSeite = 1.
  321. Progname = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.') NO-ERROR.
  322. SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR.
  323. IF SAktiv THEN DO:
  324. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  325. END.
  326. SESSION:DATA-ENTRY-RETURN = TRUE.
  327. /* TRIGGERS ------------------------------------------------------ */
  328. ON 'END-ERROR':U OF {&WINDOW-NAME} ANYWHERE
  329. DO:
  330. RUN ENDE.
  331. RETURN NO-APPLY.
  332. END.
  333. /* Include custom Main Block code for SmartWindows. */
  334. {src/adm2/windowmn.i}
  335. /* _UIB-CODE-BLOCK-END */
  336. &ANALYZE-RESUME
  337. /* ********************** Internal Procedures *********************** */
  338. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects wProvisionsabrechnung _ADM-CREATE-OBJECTS
  339. PROCEDURE adm-create-objects :
  340. /*------------------------------------------------------------------------------
  341. Purpose: Create handles for all SmartObjects used in this procedure.
  342. After SmartObjects are initialized, then SmartLinks are added.
  343. Parameters: <none>
  344. ------------------------------------------------------------------------------*/
  345. END PROCEDURE.
  346. /* _UIB-CODE-BLOCK-END */
  347. &ANALYZE-RESUME
  348. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI wProvisionsabrechnung _DEFAULT-DISABLE
  349. PROCEDURE disable_UI :
  350. /*------------------------------------------------------------------------------
  351. Purpose: DISABLE the User Interface
  352. Parameters: <none>
  353. Notes: Here we clean-up the user-interface by deleting
  354. dynamic widgets we have created and/or hide
  355. frames. This procedure is usually called when
  356. we are ready to "clean-up" after running.
  357. ------------------------------------------------------------------------------*/
  358. /* Delete the WINDOW we created */
  359. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wProvisionsabrechnung)
  360. THEN DELETE WIDGET wProvisionsabrechnung.
  361. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  362. END PROCEDURE.
  363. /* _UIB-CODE-BLOCK-END */
  364. &ANALYZE-RESUME
  365. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject wProvisionsabrechnung
  366. PROCEDURE enableObject :
  367. /*------------------------------------------------------------------------------
  368. Purpose: Super Override
  369. Parameters:
  370. Notes:
  371. ------------------------------------------------------------------------------*/
  372. DEF VAR wx AS INT NO-UNDO.
  373. DEF VAR wy AS INT NO-UNDO.
  374. DEF VAR xString AS CHAR NO-UNDO.
  375. DO WITH FRAME {&FRAME-NAME}:
  376. RUN COMBO_VERTRETER ( INPUT CB_Vertreter:HANDLE ) NO-ERROR.
  377. Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION NO-ERROR.
  378. DYNAMIC-FUNCTION('GET_FEHLWERTE':U, INPUT Progname, INPUT Fenster ) NO-ERROR.
  379. ASSIGN {&List-6}.
  380. END.
  381. GET-KEY-VALUE SECTION 'FensterPositionen'
  382. KEY Progname
  383. VALUE xString.
  384. IF xString = ? THEN xString = '30;30'.
  385. IF xString = '' THEN xString = '30;30'.
  386. wx = INTEGER(ENTRY(1, xString, ';')).
  387. wy = INTEGER(ENTRY(2, xString, ';')).
  388. IF wx < 0 THEN wx = 1.
  389. IF wy < 0 THEN wy = 1.
  390. {&WINDOW-NAME}:X = wx.
  391. {&WINDOW-NAME}:Y = wy.
  392. RUN SUPER.
  393. IF SAktiv THEN RUN FENSTER_TITEL ( INPUT {&WINDOW-NAME}:HANDLE ) NO-ERROR.
  394. DO WITH FRAME {&FRAME-NAME}:
  395. DISPLAY {&List-6}.
  396. END.
  397. END PROCEDURE.
  398. /* _UIB-CODE-BLOCK-END */
  399. &ANALYZE-RESUME
  400. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI wProvisionsabrechnung _DEFAULT-ENABLE
  401. PROCEDURE enable_UI :
  402. /*------------------------------------------------------------------------------
  403. Purpose: ENABLE the User Interface
  404. Parameters: <none>
  405. Notes: Here we display/view/enable the widgets in the
  406. user-interface. In addition, OPEN all queries
  407. associated with each FRAME and BROWSE.
  408. These statements here are based on the "Other
  409. Settings" section of the widget Property Sheets.
  410. ------------------------------------------------------------------------------*/
  411. DISPLAY CB_Vertreter F_VonKnr F_BisKnr F_VonArtnr F_BisArtnr F_VonDatum
  412. F_BisDatum R_Vertr T_Monat
  413. WITH FRAME fMain IN WINDOW wProvisionsabrechnung.
  414. ENABLE RECT-13 CB_Vertreter F_VonKnr F_BisKnr F_VonArtnr F_BisArtnr
  415. F_VonDatum F_BisDatum R_Vertr T_Monat Btn_OK Btn_Cancel
  416. WITH FRAME fMain IN WINDOW wProvisionsabrechnung.
  417. {&OPEN-BROWSERS-IN-QUERY-fMain}
  418. VIEW wProvisionsabrechnung.
  419. END PROCEDURE.
  420. /* _UIB-CODE-BLOCK-END */
  421. &ANALYZE-RESUME
  422. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE wProvisionsabrechnung
  423. PROCEDURE ENDE :
  424. /*------------------------------------------------------------------------------
  425. Purpose:
  426. Parameters: <none>
  427. Notes:
  428. ------------------------------------------------------------------------------*/
  429. DEF VAR wx AS INT NO-UNDO.
  430. DEF VAR wy AS INT NO-UNDO.
  431. DEF VAR xString AS CHAR NO-UNDO.
  432. IF Saktiv THEN RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  433. wx = {&WINDOW-NAME}:X NO-ERROR.
  434. wy = {&WINDOW-NAME}:Y NO-ERROR.
  435. xString = STRING(wx) + ';' + STRING(wy).
  436. PUT-KEY-VALUE SECTION 'FensterPositionen'
  437. KEY Progname
  438. VALUE xString.
  439. APPLY "CLOSE":U TO THIS-PROCEDURE.
  440. END PROCEDURE.
  441. /* _UIB-CODE-BLOCK-END */
  442. &ANALYZE-RESUME
  443. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject wProvisionsabrechnung
  444. PROCEDURE exitObject :
  445. /*------------------------------------------------------------------------------
  446. Purpose: Window-specific override of this procedure which destroys
  447. its contents and itself.
  448. Notes:
  449. ------------------------------------------------------------------------------*/
  450. RUN ENDE.
  451. RETURN NO-APPLY.
  452. END PROCEDURE.
  453. /* _UIB-CODE-BLOCK-END */
  454. &ANALYZE-RESUME
  455. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF wProvisionsabrechnung
  456. PROCEDURE KOPF :
  457. /*------------------------------------------------------------------------------
  458. Purpose:
  459. Parameters: <none>
  460. Notes:
  461. ------------------------------------------------------------------------------*/
  462. DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO.
  463. DEF VAR Zelle AS CHAR NO-UNDO.
  464. DEF VAR ii AS INT INIT 74 NO-UNDO.
  465. FIND Steuer USE-INDEX Steuer-k1
  466. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  467. Zelle = 'B1'.
  468. eh:Range(Zelle):Select.
  469. eh:Selection:VALUE = Steuer.Firma1.
  470. Zelle = 'F1'.
  471. eh:Range(Zelle):Select.
  472. eh:Selection:VALUE = 'Provisionsabrechnung Vertreter'.
  473. Zelle = 'J1'.
  474. eh:Range(Zelle):Select.
  475. eh:Selection:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  476. Zelle = 'B2'.
  477. eh:Range(Zelle):Select.
  478. eh:Selection:VALUE = Steuer.Ort.
  479. Zelle = 'F2'.
  480. eh:Range(Zelle):Select.
  481. eh:Selection:VALUE = STRING(F_VonDatum,'99.99.9999')
  482. + ' - '
  483. + STRING(F_BisDatum,'99.99.9999').
  484. Zelle = 'J2'.
  485. eh:Range(Zelle):Select.
  486. eh:Selection:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  487. IF NOT T_Monat THEN RETURN.
  488. FOR EACH tPerioden BY tPerioden.Periode:
  489. Zelle = CHR(ii + tPerioden.Periode) + '3'.
  490. eh:Range(Zelle):Select.
  491. eh:Selection:VALUE = STRING(tPerioden.Monat,'99') + '.' + STRING(tPerioden.Jahr,'9999').
  492. END.
  493. END PROCEDURE.
  494. /* _UIB-CODE-BLOCK-END */
  495. &ANALYZE-RESUME
  496. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT wProvisionsabrechnung
  497. PROCEDURE REPORT :
  498. /*------------------------------------------------------------------------------
  499. Purpose:
  500. Parameters: <none>
  501. Notes:
  502. ------------------------------------------------------------------------------*/
  503. DEF VAR VBetrag AS DEC NO-UNDO.
  504. DEF VAR VMenge AS DEC NO-UNDO.
  505. DEF VAR VLiter AS DEC NO-UNDO.
  506. DEF VAR PBetrag AS DEC NO-UNDO.
  507. DEF VAR PMenge AS DEC NO-UNDO.
  508. DEF VAR PLiter AS DEC NO-UNDO.
  509. DEF VAR ABetrag AS DEC NO-UNDO.
  510. DEF VAR AMenge AS DEC NO-UNDO.
  511. DEF VAR ALiter AS DEC NO-UNDO.
  512. DEF VAR Betrag AS DEC NO-UNDO.
  513. DEF VAR Menge AS DEC NO-UNDO.
  514. DEF VAR Liter AS DEC NO-UNDO.
  515. DEF VAR Multi AS DEC NO-UNDO.
  516. DEF VAR Wert AS DEC NO-UNDO.
  517. DEF VAR Prov AS DEC NO-UNDO.
  518. DEF VAR TProv AS DEC NO-UNDO.
  519. DEF VAR iMonMax AS INT NO-UNDO.
  520. DEF VAR iMon AS INT NO-UNDO.
  521. DEF VAR nPTotal AS DEC EXTENT 36 NO-UNDO.
  522. DEF VAR nVTotal AS DEC EXTENT 36 NO-UNDO.
  523. DEF VAR Bez1 AS CHAR NO-UNDO.
  524. DEF VAR Bez2 AS CHAR NO-UNDO.
  525. DEF VAR ja AS LOG NO-UNDO.
  526. DEF VAR Zelle AS CHAR NO-UNDO.
  527. DO WITH FRAME {&FRAME-NAME}:
  528. ASSIGN {&List-6}.
  529. Vertr = INTEGER(CB_Vertreter:SCREEN-VALUE) NO-ERROR.
  530. IF F_VonDatum = ? THEN F_VonDatum = DATE(01,01,YEAR(TODAY)).
  531. IF F_BisDatum = ? THEN F_BisDatum = DATE(12,31,YEAR(TODAY)).
  532. IF F_BisDatum < F_VonDatum THEN F_BisDatum = F_BisDatum.
  533. IF F_VonKnr = 0 AND F_BisKnr = 0 THEN F_BisKnr = 999999.
  534. IF F_VonArtnr = 0 AND F_BisArtnr = 0 THEN F_BisArtnr = 999999.
  535. IF F_VonKnr > F_BisKnr THEN F_BisKnr = F_VonKnr .
  536. IF F_VonArtnr > F_BisArtnr THEN F_BisArtnr = F_VonArtnr.
  537. DISPLAY {&List-6}.
  538. DYNAMIC-FUNCTION('PUT_FEHLWERTE':U, INPUT Progname, INPUT Fenster) NO-ERROR.
  539. END.
  540. RUN TEMPFILE_FUELLEN.
  541. FIND FIRST TProv NO-LOCK NO-ERROR.
  542. IF NOT AVAILABLE TProv THEN DO:
  543. MESSAGE 'Keine Daten Selektiert ! ' VIEW-AS ALERT-BOX INFORMATION.
  544. RETURN ''.
  545. END.
  546. cVorlage = 'Provisionsabrechnung.xls'.
  547. cDokument = 'Provisionsabrechnung.xls'.
  548. cDaten = 'Provisionsabrechnung.txt'.
  549. cDateiName = cDokument + CHR(01) + cVorlage.
  550. RUN CREATEDATEI ( INPUT cDateiName ).
  551. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  552. cDokument = RETURN-VALUE.
  553. cDateiName = cDaten.
  554. RUN CREATEDATEI ( INPUT cDateiName ).
  555. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  556. cDaten = RETURN-VALUE.
  557. OUTPUT TO VALUE(cDaten).
  558. FOR EACH TProv USE-INDEX TProv-k2
  559. BREAK BY TProv.Vertr
  560. BY TProv.Prov_Summ
  561. BY TProv.Artnr
  562. BY TProv.Inhalt
  563. BY TProv.Jahr :
  564. IF FIRST-OF ( TProv.Vertr ) THEN DO:
  565. VBetrag = 0.
  566. VMenge = 0.
  567. VLiter = 0.
  568. nVTotal = 0.
  569. TProv = 0.
  570. FIND Tabel USE-INDEX Tabel-k1
  571. WHERE Tabel.Firma = Firma
  572. AND Tabel.RecArt = 'VERTR'
  573. AND Tabel.CodeC = ''
  574. AND Tabel.CodeI = TProv.Vertr
  575. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  576. PUT CONTROL STRING(TProv.Vertr,'999 ').
  577. IF AVAILABLE Tabel THEN PUT CONTROL Tabel.Bez1.
  578. ELSE PUT CONTROL '??????????'.
  579. PUT CONTROL CHR(10).
  580. END.
  581. IF FIRST-OF ( TProv.Prov_Summ ) THEN DO:
  582. PBetrag = 0.
  583. PMenge = 0.
  584. PLiter = 0.
  585. nPTotal = 0.
  586. FIND FIRST ProvSumm USE-INDEX ProvSumm-k1
  587. WHERE ProvSumm.Firma = Firma
  588. AND ProvSumm.Prov_Summ = TProv.Prov_Summ NO-LOCK NO-ERROR.
  589. PUT CONTROL '£'
  590. STRING(TProv.Prov_Summ,'999 ').
  591. IF AVAILABLE ProvSumm THEN PUT CONTROL ProvSumm.Bez.
  592. ELSE PUT CONTROL '??????????'.
  593. PUT CONTROL CHR(10).
  594. END.
  595. IF FIRST-OF ( TProv.Jahr ) THEN DO:
  596. ABetrag = 0.
  597. AMenge = 0.
  598. ALiter = 0.
  599. END.
  600. ASSIGN ABetrag = ABetrag + TProv.Netto
  601. AMenge = AMenge + TProv.Menge
  602. ALiter = ALiter + TProv.Liter.
  603. ASSIGN PBetrag = PBetrag + TProv.Netto
  604. PMenge = PMenge + TProv.Menge
  605. PLiter = PLiter + TProv.Liter.
  606. ASSIGN VBetrag = VBetrag + TProv.Netto
  607. VMenge = VMenge + TProv.Menge
  608. VLiter = VLiter + TProv.Liter.
  609. IF NOT LAST-OF ( TProv.Jahr ) THEN NEXT.
  610. FIND FIRST Artbez USE-INDEX Artbez-k1
  611. WHERE Artbez.Firma = Firma
  612. AND Artbez.Artnr = TProv.Artnr
  613. AND Artbez.Inhalt = TProv.Inhalt
  614. AND Artbez.Jahr = TProv.Jahr NO-LOCK NO-ERROR.
  615. IF AVAILABLE Artbez THEN DO:
  616. ASSIGN Bez1 = ArtBez.Bez1
  617. Bez2 = Artbez.Bez2.
  618. END.
  619. ELSE DO:
  620. ASSIGN Bez1 = '??????????'
  621. Bez2 = ''.
  622. END.
  623. ALiter = ALiter / 100.
  624. PUT CONTROL '££'
  625. STRING(TProv.Artnr ,'999999') '£'
  626. STRING(TProv.Inhalt,'9999') '£'
  627. STRING(TProv.Jahr ,'9999') '£'
  628. Bez1 '£'
  629. TRIM(STRING(ABetrag,'->>>>>>>9')) '£'
  630. TRIM(STRING(AMenge ,'->>>>>>>9')) '£'
  631. TRIM(STRING(ALiter ,'->>>>>>>9')) '£'.
  632. IF T_Monat THEN DO:
  633. FOR EACH tPerioden BY tPerioden.Periode:
  634. FIND FIRST tProvMonat
  635. WHERE tProvMonat.Vertr = tProv.Vertr
  636. AND tProvMonat.Knr = tProv.Knr
  637. AND tProvMonat.Artnr = tProv.Artnr
  638. AND tProvMonat.Inhalt = tProv.Inhalt
  639. AND tProvMonat.Jahr = tProv.Jahr
  640. AND tProvMonat.iJahr = tPerioden.Jahr
  641. AND tProvMonat.iMonat = tPerioden.Monat NO-ERROR.
  642. IF AVAILABLE tProvMonat THEN DO:
  643. CASE TProv.Prov_Art:
  644. WHEN 0 THEN Multi = tProvMonat.Menge.
  645. WHEN 1 THEN Multi = tProvMonat.Netto.
  646. WHEN 2 THEN Multi = tProvMonat.Liter / 100.
  647. END CASE.
  648. PUT CONTROL '£'
  649. TRIM(STRING(Multi,'->>>>>>>>9')).
  650. ASSIGN nPTotal[tPerioden.Periode] = nPTotal[tPerioden.Periode] + Multi
  651. nVTotal[tPerioden.Periode] = nVTotal[tPerioden.Periode] + Multi.
  652. END.
  653. ELSE PUT CONTROL '£'.
  654. END.
  655. END.
  656. PUT CONTROL CHR(10).
  657. IF Bez2 <> '' THEN PUT CONTROL '£££££'
  658. Bez2 CHR(10).
  659. IF NOT LAST-OF ( TProv.Prov_Summ ) THEN NEXT.
  660. PUT CONTROL '£' CHR(10)
  661. '£Total ProvisionssummenGruppe '
  662. STRING(TProv.Prov_Summ,'999') '£££££'
  663. TRIM(STRING(PBetrag,'->>>>>>>9')) '£'
  664. TRIM(STRING(PMenge ,'->>>>>>>9')) '£'
  665. TRIM(STRING(PLiter ,'->>>>>>>9')) '£'.
  666. IF T_Monat THEN DO:
  667. FOR EACH tPerioden BY tPerioden.Periode:
  668. Multi = nPTotal[tPerioden.Periode].
  669. PUT CONTROL '£'
  670. TRIM(STRING(Multi,'->>>>>>>>9')).
  671. END.
  672. END.
  673. PUT CONTROL CHR(10).
  674. ASSIGN Betrag = 0
  675. Menge = 0
  676. Liter = 0.
  677. CASE TProv.Prov_Art:
  678. WHEN 0 THEN Menge = PMenge.
  679. WHEN 1 THEN Betrag = PBetrag.
  680. WHEN 2 THEN Liter = PLiter / 100.
  681. END CASE.
  682. FIND LAST ProvSumm USE-INDEX ProvSumm-k1
  683. WHERE ProvSumm.Firma = Firma
  684. AND ProvSumm.Prov_Summ = TProv.Prov_Summ
  685. AND ProvSumm.Menge <= Menge
  686. AND ProvSumm.Betrag <= Betrag
  687. AND ProvSumm.Inhalt <= Liter NO-LOCK NO-ERROR.
  688. IF AVAILABLE ProvSumm THEN Wert = ProvSumm.Prov_Wert.
  689. ELSE Wert = 0.
  690. CASE TProv.Prov_Art:
  691. WHEN 0 THEN Multi = Menge.
  692. WHEN 1 THEN Multi = Betrag.
  693. WHEN 2 THEN Multi = Liter.
  694. END CASE.
  695. CASE TProv.Prov_Art:
  696. WHEN 0 THEN Prov = Multi * Wert.
  697. WHEN 1 THEN Prov = Multi * Wert / 100.
  698. WHEN 2 THEN Prov = Multi * Wert.
  699. END CASE.
  700. TProv = TProv + Prov.
  701. PUT CONTROL '£££££'
  702. 'Provision' '££'
  703. TRIM(STRING(Multi,'->>>>>>>>9.99')) '£'
  704. TRIM(STRING(Wert ,'->>>>>>>>9.99')) '£'
  705. TRIM(STRING(Prov ,'->>>>>>>>9.99')) CHR(10)
  706. '£' CHR(10).
  707. IF NOT LAST-OF ( TProv.Vertr ) THEN NEXT.
  708. PUT CONTROL 'Total Vertreter/Provision ' '££££££'
  709. TRIM(STRING(VBetrag,'->>>>>>>9')) '£'
  710. TRIM(STRING(VMenge ,'->>>>>>>9')) '£'
  711. TRIM(STRING(VLiter ,'->>>>>>>9')) '£'
  712. TRIM(STRING(TProv ,'->>>>>>>9.99')).
  713. IF T_Monat THEN DO:
  714. FOR EACH tPerioden BY tPerioden.Periode:
  715. Multi = nVTotal[tPerioden.Periode].
  716. PUT CONTROL '£'
  717. TRIM(STRING(Multi,'->>>>>>>>9')).
  718. END.
  719. END.
  720. PUT CONTROL CHR(10).
  721. END.
  722. OUTPUT CLOSE.
  723. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  724. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  725. RUN FEHLER ( INPUT 1035 ).
  726. RETURN.
  727. END.
  728. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
  729. IF NOT ja THEN DO:
  730. RUN FEHLER ( INPUT 1040 ).
  731. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  732. RETURN NO-APPLY.
  733. END.
  734. Zelle = 'A5'.
  735. excelAppl:Range(Zelle):SELECT.
  736. excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten.
  737. excelAppl:APPLICATION:RUN ( 'DateiEinfügen' ).
  738. RUN KOPF ( INPUT excelAppl ).
  739. Zelle = 'A1'.
  740. excelAppl:Range(Zelle):SELECT.
  741. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  742. END PROCEDURE.
  743. /* _UIB-CODE-BLOCK-END */
  744. &ANALYZE-RESUME
  745. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEMPFILE_FUELLEN wProvisionsabrechnung
  746. PROCEDURE TEMPFILE_FUELLEN :
  747. /*------------------------------------------------------------------------------
  748. Purpose:
  749. Parameters: <none>
  750. Notes:
  751. ------------------------------------------------------------------------------*/
  752. DEF VAR kVertr AS INT NO-UNDO.
  753. DEF VAR Wgr AS INT NO-UNDO.
  754. DEF VAR Prov_Summ AS INT NO-UNDO.
  755. DEF VAR Prov_Art AS INT NO-UNDO.
  756. DEF VAR iJahr AS INT NO-UNDO.
  757. DEF VAR iMonat AS INT NO-UNDO.
  758. DEF VAR dStart AS DATE NO-UNDO.
  759. EMPTY TEMP-TABLE TProv.
  760. EMPTY TEMP-TABLE tProvMonat.
  761. EMPTY TEMP-TABLE tPerioden.
  762. iMaxPer = 1.
  763. iJahr = YEAR (F_VonDatum).
  764. iMonat = MONTH(F_VonDatum).
  765. dStart = F_VonDatum.
  766. CREATE tPerioden.
  767. ASSIGN tPerioden.Periode = iMaxPer
  768. tPerioden.Jahr = iJahr
  769. tPerioden.Monat = iMonat.
  770. DO WHILE dStart < F_BisDatum:
  771. IF MONTH(dStart + 1) = MONTH(dStart) THEN DO:
  772. dStart = dStart + 1.
  773. NEXT.
  774. END.
  775. dStart = dStart + 1.
  776. iMaxPer = iMaxPer + 1.
  777. iJahr = YEAR (dStart).
  778. iMonat = MONTH(dStart).
  779. CREATE tPerioden.
  780. ASSIGN tPerioden.Periode = iMaxPer
  781. tPerioden.Jahr = iJahr
  782. tPerioden.Monat = iMonat.
  783. IF iMaxPer = 36 THEN LEAVE.
  784. END.
  785. FOR EACH Artbw USE-INDEX Artbw-k10
  786. WHERE Artbw.Firma = Firma
  787. AND Artbw.Knr >= F_VonKnr
  788. AND Artbw.Knr <= F_BisKnr
  789. AND Artbw.Fak_Dat <> ?
  790. AND Artbw.Fak_Dat >= F_VonDatum
  791. AND Artbw.Fak_Dat <= F_BisDatum
  792. AND Artbw.Artnr >= F_VonArtnr
  793. AND Artbw.Artnr <= F_BisArtnr
  794. AND Artbw.Tr_Art = 01 NO-LOCK
  795. BREAK BY Artbw.Knr
  796. BY Artbw.Artnr:
  797. IF R_Vertr = 1 THEN kVertr = Artbw.Vertr.
  798. ELSE DO:
  799. IF FIRST-OF ( Artbw.Knr ) THEN
  800. kVertr = DYNAMIC-FUNCTION('XGET_VERTRETER':U, INPUT Artbw.Knr) NO-ERROR.
  801. END.
  802. IF FIRST-OF ( Artbw.Artnr ) THEN
  803. Wgr = DYNAMIC-FUNCTION('XGET_WARENGRUPPE':U, INPUT Artbw.Artnr) NO-ERROR.
  804. IF kVertr = ? THEN NEXT.
  805. IF kVertr <> Vertr THEN NEXT.
  806. CREATE TProv.
  807. ASSIGN TProv.Vertr = Vertr
  808. TProv.Knr = Artbw.Knr
  809. TProv.Artnr = Artbw.Artnr
  810. TProv.Inhalt = Artbw.Inhalt
  811. TProv.Jahr = Artbw.Jahr
  812. TProv.Wgr = Wgr
  813. TProv.Datum = Artbw.Fak_Dat
  814. TProv.Menge = Artbw.Menge
  815. TProv.Liter = Artbw.Liter
  816. TProv.Netto = Artbw.Net_Betr
  817. - Artbw.Auf_Rab
  818. - Artbw.Abh_Rab
  819. - Artbw.Auf_Sp_Rab.
  820. IF Artbw.MWST_Inkl THEN DO:
  821. TProv.Netto = TProv.Netto / (100 + Artbw.MWST%) * 100.
  822. END.
  823. iJahr = YEAR (Artbw.Fak_Dat).
  824. iMonat = MONTH(Artbw.Fak_Dat).
  825. FIND FIRST tProvMonat
  826. WHERE tProvMonat.Vertr = tProv.Vertr
  827. AND tProvMonat.Knr = tProv.Knr
  828. AND tProvMonat.Artnr = tProv.Artnr
  829. AND tProvMonat.Inhalt = tProv.Inhalt
  830. AND tProvMonat.Jahr = tProv.Jahr
  831. AND tProvMonat.iJahr = iJahr
  832. AND tProvMonat.iMonat = iMonat NO-ERROR.
  833. IF NOT AVAILABLE tProvMonat THEN DO:
  834. CREATE tProvMonat.
  835. ASSIGN tProvMonat.Vertr = tProv.Vertr
  836. tProvMonat.Knr = tProv.Knr
  837. tProvMonat.Artnr = tProv.Artnr
  838. tProvMonat.Inhalt = tProv.Inhalt
  839. tProvMonat.Jahr = tProv.Jahr
  840. tProvMonat.iJahr = iJahr
  841. tProvMonat.iMonat = iMonat.
  842. END.
  843. ASSIGN tProvMonat.Menge = tProvMonat.Menge + tProv.Menge
  844. tProvMonat.Liter = tProvMonat.Menge + tProv.Liter
  845. tProvMonat.Netto = tProvMonat.Menge + tProv.Netto.
  846. END.
  847. FOR EACH TProv BREAK BY TProv.Vertr
  848. BY TProv.Wgr :
  849. IF FIRST-OF ( TProv.Wgr ) THEN DO:
  850. FIND ProvTab USE-INDEX ProvTab-k1
  851. WHERE ProvTab.Firma = Firma
  852. AND ProvTab.Vertr = TProv.Vertr
  853. AND ProvTab.Art_Wgr = TProv.Wgr NO-LOCK NO-ERROR.
  854. IF AVAILABLE ProvTab THEN Prov_Summ = ProvTab.Prov_Summ.
  855. ELSE Prov_Summ = 999.
  856. FIND FIRST ProvSumm USE-INDEX ProvSumm-k1
  857. WHERE ProvSumm.Firma = Firma
  858. AND ProvSumm.Prov_Summ = Prov_Summ NO-LOCK NO-ERROR.
  859. IF AVAILABLE ProvSumm THEN Prov_Art = ProvSumm.Prov_Art.
  860. ELSE Prov_Art = 1.
  861. END.
  862. ASSIGN TProv.Prov_Summ = Prov_Summ
  863. TProv.Prov_Art = Prov_Art.
  864. END.
  865. END PROCEDURE.
  866. /* _UIB-CODE-BLOCK-END */
  867. &ANALYZE-RESUME
  868. /* ************************ Function Implementations ***************** */
  869. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION XGET_VERTRETER wProvisionsabrechnung
  870. FUNCTION XGET_VERTRETER RETURNS INTEGER
  871. ( ipKnr AS INT ) :
  872. /*------------------------------------------------------------------------------
  873. Purpose:
  874. Notes:
  875. ------------------------------------------------------------------------------*/
  876. FIND Debst USE-INDEX Debst-k1
  877. WHERE Debst.Firma = Firma
  878. AND Debst.Knr = ipKnr NO-LOCK NO-ERROR.
  879. IF NOT AVAILABLE Debst THEN RETURN ?.
  880. RETURN Debst.Vertr.
  881. END FUNCTION.
  882. /* _UIB-CODE-BLOCK-END */
  883. &ANALYZE-RESUME
  884. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION XGET_WARENGRUPPE wProvisionsabrechnung
  885. FUNCTION XGET_WARENGRUPPE RETURNS INTEGER
  886. ( ipArtnr AS INT ) :
  887. /*------------------------------------------------------------------------------
  888. Purpose:
  889. Notes:
  890. ------------------------------------------------------------------------------*/
  891. FIND FIRST Artst USE-INDEX Artst-k1
  892. WHERE Artst.Firma = Firma
  893. AND Artst.Artnr = ipArtnr NO-LOCK NO-ERROR.
  894. IF NOT AVAILABLE Artst THEN RETURN ?.
  895. RETURN Artst.Wg_Grp.
  896. END FUNCTION.
  897. /* _UIB-CODE-BLOCK-END */
  898. &ANALYZE-RESUME