g-such-ort.w 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v9r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. &Scoped-define FRAME-NAME gSuchenOrte
  8. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gSuchenOrte
  9. /*------------------------------------------------------------------------
  10. File:
  11. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  12. Input Parameters:
  13. <none>
  14. Output Parameters:
  15. <none>
  16. Author:
  17. Created:
  18. ------------------------------------------------------------------------*/
  19. /* This .W file was created with the Progress AppBuilder. */
  20. /*----------------------------------------------------------------------*/
  21. /* Create an unnamed pool to store all the widgets created
  22. by this procedure. This is a good default which assures
  23. that this procedure's triggers and internal procedures
  24. will execute in this procedure's storage, and that proper
  25. cleanup will occur on deletion of the procedure. */
  26. CREATE WIDGET-POOL.
  27. /* *************************** Definitions ************************** */
  28. /* Parameters Definitions --- */
  29. DEF INPUT PARAMETER ipLand AS CHAR NO-UNDO.
  30. DEF INPUT PARAMETER ipSort AS INT NO-UNDO.
  31. DEF INPUT-OUTPUT PARAMETER ipBeginn AS CHAR NO-UNDO.
  32. /* Local Variable Definitions --- */
  33. DEF VAR VLkz AS CHAR NO-UNDO.
  34. /* _UIB-CODE-BLOCK-END */
  35. &ANALYZE-RESUME
  36. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  37. /* ******************** Preprocessor Definitions ******************** */
  38. &Scoped-define PROCEDURE-TYPE SmartDialog
  39. &Scoped-define DB-AWARE no
  40. &Scoped-define ADM-CONTAINER DIALOG-BOX
  41. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  42. /* Name of first Frame and/or Browse and/or first Query */
  43. &Scoped-define FRAME-NAME gSuchenOrte
  44. &Scoped-define BROWSE-NAME Br_Orte
  45. /* Internal Tables (found by Frame, Query & Browse Queries) */
  46. &Scoped-define INTERNAL-TABLES Orte
  47. /* Definitions for BROWSE Br_Orte */
  48. &Scoped-define FIELDS-IN-QUERY-Br_Orte Orte.Plz Orte.Ort
  49. &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Orte Orte.Plz Orte.Ort
  50. &Scoped-define ENABLED-TABLES-IN-QUERY-Br_Orte Orte
  51. &Scoped-define FIRST-ENABLED-TABLE-IN-QUERY-Br_Orte Orte
  52. &Scoped-define OPEN-QUERY-Br_Orte OPEN QUERY Br_Orte FOR EACH Orte NO-LOCK INDEXED-REPOSITION.
  53. &Scoped-define TABLES-IN-QUERY-Br_Orte Orte
  54. &Scoped-define FIRST-TABLE-IN-QUERY-Br_Orte Orte
  55. /* Definitions for DIALOG-BOX gSuchenOrte */
  56. /* Standard List Definitions */
  57. &Scoped-Define ENABLED-OBJECTS F_Eingabe Br_Orte CB_Land RECT-1
  58. &Scoped-Define DISPLAYED-OBJECTS F_Eingabe CB_Land
  59. /* Custom List Definitions */
  60. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  61. /* _UIB-PREPROCESSOR-BLOCK-END */
  62. &ANALYZE-RESUME
  63. /* *********************** Control Definitions ********************** */
  64. /* Define a dialog box */
  65. /* Definitions of the field level widgets */
  66. DEFINE VARIABLE CB_Land AS CHARACTER FORMAT "X(256)":U
  67. LABEL "Land"
  68. VIEW-AS COMBO-BOX INNER-LINES 5
  69. LIST-ITEM-PAIRS "Item 1","Item 1"
  70. DROP-DOWN-LIST
  71. SIZE 35 BY 1
  72. BGCOLOR 15 NO-UNDO.
  73. DEFINE VARIABLE F_Eingabe AS CHARACTER FORMAT "X(256)":U
  74. LABEL "Fill 1"
  75. VIEW-AS FILL-IN
  76. SIZE 35 BY 1
  77. BGCOLOR 15 NO-UNDO.
  78. DEFINE RECTANGLE RECT-1
  79. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  80. SIZE 62.6 BY 13.48.
  81. /* Query definitions */
  82. &ANALYZE-SUSPEND
  83. DEFINE QUERY Br_Orte FOR
  84. Orte SCROLLING.
  85. &ANALYZE-RESUME
  86. /* Browse definitions */
  87. DEFINE BROWSE Br_Orte
  88. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Orte gSuchenOrte _STRUCTURED
  89. QUERY Br_Orte NO-LOCK DISPLAY
  90. Orte.Plz FORMAT "x(12)":U
  91. Orte.Ort FORMAT "x(40)":U
  92. ENABLE
  93. Orte.Plz
  94. Orte.Ort
  95. /* _UIB-CODE-BLOCK-END */
  96. &ANALYZE-RESUME
  97. WITH NO-ROW-MARKERS SEPARATORS SIZE 58 BY 9.43
  98. BGCOLOR 15 EXPANDABLE.
  99. /* ************************ Frame Definitions *********************** */
  100. DEFINE FRAME gSuchenOrte
  101. F_Eingabe AT ROW 3.19 COL 24 COLON-ALIGNED
  102. Br_Orte AT ROW 4.71 COL 4.2
  103. CB_Land AT ROW 1.67 COL 24 COLON-ALIGNED
  104. RECT-1 AT ROW 1.24 COL 2
  105. SPACE(0.99) SKIP(0.13)
  106. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  107. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  108. TITLE "Suchen nach Orten".
  109. /* *********************** Procedure Settings ************************ */
  110. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  111. /* Settings for THIS-PROCEDURE
  112. Type: SmartDialog
  113. Allow: Basic,Browse,DB-Fields,Query,Smart
  114. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  115. Other Settings: COMPILE
  116. */
  117. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  118. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gSuchenOrte
  119. /* ************************* Included-Libraries *********************** */
  120. {src/adm2/containr.i}
  121. /* _UIB-CODE-BLOCK-END */
  122. &ANALYZE-RESUME
  123. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  124. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  125. /* SETTINGS FOR DIALOG-BOX gSuchenOrte
  126. Custom */
  127. /* BROWSE-TAB Br_Orte F_Eingabe gSuchenOrte */
  128. ASSIGN
  129. FRAME gSuchenOrte:SCROLLABLE = FALSE
  130. FRAME gSuchenOrte:HIDDEN = TRUE.
  131. /* _RUN-TIME-ATTRIBUTES-END */
  132. &ANALYZE-RESUME
  133. /* Setting information for Queries and Browse Widgets fields */
  134. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Orte
  135. /* Query rebuild information for BROWSE Br_Orte
  136. _TblList = "AnaDat.Orte"
  137. _Options = "NO-LOCK INDEXED-REPOSITION"
  138. _FldNameList[1] > AnaDat.Orte.Plz
  139. "Orte.Plz" ? ? "character" ? ? ? ? ? ? yes ? no no ? yes no no "U" "" ""
  140. _FldNameList[2] > AnaDat.Orte.Ort
  141. "Orte.Ort" ? ? "character" ? ? ? ? ? ? yes ? no no ? yes no no "U" "" ""
  142. _Query is NOT OPENED
  143. */ /* BROWSE Br_Orte */
  144. &ANALYZE-RESUME
  145. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gSuchenOrte
  146. /* Query rebuild information for DIALOG-BOX gSuchenOrte
  147. _Options = "SHARE-LOCK"
  148. _Query is NOT OPENED
  149. */ /* DIALOG-BOX gSuchenOrte */
  150. &ANALYZE-RESUME
  151. /* ************************ Control Triggers ************************ */
  152. &Scoped-define SELF-NAME gSuchenOrte
  153. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gSuchenOrte gSuchenOrte
  154. ON END-ERROR OF FRAME gSuchenOrte /* Suchen nach Orten */
  155. DO:
  156. ipBeginn = ''.
  157. RUN ENDE.
  158. RETURN NO-APPLY.
  159. END.
  160. /* _UIB-CODE-BLOCK-END */
  161. &ANALYZE-RESUME
  162. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gSuchenOrte gSuchenOrte
  163. ON WINDOW-CLOSE OF FRAME gSuchenOrte /* Suchen nach Orten */
  164. DO:
  165. ipBeginn = ''.
  166. RUN ENDE.
  167. RETURN NO-APPLY.
  168. END.
  169. /* _UIB-CODE-BLOCK-END */
  170. &ANALYZE-RESUME
  171. &Scoped-define BROWSE-NAME Br_Orte
  172. &Scoped-define SELF-NAME Br_Orte
  173. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Orte gSuchenOrte
  174. ON END-ERROR OF Br_Orte IN FRAME gSuchenOrte
  175. DO:
  176. APPLY 'ENTRY' TO F_Eingabe IN FRAME {&FRAME-NAME}.
  177. RETURN NO-APPLY.
  178. END.
  179. /* _UIB-CODE-BLOCK-END */
  180. &ANALYZE-RESUME
  181. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Orte gSuchenOrte
  182. ON RETURN OF Br_Orte IN FRAME gSuchenOrte
  183. DO:
  184. IF NUM-RESULTS('{&BROWSE-NAME}') = ? THEN RETURN NO-APPLY.
  185. IF NUM-RESULTS('{&BROWSE-NAME}') = 0 THEN RETURN NO-APPLY.
  186. IF {&BROWSE-NAME}:NUM-SELECTED-ROWS = 0 THEN RETURN NO-APPLY.
  187. {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  188. ipBeginn = Ort.Lkz + CHR(01) + Ort.Plz + CHR(01) + Ort.Ort.
  189. RUN ENDE.
  190. END.
  191. /* _UIB-CODE-BLOCK-END */
  192. &ANALYZE-RESUME
  193. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Orte gSuchenOrte
  194. ON START-SEARCH OF Br_Orte IN FRAME gSuchenOrte
  195. DO:
  196. DEF VAR xx AS HANDLE.
  197. xx = {&BROWSE-NAME}:CURRENT-COLUMN.
  198. IF xx:NAME = 'Plz' THEN ipSort = 1.
  199. ELSE ipSort = 2.
  200. IF ipSort = 1 THEN F_Eingabe:LABEL = 'Plz'.
  201. IF ipSort = 2 THEN F_Eingabe:LABEL = 'Ort'.
  202. ipBeginn = ''.
  203. F_Eingabe = ''.
  204. APPLY 'END-SEARCH' TO BROWSE {&BROWSE-NAME}.
  205. RUN OPENQUERY.
  206. APPLY 'ENTRY' TO F_Eingabe.
  207. RETURN NO-APPLY.
  208. END.
  209. /* _UIB-CODE-BLOCK-END */
  210. &ANALYZE-RESUME
  211. &Scoped-define SELF-NAME CB_Land
  212. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Land gSuchenOrte
  213. ON VALUE-CHANGED OF CB_Land IN FRAME gSuchenOrte /* Land */
  214. DO:
  215. RUN OPENQUERY.
  216. END.
  217. /* _UIB-CODE-BLOCK-END */
  218. &ANALYZE-RESUME
  219. &Scoped-define SELF-NAME F_Eingabe
  220. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Eingabe gSuchenOrte
  221. ON CURSOR-DOWN OF F_Eingabe IN FRAME gSuchenOrte /* Fill 1 */
  222. DO:
  223. F_Eingabe:SCREEN-VALUE = ''.
  224. APPLY 'TAB' TO SELF.
  225. RETURN NO-APPLY.
  226. END.
  227. /* _UIB-CODE-BLOCK-END */
  228. &ANALYZE-RESUME
  229. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Eingabe gSuchenOrte
  230. ON RETURN OF F_Eingabe IN FRAME gSuchenOrte /* Fill 1 */
  231. DO:
  232. F_Eingabe:SCREEN-VALUE = ''.
  233. APPLY 'TAB' TO SELF.
  234. RETURN NO-APPLY.
  235. END.
  236. /* _UIB-CODE-BLOCK-END */
  237. &ANALYZE-RESUME
  238. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Eingabe gSuchenOrte
  239. ON VALUE-CHANGED OF F_Eingabe IN FRAME gSuchenOrte /* Fill 1 */
  240. DO:
  241. DO WITH FRAME {&FRAME-NAME}:
  242. ipBeginn = SELF:SCREEN-VALUE.
  243. F_Eingabe = ipBeginn.
  244. RUN OPENQUERY.
  245. APPLY 'END' TO F_Eingabe.
  246. END.
  247. RETURN NO-APPLY.
  248. END.
  249. /* _UIB-CODE-BLOCK-END */
  250. &ANALYZE-RESUME
  251. &UNDEFINE SELF-NAME
  252. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gSuchenOrte
  253. /* *************************** Main Block *************************** */
  254. SESSION:DATA-ENTRY-RETURN = TRUE.
  255. IF ipSort = 0 THEN ipSort = 1.
  256. IF ipSort > 2 THEN ipSort = 2.
  257. ipBeginn = ''.
  258. F_Eingabe = ''.
  259. {src/adm2/dialogmn.i}
  260. /* _UIB-CODE-BLOCK-END */
  261. &ANALYZE-RESUME
  262. /* ********************** Internal Procedures *********************** */
  263. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gSuchenOrte _ADM-CREATE-OBJECTS
  264. PROCEDURE adm-create-objects :
  265. /*------------------------------------------------------------------------------
  266. Purpose: Create handles for all SmartObjects used in this procedure.
  267. After SmartObjects are initialized, then SmartLinks are added.
  268. Parameters: <none>
  269. ------------------------------------------------------------------------------*/
  270. END PROCEDURE.
  271. /* _UIB-CODE-BLOCK-END */
  272. &ANALYZE-RESUME
  273. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE createObjects gSuchenOrte
  274. PROCEDURE createObjects :
  275. /*------------------------------------------------------------------------------
  276. Purpose: Super Override
  277. Parameters:
  278. Notes:
  279. ------------------------------------------------------------------------------*/
  280. CASE ipSort:
  281. WHEN 1 THEN F_Eingabe:LABEL IN FRAME {&FRAME-NAME} = 'Plz'.
  282. WHEN 2 THEN F_Eingabe:LABEL IN FRAME {&FRAME-NAME} = 'Ort'.
  283. END CASE.
  284. RUN SUPER.
  285. END PROCEDURE.
  286. /* _UIB-CODE-BLOCK-END */
  287. &ANALYZE-RESUME
  288. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gSuchenOrte _DEFAULT-DISABLE
  289. PROCEDURE disable_UI :
  290. /*------------------------------------------------------------------------------
  291. Purpose: DISABLE the User Interface
  292. Parameters: <none>
  293. Notes: Here we clean-up the user-interface by deleting
  294. dynamic widgets we have created and/or hide
  295. frames. This procedure is usually called when
  296. we are ready to "clean-up" after running.
  297. ------------------------------------------------------------------------------*/
  298. /* Hide all frames. */
  299. HIDE FRAME gSuchenOrte.
  300. END PROCEDURE.
  301. /* _UIB-CODE-BLOCK-END */
  302. &ANALYZE-RESUME
  303. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gSuchenOrte
  304. PROCEDURE enableObject :
  305. /*------------------------------------------------------------------------------
  306. Purpose: Super Override
  307. Parameters:
  308. Notes:
  309. ------------------------------------------------------------------------------*/
  310. RUN SUPER.
  311. RUN COMBO_Land ( INPUT CB_Land:HANDLE IN FRAME {&FRAME-NAME} ).
  312. CB_Land:SCREEN-VALUE = VLkz.
  313. {&BROWSE-NAME}:READ-ONLY = TRUE.
  314. RUN OPENQUERY.
  315. END PROCEDURE.
  316. /* _UIB-CODE-BLOCK-END */
  317. &ANALYZE-RESUME
  318. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gSuchenOrte _DEFAULT-ENABLE
  319. PROCEDURE enable_UI :
  320. /*------------------------------------------------------------------------------
  321. Purpose: ENABLE the User Interface
  322. Parameters: <none>
  323. Notes: Here we display/view/enable the widgets in the
  324. user-interface. In addition, OPEN all queries
  325. associated with each FRAME and BROWSE.
  326. These statements here are based on the "Other
  327. Settings" section of the widget Property Sheets.
  328. ------------------------------------------------------------------------------*/
  329. DISPLAY F_Eingabe CB_Land
  330. WITH FRAME gSuchenOrte.
  331. ENABLE F_Eingabe Br_Orte CB_Land RECT-1
  332. WITH FRAME gSuchenOrte.
  333. VIEW FRAME gSuchenOrte.
  334. {&OPEN-BROWSERS-IN-QUERY-gSuchenOrte}
  335. END PROCEDURE.
  336. /* _UIB-CODE-BLOCK-END */
  337. &ANALYZE-RESUME
  338. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gSuchenOrte
  339. PROCEDURE ENDE :
  340. /*------------------------------------------------------------------------------
  341. Purpose:
  342. Parameters: <none>
  343. Notes:
  344. ------------------------------------------------------------------------------*/
  345. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  346. RETURN NO-APPLY.
  347. END PROCEDURE.
  348. /* _UIB-CODE-BLOCK-END */
  349. &ANALYZE-RESUME
  350. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPENQUERY gSuchenOrte
  351. PROCEDURE OPENQUERY :
  352. /*------------------------------------------------------------------------------
  353. Purpose:
  354. Parameters: <none>
  355. Notes:
  356. ------------------------------------------------------------------------------*/
  357. IF NUM-RESULTS("{&BROWSE-NAME}") <> ? THEN CLOSE QUERY {&BROWSE-NAME}.
  358. VLkz = CB_Land:SCREEN-VALUE IN FRAME {&FRAME-NAME}.
  359. CASE ipSort:
  360. WHEN 1 THEN DO:
  361. OPEN QUERY {&BROWSE-NAME}
  362. FOR EACH Orte USE-INDEX Orte-k1
  363. WHERE Orte.Lkz = VLkz
  364. AND Orte.Plz BEGINS ipBeginn NO-LOCK.
  365. END.
  366. WHEN 2 THEN DO:
  367. OPEN QUERY {&BROWSE-NAME}
  368. FOR EACH Orte USE-INDEX Orte-k2
  369. WHERE Orte.Lkz = VLkz
  370. AND Orte.Ort BEGINS ipBeginn NO-LOCK.
  371. END.
  372. END CASE.
  373. ipBeginn = ''.
  374. DISPLAY F_Eingabe WITH FRAME {&FRAME-NAME}.
  375. END PROCEDURE.
  376. /* _UIB-CODE-BLOCK-END */
  377. &ANALYZE-RESUME