w-auftrag.w 78 KB

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