w-bilder.w 31 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME wBilder
  4. {adecomm/appserv.i}
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS wBilder
  6. /*------------------------------------------------------------------------
  7. File:
  8. Description: from cntnrwin.w - ADM SmartWindow Template
  9. Input Parameters:
  10. <none>
  11. Output Parameters:
  12. <none>
  13. History: New V9 Version - January 15, 1998
  14. ------------------------------------------------------------------------*/
  15. /* This .W file was created with the Progress AB. */
  16. /*----------------------------------------------------------------------*/
  17. /* Create an unnamed pool to store all the widgets created
  18. by this procedure. This is a good default which assures
  19. that this procedure's triggers and internal procedures
  20. will execute in this procedure's storage, and that proper
  21. cleanup will occur on deletion of the procedure. */
  22. CREATE WIDGET-POOL.
  23. /* *************************** Definitions ************************** */
  24. /* Parameters Definitions --- */
  25. /* Local Variable Definitions --- */
  26. DEF VAR cDefPath AS CHAR NO-UNDO.
  27. DEF VAR hQuery AS HANDLE NO-UNDO.
  28. { incl/windefinition.i }
  29. DEF TEMP-TABLE tBilder NO-UNDO
  30. FIELD iNummer AS INT
  31. FIELD cName AS CHAR
  32. FIELD cDatei AS CHAR
  33. FIELD cBarcode AS CHAR
  34. FIELD cExt AS CHAR
  35. FIELD iArtnr AS INT
  36. FIELD iInhalt AS INT
  37. FIELD iJahr AS INT
  38. FIELD iRecid AS RECID.
  39. DEF BUFFER btBilder FOR tBilder.
  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 SmartWindow
  46. &Scoped-define DB-AWARE no
  47. &Scoped-define ADM-CONTAINER WINDOW
  48. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
  49. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  50. &Scoped-define FRAME-NAME fMain
  51. /* Standard List Definitions */
  52. &Scoped-Define ENABLED-OBJECTS Bild F_Pfad Btn_Bilder Btn_Ende F_Artnr ~
  53. F_Inhalt F_Jahr F_Bez Btn_OK Btn_Prev Btn_Next
  54. &Scoped-Define DISPLAYED-OBJECTS F_Pfad F_Artnr F_Inhalt F_Jahr F_Bez
  55. /* Custom List Definitions */
  56. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  57. &Scoped-define List-6 F_Artnr F_Inhalt F_Jahr F_Bez
  58. /* _UIB-PREPROCESSOR-BLOCK-END */
  59. &ANALYZE-RESUME
  60. /* ************************ Function Prototypes ********************** */
  61. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getProgname wBilder
  62. FUNCTION getProgname RETURNS CHARACTER
  63. ( /* parameter-definitions */ ) FORWARD.
  64. /* _UIB-CODE-BLOCK-END */
  65. &ANALYZE-RESUME
  66. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD isArtikelNrName wBilder
  67. FUNCTION isArtikelNrName RETURNS LOGICAL
  68. ( ipcArtikel AS CHAR ) FORWARD.
  69. /* _UIB-CODE-BLOCK-END */
  70. &ANALYZE-RESUME
  71. /* *********************** Control Definitions ********************** */
  72. /* Define the widget handle for the window */
  73. DEFINE VAR wBilder AS WIDGET-HANDLE NO-UNDO.
  74. /* Definitions of the field level widgets */
  75. DEFINE BUTTON Btn_Bilder
  76. LABEL "Lesen"
  77. SIZE 12 BY 1.
  78. DEFINE BUTTON Btn_Ende
  79. LABEL "schliessen"
  80. SIZE 15 BY 1.
  81. DEFINE BUTTON Btn_Next
  82. IMAGE-UP FILE "grafik/next.bmp":U
  83. LABEL "vorwärts"
  84. SIZE 6 BY 1.14.
  85. DEFINE BUTTON Btn_OK
  86. LABEL "Bestätigen"
  87. SIZE 15 BY 1.
  88. DEFINE BUTTON Btn_Prev
  89. IMAGE-UP FILE "grafik/prev.bmp":U
  90. LABEL "zurück"
  91. SIZE 6 BY 1.14.
  92. DEFINE VARIABLE F_Artnr AS INTEGER FORMAT "999999":U INITIAL 0
  93. LABEL "Artikel"
  94. VIEW-AS FILL-IN NATIVE
  95. SIZE 11 BY 1
  96. BGCOLOR 15 NO-UNDO.
  97. DEFINE VARIABLE F_Bez AS CHARACTER FORMAT "x(60)":U
  98. LABEL "/"
  99. VIEW-AS FILL-IN NATIVE
  100. SIZE 49.2 BY 1
  101. BGCOLOR 15 NO-UNDO.
  102. DEFINE VARIABLE F_Inhalt AS INTEGER FORMAT "9999":U INITIAL 0
  103. LABEL "/"
  104. VIEW-AS FILL-IN NATIVE
  105. SIZE 8 BY 1
  106. BGCOLOR 15 NO-UNDO.
  107. DEFINE VARIABLE F_Jahr AS INTEGER FORMAT "9999":U INITIAL 0
  108. LABEL "/"
  109. VIEW-AS FILL-IN NATIVE
  110. SIZE 8 BY 1
  111. BGCOLOR 15 NO-UNDO.
  112. DEFINE VARIABLE F_Pfad AS CHARACTER FORMAT "x(60)":U
  113. LABEL "Bild-Pfad"
  114. VIEW-AS FILL-IN NATIVE
  115. SIZE 49.2 BY 1
  116. BGCOLOR 15 NO-UNDO.
  117. DEFINE IMAGE Bild
  118. FILENAME "grafik/select.bmp":U
  119. SIZE 148 BY 21.52.
  120. /* ************************ Frame Definitions *********************** */
  121. DEFINE FRAME fMain
  122. F_Pfad AT ROW 1.52 COL 11 COLON-ALIGNED WIDGET-ID 12
  123. Btn_Bilder AT ROW 1.52 COL 65 WIDGET-ID 14
  124. Btn_Ende AT ROW 1.52 COL 137.8 WIDGET-ID 16
  125. F_Artnr AT ROW 3 COL 11 COLON-ALIGNED WIDGET-ID 4
  126. F_Inhalt AT ROW 3 COL 24 COLON-ALIGNED WIDGET-ID 6
  127. F_Jahr AT ROW 3 COL 35 COLON-ALIGNED WIDGET-ID 8
  128. F_Bez AT ROW 3 COL 46 COLON-ALIGNED WIDGET-ID 10 NO-TAB-STOP
  129. Btn_OK AT ROW 3 COL 105.4 WIDGET-ID 22
  130. Btn_Prev AT ROW 4.52 COL 12.6 WIDGET-ID 18
  131. Btn_Next AT ROW 4.52 COL 18.8 WIDGET-ID 20
  132. Bild AT ROW 7.29 COL 7 WIDGET-ID 2
  133. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  134. SIDE-LABELS NO-UNDERLINE THREE-D
  135. AT COL 1 ROW 1
  136. SIZE 160 BY 30.48 WIDGET-ID 100.
  137. /* *********************** Procedure Settings ************************ */
  138. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  139. /* Settings for THIS-PROCEDURE
  140. Type: SmartWindow
  141. Allow: Basic,Browse,DB-Fields,Query,Smart,Window
  142. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
  143. Other Settings: COMPILE APPSERVER
  144. */
  145. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  146. /* ************************* Create Window ************************** */
  147. &ANALYZE-SUSPEND _CREATE-WINDOW
  148. IF SESSION:DISPLAY-TYPE = "GUI":U THEN
  149. CREATE WINDOW wBilder ASSIGN
  150. HIDDEN = YES
  151. TITLE = "Bilder den Artikeln zuweisen"
  152. HEIGHT = 30.48
  153. WIDTH = 160
  154. MAX-HEIGHT = 30.48
  155. MAX-WIDTH = 160
  156. VIRTUAL-HEIGHT = 30.48
  157. VIRTUAL-WIDTH = 160
  158. RESIZE = no
  159. SCROLL-BARS = no
  160. STATUS-AREA = no
  161. BGCOLOR = ?
  162. FGCOLOR = ?
  163. THREE-D = yes
  164. MESSAGE-AREA = no
  165. SENSITIVE = yes.
  166. ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
  167. &IF '{&WINDOW-SYSTEM}' NE 'TTY' &THEN
  168. IF NOT wBilder:LOAD-ICON("grafik/appl.ico":U) THEN
  169. MESSAGE "Unable to load icon: grafik/appl.ico"
  170. VIEW-AS ALERT-BOX WARNING BUTTONS OK.
  171. &ENDIF
  172. /* END WINDOW DEFINITION */
  173. &ANALYZE-RESUME
  174. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB wBilder
  175. /* ************************* Included-Libraries *********************** */
  176. {src/adm2/containr.i}
  177. /* _UIB-CODE-BLOCK-END */
  178. &ANALYZE-RESUME
  179. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  180. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  181. /* SETTINGS FOR WINDOW wBilder
  182. VISIBLE,,RUN-PERSISTENT */
  183. /* SETTINGS FOR FRAME fMain
  184. FRAME-NAME */
  185. /* SETTINGS FOR FILL-IN F_Artnr IN FRAME fMain
  186. 6 */
  187. /* SETTINGS FOR FILL-IN F_Bez IN FRAME fMain
  188. 6 */
  189. ASSIGN
  190. F_Bez:READ-ONLY IN FRAME fMain = TRUE.
  191. /* SETTINGS FOR FILL-IN F_Inhalt IN FRAME fMain
  192. 6 */
  193. /* SETTINGS FOR FILL-IN F_Jahr IN FRAME fMain
  194. 6 */
  195. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wBilder)
  196. THEN wBilder:HIDDEN = yes.
  197. /* _RUN-TIME-ATTRIBUTES-END */
  198. &ANALYZE-RESUME
  199. /* ************************ Control Triggers ************************ */
  200. &Scoped-define SELF-NAME wBilder
  201. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wBilder wBilder
  202. ON END-ERROR OF wBilder /* Bilder den Artikeln zuweisen */
  203. OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
  204. /* This case occurs when the user presses the "Esc" key.
  205. In a persistently run window, just ignore this. If we did not, the
  206. application would exit. */
  207. IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
  208. /* ****************************** */
  209. RUN ENDE.
  210. RETURN NO-APPLY.
  211. /* ****************************** */
  212. END.
  213. /* _UIB-CODE-BLOCK-END */
  214. &ANALYZE-RESUME
  215. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wBilder wBilder
  216. ON WINDOW-CLOSE OF wBilder /* Bilder den Artikeln zuweisen */
  217. DO:
  218. /* This ADM code must be left here in order for the SmartWindow
  219. and its descendents to terminate properly on exit. */
  220. RUN ENDE.
  221. RETURN NO-APPLY.
  222. END.
  223. /* _UIB-CODE-BLOCK-END */
  224. &ANALYZE-RESUME
  225. &Scoped-define SELF-NAME Btn_Bilder
  226. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Bilder wBilder
  227. ON CHOOSE OF Btn_Bilder IN FRAME fMain /* Lesen */
  228. DO:
  229. DEF VAR cInput AS CHAR NO-UNDO.
  230. DEF VAR cName AS CHAR NO-UNDO.
  231. DEF VAR cExt AS CHAR NO-UNDO.
  232. DEF VAR cArtikel AS CHAR NO-UNDO.
  233. DEF VAR cStrichcode AS CHAR NO-UNDO.
  234. DEF VAR cPfad AS CHAR NO-UNDO.
  235. DEF VAR iAnz AS INT NO-UNDO.
  236. DEF VAR ii AS INT NO-UNDO.
  237. DEF VAR lJa AS LOG NO-UNDO.
  238. DEF VAR cFormat AS CHAR NO-UNDO
  239. INIT 'png,jpg,tif,gif,bmp'.
  240. DEF VAR iRecid AS RECID NO-UNDO.
  241. EMPTY TEMP-TABLE tBilder.
  242. cPfad = F_Pfad:SCREEN-VALUE.
  243. IF SUBSTRING(cPfad,LENGTH(cPfad),01) <> '/' AND
  244. SUBSTRING(cPfad,LENGTH(cPfad),01) <> '\' THEN cPfad = cPfad + '\'.
  245. cDefPath = cPfad.
  246. PUT-KEY-VALUE SECTION 'eShop'
  247. KEY 'Bildpfad'
  248. VALUE cDefPath.
  249. SESSION:SET-WAIT-STATE('GENERAL').
  250. INPUT FROM OS-DIR(cPfad) NO-MAP NO-CONVERT.
  251. REPEAT TRANSACTION ON STOP UNDO, LEAVE:
  252. IMPORT cInput.
  253. cName = cPfad + cInput.
  254. FILE-INFO:FILE-NAME = cName.
  255. IF FILE-INFO:FILE-NAME = ? THEN NEXT.
  256. IF FILE-INFO:FULL-PATHNAME = ? THEN NEXT.
  257. IF NOT FILE-INFO:FILE-TYPE BEGINS 'F' THEN NEXT.
  258. iAnz = iAnz + 1.
  259. CREATE tBilder.
  260. ASSIGN tBilder.cName = FILE-INFO:FULL-PATHNAME
  261. tBilder.cDatei = REPLACE(FILE-INFO:FILE-NAME, cDefPath, '').
  262. tBilder.iNummer = iAnz.
  263. END.
  264. INPUT CLOSE.
  265. FOR EACH tBilder:
  266. ii = R-INDEX(tBilder.cDatei, '.').
  267. IF ii = 0 THEN NEXT.
  268. cExt = SUBSTRING(tBilder.cDatei,ii + 1).
  269. tBilder.cExt = cExt.
  270. IF LOOKUP(cExt, cFormat, ',') = 0 THEN DO:
  271. DELETE tBilder.
  272. NEXT.
  273. END.
  274. cArtikel = SUBSTRING(tBilder.cDatei,01,ii - 1).
  275. IF LENGTH(cArtikel) = 14 THEN DO:
  276. lJa = DYNAMIC-FUNCTION('isArtikelNrName':U, cArtikel ).
  277. IF lJa THEN DO:
  278. DELETE tBilder.
  279. NEXT.
  280. END.
  281. END.
  282. cStrichcode = ''.
  283. DO ii = 1 TO LENGTH(cArtikel):
  284. IF SUBSTRING(cArtikel,ii,01) >= '0' AND
  285. SUBSTRING(cArtikel,ii,01) <= '9' THEN DO:
  286. cStrichcode = cStrichcode + SUBSTRING(cArtikel,ii,01).
  287. NEXT.
  288. END.
  289. IF SUBSTRING(cArtikel,ii,01) >= 'A' AND
  290. SUBSTRING(cArtikel,ii,01) <= 'z' THEN DO:
  291. cStrichcode = cStrichcode + SUBSTRING(cArtikel,ii,01).
  292. NEXT.
  293. END.
  294. LEAVE.
  295. END.
  296. iRecid = ?.
  297. FOR EACH Artst NO-LOCK
  298. WHERE Artst.Firma = '1000'
  299. AND Artst.Strichcode = cStrichcode:
  300. iRecid = RECID(Artst).
  301. ASSIGN tBilder.iArtnr = Artst.Artnr
  302. tBilder.iInhalt = Artst.Inhalt
  303. tBilder.iJahr = Artst.Jahr
  304. tBilder.iRecid = iRecid.
  305. LEAVE.
  306. END.
  307. IF iRecid <> ? THEN NEXT.
  308. FOR EACH Artlief NO-LOCK
  309. WHERE Artlief.Firma = '1000'
  310. AND Artlief.Strichcode_KGeb = cStrichcode,
  311. FIRST Artst NO-LOCK OF ArtLief:
  312. iRecid = RECID(Artst).
  313. ASSIGN tBilder.iArtnr = ArtLief.Artnr
  314. tBilder.iInhalt = ArtLief.Inhalt
  315. tBilder.iJahr = ArtLief.Jahr
  316. tBilder.iRecid = iRecid.
  317. END.
  318. IF iRecid <> ? THEN NEXT.
  319. FOR EACH Artlief NO-LOCK
  320. WHERE Artlief.Firma = '1000'
  321. AND Artlief.Strichcode_VGeb = cStrichcode,
  322. FIRST Artst NO-LOCK OF ArtLief:
  323. iRecid = RECID(Artst).
  324. ASSIGN tBilder.iArtnr = ArtLief.Artnr
  325. tBilder.iInhalt = ArtLief.Inhalt
  326. tBilder.iJahr = ArtLief.Jahr
  327. tBilder.iRecid = iRecid.
  328. END.
  329. IF iRecid <> ? THEN NEXT.
  330. FOR EACH Artlief NO-LOCK
  331. WHERE Artlief.Firma = '1000'
  332. AND Artlief.Strichcode_GGeb = cStrichcode,
  333. FIRST Artst NO-LOCK OF ArtLief:
  334. iRecid = RECID(Artst).
  335. ASSIGN tBilder.iArtnr = ArtLief.Artnr
  336. tBilder.iInhalt = ArtLief.Inhalt
  337. tBilder.iJahr = ArtLief.Jahr
  338. tBilder.iRecid = iRecid.
  339. END.
  340. IF iRecid <> ? THEN NEXT.
  341. END.
  342. FOR EACH tBilder
  343. WHERE tBilder.iArtnr > 0:
  344. FIND Artst NO-LOCK WHERE RECID(Artst) = tBilder.iRecid NO-ERROR.
  345. IF NOT AVAILABLE Artst THEN NEXT.
  346. IF Artst.Res_c2 <> '' THEN DO:
  347. DELETE tBilder.
  348. NEXT.
  349. END.
  350. END.
  351. SESSION:SET-WAIT-STATE('').
  352. CREATE QUERY hQuery.
  353. hQuery:SET-BUFFERS( TEMP-TABLE tBilder:DEFAULT-BUFFER-HANDLE ).
  354. hQuery:QUERY-PREPARE('FOR EACH tBilder BY tBilder.iArtnr DESCENDING').
  355. hQuery:QUERY-OPEN().
  356. hQuery:GET-FIRST().
  357. IF NOT hQuery:QUERY-OFF-END THEN RUN LOAD_PICTURE ( RECID(tBilder) ).
  358. END.
  359. /* _UIB-CODE-BLOCK-END */
  360. &ANALYZE-RESUME
  361. &Scoped-define SELF-NAME Btn_Ende
  362. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Ende wBilder
  363. ON CHOOSE OF Btn_Ende IN FRAME fMain /* schliessen */
  364. DO:
  365. RUN ENDE.
  366. END.
  367. /* _UIB-CODE-BLOCK-END */
  368. &ANALYZE-RESUME
  369. &Scoped-define SELF-NAME Btn_Next
  370. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Next wBilder
  371. ON CHOOSE OF Btn_Next IN FRAME fMain /* vorwärts */
  372. DO:
  373. RUN NEXT_PICTURE.
  374. END.
  375. /* _UIB-CODE-BLOCK-END */
  376. &ANALYZE-RESUME
  377. &Scoped-define SELF-NAME Btn_OK
  378. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK wBilder
  379. ON CHOOSE OF Btn_OK IN FRAME fMain /* Bestätigen */
  380. DO:
  381. RUN BESTAETIGUNG ( RECID(tBilder) ).
  382. END.
  383. /* _UIB-CODE-BLOCK-END */
  384. &ANALYZE-RESUME
  385. &Scoped-define SELF-NAME Btn_Prev
  386. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Prev wBilder
  387. ON CHOOSE OF Btn_Prev IN FRAME fMain /* zurück */
  388. DO:
  389. RUN PREV_PICTURE.
  390. END.
  391. /* _UIB-CODE-BLOCK-END */
  392. &ANALYZE-RESUME
  393. &Scoped-define SELF-NAME F_Artnr
  394. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr wBilder
  395. ON ALT-F OF F_Artnr IN FRAME fMain /* Artikel */
  396. DO:
  397. DEF VAR iRecid AS RECID NO-UNDO.
  398. RUN g-suchen-artikel.w ( '', OUTPUT iRecid) NO-ERROR.
  399. IF iRecid = ? OR
  400. iRecid = 0 THEN RETURN NO-APPLY.
  401. FIND Artst NO-LOCK WHERE RECID(Artst) = iRecid.
  402. ASSIGN tBilder.iArtnr = Artst.Artnr
  403. tBilder.iInhalt = Artst.Artnr
  404. tBilder.iJahr = Artst.Artnr
  405. tBilder.iRecid = RECID(Artst).
  406. RUN LOAD_PICTURE ( RECID(tBilder) ).
  407. RETURN NO-APPLY.
  408. END.
  409. /* _UIB-CODE-BLOCK-END */
  410. &ANALYZE-RESUME
  411. &Scoped-define SELF-NAME F_Jahr
  412. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Jahr wBilder
  413. ON LEAVE OF F_Jahr IN FRAME fMain /* / */
  414. DO:
  415. DO WITH FRAME {&FRAME-NAME}:
  416. ASSIGN {&List-6}.
  417. FIND Artst NO-LOCK
  418. WHERE Artst.Firma = Firma
  419. AND Artst.Artnr = F_Artnr
  420. AND Artst.Inhalt = F_Inhalt
  421. AND Artst.Jahr = F_Jahr NO-ERROR.
  422. IF NOT AVAILABLE Artst THEN DO:
  423. MESSAGE 'ungültige Artikelnummer' VIEW-AS ALERT-BOX.
  424. APPLY 'ENTRY' TO F_Artnr.
  425. RETURN NO-APPLY.
  426. END.
  427. FIND FIRST Artbez NO-LOCK OF Artst.
  428. F_Bez = TRIM(Artbez.Bez1 + ' ' + Artbez.Bez2).
  429. DISPLAY {&List-6}.
  430. END.
  431. END.
  432. /* _UIB-CODE-BLOCK-END */
  433. &ANALYZE-RESUME
  434. &UNDEFINE SELF-NAME
  435. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wBilder
  436. /* *************************** Main Block *************************** */
  437. { incl/winmainblock.i }
  438. {src/adm2/windowmn.i}
  439. /* _UIB-CODE-BLOCK-END */
  440. &ANALYZE-RESUME
  441. /* ********************** Internal Procedures *********************** */
  442. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects wBilder _ADM-CREATE-OBJECTS
  443. PROCEDURE adm-create-objects :
  444. /*------------------------------------------------------------------------------
  445. Purpose: Create handles for all SmartObjects used in this procedure.
  446. After SmartObjects are initialized, then SmartLinks are added.
  447. Parameters: <none>
  448. ------------------------------------------------------------------------------*/
  449. END PROCEDURE.
  450. /* _UIB-CODE-BLOCK-END */
  451. &ANALYZE-RESUME
  452. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BESTAETIGUNG wBilder
  453. PROCEDURE BESTAETIGUNG :
  454. /*------------------------------------------------------------------------------
  455. Purpose:
  456. Parameters: <none>
  457. Notes:
  458. ------------------------------------------------------------------------------*/
  459. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  460. DEF VAR cNeuerName AS CHAR NO-UNDO.
  461. DEF VAR cAlterName AS CHAR NO-UNDO.
  462. DO WITH FRAME {&FRAME-NAME}:
  463. ASSIGN {&List-6}.
  464. END.
  465. FIND btBilder WHERE RECID(btBilder) = ipRecid.
  466. ASSIGN btBilder.iArtnr = F_Artnr
  467. btBilder.iInhalt = F_Inhalt
  468. btBilder.iJahr = F_Jahr.
  469. REPEAT TRANSACTION:
  470. FIND Artst
  471. WHERE Artst.Firma = Firma
  472. AND Artst.Artnr = F_Artnr
  473. AND Artst.Inhalt = F_Inhalt
  474. AND Artst.Jahr = F_Jahr.
  475. Artst.Res_c2 = 'Ja'.
  476. RELEASE Artst.
  477. LEAVE.
  478. END.
  479. cNeuerName = cDefPath
  480. + STRING(F_Artnr ,'999999')
  481. + STRING(F_Inhalt,'9999')
  482. + STRING(F_Jahr ,'9999')
  483. + '.'
  484. + btBilder.cExt.
  485. cAlterName = cDefPath
  486. + btBilder.cDatei.
  487. IF SEARCH(cNeuerName) = ? THEN OS-COPY VALUE(cAlterName) VALUE(cNeuerName).
  488. IF SEARCH(cNeuerName) <> ? THEN OS-DELETE VALUE(cAlterName).
  489. APPLY 'ENTRY' TO F_Artnr.
  490. RETURN NO-APPLY.
  491. END PROCEDURE.
  492. /* _UIB-CODE-BLOCK-END */
  493. &ANALYZE-RESUME
  494. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage wBilder
  495. PROCEDURE changePage :
  496. /*------------------------------------------------------------------------------
  497. Purpose: Super Override
  498. Parameters:
  499. Notes:
  500. ------------------------------------------------------------------------------*/
  501. RUN SUPER.
  502. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  503. CASE AktSeite:
  504. WHEN 1 THEN DO:
  505. /* RUN addLink ( hAktionen , 'TableIO':U , h_v-auftr ). */
  506. /* RUN addLink ( hAktionen , 'Navigation':U , h_d-auftr ). */
  507. /* RUN setButtons IN hAktionen ( 'initial-TableIo' ) NO-ERROR. */
  508. END.
  509. WHEN 2 THEN DO:
  510. END.
  511. END CASE.
  512. RUN ENTRY_CURSOR.
  513. END PROCEDURE.
  514. /* _UIB-CODE-BLOCK-END */
  515. &ANALYZE-RESUME
  516. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI wBilder _DEFAULT-DISABLE
  517. PROCEDURE disable_UI :
  518. /*------------------------------------------------------------------------------
  519. Purpose: DISABLE the User Interface
  520. Parameters: <none>
  521. Notes: Here we clean-up the user-interface by deleting
  522. dynamic widgets we have created and/or hide
  523. frames. This procedure is usually called when
  524. we are ready to "clean-up" after running.
  525. ------------------------------------------------------------------------------*/
  526. /* Delete the WINDOW we created */
  527. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wBilder)
  528. THEN DELETE WIDGET wBilder.
  529. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  530. END PROCEDURE.
  531. /* _UIB-CODE-BLOCK-END */
  532. &ANALYZE-RESUME
  533. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject wBilder
  534. PROCEDURE enableObject :
  535. /*------------------------------------------------------------------------------
  536. Purpose: Super Override
  537. Parameters:
  538. Notes:
  539. ------------------------------------------------------------------------------*/
  540. { incl/winenableobject.i }
  541. RUN SUPER.
  542. /* Code placed here will execute AFTER standard behavior. */
  543. END PROCEDURE.
  544. /* _UIB-CODE-BLOCK-END */
  545. &ANALYZE-RESUME
  546. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI wBilder _DEFAULT-ENABLE
  547. PROCEDURE enable_UI :
  548. /*------------------------------------------------------------------------------
  549. Purpose: ENABLE the User Interface
  550. Parameters: <none>
  551. Notes: Here we display/view/enable the widgets in the
  552. user-interface. In addition, OPEN all queries
  553. associated with each FRAME and BROWSE.
  554. These statements here are based on the "Other
  555. Settings" section of the widget Property Sheets.
  556. ------------------------------------------------------------------------------*/
  557. DISPLAY F_Pfad F_Artnr F_Inhalt F_Jahr F_Bez
  558. WITH FRAME fMain IN WINDOW wBilder.
  559. ENABLE Bild F_Pfad Btn_Bilder Btn_Ende F_Artnr F_Inhalt F_Jahr F_Bez Btn_OK
  560. Btn_Prev Btn_Next
  561. WITH FRAME fMain IN WINDOW wBilder.
  562. {&OPEN-BROWSERS-IN-QUERY-fMain}
  563. VIEW wBilder.
  564. END PROCEDURE.
  565. /* _UIB-CODE-BLOCK-END */
  566. &ANALYZE-RESUME
  567. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE wBilder
  568. PROCEDURE ENDE :
  569. /*------------------------------------------------------------------------------
  570. Purpose:
  571. Parameters: <none>
  572. Notes:
  573. ------------------------------------------------------------------------------*/
  574. IF VALID-HANDLE ( hQuery ) THEN DO:
  575. IF hQuery:QUERY-OPEN THEN hQuery:QUERY-CLOSE().
  576. DELETE OBJECT hQuery.
  577. END.
  578. { incl/winende.i }
  579. END PROCEDURE.
  580. /* _UIB-CODE-BLOCK-END */
  581. &ANALYZE-RESUME
  582. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR wBilder
  583. PROCEDURE ENTRY_CURSOR :
  584. /*------------------------------------------------------------------------------
  585. Purpose:
  586. Parameters: <none>
  587. Notes:
  588. ------------------------------------------------------------------------------*/
  589. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  590. FMutFlag = DYNAMIC-FUNCTION('getMutflag':U, INPUT Progname) NO-ERROR.
  591. CASE AktSeite:
  592. /* WHEN 1 THEN DO: */
  593. /* IF FMutFlag THEN RUN applyEntry IN h_v- ( INPUT ? ). */
  594. /* ELSE RUN applyEntry IN h_b- ( INPUT ? ). */
  595. /* END. */
  596. /* WHEN 1 THEN RUN applyEntry IN h_v-adresse ( INPUT ? ). */
  597. /* WHEN 2 THEN RUN applyEntry IN h_f-adrkomm ( INPUT ? ). */
  598. /* WHEN 3 THEN RUN applyEntry IN h_b-auftbb ( INPUT ? ). */
  599. /* WHEN 4 THEN RUN applyEntry IN h_b-aufdet ( INPUT ? ). */
  600. /* WHEN 5 THEN RUN applyEntry IN h_b-aufstreu ( INPUT ? ). */
  601. /* WHEN 6 THEN RUN applyEntry IN h_b-auffak ( INPUT ? ). */
  602. /* WHEN 7 THEN RUN applyEntry IN h_b-position ( INPUT ? ). */
  603. END CASE.
  604. RETURN NO-APPLY.
  605. END PROCEDURE.
  606. /* _UIB-CODE-BLOCK-END */
  607. &ANALYZE-RESUME
  608. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject wBilder
  609. PROCEDURE exitObject :
  610. /*------------------------------------------------------------------------------
  611. Purpose: Window-specific override of this procedure which destroys
  612. its contents and itself.
  613. Notes:
  614. ------------------------------------------------------------------------------*/
  615. RUN ENDE.
  616. RETURN NO-APPLY.
  617. END PROCEDURE.
  618. /* _UIB-CODE-BLOCK-END */
  619. &ANALYZE-RESUME
  620. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject wBilder
  621. PROCEDURE initializeObject :
  622. /*------------------------------------------------------------------------------
  623. Purpose: Super Override
  624. Parameters:
  625. Notes:
  626. ------------------------------------------------------------------------------*/
  627. DEF VAR cFwPath AS CHAR NO-UNDO.
  628. GET-KEY-VALUE SECTION 'eShop'
  629. KEY 'Bildpfad'
  630. VALUE cFwPath.
  631. IF cFwPath = ? THEN cFwPath = ''.
  632. F_Pfad = cFwPath.
  633. RUN SUPER.
  634. { incl/wininitializeobject.i }
  635. END PROCEDURE.
  636. /* _UIB-CODE-BLOCK-END */
  637. &ANALYZE-RESUME
  638. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOAD_PICTURE wBilder
  639. PROCEDURE LOAD_PICTURE :
  640. /*------------------------------------------------------------------------------
  641. Purpose:
  642. Parameters: <none>
  643. Notes:
  644. ------------------------------------------------------------------------------*/
  645. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  646. FIND btBilder WHERE RECID(btBilder) = ipRecid.
  647. DO WITH FRAME {&FRAME-NAME}:
  648. IF btBilder.iArtnr > 0 THEN DO:
  649. FIND Artst NO-LOCK WHERE RECID(Artst) = btBilder.iRecid NO-ERROR.
  650. ASSIGN F_Artnr = Artst.Artnr
  651. F_Inhalt = Artst.Inhalt
  652. F_Jahr = Artst.Jahr.
  653. FIND FIRST Artbez NO-LOCK OF Artst.
  654. F_Bez = TRIM(Artbez.Bez1 + ' ' + Artbez.Bez2).
  655. END.
  656. ELSE DO:
  657. ASSIGN F_Artnr = 0
  658. F_Inhalt = 0
  659. F_Jahr = 0
  660. F_Bez = ''.
  661. END.
  662. DISPLAY {&List-6}.
  663. Bild:LOAD-IMAGE(btBilder.cName).
  664. APPLY 'ENTRY' TO F_Artnr.
  665. END.
  666. END PROCEDURE.
  667. /* _UIB-CODE-BLOCK-END */
  668. &ANALYZE-RESUME
  669. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXT_PICTURE wBilder
  670. PROCEDURE NEXT_PICTURE :
  671. /*------------------------------------------------------------------------------
  672. Purpose:
  673. Parameters: <none>
  674. Notes:
  675. ------------------------------------------------------------------------------*/
  676. hQuery:GET-NEXT() NO-ERROR.
  677. IF hQuery:QUERY-OFF-END THEN DO:
  678. hQuery:GET-LAST().
  679. MESSAGE 'Letztes Bild' VIEW-AS ALERT-BOX.
  680. RETURN.
  681. END.
  682. RUN LOAD_PICTURE ( RECID(tBilder) ).
  683. END PROCEDURE.
  684. /* _UIB-CODE-BLOCK-END */
  685. &ANALYZE-RESUME
  686. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREV_PICTURE wBilder
  687. PROCEDURE PREV_PICTURE :
  688. /*------------------------------------------------------------------------------
  689. Purpose:
  690. Parameters: <none>
  691. Notes:
  692. ------------------------------------------------------------------------------*/
  693. hQuery:GET-PREV() NO-ERROR.
  694. IF hQuery:QUERY-OFF-END THEN DO:
  695. hQuery:GET-FIRST().
  696. MESSAGE 'Erstes Bild' VIEW-AS ALERT-BOX.
  697. RETURN.
  698. END.
  699. RUN LOAD_PICTURE ( RECID(tBilder) ).
  700. END PROCEDURE.
  701. /* _UIB-CODE-BLOCK-END */
  702. &ANALYZE-RESUME
  703. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SEITENWECHSEL wBilder
  704. PROCEDURE SEITENWECHSEL :
  705. /*------------------------------------------------------------------------------
  706. Purpose:
  707. Parameters: <none>
  708. Notes:
  709. ------------------------------------------------------------------------------*/
  710. { incl/winseitenwechsel.i }
  711. END PROCEDURE.
  712. /* _UIB-CODE-BLOCK-END */
  713. &ANALYZE-RESUME
  714. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage wBilder
  715. PROCEDURE selectPage :
  716. /*------------------------------------------------------------------------------
  717. Purpose: Super Override
  718. Parameters:
  719. Notes:
  720. ------------------------------------------------------------------------------*/
  721. DEF INPUT PARAMETER piPageNum AS INT NO-UNDO.
  722. DEF VAR FMutFlag AS LOG NO-UNDO.
  723. DEF VAR MutProg AS CHAR NO-UNDO.
  724. FMutFlag = DYNAMIC-FUNCTION ('getMutflag':U, INPUT Progname) NO-ERROR.
  725. IF FMutFlag THEN RETURN NO-APPLY.
  726. CASE piPageNum:
  727. END CASE.
  728. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  729. CASE AktSeite:
  730. WHEN 1 THEN DO:
  731. /* RUN removeLink ( hAktionen , 'TableIO':U , h_v-auftr ). */
  732. /* RUN removeLink ( hAktionen , 'Navigation':U , h_d-auftr ). */
  733. END.
  734. END CASE.
  735. RUN SUPER( INPUT piPageNum).
  736. END PROCEDURE.
  737. /* _UIB-CODE-BLOCK-END */
  738. &ANALYZE-RESUME
  739. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR wBilder
  740. PROCEDURE TOOLBAR :
  741. /*------------------------------------------------------------------------------
  742. Purpose:
  743. Parameters: <none>
  744. Notes:
  745. ------------------------------------------------------------------------------*/
  746. { incl/wintoolbar.i }
  747. END PROCEDURE.
  748. /* _UIB-CODE-BLOCK-END */
  749. &ANALYZE-RESUME
  750. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject wBilder
  751. PROCEDURE viewObject :
  752. /*------------------------------------------------------------------------------
  753. Purpose: Super Override
  754. Parameters:
  755. Notes:
  756. ------------------------------------------------------------------------------*/
  757. RUN SUPER.
  758. RUN ENTRY_CURSOR.
  759. END PROCEDURE.
  760. /* _UIB-CODE-BLOCK-END */
  761. &ANALYZE-RESUME
  762. /* ************************ Function Implementations ***************** */
  763. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getProgname wBilder
  764. FUNCTION getProgname RETURNS CHARACTER
  765. ( /* parameter-definitions */ ) :
  766. /*------------------------------------------------------------------------------
  767. Purpose:
  768. Notes:
  769. ------------------------------------------------------------------------------*/
  770. RETURN Progname.
  771. END FUNCTION.
  772. /* _UIB-CODE-BLOCK-END */
  773. &ANALYZE-RESUME
  774. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION isArtikelNrName wBilder
  775. FUNCTION isArtikelNrName RETURNS LOGICAL
  776. ( ipcArtikel AS CHAR ) :
  777. /*------------------------------------------------------------------------------
  778. Purpose:
  779. Notes:
  780. ------------------------------------------------------------------------------*/
  781. DEF VAR iArtnr AS INT NO-UNDO.
  782. DEF VAR iInhalt AS INT NO-UNDO.
  783. DEF VAR iJahr AS INT NO-UNDO.
  784. iArtnr = INTEGER(SUBSTRING(ipcArtikel,01,06)) NO-ERROR.
  785. IF iArtnr = 0 OR
  786. iArtnr = ? THEN RETURN FALSE.
  787. iInhalt = INTEGER(SUBSTRING(ipcArtikel,07,04)) NO-ERROR.
  788. IF iInhalt = 0 OR
  789. iInhalt = ? THEN RETURN FALSE.
  790. iJahr = INTEGER(SUBSTRING(ipcArtikel,11,04)) NO-ERROR.
  791. IF iJahr = 0 OR
  792. iJahr = ? THEN RETURN FALSE.
  793. FIND Artst NO-LOCK
  794. WHERE Artst.Firma = Firma
  795. AND Artst.Artnr = iArtnr
  796. AND Artst.Inhalt = iInhalt
  797. AND Artst.Jahr = iJahr NO-ERROR.
  798. IF NOT AVAILABLE Artst THEN RETURN FALSE.
  799. IF Artst.Res_c2 = 'Ja' THEN RETURN TRUE.
  800. RETURN FALSE.
  801. END FUNCTION.
  802. /* _UIB-CODE-BLOCK-END */
  803. &ANALYZE-RESUME