d-best-rech.w 34 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME D-Lagerbestand
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS D-Lagerbestand
  6. /*------------------------------------------------------------------------
  7. File:
  8. Description: from cntnrdlg.w - ADM 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 UIB. */
  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 LHandle AS HANDLE NO-UNDO.
  28. DEFINE VARIABLE iLager AS INTEGER NO-UNDO.
  29. DEFINE TEMP-TABLE tArtst LIKE Artst.
  30. DEF TEMP-TABLE tBestand
  31. FIELD Lager AS INT
  32. FIELD ilRecid AS RECID
  33. FIELD iaRecid AS RECID
  34. FIELD Inv_Datum AS DATE
  35. FIELD Inv_Bestand AS DEC
  36. FIELD Eingang AS DEC
  37. FIELD Ausgang AS DEC
  38. FIELD iTrnr AS INT
  39. .
  40. /* ---------- Globale Variablen ---------------------------------- */
  41. { v8/globvar.i" " " " "SHARED" }
  42. { v8/debivar.i " " " " "SHARED" }
  43. { v8/artivar.i " " " " "SHARED" }
  44. { v8/contvar.i " " " " "SHARED" }
  45. /* _UIB-CODE-BLOCK-END */
  46. &ANALYZE-RESUME
  47. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  48. /* ******************** Preprocessor Definitions ******************** */
  49. &Scoped-define PROCEDURE-TYPE SmartDialog
  50. &Scoped-define DB-AWARE no
  51. &Scoped-define ADM-CONTAINER DIALOG-BOX
  52. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  53. &Scoped-define FRAME-NAME D-Lagerbestand
  54. /* Standard List Definitions */
  55. &Scoped-Define ENABLED-OBJECTS RECT-20 RECT-21 CB_Lager F_Artnr F_Inhalt ~
  56. F_Jahr F_Bezeichnung F_Bestand T_Alle F_Letzt_Inv F_Inventar F_Eingang ~
  57. F_Ausgang F_Bestand_Neu Btn_OK Btn_Cancel
  58. &Scoped-Define DISPLAYED-OBJECTS CB_Lager F_Artnr F_Inhalt F_Jahr ~
  59. F_Bezeichnung F_Bestand T_Alle F_Letzt_Inv T_Inaktive F_Inventar F_Eingang ~
  60. F_Ausgang F_Bestand_Neu
  61. /* Custom List Definitions */
  62. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  63. &Scoped-define List-5 F_Artnr F_Inhalt F_Jahr F_Bezeichnung F_Bestand ~
  64. T_Alle F_Letzt_Inv T_Inaktive F_Inventar F_Eingang F_Ausgang F_Bestand_Neu
  65. &Scoped-define List-6 F_Artnr F_Inhalt F_Jahr T_Alle T_Inaktive
  66. /* _UIB-PREPROCESSOR-BLOCK-END */
  67. &ANALYZE-RESUME
  68. /* *********************** Control Definitions ********************** */
  69. /* Define a dialog box */
  70. /* Definitions of the field level widgets */
  71. DEFINE BUTTON Btn_Cancel
  72. LABEL "&Schliessen"
  73. SIZE 15 BY 1.14
  74. BGCOLOR 8 .
  75. DEFINE BUTTON Btn_OK
  76. LABEL "&Rechnen"
  77. SIZE 15 BY 1.14
  78. BGCOLOR 8 .
  79. DEFINE VARIABLE CB_Lager AS CHARACTER FORMAT "X(256)":U
  80. LABEL "Lager"
  81. VIEW-AS COMBO-BOX INNER-LINES 5
  82. LIST-ITEM-PAIRS "Item 1","Item 1"
  83. DROP-DOWN-LIST
  84. SIZE 27 BY 1 NO-UNDO.
  85. DEFINE VARIABLE F_Artnr AS INTEGER FORMAT "999999":U INITIAL 0
  86. LABEL "Artikel"
  87. VIEW-AS FILL-IN NATIVE
  88. SIZE 11 BY 1
  89. BGCOLOR 15 NO-UNDO.
  90. DEFINE VARIABLE F_Ausgang AS DECIMAL FORMAT "zz,zzz,zz9-":U INITIAL 0
  91. LABEL "Ausgang"
  92. VIEW-AS FILL-IN
  93. SIZE 17 BY 1
  94. BGCOLOR 15 NO-UNDO.
  95. DEFINE VARIABLE F_Bestand AS DECIMAL FORMAT "zz,zzz,zz9.99-":U INITIAL 0
  96. LABEL "Bestand alt"
  97. VIEW-AS FILL-IN NATIVE
  98. SIZE 21 BY 1
  99. BGCOLOR 15 NO-UNDO.
  100. DEFINE VARIABLE F_Bestand_Neu AS DECIMAL FORMAT "zz,zzz,zz9-":U INITIAL 0
  101. LABEL "Bestand neu"
  102. VIEW-AS FILL-IN
  103. SIZE 17 BY 1
  104. BGCOLOR 15 NO-UNDO.
  105. DEFINE VARIABLE F_Bezeichnung AS CHARACTER FORMAT "X(256)":U
  106. VIEW-AS FILL-IN NATIVE
  107. SIZE 50 BY 1
  108. BGCOLOR 15 NO-UNDO.
  109. DEFINE VARIABLE F_Eingang AS DECIMAL FORMAT "zz,zzz,zz9-":U INITIAL 0
  110. LABEL "Eingang"
  111. VIEW-AS FILL-IN
  112. SIZE 17 BY 1
  113. BGCOLOR 15 NO-UNDO.
  114. DEFINE VARIABLE F_Inhalt AS INTEGER FORMAT "9999":U INITIAL 0
  115. VIEW-AS FILL-IN NATIVE
  116. SIZE 8 BY 1
  117. BGCOLOR 15 NO-UNDO.
  118. DEFINE VARIABLE F_Inventar AS DECIMAL FORMAT "zz,zzz,zz9.99-":U INITIAL 0
  119. LABEL "Inventar"
  120. VIEW-AS FILL-IN NATIVE
  121. SIZE 21 BY 1
  122. BGCOLOR 15 NO-UNDO.
  123. DEFINE VARIABLE F_Jahr AS INTEGER FORMAT "9999":U INITIAL 0
  124. VIEW-AS FILL-IN NATIVE
  125. SIZE 8 BY 1
  126. BGCOLOR 15 NO-UNDO.
  127. DEFINE VARIABLE F_Letzt_Inv AS DATE FORMAT "99.99.9999":U
  128. LABEL "Letztes Inventar"
  129. VIEW-AS FILL-IN NATIVE
  130. SIZE 21 BY 1
  131. BGCOLOR 15 NO-UNDO.
  132. DEFINE RECTANGLE RECT-20
  133. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  134. SIZE 85 BY .33
  135. BGCOLOR 12 .
  136. DEFINE RECTANGLE RECT-21
  137. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  138. SIZE 85 BY .33
  139. BGCOLOR 12 .
  140. DEFINE VARIABLE T_Alle AS LOGICAL INITIAL NO
  141. LABEL "Alle Artikel neu rechnen ?"
  142. VIEW-AS TOGGLE-BOX
  143. SIZE 30.4 BY 1 NO-UNDO.
  144. DEFINE VARIABLE T_Inaktive AS LOGICAL INITIAL NO
  145. LABEL "inaktive Artikel auch"
  146. VIEW-AS TOGGLE-BOX
  147. SIZE 25 BY 1 NO-UNDO.
  148. /* ************************ Frame Definitions *********************** */
  149. DEFINE FRAME D-Lagerbestand
  150. CB_Lager AT ROW 1.52 COL 9 COLON-ALIGNED WIDGET-ID 2
  151. F_Artnr AT ROW 2.52 COL 9 COLON-ALIGNED
  152. F_Inhalt AT ROW 2.52 COL 20 COLON-ALIGNED NO-LABEL
  153. F_Jahr AT ROW 2.52 COL 28 COLON-ALIGNED NO-LABEL
  154. F_Bezeichnung AT ROW 2.52 COL 36 COLON-ALIGNED NO-LABEL
  155. F_Bestand AT ROW 3.52 COL 65 COLON-ALIGNED
  156. T_Alle AT ROW 4.52 COL 11
  157. F_Letzt_Inv AT ROW 4.52 COL 65 COLON-ALIGNED
  158. T_Inaktive AT ROW 5.52 COL 11 WIDGET-ID 4
  159. F_Inventar AT ROW 5.52 COL 65 COLON-ALIGNED
  160. F_Eingang AT ROW 8 COL 9 COLON-ALIGNED
  161. F_Ausgang AT ROW 8 COL 37 COLON-ALIGNED
  162. F_Bestand_Neu AT ROW 8 COL 69 COLON-ALIGNED
  163. Btn_OK AT ROW 11 COL 21.2
  164. Btn_Cancel AT ROW 11 COL 42.4
  165. RECT-20 AT ROW 7 COL 3
  166. RECT-21 AT ROW 10 COL 3
  167. SPACE(3.39) SKIP(2.47)
  168. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  169. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  170. TITLE "Lagerbestand eines Artikels neu rechnen".
  171. /* *********************** Procedure Settings ************************ */
  172. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  173. /* Settings for THIS-PROCEDURE
  174. Type: SmartDialog
  175. Allow: Basic,Browse,DB-Fields,Query,Smart
  176. Other Settings: COMPILE
  177. */
  178. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  179. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB D-Lagerbestand
  180. /* ************************* Included-Libraries *********************** */
  181. {src/adm/method/containr.i}
  182. /* _UIB-CODE-BLOCK-END */
  183. &ANALYZE-RESUME
  184. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  185. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  186. /* SETTINGS FOR DIALOG-BOX D-Lagerbestand
  187. FRAME-NAME */
  188. ASSIGN
  189. FRAME D-Lagerbestand:SCROLLABLE = FALSE
  190. FRAME D-Lagerbestand:HIDDEN = TRUE.
  191. /* SETTINGS FOR FILL-IN F_Artnr IN FRAME D-Lagerbestand
  192. 5 6 */
  193. /* SETTINGS FOR FILL-IN F_Ausgang IN FRAME D-Lagerbestand
  194. 5 */
  195. /* SETTINGS FOR FILL-IN F_Bestand IN FRAME D-Lagerbestand
  196. 5 */
  197. /* SETTINGS FOR FILL-IN F_Bestand_Neu IN FRAME D-Lagerbestand
  198. 5 */
  199. /* SETTINGS FOR FILL-IN F_Bezeichnung IN FRAME D-Lagerbestand
  200. 5 */
  201. /* SETTINGS FOR FILL-IN F_Eingang IN FRAME D-Lagerbestand
  202. 5 */
  203. /* SETTINGS FOR FILL-IN F_Inhalt IN FRAME D-Lagerbestand
  204. 5 6 */
  205. /* SETTINGS FOR FILL-IN F_Inventar IN FRAME D-Lagerbestand
  206. 5 */
  207. /* SETTINGS FOR FILL-IN F_Jahr IN FRAME D-Lagerbestand
  208. 5 6 */
  209. /* SETTINGS FOR FILL-IN F_Letzt_Inv IN FRAME D-Lagerbestand
  210. 5 */
  211. /* SETTINGS FOR TOGGLE-BOX T_Alle IN FRAME D-Lagerbestand
  212. 5 6 */
  213. /* SETTINGS FOR TOGGLE-BOX T_Inaktive IN FRAME D-Lagerbestand
  214. NO-ENABLE 5 6 */
  215. /* _RUN-TIME-ATTRIBUTES-END */
  216. &ANALYZE-RESUME
  217. /* Setting information for Queries and Browse Widgets fields */
  218. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX D-Lagerbestand
  219. /* Query rebuild information for DIALOG-BOX D-Lagerbestand
  220. _Options = "SHARE-LOCK"
  221. _Query is NOT OPENED
  222. */ /* DIALOG-BOX D-Lagerbestand */
  223. &ANALYZE-RESUME
  224. /* ************************ Control Triggers ************************ */
  225. &Scoped-define SELF-NAME D-Lagerbestand
  226. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL D-Lagerbestand D-Lagerbestand
  227. ON WINDOW-CLOSE OF FRAME D-Lagerbestand /* Lagerbestand eines Artikels neu rechnen */
  228. DO:
  229. /* Add Trigger to equate WINDOW-CLOSE to END-ERROR. */
  230. APPLY "END-ERROR":U TO SELF.
  231. END.
  232. /* _UIB-CODE-BLOCK-END */
  233. &ANALYZE-RESUME
  234. &Scoped-define SELF-NAME Btn_Cancel
  235. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel D-Lagerbestand
  236. ON CHOOSE OF Btn_Cancel IN FRAME D-Lagerbestand /* Schliessen */
  237. DO:
  238. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  239. END.
  240. /* _UIB-CODE-BLOCK-END */
  241. &ANALYZE-RESUME
  242. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel D-Lagerbestand
  243. ON END-ERROR OF Btn_Cancel IN FRAME D-Lagerbestand /* Schliessen */
  244. DO:
  245. APPLY 'ENTRY' TO F_Artnr IN FRAME {&FRAME-NAME}.
  246. RETURN NO-APPLY.
  247. END.
  248. /* _UIB-CODE-BLOCK-END */
  249. &ANALYZE-RESUME
  250. &Scoped-define SELF-NAME Btn_OK
  251. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK D-Lagerbestand
  252. ON CHOOSE OF Btn_OK IN FRAME D-Lagerbestand /* Rechnen */
  253. DO:
  254. DO WITH FRAME {&FRAME-NAME}:
  255. DISABLE Btn_OK Btn_Cancel.
  256. ASSIGN {&List-6}.
  257. iLager = INTEGER(CB_Lager:SCREEN-VALUE).
  258. IF T_Alle = TRUE THEN RUN WORKFILE.
  259. ELSE
  260. DO:
  261. EMPTY TEMP-TABLE tArtst.
  262. FIND Artst NO-LOCK
  263. WHERE Artst.Firma = GVFirma
  264. AND Artst.Artnr = F_Artnr
  265. AND Artst.Inhalt = F_Inhalt
  266. AND Artst.Jahr = F_Jahr NO-ERROR.
  267. IF AVAILABLE Artst THEN
  268. DO:
  269. CREATE tArtst.
  270. BUFFER-COPY Artst TO tArtst.
  271. END.
  272. END.
  273. RUN RECHNEN.
  274. ENABLE Btn_OK Btn_Cancel.
  275. END.
  276. END.
  277. /* _UIB-CODE-BLOCK-END */
  278. &ANALYZE-RESUME
  279. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK D-Lagerbestand
  280. ON END-ERROR OF Btn_OK IN FRAME D-Lagerbestand /* Rechnen */
  281. DO:
  282. APPLY 'ENTRY' TO F_Artnr IN FRAME {&FRAME-NAME}.
  283. RETURN NO-APPLY.
  284. END.
  285. /* _UIB-CODE-BLOCK-END */
  286. &ANALYZE-RESUME
  287. &Scoped-define SELF-NAME F_Artnr
  288. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr D-Lagerbestand
  289. ON LEAVE OF F_Artnr IN FRAME D-Lagerbestand /* Artikel */
  290. DO:
  291. DO WITH FRAME {&FRAME-NAME}:
  292. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN.
  293. LKY = LASTKEY.
  294. LHandle = LAST-EVENT:WIDGET-ENTER.
  295. IF VALID-HANDLE(LHandle) THEN
  296. DO:
  297. IF LHandle:TYPE <> 'BUTTON' THEN RETURN.
  298. IF LHandle:NAME = 'Btn_Cancel' THEN RETURN.
  299. END.
  300. ASSIGN {&List-6}.
  301. FIND FIRST Artst USE-INDEX Artst-k1
  302. WHERE Artst.Firma = GVFirma
  303. AND Artst.Artnr = F_Artnr NO-LOCK NO-ERROR.
  304. IF NOT AVAILABLE Artst THEN
  305. DO:
  306. BELL.
  307. APPLY 'ENTRY' TO SELF.
  308. RETURN NO-APPLY.
  309. END.
  310. IF F_Inhalt = 0 THEN F_Inhalt = Artst.Inhalt.
  311. IF F_Jahr = 0 THEN F_Jahr = Artst.Jahr.
  312. DISPLAY {&List-6}.
  313. APPLY 'ENTRY' TO F_Inhalt.
  314. RETURN NO-APPLY.
  315. END.
  316. END.
  317. /* _UIB-CODE-BLOCK-END */
  318. &ANALYZE-RESUME
  319. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr D-Lagerbestand
  320. ON RETURN OF F_Artnr IN FRAME D-Lagerbestand /* Artikel */
  321. DO:
  322. APPLY 'TAB' TO SELF.
  323. RETURN NO-APPLY.
  324. END.
  325. /* _UIB-CODE-BLOCK-END */
  326. &ANALYZE-RESUME
  327. &Scoped-define SELF-NAME F_Ausgang
  328. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Ausgang D-Lagerbestand
  329. ON ENTRY OF F_Ausgang IN FRAME D-Lagerbestand /* Ausgang */
  330. DO:
  331. APPLY 'TAB' TO SELF.
  332. RETURN NO-APPLY.
  333. END.
  334. /* _UIB-CODE-BLOCK-END */
  335. &ANALYZE-RESUME
  336. &Scoped-define SELF-NAME F_Bestand
  337. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Bestand D-Lagerbestand
  338. ON ENTRY OF F_Bestand IN FRAME D-Lagerbestand /* Bestand alt */
  339. DO:
  340. APPLY 'TAB' TO SELF.
  341. RETURN NO-APPLY.
  342. END.
  343. /* _UIB-CODE-BLOCK-END */
  344. &ANALYZE-RESUME
  345. &Scoped-define SELF-NAME F_Bestand_Neu
  346. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Bestand_Neu D-Lagerbestand
  347. ON ENTRY OF F_Bestand_Neu IN FRAME D-Lagerbestand /* Bestand neu */
  348. DO:
  349. APPLY 'TAB' TO SELF.
  350. RETURN NO-APPLY.
  351. END.
  352. /* _UIB-CODE-BLOCK-END */
  353. &ANALYZE-RESUME
  354. &Scoped-define SELF-NAME F_Bezeichnung
  355. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Bezeichnung D-Lagerbestand
  356. ON ENTRY OF F_Bezeichnung IN FRAME D-Lagerbestand
  357. DO:
  358. APPLY 'TAB' TO SELF.
  359. RETURN NO-APPLY.
  360. END.
  361. /* _UIB-CODE-BLOCK-END */
  362. &ANALYZE-RESUME
  363. &Scoped-define SELF-NAME F_Eingang
  364. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Eingang D-Lagerbestand
  365. ON ENTRY OF F_Eingang IN FRAME D-Lagerbestand /* Eingang */
  366. DO:
  367. APPLY 'TAB' TO SELF.
  368. RETURN NO-APPLY.
  369. END.
  370. /* _UIB-CODE-BLOCK-END */
  371. &ANALYZE-RESUME
  372. &Scoped-define SELF-NAME F_Inhalt
  373. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Inhalt D-Lagerbestand
  374. ON END-ERROR OF F_Inhalt IN FRAME D-Lagerbestand
  375. DO:
  376. APPLY 'ENTRY' TO F_Artnr IN FRAME {&FRAME-NAME}.
  377. RETURN NO-APPLY.
  378. END.
  379. /* _UIB-CODE-BLOCK-END */
  380. &ANALYZE-RESUME
  381. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Inhalt D-Lagerbestand
  382. ON LEAVE OF F_Inhalt IN FRAME D-Lagerbestand
  383. DO:
  384. DO WITH FRAME {&FRAME-NAME}:
  385. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN.
  386. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN.
  387. ASSIGN {&List-6}.
  388. FIND FIRST Artst USE-INDEX Artst-k1
  389. WHERE Artst.Firma = GVFirma
  390. AND Artst.Artnr = F_Artnr
  391. AND Artst.Inhalt >= F_Inhalt NO-LOCK NO-ERROR.
  392. IF NOT AVAILABLE Artst THEN
  393. DO:
  394. BELL.
  395. APPLY 'ENTRY' TO SELF.
  396. RETURN NO-APPLY.
  397. END.
  398. F_Inhalt = Artst.Inhalt.
  399. IF F_Jahr = 0 THEN F_Jahr = Artst.Jahr.
  400. DISPLAY {&List-6}.
  401. APPLY 'ENTRY' TO F_Jahr.
  402. RETURN NO-APPLY.
  403. END.
  404. END.
  405. /* _UIB-CODE-BLOCK-END */
  406. &ANALYZE-RESUME
  407. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Inhalt D-Lagerbestand
  408. ON RETURN OF F_Inhalt IN FRAME D-Lagerbestand
  409. DO:
  410. APPLY 'TAB' TO SELF.
  411. RETURN NO-APPLY.
  412. END.
  413. /* _UIB-CODE-BLOCK-END */
  414. &ANALYZE-RESUME
  415. &Scoped-define SELF-NAME F_Inventar
  416. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Inventar D-Lagerbestand
  417. ON ENTRY OF F_Inventar IN FRAME D-Lagerbestand /* Inventar */
  418. DO:
  419. APPLY 'TAB' TO SELF.
  420. RETURN NO-APPLY.
  421. END.
  422. /* _UIB-CODE-BLOCK-END */
  423. &ANALYZE-RESUME
  424. &Scoped-define SELF-NAME F_Jahr
  425. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Jahr D-Lagerbestand
  426. ON END-ERROR OF F_Jahr IN FRAME D-Lagerbestand
  427. DO:
  428. APPLY 'ENTRY' TO F_Artnr IN FRAME {&FRAME-NAME}.
  429. RETURN NO-APPLY.
  430. END.
  431. /* _UIB-CODE-BLOCK-END */
  432. &ANALYZE-RESUME
  433. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Jahr D-Lagerbestand
  434. ON LEAVE OF F_Jahr IN FRAME D-Lagerbestand
  435. DO:
  436. DO WITH FRAME {&FRAME-NAME}:
  437. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN.
  438. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN.
  439. ASSIGN {&List-6}.
  440. FIND Artst USE-INDEX Artst-k1
  441. WHERE Artst.Firma = GVFirma
  442. AND Artst.Artnr = F_Artnr
  443. AND Artst.Inhalt = F_Inhalt
  444. AND Artst.Jahr = F_Jahr NO-LOCK NO-ERROR.
  445. IF NOT AVAILABLE Artst THEN
  446. DO:
  447. BELL.
  448. APPLY 'ENTRY' TO SELF.
  449. RETURN NO-APPLY.
  450. END.
  451. FIND FIRST Artbez OF Artst NO-LOCK NO-ERROR.
  452. FIND FIRST ArtLager OF Artst NO-LOCK NO-ERROR.
  453. F_Artnr = Artbez.Artnr.
  454. F_Inhalt = Artbez.Inhalt.
  455. F_Jahr = Artbez.Jahr.
  456. F_Bezeichnung = Artbez.Bez1.
  457. F_Bestand = Artst.Bestand.
  458. F_Letzt_Inv = ArtLager.Datum_Inv.
  459. F_Inventar = ArtLager.Inv_Best.
  460. F_Eingang = 0.
  461. F_Ausgang = 0.
  462. F_Bestand_Neu = 0.
  463. IF F_Letzt_Inv <> ? THEN
  464. DO:
  465. FIND FIRST Artbw USE-INDEX Artbw-k7
  466. WHERE Artbw.Firma = GVFirma
  467. AND Artbw.Artnr = F_Artnr
  468. AND Artbw.Inhalt = F_Inhalt
  469. AND Artbw.Jahr = F_Jahr
  470. AND Artbw.Tr_Art = 21
  471. AND Artbw.Datum = F_Letzt_Inv NO-LOCK NO-ERROR.
  472. IF NOT AVAILABLE Artbw THEN F_Letzt_Inv = 01/01/0001.
  473. END.
  474. DISPLAY {&List-5}.
  475. END.
  476. END.
  477. /* _UIB-CODE-BLOCK-END */
  478. &ANALYZE-RESUME
  479. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Jahr D-Lagerbestand
  480. ON RETURN OF F_Jahr IN FRAME D-Lagerbestand
  481. DO:
  482. APPLY 'TAB' TO SELF.
  483. RETURN NO-APPLY.
  484. END.
  485. /* _UIB-CODE-BLOCK-END */
  486. &ANALYZE-RESUME
  487. &Scoped-define SELF-NAME F_Letzt_Inv
  488. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Letzt_Inv D-Lagerbestand
  489. ON ENTRY OF F_Letzt_Inv IN FRAME D-Lagerbestand /* Letztes Inventar */
  490. DO:
  491. APPLY 'TAB' TO SELF.
  492. RETURN NO-APPLY.
  493. END.
  494. /* _UIB-CODE-BLOCK-END */
  495. &ANALYZE-RESUME
  496. &Scoped-define SELF-NAME T_Alle
  497. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Alle D-Lagerbestand
  498. ON VALUE-CHANGED OF T_Alle IN FRAME D-Lagerbestand /* Alle Artikel neu rechnen ? */
  499. DO:
  500. IF SELF:SCREEN-VALUE BEGINS 'n' THEN
  501. DO:
  502. T_Inaktive:SCREEN-VALUE = STRING(FALSE).
  503. T_Inaktive:SENSITIVE = FALSE.
  504. END.
  505. ELSE
  506. DO:
  507. T_Inaktive:SENSITIVE = TRUE .
  508. END.
  509. END.
  510. /* _UIB-CODE-BLOCK-END */
  511. &ANALYZE-RESUME
  512. &UNDEFINE SELF-NAME
  513. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK D-Lagerbestand
  514. /* *************************** Main Block *************************** */
  515. SESSION:DATA-ENTRY-RETURN = TRUE.
  516. FIND Artst USE-INDEX Artst-k1
  517. WHERE Artst.Firma = GVFirma
  518. AND Artst.Artnr = LVArtnr
  519. AND Artst.Inhalt = LVInhalt
  520. AND Artst.Jahr = LVJahr NO-LOCK NO-ERROR.
  521. DO WHILE TRUE:
  522. IF NOT AVAILABLE Artst THEN LEAVE.
  523. FIND FIRST Artbez OF Artst NO-LOCK NO-ERROR.
  524. FIND FIRST ArtLager OF Artst NO-LOCK NO-ERROR.
  525. F_Artnr = Artbez.Artnr.
  526. F_Inhalt = Artbez.Inhalt.
  527. F_Jahr = Artbez.Jahr.
  528. F_Bezeichnung = Artbez.Bez1.
  529. F_Bestand = Artst.Bestand.
  530. F_Letzt_Inv = ArtLager.Datum_Inv.
  531. F_Inventar = ArtLager.Inv_Best.
  532. LEAVE.
  533. END.
  534. {src/adm/template/dialogmn.i}
  535. /* _UIB-CODE-BLOCK-END */
  536. &ANALYZE-RESUME
  537. /* ********************** Internal Procedures *********************** */
  538. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects D-Lagerbestand _ADM-CREATE-OBJECTS
  539. PROCEDURE adm-create-objects :
  540. /*------------------------------------------------------------------------------
  541. Purpose: Create handles for all SmartObjects used in this procedure.
  542. After SmartObjects are initialized, then SmartLinks are added.
  543. Parameters: <none>
  544. ------------------------------------------------------------------------------*/
  545. END PROCEDURE.
  546. /* _UIB-CODE-BLOCK-END */
  547. &ANALYZE-RESUME
  548. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available D-Lagerbestand _ADM-ROW-AVAILABLE
  549. PROCEDURE adm-row-available :
  550. /*------------------------------------------------------------------------------
  551. Purpose: Dispatched to this procedure when the Record-
  552. Source has a new row available. This procedure
  553. tries to get the new row (or foriegn keys) from
  554. the Record-Source and process it.
  555. Parameters: <none>
  556. ------------------------------------------------------------------------------*/
  557. /* Define variables needed by this internal procedure. */
  558. {src/adm/template/row-head.i}
  559. /* Process the newly available records (i.e. display fields,
  560. open queries, and/or pass records on to any RECORD-TARGETS). */
  561. {src/adm/template/row-end.i}
  562. END PROCEDURE.
  563. /* _UIB-CODE-BLOCK-END */
  564. &ANALYZE-RESUME
  565. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI D-Lagerbestand _DEFAULT-DISABLE
  566. PROCEDURE disable_UI :
  567. /*------------------------------------------------------------------------------
  568. Purpose: DISABLE the User Interface
  569. Parameters: <none>
  570. Notes: Here we clean-up the user-interface by deleting
  571. dynamic widgets we have created and/or hide
  572. frames. This procedure is usually called when
  573. we are ready to "clean-up" after running.
  574. ------------------------------------------------------------------------------*/
  575. /* Hide all frames. */
  576. HIDE FRAME D-Lagerbestand.
  577. END PROCEDURE.
  578. /* _UIB-CODE-BLOCK-END */
  579. &ANALYZE-RESUME
  580. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI D-Lagerbestand _DEFAULT-ENABLE
  581. PROCEDURE enable_UI :
  582. /*------------------------------------------------------------------------------
  583. Purpose: ENABLE the User Interface
  584. Parameters: <none>
  585. Notes: Here we display/view/enable the widgets in the
  586. user-interface. In addition, OPEN all queries
  587. associated with each FRAME and BROWSE.
  588. These statements here are based on the "Other
  589. Settings" section of the widget Property Sheets.
  590. ------------------------------------------------------------------------------*/
  591. DISPLAY CB_Lager F_Artnr F_Inhalt F_Jahr F_Bezeichnung F_Bestand T_Alle
  592. F_Letzt_Inv T_Inaktive F_Inventar F_Eingang F_Ausgang F_Bestand_Neu
  593. WITH FRAME D-Lagerbestand.
  594. ENABLE RECT-20 RECT-21 CB_Lager F_Artnr F_Inhalt F_Jahr F_Bezeichnung
  595. F_Bestand T_Alle F_Letzt_Inv F_Inventar F_Eingang F_Ausgang
  596. F_Bestand_Neu Btn_OK Btn_Cancel
  597. WITH FRAME D-Lagerbestand.
  598. VIEW FRAME D-Lagerbestand.
  599. {&OPEN-BROWSERS-IN-QUERY-D-Lagerbestand}
  600. END PROCEDURE.
  601. /* _UIB-CODE-BLOCK-END */
  602. &ANALYZE-RESUME
  603. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize D-Lagerbestand
  604. PROCEDURE local-initialize :
  605. /*------------------------------------------------------------------------------
  606. Purpose: Override standard ADM method
  607. Notes:
  608. ------------------------------------------------------------------------------*/
  609. /* Code placed here will execute PRIOR to standard behavior. */
  610. /* Dispatch standard ADM method. */
  611. RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) .
  612. DO WITH FRAME {&FRAME-NAME}:
  613. iLager = DYNAMIC-FUNCTION('getBenLager':U) NO-ERROR.
  614. RUN COMBO_LAGER ( CB_Lager:HANDLE ).
  615. CB_Lager:SCREEN-VALUE = STRING(iLager,'999999') NO-ERROR.
  616. END.
  617. END PROCEDURE.
  618. /* _UIB-CODE-BLOCK-END */
  619. &ANALYZE-RESUME
  620. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RECHNEN D-Lagerbestand
  621. PROCEDURE RECHNEN :
  622. /*------------------------------------------------------------------------------
  623. Purpose:
  624. Parameters: <none>
  625. Notes:
  626. ------------------------------------------------------------------------------*/
  627. DEFINE VARIABLE VInvBest AS DECIMAL NO-UNDO DECIMALS 4.
  628. DEFINE VARIABLE VEingang AS DECIMAL NO-UNDO DECIMALS 4.
  629. DEFINE VARIABLE VAusgang AS DECIMAL NO-UNDO DECIMALS 4.
  630. DEFINE VARIABLE VDatum AS DATE NO-UNDO.
  631. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  632. DEFINE VARIABLE nOldBest AS INTEGER NO-UNDO.
  633. DEFINE VARIABLE iLager AS INTEGER NO-UNDO.
  634. DEF BUFFER bArtLager FOR ArtLager.
  635. DEF BUFFER bArtst FOR Artst .
  636. DEF BUFFER bArtbw FOR Artbw .
  637. DISABLE TRIGGERS FOR LOAD OF Artst .
  638. DISABLE TRIGGERS FOR LOAD OF ArtLager.
  639. REPEAT ON ERROR UNDO, LEAVE WITH FRAME {&FRAME-NAME}:
  640. FIND FIRST tArtst NO-ERROR.
  641. IF NOT AVAILABLE tArtst THEN LEAVE.
  642. FIND FIRST bArtst OF tArtst NO-LOCK NO-ERROR.
  643. FIND FIRST Artbez OF tArtst NO-LOCK NO-ERROR.
  644. FIND FIRST ArtLager OF tArtst NO-LOCK NO-ERROR.
  645. F_Artnr = tArtst.Artnr.
  646. F_Inhalt = tArtst.Inhalt.
  647. F_Jahr = tArtst.Jahr.
  648. F_Eingang = 0.
  649. F_Ausgang = 0.
  650. F_Bestand = 0.
  651. IF AVAILABLE ArtLager THEN
  652. DO:
  653. F_Letzt_Inv = ArtLager.Datum_Inv.
  654. F_Inventar = ArtLager.Inv_Best.
  655. F_Bestand = ArtLager.Bestand.
  656. END.
  657. DISPLAY {&List-6}.
  658. DISPLAY {&List-5}.
  659. EMPTY TEMP-TABLE tBestand.
  660. FOR EACH bArtLager NO-LOCK
  661. WHERE bArtLager.Firma = bArtst.Firma
  662. AND bArtLager.Artnr = bArtst.Artnr
  663. AND bArtLager.Inhalt = bArtst.Inhalt
  664. AND bArtLager.Jahr = bArtst.Jahr:
  665. CREATE tBestand.
  666. ASSIGN
  667. tBestand.Lager = bArtLager.Lager
  668. tBestand.ilRecid = RECID(bArtLager)
  669. tBestand.iaRecid = RECID(bArtst)
  670. tBestand.Inv_Datum = bArtLager.Datum_Inv
  671. tBestand.iTrnr = 0.
  672. IF tBestand.Inv_Datum <> ? THEN
  673. DO:
  674. FOR EACH bArtbw NO-LOCK
  675. WHERE bArtbw.Firma = bArtst.Firma
  676. AND bArtbw.Artnr = bArtst.Artnr
  677. AND bArtbw.Inhalt = bArtst.Inhalt
  678. AND bArtbw.Jahr = bArtst.Jahr
  679. AND bArtbw.Lager = bArtLager.Lager
  680. AND bArtbw.Tr_Art = 21
  681. AND bArtbw.Datum = tBestand.Inv_Datum :
  682. IF bArtbw.Trnr > tBestand.iTrnr THEN tBestand.iTrnr = bArtbw.Trnr.
  683. END.
  684. END.
  685. IF tBestand.Inv_Datum = ? THEN
  686. DO:
  687. FIND FIRST bArtbw NO-LOCK USE-INDEX Artbw-k7
  688. WHERE bArtbw.Firma = bArtst.Firma
  689. AND bArtbw.Artnr = bArtst.Artnr
  690. AND bArtbw.Inhalt = bArtst.Inhalt
  691. AND bArtbw.Jahr = bArtst.Jahr
  692. AND bArtbw.Lager = bArtLager.Lager
  693. AND bArtbw.Tr_Art = 21 NO-ERROR.
  694. IF AVAILABLE bArtbw THEN tBestand.Inv_Datum = bArtbw.Datum.
  695. ELSE tBestand.Inv_Datum = 01/01/0001.
  696. IF AVAILABLE bArtbw AND
  697. bArtbw.Trnr < tBestand.iTrnr THEN tBestand.iTrnr = bArtbw.Trnr.
  698. END.
  699. END.
  700. FIND FIRST tBestand NO-ERROR.
  701. IF NOT AVAILABLE (tBestand) THEN NEXT.
  702. FOR EACH tBestand:
  703. iLager = tBestand.Lager.
  704. FOR EACH bArtbw NO-LOCK USE-INDEX Artbw-k2
  705. WHERE bArtbw.Firma = bArtst.Firma
  706. AND bArtbw.Artnr = bArtst.Artnr
  707. AND bArtbw.Inhalt = bArtst.Inhalt
  708. AND bArtbw.Jahr = bArtst.Jahr
  709. AND bArtbw.Lag_Buch = TRUE
  710. AND bArtbw.Lager = tBestand.Lager
  711. AND bArtbw.Datum >= tBestand.Inv_Datum:
  712. IF bArtbw.Datum = tBestand.Inv_Datum AND
  713. bArtbw.Tr_Art < 21 AND
  714. bArtbw.Trnr < tBestand.iTrnr THEN NEXT.
  715. DO WHILE TRUE:
  716. IF bArtbw.Tr_Art < 11 THEN
  717. DO:
  718. tBestand.Ausgang = tBestand.Ausgang + bArtbw.Menge.
  719. LEAVE.
  720. END.
  721. IF bArtbw.Tr_Art < 21 THEN
  722. DO:
  723. tBestand.Eingang = tBestand.Eingang + bArtbw.Menge.
  724. LEAVE.
  725. END.
  726. tBestand.Inv_Bestand = tBestand.Inv_Bestand + bArtbw.Menge.
  727. LEAVE.
  728. END.
  729. END.
  730. END.
  731. REPEAT TRANSACTION:
  732. FIND FIRST tBestand.
  733. iLager = tBestand.Lager.
  734. FIND Artst EXCLUSIVE-LOCK
  735. WHERE RECID(Artst) = tBestand.iaRecid NO-WAIT NO-ERROR.
  736. IF NOT AVAILABLE Artst AND
  737. LOCKED Artst THEN
  738. DO:
  739. cString = SUBSTITUTE('Artst &1 ist in Zugriff', Artst.Artnr ).
  740. /* MESSAGE cString */
  741. /* VIEW-AS ALERT-BOX.*/
  742. NEXT.
  743. END.
  744. nOldBest = Artst.Bestand.
  745. Artst.Bestand = 0.
  746. FOR EACH tBestand:
  747. FIND ArtLager EXCLUSIVE-LOCK
  748. WHERE RECID(ArtLager) = tBestand.ilRecid NO-WAIT NO-ERROR.
  749. IF NOT AVAILABLE ArtLager AND
  750. LOCKED ArtLager THEN
  751. DO:
  752. cString = SUBSTITUTE('ArtLager &1 ist in Zugriff', Artst.Artnr ).
  753. /* MESSAGE cString */
  754. /* VIEW-AS ALERT-BOX.*/
  755. NEXT.
  756. END.
  757. ASSIGN
  758. ArtLager.Inv_Best = tBestand.Inv_Bestand
  759. ArtLager.Eingang = tBestand.Eingang
  760. ArtLager.Ausgang = tBestand.Ausgang
  761. ArtLager.Bestand = tBestand.Inv_Bestand
  762. + tBestand.Eingang
  763. - tBestand.Ausgang.
  764. IF tBestand.Inv_Datum <> 01/01/0001 THEN ArtLager.Datum_Inv = tBestand.Inv_Datum.
  765. Artst.Bestand = Artst.Bestand + ArtLager.Bestand.
  766. RELEASE ArtLager.
  767. END.
  768. IF Artst.Bestand <> nOldBest THEN
  769. DO:
  770. cString = SUBSTITUTE('&1;&2;&3', Artst.Artnr, Artst.Bestand, nOldBest ).
  771. /* MESSAGE cString */
  772. /* VIEW-AS ALERT-BOX.*/
  773. END.
  774. FIND FIRST ArtLager NO-LOCK
  775. WHERE ArtLager.Firma = Artst.Firma
  776. AND ArtLager.Lager = iLager
  777. AND ArtLager.Artnr = Artst.Artnr
  778. AND ArtLager.Inhalt = Artst.Inhalt
  779. AND ArtLager.Jahr = Artst.Jahr NO-ERROR.
  780. ASSIGN
  781. F_Eingang = ArtLager.Eingang
  782. F_Ausgang = ArtLager.Ausgang
  783. F_Bestand_Neu = ArtLager.Bestand
  784. F_Eingang :SCREEN-VALUE = STRING(ArtLager.Eingang)
  785. F_Ausgang :SCREEN-VALUE = STRING(ArtLager.Ausgang)
  786. F_Bestand_Neu:SCREEN-VALUE = STRING(ArtLager.Bestand)
  787. .
  788. RELEASE Artst.
  789. RELEASE ArtLager.
  790. LEAVE.
  791. END.
  792. DELETE tArtst.
  793. END.
  794. END PROCEDURE.
  795. /* _UIB-CODE-BLOCK-END */
  796. &ANALYZE-RESUME
  797. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records D-Lagerbestand _ADM-SEND-RECORDS
  798. PROCEDURE send-records :
  799. /*------------------------------------------------------------------------------
  800. Purpose: Send record ROWID's for all tables used by
  801. this file.
  802. Parameters: see template/snd-head.i
  803. ------------------------------------------------------------------------------*/
  804. /* SEND-RECORDS does nothing because there are no External
  805. Tables specified for this SmartDialog, and there are no
  806. tables specified in any contained Browse, Query, or Frame. */
  807. END PROCEDURE.
  808. /* _UIB-CODE-BLOCK-END */
  809. &ANALYZE-RESUME
  810. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed D-Lagerbestand
  811. PROCEDURE state-changed :
  812. /* -----------------------------------------------------------
  813. Purpose:
  814. Parameters: <none>
  815. Notes:
  816. -------------------------------------------------------------*/
  817. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  818. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  819. END PROCEDURE.
  820. /* _UIB-CODE-BLOCK-END */
  821. &ANALYZE-RESUME
  822. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WORKFILE D-Lagerbestand
  823. PROCEDURE WORKFILE :
  824. /*------------------------------------------------------------------------------
  825. Purpose:
  826. Parameters: <none>
  827. Notes:
  828. ------------------------------------------------------------------------------*/
  829. EMPTY TEMP-TABLE tArtst.
  830. FOR EACH Artst USE-INDEX Artst-k1
  831. WHERE Artst.Firma = GVFirma
  832. AND ((T_Inaktive = TRUE)
  833. OR (T_Inaktive = FALSE AND
  834. Artst.Aktiv = TRUE))
  835. AND Artst.Lager = TRUE NO-LOCK:
  836. CREATE tArtst.
  837. BUFFER-COPY Artst TO tArtst.
  838. END.
  839. END PROCEDURE.
  840. /* _UIB-CODE-BLOCK-END */
  841. &ANALYZE-RESUME