g-preismutepmarge.w 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gPreiseEpMarge
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gPreiseEpMarge
  6. /*------------------------------------------------------------------------
  7. File:
  8. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  9. Input Parameters:
  10. <none>
  11. Output Parameters:
  12. <none>
  13. Author:
  14. Created:
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress AppBuilder. */
  17. /*----------------------------------------------------------------------*/
  18. /* Create an unnamed pool to store all the widgets created
  19. by this procedure. This is a good default which assures
  20. that this procedure's triggers and internal procedures
  21. will execute in this procedure's storage, and that proper
  22. cleanup will occur on deletion of the procedure. */
  23. CREATE WIDGET-POOL.
  24. /* *************************** Definitions ************************** */
  25. /* Parameters Definitions --- */
  26. /* Local Variable Definitions --- */
  27. DEFINE VARIABLE MaxPage AS INTEGER NO-UNDO.
  28. DEFINE VARIABLE AktSeite AS INTEGER NO-UNDO.
  29. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO.
  30. DEFINE VARIABLE Firma AS CHARACTER NO-UNDO.
  31. DEFINE VARIABLE Progname AS CHARACTER NO-UNDO.
  32. DEFINE VARIABLE ok AS LOG NO-UNDO.
  33. DEFINE VARIABLE AddText AS CHARACTER NO-UNDO.
  34. DEFINE VARIABLE VWGrp AS INTEGER NO-UNDO.
  35. DEFINE VARIABLE VDateiName AS CHARACTER NO-UNDO.
  36. DEFINE VARIABLE VxlsDatei AS CHARACTER NO-UNDO.
  37. DEFINE VARIABLE VcsvDatei AS CHARACTER NO-UNDO.
  38. DEFINE VARIABLE VWert AS CHARACTER NO-UNDO.
  39. DEFINE VARIABLE htExcel AS HANDLE NO-UNDO.
  40. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO.
  41. DEFINE VARIABLE iInhalt AS INTEGER NO-UNDO.
  42. DEFINE VARIABLE iJahr AS INTEGER NO-UNDO.
  43. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
  44. DEFINE STREAM In_Stream.
  45. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO.
  46. DEFINE TEMP-TABLE tPreisGrp NO-UNDO
  47. FIELD Preis_Grp AS INTEGER
  48. FIELD Brutto AS LOG
  49. FIELD WucdK AS INTEGER
  50. FIELD cMarge AS CHARACTER.
  51. DEFINE TEMP-TABLE tArtPreis LIKE ArtPreis.
  52. DEFINE BUFFER BArtPreis FOR ArtPreis.
  53. DEFINE TEMP-TABLE tExcel NO-UNDO
  54. FIELD A AS CHARACTER
  55. FIELD B AS CHARACTER
  56. FIELD C AS CHARACTER
  57. FIELD D AS CHARACTER
  58. FIELD E AS CHARACTER
  59. FIELD F AS CHARACTER
  60. FIELD G AS CHARACTER
  61. FIELD H AS CHARACTER
  62. FIELD I AS CHARACTER
  63. FIELD J AS CHARACTER
  64. FIELD K AS CHARACTER
  65. FIELD L AS CHARACTER
  66. FIELD M AS CHARACTER
  67. FIELD N AS CHARACTER
  68. FIELD O AS CHARACTER
  69. FIELD P AS CHARACTER
  70. FIELD Q AS CHARACTER
  71. FIELD R AS CHARACTER
  72. FIELD S AS CHARACTER
  73. FIELD T AS CHARACTER
  74. FIELD U AS CHARACTER
  75. FIELD V AS CHARACTER
  76. FIELD W AS CHARACTER
  77. FIELD X AS CHARACTER
  78. FIELD Y AS CHARACTER
  79. FIELD Z AS CHARACTER
  80. .
  81. /* _UIB-CODE-BLOCK-END */
  82. &ANALYZE-RESUME
  83. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  84. /* ******************** Preprocessor Definitions ******************** */
  85. &Scoped-define PROCEDURE-TYPE SmartDialog
  86. &Scoped-define DB-AWARE no
  87. &Scoped-define ADM-CONTAINER DIALOG-BOX
  88. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  89. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  90. &Scoped-define FRAME-NAME gPreiseEpMarge
  91. /* Standard List Definitions */
  92. &Scoped-Define ENABLED-OBJECTS F_Datum F_Dateiname Btn_Datei F_SpArtnr ~
  93. F_SpInhalt F_SpJahr F_SpEp CB_Preisgrp_1 F_SpPrGrp_1 CB_Preisgrp_2 ~
  94. F_SpPrGrp_2 CB_Preisgrp_3 F_SpPrGrp_3 CB_Preisgrp_4 F_SpPrGrp_4 ~
  95. CB_Preisgrp_5 F_SpPrGrp_5 R_Runden Btn_OK Btn_Cancel RECT-5
  96. &Scoped-Define DISPLAYED-OBJECTS F_Datum F_Dateiname F_SpArtnr F_SpInhalt ~
  97. F_SpJahr F_SpEp CB_Preisgrp_1 F_SpPrGrp_1 CB_Preisgrp_2 F_SpPrGrp_2 ~
  98. CB_Preisgrp_3 F_SpPrGrp_3 CB_Preisgrp_4 F_SpPrGrp_4 CB_Preisgrp_5 ~
  99. F_SpPrGrp_5 R_Runden
  100. /* Custom List Definitions */
  101. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  102. &Scoped-define List-6 F_Datum F_Dateiname F_SpArtnr F_SpInhalt F_SpJahr ~
  103. F_SpEp F_SpPrGrp_1 F_SpPrGrp_2 F_SpPrGrp_3 F_SpPrGrp_4 F_SpPrGrp_5 R_Runden
  104. /* _UIB-PREPROCESSOR-BLOCK-END */
  105. &ANALYZE-RESUME
  106. /* *********************** Control Definitions ********************** */
  107. /* Define a dialog box */
  108. /* Definitions of the field level widgets */
  109. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  110. LABEL "&Abbrechen"
  111. SIZE 15 BY 1
  112. BGCOLOR 15 .
  113. DEFINE BUTTON Btn_Datei
  114. IMAGE-UP FILE "grafik/select.bmp":U
  115. IMAGE-DOWN FILE "grafik/select.bmp":U
  116. IMAGE-INSENSITIVE FILE "grafik/select.bmp":U
  117. LABEL "D"
  118. SIZE 6 BY 1.
  119. DEFINE BUTTON Btn_OK
  120. LABEL "&Starten"
  121. SIZE 15 BY 1
  122. BGCOLOR 15 .
  123. DEFINE VARIABLE CB_Preisgrp_1 AS CHARACTER FORMAT "X(256)":U
  124. LABEL "Preisgruppe"
  125. VIEW-AS COMBO-BOX INNER-LINES 5
  126. LIST-ITEM-PAIRS "Item 1","Item 1"
  127. DROP-DOWN-LIST
  128. SIZE 31.2 BY 1 NO-UNDO.
  129. DEFINE VARIABLE CB_Preisgrp_2 AS CHARACTER FORMAT "X(256)":U
  130. LABEL "Preisgruppe"
  131. VIEW-AS COMBO-BOX INNER-LINES 5
  132. LIST-ITEM-PAIRS "Item 1","Item 1"
  133. DROP-DOWN-LIST
  134. SIZE 31.2 BY 1 NO-UNDO.
  135. DEFINE VARIABLE CB_Preisgrp_3 AS CHARACTER FORMAT "X(256)":U
  136. LABEL "Preisgruppe"
  137. VIEW-AS COMBO-BOX INNER-LINES 5
  138. LIST-ITEM-PAIRS "Item 1","Item 1"
  139. DROP-DOWN-LIST
  140. SIZE 31.2 BY 1 NO-UNDO.
  141. DEFINE VARIABLE CB_Preisgrp_4 AS CHARACTER FORMAT "X(256)":U
  142. LABEL "Preisgruppe"
  143. VIEW-AS COMBO-BOX INNER-LINES 5
  144. LIST-ITEM-PAIRS "Item 1","Item 1"
  145. DROP-DOWN-LIST
  146. SIZE 31.2 BY 1 NO-UNDO.
  147. DEFINE VARIABLE CB_Preisgrp_5 AS CHARACTER FORMAT "X(256)":U
  148. LABEL "Preisgruppe"
  149. VIEW-AS COMBO-BOX INNER-LINES 5
  150. LIST-ITEM-PAIRS "Item 1","Item 1"
  151. DROP-DOWN-LIST
  152. SIZE 31.2 BY 1 NO-UNDO.
  153. DEFINE VARIABLE F_Dateiname AS CHARACTER FORMAT "X(256)":U
  154. LABEL "Dateiname"
  155. VIEW-AS FILL-IN NATIVE
  156. SIZE 58 BY 1
  157. BGCOLOR 15 NO-UNDO.
  158. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U
  159. LABEL "ab Datum"
  160. VIEW-AS FILL-IN NATIVE
  161. SIZE 16 BY 1
  162. BGCOLOR 15 NO-UNDO.
  163. DEFINE VARIABLE F_SpArtnr AS CHARACTER FORMAT "X(256)":U
  164. LABEL "Spalte Artikelnummer"
  165. VIEW-AS FILL-IN NATIVE
  166. SIZE 4 BY 1
  167. BGCOLOR 15 NO-UNDO.
  168. DEFINE VARIABLE F_SpEp AS CHARACTER FORMAT "X(256)":U
  169. LABEL "Spalte EP"
  170. VIEW-AS FILL-IN NATIVE
  171. SIZE 4 BY 1
  172. BGCOLOR 15 NO-UNDO.
  173. DEFINE VARIABLE F_SpInhalt AS CHARACTER FORMAT "X(256)":U
  174. LABEL "Spalte Inhalt"
  175. VIEW-AS FILL-IN NATIVE
  176. SIZE 4 BY 1
  177. BGCOLOR 15 NO-UNDO.
  178. DEFINE VARIABLE F_SpJahr AS CHARACTER FORMAT "X(256)":U
  179. LABEL "Spalte Jahr"
  180. VIEW-AS FILL-IN NATIVE
  181. SIZE 4 BY 1
  182. BGCOLOR 15 NO-UNDO.
  183. DEFINE VARIABLE F_SpPrGrp_1 AS CHARACTER FORMAT "X(256)":U
  184. LABEL "Spalte Marge"
  185. VIEW-AS FILL-IN NATIVE
  186. SIZE 4 BY 1
  187. BGCOLOR 15 NO-UNDO.
  188. DEFINE VARIABLE F_SpPrGrp_2 AS CHARACTER FORMAT "X(256)":U
  189. LABEL "Spalte Marge"
  190. VIEW-AS FILL-IN NATIVE
  191. SIZE 4 BY 1
  192. BGCOLOR 15 NO-UNDO.
  193. DEFINE VARIABLE F_SpPrGrp_3 AS CHARACTER FORMAT "X(256)":U
  194. LABEL "Spalte Marge"
  195. VIEW-AS FILL-IN NATIVE
  196. SIZE 4 BY 1
  197. BGCOLOR 15 NO-UNDO.
  198. DEFINE VARIABLE F_SpPrGrp_4 AS CHARACTER FORMAT "X(256)":U
  199. LABEL "Spalte Marge"
  200. VIEW-AS FILL-IN NATIVE
  201. SIZE 4 BY 1
  202. BGCOLOR 15 NO-UNDO.
  203. DEFINE VARIABLE F_SpPrGrp_5 AS CHARACTER FORMAT "X(256)":U
  204. LABEL "Spalte Marge"
  205. VIEW-AS FILL-IN NATIVE
  206. SIZE 4 BY 1
  207. BGCOLOR 15 NO-UNDO.
  208. DEFINE VARIABLE R_Runden AS INTEGER
  209. VIEW-AS RADIO-SET VERTICAL
  210. RADIO-BUTTONS
  211. "Keine Rundung", 1,
  212. "5er Rundung", 2,
  213. "10er Rundung", 3
  214. SIZE 40 BY 2.52 NO-UNDO.
  215. DEFINE RECTANGLE RECT-5
  216. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  217. SIZE 86 BY 16.19.
  218. /* ************************ Frame Definitions *********************** */
  219. DEFINE FRAME gPreiseEpMarge
  220. F_Datum AT ROW 1.52 COL 20 COLON-ALIGNED
  221. F_Dateiname AT ROW 2.52 COL 20 COLON-ALIGNED WIDGET-ID 16
  222. Btn_Datei AT ROW 2.52 COL 81 WIDGET-ID 18
  223. F_SpArtnr AT ROW 4 COL 74 COLON-ALIGNED WIDGET-ID 20
  224. F_SpInhalt AT ROW 5 COL 74 COLON-ALIGNED WIDGET-ID 22
  225. F_SpJahr AT ROW 6 COL 74 COLON-ALIGNED WIDGET-ID 24
  226. F_SpEp AT ROW 7 COL 74 COLON-ALIGNED WIDGET-ID 26
  227. CB_Preisgrp_1 AT ROW 8.14 COL 19.8 COLON-ALIGNED WIDGET-ID 30
  228. F_SpPrGrp_1 AT ROW 8 COL 74 COLON-ALIGNED WIDGET-ID 32
  229. CB_Preisgrp_2 AT ROW 9.14 COL 19.8 COLON-ALIGNED WIDGET-ID 34
  230. F_SpPrGrp_2 AT ROW 9 COL 74 COLON-ALIGNED WIDGET-ID 36
  231. CB_Preisgrp_3 AT ROW 10.14 COL 19.8 COLON-ALIGNED WIDGET-ID 38
  232. F_SpPrGrp_3 AT ROW 10 COL 74 COLON-ALIGNED WIDGET-ID 40
  233. CB_Preisgrp_4 AT ROW 11.14 COL 19.8 COLON-ALIGNED WIDGET-ID 42
  234. F_SpPrGrp_4 AT ROW 11 COL 74 COLON-ALIGNED WIDGET-ID 44
  235. CB_Preisgrp_5 AT ROW 12.14 COL 19.8 COLON-ALIGNED WIDGET-ID 46
  236. F_SpPrGrp_5 AT ROW 12 COL 74 COLON-ALIGNED WIDGET-ID 48
  237. R_Runden AT ROW 14 COL 22 NO-LABELS WIDGET-ID 4
  238. Btn_OK AT ROW 14.52 COL 69
  239. Btn_Cancel AT ROW 15.52 COL 69
  240. RECT-5 AT ROW 1.24 COL 2
  241. SPACE(1.19) SKIP(0.23)
  242. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  243. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  244. TITLE "Marge Preisgruppe".
  245. /* *********************** Procedure Settings ************************ */
  246. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  247. /* Settings for THIS-PROCEDURE
  248. Type: SmartDialog
  249. Allow: Basic,Browse,DB-Fields,Query,Smart
  250. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  251. Design Page: 1
  252. Other Settings: COMPILE
  253. */
  254. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  255. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gPreiseEpMarge
  256. /* ************************* Included-Libraries *********************** */
  257. {src/adm2/containr.i}
  258. /* _UIB-CODE-BLOCK-END */
  259. &ANALYZE-RESUME
  260. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  261. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  262. /* SETTINGS FOR DIALOG-BOX gPreiseEpMarge
  263. FRAME-NAME Custom */
  264. ASSIGN
  265. FRAME gPreiseEpMarge:SCROLLABLE = FALSE
  266. FRAME gPreiseEpMarge:HIDDEN = TRUE.
  267. /* SETTINGS FOR FILL-IN F_Dateiname IN FRAME gPreiseEpMarge
  268. 6 */
  269. /* SETTINGS FOR FILL-IN F_Datum IN FRAME gPreiseEpMarge
  270. 6 */
  271. /* SETTINGS FOR FILL-IN F_SpArtnr IN FRAME gPreiseEpMarge
  272. 6 */
  273. /* SETTINGS FOR FILL-IN F_SpEp IN FRAME gPreiseEpMarge
  274. 6 */
  275. /* SETTINGS FOR FILL-IN F_SpInhalt IN FRAME gPreiseEpMarge
  276. 6 */
  277. /* SETTINGS FOR FILL-IN F_SpJahr IN FRAME gPreiseEpMarge
  278. 6 */
  279. /* SETTINGS FOR FILL-IN F_SpPrGrp_1 IN FRAME gPreiseEpMarge
  280. 6 */
  281. /* SETTINGS FOR FILL-IN F_SpPrGrp_2 IN FRAME gPreiseEpMarge
  282. 6 */
  283. /* SETTINGS FOR FILL-IN F_SpPrGrp_3 IN FRAME gPreiseEpMarge
  284. 6 */
  285. /* SETTINGS FOR FILL-IN F_SpPrGrp_4 IN FRAME gPreiseEpMarge
  286. 6 */
  287. /* SETTINGS FOR FILL-IN F_SpPrGrp_5 IN FRAME gPreiseEpMarge
  288. 6 */
  289. /* SETTINGS FOR RADIO-SET R_Runden IN FRAME gPreiseEpMarge
  290. 6 */
  291. /* _RUN-TIME-ATTRIBUTES-END */
  292. &ANALYZE-RESUME
  293. /* Setting information for Queries and Browse Widgets fields */
  294. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gPreiseEpMarge
  295. /* Query rebuild information for DIALOG-BOX gPreiseEpMarge
  296. _Options = "SHARE-LOCK"
  297. _Query is NOT OPENED
  298. */ /* DIALOG-BOX gPreiseEpMarge */
  299. &ANALYZE-RESUME
  300. /* ************************ Control Triggers ************************ */
  301. &Scoped-define SELF-NAME gPreiseEpMarge
  302. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gPreiseEpMarge gPreiseEpMarge
  303. ON END-ERROR OF FRAME gPreiseEpMarge /* Marge Preisgruppe */
  304. DO:
  305. RUN ENDE.
  306. RETURN NO-APPLY.
  307. END.
  308. /* _UIB-CODE-BLOCK-END */
  309. &ANALYZE-RESUME
  310. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gPreiseEpMarge gPreiseEpMarge
  311. ON GO OF FRAME gPreiseEpMarge /* Marge Preisgruppe */
  312. DO:
  313. /*
  314. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR.
  315. */
  316. END.
  317. /* _UIB-CODE-BLOCK-END */
  318. &ANALYZE-RESUME
  319. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gPreiseEpMarge gPreiseEpMarge
  320. ON WINDOW-CLOSE OF FRAME gPreiseEpMarge /* Marge Preisgruppe */
  321. DO:
  322. RUN ENDE.
  323. RETURN NO-APPLY.
  324. END.
  325. /* _UIB-CODE-BLOCK-END */
  326. &ANALYZE-RESUME
  327. &Scoped-define SELF-NAME Btn_Cancel
  328. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gPreiseEpMarge
  329. ON CHOOSE OF Btn_Cancel IN FRAME gPreiseEpMarge /* Abbrechen */
  330. DO:
  331. RUN ENDE.
  332. RETURN NO-APPLY.
  333. END.
  334. /* _UIB-CODE-BLOCK-END */
  335. &ANALYZE-RESUME
  336. &Scoped-define SELF-NAME Btn_Datei
  337. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Datei gPreiseEpMarge
  338. ON CHOOSE OF Btn_Datei IN FRAME gPreiseEpMarge /* D */
  339. DO:
  340. RUN DATEI_EINGABE.
  341. END.
  342. /* _UIB-CODE-BLOCK-END */
  343. &ANALYZE-RESUME
  344. &Scoped-define SELF-NAME Btn_OK
  345. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gPreiseEpMarge
  346. ON CHOOSE OF Btn_OK IN FRAME gPreiseEpMarge /* Starten */
  347. DO:
  348. RUN NEURECHNEN.
  349. RETURN NO-APPLY.
  350. END.
  351. /* _UIB-CODE-BLOCK-END */
  352. &ANALYZE-RESUME
  353. &UNDEFINE SELF-NAME
  354. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gPreiseEpMarge
  355. /* *************************** Main Block *************************** */
  356. MaxPage = 1.
  357. AktSeite = 1.
  358. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  359. Progname = ENTRY(1, THIS-PROCEDURE:NAME, '.') NO-ERROR.
  360. SESSION:DATA-ENTRY-RETURN = TRUE.
  361. /* TRIGGERS ------------------------------------------------------ */
  362. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE
  363. DO:
  364. RUN ENDE.
  365. RETURN NO-APPLY.
  366. END.
  367. /* ------------------------------------------------------------------ */
  368. {src/adm2/dialogmn.i}
  369. /* _UIB-CODE-BLOCK-END */
  370. &ANALYZE-RESUME
  371. /* ********************** Internal Procedures *********************** */
  372. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gPreiseEpMarge _ADM-CREATE-OBJECTS
  373. PROCEDURE adm-create-objects :
  374. /*------------------------------------------------------------------------------
  375. Purpose: Create handles for all SmartObjects used in this procedure.
  376. After SmartObjects are initialized, then SmartLinks are added.
  377. Parameters: <none>
  378. ------------------------------------------------------------------------------*/
  379. END PROCEDURE.
  380. /* _UIB-CODE-BLOCK-END */
  381. &ANALYZE-RESUME
  382. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_PreisGrp gPreiseEpMarge
  383. PROCEDURE CREATE_PreisGrp :
  384. /*------------------------------------------------------------------------------
  385. Purpose:
  386. Parameters: <none>
  387. Notes:
  388. ------------------------------------------------------------------------------*/
  389. DEFINE INPUT PARAMETER ipPreis_Grp AS INTEGER NO-UNDO.
  390. DEFINE INPUT PARAMETER ipSpMarge AS CHARACTER NO-UNDO.
  391. DEFINE VARIABLE WucdK AS INTEGER NO-UNDO.
  392. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO.
  393. IF ipSpMarge = '' THEN RETURN.
  394. ipSpMarge = REPLACE(REPLACE(ipSpMarge, "'", ""), ',', '').
  395. WucdK = 1.
  396. FOR EACH Debst USE-INDEX Debst-k1
  397. WHERE Debst.Firma = Firma
  398. AND Debst.Preis_Grp = ipPreis_Grp NO-LOCK:
  399. WucdK = Debst.MWST.
  400. LEAVE.
  401. END.
  402. RUN FIND_PREISGRUPPE ( ipPreis_Grp, OUTPUT cDaten ).
  403. CREATE tPreisGrp.
  404. ASSIGN
  405. tPreisGrp.Preis_Grp = ipPreis_Grp
  406. tPreisGrp.Brutto = (IF INTEGER(ENTRY(3, cDaten, CHR(01))) = 0 THEN FALSE ELSE TRUE)
  407. tPreisGrp.WucdK = WucdK
  408. tPreisGrp.cMarge = ipSpMarge.
  409. END PROCEDURE.
  410. /* _UIB-CODE-BLOCK-END */
  411. &ANALYZE-RESUME
  412. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DATEI_EINGABE gPreiseEpMarge
  413. PROCEDURE DATEI_EINGABE :
  414. /*------------------------------------------------------------------------------
  415. Purpose:
  416. Parameters: <none>
  417. Notes:
  418. ------------------------------------------------------------------------------*/
  419. DEFINE VARIABLE OKpressed AS LOG NO-UNDO.
  420. DEFINE VARIABLE VDateiname AS CHARACTER NO-UNDO.
  421. DO WITH FRAME {&FRAME-NAME}:
  422. ASSIGN F_Dateiname.
  423. VDateiName = F_Dateiname.
  424. SYSTEM-DIALOG GET-FILE VDateiName
  425. TITLE 'Oeffnen der Exceldatei'
  426. FILTERS 'Excel-Dateien (*.xls, *.xlsx)' '*.xls,*.xlsx',
  427. 'Alle Dateien (*.*) ' '*.*'
  428. MUST-EXIST
  429. USE-FILENAME
  430. UPDATE OKpressed.
  431. IF OKPressed = TRUE THEN F_Dateiname = VDateiName.
  432. DISPLAY F_Dateiname.
  433. END.
  434. END PROCEDURE.
  435. /* _UIB-CODE-BLOCK-END */
  436. &ANALYZE-RESUME
  437. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gPreiseEpMarge _DEFAULT-DISABLE
  438. PROCEDURE disable_UI :
  439. /*------------------------------------------------------------------------------
  440. Purpose: DISABLE the User Interface
  441. Parameters: <none>
  442. Notes: Here we clean-up the user-interface by deleting
  443. dynamic widgets we have created and/or hide
  444. frames. This procedure is usually called when
  445. we are ready to "clean-up" after running.
  446. ------------------------------------------------------------------------------*/
  447. /* Hide all frames. */
  448. HIDE FRAME gPreiseEpMarge.
  449. END PROCEDURE.
  450. /* _UIB-CODE-BLOCK-END */
  451. &ANALYZE-RESUME
  452. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gPreiseEpMarge
  453. PROCEDURE enableObject :
  454. /*------------------------------------------------------------------------------
  455. Purpose: Super Override
  456. Parameters:
  457. Notes:
  458. ------------------------------------------------------------------------------*/
  459. DEFINE VARIABLE Wgr AS INTEGER NO-UNDO.
  460. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  461. DO WITH FRAME {&FRAME-NAME}:
  462. RUN COMBO_PREISGRP (INPUT CB_PreisGrp_1:HANDLE) NO-ERROR.
  463. CB_PreisGrp_1:LIST-ITEM-PAIRS = 'Keine Preisgruppe;999999;' + CB_PreisGrp_1:LIST-ITEM-PAIRS.
  464. ASSIGN
  465. CB_PreisGrp_2:DELIMITER = ';'
  466. CB_PreisGrp_3:DELIMITER = ';'
  467. CB_PreisGrp_4:DELIMITER = ';'
  468. CB_PreisGrp_5:DELIMITER = ';'
  469. CB_PreisGrp_2:LIST-ITEM-PAIRS = CB_PreisGrp_1:LIST-ITEM-PAIRS
  470. CB_PreisGrp_3:LIST-ITEM-PAIRS = CB_PreisGrp_1:LIST-ITEM-PAIRS
  471. CB_PreisGrp_4:LIST-ITEM-PAIRS = CB_PreisGrp_1:LIST-ITEM-PAIRS
  472. CB_PreisGrp_5:LIST-ITEM-PAIRS = CB_PreisGrp_1:LIST-ITEM-PAIRS
  473. CB_PreisGrp_1:SCREEN-VALUE = ENTRY(2, CB_PreisGrp_1:LIST-ITEM-PAIRS, ';')
  474. CB_PreisGrp_2:SCREEN-VALUE = ENTRY(2, CB_PreisGrp_2:LIST-ITEM-PAIRS, ';')
  475. CB_PreisGrp_3:SCREEN-VALUE = ENTRY(2, CB_PreisGrp_3:LIST-ITEM-PAIRS, ';')
  476. CB_PreisGrp_4:SCREEN-VALUE = ENTRY(2, CB_PreisGrp_4:LIST-ITEM-PAIRS, ';')
  477. CB_PreisGrp_5:SCREEN-VALUE = ENTRY(2, CB_PreisGrp_5:LIST-ITEM-PAIRS, ';')
  478. NO-ERROR. .
  479. END.
  480. RUN SUPER.
  481. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR.
  482. END PROCEDURE.
  483. /* _UIB-CODE-BLOCK-END */
  484. &ANALYZE-RESUME
  485. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gPreiseEpMarge _DEFAULT-ENABLE
  486. PROCEDURE enable_UI :
  487. /*------------------------------------------------------------------------------
  488. Purpose: ENABLE the User Interface
  489. Parameters: <none>
  490. Notes: Here we display/view/enable the widgets in the
  491. user-interface. In addition, OPEN all queries
  492. associated with each FRAME and BROWSE.
  493. These statements here are based on the "Other
  494. Settings" section of the widget Property Sheets.
  495. ------------------------------------------------------------------------------*/
  496. DISPLAY F_Datum F_Dateiname F_SpArtnr F_SpInhalt F_SpJahr F_SpEp CB_Preisgrp_1
  497. F_SpPrGrp_1 CB_Preisgrp_2 F_SpPrGrp_2 CB_Preisgrp_3 F_SpPrGrp_3
  498. CB_Preisgrp_4 F_SpPrGrp_4 CB_Preisgrp_5 F_SpPrGrp_5 R_Runden
  499. WITH FRAME gPreiseEpMarge.
  500. ENABLE F_Datum F_Dateiname Btn_Datei F_SpArtnr F_SpInhalt F_SpJahr F_SpEp
  501. CB_Preisgrp_1 F_SpPrGrp_1 CB_Preisgrp_2 F_SpPrGrp_2 CB_Preisgrp_3
  502. F_SpPrGrp_3 CB_Preisgrp_4 F_SpPrGrp_4 CB_Preisgrp_5 F_SpPrGrp_5
  503. R_Runden Btn_OK Btn_Cancel RECT-5
  504. WITH FRAME gPreiseEpMarge.
  505. VIEW FRAME gPreiseEpMarge.
  506. {&OPEN-BROWSERS-IN-QUERY-gPreiseEpMarge}
  507. END PROCEDURE.
  508. /* _UIB-CODE-BLOCK-END */
  509. &ANALYZE-RESUME
  510. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gPreiseEpMarge
  511. PROCEDURE ENDE :
  512. /*------------------------------------------------------------------------------
  513. Purpose:
  514. Parameters: <none>
  515. Notes:
  516. ------------------------------------------------------------------------------*/
  517. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  518. IF AktSeite > 1 THEN
  519. DO:
  520. RUN selectPage ( INPUT 1 ).
  521. RETURN NO-APPLY.
  522. END.
  523. RUN SCHREIBENFWAUSWERTUNGEN ( Progname, FRAME {&FRAME-NAME}:HANDLE ).
  524. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  525. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  526. RETURN NO-APPLY.
  527. END PROCEDURE.
  528. /* _UIB-CODE-BLOCK-END */
  529. &ANALYZE-RESUME
  530. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_TO_CSV gPreiseEpMarge
  531. PROCEDURE EXCEL_TO_CSV :
  532. /*------------------------------------------------------------------------------
  533. Purpose:
  534. Parameters: <none>
  535. Notes:
  536. ------------------------------------------------------------------------------*/
  537. DEFINE INPUT PARAMETER ipDateiName AS CHARACTER NO-UNDO.
  538. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  539. DO WHILE TRUE:
  540. CREATE "Excel.Application" excelAppl CONNECT NO-ERROR.
  541. IF VALID-HANDLE(excelAppl) THEN LEAVE.
  542. CREATE "Excel.Application" excelAppl NO-ERROR.
  543. LEAVE.
  544. END.
  545. IF NOT VALID-HANDLE(excelAppl) THEN RETURN.
  546. VxlsDatei = ipDateiName.
  547. ix = R-INDEX(VxlsDatei, '.').
  548. IF ix = 0 THEN VcsvDatei = VxlsDatei + '.csv'.
  549. ELSE VcsvDatei = SUBSTRING(VxlsDatei,01,ix - 1) + '.csv'.
  550. IF SEARCH(VcsvDatei) <> ? THEN OS-DELETE VALUE(VcsvDatei).
  551. excelAppl:Visible = TRUE.
  552. excelAppl:Workbooks:Open(VxlsDatei, 0, TRUE , 4, "", "", TRUE , , ";", ,).
  553. excelAppl:ActiveWorkbook:SaveAs (VcsvDatei, 6, "", "", FALSE, FALSE, FALSE ).
  554. excelAppl:ActiveWorkbook:Close ( FALSE, VcsvDatei ).
  555. RELEASE OBJECT excelAppl.
  556. EMPTY TEMP-TABLE tExcel.
  557. INPUT STREAM In_Stream FROM VALUE(VcsvDatei) NO-ECHO NO-MAP NO-CONVERT.
  558. REPEAT TRANSACTION ON STOP UNDO, LEAVE:
  559. CREATE tExcel.
  560. IMPORT STREAM In_Stream DELIMITER ';' tExcel.
  561. END.
  562. INPUT STREAM In_Stream CLOSE.
  563. DO WITH FRAME {&FRAME-NAME}:
  564. htExcel = TEMP-TABLE tExcel:DEFAULT-BUFFER-HANDLE.
  565. hFeld = htExcel:BUFFER-FIELD(F_SpArtnr) NO-ERROR.
  566. IF ERROR-STATUS:ERROR OR
  567. NOT VALID-HANDLE ( hFeld ) THEN
  568. DO:
  569. MESSAGE 'Spalte für Artikelnummer ist ungültig' VIEW-AS ALERT-BOX.
  570. APPLY 'ENTRY' TO F_SpArtnr.
  571. RETURN NO-APPLY.
  572. END.
  573. FOR EACH tExcel:
  574. IF hFeld:BUFFER-VALUE = '' OR
  575. hFeld:BUFFER-VALUE = ? THEN
  576. DO:
  577. DELETE tExcel.
  578. NEXT.
  579. END.
  580. iArtnr = INTEGER(hFeld:BUFFER-VALUE(0)) NO-ERROR.
  581. IF ERROR-STATUS:ERROR OR
  582. iArtnr = 0 THEN
  583. DO:
  584. DELETE tExcel.
  585. NEXT.
  586. END.
  587. END.
  588. END.
  589. END PROCEDURE.
  590. /* _UIB-CODE-BLOCK-END */
  591. &ANALYZE-RESUME
  592. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gPreiseEpMarge
  593. PROCEDURE exitObject :
  594. /*------------------------------------------------------------------------------
  595. Purpose: Super Override
  596. Parameters:
  597. Notes:
  598. ------------------------------------------------------------------------------*/
  599. RUN ENDE.
  600. RETURN NO-APPLY.
  601. END PROCEDURE.
  602. /* _UIB-CODE-BLOCK-END */
  603. &ANALYZE-RESUME
  604. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject gPreiseEpMarge
  605. PROCEDURE initializeObject :
  606. /*------------------------------------------------------------------------------
  607. Purpose: Super Override
  608. Parameters:
  609. Notes:
  610. ------------------------------------------------------------------------------*/
  611. /* Code placed here will execute PRIOR to standard behavior. */
  612. RUN SUPER.
  613. RUN LESENFWAUSWERTUNGEN ( Progname, FRAME {&FRAME-NAME}:HANDLE ).
  614. END PROCEDURE.
  615. /* _UIB-CODE-BLOCK-END */
  616. &ANALYZE-RESUME
  617. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEURECHNEN gPreiseEpMarge
  618. PROCEDURE NEURECHNEN :
  619. /*------------------------------------------------------------------------------
  620. Purpose:
  621. Parameters: <none>
  622. Notes:
  623. ------------------------------------------------------------------------------*/
  624. DEFINE VARIABLE iPreisGrp AS INTEGER NO-UNDO.
  625. DEFINE VARIABLE dPreis AS DECIMAL NO-UNDO DECIMALS 4.
  626. DEFINE VARIABLE WucdK AS INTEGER NO-UNDO.
  627. DEFINE VARIABLE WucdA AS INTEGER NO-UNDO.
  628. DEFINE VARIABLE Ansatz AS DECIMAL NO-UNDO.
  629. DEFINE VARIABLE dMarge AS DECIMAL NO-UNDO.
  630. DEFINE VARIABLE Rundbetr AS DECIMAL NO-UNDO DECIMALS 4.
  631. DEFINE VARIABLE dListen_EP AS DECIMAL NO-UNDO DECIMALS 4.
  632. DEFINE VARIABLE cDBUser AS CHARACTER NO-UNDO.
  633. DEFINE VARIABLE ja AS LOG NO-UNDO.
  634. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  635. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
  636. DEFINE VARIABLE cErlaubt AS CHARACTER NO-UNDO INIT '0123456789.-'.
  637. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  638. EMPTY TEMP-TABLE tArtPreis.
  639. CREATE tArtPreis.
  640. DO WITH FRAME {&FRAME-NAME}:
  641. ASSIGN {&List-6}.
  642. IF F_Datum = ? THEN F_Datum = TODAY.
  643. IF F_Dateiname = '' THEN
  644. DO:
  645. RUN FEHLER ( 1020 ).
  646. APPLY 'ENTRY' TO F_Dateiname.
  647. RETURN NO-APPLY.
  648. END.
  649. IF F_SpArtnr = '' THEN
  650. DO:
  651. RUN FEHLER ( 1020 ).
  652. APPLY 'ENTRY' TO F_SpArtnr.
  653. RETURN NO-APPLY.
  654. END.
  655. IF F_SpEp = '' THEN
  656. DO:
  657. RUN FEHLER ( 1020 ).
  658. APPLY 'ENTRY' TO F_SpEp.
  659. RETURN NO-APPLY.
  660. END.
  661. EMPTY TEMP-TABLE tPreisGrp.
  662. IF INTEGER(CB_PreisGrp_1:SCREEN-VALUE) <> 999999 THEN
  663. DO:
  664. RUN CREATE_PreisGrp ( INTEGER(CB_PreisGrp_1:SCREEN-VALUE), F_SpPrGrp_1 ).
  665. END.
  666. IF INTEGER(CB_PreisGrp_2:SCREEN-VALUE) <> 999999 THEN
  667. DO:
  668. RUN CREATE_PreisGrp ( INTEGER(CB_PreisGrp_2:SCREEN-VALUE), F_SpPrGrp_2 ).
  669. END.
  670. IF INTEGER(CB_PreisGrp_3:SCREEN-VALUE) <> 999999 THEN
  671. DO:
  672. RUN CREATE_PreisGrp ( INTEGER(CB_PreisGrp_3:SCREEN-VALUE), F_SpPrGrp_3 ).
  673. END.
  674. IF INTEGER(CB_PreisGrp_4:SCREEN-VALUE) <> 999999 THEN
  675. DO:
  676. RUN CREATE_PreisGrp ( INTEGER(CB_PreisGrp_4:SCREEN-VALUE), F_SpPrGrp_4 ).
  677. END.
  678. IF INTEGER(CB_PreisGrp_5:SCREEN-VALUE) <> 999999 THEN
  679. DO:
  680. RUN CREATE_PreisGrp ( INTEGER(CB_PreisGrp_5:SCREEN-VALUE), F_SpPrGrp_5 ).
  681. END.
  682. DISPLAY {&List-6}.
  683. DISABLE Btn_OK Btn_Cancel.
  684. RUN EXCEL_TO_CSV ( F_Dateiname ).
  685. EMPTY TEMP-TABLE tArtPreis.
  686. cDBUser = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR.
  687. htExcel = TEMP-TABLE tExcel:DEFAULT-BUFFER-HANDLE.
  688. FOR EACH tExcel:
  689. ASSIGN
  690. iArtnr = 0
  691. iInhalt = 0
  692. iJahr = 0.
  693. hFeld = htExcel:BUFFER-FIELD(F_SpArtnr).
  694. iArtnr = INTEGER(hFeld:BUFFER-VALUE(0)).
  695. hFeld = htExcel:BUFFER-FIELD(F_SpInhalt) NO-ERROR.
  696. IF VALID-HANDLE(hFeld) THEN iInhalt = INTEGER(hFeld:BUFFER-VALUE(0)).
  697. hFeld = htExcel:BUFFER-FIELD(F_SpJahr) NO-ERROR.
  698. IF VALID-HANDLE(hFeld) THEN iJahr = INTEGER(hFeld:BUFFER-VALUE(0)).
  699. hFeld = htExcel:BUFFER-FIELD(F_SpEp).
  700. dListen_EP = DECIMAL(hFeld:BUFFER-VALUE(0)) NO-ERROR.
  701. IF ERROR-STATUS:ERROR OR
  702. dListen_EP = ? THEN
  703. DO:
  704. cFeld = hFeld:BUFFER-VALUE(0).
  705. cString = ''.
  706. DO ii = 1 TO LENGTH(cFeld).
  707. IF INDEX(cErlaubt, SUBSTRING(cFeld,ii,01)) = 0 THEN NEXT.
  708. cString = cString + substring(cFeld,ii,01).
  709. END.
  710. dListen_EP = DECIMAL(cString) NO-ERROR.
  711. END.
  712. FIND Artst
  713. WHERE Artst.Firma = Firma
  714. AND Artst.Artnr = iArtnr
  715. AND Artst.Inhalt = iInhalt
  716. AND Artst.Jahr = iJahr NO-ERROR.
  717. IF NOT AVAILABLE Artst THEN NEXT.
  718. Artst.Listen_EP = dListen_EP.
  719. WucdA = Artst.MWST.
  720. FOR EACH tPreisGrp:
  721. FIND Wust USE-INDEX Wust-k1
  722. WHERE Wust.CodeK = tPreisGrp.WucdK
  723. AND Wust.CodeA = WucdA NO-LOCK NO-ERROR.
  724. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  725. WHERE MWSTAns.MWST_Cd = Wust.WuCd
  726. AND MWSTAns.Datum <= F_Datum NO-LOCK NO-ERROR.
  727. IF AVAILABLE MWSTAns THEN Ansatz = MWSTAns.Ansatz.
  728. hFeld = htExcel:BUFFER-FIELD(tPreisGrp.cMarge) NO-ERROR.
  729. IF NOT VALID-HANDLE ( hFeld ) THEN NEXT.
  730. dMarge = DECIMAL(hFeld:BUFFER-VALUE(0)) NO-ERROR.
  731. IF ERROR-STATUS:ERROR OR
  732. dMarge = ? OR
  733. dmarge = 0 THEN NEXT.
  734. CREATE tArtPreis.
  735. ASSIGN
  736. tArtPreis.Firma = Firma
  737. tArtPreis.Artnr = iArtnr
  738. tArtPreis.Inhalt = iInhalt
  739. tArtPreis.Jahr = iJahr
  740. tArtPreis.Preis_Grp = tPreisGrp.Preis_Grp
  741. tArtPreis.Ab_Datum = F_Datum
  742. tArtPreis.VK_Netto = dListen_EP * 100 / (100 - dMarge)
  743. tArtPreis.Marge = dMarge
  744. tArtPreis.Aktion = FALSE
  745. tArtPreis.erstellt_am = TODAY
  746. tArtPreis.Aenderungs_Art = 9
  747. tArtPreis.Aenderungs_Text = ''
  748. tArtPreis.Aenderungs_Wert = dMarge
  749. tArtPreis.Aenderungs_Rundung = R_Runden
  750. tArtPreis.Aenderungs_Sabe = cDBUser
  751. .
  752. IF tPreisGrp.Brutto THEN
  753. DO:
  754. tArtPreis.VK_Brutto = tArtPreis.VK_Netto * (100 + Ansatz) / 100.
  755. IF R_Runden > 1 THEN
  756. DO:
  757. RUN RUNDEN ( INPUT (R_Runden - 1), INPUT-OUTPUT tArtPreis.VK_Brutto ).
  758. END.
  759. tArtPreis.VK_Netto = tArtPreis.VK_Brutto * 100 / (100 + Ansatz).
  760. END.
  761. ELSE
  762. DO:
  763. IF R_Runden > 1 THEN
  764. DO:
  765. RUN RUNDEN ( INPUT (R_Runden - 1), INPUT-OUTPUT tArtPreis.VK_Netto ).
  766. END.
  767. tArtPreis.VK_Brutto = tArtPreis.VK_Netto * (100 + Ansatz) / 100.
  768. END.
  769. END.
  770. END.
  771. FOR EACH tArtPreis:
  772. FIND ArtPreis OF tArtPreis NO-ERROR.
  773. IF NOT AVAILABLE ArtPreis THEN CREATE ArtPreis.
  774. BUFFER-COPY tArtPreis TO ArtPreis.
  775. RELEASE ArtPreis.
  776. END.
  777. ENABLE Btn_OK Btn_Cancel.
  778. END.
  779. END PROCEDURE.
  780. /* _UIB-CODE-BLOCK-END */
  781. &ANALYZE-RESUME