b-rabtab.w 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS bTableWin
  8. /*------------------------------------------------------------------------
  9. File: adm2\src\browser.w
  10. Description: SmartDataBrowser Object
  11. Input Parameters:
  12. <none>
  13. Output Parameters:
  14. <none>
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress AppBuilder. */
  17. /*----------------------------------------------------------------------*/
  18. /* Create an unnamed pool to store all the widgets created
  19. by this procedure. This is a good default which assures
  20. that this procedure's triggers and internal procedures
  21. will execute in this procedure's storage, and that proper
  22. cleanup will occur on deletion of the procedure. */
  23. CREATE WIDGET-POOL.
  24. /* *************************** Definitions ************************** */
  25. /* Parameters Definitions --- */
  26. /* Local Variable Definitions --- */
  27. DEF VAR cFirma AS CHAR NO-UNDO.
  28. DEF VAR hDaten AS HANDLE NO-UNDO.
  29. /* _UIB-CODE-BLOCK-END */
  30. &ANALYZE-RESUME
  31. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  32. /* ******************** Preprocessor Definitions ******************** */
  33. &Scoped-define PROCEDURE-TYPE SmartDataBrowser
  34. &Scoped-define DB-AWARE no
  35. &Scoped-define ADM-SUPPORTED-LINKS TableIO-Target,Data-Target,Update-Source
  36. /* Include file with RowObject temp-table definition */
  37. &Scoped-define DATA-FIELD-DEFS "d-rabtab.i"
  38. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  39. &Scoped-define FRAME-NAME F-Main
  40. &Scoped-define BROWSE-NAME br_table
  41. /* Internal Tables (found by Frame, Query & Browse Queries) */
  42. &Scoped-define INTERNAL-TABLES rowObject
  43. /* Definitions for BROWSE br_table */
  44. &Scoped-define FIELDS-IN-QUERY-br_table rowObject.Ku_Rab rowObject.KuRabGrp ~
  45. rowObject.Art_Rab rowObject.ArRabGrp rowObject.Rab_Art rowObject.Proz_Betr ~
  46. rowObject.Wert rowObject.Rab_Summ rowObject.Add_Art
  47. &Scoped-define ENABLED-FIELDS-IN-QUERY-br_table
  48. &Scoped-define QUERY-STRING-br_table FOR EACH rowObject NO-LOCK INDEXED-REPOSITION
  49. &Scoped-define OPEN-QUERY-br_table OPEN QUERY br_table FOR EACH rowObject NO-LOCK INDEXED-REPOSITION.
  50. &Scoped-define TABLES-IN-QUERY-br_table rowObject
  51. &Scoped-define FIRST-TABLE-IN-QUERY-br_table rowObject
  52. /* Definitions for FRAME F-Main */
  53. /* Standard List Definitions */
  54. &Scoped-Define ENABLED-OBJECTS RECT-1 br_table
  55. /* Custom List Definitions */
  56. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  57. /* _UIB-PREPROCESSOR-BLOCK-END */
  58. &ANALYZE-RESUME
  59. /* *********************** Control Definitions ********************** */
  60. /* Definitions of the field level widgets */
  61. DEFINE RECTANGLE RECT-1
  62. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  63. SIZE 89 BY 7.14.
  64. /* Query definitions */
  65. &ANALYZE-SUSPEND
  66. DEFINE TEMP-TABLE RowObject NO-UNDO
  67. {{&DATA-FIELD-DEFS}}
  68. {src/adm2/robjflds.i}.
  69. DEFINE QUERY br_table FOR
  70. rowObject SCROLLING.
  71. &ANALYZE-RESUME
  72. /* Browse definitions */
  73. DEFINE BROWSE br_table
  74. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS br_table bTableWin _STRUCTURED
  75. QUERY br_table NO-LOCK DISPLAY
  76. rowObject.Ku_Rab COLUMN-LABEL "KuGrp" FORMAT "999":U WIDTH 6
  77. rowObject.KuRabGrp FORMAT "x(20)":U
  78. rowObject.Art_Rab COLUMN-LABEL "ArtGrp" FORMAT "999":U WIDTH 6
  79. rowObject.ArRabGrp FORMAT "x(20)":U
  80. rowObject.Rab_Art COLUMN-LABEL "Art" FORMAT "9":U WIDTH 4
  81. rowObject.Proz_Betr COLUMN-LABEL "P/B" FORMAT "P/B":U WIDTH 4
  82. rowObject.Wert FORMAT "zz9.99-":U
  83. rowObject.Rab_Summ COLUMN-LABEL "Sum" FORMAT "999":U WIDTH 5
  84. rowObject.Add_Art COLUMN-LABEL "Add" FORMAT "9":U WIDTH 4
  85. /* _UIB-CODE-BLOCK-END */
  86. &ANALYZE-RESUME
  87. WITH NO-ASSIGN NO-AUTO-VALIDATE NO-ROW-MARKERS SEPARATORS SIZE 87 BY 6.67
  88. BGCOLOR 15 FIT-LAST-COLUMN.
  89. /* ************************ Frame Definitions *********************** */
  90. DEFINE FRAME F-Main
  91. br_table AT ROW 1.48 COL 3
  92. RECT-1 AT ROW 1.24 COL 2
  93. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  94. SIDE-LABELS NO-UNDERLINE THREE-D
  95. AT COL 1 ROW 1 SCROLLABLE .
  96. /* *********************** Procedure Settings ************************ */
  97. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  98. /* Settings for THIS-PROCEDURE
  99. Type: SmartDataBrowser
  100. Data Source: "d-rabtab.w"
  101. Allow: Basic,Browse
  102. Frames: 1
  103. Add Fields to: Neither
  104. Other Settings: PERSISTENT-ONLY COMPILE
  105. */
  106. /* This procedure should always be RUN PERSISTENT. Report the error, */
  107. /* then cleanup and return. */
  108. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  109. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  110. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  111. RETURN.
  112. END.
  113. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  114. /* ************************* Create Window ************************** */
  115. &ANALYZE-SUSPEND _CREATE-WINDOW
  116. /* DESIGN Window definition (used by the UIB)
  117. CREATE WINDOW bTableWin ASSIGN
  118. HEIGHT = 8
  119. WIDTH = 94.
  120. /* END WINDOW DEFINITION */
  121. */
  122. &ANALYZE-RESUME
  123. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB bTableWin
  124. /* ************************* Included-Libraries *********************** */
  125. {src/adm2/browser.i}
  126. /* _UIB-CODE-BLOCK-END */
  127. &ANALYZE-RESUME
  128. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  129. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  130. /* SETTINGS FOR WINDOW bTableWin
  131. NOT-VISIBLE,,RUN-PERSISTENT */
  132. /* SETTINGS FOR FRAME F-Main
  133. NOT-VISIBLE FRAME-NAME Size-to-Fit */
  134. /* BROWSE-TAB br_table RECT-1 F-Main */
  135. ASSIGN
  136. FRAME F-Main:SCROLLABLE = FALSE
  137. FRAME F-Main:HIDDEN = TRUE.
  138. /* _RUN-TIME-ATTRIBUTES-END */
  139. &ANALYZE-RESUME
  140. /* Setting information for Queries and Browse Widgets fields */
  141. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE br_table
  142. /* Query rebuild information for BROWSE br_table
  143. _TblList = "rowObject"
  144. _Options = "NO-LOCK INDEXED-REPOSITION"
  145. _FldNameList[1] > _<SDO>.rowObject.Ku_Rab
  146. "rowObject.Ku_Rab" "KuGrp" ? "integer" ? ? ? ? ? ? no "?" no no "6" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  147. _FldNameList[2] > _<SDO>.rowObject.KuRabGrp
  148. "rowObject.KuRabGrp" ? ? "character" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  149. _FldNameList[3] > _<SDO>.rowObject.Art_Rab
  150. "rowObject.Art_Rab" "ArtGrp" ? "integer" ? ? ? ? ? ? no "?" no no "6" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  151. _FldNameList[4] = _<SDO>.rowObject.ArRabGrp
  152. _FldNameList[5] > _<SDO>.rowObject.Rab_Art
  153. "rowObject.Rab_Art" "Art" ? "integer" ? ? ? ? ? ? no "0 = Rabatt auf Kleingebinde, 1 = Rabatt auf Zeilenbetrag" no no "4" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  154. _FldNameList[6] > _<SDO>.rowObject.Proz_Betr
  155. "rowObject.Proz_Betr" "P/B" ? "logical" ? ? ? ? ? ? no "(B)etrag, (P)rozent" no no "4" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  156. _FldNameList[7] > _<SDO>.rowObject.Wert
  157. "rowObject.Wert" ? ? "decimal" ? ? ? ? ? ? no "Prozentsatz oder Frankenbetrag" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  158. _FldNameList[8] > _<SDO>.rowObject.Rab_Summ
  159. "rowObject.Rab_Summ" "Sum" ? "integer" ? ? ? ? ? ? no "Welche Summengruppe" no no "5" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  160. _FldNameList[9] > _<SDO>.rowObject.Add_Art
  161. "rowObject.Add_Art" "Add" ? "integer" ? ? ? ? ? ? no "0 = nur addieren, 1 = Rabattberechtigt" no no "4" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  162. _Query is NOT OPENED
  163. */ /* BROWSE br_table */
  164. &ANALYZE-RESUME
  165. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  166. /* Query rebuild information for FRAME F-Main
  167. _Options = "NO-LOCK"
  168. _Query is NOT OPENED
  169. */ /* FRAME F-Main */
  170. &ANALYZE-RESUME
  171. /* ************************ Control Triggers ************************ */
  172. &Scoped-define BROWSE-NAME br_table
  173. &Scoped-define SELF-NAME br_table
  174. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  175. ON ALT-F OF br_table IN FRAME F-Main
  176. DO:
  177. DEF VAR iRabGrp AS INT NO-UNDO.
  178. DEF BUFFER bRabTab FOR RabTab.
  179. RUN 'g-einlesen-nummer.p':U ( 'Kunden-Rabattgruppe':U, 'Kde-RabGrp', OUTPUT iRabGrp ).
  180. IF iRabGrp = ? OR
  181. iRabGrp = 0 THEN RETURN NO-APPLY.
  182. FIND FIRST bRabTab NO-LOCK
  183. WHERE bRabTab.Firma = cFirma
  184. AND bRabTab.Ku_Rab = iRabGrp NO-ERROR.
  185. IF NOT AVAILABLE bRabTab THEN DO:
  186. FIND FIRST bRabTab NO-LOCK
  187. WHERE bRabTab.Firma = cFirma
  188. AND bRabTab.Ku_Rab > iRabGrp NO-ERROR.
  189. END.
  190. IF NOT AVAILABLE bRabTab THEN RETURN NO-APPLY.
  191. DYNAMIC-FUNCTION('fetchRowIdent':U IN hDaten, STRING(ROWID(bRabTab)), ?).
  192. RELEASE bRabTab.
  193. RETURN NO-APPLY.
  194. END.
  195. /* _UIB-CODE-BLOCK-END */
  196. &ANALYZE-RESUME
  197. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  198. ON CTRL-END OF br_table IN FRAME F-Main
  199. DO:
  200. APPLY "END":U TO BROWSE {&BROWSE-NAME}.
  201. END.
  202. /* _UIB-CODE-BLOCK-END */
  203. &ANALYZE-RESUME
  204. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  205. ON CTRL-HOME OF br_table IN FRAME F-Main
  206. DO:
  207. APPLY "HOME":U TO BROWSE {&BROWSE-NAME}.
  208. END.
  209. /* _UIB-CODE-BLOCK-END */
  210. &ANALYZE-RESUME
  211. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  212. ON END OF br_table IN FRAME F-Main
  213. DO:
  214. {src/adm2/brsend.i}
  215. END.
  216. /* _UIB-CODE-BLOCK-END */
  217. &ANALYZE-RESUME
  218. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  219. ON HOME OF br_table IN FRAME F-Main
  220. DO:
  221. {src/adm2/brshome.i}
  222. END.
  223. /* _UIB-CODE-BLOCK-END */
  224. &ANALYZE-RESUME
  225. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  226. ON OFF-END OF br_table IN FRAME F-Main
  227. DO:
  228. {src/adm2/brsoffnd.i}
  229. END.
  230. /* _UIB-CODE-BLOCK-END */
  231. &ANALYZE-RESUME
  232. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  233. ON OFF-HOME OF br_table IN FRAME F-Main
  234. DO:
  235. {src/adm2/brsoffhm.i}
  236. END.
  237. /* _UIB-CODE-BLOCK-END */
  238. &ANALYZE-RESUME
  239. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  240. ON ROW-ENTRY OF br_table IN FRAME F-Main
  241. DO:
  242. {src/adm2/brsentry.i}
  243. END.
  244. /* _UIB-CODE-BLOCK-END */
  245. &ANALYZE-RESUME
  246. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  247. ON ROW-LEAVE OF br_table IN FRAME F-Main
  248. DO:
  249. {src/adm2/brsleave.i}
  250. END.
  251. /* _UIB-CODE-BLOCK-END */
  252. &ANALYZE-RESUME
  253. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  254. ON SCROLL-NOTIFY OF br_table IN FRAME F-Main
  255. DO:
  256. {src/adm2/brsscrol.i}
  257. END.
  258. /* _UIB-CODE-BLOCK-END */
  259. &ANALYZE-RESUME
  260. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  261. ON VALUE-CHANGED OF br_table IN FRAME F-Main
  262. DO:
  263. {src/adm2/brschnge.i}
  264. END.
  265. /* _UIB-CODE-BLOCK-END */
  266. &ANALYZE-RESUME
  267. &UNDEFINE SELF-NAME
  268. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK bTableWin
  269. /* *************************** Main Block *************************** */
  270. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  271. RUN initializeObject.
  272. &ENDIF
  273. /* _UIB-CODE-BLOCK-END */
  274. &ANALYZE-RESUME
  275. /* ********************** Internal Procedures *********************** */
  276. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI bTableWin _DEFAULT-DISABLE
  277. PROCEDURE disable_UI :
  278. /*------------------------------------------------------------------------------
  279. Purpose: DISABLE the User Interface
  280. Parameters: <none>
  281. Notes: Here we clean-up the user-interface by deleting
  282. dynamic widgets we have created and/or hide
  283. frames. This procedure is usually called when
  284. we are ready to "clean-up" after running.
  285. ------------------------------------------------------------------------------*/
  286. /* Hide all frames. */
  287. HIDE FRAME F-Main.
  288. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  289. END PROCEDURE.
  290. /* _UIB-CODE-BLOCK-END */
  291. &ANALYZE-RESUME
  292. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject bTableWin
  293. PROCEDURE initializeObject :
  294. /*------------------------------------------------------------------------------
  295. Purpose: Super Override
  296. Parameters:
  297. Notes:
  298. ------------------------------------------------------------------------------*/
  299. /* Code placed here will execute PRIOR to standard behavior. */
  300. RUN SUPER.
  301. cFirma = DYNAMIC-FUNCTION('getMandant':U) NO-ERROR.
  302. hDaten = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR.
  303. /* Code placed here will execute AFTER standard behavior. */
  304. END PROCEDURE.
  305. /* _UIB-CODE-BLOCK-END */
  306. &ANALYZE-RESUME