b-artbw-kunde.w 33 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS B-table-Win
  5. /*------------------------------------------------------------------------
  6. File:
  7. Description: from BROWSER.W - Basic SmartBrowser Object Template
  8. Input Parameters:
  9. <none>
  10. Output Parameters:
  11. <none>
  12. ------------------------------------------------------------------------*/
  13. /* This .W file was created with the Progress UIB. */
  14. /*----------------------------------------------------------------------*/
  15. /* Create an unnamed pool to store all the widgets created
  16. by this procedure. This is a good default which assures
  17. that this procedure's triggers and internal procedures
  18. will execute in this procedure's storage, and that proper
  19. cleanup will occur on deletion of the procedure. */
  20. CREATE WIDGET-POOL.
  21. /* *************************** Definitions ************************** */
  22. /* Parameters Definitions --- */
  23. /* Local Variable Definitions --- */
  24. DEF VAR cSort AS CHAR INIT 'Datum' NO-UNDO.
  25. DEF VAR cAufAb AS CHAR INIT 'DESCENDING' NO-UNDO.
  26. DEF VAR lAufAb AS LOG INIT FALSE NO-UNDO.
  27. DEF VAR StartDatum AS DATE NO-UNDO.
  28. DEF VAR hQuery AS HANDLE NO-UNDO.
  29. DEF VAR iKnr AS INT NO-UNDO.
  30. DEF VAR iArtnr AS INT NO-UNDO.
  31. DEF VAR lFirst AS LOG INIT TRUE NO-UNDO.
  32. DEF VAR lSort AS LOG INIT FALSE NO-UNDO.
  33. /* ---------- Globale Variablen ---------------------------------- */
  34. { v8/globvar.i " " " " "SHARED" }
  35. { v8/debivar.i " " " " "SHARED" }
  36. { v8/artivar.i " " " " "SHARED" }
  37. { v8/contvar.i " " " " "SHARED" }
  38. DEF TEMP-TABLE tArtbw NO-UNDO
  39. FIELD Artnr AS INT FORMAT '999999'
  40. FIELD Inhalt AS INT FORMAT '9999'
  41. FIELD Jahr AS INT FORMAT '9999'
  42. FIELD Artikel AS CHAR FORMAT 'x(40)'
  43. FIELD Datum AS DATE FORMAT '99.99.9999'
  44. FIELD Menge AS DEC FORMAT '->,>>>,>>9'
  45. FIELD Preis AS DEC DECIMALS 4 FORMAT '>>,>>9.999'
  46. FIELD Bru_Betr AS DEC FORMAT '->>,>>>,>>9.99' LABEL 'Brutto'
  47. FIELD Rabatt AS DEC FORMAT '->>>9.99'
  48. FIELD Net_Betr AS DEC FORMAT '->>,>>>,>>9.99' LABEL 'Netto'
  49. FIELD DokNr AS CHAR FORMAT 'x(10)'
  50. FIELD iZeile AS INT
  51. FIELD KGebinde AS CHAR FORMAT 'x(12)'
  52. FIELD VGebinde AS CHAR FORMAT 'x(12)'
  53. FIELD GGebinde AS CHAR FORMAT 'x(12)'
  54. FIELD FremdNr AS CHAR FORMAT 'xxxxxx.xxxx.xxxx' LABEL 'Alte Nummer'
  55. FIELD Lager AS INT FORMAT 'z9' LABEL 'LG'
  56. INDEX tArtbw-k1
  57. iZeile.
  58. DEF TEMP-TABLE tBrowser NO-UNDO
  59. FIELD Feld AS CHAR
  60. FIELD Pos AS INT
  61. FIELD Breit AS DEC
  62. FIELD fAktiv AS LOG
  63. FIELD fVisible AS LOG
  64. FIELD PosAkt AS INT
  65. FIELD BreitAkt AS DEC
  66. FIELD hCol AS HANDLE
  67. FIELD cType AS CHAR
  68. FIELD cFormat AS CHAR
  69. FIELD cInitial AS CHAR
  70. FIELD cLabel AS CHAR.
  71. DEF TEMP-TABLE tMenuItems NO-UNDO
  72. FIELD hMenuItem AS HANDLE.
  73. /* _UIB-CODE-BLOCK-END */
  74. &ANALYZE-RESUME
  75. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  76. /* ******************** Preprocessor Definitions ******************** */
  77. &Scoped-define PROCEDURE-TYPE SmartBrowser
  78. &Scoped-define DB-AWARE no
  79. &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target
  80. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  81. &Scoped-define FRAME-NAME F-Main
  82. &Scoped-define BROWSE-NAME br_table
  83. /* Define KEY-PHRASE in case it is used by any query. */
  84. &Scoped-define KEY-PHRASE TRUE
  85. /* Definitions for FRAME F-Main */
  86. /* Standard List Definitions */
  87. &Scoped-Define ENABLED-OBJECTS F_abDatum br_table F_Artnr RECT-35
  88. &Scoped-Define DISPLAYED-OBJECTS F_Knr F_Anzeig_Br F_abDatum F_Artnr
  89. /* Custom List Definitions */
  90. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  91. &Scoped-define List-6 F_Knr F_Anzeig_Br F_abDatum F_Artnr
  92. /* _UIB-PREPROCESSOR-BLOCK-END */
  93. &ANALYZE-RESUME
  94. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" B-table-Win _INLINE
  95. /* Actions: ? adm/support/keyedit.w ? ? ? */
  96. /* STRUCTURED-DATA
  97. <KEY-OBJECT>
  98. &BROWSE-NAME
  99. </KEY-OBJECT>
  100. <FOREIGN-KEYS>
  101. </FOREIGN-KEYS>
  102. <EXECUTING-CODE>
  103. **************************
  104. * Set attributes related to FOREIGN KEYS
  105. */
  106. RUN set-attribute-list (
  107. 'Keys-Accepted = "",
  108. Keys-Supplied = ""':U).
  109. /**************************
  110. </EXECUTING-CODE> */
  111. /* _UIB-CODE-BLOCK-END */
  112. &ANALYZE-RESUME
  113. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Advanced Query Options" B-table-Win _INLINE
  114. /* Actions: ? adm/support/advqedit.w ? ? ? */
  115. /* STRUCTURED-DATA
  116. <KEY-OBJECT>
  117. &BROWSE-NAME
  118. </KEY-OBJECT>
  119. <SORTBY-OPTIONS>
  120. </SORTBY-OPTIONS>
  121. <SORTBY-RUN-CODE>
  122. ************************
  123. * Set attributes related to SORTBY-OPTIONS */
  124. RUN set-attribute-list (
  125. 'SortBy-Options = ""':U).
  126. /************************
  127. </SORTBY-RUN-CODE>
  128. <FILTER-ATTRIBUTES>
  129. </FILTER-ATTRIBUTES> */
  130. /* _UIB-CODE-BLOCK-END */
  131. &ANALYZE-RESUME
  132. /* ************************ Function Prototypes ********************** */
  133. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD SetZeilenFarbe B-table-Win
  134. FUNCTION SetZeilenFarbe RETURNS LOGICAL
  135. ( ipFarbe AS INT ) FORWARD.
  136. /* _UIB-CODE-BLOCK-END */
  137. &ANALYZE-RESUME
  138. /* *********************** Control Definitions ********************** */
  139. /* Definitions of the field level widgets */
  140. DEFINE VARIABLE F_abDatum AS DATE FORMAT "99.99.9999":U
  141. LABEL "ab Datum"
  142. VIEW-AS FILL-IN NATIVE
  143. SIZE 17 BY 1
  144. BGCOLOR 15 NO-UNDO.
  145. DEFINE VARIABLE F_Anzeig_Br AS CHARACTER FORMAT "x(50)":U
  146. VIEW-AS FILL-IN NATIVE
  147. SIZE 95 BY 1
  148. BGCOLOR 15 NO-UNDO.
  149. DEFINE VARIABLE F_Artnr AS INTEGER FORMAT "999999":U INITIAL 0
  150. LABEL "Artikelnummer"
  151. VIEW-AS FILL-IN NATIVE
  152. SIZE 11 BY 1
  153. BGCOLOR 15 NO-UNDO.
  154. DEFINE VARIABLE F_Knr AS INTEGER FORMAT "999999":U INITIAL 0
  155. VIEW-AS FILL-IN NATIVE
  156. SIZE 11 BY 1
  157. BGCOLOR 15 NO-UNDO.
  158. DEFINE RECTANGLE RECT-35
  159. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  160. SIZE 166 BY 20.48.
  161. /* Browse definitions */
  162. DEFINE BROWSE br_table
  163. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS br_table B-table-Win _STRUCTURED
  164. /* _UIB-CODE-BLOCK-END */
  165. &ANALYZE-RESUME
  166. WITH NO-ASSIGN NO-ROW-MARKERS SEPARATORS SIZE 160.4 BY 15.62
  167. BGCOLOR 15 FONT 11.
  168. /* ************************ Frame Definitions *********************** */
  169. DEFINE FRAME F-Main
  170. F_Knr AT ROW 2.52 COL 2.6 NO-LABEL NO-TAB-STOP
  171. F_Anzeig_Br AT ROW 2.52 COL 13 COLON-ALIGNED NO-LABEL NO-TAB-STOP
  172. F_abDatum AT ROW 2.52 COL 123 COLON-ALIGNED WIDGET-ID 2
  173. br_table AT ROW 4.1 COL 3
  174. F_Artnr AT ROW 20 COL 15.8 COLON-ALIGNED
  175. "Kunde" VIEW-AS TEXT
  176. SIZE 50 BY 1 AT ROW 1.48 COL 3
  177. FONT 9
  178. RECT-35 AT ROW 1.24 COL 2
  179. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  180. SIDE-LABELS NO-UNDERLINE THREE-D
  181. AT COL 1 ROW 1 SCROLLABLE .
  182. /* *********************** Procedure Settings ************************ */
  183. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  184. /* Settings for THIS-PROCEDURE
  185. Type: SmartBrowser
  186. Allow: Basic,Browse
  187. Frames: 1
  188. Add Fields to: EXTERNAL-TABLES
  189. Other Settings: PERSISTENT-ONLY COMPILE
  190. */
  191. /* This procedure should always be RUN PERSISTENT. Report the error, */
  192. /* then cleanup and return. */
  193. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  194. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  195. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  196. RETURN.
  197. END.
  198. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  199. /* ************************* Create Window ************************** */
  200. &ANALYZE-SUSPEND _CREATE-WINDOW
  201. /* DESIGN Window definition (used by the UIB)
  202. CREATE WINDOW B-table-Win ASSIGN
  203. HEIGHT = 21.19
  204. WIDTH = 168.
  205. /* END WINDOW DEFINITION */
  206. */
  207. &ANALYZE-RESUME
  208. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB B-table-Win
  209. /* ************************* Included-Libraries *********************** */
  210. {src/adm/method/browser.i}
  211. /* _UIB-CODE-BLOCK-END */
  212. &ANALYZE-RESUME
  213. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  214. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  215. /* SETTINGS FOR WINDOW B-table-Win
  216. NOT-VISIBLE,,RUN-PERSISTENT */
  217. /* SETTINGS FOR FRAME F-Main
  218. NOT-VISIBLE FRAME-NAME Size-to-Fit Custom */
  219. /* BROWSE-TAB br_table F_abDatum F-Main */
  220. ASSIGN
  221. FRAME F-Main:SCROLLABLE = FALSE
  222. FRAME F-Main:HIDDEN = TRUE.
  223. ASSIGN
  224. br_table:ALLOW-COLUMN-SEARCHING IN FRAME F-Main = TRUE
  225. br_table:COLUMN-RESIZABLE IN FRAME F-Main = TRUE
  226. br_table:COLUMN-MOVABLE IN FRAME F-Main = TRUE.
  227. /* SETTINGS FOR FILL-IN F_abDatum IN FRAME F-Main
  228. 6 */
  229. /* SETTINGS FOR FILL-IN F_Anzeig_Br IN FRAME F-Main
  230. NO-ENABLE 6 */
  231. ASSIGN
  232. F_Anzeig_Br:READ-ONLY IN FRAME F-Main = TRUE.
  233. /* SETTINGS FOR FILL-IN F_Artnr IN FRAME F-Main
  234. 6 */
  235. /* SETTINGS FOR FILL-IN F_Knr IN FRAME F-Main
  236. NO-ENABLE ALIGN-L 6 */
  237. ASSIGN
  238. F_Knr:READ-ONLY IN FRAME F-Main = TRUE.
  239. /* _RUN-TIME-ATTRIBUTES-END */
  240. &ANALYZE-RESUME
  241. /* Setting information for Queries and Browse Widgets fields */
  242. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE br_table
  243. /* Query rebuild information for BROWSE br_table
  244. _Options = "NO-LOCK KEY-PHRASE SORTBY-PHRASE"
  245. _Query is NOT OPENED
  246. */ /* BROWSE br_table */
  247. &ANALYZE-RESUME
  248. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  249. /* Query rebuild information for FRAME F-Main
  250. _Options = "NO-LOCK"
  251. _Query is NOT OPENED
  252. */ /* FRAME F-Main */
  253. &ANALYZE-RESUME
  254. /* ************************ Control Triggers ************************ */
  255. &Scoped-define BROWSE-NAME br_table
  256. &Scoped-define SELF-NAME br_table
  257. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  258. ON END-ERROR OF br_table IN FRAME F-Main
  259. DO:
  260. APPLY 'ENTRY' TO F_AbDatum IN FRAME {&FRAME-NAME}.
  261. RETURN NO-APPLY.
  262. END.
  263. /* _UIB-CODE-BLOCK-END */
  264. &ANALYZE-RESUME
  265. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  266. ON ROW-DISPLAY OF br_table IN FRAME F-Main
  267. DO:
  268. DYNAMIC-FUNCTION( 'SetZeilenFarbe':U, 15 ).
  269. END.
  270. /* _UIB-CODE-BLOCK-END */
  271. &ANALYZE-RESUME
  272. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  273. ON ROW-ENTRY OF br_table IN FRAME F-Main
  274. DO:
  275. /* This code displays initial values for newly added or copied rows. */
  276. {src/adm/template/brsentry.i}
  277. END.
  278. /* _UIB-CODE-BLOCK-END */
  279. &ANALYZE-RESUME
  280. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  281. ON ROW-LEAVE OF br_table IN FRAME F-Main
  282. DO:
  283. /* Do not disable this code or no updates will take place except
  284. by pressing the Save button on an Update SmartPanel. */
  285. {src/adm/template/brsleave.i}
  286. END.
  287. /* _UIB-CODE-BLOCK-END */
  288. &ANALYZE-RESUME
  289. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  290. ON START-SEARCH OF br_table IN FRAME F-Main
  291. DO:
  292. DEF VAR ColumnHandle AS HANDLE NO-UNDO.
  293. DEF VAR xSort AS CHAR NO-UNDO.
  294. ASSIGN ColumnHandle = {&BROWSE-NAME}:CURRENT-COLUMN.
  295. DO WITH FRAME {&FRAME-NAME}:
  296. APPLY 'END-SEARCH' TO {&BROWSE-NAME}.
  297. END.
  298. xSort = ColumnHandle:NAME.
  299. IF cSort = xSort THEN lAufAb = NOT lAufAb.
  300. IF lAufAb THEN cAufAb = ''.
  301. ELSE cAufAb = 'DESCENDING'.
  302. cSort = xSort.
  303. lSort = TRUE.
  304. RUN TEMP_TABELLE_FUELLEN ( iKnr, iArtnr, StartDatum ).
  305. END.
  306. /* _UIB-CODE-BLOCK-END */
  307. &ANALYZE-RESUME
  308. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  309. ON VALUE-CHANGED OF br_table IN FRAME F-Main
  310. DO:
  311. /* This ADM trigger code must be preserved in order to notify other
  312. objects when the browser's current row changes. */
  313. {src/adm/template/brschnge.i}
  314. END.
  315. /* _UIB-CODE-BLOCK-END */
  316. &ANALYZE-RESUME
  317. &Scoped-define SELF-NAME F_abDatum
  318. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_abDatum B-table-Win
  319. ON LEAVE OF F_abDatum IN FRAME F-Main /* ab Datum */
  320. DO:
  321. ASSIGN F_AbDatum.
  322. StartDatum = F_abDatum.
  323. RUN TEMP_TABELLE_FUELLEN ( iKnr, iArtnr, StartDatum ).
  324. RETURN NO-APPLY.
  325. END.
  326. /* _UIB-CODE-BLOCK-END */
  327. &ANALYZE-RESUME
  328. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_abDatum B-table-Win
  329. ON RETURN OF F_abDatum IN FRAME F-Main /* ab Datum */
  330. DO:
  331. APPLY 'TAB' TO SELF.
  332. RETURN NO-APPLY.
  333. END.
  334. /* _UIB-CODE-BLOCK-END */
  335. &ANALYZE-RESUME
  336. &Scoped-define SELF-NAME F_Artnr
  337. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr B-table-Win
  338. ON LEAVE OF F_Artnr IN FRAME F-Main /* Artikelnummer */
  339. DO:
  340. ASSIGN {&List-6}.
  341. iArtnr = F_Artnr.
  342. RUN TEMP_TABELLE_FUELLEN ( iKnr, iArtnr, StartDatum ).
  343. RETURN NO-APPLY.
  344. END.
  345. /* _UIB-CODE-BLOCK-END */
  346. &ANALYZE-RESUME
  347. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr B-table-Win
  348. ON RETURN OF F_Artnr IN FRAME F-Main /* Artikelnummer */
  349. DO:
  350. APPLY 'TAB' TO SELF.
  351. RETURN NO-APPLY.
  352. END.
  353. /* _UIB-CODE-BLOCK-END */
  354. &ANALYZE-RESUME
  355. &UNDEFINE SELF-NAME
  356. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK B-table-Win
  357. /* *************************** Main Block *************************** */
  358. ASSIGN cSort = 'DATUM'
  359. cAufAb = 'DESCENDING'
  360. lAufAb = FALSE
  361. F_Artnr = 0
  362. F_abDatum = TODAY - 365
  363. StartDatum = F_abDatum.
  364. PROCEDURE ShellExecuteA EXTERNAL "shell32.dll":
  365. DEF INPUT PARAMETER hwnd AS LONG. /* Handle to parent window */
  366. DEF INPUT PARAMETER lpOperation AS CHAR. /* Operation to perform: open, print */
  367. DEF INPUT PARAMETER lpFile AS CHAR. /* Document or executable name */
  368. DEF INPUT PARAMETER lpParameters AS CHAR. /* Command line parameters to executable in lpFile */
  369. DEF INPUT PARAMETER lpDirectory AS CHAR. /* Default directory */
  370. DEF INPUT PARAMETER nShowCmd AS LONG. /* whether shown when opened:
  371. 0 hidden, 1 normal, minimized 2, maximized 3,
  372. 0 if lpFile is a document */
  373. DEF RETURN PARAMETER hInstance AS LONG. /* Less than or equal to 32 */
  374. END PROCEDURE.
  375. /*
  376. PROCEDURE EXPORT_EXCEL:
  377. { incl/brwexportexcel.i }
  378. END PROCEDURE.
  379. PROCEDURE FILTER_SETZEN:
  380. { incl/brwfilter.i }
  381. END PROCEDURE.
  382. PROCEDURE ZURUECKSETZEN:
  383. { incl/brwresetbreitespalte.i }
  384. END PROCEDURE.
  385. */
  386. PROCEDURE SORTIERBAR:
  387. DEF INPUT PARAMETER ipSort AS HANDLE NO-UNDO.
  388. DEF INPUT PARAMETER ipMove AS HANDLE NO-UNDO.
  389. DEF VAR hBrowser AS HANDLE NO-UNDO.
  390. ipMove:CHECKED = FALSE.
  391. ipSort:CHECKED = TRUE .
  392. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}.
  393. hBrowser:COLUMN-MOVABLE = FALSE.
  394. hBrowser:ALLOW-COLUMN-SEARCHING = TRUE.
  395. END PROCEDURE.
  396. PROCEDURE VERSCHIEBBAR:
  397. DEF INPUT PARAMETER ipMove AS HANDLE NO-UNDO.
  398. DEF INPUT PARAMETER ipSort AS HANDLE NO-UNDO.
  399. DEF VAR hBrowser AS HANDLE NO-UNDO.
  400. ipSort:CHECKED = FALSE.
  401. ipMove:CHECKED = TRUE .
  402. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}.
  403. hBrowser:ALLOW-COLUMN-SEARCHING = FALSE.
  404. hBrowser:COLUMN-MOVABLE = TRUE.
  405. END PROCEDURE.
  406. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  407. RUN dispatch IN THIS-PROCEDURE ('initialize':U).
  408. &ENDIF
  409. /* _UIB-CODE-BLOCK-END */
  410. &ANALYZE-RESUME
  411. /* ********************** Internal Procedures *********************** */
  412. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available B-table-Win _ADM-ROW-AVAILABLE
  413. PROCEDURE adm-row-available :
  414. /*------------------------------------------------------------------------------
  415. Purpose: Dispatched to this procedure when the Record-
  416. Source has a new row available. This procedure
  417. tries to get the new row (or foriegn keys) from
  418. the Record-Source and process it.
  419. Parameters: <none>
  420. ------------------------------------------------------------------------------*/
  421. /* Define variables needed by this internal procedure. */
  422. {src/adm/template/row-head.i}
  423. /* Process the newly available records (i.e. display fields,
  424. open queries, and/or pass records on to any RECORD-TARGETS). */
  425. {src/adm/template/row-end.i}
  426. END PROCEDURE.
  427. /* _UIB-CODE-BLOCK-END */
  428. &ANALYZE-RESUME
  429. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI B-table-Win _DEFAULT-DISABLE
  430. PROCEDURE disable_UI :
  431. /*------------------------------------------------------------------------------
  432. Purpose: DISABLE the User Interface
  433. Parameters: <none>
  434. Notes: Here we clean-up the user-interface by deleting
  435. dynamic widgets we have created and/or hide
  436. frames. This procedure is usually called when
  437. we are ready to "clean-up" after running.
  438. ------------------------------------------------------------------------------*/
  439. /* Hide all frames. */
  440. HIDE FRAME F-Main.
  441. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  442. END PROCEDURE.
  443. /* _UIB-CODE-BLOCK-END */
  444. &ANALYZE-RESUME
  445. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDEAUFTRAG B-table-Win
  446. PROCEDURE ENDEAUFTRAG :
  447. /*------------------------------------------------------------------------------
  448. Purpose:
  449. Parameters: <none>
  450. Notes:
  451. ------------------------------------------------------------------------------*/
  452. END PROCEDURE.
  453. /* _UIB-CODE-BLOCK-END */
  454. &ANALYZE-RESUME
  455. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_BROWSE B-table-Win
  456. PROCEDURE ENTRY_BROWSE :
  457. /*------------------------------------------------------------------------------
  458. Purpose:
  459. Parameters: <none>
  460. Notes:
  461. ------------------------------------------------------------------------------*/
  462. DO WITH FRAME {&FRAME-NAME}:
  463. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  464. RETURN NO-APPLY.
  465. END.
  466. END PROCEDURE.
  467. /* _UIB-CODE-BLOCK-END */
  468. &ANALYZE-RESUME
  469. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-destroy B-table-Win
  470. PROCEDURE local-destroy :
  471. /*------------------------------------------------------------------------------
  472. Purpose: Override standard ADM method
  473. Notes:
  474. ------------------------------------------------------------------------------*/
  475. DEF VAR hBrowser AS HANDLE NO-UNDO.
  476. DEF VAR Sektion AS CHAR NO-UNDO.
  477. Sektion = ENTRY(1, THIS-PROCEDURE:NAME, '.').
  478. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}.
  479. DYNAMIC-FUNCTION('setBrowserDaten':U, INPUT hBrowser,
  480. INPUT Sektion ) NO-ERROR.
  481. RUN dispatch IN THIS-PROCEDURE ( INPUT 'destroy':U ) .
  482. /* Code placed here will execute AFTER standard behavior. */
  483. END PROCEDURE.
  484. /* _UIB-CODE-BLOCK-END */
  485. &ANALYZE-RESUME
  486. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize B-table-Win
  487. PROCEDURE local-initialize :
  488. /*------------------------------------------------------------------------------
  489. Purpose: Override standard ADM method
  490. Notes:
  491. ------------------------------------------------------------------------------*/
  492. DEF VAR Sektion AS CHAR NO-UNDO.
  493. DEF VAR hBrowser AS HANDLE NO-UNDO.
  494. DEF VAR hTBrowser AS HANDLE NO-UNDO.
  495. DEF VAR hMenu AS HANDLE NO-UNDO.
  496. DEF VAR hMenuItem AS HANDLE NO-UNDO.
  497. DEF VAR hItem_Filter AS HANDLE NO-UNDO.
  498. DEF VAR hItem_Excel AS HANDLE NO-UNDO.
  499. DEF VAR hItem_zurueck AS HANDLE NO-UNDO.
  500. DEF VAR hItem_sort AS HANDLE NO-UNDO.
  501. DEF VAR hItem_move AS HANDLE NO-UNDO.
  502. DEF VAR hItem_Rule AS HANDLE NO-UNDO.
  503. DEF VAR cMenu AS CHAR NO-UNDO.
  504. DEF VAR hxMenu AS HANDLE NO-UNDO.
  505. DEF VAR hxMenuItem AS HANDLE EXTENT 10 NO-UNDO.
  506. DEF VAR ii AS INT NO-UNDO.
  507. DEF VAR cExceptList AS CHAR NO-UNDO
  508. INIT 'iZeile'.
  509. CREATE QUERY hQuery.
  510. hQuery:SET-BUFFERS(TEMP-TABLE tArtbw:DEFAULT-BUFFER-HANDLE).
  511. hQuery:QUERY-PREPARE('FOR EACH tArtbw NO-LOCK').
  512. BROWSE {&BROWSE-NAME}:QUERY = hQuery.
  513. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}.
  514. hBrowser:ADD-COLUMNS-FROM( 'tArtbw', cExceptList ).
  515. F_abDatum = TODAY - 365.
  516. StartDatum = F_abDatum.
  517. RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) .
  518. Sektion = ENTRY(1, THIS-PROCEDURE:NAME, '.').
  519. EMPTY TEMP-TABLE TBrowser.
  520. htBrowser = TEMP-TABLE TBrowser:DEFAULT-BUFFER-HANDLE.
  521. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}.
  522. hBrowser:COLUMN-MOVABLE = TRUE.
  523. DYNAMIC-FUNCTION('getBrowserDaten':U, INPUT htBrowser,
  524. INPUT hBrowser,
  525. INPUT Sektion ) NO-ERROR.
  526. hMenu = hBrowser:POPUP-MENU NO-ERROR.
  527. hMenuItem = hMenu :FIRST-CHILD NO-ERROR.
  528. DO WHILE VALID-HANDLE (hMenuItem):
  529. IF hMenuItem:NAME = ? OR
  530. NOT hMenuItem:NAME BEGINS 'x_' THEN DO:
  531. hMenuItem = hMenuItem:NEXT-SIBLING.
  532. NEXT.
  533. END.
  534. CREATE tMenuItems.
  535. ASSIGN tMenuItems.hMenuItem = hMenuItem.
  536. hMenuItem = hMenuItem:NEXT-SIBLING.
  537. END.
  538. hMenu = ?.
  539. CREATE MENU hMenu
  540. ASSIGN POPUP-ONLY = TRUE
  541. TITLE = 'Browser Menu'.
  542. CREATE MENU-ITEM hItem_Excel
  543. ASSIGN LABEL = 'Export in Excel'
  544. NAME = 'm_excel'
  545. PARENT = hMenu.
  546. CREATE MENU-ITEM hItem_Filter
  547. ASSIGN LABEL = 'Filter setzen'
  548. NAME = 'm_filter'
  549. PARENT = hMenu.
  550. CREATE MENU-ITEM hItem_Rule
  551. ASSIGN SUBTYPE = 'RULE':U
  552. PARENT = hMenu.
  553. CREATE MENU-ITEM hItem_zurueck
  554. ASSIGN LABEL = 'Spalten und Breite zurücksetzen'
  555. NAME = 'm_zurueck'
  556. PARENT = hMenu.
  557. CREATE MENU-ITEM hItem_Rule
  558. ASSIGN SUBTYPE = 'RULE':U
  559. PARENT = hMenu.
  560. CREATE MENU-ITEM hItem_sort
  561. ASSIGN LABEL = 'Spalten sortierbar'
  562. NAME = 'm_zurueck'
  563. TOGGLE-BOX = TRUE
  564. CHECKED = TRUE
  565. PARENT = hMenu.
  566. CREATE MENU-ITEM hItem_move
  567. ASSIGN LABEL = 'Spalten verschiebbar'
  568. NAME = 'm_move'
  569. TOGGLE-BOX = TRUE
  570. CHECKED = FALSE
  571. PARENT = hMenu.
  572. CREATE MENU-ITEM hItem_Rule
  573. ASSIGN SUBTYPE = 'RULE':U
  574. PARENT = hMenu.
  575. FOR EACH tMenuItems ii = 1 TO 10:
  576. CREATE MENU-ITEM hxMenuItem[ii]
  577. ASSIGN LABEL = tMenuItems.hMenuItem:LABEL
  578. NAME = SUBSTRING(tMenuItems.hMenuItem:NAME,03)
  579. TOGGLE-BOX = TRUE
  580. PARENT = hMenu.
  581. ON CHOOSE OF hxMenuItem[ii] PERSISTENT RUN VALUE(hxMenuItem[ii]:NAME) IN TARGET-PROCEDURE.
  582. ON VALUE-CHANGED OF hxMenuItem[ii] PERSISTENT RUN VALUE(hxMenuItem[ii]:NAME) IN TARGET-PROCEDURE.
  583. END.
  584. hBrowser:POPUP-MENU = hMenu NO-ERROR.
  585. ON CHOOSE OF hItem_Filter PERSISTENT RUN FILTER_SETZEN IN TARGET-PROCEDURE.
  586. ON CHOOSE OF hItem_Excel PERSISTENT RUN EXPORT_EXCEL IN TARGET-PROCEDURE.
  587. ON CHOOSE OF hItem_zurueck PERSISTENT RUN ZURUECKSETZEN IN TARGET-PROCEDURE.
  588. ON VALUE-CHANGED OF hItem_sort
  589. PERSISTENT RUN SORTIERBAR IN TARGET-PROCEDURE ( hItem_sort, hItem_move ).
  590. ON VALUE-CHANGED OF hItem_move
  591. PERSISTENT RUN VERSCHIEBBAR IN TARGET-PROCEDURE ( hItem_move, hItem_sort ).
  592. APPLY 'VALUE-CHANGED' TO hItem_Sort.
  593. RUN TEMP_TABELLE_FUELLEN ( iKnr, iArtnr, StartDatum ).
  594. END PROCEDURE.
  595. /* _UIB-CODE-BLOCK-END */
  596. &ANALYZE-RESUME
  597. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-open-query B-table-Win
  598. PROCEDURE local-open-query :
  599. /*------------------------------------------------------------------------------
  600. Purpose: Override standard ADM method
  601. Notes:
  602. ------------------------------------------------------------------------------*/
  603. /*
  604. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  605. ASSIGN F_Artnr.
  606. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE.
  607. CLOSE QUERY {&BROWSE-NAME}.
  608. LEAVE.
  609. END.
  610. IF F_Artnr <> 0 THEN VSort = VSort + 10.
  611. CASE VSort:
  612. WHEN 1 THEN DO:
  613. OPEN QUERY {&BROWSE-NAME}
  614. FOR EACH AnaDat.Artbw USE-INDEX Artbw-k3
  615. WHERE Artbw.Firma = GVFirma
  616. AND Artbw.Knr = XVKnr
  617. AND Artbw.Datum >= StartDatum NO-LOCK
  618. BY Artbw.Datum DESCENDING.
  619. END.
  620. WHEN 11 THEN DO:
  621. OPEN QUERY {&BROWSE-NAME}
  622. FOR EACH AnaDat.Artbw USE-INDEX Artbw-k9
  623. WHERE Artbw.Firma = GVFirma
  624. AND Artbw.Knr = XVKnr
  625. AND Artbw.Artnr = F_Artnr
  626. AND Artbw.Datum >= StartDatum NO-LOCK
  627. BY Artbw.Artnr
  628. BY Artbw.Inhalt
  629. BY Artbw.Jahr
  630. BY Artbw.Datum DESCENDING.
  631. END.
  632. WHEN 2 THEN DO:
  633. OPEN QUERY {&BROWSE-NAME}
  634. FOR EACH AnaDat.Artbw USE-INDEX Artbw-k5
  635. WHERE Artbw.Firma = GVFirma
  636. AND Artbw.Knr = XVKnr
  637. AND Artbw.Datum >= StartDatum NO-LOCK
  638. BY Artbw.Artnr
  639. BY Artbw.Inhalt
  640. BY Artbw.Jahr
  641. BY Artbw.Datum DESCENDING.
  642. END.
  643. WHEN 12 THEN DO:
  644. OPEN QUERY {&BROWSE-NAME}
  645. FOR EACH AnaDat.Artbw USE-INDEX Artbw-k9
  646. WHERE Artbw.Firma = GVFirma
  647. AND Artbw.Knr = XVKnr
  648. AND Artbw.Artnr = F_Artnr
  649. AND Artbw.Datum >= StartDatum NO-LOCK
  650. BY Artbw.Artnr
  651. BY Artbw.Inhalt
  652. BY Artbw.Jahr
  653. BY Artbw.Datum DESCENDING.
  654. END.
  655. END CASE.
  656. */
  657. F_Artnr = 0.
  658. DISPLAY F_Artnr WITH FRAME {&FRAME-NAME}.
  659. END PROCEDURE.
  660. /* _UIB-CODE-BLOCK-END */
  661. &ANALYZE-RESUME
  662. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view B-table-Win
  663. PROCEDURE local-view :
  664. /*------------------------------------------------------------------------------
  665. Purpose: Override standard ADM method
  666. Notes:
  667. ------------------------------------------------------------------------------*/
  668. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
  669. IF XVKnr = 0 OR
  670. XVKnr = ? THEN RETURN.
  671. FIND Adresse USE-INDEX Adresse-k1
  672. WHERE Adresse.Firma = AdFirma
  673. AND Adresse.Knr = XVKnr NO-LOCK NO-ERROR.
  674. IF NOT AVAILABLE Adresse THEN RETURN.
  675. F_Knr = XVKnr.
  676. F_Anzeig_Br = Adresse.Anzeig_Br.
  677. F_Artnr = 0.
  678. DISPLAY {&List-6} WITH FRAME {&FRAME-NAME}.
  679. ASSIGN iKnr = F_Knr
  680. iArtnr = F_Artnr.
  681. IF lFirst THEN DO:
  682. lFirst = FALSE.
  683. RETURN.
  684. END.
  685. RUN TEMP_TABELLE_FUELLEN ( iKnr, iArtnr, StartDatum ).
  686. END PROCEDURE.
  687. /* _UIB-CODE-BLOCK-END */
  688. &ANALYZE-RESUME
  689. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records B-table-Win _ADM-SEND-RECORDS
  690. PROCEDURE send-records :
  691. /*------------------------------------------------------------------------------
  692. Purpose: Send record ROWID's for all tables used by
  693. this file.
  694. Parameters: see template/snd-head.i
  695. ------------------------------------------------------------------------------*/
  696. /* SEND-RECORDS does nothing because there are no External
  697. Tables specified for this SmartBrowser, and there are no
  698. tables specified in any contained Browse, Query, or Frame. */
  699. END PROCEDURE.
  700. /* _UIB-CODE-BLOCK-END */
  701. &ANALYZE-RESUME
  702. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed B-table-Win
  703. PROCEDURE state-changed :
  704. /* -----------------------------------------------------------
  705. Purpose:
  706. Parameters: <none>
  707. Notes:
  708. -------------------------------------------------------------*/
  709. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  710. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  711. CASE p-state:
  712. /* Object instance CASEs can go here to replace standard behavior
  713. or add new cases. */
  714. {src/adm/template/bstates.i}
  715. END CASE.
  716. END PROCEDURE.
  717. /* _UIB-CODE-BLOCK-END */
  718. &ANALYZE-RESUME
  719. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEMP_TABELLE_FUELLEN B-table-Win
  720. PROCEDURE TEMP_TABELLE_FUELLEN :
  721. /*------------------------------------------------------------------------------
  722. Purpose:
  723. Parameters: <none>
  724. Notes:
  725. ------------------------------------------------------------------------------*/
  726. DEF INPUT PARAMETER ipKnr AS INT NO-UNDO.
  727. DEF INPUT PARAMETER ipArtnr AS INT NO-UNDO.
  728. DEF INPUT PARAMETER ipDatum AS DATE NO-UNDO.
  729. DEF VAR iZeile AS INT NO-UNDO.
  730. DEF VAR xWhere AS CHAR NO-UNDO.
  731. DEF VAR zSort AS CHAR NO-UNDO.
  732. IF ipDatum = ? THEN ipDatum = DATE(01,01,YEAR(TODAY) - 2).
  733. IF ipKnr = 0 THEN RETURN NO-APPLY.
  734. IF NOT lSort THEN DO:
  735. SESSION:SET-WAIT-STATE('GENERAL').
  736. EMPTY TEMP-TABLE tArtbw.
  737. xWhere = SUBSTITUTE('FOR EACH tArtbw NO-LOCK WHERE TRUE BY tArtbw.&1 &2 ', cSort, cAufAb).
  738. hQuery:QUERY-PREPARE(xWhere).
  739. hQuery:QUERY-OPEN().
  740. hQuery:QUERY-CLOSE().
  741. FOR EACH Artbw NO-LOCK USE-INDEX Artbw-k3
  742. WHERE Artbw.Firma = GVFirma
  743. AND Artbw.Knr = ipKnr
  744. AND ((ipArtnr = 0)
  745. OR (ipArtnr = Artbw.Artnr))
  746. AND Artbw.Datum >= ipDatum:
  747. iZeile = iZeile + 1.
  748. CREATE tArtbw.
  749. BUFFER-COPY Artbw
  750. TO tArtbw
  751. ASSIGN tArtbw.iZeile = iZeile
  752. tArtbw.KGebinde = DYNAMIC-FUNCTION('getKGebindeKBez':U , Artbw.KGeb_Cd)
  753. tArtbw.VGebinde = DYNAMIC-FUNCTION('getVGebindeKBez':U , Artbw.VGeb_Cd)
  754. tArtbw.GGebinde = DYNAMIC-FUNCTION('getGGebindeKBez':U , Artbw.GGeb_Cd)
  755. tArtbw.Artikel = TRIM(Artbw.Bez1 + ' ' + Artbw.Bez2)
  756. tArtbw.FremdNr = DYNAMIC-FUNCTION('getFremdNr':U , Artbw.Artnr, Artbw.Inhalt, Artbw.Jahr )
  757. tArtbw.DokNr = (IF Artbw.Faknr > 0 THEN ('F' + TRIM(STRING(Artbw.Faknr,'>>999999')))
  758. ELSE ('A' + TRIM(STRING(Artbw.Aufnr,'>>999999'))))
  759. NO-ERROR.
  760. END.
  761. SESSION:SET-WAIT-STATE('').
  762. END.
  763. lSort = FALSE.
  764. zSort = ''.
  765. IF cSort = 'Artnr' THEN zSort = ' BY tArtbw.KGebinde '.
  766. ELSE zSort = ' BY tArtbw.Artnr BY tArtbw.KGebinde '.
  767. IF cSort <> 'Datum' THEN zSort = zSort + ' BY tArtbw.Datum DESCENDING'.
  768. xWhere = SUBSTITUTE('FOR EACH tArtbw NO-LOCK WHERE TRUE BY tArtbw.&1 &2 &3', cSort, cAufAb, zSort).
  769. hQuery:QUERY-PREPARE(xWhere).
  770. hQuery:QUERY-OPEN().
  771. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  772. RETURN NO-APPLY.
  773. END PROCEDURE.
  774. /* _UIB-CODE-BLOCK-END */
  775. &ANALYZE-RESUME
  776. /* ************************ Function Implementations ***************** */
  777. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION SetZeilenFarbe B-table-Win
  778. FUNCTION SetZeilenFarbe RETURNS LOGICAL
  779. ( ipFarbe AS INT ) :
  780. /*------------------------------------------------------------------------------
  781. Purpose:
  782. Notes:
  783. ------------------------------------------------------------------------------*/
  784. DEF VAR iFarbe AS INT NO-UNDO.
  785. DEF VAR hFeld AS HANDLE NO-UNDO.
  786. DO WITH FRAME {&FRAME-NAME}:
  787. FOR EACH tBrowser WHERE VALID-HANDLE(tBrowser.hCol)
  788. AND tBrowser.fVisible NO-LOCK:
  789. IF tBrowser.Feld = cSort THEN iFarbe = 8.
  790. ELSE iFarbe = ipFarbe.
  791. tBrowser.hCol:BGCOLOR = iFarbe.
  792. END.
  793. END.
  794. /**/
  795. RETURN TRUE.
  796. END FUNCTION.
  797. /* _UIB-CODE-BLOCK-END */
  798. &ANALYZE-RESUME