v-frwtab.w 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v9r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. /* Temp-Table and Buffer definitions */
  8. DEFINE TEMP-TABLE RowObject
  9. {"d-frwtab.i"}.
  10. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS vTableWin
  11. /*------------------------------------------------------------------------
  12. File:
  13. Description: from viewer.w - Template for SmartDataViewer objects
  14. Input Parameters:
  15. <none>
  16. Output Parameters:
  17. <none>
  18. ------------------------------------------------------------------------*/
  19. /* This .W file was created with the Progress AppBuilder. */
  20. /*----------------------------------------------------------------------*/
  21. /* Create an unnamed pool to store all the widgets created
  22. by this procedure. This is a good default which assures
  23. that this procedure's triggers and internal procedures
  24. will execute in this procedure's storage, and that proper
  25. cleanup will occur on deletion of the procedure. */
  26. CREATE WIDGET-POOL.
  27. /* *************************** Definitions ************************** */
  28. /* Komma-Trennzeichen */
  29. /* Keyfelder werden beim Mutieren nicht "Enabled" */
  30. &Scoped-define ERSTES_FELD FRW
  31. &Scoped-define LETZTES_FELD KD_Kto_Pass
  32. &Scoped-define KEY_FELDER FRW
  33. &Scoped-define NUR_LESEN
  34. /* Parameters Definitions --- */
  35. /* Local Variable Definitions --- */
  36. DEFINE VARIABLE SAktiv AS LOG NO-UNDO INIT FALSE.
  37. DEFINE VARIABLE FNeu AS LOG NO-UNDO INIT FALSE.
  38. DEFINE VARIABLE FMut AS LOG NO-UNDO INIT FALSE.
  39. DEFINE VARIABLE FCopy AS LOG NO-UNDO INIT FALSE.
  40. DEFINE VARIABLE FDisp AS LOG NO-UNDO INIT TRUE .
  41. DEFINE VARIABLE Fenster AS HANDLE NO-UNDO.
  42. DEFINE VARIABLE oldColValues AS CHARACTER NO-UNDO.
  43. DEFINE VARIABLE oldColList AS CHARACTER NO-UNDO.
  44. DEFINE VARIABLE Firma AS CHARACTER NO-UNDO.
  45. DEFINE TEMP-TABLE tFrwTab LIKE FRWTab
  46. FIELD OldKurs AS DECIMAL DECIMALS 8
  47. FIELD lMut AS LOGICAL INIT FALSE.
  48. /* _UIB-CODE-BLOCK-END */
  49. &ANALYZE-RESUME
  50. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  51. /* ******************** Preprocessor Definitions ******************** */
  52. &Scoped-define PROCEDURE-TYPE SmartDataViewer
  53. &Scoped-define DB-AWARE no
  54. &Scoped-define ADM-CONTAINER FRAME
  55. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  56. /* Include file with RowObject temp-table definition */
  57. &Scoped-define DATA-FIELD-DEFS "d-frwtab.i"
  58. /* Name of first Frame and/or Browse and/or first Query */
  59. &Scoped-define FRAME-NAME F-Main
  60. /* Standard List Definitions */
  61. &Scoped-Define ENABLED-FIELDS RowObject.FRW RowObject.Bez RowObject.Kurs ~
  62. RowObject.Faktor RowObject.SK_Kto_Debi RowObject.SK_Kto_Kred ~
  63. RowObject.KD_Kto_Debi RowObject.KD_Kto_Kred RowObject.KD_Kto_Akti ~
  64. RowObject.KD_Kto_Pass
  65. &Scoped-define ENABLED-TABLES RowObject
  66. &Scoped-define FIRST-ENABLED-TABLE RowObject
  67. &Scoped-define DISPLAYED-TABLES RowObject
  68. &Scoped-define FIRST-DISPLAYED-TABLE RowObject
  69. &Scoped-Define ENABLED-OBJECTS RECT-22 RECT-23
  70. &Scoped-Define DISPLAYED-FIELDS RowObject.FRW RowObject.Bez RowObject.Kurs ~
  71. RowObject.Faktor RowObject.SK_Kto_Debi RowObject.SK_Kto_Kred ~
  72. RowObject.KD_Kto_Debi RowObject.KD_Kto_Kred RowObject.KD_Kto_Akti ~
  73. RowObject.KD_Kto_Pass
  74. /* Custom List Definitions */
  75. /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */
  76. /* _UIB-PREPROCESSOR-BLOCK-END */
  77. &ANALYZE-RESUME
  78. /* *********************** Control Definitions ********************** */
  79. /* Definitions of the field level widgets */
  80. DEFINE RECTANGLE RECT-22
  81. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  82. SIZE 86 BY 10.24.
  83. DEFINE RECTANGLE RECT-23
  84. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  85. SIZE 84 BY 5.71.
  86. /* ************************ Frame Definitions *********************** */
  87. DEFINE FRAME F-Main
  88. RowObject.FRW AT ROW 1.52 COL 20 COLON-ALIGNED
  89. LABEL "Kurz" FORMAT "x(03)"
  90. VIEW-AS FILL-IN NATIVE
  91. SIZE 8.6 BY 1
  92. BGCOLOR 15
  93. RowObject.Bez AT ROW 2.52 COL 20 COLON-ALIGNED
  94. LABEL "Währung" FORMAT "x(30)"
  95. VIEW-AS FILL-IN NATIVE
  96. SIZE 32 BY 1
  97. BGCOLOR 15
  98. RowObject.Kurs AT ROW 3.52 COL 20 COLON-ALIGNED
  99. LABEL "Kurs" FORMAT "zz,zz9.999999"
  100. VIEW-AS FILL-IN NATIVE
  101. SIZE 21 BY 1
  102. BGCOLOR 15
  103. RowObject.Faktor AT ROW 3.52 COL 63 COLON-ALIGNED
  104. LABEL "Faktor" FORMAT "9999"
  105. VIEW-AS FILL-IN NATIVE
  106. SIZE 8 BY 1
  107. BGCOLOR 15
  108. RowObject.SK_Kto_Debi AT ROW 6.52 COL 20 COLON-ALIGNED
  109. LABEL "Skonti Debitoren" FORMAT "x(12)"
  110. VIEW-AS FILL-IN NATIVE
  111. SIZE 17.6 BY 1
  112. BGCOLOR 15
  113. RowObject.SK_Kto_Kred AT ROW 7.52 COL 20 COLON-ALIGNED
  114. LABEL "Skonti Kreditoren" FORMAT "x(12)"
  115. VIEW-AS FILL-IN NATIVE
  116. SIZE 17.6 BY 1
  117. BGCOLOR 15
  118. RowObject.KD_Kto_Debi AT ROW 6.52 COL 63 COLON-ALIGNED
  119. LABEL "Kursdiff. Debitoren" FORMAT "x(12)"
  120. VIEW-AS FILL-IN NATIVE
  121. SIZE 17.6 BY 1
  122. BGCOLOR 15
  123. RowObject.KD_Kto_Kred AT ROW 7.52 COL 63 COLON-ALIGNED
  124. LABEL "Kursdiff. Kreditoren" FORMAT "x(12)"
  125. VIEW-AS FILL-IN NATIVE
  126. SIZE 17.6 BY 1
  127. BGCOLOR 15
  128. RowObject.KD_Kto_Akti AT ROW 8.52 COL 63 COLON-ALIGNED
  129. LABEL "Kursdiff. Aktiven" FORMAT "x(12)"
  130. VIEW-AS FILL-IN NATIVE
  131. SIZE 17.6 BY 1
  132. BGCOLOR 15
  133. RowObject.KD_Kto_Pass AT ROW 9.52 COL 63 COLON-ALIGNED
  134. LABEL "Kursdiff. Passiven" FORMAT "x(12)"
  135. VIEW-AS FILL-IN NATIVE
  136. SIZE 17.6 BY 1
  137. BGCOLOR 15
  138. RECT-22 AT ROW 1.24 COL 2
  139. RECT-23 AT ROW 5.29 COL 3
  140. "FIBU-Konti" VIEW-AS TEXT
  141. SIZE 38.4 BY 1 AT ROW 5.52 COL 22
  142. FONT 6
  143. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  144. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  145. AT COL 1 ROW 1 SCROLLABLE .
  146. /* *********************** Procedure Settings ************************ */
  147. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  148. /* Settings for THIS-PROCEDURE
  149. Type: SmartDataViewer
  150. Data Source: "d-frwtab.w"
  151. Allow: Basic,DB-Fields,Smart
  152. Container Links: Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  153. Frames: 1
  154. Add Fields to: Neither
  155. Other Settings: PERSISTENT-ONLY COMPILE
  156. Temp-Tables and Buffers:
  157. TABLE: RowObject D "?" ?
  158. ADDITIONAL-FIELDS:
  159. {d-frwtab.i}
  160. END-FIELDS.
  161. END-TABLES.
  162. */
  163. /* This procedure should always be RUN PERSISTENT. Report the error, */
  164. /* then cleanup and return. */
  165. IF NOT THIS-PROCEDURE:PERSISTENT THEN
  166. DO:
  167. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  168. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  169. RETURN.
  170. END.
  171. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  172. /* ************************* Create Window ************************** */
  173. &ANALYZE-SUSPEND _CREATE-WINDOW
  174. /* DESIGN Window definition (used by the UIB)
  175. CREATE WINDOW vTableWin ASSIGN
  176. HEIGHT = 11.1
  177. WIDTH = 93.6.
  178. /* END WINDOW DEFINITION */
  179. */
  180. &ANALYZE-RESUME
  181. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB vTableWin
  182. /* ************************* Included-Libraries *********************** */
  183. {src/adm2/viewer.i}
  184. /* _UIB-CODE-BLOCK-END */
  185. &ANALYZE-RESUME
  186. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  187. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  188. /* SETTINGS FOR WINDOW vTableWin
  189. VISIBLE,,RUN-PERSISTENT */
  190. /* SETTINGS FOR FRAME F-Main
  191. NOT-VISIBLE Size-to-Fit Custom */
  192. ASSIGN
  193. FRAME F-Main:SCROLLABLE = FALSE
  194. FRAME F-Main:HIDDEN = TRUE.
  195. /* SETTINGS FOR FILL-IN RowObject.Bez IN FRAME F-Main
  196. EXP-LABEL EXP-FORMAT */
  197. /* SETTINGS FOR FILL-IN RowObject.Faktor IN FRAME F-Main
  198. EXP-LABEL EXP-FORMAT */
  199. /* SETTINGS FOR FILL-IN RowObject.FRW IN FRAME F-Main
  200. EXP-LABEL EXP-FORMAT */
  201. /* SETTINGS FOR FILL-IN RowObject.KD_Kto_Akti IN FRAME F-Main
  202. EXP-LABEL EXP-FORMAT */
  203. /* SETTINGS FOR FILL-IN RowObject.KD_Kto_Debi IN FRAME F-Main
  204. EXP-LABEL EXP-FORMAT */
  205. /* SETTINGS FOR FILL-IN RowObject.KD_Kto_Kred IN FRAME F-Main
  206. EXP-LABEL EXP-FORMAT */
  207. /* SETTINGS FOR FILL-IN RowObject.KD_Kto_Pass IN FRAME F-Main
  208. EXP-LABEL EXP-FORMAT */
  209. /* SETTINGS FOR FILL-IN RowObject.Kurs IN FRAME F-Main
  210. EXP-LABEL EXP-FORMAT */
  211. /* SETTINGS FOR FILL-IN RowObject.SK_Kto_Debi IN FRAME F-Main
  212. EXP-LABEL EXP-FORMAT */
  213. /* SETTINGS FOR FILL-IN RowObject.SK_Kto_Kred IN FRAME F-Main
  214. EXP-LABEL EXP-FORMAT */
  215. /* _RUN-TIME-ATTRIBUTES-END */
  216. &ANALYZE-RESUME
  217. /* Setting information for Queries and Browse Widgets fields */
  218. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  219. /* Query rebuild information for FRAME F-Main
  220. _Options = "NO-LOCK"
  221. _Query is NOT OPENED
  222. */ /* FRAME F-Main */
  223. &ANALYZE-RESUME
  224. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin
  225. /* *************************** Main Block *************************** */
  226. SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR.
  227. IF SAktiv THEN
  228. DO:
  229. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  230. END.
  231. EMPTY TEMP-TABLE tFrwTab.
  232. /* Triggers ------------------------------------------------------ */
  233. ON 'RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE
  234. DO:
  235. RUN RETURN_FELD ( INPUT SELF:HANDLE ).
  236. IF RETURN-VALUE = 'TAB' THEN
  237. DO:
  238. APPLY 'TAB' TO SELF.
  239. RETURN NO-APPLY.
  240. END.
  241. END.
  242. ON 'ENTRY':U OF FRAME {&FRAME-NAME} ANYWHERE
  243. DO:
  244. RUN ENTRY_FELD_TEST ( INPUT SELF:HANDLE ).
  245. IF RETURN-VALUE = 'ERROR' THEN
  246. DO:
  247. APPLY 'ENTRY' TO SELF.
  248. RETURN NO-APPLY.
  249. END.
  250. IF RETURN-VALUE = 'APPLY' THEN
  251. DO:
  252. RETURN NO-APPLY.
  253. END.
  254. END.
  255. ON 'LEAVE':U OF FRAME {&FRAME-NAME} ANYWHERE
  256. DO:
  257. RUN LEAVE_FELD_TEST ( INPUT SELF:HANDLE ).
  258. IF RETURN-VALUE = 'ERROR' THEN
  259. DO:
  260. APPLY 'ENTRY' TO SELF.
  261. RETURN NO-APPLY.
  262. END.
  263. IF RETURN-VALUE = 'APPLY' THEN
  264. DO:
  265. RETURN NO-APPLY.
  266. END.
  267. END.
  268. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  269. RUN initializeObject.
  270. &ENDIF
  271. /************************ INTERNAL PROCEDURES ********************/
  272. /* _UIB-CODE-BLOCK-END */
  273. &ANALYZE-RESUME
  274. /* ********************** Internal Procedures *********************** */
  275. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE addRecord vTableWin
  276. PROCEDURE addRecord :
  277. /*------------------------------------------------------------------------------
  278. Purpose: Super Override
  279. Parameters:
  280. Notes:
  281. ------------------------------------------------------------------------------*/
  282. FNeu = TRUE.
  283. FMut = TRUE.
  284. RUN SUPER.
  285. END PROCEDURE.
  286. /* _UIB-CODE-BLOCK-END */
  287. &ANALYZE-RESUME
  288. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin
  289. PROCEDURE cancelRecord :
  290. /*------------------------------------------------------------------------------
  291. Purpose: Super Override
  292. Parameters:
  293. Notes:
  294. ------------------------------------------------------------------------------*/
  295. /* Code placed here will execute PRIOR to standard behavior. */
  296. RUN SUPER.
  297. /* Code placed here will execute AFTER standard behavior. */
  298. END PROCEDURE.
  299. /* _UIB-CODE-BLOCK-END */
  300. &ANALYZE-RESUME
  301. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE copyRecord vTableWin
  302. PROCEDURE copyRecord :
  303. /*------------------------------------------------------------------------------
  304. Purpose: Super Override
  305. Parameters:
  306. Notes:
  307. ------------------------------------------------------------------------------*/
  308. FNeu = TRUE.
  309. FMut = TRUE.
  310. FCopy = TRUE.
  311. FDisp = FALSE.
  312. RUN SUPER.
  313. END PROCEDURE.
  314. /* _UIB-CODE-BLOCK-END */
  315. &ANALYZE-RESUME
  316. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteRecord vTableWin
  317. PROCEDURE deleteRecord :
  318. /*------------------------------------------------------------------------------
  319. Purpose: Super Override
  320. Parameters:
  321. Notes:
  322. ------------------------------------------------------------------------------*/
  323. DEFINE VARIABLE Ja AS LOG NO-UNDO.
  324. Ja = DYNAMIC-FUNCTION( 'ANTWORT_JA':U, INPUT 1000 ).
  325. IF NOT Ja THEN
  326. DO:
  327. PUBLISH 'TOOLBAR' ( INPUT 'CANCEL':U ).
  328. RETURN NO-APPLY.
  329. END.
  330. RUN SUPER.
  331. /* Code placed here will execute AFTER standard behavior. */
  332. END PROCEDURE.
  333. /* _UIB-CODE-BLOCK-END */
  334. &ANALYZE-RESUME
  335. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE destroyObject vTableWin
  336. PROCEDURE destroyObject :
  337. /*------------------------------------------------------------------------------
  338. Purpose: Super Override
  339. Parameters:
  340. Notes:
  341. ------------------------------------------------------------------------------*/
  342. DEFINE VARIABLE lLetzter AS LOGICAL NO-UNDO.
  343. DEFINE VARIABLE lDurchschnitt AS LOGICAL NO-UNDO.
  344. DEFINE VARIABLE lListen AS LOGICAL NO-UNDO.
  345. DEFINE VARIABLE lInterner AS LOGICAL NO-UNDO.
  346. DEFINE VARIABLE lMut AS LOGICAL NO-UNDO INIT FALSE.
  347. DEFINE VARIABLE nEp AS DECIMAL NO-UNDO DECIMALS 4.
  348. FIND FIRST tFrwTab WHERE tFrwTab.lMut = TRUE.
  349. IF AVAILABLE tFrwTab THEN lMut = TRUE.
  350. IF lMut THEN
  351. DO:
  352. RUN 'g-epanpassen.w' (OUTPUT lLetzter, OUTPUT lDurchschnitt, OUTPUT lListen, OUTPUT lInterner) NO-ERROR.
  353. IF lDurchschnitt = ? THEN lDurchschnitt = FALSE.
  354. IF lInterner = ? THEN lInterner = FALSE.
  355. IF lLetzter = ? THEN lLetzter = FALSE.
  356. IF lListen = ? THEN lListen = FALSE.
  357. END.
  358. SESSION:SET-WAIT-STATE('GENERAL').
  359. FOR EACH tFrwTab WHERE tFrwTab.lMut = TRUE:
  360. IF tFrwTab.OldKurs = 0 THEN tFrwTab.OldKurs = tFrwTab.Kurs.
  361. IF tFrwTab.Kurs = 0 THEN NEXT.
  362. FOR EACH Liefst
  363. WHERE Liefst.Firma = Firma
  364. AND Liefst.Frw = tFrwTab.Frw NO-LOCK TRANSACTION:
  365. FOR EACH ArtLief USE-INDEX ArtLief-k2
  366. WHERE ArtLief.Firma = Liefst.Firma
  367. AND ArtLief.Knr = Liefst.Knr:
  368. IF ArtLief.S_Preis_FRW <> 0
  369. THEN ArtLief.S_Preis = ArtLief.S_Preis_Frw
  370. * tFrwTab.Kurs
  371. / tFrwTab.Faktor.
  372. IF ArtLief.L_EP_FRW <> 0
  373. THEN ArtLief.L_EP = ArtLief.L_EP_Frw
  374. * tFrwTab.Kurs
  375. / tFrwTab.Faktor.
  376. FIND Artst OF ArtLief NO-ERROR.
  377. IF NOT AVAILABLE Artst THEN
  378. DO:
  379. DELETE ArtLief.
  380. NEXT.
  381. END.
  382. IF lLetzter THEN
  383. DO:
  384. IF Artst.LEP = 0 THEN Artst.LEP = ArtLief.S_Preis.
  385. ELSE Artst.LEP = Artst.LEP * (tFrwTab.Kurs / tFrwTab.OldKurs).
  386. END.
  387. IF lInterner THEN
  388. DO:
  389. IF Artst.EP-Intern = 0 THEN Artst.EP-Intern = 0.
  390. ELSE Artst.EP-Intern = Artst.EP-Intern * (tFrwTab.Kurs / tFrwTab.OldKurs).
  391. END.
  392. IF lDurchschnitt THEN
  393. DO:
  394. IF Artst.DEP = 0 THEN Artst.DEP = 0.
  395. ELSE Artst.DEP = Artst.DEP * (tFrwTab.Kurs / tFrwTab.OldKurs).
  396. END.
  397. IF lListen THEN
  398. DO:
  399. IF Artst.Listen_EP = 0 THEN Artst.Listen_EP = 0.
  400. ELSE Artst.Listen_EP = (ArtLief.S_Preis * (100 - ArtLief.Rabatt) / 100) + ArtLief.Spesen.
  401. END.
  402. nEp = (IF Artst.Listen_EP <> 0 THEN Artst.Listen_EP ELSE Artst.LEP).
  403. IF nEp <> 0 THEN
  404. DO:
  405. FOR EACH ArtPreis
  406. WHERE ArtPreis.Firma = Artst.Firma
  407. AND ArtPreis.Artnr = Artst.Artnr
  408. AND ArtPreis.Inhalt = Artst.Inhalt
  409. AND ArtPreis.Jahr = Artst.Jahr
  410. AND ArtPreis.Aktiv = TRUE:
  411. ArtPreis.Marge = 100 - (nEP * 100 / ArtPreis.VK_Netto).
  412. END.
  413. END.
  414. END.
  415. END.
  416. END.
  417. SESSION:SET-WAIT-STATE('').
  418. /* Code placed here will execute PRIOR to standard behavior. */
  419. RUN SUPER.
  420. PUBLISH 'NEUER_EP'.
  421. END PROCEDURE.
  422. /* _UIB-CODE-BLOCK-END */
  423. &ANALYZE-RESUME
  424. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin
  425. PROCEDURE disableFields :
  426. /*------------------------------------------------------------------------------
  427. Purpose: Super Override
  428. Parameters:
  429. Notes:
  430. ------------------------------------------------------------------------------*/
  431. DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO.
  432. DO WITH FRAME {&FRAME-NAME}:
  433. END.
  434. RUN SUPER( INPUT pcFieldType).
  435. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  436. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  437. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN
  438. DO:
  439. RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT 15 ).
  440. END.
  441. DO WITH FRAME {&FRAME-NAME}:
  442. END.
  443. END PROCEDURE.
  444. /* _UIB-CODE-BLOCK-END */
  445. &ANALYZE-RESUME
  446. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI vTableWin _DEFAULT-DISABLE
  447. PROCEDURE disable_UI :
  448. /*------------------------------------------------------------------------------
  449. Purpose: DISABLE the User Interface
  450. Parameters: <none>
  451. Notes: Here we clean-up the user-interface by deleting
  452. dynamic widgets we have created and/or hide
  453. frames. This procedure is usually called when
  454. we are ready to "clean-up" after running.
  455. ------------------------------------------------------------------------------*/
  456. /* Hide all frames. */
  457. HIDE FRAME F-Main.
  458. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  459. END PROCEDURE.
  460. /* _UIB-CODE-BLOCK-END */
  461. &ANALYZE-RESUME
  462. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE displayFields vTableWin
  463. PROCEDURE displayFields :
  464. /*------------------------------------------------------------------------------
  465. Purpose: Super Override
  466. Parameters:
  467. Notes:
  468. ------------------------------------------------------------------------------*/
  469. DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  470. IF NOT FDisp THEN
  471. DO:
  472. FDisp = TRUE.
  473. RETURN.
  474. END.
  475. OldColValues = pcColValues.
  476. OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
  477. IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ).
  478. DO WITH FRAME {&FRAME-NAME}:
  479. END.
  480. RUN SUPER( INPUT pcColValues).
  481. DO WITH FRAME {&FRAME-NAME}:
  482. END.
  483. END PROCEDURE.
  484. /* _UIB-CODE-BLOCK-END */
  485. &ANALYZE-RESUME
  486. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin
  487. PROCEDURE enableFields :
  488. /*------------------------------------------------------------------------------
  489. Purpose: Super Override
  490. Parameters:
  491. Notes:
  492. ------------------------------------------------------------------------------*/
  493. /* Code placed here will execute PRIOR to standard behavior. */
  494. /*
  495. RUN SUPER.
  496. */
  497. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  498. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ).
  499. IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN
  500. DO:
  501. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ).
  502. END.
  503. DO WITH FRAME {&FRAME-NAME}:
  504. END.
  505. IF FNeu THEN RETURN.
  506. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN
  507. DO:
  508. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  509. END.
  510. END PROCEDURE.
  511. /* _UIB-CODE-BLOCK-END */
  512. &ANALYZE-RESUME
  513. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin
  514. PROCEDURE enableObject :
  515. /*------------------------------------------------------------------------------
  516. Purpose: Super Override
  517. Parameters:
  518. Notes:
  519. ------------------------------------------------------------------------------*/
  520. EMPTY TEMP-TABLE tFrwTab.
  521. FOR EACH FrwTab NO-LOCK:
  522. CREATE tFrwTab.
  523. BUFFER-COPY FrwTab
  524. TO tFrwTab
  525. ASSIGN
  526. tFrwTab.OldKurs = FrwTab.Kurs
  527. tFrwTab.lMut = FALSE.
  528. END.
  529. RUN SUPER.
  530. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  531. IF SAktiv THEN
  532. DO:
  533. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  534. END.
  535. END PROCEDURE.
  536. /* _UIB-CODE-BLOCK-END */
  537. &ANALYZE-RESUME
  538. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin
  539. PROCEDURE ENTRY_FELD_TEST :
  540. /*------------------------------------------------------------------------------
  541. Purpose:
  542. Parameters: <none>
  543. Notes:
  544. ------------------------------------------------------------------------------*/
  545. DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  546. DEFINE VARIABLE FeldName AS CHARACTER NO-UNDO.
  547. DEFINE VARIABLE FeldInhalt AS CHARACTER NO-UNDO.
  548. FeldName = ''.
  549. FeldInhalt = ''.
  550. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  551. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  552. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  553. FeldName = ipHandle:NAME.
  554. IF ipHandle:TYPE = 'FILL-IN' OR
  555. ipHandle:TYPE = 'COMBO-BOX' OR
  556. ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE.
  557. IF NOT FMut THEN RETURN ''.
  558. DO WITH FRAME {&FRAME-NAME}:
  559. CASE FeldName:
  560. END CASE.
  561. END.
  562. RETURN ''.
  563. END PROCEDURE.
  564. /* _UIB-CODE-BLOCK-END */
  565. &ANALYZE-RESUME
  566. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FEHLWERTE vTableWin
  567. PROCEDURE FEHLWERTE :
  568. /*------------------------------------------------------------------------------
  569. Purpose:
  570. Parameters: <none>
  571. Notes:
  572. ------------------------------------------------------------------------------*/
  573. DEFINE INPUT-OUTPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  574. DEFINE VARIABLE FwFelder AS CHARACTER NO-UNDO.
  575. DEFINE VARIABLE FwFeld AS CHARACTER NO-UNDO.
  576. DEFINE VARIABLE FwValue AS CHARACTER NO-UNDO.
  577. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  578. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  579. GET-KEY-VALUE SECTION 'Fw???????' KEY ? VALUE FwFelder.
  580. IF NOT FCopy THEN
  581. DO:
  582. DO ix = 1 TO NUM-ENTRIES(FwFelder, ','):
  583. FwFeld = ENTRY (ix , FwFelder , ',').
  584. i1 = LOOKUP(FwFeld, oldColList, ',') + 1.
  585. IF i1 < 2 THEN NEXT.
  586. GET-KEY-VALUE SECTION 'Fw???????' KEY FwFeld VALUE FwValue.
  587. ENTRY(i1, pcColValues, CHR(1)) = FwValue NO-ERROR.
  588. END.
  589. END.
  590. IF FCopy THEN
  591. DO:
  592. END.
  593. OldColValues = pcColValues.
  594. END PROCEDURE.
  595. /* _UIB-CODE-BLOCK-END */
  596. &ANALYZE-RESUME
  597. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_FELD_TEST vTableWin
  598. PROCEDURE LEAVE_FELD_TEST :
  599. /*------------------------------------------------------------------------------
  600. Purpose:
  601. Parameters: <none>
  602. Notes:
  603. ------------------------------------------------------------------------------*/
  604. DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  605. DEFINE VARIABLE FeldName AS CHARACTER NO-UNDO.
  606. DEFINE VARIABLE FeldInhalt AS CHARACTER NO-UNDO.
  607. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  608. DEFINE VARIABLE LKY AS INTEGER NO-UNDO.
  609. DEFINE VARIABLE hLEAVE AS HANDLE NO-UNDO.
  610. DEFINE VARIABLE hENTER AS HANDLE NO-UNDO.
  611. DEFINE VARIABLE Daten AS CHARACTER NO-UNDO.
  612. IF FMut = FALSE THEN RETURN ''.
  613. LKY = LASTKEY.
  614. hENTER = LAST-EVENT:WIDGET-ENTER.
  615. hLEAVE = LAST-EVENT:WIDGET-LEAVE.
  616. FeldName = ''.
  617. FeldInhalt = ''.
  618. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  619. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  620. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  621. FeldName = ipHandle:NAME.
  622. IF ipHandle:TYPE = 'FILL-IN' OR
  623. ipHandle:TYPE = 'COMBO-BOX' OR
  624. ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE.
  625. DO WHILE FNeu:
  626. CASE FeldName:
  627. WHEN 'FRW' THEN
  628. DO:
  629. FIND FRWTab USE-INDEX FRWTab-k1
  630. WHERE FRWTab.Frw = FeldInhalt NO-LOCK NO-ERROR.
  631. IF NOT AVAILABLE FRWTab THEN RETURN ''.
  632. RUN FEHLER ( INPUT 1048 ).
  633. RETURN 'ERROR'.
  634. END.
  635. END CASE.
  636. LEAVE.
  637. END.
  638. IF LOOKUP(FeldName, '{&LETZTES_FELD}', ',') > 0 THEN
  639. DO:
  640. DO WHILE TRUE:
  641. IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE.
  642. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE.
  643. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE.
  644. RETURN ''.
  645. END.
  646. APPLY 'ALT-S'.
  647. RETURN 'APPLY'.
  648. END.
  649. RETURN ''.
  650. END PROCEDURE.
  651. /* _UIB-CODE-BLOCK-END */
  652. &ANALYZE-RESUME
  653. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETURN_FELD vTableWin
  654. PROCEDURE RETURN_FELD :
  655. /*------------------------------------------------------------------------------
  656. Purpose:
  657. Parameters: <none>
  658. Notes:
  659. ------------------------------------------------------------------------------*/
  660. DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  661. DEFINE VARIABLE FeldName AS CHARACTER NO-UNDO.
  662. IF FMut = FALSE THEN RETURN ''.
  663. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  664. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  665. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  666. FeldName = ipHandle:NAME.
  667. IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN
  668. DO:
  669. RETURN 'TAB'.
  670. END.
  671. IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN
  672. DO:
  673. RETURN 'TAB'.
  674. END.
  675. FeldName = 'rowObject.' + FeldName.
  676. IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN
  677. DO:
  678. RETURN 'TAB'.
  679. END.
  680. IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN
  681. DO:
  682. RETURN 'TAB'.
  683. END.
  684. RETURN ''.
  685. END PROCEDURE.
  686. /* _UIB-CODE-BLOCK-END */
  687. &ANALYZE-RESUME
  688. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin
  689. PROCEDURE updateMode :
  690. /*------------------------------------------------------------------------------
  691. Purpose: Super Override
  692. Parameters:
  693. Notes:
  694. ------------------------------------------------------------------------------*/
  695. DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO.
  696. CASE pcMode:
  697. WHEN 'updateBegin' THEN
  698. DO:
  699. END.
  700. WHEN 'updateEnd' THEN
  701. DO:
  702. END.
  703. END.
  704. RUN SUPER( INPUT pcMode).
  705. CASE pcMode:
  706. WHEN 'updateBegin' THEN
  707. DO:
  708. FMut = TRUE.
  709. END.
  710. WHEN 'updateEnd' THEN
  711. DO:
  712. FNeu = FALSE.
  713. FMut = FALSE.
  714. FCopy = FALSE.
  715. END.
  716. END.
  717. END PROCEDURE.
  718. /* _UIB-CODE-BLOCK-END */
  719. &ANALYZE-RESUME
  720. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin
  721. PROCEDURE updateRecord :
  722. /*------------------------------------------------------------------------------
  723. Purpose: Super Override
  724. Parameters:
  725. Notes:
  726. ------------------------------------------------------------------------------*/
  727. DO WITH FRAME {&FRAME-NAME}:
  728. END.
  729. FNeu = FALSE.
  730. FCopy = FALSE.
  731. RUN SUPER.
  732. DO WITH FRAME {&FRAME-NAME}:
  733. IF rowObject.Frw:SCREEN-VALUE = 'CHF' THEN RETURN.
  734. FIND FrwTab USE-INDEX FrwTab-k1
  735. WHERE FrwTab.Frw = rowObject.Frw:SCREEN-VALUE.
  736. FIND FIRST tFrwTab OF FrwTab NO-ERROR.
  737. ASSIGN
  738. tFrwTab.Kurs = FrwTab.Kurs
  739. tFrwTab.lMut = TRUE.
  740. END.
  741. END PROCEDURE.
  742. /* _UIB-CODE-BLOCK-END */
  743. &ANALYZE-RESUME