v-horelager.w 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. {adecomm/appserv.i}
  8. /* Temp-Table and Buffer definitions */
  9. DEFINE TEMP-TABLE RowObject NO-UNDO
  10. {"d-horelager.i"}.
  11. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS vTableWin
  12. /*------------------------------------------------------------------------
  13. File:
  14. Description: from viewer.w - Template for SmartDataViewer objects
  15. Input Parameters:
  16. <none>
  17. Output Parameters:
  18. <none>
  19. ------------------------------------------------------------------------*/
  20. /* This .W file was created with the Progress AppBuilder. */
  21. /*----------------------------------------------------------------------*/
  22. /* Create an unnamed pool to store all the widgets created
  23. by this procedure. This is a good default which assures
  24. that this procedure's triggers and internal procedures
  25. will execute in this procedure's storage, and that proper
  26. cleanup will occur on deletion of the procedure. */
  27. CREATE WIDGET-POOL.
  28. /* *************************** Definitions ************************** */
  29. /* Komma-Trennzeichen */
  30. /* Keyfelder werden beim Mutieren nicht "Enabled" */
  31. &Scoped-define ERSTES_FELD Lager
  32. &Scoped-define LETZTES_FELD MaxMenge_KGeb
  33. &Scoped-define KEY_FELDER Lager,Regal,Niveau,Platz,Sf
  34. &Scoped-define NUR_LESEN Firma,Art,Artikel,cSort,GGebinde,VGebinde,KGebinde
  35. { incl/viwdefinition.i }
  36. DEFINE VARIABLE iJahrEff AS INTEGER NO-UNDO.
  37. DEFINE VARIABLE iLager AS INTEGER NO-UNDO.
  38. DEFINE VARIABLE cReadOnlyFelder AS CHARACTER NO-UNDO.
  39. DEFINE TEMP-TABLE tArtst LIKE Artst.
  40. {src/adm2/widgetprto.i}
  41. /* _UIB-CODE-BLOCK-END */
  42. &ANALYZE-RESUME
  43. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  44. /* ******************** Preprocessor Definitions ******************** */
  45. &Scoped-define PROCEDURE-TYPE SmartDataViewer
  46. &Scoped-define DB-AWARE no
  47. &Scoped-define ADM-CONTAINER FRAME
  48. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  49. /* Include file with RowObject temp-table definition */
  50. &Scoped-define DATA-FIELD-DEFS "d-horelager.i"
  51. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  52. &Scoped-define FRAME-NAME F-Main
  53. /* Standard List Definitions */
  54. &Scoped-Define ENABLED-FIELDS RowObject.Regal RowObject.Platz ~
  55. RowObject.Niveau RowObject.Sf RowObject.cSort RowObject.Bezeichnung ~
  56. RowObject.Artnr RowObject.Inhalt RowObject.Jahr RowObject.Artikel ~
  57. RowObject.Eingang RowObject.Verfall RowObject.Lotnummer RowObject.Bestand ~
  58. RowObject.GGebinde RowObject.MinMenge_GGeb RowObject.MaxMenge_GGeb ~
  59. RowObject.VGebinde RowObject.MinMenge_VGeb RowObject.MaxMenge_VGeb ~
  60. RowObject.KGebinde RowObject.MinMenge_KGeb RowObject.MaxMenge_KGeb
  61. &Scoped-define ENABLED-TABLES RowObject
  62. &Scoped-define FIRST-ENABLED-TABLE RowObject
  63. &Scoped-Define ENABLED-OBJECTS RECT-2 CB_Status
  64. &Scoped-Define DISPLAYED-FIELDS RowObject.Regal RowObject.Platz ~
  65. RowObject.Niveau RowObject.Sf RowObject.Lager RowObject.Firma RowObject.Art ~
  66. RowObject.cSort RowObject.iStatus RowObject.HoReLager_Id ~
  67. RowObject.Bezeichnung RowObject.Artnr RowObject.Inhalt RowObject.Jahr ~
  68. RowObject.Artikel RowObject.Eingang RowObject.Verfall RowObject.Lotnummer ~
  69. RowObject.Bestand RowObject.GGebinde RowObject.MinMenge_GGeb ~
  70. RowObject.MaxMenge_GGeb RowObject.VGebinde RowObject.MinMenge_VGeb ~
  71. RowObject.MaxMenge_VGeb RowObject.KGebinde RowObject.MinMenge_KGeb ~
  72. RowObject.MaxMenge_KGeb
  73. &Scoped-define DISPLAYED-TABLES RowObject
  74. &Scoped-define FIRST-DISPLAYED-TABLE RowObject
  75. &Scoped-Define DISPLAYED-OBJECTS CB_Status
  76. /* Custom List Definitions */
  77. /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */
  78. &Scoped-define List-6 CB_Status
  79. /* _UIB-PREPROCESSOR-BLOCK-END */
  80. &ANALYZE-RESUME
  81. /* ************************ Function Prototypes ********************** */
  82. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getArtikel vTableWin
  83. FUNCTION getArtikel RETURNS LOGICAL
  84. ( /* parameter-definitions */ ) FORWARD.
  85. /* _UIB-CODE-BLOCK-END */
  86. &ANALYZE-RESUME
  87. /* *********************** Control Definitions ********************** */
  88. /* Definitions of the field level widgets */
  89. DEFINE VARIABLE CB_Status AS CHARACTER FORMAT "X(256)":U INITIAL "0"
  90. LABEL "Status"
  91. VIEW-AS COMBO-BOX INNER-LINES 5
  92. LIST-ITEM-PAIRS "Frei für alle Artikel","0",
  93. "Für den Artikel reserviert","1",
  94. "vom Artikel belegt","2",
  95. "Reserviert zur Einlagerung","3",
  96. "Lagerplatz gesperrt","9"
  97. DROP-DOWN-LIST
  98. SIZE 30 BY 1
  99. BGCOLOR 15 NO-UNDO.
  100. DEFINE RECTANGLE RECT-2
  101. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  102. SIZE 126 BY 11.43.
  103. /* ************************ Frame Definitions *********************** */
  104. DEFINE FRAME F-Main
  105. RowObject.Regal AT ROW 2 COL 17 COLON-ALIGNED WIDGET-ID 48
  106. VIEW-AS FILL-IN NATIVE
  107. SIZE 9 BY 1
  108. BGCOLOR 15
  109. RowObject.Platz AT ROW 2 COL 34 COLON-ALIGNED WIDGET-ID 46
  110. VIEW-AS FILL-IN NATIVE
  111. SIZE 9 BY 1
  112. BGCOLOR 15
  113. RowObject.Niveau AT ROW 2 COL 53 COLON-ALIGNED WIDGET-ID 44
  114. VIEW-AS FILL-IN NATIVE
  115. SIZE 9 BY 1
  116. BGCOLOR 15
  117. RowObject.Sf AT ROW 2 COL 67 COLON-ALIGNED WIDGET-ID 50
  118. VIEW-AS FILL-IN NATIVE
  119. SIZE 9 BY 1
  120. BGCOLOR 15
  121. RowObject.Lager AT ROW 2 COL 74 COLON-ALIGNED WIDGET-ID 28
  122. VIEW-AS FILL-IN NATIVE
  123. SIZE 4 BY 1
  124. BGCOLOR 15 NO-TAB-STOP
  125. RowObject.Firma AT ROW 2 COL 74 COLON-ALIGNED WIDGET-ID 16
  126. VIEW-AS FILL-IN NATIVE
  127. SIZE 4 BY 1
  128. BGCOLOR 15 NO-TAB-STOP
  129. RowObject.Art AT ROW 2 COL 74 COLON-ALIGNED WIDGET-ID 2
  130. VIEW-AS FILL-IN NATIVE
  131. SIZE 4 BY 1
  132. BGCOLOR 15 NO-TAB-STOP
  133. RowObject.cSort AT ROW 2 COL 84 COLON-ALIGNED WIDGET-ID 12
  134. VIEW-AS FILL-IN NATIVE
  135. SIZE 22 BY 1
  136. BGCOLOR 15 NO-TAB-STOP
  137. RowObject.iStatus AT ROW 2 COL 90 COLON-ALIGNED WIDGET-ID 22
  138. VIEW-AS FILL-IN NATIVE
  139. SIZE 4 BY 1
  140. BGCOLOR 15 NO-TAB-STOP
  141. RowObject.HoReLager_Id AT ROW 2 COL 115 COLON-ALIGNED WIDGET-ID 62
  142. VIEW-AS FILL-IN NATIVE
  143. SIZE 4 BY 1 NO-TAB-STOP
  144. RowObject.Bezeichnung AT ROW 3.52 COL 17 COLON-ALIGNED WIDGET-ID 10
  145. VIEW-AS FILL-IN NATIVE
  146. SIZE 40 BY 1
  147. BGCOLOR 15
  148. RowObject.Artnr AT ROW 5 COL 17 COLON-ALIGNED WIDGET-ID 6
  149. LABEL "Artikel"
  150. VIEW-AS FILL-IN NATIVE
  151. SIZE 11 BY 1
  152. BGCOLOR 15
  153. RowObject.Inhalt AT ROW 5 COL 29 COLON-ALIGNED NO-LABEL WIDGET-ID 20
  154. VIEW-AS FILL-IN NATIVE
  155. SIZE 8 BY 1
  156. BGCOLOR 15
  157. RowObject.Jahr AT ROW 5 COL 38 COLON-ALIGNED NO-LABEL WIDGET-ID 24
  158. VIEW-AS FILL-IN NATIVE
  159. SIZE 8 BY 1
  160. BGCOLOR 15
  161. RowObject.Artikel AT ROW 5 COL 48 COLON-ALIGNED NO-LABEL WIDGET-ID 4
  162. VIEW-AS FILL-IN NATIVE
  163. SIZE 60 BY 1
  164. BGCOLOR 15
  165. RowObject.Eingang AT ROW 6.52 COL 17 COLON-ALIGNED WIDGET-ID 14
  166. VIEW-AS FILL-IN NATIVE
  167. SIZE 16 BY 1
  168. BGCOLOR 15
  169. RowObject.Verfall AT ROW 6.52 COL 45 COLON-ALIGNED WIDGET-ID 52
  170. VIEW-AS FILL-IN NATIVE
  171. SIZE 16 BY 1
  172. BGCOLOR 15
  173. RowObject.Lotnummer AT ROW 6.52 COL 75 COLON-ALIGNED WIDGET-ID 30
  174. VIEW-AS FILL-IN NATIVE
  175. SIZE 22 BY 1
  176. BGCOLOR 15
  177. RowObject.Bestand AT ROW 6.52 COL 110 COLON-ALIGNED WIDGET-ID 8 FORMAT "zzz,zz9-"
  178. VIEW-AS FILL-IN NATIVE
  179. SIZE 13 BY 1
  180. BGCOLOR 15
  181. CB_Status AT ROW 7.52 COL 17 COLON-ALIGNED WIDGET-ID 60
  182. RowObject.GGebinde AT ROW 9 COL 17 COLON-ALIGNED WIDGET-ID 18
  183. VIEW-AS FILL-IN NATIVE
  184. SIZE 22 BY 1
  185. BGCOLOR 15 NO-TAB-STOP
  186. RowObject.MinMenge_GGeb AT ROW 9 COL 55 COLON-ALIGNED WIDGET-ID 38
  187. LABEL "Min Best."
  188. VIEW-AS FILL-IN NATIVE
  189. SIZE 12 BY 1
  190. BGCOLOR 15
  191. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  192. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  193. AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100.
  194. /* DEFINE FRAME statement is approaching 4K Bytes. Breaking it up */
  195. DEFINE FRAME F-Main
  196. RowObject.MaxMenge_GGeb AT ROW 9 COL 85 COLON-ALIGNED WIDGET-ID 32
  197. LABEL "Max Best."
  198. VIEW-AS FILL-IN NATIVE
  199. SIZE 12 BY 1
  200. BGCOLOR 15
  201. RowObject.VGebinde AT ROW 10 COL 17 COLON-ALIGNED WIDGET-ID 54
  202. VIEW-AS FILL-IN NATIVE
  203. SIZE 22 BY 1
  204. BGCOLOR 15 NO-TAB-STOP
  205. RowObject.MinMenge_VGeb AT ROW 10 COL 55 COLON-ALIGNED WIDGET-ID 42
  206. LABEL "Min Best."
  207. VIEW-AS FILL-IN NATIVE
  208. SIZE 12 BY 1
  209. BGCOLOR 15
  210. RowObject.MaxMenge_VGeb AT ROW 10 COL 85 COLON-ALIGNED WIDGET-ID 36
  211. LABEL "Max Best."
  212. VIEW-AS FILL-IN NATIVE
  213. SIZE 12 BY 1
  214. BGCOLOR 15
  215. RowObject.KGebinde AT ROW 11 COL 17 COLON-ALIGNED WIDGET-ID 26
  216. VIEW-AS FILL-IN NATIVE
  217. SIZE 22 BY 1
  218. BGCOLOR 15 NO-TAB-STOP
  219. RowObject.MinMenge_KGeb AT ROW 11 COL 55 COLON-ALIGNED WIDGET-ID 40
  220. LABEL "Min Best."
  221. VIEW-AS FILL-IN NATIVE
  222. SIZE 12 BY 1
  223. BGCOLOR 15
  224. RowObject.MaxMenge_KGeb AT ROW 11 COL 85 COLON-ALIGNED WIDGET-ID 34
  225. LABEL "Max Best."
  226. VIEW-AS FILL-IN NATIVE
  227. SIZE 12 BY 1
  228. BGCOLOR 15
  229. RECT-2 AT ROW 1.24 COL 2 WIDGET-ID 58
  230. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  231. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  232. AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100.
  233. /* *********************** Procedure Settings ************************ */
  234. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  235. /* Settings for THIS-PROCEDURE
  236. Type: SmartDataViewer
  237. Data Source: "d-horelager.w"
  238. Allow: Basic,DB-Fields,Smart
  239. Container Links: Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  240. Frames: 1
  241. Add Fields to: Neither
  242. Other Settings: PERSISTENT-ONLY COMPILE APPSERVER
  243. Temp-Tables and Buffers:
  244. TABLE: RowObject D "?" NO-UNDO
  245. ADDITIONAL-FIELDS:
  246. {d-horelager.i}
  247. END-FIELDS.
  248. END-TABLES.
  249. */
  250. /* This procedure should always be RUN PERSISTENT. Report the error, */
  251. /* then cleanup and return. */
  252. IF NOT THIS-PROCEDURE:PERSISTENT THEN
  253. DO:
  254. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  255. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  256. RETURN.
  257. END.
  258. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  259. /* ************************* Create Window ************************** */
  260. &ANALYZE-SUSPEND _CREATE-WINDOW
  261. /* DESIGN Window definition (used by the UIB)
  262. CREATE WINDOW vTableWin ASSIGN
  263. HEIGHT = 11.91
  264. WIDTH = 128.
  265. /* END WINDOW DEFINITION */
  266. */
  267. &ANALYZE-RESUME
  268. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB vTableWin
  269. /* ************************* Included-Libraries *********************** */
  270. {src/adm2/viewer.i}
  271. /* _UIB-CODE-BLOCK-END */
  272. &ANALYZE-RESUME
  273. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  274. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  275. /* SETTINGS FOR WINDOW vTableWin
  276. VISIBLE,,RUN-PERSISTENT */
  277. /* SETTINGS FOR FRAME F-Main
  278. NOT-VISIBLE FRAME-NAME Size-to-Fit */
  279. ASSIGN
  280. FRAME F-Main:SCROLLABLE = FALSE
  281. FRAME F-Main:HIDDEN = TRUE.
  282. /* SETTINGS FOR FILL-IN RowObject.Art IN FRAME F-Main
  283. NO-ENABLE */
  284. ASSIGN
  285. RowObject.Art:HIDDEN IN FRAME F-Main = TRUE
  286. RowObject.Art:READ-ONLY IN FRAME F-Main = TRUE.
  287. /* SETTINGS FOR FILL-IN RowObject.Artnr IN FRAME F-Main
  288. EXP-LABEL */
  289. /* SETTINGS FOR FILL-IN RowObject.Bestand IN FRAME F-Main
  290. EXP-FORMAT */
  291. /* SETTINGS FOR COMBO-BOX CB_Status IN FRAME F-Main
  292. 6 */
  293. /* SETTINGS FOR FILL-IN RowObject.Firma IN FRAME F-Main
  294. NO-ENABLE */
  295. ASSIGN
  296. RowObject.Firma:HIDDEN IN FRAME F-Main = TRUE
  297. RowObject.Firma:READ-ONLY IN FRAME F-Main = TRUE.
  298. ASSIGN
  299. RowObject.GGebinde:READ-ONLY IN FRAME F-Main = TRUE.
  300. /* SETTINGS FOR FILL-IN RowObject.HoReLager_Id IN FRAME F-Main
  301. NO-ENABLE */
  302. ASSIGN
  303. RowObject.HoReLager_Id:HIDDEN IN FRAME F-Main = TRUE
  304. RowObject.HoReLager_Id:READ-ONLY IN FRAME F-Main = TRUE.
  305. /* SETTINGS FOR FILL-IN RowObject.iStatus IN FRAME F-Main
  306. NO-ENABLE */
  307. ASSIGN
  308. RowObject.iStatus:HIDDEN IN FRAME F-Main = TRUE
  309. RowObject.iStatus:READ-ONLY IN FRAME F-Main = TRUE.
  310. ASSIGN
  311. RowObject.KGebinde:READ-ONLY IN FRAME F-Main = TRUE.
  312. /* SETTINGS FOR FILL-IN RowObject.Lager IN FRAME F-Main
  313. NO-ENABLE */
  314. ASSIGN
  315. RowObject.Lager:HIDDEN IN FRAME F-Main = TRUE
  316. RowObject.Lager:READ-ONLY IN FRAME F-Main = TRUE.
  317. /* SETTINGS FOR FILL-IN RowObject.MaxMenge_GGeb IN FRAME F-Main
  318. EXP-LABEL */
  319. /* SETTINGS FOR FILL-IN RowObject.MaxMenge_KGeb IN FRAME F-Main
  320. EXP-LABEL */
  321. /* SETTINGS FOR FILL-IN RowObject.MaxMenge_VGeb IN FRAME F-Main
  322. EXP-LABEL */
  323. /* SETTINGS FOR FILL-IN RowObject.MinMenge_GGeb IN FRAME F-Main
  324. EXP-LABEL */
  325. /* SETTINGS FOR FILL-IN RowObject.MinMenge_KGeb IN FRAME F-Main
  326. EXP-LABEL */
  327. /* SETTINGS FOR FILL-IN RowObject.MinMenge_VGeb IN FRAME F-Main
  328. EXP-LABEL */
  329. ASSIGN
  330. RowObject.VGebinde:READ-ONLY IN FRAME F-Main = TRUE.
  331. /* _RUN-TIME-ATTRIBUTES-END */
  332. &ANALYZE-RESUME
  333. /* Setting information for Queries and Browse Widgets fields */
  334. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  335. /* Query rebuild information for FRAME F-Main
  336. _Options = "NO-LOCK"
  337. _Query is NOT OPENED
  338. */ /* FRAME F-Main */
  339. &ANALYZE-RESUME
  340. /* ************************ Control Triggers ************************ */
  341. &Scoped-define SELF-NAME RowObject.Artnr
  342. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Artnr vTableWin
  343. ON ALT-F OF RowObject.Artnr IN FRAME F-Main /* Artikel */
  344. DO:
  345. RUN SUCHEN.
  346. FIND FIRST tArtst NO-ERROR.
  347. IF NOT AVAILABLE tArtst OR
  348. tArtst.Artnr = 0 THEN RETURN NO-APPLY.
  349. APPLY 'ENTRY' TO rowObject.Eingang.
  350. RETURN NO-APPLY.
  351. END.
  352. /* _UIB-CODE-BLOCK-END */
  353. &ANALYZE-RESUME
  354. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Artnr vTableWin
  355. ON CTRL-N OF RowObject.Artnr IN FRAME F-Main /* Artikel */
  356. DO:
  357. RUN SUCHEN_NUMMER.
  358. FIND FIRST tArtst NO-ERROR.
  359. IF NOT AVAILABLE tArtst OR
  360. tArtst.Artnr = 0 THEN RETURN NO-APPLY.
  361. APPLY 'ENTRY' TO rowObject.Eingang.
  362. RETURN NO-APPLY.
  363. END.
  364. /* _UIB-CODE-BLOCK-END */
  365. &ANALYZE-RESUME
  366. &Scoped-define SELF-NAME CB_Status
  367. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Status vTableWin
  368. ON VALUE-CHANGED OF CB_Status IN FRAME F-Main /* Status */
  369. DO:
  370. IF FMut THEN rowObject.iStatus:SCREEN-VALUE = SELF:SCREEN-VALUE NO-ERROR.
  371. SELF:SCREEN-VALUE = rowObject.iStatus:SCREEN-VALUE NO-ERROR.
  372. END.
  373. /* _UIB-CODE-BLOCK-END */
  374. &ANALYZE-RESUME
  375. &UNDEFINE SELF-NAME
  376. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin
  377. /* *************************** Main Block *************************** */
  378. { incl/viwmainblock.i }
  379. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  380. RUN initializeObject.
  381. &ENDIF
  382. /************************ INTERNAL PROCEDURES ********************/
  383. /* _UIB-CODE-BLOCK-END */
  384. &ANALYZE-RESUME
  385. /* ********************** Internal Procedures *********************** */
  386. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE addRecord vTableWin
  387. PROCEDURE addRecord :
  388. /*------------------------------------------------------------------------------*/
  389. /* Purpose: */
  390. /* Parameters: <none> */
  391. /* Notes: */
  392. /*------------------------------------------------------------------------------*/
  393. FNeu = TRUE.
  394. FMut = TRUE.
  395. FDisp = TRUE.
  396. RUN SUPER.
  397. EMPTY TEMP-TABLE tArtst.
  398. CREATE tArtst.
  399. END PROCEDURE.
  400. /* _UIB-CODE-BLOCK-END */
  401. &ANALYZE-RESUME
  402. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin
  403. PROCEDURE cancelRecord :
  404. /*------------------------------------------------------------------------------*/
  405. /* Purpose: */
  406. /* Parameters: <none> */
  407. /* Notes: */
  408. /*------------------------------------------------------------------------------*/
  409. FCancel = TRUE.
  410. RUN SUPER.
  411. /* Code placed here will execute AFTER standard behavior. */
  412. END PROCEDURE.
  413. /* _UIB-CODE-BLOCK-END */
  414. &ANALYZE-RESUME
  415. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE copyRecord vTableWin
  416. PROCEDURE copyRecord :
  417. /*------------------------------------------------------------------------------*/
  418. /* Purpose: */
  419. /* Parameters: <none> */
  420. /* Notes: */
  421. /*------------------------------------------------------------------------------*/
  422. FNeu = TRUE.
  423. FMut = TRUE.
  424. FCopy = TRUE.
  425. FDisp = TRUE.
  426. RUN SUPER.
  427. EMPTY TEMP-TABLE tArtst.
  428. CREATE tArtst.
  429. END PROCEDURE.
  430. /* _UIB-CODE-BLOCK-END */
  431. &ANALYZE-RESUME
  432. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteRecord vTableWin
  433. PROCEDURE deleteRecord :
  434. /*------------------------------------------------------------------------------*/
  435. /* Purpose: Super Override */
  436. /* Parameters: */
  437. /* Notes: */
  438. /*------------------------------------------------------------------------------*/
  439. DEFINE VARIABLE Ja AS LOGICAL NO-UNDO.
  440. DEFINE VARIABLE rHoReLager AS RECID NO-UNDO.
  441. DEFINE BUFFER bHoReLager FOR HoReLager.
  442. rHoReLager = DYNAMIC-FUNCTION ('getCurrentRecid':U IN hDaten) NO-ERROR.
  443. IF rHoReLager = ? OR
  444. rHoReLager = 0 THEN
  445. DO:
  446. RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL':U ) NO-ERROR.
  447. RETURN NO-APPLY.
  448. END.
  449. FIND bHoReLager NO-LOCK WHERE RECID(bHoReLager) = rHoReLager.
  450. IF bHoReLager.Artnr > 0 THEN
  451. DO:
  452. DYNAMIC-FUNCTION ('fehlerMeldung':U, 1112, '') NO-ERROR.
  453. RETURN NO-APPLY.
  454. END.
  455. Ja = DYNAMIC-FUNCTION( 'ANTWORT_NEIN':U, INPUT 1000 ).
  456. IF NOT Ja THEN
  457. DO:
  458. RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL':U ) NO-ERROR.
  459. RETURN NO-APPLY.
  460. END.
  461. /* REPEAT TRANSACTION: */
  462. /* RUN INAKTIVIEREN IN hDaten. */
  463. /* LEAVE. */
  464. /* END. */
  465. /* */
  466. RUN SUPER.
  467. /* Code placed here will execute AFTER standard behavior. */
  468. END PROCEDURE.
  469. /* _UIB-CODE-BLOCK-END */
  470. &ANALYZE-RESUME
  471. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin
  472. PROCEDURE disableFields :
  473. /*------------------------------------------------------------------------------*/
  474. /* Purpose: Super Override */
  475. /* Parameters: */
  476. /* Notes: */
  477. /*------------------------------------------------------------------------------*/
  478. DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO.
  479. DO WITH FRAME {&FRAME-NAME}:
  480. END.
  481. RUN SUPER( INPUT pcFieldType).
  482. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  483. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  484. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN
  485. DO:
  486. RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT 15 ).
  487. END.
  488. DO WITH FRAME {&FRAME-NAME}:
  489. END.
  490. PUBLISH 'LAGERMUTATION' ( 'ENDE' ).
  491. END PROCEDURE.
  492. /* _UIB-CODE-BLOCK-END */
  493. &ANALYZE-RESUME
  494. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI vTableWin _DEFAULT-DISABLE
  495. PROCEDURE disable_UI :
  496. /*------------------------------------------------------------------------------
  497. Purpose: DISABLE the User Interface
  498. Parameters: <none>
  499. Notes: Here we clean-up the user-interface by deleting
  500. dynamic widgets we have created and/or hide
  501. frames. This procedure is usually called when
  502. we are ready to "clean-up" after running.
  503. ------------------------------------------------------------------------------*/
  504. /* Hide all frames. */
  505. HIDE FRAME F-Main.
  506. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  507. END PROCEDURE.
  508. /* _UIB-CODE-BLOCK-END */
  509. &ANALYZE-RESUME
  510. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE displayFields vTableWin
  511. PROCEDURE displayFields :
  512. /*------------------------------------------------------------------------------*/
  513. /* Purpose: Super Override */
  514. /* Parameters: */
  515. /* Notes: */
  516. /*------------------------------------------------------------------------------*/
  517. DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  518. IF NOT FDisp THEN
  519. DO:
  520. FDisp = TRUE.
  521. RETURN.
  522. END.
  523. IF FCancel THEN pcColValues = OldColValues.
  524. IF NOT FNeu THEN OldColValues = pcColValues.
  525. OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
  526. IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ).
  527. DO WITH FRAME {&FRAME-NAME}:
  528. END.
  529. RUN SUPER( INPUT pcColValues).
  530. FCancel = FALSE.
  531. DO WITH FRAME {&FRAME-NAME}:
  532. CB_Status:SCREEN-VALUE = rowObject.iStatus:SCREEN-VALUE NO-ERROR.
  533. END.
  534. END PROCEDURE.
  535. /* _UIB-CODE-BLOCK-END */
  536. &ANALYZE-RESUME
  537. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin
  538. PROCEDURE enableFields :
  539. /*------------------------------------------------------------------------------*/
  540. /* Purpose: Super Override */
  541. /* Parameters: */
  542. /* Notes: */
  543. /*------------------------------------------------------------------------------*/
  544. /* Code placed here will execute PRIOR to standard behavior. */
  545. /*
  546. RUN SUPER.
  547. */
  548. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  549. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ).
  550. IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN
  551. DO:
  552. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ).
  553. IF cReadOnlyFelder <> '' THEN RUN READONLY_FELDER ( Fenster, cReadOnlyFelder, TRUE ).
  554. END.
  555. DO WITH FRAME {&FRAME-NAME}:
  556. END.
  557. PUBLISH 'LAGERMUTATION' ( 'START' ).
  558. IF FNeu THEN RETURN.
  559. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN
  560. DO:
  561. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  562. END.
  563. END PROCEDURE.
  564. /* _UIB-CODE-BLOCK-END */
  565. &ANALYZE-RESUME
  566. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin
  567. PROCEDURE enableObject :
  568. /*------------------------------------------------------------------------------*/
  569. /* Purpose: Super Override */
  570. /* Parameters: */
  571. /* Notes: */
  572. /*------------------------------------------------------------------------------*/
  573. /* Code placed here will execute PRIOR to standard behavior. */
  574. RUN SUPER.
  575. { incl/viwenableobject.i }
  576. END PROCEDURE.
  577. /* _UIB-CODE-BLOCK-END */
  578. &ANALYZE-RESUME
  579. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin
  580. PROCEDURE ENTRY_FELD_TEST :
  581. /*------------------------------------------------------------------------------*/
  582. /* Purpose: Super Override */
  583. /* Parameters: */
  584. /* Notes: */
  585. /*------------------------------------------------------------------------------*/
  586. { incl/viwentryfeldtest.i }
  587. DO WITH FRAME {&FRAME-NAME}:
  588. CASE FeldName:
  589. WHEN 'Inhalt' THEN
  590. DO:
  591. IF INTEGER(rowObject.Artnr:SCREEN-VALUE) = 0 THEN APPLY 'TAB' TO SELF.
  592. END.
  593. WHEN 'Jahr' THEN
  594. DO:
  595. IF INTEGER(rowObject.Artnr:SCREEN-VALUE) = 0 THEN APPLY 'TAB' TO SELF.
  596. END.
  597. END CASE.
  598. END.
  599. RETURN ''.
  600. END PROCEDURE.
  601. /* _UIB-CODE-BLOCK-END */
  602. &ANALYZE-RESUME
  603. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FEHLWERTE vTableWin
  604. PROCEDURE FEHLWERTE :
  605. /*------------------------------------------------------------------------------*/
  606. /* Purpose: Super Override */
  607. /* Parameters: */
  608. /* Notes: */
  609. /*------------------------------------------------------------------------------*/
  610. DEFINE INPUT-OUTPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  611. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  612. DEFINE VARIABLE iArt AS INTEGER NO-UNDO.
  613. IF FCancel THEN RETURN.
  614. iArt = DYNAMIC-FUNCTION('getLagerart':U IN hKontainer) NO-ERROR.
  615. iLager = DYNAMIC-FUNCTION('getLager':U IN hKontainer) NO-ERROR.
  616. IF iArt = ? THEN iArt = 0.
  617. IF iLager = ? THEN iLager = 0.
  618. IF NOT FCopy THEN
  619. DO WITH FRAME {&FRAME-NAME}:
  620. i1 = LOOKUP('Firma', oldColList, ',') + 1.
  621. ENTRY(i1, pcColValues, CHR(1)) = Firma NO-ERROR.
  622. i1 = LOOKUP('Art', oldColList, ',') + 1.
  623. ENTRY(i1, pcColValues, CHR(1)) = STRING(iArt) NO-ERROR.
  624. i1 = LOOKUP('Lager', oldColList, ',') + 1.
  625. ENTRY(i1, pcColValues, CHR(1)) = STRING(iLager) NO-ERROR.
  626. i1 = LOOKUP('HoReLager_Id', oldColList, ',') + 1.
  627. ENTRY(i1, pcColValues, CHR(1)) = STRING(0) NO-ERROR.
  628. END.
  629. IF FCopy THEN
  630. DO:
  631. END.
  632. END PROCEDURE.
  633. /* _UIB-CODE-BLOCK-END */
  634. &ANALYZE-RESUME
  635. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDERECHNUNG vTableWin
  636. PROCEDURE GEBINDERECHNUNG :
  637. /*------------------------------------------------------------------------------*/
  638. /* Purpose: Super Override */
  639. /* Parameters: */
  640. /* Notes: */
  641. /*------------------------------------------------------------------------------*/
  642. DEFINE INPUT PARAMETER ipcMinMax AS CHARACTER NO-UNDO.
  643. DEFINE INPUT PARAMETER ipcGebArt AS CHARACTER NO-UNDO.
  644. DEFINE VARIABLE iGGeb AS INTEGER INIT 0 NO-UNDO.
  645. DEFINE VARIABLE iVGeb AS INTEGER INIT 0 NO-UNDO.
  646. DEFINE VARIABLE iKGeb AS INTEGER INIT 0 NO-UNDO.
  647. DEFINE VARIABLE iInhalt AS INTEGER INIT 0 NO-UNDO.
  648. FIND FIRST tArtst NO-ERROR.
  649. IF NOT AVAILABLE tArtst THEN RETURN.
  650. IF tArtst.Artnr = 0 THEN RETURN.
  651. DO WITH FRAME {&FRAME-NAME}:
  652. CASE ipcMinMax:
  653. WHEN 'Min' THEN
  654. DO:
  655. CASE ipcGebArt:
  656. WHEN 'GGeb' THEN
  657. iGGeb = INTEGER(rowObject.MinMenge_GGeb:SCREEN-VALUE).
  658. WHEN 'VGeb' THEN
  659. iVGeb = INTEGER(rowObject.MinMenge_VGeb:SCREEN-VALUE).
  660. WHEN 'KGeb' THEN
  661. iKGeb = INTEGER(rowObject.MinMenge_KGeb:SCREEN-VALUE).
  662. END CASE.
  663. END.
  664. WHEN 'Max' THEN
  665. DO:
  666. CASE ipcGebArt:
  667. WHEN 'GGeb' THEN
  668. iGGeb = INTEGER(rowObject.MaxMenge_GGeb:SCREEN-VALUE).
  669. WHEN 'VGeb' THEN
  670. iVGeb = INTEGER(rowObject.MaxMenge_VGeb:SCREEN-VALUE).
  671. WHEN 'KGeb' THEN
  672. iKGeb = INTEGER(rowObject.MaxMenge_KGeb:SCREEN-VALUE).
  673. END CASE.
  674. END.
  675. END CASE.
  676. END.
  677. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  678. CASE ipcGebArt:
  679. WHEN 'GGeb' THEN
  680. DO:
  681. iInhalt = DYNAMIC-FUNCTION('getGGebindeInhalt':U, tArtst.GGeb_Cd ) NO-ERROR.
  682. iVGeb = iGGeb * iInhalt.
  683. iInhalt = DYNAMIC-FUNCTION('getVGebindeInhalt':U, tArtst.VGeb_Cd ) NO-ERROR.
  684. iKGeb = iVGeb * iInhalt.
  685. CASE ipcMinMax:
  686. WHEN 'Min' THEN
  687. DO:
  688. rowObject.MinMenge_VGeb:SCREEN-VALUE = STRING(iVGeb).
  689. rowObject.MinMenge_KGeb:SCREEN-VALUE = STRING(iKGeb).
  690. END.
  691. WHEN 'Max' THEN
  692. DO:
  693. rowObject.MaxMenge_VGeb:SCREEN-VALUE = STRING(iVGeb).
  694. rowObject.MaxMenge_KGeb:SCREEN-VALUE = STRING(iKGeb).
  695. END.
  696. END CASE.
  697. END.
  698. WHEN 'VGeb' THEN
  699. DO:
  700. iInhalt = DYNAMIC-FUNCTION('getVGebindeInhalt':U, tArtst.VGeb_Cd ) NO-ERROR.
  701. iKGeb = iVGeb * iInhalt.
  702. CASE ipcMinMax:
  703. WHEN 'Min' THEN
  704. DO:
  705. rowObject.MinMenge_KGeb:SCREEN-VALUE = STRING(iKGeb).
  706. END.
  707. WHEN 'Max' THEN
  708. DO:
  709. rowObject.MaxMenge_KGeb:SCREEN-VALUE = STRING(iKGeb).
  710. END.
  711. END CASE.
  712. END.
  713. END CASE.
  714. LEAVE.
  715. END.
  716. END PROCEDURE.
  717. /* _UIB-CODE-BLOCK-END */
  718. &ANALYZE-RESUME
  719. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_FELD_TEST vTableWin
  720. PROCEDURE LEAVE_FELD_TEST :
  721. /*------------------------------------------------------------------------------*/
  722. /* Purpose: Super Override */
  723. /* Parameters: */
  724. /* Notes: */
  725. /*------------------------------------------------------------------------------*/
  726. { incl/viwleavefeldtest.i }
  727. DEFINE BUFFER bArtst FOR Artst.
  728. DO WHILE FNeu WITH FRAME {&FRAME-NAME}:
  729. CASE FeldName:
  730. END CASE.
  731. LEAVE.
  732. END.
  733. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  734. CASE FeldName:
  735. WHEN 'Regal' THEN
  736. SELF:SCREEN-VALUE = CAPS(SELF:SCREEN-VALUE).
  737. WHEN 'Niveau' THEN
  738. SELF:SCREEN-VALUE = CAPS(SELF:SCREEN-VALUE).
  739. WHEN 'Platz' THEN
  740. SELF:SCREEN-VALUE = CAPS(SELF:SCREEN-VALUE).
  741. WHEN 'Sf' THEN
  742. SELF:SCREEN-VALUE = CAPS(SELF:SCREEN-VALUE).
  743. WHEN 'Artnr' THEN
  744. DO:
  745. IF NOT SELF:MODIFIED THEN LEAVE.
  746. IF INTEGER(SELF:SCREEN-VALUE) = 0 THEN
  747. DO:
  748. ASSIGN
  749. rowObject.Artnr :SCREEN-VALUE = ''
  750. rowObject.Inhalt :SCREEN-VALUE = ''
  751. rowObject.Jahr :SCREEN-VALUE = ''
  752. rowObject.Bestand :SCREEN-VALUE = '0'
  753. rowObject.Eingang :SCREEN-VALUE = '?'
  754. rowObject.Verfall :SCREEN-VALUE = '?'
  755. rowObject.Lotnummer:SCREEN-VALUE = ''
  756. rowObject.iStatus :SCREEN-VALUE = STRING(0,'9')
  757. CB_Status :SCREEN-VALUE = '0'.
  758. END.
  759. ELSE
  760. DO:
  761. FIND FIRST bArtst NO-LOCK
  762. WHERE bArtst.Firma = Firma
  763. AND bArtst.Artnr = INTEGER(SELF:SCREEN-VALUE)
  764. AND bArtst.Aktiv = TRUE
  765. AND bArtst.Ausverk < 9 NO-ERROR.
  766. IF NOT AVAILABLE bArtst THEN
  767. DO:
  768. RUN FEHLER ( 213 ) NO-ERROR.
  769. RETURN 'ERROR'.
  770. END.
  771. ASSIGN
  772. rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr)
  773. rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt)
  774. rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr).
  775. RELEASE bArtst.
  776. DYNAMIC-FUNCTION('getArtikel':U IN THIS-PROCEDURE) NO-ERROR.
  777. END.
  778. END.
  779. WHEN 'Inhalt' THEN
  780. DO:
  781. IF NOT SELF:MODIFIED THEN LEAVE.
  782. IF INTEGER(rowObject.Artnr:SCREEN-VALUE) = 0 THEN LEAVE.
  783. FIND FIRST bArtst NO-LOCK
  784. WHERE bArtst.Firma = Firma
  785. AND bArtst.Artnr = INTEGER(rowObject.Artnr:SCREEN-VALUE)
  786. AND bArtst.Inhalt = INTEGER(SELF:SCREEN-VALUE)
  787. AND bArtst.Aktiv = TRUE
  788. AND bArtst.Ausverk < 9 NO-ERROR.
  789. IF NOT AVAILABLE bArtst THEN
  790. DO:
  791. RUN FEHLER ( 213 ) NO-ERROR.
  792. RETURN 'ERROR'.
  793. END.
  794. ASSIGN
  795. rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr)
  796. rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt)
  797. rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr).
  798. RELEASE bArtst.
  799. DYNAMIC-FUNCTION('getArtikel':U IN THIS-PROCEDURE) NO-ERROR.
  800. END.
  801. WHEN 'Jahr' THEN
  802. DO:
  803. IF NOT SELF:MODIFIED THEN LEAVE.
  804. IF INTEGER(rowObject.Artnr:SCREEN-VALUE) = 0 THEN LEAVE.
  805. FIND FIRST bArtst NO-LOCK
  806. WHERE bArtst.Firma = Firma
  807. AND bArtst.Artnr = INTEGER(rowObject.Artnr :SCREEN-VALUE)
  808. AND bArtst.Inhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE)
  809. AND bArtst.Jahr = INTEGER(SELF:SCREEN-VALUE)
  810. AND bArtst.Aktiv = TRUE
  811. AND bArtst.Ausverk < 9 NO-ERROR.
  812. IF NOT AVAILABLE bArtst THEN
  813. DO:
  814. RUN FEHLER ( 213 ) NO-ERROR.
  815. RETURN 'ERROR'.
  816. END.
  817. ASSIGN
  818. rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr)
  819. rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt)
  820. rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr).
  821. RELEASE bArtst.
  822. DYNAMIC-FUNCTION('getArtikel':U IN THIS-PROCEDURE) NO-ERROR.
  823. END.
  824. WHEN 'MinMenge_GGeb' THEN
  825. DO:
  826. IF NOT SELF:MODIFIED THEN LEAVE.
  827. FIND FIRST tArtst NO-ERROR.
  828. IF NOT AVAILABLE tArtst THEN LEAVE.
  829. IF tArtst.Artnr = 0 THEN LEAVE.
  830. RUN GEBINDERECHNUNG ( 'Min', 'GGeb' ) NO-ERROR.
  831. END.
  832. WHEN 'MaxMenge_GGeb' THEN
  833. DO:
  834. IF NOT SELF:MODIFIED THEN LEAVE.
  835. FIND FIRST tArtst NO-ERROR.
  836. IF NOT AVAILABLE tArtst THEN LEAVE.
  837. IF tArtst.Artnr = 0 THEN LEAVE.
  838. RUN GEBINDERECHNUNG ( 'Max', 'GGeb' ) NO-ERROR.
  839. END.
  840. WHEN 'MinMenge_VGeb' THEN
  841. DO:
  842. IF NOT SELF:MODIFIED THEN LEAVE.
  843. FIND FIRST tArtst NO-ERROR.
  844. IF NOT AVAILABLE tArtst THEN LEAVE.
  845. IF tArtst.Artnr = 0 THEN LEAVE.
  846. RUN GEBINDERECHNUNG ( 'Min', 'VGeb' ) NO-ERROR.
  847. END.
  848. WHEN 'MaxMenge_VGeb' THEN
  849. DO:
  850. IF NOT SELF:MODIFIED THEN LEAVE.
  851. FIND FIRST tArtst NO-ERROR.
  852. IF NOT AVAILABLE tArtst THEN LEAVE.
  853. IF tArtst.Artnr = 0 THEN LEAVE.
  854. RUN GEBINDERECHNUNG ( 'Max', 'VGeb' ) NO-ERROR.
  855. END.
  856. END CASE.
  857. LEAVE.
  858. END.
  859. IF LOOKUP(FeldName, '{&LETZTES_FELD}', ',') > 0 THEN
  860. DO:
  861. DO WHILE TRUE:
  862. IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE.
  863. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE.
  864. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE.
  865. RETURN ''.
  866. END.
  867. APPLY 'ALT-S'.
  868. RETURN 'APPLY'.
  869. END.
  870. RETURN ''.
  871. END PROCEDURE.
  872. /* _UIB-CODE-BLOCK-END */
  873. &ANALYZE-RESUME
  874. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETURN_FELD vTableWin
  875. PROCEDURE RETURN_FELD :
  876. /*------------------------------------------------------------------------------*/
  877. /* Purpose: */
  878. /* Parameters: <none> */
  879. /* Notes: */
  880. /*------------------------------------------------------------------------------*/
  881. { incl/viwreturnfeld.i }
  882. END PROCEDURE.
  883. /* _UIB-CODE-BLOCK-END */
  884. &ANALYZE-RESUME
  885. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUCHEN vTableWin
  886. PROCEDURE SUCHEN :
  887. /*------------------------------------------------------------------------------*/
  888. /* Purpose: */
  889. /* Parameters: <none> */
  890. /* Notes: */
  891. /*------------------------------------------------------------------------------*/
  892. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  893. DEFINE BUFFER bArtst FOR Artst.
  894. IF NOT FMut THEN RETURN NO-APPLY.
  895. RUN g-suchen-artikel.w ( '', OUTPUT iRecid) NO-ERROR.
  896. IF iRecid = ? OR
  897. iRecid = 0 THEN RETURN NO-APPLY.
  898. FIND bArtst NO-LOCK WHERE RECID(bArtst) = iRecid NO-ERROR.
  899. DO WITH FRAME {&FRAME-NAME}:
  900. rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr ).
  901. rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt).
  902. rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr ).
  903. END.
  904. RELEASE bArtst.
  905. DYNAMIC-FUNCTION('getArtikel':U IN THIS-PROCEDURE) NO-ERROR.
  906. END PROCEDURE.
  907. /* _UIB-CODE-BLOCK-END */
  908. &ANALYZE-RESUME
  909. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUCHEN_NUMMER vTableWin
  910. PROCEDURE SUCHEN_NUMMER :
  911. /*------------------------------------------------------------------------------*/
  912. /* Purpose: */
  913. /* Parameters: <none> */
  914. /* Notes: */
  915. /*------------------------------------------------------------------------------*/
  916. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  917. DEFINE VARIABLE cRowId AS CHARACTER NO-UNDO.
  918. DEFINE BUFFER bArtst FOR Artst.
  919. IF NOT FMut THEN RETURN NO-APPLY.
  920. RUN g-artikelnr.w (OUTPUT iRecid) NO-ERROR.
  921. IF iRecid = ? THEN RETURN NO-APPLY.
  922. IF iRecid = 0 THEN RETURN NO-APPLY.
  923. FIND bArtst NO-LOCK WHERE RECID(bArtst) = iRecid.
  924. DO WITH FRAME {&FRAME-NAME}:
  925. rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr ).
  926. rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt).
  927. rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr ).
  928. END.
  929. RELEASE bArtst.
  930. DYNAMIC-FUNCTION('getArtikel':U) NO-ERROR.
  931. END PROCEDURE.
  932. /* _UIB-CODE-BLOCK-END */
  933. &ANALYZE-RESUME
  934. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEST_EINGABEN vTableWin
  935. PROCEDURE TEST_EINGABEN :
  936. /*------------------------------------------------------------------------------*/
  937. /* Purpose: */
  938. /* Parameters: <none> */
  939. /* Notes: */
  940. /*------------------------------------------------------------------------------*/
  941. DEFINE OUTPUT PARAMETER opJa AS LOG NO-UNDO.
  942. DEFINE VARIABLE eHandle AS HANDLE NO-UNDO.
  943. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  944. DEFINE VARIABLE iNummer AS INTEGER NO-UNDO.
  945. DEFINE VARIABLE cRegal AS CHARACTER NO-UNDO.
  946. DEFINE VARIABLE cNiveau AS CHARACTER NO-UNDO.
  947. DEFINE VARIABLE cPlatz AS CHARACTER NO-UNDO.
  948. DEFINE VARIABLE cSf AS CHARACTER NO-UNDO.
  949. DEFINE VARIABLE iLager AS INTEGER NO-UNDO.
  950. DEFINE VARIABLE iArt AS INTEGER NO-UNDO.
  951. DEFINE BUFFER bHoReLager FOR HoReLager.
  952. iArt = DYNAMIC-FUNCTION('getLagerart':U IN hKontainer) NO-ERROR.
  953. iLager = DYNAMIC-FUNCTION('getLager':U IN hKontainer) NO-ERROR.
  954. IF iArt = ? THEN iArt = 0.
  955. IF iLager = ? THEN iLager = 0.
  956. opJa = FALSE.
  957. eHandle = ?.
  958. IF NOT FMut THEN RETURN.
  959. AAA000:
  960. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  961. cRegal = CAPS(rowObject.Regal :SCREEN-VALUE).
  962. cPlatz = CAPS(rowObject.Platz :SCREEN-VALUE).
  963. cNiveau = CAPS(rowObject.Niveau:SCREEN-VALUE).
  964. cSf = CAPS(rowObject.Sf :SCREEN-VALUE).
  965. IF fNeu THEN
  966. DO:
  967. DO WHILE LENGTH(cPlatz) < 3:
  968. cPlatz = '0' + cPlatz.
  969. END.
  970. DO WHILE LENGTH(cNiveau) < 2:
  971. cNiveau = '0' + cNiveau.
  972. END.
  973. DO WHILE cSF <> '' AND length(cSf) < 2:
  974. cSf = '0' + cSf.
  975. END.
  976. ASSIGN
  977. rowObject.Regal :SCREEN-VALUE = cRegal
  978. rowObject.Platz :SCREEN-VALUE = cPlatz
  979. rowObject.Niveau:SCREEN-VALUE = cNiveau
  980. rowObject.Sf :SCREEN-VALUE = cSf.
  981. IF CAN-FIND(FIRST bHoReLager NO-LOCK
  982. WHERE bHoReLager.Firma = Firma
  983. AND bHoReLager.Art = iArt
  984. AND bHoReLager.Regal = cRegal
  985. AND bHoReLager.Niveau = cNiveau
  986. AND bHoReLager.Platz = cPlatz
  987. AND bHoReLager.Sf = cSf
  988. AND bHoReLager.Lager = iLager )
  989. THEN
  990. DO:
  991. RUN FEHLER ( 1099 ).
  992. eHandle = rowObject.Regal:HANDLE.
  993. LEAVE.
  994. END.
  995. END.
  996. rowObject.cSort:SCREEN-VALUE = SUBSTITUTE('&1-&2-&3', cRegal, cPlatz, cNiveau).
  997. IF cSf <> '' THEN rowObject.cSort:SCREEN-VALUE = rowObject.cSort:SCREEN-VALUE + '-' + cSf.
  998. rowObject.cSort:SCREEN-VALUE = CAPS(rowObject.cSort:SCREEN-VALUE).
  999. rowObject.cSort:MODIFIED = TRUE.
  1000. FIND FIRST tArtst NO-ERROR.
  1001. ASSIGN
  1002. tArtst.Artnr = INTEGER(rowObject.Artnr :SCREEN-VALUE)
  1003. tArtst.Inhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE)
  1004. tArtst.Jahr = INTEGER(rowObject.Jahr :SCREEN-VALUE) NO-ERROR.
  1005. IF tArtst.Artnr > 0 AND
  1006. iArt = 1 THEN
  1007. DO:
  1008. FIND FIRST HoReLager NO-LOCK
  1009. WHERE HoReLager.Firma = Firma
  1010. AND HoReLager.Art = 1
  1011. AND HoReLager.Lager = iLager
  1012. AND HoReLager.Artnr = tArtst.Artnr
  1013. AND HoReLager.Inhalt = tArtst.Inhalt
  1014. AND HoReLager.cSort <> rowObject.cSort:SCREEN-VALUE NO-ERROR.
  1015. IF AVAILABLE HoReLager THEN
  1016. DO:
  1017. DYNAMIC-FUNCTION ('fehlerMeldung':U, 1120, HoReLager.cSort) NO-ERROR.
  1018. eHandle = rowObject.Artnr:HANDLE.
  1019. LEAVE.
  1020. END.
  1021. END.
  1022. IF tArtst.Artnr = 0 THEN
  1023. DO:
  1024. ASSIGN
  1025. rowObject.Inhalt :SCREEN-VALUE = STRING(0)
  1026. rowObject.Jahr :SCREEN-VALUE = STRING(0)
  1027. rowObject.Artikel:SCREEN-VALUE = ''
  1028. GGebinde:SCREEN-VALUE = ''
  1029. VGebinde:SCREEN-VALUE = ''
  1030. KGebinde:SCREEN-VALUE = ''
  1031. rowObject.Eingang :SCREEN-VALUE = ?
  1032. rowObject.Verfall :SCREEN-VALUE = ?
  1033. rowObject.Lotnummer :SCREEN-VALUE = ''
  1034. rowObject.Bestand :SCREEN-VALUE = STRING(0)
  1035. rowObject.MinMenge_GGeb :SCREEN-VALUE = STRING(0)
  1036. rowObject.MinMenge_VGeb :SCREEN-VALUE = STRING(0)
  1037. rowObject.MinMenge_KGeb :SCREEN-VALUE = STRING(0)
  1038. rowObject.MaxMenge_GGeb :SCREEN-VALUE = STRING(0)
  1039. rowObject.MaxMenge_VGeb :SCREEN-VALUE = STRING(0)
  1040. rowObject.MaxMenge_KGeb :SCREEN-VALUE = STRING(0).
  1041. IF INTEGER(rowObject.iStatus:SCREEN-VALUE) <> 9 THEN
  1042. DO:
  1043. ASSIGN
  1044. rowObject.iStatus :SCREEN-VALUE = STRING(0)
  1045. CB_Status :SCREEN-VALUE = rowObject.iStatus:SCREEN-VALUE.
  1046. END.
  1047. LEAVE.
  1048. END.
  1049. IF INTEGER(rowObject.iStatus:SCREEN-VALUE) = 9 OR
  1050. INTEGER(rowObject.iStatus:SCREEN-VALUE) = 0 THEN
  1051. DO:
  1052. RUN FEHLER ( 1101 ) NO-ERROR.
  1053. eHandle = CB_Status:HANDLE.
  1054. LEAVE.
  1055. END.
  1056. IF INTEGER(rowObject.iStatus:SCREEN-VALUE) = 1 THEN
  1057. DO:
  1058. ASSIGN
  1059. rowObject.Eingang :SCREEN-VALUE = ?
  1060. rowObject.Verfall :SCREEN-VALUE = ?
  1061. rowObject.Lotnummer :SCREEN-VALUE = ''
  1062. rowObject.Bestand :SCREEN-VALUE = STRING(0).
  1063. END.
  1064. IF INTEGER(rowObject.iStatus:SCREEN-VALUE) = 2 THEN
  1065. DO:
  1066. IF rowObject.Eingang:SCREEN-VALUE = ? THEN rowObject.Eingang:SCREEN-VALUE = STRING(TODAY).
  1067. IF rowObject.Verfall:SCREEN-VALUE = ? THEN rowObject.Verfall:SCREEN-VALUE = rowObject.Eingang:SCREEN-VALUE.
  1068. END.
  1069. rowObject.cSort:SCREEN-VALUE = rowObject.Regal:SCREEN-VALUE.
  1070. IF rowObject.Platz:SCREEN-VALUE <> '' THEN rowObject.cSort:SCREEN-VALUE = rowObject.cSort :SCREEN-VALUE
  1071. + '-'
  1072. + rowObject.Platz :SCREEN-VALUE.
  1073. IF rowObject.Niveau :SCREEN-VALUE <> '' THEN rowObject.cSort:SCREEN-VALUE = rowObject.cSort:SCREEN-VALUE
  1074. + '-'
  1075. + rowObject.Niveau:SCREEN-VALUE.
  1076. IF rowObject.Sf :SCREEN-VALUE <> '' THEN rowObject.cSort:SCREEN-VALUE = rowObject.cSort :SCREEN-VALUE
  1077. + '-'
  1078. + rowObject.Sf :SCREEN-VALUE.
  1079. LEAVE.
  1080. END.
  1081. IF VALID-HANDLE(eHandle) THEN
  1082. DO:
  1083. APPLY 'ENTRY' TO eHandle.
  1084. RETURN NO-APPLY.
  1085. END.
  1086. opJa = TRUE.
  1087. END PROCEDURE.
  1088. /* _UIB-CODE-BLOCK-END */
  1089. &ANALYZE-RESUME
  1090. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin
  1091. PROCEDURE updateMode :
  1092. /*------------------------------------------------------------------------------*/
  1093. /* Purpose: */
  1094. /* Parameters: <none> */
  1095. /* Notes: */
  1096. /*------------------------------------------------------------------------------*/
  1097. DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO.
  1098. DEFINE VARIABLE rHoReLager AS RECID NO-UNDO.
  1099. DEFINE BUFFER bHoReLager FOR HoReLager.
  1100. rHoReLager = DYNAMIC-FUNCTION ('getCurrentRecid':U IN hDaten) NO-ERROR.
  1101. FIND bHoReLager NO-LOCK WHERE RECID(bHoReLager) = rHoReLager.
  1102. IF bHoReLager.Bestand > 0 THEN cReadOnlyFelder = 'Artnr,Inhalt,Jahr'.
  1103. ELSE cReadOnlyFelder = ''.
  1104. CASE pcMode:
  1105. WHEN 'updateBegin' THEN
  1106. DO:
  1107. RUN refreshRow IN hDaten.
  1108. END.
  1109. WHEN 'updateEnd' THEN
  1110. DO:
  1111. END.
  1112. END.
  1113. RUN SUPER( INPUT pcMode).
  1114. CASE pcMode:
  1115. WHEN 'updateBegin' THEN
  1116. DO WITH FRAME {&FRAME-NAME}:
  1117. FMut = TRUE.
  1118. EMPTY TEMP-TABLE tArtst.
  1119. CREATE tArtst.
  1120. IF INTEGER(rowObject.Artnr:SCREEN-VALUE) > 0 THEN DYNAMIC-FUNCTION('getArtikel':U) NO-ERROR.
  1121. END.
  1122. WHEN 'updateEnd' THEN
  1123. DO:
  1124. FNeu = FALSE.
  1125. FMut = FALSE.
  1126. FCopy = FALSE.
  1127. IF INTEGER(rowObject.Artnr:SCREEN-VALUE) > 0 THEN
  1128. DO:
  1129. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  1130. FIND ArtLager
  1131. WHERE ArtLager.Firma = Firma
  1132. AND ArtLager.Artnr = INTEGER(rowObject.Artnr :SCREEN-VALUE)
  1133. AND ArtLager.Inhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE)
  1134. AND ArtLager.Jahr = INTEGER(rowObject.Jahr :SCREEN-VALUE)
  1135. AND ArtLager.Lager = iLager NO-ERROR.
  1136. IF AVAILABLE ArtLager THEN ArtLager.Ort = rowObject.cSort:SCREEN-VALUE.
  1137. RELEASE ArtLager.
  1138. LEAVE.
  1139. END.
  1140. END.
  1141. END.
  1142. END.
  1143. END PROCEDURE.
  1144. /* _UIB-CODE-BLOCK-END */
  1145. &ANALYZE-RESUME
  1146. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin
  1147. PROCEDURE updateRecord :
  1148. /*------------------------------------------------------------------------------*/
  1149. /* Purpose: */
  1150. /* Parameters: <none> */
  1151. /* Notes: */
  1152. /*------------------------------------------------------------------------------*/
  1153. DO WITH FRAME {&FRAME-NAME}:
  1154. IF FNeu THEN
  1155. DO:
  1156. DYNAMIC-FUNCTION('SETMODIFIEDFLAG':U, INPUT Fenster, INPUT TRUE).
  1157. /* rowObject.HoReLager_Id:SCREEN-VALUE = STRING(NEXT-VALUE(HoReLager_Id)).*/
  1158. END.
  1159. rowObject.iStatus:SCREEN-VALUE = CB_Status:SCREEN-VALUE.
  1160. END.
  1161. FNeu = FALSE.
  1162. FCopy = FALSE.
  1163. RUN SUPER.
  1164. RUN REFRESHLAGER IN hDaten.
  1165. APPLY 'U1'.
  1166. /* Code placed here will execute AFTER standard behavior. */
  1167. END PROCEDURE.
  1168. /* _UIB-CODE-BLOCK-END */
  1169. &ANALYZE-RESUME
  1170. /* ************************ Function Implementations ***************** */
  1171. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getArtikel vTableWin
  1172. FUNCTION getArtikel RETURNS LOGICAL
  1173. ( /* parameter-definitions */ ) :
  1174. /*------------------------------------------------------------------------------*/
  1175. /* Purpose: */
  1176. /* Parameters: <none> */
  1177. /* Notes: */
  1178. /*------------------------------------------------------------------------------*/
  1179. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO.
  1180. DEFINE VARIABLE iInhalt AS INTEGER NO-UNDO.
  1181. DEFINE VARIABLE iJahr AS INTEGER NO-UNDO.
  1182. DEFINE VARIABLE iStatus AS INTEGER NO-UNDO.
  1183. DEFINE BUFFER bArtst FOR Artst.
  1184. DEFINE BUFFER bArtbez FOR Artbez.
  1185. DO WITH FRAME {&FRAME-NAME}:
  1186. ASSIGN
  1187. iArtnr = INTEGER(rowObject.Artnr :SCREEN-VALUE)
  1188. iInhalt = INTEGER(rowObject.Inhalt :SCREEN-VALUE)
  1189. iJahr = INTEGER(rowObject.Jahr :SCREEN-VALUE)
  1190. iStatus = INTEGER(rowObject.iStatus:SCREEN-VALUE) NO-ERROR.
  1191. END.
  1192. DO WHILE TRUE:
  1193. IF iArtnr = 0 THEN
  1194. DO:
  1195. EMPTY TEMP-TABLE tArtst.
  1196. CREATE tArtst.
  1197. LEAVE.
  1198. END.
  1199. FIND FIRST bArtst NO-LOCK
  1200. WHERE bArtst.Firma = Firma
  1201. AND bArtst.Artnr = iArtnr
  1202. AND bArtst.Inhalt = iInhalt
  1203. AND bArtst.Jahr = iJahr NO-ERROR.
  1204. IF NOT AVAILABLE bArtst THEN
  1205. DO:
  1206. FIND LAST bArtst NO-LOCK
  1207. WHERE bArtst.Firma = Firma
  1208. AND bArtst.Artnr = iArtnr
  1209. AND bArtst.Inhalt = iInhalt NO-ERROR.
  1210. END.
  1211. IF NOT AVAILABLE bArtst THEN
  1212. DO:
  1213. iArtnr = 0.
  1214. NEXT.
  1215. END.
  1216. FIND FIRST bArtbez OF bArtst.
  1217. FIND FIRST tArtst.
  1218. BUFFER-COPY bArtst TO tArtst
  1219. ASSIGN
  1220. tArtst.Bez = TRIM(bArtbez.Bez1 + ' ' + bArtbez.Bez2).
  1221. RELEASE bArtst.
  1222. RELEASE bArtbez.
  1223. LEAVE.
  1224. END.
  1225. DO WITH FRAME {&FRAME-NAME}:
  1226. rowObject.Artnr :SCREEN-VALUE = STRING(tArtst.Artnr ).
  1227. rowObject.Inhalt:SCREEN-VALUE = STRING(tArtst.Inhalt).
  1228. rowObject.Jahr :SCREEN-VALUE = STRING(tArtst.Jahr ).
  1229. rowObject.Artikel:SCREEN-VALUE = tArtst.Bez.
  1230. IF tArtst.Artnr > 0 THEN
  1231. DO:
  1232. GGebinde:SCREEN-VALUE = DYNAMIC-FUNCTION('getGGebindeKBez':U, tArtst.GGeb_Cd ) NO-ERROR.
  1233. VGebinde:SCREEN-VALUE = DYNAMIC-FUNCTION('getVGebindeKBez':U, tArtst.VGeb_Cd ) NO-ERROR.
  1234. KGebinde:SCREEN-VALUE = DYNAMIC-FUNCTION('getKGebindeKBez':U, tArtst.KGeb_Cd ) NO-ERROR.
  1235. rowObject.Eingang :SCREEN-VALUE = (IF iStatus = 1 THEN '?' ELSE STRING(TODAY) ).
  1236. rowObject.Verfall :SCREEN-VALUE = (IF tArtst.lVerfall THEN ? ELSE rowObject.Eingang:SCREEN-VALUE).
  1237. /* rowObject.Lotnummer:SCREEN-VALUE = ''. */
  1238. /* rowObject.Bestand :SCREEN-VALUE = STRING(0).*/
  1239. rowObject.iStatus :SCREEN-VALUE = STRING(iStatus).
  1240. CB_Status :SCREEN-VALUE = rowObject.iStatus:SCREEN-VALUE.
  1241. END.
  1242. ELSE
  1243. DO:
  1244. GGebinde:SCREEN-VALUE = ''.
  1245. VGebinde:SCREEN-VALUE = ''.
  1246. KGebinde:SCREEN-VALUE = ''.
  1247. rowObject.Eingang :SCREEN-VALUE = ?.
  1248. rowObject.Verfall :SCREEN-VALUE = ?.
  1249. rowObject.Lotnummer:SCREEN-VALUE = ''.
  1250. rowObject.Bestand :SCREEN-VALUE = STRING(0).
  1251. rowObject.iStatus :SCREEN-VALUE = (IF iStatus <> 9 THEN STRING(0) ELSE STRING(iStatus)).
  1252. CB_Status :SCREEN-VALUE = rowObject.iStatus:SCREEN-VALUE.
  1253. END.
  1254. END.
  1255. RETURN TRUE.
  1256. END FUNCTION.
  1257. /* _UIB-CODE-BLOCK-END */
  1258. &ANALYZE-RESUME