g-p_ewk.w 98 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gEWK
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gEWK
  6. /*------------------------------------------------------------------------
  7. File:
  8. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  9. Input Parameters:
  10. <none>
  11. Output Parameters:
  12. <none>
  13. Author:
  14. Created:
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress AppBuilder. */
  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 MaxPage AS INT NO-UNDO.
  28. DEF VAR AktSeite AS INT NO-UNDO.
  29. DEF VAR FMutFlag AS LOG NO-UNDO.
  30. DEF VAR VLiArt AS INT NO-UNDO.
  31. DEF VAR cRetVal AS CHAR NO-UNDO.
  32. DEF VAR cKey AS CHAR NO-UNDO.
  33. DEF VAR FAbbruch AS LOG NO-UNDO.
  34. DEF VAR ix AS INT NO-UNDO.
  35. DEF VAR Firma AS CHAR NO-UNDO.
  36. DEF VAR AdFirma AS CHAR NO-UNDO.
  37. DEF VAR Sprcd AS INT NO-UNDO.
  38. DEF VAR Bez1 AS CHAR NO-UNDO.
  39. DEF VAR Bez2 AS CHAR NO-UNDO.
  40. DEF VAR Gebinde AS CHAR NO-UNDO.
  41. DEF VAR cJahr AS CHAR NO-UNDO.
  42. DEF VAR Bestand AS DEC DECIMALS 4 NO-UNDO.
  43. DEF VAR InvDatum AS DATE NO-UNDO.
  44. DEF VAR cVorlage AS CHAR NO-UNDO.
  45. DEF VAR cDaten AS CHAR NO-UNDO.
  46. DEF VAR cDokument AS CHAR NO-UNDO.
  47. DEF VAR cDateiName AS CHAR NO-UNDO.
  48. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  49. DEF VAR cAlt AS CHAR NO-UNDO.
  50. DEF VAR cNeu AS CHAR NO-UNDO.
  51. DEF VAR dMenge AS DEC DECIMALS 3 NO-UNDO.
  52. DEF VAR dLiter AS DEC DECIMALS 3 NO-UNDO.
  53. DEF VAR cKey1 AS CHAR NO-UNDO.
  54. DEF VAR cKey2 AS CHAR NO-UNDO.
  55. DEF VAR cKey3 AS CHAR NO-UNDO.
  56. DEF VAR cKey4 AS CHAR NO-UNDO.
  57. DEF VAR cTKey1 AS CHAR NO-UNDO.
  58. DEF VAR cTKey2 AS CHAR NO-UNDO.
  59. DEF VAR cTKey3 AS CHAR NO-UNDO.
  60. DEF VAR cTKey4 AS CHAR NO-UNDO.
  61. DEF VAR FKey1 AS LOG NO-UNDO.
  62. DEF VAR FKey2 AS LOG NO-UNDO.
  63. DEF VAR FKey3 AS LOG NO-UNDO.
  64. DEF VAR FKey4 AS LOG NO-UNDO.
  65. DEF VAR LKey1 AS LOG NO-UNDO.
  66. DEF VAR LKey2 AS LOG NO-UNDO.
  67. DEF VAR LKey3 AS LOG NO-UNDO.
  68. DEF VAR LKey4 AS LOG NO-UNDO.
  69. DEF VAR Zeile1 AS INT NO-UNDO.
  70. DEF VAR Zeile2 AS INT NO-UNDO.
  71. DEF STREAM IN_Stream.
  72. DEF BUFFER BArtst FOR Artst.
  73. DEF TEMP-TABLE TArtst LIKE Artst
  74. FIELD InvMenge AS DEC DECIMALS 3
  75. FIELD InvMengeNeu AS DEC DECIMALS 3
  76. FIELD InvLiter AS DEC DECIMALS 3.
  77. DEF TEMP-TABLE TArtbw LIKE Artbw.
  78. DEF TEMP-TABLE Totale FIELD Sort_1 AS CHAR
  79. FIELD Menge AS DEC DECIMALS 3
  80. FIELD Liter AS DEC DECIMALS 3
  81. FIELD Eingang AS DEC DECIMALS 3
  82. FIELD Ausgang AS DEC DECIMALS 3
  83. INDEX Totale-k1
  84. IS UNIQUE PRIMARY
  85. SORT_1.
  86. /* _UIB-CODE-BLOCK-END */
  87. &ANALYZE-RESUME
  88. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  89. /* ******************** Preprocessor Definitions ******************** */
  90. &Scoped-define PROCEDURE-TYPE SmartDialog
  91. &Scoped-define DB-AWARE no
  92. &Scoped-define ADM-CONTAINER DIALOG-BOX
  93. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  94. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  95. &Scoped-define FRAME-NAME gEWK
  96. /* Standard List Definitions */
  97. &Scoped-Define ENABLED-OBJECTS RECT-5 RECT-6 RECT-7 CB_LiArt F_VonArtnr ~
  98. F_VonInhalt F_VonJahr F_BisArtnr F_BisInhalt F_BisJahr F_Herst F_Wgrp ~
  99. F_VonDatum F_BisDatum T_Abschluss T_Detail Btn_Excel Btn_Cancel
  100. &Scoped-Define DISPLAYED-OBJECTS CB_LiArt F_VonArtnr F_VonInhalt F_VonJahr ~
  101. F_BisArtnr F_BisInhalt F_BisJahr F_Herst F_Wgrp F_VonDatum F_BisDatum ~
  102. T_Abschluss T_Detail
  103. /* Custom List Definitions */
  104. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  105. &Scoped-define List-5 Btn_Excel
  106. &Scoped-define List-6 F_VonArtnr F_VonInhalt F_VonJahr F_BisArtnr ~
  107. F_BisInhalt F_BisJahr F_Herst F_Wgrp F_VonDatum F_BisDatum T_Abschluss ~
  108. T_Detail
  109. /* _UIB-PREPROCESSOR-BLOCK-END */
  110. &ANALYZE-RESUME
  111. /* *********************** Control Definitions ********************** */
  112. /* Define a dialog box */
  113. /* Definitions of the field level widgets */
  114. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  115. LABEL "&Abbrechen"
  116. SIZE 15 BY 1.81.
  117. DEFINE BUTTON Btn_Excel
  118. IMAGE-UP FILE "grafik/results%.ico":U
  119. IMAGE-INSENSITIVE FILE "grafik/results%.ico":U
  120. LABEL "Excel"
  121. SIZE 7 BY 1.81.
  122. DEFINE VARIABLE CB_LiArt AS CHARACTER FORMAT "X(256)":U
  123. LABEL "Listenart"
  124. VIEW-AS COMBO-BOX INNER-LINES 5
  125. LIST-ITEM-PAIRS "Artikel mit EWK-Code","01",
  126. "EWK Inventar","02",
  127. "Weinverkäufe","03",
  128. "Kellerbuchhaltung","04"
  129. DROP-DOWN-LIST
  130. SIZE 50 BY 1
  131. BGCOLOR 15 NO-UNDO.
  132. DEFINE VARIABLE F_BisArtnr AS INTEGER FORMAT "999999":U INITIAL 0
  133. LABEL "--"
  134. VIEW-AS FILL-IN NATIVE
  135. SIZE 11 BY 1
  136. BGCOLOR 15 NO-UNDO.
  137. DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999":U
  138. LABEL "--"
  139. VIEW-AS FILL-IN NATIVE
  140. SIZE 16 BY 1
  141. BGCOLOR 15 NO-UNDO.
  142. DEFINE VARIABLE F_BisInhalt AS INTEGER FORMAT "9999":U INITIAL 0
  143. VIEW-AS FILL-IN NATIVE
  144. SIZE 7 BY 1
  145. BGCOLOR 15 NO-UNDO.
  146. DEFINE VARIABLE F_BisJahr AS INTEGER FORMAT "9999":U INITIAL 0
  147. VIEW-AS FILL-IN NATIVE
  148. SIZE 7 BY 1
  149. BGCOLOR 15 NO-UNDO.
  150. DEFINE VARIABLE F_Herst AS CHARACTER FORMAT "X(256)":U
  151. LABEL "Hersteller"
  152. VIEW-AS FILL-IN NATIVE
  153. SIZE 53 BY 1
  154. BGCOLOR 15 NO-UNDO.
  155. DEFINE VARIABLE F_VonArtnr AS INTEGER FORMAT "999999":U INITIAL 0
  156. LABEL "von - bis Artikelnummer"
  157. VIEW-AS FILL-IN NATIVE
  158. SIZE 11 BY 1
  159. BGCOLOR 15 NO-UNDO.
  160. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U
  161. LABEL "von - bis Datum"
  162. VIEW-AS FILL-IN NATIVE
  163. SIZE 16 BY 1
  164. BGCOLOR 15 NO-UNDO.
  165. DEFINE VARIABLE F_VonInhalt AS INTEGER FORMAT "9999":U INITIAL 0
  166. VIEW-AS FILL-IN NATIVE
  167. SIZE 7 BY 1
  168. BGCOLOR 15 NO-UNDO.
  169. DEFINE VARIABLE F_VonJahr AS INTEGER FORMAT "9999":U INITIAL 0
  170. VIEW-AS FILL-IN NATIVE
  171. SIZE 7 BY 1
  172. BGCOLOR 15 NO-UNDO.
  173. DEFINE VARIABLE F_Wgrp AS CHARACTER FORMAT "X(256)":U
  174. LABEL "Warengruppe"
  175. VIEW-AS FILL-IN NATIVE
  176. SIZE 53 BY 1
  177. BGCOLOR 15 NO-UNDO.
  178. DEFINE RECTANGLE RECT-5
  179. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  180. SIZE 90 BY 1.95.
  181. DEFINE RECTANGLE RECT-6
  182. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  183. SIZE 90 BY 4.95.
  184. DEFINE RECTANGLE RECT-7
  185. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  186. SIZE 90 BY 2.95.
  187. DEFINE VARIABLE T_Abschluss AS LOGICAL INITIAL no
  188. LABEL "Inventar abschliessen"
  189. VIEW-AS TOGGLE-BOX
  190. SIZE 31.8 BY 1 NO-UNDO.
  191. DEFINE VARIABLE T_Detail AS LOGICAL INITIAL no
  192. LABEL "ohne Artikel/Kunden-Detail"
  193. VIEW-AS TOGGLE-BOX
  194. SIZE 31.8 BY 1 NO-UNDO.
  195. /* ************************ Frame Definitions *********************** */
  196. DEFINE FRAME gEWK
  197. CB_LiArt AT ROW 2 COL 18 COLON-ALIGNED
  198. F_VonArtnr AT ROW 5 COL 28 COLON-ALIGNED
  199. F_VonInhalt AT ROW 5 COL 39 COLON-ALIGNED NO-LABEL
  200. F_VonJahr AT ROW 5 COL 46 COLON-ALIGNED NO-LABEL
  201. F_BisArtnr AT ROW 5 COL 56 COLON-ALIGNED
  202. F_BisInhalt AT ROW 5 COL 67 COLON-ALIGNED NO-LABEL
  203. F_BisJahr AT ROW 5 COL 74 COLON-ALIGNED NO-LABEL
  204. F_Herst AT ROW 6 COL 28 COLON-ALIGNED
  205. F_Wgrp AT ROW 7 COL 28 COLON-ALIGNED
  206. F_VonDatum AT ROW 8 COL 28 COLON-ALIGNED
  207. F_BisDatum AT ROW 8 COL 47 COLON-ALIGNED
  208. T_Abschluss AT ROW 11 COL 30
  209. T_Detail AT ROW 12 COL 30
  210. Btn_Excel AT ROW 14 COL 3.8
  211. Btn_Cancel AT ROW 14 COL 78
  212. RECT-5 AT ROW 1.48 COL 3
  213. RECT-6 AT ROW 4.52 COL 3
  214. RECT-7 AT ROW 10.52 COL 3
  215. SPACE(1.79) SKIP(3.23)
  216. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  217. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  218. TITLE "Weinkellerbuchhaltung"
  219. CANCEL-BUTTON Btn_Cancel.
  220. /* *********************** Procedure Settings ************************ */
  221. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  222. /* Settings for THIS-PROCEDURE
  223. Type: SmartDialog
  224. Allow: Basic,Browse,DB-Fields,Query,Smart
  225. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  226. Design Page: 1
  227. Other Settings: COMPILE
  228. */
  229. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  230. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gEWK
  231. /* ************************* Included-Libraries *********************** */
  232. {src/adm2/containr.i}
  233. /* _UIB-CODE-BLOCK-END */
  234. &ANALYZE-RESUME
  235. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  236. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  237. /* SETTINGS FOR DIALOG-BOX gEWK
  238. FRAME-NAME */
  239. ASSIGN
  240. FRAME gEWK:SCROLLABLE = FALSE
  241. FRAME gEWK:HIDDEN = TRUE.
  242. /* SETTINGS FOR BUTTON Btn_Excel IN FRAME gEWK
  243. 5 */
  244. /* SETTINGS FOR FILL-IN F_BisArtnr IN FRAME gEWK
  245. 6 */
  246. /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME gEWK
  247. 6 */
  248. /* SETTINGS FOR FILL-IN F_BisInhalt IN FRAME gEWK
  249. 6 */
  250. /* SETTINGS FOR FILL-IN F_BisJahr IN FRAME gEWK
  251. 6 */
  252. /* SETTINGS FOR FILL-IN F_Herst IN FRAME gEWK
  253. 6 */
  254. /* SETTINGS FOR FILL-IN F_VonArtnr IN FRAME gEWK
  255. 6 */
  256. /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME gEWK
  257. 6 */
  258. /* SETTINGS FOR FILL-IN F_VonInhalt IN FRAME gEWK
  259. 6 */
  260. /* SETTINGS FOR FILL-IN F_VonJahr IN FRAME gEWK
  261. 6 */
  262. /* SETTINGS FOR FILL-IN F_Wgrp IN FRAME gEWK
  263. 6 */
  264. /* SETTINGS FOR TOGGLE-BOX T_Abschluss IN FRAME gEWK
  265. 6 */
  266. /* SETTINGS FOR TOGGLE-BOX T_Detail IN FRAME gEWK
  267. 6 */
  268. /* _RUN-TIME-ATTRIBUTES-END */
  269. &ANALYZE-RESUME
  270. /* Setting information for Queries and Browse Widgets fields */
  271. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gEWK
  272. /* Query rebuild information for DIALOG-BOX gEWK
  273. _Options = "SHARE-LOCK"
  274. _Query is NOT OPENED
  275. */ /* DIALOG-BOX gEWK */
  276. &ANALYZE-RESUME
  277. /* ************************ Control Triggers ************************ */
  278. &Scoped-define SELF-NAME gEWK
  279. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gEWK gEWK
  280. ON END-ERROR OF FRAME gEWK /* Weinkellerbuchhaltung */
  281. DO:
  282. RUN ENDE.
  283. RETURN NO-APPLY.
  284. END.
  285. /* _UIB-CODE-BLOCK-END */
  286. &ANALYZE-RESUME
  287. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gEWK gEWK
  288. ON GO OF FRAME gEWK /* Weinkellerbuchhaltung */
  289. DO:
  290. /*
  291. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR.
  292. */
  293. END.
  294. /* _UIB-CODE-BLOCK-END */
  295. &ANALYZE-RESUME
  296. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gEWK gEWK
  297. ON WINDOW-CLOSE OF FRAME gEWK /* Weinkellerbuchhaltung */
  298. DO:
  299. RUN ENDE.
  300. RETURN NO-APPLY.
  301. END.
  302. /* _UIB-CODE-BLOCK-END */
  303. &ANALYZE-RESUME
  304. &Scoped-define SELF-NAME Btn_Cancel
  305. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gEWK
  306. ON CHOOSE OF Btn_Cancel IN FRAME gEWK /* Abbrechen */
  307. DO:
  308. FAbbruch = TRUE.
  309. RUN ENDE.
  310. RETURN NO-APPLY.
  311. END.
  312. /* _UIB-CODE-BLOCK-END */
  313. &ANALYZE-RESUME
  314. &Scoped-define SELF-NAME Btn_Excel
  315. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel gEWK
  316. ON CHOOSE OF Btn_Excel IN FRAME gEWK /* Excel */
  317. DO:
  318. DO WITH FRAME {&FRAME-NAME}:
  319. Btn_Excel:SENSITIVE = FALSE.
  320. Btn_Cancel:SENSITIVE = FALSE.
  321. END.
  322. RUN BEREINIGEN.
  323. RUN REPORT.
  324. DO WITH FRAME {&FRAME-NAME}:
  325. Btn_Excel:SENSITIVE = TRUE.
  326. Btn_Cancel:SENSITIVE = TRUE.
  327. END.
  328. FAbbruch = FALSE.
  329. RUN ENDE.
  330. RETURN NO-APPLY.
  331. END.
  332. /* _UIB-CODE-BLOCK-END */
  333. &ANALYZE-RESUME
  334. &Scoped-define SELF-NAME CB_LiArt
  335. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_LiArt gEWK
  336. ON VALUE-CHANGED OF CB_LiArt IN FRAME gEWK /* Listenart */
  337. DO:
  338. VLiArt = INTEGER(SELF:SCREEN-VALUE).
  339. RUN WERTE_EINLESEN.
  340. RUN FELDER_AKTIVIEREN ( FRAME {&FRAME-NAME}:CURRENT-ITERATION ).
  341. DO WITH FRAME {&FRAME-NAME}:
  342. CASE VLiArt:
  343. WHEN 1 THEN DO:
  344. F_VonDatum :SENSITIVE = FALSE.
  345. F_VonDatum :HIDDEN = TRUE .
  346. F_BisDatum :SENSITIVE = FALSE.
  347. F_BisDatum :HIDDEN = TRUE .
  348. T_Abschluss:SENSITIVE = FALSE.
  349. T_Abschluss:HIDDEN = TRUE .
  350. T_Detail :SENSITIVE = FALSE.
  351. T_Detail :HIDDEN = TRUE .
  352. END.
  353. WHEN 2 THEN DO:
  354. F_BisDatum :SENSITIVE = FALSE.
  355. F_BisDatum :HIDDEN = TRUE .
  356. T_Detail :SENSITIVE = FALSE.
  357. T_Detail :HIDDEN = TRUE .
  358. F_VonDatum :LABEL = 'Inventardatum'.
  359. END.
  360. WHEN 3 THEN DO:
  361. T_Abschluss:SENSITIVE = FALSE.
  362. T_Abschluss:HIDDEN = TRUE .
  363. F_VonDatum :LABEL = 'von - bis Datum'.
  364. END.
  365. WHEN 4 THEN DO:
  366. T_Abschluss:SENSITIVE = FALSE.
  367. T_Abschluss:HIDDEN = TRUE .
  368. F_VonDatum :LABEL = 'von - bis Datum'.
  369. END.
  370. END CASE.
  371. END.
  372. END.
  373. /* _UIB-CODE-BLOCK-END */
  374. &ANALYZE-RESUME
  375. &Scoped-define SELF-NAME F_Herst
  376. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Herst gEWK
  377. ON ANY-PRINTABLE OF F_Herst IN FRAME gEWK /* Hersteller */
  378. DO:
  379. IF CHR(LASTKEY) = ',' THEN RETURN.
  380. IF CHR(LASTKEY) < '0' THEN RETURN NO-APPLY.
  381. IF CHR(LASTKEY) > '9' THEN RETURN NO-APPLY.
  382. END.
  383. /* _UIB-CODE-BLOCK-END */
  384. &ANALYZE-RESUME
  385. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Herst gEWK
  386. ON LEFT-MOUSE-DBLCLICK OF F_Herst IN FRAME gEWK /* Hersteller */
  387. DO:
  388. RUN g-auswahl-tabelle.w ( INPUT SELF:HANDLE, INPUT 'HERST' ).
  389. END.
  390. /* _UIB-CODE-BLOCK-END */
  391. &ANALYZE-RESUME
  392. &Scoped-define SELF-NAME F_Wgrp
  393. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Wgrp gEWK
  394. ON ANY-PRINTABLE OF F_Wgrp IN FRAME gEWK /* Warengruppe */
  395. DO:
  396. IF CHR(LASTKEY) = ',' THEN RETURN.
  397. IF CHR(LASTKEY) < '0' THEN RETURN NO-APPLY.
  398. IF CHR(LASTKEY) > '9' THEN RETURN NO-APPLY.
  399. END.
  400. /* _UIB-CODE-BLOCK-END */
  401. &ANALYZE-RESUME
  402. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Wgrp gEWK
  403. ON LEFT-MOUSE-DBLCLICK OF F_Wgrp IN FRAME gEWK /* Warengruppe */
  404. DO:
  405. RUN g-auswahl-wgr.w ( INPUT SELF:HANDLE ).
  406. END.
  407. /* _UIB-CODE-BLOCK-END */
  408. &ANALYZE-RESUME
  409. &UNDEFINE SELF-NAME
  410. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gEWK
  411. /* *************************** Main Block *************************** */
  412. MaxPage = 1.
  413. AktSeite = 1.
  414. FAbbruch = FALSE.
  415. SESSION:DATA-ENTRY-RETURN = TRUE.
  416. SUBSCRIBE TO 'TOOLBAR' ANYWHERE.
  417. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  418. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  419. /* TRIGGERS ------------------------------------------------------ */
  420. ON 'ALT-CURSOR-RIGHT':U OF FRAME {&FRAME-NAME} ANYWHERE
  421. DO:
  422. RUN NEXTPAGE.
  423. END.
  424. ON 'ALT-CURSOR-LEFT':U OF FRAME {&FRAME-NAME} ANYWHERE
  425. DO:
  426. RUN PREVPAGE.
  427. END.
  428. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE
  429. DO:
  430. RUN ENTRY_CURSOR.
  431. END.
  432. /*
  433. ON 'PAGE-DOWN':U OF {&WINDOW-NAME} ANYWHERE
  434. DO:
  435. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Next':U ).
  436. END.
  437. ON 'PAGE-UP':U OF {&WINDOW-NAME} ANYWHERE
  438. DO:
  439. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Prev':U ).
  440. END.
  441. ON 'ALT-RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE
  442. DO:
  443. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'UPDATE':U ).
  444. END.
  445. ON 'ALT-INS':U OF FRAME {&FRAME-NAME} ANYWHERE
  446. DO:
  447. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'ADD':U ).
  448. END.
  449. ON 'ALT-DEL':U OF FRAME {&FRAME-NAME} ANYWHERE
  450. DO:
  451. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'DELETE':U ).
  452. END.
  453. ON 'ALT-R':U OF FRAME {&FRAME-NAME} ANYWHERE
  454. DO:
  455. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'RESET':U ).
  456. END.
  457. ON 'F9':U OF FRAME {&FRAME-NAME} ANYWHERE
  458. DO:
  459. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ).
  460. END.
  461. ON 'ALT-S':U OF FRAME {&FRAME-NAME} ANYWHERE
  462. DO:
  463. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ).
  464. END.
  465. ON 'ALT-K':U OF FRAME {&FRAME-NAME} ANYWHERE
  466. DO:
  467. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'COPY':U ).
  468. END.
  469. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE
  470. DO:
  471. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  472. IF FMutFlag = FALSE THEN DO:
  473. RUN ENDE.
  474. RETURN NO-APPLY.
  475. END.
  476. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'CANCEL':U ).
  477. RETURN NO-APPLY.
  478. END.
  479. */
  480. /* ------------------------------------------------------------------ */
  481. {src/adm2/dialogmn.i}
  482. /* _UIB-CODE-BLOCK-END */
  483. &ANALYZE-RESUME
  484. /* ********************** Internal Procedures *********************** */
  485. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gEWK _ADM-CREATE-OBJECTS
  486. PROCEDURE adm-create-objects :
  487. /*------------------------------------------------------------------------------
  488. Purpose: Create handles for all SmartObjects used in this procedure.
  489. After SmartObjects are initialized, then SmartLinks are added.
  490. Parameters: <none>
  491. ------------------------------------------------------------------------------*/
  492. END PROCEDURE.
  493. /* _UIB-CODE-BLOCK-END */
  494. &ANALYZE-RESUME
  495. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE01 gEWK
  496. PROCEDURE AUSGABE01 :
  497. /*------------------------------------------------------------------------------
  498. Purpose:
  499. Parameters: <none>
  500. Notes:
  501. ------------------------------------------------------------------------------*/
  502. DEF VAR io AS LOG NO-UNDO.
  503. DEF VAR Zelle AS CHAR NO-UNDO.
  504. cVorlage = 'EWKArtikel.xls'.
  505. cDokument = 'EWKArtikel.xls'.
  506. cDaten = 'EWKArtikel.txt'.
  507. cAlt = ''.
  508. cNeu = ''.
  509. FKey1 = FALSE.
  510. FKey2 = FALSE.
  511. FKey3 = FALSE.
  512. FKey4 = FALSE.
  513. Sprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR.
  514. cDateiName = cDokument + CHR(01) + cVorlage.
  515. RUN CREATEDATEI ( INPUT cDateiName ).
  516. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  517. cDokument = RETURN-VALUE.
  518. cDateiName = cDaten.
  519. RUN CREATEDATEI ( INPUT cDateiName ).
  520. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  521. cDaten = RETURN-VALUE.
  522. FOR EACH TArtst:
  523. DELETE TArtst.
  524. END.
  525. FOR EACH Artst USE-INDEX Artst-k1
  526. WHERE Artst.Firma = Firma
  527. AND Artst.Artnr >= F_VonArtnr
  528. AND Artst.Artnr <= F_BisArtnr
  529. AND Artst.Inhalt >= F_VonInhalt
  530. AND Artst.Inhalt <= F_BisInhalt
  531. AND Artst.Jahr >= F_VonJahr
  532. AND Artst.Jahr <= F_BisJahr
  533. AND Artst.WHK_Code <> ''
  534. AND Artst.Aktiv = TRUE NO-LOCK:
  535. IF Artst.Ausverk = 9 THEN DO:
  536. IF Artst.Bestand = 0 THEN NEXT.
  537. END.
  538. IF F_Herst <> '' THEN DO:
  539. IF LOOKUP(STRING(Artst.Herst ,'999'), F_Herst, ',') = 0 THEN NEXT.
  540. END.
  541. IF F_Wgrp <> '' THEN DO:
  542. IF LOOKUP(STRING(Artst.Wg_Grp,'999'), F_Wgrp , ',') = 0 THEN NEXT.
  543. END.
  544. CREATE TArtst.
  545. BUFFER-COPY Artst TO TArtst.
  546. END.
  547. OUTPUT TO VALUE(cDaten).
  548. PUT CONTROL '£' CHR(10)
  549. '£' CHR(10)
  550. '£Artnr£Artikel£££Inhalt£Jahr£Code' CHR(10)
  551. '£' CHR(10).
  552. FOR EACH TArtst NO-LOCK
  553. BREAK BY TArtst.WHK_Code
  554. BY TArtst.Bez :
  555. IF FIRST-OF(TArtst.WHK_Code) THEN DO:
  556. cNeu = TArtst.WHK_Code.
  557. RUN SCHLUESSEL.
  558. IF FKey1 AND cKey1 <> '' THEN PUT CONTROL cKey1 CHR(10).
  559. IF FKey2 AND cKey2 <> '' THEN PUT CONTROL cKey2 CHR(10).
  560. IF FKey3 AND cKey3 <> '' THEN PUT CONTROL cKey3 CHR(10).
  561. IF FKey4 AND cKey4 <> '' THEN PUT CONTROL cKey4 CHR(10).
  562. END.
  563. FIND ArtBez USE-INDEX ArtBez-k1
  564. WHERE ArtBez.Firma = Firma
  565. AND ArtBez.Artnr = TArtst.Artnr
  566. AND ArtBez.Inhalt = TArtst.Inhalt
  567. AND ArtBez.Jahr = TArtst.Jahr
  568. AND ArtBez.Sprcd = Sprcd NO-LOCK NO-ERROR.
  569. IF NOT AVAILABLE Artbez THEN DO:
  570. FIND FIRST ArtBez USE-INDEX ArtBez-k1
  571. WHERE ArtBez.Firma = Firma
  572. AND ArtBez.Artnr = TArtst.Artnr
  573. AND ArtBez.Inhalt = TArtst.Inhalt
  574. AND ArtBez.Jahr = TArtst.Jahr
  575. NO-LOCK NO-ERROR.
  576. END.
  577. IF AVAILABLE ArtBez THEN ASSIGN Bez1 = ArtBez.Bez1
  578. Bez2 = ArtBez.Bez2.
  579. ELSE ASSIGN Bez1 = '??????????'
  580. Bez2 = ''.
  581. FIND KGebinde USE-INDEX KGebinde-k1
  582. WHERE KGebinde.Firma = TArtst.Firma
  583. AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR.
  584. IF AVAILABLE KGebinde THEN Gebinde = STRING(KGebinde.Inhalt / 100,'>>9.99 l').
  585. ELSE Gebinde = TArtst.KGeb_Cd + ' ?????'.
  586. IF TArtst.Jahr > 10 THEN cJahr = STRING(TArtst.Jahr,'9999').
  587. ELSE cJahr = ''.
  588. PUT CONTROL '£'
  589. STRING(TArtst.Artnr,'999999') '£'
  590. Bez1 '£££'
  591. Gebinde '£'
  592. cJahr '£'
  593. TArtst.WHK_Code CHR(10).
  594. IF Bez2 <> '' THEN PUT CONTROL '££' Bez2 CHR(10).
  595. IF LAST-OF ( TArtst.WHK_Code ) THEN DO:
  596. cNeu = TArtst.WHK_Code.
  597. RUN LETZTER.
  598. PUT CONTROL '£' CHR(10).
  599. END.
  600. END.
  601. OUTPUT CLOSE.
  602. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  603. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  604. RUN FEHLER ( INPUT 1035 ).
  605. RETURN.
  606. END.
  607. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT io ).
  608. IF NOT io THEN DO:
  609. RUN FEHLER ( INPUT 1040 ).
  610. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  611. RETURN NO-APPLY.
  612. END.
  613. Zelle = 'A1'.
  614. excelAppl:Range(Zelle):SELECT.
  615. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten.
  616. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  617. RUN KOPF ( INPUT excelAppl ).
  618. Zelle = 'A1'.
  619. excelAppl:Range(Zelle):SELECT.
  620. excelAppl:Selection:ColumnWidth = 0.3.
  621. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  622. END PROCEDURE.
  623. /* _UIB-CODE-BLOCK-END */
  624. &ANALYZE-RESUME
  625. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE02 gEWK
  626. PROCEDURE AUSGABE02 :
  627. /*------------------------------------------------------------------------------
  628. Purpose:
  629. Parameters: <none>
  630. Notes:
  631. ------------------------------------------------------------------------------*/
  632. DEF VAR io AS LOG NO-UNDO.
  633. DEF VAR Zelle AS CHAR NO-UNDO.
  634. DEF VAR cSort AS CHAR NO-UNDO.
  635. DEF VAR i1 AS INT NO-UNDO.
  636. DEF VAR i2 AS INT NO-UNDO.
  637. DEF VAR Anz AS INT NO-UNDO.
  638. DEF VAR Menge AS DEC DECIMALS 3 NO-UNDO.
  639. DEF VAR Liter AS DEC DECIMALS 3 NO-UNDO.
  640. DEF VAR cString AS CHAR NO-UNDO.
  641. cVorlage = 'EWKInventar.xls'.
  642. cDokument = 'EWKInventar.xls'.
  643. cDaten = 'EWKInventar.txt'.
  644. cAlt = ''.
  645. cNeu = ''.
  646. FKey1 = FALSE.
  647. FKey2 = FALSE.
  648. FKey3 = FALSE.
  649. FKey4 = FALSE.
  650. Sprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR.
  651. InvDatum = F_VonDatum.
  652. cDateiName = cDokument + CHR(01) + cVorlage.
  653. RUN CREATEDATEI ( INPUT cDateiName ).
  654. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  655. cDokument = RETURN-VALUE.
  656. cDateiName = cDaten.
  657. RUN CREATEDATEI ( INPUT cDateiName ).
  658. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  659. cDaten = RETURN-VALUE.
  660. FOR EACH TArtst:
  661. DELETE TArtst.
  662. END.
  663. FOR EACH Totale:
  664. DELETE Totale.
  665. END.
  666. FOR EACH BArtst USE-INDEX Artst-k1
  667. WHERE BArtst.Firma = Firma
  668. AND BArtst.Artnr >= F_VonArtnr
  669. AND BArtst.Artnr <= F_BisArtnr
  670. AND BArtst.Inhalt >= F_VonInhalt
  671. AND BArtst.Inhalt <= F_BisInhalt
  672. AND BArtst.Jahr >= F_VonJahr
  673. AND BArtst.Jahr <= F_BisJahr
  674. AND BArtst.WHK_Code <> ''
  675. AND BArtst.Lager = TRUE NO-LOCK:
  676. DO WHILE TRUE:
  677. io = TRUE.
  678. IF BArtst.Aktiv THEN LEAVE.
  679. IF BArtst.MDat >= InvDatum THEN LEAVE.
  680. io = FALSE.
  681. LEAVE.
  682. END.
  683. IF NOT io THEN NEXT.
  684. IF F_Herst <> '' THEN DO:
  685. IF LOOKUP(STRING(BArtst.Herst ,'999'), F_Herst, ',') = 0 THEN NEXT.
  686. END.
  687. IF F_Wgrp <> '' THEN DO:
  688. IF LOOKUP(STRING(BArtst.Wg_Grp,'999'), F_Wgrp , ',') = 0 THEN NEXT.
  689. END.
  690. RUN INVENTARBESTAND.
  691. IF Bestand = ? THEN NEXT.
  692. IF Bestand = 0 THEN NEXT.
  693. CREATE TArtst.
  694. BUFFER-COPY BArtst TO TArtst.
  695. TArtst.InvMenge = Bestand.
  696. END.
  697. OUTPUT TO VALUE(cDaten).
  698. PUT CONTROL '£' CHR(10)
  699. '£' CHR(10)
  700. '£££Jahr£Inhalt/£Anzahl£Total' CHR(10)
  701. '£Artnr£Artikel£gang£Einheit£Einheiten£Liter' CHR(10)
  702. '£' CHR(10).
  703. Menge = 0.
  704. Liter = 0.
  705. FOR EACH TArtst BREAK BY TArtst.WHK_Code
  706. BY TArtst.Artnr
  707. BY TArtst.Inhalt
  708. BY TArtst.Jahr :
  709. IF FIRST-OF(TArtst.WHK_Code) THEN DO:
  710. cNeu = TArtst.WHK_Code.
  711. IF NOT FIRST (TArtst.WHK_Code) THEN DO:
  712. RUN LETZTER.
  713. RUN TOTALE02.
  714. END.
  715. RUN SCHLUESSEL.
  716. IF FKey1 AND cKey1 <> '' THEN PUT CONTROL cKey1 CHR(10).
  717. IF FKey2 AND cKey2 <> '' THEN PUT CONTROL cKey2 CHR(10).
  718. IF FKey3 AND cKey3 <> '' THEN PUT CONTROL cKey3 CHR(10).
  719. IF FKey4 AND cKey4 <> '' THEN PUT CONTROL cKey4 CHR(10).
  720. Anz = 0.
  721. END.
  722. FIND ArtBez USE-INDEX ArtBez-k1
  723. WHERE ArtBez.Firma = Firma
  724. AND ArtBez.Artnr = TArtst.Artnr
  725. AND ArtBez.Inhalt = TArtst.Inhalt
  726. AND ArtBez.Jahr = TArtst.Jahr
  727. AND ArtBez.Sprcd = Sprcd NO-LOCK NO-ERROR.
  728. IF NOT AVAILABLE ArtBez THEN DO:
  729. FIND FIRST ArtBez USE-INDEX ArtBez-k1
  730. WHERE ArtBez.Firma = Firma
  731. AND ArtBez.Artnr = TArtst.Artnr
  732. AND ArtBez.Inhalt = TArtst.Inhalt
  733. AND ArtBez.Jahr = TArtst.Jahr NO-LOCK NO-ERROR.
  734. END.
  735. IF AVAILABLE ArtBez THEN ASSIGN Bez1 = ArtBez.Bez1
  736. Bez2 = ArtBez.Bez2.
  737. ELSE ASSIGN Bez1 = '??????????'
  738. Bez2 = ''.
  739. FIND KGebinde USE-INDEX KGebinde-k1
  740. WHERE KGebinde.Firma = TArtst.Firma
  741. AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR.
  742. IF AVAILABLE KGebinde THEN Gebinde = STRING(KGebinde.Inhalt / 100,'>>9.99 l').
  743. ELSE Gebinde = TArtst.KGeb_Cd + ' ?????'.
  744. IF TArtst.Jahr > 10 THEN cJahr = STRING(TArtst.Jahr,'9999').
  745. ELSE cJahr = ''.
  746. TArtst.InvLiter = TArtst.InvMenge * KGebinde.Inhalt / 100.
  747. DO i1 = 1 TO 4:
  748. i2 = ((i1 - 1) * 2) + 1.
  749. IF SUBSTRING(TArtst.WHK_Code,i2,02) = '00' THEN LEAVE.
  750. i2 = i1 * 2.
  751. cSort = SUBSTRING(TArtst.WHK_Code,01,i2).
  752. FIND FIRST Totale WHERE Totale.Sort_1 = cSort NO-ERROR.
  753. IF NOT AVAILABLE Totale THEN DO:
  754. CREATE Totale.
  755. ASSIGN Totale.Sort_1 = cSort.
  756. END.
  757. Totale.Menge = Totale.Menge + TArtst.InvMenge.
  758. Totale.Liter = Totale.Liter + TArtst.InvLiter.
  759. END.
  760. PUT CONTROL '£'
  761. STRING(TArtst.Artnr ,'999999') '£'
  762. Bez1 '£'
  763. cJahr '£'
  764. Gebinde '£'
  765. STRING(TArtst.InvMenge ,'->>>>,>>9.99') '£'
  766. STRING(TArtst.InvLiter ,'->>>>,>>9.99') CHR(10).
  767. IF Bez2 <> '' THEN PUT CONTROL '££' Bez2 CHR(10).
  768. Anz = Anz + 1.
  769. dMenge = TArtst.InvMenge.
  770. dLiter = TArtst.InvLiter.
  771. Menge = Menge + TArtst.InvMenge.
  772. Liter = Liter + TArtst.InvLiter.
  773. IF LAST ( TArtst.WHK_Code ) THEN DO:
  774. LKey1 = TRUE.
  775. LKey2 = TRUE.
  776. LKey3 = TRUE.
  777. LKey4 = TRUE.
  778. IF SUBSTRING(cAlt,01,02) = '00' THEN LKey1 = FALSE.
  779. IF SUBSTRING(cAlt,03,02) = '00' THEN LKey2 = FALSE.
  780. IF SUBSTRING(cAlt,05,02) = '00' THEN LKey3 = FALSE.
  781. IF SUBSTRING(cAlt,07,02) = '00' THEN LKey4 = FALSE.
  782. RUN TOTALE02.
  783. END.
  784. END.
  785. PUT CONTROL '££Gesamttotal£££'
  786. STRING(Menge,'->>>>,>>9.99') '£'
  787. STRING(Liter,'->>>>,>>9.99') CHR(10)
  788. 'ENDE' CHR(10).
  789. FOR EACH Totale BREAK BY SUBSTRING(Totale.Sort_1,01,02):
  790. cAlt = '99999999'.
  791. cNeu = Totale.Sort_1.
  792. RUN SCHLUESSEL.
  793. IF LENGTH(Totale.Sort_1) = 2
  794. THEN cString = Totale.Sort_1 + '£' + cKey1 + '£££££'.
  795. IF LENGTH(Totale.Sort_1) = 4
  796. THEN cString = Totale.Sort_1 + '£' + cKey2 + '££££'.
  797. IF LENGTH(Totale.Sort_1) = 6
  798. THEN cString = Totale.Sort_1 + '£' + cKey3 + '£££'.
  799. IF LENGTH(Totale.Sort_1) = 8
  800. THEN cString = Totale.Sort_1 + '£' + cKey4 + '££'.
  801. PUT CONTROL cString
  802. STRING(Totale.Liter,'->>>>,>>9.99') CHR(10).
  803. IF LAST-OF ( SUBSTRING(Totale.Sort_1,01,02) ) THEN PUT CONTROL '£' CHR(10).
  804. END.
  805. PUT CONTROL '£' CHR(10).
  806. PUT CONTROL '£Gesamttotal£££££'
  807. STRING(Liter,'->>>>,>>9.99') CHR(10)
  808. '£' CHR(10).
  809. OUTPUT CLOSE.
  810. Zeile1 = 0.
  811. Zeile2 = 0.
  812. io = FALSE.
  813. INPUT STREAM In_Stream FROM VALUE(cDaten) NO-ECHO NO-MAP.
  814. REPEAT ON STOP UNDO, LEAVE WITH FRAME f_Print:
  815. IMPORT STREAM In_Stream UNFORMATTED cSort.
  816. IF NOT io THEN Zeile1 = Zeile1 + 1.
  817. Zeile2 = Zeile2 + 1.
  818. IF cSort BEGINS 'ENDE' THEN io = TRUE.
  819. END.
  820. INPUT STREAM In_Stream CLOSE.
  821. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  822. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  823. RUN FEHLER ( INPUT 1035 ).
  824. RETURN.
  825. END.
  826. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT io ).
  827. IF NOT io THEN DO:
  828. RUN FEHLER ( INPUT 1040 ).
  829. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  830. RETURN NO-APPLY.
  831. END.
  832. Zelle = 'A1'.
  833. excelAppl:Sheets("Liste"):Select.
  834. excelAppl:Range(Zelle):Select.
  835. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten.
  836. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  837. RUN KOPF ( INPUT excelAppl ).
  838. Zelle = 'A1'.
  839. excelAppl:Range(Zelle):Select.
  840. excelAppl:Selection:ColumnWidth = 0.3.
  841. Zelle = 'A' + STRING(Zeile1).
  842. excelAppl:Range(Zelle):Select.
  843. excelAppl:Selection:FormulaR1C1 = ''.
  844. Zeile1 = Zeile1 + 1.
  845. excelAppl:Selection:CUT.
  846. Zelle = 'A' + STRING(Zeile1) + ':H' + STRING(Zeile2).
  847. excelAppl:Range(Zelle):Select.
  848. excelAppl:Selection:CUT.
  849. Zelle = 'A10'.
  850. excelAppl:Sheets("Total"):Select.
  851. excelAppl:Range(Zelle):Select.
  852. excelAppl:ActiveSheet:Paste.
  853. excelAppl:Application:CutCopyMode = FALSE.
  854. i1 = Zeile2 - Zeile1.
  855. Zelle = 'A10:C' + STRING(10 + i1).
  856. excelAppl:Range(Zelle):Select.
  857. excelAppl:Selection:HorizontalAlignment = -4131.
  858. excelAppl:Selection:Font:Bold = False.
  859. Zelle = 'A10:C14'.
  860. excelAppl:Sheets("Texte"):Select.
  861. excelAppl:Range(Zelle):Select.
  862. excelAppl:Selection:COPY.
  863. excelAppl:Sheets("Total"):Select.
  864. Zelle = 'A' + STRING(10 + i1 + 4).
  865. excelAppl:Range(Zelle):Select.
  866. excelAppl:ActiveSheet:Paste.
  867. excelAppl:Application:CutCopyMode = FALSE.
  868. Zelle = 'A1'.
  869. excelAppl:Range(Zelle):Select.
  870. excelAppl:Sheets("Liste"):Select.
  871. excelAppl:Range(Zelle):Select.
  872. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  873. END PROCEDURE.
  874. /* _UIB-CODE-BLOCK-END */
  875. &ANALYZE-RESUME
  876. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE03 gEWK
  877. PROCEDURE AUSGABE03 :
  878. /*------------------------------------------------------------------------------
  879. Purpose:
  880. Parameters: <none>
  881. Notes:
  882. ------------------------------------------------------------------------------*/
  883. DEF VAR io AS LOG NO-UNDO.
  884. DEF VAR Zelle AS CHAR NO-UNDO.
  885. DEF VAR cSort AS CHAR NO-UNDO.
  886. DEF VAR i1 AS INT NO-UNDO.
  887. DEF VAR i2 AS INT NO-UNDO.
  888. DEF VAR Anz AS INT NO-UNDO.
  889. DEF VAR Datum AS DATE NO-UNDO.
  890. DEF VAR cAdr AS CHAR NO-UNDO.
  891. DEF VAR aMenge AS DEC DECIMALS 3 NO-UNDO.
  892. DEF VAR aLiter AS DEC DECIMALS 3 NO-UNDO.
  893. DEF VAR gMenge AS DEC DECIMALS 3 NO-UNDO.
  894. DEF VAR gLiter AS DEC DECIMALS 3 NO-UNDO.
  895. cVorlage = 'EWKVerkäufe.xls'.
  896. cDokument = 'EWKVerkäufe.xls'.
  897. cDaten = 'EWKVerkäufe.txt'.
  898. cAlt = ''.
  899. cNeu = ''.
  900. FKey1 = FALSE.
  901. FKey2 = FALSE.
  902. FKey3 = FALSE.
  903. FKey4 = FALSE.
  904. Sprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR.
  905. InvDatum = F_VonDatum.
  906. cDateiName = cDokument + CHR(01) + cVorlage.
  907. RUN CREATEDATEI ( INPUT cDateiName ).
  908. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  909. cDokument = RETURN-VALUE.
  910. cDateiName = cDaten.
  911. RUN CREATEDATEI ( INPUT cDateiName ).
  912. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  913. cDaten = RETURN-VALUE.
  914. EMPTY TEMP-TABLE tArtst.
  915. EMPTY TEMP-TABLE Totale.
  916. EMPTY TEMP-TABLE tArtbw.
  917. FOR EACH BArtst USE-INDEX Artst-k1
  918. WHERE BArtst.Firma = Firma
  919. AND BArtst.Artnr >= F_VonArtnr
  920. AND BArtst.Artnr <= F_BisArtnr
  921. AND BArtst.Inhalt >= F_VonInhalt
  922. AND BArtst.Inhalt <= F_BisInhalt
  923. AND BArtst.Jahr >= F_VonJahr
  924. AND BArtst.Jahr <= F_BisJahr
  925. AND BArtst.WHK_Code <> ''
  926. AND BArtst.Lager = TRUE NO-LOCK:
  927. DO WHILE TRUE:
  928. io = TRUE.
  929. IF BArtst.Aktiv THEN LEAVE.
  930. IF BArtst.MDat >= F_VonDatum THEN LEAVE.
  931. io = FALSE.
  932. LEAVE.
  933. END.
  934. IF NOT io THEN NEXT.
  935. IF F_Herst <> '' THEN DO:
  936. IF LOOKUP(STRING(BArtst.Herst ,'999'), F_Herst, ',') = 0 THEN NEXT.
  937. END.
  938. IF F_Wgrp <> '' THEN DO:
  939. IF LOOKUP(STRING(BArtst.Wg_Grp,'999'), F_Wgrp , ',') = 0 THEN NEXT.
  940. END.
  941. CREATE tArtst.
  942. BUFFER-COPY BArtst TO tArtst.
  943. END.
  944. FOR EACH tArtst:
  945. Anz = 0.
  946. FOR EACH Artbw USE-INDEX Artbw-k2
  947. WHERE Artbw.Firma = tArtst.Firma
  948. AND Artbw.Artnr = tArtst.Artnr
  949. AND Artbw.Inhalt = tArtst.Inhalt
  950. AND Artbw.Jahr = tArtst.Jahr
  951. AND Artbw.Datum >= F_VonDatum
  952. AND Artbw.Datum <= F_BisDatum
  953. AND Artbw.Lag_Buch = TRUE
  954. AND Artbw.Tr_Art < 09 NO-LOCK:
  955. Anz = Anz + 1.
  956. IF T_Detail AND
  957. Artbw.Tr_Art <> 9 THEN DO:
  958. Datum = DATE(MONTH(Artbw.Datum),01,YEAR(Artbw.Datum)).
  959. IF Datum < F_VonDatum THEN Datum = F_VonDatum.
  960. FIND FIRST tArtbw USE-INDEX Artbw-k2
  961. WHERE tArtbw.Firma = Artbw.Firma
  962. AND tArtbw.Artnr = Artbw.Artnr
  963. AND tArtbw.Inhalt = Artbw.Inhalt
  964. AND tArtbw.Jahr = Artbw.Jahr
  965. AND tArtbw.Datum = Datum NO-ERROR.
  966. IF NOT AVAILABLE tArtbw THEN DO:
  967. CREATE tArtbw.
  968. BUFFER-COPY Artbw TO tArtbw
  969. ASSIGN tArtbw.Datum = Datum
  970. tArtbw.Faknr = 0
  971. tArtbw.Menge = 0
  972. tArtbw.Liter = 0
  973. tArtbw.Knr = -1.
  974. END.
  975. ASSIGN tArtbw.Menge = tArtbw.Menge + Artbw.Menge
  976. tArtbw.Liter = tArtbw.Liter + Artbw.Liter.
  977. END.
  978. ELSE DO:
  979. CREATE tArtbw.
  980. BUFFER-COPY Artbw TO tArtbw.
  981. END.
  982. END.
  983. IF Anz = 0 THEN DELETE tArtst.
  984. END.
  985. OUTPUT TO VALUE(cDaten).
  986. PUT CONTROL '£' CHR(10)
  987. '£' CHR(10)
  988. '£Datum££Faknr£Kunde££££Ausgang£Saldo£Liter' CHR(10)
  989. '£' CHR(10).
  990. gMenge = 0.
  991. gLiter = 0.
  992. FOR EACH tArtst,
  993. EACH tArtbw OF tArtst
  994. BREAK BY tArtst.WHK_Code
  995. BY tArtst.Artnr
  996. BY tArtst.Inhalt
  997. BY tArtst.Jahr
  998. BY tArtbw.Datum
  999. BY tArtbw.Trnr :
  1000. IF FIRST-OF ( tArtst.WHK_Code ) THEN DO:
  1001. cNeu = tArtst.WHK_Code.
  1002. IF NOT FIRST (tArtst.WHK_Code) THEN DO:
  1003. RUN LETZTER.
  1004. RUN TOTALE03.
  1005. END.
  1006. RUN SCHLUESSEL.
  1007. IF FKey1 AND cKey1 <> '' THEN PUT CONTROL cKey1 CHR(10).
  1008. IF FKey2 AND cKey2 <> '' THEN PUT CONTROL cKey2 CHR(10).
  1009. IF FKey3 AND cKey3 <> '' THEN PUT CONTROL cKey3 CHR(10).
  1010. IF FKey4 AND cKey4 <> '' THEN PUT CONTROL cKey4 CHR(10).
  1011. PUT CONTROL '£' CHR(10).
  1012. Anz = 0.
  1013. END.
  1014. IF FIRST-OF ( tArtst.Jahr ) THEN DO:
  1015. FIND ArtBez USE-INDEX ArtBez-k1
  1016. WHERE ArtBez.Firma = Firma
  1017. AND ArtBez.Artnr = tArtst.Artnr
  1018. AND ArtBez.Inhalt = tArtst.Inhalt
  1019. AND ArtBez.Jahr = tArtst.Jahr
  1020. AND ArtBez.Sprcd = Sprcd NO-LOCK NO-ERROR.
  1021. IF NOT AVAILABLE ArtBez THEN DO:
  1022. FIND FIRST ArtBez USE-INDEX ArtBez-k1
  1023. WHERE ArtBez.Firma = Firma
  1024. AND ArtBez.Artnr = tArtst.Artnr
  1025. AND ArtBez.Inhalt = tArtst.Inhalt
  1026. AND ArtBez.Jahr = tArtst.Jahr
  1027. NO-LOCK NO-ERROR.
  1028. END.
  1029. IF AVAILABLE ArtBez THEN ASSIGN Bez1 = ArtBez.Bez1
  1030. Bez2 = ArtBez.Bez2.
  1031. ELSE ASSIGN Bez1 = '??????????'
  1032. Bez2 = ''.
  1033. FIND KGebinde USE-INDEX KGebinde-k1
  1034. WHERE KGebinde.Firma = tArtst.Firma
  1035. AND KGebinde.Geb_Cd = tArtst.KGeb_Cd NO-LOCK NO-ERROR.
  1036. IF AVAILABLE KGebinde THEN Gebinde = STRING(KGebinde.Inhalt / 100,'>>9.99 l').
  1037. ELSE Gebinde = tArtst.KGeb_Cd + ' ?????'.
  1038. IF tArtst.Jahr > 10 THEN cJahr = STRING(tArtst.Jahr,'9999').
  1039. ELSE cJahr = ''.
  1040. PUT CONTROL STRING(tArtst.Artnr,'999999') '££'
  1041. Bez1 '£££'
  1042. cJahr '£'
  1043. Gebinde CHR(10).
  1044. IF Bez2 <> '' THEN PUT CONTROL '££' Bez2 CHR(10).
  1045. aMenge = 0.
  1046. aLiter = 0.
  1047. END.
  1048. DO i1 = 1 TO 4:
  1049. i2 = ((i1 - 1) * 2) + 1.
  1050. IF SUBSTRING(tArtst.WHK_Code,i2,02) = '00' THEN LEAVE.
  1051. i2 = i1 * 2.
  1052. cSort = SUBSTRING(tArtst.WHK_Code,01,i2).
  1053. FIND FIRST Totale WHERE Totale.Sort_1 = cSort NO-ERROR.
  1054. IF NOT AVAILABLE Totale THEN DO:
  1055. CREATE Totale.
  1056. ASSIGN Totale.Sort_1 = cSort.
  1057. END.
  1058. Totale.Menge = Totale.Menge + tArtbw.Menge.
  1059. Totale.Liter = Totale.Liter + tArtbw.Liter.
  1060. END.
  1061. aMenge = aMenge + tArtbw.Menge.
  1062. aLiter = aLiter + tArtbw.Liter.
  1063. IF tArtbw.Knr = -1 THEN DO:
  1064. cAdr = 'Verkäufe Monat ' + STRING(MONTH(tArtbw.Datum),'99.')
  1065. + STRING(YEAR (tArtbw.Datum),'9999').
  1066. END.
  1067. ELSE DO:
  1068. IF tArtbw.Knr <> 0 THEN DO:
  1069. FIND Adresse USE-INDEX Adresse-k1
  1070. WHERE Adresse.Firma = AdFirma
  1071. AND Adresse.Knr = tArtbw.Knr NO-LOCK NO-ERROR.
  1072. IF AVAILABLE Adresse THEN cAdr = Adresse.Anzeig_Br.
  1073. ELSE cAdr = '???????????????'.
  1074. END.
  1075. ELSE DO:
  1076. RUN FIND_LAGTRANSART ( INPUT tArtbw.Tr_ARt, OUTPUT cAdr ).
  1077. IF cAdr = '' THEN cAdr = '??????????'.
  1078. ELSE cAdr = ENTRY(2, cAdr, CHR(01)).
  1079. END.
  1080. END.
  1081. PUT CONTROL '£'
  1082. STRING(tArtbw.Datum ,'99.99.9999') '££'
  1083. STRING(tArtbw.Faknr ,'>>>>>>') '£'
  1084. cAdr '££££'
  1085. STRING(tArtbw.Menge ,'->>>>,>>9.99') '£'
  1086. STRING(aMenge ,'->>>>,>>9.99') '£'
  1087. STRING(aLiter ,'->>>>,>>9.99') CHR(10).
  1088. Anz = Anz + 1.
  1089. dMenge = aMenge.
  1090. dLiter = aLiter.
  1091. gMenge = gMenge + tArtbw.Menge.
  1092. gLiter = gLiter + tArtbw.Liter.
  1093. IF LAST-OF ( tArtst.Jahr ) AND
  1094. NOT LAST-OF ( tArtst.WHK_Code ) THEN PUT CONTROL '£' CHR(10).
  1095. IF LAST ( tArtst.WHK_Code ) THEN DO:
  1096. LKey1 = TRUE.
  1097. LKey2 = TRUE.
  1098. LKey3 = TRUE.
  1099. LKey4 = TRUE.
  1100. IF SUBSTRING(cAlt,01,02) = '00' THEN LKey1 = FALSE.
  1101. IF SUBSTRING(cAlt,03,02) = '00' THEN LKey2 = FALSE.
  1102. IF SUBSTRING(cAlt,05,02) = '00' THEN LKey3 = FALSE.
  1103. IF SUBSTRING(cAlt,07,02) = '00' THEN LKey4 = FALSE.
  1104. RUN TOTALE03.
  1105. END.
  1106. END.
  1107. IF gMenge <> 0 OR
  1108. gLiter <> 0 THEN DO:
  1109. PUT CONTROL '£' CHR(10)
  1110. 'Gesamtverkäufe' '£££££££££'
  1111. STRING(gMenge,'->>>>,>>9.99') '£'
  1112. STRING(gLiter,'->>>>,>>9.99') CHR(10).
  1113. END.
  1114. OUTPUT CLOSE.
  1115. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  1116. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  1117. RUN FEHLER ( INPUT 1035 ).
  1118. RETURN.
  1119. END.
  1120. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT io ).
  1121. IF NOT io THEN DO:
  1122. RUN FEHLER ( INPUT 1040 ).
  1123. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1124. RETURN NO-APPLY.
  1125. END.
  1126. Zelle = 'A1'.
  1127. excelAppl:Range(Zelle):SELECT.
  1128. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten.
  1129. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  1130. RUN KOPF ( INPUT excelAppl ).
  1131. Zelle = 'A1'.
  1132. excelAppl:Range(Zelle):SELECT.
  1133. excelAppl:Selection:ColumnWidth = 0.3.
  1134. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1135. END PROCEDURE.
  1136. /* _UIB-CODE-BLOCK-END */
  1137. &ANALYZE-RESUME
  1138. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE04 gEWK
  1139. PROCEDURE AUSGABE04 :
  1140. /*------------------------------------------------------------------------------
  1141. Purpose:
  1142. Parameters: <none>
  1143. Notes:
  1144. ------------------------------------------------------------------------------*/
  1145. DEF VAR io AS LOG NO-UNDO.
  1146. DEF VAR Zelle AS CHAR NO-UNDO.
  1147. DEF VAR cSort AS CHAR NO-UNDO.
  1148. DEF VAR i1 AS INT NO-UNDO.
  1149. DEF VAR i2 AS INT NO-UNDO.
  1150. DEF VAR Anz AS INT NO-UNDO.
  1151. DEF VAR Datum AS DATE NO-UNDO.
  1152. DEF VAR cAdr AS CHAR NO-UNDO.
  1153. DEF VAR aMenge AS DEC DECIMALS 3 NO-UNDO.
  1154. DEF VAR aLiter AS DEC DECIMALS 3 NO-UNDO.
  1155. DEF VAR aEing AS DEC DECIMALS 3 NO-UNDO.
  1156. DEF VAR aAusg AS DEC DECIMALS 3 NO-UNDO.
  1157. DEF VAR aDiff AS DEC DECIMALS 3 NO-UNDO.
  1158. DEF VAR aInhalt AS DEC DECIMALS 3 NO-UNDO.
  1159. DEF VAR gMenge AS DEC DECIMALS 3 NO-UNDO.
  1160. DEF VAR gLiter AS DEC DECIMALS 3 NO-UNDO.
  1161. DEF VAR gEing AS DEC DECIMALS 3 NO-UNDO.
  1162. DEF VAR gAusg AS DEC DECIMALS 3 NO-UNDO.
  1163. DEF VAR FEing AS LOG NO-UNDO.
  1164. DEF VAR Artnr AS INT NO-UNDO.
  1165. DEF VAR Inhalt AS INT NO-UNDO.
  1166. DEF VAR Jahr AS INT NO-UNDO.
  1167. DEF VAR Doknr AS CHAR NO-UNDO.
  1168. DEF VAR cString AS CHAR NO-UNDO.
  1169. DEF VAR Faktor AS INT NO-UNDO.
  1170. cVorlage = 'EWKBuchhaltung.xls'.
  1171. cDokument = 'EWKBuchhaltung.xls'.
  1172. cDaten = 'EWKBuchhaltung.txt'.
  1173. cAlt = ''.
  1174. cNeu = ''.
  1175. FKey1 = FALSE.
  1176. FKey2 = FALSE.
  1177. FKey3 = FALSE.
  1178. FKey4 = FALSE.
  1179. Sprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR.
  1180. InvDatum = F_VonDatum.
  1181. cDateiName = cDokument + CHR(01) + cVorlage.
  1182. RUN CREATEDATEI ( INPUT cDateiName ).
  1183. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1184. cDokument = RETURN-VALUE.
  1185. cDateiName = cDaten.
  1186. RUN CREATEDATEI ( INPUT cDateiName ).
  1187. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1188. cDaten = RETURN-VALUE.
  1189. EMPTY TEMP-TABLE tArtst.
  1190. EMPTY TEMP-TABLE tArtbw.
  1191. EMPTY TEMP-TABLE Totale.
  1192. FOR EACH bArtst NO-LOCK USE-INDEX Artst-k1
  1193. WHERE bArtst.Firma = Firma
  1194. AND bArtst.Artnr >= F_VonArtnr
  1195. AND bArtst.Artnr <= F_BisArtnr
  1196. AND bArtst.Inhalt >= F_VonInhalt
  1197. AND bArtst.Inhalt <= F_BisInhalt
  1198. AND bArtst.Jahr >= F_VonJahr
  1199. AND bArtst.Jahr <= F_BisJahr
  1200. AND bArtst.WHK_Code <> ''
  1201. AND bArtst.Lager = TRUE:
  1202. DO WHILE TRUE:
  1203. io = TRUE.
  1204. IF bArtst.Aktiv THEN LEAVE.
  1205. IF bArtst.MDat >= F_VonDatum THEN LEAVE.
  1206. io = FALSE.
  1207. LEAVE.
  1208. END.
  1209. IF NOT io THEN NEXT.
  1210. IF F_Herst <> '' THEN DO:
  1211. IF LOOKUP(STRING(bArtst.Herst ,'999'), F_Herst, ',') = 0 THEN NEXT.
  1212. END.
  1213. IF F_Wgrp <> '' THEN DO:
  1214. IF LOOKUP(STRING(bArtst.Wg_Grp,'999'), F_Wgrp , ',') = 0 THEN NEXT.
  1215. END.
  1216. CREATE tArtst.
  1217. BUFFER-COPY bArtst TO tArtst.
  1218. InvDatum = F_VonDatum - 1.
  1219. RUN INVENTARBESTAND.
  1220. tArtst.InvMenge = Bestand.
  1221. InvDatum = F_BisDatum.
  1222. RUN INVENTARBESTAND.
  1223. tArtst.InvMengeNeu = Bestand.
  1224. END.
  1225. FOR EACH tArtst:
  1226. Anz = 0.
  1227. FOR EACH Artbw NO-LOCK USE-INDEX Artbw-k2
  1228. WHERE Artbw.Firma = tArtst.Firma
  1229. AND Artbw.Artnr = tArtst.Artnr
  1230. AND Artbw.Inhalt = tArtst.Inhalt
  1231. AND Artbw.Jahr = tArtst.Jahr
  1232. AND Artbw.Datum >= F_VonDatum
  1233. AND Artbw.Datum <= F_BisDatum
  1234. AND Artbw.Lag_Buch = TRUE
  1235. AND Artbw.Tr_Art < 21 :
  1236. Anz = Anz + 1.
  1237. IF T_Detail THEN DO:
  1238. IF Artbw.Tr_Art >= 9 THEN DO:
  1239. CREATE tArtbw.
  1240. BUFFER-COPY Artbw TO tArtbw.
  1241. END.
  1242. ELSE DO:
  1243. Datum = DATE(MONTH(Artbw.Datum),01,YEAR(Artbw.Datum)).
  1244. IF Datum < F_VonDatum THEN Datum = F_VonDatum.
  1245. FIND FIRST tArtbw USE-INDEX Artbw-k2
  1246. WHERE tArtbw.Firma = Artbw.Firma
  1247. AND tArtbw.Artnr = Artbw.Artnr
  1248. AND tArtbw.Inhalt = Artbw.Inhalt
  1249. AND tArtbw.Jahr = Artbw.Jahr
  1250. AND tArtbw.Datum = Datum
  1251. AND tArtbw.Tr_Art = Artbw.Tr_Art NO-ERROR.
  1252. IF NOT AVAILABLE tArtbw THEN DO:
  1253. CREATE tArtbw.
  1254. BUFFER-COPY Artbw TO tArtbw
  1255. ASSIGN tArtbw.Datum = Datum
  1256. tArtbw.Faknr = 0
  1257. tArtbw.Menge = 0
  1258. tArtbw.Liter = 0
  1259. tArtbw.Knr = -1.
  1260. END.
  1261. ASSIGN tArtbw.Menge = tArtbw.Menge + Artbw.Menge
  1262. tArtbw.Liter = tArtbw.Liter + Artbw.Liter.
  1263. END.
  1264. END.
  1265. ELSE DO:
  1266. CREATE tArtbw.
  1267. BUFFER-COPY Artbw TO tArtbw.
  1268. END.
  1269. END.
  1270. IF Anz = 0 AND
  1271. tArtst.InvMengeNeu = 0 AND
  1272. (tArtst.InvMenge = ? OR
  1273. tArtst.InvMenge = 0) THEN DELETE tArtst.
  1274. END.
  1275. OUTPUT TO VALUE(cDaten).
  1276. PUT CONTROL '£' CHR(10)
  1277. '£' CHR(10)
  1278. '£Datum££Faknr£Kunde£££Eingang£Ausgang£Saldo£Liter' CHR(10)
  1279. '£' CHR(10).
  1280. gEing = 0.
  1281. gAusg = 0.
  1282. gMenge = 0.
  1283. gLiter = 0.
  1284. FOR EACH tArtst,
  1285. EACH tArtbw OF tArtst
  1286. BREAK BY tArtst.WHK_Code
  1287. BY tArtst.Artnr
  1288. BY tArtst.Inhalt
  1289. BY tArtst.Jahr
  1290. BY tArtbw.Datum
  1291. BY tArtbw.Trnr :
  1292. IF FIRST-OF ( tArtst.WHK_Code ) THEN DO:
  1293. cNeu = tArtst.WHK_Code.
  1294. IF NOT FIRST (tArtst.WHK_Code) THEN DO:
  1295. RUN LETZTER.
  1296. RUN TOTALE04.
  1297. END.
  1298. RUN SCHLUESSEL.
  1299. IF FKey1 AND cKey1 <> '' THEN PUT CONTROL cKey1 CHR(10).
  1300. IF FKey2 AND cKey2 <> '' THEN PUT CONTROL cKey2 CHR(10).
  1301. IF FKey3 AND cKey3 <> '' THEN PUT CONTROL cKey3 CHR(10).
  1302. IF FKey4 AND cKey4 <> '' THEN PUT CONTROL cKey4 CHR(10).
  1303. PUT CONTROL '£' CHR(10).
  1304. Anz = 0.
  1305. END.
  1306. IF FIRST-OF ( tArtst.Jahr ) THEN DO:
  1307. FIND ArtBez USE-INDEX ArtBez-k1
  1308. WHERE ArtBez.Firma = Firma
  1309. AND ArtBez.Artnr = tArtst.Artnr
  1310. AND ArtBez.Inhalt = tArtst.Inhalt
  1311. AND ArtBez.Jahr = tArtst.Jahr
  1312. AND ArtBez.Sprcd = Sprcd NO-LOCK NO-ERROR.
  1313. IF NOT AVAILABLE ArtBez THEN DO:
  1314. FIND FIRST ArtBez USE-INDEX ArtBez-k1
  1315. WHERE ArtBez.Firma = Firma
  1316. AND ArtBez.Artnr = tArtst.Artnr
  1317. AND ArtBez.Inhalt = tArtst.Inhalt
  1318. AND ArtBez.Jahr = tArtst.Jahr
  1319. NO-LOCK NO-ERROR.
  1320. END.
  1321. IF AVAILABLE ArtBez THEN ASSIGN Bez1 = ArtBez.Bez1
  1322. Bez2 = ArtBez.Bez2.
  1323. ELSE ASSIGN Bez1 = '??????????'
  1324. Bez2 = ''.
  1325. FIND KGebinde USE-INDEX KGebinde-k1
  1326. WHERE KGebinde.Firma = tArtst.Firma
  1327. AND KGebinde.Geb_Cd = tArtst.KGeb_Cd NO-LOCK NO-ERROR.
  1328. IF AVAILABLE KGebinde THEN Gebinde = STRING(KGebinde.Inhalt / 100,'>>9.99 l').
  1329. ELSE Gebinde = tArtst.KGeb_Cd + ' ?????'.
  1330. IF AVAILABLE KGebinde THEN aInhalt = KGebinde.Inhalt.
  1331. ELSE aInhalt = tArtst.Inhalt.
  1332. IF tArtst.Jahr > 10 THEN cJahr = STRING(tArtst.Jahr,'9999').
  1333. ELSE cJahr = ''.
  1334. PUT CONTROL STRING(tArtst.Artnr,'999999') '££'
  1335. Bez1 '£££'
  1336. cJahr '£'
  1337. Gebinde CHR(10).
  1338. IF Bez2 <> '' THEN PUT CONTROL '££' Bez2 CHR(10).
  1339. aMenge = 0.
  1340. aLiter = 0.
  1341. aAusg = 0.
  1342. aEing = 0.
  1343. IF tArtst.InvMenge <> ? THEN DO:
  1344. tArtst.InvLiter = tArtst.InvMenge * KGebinde.Inhalt / 100.
  1345. aMenge = tArtst.InvMenge.
  1346. aLiter = tArtst.InvLiter.
  1347. PUT CONTROL '£'
  1348. STRING(F_VonDatum - 1,'99.99.9999') '£££'
  1349. 'Inventarbestand' '£££'
  1350. STRING(tArtst.InvMenge,'->>>>,>>9.99') '££'
  1351. STRING(aMenge ,'->>>>,>>9.99') '£'
  1352. STRING(aLiter ,'->>>>,>>9.99') CHR(10).
  1353. END.
  1354. END.
  1355. FEing = FALSE.
  1356. cAdr = ''.
  1357. Bez1 = ''.
  1358. Bez2 = ''.
  1359. Doknr = ''.
  1360. DO WHILE TRUE:
  1361. IF tArtbw.Tr_Art < 9 THEN LEAVE.
  1362. IF tArtbw.Tr_Art > 10 THEN DO:
  1363. FEing = TRUE.
  1364. LEAVE.
  1365. END.
  1366. Artnr = INTEGER(ENTRY(2, tArtbw.Bez2, ';')) NO-ERROR.
  1367. Inhalt = INTEGER(ENTRY(3, tArtbw.Bez2, ';')) NO-ERROR.
  1368. Jahr = INTEGER(ENTRY(4, tArtbw.Bez2, ';')) NO-ERROR.
  1369. Doknr = ENTRY(5, tArtbw.Bez2, ';') NO-ERROR.
  1370. Bez2 = ENTRY(6, tArtbw.Bez2, ';') NO-ERROR.
  1371. FIND Artst USE-INDEX Artst-k1
  1372. WHERE Artst.Firma = Firma
  1373. AND Artst.Artnr = Artnr
  1374. AND Artst.Inhalt = Inhalt
  1375. AND Artst.Jahr = Jahr NO-LOCK NO-ERROR.
  1376. Bez1 = STRING(Artnr ,'999999/')
  1377. + STRING(Inhalt,'9999/')
  1378. + STRING(Jahr ,'9999 ')
  1379. + Artst.Bez.
  1380. RUN FIND_LAGTRANSART ( INPUT tArtbw.Tr_Art, OUTPUT cString ).
  1381. cAdr = ENTRY(2, cString, CHR(01) ).
  1382. IF tArtbw.Bez2 BEGINS 'A;' THEN DO:
  1383. FEing = TRUE.
  1384. tArtbw.Menge = tArtbw.Menge * -1.
  1385. tArtbw.Liter = tArtbw.Liter * -1.
  1386. END.
  1387. IF Bez2 = ? THEN Bez2 = ''.
  1388. IF Doknr = ? THEN Doknr = ''.
  1389. LEAVE.
  1390. END.
  1391. DO WHILE TRUE:
  1392. IF tArtbw.Tr_Art = 9 THEN LEAVE.
  1393. IF tArtbw.Knr = -1 THEN DO:
  1394. IF tArtbw.Tr_Art < 9 THEN DO:
  1395. cAdr = 'Verkäufe Monat ' + STRING(MONTH(tArtbw.Datum),'99.')
  1396. + STRING(YEAR (tArtbw.Datum),'9999').
  1397. LEAVE.
  1398. END.
  1399. IF tArtbw.Tr_Art = 11 THEN DO:
  1400. cAdr = 'Einkäufe Monat ' + STRING(MONTH(tArtbw.Datum),'99.')
  1401. + STRING(YEAR (tArtbw.Datum),'9999').
  1402. LEAVE.
  1403. END.
  1404. IF tArtbw.Tr_Art > 11 THEN DO:
  1405. RUN FIND_LAGTRANSART ( INPUT tArtbw.Tr_Art, OUTPUT cString ).
  1406. cAdr = ENTRY(2, cString, CHR(01) ).
  1407. LEAVE.
  1408. END.
  1409. LEAVE.
  1410. END.
  1411. IF tArtbw.Tr_Art > 11 THEN DO:
  1412. RUN FIND_LAGTRANSART ( INPUT tArtbw.Tr_Art, OUTPUT cString ).
  1413. cAdr = ENTRY(2, cString, CHR(01) ).
  1414. Bez1 = tArtbw.Bez1.
  1415. Bez2 = tArtbw.Bez2.
  1416. LEAVE.
  1417. END.
  1418. IF tArtbw.Tr_Art = 11 AND
  1419. tArtbw.Aufnr > 0 THEN Doknr = STRING(tArtbw.Aufnr,'B999999').
  1420. ELSE DO:
  1421. IF tArtbw.Faknr <> 0 THEN Doknr = STRING(tArtbw.Faknr,'F999999').
  1422. ELSE Doknr = STRING(tArtbw.Aufnr,'A999999').
  1423. END.
  1424. FIND Adresse USE-INDEX Adresse-k1
  1425. WHERE Adresse.Firma = AdFirma
  1426. AND Adresse.Knr = tArtbw.Knr NO-LOCK NO-ERROR.
  1427. IF AVAILABLE Adresse THEN cAdr = Adresse.Anzeig_Br.
  1428. ELSE cAdr = '???????????????'.
  1429. IF tArtbw.Knr = 0 THEN cAdr = 'man. Lagereingang'.
  1430. LEAVE.
  1431. END.
  1432. IF FEing THEN Faktor = 1.
  1433. ELSE Faktor = -1.
  1434. DO i1 = 1 TO 4:
  1435. i2 = ((i1 - 1) * 2) + 1.
  1436. IF SUBSTRING(tArtst.WHK_Code,i2,02) = '00' THEN LEAVE.
  1437. i2 = i1 * 2.
  1438. cSort = SUBSTRING(tArtst.WHK_Code,01,i2).
  1439. FIND FIRST Totale WHERE Totale.Sort_1 = cSort NO-ERROR.
  1440. IF NOT AVAILABLE Totale THEN DO:
  1441. CREATE Totale.
  1442. ASSIGN Totale.Sort_1 = cSort.
  1443. END.
  1444. Totale.Menge = Totale.Menge + (tArtbw.Menge * Faktor).
  1445. Totale.Liter = Totale.Liter + (tArtbw.Liter * Faktor).
  1446. IF FEing THEN Totale.Eingang = Totale.Eingang + tArtbw.Menge.
  1447. ELSE Totale.Ausgang = Totale.Ausgang + tArtbw.Menge.
  1448. END.
  1449. aMenge = aMenge + (tArtbw.Menge * Faktor).
  1450. aLiter = aLiter + (tArtbw.Liter * Faktor).
  1451. IF FEing THEN aEing = aEing + tArtbw.Menge.
  1452. ELSE aAusg = aAusg + tArtbw.Menge.
  1453. PUT CONTROL '£'
  1454. STRING(tArtbw.Datum ,'99.99.9999') '££'
  1455. Doknr '£'
  1456. cAdr '£££'.
  1457. IF FEing THEN PUT CONTROL STRING(tArtbw.Menge,'->>>>,>>9.99') '££'.
  1458. ELSE PUT CONTROL '£'
  1459. STRING(tArtbw.Menge,'->>>>,>>9.99') '£'.
  1460. PUT CONTROL STRING(aMenge ,'->>>>,>>9.99') '£'
  1461. STRING(aLiter ,'->>>>,>>9.99') CHR(10).
  1462. IF Bez1 <> '' THEN PUT CONTROL '££££' Bez1 CHR(10).
  1463. IF Bez2 <> '' THEN PUT CONTROL '££££' Bez2 CHR(10).
  1464. IF LAST-OF ( tArtst.Jahr ) THEN DO:
  1465. IF aMenge <> tArtst.InvMengeNeu THEN DO:
  1466. aDiff = tArtst.InvMengeNeu - aMenge.
  1467. aEing = aEing + aDiff.
  1468. aMenge = aMenge + aDiff.
  1469. aLiter = aLiter + (aDiff * aInhalt / 100).
  1470. PUT CONTROL '££££Lagerdifferenz£££'
  1471. STRING(aDiff ,'->>>>,>>9.99') '££'
  1472. STRING(aMenge,'->>>>,>>9.99') '£'
  1473. STRING(aLiter,'->>>>,>>9.99') CHR(10).
  1474. END.
  1475. PUT CONTROL '££££Total Artikel£££'
  1476. STRING(aEing ,'->>>>,>>9.99') '£'
  1477. STRING(aAusg ,'->>>>,>>9.99') '£'
  1478. STRING(aMenge,'->>>>,>>9.99') '£'
  1479. STRING(aLiter,'->>>>,>>9.99') CHR(10)
  1480. '£' CHR(10).
  1481. gEing = gEing + aEing.
  1482. gAusg = gAusg + aAusg.
  1483. gMenge = gMenge + aMenge.
  1484. gLiter = gLiter + aLiter.
  1485. END.
  1486. IF LAST ( tArtst.WHK_Code ) THEN DO:
  1487. LKey1 = TRUE.
  1488. LKey2 = TRUE.
  1489. LKey3 = TRUE.
  1490. LKey4 = TRUE.
  1491. IF SUBSTRING(cAlt,01,02) = '00' THEN LKey1 = FALSE.
  1492. IF SUBSTRING(cAlt,03,02) = '00' THEN LKey2 = FALSE.
  1493. IF SUBSTRING(cAlt,05,02) = '00' THEN LKey3 = FALSE.
  1494. IF SUBSTRING(cAlt,07,02) = '00' THEN LKey4 = FALSE.
  1495. RUN TOTALE04.
  1496. PUT CONTROL '££Gesamttotal £££££'
  1497. STRING(gEing ,'->>>>,>>9.99') '£'
  1498. STRING(gAusg ,'->>>>,>>9.99') '£'
  1499. STRING(gMenge,'->>>>,>>9.99') '£'
  1500. STRING(gLiter,'->>>>,>>9.99') CHR(10).
  1501. END.
  1502. END.
  1503. OUTPUT CLOSE.
  1504. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  1505. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  1506. RUN FEHLER ( INPUT 1035 ).
  1507. RETURN.
  1508. END.
  1509. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT io ).
  1510. IF NOT io THEN DO:
  1511. RUN FEHLER ( INPUT 1040 ).
  1512. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1513. RETURN NO-APPLY.
  1514. END.
  1515. Zelle = 'A1'.
  1516. excelAppl:Range(Zelle):SELECT.
  1517. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten.
  1518. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  1519. RUN KOPF ( INPUT excelAppl ).
  1520. Zelle = 'A1'.
  1521. excelAppl:Range(Zelle):SELECT.
  1522. excelAppl:Selection:ColumnWidth = 0.3.
  1523. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1524. END PROCEDURE.
  1525. /* _UIB-CODE-BLOCK-END */
  1526. &ANALYZE-RESUME
  1527. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BEREINIGEN gEWK
  1528. PROCEDURE BEREINIGEN :
  1529. /*------------------------------------------------------------------------------
  1530. Purpose:
  1531. Parameters: <none>
  1532. Notes:
  1533. ------------------------------------------------------------------------------*/
  1534. DEF VAR i AS INT NO-UNDO.
  1535. DEF VAR cString AS CHAR NO-UNDO.
  1536. DEF VAR cDelim AS CHAR NO-UNDO.
  1537. DO WITH FRAME {&FRAME-NAME}:
  1538. ASSIGN {&list-6}.
  1539. cString = ''.
  1540. cDelim = ''.
  1541. DO i = 1 TO NUM-ENTRIES(F_Herst, ','):
  1542. cString = cString + cDelim + STRING(INTEGER(ENTRY(i, F_Herst, ',')),'999').
  1543. cDelim = ','.
  1544. END.
  1545. F_Herst = cString.
  1546. cString = ''.
  1547. cDelim = ''.
  1548. DO i = 1 TO NUM-ENTRIES(F_Wgrp, ','):
  1549. cString = cString + cDelim + STRING(INTEGER(ENTRY(i, F_Wgrp , ',')),'999').
  1550. cDelim = ','.
  1551. END.
  1552. F_Wgrp = cString.
  1553. END.
  1554. END PROCEDURE.
  1555. /* _UIB-CODE-BLOCK-END */
  1556. &ANALYZE-RESUME
  1557. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage gEWK
  1558. PROCEDURE changePage :
  1559. /*------------------------------------------------------------------------------
  1560. Purpose: Super Override
  1561. Parameters:
  1562. Notes:
  1563. ------------------------------------------------------------------------------*/
  1564. /* Code placed here will execute PRIOR to standard behavior. */
  1565. RUN SUPER.
  1566. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  1567. CASE AktSeite:
  1568. WHEN 1 THEN DO:
  1569. /* RUN addLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */
  1570. /* RUN addLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */
  1571. /* RUN ToolbarInit ( INPUT h_d-auftr ). */
  1572. RUN ENTRY_CURSOR.
  1573. END.
  1574. WHEN 2 THEN DO:
  1575. RUN ENTRY_CURSOR.
  1576. END.
  1577. END CASE.
  1578. END PROCEDURE.
  1579. /* _UIB-CODE-BLOCK-END */
  1580. &ANALYZE-RESUME
  1581. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gEWK _DEFAULT-DISABLE
  1582. PROCEDURE disable_UI :
  1583. /*------------------------------------------------------------------------------
  1584. Purpose: DISABLE the User Interface
  1585. Parameters: <none>
  1586. Notes: Here we clean-up the user-interface by deleting
  1587. dynamic widgets we have created and/or hide
  1588. frames. This procedure is usually called when
  1589. we are ready to "clean-up" after running.
  1590. ------------------------------------------------------------------------------*/
  1591. /* Hide all frames. */
  1592. HIDE FRAME gEWK.
  1593. END PROCEDURE.
  1594. /* _UIB-CODE-BLOCK-END */
  1595. &ANALYZE-RESUME
  1596. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gEWK
  1597. PROCEDURE enableObject :
  1598. /*------------------------------------------------------------------------------
  1599. Purpose: Super Override
  1600. Parameters:
  1601. Notes:
  1602. ------------------------------------------------------------------------------*/
  1603. /* Code placed here will execute PRIOR to standard behavior. */
  1604. RUN SUPER.
  1605. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR.
  1606. GET-KEY-VALUE SECTION 'Auswertungen' KEY 'EWKArt' VALUE cRetVal.
  1607. IF cRetVal = ? THEN VLiArt = 1.
  1608. ELSE VLiArt = INTEGER(cRetVal) NO-ERROR.
  1609. DO WITH FRAME {&FRAME-NAME}:
  1610. CB_LiArt:SCREEN-VALUE = STRING(VLiArt,'99') NO-ERROR.
  1611. RUN WERTE_EINLESEN.
  1612. APPLY 'VALUE-CHANGED' TO CB_LiArt.
  1613. END.
  1614. END PROCEDURE.
  1615. /* _UIB-CODE-BLOCK-END */
  1616. &ANALYZE-RESUME
  1617. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gEWK _DEFAULT-ENABLE
  1618. PROCEDURE enable_UI :
  1619. /*------------------------------------------------------------------------------
  1620. Purpose: ENABLE the User Interface
  1621. Parameters: <none>
  1622. Notes: Here we display/view/enable the widgets in the
  1623. user-interface. In addition, OPEN all queries
  1624. associated with each FRAME and BROWSE.
  1625. These statements here are based on the "Other
  1626. Settings" section of the widget Property Sheets.
  1627. ------------------------------------------------------------------------------*/
  1628. DISPLAY CB_LiArt F_VonArtnr F_VonInhalt F_VonJahr F_BisArtnr F_BisInhalt
  1629. F_BisJahr F_Herst F_Wgrp F_VonDatum F_BisDatum T_Abschluss T_Detail
  1630. WITH FRAME gEWK.
  1631. ENABLE RECT-5 RECT-6 RECT-7 CB_LiArt F_VonArtnr F_VonInhalt F_VonJahr
  1632. F_BisArtnr F_BisInhalt F_BisJahr F_Herst F_Wgrp F_VonDatum F_BisDatum
  1633. T_Abschluss T_Detail Btn_Excel Btn_Cancel
  1634. WITH FRAME gEWK.
  1635. VIEW FRAME gEWK.
  1636. {&OPEN-BROWSERS-IN-QUERY-gEWK}
  1637. END PROCEDURE.
  1638. /* _UIB-CODE-BLOCK-END */
  1639. &ANALYZE-RESUME
  1640. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gEWK
  1641. PROCEDURE ENDE :
  1642. /*------------------------------------------------------------------------------
  1643. Purpose:
  1644. Parameters: <none>
  1645. Notes:
  1646. ------------------------------------------------------------------------------*/
  1647. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  1648. IF AktSeite > 1 THEN DO:
  1649. RUN selectPage ( INPUT 1 ).
  1650. RETURN NO-APPLY.
  1651. END.
  1652. IF NOT FAbbruch THEN DO WITH FRAME {&FRAME-NAME}:
  1653. ASSIGN {&list-6}.
  1654. PUT-KEY-VALUE SECTION 'Auswertungen' KEY 'EWKArt' VALUE STRING(VLiArt).
  1655. cKey = 'EWKArt' + STRING(VLiArt,'99').
  1656. cRetVal = STRING(F_VonArtnr) + '@'
  1657. + STRING(F_VonInhalt) + '@'
  1658. + STRING(F_VonJahr ) + '@'
  1659. + STRING(F_BisArtnr ) + '@'
  1660. + STRING(F_BisInhalt) + '@'
  1661. + STRING(F_BisJahr ) + '@'
  1662. + STRING(F_Herst ) + '@'
  1663. + STRING(F_Wgrp ) + '@'.
  1664. IF F_VonDatum <> ? THEN cRetVal = cRetVal + STRING(F_VonDatum).
  1665. cRetVal = cRetVal + '@'.
  1666. IF F_BisDatum <> ? THEN cRetVal = cRetVal + STRING(F_BisDatum).
  1667. cRetVal = cRetVal + '@'.
  1668. cRetVal = cRetVal
  1669. + STRING(T_Abschluss) + '@'
  1670. + STRING(T_Detail ) + '@'.
  1671. PUT-KEY-VALUE SECTION 'Auswertungen' KEY cKey VALUE cRetVal.
  1672. END.
  1673. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  1674. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  1675. RETURN NO-APPLY.
  1676. END PROCEDURE.
  1677. /* _UIB-CODE-BLOCK-END */
  1678. &ANALYZE-RESUME
  1679. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR gEWK
  1680. PROCEDURE ENTRY_CURSOR :
  1681. /*------------------------------------------------------------------------------
  1682. Purpose:
  1683. Parameters: <none>
  1684. Notes:
  1685. ------------------------------------------------------------------------------*/
  1686. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  1687. CASE AktSeite:
  1688. /* WHEN 1 THEN RUN applyEntry IN h_v-adresse ( INPUT ? ). */
  1689. /* WHEN 2 THEN RUN applyEntry IN h_f-adrkomm ( INPUT ? ). */
  1690. /* WHEN 3 THEN RUN applyEntry IN h_b-auftbb ( INPUT ? ). */
  1691. /* WHEN 4 THEN RUN applyEntry IN h_b-aufdet ( INPUT ? ). */
  1692. /* WHEN 5 THEN RUN applyEntry IN h_b-aufstreu ( INPUT ? ). */
  1693. /* WHEN 6 THEN RUN applyEntry IN h_b-auffak ( INPUT ? ). */
  1694. /* WHEN 7 THEN RUN applyEntry IN h_b-position ( INPUT ? ). */
  1695. END CASE.
  1696. RETURN NO-APPLY.
  1697. END PROCEDURE.
  1698. /* _UIB-CODE-BLOCK-END */
  1699. &ANALYZE-RESUME
  1700. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gEWK
  1701. PROCEDURE exitObject :
  1702. /*------------------------------------------------------------------------------
  1703. Purpose: Super Override
  1704. Parameters:
  1705. Notes:
  1706. ------------------------------------------------------------------------------*/
  1707. RUN ENDE.
  1708. RETURN NO-APPLY.
  1709. END PROCEDURE.
  1710. /* _UIB-CODE-BLOCK-END */
  1711. &ANALYZE-RESUME
  1712. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FELDER_AKTIVIEREN gEWK
  1713. PROCEDURE FELDER_AKTIVIEREN :
  1714. /*------------------------------------------------------------------------------
  1715. Purpose:
  1716. Parameters: <none>
  1717. Notes:
  1718. ------------------------------------------------------------------------------*/
  1719. DEF INPUT PARAMETER Fenster AS HANDLE NO-UNDO.
  1720. ASSIGN Fenster = Fenster:FIRST-CHILD.
  1721. DO WHILE VALID-HANDLE (Fenster) :
  1722. DO WHILE TRUE:
  1723. IF Fenster:TYPE = 'LITERAL' THEN LEAVE.
  1724. Fenster:HIDDEN = FALSE NO-ERROR.
  1725. IF ERROR-STATUS:ERROR THEN DO:
  1726. MESSAGE 'Falscher Typ . ' Fenster:TYPE.
  1727. LEAVE.
  1728. END.
  1729. Fenster:SENSITIVE = TRUE NO-ERROR.
  1730. IF ERROR-STATUS:ERROR THEN DO:
  1731. MESSAGE 'Falscher Typ . ' Fenster:TYPE.
  1732. LEAVE.
  1733. END.
  1734. LEAVE.
  1735. END.
  1736. ASSIGN Fenster = Fenster:NEXT-SIBLING.
  1737. END.
  1738. END PROCEDURE.
  1739. /* _UIB-CODE-BLOCK-END */
  1740. &ANALYZE-RESUME
  1741. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INVENTARBESTAND gEWK
  1742. PROCEDURE INVENTARBESTAND :
  1743. /*------------------------------------------------------------------------------
  1744. Purpose:
  1745. Parameters: <none>
  1746. Notes:
  1747. ------------------------------------------------------------------------------*/
  1748. DEF VAR Verkehr AS DEC NO-UNDO.
  1749. DEF VAR InvBest AS DEC NO-UNDO.
  1750. DEF VAR InvDat AS DATE NO-UNDO.
  1751. DEF VAR cCodeC AS CHAR NO-UNDO.
  1752. DEF VAR iCodeI AS INT NO-UNDO.
  1753. DEF VAR DiffTg AS INT NO-UNDO.
  1754. DEF VAR GDat AS DATE NO-UNDO.
  1755. DEF VAR KDat AS DATE NO-UNDO.
  1756. cCodeC = STRING(BArtst.Artnr ,'999999')
  1757. + STRING(BArtst.Inhalt,'9999')
  1758. + STRING(BArtst.Jahr ,'9999').
  1759. iCodeI = INTEGER(InvDatum).
  1760. Bestand = ?.
  1761. FIND Tabel USE-INDEX Tabel-k1
  1762. WHERE Tabel.Firma = BArtst.Firma
  1763. AND Tabel.RecArt = 'EWKINV'
  1764. AND Tabel.CodeC = cCodeC
  1765. AND Tabel.CodeI = iCodeI
  1766. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  1767. IF AVAILABLE Tabel THEN DO:
  1768. Bestand = DECIMAL(Tabel.Bez1).
  1769. RETURN.
  1770. END.
  1771. DO WHILE TRUE:
  1772. InvDat = ?.
  1773. GDat = ?.
  1774. KDat = ?.
  1775. FIND FIRST Artbw USE-INDEX Artbw-k7
  1776. WHERE Artbw.Firma = BArtst.Firma
  1777. AND Artbw.Artnr = BArtst.Artnr
  1778. AND Artbw.Inhalt = BArtst.Inhalt
  1779. AND Artbw.Jahr = BArtst.Jahr
  1780. AND Artbw.Tr_Art = 21
  1781. AND Artbw.Datum = InvDatum NO-LOCK NO-ERROR.
  1782. IF AVAILABLE Artbw THEN DO:
  1783. InvDat = Artbw.Datum.
  1784. LEAVE.
  1785. END.
  1786. FIND FIRST Artbw USE-INDEX Artbw-k7
  1787. WHERE Artbw.Firma = BArtst.Firma
  1788. AND Artbw.Artnr = BArtst.Artnr
  1789. AND Artbw.Inhalt = BArtst.Inhalt
  1790. AND Artbw.Jahr = BArtst.Jahr
  1791. AND Artbw.Tr_Art = 21
  1792. AND Artbw.Datum < InvDatum NO-LOCK NO-ERROR.
  1793. IF AVAILABLE Artbw THEN KDat = Artbw.Datum.
  1794. ELSE DO:
  1795. FIND LAST Artbw USE-INDEX Artbw-k2
  1796. WHERE Artbw.Firma = BArtst.Firma
  1797. AND Artbw.Artnr = BArtst.Artnr
  1798. AND Artbw.Inhalt = BArtst.Inhalt
  1799. AND Artbw.Jahr = BArtst.Jahr
  1800. AND Artbw.Lag_Buch = TRUE
  1801. AND Artbw.Datum <= InvDatum
  1802. AND Artbw.Tr_Art < 21 NO-LOCK NO-ERROR.
  1803. IF NOT AVAILABLE Artbw THEN RETURN.
  1804. KDat = 01/01/0001.
  1805. END.
  1806. FIND LAST Artbw USE-INDEX Artbw-k7
  1807. WHERE Artbw.Firma = BArtst.Firma
  1808. AND Artbw.Artnr = BArtst.Artnr
  1809. AND Artbw.Inhalt = BArtst.Inhalt
  1810. AND Artbw.Jahr = BArtst.Jahr
  1811. AND Artbw.Tr_Art = 21
  1812. AND Artbw.Datum > InvDatum NO-LOCK NO-ERROR.
  1813. IF AVAILABLE Artbw THEN GDat = Artbw.Datum.
  1814. IF KDat = ? AND
  1815. GDat <> ? THEN DO:
  1816. InvDat = GDat.
  1817. KDat = InvDatum.
  1818. LEAVE.
  1819. END.
  1820. IF KDat <> ? AND
  1821. GDat = ? THEN DO:
  1822. InvDat = KDat.
  1823. GDat = InvDatum.
  1824. LEAVE.
  1825. END.
  1826. DiffTg = InvDatum - KDat.
  1827. IF (GDat - InvDatum) < DiffTg THEN DO:
  1828. InvDat = GDat.
  1829. KDat = InvDatum.
  1830. LEAVE.
  1831. END.
  1832. InvDat = KDat.
  1833. GDat = InvDatum.
  1834. LEAVE.
  1835. END.
  1836. InvBest = 0.
  1837. Verkehr = 0.
  1838. FOR EACH Artbw USE-INDEX Artbw-k7
  1839. WHERE Artbw.Firma = BArtst.Firma
  1840. AND Artbw.Artnr = BArtst.Artnr
  1841. AND Artbw.Inhalt = BArtst.Inhalt
  1842. AND Artbw.Jahr = BArtst.Jahr
  1843. AND Artbw.Tr_Art = 21
  1844. AND Artbw.Datum = InvDat NO-LOCK :
  1845. InvBest = InvBest + Artbw.Menge.
  1846. END.
  1847. IF InvDat < InvDatum THEN DO:
  1848. FOR EACH Artbw USE-INDEX Artbw-k2
  1849. WHERE Artbw.Firma = BArtst.Firma
  1850. AND Artbw.Artnr = BArtst.Artnr
  1851. AND Artbw.Inhalt = BArtst.Inhalt
  1852. AND Artbw.Jahr = BArtst.Jahr
  1853. AND Artbw.Lag_Buch = TRUE
  1854. AND Artbw.Datum > InvDat
  1855. AND Artbw.Datum <= InvDatum NO-LOCK:
  1856. IF Artbw.Tr_Art = 21 THEN NEXT.
  1857. IF Artbw.Tr_Art < 11 THEN DO:
  1858. Verkehr = Verkehr - Artbw.Menge.
  1859. NEXT.
  1860. END.
  1861. IF Artbw.Tr_Art < 21 THEN DO:
  1862. Verkehr = Verkehr + Artbw.Menge.
  1863. NEXT.
  1864. END.
  1865. END.
  1866. END.
  1867. IF InvDat > InvDatum THEN DO:
  1868. FOR EACH Artbw USE-INDEX Artbw-k2
  1869. WHERE Artbw.Firma = BArtst.Firma
  1870. AND Artbw.Artnr = BArtst.Artnr
  1871. AND Artbw.Inhalt = BArtst.Inhalt
  1872. AND Artbw.Jahr = BArtst.Jahr
  1873. AND Artbw.Lag_Buch = TRUE
  1874. AND Artbw.Datum > InvDatum
  1875. AND Artbw.Datum <= InvDat NO-LOCK:
  1876. IF Artbw.Tr_Art = 21 THEN NEXT.
  1877. IF Artbw.Tr_Art < 11 THEN DO:
  1878. Verkehr = Verkehr - Artbw.Menge.
  1879. NEXT.
  1880. END.
  1881. IF Artbw.Tr_Art < 21 THEN DO:
  1882. Verkehr = Verkehr + Artbw.Menge.
  1883. NEXT.
  1884. END.
  1885. END.
  1886. END.
  1887. InvBest = InvBest + Verkehr.
  1888. Bestand = InvBest.
  1889. IF VLiArt <> 2 THEN RETURN.
  1890. REPEAT TRANSACTION:
  1891. IF T_Abschluss = FALSE THEN LEAVE.
  1892. FIND Tabel USE-INDEX Tabel-k1
  1893. WHERE Tabel.Firma = BArtst.Firma
  1894. AND Tabel.RecArt = 'EWKINV'
  1895. AND Tabel.CodeC = cCodeC
  1896. AND Tabel.CodeI = iCodeI
  1897. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  1898. IF AVAILABLE Tabel THEN LEAVE.
  1899. CREATE Tabel.
  1900. ASSIGN Tabel.Firma = BArtst.Firma
  1901. Tabel.RecArt = 'EWKINV'
  1902. Tabel.CodeC = cCodeC
  1903. Tabel.CodeI = iCodeI
  1904. Tabel.Sprcd = 1
  1905. Tabel.Bez1 = STRING(InvBest,'999999999.999-').
  1906. RELEASE Tabel.
  1907. LEAVE.
  1908. END.
  1909. RETURN.
  1910. END PROCEDURE.
  1911. /* _UIB-CODE-BLOCK-END */
  1912. &ANALYZE-RESUME
  1913. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF gEWK
  1914. PROCEDURE KOPF :
  1915. /*------------------------------------------------------------------------------
  1916. Purpose:
  1917. Parameters: <none>
  1918. Notes:
  1919. ------------------------------------------------------------------------------*/
  1920. DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO.
  1921. DEF VAR Zelle AS CHAR NO-UNDO.
  1922. FIND Steuer USE-INDEX Steuer-k1
  1923. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  1924. CASE VLiArt:
  1925. WHEN 1 THEN DO:
  1926. Zelle = 'B1'.
  1927. eh:Range(Zelle):SELECT.
  1928. eh:SELECTION:VALUE = Steuer.Firma1.
  1929. Zelle = 'D1'.
  1930. eh:Range(Zelle):SELECT.
  1931. eh:SELECTION:VALUE = 'Artikel mit WHK-Code'.
  1932. Zelle = 'H1'.
  1933. eh:Range(Zelle):SELECT.
  1934. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  1935. Zelle = 'B2'.
  1936. eh:Range(Zelle):SELECT.
  1937. eh:SELECTION:VALUE = Steuer.Ort.
  1938. Zelle = 'D2'.
  1939. eh:Range(Zelle):SELECT.
  1940. eh:SELECTION:VALUE = ''.
  1941. Zelle = 'H2'.
  1942. eh:Range(Zelle):SELECT.
  1943. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  1944. END.
  1945. WHEN 2 THEN DO:
  1946. Zelle = 'A1'.
  1947. eh:Range(Zelle):SELECT.
  1948. eh:SELECTION:VALUE = Steuer.Firma1.
  1949. Zelle = 'D1'.
  1950. eh:Range(Zelle):SELECT.
  1951. eh:SELECTION:VALUE = 'Weininventar'.
  1952. Zelle = 'G1'.
  1953. eh:Range(Zelle):SELECT.
  1954. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  1955. Zelle = 'A2'.
  1956. eh:Range(Zelle):SELECT.
  1957. eh:SELECTION:VALUE = Steuer.Ort.
  1958. Zelle = 'D2'.
  1959. eh:Range(Zelle):SELECT.
  1960. eh:SELECTION:VALUE = 'per ' + STRING(F_VonDatum,'99.99.9999').
  1961. Zelle = 'G2'.
  1962. eh:Range(Zelle):SELECT.
  1963. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  1964. END.
  1965. WHEN 3 THEN DO:
  1966. Zelle = 'A1'.
  1967. eh:Range(Zelle):SELECT.
  1968. eh:SELECTION:VALUE = Steuer.Firma1.
  1969. Zelle = 'F1'.
  1970. eh:Range(Zelle):SELECT.
  1971. eh:SELECTION:VALUE = 'Weinverkäufe'.
  1972. Zelle = 'K1'.
  1973. eh:Range(Zelle):SELECT.
  1974. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  1975. Zelle = 'A2'.
  1976. eh:Range(Zelle):SELECT.
  1977. eh:SELECTION:VALUE = Steuer.Ort.
  1978. Zelle = 'F2'.
  1979. eh:Range(Zelle):SELECT.
  1980. eh:SELECTION:VALUE = STRING(F_VonDatum,'99.99.9999')
  1981. + ' - '
  1982. + STRING(F_BisDatum,'99.99.9999').
  1983. Zelle = 'K2'.
  1984. eh:Range(Zelle):SELECT.
  1985. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  1986. END.
  1987. WHEN 4 THEN DO:
  1988. Zelle = 'A1'.
  1989. eh:Range(Zelle):SELECT.
  1990. eh:SELECTION:VALUE = Steuer.Firma1.
  1991. Zelle = 'F1'.
  1992. eh:Range(Zelle):SELECT.
  1993. eh:SELECTION:VALUE = 'Kellerbuchhaltung (Eidg. WKK)'.
  1994. Zelle = 'K1'.
  1995. eh:Range(Zelle):SELECT.
  1996. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  1997. Zelle = 'A2'.
  1998. eh:Range(Zelle):SELECT.
  1999. eh:SELECTION:VALUE = Steuer.Ort.
  2000. Zelle = 'F2'.
  2001. eh:Range(Zelle):SELECT.
  2002. eh:SELECTION:VALUE = STRING(F_VonDatum,'99.99.9999')
  2003. + ' - '
  2004. + STRING(F_BisDatum,'99.99.9999').
  2005. Zelle = 'K2'.
  2006. eh:Range(Zelle):SELECT.
  2007. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  2008. END.
  2009. END CASE.
  2010. END PROCEDURE.
  2011. /* _UIB-CODE-BLOCK-END */
  2012. &ANALYZE-RESUME
  2013. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LETZTER gEWK
  2014. PROCEDURE LETZTER :
  2015. /*------------------------------------------------------------------------------
  2016. Purpose:
  2017. Parameters: <none>
  2018. Notes:
  2019. ------------------------------------------------------------------------------*/
  2020. IF LENGTH(cNeu) < 8 THEN cNeu = cNeu + FILL('0', 8 - LENGTH(cNeu)).
  2021. LKey1 = FALSE.
  2022. LKey2 = FALSE.
  2023. LKey3 = FALSE.
  2024. LKey4 = FALSE.
  2025. DO WHILE TRUE:
  2026. IF SUBSTRING(cNeu,01,02) <> SUBSTRING(cAlt,01,02) THEN DO:
  2027. LKey1 = TRUE.
  2028. LKey2 = TRUE.
  2029. LKey3 = TRUE.
  2030. LKey4 = TRUE.
  2031. LEAVE.
  2032. END.
  2033. IF SUBSTRING(cNeu,03,02) <> SUBSTRING(cAlt,03,02) THEN DO:
  2034. LKey2 = TRUE.
  2035. LKey3 = TRUE.
  2036. LKey4 = TRUE.
  2037. LEAVE.
  2038. END.
  2039. IF SUBSTRING(cNeu,05,02) <> SUBSTRING(cAlt,05,02) THEN DO:
  2040. LKey3 = TRUE.
  2041. LKey4 = TRUE.
  2042. LEAVE.
  2043. END.
  2044. IF SUBSTRING(cNeu,07,02) <> SUBSTRING(cAlt,07,02) THEN DO:
  2045. LKey4 = TRUE.
  2046. LEAVE.
  2047. END.
  2048. LEAVE.
  2049. END.
  2050. IF SUBSTRING(cAlt,01,02) = '00' THEN LKey1 = FALSE.
  2051. IF SUBSTRING(cAlt,03,02) = '00' THEN LKey2 = FALSE.
  2052. IF SUBSTRING(cAlt,05,02) = '00' THEN LKey3 = FALSE.
  2053. IF SUBSTRING(cAlt,07,02) = '00' THEN LKey4 = FALSE.
  2054. END PROCEDURE.
  2055. /* _UIB-CODE-BLOCK-END */
  2056. &ANALYZE-RESUME
  2057. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE gEWK
  2058. PROCEDURE NEXTPAGE :
  2059. /*------------------------------------------------------------------------------
  2060. Purpose:
  2061. Parameters: <none>
  2062. Notes:
  2063. ------------------------------------------------------------------------------*/
  2064. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  2065. IF AktSeite = MaxPage THEN AktSeite = 1.
  2066. ELSE AktSeite = AktSeite + 1.
  2067. RUN selectPage ( INPUT AktSeite ).
  2068. END PROCEDURE.
  2069. /* _UIB-CODE-BLOCK-END */
  2070. &ANALYZE-RESUME
  2071. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREVPAGE gEWK
  2072. PROCEDURE PREVPAGE :
  2073. /*------------------------------------------------------------------------------
  2074. Purpose:
  2075. Parameters: <none>
  2076. Notes:
  2077. ------------------------------------------------------------------------------*/
  2078. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  2079. IF AktSeite = 1 THEN AktSeite = MaxPage.
  2080. ELSE AktSeite = AktSeite - 1.
  2081. RUN selectPage ( INPUT AktSeite ).
  2082. END PROCEDURE.
  2083. /* _UIB-CODE-BLOCK-END */
  2084. &ANALYZE-RESUME
  2085. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gEWK
  2086. PROCEDURE REPORT :
  2087. /*------------------------------------------------------------------------------
  2088. Purpose:
  2089. Parameters: <none>
  2090. Notes:
  2091. ------------------------------------------------------------------------------*/
  2092. DO WITH FRAME {&FRAME-NAME}:
  2093. ASSIGN {&list-6}.
  2094. VLiArt = INTEGER(CB_LiArt:SCREEN-VALUE).
  2095. SESSION:SET-WAIT-STATE('GENERAL').
  2096. IF VLiArt = 01 THEN RUN AUSGABE01.
  2097. IF VLiArt = 02 THEN RUN AUSGABE02.
  2098. IF VLiArt = 03 THEN RUN AUSGABE03.
  2099. IF VLiArt = 04 THEN RUN AUSGABE04.
  2100. SESSION:SET-WAIT-STATE('').
  2101. END.
  2102. END PROCEDURE.
  2103. /* _UIB-CODE-BLOCK-END */
  2104. &ANALYZE-RESUME
  2105. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SCHLUESSEL gEWK
  2106. PROCEDURE SCHLUESSEL :
  2107. /*------------------------------------------------------------------------------
  2108. Purpose:
  2109. Parameters: <none>
  2110. Notes:
  2111. ------------------------------------------------------------------------------*/
  2112. DEF VAR Cd_1 AS INT NO-UNDO.
  2113. DEF VAR Cd_2 AS INT NO-UNDO.
  2114. DEF VAR Cd_3 AS INT NO-UNDO.
  2115. DEF VAR Cd_4 AS INT NO-UNDO.
  2116. IF LENGTH(cNeu) < 8 THEN cNeu = cNeu + FILL('0', 8 - LENGTH(cNeu)).
  2117. FKey1 = FALSE.
  2118. FKey2 = FALSE.
  2119. FKey3 = FALSE.
  2120. FKey4 = FALSE.
  2121. DO WHILE TRUE:
  2122. IF SUBSTRING(cNeu,01,02) <> SUBSTRING(cAlt,01,02) THEN DO:
  2123. FKey1 = TRUE.
  2124. FKey2 = TRUE.
  2125. FKey3 = TRUE.
  2126. FKey4 = TRUE.
  2127. END.
  2128. ELSE
  2129. IF SUBSTRING(cNeu,03,02) <> SUBSTRING(cAlt,03,02) THEN DO:
  2130. FKey2 = TRUE.
  2131. FKey3 = TRUE.
  2132. FKey4 = TRUE.
  2133. END.
  2134. ELSE
  2135. IF SUBSTRING(cNeu,05,02) <> SUBSTRING(cAlt,05,02) THEN DO:
  2136. FKey3 = TRUE.
  2137. FKey4 = TRUE.
  2138. END.
  2139. ELSE
  2140. IF SUBSTRING(cNeu,07,02) <> SUBSTRING(cAlt,07,02) THEN DO:
  2141. FKey4 = TRUE.
  2142. END.
  2143. Cd_1 = INTEGER(SUBSTRING(cNeu,01,02)).
  2144. Cd_2 = INTEGER(SUBSTRING(cNeu,03,02)).
  2145. Cd_3 = INTEGER(SUBSTRING(cNeu,05,02)).
  2146. Cd_4 = INTEGER(SUBSTRING(cNeu,07,02)).
  2147. IF FKey1 THEN DO:
  2148. FIND EWKSt1 USE-INDEX EWKSt1-k1
  2149. WHERE EWKSt1.Firma = Firma
  2150. AND EWKSt1.Cd_1 = Cd_1 NO-LOCK NO-ERROR.
  2151. IF AVAILABLE EWKSt1 THEN cKey1 = EWKSt1.Bez.
  2152. ELSE cKey1 = STRING(Cd_1,'99').
  2153. cTKey1 = 'Total ' + cKey1.
  2154. END.
  2155. IF FKey2 THEN DO:
  2156. IF Cd_2 = 0 THEN DO:
  2157. cKey2 = ''.
  2158. cTKey2 = ''.
  2159. END.
  2160. ELSE DO:
  2161. FIND EWKSt2 USE-INDEX EWKSt2-k1
  2162. WHERE EWKSt2.Firma = Firma
  2163. AND EWKSt2.Cd_1 = Cd_1
  2164. AND EWKSt2.Cd_2 = Cd_2 NO-LOCK NO-ERROR.
  2165. IF AVAILABLE EWKSt2 THEN cKey2 = EWKSt2.Bez.
  2166. ELSE cKey2 = STRING(Cd_1,'99')
  2167. + STRING(Cd_2,'99').
  2168. cTKey2 = 'Total ' + cKey2.
  2169. END.
  2170. END.
  2171. IF FKey3 THEN DO:
  2172. IF Cd_3 = 0 THEN DO:
  2173. cKey3 = ''.
  2174. cTKey3 = ''.
  2175. END.
  2176. ELSE DO:
  2177. FIND EWKSt3 USE-INDEX EWKSt3-k1
  2178. WHERE EWKSt3.Firma = Firma
  2179. AND EWKSt3.Cd_1 = Cd_1
  2180. AND EWKSt3.Cd_2 = Cd_2
  2181. AND EWKSt3.Cd_3 = Cd_3 NO-LOCK NO-ERROR.
  2182. IF AVAILABLE EWKSt3 THEN cKey3 = EWKSt3.Bez.
  2183. ELSE cKey3 = STRING(Cd_1,'99')
  2184. + STRING(Cd_2,'99')
  2185. + STRING(Cd_3,'99').
  2186. cTKey3 = 'Total ' + cKey3.
  2187. END.
  2188. END.
  2189. IF FKey4 THEN DO:
  2190. IF Cd_4 = 0 THEN DO:
  2191. cKey4 = ''.
  2192. cTKey4 = ''.
  2193. END.
  2194. ELSE DO:
  2195. FIND EWKSt4 USE-INDEX EWKSt4-k1
  2196. WHERE EWKSt4.Firma = Firma
  2197. AND EWKSt4.Cd_1 = Cd_1
  2198. AND EWKSt4.Cd_2 = Cd_2
  2199. AND EWKSt4.Cd_3 = Cd_3
  2200. AND EWKSt4.Cd_4 = Cd_4 NO-LOCK NO-ERROR.
  2201. IF AVAILABLE EWKSt4 THEN cKey4 = EWKSt4.Bez.
  2202. ELSE cKey4 = STRING(Cd_1,'99')
  2203. + STRING(Cd_2,'99')
  2204. + STRING(Cd_3,'99')
  2205. + STRING(Cd_4,'99').
  2206. cTKey4 = 'Total ' + cKey4.
  2207. END.
  2208. END.
  2209. LEAVE.
  2210. END.
  2211. cAlt = cNeu.
  2212. END PROCEDURE.
  2213. /* _UIB-CODE-BLOCK-END */
  2214. &ANALYZE-RESUME
  2215. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage gEWK
  2216. PROCEDURE selectPage :
  2217. /*------------------------------------------------------------------------------
  2218. Purpose: Super Override
  2219. Parameters:
  2220. Notes:
  2221. ------------------------------------------------------------------------------*/
  2222. DEF INPUT PARAMETER piPageNum AS INT NO-UNDO.
  2223. DEF VAR FMutFlag AS LOG NO-UNDO.
  2224. DEF VAR MutProg AS CHAR NO-UNDO.
  2225. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  2226. DO WHILE TRUE:
  2227. IF NOT FMutFlag THEN LEAVE.
  2228. MutProg = DYNAMIC-FUNCTION('GETMUTPROG':U).
  2229. IF MutProg <> THIS-PROCEDURE:FILE-NAME THEN LEAVE.
  2230. RETURN NO-APPLY.
  2231. END.
  2232. CASE piPageNum:
  2233. END CASE.
  2234. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  2235. CASE AktSeite:
  2236. WHEN 1 THEN DO:
  2237. /* RUN removeLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */
  2238. /* RUN removeLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */
  2239. END.
  2240. END CASE.
  2241. RUN SUPER( INPUT piPageNum).
  2242. END PROCEDURE.
  2243. /* _UIB-CODE-BLOCK-END */
  2244. &ANALYZE-RESUME
  2245. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR gEWK
  2246. PROCEDURE TOOLBAR :
  2247. /*------------------------------------------------------------------------------
  2248. Purpose:
  2249. Parameters: <none>
  2250. Notes:
  2251. ------------------------------------------------------------------------------*/
  2252. DEF INPUT PARAMETER pcAction AS CHAR NO-UNDO.
  2253. /*
  2254. RUN TOOLBAR IN h_dyntoolbar ( INPUT pcAction ).
  2255. */
  2256. END PROCEDURE.
  2257. /* _UIB-CODE-BLOCK-END */
  2258. &ANALYZE-RESUME
  2259. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOTALE02 gEWK
  2260. PROCEDURE TOTALE02 :
  2261. /*------------------------------------------------------------------------------
  2262. Purpose:
  2263. Parameters: <none>
  2264. Notes:
  2265. ------------------------------------------------------------------------------*/
  2266. DEF VAR cSort AS CHAR NO-UNDO.
  2267. IF LKey4 THEN DO:
  2268. cSort = SUBSTRING(cAlt,01,08).
  2269. FIND Totale WHERE Totale.Sort_1 = cSort.
  2270. IF Totale.Menge <> dMenge OR
  2271. Totale.Liter <> dLiter THEN DO:
  2272. PUT CONTROL cTKey4 '£££££'
  2273. STRING(Totale.Menge,'->>>>,>>9.99') '£'
  2274. STRING(Totale.Liter,'->>>>,>>9.99') CHR(10).
  2275. END.
  2276. END.
  2277. IF LKey3 THEN DO:
  2278. cSort = SUBSTRING(cAlt,01,06).
  2279. FIND Totale WHERE Totale.Sort_1 = cSort.
  2280. IF Totale.Menge <> dMenge OR
  2281. Totale.Liter <> dLiter THEN DO:
  2282. PUT CONTROL cTKey3 '£££££'
  2283. STRING(Totale.Menge,'->>>>,>>9.99') '£'
  2284. STRING(Totale.Liter,'->>>>,>>9.99') CHR(10).
  2285. END.
  2286. END.
  2287. IF LKey2 THEN DO:
  2288. cSort = SUBSTRING(cAlt,01,04).
  2289. FIND Totale WHERE Totale.Sort_1 = cSort.
  2290. IF Totale.Menge <> dMenge OR
  2291. Totale.Liter <> dLiter THEN DO:
  2292. PUT CONTROL cTKey2 '£££££'
  2293. STRING(Totale.Menge,'->>>>,>>9.99') '£'
  2294. STRING(Totale.Liter,'->>>>,>>9.99') CHR(10).
  2295. END.
  2296. END.
  2297. IF LKey1 THEN DO:
  2298. cSort = SUBSTRING(cAlt,01,02).
  2299. FIND Totale WHERE Totale.Sort_1 = cSort.
  2300. IF Totale.Menge <> dMenge OR
  2301. Totale.Liter <> dLiter THEN DO:
  2302. PUT CONTROL cTKey1 '£££££'
  2303. STRING(Totale.Menge,'->>>>,>>9.99') '£'
  2304. STRING(Totale.Liter,'->>>>,>>9.99') CHR(10).
  2305. END.
  2306. END.
  2307. PUT CONTROL '£' CHR(10).
  2308. END PROCEDURE.
  2309. /* _UIB-CODE-BLOCK-END */
  2310. &ANALYZE-RESUME
  2311. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOTALE03 gEWK
  2312. PROCEDURE TOTALE03 :
  2313. /*------------------------------------------------------------------------------
  2314. Purpose:
  2315. Parameters: <none>
  2316. Notes:
  2317. ------------------------------------------------------------------------------*/
  2318. DEF VAR cSort AS CHAR NO-UNDO.
  2319. IF LKey4 THEN DO:
  2320. cSort = SUBSTRING(cAlt,01,08).
  2321. FIND Totale WHERE Totale.Sort_1 = cSort.
  2322. IF Totale.Menge <> dMenge OR
  2323. Totale.Liter <> dLiter THEN DO:
  2324. PUT CONTROL cTKey4 '£££££££££'
  2325. STRING(Totale.Menge,'->>>>,>>9.99') '£'
  2326. STRING(Totale.Liter,'->>>>,>>9.99') CHR(10).
  2327. END.
  2328. END.
  2329. IF LKey3 THEN DO:
  2330. cSort = SUBSTRING(cAlt,01,06).
  2331. FIND Totale WHERE Totale.Sort_1 = cSort.
  2332. IF Totale.Menge <> dMenge OR
  2333. Totale.Liter <> dLiter THEN DO:
  2334. PUT CONTROL cTKey3 '£££££££££'
  2335. STRING(Totale.Menge,'->>>>,>>9.99') '£'
  2336. STRING(Totale.Liter,'->>>>,>>9.99') CHR(10).
  2337. END.
  2338. END.
  2339. IF LKey2 THEN DO:
  2340. cSort = SUBSTRING(cAlt,01,04).
  2341. FIND Totale WHERE Totale.Sort_1 = cSort.
  2342. IF Totale.Menge <> dMenge OR
  2343. Totale.Liter <> dLiter THEN DO:
  2344. PUT CONTROL cTKey2 '£££££££££'
  2345. STRING(Totale.Menge,'->>>>,>>9.99') '£'
  2346. STRING(Totale.Liter,'->>>>,>>9.99') CHR(10).
  2347. END.
  2348. END.
  2349. IF LKey1 THEN DO:
  2350. cSort = SUBSTRING(cAlt,01,02).
  2351. FIND Totale WHERE Totale.Sort_1 = cSort.
  2352. IF Totale.Menge <> dMenge OR
  2353. Totale.Liter <> dLiter THEN DO:
  2354. PUT CONTROL cTKey1 '£££££££££'
  2355. STRING(Totale.Menge,'->>>>,>>9.99') '£'
  2356. STRING(Totale.Liter,'->>>>,>>9.99') CHR(10).
  2357. END.
  2358. END.
  2359. PUT CONTROL '£' CHR(10).
  2360. END PROCEDURE.
  2361. /* _UIB-CODE-BLOCK-END */
  2362. &ANALYZE-RESUME
  2363. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOTALE04 gEWK
  2364. PROCEDURE TOTALE04 :
  2365. /*------------------------------------------------------------------------------
  2366. Purpose:
  2367. Parameters: <none>
  2368. Notes:
  2369. ------------------------------------------------------------------------------*/
  2370. PUT CONTROL '£' CHR(10).
  2371. END PROCEDURE.
  2372. /* _UIB-CODE-BLOCK-END */
  2373. &ANALYZE-RESUME
  2374. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WERTE_EINLESEN gEWK
  2375. PROCEDURE WERTE_EINLESEN :
  2376. /*------------------------------------------------------------------------------
  2377. Purpose:
  2378. Parameters: <none>
  2379. Notes:
  2380. ------------------------------------------------------------------------------*/
  2381. DO WITH FRAME {&FRAME-NAME}:
  2382. VLiArt = INTEGER(CB_LiArt:SCREEN-VALUE).
  2383. cKey = 'EWKArt' + STRING(INTEGER(CB_LiArt:SCREEN-VALUE),'99').
  2384. GET-KEY-VALUE SECTION 'Auswertungen' KEY cKey VALUE cRetVal.
  2385. IF cRetVal = ? THEN cRetVal = '0@0@0@999999@9999@9999@@@@@no@no@'.
  2386. DO ix = 1 TO NUM-ENTRIES(cRetVal, '@').
  2387. CASE ix:
  2388. WHEN 1 THEN F_VonArtnr = INTEGER(ENTRY(ix, cRetVal, '@')) NO-ERROR.
  2389. WHEN 2 THEN F_VonInhalt = INTEGER(ENTRY(ix, cRetVal, '@')) NO-ERROR.
  2390. WHEN 3 THEN F_VonJahr = INTEGER(ENTRY(ix, cRetVal, '@')) NO-ERROR.
  2391. WHEN 4 THEN F_BisArtnr = INTEGER(ENTRY(ix, cRetVal, '@')) NO-ERROR.
  2392. WHEN 5 THEN F_BisInhalt = INTEGER(ENTRY(ix, cRetVal, '@')) NO-ERROR.
  2393. WHEN 6 THEN F_BisJahr = INTEGER(ENTRY(ix, cRetVal, '@')) NO-ERROR.
  2394. WHEN 7 THEN F_Herst = ENTRY(ix, cRetVal, '@') NO-ERROR.
  2395. WHEN 8 THEN F_Wgrp = ENTRY(ix, cRetVal, '@') NO-ERROR.
  2396. WHEN 9 THEN F_VonDatum = DATE( ENTRY(ix, cRetVal, '@')) NO-ERROR.
  2397. WHEN 10 THEN F_BisDatum = DATE( ENTRY(ix, cRetVal, '@')) NO-ERROR.
  2398. WHEN 11 THEN DO:
  2399. IF ENTRY(ix, cRetVal, '@') BEGINS 'n' THEN T_Abschluss = FALSE.
  2400. ELSE T_Abschluss = TRUE.
  2401. END.
  2402. WHEN 12 THEN DO:
  2403. IF ENTRY(ix, cRetVal, '@') BEGINS 'n' THEN T_Detail = FALSE.
  2404. ELSE T_Detail = TRUE.
  2405. END.
  2406. END CASE.
  2407. END.
  2408. DISPLAY {&list-6}.
  2409. END.
  2410. END PROCEDURE.
  2411. /* _UIB-CODE-BLOCK-END */
  2412. &ANALYZE-RESUME