g-artikelkarte.w 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v9r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. &Scoped-define FRAME-NAME gArtikelkarte
  8. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gArtikelkarte
  9. /*------------------------------------------------------------------------
  10. File:
  11. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  12. Input Parameters:
  13. <none>
  14. Output Parameters:
  15. <none>
  16. Author:
  17. Created:
  18. ------------------------------------------------------------------------*/
  19. /* This .W file was created with the Progress AppBuilder. */
  20. /*----------------------------------------------------------------------*/
  21. /* Create an unnamed pool to store all the widgets created
  22. by this procedure. This is a good default which assures
  23. that this procedure's triggers and internal procedures
  24. will execute in this procedure's storage, and that proper
  25. cleanup will occur on deletion of the procedure. */
  26. CREATE WIDGET-POOL.
  27. /* *************************** Definitions ************************** */
  28. /* Parameters Definitions --- */
  29. /* Local Variable Definitions --- */
  30. DEF VAR MaxPage AS INT NO-UNDO.
  31. DEF VAR AktSeite AS INT NO-UNDO.
  32. DEF VAR FMutFlag AS LOG NO-UNDO.
  33. DEF VAR Firma AS CHAR NO-UNDO.
  34. DEF VAR Sprcd AS INT NO-UNDO.
  35. DEF VAR xRecid AS RECID NO-UNDO.
  36. DEF STREAM Inp_Stream.
  37. DEF STREAM Out_Stream.
  38. DEF TEMP-TABLE TArtst FIELD Artnr AS INT
  39. FIELD Inhalt AS INT
  40. FIELD Jahr AS INT
  41. FIELD Alkohol AS DEC
  42. FIELD Gebinde AS CHAR
  43. FIELD Bez1 AS CHAR
  44. FIELD Bez2 AS CHAR
  45. FIELD Zustext AS CHAR
  46. INDEX TArtst-k1 IS PRIMARY
  47. Artnr
  48. Inhalt
  49. Jahr.
  50. DEF TEMP-TABLE TExcel FIELD Zeile AS INT
  51. FIELD KeyWort AS CHAR
  52. FIELD Felder AS CHAR EXTENT 10.
  53. /* _UIB-CODE-BLOCK-END */
  54. &ANALYZE-RESUME
  55. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  56. /* ******************** Preprocessor Definitions ******************** */
  57. &Scoped-define PROCEDURE-TYPE SmartDialog
  58. &Scoped-define DB-AWARE no
  59. &Scoped-define ADM-CONTAINER DIALOG-BOX
  60. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  61. /* Name of first Frame and/or Browse and/or first Query */
  62. &Scoped-define FRAME-NAME gArtikelkarte
  63. &Scoped-define BROWSE-NAME Br_Artikel
  64. /* Internal Tables (found by Frame, Query & Browse Queries) */
  65. &Scoped-define INTERNAL-TABLES Artst Artbez
  66. /* Definitions for BROWSE Br_Artikel */
  67. &Scoped-define FIELDS-IN-QUERY-Br_Artikel Artst.Artnr Artst.Inhalt ~
  68. Artst.Jahr Artst.Bez
  69. &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Artikel
  70. &Scoped-define OPEN-QUERY-Br_Artikel OPEN QUERY Br_Artikel FOR EACH Artst NO-LOCK, ~
  71. EACH Artbez OF Artst NO-LOCK INDEXED-REPOSITION.
  72. &Scoped-define TABLES-IN-QUERY-Br_Artikel Artst Artbez
  73. &Scoped-define FIRST-TABLE-IN-QUERY-Br_Artikel Artst
  74. &Scoped-define SECOND-TABLE-IN-QUERY-Br_Artikel Artbez
  75. /* Definitions for DIALOG-BOX gArtikelkarte */
  76. &Scoped-define SELF-NAME gArtikelkarte
  77. &Scoped-define OPEN-QUERY-gArtikelkarte /*------------------------------------------------------------------------------ Purpose: Parameters: <none> Notes: ------------------------------------------------------------------------------*/ SESSION:SET-WAIT-STATE('GENERAL'). OPEN QUERY {&BROWSE-NAME} FOR EACH Artst USE-INDEX Artst-k3 WHERE Artst.Firma = Firma AND Artst.Aktiv = TRUE NO-LOCK, ~
  78. FIRST Artbez USE-INDEX Artbez-k1 WHERE Artbez.Firma = Artst.Firma AND Artbez.Artnr = Artst.Artnr AND Artbez.Inhalt = Artst.Inhalt AND Artbez.Jahr = Artst.Jahr AND Artbez.Sprcd = Sprcd AND Artbez.Zustext[01] <> '' NO-LOCK . SESSION:SET-WAIT-STATE(''). BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1). RUN ANZEIGE. END PROCEDURE.
  79. &Scoped-define TABLES-IN-QUERY-gArtikelkarte Artst Artbez
  80. &Scoped-define FIRST-TABLE-IN-QUERY-gArtikelkarte Artst
  81. &Scoped-define SECOND-TABLE-IN-QUERY-gArtikelkarte Artbez
  82. /* Standard List Definitions */
  83. &Scoped-Define ENABLED-OBJECTS Br_Artikel E_Artikel F_Suchbe S_Artikel ~
  84. T_NeueSeite Btn_OK Btn_Cancel RECT-24
  85. &Scoped-Define DISPLAYED-OBJECTS E_Artikel F_Suchbe S_Artikel T_NeueSeite
  86. /* Custom List Definitions */
  87. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  88. &Scoped-define List-6 E_Artikel T_NeueSeite
  89. /* _UIB-PREPROCESSOR-BLOCK-END */
  90. &ANALYZE-RESUME
  91. /* *********************** Control Definitions ********************** */
  92. /* Define a dialog box */
  93. /* Definitions of the field level widgets */
  94. DEFINE BUTTON Btn_Cancel
  95. LABEL "&abbrechen"
  96. SIZE 14 BY 1.
  97. DEFINE BUTTON Btn_OK
  98. IMAGE-UP FILE "grafik/results%.ico":U
  99. IMAGE-INSENSITIVE FILE "grafik/results%.ico":U
  100. LABEL "Excel"
  101. SIZE 7 BY 1.71.
  102. DEFINE VARIABLE E_Artikel AS CHARACTER
  103. VIEW-AS EDITOR SCROLLBAR-VERTICAL LARGE
  104. SIZE 56 BY 7.62
  105. BGCOLOR 15 FONT 6 NO-UNDO.
  106. DEFINE VARIABLE F_Suchbe AS CHARACTER FORMAT "X(256)":U
  107. LABEL "Bezeichnung"
  108. VIEW-AS FILL-IN
  109. SIZE 30 BY 1 NO-UNDO.
  110. DEFINE RECTANGLE RECT-24
  111. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  112. SIZE 119 BY 16.91.
  113. DEFINE VARIABLE S_Artikel AS CHARACTER
  114. VIEW-AS SELECTION-LIST SINGLE SORT SCROLLBAR-VERTICAL
  115. SIZE 56 BY 7.62
  116. BGCOLOR 15 FONT 6 NO-UNDO.
  117. DEFINE VARIABLE T_NeueSeite AS LOGICAL INITIAL no
  118. LABEL "neue Seite nach jedem Artikel"
  119. VIEW-AS TOGGLE-BOX
  120. SIZE 54 BY 1 NO-UNDO.
  121. /* Query definitions */
  122. &ANALYZE-SUSPEND
  123. DEFINE QUERY Br_Artikel FOR
  124. Artst,
  125. Artbez SCROLLING.
  126. DEFINE QUERY gArtikelkarte FOR
  127. Artst,
  128. Artbez SCROLLING.
  129. &ANALYZE-RESUME
  130. /* Browse definitions */
  131. DEFINE BROWSE Br_Artikel
  132. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Artikel gArtikelkarte _STRUCTURED
  133. QUERY Br_Artikel NO-LOCK DISPLAY
  134. Artst.Artnr FORMAT "999999":U WIDTH 8
  135. Artst.Inhalt FORMAT "9999":U WIDTH 6
  136. Artst.Jahr FORMAT "9999":U WIDTH 5
  137. Artst.Bez COLUMN-LABEL "Bezeichnung" FORMAT "x(30)":U
  138. /* _UIB-CODE-BLOCK-END */
  139. &ANALYZE-RESUME
  140. WITH NO-ROW-MARKERS SEPARATORS SIZE 56 BY 6.71
  141. BGCOLOR 15 .
  142. /* ************************ Frame Definitions *********************** */
  143. DEFINE FRAME gArtikelkarte
  144. Br_Artikel AT ROW 1.48 COL 3
  145. E_Artikel AT ROW 1.48 COL 63 NO-LABEL NO-TAB-STOP
  146. F_Suchbe AT ROW 8.52 COL 23 COLON-ALIGNED
  147. S_Artikel AT ROW 10 COL 3 NO-LABEL
  148. T_NeueSeite AT ROW 10 COL 63
  149. Btn_OK AT ROW 16.05 COL 86.2
  150. Btn_Cancel AT ROW 16.24 COL 101
  151. RECT-24 AT ROW 1.24 COL 2
  152. "Keine Selektion = Alle Artikel" VIEW-AS TEXT
  153. SIZE 55.2 BY 1 AT ROW 11.67 COL 63
  154. FONT 6
  155. SPACE(3.79) SKIP(5.70)
  156. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  157. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  158. TITLE "Artikelkarte".
  159. /* *********************** Procedure Settings ************************ */
  160. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  161. /* Settings for THIS-PROCEDURE
  162. Type: SmartDialog
  163. Allow: Basic,Browse,DB-Fields,Query,Smart
  164. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  165. Design Page: 1
  166. Other Settings: COMPILE
  167. */
  168. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  169. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gArtikelkarte
  170. /* ************************* Included-Libraries *********************** */
  171. {src/adm2/containr.i}
  172. /* _UIB-CODE-BLOCK-END */
  173. &ANALYZE-RESUME
  174. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  175. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  176. /* SETTINGS FOR DIALOG-BOX gArtikelkarte
  177. */
  178. /* BROWSE-TAB Br_Artikel 1 gArtikelkarte */
  179. ASSIGN
  180. FRAME gArtikelkarte:SCROLLABLE = FALSE
  181. FRAME gArtikelkarte:HIDDEN = TRUE.
  182. /* SETTINGS FOR EDITOR E_Artikel IN FRAME gArtikelkarte
  183. 6 */
  184. ASSIGN
  185. E_Artikel:READ-ONLY IN FRAME gArtikelkarte = TRUE.
  186. /* SETTINGS FOR TOGGLE-BOX T_NeueSeite IN FRAME gArtikelkarte
  187. 6 */
  188. /* _RUN-TIME-ATTRIBUTES-END */
  189. &ANALYZE-RESUME
  190. /* Setting information for Queries and Browse Widgets fields */
  191. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Artikel
  192. /* Query rebuild information for BROWSE Br_Artikel
  193. _TblList = "AnaDat.Artst,AnaDat.Artbez OF AnaDat.Artst"
  194. _Options = "NO-LOCK INDEXED-REPOSITION"
  195. _FldNameList[1] > AnaDat.Artst.Artnr
  196. "Artst.Artnr" ? ? "integer" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" ""
  197. _FldNameList[2] > AnaDat.Artst.Inhalt
  198. "Artst.Inhalt" ? ? "integer" ? ? ? ? ? ? no ? no no "6" yes no no "U" "" ""
  199. _FldNameList[3] > AnaDat.Artst.Jahr
  200. "Artst.Jahr" ? ? "integer" ? ? ? ? ? ? no ? no no "5" yes no no "U" "" ""
  201. _FldNameList[4] > AnaDat.Artst.Bez
  202. "Artst.Bez" "Bezeichnung" ? "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" ""
  203. _Query is NOT OPENED
  204. */ /* BROWSE Br_Artikel */
  205. &ANALYZE-RESUME
  206. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gArtikelkarte
  207. /* Query rebuild information for DIALOG-BOX gArtikelkarte
  208. _START_FREEFORM
  209. /*------------------------------------------------------------------------------
  210. Purpose:
  211. Parameters: <none>
  212. Notes:
  213. ------------------------------------------------------------------------------*/
  214. SESSION:SET-WAIT-STATE('GENERAL').
  215. OPEN QUERY {&BROWSE-NAME}
  216. FOR EACH Artst USE-INDEX Artst-k3
  217. WHERE Artst.Firma = Firma
  218. AND Artst.Aktiv = TRUE NO-LOCK,
  219. FIRST Artbez USE-INDEX Artbez-k1
  220. WHERE Artbez.Firma = Artst.Firma
  221. AND Artbez.Artnr = Artst.Artnr
  222. AND Artbez.Inhalt = Artst.Inhalt
  223. AND Artbez.Jahr = Artst.Jahr
  224. AND Artbez.Sprcd = Sprcd
  225. AND Artbez.Zustext[01] <> '' NO-LOCK .
  226. SESSION:SET-WAIT-STATE('').
  227. BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  228. RUN ANZEIGE.
  229. END PROCEDURE.
  230. _END_FREEFORM
  231. _Options = "SHARE-LOCK"
  232. _Query is NOT OPENED
  233. */ /* DIALOG-BOX gArtikelkarte */
  234. &ANALYZE-RESUME
  235. /* ************************ Control Triggers ************************ */
  236. &Scoped-define SELF-NAME gArtikelkarte
  237. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gArtikelkarte gArtikelkarte
  238. ON GO OF FRAME gArtikelkarte /* Artikelkarte */
  239. DO:
  240. /*
  241. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR.
  242. */
  243. END.
  244. /* _UIB-CODE-BLOCK-END */
  245. &ANALYZE-RESUME
  246. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gArtikelkarte gArtikelkarte
  247. ON WINDOW-CLOSE OF FRAME gArtikelkarte /* Artikelkarte */
  248. DO:
  249. RUN ENDE.
  250. RETURN NO-APPLY.
  251. END.
  252. /* _UIB-CODE-BLOCK-END */
  253. &ANALYZE-RESUME
  254. &Scoped-define BROWSE-NAME Br_Artikel
  255. &Scoped-define SELF-NAME Br_Artikel
  256. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Artikel gArtikelkarte
  257. ON LEFT-MOUSE-DBLCLICK OF Br_Artikel IN FRAME gArtikelkarte
  258. DO:
  259. RUN SELEKTARTIKEL.
  260. END.
  261. /* _UIB-CODE-BLOCK-END */
  262. &ANALYZE-RESUME
  263. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Artikel gArtikelkarte
  264. ON RETURN OF Br_Artikel IN FRAME gArtikelkarte
  265. DO:
  266. RUN SELEKTARTIKEL.
  267. END.
  268. /* _UIB-CODE-BLOCK-END */
  269. &ANALYZE-RESUME
  270. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Artikel gArtikelkarte
  271. ON VALUE-CHANGED OF Br_Artikel IN FRAME gArtikelkarte
  272. DO:
  273. RUN ANZEIGE.
  274. END.
  275. /* _UIB-CODE-BLOCK-END */
  276. &ANALYZE-RESUME
  277. &Scoped-define SELF-NAME Btn_Cancel
  278. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gArtikelkarte
  279. ON CHOOSE OF Btn_Cancel IN FRAME gArtikelkarte /* abbrechen */
  280. DO:
  281. RUN ENDE.
  282. RETURN NO-APPLY.
  283. END.
  284. /* _UIB-CODE-BLOCK-END */
  285. &ANALYZE-RESUME
  286. &Scoped-define SELF-NAME Btn_OK
  287. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gArtikelkarte
  288. ON CHOOSE OF Btn_OK IN FRAME gArtikelkarte /* Excel */
  289. DO:
  290. DO WITH FRAME {&FRAME-NAME}:
  291. Btn_OK:SENSITIVE = FALSE.
  292. Btn_Cancel:SENSITIVE = FALSE.
  293. SESSION:SET-WAIT-STATE ('GENERAL').
  294. END.
  295. RUN REPORT.
  296. DO WITH FRAME {&FRAME-NAME}:
  297. Btn_OK:SENSITIVE = TRUE.
  298. Btn_Cancel:SENSITIVE = TRUE.
  299. SESSION:SET-WAIT-STATE('').
  300. END.
  301. RUN ENDE.
  302. RETURN NO-APPLY.
  303. END.
  304. /* _UIB-CODE-BLOCK-END */
  305. &ANALYZE-RESUME
  306. &Scoped-define SELF-NAME F_Suchbe
  307. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Suchbe gArtikelkarte
  308. ON VALUE-CHANGED OF F_Suchbe IN FRAME gArtikelkarte /* Bezeichnung */
  309. DO:
  310. F_Suchbe = SELF:SCREEN-VALUE.
  311. RUN OPEN_QUERY_ART.
  312. END.
  313. /* _UIB-CODE-BLOCK-END */
  314. &ANALYZE-RESUME
  315. &Scoped-define SELF-NAME S_Artikel
  316. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL S_Artikel gArtikelkarte
  317. ON DELETE-CHARACTER OF S_Artikel IN FRAME gArtikelkarte
  318. DO:
  319. SELF:DELETE(SELF:SCREEN-VALUE).
  320. END.
  321. /* _UIB-CODE-BLOCK-END */
  322. &ANALYZE-RESUME
  323. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL S_Artikel gArtikelkarte
  324. ON LEFT-MOUSE-DBLCLICK OF S_Artikel IN FRAME gArtikelkarte
  325. DO:
  326. SELF:DELETE(SELF:SCREEN-VALUE).
  327. END.
  328. /* _UIB-CODE-BLOCK-END */
  329. &ANALYZE-RESUME
  330. &UNDEFINE SELF-NAME
  331. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gArtikelkarte
  332. /* *************************** Main Block *************************** */
  333. MaxPage = 1.
  334. AktSeite = 1.
  335. Sprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR.
  336. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  337. F_Suchbe = ''.
  338. SESSION:DATA-ENTRY-RETURN = TRUE.
  339. SUBSCRIBE TO 'TOOLBAR' ANYWHERE.
  340. /* TRIGGERS ------------------------------------------------------ */
  341. ON 'END-ERROR':U OF F_Suchbe IN FRAME {&FRAME-NAME}
  342. DO:
  343. IF SELF:SCREEN-VALUE <> '' THEN DO:
  344. SELF:SCREEN-VALUE = ''.
  345. F_Suchbe = ''.
  346. RUN OPEN_QUERY_ART.
  347. APPLY 'ENTRY' TO SELF.
  348. RETURN NO-APPLY.
  349. END.
  350. ELSE DO:
  351. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  352. RETURN NO-APPLY.
  353. END.
  354. END.
  355. ON 'RETURN':U, 'TAB':U OF F_Suchbe IN FRAME {&FRAME-NAME}
  356. DO:
  357. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  358. RETURN NO-APPLY.
  359. END.
  360. ON 'ALT-F':U OF FRAME {&FRAME-NAME} ANYWHERE
  361. DO:
  362. F_Suchbe = ''.
  363. RUN 'g-such-artikkarte.w':U ( OUTPUT F_Suchbe ).
  364. IF F_Suchbe = '' THEN RETURN NO-APPLY.
  365. xRecid = INTEGER(ENTRY(1, F_Suchbe, CHR(01))).
  366. FIND Artst WHERE RECID(Artst) = xRecid NO-LOCK NO-ERROR.
  367. F_Suchbe = Artst.Bez.
  368. RUN OPEN_QUERY_ART.
  369. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  370. RETURN NO-APPLY.
  371. END.
  372. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE
  373. DO:
  374. RUN ENTRY_CURSOR.
  375. END.
  376. /* ------------------------------------------------------------------ */
  377. {src/adm2/dialogmn.i}
  378. /* _UIB-CODE-BLOCK-END */
  379. &ANALYZE-RESUME
  380. /* ********************** Internal Procedures *********************** */
  381. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gArtikelkarte _ADM-CREATE-OBJECTS
  382. PROCEDURE adm-create-objects :
  383. /*------------------------------------------------------------------------------
  384. Purpose: Create handles for all SmartObjects used in this procedure.
  385. After SmartObjects are initialized, then SmartLinks are added.
  386. Parameters: <none>
  387. ------------------------------------------------------------------------------*/
  388. END PROCEDURE.
  389. /* _UIB-CODE-BLOCK-END */
  390. &ANALYZE-RESUME
  391. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANZEIGE gArtikelkarte
  392. PROCEDURE ANZEIGE :
  393. /*------------------------------------------------------------------------------
  394. Purpose:
  395. Parameters: <none>
  396. Notes:
  397. ------------------------------------------------------------------------------*/
  398. DEF VAR i1 AS INT NO-UNDO.
  399. DEF VAR i2 AS INT NO-UNDO.
  400. DO WITH FRAME {&FRAME-NAME}:
  401. E_Artikel = ''.
  402. DISPLAY E_Artikel.
  403. IF NOT AVAILABLE Artst THEN RETURN.
  404. E_Artikel = Artbez.Bez1 + CHR(10).
  405. IF Artbez.Bez2 <> '' THEN E_Artikel = E_Artikel + Artbez.Bez2 + CHR(10).
  406. DO i2 = 10 TO 1 BY -1:
  407. IF Artbez.Zustext[i2] = '' THEN NEXT.
  408. LEAVE.
  409. END.
  410. DO i1 = 1 TO i2:
  411. E_Artikel = E_Artikel + CHR(10) + Artbez.Zustext[i1].
  412. END.
  413. DISPLAY E_Artikel.
  414. END.
  415. END PROCEDURE.
  416. /* _UIB-CODE-BLOCK-END */
  417. &ANALYZE-RESUME
  418. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage gArtikelkarte
  419. PROCEDURE changePage :
  420. /*------------------------------------------------------------------------------
  421. Purpose: Super Override
  422. Parameters:
  423. Notes:
  424. ------------------------------------------------------------------------------*/
  425. RUN SUPER.
  426. RUN ENTRY_CURSOR.
  427. END PROCEDURE.
  428. /* _UIB-CODE-BLOCK-END */
  429. &ANALYZE-RESUME
  430. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gArtikelkarte _DEFAULT-DISABLE
  431. PROCEDURE disable_UI :
  432. /*------------------------------------------------------------------------------
  433. Purpose: DISABLE the User Interface
  434. Parameters: <none>
  435. Notes: Here we clean-up the user-interface by deleting
  436. dynamic widgets we have created and/or hide
  437. frames. This procedure is usually called when
  438. we are ready to "clean-up" after running.
  439. ------------------------------------------------------------------------------*/
  440. /* Hide all frames. */
  441. HIDE FRAME gArtikelkarte.
  442. END PROCEDURE.
  443. /* _UIB-CODE-BLOCK-END */
  444. &ANALYZE-RESUME
  445. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gArtikelkarte
  446. PROCEDURE enableObject :
  447. /*------------------------------------------------------------------------------
  448. Purpose: Super Override
  449. Parameters:
  450. Notes:
  451. ------------------------------------------------------------------------------*/
  452. S_Artikel:DELIMITER IN FRAME {&FRAME-NAME} = CHR(01).
  453. RUN SUPER.
  454. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR.
  455. RUN OPEN_QUERY_ART.
  456. END PROCEDURE.
  457. /* _UIB-CODE-BLOCK-END */
  458. &ANALYZE-RESUME
  459. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gArtikelkarte _DEFAULT-ENABLE
  460. PROCEDURE enable_UI :
  461. /*------------------------------------------------------------------------------
  462. Purpose: ENABLE the User Interface
  463. Parameters: <none>
  464. Notes: Here we display/view/enable the widgets in the
  465. user-interface. In addition, OPEN all queries
  466. associated with each FRAME and BROWSE.
  467. These statements here are based on the "Other
  468. Settings" section of the widget Property Sheets.
  469. ------------------------------------------------------------------------------*/
  470. DISPLAY E_Artikel F_Suchbe S_Artikel T_NeueSeite
  471. WITH FRAME gArtikelkarte.
  472. ENABLE Br_Artikel E_Artikel F_Suchbe S_Artikel T_NeueSeite Btn_OK Btn_Cancel
  473. RECT-24
  474. WITH FRAME gArtikelkarte.
  475. VIEW FRAME gArtikelkarte.
  476. {&OPEN-BROWSERS-IN-QUERY-gArtikelkarte}
  477. END PROCEDURE.
  478. /* _UIB-CODE-BLOCK-END */
  479. &ANALYZE-RESUME
  480. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gArtikelkarte
  481. PROCEDURE ENDE :
  482. /*------------------------------------------------------------------------------
  483. Purpose:
  484. Parameters: <none>
  485. Notes:
  486. ------------------------------------------------------------------------------*/
  487. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  488. IF AktSeite > 1 THEN DO:
  489. RUN selectPage ( INPUT 1 ).
  490. RETURN NO-APPLY.
  491. END.
  492. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  493. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  494. RETURN NO-APPLY.
  495. END PROCEDURE.
  496. /* _UIB-CODE-BLOCK-END */
  497. &ANALYZE-RESUME
  498. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR gArtikelkarte
  499. PROCEDURE ENTRY_CURSOR :
  500. /*------------------------------------------------------------------------------
  501. Purpose:
  502. Parameters: <none>
  503. Notes:
  504. ------------------------------------------------------------------------------*/
  505. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  506. CASE AktSeite:
  507. WHEN 1 THEN APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  508. /* WHEN 2 THEN RUN applyEntry IN h_f-adrkomm ( INPUT ? ). */
  509. /* WHEN 3 THEN RUN applyEntry IN h_b-auftbb ( INPUT ? ). */
  510. /* WHEN 4 THEN RUN applyEntry IN h_b-aufdet ( INPUT ? ). */
  511. /* WHEN 5 THEN RUN applyEntry IN h_b-aufstreu ( INPUT ? ). */
  512. /* WHEN 6 THEN RUN applyEntry IN h_b-auffak ( INPUT ? ). */
  513. /* WHEN 7 THEN RUN applyEntry IN h_b-position ( INPUT ? ). */
  514. END CASE.
  515. RETURN NO-APPLY.
  516. END PROCEDURE.
  517. /* _UIB-CODE-BLOCK-END */
  518. &ANALYZE-RESUME
  519. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gArtikelkarte
  520. PROCEDURE exitObject :
  521. /*------------------------------------------------------------------------------
  522. Purpose: Super Override
  523. Parameters:
  524. Notes:
  525. ------------------------------------------------------------------------------*/
  526. RUN ENDE.
  527. RETURN NO-APPLY.
  528. END PROCEDURE.
  529. /* _UIB-CODE-BLOCK-END */
  530. &ANALYZE-RESUME
  531. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPEN_QUERY_ART gArtikelkarte
  532. PROCEDURE OPEN_QUERY_ART :
  533. /*------------------------------------------------------------------------------
  534. Purpose:
  535. Parameters: <none>
  536. Notes:
  537. ------------------------------------------------------------------------------*/
  538. SESSION:SET-WAIT-STATE('GENERAL').
  539. OPEN QUERY {&BROWSE-NAME}
  540. FOR EACH Artst USE-INDEX Artst-k3
  541. WHERE Artst.Firma = Firma
  542. AND Artst.Bez BEGINS F_Suchbe
  543. AND Artst.Aktiv = TRUE NO-LOCK,
  544. FIRST Artbez USE-INDEX Artbez-k1
  545. WHERE Artbez.Firma = Artst.Firma
  546. AND Artbez.Artnr = Artst.Artnr
  547. AND Artbez.Inhalt = Artst.Inhalt
  548. AND Artbez.Jahr = Artst.Jahr
  549. AND (Artbez.Zustext[01] <> '' OR
  550. Artbez.Zustext[02] <> '') NO-LOCK .
  551. SESSION:SET-WAIT-STATE('').
  552. IF NUM-RESULTS('{&BROWSE-NAME}') <> ? AND
  553. NUM-RESULTS('{&BROWSE-NAME}') > 0 THEN DO:
  554. BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  555. RUN ANZEIGE.
  556. END.
  557. END PROCEDURE.
  558. /* _UIB-CODE-BLOCK-END */
  559. &ANALYZE-RESUME
  560. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gArtikelkarte
  561. PROCEDURE REPORT :
  562. /*------------------------------------------------------------------------------
  563. Purpose:
  564. Parameters: <none>
  565. Notes:
  566. ------------------------------------------------------------------------------*/
  567. DEF VAR cVorlage AS CHAR NO-UNDO.
  568. DEF VAR cDaten AS CHAR NO-UNDO.
  569. DEF VAR cDokument AS CHAR NO-UNDO.
  570. DEF VAR cDateiName AS CHAR NO-UNDO.
  571. DEF VAR Zelle AS CHAR NO-UNDO.
  572. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  573. DEF VAR io AS LOG NO-UNDO.
  574. DEF VAR Anzahl AS INT NO-UNDO.
  575. DEF VAR cString AS CHAR NO-UNDO.
  576. DEF VAR i1 AS INT NO-UNDO.
  577. DEF VAR i2 AS INT NO-UNDO.
  578. DEF VAR i3 AS INT NO-UNDO.
  579. DEF VAR i4 AS INT NO-UNDO.
  580. DEF VAR aRecid AS RECID NO-UNDO.
  581. DO WITH FRAME {&FRAME-NAME}:
  582. ASSIGN {&List-6}.
  583. EMPTY TEMP-TABLE TArtst.
  584. cString = S_Artikel:LIST-ITEM-PAIRS.
  585. IF cString = ? THEN cString = ''.
  586. IF cString = '' THEN DO:
  587. FOR EACH Artst USE-INDEX Artst-k3
  588. WHERE Artst.Firma = Firma
  589. AND Artst.Aktiv = TRUE NO-LOCK,
  590. FIRST Artbez USE-INDEX Artbez-k1
  591. WHERE Artbez.Firma = Artst.Firma
  592. AND Artbez.Artnr = Artst.Artnr
  593. AND Artbez.Inhalt = Artst.Inhalt
  594. AND Artbez.Jahr = Artst.Jahr
  595. AND Artbez.Zustext[01] <> '' NO-LOCK,
  596. FIRST KGebinde USE-INDEX KGebinde-k1
  597. WHERE KGebinde.Firma = Artst.Firma
  598. AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-LOCK:
  599. CREATE TArtst.
  600. ASSIGN TArtst.Artnr = Artst.Artnr
  601. TArtst.Inhalt = Artst.Inhalt
  602. TArtst.Jahr = Artst.Jahr
  603. TArtst.Alkohol = Artst.Alk_Gehalt
  604. TArtst.Gebinde = KGebinde.KBez
  605. TArtst.Bez1 = Artbez.Bez1
  606. TArtst.Bez2 = Artbez.Bez2.
  607. DO i4 = 10 TO 1 BY -1:
  608. IF Artbez.Zustext[i4] = '' THEN NEXT.
  609. LEAVE.
  610. END.
  611. DO i3 = 1 TO i4:
  612. TArtst.Zustext = TArtst.Zustext + CHR(10) + Artbez.Zustext[i3].
  613. END.
  614. TArtst.Zustext = SUBSTRING(TArtst.Zustext,02).
  615. END.
  616. END.
  617. ELSE DO:
  618. i2 = NUM-ENTRIES(cString, CHR(01)).
  619. DO i1 = 2 TO i2 BY 2:
  620. aRecid = INTEGER(ENTRY(i1, cString, CHR(01))).
  621. FIND Artst WHERE RECID(Artst) = aRecid NO-LOCK.
  622. FIND Artbez USE-INDEX Artbez-k1
  623. WHERE Artbez.Firma = Artst.Firma
  624. AND Artbez.Artnr = Artst.Artnr
  625. AND Artbez.Inhalt = Artst.Inhalt
  626. AND Artbez.Jahr = Artst.Jahr
  627. AND Artbez.Sprcd = Sprcd NO-LOCK NO-ERROR.
  628. IF NOT AVAILABLE Artbez THEN NEXT.
  629. FIND KGebinde USE-INDEX KGebinde-k1
  630. WHERE KGebinde.Firma = Artst.Firma
  631. AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-LOCK NO-ERROR.
  632. IF NOT AVAILABLE KGebinde THEN NEXT.
  633. CREATE TArtst.
  634. ASSIGN TArtst.Artnr = Artst.Artnr
  635. TArtst.Inhalt = Artst.Inhalt
  636. TArtst.Jahr = Artst.Jahr
  637. TArtst.Alkohol = Artst.Alk_Gehalt
  638. TArtst.Gebinde = KGebinde.KBez
  639. TArtst.Bez1 = Artbez.Bez1
  640. TArtst.Bez2 = Artbez.Bez2.
  641. DO i4 = 10 TO 1 BY -1:
  642. IF Artbez.Zustext[i4] = '' THEN NEXT.
  643. LEAVE.
  644. END.
  645. DO i3 = 1 TO i4:
  646. TArtst.Zustext = TArtst.Zustext + CHR(10) + Artbez.Zustext[i3].
  647. END.
  648. TArtst.Zustext = SUBSTRING(TArtst.Zustext,02).
  649. END.
  650. END.
  651. END.
  652. cVorlage = 'ArtikelKarte.xls'.
  653. cDokument = 'ArtikelKarte.xls'.
  654. cDaten = 'ArtikelKarte.txt'.
  655. cDateiName = cDokument + CHR(01) + cVorlage.
  656. RUN CREATEDATEI ( INPUT cDateiName ).
  657. IF RETURN-Value BEGINS 'ERROR' THEN RETURN NO-APPLY.
  658. cDokument = RETURN-Value.
  659. cDateiName = cDaten.
  660. RUN CREATEDATEI ( INPUT cDateiName ).
  661. IF RETURN-Value BEGINS 'ERROR' THEN RETURN NO-APPLY.
  662. cDaten = RETURN-Value.
  663. OUTPUT TO Value(cDaten).
  664. Anzahl = 0.
  665. FOR EACH TArtst:
  666. PUT CONTROL 'FETT£'
  667. TArtst.Bez1 '£'.
  668. IF TArtst.Jahr > 9 THEN PUT CONTROL STRING(TArtst.Jahr,'9999').
  669. PUT CONTROL '£'
  670. TArtst.Gebinde '£'.
  671. IF TArtst.Alkohol <> 0 THEN PUT CONTROL TRIM(STRING(TArtst.Alkohol,'z9.9%')).
  672. PUT CONTROL CHR(10).
  673. IF TArtst.Bez2 <> '' THEN DO:
  674. PUT CONTROL 'FETT£'
  675. TArtst.Bez2 CHR(10).
  676. END.
  677. PUT CONTROL '£' CHR(10).
  678. cString = TArtst.Zustext.
  679. i2 = NUM-ENTRIES(cString, CHR(10)).
  680. DO i1 = 1 TO i2:
  681. PUT CONTROL '£' ENTRY(i1, cString, CHR(10)) CHR(10).
  682. END.
  683. PUT CONTROL '£' CHR(10)
  684. '£' CHR(10).
  685. IF T_NeueSeite THEN PUT CONTROL 'NeueSeite£' CHR(10).
  686. ELSE PUT CONTROL '£' CHR(10).
  687. Anzahl = Anzahl + 1.
  688. END.
  689. OUTPUT CLOSE.
  690. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  691. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  692. RUN FEHLER ( INPUT 1035 ).
  693. RETURN.
  694. END.
  695. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT io ).
  696. IF NOT io THEN DO:
  697. RUN FEHLER ( INPUT 1040 ).
  698. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  699. RETURN NO-APPLY.
  700. END.
  701. Zelle = 'A6'.
  702. excelAppl:Range(Zelle):Select.
  703. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten.
  704. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  705. excelAppl:Range(Zelle):Select.
  706. excelAppl:Selection:ColumnWidth = 0.3.
  707. EMPTY TEMP-TABLE TExcel.
  708. i1 = 5.
  709. INPUT STREAM Inp_Stream FROM Value(cDaten) NO-ECHO NO-MAP.
  710. REPEAT TRANSACTION ON STOP UNDO, LEAVE WITH FRAME f_Print:
  711. i1 = i1 + 1.
  712. CREATE TExcel.
  713. IMPORT STREAM Inp_Stream DELIMITER '£' TExcel.KeyWort
  714. TExcel.Felder .
  715. TExcel.Zeile = i1.
  716. END.
  717. INPUT STREAM Inp_Stream CLOSE.
  718. FOR EACH TExcel WHERE TExcel.KeyWort <> '' BY TExcel.Zeile:
  719. CASE TExcel.KeyWort:
  720. WHEN 'FETT' THEN DO:
  721. Zelle = 'A' + STRING(TExcel.Zeile).
  722. excelAppl:Range(Zelle):Select.
  723. excelAppl:Selection:Value = ''.
  724. Zelle = STRING(TExcel.Zeile) + ':' + STRING(TExcel.Zeile).
  725. excelAppl:Range(Zelle):Select.
  726. excelAppl:Selection:Font:Bold = TRUE.
  727. END.
  728. WHEN 'NeueSeite' THEN DO:
  729. Zelle = 'A' + STRING(TExcel.Zeile).
  730. excelAppl:Range(Zelle):Select.
  731. excelAppl:Selection:Value = ''.
  732. Zelle = 'A' + STRING(TExcel.Zeile).
  733. excelAppl:Range(Zelle):Select.
  734. excelAppl:ActiveWindow:SelectedSheets:HPageBreaks:Add(excelAppl:Selection).
  735. END.
  736. END CASE.
  737. END.
  738. FIND Steuer USE-INDEX Steuer-k1
  739. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  740. Zelle = 'B1'.
  741. excelAppl:Range(Zelle):Select.
  742. excelAppl:Selection:Value = Steuer.Firma1.
  743. Zelle = 'B2'.
  744. excelAppl:Range(Zelle):Select.
  745. excelAppl:Selection:Value = Steuer.Ort.
  746. Zelle = 'A1'.
  747. excelAppl:Range(Zelle):Select.
  748. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  749. END PROCEDURE.
  750. /* _UIB-CODE-BLOCK-END */
  751. &ANALYZE-RESUME
  752. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SELEKTARTIKEL gArtikelkarte
  753. PROCEDURE SELEKTARTIKEL :
  754. /*------------------------------------------------------------------------------
  755. Purpose:
  756. Parameters: <none>
  757. Notes:
  758. ------------------------------------------------------------------------------*/
  759. DEF VAR cString AS CHAR NO-UNDO.
  760. DEF VAR cRecid AS CHAR NO-UNDO.
  761. DO WITH FRAME {&FRAME-NAME}:
  762. IF NOT AVAILABLE Artst THEN RETURN NO-APPLY.
  763. cString = S_Artikel:LIST-ITEM-PAIRS.
  764. IF cString = ? THEN cString = ''.
  765. cRecid = STRING(RECID(Artst),'99999999').
  766. IF LOOKUP(cRecid, cString, CHR(01)) > 0 THEN RETURN NO-APPLY.
  767. IF cString <> '' THEN cString = cString + CHR(01).
  768. cString = cString + Artst.Bez + CHR(01) + cRecid.
  769. S_Artikel:LIST-ITEM-PAIRS = cString.
  770. S_Artikel:SCREEN-VALUE = cRecid.
  771. END.
  772. END PROCEDURE.
  773. /* _UIB-CODE-BLOCK-END */
  774. &ANALYZE-RESUME
  775. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR gArtikelkarte
  776. PROCEDURE TOOLBAR :
  777. /*------------------------------------------------------------------------------
  778. Purpose:
  779. Parameters: <none>
  780. Notes:
  781. ------------------------------------------------------------------------------*/
  782. DEF INPUT PARAMETER pcAction AS CHAR NO-UNDO.
  783. /*
  784. RUN TOOLBAR IN h_dyntoolbar ( INPUT pcAction ).
  785. */
  786. END PROCEDURE.
  787. /* _UIB-CODE-BLOCK-END */
  788. &ANALYZE-RESUME