g-invent-ueber.w 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gInventUeb
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gInventUeb
  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. DEF VAR MaxPage AS INT NO-UNDO.
  28. DEF VAR AktSeite AS INT NO-UNDO.
  29. DEF VAR FMutFlag AS LOG NO-UNDO.
  30. DEF VAR FwSprcd AS INT NO-UNDO.
  31. DEF VAR Firma AS CHAR NO-UNDO.
  32. DEF VAR VNeg AS INT NO-UNDO.
  33. DEF VAR VPos AS INT NO-UNDO.
  34. DEF VAR VNegFak AS INT NO-UNDO.
  35. DEF VAR VPosFak AS INT NO-UNDO.
  36. DEF VAR VDiff AS DEC DECIMALS 4 NO-UNDO.
  37. DEF VAR ARecid AS RECID NO-UNDO.
  38. DEF VAR LRecid AS RECID NO-UNDO.
  39. DEF VAR VDatum AS DATE NO-UNDO.
  40. DEF VAR FwFRW AS CHAR NO-UNDO.
  41. DEF VAR iLager AS INT NO-UNDO.
  42. DEF BUFFER BArtst FOR Artst.
  43. DEF BUFFER BArtLager FOR ArtLager.
  44. DEF TEMP-TABLE tDatum NO-UNDO
  45. FIELD Datum AS DATE
  46. INDEX tDatum-k1 IS PRIMARY
  47. Datum DESCENDING.
  48. /* _UIB-CODE-BLOCK-END */
  49. &ANALYZE-RESUME
  50. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  51. /* ******************** Preprocessor Definitions ******************** */
  52. &Scoped-define PROCEDURE-TYPE SmartDialog
  53. &Scoped-define DB-AWARE no
  54. &Scoped-define ADM-CONTAINER DIALOG-BOX
  55. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  56. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  57. &Scoped-define FRAME-NAME gInventUeb
  58. /* Standard List Definitions */
  59. &Scoped-Define ENABLED-OBJECTS F_Datum F_Artnr_V F_Artnr_B F_Inhalt_V ~
  60. F_Inhalt_B F_Jahr_V F_Jahr_B F_Wgr_V F_Wgr_B Btn_Start Btn_Cancel ~
  61. CB_Negativ CB_Positiv T_Negativ T_Positiv CB_Lager RECT-36
  62. &Scoped-Define DISPLAYED-OBJECTS F_Datum F_Artnr_V F_Artnr_B F_Inhalt_V ~
  63. F_Inhalt_B F_Jahr_V F_Jahr_B F_Wgr_V F_Wgr_B F_Fortschritt CB_Negativ ~
  64. CB_Positiv T_Negativ T_Positiv CB_Lager
  65. /* Custom List Definitions */
  66. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  67. &Scoped-define List-1 F_Datum F_Artnr_V F_Artnr_B F_Inhalt_V F_Inhalt_B ~
  68. F_Jahr_V F_Jahr_B F_Wgr_V F_Wgr_B
  69. &Scoped-define List-6 F_Datum F_Artnr_V F_Artnr_B F_Inhalt_V F_Inhalt_B ~
  70. F_Jahr_V F_Jahr_B F_Wgr_V F_Wgr_B CB_Negativ CB_Positiv T_Negativ T_Positiv
  71. /* _UIB-PREPROCESSOR-BLOCK-END */
  72. &ANALYZE-RESUME
  73. /* *********************** Control Definitions ********************** */
  74. /* Define a dialog box */
  75. /* Definitions of the field level widgets */
  76. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  77. LABEL "&Abbrechen"
  78. SIZE 15 BY 1.
  79. DEFINE BUTTON Btn_Start
  80. LABEL "&Start"
  81. SIZE 15 BY 1.
  82. DEFINE VARIABLE CB_Lager AS CHARACTER FORMAT "X(256)":U
  83. LABEL "Lager"
  84. VIEW-AS COMBO-BOX INNER-LINES 5
  85. LIST-ITEM-PAIRS "Item 1","Item 1"
  86. DROP-DOWN-LIST
  87. SIZE 30 BY 1 NO-UNDO.
  88. DEFINE VARIABLE CB_Negativ AS CHARACTER FORMAT "X(256)":U
  89. LABEL "Minus Korrekturen"
  90. VIEW-AS COMBO-BOX INNER-LINES 5
  91. DROP-DOWN-LIST
  92. SIZE 25.8 BY 1
  93. BGCOLOR 15 NO-UNDO.
  94. DEFINE VARIABLE CB_Positiv AS CHARACTER FORMAT "X(256)":U
  95. LABEL "Positiv Korrekturen"
  96. VIEW-AS COMBO-BOX INNER-LINES 5
  97. DROP-DOWN-LIST
  98. SIZE 25.8 BY 1
  99. BGCOLOR 15 NO-UNDO.
  100. DEFINE VARIABLE F_Artnr_B AS INTEGER FORMAT "999999" INITIAL 0
  101. LABEL "--"
  102. VIEW-AS FILL-IN NATIVE
  103. SIZE 11 BY 1
  104. BGCOLOR 15 .
  105. DEFINE VARIABLE F_Artnr_V AS INTEGER FORMAT "999999" INITIAL 0
  106. LABEL "Artikelnummer"
  107. VIEW-AS FILL-IN NATIVE
  108. SIZE 11 BY 1
  109. BGCOLOR 15 .
  110. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999"
  111. LABEL "Inventardatum"
  112. VIEW-AS FILL-IN NATIVE
  113. SIZE 16 BY 1
  114. BGCOLOR 15 .
  115. DEFINE VARIABLE F_Fortschritt AS CHARACTER FORMAT "X(256)":U
  116. VIEW-AS FILL-IN NATIVE
  117. SIZE 60 BY 1
  118. BGCOLOR 8 NO-UNDO.
  119. DEFINE VARIABLE F_Inhalt_B AS INTEGER FORMAT "9999" INITIAL 0
  120. LABEL "--"
  121. VIEW-AS FILL-IN NATIVE
  122. SIZE 8 BY 1
  123. BGCOLOR 15 .
  124. DEFINE VARIABLE F_Inhalt_V AS INTEGER FORMAT "9999" INITIAL 0
  125. LABEL "Inhalt"
  126. VIEW-AS FILL-IN NATIVE
  127. SIZE 8 BY 1
  128. BGCOLOR 15 .
  129. DEFINE VARIABLE F_Jahr_B AS INTEGER FORMAT "9999" INITIAL 0
  130. LABEL "--"
  131. VIEW-AS FILL-IN NATIVE
  132. SIZE 8 BY 1
  133. BGCOLOR 15 .
  134. DEFINE VARIABLE F_Jahr_V AS INTEGER FORMAT "9999" INITIAL 0
  135. LABEL "Jahr"
  136. VIEW-AS FILL-IN NATIVE
  137. SIZE 8 BY 1
  138. BGCOLOR 15 .
  139. DEFINE VARIABLE F_Wgr_B AS INTEGER FORMAT "9999" INITIAL 0
  140. LABEL "--"
  141. VIEW-AS FILL-IN NATIVE
  142. SIZE 8 BY 1
  143. BGCOLOR 15 .
  144. DEFINE VARIABLE F_Wgr_V AS INTEGER FORMAT "9999" INITIAL 0
  145. LABEL "Warengruppe"
  146. VIEW-AS FILL-IN NATIVE
  147. SIZE 8 BY 1
  148. BGCOLOR 15 .
  149. DEFINE RECTANGLE RECT-36
  150. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  151. SIZE 70 BY 13.33.
  152. DEFINE VARIABLE T_Negativ AS LOGICAL INITIAL no
  153. LABEL "automatisch"
  154. VIEW-AS TOGGLE-BOX
  155. SIZE 17 BY 1 NO-UNDO.
  156. DEFINE VARIABLE T_Positiv AS LOGICAL INITIAL no
  157. LABEL "automatisch"
  158. VIEW-AS TOGGLE-BOX
  159. SIZE 17 BY 1 NO-UNDO.
  160. /* ************************ Frame Definitions *********************** */
  161. DEFINE FRAME gInventUeb
  162. F_Datum AT ROW 3 COL 21 COLON-ALIGNED
  163. F_Artnr_V AT ROW 4 COL 21 COLON-ALIGNED
  164. F_Artnr_B AT ROW 4 COL 36 COLON-ALIGNED
  165. F_Inhalt_V AT ROW 5 COL 21 COLON-ALIGNED
  166. F_Inhalt_B AT ROW 5 COL 36 COLON-ALIGNED
  167. F_Jahr_V AT ROW 6 COL 21 COLON-ALIGNED
  168. F_Jahr_B AT ROW 6 COL 36 COLON-ALIGNED
  169. F_Wgr_V AT ROW 7 COL 21 COLON-ALIGNED
  170. F_Wgr_B AT ROW 7 COL 36 COLON-ALIGNED
  171. Btn_Start AT ROW 13 COL 7
  172. Btn_Cancel AT ROW 13 COL 52
  173. F_Fortschritt AT ROW 11.52 COL 7 NO-LABEL
  174. CB_Negativ AT ROW 8.52 COL 21 COLON-ALIGNED
  175. CB_Positiv AT ROW 9.52 COL 21 COLON-ALIGNED
  176. T_Negativ AT ROW 8.52 COL 52
  177. T_Positiv AT ROW 9.52 COL 52
  178. CB_Lager AT ROW 2 COL 21 COLON-ALIGNED WIDGET-ID 2
  179. RECT-36 AT ROW 1.24 COL 2
  180. SPACE(0.79) SKIP(0.22)
  181. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  182. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  183. TITLE "Inventarübernahme"
  184. CANCEL-BUTTON Btn_Cancel.
  185. /* *********************** Procedure Settings ************************ */
  186. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  187. /* Settings for THIS-PROCEDURE
  188. Type: SmartDialog
  189. Allow: Basic,Browse,DB-Fields,Query,Smart
  190. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  191. Design Page: 1
  192. Other Settings: COMPILE
  193. */
  194. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  195. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gInventUeb
  196. /* ************************* Included-Libraries *********************** */
  197. {src/adm2/containr.i}
  198. /* _UIB-CODE-BLOCK-END */
  199. &ANALYZE-RESUME
  200. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  201. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  202. /* SETTINGS FOR DIALOG-BOX gInventUeb
  203. FRAME-NAME Custom */
  204. ASSIGN
  205. FRAME gInventUeb:SCROLLABLE = FALSE
  206. FRAME gInventUeb:HIDDEN = TRUE.
  207. /* SETTINGS FOR COMBO-BOX CB_Negativ IN FRAME gInventUeb
  208. 6 */
  209. /* SETTINGS FOR COMBO-BOX CB_Positiv IN FRAME gInventUeb
  210. 6 */
  211. /* SETTINGS FOR FILL-IN F_Artnr_B IN FRAME gInventUeb
  212. 1 6 */
  213. /* SETTINGS FOR FILL-IN F_Artnr_V IN FRAME gInventUeb
  214. 1 6 */
  215. /* SETTINGS FOR FILL-IN F_Datum IN FRAME gInventUeb
  216. 1 6 */
  217. /* SETTINGS FOR FILL-IN F_Fortschritt IN FRAME gInventUeb
  218. NO-ENABLE ALIGN-L */
  219. /* SETTINGS FOR FILL-IN F_Inhalt_B IN FRAME gInventUeb
  220. 1 6 */
  221. /* SETTINGS FOR FILL-IN F_Inhalt_V IN FRAME gInventUeb
  222. 1 6 */
  223. /* SETTINGS FOR FILL-IN F_Jahr_B IN FRAME gInventUeb
  224. 1 6 */
  225. /* SETTINGS FOR FILL-IN F_Jahr_V IN FRAME gInventUeb
  226. 1 6 */
  227. /* SETTINGS FOR FILL-IN F_Wgr_B IN FRAME gInventUeb
  228. 1 6 */
  229. /* SETTINGS FOR FILL-IN F_Wgr_V IN FRAME gInventUeb
  230. 1 6 */
  231. /* SETTINGS FOR TOGGLE-BOX T_Negativ IN FRAME gInventUeb
  232. 6 */
  233. /* SETTINGS FOR TOGGLE-BOX T_Positiv IN FRAME gInventUeb
  234. 6 */
  235. /* _RUN-TIME-ATTRIBUTES-END */
  236. &ANALYZE-RESUME
  237. /* Setting information for Queries and Browse Widgets fields */
  238. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gInventUeb
  239. /* Query rebuild information for DIALOG-BOX gInventUeb
  240. _Options = "SHARE-LOCK"
  241. _Query is NOT OPENED
  242. */ /* DIALOG-BOX gInventUeb */
  243. &ANALYZE-RESUME
  244. /* ************************ Control Triggers ************************ */
  245. &Scoped-define SELF-NAME gInventUeb
  246. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gInventUeb gInventUeb
  247. ON END-ERROR OF FRAME gInventUeb /* Inventarübernahme */
  248. DO:
  249. RUN ENDE.
  250. RETURN NO-APPLY.
  251. END.
  252. /* _UIB-CODE-BLOCK-END */
  253. &ANALYZE-RESUME
  254. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gInventUeb gInventUeb
  255. ON GO OF FRAME gInventUeb /* Inventarübernahme */
  256. DO:
  257. /*
  258. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR.
  259. */
  260. END.
  261. /* _UIB-CODE-BLOCK-END */
  262. &ANALYZE-RESUME
  263. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gInventUeb gInventUeb
  264. ON WINDOW-CLOSE OF FRAME gInventUeb /* Inventarübernahme */
  265. DO:
  266. RUN ENDE.
  267. RETURN NO-APPLY.
  268. END.
  269. /* _UIB-CODE-BLOCK-END */
  270. &ANALYZE-RESUME
  271. &Scoped-define SELF-NAME Btn_Cancel
  272. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gInventUeb
  273. ON CHOOSE OF Btn_Cancel IN FRAME gInventUeb /* Abbrechen */
  274. DO:
  275. RUN ENDE.
  276. RETURN NO-APPLY.
  277. END.
  278. /* _UIB-CODE-BLOCK-END */
  279. &ANALYZE-RESUME
  280. &Scoped-define SELF-NAME Btn_Start
  281. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Start gInventUeb
  282. ON CHOOSE OF Btn_Start IN FRAME gInventUeb /* Start */
  283. DO:
  284. DEF VAR cDaten AS CHAR NO-UNDO.
  285. DEF VAR Eingang AS DEC DECIMALS 3 NO-UNDO.
  286. DEF VAR Ausgang AS DEC DECIMALS 3 NO-UNDO.
  287. DEF VAR Inventar AS DEC DECIMALS 3 NO-UNDO.
  288. DEF VAR nBestand AS DEC DECIMALS 3 NO-UNDO.
  289. DEF VAR iTrnr AS INT NO-UNDO.
  290. DO WITH FRAME {&FRAME-NAME}:
  291. ASSIGN {&List-6}.
  292. iLager = INTEGER(CB_Lager:SCREEN-VALUE).
  293. VNeg = INTEGER(CB_Negativ:SCREEN-VALUE).
  294. VPos = INTEGER(CB_Positiv:SCREEN-VALUE).
  295. RUN FIND_LAGTRANSART ( INPUT VNeg, OUTPUT cDaten ).
  296. IF cDaten <> '' AND
  297. cDaten <> ? THEN VNegFak = INTEGER(ENTRY(3, cDaten, CHR(01) )).
  298. ELSE VNegFak = 1.
  299. RUN FIND_LAGTRANSART ( INPUT VPos, OUTPUT cDaten ).
  300. IF cDaten <> '' AND
  301. cDaten <> ? THEN VPosFak = INTEGER(ENTRY(3, cDaten, CHR(01) )).
  302. ELSE VPosFak = 1.
  303. RUN DATUMTEST.
  304. IF RETURN-VALUE = 'NO-APPLY' THEN RETURN NO-APPLY.
  305. VDatum = F_Datum - 1.
  306. DISABLE Btn_Start
  307. Btn_Cancel.
  308. SESSION:SET-WAIT-STATE('GENRAL').
  309. DISABLE TRIGGERS FOR LOAD OF ArtLager.
  310. FOR EACH Artst USE-INDEX Artst-k1
  311. WHERE Artst.Firma = Firma
  312. AND Artst.Artnr >= F_Artnr_V
  313. AND Artst.Artnr <= F_Artnr_B
  314. AND Artst.Inhalt >= F_Inhalt_V
  315. AND Artst.Inhalt <= F_Inhalt_B
  316. AND Artst.Jahr >= F_Jahr_V
  317. AND Artst.Jahr <= F_Jahr_B
  318. AND Artst.Wg_Grp >= F_Wgr_V
  319. AND Artst.Wg_Grp <= F_Wgr_B
  320. AND Artst.Lager = TRUE TRANSACTION:
  321. FIND ArtLager USE-INDEX ArtLager-k1
  322. WHERE ArtLager.Firma = Artst.Firma
  323. AND ArtLager.Artnr = Artst.Artnr
  324. AND ArtLager.Inhalt = Artst.Inhalt
  325. AND ArtLager.Jahr = Artst.Jahr
  326. AND ArtLager.Lager = iLager NO-ERROR.
  327. IF NOT AVAILABLE ArtLager THEN DO:
  328. CREATE ArtLager.
  329. ASSIGN ArtLager.Firma = Artst.Firma
  330. ArtLager.Artnr = Artst.Artnr
  331. ArtLager.Inhalt = Artst.Inhalt
  332. ArtLager.Jahr = Artst.Jahr
  333. ArtLager.Lager = iLager
  334. ArtLager.Datum_Inv = F_Datum.
  335. END.
  336. IF ArtLager.Datum_Inv <> F_Datum THEN NEXT.
  337. F_Fortschritt = STRING(Artst.Artnr,"999999") + " " + Artst.Bez.
  338. F_Fortschritt:SCREEN-VALUE = STRING(Artst.Artnr,"999999") + " " + Artst.Bez.
  339. ARecid = RECID(Artst).
  340. LRecid = RECID(ArtLager).
  341. RUN INVENTARBUCHUNG ( OUTPUT ArtLager.Inv_Best, OUTPUT iTrnr ).
  342. ASSIGN Eingang = 0
  343. Ausgang = 0.
  344. FOR EACH Artbw USE-INDEX Artbw-k2
  345. WHERE Artbw.Firma = Artst.Firma
  346. AND Artbw.Artnr = Artst.Artnr
  347. AND Artbw.Inhalt = Artst.Inhalt
  348. AND Artbw.Jahr = Artst.Jahr
  349. AND Artbw.Lager = iLager
  350. AND Artbw.Datum >= F_Datum NO-LOCK:
  351. IF Artbw.Datum = F_Datum AND
  352. Artbw.Trnr > iTrnr THEN NEXT.
  353. IF Artbw.Tr_Art > 20 THEN NEXT.
  354. IF NOT Artbw.Lag_Buch THEN NEXT.
  355. IF Artbw.Tr_Art < 11 THEN Ausgang = Ausgang + Artbw.Menge.
  356. ELSE Eingang = Eingang + Artbw.Menge.
  357. END.
  358. ASSIGN ArtLager.Eingang = Eingang
  359. ArtLager.Ausgang = Ausgang
  360. ArtLager.Bestand = ArtLager.Inv_Best
  361. + ArtLager.Eingang
  362. - ArtLager.Ausgang.
  363. VDiff = ArtLager.Bestand
  364. - ArtLager.Bestand_Alt
  365. + ArtLager.Ausgang
  366. - ArtLager.Eingang.
  367. IF VDiff <> 0 THEN RUN KORREKTUR.
  368. nBestand = 0.
  369. FOR EACH ArtLager USE-INDEX ArtLager-k1
  370. WHERE ArtLager.Firma = Artst.Firma
  371. AND ArtLager.Artnr = Artst.Artnr
  372. AND ArtLager.Inhalt = Artst.Inhalt
  373. AND ArtLager.Jahr = Artst.Jahr:
  374. nBestand = nBestand + ArtLager.Bestand.
  375. END.
  376. Artst.Bestand = nBestand.
  377. END.
  378. ENABLE Btn_Start
  379. Btn_Cancel.
  380. SESSION:SET-WAIT-STATE('').
  381. F_Fortschritt:SCREEN-VALUE = ''.
  382. APPLY 'ENTRY' TO CB_Lager.
  383. END.
  384. RUN ENDE.
  385. RETURN NO-APPLY.
  386. END.
  387. /* _UIB-CODE-BLOCK-END */
  388. &ANALYZE-RESUME
  389. &Scoped-define SELF-NAME CB_Lager
  390. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Lager gInventUeb
  391. ON VALUE-CHANGED OF CB_Lager IN FRAME gInventUeb /* Lager */
  392. DO:
  393. iLager = INTEGER(CB_Lager:SCREEN-VALUE).
  394. END.
  395. /* _UIB-CODE-BLOCK-END */
  396. &ANALYZE-RESUME
  397. &Scoped-define SELF-NAME F_Datum
  398. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum gInventUeb
  399. ON LEAVE OF F_Datum IN FRAME gInventUeb /* Inventardatum */
  400. DO:
  401. ASSIGN {&List-6}.
  402. RUN DATUMTEST.
  403. IF RETURN-VALUE = 'NO-APPLY' THEN RETURN NO-APPLY.
  404. END.
  405. /* _UIB-CODE-BLOCK-END */
  406. &ANALYZE-RESUME
  407. &Scoped-define SELF-NAME T_Negativ
  408. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Negativ gInventUeb
  409. ON VALUE-CHANGED OF T_Negativ IN FRAME gInventUeb /* automatisch */
  410. DO:
  411. DO WITH FRAME {&FRAME-NAME}:
  412. ASSIGN T_Negativ.
  413. IF T_Negativ THEN CB_Negativ:SENSITIVE = TRUE.
  414. ELSE CB_Negativ:SENSITIVE = FALSE.
  415. END.
  416. END.
  417. /* _UIB-CODE-BLOCK-END */
  418. &ANALYZE-RESUME
  419. &Scoped-define SELF-NAME T_Positiv
  420. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Positiv gInventUeb
  421. ON VALUE-CHANGED OF T_Positiv IN FRAME gInventUeb /* automatisch */
  422. DO:
  423. DO WITH FRAME {&FRAME-NAME}:
  424. ASSIGN T_Positiv.
  425. IF T_Positiv THEN CB_Positiv:SENSITIVE = TRUE.
  426. ELSE CB_Positiv:SENSITIVE = FALSE.
  427. END.
  428. END.
  429. /* _UIB-CODE-BLOCK-END */
  430. &ANALYZE-RESUME
  431. &UNDEFINE SELF-NAME
  432. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gInventUeb
  433. /* *************************** Main Block *************************** */
  434. MaxPage = 1.
  435. AktSeite = 1.
  436. FwSprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR.
  437. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  438. SESSION:DATA-ENTRY-RETURN = TRUE.
  439. SUBSCRIBE TO 'TOOLBAR' ANYWHERE.
  440. /* TRIGGERS ------------------------------------------------------ */
  441. ON 'ALT-CURSOR-RIGHT':U OF FRAME {&FRAME-NAME} ANYWHERE
  442. DO:
  443. RUN NEXTPAGE.
  444. END.
  445. ON 'ALT-CURSOR-LEFT':U OF FRAME {&FRAME-NAME} ANYWHERE
  446. DO:
  447. RUN PREVPAGE.
  448. END.
  449. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE
  450. DO:
  451. RUN ENTRY_CURSOR.
  452. END.
  453. /*
  454. ON 'PAGE-DOWN':U OF {&WINDOW-NAME} ANYWHERE
  455. DO:
  456. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Next':U ).
  457. END.
  458. ON 'PAGE-UP':U OF {&WINDOW-NAME} ANYWHERE
  459. DO:
  460. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Prev':U ).
  461. END.
  462. ON 'ALT-RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE
  463. DO:
  464. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'UPDATE':U ).
  465. END.
  466. ON 'ALT-INS':U OF FRAME {&FRAME-NAME} ANYWHERE
  467. DO:
  468. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'ADD':U ).
  469. END.
  470. ON 'ALT-DEL':U OF FRAME {&FRAME-NAME} ANYWHERE
  471. DO:
  472. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'DELETE':U ).
  473. END.
  474. ON 'ALT-R':U OF FRAME {&FRAME-NAME} ANYWHERE
  475. DO:
  476. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'RESET':U ).
  477. END.
  478. ON 'F9':U OF FRAME {&FRAME-NAME} ANYWHERE
  479. DO:
  480. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ).
  481. END.
  482. ON 'ALT-S':U OF FRAME {&FRAME-NAME} ANYWHERE
  483. DO:
  484. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ).
  485. END.
  486. ON 'ALT-K':U OF FRAME {&FRAME-NAME} ANYWHERE
  487. DO:
  488. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'COPY':U ).
  489. END.
  490. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE
  491. DO:
  492. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  493. IF FMutFlag = FALSE THEN DO:
  494. RUN ENDE.
  495. RETURN NO-APPLY.
  496. END.
  497. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'CANCEL':U ).
  498. RETURN NO-APPLY.
  499. END.
  500. */
  501. /* ------------------------------------------------------------------ */
  502. {src/adm2/dialogmn.i}
  503. /* _UIB-CODE-BLOCK-END */
  504. &ANALYZE-RESUME
  505. /* ********************** Internal Procedures *********************** */
  506. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gInventUeb _ADM-CREATE-OBJECTS
  507. PROCEDURE adm-create-objects :
  508. /*------------------------------------------------------------------------------
  509. Purpose: Create handles for all SmartObjects used in this procedure.
  510. After SmartObjects are initialized, then SmartLinks are added.
  511. Parameters: <none>
  512. ------------------------------------------------------------------------------*/
  513. END PROCEDURE.
  514. /* _UIB-CODE-BLOCK-END */
  515. &ANALYZE-RESUME
  516. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage gInventUeb
  517. PROCEDURE changePage :
  518. /*------------------------------------------------------------------------------
  519. Purpose: Super Override
  520. Parameters:
  521. Notes:
  522. ------------------------------------------------------------------------------*/
  523. /* Code placed here will execute PRIOR to standard behavior. */
  524. RUN SUPER.
  525. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  526. CASE AktSeite:
  527. WHEN 1 THEN DO:
  528. /* RUN addLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */
  529. /* RUN addLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */
  530. /* RUN ToolbarInit ( INPUT h_d-auftr ). */
  531. RUN ENTRY_CURSOR.
  532. END.
  533. WHEN 2 THEN DO:
  534. RUN ENTRY_CURSOR.
  535. END.
  536. END CASE.
  537. END PROCEDURE.
  538. /* _UIB-CODE-BLOCK-END */
  539. &ANALYZE-RESUME
  540. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DATUMTEST gInventUeb
  541. PROCEDURE DATUMTEST :
  542. /*------------------------------------------------------------------------------
  543. Purpose:
  544. Parameters: <none>
  545. Notes:
  546. ------------------------------------------------------------------------------*/
  547. DO WITH FRAME {&FRAME-NAME}:
  548. IF F_Datum = ? THEN DO:
  549. RUN FEHLER ( INPUT 0096 ).
  550. APPLY 'ENTRY' TO F_Datum.
  551. RETURN 'NO-APPLY'.
  552. END.
  553. RETURN.
  554. END.
  555. END PROCEDURE.
  556. /* _UIB-CODE-BLOCK-END */
  557. &ANALYZE-RESUME
  558. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gInventUeb _DEFAULT-DISABLE
  559. PROCEDURE disable_UI :
  560. /*------------------------------------------------------------------------------
  561. Purpose: DISABLE the User Interface
  562. Parameters: <none>
  563. Notes: Here we clean-up the user-interface by deleting
  564. dynamic widgets we have created and/or hide
  565. frames. This procedure is usually called when
  566. we are ready to "clean-up" after running.
  567. ------------------------------------------------------------------------------*/
  568. /* Hide all frames. */
  569. HIDE FRAME gInventUeb.
  570. END PROCEDURE.
  571. /* _UIB-CODE-BLOCK-END */
  572. &ANALYZE-RESUME
  573. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gInventUeb
  574. PROCEDURE enableObject :
  575. /*------------------------------------------------------------------------------
  576. Purpose: Super Override
  577. Parameters:
  578. Notes:
  579. ------------------------------------------------------------------------------*/
  580. DEF VAR ix AS INT NO-UNDO.
  581. /* Code placed here will execute PRIOR to standard behavior. */
  582. RUN SUPER.
  583. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR.
  584. DO WITH FRAME {&FRAME-NAME}:
  585. iLager = DYNAMIC-FUNCTION('getBenLager':U).
  586. RUN COMBO_LAGER ( CB_Lager:HANDLE ).
  587. CB_Lager:SCREEN-VALUE = STRING(iLager,'999999').
  588. F_Datum = ?.
  589. F_Artnr_V = 0.
  590. F_Artnr_B = 0.
  591. F_Inhalt_V = 0.
  592. F_Inhalt_B = 9999.
  593. F_Jahr_V = 0.
  594. F_Jahr_B = 9999.
  595. F_Wgr_V = 0.
  596. F_Wgr_B = 9999.
  597. RUN COMBO_LAGERTRANS ( INPUT CB_Negativ:HANDLE ).
  598. RUN COMBO_LAGERTRANS ( INPUT CB_Positiv:HANDLE ).
  599. T_Negativ = FALSE.
  600. T_Positiv = FALSE.
  601. CB_Negativ:SENSITIVE = FALSE.
  602. CB_Positiv:SENSITIVE = FALSE.
  603. EMPTY TEMP-TABLE tDatum.
  604. FOR EACH ArtLager NO-LOCK
  605. WHERE ArtLager.Firma = Firma
  606. AND ArtLager.Lager = iLager
  607. AND ArtLager.Datum_Inv <> ?:
  608. F_Datum = ArtLager.Datum_Inv.
  609. FIND FIRST tDatum WHERE tDatum.Datum = F_Datum NO-ERROR.
  610. IF NOT AVAILABLE tDatum THEN DO:
  611. CREATE tDatum.
  612. ASSIGN tDatum.Datum = F_Datum.
  613. END.
  614. END.
  615. FIND FIRST tDatum NO-ERROR.
  616. IF NOT AVAILABLE tDatum THEN F_Datum = TODAY.
  617. ELSE F_Datum = tDatum.Datum.
  618. DISPLAY {&List-6}.
  619. END.
  620. GET-KEY-VALUE SECTION 'FwSteuer' KEY 'FwFRW' VALUE FwFRW.
  621. IF FwFRW = ? THEN FwFRW = 'CHF'.
  622. APPLY 'ENTRY' TO F_Datum IN FRAME {&FRAME-NAME}.
  623. END PROCEDURE.
  624. /* _UIB-CODE-BLOCK-END */
  625. &ANALYZE-RESUME
  626. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gInventUeb _DEFAULT-ENABLE
  627. PROCEDURE enable_UI :
  628. /*------------------------------------------------------------------------------
  629. Purpose: ENABLE the User Interface
  630. Parameters: <none>
  631. Notes: Here we display/view/enable the widgets in the
  632. user-interface. In addition, OPEN all queries
  633. associated with each FRAME and BROWSE.
  634. These statements here are based on the "Other
  635. Settings" section of the widget Property Sheets.
  636. ------------------------------------------------------------------------------*/
  637. DISPLAY F_Datum F_Artnr_V F_Artnr_B F_Inhalt_V F_Inhalt_B F_Jahr_V F_Jahr_B
  638. F_Wgr_V F_Wgr_B F_Fortschritt CB_Negativ CB_Positiv T_Negativ
  639. T_Positiv CB_Lager
  640. WITH FRAME gInventUeb.
  641. ENABLE F_Datum F_Artnr_V F_Artnr_B F_Inhalt_V F_Inhalt_B F_Jahr_V F_Jahr_B
  642. F_Wgr_V F_Wgr_B Btn_Start Btn_Cancel CB_Negativ CB_Positiv T_Negativ
  643. T_Positiv CB_Lager RECT-36
  644. WITH FRAME gInventUeb.
  645. VIEW FRAME gInventUeb.
  646. {&OPEN-BROWSERS-IN-QUERY-gInventUeb}
  647. END PROCEDURE.
  648. /* _UIB-CODE-BLOCK-END */
  649. &ANALYZE-RESUME
  650. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gInventUeb
  651. PROCEDURE ENDE :
  652. /*------------------------------------------------------------------------------
  653. Purpose:
  654. Parameters: <none>
  655. Notes:
  656. ------------------------------------------------------------------------------*/
  657. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  658. IF AktSeite > 1 THEN DO:
  659. RUN selectPage ( INPUT 1 ).
  660. RETURN NO-APPLY.
  661. END.
  662. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  663. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  664. RETURN NO-APPLY.
  665. END PROCEDURE.
  666. /* _UIB-CODE-BLOCK-END */
  667. &ANALYZE-RESUME
  668. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR gInventUeb
  669. PROCEDURE ENTRY_CURSOR :
  670. /*------------------------------------------------------------------------------
  671. Purpose:
  672. Parameters: <none>
  673. Notes:
  674. ------------------------------------------------------------------------------*/
  675. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  676. CASE AktSeite:
  677. /* WHEN 1 THEN RUN applyEntry IN h_v-adresse ( INPUT ? ). */
  678. /* WHEN 2 THEN RUN applyEntry IN h_f-adrkomm ( INPUT ? ). */
  679. /* WHEN 3 THEN RUN applyEntry IN h_b-auftbb ( INPUT ? ). */
  680. /* WHEN 4 THEN RUN applyEntry IN h_b-aufdet ( INPUT ? ). */
  681. /* WHEN 5 THEN RUN applyEntry IN h_b-aufstreu ( INPUT ? ). */
  682. /* WHEN 6 THEN RUN applyEntry IN h_b-auffak ( INPUT ? ). */
  683. /* WHEN 7 THEN RUN applyEntry IN h_b-position ( INPUT ? ). */
  684. END CASE.
  685. RETURN NO-APPLY.
  686. END PROCEDURE.
  687. /* _UIB-CODE-BLOCK-END */
  688. &ANALYZE-RESUME
  689. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gInventUeb
  690. PROCEDURE exitObject :
  691. /*------------------------------------------------------------------------------
  692. Purpose: Super Override
  693. Parameters:
  694. Notes:
  695. ------------------------------------------------------------------------------*/
  696. RUN ENDE.
  697. RETURN NO-APPLY.
  698. END PROCEDURE.
  699. /* _UIB-CODE-BLOCK-END */
  700. &ANALYZE-RESUME
  701. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INVENTARBUCHUNG gInventUeb
  702. PROCEDURE INVENTARBUCHUNG :
  703. /*------------------------------------------------------------------------------
  704. Purpose:
  705. Parameters: <none>
  706. Notes:
  707. ------------------------------------------------------------------------------*/
  708. DEF OUTPUT PARAMETER opInvBest AS DEC NO-UNDO.
  709. DEF OUTPUT PARAMETER opTrnr AS INT NO-UNDO.
  710. DEF VAR VArt AS INT NO-UNDO.
  711. DEF VAR i1 AS INT NO-UNDO.
  712. DEF VAR KGeb_Me AS DEC DECIMALS 3 NO-UNDO.
  713. DEF VAR VGeb_Me AS DEC DECIMALS 3 NO-UNDO.
  714. DEF VAR GGeb_Me AS DEC DECIMALS 3 NO-UNDO.
  715. FIND Steuer WHERE Steuer.Firma = Firma NO-LOCK.
  716. FIND BArtst WHERE RECID(BArtst) = ARecid NO-LOCK.
  717. FIND BArtLager WHERE RECID(BArtLager) = LRecid.
  718. FIND KGebinde USE-INDEX KGebinde-k1
  719. WHERE KGebinde.Firma = Firma
  720. AND KGebinde.Geb_Cd = BArtst.KGeb_Cd NO-LOCK NO-ERROR.
  721. KGeb_Me = 0.
  722. VGeb_Me = 0.
  723. GGeb_Me = 0.
  724. i1 = 99999999.
  725. FOR EACH Artbw USE-INDEX Artbw-k7
  726. WHERE Artbw.Firma = BArtLager.Firma
  727. AND Artbw.Artnr = BArtLager.Artnr
  728. AND Artbw.Inhalt = BArtLager.Inhalt
  729. AND Artbw.Jahr = BArtLager.Jahr
  730. AND Artbw.Tr_Art = 21
  731. AND Artbw.Datum = BArtLager.Datum_Inv
  732. AND Artbw.Lager = BArtLager.Lager.
  733. KGeb_Me = KGeb_Me + Artbw.KGeb_Me.
  734. VGeb_Me = VGeb_Me + Artbw.VGeb_Me.
  735. GGeb_Me = GGeb_Me + Artbw.GGeb_Me.
  736. IF Artbw.Trnr < i1 THEN i1 = Artbw.Trnr.
  737. DELETE Artbw.
  738. END.
  739. IF i1 = 99999999 THEN DO:
  740. FIND LAST Artbw USE-INDEX Artbw-k1
  741. WHERE Artbw.Firma = Firma NO-LOCK NO-ERROR.
  742. IF AVAILABLE Artbw THEN i1 = Artbw.Trnr + 1.
  743. ELSE i1 = 1.
  744. END.
  745. opTrnr = i1.
  746. FIND Wust USE-INDEX Wust-k1
  747. WHERE Wust.CodeK = Steuer.MWST-Exkl
  748. AND Wust.CodeA = BArtst.MWSt NO-LOCK NO-ERROR.
  749. CREATE Artbw.
  750. ASSIGN Artbw.Firma = Firma
  751. Artbw.Trnr = i1
  752. Artbw.Tr_Art = 21
  753. Artbw.Artnr = BArtst.Artnr
  754. Artbw.Inhalt = BArtst.Inhalt
  755. Artbw.Jahr = BArtst.Jahr
  756. Artbw.Bez1 = BArtst.Bez
  757. Artbw.Knr = 0
  758. Artbw.Menge = KGeb_Me
  759. Artbw.Alk_Gehalt = BArtst.Alk_Gehalt
  760. Artbw.Aktion = FALSE
  761. Artbw.Sk_Ber = FALSE
  762. Artbw.Netto = FALSE
  763. Artbw.Lager = BArtLager.Lager
  764. Artbw.KGeb_Cd = BArtst.KGeb_Cd
  765. Artbw.VGeb_Cd = BArtst.VGeb_Cd
  766. Artbw.GGeb_Cd = BArtst.GGeb_Cd
  767. Artbw.KGeb_Me = KGeb_Me
  768. Artbw.VGeb_Me = VGeb_Me
  769. Artbw.GGeb_Me = GGeb_Me
  770. Artbw.EP = BArtst.DEP
  771. Artbw.Preis = BArtst.DEP
  772. Artbw.Bru_Betr = BArtst.DEP * KGeb_Me
  773. Artbw.Net_Betr = BArtst.DEP * KGeb_Me
  774. Artbw.Datum = BArtLager.Datum_Inv
  775. Artbw.Abhol = FALSE
  776. Artbw.FRW = FwFRW
  777. Artbw.Faktor = 1
  778. Artbw.Kurs = 1.0
  779. Artbw.WC = BArtst.MWST
  780. Artbw.WuCd = Wust.WuCd
  781. Artbw.Aufnr = 0.
  782. IF AVAILABLE KGebinde THEN DO:
  783. ASSIGN Artbw.Liter = KGeb_Me * KGebinde.Inhalt / 100
  784. Artbw.Gewicht = (KGeb_Me * BArtst.Gewicht)
  785. + (KGeb_Me * KGebinde.Gewicht).
  786. END.
  787. opInvBest = Artbw.Menge.
  788. RELEASE BArtst.
  789. RELEASE BArtLager.
  790. RELEASE Steuer.
  791. RELEASE KGebinde.
  792. RELEASE Wust.
  793. RELEASE Artbw.
  794. END PROCEDURE.
  795. /* _UIB-CODE-BLOCK-END */
  796. &ANALYZE-RESUME
  797. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KORREKTUR gInventUeb
  798. PROCEDURE KORREKTUR :
  799. /*------------------------------------------------------------------------------
  800. Purpose:
  801. Parameters: <none>
  802. Notes:
  803. ------------------------------------------------------------------------------*/
  804. DEF VAR VArt AS INT NO-UNDO.
  805. DEF VAR i1 AS INT NO-UNDO.
  806. DO WITH FRAME {&FRAME-NAME}:
  807. IF T_Negativ = FALSE AND
  808. T_Positiv = FALSE THEN RETURN.
  809. IF VDiff < 0 AND T_Negativ = FALSE THEN RETURN.
  810. IF VDiff > 0 AND T_Positiv = FALSE THEN RETURN.
  811. IF VDiff < 0 THEN VArt = VNeg.
  812. ELSE VArt = VPos.
  813. REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}:
  814. FIND Steuer WHERE Steuer.Firma = Firma NO-LOCK.
  815. FIND BArtst WHERE RECID(BArtst) = ARecid NO-LOCK.
  816. FIND BArtLager WHERE RECID(BArtLager) = LRecid.
  817. FIND KGebinde USE-INDEX KGebinde-k1
  818. WHERE KGebinde.Firma = Firma
  819. AND KGebinde.Geb_Cd = BArtst.KGeb_Cd NO-LOCK NO-ERROR.
  820. FIND LAST Artbw USE-INDEX Artbw-k1
  821. WHERE Artbw.Firma = Firma NO-LOCK NO-ERROR.
  822. IF AVAILABLE Artbw THEN i1 = Artbw.Trnr + 1.
  823. ELSE i1 = 1.
  824. FIND Wust USE-INDEX Wust-k1
  825. WHERE Wust.CodeK = Steuer.MWST-Exkl
  826. AND Wust.CodeA = BArtst.MWSt NO-LOCK NO-ERROR.
  827. CREATE Artbw.
  828. ASSIGN Artbw.Firma = Firma
  829. Artbw.Trnr = i1
  830. Artbw.Tr_Art = VArt
  831. Artbw.Artnr = BArtst.Artnr
  832. Artbw.Inhalt = BArtst.Inhalt
  833. Artbw.Jahr = BArtst.Jahr
  834. Artbw.Bez1 = BArtst.Bez
  835. Artbw.Knr = 0
  836. Artbw.Menge = VDiff
  837. Artbw.Alk_Gehalt = BArtst.Alk_Gehalt
  838. Artbw.Aktion = FALSE
  839. Artbw.Sk_Ber = FALSE
  840. Artbw.Netto = FALSE
  841. Artbw.Lager = BArtLager.Lager
  842. Artbw.KGeb_Cd = BArtst.KGeb_Cd
  843. Artbw.VGeb_Cd = BArtst.VGeb_Cd
  844. Artbw.GGeb_Cd = BArtst.GGeb_Cd
  845. Artbw.KGeb_Me = VDiff
  846. Artbw.VGeb_Me = 0
  847. Artbw.GGeb_Me = 0
  848. Artbw.EP = BArtst.DEP
  849. Artbw.Preis = BArtst.DEP
  850. Artbw.Bru_Betr = BArtst.DEP * VDiff
  851. Artbw.Net_Betr = BArtst.DEP * VDiff
  852. Artbw.Liter = VDiff * KGebinde.Inhalt / 100
  853. Artbw.Gewicht = (VDiff * BArtst.Gewicht)
  854. + KGebinde.Gewicht
  855. Artbw.Datum = VDatum
  856. Artbw.Abhol = FALSE
  857. Artbw.FRW = FwFRW
  858. Artbw.Faktor = 1
  859. Artbw.Kurs = 1.0
  860. Artbw.WC = BArtst.MWST
  861. Artbw.WuCd = Wust.WuCd
  862. Artbw.Aufnr = 0.
  863. BArtLager.Bestand_Alt = BArtLager.Bestand_Alt + VDiff.
  864. RELEASE BArtst.
  865. RELEASE BArtLager.
  866. RELEASE Steuer.
  867. RELEASE KGebinde.
  868. RELEASE Wust.
  869. RELEASE Artbw.
  870. LEAVE.
  871. END.
  872. END. /* FRAME */
  873. RETURN.
  874. END PROCEDURE.
  875. /* _UIB-CODE-BLOCK-END */
  876. &ANALYZE-RESUME
  877. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE gInventUeb
  878. PROCEDURE NEXTPAGE :
  879. /*------------------------------------------------------------------------------
  880. Purpose:
  881. Parameters: <none>
  882. Notes:
  883. ------------------------------------------------------------------------------*/
  884. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  885. IF AktSeite = MaxPage THEN AktSeite = 1.
  886. ELSE AktSeite = AktSeite + 1.
  887. RUN selectPage ( INPUT AktSeite ).
  888. END PROCEDURE.
  889. /* _UIB-CODE-BLOCK-END */
  890. &ANALYZE-RESUME
  891. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREVPAGE gInventUeb
  892. PROCEDURE PREVPAGE :
  893. /*------------------------------------------------------------------------------
  894. Purpose:
  895. Parameters: <none>
  896. Notes:
  897. ------------------------------------------------------------------------------*/
  898. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  899. IF AktSeite = 1 THEN AktSeite = MaxPage.
  900. ELSE AktSeite = AktSeite - 1.
  901. RUN selectPage ( INPUT AktSeite ).
  902. END PROCEDURE.
  903. /* _UIB-CODE-BLOCK-END */
  904. &ANALYZE-RESUME
  905. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage gInventUeb
  906. PROCEDURE selectPage :
  907. /*------------------------------------------------------------------------------
  908. Purpose: Super Override
  909. Parameters:
  910. Notes:
  911. ------------------------------------------------------------------------------*/
  912. DEF INPUT PARAMETER piPageNum AS INT NO-UNDO.
  913. DEF VAR FMutFlag AS LOG NO-UNDO.
  914. DEF VAR MutProg AS CHAR NO-UNDO.
  915. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  916. DO WHILE TRUE:
  917. IF NOT FMutFlag THEN LEAVE.
  918. MutProg = DYNAMIC-FUNCTION('GETMUTPROG':U).
  919. IF MutProg <> THIS-PROCEDURE:FILE-NAME THEN LEAVE.
  920. RETURN NO-APPLY.
  921. END.
  922. CASE piPageNum:
  923. END CASE.
  924. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  925. CASE AktSeite:
  926. WHEN 1 THEN DO:
  927. /* RUN removeLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */
  928. /* RUN removeLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */
  929. END.
  930. END CASE.
  931. RUN SUPER( INPUT piPageNum).
  932. END PROCEDURE.
  933. /* _UIB-CODE-BLOCK-END */
  934. &ANALYZE-RESUME
  935. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR gInventUeb
  936. PROCEDURE TOOLBAR :
  937. /*------------------------------------------------------------------------------
  938. Purpose:
  939. Parameters: <none>
  940. Notes:
  941. ------------------------------------------------------------------------------*/
  942. DEF INPUT PARAMETER pcAction AS CHAR NO-UNDO.
  943. /*
  944. RUN TOOLBAR IN h_dyntoolbar ( INPUT pcAction ).
  945. */
  946. END PROCEDURE.
  947. /* _UIB-CODE-BLOCK-END */
  948. &ANALYZE-RESUME