g-faxbestellung.w 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899
  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. &Scoped-define FRAME-NAME gFaxbestellung
  8. {adecomm/appserv.i}
  9. /* Temp-Table and Buffer definitions */
  10. DEFINE TEMP-TABLE tKunBest NO-UNDO LIKE KunBest
  11. FIELD cArtikel AS CHARACTER
  12. FIELD cVGebinde AS CHARACTER
  13. FIELD MBest AS DECIMAL
  14. FIELD cKGebinde AS CHARACTER
  15. FIELD iInhalt AS INTEGER
  16. FIELD KGeb_Be AS DECIMAL
  17. FIELD VGeb_Be AS DECIMAL
  18. FIELD GGeb_Be AS DECIMAL
  19. FIELD Liter AS DECIMAL DECIMALS 3
  20. FIELD Gewicht AS DECIMAL DECIMALS 3
  21. FIELD Alk_Gehalt AS DECIMAL DECIMALS 3.
  22. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gFaxbestellung
  23. /*------------------------------------------------------------------------
  24. File:
  25. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  26. Input Parameters:
  27. <none>
  28. Output Parameters:
  29. <none>
  30. Author:
  31. Created:
  32. ------------------------------------------------------------------------*/
  33. /* This .W file was created with the Progress AppBuilder. */
  34. /*----------------------------------------------------------------------*/
  35. /* Create an unnamed pool to store all the widgets created
  36. by this procedure. This is a good default which assures
  37. that this procedure's triggers and internal procedures
  38. will execute in this procedure's storage, and that proper
  39. cleanup will occur on deletion of the procedure. */
  40. CREATE WIDGET-POOL.
  41. /* *************************** Definitions ************************** */
  42. /* Parameters Definitions --- */
  43. DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
  44. DEFINE INPUT PARAMETER ipKnr AS INTEGER NO-UNDO.
  45. DEFINE OUTPUT PARAMETER ophKunBest AS HANDLE NO-UNDO.
  46. /* Local Variable Definitions --- */
  47. &SCOPED-DEFINE Tabelle tKunBest
  48. DEFINE VARIABLE cSort AS CHARACTER INIT 'Pos' NO-UNDO.
  49. DEFINE VARIABLE lAufAb AS LOG INIT TRUE NO-UNDO.
  50. DEFINE VARIABLE cAufAb AS CHARACTER INIT '' NO-UNDO.
  51. DEFINE VARIABLE cFilterFeld AS CHARACTER NO-UNDO.
  52. DEFINE VARIABLE cFilterWert AS CHARACTER NO-UNDO.
  53. DEFINE TEMP-TABLE tAufze LIKE Aufze.
  54. { incl/dlgdefinition.i }
  55. { incl/dynbrwdefinition.i }
  56. { src/adm2/widgetprto.i }
  57. /* _UIB-CODE-BLOCK-END */
  58. &ANALYZE-RESUME
  59. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  60. /* ******************** Preprocessor Definitions ******************** */
  61. &Scoped-define PROCEDURE-TYPE SmartDialog
  62. &Scoped-define DB-AWARE no
  63. &Scoped-define ADM-CONTAINER DIALOG-BOX
  64. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  65. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  66. &Scoped-define FRAME-NAME gFaxbestellung
  67. &Scoped-define BROWSE-NAME Br_Faxbestellung
  68. /* Internal Tables (found by Frame, Query & Browse Queries) */
  69. &Scoped-define INTERNAL-TABLES tKunBest
  70. /* Definitions for BROWSE Br_Faxbestellung */
  71. &Scoped-define FIELDS-IN-QUERY-Br_Faxbestellung tKunBest.Pos tKunBest.Artnr ~
  72. tKunBest.Inhalt tKunBest.Jahr cArtikel iInhalt Alk_Gehalt cKGebinde ~
  73. cVGebinde tKunBest.Soll MBest
  74. &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Faxbestellung
  75. &Scoped-define QUERY-STRING-Br_Faxbestellung FOR EACH tKunBest NO-LOCK INDEXED-REPOSITION
  76. &Scoped-define OPEN-QUERY-Br_Faxbestellung OPEN QUERY Br_Faxbestellung FOR EACH tKunBest NO-LOCK INDEXED-REPOSITION.
  77. &Scoped-define TABLES-IN-QUERY-Br_Faxbestellung tKunBest
  78. &Scoped-define FIRST-TABLE-IN-QUERY-Br_Faxbestellung tKunBest
  79. /* Definitions for DIALOG-BOX gFaxbestellung */
  80. &Scoped-define OPEN-BROWSERS-IN-QUERY-gFaxbestellung ~
  81. ~{&OPEN-QUERY-Br_Faxbestellung}
  82. /* Standard List Definitions */
  83. &Scoped-Define ENABLED-OBJECTS RECT-2 Br_Faxbestellung Btn_OK Btn_Cancel
  84. /* Custom List Definitions */
  85. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  86. /* _UIB-PREPROCESSOR-BLOCK-END */
  87. &ANALYZE-RESUME
  88. /* ************************ Function Prototypes ********************** */
  89. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD openQuery gFaxbestellung
  90. FUNCTION openQuery RETURNS LOGICAL
  91. ( /* parameter-definitions */ ) FORWARD.
  92. /* _UIB-CODE-BLOCK-END */
  93. &ANALYZE-RESUME
  94. /* *********************** Control Definitions ********************** */
  95. /* Define a dialog box */
  96. /* Definitions of the field level widgets */
  97. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  98. LABEL "abbrechen"
  99. SIZE 15 BY 1.
  100. DEFINE BUTTON Btn_OK AUTO-GO
  101. LABEL "OK"
  102. SIZE 15 BY 1.
  103. DEFINE RECTANGLE RECT-2
  104. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  105. SIZE 134 BY 15.24.
  106. /* Query definitions */
  107. &ANALYZE-SUSPEND
  108. DEFINE QUERY Br_Faxbestellung FOR
  109. tKunBest SCROLLING.
  110. &ANALYZE-RESUME
  111. /* Browse definitions */
  112. DEFINE BROWSE Br_Faxbestellung
  113. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Faxbestellung gFaxbestellung _STRUCTURED
  114. QUERY Br_Faxbestellung NO-LOCK DISPLAY
  115. tKunBest.Pos FORMAT "zzz9":U
  116. tKunBest.Artnr FORMAT "999999":U
  117. tKunBest.Inhalt FORMAT "9999":U
  118. tKunBest.Jahr FORMAT "9999":U
  119. cArtikel COLUMN-LABEL "Artikel" FORMAT "x(40)":U
  120. iInhalt COLUMN-LABEL "cl" FORMAT "zzz9":U
  121. Alk_Gehalt COLUMN-LABEL "Vol%" FORMAT "zz9.999":U
  122. cKGebinde COLUMN-LABEL "KGebinde" FORMAT "x(12)":U
  123. cVGebinde COLUMN-LABEL "VGebinde" FORMAT "x(12)":U
  124. tKunBest.Soll FORMAT "zzz,zz9":U WIDTH 7
  125. MBest COLUMN-LABEL "Best" FORMAT "zzz,zz9":U WIDTH 8
  126. /* _UIB-CODE-BLOCK-END */
  127. &ANALYZE-RESUME
  128. WITH NO-ROW-MARKERS SEPARATORS SIZE 130 BY 14.29.
  129. /* ************************ Frame Definitions *********************** */
  130. DEFINE FRAME gFaxbestellung
  131. Br_Faxbestellung AT ROW 1.95 COL 5 WIDGET-ID 200
  132. Btn_OK AT ROW 17 COL 42.6
  133. Btn_Cancel AT ROW 17 COL 63.8
  134. RECT-2 AT ROW 1.48 COL 3 WIDGET-ID 2
  135. SPACE(1.99) SKIP(1.89)
  136. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  137. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  138. TITLE "Faxbestellung"
  139. CANCEL-BUTTON Btn_Cancel WIDGET-ID 100.
  140. /* *********************** Procedure Settings ************************ */
  141. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  142. /* Settings for THIS-PROCEDURE
  143. Type: SmartDialog
  144. Allow: Basic,Browse,DB-Fields,Query,Smart
  145. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  146. Design Page: 1
  147. Other Settings: COMPILE APPSERVER
  148. Temp-Tables and Buffers:
  149. TABLE: tKunBest T "?" NO-UNDO AnaDat KunBest
  150. ADDITIONAL-FIELDS:
  151. FIELD cArtikel AS CHAR
  152. FIELD cVGebinde AS CHAR
  153. FIELD MBest AS DEC
  154. FIELD cKGebinde AS CHAR
  155. FIELD iInhalt AS INT
  156. FIELD KGeb_Be AS DEC
  157. FIELD VGeb_Be AS DEC
  158. FIELD GGeb_Be AS DEC
  159. FIELD Liter AS DEC DECIMALS 3
  160. FIELD Gewicht AS DEC DECIMALS 3
  161. FIELD Alk_Gehalt AS DEC DECIMALS 3
  162. END-FIELDS.
  163. END-TABLES.
  164. */
  165. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  166. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gFaxbestellung
  167. /* ************************* Included-Libraries *********************** */
  168. {src/adm2/containr.i}
  169. /* _UIB-CODE-BLOCK-END */
  170. &ANALYZE-RESUME
  171. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  172. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  173. /* SETTINGS FOR DIALOG-BOX gFaxbestellung
  174. FRAME-NAME */
  175. /* BROWSE-TAB Br_Faxbestellung RECT-2 gFaxbestellung */
  176. ASSIGN
  177. FRAME gFaxbestellung:SCROLLABLE = FALSE
  178. FRAME gFaxbestellung:HIDDEN = TRUE.
  179. ASSIGN
  180. Br_Faxbestellung:COLUMN-RESIZABLE IN FRAME gFaxbestellung = TRUE.
  181. /* _RUN-TIME-ATTRIBUTES-END */
  182. &ANALYZE-RESUME
  183. /* Setting information for Queries and Browse Widgets fields */
  184. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Faxbestellung
  185. /* Query rebuild information for BROWSE Br_Faxbestellung
  186. _TblList = "Temp-Tables.tKunBest"
  187. _Options = "NO-LOCK INDEXED-REPOSITION"
  188. _FldNameList[1] = Temp-Tables.tKunBest.Pos
  189. _FldNameList[2] = Temp-Tables.tKunBest.Artnr
  190. _FldNameList[3] = Temp-Tables.tKunBest.Inhalt
  191. _FldNameList[4] = Temp-Tables.tKunBest.Jahr
  192. _FldNameList[5] > "_<CALC>"
  193. "cArtikel" "Artikel" "x(40)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  194. _FldNameList[6] > "_<CALC>"
  195. "iInhalt" "cl" "zzz9" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  196. _FldNameList[7] > "_<CALC>"
  197. "Alk_Gehalt" "Vol%" "zz9.999" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  198. _FldNameList[8] > "_<CALC>"
  199. "cKGebinde" "KGebinde" "x(12)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  200. _FldNameList[9] > "_<CALC>"
  201. "cVGebinde" "VGebinde" "x(12)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  202. _FldNameList[10] > Temp-Tables.tKunBest.Soll
  203. "tKunBest.Soll" ? ? "integer" ? ? ? ? ? ? no ? no no "7" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  204. _FldNameList[11] > "_<CALC>"
  205. "MBest" "Best" "zzz,zz9" ? ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  206. _Query is OPENED
  207. */ /* BROWSE Br_Faxbestellung */
  208. &ANALYZE-RESUME
  209. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gFaxbestellung
  210. /* Query rebuild information for DIALOG-BOX gFaxbestellung
  211. _Options = "SHARE-LOCK"
  212. _Query is NOT OPENED
  213. */ /* DIALOG-BOX gFaxbestellung */
  214. &ANALYZE-RESUME
  215. /* ************************ Control Triggers ************************ */
  216. &Scoped-define SELF-NAME gFaxbestellung
  217. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gFaxbestellung gFaxbestellung
  218. ON END-ERROR OF FRAME gFaxbestellung /* Faxbestellung */
  219. DO:
  220. RUN ENDE.
  221. RETURN NO-APPLY.
  222. END.
  223. /* _UIB-CODE-BLOCK-END */
  224. &ANALYZE-RESUME
  225. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gFaxbestellung gFaxbestellung
  226. ON WINDOW-CLOSE OF FRAME gFaxbestellung /* Faxbestellung */
  227. DO:
  228. RUN ENDE.
  229. RETURN NO-APPLY.
  230. END.
  231. /* _UIB-CODE-BLOCK-END */
  232. &ANALYZE-RESUME
  233. &Scoped-define BROWSE-NAME Br_Faxbestellung
  234. &Scoped-define SELF-NAME Br_Faxbestellung
  235. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Faxbestellung gFaxbestellung
  236. ON LEFT-MOUSE-DBLCLICK OF Br_Faxbestellung IN FRAME gFaxbestellung
  237. DO:
  238. RUN MENGE.
  239. END.
  240. /* _UIB-CODE-BLOCK-END */
  241. &ANALYZE-RESUME
  242. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Faxbestellung gFaxbestellung
  243. ON RETURN OF Br_Faxbestellung IN FRAME gFaxbestellung
  244. DO:
  245. RUN MENGE.
  246. END.
  247. /* _UIB-CODE-BLOCK-END */
  248. &ANALYZE-RESUME
  249. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Faxbestellung gFaxbestellung
  250. ON START-SEARCH OF Br_Faxbestellung IN FRAME gFaxbestellung
  251. DO:
  252. { incl/dynbrwstartsearch.i }
  253. END.
  254. /* _UIB-CODE-BLOCK-END */
  255. &ANALYZE-RESUME
  256. &Scoped-define SELF-NAME Btn_Cancel
  257. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gFaxbestellung
  258. ON CHOOSE OF Btn_Cancel IN FRAME gFaxbestellung /* abbrechen */
  259. DO:
  260. RUN ENDE.
  261. RETURN NO-APPLY.
  262. END.
  263. /* _UIB-CODE-BLOCK-END */
  264. &ANALYZE-RESUME
  265. &Scoped-define SELF-NAME Btn_OK
  266. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gFaxbestellung
  267. ON CHOOSE OF Btn_OK IN FRAME gFaxbestellung /* OK */
  268. DO:
  269. DEFINE VARIABLE htAufze AS HANDLE NO-UNDO.
  270. DEFINE VARIABLE lRetVal AS LOG NO-UNDO.
  271. DEFINE VARIABLE iRetVal AS INTEGER NO-UNDO.
  272. DEFINE VARIABLE iPreisArt AS INTEGER NO-UNDO.
  273. DEFINE VARIABLE nTotal AS DECIMAL DECIMALS 4 NO-UNDO EXTENT 15.
  274. DEFINE VARIABLE cRetValue AS CHARACTER NO-UNDO.
  275. DEFINE BUFFER bAufze FOR Aufze.
  276. btnOK = TRUE.
  277. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  278. FOR EACH tKunBest
  279. WHERE tKunBest.MBest > 0:
  280. EMPTY TEMP-TABLE tAufze.
  281. CREATE tAufze.
  282. ASSIGN
  283. tAufze.Firma = Firma
  284. tAufze.Aufnr = ipAufnr
  285. tAufze.Artnr = tKunBest.Artnr
  286. tAufze.Inhalt = tKunBest.Inhalt
  287. tAufze.Jahr = tKunBest.Jahr
  288. tAufze.Preis_Mut = FALSE.
  289. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  290. iRetVal = DYNAMIC-FUNCTION ( 'fillAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR.
  291. IF iRetVal > 0 THEN
  292. DO:
  293. DYNAMIC-FUNCTION('fehlerMeldung':U, iRetVal, '' ) NO-ERROR.
  294. RETURN 'APPLY'.
  295. END.
  296. FIND FIRST tAufze.
  297. BUFFER-COPY tKunBest
  298. USING MBest KGeb_Be KGeb_Me VGeb_Be VGeb_Me GGeb_Be GGeb_Me Liter Gewicht
  299. TO tAufze.
  300. ASSIGN
  301. tAufze.Preis_Mut = FALSE
  302. tAufze.MGeli = tKunBest.MBest
  303. tAufze.Aufnr = ipAufnr.
  304. iPreisArt = DYNAMIC-FUNCTION ( 'getPreisAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR.
  305. FIND FIRST tAufze.
  306. FIND LAST bAufze NO-LOCK
  307. WHERE bAufze.Firma = tAufze.Firma
  308. AND bAufze.Aufnr = tAufze.Aufnr NO-ERROR.
  309. IF NOT AVAILABLE bAufze THEN tAufze.Pos = 05.
  310. ELSE tAufze.Pos = bAufze.Pos - (bAufze.Pos MOD 5) + 05.
  311. DYNAMIC-FUNCTION('fillArtbwFromAufze':U, INPUT-OUTPUT htAufze ).
  312. CREATE bAufze.
  313. BUFFER-COPY tAufze TO bAufze.
  314. RELEASE bAufze.
  315. END.
  316. cRetValue = DYNAMIC-FUNCTION('calculateAuftragsTotal':U, Firma, ipAufnr, OUTPUT nTotal ) NO-ERROR.
  317. IF cRetValue BEGINS 'KREDIT' THEN
  318. DO:
  319. RUN FEHLER ( 1086 ) NO-ERROR.
  320. END.
  321. RUN ENDE.
  322. RETURN NO-APPLY.
  323. END.
  324. /* _UIB-CODE-BLOCK-END */
  325. &ANALYZE-RESUME
  326. &UNDEFINE SELF-NAME
  327. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gFaxbestellung
  328. /* *************************** Main Block *************************** */
  329. { incl/dlgmainblock.i }
  330. { incl/dynbrwmainblock.i }
  331. { incl/dynbrwinternproc.i }
  332. {src/adm2/dialogmn.i}
  333. /* _UIB-CODE-BLOCK-END */
  334. &ANALYZE-RESUME
  335. /* ********************** Internal Procedures *********************** */
  336. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gFaxbestellung _ADM-CREATE-OBJECTS
  337. PROCEDURE adm-create-objects :
  338. /*------------------------------------------------------------------------------
  339. Purpose: Create handles for all SmartObjects used in this procedure.
  340. After SmartObjects are initialized, then SmartLinks are added.
  341. Parameters: <none>
  342. ------------------------------------------------------------------------------*/
  343. END PROCEDURE.
  344. /* _UIB-CODE-BLOCK-END */
  345. &ANALYZE-RESUME
  346. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gFaxbestellung _DEFAULT-DISABLE
  347. PROCEDURE disable_UI :
  348. /*------------------------------------------------------------------------------
  349. Purpose: DISABLE the User Interface
  350. Parameters: <none>
  351. Notes: Here we clean-up the user-interface by deleting
  352. dynamic widgets we have created and/or hide
  353. frames. This procedure is usually called when
  354. we are ready to "clean-up" after running.
  355. ------------------------------------------------------------------------------*/
  356. /* Hide all frames. */
  357. HIDE FRAME gFaxbestellung.
  358. END PROCEDURE.
  359. /* _UIB-CODE-BLOCK-END */
  360. &ANALYZE-RESUME
  361. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gFaxbestellung
  362. PROCEDURE enableObject :
  363. /*------------------------------------------------------------------------------
  364. Purpose: Super Override
  365. Parameters:
  366. Notes:
  367. ------------------------------------------------------------------------------*/
  368. DEFINE BUFFER bKunBest FOR KunBest.
  369. DEFINE BUFFER bArtst FOR Artst.
  370. DEFINE BUFFER bKGebinde FOR KGebinde.
  371. cSort = 'Pos'.
  372. EMPTY TEMP-TABLE tKunBest.
  373. FOR EACH bKunBest NO-LOCK
  374. WHERE bKunBest.Firma = Firma
  375. AND bKunBest.Knr = ipKnr:
  376. FIND bArtst NO-LOCK
  377. WHERE bArtst.Firma = bKunBest.Firma
  378. AND bArtst.Artnr = bKunBest.Artnr
  379. AND bArtst.Inhalt = bKunBest.Inhalt
  380. AND bArtst.Jahr = bKunBest.Jahr NO-ERROR.
  381. IF NOT AVAILABLE bArtst OR
  382. NOT bArtst.Aktiv OR
  383. bArtst.Ausverk = 9 THEN
  384. DO:
  385. FIND KunBest WHERE RECID(KunBest) = RECID(bKunBest).
  386. DELETE KunBest.
  387. RELEASE bKunBest.
  388. RELEASE bArtst.
  389. NEXT.
  390. END.
  391. IF bArtst.KGeb_Cd <> bKunBest.KGeb_Cd OR
  392. bArtst.VGeb_Cd <> bKunBest.VGeb_Cd THEN
  393. DO:
  394. FIND KunBest WHERE RECID(KunBest) = RECID(bKunBest).
  395. ASSIGN
  396. KunBest.KGeb_Cd = bArtst.KGeb_Cd
  397. KunBest.VGeb_Cd = bArtst.VGeb_Cd.
  398. RELEASE KunBest.
  399. END.
  400. FIND bKGebinde NO-LOCK
  401. WHERE bKGebinde.Firma = Firma
  402. AND bKGebinde.Geb_Cd = bKunBest.KGeb_Cd.
  403. CREATE tKunBest.
  404. BUFFER-COPY bKunBest TO tKunBest.
  405. ASSIGN
  406. tKunBest.cKGebinde = bKGebinde.KBez
  407. tKunBest.iInhalt = bKGebinde.Inhalt
  408. tKunBest.Alk_Gehalt = bArtst.Alk_Gehalt
  409. tKunBest.cArtikel = DYNAMIC-FUNCTION('getArtikelBezeichnung':U,
  410. tKunBest.Artnr,
  411. tKunBest.Inhalt,
  412. tKunBest.Jahr )
  413. tKunBest.cVGebinde = DYNAMIC-FUNCTION('getVGebindeKBez':U,
  414. tKunBest.VGeb_Cd ).
  415. RELEASE bKunBest.
  416. RELEASE bArtst.
  417. RELEASE bKGebinde.
  418. END.
  419. { incl/dlgenableobject.i }
  420. END PROCEDURE.
  421. /* _UIB-CODE-BLOCK-END */
  422. &ANALYZE-RESUME
  423. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gFaxbestellung _DEFAULT-ENABLE
  424. PROCEDURE enable_UI :
  425. /*------------------------------------------------------------------------------
  426. Purpose: ENABLE the User Interface
  427. Parameters: <none>
  428. Notes: Here we display/view/enable the widgets in the
  429. user-interface. In addition, OPEN all queries
  430. associated with each FRAME and BROWSE.
  431. These statements here are based on the "Other
  432. Settings" section of the widget Property Sheets.
  433. ------------------------------------------------------------------------------*/
  434. ENABLE RECT-2 Br_Faxbestellung Btn_OK Btn_Cancel
  435. WITH FRAME gFaxbestellung.
  436. VIEW FRAME gFaxbestellung.
  437. {&OPEN-BROWSERS-IN-QUERY-gFaxbestellung}
  438. END PROCEDURE.
  439. /* _UIB-CODE-BLOCK-END */
  440. &ANALYZE-RESUME
  441. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gFaxbestellung
  442. PROCEDURE ENDE :
  443. /*------------------------------------------------------------------------------
  444. Purpose:
  445. Parameters: <none>
  446. Notes:
  447. ------------------------------------------------------------------------------*/
  448. IF btnOK THEN
  449. DO:
  450. END.
  451. { incl/dlgende.i }
  452. END PROCEDURE.
  453. /* _UIB-CODE-BLOCK-END */
  454. &ANALYZE-RESUME
  455. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exportData gFaxbestellung
  456. PROCEDURE exportData :
  457. /*------------------------------------------------------------------------------
  458. Purpose:
  459. Parameters: <none>
  460. Notes:
  461. ------------------------------------------------------------------------------*/
  462. DEFINE INPUT PARAMETER ip1 AS CHARACTER NO-UNDO.
  463. DEFINE INPUT PARAMETER ip2 AS CHARACTER NO-UNDO.
  464. DEFINE INPUT PARAMETER ip3 AS LOG NO-UNDO.
  465. DEFINE INPUT PARAMETER ip4 AS LOG NO-UNDO.
  466. DEFINE INPUT PARAMETER ip5 AS INTEGER NO-UNDO.
  467. DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
  468. DEFINE VARIABLE hQuery AS HANDLE NO-UNDO.
  469. DEFINE VARIABLE cName AS CHARACTER NO-UNDO.
  470. DEFINE VARIABLE cWhere AS CHARACTER NO-UNDO.
  471. DEFINE VARIABLE cLabel AS CHARACTER NO-UNDO.
  472. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  473. DEFINE VARIABLE ij AS INTEGER NO-UNDO.
  474. DEFINE VARIABLE iRet AS INTEGER NO-UNDO.
  475. DEFINE VARIABLE cDelim AS CHARACTER NO-UNDO INIT '£'.
  476. DO WITH FRAME {&FRAME-NAME}:
  477. APPLY 'CTRL-END' TO BROWSE {&BROWSE-NAME}.
  478. hBuffer = hqBuffer.
  479. IF NOT VALID-HANDLE ( hBuffer ) THEN RETURN.
  480. cName = SESSION:TEMP-DIR
  481. + ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.')
  482. + '.csv'.
  483. CREATE QUERY hQuery.
  484. hQuery:SET-BUFFERS(hBuffer).
  485. hQuery:QUERY-PREPARE(SUBSTITUTE('FOR EACH &1 NO-LOCK', '{&Tabelle}')).
  486. hQuery:QUERY-OPEN().
  487. OUTPUT TO VALUE(cName).
  488. SESSION:SET-WAIT-STATE('GENERAL').
  489. cString = ''.
  490. DO ij = 1 TO hBuffer:NUM-FIELDS:
  491. IF hBuffer:BUFFER-FIELD(ij):NAME BEGINS 'row' THEN NEXT.
  492. cLabel = hBuffer:BUFFER-FIELD(ij):LABEL.
  493. IF cLabel = ? OR
  494. cLabel = '' THEN cLabel = hBuffer:BUFFER-FIELD(ij):NAME.
  495. cString = cString + cDelim + cLabel.
  496. END.
  497. IF cString <> '' THEN cString = SUBSTRING(cString,02).
  498. cString = REPLACE(cString, ';', ':').
  499. cString = REPLACE(cString, cDelim, ';').
  500. PUT CONTROL cString CHR(10).
  501. hQuery:GET-FIRST(NO-LOCK).
  502. DO WHILE NOT hQuery:QUERY-OFF-END:
  503. cString = ''.
  504. DO ij = 1 TO hBuffer:NUM-FIELDS:
  505. IF hBuffer:BUFFER-FIELD(ij):NAME BEGINS 'row' THEN NEXT.
  506. cLabel = hBuffer:BUFFER-FIELD(ij):BUFFER-VALUE(0).
  507. IF cLabel = ? THEN cLabel = ''.
  508. IF hBuffer:BUFFER-FIELD(ij):DATA-TYPE BEGINS 'CHAR' THEN
  509. DO:
  510. cLabel = REPLACE(cLabel, CHR(10), ' ').
  511. END.
  512. cString = cString + cDelim + cLabel.
  513. END.
  514. IF cString <> '' THEN cString = SUBSTRING(cString,02).
  515. cString = REPLACE(cString, ';', ':').
  516. cString = REPLACE(cString, cDelim, ';').
  517. PUT CONTROL cString CHR(10).
  518. hQuery:GET-NEXT(NO-LOCK).
  519. END.
  520. OUTPUT CLOSE.
  521. hQuery:QUERY-CLOSE().
  522. DELETE OBJECT hQuery.
  523. SESSION:SET-WAIT-STATE('').
  524. END.
  525. RUN ShellExecuteA ( INPUT 0,
  526. INPUT 'open',
  527. INPUT 'Excel.exe',
  528. INPUT cName,
  529. INPUT '',
  530. INPUT 1,
  531. OUTPUT iRet ).
  532. END PROCEDURE.
  533. /* _UIB-CODE-BLOCK-END */
  534. &ANALYZE-RESUME
  535. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject gFaxbestellung
  536. PROCEDURE initializeObject :
  537. /*------------------------------------------------------------------------------
  538. Purpose: Super Override
  539. Parameters:
  540. Notes:
  541. ------------------------------------------------------------------------------*/
  542. DEFINE VARIABLE cName AS CHARACTER NO-UNDO.
  543. DEFINE VARIABLE xWhere AS CHARACTER NO-UNDO.
  544. RUN SUPER.
  545. DO WITH FRAME {&FRAME-NAME}:
  546. hbQuery = {&BROWSE-NAME}:QUERY.
  547. hqBuffer = hbQuery:GET-BUFFER-HANDLE(1).
  548. cqTabelle = hqBuffer:NAME.
  549. END.
  550. xWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK BY &2 &3 ', cqTabelle, cSort, cAufAb ).
  551. hbQuery:QUERY-PREPARE(xWhere).
  552. hbQuery:QUERY-OPEN().
  553. { incl/dynbrwinitialize.i}
  554. END PROCEDURE.
  555. /* _UIB-CODE-BLOCK-END */
  556. &ANALYZE-RESUME
  557. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MENGE gFaxbestellung
  558. PROCEDURE MENGE :
  559. /*------------------------------------------------------------------------------
  560. Purpose:
  561. Parameters: <none>
  562. Notes:
  563. ------------------------------------------------------------------------------*/
  564. DEFINE VARIABLE htAufze AS HANDLE NO-UNDO.
  565. DEFINE VARIABLE lRetVal AS LOG NO-UNDO.
  566. DEFINE VARIABLE iRetVal AS INTEGER NO-UNDO.
  567. DEFINE VARIABLE iPreisArt AS INTEGER NO-UNDO.
  568. DEFINE BUFFER bArtst FOR Artst .
  569. DEFINE BUFFER bKGebinde FOR KGebinde.
  570. DEFINE BUFFER bVGebinde FOR VGebinde.
  571. DEFINE BUFFER bGGebinde FOR GGebinde.
  572. DO WITH FRAME {&FRAME-NAME}:
  573. BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1) NO-ERROR.
  574. IF ERROR-STATUS:ERROR THEN RETURN NO-APPLY.
  575. END.
  576. EMPTY TEMP-TABLE tAufze.
  577. CREATE tAufze.
  578. ASSIGN
  579. tAufze.Firma = Firma
  580. tAufze.Aufnr = ipAufnr
  581. tAufze.Artnr = tKunBest.Artnr
  582. tAufze.Inhalt = tKunBest.Inhalt
  583. tAufze.Jahr = tKunBest.Jahr
  584. tAufze.Preis_Mut = FALSE.
  585. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  586. iRetVal = DYNAMIC-FUNCTION ( 'fillAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR.
  587. IF iRetVal > 0 THEN
  588. DO:
  589. DYNAMIC-FUNCTION('fehlerMeldung':U, iRetVal, '' ) NO-ERROR.
  590. RETURN 'APPLY'.
  591. END.
  592. FIND FIRST tAufze.
  593. BUFFER-COPY tKunBest
  594. USING MBest KGeb_Be KGeb_Me VGeb_Be VGeb_Me GGeb_Be GGeb_Me
  595. TO tAufze.
  596. RUN "g-gebindemenge-neu.w" ( INPUT-OUTPUT htAufze, OUTPUT lRetVal ).
  597. IF NOT lRetVal THEN RETURN 'Fehler'.
  598. FIND FIRST tAufze.
  599. FIND bArtst NO-LOCK
  600. WHERE bArtst.Firma = tAufze.Firma
  601. AND bArtst.Artnr = tAufze.Artnr
  602. AND bArtst.Inhalt = tAufze.Inhalt
  603. AND bArtst.Jahr = tAufze.Jahr.
  604. ASSIGN
  605. tAufze.KGeb_Ru = tAufze.KGeb_Be - tAufze.KGeb_Me
  606. tAufze.VGeb_Ru = tAufze.VGeb_Be - tAufze.VGeb_Me
  607. tAufze.GGeb_Ru = tAufze.GGeb_Be - tAufze.GGeb_Me
  608. tAufze.MBest = tAufze.KGeb_Be
  609. tAufze.MGeli = tAufze.KGeb_Me
  610. tAufze.MRuek = tAufze.KGeb_Ru.
  611. BUFFER-COPY tAufze
  612. EXCEPT Firma Aufnr Pos TO tKunBest.
  613. FIND bGGebinde NO-LOCK
  614. WHERE bGGebinde.Firma = Firma
  615. AND bGGebinde.Geb_Cd = tAufze.GGeb_Cd NO-ERROR.
  616. FIND bVGebinde NO-LOCK
  617. WHERE bVGebinde.Firma = Firma
  618. AND bVGebinde.Geb_Cd = tAufze.VGeb_Cd NO-ERROR.
  619. FIND bKGebinde NO-LOCK
  620. WHERE bKGebinde.Firma = Firma
  621. AND bKGebinde.Geb_Cd = tAufze.KGeb_Cd NO-ERROR.
  622. /* -------------------------------------------------------------- */
  623. /* Liter und Gewicht */
  624. /* -------------------------------------------------------------- */
  625. tKunBest.Liter = bKGebinde.Inhalt * tAufze.KGeb_Me / 100.
  626. tKunbest.Gewicht = (bArtst.Gewicht * tAufze.KGeb_Me)
  627. + (bKGebinde.Gewicht * tAufze.KGeb_Me)
  628. + (bVGebinde.Gewicht * tAufze.VGeb_Me)
  629. + (bGGebinde.Gewicht * tAufze.GGeb_Me).
  630. /* tAufze.KGebinde = bKGebinde.KBez. */
  631. /* tAufze.VGebinde = bVGebinde.KBez. */
  632. /* tAufze.GGebinde = bGGebinde.KBez. */
  633. iPreisArt = DYNAMIC-FUNCTION('getPreisAufze':U, INPUT-OUTPUT htAufze) NO-ERROR.
  634. RELEASE bArtst .
  635. RELEASE bKGebinde.
  636. RELEASE bVGebinde.
  637. RELEASE bGGebinde.
  638. DO WITH FRAME {&FRAME-NAME}:
  639. DISPLAY tKunBest.MBest WITH BROWSE {&BROWSE-NAME}.
  640. END.
  641. END PROCEDURE.
  642. /* _UIB-CODE-BLOCK-END */
  643. &ANALYZE-RESUME
  644. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_SORT gFaxbestellung
  645. PROCEDURE SET_SORT :
  646. /*------------------------------------------------------------------------------
  647. Purpose:
  648. Parameters: <none>
  649. Notes:
  650. ------------------------------------------------------------------------------*/
  651. DEFINE INPUT PARAMETER ipSort AS CHARACTER NO-UNDO.
  652. IF ipSort = cSort THEN lAufAb = NOT lAufAb.
  653. cSort = ipSort.
  654. cAufAb = (IF lAufAb THEN '' ELSE 'DESCENDING').
  655. DYNAMIC-FUNCTION('openQuery':U) NO-ERROR.
  656. END PROCEDURE.
  657. /* _UIB-CODE-BLOCK-END */
  658. &ANALYZE-RESUME
  659. /* ************************ Function Implementations ***************** */
  660. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION openQuery gFaxbestellung
  661. FUNCTION openQuery RETURNS LOGICAL
  662. ( /* parameter-definitions */ ) :
  663. /*------------------------------------------------------------------------------
  664. Purpose:
  665. Notes:
  666. ------------------------------------------------------------------------------*/
  667. DEFINE VARIABLE xWhere AS CHARACTER NO-UNDO.
  668. DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
  669. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
  670. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
  671. DEFINE VARIABLE cWert AS CHARACTER NO-UNDO.
  672. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  673. hBuffer = hbQuery:GET-BUFFER-HANDLE(1).
  674. xWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK ', cqTabelle).
  675. DO ix = 1 TO NUM-ENTRIES(cFilterFeld, ','):
  676. cFeld = ENTRY(ix, cFilterFeld, ',').
  677. IF cFeld = 'CLEAR' THEN
  678. DO:
  679. cFilterFeld = ''.
  680. cFilterWert = ''.
  681. LEAVE.
  682. END.
  683. hFeld = hBuffer:BUFFER-FIELD(cFeld).
  684. CASE hFeld:TYPE.
  685. WHEN 'INTEGER' THEN
  686. cWert = ENTRY(ix, cFilterWert, ',').
  687. WHEN 'DECIMAL' THEN
  688. cWert = ENTRY(ix, cFilterWert, ',').
  689. WHEN 'DATE' THEN
  690. cWert = STRING(DATE(ENTRY(ix, cFilterWert, ','))).
  691. WHEN 'LOGICAL' THEN
  692. cWert = (IF ENTRY(ix, cFilterWert, ',') BEGINS 'n' THEN 'FALSE' ELSE 'TRUE').
  693. OTHERWISE
  694. cWert = QUOTER(ENTRY(ix, cFilterWert, ',')).
  695. END.
  696. xWhere = xWhere
  697. + (IF ix = 1 THEN 'WHERE ' ELSE ' AND ')
  698. + SUBSTITUTE('&1.&2 = &3 ', cqTabelle, cFeld, cWert).
  699. END.
  700. xWhere = xWhere
  701. + SUBSTITUTE(' BY &1 &2 ', cSort, cAufAb).
  702. hbQuery:QUERY-PREPARE(xWhere) NO-ERROR.
  703. hbQuery:QUERY-OPEN() NO-ERROR.
  704. DO WITH FRAME {&FRAME-NAME}:
  705. APPLY 'ENTRY' TO {&BROWSE-NAME}.
  706. END.
  707. RETURN TRUE.
  708. END FUNCTION.
  709. /* _UIB-CODE-BLOCK-END */
  710. &ANALYZE-RESUME