w-kreditlimiten.w 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME wKreditlimiten
  4. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS wKreditlimiten
  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 AdFirma AS CHAR NO-UNDO.
  33. DEF VAR Progname AS CHAR NO-UNDO.
  34. DEF VAR Vertr 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 VAR Limite AS INT NO-UNDO.
  41. DEF VAR Sicherheit AS DEC NO-UNDO.
  42. DEF TEMP-TABLE TLimite FIELD Kgr AS INT
  43. FIELD Knr AS INT
  44. FIELD Frw AS CHAR
  45. FIELD Saldo AS DEC
  46. FIELD Limite AS INT
  47. FIELD Sicher AS DEC
  48. FIELD Umsatz AS DEC
  49. INDEX TLimite-k1 AS PRIMARY
  50. Kgr
  51. Knr.
  52. /* _UIB-CODE-BLOCK-END */
  53. &ANALYZE-RESUME
  54. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  55. /* ******************** Preprocessor Definitions ******************** */
  56. &Scoped-define PROCEDURE-TYPE SmartWindow
  57. &Scoped-define DB-AWARE no
  58. &Scoped-define ADM-CONTAINER WINDOW
  59. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
  60. /* Name of first Frame and/or Browse and/or first Query */
  61. &Scoped-define FRAME-NAME fMain
  62. /* Standard List Definitions */
  63. &Scoped-Define ENABLED-OBJECTS RECT-13 F_VonKnr F_BisKnr F_VonKgr F_BisKgr ~
  64. F_VonDatum F_BisDatum T_Limite Btn_OK Btn_Cancel
  65. &Scoped-Define DISPLAYED-OBJECTS F_VonKnr F_BisKnr F_VonKgr F_BisKgr ~
  66. F_VonDatum F_BisDatum T_Limite
  67. /* Custom List Definitions */
  68. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  69. &Scoped-define List-6 F_VonKnr F_BisKnr F_VonKgr F_BisKgr F_VonDatum ~
  70. F_BisDatum T_Limite
  71. /* _UIB-PREPROCESSOR-BLOCK-END */
  72. &ANALYZE-RESUME
  73. /* ************************ Function Prototypes ********************** */
  74. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD XGET_KUNDENGRUPPE wKreditlimiten
  75. FUNCTION XGET_KUNDENGRUPPE RETURNS CHARACTER
  76. ( ipKgr AS INT ) FORWARD.
  77. /* _UIB-CODE-BLOCK-END */
  78. &ANALYZE-RESUME
  79. /* *********************** Control Definitions ********************** */
  80. /* Define the widget handle for the window */
  81. DEFINE VAR wKreditlimiten AS WIDGET-HANDLE NO-UNDO.
  82. /* Definitions of the field level widgets */
  83. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  84. LABEL "&abbrechen"
  85. SIZE 14 BY 1.
  86. DEFINE BUTTON Btn_OK
  87. IMAGE-UP FILE "grafik/results%.ico":U
  88. IMAGE-INSENSITIVE FILE "grafik/results%.ico":U
  89. LABEL "Excel"
  90. SIZE 7 BY 1.71.
  91. DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999":U
  92. LABEL "-"
  93. VIEW-AS FILL-IN NATIVE
  94. SIZE 16 BY 1
  95. BGCOLOR 15 NO-UNDO.
  96. DEFINE VARIABLE F_BisKgr AS INTEGER FORMAT "999":U INITIAL 0
  97. LABEL "-"
  98. VIEW-AS FILL-IN NATIVE
  99. SIZE 6 BY 1
  100. BGCOLOR 15 NO-UNDO.
  101. DEFINE VARIABLE F_BisKnr AS INTEGER FORMAT "999999":U INITIAL 0
  102. LABEL "-"
  103. VIEW-AS FILL-IN NATIVE
  104. SIZE 11 BY 1
  105. BGCOLOR 15 NO-UNDO.
  106. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U
  107. LABEL "von - bis Fakturadatum"
  108. VIEW-AS FILL-IN NATIVE
  109. SIZE 16 BY 1
  110. BGCOLOR 15 NO-UNDO.
  111. DEFINE VARIABLE F_VonKgr AS INTEGER FORMAT "999":U INITIAL 0
  112. LABEL "von - bis Kundengruppen"
  113. VIEW-AS FILL-IN NATIVE
  114. SIZE 6 BY 1
  115. BGCOLOR 15 NO-UNDO.
  116. DEFINE VARIABLE F_VonKnr AS INTEGER FORMAT "999999":U INITIAL 0
  117. LABEL "von - bis Kundennummer"
  118. VIEW-AS FILL-IN NATIVE
  119. SIZE 11 BY 1
  120. BGCOLOR 15 NO-UNDO.
  121. DEFINE RECTANGLE RECT-13
  122. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  123. SIZE 72 BY 9.05.
  124. DEFINE VARIABLE T_Limite AS LOGICAL INITIAL no
  125. LABEL "nur Kunden mit Kreditlimite"
  126. VIEW-AS TOGGLE-BOX
  127. SIZE 31.8 BY 1 NO-UNDO.
  128. /* ************************ Frame Definitions *********************** */
  129. DEFINE FRAME fMain
  130. F_VonKnr AT ROW 1.57 COL 26 COLON-ALIGNED
  131. F_BisKnr AT ROW 1.57 COL 44 COLON-ALIGNED
  132. F_VonKgr AT ROW 2.52 COL 26 COLON-ALIGNED
  133. F_BisKgr AT ROW 2.52 COL 44 COLON-ALIGNED
  134. F_VonDatum AT ROW 3.52 COL 26 COLON-ALIGNED
  135. F_BisDatum AT ROW 3.52 COL 44 COLON-ALIGNED
  136. T_Limite AT ROW 4.52 COL 28
  137. Btn_OK AT ROW 7.52 COL 28.4
  138. Btn_Cancel AT ROW 8 COL 52
  139. RECT-13 AT ROW 1.24 COL 2
  140. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  141. SIDE-LABELS NO-UNDERLINE THREE-D
  142. AT COL 1 ROW 1
  143. SIZE 74 BY 9.52.
  144. /* *********************** Procedure Settings ************************ */
  145. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  146. /* Settings for THIS-PROCEDURE
  147. Type: SmartWindow
  148. Allow: Basic,Browse,DB-Fields,Query,Smart,Window
  149. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
  150. Design Page: 1
  151. Other Settings: COMPILE
  152. */
  153. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  154. /* ************************* Create Window ************************** */
  155. &ANALYZE-SUSPEND _CREATE-WINDOW
  156. IF SESSION:DISPLAY-TYPE = "GUI":U THEN
  157. CREATE WINDOW wKreditlimiten ASSIGN
  158. HIDDEN = YES
  159. TITLE = "Auswertung der Kreditlimiten"
  160. HEIGHT = 9.52
  161. WIDTH = 74
  162. MAX-HEIGHT = 48.76
  163. MAX-WIDTH = 256
  164. VIRTUAL-HEIGHT = 48.76
  165. VIRTUAL-WIDTH = 256
  166. RESIZE = no
  167. SCROLL-BARS = no
  168. STATUS-AREA = no
  169. BGCOLOR = ?
  170. FGCOLOR = ?
  171. THREE-D = yes
  172. MESSAGE-AREA = no
  173. SENSITIVE = yes.
  174. ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
  175. &IF '{&WINDOW-SYSTEM}' NE 'TTY' &THEN
  176. IF NOT wKreditlimiten:LOAD-ICON("grafik/appl.ico":U) THEN
  177. MESSAGE "Unable to load icon: grafik/appl.ico"
  178. VIEW-AS ALERT-BOX WARNING BUTTONS OK.
  179. &ENDIF
  180. /* END WINDOW DEFINITION */
  181. &ANALYZE-RESUME
  182. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB wKreditlimiten
  183. /* ************************* Included-Libraries *********************** */
  184. {src/adm2/containr.i}
  185. /* _UIB-CODE-BLOCK-END */
  186. &ANALYZE-RESUME
  187. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  188. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  189. /* SETTINGS FOR WINDOW wKreditlimiten
  190. VISIBLE,,RUN-PERSISTENT */
  191. /* SETTINGS FOR FRAME fMain
  192. */
  193. /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME fMain
  194. 6 */
  195. /* SETTINGS FOR FILL-IN F_BisKgr IN FRAME fMain
  196. 6 */
  197. /* SETTINGS FOR FILL-IN F_BisKnr IN FRAME fMain
  198. 6 */
  199. /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME fMain
  200. 6 */
  201. /* SETTINGS FOR FILL-IN F_VonKgr IN FRAME fMain
  202. 6 */
  203. /* SETTINGS FOR FILL-IN F_VonKnr IN FRAME fMain
  204. 6 */
  205. /* SETTINGS FOR TOGGLE-BOX T_Limite IN FRAME fMain
  206. 6 */
  207. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wKreditlimiten)
  208. THEN wKreditlimiten:HIDDEN = yes.
  209. /* _RUN-TIME-ATTRIBUTES-END */
  210. &ANALYZE-RESUME
  211. /* ************************ Control Triggers ************************ */
  212. &Scoped-define SELF-NAME wKreditlimiten
  213. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wKreditlimiten wKreditlimiten
  214. ON END-ERROR OF wKreditlimiten /* Auswertung der Kreditlimiten */
  215. OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
  216. IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
  217. RUN ENDE.
  218. RETURN NO-APPLY.
  219. END.
  220. /* _UIB-CODE-BLOCK-END */
  221. &ANALYZE-RESUME
  222. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wKreditlimiten wKreditlimiten
  223. ON WINDOW-CLOSE OF wKreditlimiten /* Auswertung der Kreditlimiten */
  224. DO:
  225. RUN ENDE.
  226. RETURN NO-APPLY.
  227. END.
  228. /* _UIB-CODE-BLOCK-END */
  229. &ANALYZE-RESUME
  230. &Scoped-define SELF-NAME Btn_Cancel
  231. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel wKreditlimiten
  232. ON CHOOSE OF Btn_Cancel IN FRAME fMain /* abbrechen */
  233. DO:
  234. RUN ENDE.
  235. RETURN NO-APPLY.
  236. END.
  237. /* _UIB-CODE-BLOCK-END */
  238. &ANALYZE-RESUME
  239. &Scoped-define SELF-NAME Btn_OK
  240. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK wKreditlimiten
  241. ON CHOOSE OF Btn_OK IN FRAME fMain /* Excel */
  242. DO:
  243. DO WITH FRAME {&FRAME-NAME}:
  244. Btn_OK:SENSITIVE = FALSE.
  245. Btn_Cancel:SENSITIVE = FALSE.
  246. SESSION:SET-WAIT-STATE ('GENERAL').
  247. END.
  248. RUN REPORT.
  249. DO WITH FRAME {&FRAME-NAME}:
  250. Btn_OK:SENSITIVE = TRUE.
  251. Btn_Cancel:SENSITIVE = TRUE.
  252. SESSION:SET-WAIT-STATE('').
  253. END.
  254. RUN ENDE.
  255. RETURN NO-APPLY.
  256. END.
  257. /* _UIB-CODE-BLOCK-END */
  258. &ANALYZE-RESUME
  259. &UNDEFINE SELF-NAME
  260. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wKreditlimiten
  261. /* *************************** Main Block *************************** */
  262. MaxPage = 1.
  263. AktSeite = 1.
  264. Progname = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.') NO-ERROR.
  265. SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR.
  266. IF SAktiv THEN DO:
  267. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  268. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  269. END.
  270. SESSION:DATA-ENTRY-RETURN = TRUE.
  271. /* TRIGGERS ------------------------------------------------------ */
  272. ON 'END-ERROR':U OF {&WINDOW-NAME} ANYWHERE
  273. DO:
  274. RUN ENDE.
  275. RETURN NO-APPLY.
  276. END.
  277. /* Include custom Main Block code for SmartWindows. */
  278. {src/adm2/windowmn.i}
  279. /* _UIB-CODE-BLOCK-END */
  280. &ANALYZE-RESUME
  281. /* ********************** Internal Procedures *********************** */
  282. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects wKreditlimiten _ADM-CREATE-OBJECTS
  283. PROCEDURE adm-create-objects :
  284. /*------------------------------------------------------------------------------
  285. Purpose: Create handles for all SmartObjects used in this procedure.
  286. After SmartObjects are initialized, then SmartLinks are added.
  287. Parameters: <none>
  288. ------------------------------------------------------------------------------*/
  289. END PROCEDURE.
  290. /* _UIB-CODE-BLOCK-END */
  291. &ANALYZE-RESUME
  292. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI wKreditlimiten _DEFAULT-DISABLE
  293. PROCEDURE disable_UI :
  294. /*------------------------------------------------------------------------------
  295. Purpose: DISABLE the User Interface
  296. Parameters: <none>
  297. Notes: Here we clean-up the user-interface by deleting
  298. dynamic widgets we have created and/or hide
  299. frames. This procedure is usually called when
  300. we are ready to "clean-up" after running.
  301. ------------------------------------------------------------------------------*/
  302. /* Delete the WINDOW we created */
  303. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wKreditlimiten)
  304. THEN DELETE WIDGET wKreditlimiten.
  305. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  306. END PROCEDURE.
  307. /* _UIB-CODE-BLOCK-END */
  308. &ANALYZE-RESUME
  309. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject wKreditlimiten
  310. PROCEDURE enableObject :
  311. /*------------------------------------------------------------------------------
  312. Purpose: Super Override
  313. Parameters:
  314. Notes:
  315. ------------------------------------------------------------------------------*/
  316. DEF VAR wx AS INT NO-UNDO.
  317. DEF VAR wy AS INT NO-UNDO.
  318. DEF VAR xString AS CHAR NO-UNDO.
  319. DO WITH FRAME {&FRAME-NAME}:
  320. Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION NO-ERROR.
  321. DYNAMIC-FUNCTION('GET_FEHLWERTE':U, INPUT Progname, INPUT Fenster ) NO-ERROR.
  322. ASSIGN {&List-6}.
  323. END.
  324. GET-KEY-VALUE SECTION 'FensterPositionen'
  325. KEY Progname
  326. VALUE xString.
  327. IF xString = ? THEN xString = '30;30'.
  328. IF xString = '' THEN xString = '30;30'.
  329. wx = INTEGER(ENTRY(1, xString, ';')).
  330. wy = INTEGER(ENTRY(2, xString, ';')).
  331. IF wx < 0 THEN wx = 1.
  332. IF wy < 0 THEN wy = 1.
  333. {&WINDOW-NAME}:X = wx.
  334. {&WINDOW-NAME}:Y = wy.
  335. RUN SUPER.
  336. IF SAktiv THEN RUN FENSTER_TITEL ( INPUT {&WINDOW-NAME}:HANDLE ) NO-ERROR.
  337. DO WITH FRAME {&FRAME-NAME}:
  338. DISPLAY {&List-6}.
  339. END.
  340. GET-KEY-VALUE SECTION 'FwDebitor'
  341. KEY 'Kred_Lim_Vers'
  342. VALUE xString.
  343. IF xString = ? THEN xString = ''.
  344. IF xString = '' THEN xString= '5000'.
  345. Limite = INTEGER(xString).
  346. GET-KEY-VALUE SECTION 'FwDebitor'
  347. KEY 'FwSicherheit'
  348. VALUE xString.
  349. IF xString = ? THEN xString = ''.
  350. IF xString = '' THEN xString= '85.00'.
  351. Sicherheit = DECIMAL(xString).
  352. END PROCEDURE.
  353. /* _UIB-CODE-BLOCK-END */
  354. &ANALYZE-RESUME
  355. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI wKreditlimiten _DEFAULT-ENABLE
  356. PROCEDURE enable_UI :
  357. /*------------------------------------------------------------------------------
  358. Purpose: ENABLE the User Interface
  359. Parameters: <none>
  360. Notes: Here we display/view/enable the widgets in the
  361. user-interface. In addition, OPEN all queries
  362. associated with each FRAME and BROWSE.
  363. These statements here are based on the "Other
  364. Settings" section of the widget Property Sheets.
  365. ------------------------------------------------------------------------------*/
  366. DISPLAY F_VonKnr F_BisKnr F_VonKgr F_BisKgr F_VonDatum F_BisDatum T_Limite
  367. WITH FRAME fMain IN WINDOW wKreditlimiten.
  368. ENABLE RECT-13 F_VonKnr F_BisKnr F_VonKgr F_BisKgr F_VonDatum F_BisDatum
  369. T_Limite Btn_OK Btn_Cancel
  370. WITH FRAME fMain IN WINDOW wKreditlimiten.
  371. {&OPEN-BROWSERS-IN-QUERY-fMain}
  372. VIEW wKreditlimiten.
  373. END PROCEDURE.
  374. /* _UIB-CODE-BLOCK-END */
  375. &ANALYZE-RESUME
  376. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE wKreditlimiten
  377. PROCEDURE ENDE :
  378. /*------------------------------------------------------------------------------
  379. Purpose:
  380. Parameters: <none>
  381. Notes:
  382. ------------------------------------------------------------------------------*/
  383. DEF VAR wx AS INT NO-UNDO.
  384. DEF VAR wy AS INT NO-UNDO.
  385. DEF VAR xString AS CHAR NO-UNDO.
  386. IF Saktiv THEN RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  387. wx = {&WINDOW-NAME}:X NO-ERROR.
  388. wy = {&WINDOW-NAME}:Y NO-ERROR.
  389. xString = STRING(wx) + ';' + STRING(wy).
  390. PUT-KEY-VALUE SECTION 'FensterPositionen'
  391. KEY Progname
  392. VALUE xString.
  393. APPLY "CLOSE":U TO THIS-PROCEDURE.
  394. END PROCEDURE.
  395. /* _UIB-CODE-BLOCK-END */
  396. &ANALYZE-RESUME
  397. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject wKreditlimiten
  398. PROCEDURE exitObject :
  399. /*------------------------------------------------------------------------------
  400. Purpose: Window-specific override of this procedure which destroys
  401. its contents and itself.
  402. Notes:
  403. ------------------------------------------------------------------------------*/
  404. RUN ENDE.
  405. RETURN NO-APPLY.
  406. END PROCEDURE.
  407. /* _UIB-CODE-BLOCK-END */
  408. &ANALYZE-RESUME
  409. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF wKreditlimiten
  410. PROCEDURE KOPF :
  411. /*------------------------------------------------------------------------------
  412. Purpose:
  413. Parameters: <none>
  414. Notes:
  415. ------------------------------------------------------------------------------*/
  416. DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO.
  417. DEF VAR Zelle AS CHAR NO-UNDO.
  418. FIND Steuer USE-INDEX Steuer-k1
  419. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  420. Zelle = 'A1'.
  421. eh:Range(Zelle):Select.
  422. eh:Selection:VALUE = Steuer.Firma1.
  423. Zelle = 'D1'.
  424. eh:Range(Zelle):Select.
  425. eh:Selection:VALUE = 'Kreditlimitten-Liste'.
  426. Zelle = 'I1'.
  427. eh:Range(Zelle):Select.
  428. eh:Selection:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  429. Zelle = 'A2'.
  430. eh:Range(Zelle):Select.
  431. eh:Selection:VALUE = Steuer.Ort.
  432. Zelle = 'D2'.
  433. eh:Range(Zelle):Select.
  434. eh:Selection:VALUE = STRING(F_VonDatum,'99.99.9999')
  435. + ' - '
  436. + STRING(F_BisDatum,'99.99.9999').
  437. Zelle = 'I2'.
  438. eh:Range(Zelle):Select.
  439. eh:Selection:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  440. END PROCEDURE.
  441. /* _UIB-CODE-BLOCK-END */
  442. &ANALYZE-RESUME
  443. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT wKreditlimiten
  444. PROCEDURE REPORT :
  445. /*------------------------------------------------------------------------------
  446. Purpose:
  447. Parameters: <none>
  448. Notes:
  449. ------------------------------------------------------------------------------*/
  450. DEF VAR Saldo AS DEC NO-UNDO.
  451. DEF VAR GSaldo AS DEC NO-UNDO.
  452. DEF VAR TSaldo AS DEC NO-UNDO.
  453. DEF VAR Sicher AS DEC NO-UNDO.
  454. DEF VAR GSicher AS DEC NO-UNDO.
  455. DEF VAR TSicher AS DEC NO-UNDO.
  456. DEF VAR Umsatz AS DEC NO-UNDO.
  457. DEF VAR GUmsatz AS DEC NO-UNDO.
  458. DEF VAR TUmsatz AS DEC NO-UNDO.
  459. DEF VAR cKgr AS CHAR NO-UNDO.
  460. DEF VAR ja AS LOG NO-UNDO.
  461. DEF VAR Zelle AS CHAR NO-UNDO.
  462. DO WITH FRAME {&FRAME-NAME}:
  463. ASSIGN {&List-6}.
  464. IF F_VonDatum = ? THEN F_VonDatum = DATE(01,01,0001).
  465. IF F_BisDatum = ? THEN F_BisDatum = DATE(12,31,YEAR(TODAY)).
  466. IF F_BisDatum < F_VonDatum THEN F_BisDatum = F_BisDatum.
  467. IF F_VonKnr = 0 AND F_BisKnr = 0 THEN F_BisKnr = 999999.
  468. IF F_VonKgr = 0 AND F_BisKgr = 0 THEN F_BisKgr = 999.
  469. IF F_VonKnr > F_BisKnr THEN F_BisKnr = F_VonKnr .
  470. IF F_VonKgr > F_BisKgr THEN F_BisKgr = F_VonKgr .
  471. DISPLAY {&List-6}.
  472. DYNAMIC-FUNCTION('PUT_FEHLWERTE':U, INPUT Progname, INPUT Fenster) NO-ERROR.
  473. END.
  474. RUN TEMPFILE_FUELLEN.
  475. FIND FIRST TLimite NO-LOCK NO-ERROR.
  476. IF NOT AVAILABLE TLimite THEN DO:
  477. MESSAGE 'Keine Daten Selektiert ! ' VIEW-AS ALERT-BOX INFORMATION.
  478. RETURN ''.
  479. END.
  480. cVorlage = 'Kreditlimiten.xls'.
  481. cDokument = 'Kreditlimiten.xls'.
  482. cDaten = 'Kreditlimiten.txt'.
  483. cDateiName = cDokument + CHR(01) + cVorlage.
  484. RUN CREATEDATEI ( INPUT cDateiName ).
  485. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  486. cDokument = RETURN-VALUE.
  487. cDateiName = cDaten.
  488. RUN CREATEDATEI ( INPUT cDateiName ).
  489. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  490. cDaten = RETURN-VALUE.
  491. OUTPUT TO VALUE(cDaten).
  492. TSaldo = 0.
  493. TSicher = 0.
  494. TUmsatz = 0.
  495. FOR EACH TLimite USE-INDEX TLimite-k1
  496. BREAK BY TLimite.Kgr
  497. BY TLimite.Knr :
  498. IF FIRST-OF ( TLimite.Kgr ) THEN DO:
  499. GSaldo = 0.
  500. GSicher = 0.
  501. GUmsatz = 0.
  502. cKgr = DYNAMIC-FUNCTION('XGET_KUNDENGRUPPE':U, INPUT TLimite.Kgr) NO-ERROR.
  503. PUT CONTROL STRING(TLimite.Kgr,'999 ')
  504. cKgr
  505. CHR(10).
  506. END.
  507. ASSIGN GSaldo = GSaldo + TLimite.Saldo
  508. GSicher = GSicher + TLimite.Sicher
  509. GUmsatz = GUmsatz + TLimite.Umsatz.
  510. ASSIGN TSaldo = TSaldo + TLimite.Saldo
  511. TSicher = TSicher + TLimite.Sicher
  512. TUmsatz = TUmsatz + TLimite.Umsatz.
  513. FIND Adresse USE-INDEX Adresse-k1
  514. WHERE Adresse.Firma = AdFirma
  515. AND Adresse.Knr = TLimite.Knr NO-LOCK NO-ERROR.
  516. PUT CONTROL '£'
  517. STRING(TLimite.Knr ,'999999') '£'
  518. Adresse.Anzeig_Br '££'
  519. TLimite.Frw '£'
  520. TRIM(STRING(TLimite.Saldo ,'->>>>>>>9')) '£'
  521. TRIM(STRING(TLimite.Umsatz,'->>>>>>>9')) '£'
  522. TRIM(STRING(TLimite.Limite,'->>>>>>>9')) '£'
  523. TRIM(STRING(TLimite.Sicher,'->>>>>>>9')) CHR(10).
  524. IF NOT LAST-OF ( TLimite.Kgr ) THEN NEXT.
  525. PUT CONTROL 'Total Kundengruppe '
  526. STRING(TLimite.Kgr ,'999') '£££££'
  527. TRIM(STRING(GSaldo ,'->>>>>>>9')) '£'
  528. TRIM(STRING(GUmsatz,'->>>>>>>9')) '££'
  529. TRIM(STRING(GSicher,'->>>>>>>9')) CHR(10)
  530. '£' CHR(10).
  531. END.
  532. PUT CONTROL 'Gesamttotal aller Gruppen' '£££££'
  533. TRIM(STRING(TSaldo ,'->>>>>>>9')) '£'
  534. TRIM(STRING(TUmsatz,'->>>>>>>9')) '££'
  535. TRIM(STRING(TSicher,'->>>>>>>9')) CHR(10).
  536. OUTPUT CLOSE.
  537. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  538. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  539. RUN FEHLER ( INPUT 1035 ).
  540. RETURN.
  541. END.
  542. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
  543. IF NOT ja THEN DO:
  544. RUN FEHLER ( INPUT 1040 ).
  545. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  546. RETURN NO-APPLY.
  547. END.
  548. Zelle = 'A5'.
  549. excelAppl:Range(Zelle):SELECT.
  550. excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten.
  551. excelAppl:APPLICATION:RUN ( 'DateiEinfügen' ).
  552. RUN KOPF ( INPUT excelAppl ).
  553. Zelle = 'A1'.
  554. excelAppl:Range(Zelle):SELECT.
  555. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  556. END PROCEDURE.
  557. /* _UIB-CODE-BLOCK-END */
  558. &ANALYZE-RESUME
  559. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEMPFILE_FUELLEN wKreditlimiten
  560. PROCEDURE TEMPFILE_FUELLEN :
  561. /*------------------------------------------------------------------------------
  562. Purpose:
  563. Parameters: <none>
  564. Notes:
  565. ------------------------------------------------------------------------------*/
  566. DEF VAR Knr AS INT NO-UNDO INIT -1.
  567. DEF VAR Saldo AS DEC NO-UNDO.
  568. DEF VAR Umsatz AS DEC NO-UNDO.
  569. EMPTY TEMP-TABLE TLimite.
  570. FOR EACH Debop USE-INDEX Debop-k1
  571. WHERE Debop.Firma = Firma
  572. AND Debop.Knr >= F_VonKnr
  573. AND Debop.Knr <= F_BisKnr
  574. AND Debop.FakDat >= F_VonDatum
  575. AND Debop.FakDat <= F_BisDatum NO-LOCK,
  576. FIRST Debst NO-LOCK USE-INDEX Debst-k1
  577. WHERE Debst.firma = Debop.Firma
  578. AND Debst.Knr = Debop.Knr
  579. AND Debst.Ku_Grp >= F_VonKgr
  580. AND Debst.Ku_Grp <= F_BisKgr
  581. AND ((NOT T_Limite) OR
  582. (T_Limite AND Debst.Kred_Lim_Vers > 0))
  583. BREAK BY Debop.Knr
  584. BY Debop.Faknr :
  585. IF FIRST-OF ( Debop.Knr ) THEN DO:
  586. Saldo = 0.
  587. Umsatz = 0.
  588. END.
  589. Saldo = Saldo + Debop.Saldo.
  590. Umsatz = Umsatz + Debop.Fakbetr.
  591. IF NOT LAST-OF ( Debop.Knr ) THEN NEXT.
  592. CREATE TLimite.
  593. ASSIGN TLimite.Kgr = Debst.Ku_Grp
  594. TLimite.Knr = Debst.Knr
  595. TLimite.Saldo = Saldo
  596. TLimite.Umsatz = Umsatz
  597. TLimite.Limite = Debst.Kred_Lim_Vers
  598. TLimite.Frw = Debst.Frw
  599. TLimite.Sicher = 0.
  600. IF TLimite.Limite = 0 THEN NEXT.
  601. IF TLimite.Saldo < TLimite.Limite THEN TLimite.Sicher = TLimite.Saldo * Sicherheit / 100.
  602. ELSE TLimite.Sicher = TLimite.Limite * Sicherheit / 100.
  603. END.
  604. END PROCEDURE.
  605. /* _UIB-CODE-BLOCK-END */
  606. &ANALYZE-RESUME
  607. /* ************************ Function Implementations ***************** */
  608. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION XGET_KUNDENGRUPPE wKreditlimiten
  609. FUNCTION XGET_KUNDENGRUPPE RETURNS CHARACTER
  610. ( ipKgr AS INT ) :
  611. /*------------------------------------------------------------------------------
  612. Purpose:
  613. Notes:
  614. ------------------------------------------------------------------------------*/
  615. FIND FIRST Tabel USE-INDEX Tabel-k1
  616. WHERE Tabel.Firma = Firma
  617. AND Tabel.RecArt = 'KUNDGRP'
  618. AND Tabel.CodeC = ''
  619. AND Tabel.CodeI = ipKgr NO-LOCK NO-ERROR.
  620. IF NOT AVAILABLE Tabel THEN RETURN '?????????'.
  621. RETURN Tabel.Bez1.
  622. END FUNCTION.
  623. /* _UIB-CODE-BLOCK-END */
  624. &ANALYZE-RESUME