w-auftrag - Kopie.w 75 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. */
  5. &Scoped-define WINDOW-NAME W-Auftrag
  6. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS W-Auftrag
  7. /*------------------------------------------------------------------------
  8. File:
  9. Description: from cntnrwin.w - ADM SmartWindow Template
  10. Input Parameters:
  11. <none>
  12. Output Parameters:
  13. <none>
  14. History:
  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 VUpdate AS LOG NO-UNDO.
  28. DEF VAR Aktive AS LOG NO-UNDO.
  29. DEF VAR ASeite AS INT NO-UNDO.
  30. DEF VAR PSeite AS INT NO-UNDO.
  31. DEF VAR DruckProgramm AS CHAR NO-UNDO.
  32. DEF VAR VSammFak AS LOG NO-UNDO.
  33. DEF VAR VLiefDat AS DATE NO-UNDO.
  34. DEF VAR BLiefDat AS DATE NO-UNDO.
  35. DEF VAR VFakDat AS DATE NO-UNDO.
  36. DEF VAR VFakart AS INT NO-UNDO.
  37. DEF VAR VAufsta AS INT NO-UNDO.
  38. DEF VAR VRuest AS INT NO-UNDO.
  39. DEF VAR VKnr AS INT NO-UNDO.
  40. DEF VAR BKNr AS INT NO-UNDO.
  41. DEF VAR VAufnr AS INT NO-UNDO.
  42. DEF VAR BAufnr AS INT NO-UNDO.
  43. DEF VAR XDatum AS CHAR NO-UNDO.
  44. DEF VAR ok AS LOG NO-UNDO.
  45. DEF VAR ARecid AS RECID NO-UNDO.
  46. DEF VAR BRecid AS RECID NO-UNDO.
  47. DEF VAR CRecid AS RECID NO-UNDO.
  48. DEF VAR VBesr AS INT NO-UNDO.
  49. DEF VAR VDokument AS CHAR NO-UNDO.
  50. DEF VAR FVerbucht AS LOG NO-UNDO.
  51. DEF VAR AktSeite AS INT NO-UNDO.
  52. DEF VAR EscFlag AS LOG NO-UNDO.
  53. DEF VAR EndFlag AS LOG NO-UNDO.
  54. DEF VAR cBenutzerdaten AS CHAR NO-UNDO.
  55. DEF VAR cBenutzer AS CHAR NO-UNDO.
  56. DEF VAR iLager AS INT NO-UNDO.
  57. DEF VAR fOfferte AS LOG NO-UNDO.
  58. DEF VAR cInstallation AS CHAR NO-UNDO.
  59. DEF TEMP-TABLE TAufko FIELD Knr AS INT
  60. FIELD Samm_Nr AS INT
  61. FIELD Aufnr AS INT
  62. FIELD RID AS RECID.
  63. DEF TEMP-TABLE dAufko LIKE Aufko.
  64. DEF BUFFER BTabel FOR Tabel.
  65. DEF BUFFER ATabel FOR Tabel.
  66. DEF BUFFER BAufko FOR Aufko.
  67. DEF BUFFER XAufko FOR Aufko.
  68. DEF BUFFER BSavko FOR Savko.
  69. DEF WORKFILE WAufko LIKE Aufko.
  70. DEF WORKFILE WDrucker FIELD Drucker AS CHAR
  71. FIELD Schrift AS CHAR
  72. FIELD TotZZ AS INT
  73. FIELD BegZZ AS INT
  74. FIELD EndZZ AS INT
  75. FIELD AnzKop AS INT
  76. FIELD SchOri AS INT
  77. FIELD SchKop AS INT
  78. FIELD Besr AS INT
  79. FIELD SchBesr AS INT
  80. FIELD iRecid AS RECID.
  81. DEF TEMP-TABLE tAuftraege NO-UNDO
  82. FIELD Aufnr AS INT
  83. FIELD Faknr AS INT
  84. FIELD Knr AS INT
  85. FIELD lOfferte AS LOG
  86. FIELD Fak_Art AS INT
  87. FIELD Auf_Sta AS INT
  88. FIELD iRecid AS RECID.
  89. /* ---------- Globale Variablen ---------------------------------- */
  90. { v8/globvar.i " " " " "SHARED" }
  91. { v8/debivar.i " " " " "SHARED" }
  92. { v8/artivar.i " " " " "SHARED" }
  93. { v8/contvar.i " " " " "SHARED" }
  94. { incl/ttdruckparam.i }
  95. /* _UIB-CODE-BLOCK-END */
  96. &ANALYZE-RESUME
  97. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  98. /* ******************** Preprocessor Definitions ******************** */
  99. &Scoped-define PROCEDURE-TYPE SmartWindow
  100. &Scoped-define DB-AWARE no
  101. &Scoped-define ADM-CONTAINER WINDOW
  102. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  103. &Scoped-define FRAME-NAME F-Main
  104. /* Standard List Definitions */
  105. &Scoped-Define ENABLED-OBJECTS CB_Lager Btn_Verbuchen Btn_Drucken Btn_Prev ~
  106. Btn_Next
  107. &Scoped-Define DISPLAYED-OBJECTS CB_Lager
  108. /* Custom List Definitions */
  109. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  110. /* _UIB-PREPROCESSOR-BLOCK-END */
  111. &ANALYZE-RESUME
  112. /* ************************ Function Prototypes ********************** */
  113. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getKundennummer W-Auftrag
  114. FUNCTION getKundennummer RETURNS INTEGER
  115. ( /* parameter-definitions */ ) FORWARD.
  116. /* _UIB-CODE-BLOCK-END */
  117. &ANALYZE-RESUME
  118. /* *********************** Control Definitions ********************** */
  119. /* Define the widget handle for the window */
  120. DEFINE VAR W-Auftrag AS WIDGET-HANDLE NO-UNDO.
  121. /* Definitions of handles for SmartObjects */
  122. DEFINE VARIABLE h_a-schriften AS HANDLE NO-UNDO.
  123. DEFINE VARIABLE h_b-artbw-kunde AS HANDLE NO-UNDO.
  124. DEFINE VARIABLE h_b-aufgebko AS HANDLE NO-UNDO.
  125. DEFINE VARIABLE h_b-aufze AS HANDLE NO-UNDO.
  126. DEFINE VARIABLE h_b-kundensuche AS HANDLE NO-UNDO.
  127. DEFINE VARIABLE h_f-aufko AS HANDLE NO-UNDO.
  128. DEFINE VARIABLE h_f-aufkoberech AS HANDLE NO-UNDO.
  129. DEFINE VARIABLE h_f-auftrag AS HANDLE NO-UNDO.
  130. DEFINE VARIABLE h_f-dokumentdrucker AS HANDLE NO-UNDO.
  131. DEFINE VARIABLE h_f-kunbest AS HANDLE NO-UNDO.
  132. DEFINE VARIABLE h_f-savko AS HANDLE NO-UNDO.
  133. DEFINE VARIABLE h_f-umsatzanzeige AS HANDLE NO-UNDO.
  134. DEFINE VARIABLE h_folder AS HANDLE NO-UNDO.
  135. DEFINE VARIABLE h_v-verbuchen AS HANDLE NO-UNDO.
  136. /* Definitions of the field level widgets */
  137. DEFINE BUTTON Btn_Drucken
  138. LABEL "&Drucken"
  139. SIZE 16 BY 1.
  140. DEFINE BUTTON Btn_Next
  141. IMAGE-UP FILE "Grafik\nextkartei":U
  142. LABEL "&+"
  143. SIZE 5.6 BY 1.05.
  144. DEFINE BUTTON Btn_Prev
  145. IMAGE-UP FILE "Grafik\prevkartei":U
  146. LABEL "&-"
  147. SIZE 5.6 BY 1.05.
  148. DEFINE BUTTON Btn_Verbuchen
  149. LABEL "Verb&uchen"
  150. SIZE 16 BY 1.
  151. DEFINE VARIABLE CB_Lager AS CHARACTER FORMAT "X(256)":U
  152. LABEL "Lager"
  153. VIEW-AS COMBO-BOX INNER-LINES 5
  154. LIST-ITEM-PAIRS "Item 1","Item 1"
  155. DROP-DOWN-LIST
  156. SIZE 30 BY 1 NO-UNDO.
  157. /* ************************ Frame Definitions *********************** */
  158. DEFINE FRAME F-Main
  159. CB_Lager AT ROW 2.52 COL 16.6 COLON-ALIGNED WIDGET-ID 2
  160. Btn_Verbuchen AT ROW 2.52 COL 81
  161. Btn_Drucken AT ROW 2.52 COL 101.8
  162. Btn_Prev AT ROW 2.52 COL 124.4
  163. Btn_Next AT ROW 2.52 COL 130
  164. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  165. SIDE-LABELS NO-UNDERLINE THREE-D
  166. AT COL 1 ROW 1
  167. SIZE 180 BY 26.19.
  168. /* *********************** Procedure Settings ************************ */
  169. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  170. /* Settings for THIS-PROCEDURE
  171. Type: SmartWindow
  172. Allow: Basic,Browse,DB-Fields,Query,Smart,Window
  173. Design Page: 1
  174. Other Settings: COMPILE
  175. */
  176. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  177. /* ************************* Create Window ************************** */
  178. &ANALYZE-SUSPEND _CREATE-WINDOW
  179. IF SESSION:DISPLAY-TYPE = "GUI":U THEN
  180. CREATE WINDOW W-Auftrag ASSIGN
  181. HIDDEN = YES
  182. TITLE = "Auftragsbearbeitung"
  183. HEIGHT = 26.19
  184. WIDTH = 180
  185. MAX-HEIGHT = 54.19
  186. MAX-WIDTH = 384
  187. VIRTUAL-HEIGHT = 54.19
  188. VIRTUAL-WIDTH = 384
  189. RESIZE = no
  190. SCROLL-BARS = no
  191. STATUS-AREA = no
  192. BGCOLOR = ?
  193. FGCOLOR = ?
  194. THREE-D = yes
  195. MESSAGE-AREA = no
  196. SENSITIVE = yes.
  197. ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
  198. /* END WINDOW DEFINITION */
  199. &ANALYZE-RESUME
  200. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB W-Auftrag
  201. /* ************************* Included-Libraries *********************** */
  202. {src/adm/method/containr.i}
  203. /* _UIB-CODE-BLOCK-END */
  204. &ANALYZE-RESUME
  205. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  206. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  207. /* SETTINGS FOR WINDOW W-Auftrag
  208. VISIBLE,,RUN-PERSISTENT */
  209. /* SETTINGS FOR FRAME F-Main
  210. FRAME-NAME */
  211. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(W-Auftrag)
  212. THEN W-Auftrag:HIDDEN = yes.
  213. /* _RUN-TIME-ATTRIBUTES-END */
  214. &ANALYZE-RESUME
  215. /* ************************ Control Triggers ************************ */
  216. &Scoped-define SELF-NAME W-Auftrag
  217. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL W-Auftrag W-Auftrag
  218. ON ENTRY OF W-Auftrag /* Auftragsbearbeitung */
  219. DO:
  220. Aktive = TRUE.
  221. END.
  222. /* _UIB-CODE-BLOCK-END */
  223. &ANALYZE-RESUME
  224. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL W-Auftrag W-Auftrag
  225. ON LEAVE OF W-Auftrag /* Auftragsbearbeitung */
  226. DO:
  227. Aktive = FALSE.
  228. END.
  229. /* _UIB-CODE-BLOCK-END */
  230. &ANALYZE-RESUME
  231. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL W-Auftrag W-Auftrag
  232. ON WINDOW-CLOSE OF W-Auftrag /* Auftragsbearbeitung */
  233. DO:
  234. RUN WINDOWCLOSE.
  235. RETURN NO-APPLY.
  236. END.
  237. /* _UIB-CODE-BLOCK-END */
  238. &ANALYZE-RESUME
  239. &Scoped-define SELF-NAME Btn_Drucken
  240. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Drucken W-Auftrag
  241. ON CHOOSE OF Btn_Drucken IN FRAME F-Main /* Drucken */
  242. DO:
  243. DEF VAR VProgname AS CHAR NO-UNDO.
  244. DEF VAR VListnr AS INT NO-UNDO.
  245. DEF VAR XDateiName AS CHAR NO-UNDO.
  246. DEF VAR VSamm_Nr AS INT NO-UNDO.
  247. DEF VAR Schacht AS INT NO-UNDO.
  248. DEF VAR cUser AS CHAR NO-UNDO.
  249. DEF VAR VFaknr AS INT NO-UNDO.
  250. DEF VAR hAuftraege AS HANDLE NO-UNDO.
  251. DEF VAR vonDatum AS DATE NO-UNDO.
  252. DEF VAR bisDatum AS DATE NO-UNDO.
  253. DEF VAR FakDatum AS DATE NO-UNDO.
  254. DEF VAR iRuestArt AS INT NO-UNDO.
  255. DEF VAR cBenutzer AS CHAR NO-UNDO.
  256. DEF VAR lError AS LOG NO-UNDO.
  257. DEF VAR lGedruckt AS LOG NO-UNDO.
  258. DEF VAR cRetVal AS CHAR NO-UNDO.
  259. RUN get-attribute ('current-page':U).
  260. ASeite = INTEGER(RETURN-VALUE).
  261. cUser = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR.
  262. cBenutzer = DYNAMIC-FUNCTION('getBenutzer':U) NO-ERROR.
  263. FOR EACH WAufko:
  264. DELETE WAufko.
  265. END.
  266. CREATE WAufko.
  267. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR.
  268. ASSIGN XDateiName = Steuer.Fwc10
  269. iRuestArt = Steuer.RuestArt.
  270. CRecid = 0.
  271. lGedruckt = FALSE.
  272. EMPTY TEMP-TABLE tAuftraege.
  273. hAuftraege = TEMP-TABLE tAuftraege:DEFAULT-BUFFER-HANDLE.
  274. IF ASeite = 9 THEN DO:
  275. DYNAMIC-FUNCTION('getAuftraege':U IN h_f-savko, hAuftraege ).
  276. FOR EACH tAuftraege
  277. BREAK BY tAuftraege.Faknr:
  278. IF NOT FIRST-OF ( tAuftraege.Faknr ) THEN DELETE tAuftraege.
  279. END.
  280. XDateiName = XDateiName + '-sk'.
  281. FVerbucht = TRUE.
  282. FIND FIRST tAuftraege NO-ERROR.
  283. IF AVAILABLE tAuftraege THEN DO:
  284. RUN VIPER_DRUCK ( tAuftraege.Knr, tAuftraege.Aufnr ).
  285. IF RETURN-VALUE = '' THEN RETURN NO-APPLY.
  286. END.
  287. END.
  288. ELSE DO:
  289. DYNAMIC-FUNCTION('getAuftraege':U IN h_f-aufko, hAuftraege ).
  290. FOR EACH tAuftraege
  291. WHERE tAuftraege.Faknr <> 0
  292. BREAK BY tAuftraege.Faknr:
  293. IF NOT FIRST-OF ( tAuftraege.Faknr ) THEN DELETE tAuftraege.
  294. END.
  295. FVerbucht = FALSE.
  296. END.
  297. FIND FIRST tAuftraege NO-ERROR.
  298. IF iRuestArt > 0 AND
  299. NOT tAuftraege.lOfferte THEN DO:
  300. RUN AUFBEREITUNG_RUESTPAPIER NO-ERROR.
  301. END.
  302. FIND FIRST tAuftraege NO-ERROR.
  303. FIND FIRST Tabel NO-LOCK
  304. WHERE Tabel.Firma = GVFirma
  305. AND Tabel.RecArt = 'FAKART'
  306. AND Tabel.CodeI = tAuftraege.Fak_Art NO-ERROR.
  307. CASE cInstallation:
  308. WHEN 'oswald' THEN DO:
  309. IF Tabel.Int_3 >= 3 AND
  310. tAuftraege.Fak_Art <> 30 /*AND
  311. NOT FVerbucht */THEN DO:
  312. RUN DRUCKEN IN THIS-PROCEDURE ( tAuftraege.iRecid,
  313. tAuftraege.Aufnr,
  314. STRING(FVerbucht,'j/n'),
  315. OUTPUT cRetVal ).
  316. IF cRetVal = '' THEN RUN WEITER ( tAuftraege.Aufnr ) NO-ERROR.
  317. lGedruckt = TRUE.
  318. END.
  319. END.
  320. END.
  321. DO WHILE cInstallation BEGINS 'Huber' :
  322. IF AVAILABLE tAuftraege AND
  323. tAuftraege.lOfferte THEN LEAVE.
  324. IF NOT AVAILABLE tAuftraege THEN LEAVE.
  325. IF tAuftraege.Fak_Art <> 80 THEN LEAVE.
  326. IF tAuftraege.Auf_Sta > 1 THEN LEAVE.
  327. REPEAT TRANSACTION:
  328. IF tAuftraege.Auf_Sta < 1 THEN RUN WEITER ( tAuftraege.Aufnr ).
  329. LEAVE.
  330. END.
  331. LEAVE.
  332. END.
  333. DO WHILE NOT lGedruckt:
  334. DruckProgramm = 'v8/c-p_' + XDateiName + '.r'.
  335. DruckProgramm = SEARCH(DruckProgramm).
  336. IF DruckProgramm <> ? THEN LEAVE.
  337. DruckProgramm = 'v8/c-p_' + XDateiName + '.w'.
  338. DruckProgramm = SEARCH(DruckProgramm).
  339. IF DruckProgramm <> ? THEN LEAVE.
  340. DruckProgramm = 'd-p_' + XDateiName + '.r'.
  341. DruckProgramm = SEARCH(DruckProgramm).
  342. IF DruckProgramm <> ? THEN LEAVE.
  343. DruckProgramm = 'd-p_' + XDateiName + '.w'.
  344. DruckProgramm = SEARCH(DruckProgramm).
  345. IF DruckProgramm <> ? THEN LEAVE.
  346. LEAVE.
  347. END.
  348. IF DruckProgramm = ? THEN RETURN NO-APPLY.
  349. FOR EACH tAuftraege WHILE NOT lGedruckt:
  350. IF fVerbucht THEN DO:
  351. FIND BSavko NO-LOCK USE-INDEX Savko-k1
  352. WHERE BSavko.Firma = GVFirma
  353. AND BSavko.Aufnr = tAuftraege.Aufnr NO-ERROR.
  354. IF NOT AVAILABLE BSavko THEN NEXT.
  355. FIND FIRST WAufko.
  356. BUFFER-COPY BSavko TO WAufko.
  357. ASSIGN VFakart = WAufko.Fak_Art
  358. VAufsta = WAufko.Auf_Sta
  359. VKnr = WAufko.Fak_Knr
  360. BKnr = WAufko.Fak_Knr
  361. VAufnr = 0
  362. BAufnr = 999999
  363. VFaknr = WAufko.Faknr
  364. BLiefDat = WAufko.Lief_Datum
  365. VFakdat = WAufko.Fak_Datum.
  366. CRecid = RECID(BSavko).
  367. vonDatum = DATE(MONTH(BSavko.Lief_Datum),01,YEAR(BSavko.Lief_Datum)).
  368. bisDatum = vonDatum + 27.
  369. DO WHILE TRUE:
  370. IF MONTH(bisDatum + 1) <> MONTH(bisDatum) THEN LEAVE.
  371. bisDatum = bisDatum + 1.
  372. END.
  373. IF BSavko.Fak_Datum <> ? THEN FakDatum = BSavko.Fak_Datum.
  374. ELSE FakDatum = bisDatum.
  375. Linktext = STRING(BSavko.Fak_Art,'999')
  376. + ';'
  377. + STRING(BSavko.Auf_Sta,'999')
  378. + ';'
  379. + STRING(BSavko.Fak_Knr,'999999')
  380. + ';'
  381. + STRING(BSavko.Fak_Knr,'999999')
  382. + ";"
  383. + STRING(vonDatum ,"99.99.9999")
  384. + ";"
  385. + STRING(bisDatum ,"99.99.9999")
  386. + ";"
  387. + STRING(FakDatum ,"99.99.9999").
  388. END.
  389. ELSE DO:
  390. FIND BAufko NO-LOCK USE-INDEX Aufko-k1
  391. WHERE BAufko.Firma = GVFirma
  392. AND BAufko.Aufnr = tAuftraege.Aufnr NO-ERROR.
  393. IF NOT AVAILABLE BAufko THEN NEXT.
  394. FIND FIRST WAufko.
  395. BUFFER-COPY BAufko TO WAufko.
  396. CRecid = RECID(BAufko).
  397. END.
  398. XVAufnr = tAuftraege.Aufnr.
  399. RUN LESEN_AUFKO_TABELLE.
  400. FIND FIRST WAufko.
  401. IF NOT ok THEN DO:
  402. MESSAGE 'Für dieses Formular wurde kein Drucker zugeteilt'
  403. VIEW-AS ALERT-BOX.
  404. RETURN NO-APPLY.
  405. END.
  406. IF ATabel.Int_3 = 4 THEN VSammFak = TRUE.
  407. ELSE VSammFak = FALSE.
  408. IF WAufko.AlsOfferte THEN VSammFak = FALSE.
  409. DO WHILE TRUE:
  410. IF NOT VSammFak THEN DO:
  411. VFakart = WAufko.Fak_Art.
  412. VAufsta = WAufko.Auf_Sta.
  413. VKnr = WAufko.Fak_Knr.
  414. BKnr = WAufko.Fak_Knr.
  415. VAufnr = WAufko.Aufnr.
  416. BAufnr = WAufko.Aufnr.
  417. VLiefDat = WAufko.Lief_Datum.
  418. BLiefDat = WAufko.Lief_Datum.
  419. VFakdat = WAufko.Fak_Datum.
  420. LEAVE.
  421. END.
  422. IF NOT fVerbucht THEN DO:
  423. Linktext = STRING(cRecid,"99999999").
  424. RUN "v8/d-fakauswahl.w" ( INPUT FVerbucht ).
  425. END.
  426. IF Linktext = '' THEN DO:
  427. ENABLE Btn_Drucken.
  428. RETURN NO-APPLY.
  429. END.
  430. VFakart = INTEGER(ENTRY(1, Linktext, ";")).
  431. VAufsta = INTEGER(ENTRY(2, Linktext, ";")).
  432. VKnr = INTEGER(ENTRY(3, Linktext, ";")).
  433. BKnr = INTEGER(ENTRY(4, Linktext, ";")).
  434. XDatum = ENTRY(5, Linktext, ";").
  435. VLiefDat = DATE(INTEGER(SUBSTRING(XDatum,04,02)),
  436. INTEGER(SUBSTRING(XDatum,01,02)),
  437. INTEGER(SUBSTRING(XDatum,07,04))).
  438. XDatum = ENTRY(6, Linktext, ";").
  439. BLiefDat = DATE(INTEGER(SUBSTRING(XDatum,04,02)),
  440. INTEGER(SUBSTRING(XDatum,01,02)),
  441. INTEGER(SUBSTRING(XDatum,07,04))).
  442. XDatum = ENTRY(7, Linktext, ";").
  443. VFakDat = DATE(INTEGER(SUBSTRING(XDatum,04,02)),
  444. INTEGER(SUBSTRING(XDatum,01,02)),
  445. INTEGER(SUBSTRING(XDatum,07,04))).
  446. VAufnr = 000000.
  447. BAufnr = 999999.
  448. LEAVE.
  449. END.
  450. EMPTY TEMP-TABLE tAufko.
  451. IF FVerbucht THEN DO:
  452. FOR EACH Savko NO-LOCK USE-INDEX Savko-k11
  453. WHERE Savko.Firma = GVFirma
  454. AND Savko.Faknr = VFaknr :
  455. CREATE tAufko.
  456. ASSIGN tAufko.Knr = Savko.Fak_Knr
  457. tAufko.Samm_Nr = Savko.Samm_Nr
  458. tAufko.Aufnr = Savko.Aufnr
  459. tAufko.RID = RECID(Savko).
  460. END.
  461. END.
  462. ELSE DO:
  463. FOR EACH Aufko NO-LOCK USE-INDEX Aufko-k5
  464. WHERE Aufko.Firma = GVFirma
  465. AND Aufko.Fak_Art = VFakart
  466. AND Aufko.Auf_Sta = VAufsta
  467. AND Aufko.Fak_Knr >= VKnr
  468. AND Aufko.Fak_Knr <= BKnr
  469. AND Aufko.Lief_Datum >= VLiefDat
  470. AND Aufko.Lief_Datum <= BLiefDat
  471. AND Aufko.Aufnr >= VAufnr
  472. AND Aufko.Aufnr <= BAufnr :
  473. CREATE tAufko.
  474. ASSIGN tAufko.Knr = Aufko.Fak_Knr
  475. tAufko.Samm_Nr = Aufko.Samm_Nr
  476. tAufko.Aufnr = Aufko.Aufnr
  477. tAufko.RID = RECID(Aufko).
  478. IF tAufko.Samm_Nr = 0 THEN tAufko.Samm_Nr = Aufko.Aufnr.
  479. END.
  480. END.
  481. FOR EACH tAufko BREAK BY tAufko.Knr
  482. BY tAufko.Samm_Nr
  483. BY tAufko.Aufnr :
  484. IF NOT FVerbucht THEN DO:
  485. REPEAT TRANSACTION:
  486. FIND Aufko WHERE RECID(Aufko) = tAufko.RID.
  487. Aufko.Fak_Datum = VFakDat.
  488. RELEASE Aufko.
  489. LEAVE.
  490. END.
  491. END.
  492. IF FIRST-OF ( tAufko.Samm_Nr ) THEN NEXT.
  493. DELETE tAufko.
  494. END.
  495. FOR EACH tAufko:
  496. DO WHILE FVerbucht = FALSE:
  497. IF NOT VSammFak THEN LEAVE.
  498. VSamm_Nr = 0.
  499. /* Sammelrechnungen ausserhalb des Datums neue Sammelnummer geben */
  500. FOR EACH Aufko USE-INDEX Aufko-k5
  501. WHERE Aufko.Firma = GVFirma
  502. AND Aufko.Fak_Art = VFakart
  503. AND Aufko.Samm_Nr = tAufko.Samm_Nr
  504. AND Aufko.Fak_Knr = tAufko.Knr
  505. AND Aufko.Lief_Datum > BLiefDat TRANSACTION:
  506. IF VSamm_Nr = 0 THEN DO:
  507. VSamm_Nr = DYNAMIC-FUNCTION('createSammNr':U, GVFirma ).
  508. END.
  509. ASSIGN Aufko.Samm_Nr = VSamm_Nr
  510. Aufko.Gedruckt = FALSE
  511. Aufko.Faknr = 0.
  512. RELEASE Aufko.
  513. END.
  514. LEAVE.
  515. END.
  516. XVAufnr = tAufko.Aufnr.
  517. CRecid = tAufko.RID.
  518. VRuest = 0.
  519. IF NOT FVerbucht THEN DO:
  520. FIND BAufko NO-LOCK WHERE RECID(BAufko) = tAufko.RID.
  521. FIND FIRST WAufko.
  522. BUFFER-COPY BAufko TO WAufko.
  523. END.
  524. ELSE DO:
  525. FIND BSavko NO-LOCK WHERE RECID(BSavko) = tAufko.RID.
  526. FIND FIRST WAufko.
  527. BUFFER-COPY BSavko TO WAufko.
  528. END.
  529. RUN LESEN_AUFKO_TABELLE.
  530. IF NOT ok THEN NEXT.
  531. REPEAT TRANSACTION:
  532. VProgname = TRIM(cUser) + '!AUFTRAG'.
  533. FIND FIRST Listen USE-INDEX Listen-k1
  534. WHERE Listen.Firma = GVFirma
  535. AND Listen.Progname = VProgname
  536. AND Listen.Listfl = '' NO-ERROR.
  537. IF NOT AVAILABLE Listen THEN DO:
  538. FIND LAST Listen USE-INDEX Listen-k1
  539. WHERE Listen.Firma = GVFirma NO-LOCK NO-ERROR.
  540. IF AVAILABLE Listen THEN VListnr = Listen.Listnr + 1.
  541. ELSE VListnr = 1.
  542. CREATE Listen.
  543. ASSIGN Listen.Firma = GVFirma
  544. Listen.Listnr = VListnr
  545. Listen.Progname = VProgname
  546. Listen.Listfl = ''
  547. Listen.Jahr = GVJahr
  548. Listen.Sprcd = GVSprcd
  549. Listen.Sort = 1
  550. Listen.ProgWahl = 1.
  551. END.
  552. Listen.Listfl = 'A'.
  553. ARecid = RECID(Listen).
  554. FIND LiDruck USE-INDEX LiDruck-k1
  555. WHERE LiDruck.Firma = GVFirma
  556. AND LiDruck.Listnr = Listen.Listnr
  557. AND LiDruck.ProgWahl = Listen.ProgWahl NO-ERROR.
  558. IF NOT AVAILABLE LiDruck THEN DO:
  559. CREATE LiDruck.
  560. ASSIGN LiDruck.Firma = GVFirma
  561. LiDruck.Listnr = Listen.Listnr
  562. LiDruck.ProgWahl = Listen.ProgWahl
  563. LiDruck.Listprog = 'AUFTRAG' + STRING(Listen.ProgWahl,'99')
  564. LiDruck.ListCopy = 1
  565. LiDruck.Schacht = 0
  566. LiDruck.Listlq = FALSE.
  567. END.
  568. BRecid = RECID(LiDruck).
  569. FIND FIRST WDrucker.
  570. ASSIGN LiDruck.ListDru = WDrucker.Drucker
  571. LiDruck.ListBild = WDrucker.Schrift
  572. LiDruck.Listtzz = WDrucker.TotZZ
  573. LiDruck.Listkzz = WDrucker.BegZZ
  574. LiDruck.Listfzz = WDrucker.EndZZ
  575. LiDruck.ListCopy = WDrucker.AnzKop
  576. LiDruck.Schacht = WDrucker.SchOri
  577. VBesr = WDrucker.Besr
  578. Schacht = WDrucker.SchBesr.
  579. IF LiDruck.ListCopy = 0 THEN LiDruck.ListCopy = 1.
  580. RELEASE Listen.
  581. RELEASE LiDruck.
  582. FIND LAST Tabel NO-LOCK USE-INDEX Tabel-k1
  583. WHERE Tabel.Firma = GVFirma
  584. AND Tabel.RecArt = 'AUFDRUCK'
  585. AND Tabel.CodeC = cUser NO-ERROR.
  586. IF AVAILABLE Tabel THEN i1 = Tabel.CodeI + 1.
  587. ELSE i1 = 1.
  588. CREATE Tabel.
  589. ASSIGN Tabel.Firma = GVFirma
  590. Tabel.RecArt = 'AUFDRUCK'
  591. Tabel.CodeC = cUser
  592. Tabel.CodeI = i1
  593. Tabel.Sprcd = 1
  594. Tabel.Int_1 = ARecid
  595. Tabel.Int_2 = BRecid
  596. Tabel.Int_3 = CRecid
  597. Tabel.Dec_1 = VBesr
  598. Tabel.Dec_2 = INTEGER(WDrucker.iRecid)
  599. Tabel.Dec_3 = Schacht
  600. Tabel.Bez1 = ''
  601. Tabel.Bez2 = VDokument
  602. Tabel.BezL = SUBSTITUTE('&1;&2;&3;&4',
  603. WDrucker.SchOri,
  604. WDrucker.SchKop,
  605. WDrucker.SchBesr,
  606. WDrucker.Besr).
  607. RELEASE Tabel.
  608. IF WAufko.AlsOfferte THEN LEAVE.
  609. ok = FALSE.
  610. IF VRuest > 0 THEN RUN LESEN_RUEST_TABELLE.
  611. IF NOT ok THEN LEAVE.
  612. END.
  613. END. /* FOR EACH tAufko */
  614. RUN VALUE(DruckProgramm).
  615. END.
  616. IF ASeite = 2 THEN DO:
  617. RUN select-page ( 1 ).
  618. RUN view-page ( 1 ).
  619. RUN OPEN_AUFKO IN h_f-aufko.
  620. RETURN NO-APPLY.
  621. END.
  622. IF ASeite = 0 THEN DO:
  623. RUN select-page ( 1 ).
  624. RUN view-page ( 1 ).
  625. RUN OPEN_AUFKO IN h_f-aufko.
  626. RETURN NO-APPLY.
  627. END.
  628. IF ASeite = 1 THEN DO:
  629. RUN OPEN_AUFKO IN h_f-aufko.
  630. RETURN NO-APPLY.
  631. END.
  632. END.
  633. /* _UIB-CODE-BLOCK-END */
  634. &ANALYZE-RESUME
  635. &Scoped-define SELF-NAME Btn_Next
  636. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Next W-Auftrag
  637. ON CHOOSE OF Btn_Next IN FRAME F-Main /* + */
  638. DO:
  639. IF VUpdate THEN RETURN NO-APPLY.
  640. IF NOT Aktive THEN RETURN NO-APPLY.
  641. RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'Next_Page':U ).
  642. RETURN NO-APPLY.
  643. END.
  644. /* _UIB-CODE-BLOCK-END */
  645. &ANALYZE-RESUME
  646. &Scoped-define SELF-NAME Btn_Prev
  647. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Prev W-Auftrag
  648. ON CHOOSE OF Btn_Prev IN FRAME F-Main /* - */
  649. DO:
  650. IF VUpdate THEN RETURN NO-APPLY.
  651. IF NOT Aktive THEN RETURN NO-APPLY.
  652. RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'Prev_Page':U ).
  653. RETURN NO-APPLY.
  654. END.
  655. /* _UIB-CODE-BLOCK-END */
  656. &ANALYZE-RESUME
  657. &Scoped-define SELF-NAME Btn_Verbuchen
  658. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Verbuchen W-Auftrag
  659. ON CHOOSE OF Btn_Verbuchen IN FRAME F-Main /* Verbuchen */
  660. DO:
  661. FIND Aufko USE-INDEX Aufko-k1
  662. WHERE Aufko.Firma = GVFirma
  663. AND Aufko.Aufnr = XVAufnr NO-LOCK NO-ERROR.
  664. IF Aufko.Gedruckt = FALSE THEN DO:
  665. Ja = DYNAMIC-FUNCTION('ANTWORT_NEIN':U, INPUT 1066 ) NO-ERROR.
  666. IF NOT Ja THEN RETURN NO-APPLY.
  667. LVRecid = RECID(Aufko).
  668. REPEAT TRANSACTION:
  669. IF Aufko.Faknr = 0 THEN DO:
  670. MESSAGE 'Rechnung muss zuerst gedruckt werden'
  671. VIEW-AS ALERT-BOX.
  672. RETURN NO-APPLY.
  673. END.
  674. FOR EACH XAufko USE-INDEX Aufko-k5
  675. WHERE XAufko.Firma = Aufko.Firma
  676. AND XAUfko.Fak_Art = Aufko.Fak_Art
  677. AND XAufko.Samm_Nr = Aufko.Samm_Nr:
  678. XAufko.Gedruckt = TRUE.
  679. RELEASE XAufko.
  680. END.
  681. LEAVE.
  682. END.
  683. FIND Aufko WHERE RECID(Aufko) = LVRecid NO-LOCK NO-ERROR.
  684. END.
  685. IF Aufko.Faknr = 0 THEN DO:
  686. RUN FEHLER ( INPUT 1067 ).
  687. APPLY 'ENTRY' TO Btn_Verbuchen.
  688. RETURN NO-APPLY.
  689. END.
  690. FIND FIRST Debop NO-LOCK
  691. WHERE Debop.Firma = GVFirma
  692. AND Debop.Faknr = Aufko.Faknr NO-ERROR.
  693. IF AVAILABLE Debop THEN DO:
  694. MESSAGE 'Rechnungsnummer ist ungültig. Eine solche Nummer besteht bereits'
  695. VIEW-AS ALERT-BOX ERROR.
  696. APPLY 'ENTRY' TO Btn_Verbuchen.
  697. RETURN NO-APPLY.
  698. END.
  699. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  700. WHERE Tabel.Firma = GVFirma
  701. AND Tabel.RecArt = 'FAKART'
  702. AND Tabel.CodeC = ''
  703. AND Tabel.CodeI = Aufko.Fak_Art
  704. AND Tabel.Sprcd = 1 NO-ERROR.
  705. DO WHILE TRUE:
  706. IF Tabel.INT_3 = 20 THEN LEAVE. /* Kasse */
  707. IF Tabel.Int_3 = 3 THEN LEAVE. /* Einzelrechnung */
  708. IF Tabel.Int_3 = 4 AND /* Sammelrechnung */
  709. Aufko.Auf_Sta > 4 THEN LEAVE.
  710. { v8/fehler.i "0313" }
  711. APPLY 'ENTRY' TO Btn_Verbuchen.
  712. RETURN NO-APPLY.
  713. END.
  714. XVAufnr = Aufko.Aufnr.
  715. XVKnr = Aufko.Fak_KNr.
  716. LVDat = Aufko.Fak_Dat.
  717. Linknr = 9.
  718. RUN "v8/d-verbuchen.w".
  719. Linknr = 0.
  720. RUN state-changed IN THIS-PROCEDURE ( INPUT THIS-PROCEDURE, INPUT 'Seite_1_Open':U ).
  721. RETURN NO-APPLY.
  722. END.
  723. /* _UIB-CODE-BLOCK-END */
  724. &ANALYZE-RESUME
  725. &Scoped-define SELF-NAME CB_Lager
  726. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Lager W-Auftrag
  727. ON VALUE-CHANGED OF CB_Lager IN FRAME F-Main /* Lager */
  728. DO:
  729. DEF VAR cBenutzer AS CHAR NO-UNDO.
  730. RUN SET_LAGER in h_f-Aufko ( INTEGER(SELF:SCREEN-VALUE) ).
  731. END.
  732. /* _UIB-CODE-BLOCK-END */
  733. &ANALYZE-RESUME
  734. &UNDEFINE SELF-NAME
  735. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK W-Auftrag
  736. /* *************************** Main Block *************************** */
  737. DEF VAR xString AS CHAR NO-UNDO.
  738. XVDruArt = 0.
  739. GET-KEY-VALUE SECTION 'GrundEinstellungen'
  740. KEY 'EscapeAufAuftrag'
  741. VALUE xString.
  742. IF xString = ? THEN xString = 'nein'.
  743. IF xString BEGINS 'n' THEN EscFlag = FALSE.
  744. ELSE EscFlag = TRUE .
  745. EndFlag = FALSE.
  746. cInstallation = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR.
  747. cBenutzer = DYNAMIC-FUNCTION('getBenutzer':U) NO-ERROR.
  748. ON 'ALT-+':U OF {&WINDOW-NAME} ANYWHERE
  749. DO:
  750. APPLY 'CHOOSE' TO Btn_Next IN FRAME {&FRAME-NAME}.
  751. RETURN NO-APPLY.
  752. END.
  753. ON 'ALT-CURSOR-RIGHT':U OF {&WINDOW-NAME} ANYWHERE
  754. DO:
  755. APPLY 'CHOOSE' TO Btn_Next IN FRAME {&FRAME-NAME}.
  756. RETURN NO-APPLY.
  757. END.
  758. ON 'ALT--':U OF {&WINDOW-NAME} ANYWHERE
  759. DO:
  760. APPLY 'CHOOSE' TO Btn_Prev IN FRAME {&FRAME-NAME}.
  761. RETURN NO-APPLY.
  762. END.
  763. ON 'ALT-CURSOR-LEFT':U OF {&WINDOW-NAME} ANYWHERE
  764. DO:
  765. APPLY 'CHOOSE' TO Btn_Prev IN FRAME {&FRAME-NAME}.
  766. RETURN NO-APPLY.
  767. END.
  768. ON 'END-ERROR':U OF {&WINDOW-NAME} ANYWHERE
  769. DO:
  770. EndFlag = TRUE.
  771. RUN WINDOWCLOSE.
  772. RETURN NO-APPLY.
  773. END.
  774. ON 'ALT-1':U OF {&WINDOW-NAME} ANYWHERE
  775. DO:
  776. IF VUpdate THEN RETURN NO-APPLY.
  777. RUN select-page(1).
  778. RUN view-page (1).
  779. END.
  780. ON 'ALT-2':U OF {&WINDOW-NAME} ANYWHERE
  781. DO:
  782. IF VUpdate THEN RETURN NO-APPLY.
  783. RUN select-page(2).
  784. RUN view-page (2).
  785. END.
  786. ON 'ALT-3':U OF {&WINDOW-NAME} ANYWHERE
  787. DO:
  788. IF VUpdate THEN RETURN NO-APPLY.
  789. RUN select-page(3).
  790. RUN view-page (3).
  791. END.
  792. ON 'U9':U OF {&WINDOW-NAME} ANYWHERE
  793. DO:
  794. APPLY 'CHOOSE' TO Btn_Drucken IN FRAME {&FRAME-NAME}.
  795. RETURN.
  796. END.
  797. ON 'INSERT-MODE':U OF {&WINDOW-NAME} ANYWHERE
  798. DO:
  799. RUN get-attribute ('current-page':U).
  800. AktSeite = INTEGER(RETURN-VALUE).
  801. IF AktSeite = 1 THEN RUN NEUER_AUFTRAG IN h_f-aufko.
  802. IF AktSeite = 2 THEN RUN NEUE_ZEILE IN h_b-aufze.
  803. RETURN.
  804. END.
  805. /* Include custom Main Block code for SmartWindows. */
  806. {src/adm/template/windowmn.i}
  807. FFolder = TRUE.
  808. VUpdate = FALSE.
  809. /* _UIB-CODE-BLOCK-END */
  810. &ANALYZE-RESUME
  811. /* ********************** Internal Procedures *********************** */
  812. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects W-Auftrag _ADM-CREATE-OBJECTS
  813. PROCEDURE adm-create-objects :
  814. /*------------------------------------------------------------------------------
  815. Purpose: Create handles for all SmartObjects used in this procedure.
  816. After SmartObjects are initialized, then SmartLinks are added.
  817. Parameters: <none>
  818. ------------------------------------------------------------------------------*/
  819. DEFINE VARIABLE adm-current-page AS INTEGER NO-UNDO.
  820. RUN get-attribute IN THIS-PROCEDURE ('Current-Page':U).
  821. ASSIGN adm-current-page = INTEGER(RETURN-VALUE).
  822. CASE adm-current-page:
  823. WHEN 0 THEN DO:
  824. RUN init-object IN THIS-PROCEDURE (
  825. INPUT 'src_dlcv91c/template/aufragsfolder.w':U ,
  826. INPUT FRAME F-Main:HANDLE ,
  827. INPUT 'FOLDER-LABELS = ':U + 'Kopf|Zeile|Geb.Rück.|Aufträge|Zahlung|Verkäufe|Drucker|Faxliste|Verbuchte|Umsätze' + ',
  828. FOLDER-TAB-TYPE = 2':U ,
  829. OUTPUT h_folder ).
  830. RUN set-position IN h_folder ( 1.00 , 1.00 ) NO-ERROR.
  831. RUN set-size IN h_folder ( 26.19 , 180.00 ) NO-ERROR.
  832. /* Links to SmartFolder h_folder. */
  833. RUN add-link IN adm-broker-hdl ( h_folder , 'Page':U , THIS-PROCEDURE ).
  834. /* Adjust the tab order of the smart objects. */
  835. RUN adjust-tab-order IN adm-broker-hdl ( h_folder ,
  836. CB_Lager:HANDLE IN FRAME F-Main , 'BEFORE':U ).
  837. END. /* Page 0 */
  838. WHEN 1 THEN DO:
  839. RUN init-object IN THIS-PROCEDURE (
  840. INPUT 'v8/f-aufko.w':U ,
  841. INPUT FRAME F-Main:HANDLE ,
  842. INPUT 'Layout = ':U ,
  843. OUTPUT h_f-aufko ).
  844. RUN set-position IN h_f-aufko ( 3.86 , 3.20 ) NO-ERROR.
  845. /* Size in UIB: ( 22.91 , 136.80 ) */
  846. /* Links to SmartFrame h_f-aufko. */
  847. RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_f-aufko ).
  848. /* Adjust the tab order of the smart objects. */
  849. RUN adjust-tab-order IN adm-broker-hdl ( h_f-aufko ,
  850. Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ).
  851. END. /* Page 1 */
  852. WHEN 2 THEN DO:
  853. RUN init-object IN THIS-PROCEDURE (
  854. INPUT 'v8/b-aufze_v8.w':U ,
  855. INPUT FRAME F-Main:HANDLE ,
  856. INPUT 'Layout = ':U ,
  857. OUTPUT h_b-aufze ).
  858. RUN set-position IN h_b-aufze ( 3.95 , 6.20 ) NO-ERROR.
  859. RUN set-size IN h_b-aufze ( 21.52 , 160.40 ) NO-ERROR.
  860. /* Links to SmartBrowser h_b-aufze. */
  861. RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_b-aufze ).
  862. RUN add-link IN adm-broker-hdl ( h_b-aufze , 'State':U , THIS-PROCEDURE ).
  863. /* Adjust the tab order of the smart objects. */
  864. RUN adjust-tab-order IN adm-broker-hdl ( h_b-aufze ,
  865. Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ).
  866. END. /* Page 2 */
  867. WHEN 3 THEN DO:
  868. RUN init-object IN THIS-PROCEDURE (
  869. INPUT 'v8/bx-aufgebko.w':U ,
  870. INPUT FRAME F-Main:HANDLE ,
  871. INPUT 'Layout = ':U ,
  872. OUTPUT h_b-aufgebko ).
  873. RUN set-position IN h_b-aufgebko ( 4.05 , 2.60 ) NO-ERROR.
  874. RUN set-size IN h_b-aufgebko ( 21.19 , 170.00 ) NO-ERROR.
  875. /* Links to SmartBrowser h_b-aufgebko. */
  876. RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_b-aufgebko ).
  877. /* Adjust the tab order of the smart objects. */
  878. RUN adjust-tab-order IN adm-broker-hdl ( h_b-aufgebko ,
  879. Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ).
  880. END. /* Page 3 */
  881. WHEN 4 THEN DO:
  882. RUN init-object IN THIS-PROCEDURE (
  883. INPUT 'v8/f-auftrag.w':U ,
  884. INPUT FRAME F-Main:HANDLE ,
  885. INPUT 'Layout = ':U ,
  886. OUTPUT h_f-auftrag ).
  887. RUN set-position IN h_f-auftrag ( 4.71 , 6.40 ) NO-ERROR.
  888. /* Size in UIB: ( 15.76 , 127.60 ) */
  889. /* Links to SmartFrame h_f-auftrag. */
  890. RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_f-auftrag ).
  891. /* Adjust the tab order of the smart objects. */
  892. RUN adjust-tab-order IN adm-broker-hdl ( h_f-auftrag ,
  893. Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ).
  894. END. /* Page 4 */
  895. WHEN 5 THEN DO:
  896. RUN init-object IN THIS-PROCEDURE (
  897. INPUT 'v8/f-aufkoberech.w':U ,
  898. INPUT {&WINDOW-NAME} ,
  899. INPUT 'Layout = ':U ,
  900. OUTPUT h_f-aufkoberech ).
  901. RUN set-position IN h_f-aufkoberech ( 3.81 , 9.00 ) NO-ERROR.
  902. /* Size in UIB: ( 21.52 , 123.20 ) */
  903. /* Links to SmartFrame h_f-aufkoberech. */
  904. RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_f-aufkoberech ).
  905. END. /* Page 5 */
  906. WHEN 6 THEN DO:
  907. RUN init-object IN THIS-PROCEDURE (
  908. INPUT 'v8/b-artbw-kunde.w':U ,
  909. INPUT {&WINDOW-NAME} ,
  910. INPUT 'Initial-Lock = NO-LOCK,
  911. Hide-on-Init = no,
  912. Disable-on-Init = no,
  913. Layout = ,
  914. Create-On-Add = ?':U ,
  915. OUTPUT h_b-artbw-kunde ).
  916. RUN set-position IN h_b-artbw-kunde ( 4.24 , 7.20 ) NO-ERROR.
  917. RUN set-size IN h_b-artbw-kunde ( 20.71 , 167.00 ) NO-ERROR.
  918. /* Links to SmartBrowser h_b-artbw-kunde. */
  919. RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_b-artbw-kunde ).
  920. END. /* Page 6 */
  921. WHEN 7 THEN DO:
  922. RUN init-object IN THIS-PROCEDURE (
  923. INPUT 'v8/a-schriften.w':U ,
  924. INPUT {&WINDOW-NAME} ,
  925. INPUT 'Layout = ':U ,
  926. OUTPUT h_a-schriften ).
  927. RUN set-position IN h_a-schriften ( 14.10 , 8.60 ) NO-ERROR.
  928. RUN set-size IN h_a-schriften ( 8.33 , 131.00 ) NO-ERROR.
  929. RUN init-object IN THIS-PROCEDURE (
  930. INPUT 'v8/f-dokumentdrucker.w':U ,
  931. INPUT FRAME F-Main:HANDLE ,
  932. INPUT 'Layout = ':U ,
  933. OUTPUT h_f-dokumentdrucker ).
  934. RUN set-position IN h_f-dokumentdrucker ( 5.33 , 6.80 ) NO-ERROR.
  935. /* Size in UIB: ( 18.00 , 138.40 ) */
  936. /* Links to SmartBrowser h_a-schriften. */
  937. RUN add-link IN adm-broker-hdl ( h_f-dokumentdrucker , 'BROWSER':U , h_a-schriften ).
  938. RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_a-schriften ).
  939. /* Links to SmartFrame h_f-dokumentdrucker. */
  940. RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_f-dokumentdrucker ).
  941. /* Adjust the tab order of the smart objects. */
  942. RUN adjust-tab-order IN adm-broker-hdl ( h_f-dokumentdrucker ,
  943. Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ).
  944. END. /* Page 7 */
  945. WHEN 8 THEN DO:
  946. RUN init-object IN THIS-PROCEDURE (
  947. INPUT 'v8/f-kunbest.w':U ,
  948. INPUT FRAME F-Main:HANDLE ,
  949. INPUT 'Layout = ':U ,
  950. OUTPUT h_f-kunbest ).
  951. RUN set-position IN h_f-kunbest ( 3.95 , 6.00 ) NO-ERROR.
  952. /* Size in UIB: ( 21.48 , 133.00 ) */
  953. /* Links to SmartFrame h_f-kunbest. */
  954. RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_f-kunbest ).
  955. /* Adjust the tab order of the smart objects. */
  956. RUN adjust-tab-order IN adm-broker-hdl ( h_f-kunbest ,
  957. Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ).
  958. END. /* Page 8 */
  959. WHEN 9 THEN DO:
  960. RUN init-object IN THIS-PROCEDURE (
  961. INPUT 'v8/f-savko.w':U ,
  962. INPUT FRAME F-Main:HANDLE ,
  963. INPUT 'Layout = ':U ,
  964. OUTPUT h_f-savko ).
  965. RUN set-position IN h_f-savko ( 3.95 , 3.00 ) NO-ERROR.
  966. /* Size in UIB: ( 21.19 , 167.00 ) */
  967. /* Links to SmartFrame h_f-savko. */
  968. RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_f-savko ).
  969. /* Adjust the tab order of the smart objects. */
  970. RUN adjust-tab-order IN adm-broker-hdl ( h_f-savko ,
  971. Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ).
  972. END. /* Page 9 */
  973. WHEN 10 THEN DO:
  974. RUN init-object IN THIS-PROCEDURE (
  975. INPUT 'v8/f-umsatzanzeige.w':U ,
  976. INPUT FRAME F-Main:HANDLE ,
  977. INPUT 'Layout = ':U ,
  978. OUTPUT h_f-umsatzanzeige ).
  979. RUN set-position IN h_f-umsatzanzeige ( 4.24 , 3.00 ) NO-ERROR.
  980. /* Size in UIB: ( 16.29 , 135.00 ) */
  981. /* Adjust the tab order of the smart objects. */
  982. RUN adjust-tab-order IN adm-broker-hdl ( h_f-umsatzanzeige ,
  983. Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ).
  984. END. /* Page 10 */
  985. WHEN 12 THEN DO:
  986. RUN init-object IN THIS-PROCEDURE (
  987. INPUT 'v8/v-verbuchen.w':U ,
  988. INPUT FRAME F-Main:HANDLE ,
  989. INPUT 'Layout = ':U ,
  990. OUTPUT h_v-verbuchen ).
  991. RUN set-position IN h_v-verbuchen ( 8.62 , 34.40 ) NO-ERROR.
  992. /* Size in UIB: ( 13.00 , 90.80 ) */
  993. /* Adjust the tab order of the smart objects. */
  994. RUN adjust-tab-order IN adm-broker-hdl ( h_v-verbuchen ,
  995. Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ).
  996. END. /* Page 12 */
  997. WHEN 20 THEN DO:
  998. RUN init-object IN THIS-PROCEDURE (
  999. INPUT 'v8/b-kundensuche.w':U ,
  1000. INPUT FRAME F-Main:HANDLE ,
  1001. INPUT 'Layout = ':U ,
  1002. OUTPUT h_b-kundensuche ).
  1003. RUN set-position IN h_b-kundensuche ( 15.67 , 2.40 ) NO-ERROR.
  1004. RUN set-size IN h_b-kundensuche ( 9.05 , 122.00 ) NO-ERROR.
  1005. /* Links to SmartBrowser h_b-kundensuche. */
  1006. RUN add-link IN adm-broker-hdl ( h_b-kundensuche , 'State':U , THIS-PROCEDURE ).
  1007. /* Adjust the tab order of the smart objects. */
  1008. RUN adjust-tab-order IN adm-broker-hdl ( h_b-kundensuche ,
  1009. Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ).
  1010. END. /* Page 20 */
  1011. END CASE.
  1012. /* Select a Startup page. */
  1013. IF adm-current-page eq 0
  1014. THEN RUN select-page IN THIS-PROCEDURE ( 1 ).
  1015. END PROCEDURE.
  1016. /* _UIB-CODE-BLOCK-END */
  1017. &ANALYZE-RESUME
  1018. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available W-Auftrag _ADM-ROW-AVAILABLE
  1019. PROCEDURE adm-row-available :
  1020. /*------------------------------------------------------------------------------
  1021. Purpose: Dispatched to this procedure when the Record-
  1022. Source has a new row available. This procedure
  1023. tries to get the new row (or foriegn keys) from
  1024. the Record-Source and process it.
  1025. Parameters: <none>
  1026. ------------------------------------------------------------------------------*/
  1027. /* Define variables needed by this internal procedure. */
  1028. {src/adm/template/row-head.i}
  1029. /* Process the newly available records (i.e. display fields,
  1030. open queries, and/or pass records on to any RECORD-TARGETS). */
  1031. {src/adm/template/row-end.i}
  1032. END PROCEDURE.
  1033. /* _UIB-CODE-BLOCK-END */
  1034. &ANALYZE-RESUME
  1035. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFBEREITUNG_RUESTPAPIER W-Auftrag
  1036. PROCEDURE AUFBEREITUNG_RUESTPAPIER :
  1037. /*------------------------------------------------------------------------------
  1038. Purpose:
  1039. Parameters: <none>
  1040. Notes:
  1041. ------------------------------------------------------------------------------*/
  1042. DEF VAR cString AS CHAR NO-UNDO.
  1043. DEF VAR cAuftrag AS CHAR NO-UNDO.
  1044. FIND Steuer NO-LOCK
  1045. WHERE Steuer.Firma = GVFirma.
  1046. cAuftrag = ''.
  1047. FOR EACH tAuftraege
  1048. WHERE tAuftraege.lOfferte = FALSE
  1049. AND tAuftraege.Auf_Sta < 2
  1050. AND ((NOT cInstallation BEGINS 'Huber')
  1051. OR (cInstallation BEGINS 'Huber' AND
  1052. tAuftraege.Fak_Art <> 80)) TRANSACTION:
  1053. CREATE ASMutation.
  1054. ASSIGN ASMutation.ASMutation_id = NEXT-VALUE(ASMutation_id)
  1055. ASMutation.MutArt = 'RUESTDRUCK'
  1056. ASMutation.Firma = GVFirma
  1057. ASMutation.AdFirma = ''
  1058. ASMutation.Datum = TODAY
  1059. ASMutation.cStatus = ''
  1060. ASMutation.Aktiv = TRUE
  1061. ASMutation.iKey_1 = tAuftraege.Aufnr
  1062. ASMutation.iKey_2 = Steuer.RuestArt
  1063. ASMutation.iFeld_1 = 0
  1064. ASMutation.iFeld_2 = 0
  1065. ASMutation.iFeld_3 = 0
  1066. ASMutation.cFeld_2 = cBenutzer.
  1067. .
  1068. RELEASE ASMutation.
  1069. cAuftrag = cAuftrag
  1070. + (IF cAuftrag = '' THEN '' ELSE ' ')
  1071. + STRING(tAuftraege.Aufnr,'9999999').
  1072. IF tAuftraege.Auf_Sta < 1 THEN RUN WEITER ( tAuftraege.Aufnr ).
  1073. DELETE tAuftraege.
  1074. END.
  1075. IF cAuftrag <> '' THEN DO:
  1076. cString = SUBSTITUTE('Druckauftrag Auftrags- und Rüstschein &1 aufgegeben',
  1077. cAuftrag).
  1078. MESSAGE cString VIEW-AS ALERT-BOX INFORMATION.
  1079. END.
  1080. END PROCEDURE.
  1081. /* _UIB-CODE-BLOCK-END */
  1082. &ANALYZE-RESUME
  1083. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI W-Auftrag _DEFAULT-DISABLE
  1084. PROCEDURE disable_UI :
  1085. /*------------------------------------------------------------------------------
  1086. Purpose: DISABLE the User Interface
  1087. Parameters: <none>
  1088. Notes: Here we clean-up the user-interface by deleting
  1089. dynamic widgets we have created and/or hide
  1090. frames. This procedure is usually called when
  1091. we are ready to "clean-up" after running.
  1092. ------------------------------------------------------------------------------*/
  1093. /* Delete the WINDOW we created */
  1094. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(W-Auftrag)
  1095. THEN DELETE WIDGET W-Auftrag.
  1096. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  1097. END PROCEDURE.
  1098. /* _UIB-CODE-BLOCK-END */
  1099. &ANALYZE-RESUME
  1100. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN W-Auftrag
  1101. PROCEDURE DRUCKEN :
  1102. /*------------------------------------------------------------------------------
  1103. Purpose:
  1104. Parameters: <none>
  1105. Notes:
  1106. ------------------------------------------------------------------------------*/
  1107. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  1108. DEF INPUT PARAMETER ipAufnr AS INT NO-UNDO.
  1109. DEF INPUT PARAMETER ipParam AS CHAR NO-UNDO.
  1110. DEF OUTPUT PARAMETER opRetVal AS CHAR NO-UNDO.
  1111. DEF VAR cUser AS CHAR NO-UNDO.
  1112. DEF VAR iVDRecid AS RECID NO-UNDO.
  1113. DEF VAR ii AS INT NO-UNDO.
  1114. DEF VAR cResult AS CHAR NO-UNDO.
  1115. DEF VAR cInstallation AS CHAR NO-UNDO.
  1116. DEF VAR cDruckProgramm AS CHAR NO-UNDO.
  1117. DEF VAR lSammFak AS LOG NO-UNDO.
  1118. DEF VAR lFaktura AS LOG NO-UNDO.
  1119. DEF VAR iRuestArt AS INT NO-UNDO.
  1120. opRetVal = ''.
  1121. DEF BUFFER bViperDoc FOR ViperDoc.
  1122. DEF BUFFER bAufko FOR Aufko.
  1123. DEF BUFFER bSavko FOR Savko.
  1124. FIND FIRST dAufko NO-ERROR.
  1125. IF NOT AVAILABLE dAufko THEN CREATE dAufko.
  1126. IF ipParam BEGINS 'j' THEN DO:
  1127. FIND bSavko NO-LOCK WHERE RECID(bSavko) = ipRecid.
  1128. BUFFER-COPY bSavko TO dAufko.
  1129. END.
  1130. ELSE DO:
  1131. FIND bAufko NO-LOCK WHERE RECID(bAufko) = ipRecid.
  1132. BUFFER-COPY bAufko TO dAufko.
  1133. END.
  1134. EMPTY TEMP-TABLE tParam.
  1135. CREATE tParam.
  1136. FIND Steuer NO-LOCK
  1137. WHERE Steuer.Firma = dAufko.Firma.
  1138. ASSIGN iRuestArt = Steuer.RuestArt.
  1139. ASSIGN tParam.cFirma = dAufko.Firma
  1140. tParam.iRecid = ipRecid
  1141. tParam.iAufnr = ipAufnr
  1142. tParam.iKnr = dAufko.Knr
  1143. tParam.iFak_Knr = dAufko.Fak_Knr
  1144. tParam.iFakArt = dAufko.Fak_Art
  1145. tParam.iAufSta = dAufko.Auf_Sta
  1146. tParam.iFaknr = dAufko.Faknr
  1147. tParam.cBenutzer = DYNAMIC-FUNCTION('getBenutzer':U)
  1148. tParam.cDBUser = DYNAMIC-FUNCTION('getDBUser':U)
  1149. tParam.cWinUser = DYNAMIC-FUNCTION('getSysUser':U)
  1150. tParam.cInstall = DYNAMIC-FUNCTION('getInstallation':U)
  1151. tParam.lPreis = FALSE
  1152. .
  1153. IF dAufko.AlsOfferte THEN DO:
  1154. tParam.cDokument = 'EXCEL_OFFERTE'.
  1155. tParam.lBatch = TRUE.
  1156. lSammFak = FALSE.
  1157. lFaktura = FALSE.
  1158. END.
  1159. ELSE DO:
  1160. FIND FIRST Tabel NO-LOCK
  1161. WHERE Tabel.Firma = tParam.cFirma
  1162. AND Tabel.RecArt = 'FAKART'
  1163. AND Tabel.CodeI = dAufko.Fak_Art NO-ERROR.
  1164. tParam.cDokument = Tabel.Bez2.
  1165. lSammFak = (IF Tabel.Int_3 = 4 THEN TRUE ELSE FALSE).
  1166. lFaktura = (IF Tabel.Int_3 = 3 THEN TRUE ELSE FALSE).
  1167. END.
  1168. IF ipParam BEGINS 'j' THEN ASSIGN lSammFak = FALSE
  1169. lFaktura = FALSE.
  1170. IF iRuestArt > 0 AND
  1171. NOT dAufko.AlsOfferte AND
  1172. dAufko.Auf_Sta < 2 THEN DO:
  1173. RUN AUFBEREITEN_RUESTPAPIER.
  1174. RETURN.
  1175. END.
  1176. IF lSammFak OR
  1177. lFaktura THEN DO:
  1178. RUN 'g-fakauswahl.w':U ( INPUT-OUTPUT htParam, OUTPUT cResult ) NO-ERROR.
  1179. IF cResult <> 'OK' THEN DO:
  1180. RELEASE bAufko.
  1181. APPLY 'U1'.
  1182. RETURN NO-APPLY.
  1183. END.
  1184. FIND FIRST Tabel NO-LOCK
  1185. WHERE Tabel.Firma = tParam.cFirma
  1186. AND Tabel.RecArt = 'FAKART'
  1187. AND Tabel.CodeI = tParam.iFakArt NO-ERROR.
  1188. ASSIGN tParam.cDokument = Tabel.Bez2
  1189. lSammFak = (IF Tabel.Int_3 = 4 THEN TRUE ELSE FALSE)
  1190. lFaktura = (IF Tabel.Int_3 = 3 THEN TRUE ELSE FALSE)
  1191. tParam.lPreis = TRUE.
  1192. END.
  1193. iVDRecid = ?.
  1194. DO ii = 1 TO 3:
  1195. CASE ii:
  1196. WHEN 1 THEN cUser = tParam.cBenutzer.
  1197. WHEN 2 THEN cUser = tParam.cDBUser.
  1198. WHEN 3 THEN cUser = tParam.cWinUser.
  1199. END CASE.
  1200. FIND FIRST ViperDoc NO-LOCK
  1201. WHERE ViperDoc.Firma = dAufko.Firma
  1202. AND ViperDoc.Benutzer = cUser
  1203. AND ViperDoc.Formular = tParam.cDokument
  1204. AND ViperDoc.DokArt = 0 NO-ERROR.
  1205. IF AVAILABLE ViperDoc THEN DO:
  1206. iVDRecid = RECID(ViperDoc).
  1207. LEAVE.
  1208. END.
  1209. END.
  1210. DO WHILE iVDREcid = ?:
  1211. FIND FIRST ViperDoc NO-LOCK
  1212. WHERE ViperDoc.Firma = dAufko.Firma
  1213. AND ViperDoc.Formular = tParam.cDokument
  1214. AND ViperDoc.DokArt = 0 NO-ERROR.
  1215. IF NOT AVAILABLE ViperDoc THEN DO:
  1216. MESSAGE 'Es ist keine Drucker-Formulat-Definition hinterlegt'
  1217. VIEW-AS ALERT-BOX ERROR.
  1218. APPLY 'U1'.
  1219. RETURN NO-APPLY.
  1220. END.
  1221. REPEAT TRANSACTION:
  1222. CREATE bViperDoc.
  1223. BUFFER-COPY ViperDoc
  1224. EXCEPT Benutzer
  1225. TO bViperDoc
  1226. ASSIGN bViperDoc.Benutzer = tParam.cBenutzer.
  1227. iVDRecid = RECID(bViperDoc).
  1228. RELEASE bViperDoc.
  1229. RELEASE ViperDoc.
  1230. LEAVE.
  1231. END.
  1232. LEAVE.
  1233. END.
  1234. tParam.iVDRecid = iVDRecid.
  1235. FIND ViperDoc NO-LOCK WHERE RECID(ViperDoc) = iVDRecid.
  1236. ASSIGN tParam.Template = ViperDoc.Template
  1237. tParam.Programm = ViperDoc.Programm
  1238. tParam.Drucker = ViperDoc.Drucker.
  1239. RELEASE bAufko.
  1240. RELEASE ViperDoc.
  1241. RELEASE Tabel.
  1242. RUN 'g-druck-bestaetigung.w':U ( INPUT-OUTPUT htParam, OUTPUT cResult ).
  1243. IF cResult <> 'OK' THEN DO:
  1244. APPLY 'U1'.
  1245. RETURN NO-APPLY.
  1246. END.
  1247. FIND FIRST tParam.
  1248. IF ipParam BEGINS 'j' THEN tParam.Programm = 'Sav_' + tParam.Program.
  1249. cInstallation = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR.
  1250. cDruckProgramm = SUBSTITUTE('DruckProgramme/&1/&2',
  1251. cInstallation,
  1252. tParam.Programm ).
  1253. cDruckProgramm = SEARCH(cDruckProgramm).
  1254. IF cDruckProgramm = ? THEN DO:
  1255. MESSAGE 'Druckprogramm nicht gefunden' VIEW-AS ALERT-BOX ERROR.
  1256. APPLY 'U1'.
  1257. RETURN NO-APPLY.
  1258. END.
  1259. SESSION:SET-WAIT-STATE('GENERAL').
  1260. RUN VALUE(cDruckProgramm) ( htParam, OUTPUT cResult ).
  1261. SESSION:SET-WAIT-STATE('').
  1262. RETURN cResult.
  1263. END PROCEDURE.
  1264. /* _UIB-CODE-BLOCK-END */
  1265. &ANALYZE-RESUME
  1266. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI W-Auftrag _DEFAULT-ENABLE
  1267. PROCEDURE enable_UI :
  1268. /*------------------------------------------------------------------------------
  1269. Purpose: ENABLE the User Interface
  1270. Parameters: <none>
  1271. Notes: Here we display/view/enable the widgets in the
  1272. user-interface. In addition, OPEN all queries
  1273. associated with each FRAME and BROWSE.
  1274. These statements here are based on the "Other
  1275. Settings" section of the widget Property Sheets.
  1276. ------------------------------------------------------------------------------*/
  1277. DISPLAY CB_Lager
  1278. WITH FRAME F-Main IN WINDOW W-Auftrag.
  1279. ENABLE CB_Lager Btn_Verbuchen Btn_Drucken Btn_Prev Btn_Next
  1280. WITH FRAME F-Main IN WINDOW W-Auftrag.
  1281. {&OPEN-BROWSERS-IN-QUERY-F-Main}
  1282. VIEW W-Auftrag.
  1283. END PROCEDURE.
  1284. /* _UIB-CODE-BLOCK-END */
  1285. &ANALYZE-RESUME
  1286. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject W-Auftrag
  1287. PROCEDURE initializeObject :
  1288. /*------------------------------------------------------------------------------
  1289. Purpose:
  1290. Parameters: <none>
  1291. Notes:
  1292. ------------------------------------------------------------------------------*/
  1293. DEF VAR xString AS CHAR NO-UNDO.
  1294. DEF VAR cBenutzer AS CHAR NO-UNDO.
  1295. DO WITH FRAME {&FRAME-NAME}:
  1296. iLager = DYNAMIC-FUNCTION('getBenLager':U) NO-ERROR.
  1297. RUN COMBO_LAGER ( CB_Lager:HANDLE ) NO-ERROR.
  1298. IF CB_Lager:NUM-ITEMS > 1 THEN DO:
  1299. xString = CB_Lager:LIST-ITEM-PAIRS + ';Alle Lager (999999);999999'.
  1300. CB_Lager:LIST-ITEM-PAIRS = xString.
  1301. END.
  1302. cBenutzerdaten = DYNAMIC-FUNCTION('GETBENUTZERDATEN':U) NO-ERROR.
  1303. cBenutzer = ENTRY(1, cBenutzerdaten, CHR(01)).
  1304. CB_Lager:SCREEN-VALUE = STRING(iLager,'999999').
  1305. END.
  1306. RUN local-initialize.
  1307. {&WINDOW-NAME}:MOVE-TO-TOP().
  1308. RUN SET_LAGER in h_f-Aufko ( INTEGER(CB_Lager:SCREEN-VALUE) ).
  1309. END PROCEDURE.
  1310. /* _UIB-CODE-BLOCK-END */
  1311. &ANALYZE-RESUME
  1312. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LESEN_AUFKO_TABELLE W-Auftrag
  1313. PROCEDURE LESEN_AUFKO_TABELLE :
  1314. /*------------------------------------------------------------------------------
  1315. Purpose:
  1316. Parameters: <none>
  1317. Notes:
  1318. ------------------------------------------------------------------------------*/
  1319. DEF VAR cBenutzer AS CHAR NO-UNDO.
  1320. DEF VAR Fak_Art AS INT NO-UNDO.
  1321. DEF VAR cDruBen AS CHAR NO-UNDO.
  1322. DEF VAR hRecid AS RECID NO-UNDO.
  1323. DEF VAR dRecid AS RECID NO-UNDO.
  1324. DEF BUFFER bHilfsTab FOR HilfsTab.
  1325. cBenutzer = DYNAMIC-FUNCTION('GETBENUTZER':U) NO-ERROR.
  1326. FIND FIRST WAufko.
  1327. FIND FIRST Tabel NO-LOCK
  1328. WHERE Tabel.Firma = GVFirma
  1329. AND Tabel.RecArt = 'VERTR'
  1330. AND Tabel.CodeI = WAufko.Vertr
  1331. AND Tabel.CodeC = '' NO-ERROR.
  1332. IF AVAILABLE Tabel THEN cDruBen = Tabel.Bez2.
  1333. ELSE cDruBen = cBenutzer.
  1334. IF cDruBen = '' THEN cDruBen = cBenutzer.
  1335. CASE XVDruArt:
  1336. WHEN 1 THEN Fak_Art = 89.
  1337. OTHERWISE Fak_Art = WAufko.Fak_Art.
  1338. END CASE.
  1339. FIND ATabel NO-LOCK USE-INDEX Tabel-k1
  1340. WHERE ATabel.Firma = GVFirma
  1341. AND ATabel.RecArt = 'FAKART'
  1342. AND ATabel.CodeC = ''
  1343. AND ATabel.CodeI = Fak_Art
  1344. AND ATabel.Sprcd = 1 NO-ERROR.
  1345. IF NOT AVAILABLE ATabel THEN LEAVE.
  1346. LVCodeC = ATabel.Bez2.
  1347. VDokument = ATabel.Bez2.
  1348. VRuest = ATabel.Dec_2.
  1349. IF WAufko.Auf_Sta < 2 THEN DO:
  1350. CASE cInstallation:
  1351. WHEN 'HUBER' THEN ASSIGN vDokument = 'RUEST'
  1352. VRuest = 0.
  1353. END CASE.
  1354. END.
  1355. FIND FIRST WDrucker NO-ERROR.
  1356. IF NOT AVAILABLE WDrucker THEN CREATE WDrucker.
  1357. DO WHILE TRUE:
  1358. FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1
  1359. WHERE HilfsTab.Firma = GVFirma
  1360. AND HilfsTab.Sort_1 = cDruBen
  1361. AND HilfsTab.Sort_2 = VDokument NO-ERROR.
  1362. IF NOT AVAILABLE HilfsTab THEN DO:
  1363. FIND FIRST bHilfsTab NO-LOCK USE-INDEX HilfsTab-k1
  1364. WHERE bHilfsTab.Firma = GVFirma
  1365. AND bHilfsTab.Sort_1 = ''
  1366. AND bHilfsTab.Sort_2 = VDokument NO-ERROR.
  1367. IF AVAILABLE bHilfsTab THEN DO:
  1368. REPEAT TRANSACTION:
  1369. CREATE HilfsTab.
  1370. BUFFER-COPY bHilfsTab
  1371. EXCEPT Sort_1
  1372. TO HilfsTab
  1373. ASSIGN HilfsTab.Sort_1 = cDruBen.
  1374. hRecid = RECID(HilfsTab).
  1375. RELEASE HilfsTab.
  1376. LEAVE.
  1377. END.
  1378. FIND HilfsTab NO-LOCK
  1379. WHERE RECID(HilfsTab) = hRecid.
  1380. END.
  1381. END.
  1382. IF AVAILABLE HilfsTab THEN DO:
  1383. ASSIGN WDrucker.Drucker = HilfsTab.Zeichen_1
  1384. WDrucker.Schrift = HilfsTab.Zeichen_2
  1385. WDrucker.TotZZ = HilfsTab.Zahl[01]
  1386. WDrucker.BegZZ = HilfsTab.Zahl[02]
  1387. WDrucker.EndZZ = HilfsTab.Zahl[03]
  1388. WDrucker.AnzKop = HilfsTab.Zahl[04]
  1389. WDrucker.SchOri = HilfsTab.Zahl[05]
  1390. WDrucker.SchKop = HilfsTab.Zahl[06]
  1391. WDrucker.Besr = HilfsTab.Zahl[07]
  1392. WDrucker.SchBesr = HilfsTab.Zahl[08]
  1393. WDrucker.iRecid = RECID(HilfsTab).
  1394. ok = TRUE.
  1395. LEAVE.
  1396. END.
  1397. FIND bTabel NO-LOCK USE-INDEX Tabel-k1
  1398. WHERE bTabel.Firma = GVFirma
  1399. AND bTabel.RecArt = 'FAKDRU'
  1400. AND bTabel.CodeC = LVCodeC
  1401. AND bTabel.CodeI = 0
  1402. AND bTabel.Sprcd = 1 NO-ERROR.
  1403. dRecid = (IF AVAILABLE bTabel THEN RECID(bTabel) ELSE ? ).
  1404. IF NOT AVAILABLE bTabel THEN DO:
  1405. REPEAT TRANSACTION:
  1406. CREATE bTabel.
  1407. ASSIGN bTabel.Firma = GVFirma
  1408. bTabel.RecArt = 'FakDru'
  1409. bTabel.CodeC = LVCodeC
  1410. bTabel.Bez1 = ''
  1411. bTabel.Bez2 = ''
  1412. bTabel.CodeI = 0
  1413. bTabel.Sprcd = 1
  1414. bTabel.Int_1 = 0
  1415. bTabel.Int_2 = 0
  1416. bTabel.Int_3 = 0
  1417. bTabel.Dec_1 = 0
  1418. bTabel.Dec_2 = 1 /* Anzahl kopien */
  1419. bTabel.Dec_3 = 0.
  1420. dRecid = RECID(bTabel).
  1421. RELEASE bTabel.
  1422. LEAVE.
  1423. END.
  1424. FIND bTabel NO-LOCK WHERE RECID(bTabel) = dRecid.
  1425. END.
  1426. IF bTabel.Bez1 = '' THEN DO:
  1427. SYSTEM-DIALOG PRINTER-SETUP
  1428. PORTRAIT
  1429. UPDATE ja.
  1430. IF NOT Ja THEN LEAVE.
  1431. REPEAT TRANSACTION:
  1432. FIND bTabel WHERE RECID(bTabel) = dRecid.
  1433. ASSIGN bTabel.Bez1 = SESSION:PRINTER-NAME
  1434. bTabel.Bez2 = 'VIPER'.
  1435. RELEASE bTabel.
  1436. LEAVE.
  1437. END.
  1438. NEXT.
  1439. END.
  1440. REPEAT TRANSACTION:
  1441. CREATE HilfsTab.
  1442. ASSIGN HilfsTab.Firma = GVFirma
  1443. HilfsTab.Sort_1 = cDruBen
  1444. HilfsTab.Sort_2 = VDokument
  1445. HilfsTab.Zeichen_1 = bTabel.Bez1
  1446. HilfsTab.Zeichen_2 = bTabel.Bez2
  1447. HilfsTab.Zahl[01] = bTabel.Int_1
  1448. HilfsTab.Zahl[02] = bTabel.Int_2
  1449. HilfsTab.Zahl[03] = bTabel.Int_3
  1450. HilfsTab.Zahl[04] = bTabel.Dec_2
  1451. HilfsTab.Zahl[05] = bTabel.Dec_3
  1452. HilfsTab.Zahl[06] = bTabel.Dec_3
  1453. HilfsTab.Zahl[07] = bTabel.Dec_1
  1454. HilfsTab.Zahl[08] = bTabel.Dec_3.
  1455. RELEASE HilfsTab.
  1456. LEAVE.
  1457. END.
  1458. END.
  1459. END PROCEDURE.
  1460. /* _UIB-CODE-BLOCK-END */
  1461. &ANALYZE-RESUME
  1462. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LESEN_RUEST_TABELLE W-Auftrag
  1463. PROCEDURE LESEN_RUEST_TABELLE :
  1464. /*------------------------------------------------------------------------------
  1465. Purpose:
  1466. Parameters: <none>
  1467. Notes:
  1468. ------------------------------------------------------------------------------*/
  1469. DEF VAR cBenutzer AS CHAR NO-UNDO.
  1470. DEF VAR cDruBen AS CHAR NO-UNDO.
  1471. cBenutzer = DYNAMIC-FUNCTION('GETBENUTZER':U) NO-ERROR.
  1472. FIND FIRST WAufko NO-LOCK NO-ERROR.
  1473. FIND FIRST Tabel NO-LOCK
  1474. WHERE Tabel.Firma = GVFirma
  1475. AND Tabel.RecArt = 'VERTR'
  1476. AND Tabel.CodeI = WAufko.Vertr
  1477. AND Tabel.CodeC = '' NO-ERROR.
  1478. IF AVAILABLE Tabel THEN cDruBen = Tabel.Bez2.
  1479. ELSE cDruBen = cBenutzer.
  1480. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  1481. WHERE Tabel.Firma = GVFirma
  1482. AND Tabel.RecArt = 'FAKART'
  1483. AND Tabel.CodeC = ''
  1484. AND Tabel.CodeI = VRuest
  1485. AND Tabel.Sprcd = 1 NO-ERROR.
  1486. IF NOT AVAILABLE Tabel THEN LEAVE.
  1487. LVCodeC = Tabel.Bez2.
  1488. VDokument = Tabel.Bez2.
  1489. VRuest = 0.
  1490. FIND FIRST WDrucker NO-ERROR.
  1491. IF NOT AVAILABLE WDrucker THEN CREATE WDrucker.
  1492. DO WHILE TRUE:
  1493. FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1
  1494. WHERE HilfsTab.Firma = GVFirma
  1495. AND HilfsTab.Sort_1 = cDruBen
  1496. AND HilfsTab.Sort_2 = VDokument NO-ERROR.
  1497. IF NOT AVAILABLE HilfsTab THEN DO:
  1498. FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1
  1499. WHERE HilfsTab.Firma = GVFirma
  1500. AND HilfsTab.Sort_1 = ''
  1501. AND HilfsTab.Sort_2 = VDokument NO-ERROR.
  1502. END.
  1503. IF AVAILABLE HilfsTab THEN DO:
  1504. ASSIGN WDrucker.Drucker = HilfsTab.Zeichen_1
  1505. WDrucker.Schrift = HilfsTab.Zeichen_2
  1506. WDrucker.TotZZ = HilfsTab.Zahl[01]
  1507. WDrucker.BegZZ = HilfsTab.Zahl[02]
  1508. WDrucker.EndZZ = HilfsTab.Zahl[03]
  1509. WDrucker.AnzKop = HilfsTab.Zahl[04]
  1510. WDrucker.SchOri = HilfsTab.Zahl[05]
  1511. WDrucker.SchKop = HilfsTab.Zahl[06]
  1512. WDrucker.Besr = HilfsTab.Zahl[07]
  1513. WDrucker.SchBesr = HilfsTab.Zahl[08]
  1514. WDrucker.iRecid = RECID(HilfsTab).
  1515. ok = TRUE.
  1516. LEAVE.
  1517. END.
  1518. FIND BTabel NO-LOCK USE-INDEX Tabel-k1
  1519. WHERE BTabel.Firma = GVFirma
  1520. AND BTabel.RecArt = 'FAKDRU'
  1521. AND BTabel.CodeC = LVCodeC
  1522. AND BTabel.CodeI = 0
  1523. AND BTabel.Sprcd = 1 NO-ERROR.
  1524. IF NOT AVAILABLE BTabel THEN LEAVE.
  1525. REPEAT TRANSACTION:
  1526. CREATE HilfsTab.
  1527. ASSIGN HilfsTab.Firma = GVFirma
  1528. HilfsTab.Sort_1 = cDruBen
  1529. HilfsTab.Sort_2 = VDokument
  1530. HilfsTab.Zeichen_1 = BTabel.Bez1
  1531. HilfsTab.Zeichen_2 = BTabel.Bez2
  1532. HilfsTab.Zahl[01] = BTabel.Int_1
  1533. HilfsTab.Zahl[02] = BTabel.Int_2
  1534. HilfsTab.Zahl[03] = BTabel.Int_3
  1535. HilfsTab.Zahl[04] = BTabel.Dec_2
  1536. HilfsTab.Zahl[05] = BTabel.Dec_3
  1537. HilfsTab.Zahl[06] = BTabel.Dec_3
  1538. HilfsTab.Zahl[07] = BTabel.Dec_1
  1539. HilfsTab.Zahl[08] = BTabel.Dec_3.
  1540. RELEASE HilfsTab.
  1541. LEAVE.
  1542. END.
  1543. LEAVE.
  1544. END.
  1545. END PROCEDURE.
  1546. /* _UIB-CODE-BLOCK-END */
  1547. &ANALYZE-RESUME
  1548. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-change-page W-Auftrag
  1549. PROCEDURE local-change-page :
  1550. /*------------------------------------------------------------------------------
  1551. Purpose: Override standard ADM method
  1552. Notes:
  1553. ------------------------------------------------------------------------------*/
  1554. DEF VAR XSeite AS INT NO-UNDO.
  1555. DEF VAR OldPage AS INT NO-UNDO.
  1556. DEF VAR lUpdate AS LOG NO-UNDO.
  1557. RUN get-attribute ('current-page':U).
  1558. oldPage = INTEGER(RETURN-VALUE).
  1559. RUN dispatch IN THIS-PROCEDURE ( INPUT 'change-page':U ) .
  1560. RUN get-attribute ('current-page':U).
  1561. XSeite = INTEGER(RETURN-VALUE).
  1562. Aktive = TRUE.
  1563. DO WITH FRAME {&FRAME-NAME}:
  1564. ENABLE Btn_Drucken.
  1565. IF oldPage = 7 THEN DO:
  1566. CB_Lager:HIDDEN = FALSE.
  1567. ENABLE CB_Lager.
  1568. END.
  1569. IF XSeite <> 12 THEN ENABLE Btn_Verbuchen.
  1570. IF XSeite = 1 THEN DO:
  1571. RUN state-changed IN h_f-aufko (INPUT THIS-PROCEDURE, INPUT 'browser_entry':U ).
  1572. RETURN NO-APPLY.
  1573. END.
  1574. IF XSeite = 2 THEN DO:
  1575. RUN state-changed IN h_b-aufze (INPUT THIS-PROCEDURE, INPUT 'browser_entry':U ).
  1576. RETURN NO-APPLY.
  1577. END.
  1578. IF XSeite = 3 THEN DO:
  1579. RUN state-changed IN h_b-aufgebko (INPUT THIS-PROCEDURE, INPUT 'browser_entry':U ).
  1580. RETURN NO-APPLY.
  1581. END.
  1582. IF XSeite = 4 THEN DO:
  1583. DISABLE Btn_Drucken.
  1584. RETURN NO-APPLY.
  1585. END.
  1586. IF XSeite = 5 THEN DO:
  1587. RUN state-changed IN h_f-aufkoberech (INPUT THIS-PROCEDURE, INPUT 'browser_entry':U ).
  1588. RETURN NO-APPLY.
  1589. END.
  1590. IF XSeite = 6 THEN DO:
  1591. RUN ENTRY_BROWSE IN h_b-artbw-kunde.
  1592. RETURN NO-APPLY.
  1593. END.
  1594. IF XSeite = 7 THEN DO:
  1595. DISABLE CB_Lager.
  1596. CB_Lager:HIDDEN = TRUE.
  1597. RUN dispatch IN h_f-dokumentdrucker ('apply-entry':U).
  1598. RETURN NO-APPLY.
  1599. END.
  1600. IF XSeite = 8 THEN DO:
  1601. RETURN NO-APPLY.
  1602. END.
  1603. IF XSeite = 10 THEN DO:
  1604. IF NOT ENTRY(4, cBenutzerdaten, CHR(01)) BEGINS 'ja' THEN DO:
  1605. RUN select-page(1).
  1606. RUN view-page (1).
  1607. END.
  1608. END.
  1609. IF XSeite = 12 THEN DO:
  1610. DISABLE Btn_Drucken.
  1611. RETURN NO-APPLY.
  1612. END.
  1613. END.
  1614. END PROCEDURE.
  1615. /* _UIB-CODE-BLOCK-END */
  1616. &ANALYZE-RESUME
  1617. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-exit W-Auftrag
  1618. PROCEDURE local-exit :
  1619. /* -----------------------------------------------------------
  1620. Purpose: Starts an "exit" by APPLYing CLOSE event, which starts "destroy".
  1621. Parameters: <none>
  1622. Notes: If activated, should APPLY CLOSE, *not* dispatch adm-exit.
  1623. -------------------------------------------------------------*/
  1624. APPLY "CLOSE":U TO THIS-PROCEDURE.
  1625. RETURN.
  1626. END PROCEDURE.
  1627. /* _UIB-CODE-BLOCK-END */
  1628. &ANALYZE-RESUME
  1629. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize W-Auftrag
  1630. PROCEDURE local-initialize :
  1631. /*------------------------------------------------------------------------------
  1632. Purpose: Override standard ADM method
  1633. Notes:
  1634. ------------------------------------------------------------------------------*/
  1635. RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) .
  1636. {&WINDOW-NAME}:MOVE-TO-TOP().
  1637. RUN dispatch IN h_f-aufko ('apply-entry':U).
  1638. RETURN NO-APPLY.
  1639. END PROCEDURE.
  1640. /* _UIB-CODE-BLOCK-END */
  1641. &ANALYZE-RESUME
  1642. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records W-Auftrag _ADM-SEND-RECORDS
  1643. PROCEDURE send-records :
  1644. /*------------------------------------------------------------------------------
  1645. Purpose: Send record ROWID's for all tables used by
  1646. this file.
  1647. Parameters: see template/snd-head.i
  1648. ------------------------------------------------------------------------------*/
  1649. /* SEND-RECORDS does nothing because there are no External
  1650. Tables specified for this SmartWindow, and there are no
  1651. tables specified in any contained Browse, Query, or Frame. */
  1652. END PROCEDURE.
  1653. /* _UIB-CODE-BLOCK-END */
  1654. &ANALYZE-RESUME
  1655. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed W-Auftrag
  1656. PROCEDURE state-changed :
  1657. /* -----------------------------------------------------------
  1658. Purpose:
  1659. Parameters: <none>
  1660. Notes:
  1661. -------------------------------------------------------------*/
  1662. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  1663. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  1664. DEF VAR MaxPages AS INT INIT 8 NO-UNDO.
  1665. CASE p-state:
  1666. WHEN 'Next_Page' THEN DO:
  1667. IF NOT Aktive THEN RETURN NO-APPLY.
  1668. RUN get-attribute ('current-page':U).
  1669. ASeite = INTEGER(RETURN-VALUE) + 1.
  1670. IF ASeite > MaxPages THEN ASeite = 1.
  1671. RUN select-page(ASeite).
  1672. RUN view-page (ASeite).
  1673. RETURN NO-APPLY.
  1674. END.
  1675. WHEN 'Prev_Page' THEN DO:
  1676. IF NOT Aktive THEN RETURN NO-APPLY.
  1677. RUN get-attribute ('current-page':U).
  1678. ASeite = INTEGER(RETURN-VALUE) - 1.
  1679. IF ASeite < 1 THEN ASeite = MaxPages.
  1680. RUN select-page(ASeite).
  1681. RUN view-page (ASeite).
  1682. RETURN NO-APPLY.
  1683. END.
  1684. WHEN 'Vorherige_Seite' THEN DO:
  1685. RUN select-page ( PSeite ).
  1686. RUN view-page ( PSeite ).
  1687. RETURN NO-APPLY.
  1688. END.
  1689. WHEN 'kundensuche' THEN DO:
  1690. RUN select-page ( 20 ).
  1691. RUN view-page ( 20 ).
  1692. RUN SUCHEN IN h_b-kundensuche.
  1693. END.
  1694. WHEN 'kunde_ok' THEN DO:
  1695. RUN select-page ( 1 ).
  1696. RUN view-page ( 1 ).
  1697. RUN GEFUNDEN IN h_f-aufko.
  1698. END.
  1699. WHEN 'kunde_nok' THEN DO:
  1700. RUN select-page ( 1 ).
  1701. RUN view-page ( 1 ).
  1702. RUN NICHT_GEFUNDEN IN h_f-aufko.
  1703. END.
  1704. WHEN 'seite_1' THEN DO:
  1705. RUN select-page ( 1 ).
  1706. RUN view-page ( 1 ).
  1707. END.
  1708. WHEN 'seite_2' THEN DO:
  1709. RUN select-page ( 2 ).
  1710. RUN view-page ( 2 ).
  1711. END.
  1712. WHEN 'Seite_1_Open' THEN DO:
  1713. RUN select-page ( 1 ).
  1714. RUN view-page ( 1 ).
  1715. RUN OPEN_AUFKO_REPO IN h_f-aufko.
  1716. RUN adm-apply-entry IN h_f-aufko.
  1717. RETURN NO-APPLY.
  1718. END.
  1719. WHEN 'ENDE' THEN DO:
  1720. RUN WINDOWCLOSE.
  1721. RETURN NO-APPLY.
  1722. END.
  1723. /*
  1724. WHEN 'UPDATE' THEN DO:
  1725. VUpdate = TRUE.
  1726. RETURN NO-APPLY.
  1727. END.
  1728. WHEN 'NOTUPDATE' THEN DO:
  1729. VUpdate = FALSE.
  1730. RETURN NO-APPLY.
  1731. END.
  1732. */
  1733. END CASE.
  1734. END PROCEDURE.
  1735. /* _UIB-CODE-BLOCK-END */
  1736. &ANALYZE-RESUME
  1737. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_DRUCK W-Auftrag
  1738. PROCEDURE VIPER_DRUCK :
  1739. /*------------------------------------------------------------------------------
  1740. Purpose:
  1741. Parameters: <none>
  1742. Notes:
  1743. ------------------------------------------------------------------------------*/
  1744. DEF INPUT PARAMETER ipKnr AS INT NO-UNDO.
  1745. DEF INPUT PARAMETER ipAufnr AS INT NO-UNDO.
  1746. DEF VAR cDateiName AS CHAR NO-UNDO.
  1747. DEF VAR cvpr_Dokument AS CHAR NO-UNDO.
  1748. DEF VAR cPDFName AS CHAR NO-UNDO.
  1749. FIND Savko NO-LOCK
  1750. WHERE Savko.Firma = GVFirma
  1751. AND Savko.Aufnr = ipAufnr NO-ERROR.
  1752. IF NOT AVAILABLE Savko THEN RETURN 'ERROR'.
  1753. DO WHILE TRUE:
  1754. cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_&3.vpr',
  1755. STRING(ipKnr ,'999999'),
  1756. STRING(Savko.Faknr,'999999'),
  1757. 'SammFak').
  1758. IF SEARCH(cvpr_Dokument) <> ? THEN LEAVE.
  1759. cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_&3.vpr',
  1760. STRING(ipKnr ,'999999'),
  1761. STRING(Savko.Faknr,'999999'),
  1762. 'Faktura').
  1763. IF SEARCH(cvpr_Dokument) <> ? THEN LEAVE.
  1764. cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_&3.vpr',
  1765. STRING(ipKnr ,'999999'),
  1766. STRING(Savko.Faknr,'999999'),
  1767. 'LiefFak').
  1768. LEAVE.
  1769. END.
  1770. cDateiName = SEARCH(cvpr_Dokument).
  1771. IF cDateiName = ? OR
  1772. cDateiName = '' THEN RETURN 'ERROR'.
  1773. FILE-INFO:FILE-NAME = cDateiName.
  1774. cDateiName = FILE-INFO:FULL-PATHNAME.
  1775. cDateiName = SEARCH(cvpr_Dokument).
  1776. RUN druck_viper.p ( cDateiName ).
  1777. RETURN RETURN-VALUE.
  1778. END PROCEDURE.
  1779. /* _UIB-CODE-BLOCK-END */
  1780. &ANALYZE-RESUME
  1781. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WINDOWCLOSE W-Auftrag
  1782. PROCEDURE WINDOWCLOSE :
  1783. /*------------------------------------------------------------------------------
  1784. Purpose:
  1785. Parameters: <none>
  1786. Notes:
  1787. ------------------------------------------------------------------------------*/
  1788. DEF VAR AktSeite AS INT NO-UNDO.
  1789. Ja = FALSE.
  1790. PUBLISH 'ENDEAUFTRAG'.
  1791. IF Ja THEN RETURN NO-APPLY.
  1792. RUN get-attribute ('current-page':U).
  1793. AktSeite = INTEGER(RETURN-VALUE).
  1794. IF AktSeite <> 1 THEN DO:
  1795. RUN select-page(1).
  1796. RUN view-page (1).
  1797. EndFlag = FALSE.
  1798. RETURN NO-APPLY.
  1799. END.
  1800. IF EndFlag THEN DO:
  1801. EndFlag = FALSE.
  1802. IF EscFlag = FALSE THEN RETURN NO-APPLY.
  1803. END.
  1804. IF NOT Ja THEN DO:
  1805. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  1806. APPLY "CLOSE":U TO THIS-PROCEDURE.
  1807. RETURN.
  1808. END.
  1809. EndFlag = FALSE.
  1810. END PROCEDURE.
  1811. /* _UIB-CODE-BLOCK-END */
  1812. &ANALYZE-RESUME
  1813. /* ************************ Function Implementations ***************** */
  1814. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getKundennummer W-Auftrag
  1815. FUNCTION getKundennummer RETURNS INTEGER
  1816. ( /* parameter-definitions */ ) :
  1817. /*------------------------------------------------------------------------------
  1818. Purpose:
  1819. Notes:
  1820. ------------------------------------------------------------------------------*/
  1821. RETURN XVKnr.
  1822. END FUNCTION.
  1823. /* _UIB-CODE-BLOCK-END */
  1824. &ANALYZE-RESUME