d-savko.w 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678
  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. {adecomm/appserv.i}
  8. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS dTables
  9. /*------------------------------------------------------------------------
  10. File:
  11. Description: from DATA.W - Template For SmartData objects in the ADM
  12. Input Parameters:
  13. <none>
  14. Output Parameters:
  15. <none>
  16. Modified: February 24, 1999
  17. ------------------------------------------------------------------------*/
  18. /* This .W file was created with the Progress AppBuilder. */
  19. /*----------------------------------------------------------------------*/
  20. /* Create an unnamed pool to store all the widgets created
  21. by this procedure. This is a good default which assures
  22. that this procedure's triggers and internal procedures
  23. will execute in this procedure's storage, and that proper
  24. cleanup will occur on deletion of the procedure. */
  25. CREATE WIDGET-POOL.
  26. /* *************************** Definitions ************************** */
  27. /* Parameters Definitions --- */
  28. /* Local Variable Definitions --- */
  29. DEF VAR iFaknr AS INT NO-UNDO.
  30. DEF VAR iKnr AS INT NO-UNDO.
  31. DEF VAR iAufnr AS INT NO-UNDO.
  32. DEF VAR lSelected AS LOG INIT FALSE NO-UNDO.
  33. &SCOPED-DEFINE Tabelle Savko
  34. &SCOPED-DEFINE TabWhere /* USE-INDEX Benutzer-k1 ~
  35. WHERE {&Tabelle}.Benutzer = tRowObject.Benutzer
  36. */
  37. { incl/datdefinition.i }
  38. /* _UIB-CODE-BLOCK-END */
  39. &ANALYZE-RESUME
  40. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  41. /* ******************** Preprocessor Definitions ******************** */
  42. &Global-define DATA-LOGIC-PROCEDURE .p
  43. &Scoped-define PROCEDURE-TYPE SmartDataObject
  44. &Scoped-define DB-AWARE yes
  45. &Scoped-define ADM-SUPPORTED-LINKS Data-Source,Data-Target,Navigation-Target,Update-Target,Commit-Target,Filter-Target
  46. /* Db-Required definitions. */
  47. &IF DEFINED(DB-REQUIRED) = 0 &THEN
  48. &GLOBAL-DEFINE DB-REQUIRED TRUE
  49. &ENDIF
  50. &GLOBAL-DEFINE DB-REQUIRED-START &IF {&DB-REQUIRED} &THEN
  51. &GLOBAL-DEFINE DB-REQUIRED-END &ENDIF
  52. &Scoped-define QUERY-NAME Query-Main
  53. /* Internal Tables (found by Frame, Query & Browse Queries) */
  54. &Scoped-define INTERNAL-TABLES SavKo
  55. /* Definitions for QUERY Query-Main */
  56. &Scoped-Define ENABLED-FIELDS Firma Aufnr Faknr Knr Fak_Art Fak_Datum Auf_Tot U_Ref Auf_Datum Lief_Datum~
  57. Kunde lGeliefert
  58. &Scoped-define ENABLED-FIELDS-IN-SavKo Firma Aufnr Faknr Knr Fak_Art ~
  59. Fak_Datum Auf_Tot U_Ref Auf_Datum Lief_Datum lGeliefert
  60. &Scoped-Define DATA-FIELDS Firma Aufnr Faknr Knr Fak_Art Fak_Datum Auf_Tot U_Ref Auf_Datum Lief_Datum~
  61. Kunde lGeliefert
  62. &Scoped-define DATA-FIELDS-IN-SavKo Firma Aufnr Faknr Knr Fak_Art Fak_Datum ~
  63. Auf_Tot U_Ref Auf_Datum Lief_Datum lGeliefert
  64. &Scoped-Define MANDATORY-FIELDS Firma Knr
  65. &Scoped-Define APPLICATION-SERVICE
  66. &Scoped-Define ASSIGN-LIST
  67. &Scoped-Define DATA-FIELD-DEFS "d-savko.i"
  68. &Scoped-Define DATA-TABLE-NO-UNDO NO-UNDO
  69. &Scoped-define QUERY-STRING-Query-Main FOR EACH SavKo NO-LOCK INDEXED-REPOSITION
  70. {&DB-REQUIRED-START}
  71. &Scoped-define OPEN-QUERY-Query-Main OPEN QUERY Query-Main FOR EACH SavKo NO-LOCK INDEXED-REPOSITION.
  72. {&DB-REQUIRED-END}
  73. &Scoped-define TABLES-IN-QUERY-Query-Main SavKo
  74. &Scoped-define FIRST-TABLE-IN-QUERY-Query-Main SavKo
  75. /* Custom List Definitions */
  76. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  77. /* _UIB-PREPROCESSOR-BLOCK-END */
  78. &ANALYZE-RESUME
  79. /* ************************ Function Prototypes ********************** */
  80. {&DB-REQUIRED-START}
  81. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getCurrentRecid dTables _DB-REQUIRED
  82. FUNCTION getCurrentRecid RETURNS RECID
  83. ( /* parameter-definitions */ ) FORWARD.
  84. /* _UIB-CODE-BLOCK-END */
  85. &ANALYZE-RESUME
  86. {&DB-REQUIRED-END}
  87. {&DB-REQUIRED-START}
  88. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getQueryBuffer dTables _DB-REQUIRED
  89. FUNCTION getQueryBuffer RETURNS HANDLE
  90. ( /* parameter-definitions */ ) FORWARD.
  91. /* _UIB-CODE-BLOCK-END */
  92. &ANALYZE-RESUME
  93. {&DB-REQUIRED-END}
  94. {&DB-REQUIRED-START}
  95. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD openQuery dTables _DB-REQUIRED
  96. FUNCTION openQuery RETURNS LOGICAL
  97. ( /* parameter-definitions */ ) FORWARD.
  98. /* _UIB-CODE-BLOCK-END */
  99. &ANALYZE-RESUME
  100. {&DB-REQUIRED-END}
  101. {&DB-REQUIRED-START}
  102. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setSelectedSavko dTables _DB-REQUIRED
  103. FUNCTION setSelectedSavko RETURNS LOGICAL
  104. ( ipRecid AS RECID, ipFaknr AS INT, ipKnr AS INT, ipAufnr AS INT ) FORWARD.
  105. /* _UIB-CODE-BLOCK-END */
  106. &ANALYZE-RESUME
  107. {&DB-REQUIRED-END}
  108. /* *********************** Control Definitions ********************** */
  109. {&DB-REQUIRED-START}
  110. /* Query definitions */
  111. &ANALYZE-SUSPEND
  112. DEFINE QUERY Query-Main FOR
  113. SavKo SCROLLING.
  114. &ANALYZE-RESUME
  115. {&DB-REQUIRED-END}
  116. /* ************************ Frame Definitions *********************** */
  117. /* *********************** Procedure Settings ************************ */
  118. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  119. /* Settings for THIS-PROCEDURE
  120. Type: SmartDataObject
  121. Allow: Query
  122. Frames: 0
  123. Add Fields to: Neither
  124. Other Settings: PERSISTENT-ONLY COMPILE APPSERVER DB-AWARE
  125. */
  126. /* This procedure should always be RUN PERSISTENT. Report the error, */
  127. /* then cleanup and return. */
  128. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  129. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  130. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  131. RETURN.
  132. END.
  133. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  134. /* ************************* Create Window ************************** */
  135. &ANALYZE-SUSPEND _CREATE-WINDOW
  136. /* DESIGN Window definition (used by the UIB)
  137. CREATE WINDOW dTables ASSIGN
  138. HEIGHT = 1.62
  139. WIDTH = 70.4.
  140. /* END WINDOW DEFINITION */
  141. */
  142. &ANALYZE-RESUME
  143. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB dTables
  144. /* ************************* Included-Libraries *********************** */
  145. {src/adm2/data.i}
  146. /* _UIB-CODE-BLOCK-END */
  147. &ANALYZE-RESUME
  148. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  149. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  150. /* SETTINGS FOR WINDOW dTables
  151. VISIBLE,,RUN-PERSISTENT */
  152. /* _RUN-TIME-ATTRIBUTES-END */
  153. &ANALYZE-RESUME
  154. /* Setting information for Queries and Browse Widgets fields */
  155. &ANALYZE-SUSPEND _QUERY-BLOCK QUERY Query-Main
  156. /* Query rebuild information for SmartDataObject Query-Main
  157. _TblList = "AnaDat.SavKo"
  158. _Options = "NO-LOCK INDEXED-REPOSITION"
  159. _FldNameList[1] > AnaDat.SavKo.Firma
  160. "Firma" "Firma" ? ? "character" ? ? ? ? ? ? yes ? yes 8 yes ?
  161. _FldNameList[2] > AnaDat.SavKo.Aufnr
  162. "Aufnr" "Aufnr" ? ? "integer" ? ? ? ? ? ? yes ? no 7.2 yes ?
  163. _FldNameList[3] > AnaDat.SavKo.Faknr
  164. "Faknr" "Faknr" ? ? "integer" ? ? ? ? ? ? yes ? no 7.2 yes ?
  165. _FldNameList[4] > AnaDat.SavKo.Knr
  166. "Knr" "Knr" ? ? "integer" ? ? ? ? ? ? yes ? yes 7.2 yes ?
  167. _FldNameList[5] > AnaDat.SavKo.Fak_Art
  168. "Fak_Art" "Fak_Art" "Art" ? "integer" ? ? ? ? ? ? yes ? no 7.4 yes ?
  169. _FldNameList[6] > AnaDat.SavKo.Fak_Datum
  170. "Fak_Datum" "Fak_Datum" "Fakt. Datum" ? "date" ? ? ? ? ? ? yes ? no 11 yes ?
  171. _FldNameList[7] > AnaDat.SavKo.Auf_Tot
  172. "Auf_Tot" "Auf_Tot" "Auftr. Total" ? "decimal" ? ? ? ? ? ? yes ? no 14 yes ?
  173. _FldNameList[8] > AnaDat.SavKo.U_Ref
  174. "U_Ref" "U_Ref" "Uns. Referenz" ? "character" ? ? ? ? ? ? yes ? no 20 yes ?
  175. _FldNameList[9] > AnaDat.SavKo.Auf_Datum
  176. "Auf_Datum" "Auf_Datum" "Auftr. Datum" ? "date" ? ? ? ? ? ? yes ? no 10.8 yes ?
  177. _FldNameList[10] > AnaDat.SavKo.Lief_Datum
  178. "Lief_Datum" "Lief_Datum" "Lief. Datum" ? "date" ? ? ? ? ? ? yes ? no 10.8 yes ?
  179. _FldNameList[11] > "_<CALC>"
  180. "DYNAMIC-FUNCTION('getAdressAnzeige':U, RowObject.Knr)" "Kunde" "Kunde" "x(60)" "character" ? ? ? ? ? ? yes ? no 60 no ?
  181. _FldNameList[12] > AnaDat.SavKo.lGeliefert
  182. "lGeliefert" "lGeliefert" ? ? "logical" ? ? ? ? ? ? yes ? no 8.2 yes ?
  183. _Design-Parent is WINDOW dTables @ ( 1.14 , 2.6 )
  184. */ /* QUERY Query-Main */
  185. &ANALYZE-RESUME
  186. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK dTables
  187. /* *************************** Main Block *************************** */
  188. { incl/datmainblock.i }
  189. fDesc = TRUE.
  190. cSort = 'Fak_Datum'.
  191. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  192. RUN initializeObject.
  193. &ENDIF
  194. /* _UIB-CODE-BLOCK-END */
  195. &ANALYZE-RESUME
  196. /* ********************** Internal Procedures *********************** */
  197. {&DB-REQUIRED-START}
  198. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DATA.CALCULATE dTables DATA.CALCULATE _DB-REQUIRED
  199. PROCEDURE DATA.CALCULATE :
  200. /*------------------------------------------------------------------------------
  201. Purpose: Calculate all the Calculated Expressions found in the
  202. SmartDataObject.
  203. Parameters: <none>
  204. ------------------------------------------------------------------------------*/
  205. ASSIGN
  206. rowObject.Kunde = (DYNAMIC-FUNCTION('getAdressAnzeige':U, RowObject.Knr))
  207. .
  208. END PROCEDURE.
  209. /* _UIB-CODE-BLOCK-END */
  210. &ANALYZE-RESUME
  211. {&DB-REQUIRED-END}
  212. {&DB-REQUIRED-START}
  213. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE dataAvailable dTables _DB-REQUIRED
  214. PROCEDURE dataAvailable :
  215. /*------------------------------------------------------------------------------
  216. Purpose: Super Override
  217. Parameters:
  218. Notes:
  219. ------------------------------------------------------------------------------*/
  220. { incl/datdataavailable.i }
  221. END PROCEDURE.
  222. /* _UIB-CODE-BLOCK-END */
  223. &ANALYZE-RESUME
  224. {&DB-REQUIRED-END}
  225. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI dTables _DEFAULT-DISABLE
  226. PROCEDURE disable_UI :
  227. /*------------------------------------------------------------------------------
  228. Purpose: DISABLE the User Interface
  229. Parameters: <none>
  230. Notes: Here we clean-up the user-interface by deleting
  231. dynamic widgets we have created and/or hide
  232. frames. This procedure is usually called when
  233. we are ready to "clean-up" after running.
  234. ------------------------------------------------------------------------------*/
  235. /* Hide all frames. */
  236. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  237. END PROCEDURE.
  238. /* _UIB-CODE-BLOCK-END */
  239. &ANALYZE-RESUME
  240. {&DB-REQUIRED-START}
  241. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INAKTIVIEREN dTables _DB-REQUIRED
  242. PROCEDURE INAKTIVIEREN :
  243. /*------------------------------------------------------------------------------
  244. Purpose:
  245. Parameters: <none>
  246. Notes:
  247. ------------------------------------------------------------------------------*/
  248. { incl/datinaktivieren.i }
  249. END PROCEDURE.
  250. /* _UIB-CODE-BLOCK-END */
  251. &ANALYZE-RESUME
  252. {&DB-REQUIRED-END}
  253. {&DB-REQUIRED-START}
  254. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject dTables _DB-REQUIRED
  255. PROCEDURE initializeObject :
  256. /*------------------------------------------------------------------------------
  257. Purpose: Super Override
  258. Parameters:
  259. Notes:
  260. ------------------------------------------------------------------------------*/
  261. { incl/datinitialize.i }
  262. END PROCEDURE.
  263. /* _UIB-CODE-BLOCK-END */
  264. &ANALYZE-RESUME
  265. {&DB-REQUIRED-END}
  266. {&DB-REQUIRED-START}
  267. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REAKTIVIEREN dTables _DB-REQUIRED
  268. PROCEDURE REAKTIVIEREN :
  269. /*------------------------------------------------------------------------------
  270. Purpose:
  271. Parameters: <none>
  272. Notes:
  273. ------------------------------------------------------------------------------*/
  274. { incl/datreaktivieren.i }
  275. END PROCEDURE.
  276. /* _UIB-CODE-BLOCK-END */
  277. &ANALYZE-RESUME
  278. {&DB-REQUIRED-END}
  279. {&DB-REQUIRED-START}
  280. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPOS_TABELLE dTables _DB-REQUIRED
  281. PROCEDURE REPOS_TABELLE :
  282. /*------------------------------------------------------------------------------
  283. Purpose:
  284. Parameters: <none>
  285. Notes:
  286. ------------------------------------------------------------------------------*/
  287. { incl/datrepos.i }
  288. END PROCEDURE.
  289. /* _UIB-CODE-BLOCK-END */
  290. &ANALYZE-RESUME
  291. {&DB-REQUIRED-END}
  292. {&DB-REQUIRED-START}
  293. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_FILTER dTables _DB-REQUIRED
  294. PROCEDURE SET_FILTER :
  295. /*------------------------------------------------------------------------------
  296. Purpose:
  297. Parameters: <none>
  298. Notes:
  299. ------------------------------------------------------------------------------*/
  300. { incl/datsetfilter.i }
  301. END PROCEDURE.
  302. /* _UIB-CODE-BLOCK-END */
  303. &ANALYZE-RESUME
  304. {&DB-REQUIRED-END}
  305. {&DB-REQUIRED-START}
  306. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_OPENFLAG dTables _DB-REQUIRED
  307. PROCEDURE SET_OPENFLAG :
  308. /*------------------------------------------------------------------------------
  309. Purpose:
  310. Parameters: <none>
  311. Notes:
  312. ------------------------------------------------------------------------------*/
  313. { incl/datsetopenflag.i }
  314. END PROCEDURE.
  315. /* _UIB-CODE-BLOCK-END */
  316. &ANALYZE-RESUME
  317. {&DB-REQUIRED-END}
  318. {&DB-REQUIRED-START}
  319. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_SORT dTables _DB-REQUIRED
  320. PROCEDURE SET_SORT :
  321. /*------------------------------------------------------------------------------
  322. Purpose:
  323. Parameters: <none>
  324. Notes:
  325. ------------------------------------------------------------------------------*/
  326. DEF INPUT PARAMETER ipFeld AS CHAR NO-UNDO.
  327. DEF VAR cFields AS CHAR NO-UNDO.
  328. DEF VAR qBuffer AS HANDLE NO-UNDO.
  329. DEF VAR qbFeld AS HANDLE NO-UNDO.
  330. DEF VAR cTables AS CHAR NO-UNDO.
  331. cFields = DYNAMIC-FUNCTION('getDataColumns':U ) NO-ERROR.
  332. IF LOOKUP(ipFeld, cFields, ',') = 0 THEN RETURN NO-APPLY.
  333. cTables = DYNAMIC-FUNCTION('getQueryTables':U ) NO-ERROR.
  334. cTables = ENTRY(1, cTables, ' ') NO-ERROR.
  335. CREATE BUFFER qBuffer FOR TABLE cTables NO-ERROR.
  336. qbFeld = qBuffer:BUFFER-FIELD(ipFeld) NO-ERROR.
  337. IF NOT VALID-HANDLE(qbFeld) THEN DO:
  338. DELETE OBJECT qBuffer.
  339. RUN MELDUNG ( 8013 ).
  340. RETURN NO-APPLY.
  341. END.
  342. DELETE OBJECT qBuffer.
  343. IF ipFeld = cSort THEN fDesc = NOT fDesc.
  344. ELSE DO:
  345. ASSIGN cSort = ipFeld
  346. fDesc = FALSE.
  347. END.
  348. /* fData = TRUE. */
  349. /* RUN dataAvailable ( INPUT 'SAME' ). */
  350. /* */
  351. /* FIND FIRST tRowObject NO-LOCK. */
  352. /* FIND {&Tabelle} */
  353. /* &IF '{&TabWhere}' NE '' */
  354. /* &THEN {&TabWhere} */
  355. /* &ELSE OF tRowObject */
  356. /* &ENDIF */
  357. /* NO-LOCK NO-ERROR. */
  358. /* IF AVAILABLE {&Tabelle} THEN cRowid = STRING(ROWID({&Tabelle})). */
  359. /* ELSE cRowid = ?. */
  360. DYNAMIC-FUNCTION('openQuery':U).
  361. /* IF cRowid <> ? THEN DYNAMIC-FUNCTION('fetchRowIdent':U, */
  362. /* INPUT cRowid, INPUT ? ). */
  363. /* { incl/datsetsort.i } */
  364. END PROCEDURE.
  365. /* _UIB-CODE-BLOCK-END */
  366. &ANALYZE-RESUME
  367. {&DB-REQUIRED-END}
  368. /* ************************ Function Implementations ***************** */
  369. {&DB-REQUIRED-START}
  370. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getCurrentRecid dTables _DB-REQUIRED
  371. FUNCTION getCurrentRecid RETURNS RECID
  372. ( /* parameter-definitions */ ) :
  373. /*------------------------------------------------------------------------------
  374. Purpose:
  375. Notes:
  376. ------------------------------------------------------------------------------*/
  377. { incl/datgetcurrentrecid.i }
  378. END FUNCTION.
  379. /* _UIB-CODE-BLOCK-END */
  380. &ANALYZE-RESUME
  381. {&DB-REQUIRED-END}
  382. {&DB-REQUIRED-START}
  383. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getQueryBuffer dTables _DB-REQUIRED
  384. FUNCTION getQueryBuffer RETURNS HANDLE
  385. ( /* parameter-definitions */ ) :
  386. /*------------------------------------------------------------------------------
  387. Purpose:
  388. Notes:
  389. ------------------------------------------------------------------------------*/
  390. RETURN BUFFER rowObject:HANDLE.
  391. END FUNCTION.
  392. /* _UIB-CODE-BLOCK-END */
  393. &ANALYZE-RESUME
  394. {&DB-REQUIRED-END}
  395. {&DB-REQUIRED-START}
  396. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION openQuery dTables _DB-REQUIRED
  397. FUNCTION openQuery RETURNS LOGICAL
  398. ( /* parameter-definitions */ ) :
  399. /*------------------------------------------------------------------------------
  400. Purpose: Super Override
  401. Notes:
  402. ------------------------------------------------------------------------------*/
  403. DEF VAR Felder AS CHAR NO-UNDO.
  404. DEF VAR Inhalt AS CHAR NO-UNDO.
  405. DEF VAR ix AS INT NO-UNDO.
  406. DEF VAR cFeld AS CHAR NO-UNDO.
  407. DEF VAR lJa AS LOG NO-UNDO.
  408. DEF VAR cString AS CHAR NO-UNDO.
  409. DEF VAR cSortFelder AS CHAR NO-UNDO
  410. INIT 'Faknr,Knr,Aufnr,Fak_Datum,Fak_Art'.
  411. DEF VAR cIndexAsc AS CHAR NO-UNDO
  412. INIT 'k9,k10,k1,k8,k6'.
  413. DEF VAR cIndexDes AS CHAR NO-UNDO
  414. INIT 'k11,k12,k1,k14,k13'.
  415. DEF VAR cIndex AS CHAR NO-UNDO.
  416. /* IF NOT fOpen THEN RETURN FALSE. */
  417. xWhere = ''.
  418. xSort = ''.
  419. xString = ''.
  420. cString = ''.
  421. Felder = DYNAMIC-FUNCTION('getForeignFields':U) NO-ERROR.
  422. Inhalt = DYNAMIC-FUNCTION('getForeignValues':U) NO-ERROR.
  423. IF cSort = '' THEN cIndex = 'USE-INDEX Savko-k14'.
  424. ELSE DO:
  425. ix = LOOKUP(cSort, cSortFelder, ',').
  426. IF ix = 0 THEN DO:
  427. MESSAGE 'Sortierung nach diesem Feld könnte länger dauern ! ' SKIP
  428. 'Soll trotzdem sortiert werden ? '
  429. VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
  430. UPDATE lJa.
  431. IF NOT lJa THEN DO:
  432. APPLY 'U1'.
  433. RETURN NO-APPLY.
  434. END.
  435. cIndex = ''.
  436. END.
  437. ELSE DO:
  438. IF fDesc THEN cIndex = 'USE-INDEX Savko-' + ENTRY(ix, cIndexDes, ',').
  439. ELSE cIndex = 'USE-INDEX Savko-' + ENTRY(ix, cIndexAsc, ',').
  440. END.
  441. END.
  442. /* ix = LOOKUP('Firma', Felder, ',') / 2. */
  443. /* cFirma = ENTRY (ix , Inhalt, CHR(01)). */
  444. /* xWhere = 'Savko.Firma = ' + QUOTER(Firma) + ' '. */
  445. IF iFaknr > 0 OR
  446. iKnr > 0 OR
  447. iAufnr > 0 THEN DO:
  448. cIndex = 'USE-INDEX Savko-k6'.
  449. cString = SUBSTITUTE('AND Savko.Knr = &1', iKnr).
  450. END.
  451. xString = 'FOR EACH Savko &1 WHERE '
  452. + 'Savko.Firma = "&2" &3 '.
  453. xString = SUBSTITUTE(xString, cIndex, Firma, cString ).
  454. xString = xString + ' NO-LOCK INDEXED-REPOSITION '.
  455. { incl/datopenquery.i }
  456. IF cIndex > '' AND
  457. lSelected THEN xSort = ''.
  458. lSelected = FALSE.
  459. /* xString = xString + ' ' + xSort.*/
  460. IF xWhere <> '' THEN DYNAMIC-FUNCTION('setQueryWhere':U , INPUT xWhere ).
  461. IF xString <> '' THEN DYNAMIC-FUNCTION('setQueryString':U, INPUT xString).
  462. IF xSort <> '' THEN DYNAMIC-FUNCTION('setQuerySort':U , INPUT xSort ).
  463. RETURN SUPER( ).
  464. END FUNCTION.
  465. /* _UIB-CODE-BLOCK-END */
  466. &ANALYZE-RESUME
  467. {&DB-REQUIRED-END}
  468. {&DB-REQUIRED-START}
  469. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setSelectedSavko dTables _DB-REQUIRED
  470. FUNCTION setSelectedSavko RETURNS LOGICAL
  471. ( ipRecid AS RECID, ipFaknr AS INT, ipKnr AS INT, ipAufnr AS INT ) :
  472. /*------------------------------------------------------------------------------
  473. Purpose:
  474. Notes:
  475. ------------------------------------------------------------------------------*/
  476. DEF VAR cRowid AS CHAR NO-UNDO.
  477. DEF VAR cValues AS CHAR NO-UNDO.
  478. ASSIGN iFaknr = ipFaknr
  479. iKnr = ipKnr
  480. iAufnr = ipAufnr
  481. lSelected = TRUE.
  482. DYNAMIC-FUNCTION('openQuery':U) NO-ERROR.
  483. FIND Savko NO-LOCK WHERE RECID(Savko) = ipRecid NO-ERROR.
  484. IF NOT AVAILABLE Savko THEN RETURN FALSE.
  485. cRowid = STRING(ROWID(Savko)).
  486. cValues = DYNAMIC-FUNCTION('fetchRowIdent':U, cRowid, ? ) NO-ERROR.
  487. RETURN TRUE.
  488. END FUNCTION.
  489. /* _UIB-CODE-BLOCK-END */
  490. &ANALYZE-RESUME
  491. {&DB-REQUIRED-END}