d-spezprei.w 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734
  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 iKnr AS INT NO-UNDO.
  30. DEF VAR iArtnr AS INT NO-UNDO.
  31. DEF VAR iInhalt AS INT NO-UNDO.
  32. DEF VAR iJahr AS INT NO-UNDO.
  33. DEF VAR iPreis_Grp AS INT NO-UNDO.
  34. &SCOPED-DEFINE Tabelle SpezPrei
  35. &SCOPED-DEFINE TabWhere /* USE-INDEX Benutzer-k1 ~
  36. WHERE {&Tabelle}.Benutzer = tRowObject.Benutzer
  37. */
  38. { incl/datdefinition.i }
  39. /* _UIB-CODE-BLOCK-END */
  40. &ANALYZE-RESUME
  41. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  42. /* ******************** Preprocessor Definitions ******************** */
  43. &Global-define DATA-LOGIC-PROCEDURE .p
  44. &Scoped-define PROCEDURE-TYPE SmartDataObject
  45. &Scoped-define DB-AWARE yes
  46. &Scoped-define ADM-SUPPORTED-LINKS Data-Source,Data-Target,Navigation-Target,Update-Target,Commit-Target,Filter-Target
  47. /* Db-Required definitions. */
  48. &IF DEFINED(DB-REQUIRED) = 0 &THEN
  49. &GLOBAL-DEFINE DB-REQUIRED TRUE
  50. &ENDIF
  51. &GLOBAL-DEFINE DB-REQUIRED-START &IF {&DB-REQUIRED} &THEN
  52. &GLOBAL-DEFINE DB-REQUIRED-END &ENDIF
  53. &Scoped-define QUERY-NAME Query-Main
  54. /* Internal Tables (found by Frame, Query & Browse Queries) */
  55. &Scoped-define INTERNAL-TABLES SpezPrei
  56. /* Definitions for QUERY Query-Main */
  57. &Scoped-Define ENABLED-FIELDS Firma Knr Kunde Artnr Inhalt Jahr Ab_Datum Bis_Datum Menge Proz_Betr Wert~
  58. Marge AltPreis Artikel PreisMut VP_Normal lAktion lNetto
  59. &Scoped-define ENABLED-FIELDS-IN-SpezPrei Firma Knr Artnr Inhalt Jahr ~
  60. Ab_Datum Bis_Datum Menge Proz_Betr Wert lAktion lNetto
  61. &Scoped-Define DATA-FIELDS Firma Knr Kunde Artnr Inhalt Jahr Ab_Datum Bis_Datum Menge Proz_Betr Wert~
  62. Marge AltPreis Artikel PreisMut VP_Normal lAktion lNetto
  63. &Scoped-define DATA-FIELDS-IN-SpezPrei Firma Knr Artnr Inhalt Jahr Ab_Datum ~
  64. Bis_Datum Menge Proz_Betr Wert lAktion lNetto
  65. &Scoped-Define MANDATORY-FIELDS
  66. &Scoped-Define APPLICATION-SERVICE
  67. &Scoped-Define ASSIGN-LIST
  68. &Scoped-Define DATA-FIELD-DEFS "d-spezprei.i"
  69. &Scoped-Define DATA-TABLE-NO-UNDO NO-UNDO
  70. &Scoped-define QUERY-STRING-Query-Main FOR EACH SpezPrei NO-LOCK INDEXED-REPOSITION
  71. {&DB-REQUIRED-START}
  72. &Scoped-define OPEN-QUERY-Query-Main OPEN QUERY Query-Main FOR EACH SpezPrei NO-LOCK INDEXED-REPOSITION.
  73. {&DB-REQUIRED-END}
  74. &Scoped-define TABLES-IN-QUERY-Query-Main SpezPrei
  75. &Scoped-define FIRST-TABLE-IN-QUERY-Query-Main SpezPrei
  76. /* Custom List Definitions */
  77. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  78. /* _UIB-PREPROCESSOR-BLOCK-END */
  79. &ANALYZE-RESUME
  80. /* ************************ Function Prototypes ********************** */
  81. {&DB-REQUIRED-START}
  82. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getCurrentRecid dTables _DB-REQUIRED
  83. FUNCTION getCurrentRecid RETURNS RECID
  84. ( /* parameter-definitions */ ) FORWARD.
  85. /* _UIB-CODE-BLOCK-END */
  86. &ANALYZE-RESUME
  87. {&DB-REQUIRED-END}
  88. {&DB-REQUIRED-START}
  89. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getDaten dTables _DB-REQUIRED
  90. FUNCTION getDaten RETURNS DECIMAL
  91. ( /* parameter-definitions */ ) FORWARD.
  92. /* _UIB-CODE-BLOCK-END */
  93. &ANALYZE-RESUME
  94. {&DB-REQUIRED-END}
  95. {&DB-REQUIRED-START}
  96. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getQueryBuffer dTables _DB-REQUIRED
  97. FUNCTION getQueryBuffer RETURNS HANDLE
  98. ( /* parameter-definitions */ ) FORWARD.
  99. /* _UIB-CODE-BLOCK-END */
  100. &ANALYZE-RESUME
  101. {&DB-REQUIRED-END}
  102. {&DB-REQUIRED-START}
  103. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD openQuery dTables _DB-REQUIRED
  104. FUNCTION openQuery RETURNS LOGICAL
  105. ( /* parameter-definitions */ ) FORWARD.
  106. /* _UIB-CODE-BLOCK-END */
  107. &ANALYZE-RESUME
  108. {&DB-REQUIRED-END}
  109. /* *********************** Control Definitions ********************** */
  110. {&DB-REQUIRED-START}
  111. /* Query definitions */
  112. &ANALYZE-SUSPEND
  113. DEFINE QUERY Query-Main FOR
  114. SpezPrei SCROLLING.
  115. &ANALYZE-RESUME
  116. {&DB-REQUIRED-END}
  117. /* ************************ Frame Definitions *********************** */
  118. /* *********************** Procedure Settings ************************ */
  119. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  120. /* Settings for THIS-PROCEDURE
  121. Type: SmartDataObject
  122. Allow: Query
  123. Frames: 0
  124. Add Fields to: Neither
  125. Other Settings: PERSISTENT-ONLY COMPILE APPSERVER DB-AWARE
  126. */
  127. /* This procedure should always be RUN PERSISTENT. Report the error, */
  128. /* then cleanup and return. */
  129. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  130. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  131. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  132. RETURN.
  133. END.
  134. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  135. /* ************************* Create Window ************************** */
  136. &ANALYZE-SUSPEND _CREATE-WINDOW
  137. /* DESIGN Window definition (used by the UIB)
  138. CREATE WINDOW dTables ASSIGN
  139. HEIGHT = 1.62
  140. WIDTH = 72.6.
  141. /* END WINDOW DEFINITION */
  142. */
  143. &ANALYZE-RESUME
  144. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB dTables
  145. /* ************************* Included-Libraries *********************** */
  146. {src/adm2/data.i}
  147. /* _UIB-CODE-BLOCK-END */
  148. &ANALYZE-RESUME
  149. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  150. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  151. /* SETTINGS FOR WINDOW dTables
  152. VISIBLE,,RUN-PERSISTENT */
  153. /* _RUN-TIME-ATTRIBUTES-END */
  154. &ANALYZE-RESUME
  155. /* Setting information for Queries and Browse Widgets fields */
  156. &ANALYZE-SUSPEND _QUERY-BLOCK QUERY Query-Main
  157. /* Query rebuild information for SmartDataObject Query-Main
  158. _TblList = "AnaDat.SpezPrei"
  159. _Options = "NO-LOCK INDEXED-REPOSITION"
  160. _FldNameList[1] > AnaDat.SpezPrei.Firma
  161. "Firma" "Firma" ? ? "character" ? ? ? ? ? ? yes ? no 8 yes ?
  162. _FldNameList[2] > AnaDat.SpezPrei.Knr
  163. "Knr" "Knr" ? ? "integer" ? ? ? ? ? ? yes ? no 7.2 yes ?
  164. _FldNameList[3] > "_<CALC>"
  165. "IF sAktiv THEN DYNAMIC-FUNCTION('getAdressAnzeige':U, RowObject.Knr) ELSE ''" "Kunde" "Kunde" "x(50)" "character" ? ? ? ? ? ? yes ? no 50 no ?
  166. _FldNameList[4] > AnaDat.SpezPrei.Artnr
  167. "Artnr" "Artnr" ? ? "integer" ? ? ? ? ? ? yes ? no 7.2 yes ?
  168. _FldNameList[5] > AnaDat.SpezPrei.Inhalt
  169. "Inhalt" "Inhalt" ? ? "integer" ? ? ? ? ? ? yes ? no 5.2 yes ?
  170. _FldNameList[6] > AnaDat.SpezPrei.Jahr
  171. "Jahr" "Jahr" ? ? "integer" ? ? ? ? ? ? yes ? no 4.8 yes ?
  172. _FldNameList[7] > AnaDat.SpezPrei.Ab_Datum
  173. "Ab_Datum" "Ab_Datum" ? ? "date" ? ? ? ? ? ? yes ? no 10.8 yes ?
  174. _FldNameList[8] > AnaDat.SpezPrei.Bis_Datum
  175. "Bis_Datum" "Bis_Datum" ? ? "date" ? ? ? ? ? ? yes ? no 10.8 yes ?
  176. _FldNameList[9] > AnaDat.SpezPrei.Menge
  177. "Menge" "Menge" ? ? "decimal" ? ? ? ? ? ? yes ? no 6.8 yes ?
  178. _FldNameList[10] > AnaDat.SpezPrei.Proz_Betr
  179. "Proz_Betr" "Proz_Betr" ? ? "logical" ? ? ? ? ? ? yes ? no 9.2 yes ?
  180. _FldNameList[11] > AnaDat.SpezPrei.Wert
  181. "Wert" "Wert" ? ? "decimal" ? ? ? ? ? ? yes ? no 9.2 yes ?
  182. _FldNameList[12] > "_<CALC>"
  183. "0.0000" "Marge" "Marge" "->>,>>9.99" "Decimal" ? ? ? ? ? ? yes ? no 10.2 no ?
  184. _FldNameList[13] > "_<CALC>"
  185. "0.0000" "AltPreis" "alter Preis" "->>,>>9.99" "Decimal" ? ? ? ? ? ? yes ? no 10.2 no ?
  186. _FldNameList[14] > "_<CALC>"
  187. "''" "Artikel" "Artikel" "x(40)" "character" ? ? ? ? ? ? yes ? no 40 no ?
  188. _FldNameList[15] > "_<CALC>"
  189. "FALSE" "PreisMut" ? "Yes/No" "Logical" ? ? ? ? ? ? yes ? no 3.6 no ?
  190. _FldNameList[16] > "_<CALC>"
  191. "DYNAMIC-FUNCTION('getDaten':U IN THIS-PROCEDURE)" "VP_Normal" "norm. VP" "->>,>>9.99" "Decimal" ? ? ? ? ? ? yes ? no 10.2 no ?
  192. _FldNameList[17] > AnaDat.SpezPrei.lAktion
  193. "lAktion" "lAktion" ? ? "logical" ? ? ? ? ? ? yes ? no 6.4 yes ?
  194. _FldNameList[18] > AnaDat.SpezPrei.lNetto
  195. "lNetto" "lNetto" ? ? "logical" ? ? ? ? ? ? yes ? no 15.6 yes ?
  196. _Design-Parent is WINDOW dTables @ ( 1.14 , 2.6 )
  197. */ /* QUERY Query-Main */
  198. &ANALYZE-RESUME
  199. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK dTables
  200. /* *************************** Main Block *************************** */
  201. { incl/datmainblock.i }
  202. SUBSCRIBE TO 'OPENPREIS' ANYWHERE.
  203. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  204. RUN initializeObject.
  205. &ENDIF
  206. /* _UIB-CODE-BLOCK-END */
  207. &ANALYZE-RESUME
  208. /* ********************** Internal Procedures *********************** */
  209. {&DB-REQUIRED-START}
  210. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DATA.CALCULATE dTables DATA.CALCULATE _DB-REQUIRED
  211. PROCEDURE DATA.CALCULATE :
  212. /*------------------------------------------------------------------------------
  213. Purpose: Calculate all the Calculated Expressions found in the
  214. SmartDataObject.
  215. Parameters: <none>
  216. ------------------------------------------------------------------------------*/
  217. ASSIGN
  218. rowObject.AltPreis = (0.0000)
  219. rowObject.Artikel = ('')
  220. rowObject.Kunde = (IF sAktiv THEN DYNAMIC-FUNCTION('getAdressAnzeige':U, RowObject.Knr) ELSE '')
  221. rowObject.Marge = (0.0000)
  222. rowObject.PreisMut = (FALSE)
  223. rowObject.VP_Normal = (DYNAMIC-FUNCTION('getDaten':U IN THIS-PROCEDURE))
  224. .
  225. END PROCEDURE.
  226. /* _UIB-CODE-BLOCK-END */
  227. &ANALYZE-RESUME
  228. {&DB-REQUIRED-END}
  229. {&DB-REQUIRED-START}
  230. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE dataAvailable dTables _DB-REQUIRED
  231. PROCEDURE dataAvailable :
  232. /*------------------------------------------------------------------------------
  233. Purpose: Super Override
  234. Parameters:
  235. Notes:
  236. ------------------------------------------------------------------------------*/
  237. { incl/datdataavailable.i }
  238. END PROCEDURE.
  239. /* _UIB-CODE-BLOCK-END */
  240. &ANALYZE-RESUME
  241. {&DB-REQUIRED-END}
  242. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI dTables _DEFAULT-DISABLE
  243. PROCEDURE disable_UI :
  244. /*------------------------------------------------------------------------------
  245. Purpose: DISABLE the User Interface
  246. Parameters: <none>
  247. Notes: Here we clean-up the user-interface by deleting
  248. dynamic widgets we have created and/or hide
  249. frames. This procedure is usually called when
  250. we are ready to "clean-up" after running.
  251. ------------------------------------------------------------------------------*/
  252. /* Hide all frames. */
  253. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  254. END PROCEDURE.
  255. /* _UIB-CODE-BLOCK-END */
  256. &ANALYZE-RESUME
  257. {&DB-REQUIRED-START}
  258. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INAKTIVIEREN dTables _DB-REQUIRED
  259. PROCEDURE INAKTIVIEREN :
  260. /*------------------------------------------------------------------------------
  261. Purpose:
  262. Parameters: <none>
  263. Notes:
  264. ------------------------------------------------------------------------------*/
  265. { incl/datinaktivieren.i }
  266. END PROCEDURE.
  267. /* _UIB-CODE-BLOCK-END */
  268. &ANALYZE-RESUME
  269. {&DB-REQUIRED-END}
  270. {&DB-REQUIRED-START}
  271. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject dTables _DB-REQUIRED
  272. PROCEDURE initializeObject :
  273. /*------------------------------------------------------------------------------
  274. Purpose: Super Override
  275. Parameters:
  276. Notes:
  277. ------------------------------------------------------------------------------*/
  278. { incl/datinitialize.i }
  279. END PROCEDURE.
  280. /* _UIB-CODE-BLOCK-END */
  281. &ANALYZE-RESUME
  282. {&DB-REQUIRED-END}
  283. {&DB-REQUIRED-START}
  284. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPENPREIS dTables _DB-REQUIRED
  285. PROCEDURE OPENPREIS :
  286. /*------------------------------------------------------------------------------
  287. Purpose:
  288. Parameters: <none>
  289. Notes:
  290. ------------------------------------------------------------------------------*/
  291. DYNAMIC-FUNCTION('openQuery':U) NO-ERROR.
  292. END PROCEDURE.
  293. /* _UIB-CODE-BLOCK-END */
  294. &ANALYZE-RESUME
  295. {&DB-REQUIRED-END}
  296. {&DB-REQUIRED-START}
  297. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REAKTIVIEREN dTables _DB-REQUIRED
  298. PROCEDURE REAKTIVIEREN :
  299. /*------------------------------------------------------------------------------
  300. Purpose:
  301. Parameters: <none>
  302. Notes:
  303. ------------------------------------------------------------------------------*/
  304. { incl/datreaktivieren.i }
  305. END PROCEDURE.
  306. /* _UIB-CODE-BLOCK-END */
  307. &ANALYZE-RESUME
  308. {&DB-REQUIRED-END}
  309. {&DB-REQUIRED-START}
  310. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPOS_TABELLE dTables _DB-REQUIRED
  311. PROCEDURE REPOS_TABELLE :
  312. /*------------------------------------------------------------------------------
  313. Purpose:
  314. Parameters: <none>
  315. Notes:
  316. ------------------------------------------------------------------------------*/
  317. { incl/datrepos.i }
  318. END PROCEDURE.
  319. /* _UIB-CODE-BLOCK-END */
  320. &ANALYZE-RESUME
  321. {&DB-REQUIRED-END}
  322. {&DB-REQUIRED-START}
  323. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_FILTER dTables _DB-REQUIRED
  324. PROCEDURE SET_FILTER :
  325. /*------------------------------------------------------------------------------
  326. Purpose:
  327. Parameters: <none>
  328. Notes:
  329. ------------------------------------------------------------------------------*/
  330. { incl/datsetfilter.i }
  331. END PROCEDURE.
  332. /* _UIB-CODE-BLOCK-END */
  333. &ANALYZE-RESUME
  334. {&DB-REQUIRED-END}
  335. {&DB-REQUIRED-START}
  336. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_OPENFLAG dTables _DB-REQUIRED
  337. PROCEDURE SET_OPENFLAG :
  338. /*------------------------------------------------------------------------------
  339. Purpose:
  340. Parameters: <none>
  341. Notes:
  342. ------------------------------------------------------------------------------*/
  343. { incl/datsetopenflag.i }
  344. END PROCEDURE.
  345. /* _UIB-CODE-BLOCK-END */
  346. &ANALYZE-RESUME
  347. {&DB-REQUIRED-END}
  348. {&DB-REQUIRED-START}
  349. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_SORT dTables _DB-REQUIRED
  350. PROCEDURE SET_SORT :
  351. /*------------------------------------------------------------------------------
  352. Purpose:
  353. Parameters: <none>
  354. Notes:
  355. ------------------------------------------------------------------------------*/
  356. { incl/datsetsort.i }
  357. END PROCEDURE.
  358. /* _UIB-CODE-BLOCK-END */
  359. &ANALYZE-RESUME
  360. {&DB-REQUIRED-END}
  361. /* ************************ Function Implementations ***************** */
  362. {&DB-REQUIRED-START}
  363. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getCurrentRecid dTables _DB-REQUIRED
  364. FUNCTION getCurrentRecid RETURNS RECID
  365. ( /* parameter-definitions */ ) :
  366. /*------------------------------------------------------------------------------
  367. Purpose:
  368. Notes:
  369. ------------------------------------------------------------------------------*/
  370. { incl/datgetcurrentrecid.i }
  371. END FUNCTION.
  372. /* _UIB-CODE-BLOCK-END */
  373. &ANALYZE-RESUME
  374. {&DB-REQUIRED-END}
  375. {&DB-REQUIRED-START}
  376. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getDaten dTables _DB-REQUIRED
  377. FUNCTION getDaten RETURNS DECIMAL
  378. ( /* parameter-definitions */ ) :
  379. /*------------------------------------------------------------------------------
  380. Purpose:
  381. Notes:
  382. ------------------------------------------------------------------------------*/
  383. DEF VAR dAbDatum AS DATE NO-UNDO.
  384. DEF VAR ListenEp AS DEC DECIMALS 4 NO-UNDO.
  385. DEF VAR dWert AS DEC DECIMALS 4 NO-UNDO.
  386. DEF VAR Ansatz AS DEC DECIMALS 4 NO-UNDO.
  387. DEF VAR VK_Spez AS DEC DECIMALS 4 NO-UNDO.
  388. DEF VAR VK_Norm AS DEC DECIMALS 4 NO-UNDO.
  389. DEF VAR lInkl AS LOG NO-UNDO.
  390. DEF VAR lProzBetr AS LOG NO-UNDO.
  391. DEF VAR lMut AS LOG NO-UNDO.
  392. DEF BUFFER BArtPreis FOR ArtPreis.
  393. ASSIGN iKnr = rowObject.Knr
  394. iArtnr = rowObject.Artnr
  395. iInhalt = rowObject.Inhalt
  396. iJahr = rowObject.Jahr
  397. dWert = rowObject.Wert
  398. lProzBetr = rowObject.Proz_Betr
  399. dAbDatum = rowObject.Ab_Datum.
  400. /*
  401. IF lFirst THEN DO:
  402. MESSAGE iKnr SKIP
  403. iArtnr SKIP
  404. iInhalt SKIP
  405. iJahr SKIP
  406. dWert SKIP
  407. lProzBetr SKIP
  408. dAbDatum SKIP
  409. VIEW-AS ALERT-BOX.
  410. lFirst = FALSE.
  411. END.
  412. */
  413. FIND Artst NO-LOCK USE-INDEX Artst-k1
  414. WHERE Artst.Firma = Firma
  415. AND Artst.Artnr = iArtnr
  416. AND Artst.Inhalt = iInhalt
  417. AND Artst.Jahr = iJahr NO-ERROR.
  418. IF NOT AVAILABLE Artst THEN RETURN 0.0000.
  419. ListenEp = Artst.Listen_Ep.
  420. FIND FIRST Artbez NO-LOCK USE-INDEX Artbez-k1
  421. WHERE Artbez.Firma = Firma
  422. AND Artbez.Artnr = iArtnr
  423. AND Artbez.Inhalt = iInhalt
  424. AND Artbez.Jahr = iJahr NO-ERROR.
  425. rowObject.Artikel = TRIM(Artbez.Bez1 + ' ' + Artbez.Bez2).
  426. FIND Debst NO-LOCK USE-INDEX Debst-k1
  427. WHERE Debst.Firma = Firma
  428. AND Debst.Knr = iKnr NO-ERROR.
  429. iPreis_Grp = Debst.Preis_Grp.
  430. FIND Wust NO-LOCK USE-INDEX Wust-k1
  431. WHERE Wust.CodeK = Debst.MWST
  432. AND Wust.CodeA = 99 NO-ERROR.
  433. lInkl = Wust.Incl.
  434. FIND AbwPrGrp NO-LOCK USE-INDEX AbwPrGrp-k1
  435. WHERE AbwPrGrp.Firma = Firma
  436. AND AbwPrGrp.Knr = iKnr
  437. AND AbwPrGrp.Wg_Grp = Artst.Wg_Grp NO-ERROR.
  438. IF AVAILABLE AbwPrGrp THEN iPreis_Grp = AbwPrGrp.Preis_Grp.
  439. FIND LAST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
  440. WHERE ArtPreis.Firma = Firma
  441. AND ArtPreis.Artnr = iArtnr
  442. AND ArtPreis.Inhalt = iInhalt
  443. AND ArtPreis.Jahr = iJahr
  444. AND ArtPreis.Preis_Grp = iPreis_Grp
  445. AND ArtPreis.Ab_Datum <= TODAY
  446. AND ArtPreis.Aktion = FALSE
  447. AND ArtPreis.Aktiv = TRUE NO-ERROR.
  448. IF NOT AVAILABLE ArtPreis THEN DO:
  449. FIND LAST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
  450. WHERE ArtPreis.Firma = Firma
  451. AND ArtPreis.Artnr = iArtnr
  452. AND ArtPreis.Inhalt = iInhalt
  453. AND ArtPreis.Jahr = iJahr
  454. AND ArtPreis.Preis_Grp = Debst.Preis_Grp
  455. AND ArtPreis.Ab_Datum <= TODAY
  456. AND ArtPreis.Aktion = FALSE
  457. AND ArtPreis.Aktiv = TRUE NO-ERROR.
  458. END.
  459. IF NOT AVAILABLE ArtPreis THEN DO:
  460. FIND LAST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
  461. WHERE ArtPreis.Firma = Firma
  462. AND ArtPreis.Artnr = iArtnr
  463. AND ArtPreis.Inhalt = iInhalt
  464. AND ArtPreis.Jahr = iJahr
  465. AND ArtPreis.Preis_Grp = 0
  466. AND ArtPreis.Ab_Datum <= TODAY
  467. AND ArtPreis.Aktion = FALSE
  468. AND ArtPreis.Aktiv = TRUE NO-ERROR.
  469. END.
  470. lMut = FALSE.
  471. IF AVAILABLE ArtPreis THEN DO:
  472. IF lInkl THEN VK_Norm = ArtPreis.VK_Brutto.
  473. ELSE VK_Norm = ArtPreis.VK_Netto.
  474. rowObject.PreisMut = (IF ArtPreis.Ab_Datum > (TODAY - 90 ) THEN TRUE ELSE FALSE).
  475. FIND LAST BArtPreis NO-LOCK USE-INDEX ArtPreis-k1
  476. WHERE BArtPreis.Firma = ArtPreis.Firma
  477. AND BArtPreis.Artnr = ArtPreis.Artnr
  478. AND BArtPreis.Inhalt = ArtPreis.Inhalt
  479. AND BArtPreis.Jahr = ArtPreis.Jahr
  480. AND BArtPreis.Preis_Grp = ArtPreis.Preis_Grp
  481. AND BArtPreis.Ab_Datum <= ArtPreis.Ab_Datum
  482. AND BArtPreis.Aktion = FALSE NO-ERROR.
  483. IF AVAILABLE BArtPreis THEN rowObject.AltPreis = BArtPreis.VK_Netto.
  484. ELSE rowObject.AltPreis = 0.
  485. END.
  486. Ansatz = (ArtPreis.VK_Brutto * 100 / ArtPreis.VK_Netto) NO-ERROR.
  487. IF Ansatz = ? THEN Ansatz = 0.
  488. IF NOT lProzBetr THEN VK_Spez = dWert.
  489. ELSE VK_Spez = VK_Norm * (100 - dWert) / 100.
  490. IF lInkl THEN VK_Spez = VK_Spez / Ansatz * 100.
  491. IF ListenEP = 0 THEN rowObject.Marge = 0.
  492. ELSE rowObject.Marge = 100 - (ListenEP * 100 / VK_Spez).
  493. RETURN VK_Norm.
  494. END FUNCTION.
  495. /* _UIB-CODE-BLOCK-END */
  496. &ANALYZE-RESUME
  497. {&DB-REQUIRED-END}
  498. {&DB-REQUIRED-START}
  499. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getQueryBuffer dTables _DB-REQUIRED
  500. FUNCTION getQueryBuffer RETURNS HANDLE
  501. ( /* parameter-definitions */ ) :
  502. /*------------------------------------------------------------------------------
  503. Purpose:
  504. Notes:
  505. ------------------------------------------------------------------------------*/
  506. RETURN BUFFER rowObject:HANDLE.
  507. END FUNCTION.
  508. /* _UIB-CODE-BLOCK-END */
  509. &ANALYZE-RESUME
  510. {&DB-REQUIRED-END}
  511. {&DB-REQUIRED-START}
  512. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION openQuery dTables _DB-REQUIRED
  513. FUNCTION openQuery RETURNS LOGICAL
  514. ( /* parameter-definitions */ ) :
  515. /*------------------------------------------------------------------------------
  516. Purpose: Super Override
  517. Notes:
  518. ------------------------------------------------------------------------------*/
  519. DEF VAR Felder AS CHAR NO-UNDO.
  520. DEF VAR Inhalt AS CHAR NO-UNDO.
  521. DEF VAR ix AS INT NO-UNDO.
  522. DEF VAR cFeld AS CHAR NO-UNDO.
  523. IF NOT fOpen THEN RETURN FALSE.
  524. xWhere = ''.
  525. xSort = ''.
  526. xString = ''.
  527. Felder = DYNAMIC-FUNCTION('getForeignFields':U) NO-ERROR.
  528. Inhalt = DYNAMIC-FUNCTION('getForeignValues':U) NO-ERROR.
  529. /* ix = LOOKUP('Feld', Felder, ',') / 2. */
  530. /* cFeld = ENTRY (ix , Inhalt, CHR(01)). */
  531. /* xWhere = 'Aufko.Firma = ' + QUOTER(Firma) + ' AND ' */
  532. /* + 'Aufko.Auf_Sta = ' + STRING(Auf_Sta) + ' '. */
  533. /* xString = 'FOR EACH Debop ' + xSort + 'WHERE ' */
  534. /* + 'Debop.Firma = "' + Firma + '" AND ' */
  535. /* + 'Debop.Knr = ' + STRING(Knr) + ' ' */
  536. /* + 'NO-LOCK BY Debop.FakDat DESCENDING INDEXED-REPOSITION '. */
  537. { incl/datopenquery.i }
  538. IF xWhere <> '' THEN DYNAMIC-FUNCTION('setQueryWhere':U , INPUT xWhere ).
  539. IF xString <> '' THEN DYNAMIC-FUNCTION('setQueryString':U, INPUT xString).
  540. IF xSort <> '' THEN DYNAMIC-FUNCTION('setQuerySort':U , INPUT xSort ).
  541. RETURN SUPER( ).
  542. END FUNCTION.
  543. /* _UIB-CODE-BLOCK-END */
  544. &ANALYZE-RESUME
  545. {&DB-REQUIRED-END}