d-fakartwechsel.w 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME D-Dialog
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS D-Dialog
  6. /*------------------------------------------------------------------------
  7. File:
  8. Description: from cntnrdlg.w - ADM SmartDialog Template
  9. Input Parameters:
  10. <none>
  11. Output Parameters:
  12. <none>
  13. Author:
  14. Created:
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress UIB. */
  17. /*----------------------------------------------------------------------*/
  18. /* Create an unnamed pool to store all the widgets created
  19. by this procedure. This is a good default which assures
  20. that this procedure's triggers and internal procedures
  21. will execute in this procedure's storage, and that proper
  22. cleanup will occur on deletion of the procedure. */
  23. CREATE WIDGET-POOL.
  24. /* *************************** Definitions ************************** */
  25. /* Parameters Definitions --- */
  26. /* Local Variable Definitions --- */
  27. DEF VAR XFak_Art AS CHAR NO-UNDO.
  28. DEF VAR VFak_Art AS INT NO-UNDO.
  29. DEF VAR ok AS LOG NO-UNDO.
  30. DEF VAR xx AS INT NO-UNDO.
  31. DEF VAR ARecid AS RECID NO-UNDO.
  32. DEF VAR AltCode AS INT NO-UNDO.
  33. DEF BUFFER XAufko FOR Aufko.
  34. /* ---------- Globale Variablen ---------------------------------- */
  35. { v8/globvar.i" " " " "SHARED" }
  36. { v8/debivar.i " " " " "SHARED" }
  37. { v8/artivar.i " " " " "SHARED" }
  38. { v8/contvar.i " " " " "SHARED" }
  39. /* _UIB-CODE-BLOCK-END */
  40. &ANALYZE-RESUME
  41. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  42. /* ******************** Preprocessor Definitions ******************** */
  43. &Scoped-define PROCEDURE-TYPE SmartDialog
  44. &Scoped-define DB-AWARE no
  45. &Scoped-define ADM-CONTAINER DIALOG-BOX
  46. /* Name of first Frame and/or Browse and/or first Query */
  47. &Scoped-define FRAME-NAME D-Dialog
  48. /* Standard List Definitions */
  49. &Scoped-Define ENABLED-OBJECTS Btn_OK F_Knr E_Adresse F_Aufnr F_Faknr ~
  50. CB-Fak_Art RECT-32
  51. &Scoped-Define DISPLAYED-OBJECTS F_Knr E_Adresse F_Aufnr F_Faknr CB-Fak_Art
  52. /* Custom List Definitions */
  53. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  54. &Scoped-define List-1 F_Knr E_Adresse F_Aufnr F_Faknr
  55. /* _UIB-PREPROCESSOR-BLOCK-END */
  56. &ANALYZE-RESUME
  57. /* *********************** Control Definitions ********************** */
  58. /* Define a dialog box */
  59. /* Definitions of the field level widgets */
  60. DEFINE BUTTON Btn_OK AUTO-GO DEFAULT
  61. LABEL "OK"
  62. SIZE 14 BY 1.24
  63. BGCOLOR 8 .
  64. DEFINE VARIABLE CB-Fak_Art AS CHARACTER FORMAT "X(256)":U
  65. LABEL "Faktura-Art"
  66. VIEW-AS COMBO-BOX INNER-LINES 5
  67. DROP-DOWN-LIST
  68. SIZE 47.4 BY 1
  69. BGCOLOR 15 NO-UNDO.
  70. DEFINE VARIABLE E_Adresse AS CHARACTER
  71. VIEW-AS EDITOR NO-WORD-WRAP MAX-CHARS 500
  72. SIZE 47.8 BY 4.95
  73. BGCOLOR 15 NO-UNDO.
  74. DEFINE VARIABLE F_Aufnr AS INTEGER FORMAT "9999999":U INITIAL 0
  75. LABEL "Aufnr"
  76. VIEW-AS FILL-IN NATIVE
  77. SIZE 11 BY 1
  78. BGCOLOR 15 NO-UNDO.
  79. DEFINE VARIABLE F_Faknr AS INTEGER FORMAT "9999999":U INITIAL 0
  80. LABEL "Fakturanummer"
  81. VIEW-AS FILL-IN NATIVE
  82. SIZE 11 BY 1
  83. BGCOLOR 15 NO-UNDO.
  84. DEFINE VARIABLE F_Knr AS INTEGER FORMAT "999999":U INITIAL 0
  85. LABEL "Kunde"
  86. VIEW-AS FILL-IN NATIVE
  87. SIZE 11 BY 1
  88. BGCOLOR 15 .
  89. DEFINE RECTANGLE RECT-32
  90. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  91. SIZE 75.4 BY 13.
  92. /* ************************ Frame Definitions *********************** */
  93. DEFINE FRAME D-Dialog
  94. Btn_OK AT ROW 12 COL 26.2
  95. F_Knr AT ROW 1.71 COL 24.2 COLON-ALIGNED NO-TAB-STOP
  96. E_Adresse AT ROW 2.95 COL 26.2 NO-LABEL NO-TAB-STOP
  97. F_Aufnr AT ROW 8.52 COL 24.2 COLON-ALIGNED NO-TAB-STOP
  98. F_Faknr AT ROW 9.52 COL 24.2 COLON-ALIGNED NO-TAB-STOP
  99. CB-Fak_Art AT ROW 10.52 COL 24.2 COLON-ALIGNED
  100. RECT-32 AT ROW 1.29 COL 3
  101. SPACE(1.98) SKIP(0.50)
  102. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  103. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  104. TITLE "Aendern der Fakturaart"
  105. DEFAULT-BUTTON Btn_OK.
  106. /* *********************** Procedure Settings ************************ */
  107. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  108. /* Settings for THIS-PROCEDURE
  109. Type: SmartDialog
  110. Allow: Basic,Browse,DB-Fields,Query,Smart
  111. Other Settings: COMPILE
  112. */
  113. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  114. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB D-Dialog
  115. /* ************************* Included-Libraries *********************** */
  116. {src/adm/method/containr.i}
  117. /* _UIB-CODE-BLOCK-END */
  118. &ANALYZE-RESUME
  119. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  120. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  121. /* SETTINGS FOR DIALOG-BOX D-Dialog
  122. Custom */
  123. ASSIGN
  124. FRAME D-Dialog:SCROLLABLE = FALSE
  125. FRAME D-Dialog:HIDDEN = TRUE.
  126. /* SETTINGS FOR EDITOR E_Adresse IN FRAME D-Dialog
  127. 1 */
  128. ASSIGN
  129. E_Adresse:RETURN-INSERTED IN FRAME D-Dialog = TRUE
  130. E_Adresse:READ-ONLY IN FRAME D-Dialog = TRUE.
  131. /* SETTINGS FOR FILL-IN F_Aufnr IN FRAME D-Dialog
  132. 1 */
  133. ASSIGN
  134. F_Aufnr:READ-ONLY IN FRAME D-Dialog = TRUE.
  135. /* SETTINGS FOR FILL-IN F_Faknr IN FRAME D-Dialog
  136. 1 */
  137. ASSIGN
  138. F_Faknr:READ-ONLY IN FRAME D-Dialog = TRUE.
  139. /* SETTINGS FOR FILL-IN F_Knr IN FRAME D-Dialog
  140. 1 */
  141. ASSIGN
  142. F_Knr:READ-ONLY IN FRAME D-Dialog = TRUE.
  143. /* _RUN-TIME-ATTRIBUTES-END */
  144. &ANALYZE-RESUME
  145. /* Setting information for Queries and Browse Widgets fields */
  146. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX D-Dialog
  147. /* Query rebuild information for DIALOG-BOX D-Dialog
  148. _Options = "SHARE-LOCK"
  149. _Query is NOT OPENED
  150. */ /* DIALOG-BOX D-Dialog */
  151. &ANALYZE-RESUME
  152. /* ************************ Control Triggers ************************ */
  153. &Scoped-define SELF-NAME D-Dialog
  154. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL D-Dialog D-Dialog
  155. ON GO OF FRAME D-Dialog /* Aendern der Fakturaart */
  156. DO:
  157. REPEAT TRANSACTION:
  158. FIND Aufko WHERE RECID(Aufko) = ARecid.
  159. FIND Tabel USE-INDEX Tabel-k1
  160. WHERE Tabel.Firma = GVFirma
  161. AND Tabel.RecArt = "FAKART"
  162. AND Tabel.CodeC = ""
  163. AND Tabel.CodeI = Aufko.Fak_Art
  164. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  165. AltCode = Tabel.Int_3.
  166. IF Aufko.Fak_Art = 99 AND
  167. VFak_Art <> 99 THEN Aufko.Faknr = 0.
  168. IF Aufko.Fak_Art <> 99 AND
  169. VFak_Art = 99 THEN Aufko.Faknr = Aufko.Aufnr.
  170. Aufko.Fak_Art = VFak_Art.
  171. FIND Tabel USE-INDEX Tabel-k1
  172. WHERE Tabel.Firma = GVFirma
  173. AND Tabel.RecArt = "FAKART"
  174. AND Tabel.CodeC = ""
  175. AND Tabel.CodeI = Aufko.Fak_Art
  176. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  177. IF Tabel.Int_3 = 4 THEN DO:
  178. FIND FIRST XAufko USE-INDEX Aufko-k4
  179. WHERE XAufko.Firma = Aufko.Firma
  180. AND XAufko.Knr = Aufko.Knr
  181. AND XAufko.Fak_Art = Aufko.Fak_Art
  182. AND XAufko.Faknr = 0
  183. AND XAufko.Samm_Nr <> 0 NO-LOCK NO-ERROR.
  184. IF AVAILABLE XAufko THEN DO:
  185. Aufko.Samm_Nr = XAufko.Samm_Nr.
  186. Aufko.Faknr = XAufko.Faknr.
  187. END.
  188. ELSE DO:
  189. FIND LAST XAufko USE-INDEX Aufko-k5
  190. WHERE XAufko.Firma = Aufko.Firma
  191. AND XAufko.Fak_Art = Aufko.Fak_Art
  192. NO-LOCK NO-ERROR.
  193. IF AVAILABLE XAufko THEN Aufko.Samm_Nr = XAufko.Samm_Nr + 1.
  194. ELSE Aufko.Samm_Nr = 1.
  195. Aufko.Faknr = 0.
  196. END.
  197. END.
  198. ELSE DO:
  199. Aufko.Samm_Nr = 0.
  200. IF AltCode = 4 THEN DO:
  201. Aufko.Faknr = 0.
  202. Aufko.Fak_Dat = ?.
  203. END.
  204. END.
  205. LEAVE.
  206. END.
  207. RELEASE Aufko.
  208. END.
  209. /* _UIB-CODE-BLOCK-END */
  210. &ANALYZE-RESUME
  211. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL D-Dialog D-Dialog
  212. ON WINDOW-CLOSE OF FRAME D-Dialog /* Aendern der Fakturaart */
  213. DO:
  214. /* Add Trigger to equate WINDOW-CLOSE to END-ERROR. */
  215. APPLY "END-ERROR":U TO SELF.
  216. END.
  217. /* _UIB-CODE-BLOCK-END */
  218. &ANALYZE-RESUME
  219. &Scoped-define SELF-NAME CB-Fak_Art
  220. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB-Fak_Art D-Dialog
  221. ON VALUE-CHANGED OF CB-Fak_Art IN FRAME D-Dialog /* Faktura-Art */
  222. DO:
  223. DO WITH FRAME {&FRAME-NAME}:
  224. ix = LOOKUP(SELF:SCREEN-VALUE, SELF:LIST-ITEMS, '|').
  225. VFak_Art = INTEGER(ENTRY(ix, XFak_Art, "|")).
  226. END.
  227. END.
  228. /* _UIB-CODE-BLOCK-END */
  229. &ANALYZE-RESUME
  230. &UNDEFINE SELF-NAME
  231. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK D-Dialog
  232. /* *************************** Main Block *************************** */
  233. {src/adm/template/dialogmn.i}
  234. /* _UIB-CODE-BLOCK-END */
  235. &ANALYZE-RESUME
  236. /* ********************** Internal Procedures *********************** */
  237. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects D-Dialog _ADM-CREATE-OBJECTS
  238. PROCEDURE adm-create-objects :
  239. /*------------------------------------------------------------------------------
  240. Purpose: Create handles for all SmartObjects used in this procedure.
  241. After SmartObjects are initialized, then SmartLinks are added.
  242. Parameters: <none>
  243. ------------------------------------------------------------------------------*/
  244. END PROCEDURE.
  245. /* _UIB-CODE-BLOCK-END */
  246. &ANALYZE-RESUME
  247. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available D-Dialog _ADM-ROW-AVAILABLE
  248. PROCEDURE adm-row-available :
  249. /*------------------------------------------------------------------------------
  250. Purpose: Dispatched to this procedure when the Record-
  251. Source has a new row available. This procedure
  252. tries to get the new row (or foriegn keys) from
  253. the Record-Source and process it.
  254. Parameters: <none>
  255. ------------------------------------------------------------------------------*/
  256. /* Define variables needed by this internal procedure. */
  257. {src/adm/template/row-head.i}
  258. /* Process the newly available records (i.e. display fields,
  259. open queries, and/or pass records on to any RECORD-TARGETS). */
  260. {src/adm/template/row-end.i}
  261. END PROCEDURE.
  262. /* _UIB-CODE-BLOCK-END */
  263. &ANALYZE-RESUME
  264. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI D-Dialog _DEFAULT-DISABLE
  265. PROCEDURE disable_UI :
  266. /*------------------------------------------------------------------------------
  267. Purpose: DISABLE the User Interface
  268. Parameters: <none>
  269. Notes: Here we clean-up the user-interface by deleting
  270. dynamic widgets we have created and/or hide
  271. frames. This procedure is usually called when
  272. we are ready to "clean-up" after running.
  273. ------------------------------------------------------------------------------*/
  274. /* Hide all frames. */
  275. HIDE FRAME D-Dialog.
  276. END PROCEDURE.
  277. /* _UIB-CODE-BLOCK-END */
  278. &ANALYZE-RESUME
  279. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI D-Dialog _DEFAULT-ENABLE
  280. PROCEDURE enable_UI :
  281. /*------------------------------------------------------------------------------
  282. Purpose: ENABLE the User Interface
  283. Parameters: <none>
  284. Notes: Here we display/view/enable the widgets in the
  285. user-interface. In addition, OPEN all queries
  286. associated with each FRAME and BROWSE.
  287. These statements here are based on the "Other
  288. Settings" section of the widget Property Sheets.
  289. ------------------------------------------------------------------------------*/
  290. DISPLAY F_Knr E_Adresse F_Aufnr F_Faknr CB-Fak_Art
  291. WITH FRAME D-Dialog.
  292. ENABLE Btn_OK F_Knr E_Adresse F_Aufnr F_Faknr CB-Fak_Art RECT-32
  293. WITH FRAME D-Dialog.
  294. VIEW FRAME D-Dialog.
  295. {&OPEN-BROWSERS-IN-QUERY-D-Dialog}
  296. END PROCEDURE.
  297. /* _UIB-CODE-BLOCK-END */
  298. &ANALYZE-RESUME
  299. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view D-Dialog
  300. PROCEDURE local-view :
  301. /*------------------------------------------------------------------------------
  302. Purpose: Override standard ADM method
  303. Notes:
  304. ------------------------------------------------------------------------------*/
  305. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
  306. FIND Aufko USE-INDEX Aufko-k1
  307. WHERE Aufko.Firma = GVFirma
  308. AND Aufko.Aufnr = XVAufnr NO-LOCK NO-ERROR.
  309. IF NOT AVAILABLE Aufko THEN DO:
  310. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  311. RETURN NO-APPLY.
  312. END.
  313. ARecid = RECID(Aufko).
  314. DO WITH FRAME {&FRAME-NAME}:
  315. CB-Fak_Art:DELIMITER = "|".
  316. XFak_Art = ''.
  317. ok = TRUE.
  318. xx = 0.
  319. DO WHILE ok:
  320. ok = CB-Fak_Art:DELETE(1).
  321. END.
  322. FOR EACH Tabel USE-INDEX Tabel-k1
  323. WHERE Tabel.Firma = GVFirma
  324. AND Tabel.RecArt = 'FAKART'
  325. AND Tabel.CodeC = ''
  326. AND Tabel.Sprcd = 1 NO-LOCK:
  327. ok = CB-Fak_Art:ADD-LAST(Tabel.Bez1).
  328. XFak_Art = XFak_Art + STRING(Tabel.CodeI,"999|").
  329. END.
  330. ix = LOOKUP(STRING(Aufko.Fak_Art,"999"), XFak_Art, '|').
  331. VFak_Art = INTEGER(ENTRY(ix, XFak_Art, "|")).
  332. CB-Fak_Art:SCREEN-VALUE = CB-Fak_Art:ENTRY(ix).
  333. E_Adresse = ''.
  334. F_Knr = Aufko.Knr.
  335. F_Aufnr = AUfko.Aufnr.
  336. F_Faknr = AUfko.Faknr.
  337. FIND Adresse USE-INDEX Adresse-k1
  338. WHERE Adresse.Firma = AdFirma
  339. AND Adresse.Knr = Aufko.Knr NO-LOCK NO-ERROR.
  340. IF AVAILABLE Adresse THEN DO:
  341. E_Adresse = Adresse.Anschrift[05] + CHR(10) +
  342. Adresse.Anschrift[06] + CHR(10) +
  343. Adresse.Anschrift[07] + CHR(10) +
  344. Adresse.Anschrift[08] + CHR(10) +
  345. Adresse.Anschrift[09] + CHR(10) +
  346. Adresse.Anschrift[10] + CHR(10) +
  347. Adresse.Anschrift[11] + CHR(10) +
  348. Adresse.Anschrift[12].
  349. END.
  350. DISPLAY {&List-1}.
  351. APPLY 'ENTRY' TO CB-Fak_Art.
  352. END.
  353. END PROCEDURE.
  354. /* _UIB-CODE-BLOCK-END */
  355. &ANALYZE-RESUME
  356. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records D-Dialog _ADM-SEND-RECORDS
  357. PROCEDURE send-records :
  358. /*------------------------------------------------------------------------------
  359. Purpose: Send record ROWID's for all tables used by
  360. this file.
  361. Parameters: see template/snd-head.i
  362. ------------------------------------------------------------------------------*/
  363. /* SEND-RECORDS does nothing because there are no External
  364. Tables specified for this SmartDialog, and there are no
  365. tables specified in any contained Browse, Query, or Frame. */
  366. END PROCEDURE.
  367. /* _UIB-CODE-BLOCK-END */
  368. &ANALYZE-RESUME
  369. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed D-Dialog
  370. PROCEDURE state-changed :
  371. /* -----------------------------------------------------------
  372. Purpose:
  373. Parameters: <none>
  374. Notes:
  375. -------------------------------------------------------------*/
  376. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  377. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  378. END PROCEDURE.
  379. /* _UIB-CODE-BLOCK-END */
  380. &ANALYZE-RESUME