v-lotlager.w 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986
  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-lotlager.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 Eingang
  32. &Scoped-define LETZTES_FELD Barcode
  33. &Scoped-define KEY_FELDER Lagerort,Eingang,Verfall,Lotnummer
  34. &Scoped-define NUR_LESEN Firma,Artnr,Inhalt,Jahr,Lager,Lotnummer_2,ProdNummer
  35. { incl/viwdefinition.i }
  36. DEFINE VARIABLE iLager AS INTEGER NO-UNDO.
  37. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO.
  38. DEFINE VARIABLE iInhalt AS INTEGER NO-UNDO.
  39. DEFINE VARIABLE iJahr AS INTEGER NO-UNDO.
  40. DEFINE VARIABLE lVerfall AS LOG NO-UNDO.
  41. DEFINE VARIABLE lLotnr AS LOG NO-UNDO.
  42. DEFINE VARIABLE iHoReLager_Id AS INTEGER NO-UNDO.
  43. {src/adm2/widgetprto.i}
  44. /* _UIB-CODE-BLOCK-END */
  45. &ANALYZE-RESUME
  46. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  47. /* ******************** Preprocessor Definitions ******************** */
  48. &Scoped-define PROCEDURE-TYPE SmartDataViewer
  49. &Scoped-define DB-AWARE no
  50. &Scoped-define ADM-CONTAINER FRAME
  51. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  52. /* Include file with RowObject temp-table definition */
  53. &Scoped-define DATA-FIELD-DEFS "d-lotlager.i"
  54. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  55. &Scoped-define FRAME-NAME F-Main
  56. /* Standard List Definitions */
  57. &Scoped-Define ENABLED-FIELDS RowObject.Lagerort RowObject.Eingang ~
  58. RowObject.Verfall RowObject.Lotnummer RowObject.Bestand RowObject.Barcode
  59. &Scoped-define ENABLED-TABLES RowObject
  60. &Scoped-define FIRST-ENABLED-TABLE RowObject
  61. &Scoped-Define ENABLED-OBJECTS RECT-3 CB_Lager
  62. &Scoped-Define DISPLAYED-FIELDS RowObject.Lager RowObject.Jahr ~
  63. RowObject.Inhalt RowObject.Firma RowObject.Artnr RowObject.ProdNummer ~
  64. RowObject.HoReLager_Id RowObject.Lotnummer_2 RowObject.Lagerort ~
  65. RowObject.Eingang RowObject.Verfall RowObject.Lotnummer RowObject.Bestand ~
  66. RowObject.Barcode
  67. &Scoped-define DISPLAYED-TABLES RowObject
  68. &Scoped-define FIRST-DISPLAYED-TABLE RowObject
  69. &Scoped-Define DISPLAYED-OBJECTS CB_Lager
  70. /* Custom List Definitions */
  71. /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */
  72. /* _UIB-PREPROCESSOR-BLOCK-END */
  73. &ANALYZE-RESUME
  74. /* ************************ Function Prototypes ********************** */
  75. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD formatLagerPlatz vTableWin
  76. FUNCTION formatLagerPlatz RETURNS CHARACTER
  77. ( ipcLagerPlatz AS CHARACTER ) FORWARD.
  78. /* _UIB-CODE-BLOCK-END */
  79. &ANALYZE-RESUME
  80. /* *********************** Control Definitions ********************** */
  81. /* Definitions of the field level widgets */
  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
  88. BGCOLOR 15 NO-UNDO.
  89. DEFINE RECTANGLE RECT-3
  90. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  91. SIZE 126 BY 6.67.
  92. /* ************************ Frame Definitions *********************** */
  93. DEFINE FRAME F-Main
  94. CB_Lager AT ROW 1.52 COL 18 COLON-ALIGNED WIDGET-ID 28
  95. RowObject.Lager AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 16 FORMAT "999999"
  96. VIEW-AS FILL-IN NATIVE
  97. SIZE 4 BY 1
  98. BGCOLOR 15 NO-TAB-STOP
  99. RowObject.Jahr AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 14
  100. VIEW-AS FILL-IN NATIVE
  101. SIZE 4 BY 1
  102. BGCOLOR 15 NO-TAB-STOP
  103. RowObject.Inhalt AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 12
  104. VIEW-AS FILL-IN NATIVE
  105. SIZE 4 BY 1
  106. BGCOLOR 15 NO-TAB-STOP
  107. RowObject.Firma AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 10
  108. VIEW-AS FILL-IN NATIVE
  109. SIZE 4 BY 1
  110. BGCOLOR 15 NO-TAB-STOP
  111. RowObject.Artnr AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 2
  112. VIEW-AS FILL-IN NATIVE
  113. SIZE 4 BY 1
  114. BGCOLOR 15 NO-TAB-STOP
  115. RowObject.ProdNummer AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 22
  116. VIEW-AS FILL-IN NATIVE
  117. SIZE 4 BY 1
  118. BGCOLOR 15 NO-TAB-STOP
  119. RowObject.HoReLager_Id AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 30
  120. VIEW-AS FILL-IN NATIVE
  121. SIZE 4 BY 1
  122. BGCOLOR 15 NO-TAB-STOP
  123. RowObject.Lotnummer_2 AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 20
  124. VIEW-AS FILL-IN NATIVE
  125. SIZE 4 BY 1
  126. BGCOLOR 15 NO-TAB-STOP
  127. RowObject.Lagerort AT ROW 2.52 COL 18 COLON-ALIGNED WIDGET-ID 32
  128. VIEW-AS FILL-IN NATIVE
  129. SIZE 16 BY 1
  130. BGCOLOR 15
  131. RowObject.Eingang AT ROW 3.52 COL 18 COLON-ALIGNED WIDGET-ID 8
  132. LABEL "Eingangsdatum"
  133. VIEW-AS FILL-IN NATIVE
  134. SIZE 16 BY 1
  135. BGCOLOR 15
  136. RowObject.Verfall AT ROW 4.52 COL 18 COLON-ALIGNED WIDGET-ID 24
  137. LABEL "Verfall (MHD)"
  138. VIEW-AS FILL-IN NATIVE
  139. SIZE 16 BY 1
  140. BGCOLOR 15
  141. RowObject.Lotnummer AT ROW 4.52 COL 49 COLON-ALIGNED WIDGET-ID 18
  142. VIEW-AS FILL-IN NATIVE
  143. SIZE 22 BY 1
  144. BGCOLOR 15
  145. RowObject.Bestand AT ROW 4.52 COL 93 COLON-ALIGNED WIDGET-ID 6
  146. VIEW-AS FILL-IN NATIVE
  147. SIZE 15 BY 1
  148. BGCOLOR 15
  149. RowObject.Barcode AT ROW 6 COL 18 COLON-ALIGNED WIDGET-ID 4
  150. VIEW-AS FILL-IN NATIVE
  151. SIZE 62 BY 1
  152. BGCOLOR 15
  153. RECT-3 AT ROW 1.24 COL 2 WIDGET-ID 26
  154. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  155. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  156. AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100.
  157. /* *********************** Procedure Settings ************************ */
  158. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  159. /* Settings for THIS-PROCEDURE
  160. Type: SmartDataViewer
  161. Data Source: "d-lotlager.w"
  162. Allow: Basic,DB-Fields,Smart
  163. Container Links: Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  164. Frames: 1
  165. Add Fields to: Neither
  166. Other Settings: PERSISTENT-ONLY COMPILE APPSERVER
  167. Temp-Tables and Buffers:
  168. TABLE: RowObject D "?" NO-UNDO
  169. ADDITIONAL-FIELDS:
  170. {d-lotlager.i}
  171. END-FIELDS.
  172. END-TABLES.
  173. */
  174. /* This procedure should always be RUN PERSISTENT. Report the error, */
  175. /* then cleanup and return. */
  176. IF NOT THIS-PROCEDURE:PERSISTENT THEN
  177. DO:
  178. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  179. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  180. RETURN.
  181. END.
  182. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  183. /* ************************* Create Window ************************** */
  184. &ANALYZE-SUSPEND _CREATE-WINDOW
  185. /* DESIGN Window definition (used by the UIB)
  186. CREATE WINDOW vTableWin ASSIGN
  187. HEIGHT = 7.14
  188. WIDTH = 128.
  189. /* END WINDOW DEFINITION */
  190. */
  191. &ANALYZE-RESUME
  192. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB vTableWin
  193. /* ************************* Included-Libraries *********************** */
  194. {src/adm2/viewer.i}
  195. /* _UIB-CODE-BLOCK-END */
  196. &ANALYZE-RESUME
  197. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  198. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  199. /* SETTINGS FOR WINDOW vTableWin
  200. VISIBLE,,RUN-PERSISTENT */
  201. /* SETTINGS FOR FRAME F-Main
  202. NOT-VISIBLE FRAME-NAME Size-to-Fit */
  203. ASSIGN
  204. FRAME F-Main:SCROLLABLE = FALSE
  205. FRAME F-Main:HIDDEN = TRUE.
  206. /* SETTINGS FOR FILL-IN RowObject.Artnr IN FRAME F-Main
  207. NO-ENABLE */
  208. ASSIGN
  209. RowObject.Artnr:HIDDEN IN FRAME F-Main = TRUE
  210. RowObject.Artnr:READ-ONLY IN FRAME F-Main = TRUE.
  211. /* SETTINGS FOR FILL-IN RowObject.Eingang IN FRAME F-Main
  212. EXP-LABEL */
  213. /* SETTINGS FOR FILL-IN RowObject.Firma IN FRAME F-Main
  214. NO-ENABLE */
  215. ASSIGN
  216. RowObject.Firma:HIDDEN IN FRAME F-Main = TRUE
  217. RowObject.Firma:READ-ONLY IN FRAME F-Main = TRUE.
  218. /* SETTINGS FOR FILL-IN RowObject.HoReLager_Id IN FRAME F-Main
  219. NO-ENABLE */
  220. ASSIGN
  221. RowObject.HoReLager_Id:HIDDEN IN FRAME F-Main = TRUE
  222. RowObject.HoReLager_Id:READ-ONLY IN FRAME F-Main = TRUE.
  223. /* SETTINGS FOR FILL-IN RowObject.Inhalt IN FRAME F-Main
  224. NO-ENABLE */
  225. ASSIGN
  226. RowObject.Inhalt:HIDDEN IN FRAME F-Main = TRUE
  227. RowObject.Inhalt:READ-ONLY IN FRAME F-Main = TRUE.
  228. /* SETTINGS FOR FILL-IN RowObject.Jahr IN FRAME F-Main
  229. NO-ENABLE */
  230. ASSIGN
  231. RowObject.Jahr:HIDDEN IN FRAME F-Main = TRUE
  232. RowObject.Jahr:READ-ONLY IN FRAME F-Main = TRUE.
  233. /* SETTINGS FOR FILL-IN RowObject.Lager IN FRAME F-Main
  234. NO-ENABLE EXP-FORMAT */
  235. ASSIGN
  236. RowObject.Lager:HIDDEN IN FRAME F-Main = TRUE
  237. RowObject.Lager:READ-ONLY IN FRAME F-Main = TRUE.
  238. /* SETTINGS FOR FILL-IN RowObject.Lotnummer_2 IN FRAME F-Main
  239. NO-ENABLE */
  240. ASSIGN
  241. RowObject.Lotnummer_2:HIDDEN IN FRAME F-Main = TRUE
  242. RowObject.Lotnummer_2:READ-ONLY IN FRAME F-Main = TRUE.
  243. /* SETTINGS FOR FILL-IN RowObject.ProdNummer IN FRAME F-Main
  244. NO-ENABLE */
  245. ASSIGN
  246. RowObject.ProdNummer:HIDDEN IN FRAME F-Main = TRUE
  247. RowObject.ProdNummer:READ-ONLY IN FRAME F-Main = TRUE.
  248. /* SETTINGS FOR FILL-IN RowObject.Verfall IN FRAME F-Main
  249. EXP-LABEL */
  250. /* _RUN-TIME-ATTRIBUTES-END */
  251. &ANALYZE-RESUME
  252. /* Setting information for Queries and Browse Widgets fields */
  253. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  254. /* Query rebuild information for FRAME F-Main
  255. _Options = "NO-LOCK"
  256. _Query is NOT OPENED
  257. */ /* FRAME F-Main */
  258. &ANALYZE-RESUME
  259. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin
  260. /* *************************** Main Block *************************** */
  261. { incl/viwmainblock.i }
  262. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  263. RUN initializeObject.
  264. &ENDIF
  265. /************************ INTERNAL PROCEDURES ********************/
  266. /* _UIB-CODE-BLOCK-END */
  267. &ANALYZE-RESUME
  268. /* ********************** Internal Procedures *********************** */
  269. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE addRecord vTableWin
  270. PROCEDURE addRecord :
  271. /*------------------------------------------------------------------------------*/
  272. /* Purpose: */
  273. /* Parameters: <none> */
  274. /* Notes: */
  275. /*------------------------------------------------------------------------------*/
  276. FNeu = TRUE.
  277. FMut = TRUE.
  278. FDisp = TRUE.
  279. RUN SUPER.
  280. /* Code placed here will execute AFTER standard behavior. */
  281. END PROCEDURE.
  282. /* _UIB-CODE-BLOCK-END */
  283. &ANALYZE-RESUME
  284. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin
  285. PROCEDURE cancelRecord :
  286. /*------------------------------------------------------------------------------*/
  287. /* Purpose: */
  288. /* Parameters: <none> */
  289. /* Notes: */
  290. /*------------------------------------------------------------------------------*/
  291. FCancel = TRUE.
  292. RUN SUPER.
  293. /* Code placed here will execute AFTER standard behavior. */
  294. END PROCEDURE.
  295. /* _UIB-CODE-BLOCK-END */
  296. &ANALYZE-RESUME
  297. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE copyRecord vTableWin
  298. PROCEDURE copyRecord :
  299. /*------------------------------------------------------------------------------*/
  300. /* Purpose: */
  301. /* Parameters: <none> */
  302. /* Notes: */
  303. /*------------------------------------------------------------------------------*/
  304. FNeu = TRUE.
  305. FMut = TRUE.
  306. FCopy = TRUE.
  307. FDisp = TRUE.
  308. RUN SUPER.
  309. END PROCEDURE.
  310. /* _UIB-CODE-BLOCK-END */
  311. &ANALYZE-RESUME
  312. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteRecord vTableWin
  313. PROCEDURE deleteRecord :
  314. /*------------------------------------------------------------------------------*/
  315. /* Purpose: */
  316. /* Parameters: <none> */
  317. /* Notes: */
  318. /*------------------------------------------------------------------------------*/
  319. DEFINE VARIABLE Ja AS LOG NO-UNDO.
  320. Ja = DYNAMIC-FUNCTION( 'ANTWORT_NEIN':U, INPUT 1000 ).
  321. IF NOT Ja THEN
  322. DO:
  323. RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL':U ) NO-ERROR.
  324. RETURN NO-APPLY.
  325. END.
  326. /* REPEAT TRANSACTION: */
  327. /* RUN INAKTIVIEREN IN hDaten. */
  328. /* LEAVE. */
  329. /* END. */
  330. /* */
  331. RUN SUPER.
  332. /* Code placed here will execute AFTER standard behavior. */
  333. END PROCEDURE.
  334. /* _UIB-CODE-BLOCK-END */
  335. &ANALYZE-RESUME
  336. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin
  337. PROCEDURE disableFields :
  338. /*------------------------------------------------------------------------------*/
  339. /* Purpose: */
  340. /* Parameters: <none> */
  341. /* Notes: */
  342. /*------------------------------------------------------------------------------*/
  343. DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO.
  344. DO WITH FRAME {&FRAME-NAME}:
  345. END.
  346. RUN SUPER( INPUT pcFieldType).
  347. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  348. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  349. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN
  350. DO:
  351. RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT 15 ).
  352. END.
  353. DO WITH FRAME {&FRAME-NAME}:
  354. CB_Lager:SENSITIVE = TRUE.
  355. END.
  356. END PROCEDURE.
  357. /* _UIB-CODE-BLOCK-END */
  358. &ANALYZE-RESUME
  359. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI vTableWin _DEFAULT-DISABLE
  360. PROCEDURE disable_UI :
  361. /*------------------------------------------------------------------------------
  362. Purpose: DISABLE the User Interface
  363. Parameters: <none>
  364. Notes: Here we clean-up the user-interface by deleting
  365. dynamic widgets we have created and/or hide
  366. frames. This procedure is usually called when
  367. we are ready to "clean-up" after running.
  368. ------------------------------------------------------------------------------*/
  369. /* Hide all frames. */
  370. HIDE FRAME F-Main.
  371. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  372. END PROCEDURE.
  373. /* _UIB-CODE-BLOCK-END */
  374. &ANALYZE-RESUME
  375. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE displayFields vTableWin
  376. PROCEDURE displayFields :
  377. /*------------------------------------------------------------------------------*/
  378. /* Purpose: */
  379. /* Parameters: <none> */
  380. /* Notes: */
  381. /*------------------------------------------------------------------------------*/
  382. DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  383. IF NOT FDisp THEN
  384. DO:
  385. FDisp = TRUE.
  386. RETURN.
  387. END.
  388. IF FCancel THEN pcColValues = OldColValues.
  389. IF NOT FNeu THEN OldColValues = pcColValues.
  390. OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
  391. IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ).
  392. DO WITH FRAME {&FRAME-NAME}:
  393. END.
  394. RUN SUPER( INPUT pcColValues).
  395. FCancel = FALSE.
  396. DO WITH FRAME {&FRAME-NAME}:
  397. IF FMut THEN
  398. DO:
  399. END.
  400. ASSIGN
  401. iArtnr = INTEGER(rowObject.Artnr :SCREEN-VALUE)
  402. iInhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE)
  403. iJahr = INTEGER(rowObject.Jahr :SCREEN-VALUE).
  404. lVerfall = DYNAMIC-FUNCTION('isVerfall':U, iArtnr, iInhalt, iJahr ) NO-ERROR.
  405. lLotnr = DYNAMIC-FUNCTION('isLotnr':U , iArtnr, iInhalt, iJahr ) NO-ERROR.
  406. IF NOT lVerfall THEN rowObject.Verfall:SENSITIVE = FALSE.
  407. IF NOT lLotnr THEN rowObject.Lotnummer :SENSITIVE = FALSE.
  408. END.
  409. END PROCEDURE.
  410. /* _UIB-CODE-BLOCK-END */
  411. &ANALYZE-RESUME
  412. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin
  413. PROCEDURE enableFields :
  414. /*------------------------------------------------------------------------------*/
  415. /* Purpose: */
  416. /* Parameters: <none> */
  417. /* Notes: */
  418. /*------------------------------------------------------------------------------*/
  419. /* Code placed here will execute PRIOR to standard behavior. */
  420. /*
  421. RUN SUPER.
  422. */
  423. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  424. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ).
  425. IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN
  426. DO:
  427. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ).
  428. END.
  429. DO WITH FRAME {&FRAME-NAME}:
  430. CB_Lager:SENSITIVE = FALSE.
  431. END.
  432. IF FNeu THEN RETURN.
  433. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN
  434. DO:
  435. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  436. END.
  437. END PROCEDURE.
  438. /* _UIB-CODE-BLOCK-END */
  439. &ANALYZE-RESUME
  440. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin
  441. PROCEDURE enableObject :
  442. /*------------------------------------------------------------------------------*/
  443. /* Purpose: */
  444. /* Parameters: <none> */
  445. /* Notes: */
  446. /*------------------------------------------------------------------------------*/
  447. DO WITH FRAME {&FRAME-NAME}:
  448. RUN COMBO_LAGER ( CB_Lager:HANDLE ) NO-ERROR.
  449. END.
  450. RUN SUPER.
  451. { incl/viwenableobject.i }
  452. END PROCEDURE.
  453. /* _UIB-CODE-BLOCK-END */
  454. &ANALYZE-RESUME
  455. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin
  456. PROCEDURE ENTRY_FELD_TEST :
  457. /*------------------------------------------------------------------------------*/
  458. /* Purpose: */
  459. /* Parameters: <none> */
  460. /* Notes: */
  461. /*------------------------------------------------------------------------------*/
  462. { incl/viwentryfeldtest.i }
  463. DO WITH FRAME {&FRAME-NAME}:
  464. CASE FeldName:
  465. END CASE.
  466. END.
  467. RETURN ''.
  468. END PROCEDURE.
  469. /* _UIB-CODE-BLOCK-END */
  470. &ANALYZE-RESUME
  471. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FEHLWERTE vTableWin
  472. PROCEDURE FEHLWERTE :
  473. /*------------------------------------------------------------------------------*/
  474. /* Purpose: */
  475. /* Parameters: <none> */
  476. /* Notes: */
  477. /*------------------------------------------------------------------------------*/
  478. DEFINE INPUT-OUTPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  479. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  480. IF FCancel THEN RETURN.
  481. PUBLISH 'GET-LAGER-IN-ARTIKEL' (OUTPUT iLager).
  482. i1 = LOOKUP('Artnr', oldColList, ',') + 1.
  483. iArtnr = INTEGER(ENTRY(i1, pcColValues, CHR(1))) NO-ERROR.
  484. i1 = LOOKUP('Inhalt', oldColList, ',') + 1.
  485. iInhalt = INTEGER(ENTRY(i1, pcColValues, CHR(1))) NO-ERROR.
  486. i1 = LOOKUP('Jahr', oldColList, ',') + 1.
  487. iJahr = INTEGER(ENTRY(i1, pcColValues, CHR(1))) NO-ERROR.
  488. FIND FIRST HoReLager NO-LOCK
  489. WHERE HoReLager.Firma = Firma
  490. AND HoReLager.Art = 1
  491. AND HoReLager.Lager = iLager
  492. AND HoReLager.Artnr = iArtnr
  493. AND HoReLager.Inhalt = iInhalt
  494. AND HoReLager.Jahr = iJahr NO-ERROR.
  495. IF NOT AVAILABLE HoReLager THEN
  496. DO:
  497. FIND FIRST HoReLager NO-LOCK
  498. WHERE HoReLager.Firma = Firma
  499. AND HoReLager.Art = 1
  500. AND HoReLager.Lager = iLager
  501. AND HoReLager.Artnr = iArtnr
  502. AND HoReLager.Inhalt = iInhalt NO-ERROR.
  503. END.
  504. IF NOT FCopy THEN
  505. DO WITH FRAME {&FRAME-NAME}:
  506. i1 = LOOKUP('Lager', oldColList, ',') + 1.
  507. ENTRY(i1, pcColValues, CHR(1)) = STRING(iLager) NO-ERROR.
  508. IF AVAILABLE HoReLager THEN
  509. DO:
  510. i1 = LOOKUP('Lagerort', oldColList, ',') + 1.
  511. ENTRY(i1, pcColValues, CHR(1)) = HoReLager.cSort NO-ERROR.
  512. END.
  513. END.
  514. IF FCopy THEN
  515. DO:
  516. END.
  517. END PROCEDURE.
  518. /* _UIB-CODE-BLOCK-END */
  519. &ANALYZE-RESUME
  520. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_FELD_TEST vTableWin
  521. PROCEDURE LEAVE_FELD_TEST :
  522. /*------------------------------------------------------------------------------*/
  523. /* Purpose: */
  524. /* Parameters: <none> */
  525. /* Notes: */
  526. /*------------------------------------------------------------------------------*/
  527. DEFINE VARIABLE dDatum AS DATE NO-UNDO.
  528. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  529. { incl/viwleavefeldtest.i }
  530. DO WHILE FNeu WITH FRAME {&FRAME-NAME}:
  531. CASE FeldName:
  532. WHEN 'Lagerort' THEN
  533. DO:
  534. SELF:SCREEN-VALUE = DYNAMIC-FUNCTION ('formatLagerPlatz':U, SELF:SCREEN-VALUE) NO-ERROR.
  535. FIND FIRST HoReLager NO-LOCK
  536. WHERE HoReLager.Firma = Firma
  537. AND HoReLager.cSort = SELF:SCREEN-VALUE NO-ERROR.
  538. IF NOT AVAILABLE HoReLager THEN
  539. DO:
  540. DYNAMIC-FUNCTION ('fehlerMeldung':U, 1113, '') NO-ERROR.
  541. RETURN 'ERROR'.
  542. END.
  543. iArtnr = INTEGER(rowObject.Artnr :SCREEN-VALUE).
  544. iInhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE).
  545. IF HoReLager.Artnr <> 0 AND
  546. HoReLager.Artnr <> iArtnr THEN
  547. DO:
  548. cString = SUBSTITUTE('&1/&2/&3', HoReLager.Artnr, HoReLager.Inhalt, HoReLager.Jahr).
  549. DYNAMIC-FUNCTION ('fehlerMeldung':U, 1118, cString) NO-ERROR.
  550. RETURN 'ERROR'.
  551. END.
  552. rowObject.HoReLager_Id:SCREEN-VALUE = STRING(HoReLager.HoReLager_Id).
  553. END.
  554. WHEN 'Eingang' THEN
  555. DO:
  556. dDatum = DATE(SELF:SCREEN-VALUE) NO-ERROR.
  557. IF ERROR-STATUS:ERROR OR
  558. dDatum = ? THEN SELF:SCREEN-VALUE = STRING(TODAY).
  559. END.
  560. WHEN 'Verfall' THEN
  561. DO:
  562. IF NOT lVerfall THEN SELF:SCREEN-VALUE = rowObject.Eingang:SCREEN-VALUE.
  563. ELSE
  564. DO:
  565. dDatum = DATE(SELF:SCREEN-VALUE) NO-ERROR.
  566. IF ERROR-STATUS:ERROR OR
  567. dDatum = ? THEN
  568. DO:
  569. RUN FEHLER ( 1104 ).
  570. RETURN 'ERROR'.
  571. END.
  572. END.
  573. END.
  574. WHEN 'Lotnummer' THEN
  575. DO:
  576. IF NOT lLotnr THEN
  577. DO:
  578. SELF:SCREEN-VALUE = ''.
  579. END.
  580. ELSE
  581. DO:
  582. IF SELF:SCREEN-VALUE = '' THEN
  583. DO:
  584. RUN FEHLER ( 1105 ).
  585. RETURN 'ERROR'.
  586. END.
  587. END.
  588. END.
  589. END CASE.
  590. LEAVE.
  591. END.
  592. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  593. CASE FeldName:
  594. END CASE.
  595. LEAVE.
  596. END.
  597. IF LOOKUP(FeldName, '{&LETZTES_FELD}', ',') > 0 THEN
  598. DO:
  599. DO WHILE TRUE:
  600. IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE.
  601. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE.
  602. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE.
  603. RETURN ''.
  604. END.
  605. APPLY 'ALT-S'.
  606. RETURN 'APPLY'.
  607. END.
  608. RETURN ''.
  609. END PROCEDURE.
  610. /* _UIB-CODE-BLOCK-END */
  611. &ANALYZE-RESUME
  612. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETURN_FELD vTableWin
  613. PROCEDURE RETURN_FELD :
  614. /*------------------------------------------------------------------------------*/
  615. /* Purpose: */
  616. /* Parameters: <none> */
  617. /* Notes: */
  618. /*------------------------------------------------------------------------------*/
  619. { incl/viwreturnfeld.i }
  620. END PROCEDURE.
  621. /* _UIB-CODE-BLOCK-END */
  622. &ANALYZE-RESUME
  623. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEST_EINGABEN vTableWin
  624. PROCEDURE TEST_EINGABEN :
  625. /*------------------------------------------------------------------------------*/
  626. /* Purpose: */
  627. /* Parameters: <none> */
  628. /* Notes: */
  629. /*------------------------------------------------------------------------------*/
  630. DEFINE OUTPUT PARAMETER opJa AS LOG NO-UNDO.
  631. DEFINE VARIABLE eHandle AS HANDLE NO-UNDO.
  632. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  633. DEFINE VARIABLE iLotnummer AS INTEGER NO-UNDO.
  634. DEFINE VARIABLE dverfall AS DATE NO-UNDO.
  635. DEFINE VARIABLE cLotnr AS CHARACTER NO-UNDO.
  636. opJa = FALSE.
  637. eHandle = ?.
  638. IF NOT FMut THEN RETURN.
  639. DO WHILE FNeu WITH FRAME {&FRAME-NAME}:
  640. iHoReLager_Id = INTEGER(RowObject.HoReLager_Id:SCREEN-VALUE).
  641. dVerfall = DATE (RowObject.Verfall :SCREEN-VALUE ).
  642. cLotnr = RowObject.Lotnummer:SCREEN-VALUE .
  643. FIND FIRST LotLager NO-LOCK
  644. WHERE LotLager.HoReLager_Id = iHoReLager_Id
  645. AND LotLager.Verfall = dVerfall
  646. AND LotLager.Lotnummer = cLotnr NO-ERROR.
  647. IF NOT AVAILABLE LotLager THEN LEAVE.
  648. DYNAMIC-FUNCTION ('fehlerMeldung':U, 1119, '' ) NO-ERROR.
  649. eHandle = rowObject.Verfall:HANDLE.
  650. LEAVE.
  651. END.
  652. AAA000:
  653. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  654. IF DATE(rowObject.Eingang:SCREEN-VALUE) = ? THEN rowObject.Eingang:SCREEN-VALUE = STRING(TODAY).
  655. IF NOT lVerfall THEN rowObject.Verfall:SCREEN-VALUE = rowObject.Eingang:SCREEN-VALUE.
  656. ELSE
  657. DO:
  658. IF rowObject.Verfall:SCREEN-VALUE = ? THEN
  659. DO:
  660. RUN FEHLER ( 1104 ).
  661. eHandle = rowObject.Verfall:HANDLE.
  662. LEAVE.
  663. END.
  664. END.
  665. IF lLotnr THEN
  666. DO:
  667. IF rowObject.Lotnummer:SCREEN-VALUE = '' THEN
  668. DO:
  669. RUN FEHLER ( 1105 ).
  670. eHandle = rowobject.Lotnummer:HANDLE.
  671. LEAVE.
  672. END.
  673. END.
  674. LEAVE.
  675. END.
  676. IF VALID-HANDLE(eHandle) THEN
  677. DO:
  678. APPLY 'ENTRY' TO eHandle.
  679. RETURN NO-APPLY.
  680. END.
  681. opJa = TRUE.
  682. END PROCEDURE.
  683. /* _UIB-CODE-BLOCK-END */
  684. &ANALYZE-RESUME
  685. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin
  686. PROCEDURE updateMode :
  687. /*------------------------------------------------------------------------------*/
  688. /* Purpose: */
  689. /* Parameters: <none> */
  690. /* Notes: */
  691. /*------------------------------------------------------------------------------*/
  692. DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO.
  693. CASE pcMode:
  694. WHEN 'updateBegin' THEN
  695. DO:
  696. RUN refreshRow IN hDaten.
  697. END.
  698. WHEN 'updateEnd' THEN
  699. DO:
  700. END.
  701. END.
  702. RUN SUPER( INPUT pcMode).
  703. CASE pcMode:
  704. WHEN 'updateBegin' THEN
  705. DO:
  706. FMut = TRUE.
  707. END.
  708. WHEN 'updateEnd' THEN
  709. DO:
  710. FNeu = FALSE.
  711. FMut = FALSE.
  712. FCopy = FALSE.
  713. END.
  714. END.
  715. END PROCEDURE.
  716. /* _UIB-CODE-BLOCK-END */
  717. &ANALYZE-RESUME
  718. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin
  719. PROCEDURE updateRecord :
  720. /*------------------------------------------------------------------------------*/
  721. /* Purpose: */
  722. /* Parameters: <none> */
  723. /* Notes: */
  724. /*------------------------------------------------------------------------------*/
  725. DO WITH FRAME {&FRAME-NAME}:
  726. IF FNeu THEN
  727. DO:
  728. DYNAMIC-FUNCTION('SETMODIFIEDFLAG':U, INPUT Fenster, INPUT TRUE).
  729. END.
  730. END.
  731. FNeu = FALSE.
  732. FCopy = FALSE.
  733. RUN SUPER.
  734. /* Code placed here will execute AFTER standard behavior. */
  735. END PROCEDURE.
  736. /* _UIB-CODE-BLOCK-END */
  737. &ANALYZE-RESUME
  738. /* ************************ Function Implementations ***************** */
  739. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION formatLagerPlatz vTableWin
  740. FUNCTION formatLagerPlatz RETURNS CHARACTER
  741. ( ipcLagerPlatz AS CHARACTER ):
  742. /*------------------------------------------------------------------------------*/
  743. /* Purpose: */
  744. /* Parameters: <none> */
  745. /* Notes: */
  746. /*------------------------------------------------------------------------------*/
  747. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  748. DEFINE VARIABLE cRegal AS CHARACTER NO-UNDO.
  749. DEFINE VARIABLE cPlatz AS CHARACTER NO-UNDO.
  750. DEFINE VARIABLE cNiveau AS CHARACTER NO-UNDO.
  751. DEFINE VARIABLE cSf AS CHARACTER NO-UNDO.
  752. DEFINE VARIABLE cLagerPlatz AS CHARACTER NO-UNDO.
  753. cLagerPlatz = REPLACE(ipcLagerPlatz, '.', '-').
  754. cLagerPlatz = REPLACE(cLagerPlatz , ',', '-').
  755. DO ii = 1 TO NUM-ENTRIES(cLagerPlatz, '-'):
  756. CASE ii:
  757. WHEN 1 THEN
  758. cRegal = ENTRY(ii, cLagerPlatz, '-').
  759. WHEN 2 THEN
  760. cPlatz = ENTRY(ii, cLagerPlatz, '-').
  761. WHEN 3 THEN
  762. cNiveau = ENTRY(ii, cLagerPlatz, '-').
  763. WHEN 4 THEN
  764. cSf = ENTRY(ii, cLagerPlatz, '-').
  765. END.
  766. END.
  767. DO WHILE LENGTH(cPlatz) < 3:
  768. cPlatz = '0' + cPlatz.
  769. END.
  770. DO WHILE LENGTH(cNiveau) < 2:
  771. cNiveau = '0' + cNiveau.
  772. END.
  773. DO WHILE cSf <> '' AND LENGTH(cSf) < 2:
  774. cSf = '0' + cSf.
  775. END.
  776. cLagerPlatz = ''.
  777. cLagerPlatz = SUBSTITUTE('&1-&2-&3', cRegal, cPlatz, cNiveau).
  778. IF cSf <> '' THEN cLagerPlatz = cLagerPlatz + '-' + cSf.
  779. cLagerPlatz = CAPS(cLagerPlatz).
  780. RETURN cLagerPlatz.
  781. END FUNCTION.
  782. /* _UIB-CODE-BLOCK-END */
  783. &ANALYZE-RESUME