b-artstsuchen.w 28 KB

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