b-liefstsuche.w 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  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 B-table-Win
  8. /*------------------------------------------------------------------------
  9. File:
  10. Description: from BROWSER.W - Basic SmartBrowser Object Template
  11. Input Parameters:
  12. <none>
  13. Output Parameters:
  14. <none>
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress UIB. */
  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 VAdresse AS CHAR FORMAT "x(60)" NO-UNDO.
  28. DEF VAR SortierArt AS INT INIT 2.
  29. DEF VAR VSuchbe AS CHAR.
  30. DEF VAR QOpen AS LOG INIT FALSE NO-UNDO.
  31. DEF VAR VSuText AS CHAR FORMAT "x(20)" NO-UNDO.
  32. DEF VAR Vorhanden AS LOG INIT FALSE NO-UNDO.
  33. DEF VAR VKnr AS INT NO-UNDO.
  34. DEF VAR VROW_ID AS ROWID.
  35. DEF VAR XROW_ID AS ROWID.
  36. DEF VAR RROW_ID AS ROWID.
  37. DEF BUFFER BAdresse FOR Adresse.
  38. /* ---------- Globale Variablen ---------------------------------- */
  39. { v8/globvar.i" " " " "SHARED" }
  40. { v8/debivar.i " " " " "SHARED" }
  41. { v8/artivar.i " " " " "SHARED" }
  42. { v8/contvar.i " " " " "SHARED" }
  43. /* _UIB-CODE-BLOCK-END */
  44. &ANALYZE-RESUME
  45. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  46. /* ******************** Preprocessor Definitions ******************** */
  47. &Scoped-define PROCEDURE-TYPE SmartBrowser
  48. &Scoped-define DB-AWARE no
  49. &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target
  50. /* Name of first Frame and/or Browse and/or first Query */
  51. &Scoped-define FRAME-NAME F-Main
  52. &Scoped-define BROWSE-NAME br_table
  53. /* Internal Tables (found by Frame, Query & Browse Queries) */
  54. &Scoped-define INTERNAL-TABLES Liefst Adresse
  55. /* Define KEY-PHRASE in case it is used by any query. */
  56. &Scoped-define KEY-PHRASE TRUE
  57. /* Definitions for BROWSE br_table */
  58. &Scoped-define FIELDS-IN-QUERY-br_table Adresse.Knr VSuText @ VSuText ~
  59. VAdresse @ VAdresse
  60. &Scoped-define ENABLED-FIELDS-IN-QUERY-br_table
  61. &Scoped-define OPEN-QUERY-br_table OPEN QUERY br_table FOR EACH Liefst WHERE ~{&KEY-PHRASE} NO-LOCK, ~
  62. EACH Adresse WHERE Adresse.Firma = Liefst.Firma ~
  63. AND Adresse.Knr = Liefst.Knr NO-LOCK ~
  64. ~{&SORTBY-PHRASE}.
  65. &Scoped-define TABLES-IN-QUERY-br_table Liefst Adresse
  66. &Scoped-define FIRST-TABLE-IN-QUERY-br_table Liefst
  67. &Scoped-define SECOND-TABLE-IN-QUERY-br_table Adresse
  68. /* Definitions for FRAME F-Main */
  69. /* Standard List Definitions */
  70. &Scoped-Define ENABLED-OBJECTS br_table F_SortierArt F_Suchbe RECT-23
  71. &Scoped-Define DISPLAYED-OBJECTS F_SortierArt F_Suchbe
  72. /* Custom List Definitions */
  73. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  74. &Scoped-define List-1 F_SortierArt F_Suchbe
  75. /* _UIB-PREPROCESSOR-BLOCK-END */
  76. &ANALYZE-RESUME
  77. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" B-table-Win _INLINE
  78. /* Actions: ? adm/support/keyedit.w ? ? ? */
  79. /* STRUCTURED-DATA
  80. <KEY-OBJECT>
  81. &BROWSE-NAME
  82. </KEY-OBJECT>
  83. <FOREIGN-KEYS>
  84. Adrart||y|AnaDat.Adresse.Adrart
  85. Lkz||y|AnaDat.Adresse.Lkz
  86. Name||y|AnaDat.Adresse.Name
  87. Sprcd||y|AnaDat.Adresse.Sprcd
  88. Firma||y|AnaDat.Adresse.Firma
  89. </FOREIGN-KEYS>
  90. <EXECUTING-CODE>
  91. **************************
  92. * Set attributes related to FOREIGN KEYS
  93. */
  94. RUN set-attribute-list (
  95. 'Keys-Accepted = ,
  96. Keys-Supplied = "Adrart,Lkz,Name,Sprcd,Firma"':U).
  97. /* Tell the ADM to use the OPEN-QUERY-CASES. */
  98. &Scoped-define OPEN-QUERY-CASES RUN dispatch ('open-query-cases':U).
  99. /**************************
  100. </EXECUTING-CODE> */
  101. /* _UIB-CODE-BLOCK-END */
  102. &ANALYZE-RESUME
  103. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Advanced Query Options" B-table-Win _INLINE
  104. /* Actions: ? adm/support/advqedit.w ? ? ? */
  105. /* STRUCTURED-DATA
  106. <KEY-OBJECT>
  107. &BROWSE-NAME
  108. </KEY-OBJECT>
  109. <SORTBY-OPTIONS>
  110. </SORTBY-OPTIONS>
  111. <SORTBY-RUN-CODE>
  112. ************************
  113. * Set attributes related to SORTBY-OPTIONS */
  114. RUN set-attribute-list (
  115. 'SortBy-Options = ""':U).
  116. /************************
  117. </SORTBY-RUN-CODE>
  118. <FILTER-ATTRIBUTES>
  119. </FILTER-ATTRIBUTES> */
  120. /* _UIB-CODE-BLOCK-END */
  121. &ANALYZE-RESUME
  122. /* *********************** Control Definitions ********************** */
  123. /* Definitions of the field level widgets */
  124. DEFINE VARIABLE F_Suchbe AS CHARACTER FORMAT "X(20)":U
  125. VIEW-AS FILL-IN NATIVE
  126. SIZE 29.6 BY 1.05
  127. BGCOLOR 15 NO-UNDO.
  128. DEFINE VARIABLE F_SortierArt AS INTEGER INITIAL 1
  129. VIEW-AS RADIO-SET VERTICAL
  130. RADIO-BUTTONS
  131. "Kundennummer", 1,
  132. "Suchbegriff", 2,
  133. "Firma", 3,
  134. "Name", 4,
  135. "Ort", 5,
  136. "Match", 6
  137. SIZE 29.4 BY 4.76 NO-UNDO.
  138. DEFINE RECTANGLE RECT-23
  139. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  140. SIZE 120.2 BY 13.24.
  141. /* Query definitions */
  142. &ANALYZE-SUSPEND
  143. DEFINE QUERY br_table FOR
  144. Liefst,
  145. Adresse SCROLLING.
  146. &ANALYZE-RESUME
  147. /* Browse definitions */
  148. DEFINE BROWSE br_table
  149. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS br_table B-table-Win _STRUCTURED
  150. QUERY br_table NO-LOCK DISPLAY
  151. Adresse.Knr FORMAT "999999":U
  152. VSuText @ VSuText COLUMN-LABEL "Subegriff" FORMAT "x(15)":U
  153. VAdresse @ VAdresse COLUMN-LABEL "Adresse" FORMAT "x(55)":U
  154. /* _UIB-CODE-BLOCK-END */
  155. &ANALYZE-RESUME
  156. WITH NO-ASSIGN NO-ROW-MARKERS SEPARATORS SIZE 84.4 BY 13
  157. BGCOLOR 15 .
  158. /* ************************ Frame Definitions *********************** */
  159. DEFINE FRAME F-Main
  160. br_table AT ROW 1.24 COL 85.6 RIGHT-ALIGNED
  161. F_SortierArt AT ROW 2.05 COL 89 NO-LABEL
  162. F_Suchbe AT ROW 7.14 COL 87 COLON-ALIGNED NO-LABEL
  163. RECT-23 AT ROW 1.14 COL 1.2
  164. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  165. SIDE-LABELS NO-UNDERLINE THREE-D
  166. AT COL 1 ROW 1 SCROLLABLE .
  167. /* *********************** Procedure Settings ************************ */
  168. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  169. /* Settings for THIS-PROCEDURE
  170. Type: SmartBrowser
  171. Allow: Basic,Browse
  172. Frames: 1
  173. Add Fields to: EXTERNAL-TABLES
  174. Other Settings: PERSISTENT-ONLY COMPILE
  175. */
  176. /* This procedure should always be RUN PERSISTENT. Report the error, */
  177. /* then cleanup and return. */
  178. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  179. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  180. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  181. RETURN.
  182. END.
  183. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  184. /* ************************* Create Window ************************** */
  185. &ANALYZE-SUSPEND _CREATE-WINDOW
  186. /* DESIGN Window definition (used by the UIB)
  187. CREATE WINDOW B-table-Win ASSIGN
  188. HEIGHT = 14.43
  189. WIDTH = 124.2.
  190. /* END WINDOW DEFINITION */
  191. */
  192. &ANALYZE-RESUME
  193. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB B-table-Win
  194. /* ************************* Included-Libraries *********************** */
  195. {src/adm/method/browser.i}
  196. /* _UIB-CODE-BLOCK-END */
  197. &ANALYZE-RESUME
  198. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  199. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  200. /* SETTINGS FOR WINDOW B-table-Win
  201. NOT-VISIBLE,,RUN-PERSISTENT */
  202. /* SETTINGS FOR FRAME F-Main
  203. NOT-VISIBLE Size-to-Fit */
  204. /* BROWSE-TAB br_table 1 F-Main */
  205. ASSIGN
  206. FRAME F-Main:SCROLLABLE = FALSE
  207. FRAME F-Main:HIDDEN = TRUE.
  208. /* SETTINGS FOR BROWSE br_table IN FRAME F-Main
  209. ALIGN-R */
  210. ASSIGN
  211. br_table:MAX-DATA-GUESS IN FRAME F-Main = 500.
  212. /* SETTINGS FOR RADIO-SET F_SortierArt IN FRAME F-Main
  213. 1 */
  214. /* SETTINGS FOR FILL-IN F_Suchbe IN FRAME F-Main
  215. 1 */
  216. /* _RUN-TIME-ATTRIBUTES-END */
  217. &ANALYZE-RESUME
  218. /* Setting information for Queries and Browse Widgets fields */
  219. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE br_table
  220. /* Query rebuild information for BROWSE br_table
  221. _TblList = "AnaDat.Liefst,AnaDat.Adresse WHERE AnaDat.Liefst ..."
  222. _Options = "NO-LOCK KEY-PHRASE SORTBY-PHRASE"
  223. _JoinCode[2] = "Adresse.Firma = Liefst.Firma
  224. AND Adresse.Knr = Liefst.Knr"
  225. _FldNameList[1] = AnaDat.Adresse.Knr
  226. _FldNameList[2] > "_<CALC>"
  227. "VSuText @ VSuText" "Subegriff" "x(15)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" ""
  228. _FldNameList[3] > "_<CALC>"
  229. "VAdresse @ VAdresse" "Adresse" "x(55)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" ""
  230. _Query is NOT OPENED
  231. */ /* BROWSE br_table */
  232. &ANALYZE-RESUME
  233. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  234. /* Query rebuild information for FRAME F-Main
  235. _Options = "NO-LOCK"
  236. _Query is NOT OPENED
  237. */ /* FRAME F-Main */
  238. &ANALYZE-RESUME
  239. /* ************************ Control Triggers ************************ */
  240. &Scoped-define SELF-NAME F-Main
  241. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F-Main B-table-Win
  242. ON END-ERROR OF FRAME F-Main
  243. DO:
  244. RUN new-state ( INPUT 'CANCEL, MAIN':U ).
  245. END.
  246. /* _UIB-CODE-BLOCK-END */
  247. &ANALYZE-RESUME
  248. &Scoped-define BROWSE-NAME br_table
  249. &Scoped-define SELF-NAME br_table
  250. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  251. ON END-ERROR OF br_table IN FRAME F-Main
  252. DO:
  253. RUN new-state ( INPUT 'CANCEL, MAIN':U ).
  254. END.
  255. /* _UIB-CODE-BLOCK-END */
  256. &ANALYZE-RESUME
  257. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  258. ON ROW-DISPLAY OF br_table IN FRAME F-Main
  259. DO:
  260. RUN ANZEIGE.
  261. END.
  262. /* _UIB-CODE-BLOCK-END */
  263. &ANALYZE-RESUME
  264. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  265. ON VALUE-CHANGED OF br_table IN FRAME F-Main
  266. DO:
  267. {src/adm/template/brschnge.i}
  268. RUN ANZEIGE.
  269. END.
  270. /* _UIB-CODE-BLOCK-END */
  271. &ANALYZE-RESUME
  272. &Scoped-define SELF-NAME F_SortierArt
  273. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_SortierArt B-table-Win
  274. ON END-ERROR OF F_SortierArt IN FRAME F-Main
  275. DO:
  276. RUN new-state ( INPUT 'CANCEL, MAIN':U ).
  277. END.
  278. /* _UIB-CODE-BLOCK-END */
  279. &ANALYZE-RESUME
  280. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_SortierArt B-table-Win
  281. ON VALUE-CHANGED OF F_SortierArt IN FRAME F-Main
  282. DO:
  283. {&BROWSE-NAME}:REFRESH().
  284. APPLY 'ENTRY' TO F_Suchbe IN FRAME {&FRAME-NAME}.
  285. RETURN NO-APPLY.
  286. END.
  287. /* _UIB-CODE-BLOCK-END */
  288. &ANALYZE-RESUME
  289. &Scoped-define SELF-NAME F_Suchbe
  290. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Suchbe B-table-Win
  291. ON END-ERROR OF F_Suchbe IN FRAME F-Main
  292. DO:
  293. RUN new-state ( INPUT 'CANCEL, MAIN':U ).
  294. END.
  295. /* _UIB-CODE-BLOCK-END */
  296. &ANALYZE-RESUME
  297. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Suchbe B-table-Win
  298. ON RETURN OF F_Suchbe IN FRAME F-Main
  299. DO:
  300. RUN dispatch IN THIS-PROCEDURE ('assign-statement':U).
  301. RUN dispatch IN THIS-PROCEDURE ('open-query':U).
  302. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  303. RETURN NO-APPLY.
  304. END.
  305. /* _UIB-CODE-BLOCK-END */
  306. &ANALYZE-RESUME
  307. &UNDEFINE SELF-NAME
  308. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK B-table-Win
  309. /* *************************** Main Block *************************** */
  310. RUN SUCHEN.
  311. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  312. RUN dispatch IN THIS-PROCEDURE ('initialize':U).
  313. &ENDIF
  314. ON RETURN OF BROWSE {&BROWSE-NAME}
  315. OR LEFT-MOUSE-DBLCLICK OF BROWSE {&BROWSE-NAME}
  316. DO:
  317. DO WITH FRAME {&FRAME-NAME}:
  318. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN RETURN.
  319. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN RETURN.
  320. {&BROWSE-NAME}:SELECT-FOCUSED-ROW().
  321. {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  322. LVSuchbe = STRING(Adresse.Knr,"999999").
  323. Gefunden = TRUE.
  324. RUN new-state ( INPUT 'GO, MAIN':U ).
  325. RETURN NO-APPLY.
  326. END.
  327. END.
  328. /* _UIB-CODE-BLOCK-END */
  329. &ANALYZE-RESUME
  330. /* ********************** Internal Procedures *********************** */
  331. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-open-query-cases B-table-Win adm/support/_adm-opn.p
  332. PROCEDURE adm-open-query-cases :
  333. /*------------------------------------------------------------------------------
  334. Purpose: Opens different cases of the query based on attributes
  335. such as the 'Key-Name', or 'SortBy-Case'
  336. Parameters: <none>
  337. ------------------------------------------------------------------------------*/
  338. /* No Foreign keys are accepted by this SmartObject. */
  339. {&OPEN-QUERY-{&BROWSE-NAME}}
  340. END PROCEDURE.
  341. /* _UIB-CODE-BLOCK-END */
  342. &ANALYZE-RESUME
  343. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available B-table-Win _ADM-ROW-AVAILABLE
  344. PROCEDURE adm-row-available :
  345. /*------------------------------------------------------------------------------
  346. Purpose: Dispatched to this procedure when the Record-
  347. Source has a new row available. This procedure
  348. tries to get the new row (or foriegn keys) from
  349. the Record-Source and process it.
  350. Parameters: <none>
  351. ------------------------------------------------------------------------------*/
  352. /* Define variables needed by this internal procedure. */
  353. {src/adm/template/row-head.i}
  354. /* Process the newly available records (i.e. display fields,
  355. open queries, and/or pass records on to any RECORD-TARGETS). */
  356. {src/adm/template/row-end.i}
  357. END PROCEDURE.
  358. /* _UIB-CODE-BLOCK-END */
  359. &ANALYZE-RESUME
  360. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANZEIGE B-table-Win
  361. PROCEDURE ANZEIGE :
  362. /*------------------------------------------------------------------------------
  363. Purpose:
  364. Parameters: <none>
  365. Notes:
  366. ------------------------------------------------------------------------------*/
  367. VAdresse = ''.
  368. VSuText = ''.
  369. IF NOT AVAILABLE Adresse THEN RETURN.
  370. CASE F_SortierArt:
  371. WHEN 2 THEN VSuText = Adresse.Suchbe.
  372. WHEN 3 THEN VSuText = Adresse.Firma1.
  373. WHEN 4 THEN VSuText = Adresse.Name.
  374. WHEN 5 THEN VSuText = Adresse.Ort.
  375. END CASE.
  376. IF Adresse.Firma1 <> '' THEN DO:
  377. IF VAdresse <> '' THEN VAdresse = VAdresse + ', '.
  378. VAdresse = VAdresse + Adresse.Firma1.
  379. END.
  380. IF Adresse.Firma2 <> '' THEN DO:
  381. IF VAdresse <> '' THEN VAdresse = VAdresse + ', '.
  382. VAdresse = VAdresse + Adresse.Firma2.
  383. END.
  384. IF Adresse.Name <> '' THEN DO:
  385. IF VAdresse <> '' THEN VAdresse = VAdresse + ', '.
  386. VAdresse = VAdresse + Adresse.Name .
  387. END.
  388. IF Adresse.Strasse <> '' THEN DO:
  389. IF VAdresse <> '' THEN VAdresse = VAdresse + ', '.
  390. VAdresse = VAdresse + Adresse.Strasse.
  391. END.
  392. IF VAdresse <> '' THEN VAdresse = VAdresse + ', '.
  393. VAdresse = VAdresse + Adresse.Plz + ' ' + Adresse.Ort.
  394. IF NOT Adresse.Aktiv THEN DO:
  395. Adresse.Knr:BGCOLOR IN BROWSE {&BROWSE-NAME} = 12.
  396. VSuText:BGCOLOR IN BROWSE {&BROWSE-NAME} = 12.
  397. VAdresse:BGCOLOR IN BROWSE {&BROWSE-NAME} = 12.
  398. END.
  399. END PROCEDURE.
  400. /* _UIB-CODE-BLOCK-END */
  401. &ANALYZE-RESUME
  402. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI B-table-Win _DEFAULT-DISABLE
  403. PROCEDURE disable_UI :
  404. /*------------------------------------------------------------------------------
  405. Purpose: DISABLE the User Interface
  406. Parameters: <none>
  407. Notes: Here we clean-up the user-interface by deleting
  408. dynamic widgets we have created and/or hide
  409. frames. This procedure is usually called when
  410. we are ready to "clean-up" after running.
  411. ------------------------------------------------------------------------------*/
  412. /* Hide all frames. */
  413. HIDE FRAME F-Main.
  414. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  415. END PROCEDURE.
  416. /* _UIB-CODE-BLOCK-END */
  417. &ANALYZE-RESUME
  418. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-assign-statement B-table-Win
  419. PROCEDURE local-assign-statement :
  420. /*------------------------------------------------------------------------------
  421. Purpose: Override standard ADM method
  422. Notes:
  423. ------------------------------------------------------------------------------*/
  424. DO WITH FRAME {&FRAME-NAME}:
  425. ASSIGN {&List-1}.
  426. SortierArt = F_SortierArt.
  427. END.
  428. END PROCEDURE.
  429. /* _UIB-CODE-BLOCK-END */
  430. &ANALYZE-RESUME
  431. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize B-table-Win
  432. PROCEDURE local-initialize :
  433. /*------------------------------------------------------------------------------
  434. Purpose: Override standard ADM method
  435. Notes:
  436. ------------------------------------------------------------------------------*/
  437. RUN SUCHEN.
  438. RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) .
  439. END PROCEDURE.
  440. /* _UIB-CODE-BLOCK-END */
  441. &ANALYZE-RESUME
  442. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-open-query B-table-Win
  443. PROCEDURE local-open-query :
  444. /*------------------------------------------------------------------------------
  445. Purpose: Override standard ADM method
  446. Notes:
  447. ------------------------------------------------------------------------------*/
  448. DEF VAR VLang AS INT NO-UNDO.
  449. IF QOpen THEN CLOSE QUERY {&BROWSE-NAME}.
  450. Vorhanden = FALSE.
  451. CASE SortierArt:
  452. WHEN 1 THEN DO:
  453. VKnr = INTEGER(F_Suchbe).
  454. OPEN QUERY {&BROWSE-NAME}
  455. FOR EACH Liefst USE-INDEX Liefst-k1
  456. WHERE Liefst.Firma = GVFirma
  457. AND Liefst.Knr >= VKnr
  458. AND Liefst.Aktiv = TRUE NO-LOCK,
  459. FIRST Adresse USE-INDEX Adresse-k1
  460. WHERE Adresse.Firma = AdFirma
  461. AND Adresse.Knr = Liefst.Knr
  462. AND Adresse.Aktiv = TRUE NO-LOCK
  463. BY Adresse.Knr.
  464. END.
  465. WHEN 2 THEN DO:
  466. VSuchbe = TRIM(F_Suchbe).
  467. OPEN QUERY {&BROWSE-NAME}
  468. FOR EACH Liefst USE-INDEX Liefst-k1
  469. WHERE Liefst.Firma = GVFirma
  470. AND Liefst.Aktiv = TRUE NO-LOCK,
  471. FIRST Adresse USE-INDEX Adresse-k1
  472. WHERE Adresse.Firma = AdFirma
  473. AND Adresse.Knr = Liefst.Knr
  474. AND Adresse.Suchbe >= VSuchbe
  475. AND Adresse.Aktiv = TRUE NO-LOCK
  476. BY Adresse.Suchbe
  477. BY Adresse.Knr.
  478. END.
  479. WHEN 3 THEN DO:
  480. VSuchbe = TRIM(F_Suchbe).
  481. OPEN QUERY {&BROWSE-NAME}
  482. FOR EACH Liefst USE-INDEX Liefst-k1
  483. WHERE Liefst.Firma = GVFirma
  484. AND Liefst.Aktiv = TRUE NO-LOCK,
  485. FIRST Adresse USE-INDEX Adresse-k1
  486. WHERE Adresse.Firma = AdFirma
  487. AND Adresse.Knr = Liefst.Knr
  488. AND Adresse.Firma1 >= VSuchbe
  489. AND Adresse.Aktiv = TRUE NO-LOCK
  490. BY Adresse.Firma1
  491. BY Adresse.Knr.
  492. END.
  493. WHEN 4 THEN DO:
  494. VSuchbe = TRIM(F_Suchbe).
  495. OPEN QUERY {&BROWSE-NAME}
  496. FOR EACH Liefst USE-INDEX Liefst-k1
  497. WHERE Liefst.Firma = GVFirma
  498. AND Liefst.Aktiv = TRUE NO-LOCK,
  499. FIRST Adresse USE-INDEX Adresse-k1
  500. WHERE Adresse.Firma = AdFirma
  501. AND Adresse.Knr = Liefst.Knr
  502. AND Adresse.Name >= VSuchbe
  503. AND Adresse.Aktiv = TRUE NO-LOCK
  504. BY Adresse.Name
  505. BY Adresse.Knr.
  506. END.
  507. WHEN 5 THEN DO:
  508. VSuchbe = TRIM(F_Suchbe).
  509. OPEN QUERY {&BROWSE-NAME}
  510. FOR EACH Liefst USE-INDEX Liefst-k1
  511. WHERE Liefst.Firma = GVFirma
  512. AND Liefst.Aktiv = TRUE NO-LOCK,
  513. FIRST Adresse USE-INDEX Adresse-k1
  514. WHERE Adresse.Firma = AdFirma
  515. AND Adresse.Knr = Liefst.Knr
  516. AND Adresse.Ort >= VSuchbe
  517. AND Adresse.Aktiv = TRUE NO-LOCK
  518. BY Adresse.Ort
  519. BY Adresse.Suchbe
  520. BY Adresse.Knr.
  521. END.
  522. WHEN 6 THEN DO:
  523. VSuchbe = TRIM(F_Suchbe).
  524. IF SUBSTRING(VSuchbe,01,01) <> '*' AND
  525. SUBSTRING(VSuchbe,01,01) <> '.' THEN VSuchbe = "*" + VSuchbe.
  526. VLang = LENGTH(VSuchbe).
  527. IF SUBSTRING(VSuchbe,VLang,01) <> '*' AND
  528. SUBSTRING(VSuchbe,VLang,01) <> '.' THEN VSuchbe = VSuchbe + "*".
  529. F_Suchbe = VSuchbe.
  530. DISPLAY F_Suchbe WITH FRAME {&FRAME-NAME}.
  531. OPEN QUERY {&BROWSE-NAME}
  532. FOR EACH Liefst USE-INDEX Liefst-k1
  533. WHERE Liefst.Firma = GVFirma
  534. AND Liefst.Aktiv = TRUE NO-LOCK,
  535. FIRST Adresse USE-INDEX Adresse-k1
  536. WHERE Adresse.Firma = AdFirma
  537. AND Adresse.Knr = Liefst.Knr
  538. AND ((Adresse.Firma1 MATCHES VSuchbe) OR
  539. (Adresse.Firma2 MATCHES VSuchbe) OR
  540. (Adresse.Name MATCHES VSuchbe) OR
  541. (Adresse.Vorname MATCHES VSuchbe) OR
  542. (Adresse.Zusatz1 MATCHES VSuchbe))
  543. AND Adresse.Aktiv = TRUE NO-LOCK
  544. BY Adresse.Knr.
  545. END.
  546. END. /* CASE */
  547. APPLY 'VALUE-CHANGED' TO BROWSE {&BROWSE-NAME}.
  548. QOpen = TRUE.
  549. RETURN NO-APPLY.
  550. END PROCEDURE.
  551. /* _UIB-CODE-BLOCK-END */
  552. &ANALYZE-RESUME
  553. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view B-table-Win
  554. PROCEDURE local-view :
  555. /*------------------------------------------------------------------------------
  556. Purpose: Override standard ADM method
  557. Notes:
  558. ------------------------------------------------------------------------------*/
  559. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
  560. DISPLAY {&List-1} WITH FRAME {&FRAME-NAME}.
  561. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  562. END PROCEDURE.
  563. /* _UIB-CODE-BLOCK-END */
  564. &ANALYZE-RESUME
  565. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-key B-table-Win adm/support/_key-snd.p
  566. PROCEDURE send-key :
  567. /*------------------------------------------------------------------------------
  568. Purpose: Sends a requested KEY value back to the calling
  569. SmartObject.
  570. Parameters: <see adm/template/sndkytop.i>
  571. ------------------------------------------------------------------------------*/
  572. /* Define variables needed by this internal procedure. */
  573. {src/adm/template/sndkytop.i}
  574. /* Return the key value associated with each key case. */
  575. {src/adm/template/sndkycas.i "Adrart" "Adresse" "Adrart"}
  576. {src/adm/template/sndkycas.i "Lkz" "Adresse" "Lkz"}
  577. {src/adm/template/sndkycas.i "Name" "Adresse" "Name"}
  578. {src/adm/template/sndkycas.i "Sprcd" "Adresse" "Sprcd"}
  579. {src/adm/template/sndkycas.i "Firma" "Adresse" "Firma"}
  580. /* Close the CASE statement and end the procedure. */
  581. {src/adm/template/sndkyend.i}
  582. END PROCEDURE.
  583. /* _UIB-CODE-BLOCK-END */
  584. &ANALYZE-RESUME
  585. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records B-table-Win _ADM-SEND-RECORDS
  586. PROCEDURE send-records :
  587. /*------------------------------------------------------------------------------
  588. Purpose: Send record ROWID's for all tables used by
  589. this file.
  590. Parameters: see template/snd-head.i
  591. ------------------------------------------------------------------------------*/
  592. /* Define variables needed by this internal procedure. */
  593. {src/adm/template/snd-head.i}
  594. /* For each requested table, put it's ROWID in the output list. */
  595. {src/adm/template/snd-list.i "Liefst"}
  596. {src/adm/template/snd-list.i "Adresse"}
  597. /* Deal with any unexpected table requests before closing. */
  598. {src/adm/template/snd-end.i}
  599. END PROCEDURE.
  600. /* _UIB-CODE-BLOCK-END */
  601. &ANALYZE-RESUME
  602. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed B-table-Win
  603. PROCEDURE state-changed :
  604. /* -----------------------------------------------------------
  605. Purpose:
  606. Parameters: <none>
  607. Notes:
  608. -------------------------------------------------------------*/
  609. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  610. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  611. DO WITH FRAME {&FRAME-NAME}:
  612. CASE p-state:
  613. WHEN 'entry_browse' THEN DO:
  614. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  615. RETURN NO-APPLY.
  616. END.
  617. {src/adm/template/bstates.i}
  618. END CASE.
  619. END.
  620. END PROCEDURE.
  621. /* _UIB-CODE-BLOCK-END */
  622. &ANALYZE-RESUME
  623. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUCHEN B-table-Win
  624. PROCEDURE SUCHEN :
  625. /*------------------------------------------------------------------------------
  626. Purpose:
  627. Parameters: <none>
  628. Notes:
  629. ------------------------------------------------------------------------------*/
  630. IF LVSort < 1 THEN LVSort = 2.
  631. IF LVSort > 6 THEN LVSort = 6.
  632. SortierArt = LVSort.
  633. F_SortierArt = LVSort.
  634. F_Suchbe = LVSuchbe.
  635. VSuchbe = LVSuchbe.
  636. END PROCEDURE.
  637. /* _UIB-CODE-BLOCK-END */
  638. &ANALYZE-RESUME