d-p_eav.w 117 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. &Scoped-define FRAME-NAME D-Dialog
  8. /* Temp-Table and Buffer definitions */
  9. DEFINE TEMP-TABLE THilfsTab NO-UNDO LIKE HilfsTab.
  10. DEFINE NEW SHARED TEMP-TABLE XTermOut NO-UNDO LIKE TermOut.
  11. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS D-Dialog
  12. /*------------------------------------------------------------------------
  13. File:
  14. Description: from cntnrdlg.w - ADM SmartDialog Template
  15. Input Parameters:
  16. <none>
  17. Output Parameters:
  18. <none>
  19. Author:
  20. Created:
  21. ------------------------------------------------------------------------*/
  22. /* This .W file was created with the Progress UIB. */
  23. /*----------------------------------------------------------------------*/
  24. /* Create an unnamed pool to store all the widgets created
  25. by this procedure. This is a good default which assures
  26. that this procedure's triggers and internal procedures
  27. will execute in this procedure's storage, and that proper
  28. cleanup will occur on deletion of the procedure. */
  29. CREATE WIDGET-POOL.
  30. /* *************************** Definitions ************************** */
  31. /* Parameters Definitions --- */
  32. /* Local Variable Definitions --- */
  33. DEFINE VARIABLE VProgName AS CHARACTER NO-UNDO.
  34. DEFINE VARIABLE ARecid AS RECID NO-UNDO.
  35. DEFINE VARIABLE BRecid AS RECID NO-UNDO.
  36. DEFINE VARIABLE TRecid AS RECID NO-UNDO.
  37. DEFINE VARIABLE VLiArt AS INTEGER NO-UNDO.
  38. DEFINE VARIABLE ok AS LOG NO-UNDO.
  39. DEFINE VARIABLE VTemp AS CHARACTER NO-UNDO.
  40. DEFINE VARIABLE VZeile AS CHARACTER FORMAT "x(255)" NO-UNDO.
  41. DEFINE VARIABLE XSort1 AS CHARACTER FORMAT "x(30)" NO-UNDO.
  42. DEFINE VARIABLE XSort2 AS CHARACTER FORMAT "x(30)" NO-UNDO.
  43. DEFINE VARIABLE XSort3 AS CHARACTER FORMAT "x(30)" NO-UNDO.
  44. DEFINE VARIABLE XSort4 AS CHARACTER FORMAT "x(30)" NO-UNDO.
  45. DEFINE VARIABLE FLeer AS LOG NO-UNDO.
  46. DEFINE VARIABLE VInhalt AS DECIMAL DECIMALS 4 NO-UNDO.
  47. DEFINE VARIABLE GTotal AS DECIMAL DECIMALS 4 EXTENT 10 NO-UNDO.
  48. DEFINE VARIABLE VDatum AS DATE NO-UNDO.
  49. DEFINE VARIABLE BDatum AS DATE NO-UNDO.
  50. DEFINE VARIABLE IDatA AS DATE NO-UNDO.
  51. DEFINE VARIABLE IDatN AS DATE NO-UNDO.
  52. DEFINE BUFFER BArtst FOR Artst.
  53. DEFINE BUFFER BDebst FOR Debst.
  54. DEFINE BUFFER BAdresse FOR Adresse.
  55. DEFINE WORKFILE WHilfsTab LIKE HilfsTab.
  56. DEFINE TEMP-TABLE TArtbw LIKE Artbw.
  57. /* ---------- Globale Variablen ---------------------------------- */
  58. { v8/globvar.i" " " " "SHARED" }
  59. { v8/debivar.i " " " " "SHARED" }
  60. { v8/artivar.i " " " " "SHARED" }
  61. { v8/contvar.i " " " " "SHARED" }
  62. { v8/listtitv.i "NEW" "SHARED" }
  63. /* _UIB-CODE-BLOCK-END */
  64. &ANALYZE-RESUME
  65. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  66. /* ******************** Preprocessor Definitions ******************** */
  67. &Scoped-define PROCEDURE-TYPE SmartDialog
  68. &Scoped-define DB-AWARE no
  69. &Scoped-define ADM-CONTAINER DIALOG-BOX
  70. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  71. &Scoped-define FRAME-NAME D-Dialog
  72. /* Internal Tables (found by Frame, Query & Browse Queries) */
  73. &Scoped-define INTERNAL-TABLES Listen
  74. /* Definitions for DIALOG-BOX D-Dialog */
  75. &Scoped-define QUERY-STRING-D-Dialog FOR EACH Listen SHARE-LOCK
  76. &Scoped-define OPEN-QUERY-D-Dialog OPEN QUERY D-Dialog FOR EACH Listen SHARE-LOCK.
  77. &Scoped-define TABLES-IN-QUERY-D-Dialog Listen
  78. &Scoped-define FIRST-TABLE-IN-QUERY-D-Dialog Listen
  79. /* Standard List Definitions */
  80. &Scoped-Define ENABLED-OBJECTS CB_Listenart RS_Sort F_VArtnr F_VInhalt ~
  81. F_VJahr F_BArtnr F_BInhalt F_BJahr F_Hersteller F_Warengruppe F_Detail ~
  82. F_VDatum F_BDatum F_Abschliessen CB_Drucker CB_Schriftbild T_Drucker Btn_OK ~
  83. Btn_Cancel RECT-2 RECT-3
  84. &Scoped-Define DISPLAYED-OBJECTS CB_Listenart RS_Sort F_VArtnr F_VInhalt ~
  85. F_VJahr F_BArtnr F_BInhalt F_BJahr F_Hersteller F_Warengruppe F_Detail ~
  86. F_VDatum F_BDatum F_Abschliessen CB_Drucker CB_Schriftbild T_Drucker
  87. /* Custom List Definitions */
  88. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  89. &Scoped-define List-1 RS_Sort F_VArtnr F_VInhalt F_VJahr F_BArtnr F_BInhalt ~
  90. F_BJahr F_Hersteller F_Warengruppe F_Detail F_VDatum F_BDatum ~
  91. F_Abschliessen T_Drucker
  92. /* _UIB-PREPROCESSOR-BLOCK-END */
  93. &ANALYZE-RESUME
  94. /* ************************ Function Prototypes ********************** */
  95. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD CREATEEXCEL D-Dialog
  96. FUNCTION CREATEEXCEL RETURNS COMPONENT-HANDLE
  97. ( /* parameter-definitions */ ) FORWARD.
  98. /* _UIB-CODE-BLOCK-END */
  99. &ANALYZE-RESUME
  100. /* *********************** Control Definitions ********************** */
  101. /* Define a dialog box */
  102. /* Definitions of the field level widgets */
  103. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  104. LABEL "&Abbrechen"
  105. SIZE 12 BY 1
  106. BGCOLOR 8 .
  107. DEFINE BUTTON Btn_OK AUTO-GO
  108. LABEL "&Start"
  109. SIZE 12 BY 1
  110. BGCOLOR 8 .
  111. DEFINE VARIABLE CB_Drucker AS CHARACTER FORMAT "X(256)":U
  112. VIEW-AS COMBO-BOX INNER-LINES 5
  113. LIST-ITEMS "Item-1"
  114. DROP-DOWN-LIST
  115. SIZE 33 BY 1
  116. BGCOLOR 15 NO-UNDO.
  117. DEFINE VARIABLE CB_Listenart AS CHARACTER FORMAT "X(256)":U
  118. LABEL "Listenart"
  119. VIEW-AS COMBO-BOX INNER-LINES 5
  120. LIST-ITEMS "Artikel mit EAV-Code","EAV-Inventar","EAV-Verkäufe","EAV-Buchhaltung"
  121. DROP-DOWN-LIST
  122. SIZE 50 BY 1
  123. BGCOLOR 15 NO-UNDO.
  124. DEFINE VARIABLE CB_Schriftbild AS CHARACTER FORMAT "X(256)":U
  125. VIEW-AS COMBO-BOX INNER-LINES 5
  126. LIST-ITEMS "Item-1"
  127. DROP-DOWN-LIST
  128. SIZE 33 BY 1
  129. BGCOLOR 15 NO-UNDO.
  130. DEFINE VARIABLE F_BArtnr AS INTEGER FORMAT "999999":U INITIAL 0
  131. LABEL ""
  132. VIEW-AS FILL-IN NATIVE
  133. SIZE 11 BY 1
  134. BGCOLOR 15 NO-UNDO.
  135. DEFINE VARIABLE F_BDatum AS DATE FORMAT "99.99.9999":U
  136. LABEL ""
  137. VIEW-AS FILL-IN NATIVE
  138. SIZE 16 BY 1
  139. BGCOLOR 15 NO-UNDO.
  140. DEFINE VARIABLE F_BInhalt AS INTEGER FORMAT "9999":U INITIAL 0
  141. VIEW-AS FILL-IN NATIVE
  142. SIZE 8 BY 1
  143. BGCOLOR 15 NO-UNDO.
  144. DEFINE VARIABLE F_BJahr AS INTEGER FORMAT "9999":U INITIAL 0
  145. VIEW-AS FILL-IN NATIVE
  146. SIZE 8 BY 1
  147. BGCOLOR 15 NO-UNDO.
  148. DEFINE VARIABLE F_Hersteller AS CHARACTER FORMAT "x(256)":U
  149. LABEL "Hersteller"
  150. VIEW-AS FILL-IN NATIVE
  151. SIZE 43.2 BY 1 TOOLTIP "F1 = Auswahl der Codes"
  152. BGCOLOR 15 NO-UNDO.
  153. DEFINE VARIABLE F_VArtnr AS INTEGER FORMAT "999999":U INITIAL 0
  154. LABEL "von - bis Artikelnummer"
  155. VIEW-AS FILL-IN NATIVE
  156. SIZE 11 BY 1
  157. BGCOLOR 15 NO-UNDO.
  158. DEFINE VARIABLE F_VDatum AS DATE FORMAT "99.99.9999":U
  159. LABEL "von - bis Datum"
  160. VIEW-AS FILL-IN NATIVE
  161. SIZE 16 BY 1
  162. BGCOLOR 15 NO-UNDO.
  163. DEFINE VARIABLE F_VInhalt AS INTEGER FORMAT "9999":U INITIAL 0
  164. VIEW-AS FILL-IN NATIVE
  165. SIZE 8 BY 1
  166. BGCOLOR 15 NO-UNDO.
  167. DEFINE VARIABLE F_VJahr AS INTEGER FORMAT "9999":U INITIAL 0
  168. VIEW-AS FILL-IN NATIVE
  169. SIZE 8 BY 1
  170. BGCOLOR 15 NO-UNDO.
  171. DEFINE VARIABLE F_Warengruppe AS CHARACTER FORMAT "x(256)":U
  172. LABEL "Warengruppe"
  173. VIEW-AS FILL-IN NATIVE
  174. SIZE 43.2 BY 1 TOOLTIP "F1 = Auswahl der Codes"
  175. BGCOLOR 15 NO-UNDO.
  176. DEFINE VARIABLE RS_Sort AS INTEGER INITIAL 1
  177. VIEW-AS RADIO-SET VERTICAL
  178. RADIO-BUTTONS
  179. "EAV-Code", 1,
  180. "", 2,
  181. "", 3
  182. SIZE 50 BY 2 NO-UNDO.
  183. DEFINE RECTANGLE RECT-2
  184. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  185. SIZE 98 BY 3.38.
  186. DEFINE RECTANGLE RECT-3
  187. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  188. SIZE 98 BY 4.52.
  189. DEFINE VARIABLE F_Abschliessen AS LOGICAL INITIAL NO
  190. LABEL "Abschliessen"
  191. VIEW-AS TOGGLE-BOX
  192. SIZE 26.8 BY 1 NO-UNDO.
  193. DEFINE VARIABLE F_Detail AS LOGICAL INITIAL NO
  194. LABEL "ohne Artikel/Kunden-Detail"
  195. VIEW-AS TOGGLE-BOX
  196. SIZE 26.8 BY 1 NO-UNDO.
  197. DEFINE VARIABLE T_Drucker AS LOGICAL INITIAL NO
  198. LABEL "Druckersetup"
  199. VIEW-AS TOGGLE-BOX
  200. SIZE 20 BY 1 NO-UNDO.
  201. /* Query definitions */
  202. &ANALYZE-SUSPEND
  203. DEFINE QUERY D-Dialog FOR
  204. Listen SCROLLING.
  205. &ANALYZE-RESUME
  206. /* ************************ Frame Definitions *********************** */
  207. DEFINE FRAME D-Dialog
  208. CB_Listenart AT ROW 1.62 COL 9.8 COLON-ALIGNED
  209. RS_Sort AT ROW 4 COL 10 NO-LABELS
  210. F_VArtnr AT ROW 7 COL 24 COLON-ALIGNED
  211. F_VInhalt AT ROW 7 COL 35 COLON-ALIGNED NO-LABELS
  212. F_VJahr AT ROW 7 COL 43 COLON-ALIGNED NO-LABELS
  213. F_BArtnr AT ROW 7 COL 53 COLON-ALIGNED
  214. F_BInhalt AT ROW 7 COL 64 COLON-ALIGNED NO-LABELS
  215. F_BJahr AT ROW 7 COL 72 COLON-ALIGNED NO-LABELS
  216. F_Hersteller AT ROW 8 COL 24 COLON-ALIGNED
  217. F_Warengruppe AT ROW 9 COL 24 COLON-ALIGNED
  218. F_Detail AT ROW 9 COL 72
  219. F_VDatum AT ROW 10 COL 24 COLON-ALIGNED
  220. F_BDatum AT ROW 10 COL 42 COLON-ALIGNED
  221. F_Abschliessen AT ROW 10 COL 72
  222. CB_Drucker AT ROW 11.81 COL 3 NO-LABELS
  223. CB_Schriftbild AT ROW 11.81 COL 35 COLON-ALIGNED NO-LABELS
  224. T_Drucker AT ROW 11.81 COL 75
  225. Btn_OK AT ROW 1.52 COL 73.2
  226. Btn_Cancel AT ROW 1.52 COL 86.2
  227. "Sortierung Artikel" VIEW-AS TEXT
  228. SIZE 50 BY .81 AT ROW 3 COL 10
  229. FONT 9
  230. RECT-2 AT ROW 2.81 COL 2
  231. RECT-3 AT ROW 6.67 COL 2
  232. SPACE(0.99) SKIP(2.11)
  233. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  234. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  235. TITLE "Eidg. Alkoholverwaltung"
  236. DEFAULT-BUTTON Btn_OK CANCEL-BUTTON Btn_Cancel.
  237. /* *********************** Procedure Settings ************************ */
  238. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  239. /* Settings for THIS-PROCEDURE
  240. Type: SmartDialog
  241. Allow: Basic,Browse,DB-Fields,Query,Smart
  242. Other Settings: COMPILE
  243. Temp-Tables and Buffers:
  244. TABLE: THilfsTab T "?" NO-UNDO AnaDat HilfsTab
  245. TABLE: XTermOut T "NEW SHARED" NO-UNDO AnaDat TermOut
  246. END-TABLES.
  247. */
  248. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  249. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB D-Dialog
  250. /* ************************* Included-Libraries *********************** */
  251. {src/adm/method/containr.i}
  252. /* _UIB-CODE-BLOCK-END */
  253. &ANALYZE-RESUME
  254. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  255. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  256. /* SETTINGS FOR DIALOG-BOX D-Dialog
  257. FRAME-NAME Custom */
  258. ASSIGN
  259. FRAME D-Dialog:SCROLLABLE = FALSE
  260. FRAME D-Dialog:HIDDEN = TRUE.
  261. /* SETTINGS FOR COMBO-BOX CB_Drucker IN FRAME D-Dialog
  262. ALIGN-L */
  263. /* SETTINGS FOR TOGGLE-BOX F_Abschliessen IN FRAME D-Dialog
  264. 1 */
  265. /* SETTINGS FOR FILL-IN F_BArtnr IN FRAME D-Dialog
  266. 1 */
  267. /* SETTINGS FOR FILL-IN F_BDatum IN FRAME D-Dialog
  268. 1 */
  269. /* SETTINGS FOR FILL-IN F_BInhalt IN FRAME D-Dialog
  270. 1 */
  271. /* SETTINGS FOR FILL-IN F_BJahr IN FRAME D-Dialog
  272. 1 */
  273. /* SETTINGS FOR TOGGLE-BOX F_Detail IN FRAME D-Dialog
  274. 1 */
  275. /* SETTINGS FOR FILL-IN F_Hersteller IN FRAME D-Dialog
  276. 1 */
  277. /* SETTINGS FOR FILL-IN F_VArtnr IN FRAME D-Dialog
  278. 1 */
  279. /* SETTINGS FOR FILL-IN F_VDatum IN FRAME D-Dialog
  280. 1 */
  281. /* SETTINGS FOR FILL-IN F_VInhalt IN FRAME D-Dialog
  282. 1 */
  283. /* SETTINGS FOR FILL-IN F_VJahr IN FRAME D-Dialog
  284. 1 */
  285. /* SETTINGS FOR FILL-IN F_Warengruppe IN FRAME D-Dialog
  286. 1 */
  287. /* SETTINGS FOR RADIO-SET RS_Sort IN FRAME D-Dialog
  288. 1 */
  289. /* SETTINGS FOR TOGGLE-BOX T_Drucker IN FRAME D-Dialog
  290. 1 */
  291. /* _RUN-TIME-ATTRIBUTES-END */
  292. &ANALYZE-RESUME
  293. /* Setting information for Queries and Browse Widgets fields */
  294. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX D-Dialog
  295. /* Query rebuild information for DIALOG-BOX D-Dialog
  296. _TblList = "AnaDat.Listen"
  297. _Options = "SHARE-LOCK"
  298. _Query is NOT OPENED
  299. */ /* DIALOG-BOX D-Dialog */
  300. &ANALYZE-RESUME
  301. /* ************************ Control Triggers ************************ */
  302. &Scoped-define SELF-NAME D-Dialog
  303. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL D-Dialog D-Dialog
  304. ON WINDOW-CLOSE OF FRAME D-Dialog /* Eidg. Alkoholverwaltung */
  305. DO:
  306. /* Add Trigger to equate WINDOW-CLOSE to END-ERROR. */
  307. APPLY "END-ERROR":U TO SELF.
  308. END.
  309. /* _UIB-CODE-BLOCK-END */
  310. &ANALYZE-RESUME
  311. &Scoped-define SELF-NAME Btn_OK
  312. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK D-Dialog
  313. ON CHOOSE OF Btn_OK IN FRAME D-Dialog /* Start */
  314. DO:
  315. DO WITH FRAME {&FRAME-NAME}:
  316. ASSIGN {&List-1}.
  317. IF F_VArtnr = 0 AND F_BArtnr = 0 THEN F_BArtnr = 999999.
  318. IF F_VArtnr > F_BArtnr THEN F_BArtnr = F_VArtnr.
  319. IF F_VInhalt = 0 AND F_BInhalt = 0 THEN F_BInhalt = 9999.
  320. IF F_VInhalt > F_BInhalt THEN F_BInhalt = F_VInhalt.
  321. IF F_VJahr = 0 AND F_BJahr = 0 THEN F_BJahr = 9999.
  322. IF F_VJahr > F_BJahr THEN F_BJahr = F_VJahr .
  323. IF F_VDatum = ? THEN F_VDatum = DATE(01,01,YEAR(TODAY)).
  324. IF F_BDatum = ? THEN F_BDatum = DATE(12,31,YEAR(TODAY)).
  325. IF VLiArt > 02 THEN
  326. DO:
  327. IF F_VDatum > F_BDatum THEN F_BDatum = F_VDatum.
  328. END.
  329. DISPLAY {&List-1}.
  330. DISABLE Btn_OK
  331. Btn_cancel.
  332. SESSION:SET-WAIT-STATE('GENERAL').
  333. RUN DRUCKEN.
  334. SESSION:SET-WAIT-STATE('').
  335. ENABLE Btn_OK
  336. Btn_cancel.
  337. END.
  338. END.
  339. /* _UIB-CODE-BLOCK-END */
  340. &ANALYZE-RESUME
  341. &Scoped-define SELF-NAME CB_Drucker
  342. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Drucker D-Dialog
  343. ON VALUE-CHANGED OF CB_Drucker IN FRAME D-Dialog
  344. DO:
  345. ok = TRUE.
  346. DO WHILE ok:
  347. ok = CB_Schriftbild:DELETE(1).
  348. END.
  349. FOR EACH Schrift USE-INDEX Schrift-k1
  350. WHERE Schrift.Schname = CB_Drucker:SCREEN-VALUE NO-LOCK:
  351. ok = CB_Schriftbild:ADD-LAST(Schrift.Schbild).
  352. END.
  353. i1 = 0.
  354. DO WHILE BRecid > 0:
  355. i1 = CB_Schriftbild:LOOKUP(LiDruck.ListBild).
  356. LEAVE.
  357. END.
  358. IF i1 = 0 THEN i1 = 1.
  359. CB_Schriftbild:SCREEN-VALUE = CB_Schriftbild:ENTRY(i1).
  360. END.
  361. /* _UIB-CODE-BLOCK-END */
  362. &ANALYZE-RESUME
  363. &Scoped-define SELF-NAME CB_Listenart
  364. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Listenart D-Dialog
  365. ON VALUE-CHANGED OF CB_Listenart IN FRAME D-Dialog /* Listenart */
  366. DO:
  367. TRecid = 0.
  368. ARecid = 0.
  369. BRecid = 0.
  370. VLiArt = CB_Listenart:LOOKUP(CB_Listenart:SCREEN-VALUE).
  371. RUN SORTIERARTEN.
  372. FIND Tabel USE-INDEX Tabel-k1
  373. WHERE Tabel.Firma = GVFirma
  374. AND Tabel.RecArt = 'LISTEN'
  375. AND Tabel.CodeC = 'EWK'
  376. AND Tabel.CodeI = VLiArt
  377. AND Tabel.Sprcd = 0 NO-LOCK NO-ERROR.
  378. IF AVAILABLE Tabel THEN
  379. DO:
  380. TRecid = RECID(Tabel).
  381. ARecid = Tabel.Int_1.
  382. BRecid = Tabel.Int_2.
  383. FIND Listen WHERE RECID(Listen) = ARecid NO-LOCK NO-ERROR.
  384. FIND LiDruck WHERE RECID(LiDruck) = BRecid NO-LOCK NO-ERROR.
  385. IF NOT AVAILABLE Listen THEN ARecid = 0.
  386. IF NOT AVAILABLE LiDruck THEN BRecid = 0.
  387. END.
  388. RS_Sort = 1.
  389. F_VArtnr = 0.
  390. F_BArtnr = 999999.
  391. F_VInhalt = 0.
  392. F_BInhalt = 9999.
  393. F_VJahr = 0.
  394. F_BJahr = 9999.
  395. F_Hersteller = ''.
  396. F_Warengruppe = ''.
  397. F_VDatum = DATE(01,01,YEAR(TODAY)).
  398. F_BDatum = DATE(12,31,YEAR(TODAY)).
  399. F_Detail = FALSE.
  400. F_Abschliessen = FALSE.
  401. CB_Drucker:SCREEN-VALUE = CB_Drucker:ENTRY(1).
  402. DO WHILE ARecid > 0:
  403. RS_Sort = Listen.Sort.
  404. F_VArtnr = Listen.VNr[01].
  405. F_BArtnr = Listen.BNr[01].
  406. F_VInhalt = Listen.VNr[02].
  407. F_BInhalt = Listen.BNr[02].
  408. F_VJahr = Listen.VNr[03].
  409. F_BJahr = Listen.BNr[03].
  410. F_VDatum = Listen.VDa[01].
  411. F_BDatum = Listen.BDa[01].
  412. F_Hersteller = Listen.ECh[01].
  413. F_Warengruppe = Listen.ECh[02].
  414. F_Detail = Listen.VFl[05].
  415. F_Abschliessen = Listen.VFl[06].
  416. LEAVE.
  417. END.
  418. DO WITH FRAME {&FRAME-NAME}:
  419. IF VLiArt = 1 THEN
  420. DO:
  421. F_VDatum:SENSITIVE = FALSE.
  422. F_BDatum:SENSITIVE = FALSE.
  423. F_Abschliessen:SENSITIVE = FALSE.
  424. F_Detail:SENSITIVE = FALSE.
  425. F_VDatum:HIDDEN = TRUE.
  426. F_BDatum:HIDDEN = TRUE.
  427. F_Abschliessen:HIDDEN = TRUE.
  428. F_Detail:HIDDEN = TRUE.
  429. END.
  430. IF VLiArt = 2 THEN
  431. DO:
  432. F_VDatum:SENSITIVE = TRUE.
  433. F_BDatum:SENSITIVE = FALSE.
  434. F_Abschliessen:SENSITIVE = TRUE.
  435. F_Detail:SENSITIVE = FALSE.
  436. F_BDatum:HIDDEN = TRUE.
  437. F_VDatum:HIDDEN = FALSE.
  438. F_VDatum:LABEL = 'Iventardatum'.
  439. F_Abschliessen:HIDDEN = FALSE.
  440. F_Detail:HIDDEN = TRUE.
  441. END.
  442. IF VLiArt = 3 THEN
  443. DO:
  444. F_VDatum:SENSITIVE = TRUE.
  445. F_BDatum:SENSITIVE = TRUE.
  446. F_Abschliessen:SENSITIVE = FALSE.
  447. F_Detail:SENSITIVE = TRUE.
  448. F_BDatum:HIDDEN = FALSE.
  449. F_VDatum:HIDDEN = FALSE.
  450. F_VDatum:LABEL = 'von - bis Datum'.
  451. F_Abschliessen:HIDDEN = TRUE.
  452. F_Detail:HIDDEN = FALSE.
  453. END.
  454. IF VLiArt = 4 THEN
  455. DO:
  456. F_VDatum:SENSITIVE = TRUE.
  457. F_BDatum:SENSITIVE = TRUE.
  458. F_Abschliessen:SENSITIVE = FALSE.
  459. F_Detail:SENSITIVE = FALSE.
  460. F_BDatum:HIDDEN = FALSE.
  461. F_VDatum:HIDDEN = FALSE.
  462. F_VDatum:LABEL = 'von - bis Datum'.
  463. F_Abschliessen:HIDDEN = TRUE.
  464. F_Detail:HIDDEN = TRUE.
  465. END.
  466. END.
  467. i1 = 0.
  468. DO WHILE BRecid > 0:
  469. i1 = CB_Drucker:LOOKUP(LiDruck.ListDru).
  470. LEAVE.
  471. END.
  472. IF i1 = 0 THEN i1 = 1.
  473. CB_Drucker:SCREEN-VALUE = CB_Drucker:ENTRY(i1).
  474. APPLY 'VALUE-CHANGED' TO CB_Drucker.
  475. DISPLAY {&List-1} WITH FRAME {&FRAME-NAME}.
  476. APPLY 'ENTRY' TO F_VArtnr.
  477. END.
  478. /* _UIB-CODE-BLOCK-END */
  479. &ANALYZE-RESUME
  480. &Scoped-define SELF-NAME F_Hersteller
  481. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Hersteller D-Dialog
  482. ON LEFT-MOUSE-DBLCLICK OF F_Hersteller IN FRAME D-Dialog /* Hersteller */
  483. DO:
  484. LVRecArt = 'HERST'.
  485. LVTitel = 'Hersteller'.
  486. LVFirma = GVFirma.
  487. Linktext = SELF:SCREEN-VALUE.
  488. RUN "v8/d-ausw-tabel.w".
  489. SELF:SCREEN-VALUE = Linktext.
  490. Linktext = ''.
  491. END.
  492. /* _UIB-CODE-BLOCK-END */
  493. &ANALYZE-RESUME
  494. &Scoped-define SELF-NAME F_Warengruppe
  495. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Warengruppe D-Dialog
  496. ON LEFT-MOUSE-DBLCLICK OF F_Warengruppe IN FRAME D-Dialog /* Warengruppe */
  497. DO:
  498. Linktext = SELF:SCREEN-VALUE.
  499. RUN "v8/d-ausw-warengrp.w".
  500. SELF:SCREEN-VALUE = Linktext.
  501. Linktext = ''.
  502. END.
  503. /* _UIB-CODE-BLOCK-END */
  504. &ANALYZE-RESUME
  505. &UNDEFINE SELF-NAME
  506. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK D-Dialog
  507. /* *************************** Main Block *************************** */
  508. DO WITH FRAME {&FRAME-NAME}:
  509. CB_Listenart:SCREEN-VALUE = CB_Listenart:ENTRY(1).
  510. CB_Drucker:DELIMITER = ';'.
  511. CB_Schriftbild:DELIMITER = ';'.
  512. ok = TRUE.
  513. DO WHILE ok:
  514. ok = CB_Drucker:DELETE(1).
  515. END.
  516. FOR EACH Schrift USE-INDEX Schrift-k1 NO-LOCK
  517. BREAK BY Schrift.Schname :
  518. IF NOT FIRST-OF ( Schrift.Schname ) THEN NEXT.
  519. ok = CB_Drucker:ADD-LAST(Schrift.Schname).
  520. END.
  521. END.
  522. {src/adm/template/dialogmn.i}
  523. /* _UIB-CODE-BLOCK-END */
  524. &ANALYZE-RESUME
  525. /* ********************** Internal Procedures *********************** */
  526. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects D-Dialog _ADM-CREATE-OBJECTS
  527. PROCEDURE adm-create-objects :
  528. /*------------------------------------------------------------------------------
  529. Purpose: Create handles for all SmartObjects used in this procedure.
  530. After SmartObjects are initialized, then SmartLinks are added.
  531. Parameters: <none>
  532. ------------------------------------------------------------------------------*/
  533. END PROCEDURE.
  534. /* _UIB-CODE-BLOCK-END */
  535. &ANALYZE-RESUME
  536. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available D-Dialog _ADM-ROW-AVAILABLE
  537. PROCEDURE adm-row-available :
  538. /*------------------------------------------------------------------------------
  539. Purpose: Dispatched to this procedure when the Record-
  540. Source has a new row available. This procedure
  541. tries to get the new row (or foriegn keys) from
  542. the Record-Source and process it.
  543. Parameters: <none>
  544. ------------------------------------------------------------------------------*/
  545. /* Define variables needed by this internal procedure. */
  546. {src/adm/template/row-head.i}
  547. /* Process the newly available records (i.e. display fields,
  548. open queries, and/or pass records on to any RECORD-TARGETS). */
  549. {src/adm/template/row-end.i}
  550. END PROCEDURE.
  551. /* _UIB-CODE-BLOCK-END */
  552. &ANALYZE-RESUME
  553. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_01 D-Dialog
  554. PROCEDURE AUSGABE_01 :
  555. /*------------------------------------------------------------------------------
  556. Purpose:
  557. Parameters: <none>
  558. Notes:
  559. ------------------------------------------------------------------------------*/
  560. FOR EACH THilfsTab NO-LOCK,
  561. FIRST BArtst WHERE RECID(BArtst) = THilfsTab.Zahl_1 NO-LOCK
  562. BREAK BY THilfsTab.Sort_1
  563. BY THilfsTab.Sort_2
  564. BY THilfsTab.Sort_3
  565. BY THilfsTab.Sort_4
  566. BY BArtst.Artnr
  567. BY BArtst.Inhalt
  568. BY BArtst.Jahr :
  569. FLeer = FALSE.
  570. IF FIRST-OF ( THilfsTab.Sort_1 ) THEN
  571. DO:
  572. RUN SORT01.
  573. IF XSort1 <> '' THEN
  574. DO:
  575. IF NOT FLeer THEN
  576. DO:
  577. { v8/putstream.i "1" }
  578. FLeer = TRUE.
  579. END.
  580. Zuszz = 5.
  581. RUN LISTTIT2.
  582. SUBSTRING(VZeile,001) = XSort1.
  583. { v8/putstreamf.i "1" }
  584. END.
  585. END.
  586. IF FIRST-OF ( THilfsTab.Sort_2 ) THEN
  587. DO:
  588. RUN SORT02.
  589. IF XSort2 <> '' THEN
  590. DO:
  591. IF NOT FLeer THEN
  592. DO:
  593. { v8/putstream.i "1" }
  594. FLeer = TRUE.
  595. END.
  596. Zuszz = 4.
  597. RUN LISTTIT2.
  598. SUBSTRING(VZeile,001) = XSort2.
  599. { v8/putstreamf.i "1" }
  600. END.
  601. END.
  602. RUN LISTTIT2.
  603. FIND FIRST ArtBez OF BArtst NO-LOCK NO-ERROR.
  604. FIND KGebinde USE-INDEX KGebinde-k1
  605. WHERE KGebinde.Firma = BArtst.Firma
  606. AND KGebinde.Geb_Cd = BArtst.KGeb_Cd NO-LOCK NO-ERROR.
  607. FIND VGebinde USE-INDEX VGebinde-k1
  608. WHERE VGebinde.Firma = BArtst.Firma
  609. AND VGebinde.Geb_Cd = BArtst.VGeb_Cd NO-LOCK NO-ERROR.
  610. FIND GGebinde USE-INDEX GGebinde-k1
  611. WHERE GGebinde.Firma = BArtst.Firma
  612. AND GGebinde.Geb_Cd = BArtst.GGeb_Cd NO-LOCK NO-ERROR.
  613. SUBSTRING(VZeile,001) = STRING(BArtst.Artnr ,"999999").
  614. SUBSTRING(VZeile,008) = STRING(BArtst.Inhalt ,"zzzz").
  615. SUBSTRING(VZeile,013) = STRING(ArtBez.Bez1 ,"x(30)").
  616. IF BArtst.Jahr > 10 THEN SUBSTRING(VZeile,045) = STRING(BArtst.Jahr ,"zzzz").
  617. IF BArtst.Alk_Gehalt > 0 THEN SUBSTRING(VZeile,050) = STRING(BArtst.Alk_Gehalt ,"zz9.99%").
  618. SUBSTRING(VZeile,060) = KGebinde.KBez.
  619. SUBSTRING(VZeile,070) = VGebinde.KBez.
  620. SUBSTRING(VZeile,080) = GGebinde.KBez.
  621. { v8/putstream.i "1" }
  622. END.
  623. END PROCEDURE.
  624. /* _UIB-CODE-BLOCK-END */
  625. &ANALYZE-RESUME
  626. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_02 D-Dialog
  627. PROCEDURE AUSGABE_02 :
  628. /*------------------------------------------------------------------------------
  629. Purpose:
  630. Parameters: <none>
  631. Notes:
  632. ------------------------------------------------------------------------------*/
  633. DEFINE VARIABLE VBestand AS DECIMAL DECIMALS 4 NO-UNDO.
  634. DEFINE VARIABLE VLiter AS DECIMAL DECIMALS 4 NO-UNDO.
  635. DEFINE VARIABLE V100% AS DECIMAL DECIMALS 4 NO-UNDO.
  636. DEFINE VARIABLE cDatenDatei AS CHARACTER NO-UNDO.
  637. DEFINE VARIABLE cExcelDatei AS CHARACTER NO-UNDO.
  638. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  639. DEFINE VARIABLE LeerZeile AS LOG NO-UNDO.
  640. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO.
  641. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO.
  642. DEFINE VARIABLE Inhalt AS CHARACTER NO-UNDO.
  643. DEFINE VARIABLE Zeile1 AS INTEGER NO-UNDO.
  644. DEFINE VARIABLE Zeile2 AS INTEGER NO-UNDO.
  645. DEFINE VARIABLE fEnde AS LOG NO-UNDO.
  646. FOR EACH WHilfsTab:
  647. DELETE WHilfsTab.
  648. END.
  649. GTotal = 0.
  650. cDatenDatei = 'EAVInventar.txt'.
  651. cExcelDatei = 'EAVInventar.xls'.
  652. cDateiName = cExcelDatei + CHR(01) + cExcelDatei.
  653. RUN CREATEDATEI ( INPUT cDateiName ).
  654. cExcelDatei = RETURN-VALUE.
  655. IF cExcelDatei BEGINS 'ERROR' THEN
  656. DO:
  657. MESSAGE 'Fehler bei der Dateierzeugung ' cDateiName
  658. VIEW-AS ALERT-BOX ERROR.
  659. RETURN.
  660. END.
  661. cDateiName = cDatenDatei.
  662. RUN CREATEDATEI ( INPUT cDateiName ).
  663. cDatenDatei = RETURN-VALUE.
  664. IF cDatenDatei BEGINS 'ERROR' THEN
  665. DO:
  666. MESSAGE 'Fehler bei der Dateierzeugung ' cDateiName
  667. VIEW-AS ALERT-BOX ERROR.
  668. RETURN.
  669. END.
  670. OUTPUT TO VALUE(cDatenDatei).
  671. PUT CONTROL '£' CHR(10) '£' CHR(10)
  672. '£££Alk.£Inalt/£Anzahl£Total£100%' CHR(10)
  673. '£Artnr£Artikel£Gehalt£Einheit£Einheiten£Liter£Liter' CHR(10)
  674. '£' CHR(10).
  675. FOR EACH THilfsTab NO-LOCK,
  676. FIRST BArtst WHERE RECID(BArtst) = THilfsTab.Zahl_1 NO-LOCK
  677. BREAK BY THilfsTab.Sort_1
  678. BY THilfsTab.Sort_2
  679. BY BArtst.Artnr
  680. BY BArtst.Inhalt
  681. BY BArtst.Jahr :
  682. FLeer = FALSE.
  683. IF FIRST-OF ( THilfsTab.Sort_1 ) THEN
  684. DO:
  685. RUN SORT01.
  686. IF XSort1 <> '' THEN PUT CONTROL XSort1 CHR(10).
  687. END.
  688. IF FIRST-OF ( THilfsTab.Sort_2 ) THEN
  689. DO:
  690. RUN SORT02.
  691. IF XSort2 <> '' THEN PUT CONTROL XSort2 CHR(10).
  692. END.
  693. FIND FIRST ArtBez OF BArtst NO-LOCK NO-ERROR.
  694. FIND KGebinde USE-INDEX KGebinde-k1
  695. WHERE KGebinde.Firma = BArtst.Firma
  696. AND KGebinde.Geb_Cd = BArtst.KGeb_Cd NO-LOCK NO-ERROR.
  697. FIND VGebinde USE-INDEX VGebinde-k1
  698. WHERE VGebinde.Firma = BArtst.Firma
  699. AND VGebinde.Geb_Cd = BArtst.VGeb_Cd NO-LOCK NO-ERROR.
  700. FIND GGebinde USE-INDEX GGebinde-k1
  701. WHERE GGebinde.Firma = BArtst.Firma
  702. AND GGebinde.Geb_Cd = BArtst.GGeb_Cd NO-LOCK NO-ERROR.
  703. VBestand = 0.
  704. VLiter = 0.
  705. VBestand = THilfsTab.Wert[01].
  706. VLiter = VBestand * KGebinde.Inhalt / 100.
  707. V100% = VLiter * THilfsTab.Wert_1 / 100.
  708. PUT CONTROL '£'
  709. STRING(BArtst.Artnr ,'999999') '£'
  710. ArtBez.Bez1 '£'
  711. STRING(THilfsTab.Wert_1 ,'>>9.99') '£'
  712. STRING((KGebinde.Inhalt / 100),'zz9.99') '£'
  713. STRING(VBestand ,'->>>,>>>') '£'
  714. STRING(VLiter ,'->>>,>>9.99') '£'
  715. STRING(V100% ,'->>>,>>9.99') CHR(10).
  716. IF ArtBez.Bez2 <> '' THEN
  717. DO:
  718. PUT CONTROL '££'
  719. ArtBez.Bez2 CHR(10).
  720. END.
  721. GTotal[01] = GTotal[01] + VBestand.
  722. GTotal[02] = GTotal[02] + VLiter.
  723. GTotal[03] = GTotal[03] + V100%.
  724. IF THilfsTab.Sort_1 <> '' THEN
  725. DO:
  726. FIND FIRST WHilfsTab WHERE WHilfsTab.Firma = GVFirma
  727. AND WHilfsTab.Sort_1 = THilfsTab.Sort_1
  728. AND WHilfsTab.Sort_2 = ''
  729. AND WHilfsTab.Sort_3 = ''
  730. AND WHilfsTab.Sort_4 = '' NO-ERROR.
  731. IF NOT AVAILABLE WHilfsTab THEN
  732. DO:
  733. CREATE WHilfsTab.
  734. ASSIGN
  735. WHilfsTab.Firma = GVFirma
  736. WHilfsTab.Sort_1 = THilfsTab.Sort_1
  737. WHilfsTab.Sort_2 = ''
  738. WHilfsTab.Sort_3 = ''
  739. WHilfsTab.Sort_4 = ''.
  740. END.
  741. ASSIGN
  742. WHilfsTab.Wert[01] = WHilfsTab.Wert[01] + VBestand
  743. WHilfsTab.Wert[02] = WHilfsTab.Wert[02] + VLiter
  744. WHilfsTab.Wert[03] = WHilfsTab.Wert[03] + V100% .
  745. END.
  746. LeerZeile = FALSE.
  747. DO WHILE XSort2 <> '' :
  748. IF NOT LAST-OF ( THilfsTab.Sort_2 ) THEN LEAVE.
  749. FIND FIRST WHilfsTab WHERE WHilfsTab.Firma = GVFirma
  750. AND WHilfsTab.Sort_1 = THilfsTab.Sort_1
  751. AND WHilfsTab.Sort_2 = THilfsTab.Sort_2
  752. AND WHilfsTab.Sort_3 = ''
  753. AND WHilfsTab.Sort_4 = '' NO-ERROR.
  754. XSort2 = 'Total ' + XSort2.
  755. PUT CONTROL XSort2
  756. '££££££'
  757. STRING(WHilfsTab.Wert[02],'->>>,>>9.99') '£'
  758. STRING(WHilfsTab.Wert[03],'->>>,>>9.99') CHR(10).
  759. LeerZeile = TRUE.
  760. LEAVE.
  761. END.
  762. DO WHILE XSort1 <> '' :
  763. IF NOT LAST-OF ( THilfsTab.Sort_1 ) THEN LEAVE.
  764. FIND FIRST WHilfsTab WHERE WHilfsTab.Firma = GVFirma
  765. AND WHilfsTab.Sort_1 = THilfsTab.Sort_1
  766. AND WHilfsTab.Sort_2 = ''
  767. AND WHilfsTab.Sort_3 = ''
  768. AND WHilfsTab.Sort_4 = '' NO-ERROR.
  769. XSort1 = 'Total ' + XSort1.
  770. PUT CONTROL XSort1
  771. '££££££'
  772. STRING(WHilfsTab.Wert[02],'->>>,>>9.99') '£'
  773. STRING(WHilfsTab.Wert[03],'->>>,>>9.99') CHR(10).
  774. LeerZeile = TRUE.
  775. LEAVE.
  776. END.
  777. IF LeerZeile THEN PUT CONTROL '£' CHR(10).
  778. END.
  779. PUT CONTROL '££Gesamttotal££££'
  780. STRING(GTotal[02],'->>>,>>9.99') '£'
  781. STRING(GTotal[03],'->>>,>>9.99') CHR(10)
  782. 'ENDE' CHR(10).
  783. FOR EACH THilfsTab:
  784. DELETE THilfsTab.
  785. END.
  786. CREATE THilfsTab.
  787. FOR EACH WHilfsTab BREAK BY WHilfsTab.Sort_1 :
  788. FIND FIRST THilfsTab.
  789. { v8/hilfstab.i "THilfsTab" "WHilfsTab" }
  790. RUN SORT01.
  791. PUT CONTROL '£'
  792. WHilfsTab.Sort_1 " " XSort1 '£££££'
  793. STRING(WHilfsTab.Wert[02],'->>>,>>9.99') '£'
  794. STRING(WHilfsTab.Wert[03],'->>>,>>9.99') CHR(10).
  795. END.
  796. PUT CONTROL '£' CHR(10)
  797. '££'
  798. 'Gesamttotal '
  799. '££££'
  800. STRING(GTotal[02],"->>>,>>9.99") '£'
  801. STRING(GTotal[03],"->>>,>>9.99") CHR(10)
  802. '£' CHR(10) '£' CHR(10).
  803. OUTPUT CLOSE.
  804. Zeile1 = 0.
  805. Zeile2 = 0.
  806. fEnde = FALSE.
  807. INPUT STREAM In_Stream FROM VALUE(cDatenDatei) NO-ECHO NO-MAP.
  808. REPEAT ON STOP UNDO, LEAVE WITH FRAME f_Print:
  809. IMPORT STREAM In_Stream UNFORMATTED Inhalt.
  810. IF NOT fEnde THEN Zeile1 = Zeile1 + 1.
  811. Zeile2 = Zeile2 + 1.
  812. IF Inhalt BEGINS 'ENDE' THEN fEnde = TRUE.
  813. END.
  814. INPUT STREAM In_Stream CLOSE.
  815. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL').
  816. RUN OPENEXCEL ( INPUT excelAppl,
  817. INPUT cExcelDatei,
  818. INPUT '',
  819. OUTPUT Ja ).
  820. IF NOT Ja THEN
  821. DO:
  822. MESSAGE 'Fehler beim Starten von Excel ! '
  823. VIEW-AS ALERT-BOX ERROR.
  824. RETURN NO-APPLY.
  825. END.
  826. Zelle = 'A1'.
  827. excelAppl:Range(Zelle):SELECT.
  828. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDatenDatei.
  829. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  830. RUN KOPF ( INPUT excelAppl ).
  831. Zelle = 'A' + STRING(Zeile1).
  832. excelAppl:Range(Zelle):SELECT.
  833. excelAppl:Selection:FormulaR1C1 = ''.
  834. excelAppl:ActiveWindow:SelectedSheets:HPageBreaks:Add(excelAppl:Selection) NO-ERROR.
  835. Zelle = 'A' + STRING(Zeile1) + ':F' + STRING(Zeile2).
  836. excelAppl:Range(Zelle):SELECT.
  837. excelAppl:Selection:HorizontalAlignment = -4131.
  838. /*
  839. ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
  840. excelAppl:Selection:FormulaR1C1 = ''.
  841. */
  842. Zelle = 'A1'.
  843. excelAppl:Range(Zelle):SELECT.
  844. excelAppl:Selection:ColumnWidth = 0.3.
  845. RELEASE OBJECT excelAppl.
  846. END PROCEDURE.
  847. /* _UIB-CODE-BLOCK-END */
  848. &ANALYZE-RESUME
  849. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_03 D-Dialog
  850. PROCEDURE AUSGABE_03 :
  851. /*------------------------------------------------------------------------------
  852. Purpose:
  853. Parameters: <none>
  854. Notes:
  855. ------------------------------------------------------------------------------*/
  856. DEFINE VARIABLE VLiter AS DECIMAL DECIMALS 4 NO-UNDO.
  857. DEFINE VARIABLE V100% AS DECIMAL DECIMALS 4 NO-UNDO.
  858. DEFINE VARIABLE cDatenDatei AS CHARACTER NO-UNDO.
  859. DEFINE VARIABLE cExcelDatei AS CHARACTER NO-UNDO.
  860. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  861. DEFINE VARIABLE LeerZeile AS LOG NO-UNDO.
  862. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO.
  863. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO.
  864. DEFINE VARIABLE fLeer AS LOG NO-UNDO.
  865. DEFINE VARIABLE xAdresse AS CHARACTER NO-UNDO.
  866. FOR EACH WHilfsTab:
  867. DELETE WHilfsTab.
  868. END.
  869. GTotal = 0.
  870. VDatum = F_VDatum.
  871. BDatum = F_BDatum.
  872. IF F_Detail THEN
  873. DO:
  874. RUN AUSGABE_13.
  875. RETURN.
  876. END.
  877. cDatenDatei = 'EAVVerkäufe.txt'.
  878. cExcelDatei = 'EAVVerkäufe.xls'.
  879. cDateiName = cExcelDatei + CHR(01) + cExcelDatei.
  880. RUN CREATEDATEI ( INPUT cDateiName ).
  881. cExcelDatei = RETURN-VALUE.
  882. IF cExcelDatei BEGINS 'ERROR' THEN
  883. DO:
  884. MESSAGE 'Fehler bei der Dateierzeugung ' cDateiName
  885. VIEW-AS ALERT-BOX ERROR.
  886. RETURN.
  887. END.
  888. cDateiName = cDatenDatei.
  889. RUN CREATEDATEI ( INPUT cDateiName ).
  890. cDatenDatei = RETURN-VALUE.
  891. IF cDatenDatei BEGINS 'ERROR' THEN
  892. DO:
  893. MESSAGE 'Fehler bei der Dateierzeugung ' cDateiName
  894. VIEW-AS ALERT-BOX ERROR.
  895. RETURN.
  896. END.
  897. OUTPUT TO VALUE(cDatenDatei).
  898. PUT CONTROL '£' CHR(10) '£' CHR(10)
  899. '££Datum££Faknr£Kunde£££Ausgang£Liter£Liter 100%' CHR(10)
  900. '£' CHR(10).
  901. FOR EACH THilfsTab NO-LOCK,
  902. FIRST BArtst WHERE RECID(BArtst) = THilfsTab.Zahl_1 NO-LOCK,
  903. EACH Artbw USE-INDEX Artbw-k2
  904. WHERE Artbw.Firma = BArtst.Firma
  905. AND Artbw.Artnr = BArtst.Artnr
  906. AND Artbw.Inhalt = BArtst.Inhalt
  907. AND Artbw.Jahr = BArtst.Jahr
  908. AND Artbw.Datum >= VDatum
  909. AND Artbw.Datum <= BDatum
  910. AND Artbw.Tr_Art < 9 NO-LOCK
  911. BREAK BY THilfsTab.Sort_1
  912. BY THilfsTab.Sort_2
  913. BY BArtst.Artnr
  914. BY BArtst.Inhalt
  915. BY BArtst.Jahr :
  916. FLeer = FALSE.
  917. IF FIRST-OF ( THilfsTab.Sort_1 ) THEN
  918. DO:
  919. RUN SORT01.
  920. IF XSort1 <> '' THEN PUT CONTROL '£' XSort1 CHR(10).
  921. END.
  922. IF FIRST-OF ( THilfsTab.Sort_2 ) THEN
  923. DO:
  924. RUN SORT02.
  925. IF XSort2 <> '' THEN PUT CONTROL '£' XSort2 CHR(10).
  926. END.
  927. IF FIRST-OF ( BArtst.Jahr ) THEN
  928. DO:
  929. FIND FIRST ArtBez OF BArtst NO-LOCK NO-ERROR.
  930. FIND KGebinde USE-INDEX KGebinde-k1
  931. WHERE KGebinde.Firma = BArtst.Firma
  932. AND KGebinde.Geb_Cd = BArtst.KGeb_Cd NO-LOCK NO-ERROR.
  933. PUT CONTROL '£'
  934. STRING(BArtst.Artnr ,'999999') '££'
  935. ArtBez.Bez1 '£££'.
  936. IF BArtst.Jahr > 10 THEN PUT CONTROL STRING(BArtst.Jahr,'9999').
  937. PUT CONTROL '£'
  938. STRING((KGebinde.Inhalt / 100),'zz9.99 l / ')
  939. STRING(BArtst.Alk_Gehalt,'zz9.99%') CHR(10).
  940. IF ArtBez.Bez2 <> '' THEN
  941. DO:
  942. PUT CONTROL '£££'
  943. ArtBez.Bez2 CHR(10).
  944. END.
  945. GTotal[01] = 0.
  946. GTotal[02] = 0.
  947. GTotal[03] = 0.
  948. VInhalt = KGebinde.Inhalt.
  949. END.
  950. xAdresse = ''.
  951. IF Artbw.Knr > 0 THEN
  952. DO:
  953. FIND Adresse USE-INDEX Adresse-k1
  954. WHERE Adresse.Firma = AdFirma
  955. AND Adresse.Knr = Artbw.Knr NO-LOCK NO-ERROR.
  956. END.
  957. ELSE RELEASE Adresse.
  958. IF AVAILABLE Adresse THEN xAdresse = Adresse.Anzeig_Br.
  959. ELSE
  960. DO:
  961. { v8/tabelfind.i GVFirma "'LAGKORR'" Artbw.Tr_Art "''" 0 }
  962. IF AVAILABLE Tabel THEN xAdresse = Tabel.Bez1.
  963. END.
  964. VLiter = Artbw.Menge * VInhalt / 100.
  965. V100% = VLiter * Artbw.Alk_Gehalt / 100.
  966. GTotal[01] = GTotal[01] + Artbw.Menge.
  967. GTotal[02] = GTotal[02] + VLiter.
  968. GTotal[03] = GTotal[03] + V100% .
  969. GTotal[06] = GTotal[06] + Artbw.Menge.
  970. GTotal[07] = GTotal[07] + VLiter.
  971. GTotal[08] = GTotal[08] + V100% .
  972. PUT CONTROL '££'
  973. STRING(Artbw.Datum ,"99.99.9999") '££'.
  974. IF Artbw.Faknr > 0
  975. THEN PUT CONTROL STRING(Artbw.Faknr ,"9999999").
  976. ELSE PUT CONTROL STRING(Artbw.Aufnr ,"9999999").
  977. PUT CONTROL '£'
  978. xAdresse '£££'
  979. STRING(Artbw.Menge ,'->>>,>>9.99') '£'
  980. STRING(VLiter ,'->>>,>>9.99') '£'
  981. STRING(V100% ,'->>>,>>9.99') CHR(10).
  982. IF THilfsTab.Sort_2 <> '' THEN
  983. DO:
  984. FIND FIRST WHilfsTab WHERE WHilfsTab.Firma = GVFirma
  985. AND WHilfsTab.Sort_1 = THilfsTab.Sort_1
  986. AND WHilfsTab.Sort_2 = THilfsTab.Sort_2
  987. AND WHilfsTab.Sort_3 = ''
  988. AND WHilfsTab.Sort_4 = '' NO-ERROR.
  989. IF NOT AVAILABLE WHilfsTab THEN
  990. DO:
  991. CREATE WHilfsTab.
  992. ASSIGN
  993. WHilfsTab.Firma = GVFirma
  994. WHilfsTab.Sort_1 = THilfsTab.Sort_1
  995. WHilfsTab.Sort_2 = THilfsTab.Sort_2
  996. WHilfsTab.Sort_3 = ''
  997. WHilfsTab.Sort_4 = ''.
  998. END.
  999. ASSIGN
  1000. WHilfsTab.Wert[01] = WHilfsTab.Wert[01] + Artbw.Menge
  1001. WHilfsTab.Wert[02] = WHilfsTab.Wert[02] + VLiter
  1002. WHilfsTab.Wert[03] = WHilfsTab.Wert[03] + V100% .
  1003. END.
  1004. IF THilfsTab.Sort_1 <> '' THEN
  1005. DO:
  1006. FIND FIRST WHilfsTab WHERE WHilfsTab.Firma = GVFirma
  1007. AND WHilfsTab.Sort_1 = THilfsTab.Sort_1
  1008. AND WHilfsTab.Sort_2 = ''
  1009. AND WHilfsTab.Sort_3 = ''
  1010. AND WHilfsTab.Sort_4 = '' NO-ERROR.
  1011. IF NOT AVAILABLE WHilfsTab THEN
  1012. DO:
  1013. CREATE WHilfsTab.
  1014. ASSIGN
  1015. WHilfsTab.Firma = GVFirma
  1016. WHilfsTab.Sort_1 = THilfsTab.Sort_1
  1017. WHilfsTab.Sort_2 = ''
  1018. WHilfsTab.Sort_3 = ''
  1019. WHilfsTab.Sort_4 = ''.
  1020. END.
  1021. ASSIGN
  1022. WHilfsTab.Wert[01] = WHilfsTab.Wert[01] + Artbw.Menge
  1023. WHilfsTab.Wert[02] = WHilfsTab.Wert[02] + VLiter
  1024. WHilfsTab.Wert[03] = WHilfsTab.Wert[03] + V100% .
  1025. END.
  1026. IF NOT LAST-OF ( BArtst.Jahr ) THEN NEXT.
  1027. FIND FIRST ArtBez OF BArtst NO-LOCK NO-ERROR.
  1028. PUT CONTROL '£Total '
  1029. STRING(BArtst.Artnr ,'999999 ')
  1030. ArtBez.Bez1 '£££££££'
  1031. STRING(GTotal[01] ,'->>>,>>9.99') '£'
  1032. STRING(GTotal[02] ,'->>>,>>9.99') '£'
  1033. STRING(GTotal[03] ,'->>>,>>9.99') CHR(10).
  1034. FLeer = FALSE.
  1035. DO WHILE XSort2 <> '' :
  1036. IF NOT LAST-OF ( THilfsTab.Sort_2 ) THEN LEAVE.
  1037. FIND FIRST WHilfsTab WHERE WHilfsTab.Firma = GVFirma
  1038. AND WHilfsTab.Sort_1 = THilfsTab.Sort_1
  1039. AND WHilfsTab.Sort_2 = THilfsTab.Sort_2
  1040. AND WHilfsTab.Sort_3 = ''
  1041. AND WHilfsTab.Sort_4 = '' NO-ERROR.
  1042. XSort2 = 'Total ' + XSort2.
  1043. PUT CONTROL '£'
  1044. XSort2 '££££££££'
  1045. STRING(WHilfsTab.Wert[02],"->>,>>>,>>9.99") '£'
  1046. STRING(WHilfsTab.Wert[03],"->>,>>>,>>9.99") CHR(10).
  1047. FLeer = TRUE.
  1048. LEAVE.
  1049. END.
  1050. DO WHILE XSort1 <> '' :
  1051. IF NOT LAST-OF ( THilfsTab.Sort_1 ) THEN LEAVE.
  1052. FIND FIRST WHilfsTab WHERE WHilfsTab.Firma = GVFirma
  1053. AND WHilfsTab.Sort_1 = THilfsTab.Sort_1
  1054. AND WHilfsTab.Sort_2 = ''
  1055. AND WHilfsTab.Sort_3 = ''
  1056. AND WHilfsTab.Sort_4 = '' NO-ERROR.
  1057. XSort1 = 'Total ' + XSort1.
  1058. PUT CONTROL '£'
  1059. XSort1 '££££££££'
  1060. STRING(WHilfsTab.Wert[02],"->>,>>>,>>9.99") '£'
  1061. STRING(WHilfsTab.Wert[03],"->>,>>>,>>9.99") CHR(10).
  1062. fLeer = TRUE.
  1063. LEAVE.
  1064. END.
  1065. PUT CONTROL '£' CHR(10).
  1066. END.
  1067. PUT CONTROL '£' CHR(10) '£££'
  1068. 'Gesamtverkäufe ' '££££££'
  1069. STRING(GTotal[07],'->>,>>>,>>9.99') '£'
  1070. STRING(GTotal[08],'->>,>>>,>>9.99') CHR(10).
  1071. OUTPUT CLOSE.
  1072. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL').
  1073. RUN OPENEXCEL ( INPUT excelAppl,
  1074. INPUT cExcelDatei,
  1075. INPUT '',
  1076. OUTPUT Ja ).
  1077. IF NOT Ja THEN
  1078. DO:
  1079. MESSAGE 'Fehler beim Starten von Excel ! '
  1080. VIEW-AS ALERT-BOX ERROR.
  1081. RETURN NO-APPLY.
  1082. END.
  1083. Zelle = 'A1'.
  1084. excelAppl:Range(Zelle):SELECT.
  1085. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDatenDatei.
  1086. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  1087. RUN KOPF ( INPUT excelAppl ).
  1088. Zelle = 'A1'.
  1089. excelAppl:Range(Zelle):SELECT.
  1090. excelAppl:Selection:ColumnWidth = 0.3.
  1091. RELEASE OBJECT excelAppl.
  1092. END PROCEDURE.
  1093. /* _UIB-CODE-BLOCK-END */
  1094. &ANALYZE-RESUME
  1095. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_04 D-Dialog
  1096. PROCEDURE AUSGABE_04 :
  1097. /*------------------------------------------------------------------------------
  1098. Purpose:
  1099. Parameters: <none>
  1100. Notes:
  1101. ------------------------------------------------------------------------------*/
  1102. DEFINE VARIABLE VLiter AS DECIMAL DECIMALS 4 NO-UNDO.
  1103. DEFINE VARIABLE V100% AS DECIMAL DECIMALS 4 NO-UNDO.
  1104. DEFINE VARIABLE DruDat AS DATE FORMAT "99.99.9999" NO-UNDO.
  1105. DEFINE VARIABLE XAdresse AS CHARACTER FORMAT "x(50)" NO-UNDO.
  1106. DEFINE VARIABLE aArtnr AS INTEGER NO-UNDO.
  1107. DEFINE VARIABLE aInhalt AS INTEGER NO-UNDO.
  1108. DEFINE VARIABLE aJahr AS INTEGER NO-UNDO.
  1109. DEFINE VARIABLE FEingang AS LOG NO-UNDO.
  1110. DEFINE VARIABLE VMenge AS DECIMAL DECIMALS 4 NO-UNDO.
  1111. DEFINE VARIABLE cDatenDatei AS CHARACTER NO-UNDO.
  1112. DEFINE VARIABLE cDatenDatei01 AS CHARACTER NO-UNDO.
  1113. DEFINE VARIABLE cExcelDatei AS CHARACTER NO-UNDO.
  1114. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  1115. DEFINE VARIABLE LeerZeile AS LOG NO-UNDO.
  1116. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO.
  1117. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO.
  1118. DEFINE VARIABLE Inhalt AS CHARACTER NO-UNDO.
  1119. DEFINE VARIABLE Zeile1 AS INTEGER NO-UNDO.
  1120. DEFINE VARIABLE Zeile2 AS INTEGER NO-UNDO.
  1121. DEFINE VARIABLE FLeer AS LOG NO-UNDO.
  1122. DEFINE VARIABLE dDatum AS DATE NO-UNDO.
  1123. DEFINE VARIABLE cMonat AS CHARACTER INIT
  1124. 'Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember'.
  1125. FOR EACH WHilfsTab:
  1126. DELETE WHilfsTab.
  1127. END.
  1128. GTotal = 0.
  1129. VDatum = F_VDatum.
  1130. BDatum = F_BDatum.
  1131. cDatenDatei = 'EAVBuchhaltung.txt'.
  1132. cDatenDatei01 = 'EAVBuchhaltung01.txt'.
  1133. cExcelDatei = 'EAVBuchhaltung.xls'.
  1134. cDateiName = cExcelDatei + CHR(01) + cExcelDatei.
  1135. RUN CREATEDATEI ( INPUT cDateiName ).
  1136. cExcelDatei = RETURN-VALUE.
  1137. IF cExcelDatei BEGINS 'ERROR' THEN
  1138. DO:
  1139. MESSAGE 'Fehler bei der Dateierzeugung ' cDateiName
  1140. VIEW-AS ALERT-BOX ERROR.
  1141. RETURN.
  1142. END.
  1143. cDateiName = cDatenDatei.
  1144. RUN CREATEDATEI ( INPUT cDateiName ).
  1145. cDatenDatei = RETURN-VALUE.
  1146. IF cDatenDatei BEGINS 'ERROR' THEN
  1147. DO:
  1148. MESSAGE 'Fehler bei der Dateierzeugung ' cDateiName
  1149. VIEW-AS ALERT-BOX ERROR.
  1150. RETURN.
  1151. END.
  1152. cDateiName = cDatenDatei01.
  1153. RUN CREATEDATEI ( INPUT cDateiName ).
  1154. cDatenDatei01 = RETURN-VALUE.
  1155. IF cDatenDatei BEGINS 'ERROR' THEN
  1156. DO:
  1157. MESSAGE 'Fehler bei der Dateierzeugung ' cDateiName
  1158. VIEW-AS ALERT-BOX ERROR.
  1159. RETURN.
  1160. END.
  1161. OUTPUT TO VALUE(cDatenDatei).
  1162. FOR EACH THilfsTab NO-LOCK:
  1163. FIND BArtst WHERE RECID(BArtst) = THilfsTab.Zahl_1 NO-LOCK NO-ERROR.
  1164. FOR EACH Artbw USE-INDEX Artbw-k2
  1165. WHERE Artbw.Firma = BArtst.Firma
  1166. AND Artbw.Artnr = BArtst.Artnr
  1167. AND Artbw.Inhalt = BArtst.Inhalt
  1168. AND Artbw.Jahr = BArtst.Jahr
  1169. AND Artbw.Datum >= VDatum
  1170. AND Artbw.Datum <= BDatum
  1171. AND Artbw.Tr_Art < 21 NO-LOCK :
  1172. IF Artbw.Tr_Art > 8 THEN
  1173. DO:
  1174. CREATE TArtbw.
  1175. BUFFER-COPY Artbw TO TArtbw.
  1176. NEXT.
  1177. END.
  1178. dDatum = DATE(MONTH(Artbw.Datum),01,YEAR(Artbw.Datum)).
  1179. FIND FIRST TArtbw USE-INDEX Artbw-k2
  1180. WHERE TArtbw.Firma = Artbw.Firma
  1181. AND TArtbw.Artnr = Artbw.Artnr
  1182. AND TArtbw.Inhalt = Artbw.Inhalt
  1183. AND TArtbw.Jahr = Artbw.Jahr
  1184. AND TArtbw.Datum = dDatum
  1185. AND TArtbw.Tr_Art = 1 NO-ERROR.
  1186. IF NOT AVAILABLE TArtbw THEN
  1187. DO:
  1188. CREATE TArtbw.
  1189. BUFFER-COPY Artbw EXCEPT Tr_Art TO TArtbw
  1190. ASSIGN
  1191. TArtbw.Datum = dDatum
  1192. TArtbw.Tr_Art = 1.
  1193. NEXT.
  1194. END.
  1195. TArtbw.Menge = TArtbw.Menge + Artbw.Menge.
  1196. END.
  1197. END.
  1198. FOR EACH THilfsTab NO-LOCK,
  1199. FIRST BArtst WHERE RECID(BArtst) = THilfsTab.Zahl_1 NO-LOCK,
  1200. EACH TArtbw OF BArtst NO-LOCK
  1201. BREAK BY THilfsTab.Sort_1
  1202. BY THilfsTab.Sort_2
  1203. BY BArtst.Artnr
  1204. BY BArtst.Inhalt
  1205. BY BArtst.Jahr
  1206. BY TArtbw.Datum :
  1207. FLeer = FALSE.
  1208. DruDat = TArtbw.Datum.
  1209. IF DruDat < F_VDatum THEN DruDat = F_VDatum.
  1210. IF DruDat > F_BDatum THEN DruDat = F_BDatum.
  1211. IF FIRST-OF ( THilfsTab.Sort_1 ) THEN
  1212. DO:
  1213. RUN SORT01.
  1214. IF XSort1 <> '' THEN PUT CONTROL '£' XSort1 CHR(10).
  1215. END.
  1216. IF FIRST-OF ( THilfsTab.Sort_2 ) THEN
  1217. DO:
  1218. RUN SORT02.
  1219. IF XSort2 <> '' THEN PUT CONTROL '£' XSort2 CHR(10).
  1220. END.
  1221. FIND FIRST WHilfsTab WHERE WHilfsTab.Sort_1 = THilfsTab.Sort_1 NO-ERROR.
  1222. IF NOT AVAILABLE WHilfsTab THEN
  1223. DO:
  1224. CREATE WHilfsTab.
  1225. ASSIGN
  1226. WHilfsTab.Sort_1 = THilfsTab.Sort_1
  1227. WHilfsTab.Zeichen_1 = XSort1.
  1228. END.
  1229. IF FIRST-OF ( BArtst.Jahr ) THEN
  1230. DO:
  1231. FIND FIRST ArtBez OF BArtst NO-LOCK NO-ERROR.
  1232. FIND KGebinde USE-INDEX KGebinde-k1
  1233. WHERE KGebinde.Firma = BArtst.Firma
  1234. AND KGebinde.Geb_Cd = BArtst.KGeb_Cd NO-LOCK NO-ERROR.
  1235. PUT CONTROL '£'
  1236. STRING(BArtst.Artnr ,'999999') '££'
  1237. ArtBez.Bez1 '£££'.
  1238. IF BArtst.Jahr > 10 THEN PUT CONTROL STRING(BArtst.Jahr,'9999').
  1239. PUT CONTROL '£'
  1240. STRING((KGebinde.Inhalt / 100),'zz9.99 l / ')
  1241. STRING(BArtst.Alk_Gehalt,'>>9.99%') CHR(10).
  1242. IF ArtBez.Bez2 <> '' THEN
  1243. DO:
  1244. PUT CONTROL '£££'
  1245. ArtBez.Bez2 CHR(10).
  1246. END.
  1247. VInhalt = KGebinde.Inhalt.
  1248. GTotal = 0.
  1249. IF THilfsTab.Wert[02] <> ? THEN
  1250. DO:
  1251. VMenge = THilfsTab.Wert[02].
  1252. VLiter = VMenge * VInhalt / 100.
  1253. V100% = VLiter * BArtst.Alk_Gehalt / 100.
  1254. PUT CONTROL '££'
  1255. STRING(F_VDatum ,'99.99.9999') '£££'
  1256. 'Inventarbestand' '£££'
  1257. STRING(VMenge ,'->>>,>>9') '£'
  1258. STRING(VLiter ,'->>>,>>9.99') '£'
  1259. STRING(V100% ,'->>>,>>9.99') CHR(10).
  1260. GTotal[01] = VMenge.
  1261. GTotal[02] = VLiter.
  1262. GTotal[03] = V100%.
  1263. WHilfsTab.Wert[01] = VLiter.
  1264. WHilfsTab.Wert[02] = V100%.
  1265. END.
  1266. END.
  1267. XAdresse = ''.
  1268. IF TArtbw.Tr_Art < 9 THEN
  1269. DO:
  1270. XAdresse = 'Verkäufe '
  1271. + ENTRY(MONTH(TArtbw.Datum), cMonat, ',')
  1272. + STRING(YEAR(TArtbw.Datum),' 9999').
  1273. END.
  1274. ELSE
  1275. DO:
  1276. IF TArtbw.Knr > 0 THEN
  1277. DO:
  1278. FIND Adresse USE-INDEX Adresse-k1
  1279. WHERE Adresse.Firma = AdFirma
  1280. AND Adresse.Knr = TArtbw.Knr NO-LOCK NO-ERROR.
  1281. END.
  1282. ELSE RELEASE Adresse.
  1283. IF AVAILABLE Adresse THEN XAdresse = Adresse.Anzeig_Br.
  1284. ELSE
  1285. DO:
  1286. { v8/tabelfind.i GVFirma "'LAGKORR'" TArtbw.Tr_Art "''" 0 }
  1287. IF AVAILABLE Tabel THEN XAdresse = Tabel.Bez1.
  1288. END.
  1289. END.
  1290. FEingang = FALSE.
  1291. VMenge = TArtbw.Menge.
  1292. IF TArtbw.Tr_Art > 10 THEN FEingang = TRUE.
  1293. IF TArtbw.Tr_Art = 9 AND
  1294. TArtbw.Bez2 BEGINS "A;" THEN
  1295. DO:
  1296. FEingang = TRUE.
  1297. VMenge = VMenge * -1.
  1298. END.
  1299. VLiter = VMenge * VInhalt / 100.
  1300. V100% = VLiter * BArtst.Alk_Gehalt / 100.
  1301. IF FEingang THEN
  1302. DO:
  1303. GTotal[01] = GTotal[01] + VMenge.
  1304. GTotal[02] = GTotal[02] + VLiter.
  1305. GTotal[03] = GTotal[03] + V100% .
  1306. WHilfsTab.Wert[03] = WHilfsTab.Wert[03] + VLiter.
  1307. WHilfsTab.Wert[04] = WHilfsTab.Wert[04] + V100% .
  1308. END.
  1309. ELSE
  1310. DO:
  1311. GTotal[06] = GTotal[06] + VMenge.
  1312. GTotal[07] = GTotal[07] + VLiter.
  1313. GTotal[08] = GTotal[08] + V100% .
  1314. WHilfsTab.Wert[05] = WHilfsTab.Wert[05] + VLiter.
  1315. WHilfsTab.Wert[06] = WHilfsTab.Wert[06] + V100% .
  1316. END.
  1317. PUT CONTROL '££'.
  1318. IF TArtbw.Tr_Art < 9 THEN PUT CONTROL SUBSTRING(STRING(DruDat,'99.99.9999'),04).
  1319. ELSE PUT CONTROL STRING(DruDat,'99.99.9999').
  1320. PUT CONTROL '££'.
  1321. DO WHILE TRUE:
  1322. IF TArtbw.Tr_Art = 9 THEN
  1323. DO:
  1324. IF NUM-ENTRIES(TArtbw.Bez2, ';') < 5 THEN
  1325. DO:
  1326. PUT CONTROL '£'.
  1327. LEAVE.
  1328. END.
  1329. PUT CONTROL ENTRY(5, TArtbw.Bez2, ';') '£'.
  1330. LEAVE.
  1331. END.
  1332. IF TArtbw.Faknr > 0 THEN
  1333. DO:
  1334. PUT CONTROL STRING(TArtbw.Faknr ,'999999') '£'.
  1335. LEAVE.
  1336. END.
  1337. PUT CONTROL STRING(TArtbw.Aufnr ,'999999') '£'.
  1338. LEAVE.
  1339. END.
  1340. PUT CONTROL XAdresse '£££'.
  1341. IF FEingang THEN
  1342. PUT CONTROL STRING(VMenge,'->>>,>>9') '£'
  1343. STRING(VLiter,'->>>,>>9.99') '£'
  1344. STRING(V100% ,'->>>,>>9.99') CHR(10).
  1345. ELSE PUT CONTROL '£££'
  1346. STRING(VMenge,'->>>,>>9') '£'
  1347. STRING(VLiter,'->>>,>>9.99') '£'
  1348. STRING(V100% ,'->>>,>>9.99') CHR(10).
  1349. DO WHILE TRUE:
  1350. IF TArtbw.Tr_Art <> 9 THEN LEAVE.
  1351. aArtnr = INTEGER(ENTRY(2, TArtbw.Bez2, ';')).
  1352. aInhalt = INTEGER(ENTRY(3, TArtbw.Bez2, ';')).
  1353. aJahr = INTEGER(ENTRY(4, TArtbw.Bez2, ';')).
  1354. FIND Artst USE-INDEX Artst-k1
  1355. WHERE Artst.Firma = GVFirma
  1356. AND Artst.Artnr = aArtnr
  1357. AND Artst.Inhalt = aInhalt
  1358. AND Artst.Jahr = aJahr NO-LOCK NO-ERROR.
  1359. IF NOT AVAILABLE Artst THEN LEAVE.
  1360. PUT CONTROL '£££££'
  1361. STRING(aArtnr ,"999999/")
  1362. STRING(aInhalt,"9999/")
  1363. STRING(aJahr ,"9999 ")
  1364. Artst.Bez CHR(10).
  1365. LEAVE.
  1366. END.
  1367. DO WHILE TRUE:
  1368. IF TArtbw.Tr_Art <> 9 THEN LEAVE.
  1369. IF NUM-ENTRIES(TArtbw.Bez2, ';') < 6 THEN LEAVE.
  1370. PUT CONTROL '£££££'
  1371. ENTRY(6, TArtbw.Bez2, ';') CHR(10).
  1372. LEAVE.
  1373. END.
  1374. DO WHILE TRUE:
  1375. IF TArtbw.Tr_Art < 12 THEN LEAVE.
  1376. IF TArtbw.Bez2 = '' THEN LEAVE.
  1377. PUT CONTROL '£££££'
  1378. TArtbw.Bez2 CHR(10).
  1379. LEAVE.
  1380. END.
  1381. IF NOT LAST-OF ( BArtst.Jahr ) THEN NEXT.
  1382. DO WHILE TRUE:
  1383. IF THilfsTab.Wert[03] = ? THEN LEAVE.
  1384. VMenge = THilfsTab.Wert[03].
  1385. VLiter = VMenge * VInhalt / 100.
  1386. V100% = VLiter * BArtst.Alk_Gehalt / 100.
  1387. WHilfsTab.Wert[09] = WHilfsTab.Wert[09] + VLiter.
  1388. WHilfsTab.Wert[10] = WHilfsTab.Wert[10] + V100% .
  1389. VMenge = GTotal[01] - GTotal[06].
  1390. IF VMenge = THilfsTab.Wert[03] THEN LEAVE.
  1391. VMenge = THilfsTab.Wert[03] - VMenge.
  1392. VLiter = VMenge * VInhalt / 100.
  1393. V100% = VLiter * BArtst.Alk_Gehalt / 100.
  1394. PUT CONTROL '££'
  1395. STRING(F_BDatum,"99.99.9999") '£££'
  1396. 'Lagerdifferenz' '£££'.
  1397. IF VMenge > 0 THEN
  1398. DO:
  1399. PUT CONTROL STRING(VMenge ,'->>>,>>9') '£'
  1400. STRING(VLiter ,'->>>,>>9.99') '£'
  1401. STRING(V100% ,'->>>,>>9.99') CHR(10).
  1402. GTotal[01] = GTotal[01] + VMenge.
  1403. GTotal[02] = GTotal[02] + VLiter.
  1404. GTotal[03] = GTotal[03] + V100% .
  1405. WHilfsTab.Wert[07] = WHilfsTab.Wert[03] + VLiter.
  1406. WHilfsTab.Wert[08] = WHilfsTab.Wert[04] + V100% .
  1407. END.
  1408. ELSE
  1409. DO:
  1410. PUT CONTROL '£££'
  1411. STRING(VMenge ,'->>>,>>9') '£'
  1412. STRING(VLiter ,'->>>,>>9.99') '£'
  1413. STRING(V100% ,'->>>,>>9.99') CHR(10).
  1414. GTotal[06] = GTotal[06] + VMenge.
  1415. GTotal[07] = GTotal[07] + VLiter.
  1416. GTotal[08] = GTotal[08] + V100% .
  1417. WHilfsTab.Wert[07] = WHilfsTab.Wert[03] - VLiter.
  1418. WHilfsTab.Wert[08] = WHilfsTab.Wert[04] - V100% .
  1419. END.
  1420. LEAVE.
  1421. END.
  1422. PUT CONTROL '££'
  1423. '£££'
  1424. 'Total Artikel' '£££'
  1425. STRING(GTotal[01] ,'->>>,>>9') '£'
  1426. STRING(GTotal[02] ,'->>>,>>9.99') '£'
  1427. STRING(GTotal[03] ,'->>>,>>9.99') '£'
  1428. STRING(GTotal[06] ,'->>>,>>9') '£'
  1429. STRING(GTotal[07] ,'->>>,>>9.99') '£'
  1430. STRING(GTotal[08] ,'->>>,>>9.99') CHR(10).
  1431. IF THilfsTab.Wert[03] = ? THEN VMenge = 0.
  1432. ELSE VMenge = THilfsTab.Wert[03].
  1433. VLiter = VMenge * VInhalt / 100.
  1434. V100% = VLiter * BArtst.Alk_Gehalt / 100.
  1435. PUT CONTROL '£££££'
  1436. 'Lagerbestand am '
  1437. STRING(F_BDatum,'99.99.9999')
  1438. '£££'
  1439. STRING(VMenge,'->>>,>>9') '£'
  1440. STRING(VLiter,'->>>,>>9.99') '£'
  1441. STRING(V100% ,'->>>,>>9.99') CHR(10).
  1442. PUT CONTROL CHR(10).
  1443. END.
  1444. OUTPUT CLOSE.
  1445. OUTPUT TO VALUE(cDatenDatei01).
  1446. FOR EACH WHilfsTab BY WHilfsTab.Sort_1:
  1447. PUT CONTROL WHilfsTab.Zeichen_1 '£'
  1448. STRING(WHilfsTab.Wert[01],'->>>>,>>9.99') '£'
  1449. STRING(WHilfsTab.Wert[02],'->>>>,>>9.99') '£'
  1450. STRING(WHilfsTab.Wert[03],'->>>>,>>9.99') '£'
  1451. STRING(WHilfsTab.Wert[04],'->>>>,>>9.99') '£'
  1452. STRING(WHilfsTab.Wert[05],'->>>>,>>9.99') '£'
  1453. STRING(WHilfsTab.Wert[06],'->>>>,>>9.99') '£'
  1454. STRING(WHilfsTab.Wert[07],'->>>>,>>9.99') '£'
  1455. STRING(WHilfsTab.Wert[08],'->>>>,>>9.99') '£'
  1456. STRING(WHilfsTab.Wert[09],'->>>>,>>9.99') '£'
  1457. STRING(WHilfsTab.Wert[10],'->>>>,>>9.99') CHR(10).
  1458. END.
  1459. OUTPUT CLOSE.
  1460. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL').
  1461. RUN OPENEXCEL ( INPUT excelAppl,
  1462. INPUT cExcelDatei,
  1463. INPUT '',
  1464. OUTPUT Ja ).
  1465. IF NOT Ja THEN
  1466. DO:
  1467. MESSAGE 'Fehler beim Starten von Excel ! '
  1468. VIEW-AS ALERT-BOX ERROR.
  1469. RETURN NO-APPLY.
  1470. END.
  1471. excelAppl:Sheets("Buchhaltung"):Select.
  1472. Zelle = 'A6'.
  1473. excelAppl:Range(Zelle):SELECT.
  1474. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDatenDatei.
  1475. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  1476. VLiArt = 04.
  1477. RUN KOPF ( INPUT excelAppl ).
  1478. Zelle = 'A1'.
  1479. excelAppl:Range(Zelle):SELECT.
  1480. excelAppl:Selection:ColumnWidth = 0.3.
  1481. excelAppl:Sheets("Zusammenfassung"):Select.
  1482. Zelle = 'A6'.
  1483. excelAppl:Range(Zelle):SELECT.
  1484. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDatenDatei01.
  1485. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  1486. VLiArt = 14.
  1487. RUN KOPF ( INPUT excelAppl ).
  1488. RELEASE OBJECT excelAppl.
  1489. END PROCEDURE.
  1490. /* _UIB-CODE-BLOCK-END */
  1491. &ANALYZE-RESUME
  1492. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_13 D-Dialog
  1493. PROCEDURE AUSGABE_13 :
  1494. /*------------------------------------------------------------------------------
  1495. Purpose:
  1496. Parameters: <none>
  1497. Notes:
  1498. ------------------------------------------------------------------------------*/
  1499. DEFINE VARIABLE VLiter AS DECIMAL DECIMALS 4 NO-UNDO.
  1500. DEFINE VARIABLE V100% AS DECIMAL DECIMALS 4 NO-UNDO.
  1501. DEFINE VARIABLE cDatenDatei AS CHARACTER NO-UNDO.
  1502. DEFINE VARIABLE cExcelDatei AS CHARACTER NO-UNDO.
  1503. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  1504. DEFINE VARIABLE LeerZeile AS LOG NO-UNDO.
  1505. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO.
  1506. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO.
  1507. DEFINE VARIABLE FLeer AS LOG NO-UNDO.
  1508. DEFINE VARIABLE xAdresse AS CHARACTER NO-UNDO.
  1509. DEFINE VARIABLE dDatum AS DATE NO-UNDO.
  1510. DEFINE VARIABLE cMonat AS CHARACTER INIT
  1511. 'Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember'.
  1512. FOR EACH TArtbw.
  1513. DELETE TArtbw.
  1514. END.
  1515. cDatenDatei = 'EAVVerkäufeTotal.txt'.
  1516. cExcelDatei = 'EAVVerkäufeTotal.xls'.
  1517. cDateiName = cExcelDatei + CHR(01) + cExcelDatei.
  1518. RUN CREATEDATEI ( INPUT cDateiName ).
  1519. cExcelDatei = RETURN-VALUE.
  1520. IF cExcelDatei BEGINS 'ERROR' THEN
  1521. DO:
  1522. MESSAGE 'Fehler bei der Dateierzeugung ' cDateiName
  1523. VIEW-AS ALERT-BOX ERROR.
  1524. RETURN.
  1525. END.
  1526. cDateiName = cDatenDatei.
  1527. RUN CREATEDATEI ( INPUT cDateiName ).
  1528. cDatenDatei = RETURN-VALUE.
  1529. IF cDatenDatei BEGINS 'ERROR' THEN
  1530. DO:
  1531. MESSAGE 'Fehler bei der Dateierzeugung ' cDateiName
  1532. VIEW-AS ALERT-BOX ERROR.
  1533. RETURN.
  1534. END.
  1535. OUTPUT TO VALUE(cDatenDatei).
  1536. PUT CONTROL CHR(10) CHR(10)
  1537. '££Monat££Text££££Menge£Liter£Liter 100%' CHR(10)
  1538. CHR(10).
  1539. FOR EACH THilfsTab NO-LOCK:
  1540. FIND BArtst WHERE RECID(BArtst) = THilfsTab.Zahl_1 NO-LOCK NO-ERROR.
  1541. FOR EACH Artbw USE-INDEX Artbw-k2
  1542. WHERE Artbw.Firma = BArtst.Firma
  1543. AND Artbw.Artnr = BArtst.Artnr
  1544. AND Artbw.Inhalt = BArtst.Inhalt
  1545. AND Artbw.Jahr = BArtst.Jahr
  1546. AND Artbw.Datum >= VDatum
  1547. AND Artbw.Datum <= BDatum
  1548. AND Artbw.Tr_Art < 9 NO-LOCK :
  1549. dDatum = DATE(MONTH(Artbw.Datum),01,YEAR(Artbw.Datum)).
  1550. FIND FIRST TArtbw USE-INDEX Artbw-k2
  1551. WHERE TArtbw.Firma = Artbw.Firma
  1552. AND TArtbw.Artnr = Artbw.Artnr
  1553. AND TArtbw.Inhalt = Artbw.Inhalt
  1554. AND TArtbw.Jahr = Artbw.Jahr
  1555. AND TArtbw.Datum = dDatum NO-ERROR.
  1556. IF NOT AVAILABLE TArtbw THEN
  1557. DO:
  1558. CREATE TArtbw.
  1559. BUFFER-COPY Artbw TO TArtbw
  1560. ASSIGN
  1561. TArtbw.Datum = dDatum.
  1562. NEXT.
  1563. END.
  1564. TArtbw.Menge = TArtbw.Menge + Artbw.Menge.
  1565. END.
  1566. END.
  1567. FOR EACH THilfsTab NO-LOCK,
  1568. FIRST BArtst WHERE RECID(BArtst) = THilfsTab.Zahl_1 NO-LOCK,
  1569. EACH TArtbw OF BArtst NO-LOCK
  1570. BREAK BY THilfsTab.Sort_1
  1571. BY THilfsTab.Sort_2
  1572. BY BArtst.Artnr
  1573. BY BArtst.Inhalt
  1574. BY BArtst.Jahr
  1575. BY TArtbw.Datum :
  1576. FLeer = FALSE.
  1577. IF FIRST-OF ( THilfsTab.Sort_1 ) THEN
  1578. DO:
  1579. RUN SORT01.
  1580. IF XSort1 <> '' THEN PUT CONTROL '£' XSort1 CHR(10).
  1581. END.
  1582. IF FIRST-OF ( THilfsTab.Sort_2 ) THEN
  1583. DO:
  1584. RUN SORT02.
  1585. IF XSort2 <> '' THEN PUT CONTROL '£' XSort2 CHR(10).
  1586. END.
  1587. IF FIRST-OF ( BArtst.Jahr ) THEN
  1588. DO:
  1589. FIND FIRST ArtBez OF BArtst NO-LOCK NO-ERROR.
  1590. FIND KGebinde USE-INDEX KGebinde-k1
  1591. WHERE KGebinde.Firma = BArtst.Firma
  1592. AND KGebinde.Geb_Cd = BArtst.KGeb_Cd NO-LOCK NO-ERROR.
  1593. PUT CONTROL '£'
  1594. STRING(BArtst.Artnr ,'999999') '££'
  1595. ArtBez.Bez1 '£££'.
  1596. IF BArtst.Jahr > 10 THEN PUT CONTROL STRING(BArtst.Jahr,'9999').
  1597. PUT CONTROL '£'
  1598. STRING((KGebinde.Inhalt / 100),'zz9.99 l / ')
  1599. STRING(BArtst.Alk_Gehalt,'zz9.99%') CHR(10).
  1600. IF ArtBez.Bez2 <> '' THEN
  1601. DO:
  1602. PUT CONTROL '£££'
  1603. ArtBez.Bez2 CHR(10).
  1604. END.
  1605. GTotal[01] = 0.
  1606. GTotal[02] = 0.
  1607. GTotal[03] = 0.
  1608. VInhalt = KGebinde.Inhalt.
  1609. END.
  1610. xAdresse = 'Total Verkäufe '
  1611. + ENTRY(MONTH(TArtbw.Datum), cMonat, ',')
  1612. + STRING(YEAR(TArtbw.Datum),' 9999').
  1613. VLiter = TArtbw.Menge * VInhalt / 100.
  1614. V100% = VLiter * TArtbw.Alk_Gehalt / 100.
  1615. GTotal[01] = GTotal[01] + TArtbw.Menge.
  1616. GTotal[02] = GTotal[02] + VLiter.
  1617. GTotal[03] = GTotal[03] + V100% .
  1618. GTotal[06] = GTotal[06] + TArtbw.Menge.
  1619. GTotal[07] = GTotal[07] + VLiter.
  1620. GTotal[08] = GTotal[08] + V100% .
  1621. PUT CONTROL '££'
  1622. SUBSTRING(STRING(TArtbw.Datum,"99.99.9999"),04) '££'
  1623. xAdresse '££££'
  1624. STRING(TArtbw.Menge ,'->>>,>>9.99') '£'
  1625. STRING(VLiter ,'->>>,>>9.99') '£'
  1626. STRING(V100% ,'->>>,>>9.99') CHR(10).
  1627. IF THilfsTab.Sort_2 <> '' THEN
  1628. DO:
  1629. FIND FIRST WHilfsTab WHERE WHilfsTab.Firma = GVFirma
  1630. AND WHilfsTab.Sort_1 = THilfsTab.Sort_1
  1631. AND WHilfsTab.Sort_2 = THilfsTab.Sort_2
  1632. AND WHilfsTab.Sort_3 = ''
  1633. AND WHilfsTab.Sort_4 = '' NO-ERROR.
  1634. IF NOT AVAILABLE WHilfsTab THEN
  1635. DO:
  1636. CREATE WHilfsTab.
  1637. ASSIGN
  1638. WHilfsTab.Firma = GVFirma
  1639. WHilfsTab.Sort_1 = THilfsTab.Sort_1
  1640. WHilfsTab.Sort_2 = THilfsTab.Sort_2
  1641. WHilfsTab.Sort_3 = ''
  1642. WHilfsTab.Sort_4 = ''.
  1643. END.
  1644. ASSIGN
  1645. WHilfsTab.Wert[01] = WHilfsTab.Wert[01] + TArtbw.Menge
  1646. WHilfsTab.Wert[02] = WHilfsTab.Wert[02] + VLiter
  1647. WHilfsTab.Wert[03] = WHilfsTab.Wert[03] + V100% .
  1648. END.
  1649. IF THilfsTab.Sort_1 <> '' THEN
  1650. DO:
  1651. FIND FIRST WHilfsTab WHERE WHilfsTab.Firma = GVFirma
  1652. AND WHilfsTab.Sort_1 = THilfsTab.Sort_1
  1653. AND WHilfsTab.Sort_2 = ''
  1654. AND WHilfsTab.Sort_3 = ''
  1655. AND WHilfsTab.Sort_4 = '' NO-ERROR.
  1656. IF NOT AVAILABLE WHilfsTab THEN
  1657. DO:
  1658. CREATE WHilfsTab.
  1659. ASSIGN
  1660. WHilfsTab.Firma = GVFirma
  1661. WHilfsTab.Sort_1 = THilfsTab.Sort_1
  1662. WHilfsTab.Sort_2 = ''
  1663. WHilfsTab.Sort_3 = ''
  1664. WHilfsTab.Sort_4 = ''.
  1665. END.
  1666. ASSIGN
  1667. WHilfsTab.Wert[01] = WHilfsTab.Wert[01] + TArtbw.Menge
  1668. WHilfsTab.Wert[02] = WHilfsTab.Wert[02] + VLiter
  1669. WHilfsTab.Wert[03] = WHilfsTab.Wert[03] + V100% .
  1670. END.
  1671. IF NOT LAST-OF ( BArtst.Jahr ) THEN NEXT.
  1672. FIND FIRST ArtBez OF BArtst NO-LOCK NO-ERROR.
  1673. PUT CONTROL '£Total '
  1674. STRING(BArtst.Artnr ,'999999 ')
  1675. ArtBez.Bez1 '£££££££'
  1676. STRING(GTotal[01] ,'->>>,>>9.99') '£'
  1677. STRING(GTotal[02] ,'->>>,>>9.99') '£'
  1678. STRING(GTotal[03] ,'->>>,>>9.99') CHR(10).
  1679. FLeer = FALSE.
  1680. DO WHILE XSort2 <> '' :
  1681. IF NOT LAST-OF ( THilfsTab.Sort_2 ) THEN LEAVE.
  1682. FIND FIRST WHilfsTab WHERE WHilfsTab.Firma = GVFirma
  1683. AND WHilfsTab.Sort_1 = THilfsTab.Sort_1
  1684. AND WHilfsTab.Sort_2 = THilfsTab.Sort_2
  1685. AND WHilfsTab.Sort_3 = ''
  1686. AND WHilfsTab.Sort_4 = '' NO-ERROR.
  1687. XSort2 = 'Total ' + XSort2.
  1688. PUT CONTROL '£'
  1689. XSort2 '££££££££'
  1690. STRING(WHilfsTab.Wert[02],"->>,>>>,>>9.99") '£'
  1691. STRING(WHilfsTab.Wert[03],"->>,>>>,>>9.99") CHR(10).
  1692. FLeer = TRUE.
  1693. LEAVE.
  1694. END.
  1695. DO WHILE XSort1 <> '' :
  1696. IF NOT LAST-OF ( THilfsTab.Sort_1 ) THEN LEAVE.
  1697. FIND FIRST WHilfsTab WHERE WHilfsTab.Firma = GVFirma
  1698. AND WHilfsTab.Sort_1 = THilfsTab.Sort_1
  1699. AND WHilfsTab.Sort_2 = ''
  1700. AND WHilfsTab.Sort_3 = ''
  1701. AND WHilfsTab.Sort_4 = '' NO-ERROR.
  1702. XSort1 = 'Total ' + XSort1.
  1703. PUT CONTROL '£'
  1704. XSort1 '££££££££'
  1705. STRING(WHilfsTab.Wert[02],"->>,>>>,>>9.99") '£'
  1706. STRING(WHilfsTab.Wert[03],"->>,>>>,>>9.99") CHR(10).
  1707. fLeer = TRUE.
  1708. LEAVE.
  1709. END.
  1710. PUT CONTROL CHR(10).
  1711. END.
  1712. PUT CONTROL CHR(10) '£££'
  1713. 'Gesamtverkäufe ' '££££££'
  1714. STRING(GTotal[07],'->>,>>>,>>9.99') '£'
  1715. STRING(GTotal[08],'->>,>>>,>>9.99') CHR(10).
  1716. OUTPUT CLOSE.
  1717. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL').
  1718. RUN OPENEXCEL ( INPUT excelAppl,
  1719. INPUT cExcelDatei,
  1720. INPUT '',
  1721. OUTPUT Ja ).
  1722. IF NOT Ja THEN
  1723. DO:
  1724. MESSAGE 'Fehler beim Starten von Excel ! '
  1725. VIEW-AS ALERT-BOX ERROR.
  1726. RETURN NO-APPLY.
  1727. END.
  1728. Zelle = 'A1'.
  1729. excelAppl:Range(Zelle):SELECT.
  1730. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDatenDatei.
  1731. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  1732. RUN KOPF ( INPUT excelAppl ).
  1733. Zelle = 'A1'.
  1734. excelAppl:Range(Zelle):SELECT.
  1735. excelAppl:Selection:ColumnWidth = 0.3.
  1736. RELEASE OBJECT excelAppl.
  1737. END PROCEDURE.
  1738. /* _UIB-CODE-BLOCK-END */
  1739. &ANALYZE-RESUME
  1740. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATEDATEI D-Dialog
  1741. PROCEDURE CREATEDATEI :
  1742. /*------------------------------------------------------------------------------
  1743. Purpose:
  1744. Parameters: <none>
  1745. Notes:
  1746. ------------------------------------------------------------------------------*/
  1747. /*
  1748. Parameter 1 = DateiName
  1749. 2 = Vorlage
  1750. 3 = Pfad der Datei
  1751. */
  1752. DEFINE INPUT PARAMETER ipParam AS CHARACTER NO-UNDO.
  1753. DEFINE VARIABLE DateiName AS CHARACTER NO-UNDO.
  1754. DEFINE VARIABLE Vorlage AS CHARACTER NO-UNDO.
  1755. DEFINE VARIABLE Pfad AS CHARACTER NO-UNDO.
  1756. DEFINE VARIABLE Laenge AS INTEGER NO-UNDO.
  1757. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1758. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  1759. DEFINE VARIABLE Ja AS LOG NO-UNDO.
  1760. DateiName = ''.
  1761. Vorlage = ''.
  1762. Pfad = ''.
  1763. IF NUM-ENTRIES(ipParam, CHR(01)) = 0 THEN RETURN 'ERROR-PARAMETER'.
  1764. IF NUM-ENTRIES(ipParam, CHR(01)) > 0 THEN DateiName = ENTRY(1, ipParam, CHR(01)).
  1765. IF NUM-ENTRIES(ipParam, CHR(01)) > 1 THEN Vorlage = ENTRY(2, ipParam, CHR(01)).
  1766. IF NUM-ENTRIES(ipParam, CHR(01)) > 2 THEN Pfad = ENTRY(3, ipParam, CHR(01)).
  1767. IF DateiName = '' THEN RETURN 'ERROR-PARAMETER'.
  1768. IF Pfad = '' THEN
  1769. DO:
  1770. Pfad = SESSION:TEMP-DIR.
  1771. END.
  1772. Laenge = LENGTH(Pfad).
  1773. DO WHILE TRUE:
  1774. IF SUBSTRING(Pfad,Laenge,01) = '/' THEN LEAVE.
  1775. IF SUBSTRING(Pfad,Laenge,01) = '\' THEN LEAVE.
  1776. Pfad = Pfad + '\'.
  1777. LEAVE.
  1778. END.
  1779. DateiName = Pfad + DateiName.
  1780. DO WHILE TRUE:
  1781. IF SEARCH(DateiName) = ? THEN LEAVE.
  1782. FILE-INFO:FILE-NAME = DateiName.
  1783. DateiName = FILE-INFO:FULL-PATHNAME.
  1784. ERROR-STATUS:ERROR = FALSE.
  1785. OS-DELETE VALUE(DateiName) NO-ERROR.
  1786. IF ERROR-STATUS:ERROR THEN
  1787. DO:
  1788. Ja = TRUE.
  1789. MESSAGE 'Datei ' DateiName ' ist im Zugriff ' SKIP
  1790. 'und kann nicht gelöscht werden ! '
  1791. VIEW-AS ALERT-BOX INFORMATION BUTTONS RETRY-CANCEL
  1792. UPDATE Ja.
  1793. IF Ja THEN NEXT.
  1794. RETURN 'ERROR-LOESCHEN'.
  1795. END.
  1796. LEAVE.
  1797. END.
  1798. DO WHILE TRUE:
  1799. IF Vorlage = '' THEN LEAVE.
  1800. IF SEARCH(Vorlage) <> ? THEN
  1801. DO:
  1802. Vorlage = SEARCH(Vorlage).
  1803. FILE-INFO:FILE-NAME = Vorlage.
  1804. Vorlage = FILE-INFO:FULL-PATHNAME.
  1805. LEAVE.
  1806. END.
  1807. cString = ''.
  1808. Laenge = LENGTH(Vorlage).
  1809. DO ix = Laenge TO 1 BY -1:
  1810. IF SUBSTRING(Vorlage,ix,01) = '/' THEN LEAVE.
  1811. IF SUBSTRING(Vorlage,ix,01) = '\' THEN LEAVE.
  1812. cString = SUBSTRING(Vorlage,ix,01) + cString.
  1813. END.
  1814. Vorlage = 'Vorlagen\' + cString.
  1815. IF SEARCH(Vorlage) <> ? THEN
  1816. DO:
  1817. Vorlage = SEARCH(Vorlage).
  1818. FILE-INFO:FILE-NAME = Vorlage.
  1819. Vorlage = FILE-INFO:FULL-PATHNAME.
  1820. LEAVE.
  1821. END.
  1822. Vorlage = 'WordVorlagen\' + cString.
  1823. IF SEARCH(Vorlage) <> ? THEN
  1824. DO:
  1825. Vorlage = SEARCH(Vorlage).
  1826. FILE-INFO:FILE-NAME = Vorlage.
  1827. Vorlage = FILE-INFO:FULL-PATHNAME.
  1828. LEAVE.
  1829. END.
  1830. Vorlage = 'ExcelVorlagen\' + cString.
  1831. IF SEARCH(Vorlage) <> ? THEN
  1832. DO:
  1833. Vorlage = SEARCH(Vorlage).
  1834. FILE-INFO:FILE-NAME = Vorlage.
  1835. Vorlage = FILE-INFO:FULL-PATHNAME.
  1836. LEAVE.
  1837. END.
  1838. RETURN 'ERROR-VORLAGE'.
  1839. END.
  1840. IF Vorlage <> '' THEN OS-COPY VALUE(Vorlage) VALUE(DateiName).
  1841. ELSE
  1842. DO:
  1843. OUTPUT TO VALUE(DateiName).
  1844. OUTPUT CLOSE.
  1845. END.
  1846. RETURN DateiName.
  1847. END PROCEDURE.
  1848. /* _UIB-CODE-BLOCK-END */
  1849. &ANALYZE-RESUME
  1850. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI D-Dialog _DEFAULT-DISABLE
  1851. PROCEDURE disable_UI :
  1852. /*------------------------------------------------------------------------------
  1853. Purpose: DISABLE the User Interface
  1854. Parameters: <none>
  1855. Notes: Here we clean-up the user-interface by deleting
  1856. dynamic widgets we have created and/or hide
  1857. frames. This procedure is usually called when
  1858. we are ready to "clean-up" after running.
  1859. ------------------------------------------------------------------------------*/
  1860. /* Hide all frames. */
  1861. HIDE FRAME D-Dialog.
  1862. END PROCEDURE.
  1863. /* _UIB-CODE-BLOCK-END */
  1864. &ANALYZE-RESUME
  1865. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE D-Dialog
  1866. PROCEDURE DRUCKAUSGABE :
  1867. /*------------------------------------------------------------------------------
  1868. Purpose:
  1869. Parameters: <none>
  1870. Notes:
  1871. ------------------------------------------------------------------------------*/
  1872. DEFINE VARIABLE AnzKopien AS INTEGER NO-UNDO.
  1873. IF VLiArt = 02 THEN RETURN.
  1874. IF VLiArt = 03 THEN RETURN.
  1875. IF VLiArt = 04 THEN RETURN.
  1876. AnzKopien = BLiDruck.ListCopy.
  1877. IF AnzKopien = 0 THEN AnzKopien = 1.
  1878. IF BDrucker.Emul = 'TERMINAL' THEN AnzKopien = 1.
  1879. DO VCopy = 1 TO AnzKopien:
  1880. DO WHILE BDrucker.Emul <> "TERMINAL":
  1881. IF BSteuer.Drucker <> "" AND
  1882. OPSYS = "Unix" THEN
  1883. OUTPUT STREAM Out_Stream
  1884. THROUGH VALUE(BSteuer.Drucker)
  1885. VALUE(BSchrift.Schname)
  1886. CONVERT TARGET "ibm850".
  1887. ELSE OUTPUT STREAM Out_Stream
  1888. TO VALUE(BSchrift.Schname)
  1889. CONVERT TARGET "ibm850".
  1890. PUT STREAM Out_Stream CONTROL BSchrift.Schseqbeg.
  1891. IF BLiDruck.Listlq THEN PUT STREAM Out_Stream CONTROL BDrucker.Drulqb.
  1892. IF BLiDruck.Schacht > 0 THEN PUT STREAM Out_Stream CONTROL BDrucker.DruSchacht[Schacht].
  1893. INPUT STREAM In_Stream FROM VALUE(VTemp) NO-ECHO NO-MAP.
  1894. REPEAT ON STOP UNDO, LEAVE WITH FRAME f_Print:
  1895. IMPORT STREAM In_Stream UNFORMATTED VZeile.
  1896. DISPLAY STREAM Out_Stream VZeile
  1897. WITH FRAME f_Print NO-LABELS STREAM-IO
  1898. NO-BOX USE-TEXT WIDTH 255.
  1899. END.
  1900. PUT STREAM Out_Stream CONTROL CHR(12).
  1901. OUTPUT STREAM Out_Stream CLOSE.
  1902. INPUT STREAM In_Stream CLOSE.
  1903. LEAVE.
  1904. END.
  1905. DO WHILE BDrucker.Emul = "TERMINAL":
  1906. RUN "v8/d-liste.w" ( INPUT HelpText[02] ).
  1907. LEAVE.
  1908. END.
  1909. END.
  1910. END PROCEDURE.
  1911. /* _UIB-CODE-BLOCK-END */
  1912. &ANALYZE-RESUME
  1913. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN D-Dialog
  1914. PROCEDURE DRUCKEN :
  1915. /*------------------------------------------------------------------------------
  1916. Purpose:
  1917. Parameters: <none>
  1918. Notes:
  1919. ------------------------------------------------------------------------------*/
  1920. DEFINE VARIABLE XProgname AS CHARACTER NO-UNDO.
  1921. DEFINE VARIABLE VListnr AS INTEGER NO-UNDO.
  1922. DEFINE VARIABLE FNeu AS LOG NO-UNDO.
  1923. DEFINE VARIABLE VDrucker AS CHARACTER NO-UNDO.
  1924. DEFINE VARIABLE VSchrift AS CHARACTER NO-UNDO.
  1925. DEFINE VARIABLE cUser AS CHARACTER NO-UNDO.
  1926. DO WITH FRAME {&FRAME-NAME}:
  1927. cUser = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR.
  1928. VProgname = TRIM(cUSER) + '!EAV' + STRING(VLiArt,"99").
  1929. XProgname = 'EAV' + STRING(VLiArt,"99").
  1930. FNeu = FALSE.
  1931. DO WITH FRAME {&FRAME-NAME}:
  1932. VDrucker = CB_Drucker:SCREEN-VALUE.
  1933. VSchrift = CB_Schriftbild:SCREEN-VALUE.
  1934. END.
  1935. REPEAT TRANSACTION:
  1936. FIND FIRST Listen USE-INDEX Listen-k1
  1937. WHERE Listen.Firma = GVFirma
  1938. AND Listen.Progname = VProgname
  1939. AND Listen.Listfl = '' NO-ERROR.
  1940. IF NOT AVAILABLE Listen THEN
  1941. DO:
  1942. FIND LAST Listen USE-INDEX Listen-k1
  1943. WHERE Listen.Firma = GVFirma NO-LOCK NO-ERROR.
  1944. IF AVAILABLE Listen THEN VListnr = Listen.Listnr + 1.
  1945. ELSE VListnr = 1.
  1946. CREATE Listen.
  1947. ASSIGN
  1948. Listen.Firma = GVFirma
  1949. Listen.Listnr = VListnr
  1950. Listen.Progname = VProgname
  1951. Listen.Listfl = ''
  1952. Listen.Jahr = GVJahr
  1953. Listen.Sprcd = GVSprcd
  1954. Listen.Sort = RS_Sort
  1955. Listen.ProgWahl = VLiArt
  1956. FNeu = TRUE.
  1957. END.
  1958. Listen.Listfl = 'A'.
  1959. ARecid = RECID(Listen).
  1960. FIND LiDruck USE-INDEX LiDruck-k1
  1961. WHERE LiDruck.Firma = GVFirma
  1962. AND LiDruck.Listnr = Listen.Listnr
  1963. AND LiDruck.ProgWahl = Listen.ProgWahl NO-ERROR.
  1964. IF NOT AVAILABLE LiDruck THEN
  1965. DO:
  1966. CREATE LiDruck.
  1967. ASSIGN
  1968. LiDruck.Firma = GVFirma
  1969. LiDruck.Listnr = Listen.Listnr
  1970. LiDruck.ProgWahl = Listen.ProgWahl
  1971. LiDruck.Listprog = XProgname
  1972. LiDruck.ListCopy = 1
  1973. LiDruck.Schacht = 0
  1974. LiDruck.Listlq = FALSE.
  1975. END.
  1976. BRecid = RECID(LiDruck).
  1977. ASSIGN
  1978. Listen.Sort = RS_Sort
  1979. Listen.ProgWahl = VLiArt
  1980. Listen.VNr[01] = F_VArtnr
  1981. Listen.BNr[01] = F_BArtnr
  1982. Listen.VNr[02] = F_VInhalt
  1983. Listen.BNr[02] = F_BInhalt
  1984. Listen.VNr[03] = F_VJahr
  1985. Listen.BNr[03] = F_BJahr
  1986. Listen.VDa[01] = F_VDatum
  1987. Listen.BDa[01] = F_BDatum
  1988. Listen.ECh[01] = F_Hersteller
  1989. Listen.ECh[02] = F_Warengruppe
  1990. Listen.VFl[05] = F_Detail
  1991. Listen.VFl[06] = F_Abschliessen.
  1992. FIND Tabel USE-INDEX Tabel-k1
  1993. WHERE Tabel.Firma = GVFirma
  1994. AND Tabel.RecArt = 'LISTEN'
  1995. AND Tabel.CodeC = 'EAV'
  1996. AND Tabel.CodeI = VLiArt
  1997. AND Tabel.Sprcd = 0 NO-LOCK NO-ERROR.
  1998. IF NOT AVAILABLE Tabel THEN TRecid = 0.
  1999. ELSE TRecid = RECID(Tabel).
  2000. IF TRecid = 0 THEN
  2001. DO:
  2002. CREATE Tabel.
  2003. ASSIGN
  2004. Tabel.Firma = GVFirma
  2005. Tabel.RecArt = 'LISTEN'
  2006. Tabel.CodeC = 'EAV'
  2007. Tabel.CodeI = VLiArt
  2008. Tabel.Sprcd = 0.
  2009. END.
  2010. ELSE
  2011. DO:
  2012. FIND Tabel WHERE RECID(Tabel) = TRecid.
  2013. END.
  2014. TRecid = RECID(Tabel).
  2015. ASSIGN
  2016. Tabel.Int_1 = ARecid
  2017. Tabel.Int_2 = BRecid.
  2018. FIND Schrift USE-INDEX Schrift-k1
  2019. WHERE Schrift.Schname = VDrucker
  2020. AND Schrift.Schbild = VSchrift NO-LOCK NO-ERROR.
  2021. IF AVAILABLE Schrift THEN
  2022. DO:
  2023. IF LiDruck.ListDru <> VDrucker OR
  2024. LiDruck.ListBild <> VSchrift THEN
  2025. DO:
  2026. ASSIGN
  2027. LiDruck.ListTzz = Schrift.Schzztot
  2028. LiDruck.ListKzz = Schrift.Schzzbeg
  2029. LiDruck.ListFzz = Schrift.Schzzend.
  2030. END.
  2031. ASSIGN
  2032. LiDruck.ListDru = VDrucker
  2033. LiDruck.ListBild = VSchrift.
  2034. END.
  2035. RUN LIBILD.
  2036. RELEASE Listen.
  2037. RELEASE LiDruck.
  2038. RELEASE Tabel.
  2039. LEAVE.
  2040. END.
  2041. IF FNeu THEN
  2042. DO:
  2043. T_Drucker = TRUE.
  2044. DISPLAY T_Drucker WITH FRAME {&FRAME-NAME}.
  2045. END.
  2046. DFL = TRUE.
  2047. SESSION:SET-WAIT-STATE('').
  2048. IF T_Drucker THEN RUN DRUCKER.
  2049. SESSION:SET-WAIT-STATE('GENERAL').
  2050. REPEAT TRANSACTION WHILE NOT Dfl:
  2051. FIND BListen WHERE RECID(BListen) = ARecid.
  2052. BListen.ListFl = ''.
  2053. RELEASE BListen.
  2054. FIND BListen WHERE RECID(BListen) = ARecid NO-LOCK NO-ERROR.
  2055. RETURN.
  2056. END.
  2057. FIND BSteuer WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR.
  2058. FIND BListen WHERE RECID(BListen) = ARecid NO-LOCK NO-ERROR.
  2059. FIND BLiDruck WHERE RECID(BLiDruck) = BRecid NO-LOCK NO-ERROR.
  2060. FIND BSchrift USE-INDEX Schrift-k1
  2061. WHERE BSchrift.Schname = BLiDruck.ListDru
  2062. AND BSchrift.Schbild = BLiDruck.ListBild NO-LOCK NO-ERROR.
  2063. FIND BDrucker USE-INDEX Drucker-k1
  2064. WHERE BDrucker.Drucker = BSchrift.Schdru NO-LOCK NO-ERROR.
  2065. IF T_Drucker THEN
  2066. DO:
  2067. FIND LiDruck WHERE RECID(LiDruck) = BRecid NO-LOCK NO-ERROR.
  2068. i1 = CB_Drucker:LOOKUP(LiDruck.ListDru).
  2069. IF i1 = 0 THEN i1 = 1.
  2070. CB_Drucker:SCREEN-VALUE = CB_Drucker:ENTRY(i1).
  2071. APPLY 'VALUE-CHANGED' TO CB_Drucker.
  2072. END.
  2073. TiDruck = TRUE.
  2074. VSeite = 0.
  2075. RUN TEMP_FILE.
  2076. RUN LISTTIT1.
  2077. RUN WORKFILE.
  2078. IF DOpen = TRUE THEN OUTPUT STREAM Out_Stream TO VALUE(VTemp).
  2079. IF BListen.ProgWahl = 1 THEN RUN AUSGABE_01.
  2080. IF BListen.ProgWahl = 2 THEN RUN AUSGABE_02.
  2081. IF BListen.ProgWahl = 3 THEN RUN AUSGABE_03.
  2082. IF BListen.ProgWahl = 4 THEN RUN AUSGABE_04.
  2083. IF DOpen THEN OUTPUT STREAM Out_Stream CLOSE.
  2084. DOpen = FALSE.
  2085. RUN DRUCKAUSGABE.
  2086. IF VTemp <> '' THEN OS-DELETE VALUE(VTemp).
  2087. END.
  2088. REPEAT TRANSACTION:
  2089. FIND BListen WHERE RECID(BListen) = ARecid.
  2090. BListen.ListFl = ''.
  2091. RELEASE BListen.
  2092. LEAVE.
  2093. END.
  2094. FIND BListen WHERE RECID(BListen) = ARecid NO-LOCK NO-ERROR.
  2095. END PROCEDURE.
  2096. /* _UIB-CODE-BLOCK-END */
  2097. &ANALYZE-RESUME
  2098. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKER D-Dialog
  2099. PROCEDURE DRUCKER :
  2100. /*------------------------------------------------------------------------------
  2101. Purpose:
  2102. Parameters: <none>
  2103. Notes:
  2104. ------------------------------------------------------------------------------*/
  2105. LVRecid = TRecid.
  2106. DFl = FALSE.
  2107. SELF:LOAD-MOUSE-POINTER('ARROW').
  2108. RUN "v8/d-druckauswahl.w".
  2109. SELF:LOAD-MOUSE-POINTER('WAIT').
  2110. END PROCEDURE.
  2111. /* _UIB-CODE-BLOCK-END */
  2112. &ANALYZE-RESUME
  2113. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI D-Dialog _DEFAULT-ENABLE
  2114. PROCEDURE enable_UI :
  2115. /*------------------------------------------------------------------------------
  2116. Purpose: ENABLE the User Interface
  2117. Parameters: <none>
  2118. Notes: Here we display/view/enable the widgets in the
  2119. user-interface. In addition, OPEN all queries
  2120. associated with each FRAME and BROWSE.
  2121. These statements here are based on the "Other
  2122. Settings" section of the widget Property Sheets.
  2123. ------------------------------------------------------------------------------*/
  2124. DISPLAY CB_Listenart RS_Sort F_VArtnr F_VInhalt F_VJahr F_BArtnr F_BInhalt
  2125. F_BJahr F_Hersteller F_Warengruppe F_Detail F_VDatum F_BDatum
  2126. F_Abschliessen CB_Drucker CB_Schriftbild T_Drucker
  2127. WITH FRAME D-Dialog.
  2128. ENABLE CB_Listenart RS_Sort F_VArtnr F_VInhalt F_VJahr F_BArtnr F_BInhalt
  2129. F_BJahr F_Hersteller F_Warengruppe F_Detail F_VDatum F_BDatum
  2130. F_Abschliessen CB_Drucker CB_Schriftbild T_Drucker Btn_OK Btn_Cancel
  2131. RECT-2 RECT-3
  2132. WITH FRAME D-Dialog.
  2133. VIEW FRAME D-Dialog.
  2134. {&OPEN-BROWSERS-IN-QUERY-D-Dialog}
  2135. END PROCEDURE.
  2136. /* _UIB-CODE-BLOCK-END */
  2137. &ANALYZE-RESUME
  2138. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INVENTAR_BESTAND D-Dialog
  2139. PROCEDURE INVENTAR_BESTAND :
  2140. /*------------------------------------------------------------------------------
  2141. Purpose:
  2142. Parameters: <none>
  2143. Notes:
  2144. ------------------------------------------------------------------------------*/
  2145. DEFINE INPUT PARAMETER ipDatum AS DATE NO-UNDO.
  2146. DEFINE OUTPUT PARAMETER opBestand AS DECIMAL NO-UNDO.
  2147. DEFINE VARIABLE Verkehr AS DECIMAL NO-UNDO.
  2148. DEFINE VARIABLE InvBest AS DECIMAL NO-UNDO.
  2149. DEFINE VARIABLE InvDat AS DATE NO-UNDO.
  2150. DEFINE VARIABLE xTrnr AS INTEGER NO-UNDO.
  2151. DEFINE VARIABLE cCodeC AS CHARACTER NO-UNDO.
  2152. DEFINE VARIABLE iCodeI AS INTEGER NO-UNDO.
  2153. DEFINE VARIABLE DiffTg AS INTEGER NO-UNDO.
  2154. DEFINE VARIABLE GDat AS DATE NO-UNDO.
  2155. DEFINE VARIABLE KDat AS DATE NO-UNDO.
  2156. cCodeC = STRING(BArtst.Artnr ,'999999')
  2157. + STRING(BArtst.Inhalt,'9999')
  2158. + STRING(BArtst.Jahr ,'9999').
  2159. iCodeI = INTEGER(ipDatum).
  2160. opBestand = ?.
  2161. FIND Tabel USE-INDEX Tabel-k1
  2162. WHERE Tabel.Firma = BArtst.Firma
  2163. AND Tabel.RecArt = 'EAVINV'
  2164. AND Tabel.CodeC = cCodeC
  2165. AND Tabel.CodeI = iCodeI
  2166. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  2167. IF AVAILABLE Tabel THEN
  2168. DO:
  2169. opBestand = DECIMAL(Tabel.Bez1).
  2170. RETURN.
  2171. END.
  2172. DO WHILE TRUE:
  2173. InvDat = ?.
  2174. GDat = ?.
  2175. KDat = ?.
  2176. FIND FIRST Artbw USE-INDEX Artbw-k7
  2177. WHERE Artbw.Firma = BArtst.Firma
  2178. AND Artbw.Artnr = BArtst.Artnr
  2179. AND Artbw.Inhalt = BArtst.Inhalt
  2180. AND Artbw.Jahr = BArtst.Jahr
  2181. AND Artbw.Tr_Art = 21
  2182. AND Artbw.Datum = ipDatum NO-LOCK NO-ERROR.
  2183. IF AVAILABLE Artbw THEN
  2184. DO:
  2185. InvDat = Artbw.Datum.
  2186. LEAVE.
  2187. END.
  2188. FIND FIRST Artbw USE-INDEX Artbw-k7
  2189. WHERE Artbw.Firma = BArtst.Firma
  2190. AND Artbw.Artnr = BArtst.Artnr
  2191. AND Artbw.Inhalt = BArtst.Inhalt
  2192. AND Artbw.Jahr = BArtst.Jahr
  2193. AND Artbw.Tr_Art = 21
  2194. AND Artbw.Datum < ipDatum NO-LOCK NO-ERROR.
  2195. IF AVAILABLE Artbw THEN KDat = Artbw.Datum.
  2196. ELSE
  2197. DO:
  2198. FIND LAST Artbw USE-INDEX Artbw-k2
  2199. WHERE Artbw.Firma = BArtst.Firma
  2200. AND Artbw.Artnr = BArtst.Artnr
  2201. AND Artbw.Inhalt = BArtst.Inhalt
  2202. AND Artbw.Jahr = BArtst.Jahr
  2203. AND Artbw.Datum <= ipDatum
  2204. AND Artbw.Tr_Art < 21 NO-LOCK NO-ERROR.
  2205. IF NOT AVAILABLE Artbw THEN RETURN.
  2206. KDat = 01/01/0001.
  2207. END.
  2208. FIND LAST Artbw USE-INDEX Artbw-k7
  2209. WHERE Artbw.Firma = BArtst.Firma
  2210. AND Artbw.Artnr = BArtst.Artnr
  2211. AND Artbw.Inhalt = BArtst.Inhalt
  2212. AND Artbw.Jahr = BArtst.Jahr
  2213. AND Artbw.Tr_Art = 21
  2214. AND Artbw.Datum > ipDatum NO-LOCK NO-ERROR.
  2215. IF AVAILABLE Artbw THEN GDat = Artbw.Datum.
  2216. IF KDat = ? AND
  2217. GDat <> ? THEN
  2218. DO:
  2219. InvDat = GDat.
  2220. KDat = ipDatum.
  2221. LEAVE.
  2222. END.
  2223. IF KDat <> ? AND
  2224. GDat = ? THEN
  2225. DO:
  2226. InvDat = KDat.
  2227. GDat = ipDatum.
  2228. LEAVE.
  2229. END.
  2230. DiffTg = ipDatum - KDat.
  2231. IF (GDat - ipDatum) < DiffTg THEN
  2232. DO:
  2233. InvDat = GDat.
  2234. KDat = ipDatum.
  2235. LEAVE.
  2236. END.
  2237. InvDat = KDat.
  2238. GDat = ipDatum.
  2239. LEAVE.
  2240. END.
  2241. InvBest = 0.
  2242. Verkehr = 0.
  2243. FOR EACH Artbw USE-INDEX Artbw-k7
  2244. WHERE Artbw.Firma = BArtst.Firma
  2245. AND Artbw.Artnr = BArtst.Artnr
  2246. AND Artbw.Inhalt = BArtst.Inhalt
  2247. AND Artbw.Jahr = BArtst.Jahr
  2248. AND Artbw.Tr_Art = 21
  2249. AND Artbw.Datum = InvDat NO-LOCK :
  2250. InvBest = InvBest + Artbw.Menge.
  2251. END.
  2252. IF InvDat < ipDatum THEN
  2253. DO:
  2254. FOR EACH Artbw USE-INDEX Artbw-k2
  2255. WHERE Artbw.Firma = BArtst.Firma
  2256. AND Artbw.Artnr = BArtst.Artnr
  2257. AND Artbw.Inhalt = BArtst.Inhalt
  2258. AND Artbw.Jahr = BArtst.Jahr
  2259. AND Artbw.Datum >= InvDat
  2260. AND Artbw.Datum <= ipDatum NO-LOCK:
  2261. IF Artbw.Tr_Art = 21 THEN NEXT.
  2262. IF Artbw.Tr_Art < 11 THEN
  2263. DO:
  2264. Verkehr = Verkehr - Artbw.Menge.
  2265. NEXT.
  2266. END.
  2267. IF Artbw.Tr_Art < 21 THEN
  2268. DO:
  2269. Verkehr = Verkehr + Artbw.Menge.
  2270. NEXT.
  2271. END.
  2272. END.
  2273. END.
  2274. IF InvDat > ipDatum THEN
  2275. DO:
  2276. FOR EACH Artbw USE-INDEX Artbw-k2
  2277. WHERE Artbw.Firma = BArtst.Firma
  2278. AND Artbw.Artnr = BArtst.Artnr
  2279. AND Artbw.Inhalt = BArtst.Inhalt
  2280. AND Artbw.Jahr = BArtst.Jahr
  2281. AND Artbw.Datum > ipDatum
  2282. AND Artbw.Datum <= InvDat NO-LOCK:
  2283. IF Artbw.Tr_Art = 21 THEN NEXT.
  2284. IF Artbw.Tr_Art < 11 THEN
  2285. DO:
  2286. Verkehr = Verkehr - Artbw.Menge.
  2287. NEXT.
  2288. END.
  2289. IF Artbw.Tr_Art < 21 THEN
  2290. DO:
  2291. Verkehr = Verkehr + Artbw.Menge.
  2292. NEXT.
  2293. END.
  2294. END.
  2295. END.
  2296. InvBest = InvBest + Verkehr.
  2297. opBestand = InvBest.
  2298. IF VLiArt <> 2 THEN RETURN.
  2299. REPEAT TRANSACTION:
  2300. IF F_Abschliessen = FALSE THEN LEAVE.
  2301. FIND Tabel USE-INDEX Tabel-k1
  2302. WHERE Tabel.Firma = BArtst.Firma
  2303. AND Tabel.RecArt = 'EAVINV'
  2304. AND Tabel.CodeC = cCodeC
  2305. AND Tabel.CodeI = iCodeI
  2306. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  2307. IF AVAILABLE Tabel THEN LEAVE.
  2308. CREATE Tabel.
  2309. ASSIGN
  2310. Tabel.Firma = BArtst.Firma
  2311. Tabel.RecArt = 'EAVINV'
  2312. Tabel.CodeC = cCodeC
  2313. Tabel.CodeI = iCodeI
  2314. Tabel.Sprcd = 1
  2315. Tabel.Bez1 = STRING(InvBest,'999999999.999-').
  2316. RELEASE Tabel.
  2317. LEAVE.
  2318. END.
  2319. RETURN.
  2320. END PROCEDURE.
  2321. /* _UIB-CODE-BLOCK-END */
  2322. &ANALYZE-RESUME
  2323. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF D-Dialog
  2324. PROCEDURE KOPF :
  2325. /*------------------------------------------------------------------------------
  2326. Purpose:
  2327. Parameters: <none>
  2328. Notes:
  2329. ------------------------------------------------------------------------------*/
  2330. DEFINE INPUT PARAMETER eh AS COMPONENT-HANDLE NO-UNDO.
  2331. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO.
  2332. FIND Steuer USE-INDEX Steuer-k1
  2333. WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR.
  2334. IF VLiArt = 02 THEN
  2335. DO:
  2336. Zelle = 'A1'.
  2337. eh:Range(Zelle):SELECT.
  2338. eh:SELECTION:VALUE = Steuer.Firma1.
  2339. Zelle = 'D1'.
  2340. eh:Range(Zelle):SELECT.
  2341. eh:SELECTION:VALUE = 'Spirituoseninventar'.
  2342. Zelle = 'H1'.
  2343. eh:Range(Zelle):SELECT.
  2344. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  2345. Zelle = 'A2'.
  2346. eh:Range(Zelle):SELECT.
  2347. eh:SELECTION:VALUE = Steuer.Ort.
  2348. Zelle = 'D2'.
  2349. eh:Range(Zelle):SELECT.
  2350. eh:SELECTION:VALUE = 'per ' + STRING(F_VDatum,'99.99.9999').
  2351. Zelle = 'H2'.
  2352. eh:Range(Zelle):SELECT.
  2353. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  2354. END.
  2355. IF VLiArt = 03 THEN
  2356. DO:
  2357. Zelle = 'A1'.
  2358. eh:Range(Zelle):SELECT.
  2359. eh:SELECTION:VALUE = Steuer.Firma1.
  2360. Zelle = 'G1'.
  2361. eh:Range(Zelle):SELECT.
  2362. eh:SELECTION:VALUE = 'Spirituosenverkäufe'.
  2363. Zelle = 'K1'.
  2364. eh:Range(Zelle):SELECT.
  2365. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  2366. Zelle = 'A2'.
  2367. eh:Range(Zelle):SELECT.
  2368. eh:SELECTION:VALUE = Steuer.Ort.
  2369. Zelle = 'G2'.
  2370. eh:Range(Zelle):SELECT.
  2371. eh:SELECTION:VALUE = STRING(F_VDatum,'99.99.9999') + ' - '
  2372. + STRING(F_BDatum,'99.99.9999').
  2373. Zelle = 'K2'.
  2374. eh:Range(Zelle):SELECT.
  2375. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  2376. END.
  2377. IF VLiArt = 04 THEN
  2378. DO:
  2379. Zelle = 'A1'.
  2380. eh:Range(Zelle):SELECT.
  2381. eh:SELECTION:VALUE = Steuer.Firma1.
  2382. Zelle = 'H1'.
  2383. eh:Range(Zelle):SELECT.
  2384. eh:SELECTION:VALUE = 'Spirituosenbuchhaltung (Eidg. Alkoholverwaltung)'.
  2385. Zelle = 'N1'.
  2386. eh:Range(Zelle):SELECT.
  2387. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  2388. Zelle = 'A2'.
  2389. eh:Range(Zelle):SELECT.
  2390. eh:SELECTION:VALUE = Steuer.Ort.
  2391. Zelle = 'H2'.
  2392. eh:Range(Zelle):SELECT.
  2393. eh:SELECTION:VALUE = STRING(F_VDatum,'99.99.9999') + ' - '
  2394. + STRING(F_BDatum,'99.99.9999').
  2395. Zelle = 'N2'.
  2396. eh:Range(Zelle):SELECT.
  2397. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  2398. END.
  2399. IF VLiArt = 14 THEN
  2400. DO:
  2401. Zelle = 'A1'.
  2402. eh:Range(Zelle):SELECT.
  2403. eh:SELECTION:VALUE = Steuer.Firma1.
  2404. Zelle = 'E1'.
  2405. eh:Range(Zelle):SELECT.
  2406. eh:SELECTION:VALUE = 'Spirituosenbuchhaltung (Eidg. Alkoholverwaltung)'.
  2407. Zelle = 'K1'.
  2408. eh:Range(Zelle):SELECT.
  2409. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  2410. Zelle = 'A2'.
  2411. eh:Range(Zelle):SELECT.
  2412. eh:SELECTION:VALUE = Steuer.Ort.
  2413. Zelle = 'E2'.
  2414. eh:Range(Zelle):SELECT.
  2415. eh:SELECTION:VALUE = 'Zusammenfassung '
  2416. + STRING(F_VDatum,'99.99.9999') + ' - '
  2417. + STRING(F_BDatum,'99.99.9999').
  2418. Zelle = 'K2'.
  2419. eh:Range(Zelle):SELECT.
  2420. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  2421. END.
  2422. END PROCEDURE.
  2423. /* _UIB-CODE-BLOCK-END */
  2424. &ANALYZE-RESUME
  2425. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIBILD D-Dialog
  2426. PROCEDURE LIBILD :
  2427. /*------------------------------------------------------------------------------
  2428. Purpose:
  2429. Parameters: <none>
  2430. Notes:
  2431. ------------------------------------------------------------------------------*/
  2432. Helptext = "".
  2433. FOR EACH LiBild USE-INDEX LiBild-k1
  2434. WHERE LiBild.Sprcd = GVSprcd
  2435. AND LiBild.Prog = LiDruck.Listprog
  2436. AND LiBild.Tenr > 0 NO-LOCK ix = 1 TO 20:
  2437. Helptext[ix] = LiBild.Litext.
  2438. END.
  2439. Breite = INTEGER(SUBSTRING(Helptext[01],02,03)).
  2440. END PROCEDURE.
  2441. /* _UIB-CODE-BLOCK-END */
  2442. &ANALYZE-RESUME
  2443. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LISTTIT1 D-Dialog
  2444. PROCEDURE LISTTIT1 :
  2445. /*------------------------------------------------------------------------------
  2446. Purpose:
  2447. Parameters: <none>
  2448. Notes:
  2449. ------------------------------------------------------------------------------*/
  2450. IF BListen.ProgWahl = 2 THEN
  2451. DO:
  2452. Tittxt = 'per ' + STRING(F_BDatum,"99.99.9999").
  2453. END.
  2454. IF BListen.ProgWahl = 3 THEN
  2455. DO:
  2456. Tittxt = STRING(F_VDatum,"99.99.9999")
  2457. + " - "
  2458. + STRING(F_BDatum,"99.99.9999").
  2459. END.
  2460. IF BListen.ProgWahl = 4 THEN
  2461. DO:
  2462. Tittxt = STRING(F_VDatum,"99.99.9999")
  2463. + " - "
  2464. + STRING(F_BDatum,"99.99.9999").
  2465. END.
  2466. Fuell = SUBSTRING(Helptext[01],01,01).
  2467. Breite = INTEGER(SUBSTRING(Helptext[01],02,03)).
  2468. VRand = INTEGER(SUBSTRING(Helptext[01],68,03)).
  2469. Dattxt = SUBSTRING(Helptext[01],05,10).
  2470. Seitxt = SUBSTRING(Helptext[01],15,10).
  2471. Zeitxt = SUBSTRING(Helptext[01],25,10).
  2472. Firtxt = SUBSTRING(Helptext[01],35,10).
  2473. Jahtxt = SUBSTRING(Helptext[01],45,10).
  2474. PPos1 = Breite - 20.
  2475. PPos2 = (Breite - LENGTH(Helptext[02]) - 1) / 2.
  2476. PPos5 = (Breite - LENGTH(Tittxt) - 1) / 2.
  2477. ix = LENGTH(BDrucker.Drufettb) + LENGTH(BDrucker.Drufette).
  2478. PPos3 = PPos1 + ix.
  2479. PPos4 = Breite + ix - 3.
  2480. IF Fuell <> "" THEN Kopfz = FILL(Fuell,Breite).
  2481. Ueber1 = "".
  2482. Ueber2 = "".
  2483. Ueber3 = "".
  2484. IF Helptext[03] <> "" THEN SUBSTRING(Ueber1,001) = Helptext[03].
  2485. IF Helptext[04] <> "" THEN SUBSTRING(Ueber1,071) = Helptext[04].
  2486. IF Helptext[05] <> "" THEN SUBSTRING(Ueber1,141) = Helptext[05].
  2487. IF Helptext[06] <> "" THEN SUBSTRING(Ueber2,001) = Helptext[06].
  2488. IF Helptext[07] <> "" THEN SUBSTRING(Ueber2,071) = Helptext[07].
  2489. IF Helptext[08] <> "" THEN SUBSTRING(Ueber2,141) = Helptext[08].
  2490. IF Helptext[09] <> "" THEN SUBSTRING(Ueber3,001) = Helptext[09].
  2491. IF Helptext[10] <> "" THEN SUBSTRING(Ueber3,071) = Helptext[10].
  2492. IF Helptext[11] <> "" THEN SUBSTRING(Ueber3,141) = Helptext[11].
  2493. IF Ueber1 <> '' THEN Ueber1 = BDrucker.Drufettb + Ueber1 + BDrucker.Drufette.
  2494. IF Ueber2 <> '' THEN Ueber2 = BDrucker.Drufettb + Ueber2 + BDrucker.Drufette.
  2495. IF Ueber3 <> '' THEN Ueber3 = BDrucker.Drufettb + Ueber3 + BDrucker.Drufette.
  2496. Helptext[02] = BDrucker.Drufettb + Helptext[02] + BDrucker.Drufette.
  2497. Tittxt = BDrucker.Drufettb + Tittxt + BDrucker.Drufette.
  2498. ap = 1.
  2499. XDruDat = ?.
  2500. END PROCEDURE.
  2501. /* _UIB-CODE-BLOCK-END */
  2502. &ANALYZE-RESUME
  2503. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LISTTIT2 D-Dialog
  2504. PROCEDURE LISTTIT2 :
  2505. /*------------------------------------------------------------------------------
  2506. Purpose:
  2507. Parameters: <none>
  2508. Notes:
  2509. ------------------------------------------------------------------------------*/
  2510. IF NOT TiDruck AND Leer > 0 THEN
  2511. DO:
  2512. { v8/putzeily.i XLeer Leer }
  2513. END.
  2514. IF (VLine + BLiDruck.Listfzz + Zuszz) > BLiDruck.Listtzz THEN TiDruck = TRUE.
  2515. IF TiDruck THEN
  2516. DO:
  2517. IF Uebertrag <> "" THEN
  2518. DO:
  2519. { v8/putzeily.i XLeer "1" }
  2520. { v8/putzeily.i Uebertrag "1" }
  2521. { v8/putzeily.i XLeer "1" }
  2522. END.
  2523. IF DOpen = TRUE THEN
  2524. DO:
  2525. RUN NEUE_SEITE.
  2526. END.
  2527. ELSE
  2528. DO:
  2529. VSeite = VSeite + 1.
  2530. VZNr = VZNr + 1.
  2531. VLine = 0.
  2532. CREATE XTermOut.
  2533. ASSIGN
  2534. XTermOut.ZNr = VZNr
  2535. XTermOut.Zeile = ''.
  2536. END.
  2537. IF Listkzz > 0 THEN
  2538. DO:
  2539. { v8/putzeily.i XLeer Listkzz }
  2540. END.
  2541. IF Kopfz <> "" THEN
  2542. DO:
  2543. { v8/putzeily.i Kopfz "1" }
  2544. END.
  2545. Titelz = "".
  2546. SUBSTRING(Titelz,01) = BSteuer.Firma1.
  2547. SUBSTRING(Titelz,PPos1) = Dattxt.
  2548. IF XDruDat <> ? THEN SUBSTR(Titelz,Breite - 9) = STRING(XDruDat,VDatForm).
  2549. ELSE SUBSTR(Titelz,Breite - 9) = STRING(TODAY ,VDatForm).
  2550. { v8/putzeily.i Titelz "1" }
  2551. Titelz = "".
  2552. SUBSTRING(Titelz,01) = BSteuer.Strasse.
  2553. SUBSTRING(Titelz,PPos2) = Helptext[02].
  2554. SUBSTRING(Titelz,PPos3) = Seitxt.
  2555. SUBSTRING(Titelz,PPos4) = STRING(VSeite,"zzz9").
  2556. { v8/putzeily.i Titelz "1" }
  2557. Titelz = "".
  2558. SUBSTRING(Titelz,01) = BSteuer.Ort.
  2559. IF Tittxt <> "" THEN
  2560. DO:
  2561. SUBSTRING(Titelz,PPos5) = Tittxt.
  2562. END.
  2563. SUBSTRING(Titelz,PPos3) = Zeitxt.
  2564. SUBSTRING(Titelz,PPos4 - 4) = STRING(TIME,"HH:MM:SS").
  2565. { v8/putzeily.i Titelz "1" }
  2566. IF BListen.FirmaFl OR BListen.JahrFl THEN
  2567. DO:
  2568. Titelz = "".
  2569. IF BListen.FirmaFl THEN
  2570. DO:
  2571. SUBSTRING(Titelz,01) = Firtxt.
  2572. SUBSTRING(Titelz,11) = STRING(BListen.Firma).
  2573. END.
  2574. IF BListen.JahrFl THEN
  2575. DO:
  2576. SUBSTRING(Titelz,PPos1) = Jahtxt.
  2577. SUBSTRING(Titelz,Breite - 3) = STRING(BListen.Jahr,"9999").
  2578. END.
  2579. { v8/putzeily.i Titelz "1" }
  2580. END.
  2581. IF Kopfz <> "" THEN
  2582. DO:
  2583. { v8/putzeily.i Kopfz "1" }
  2584. END.
  2585. { v8/putzeily.i XLeer "1" }
  2586. aa = 0.
  2587. IF Ueber1 <> "" THEN
  2588. DO:
  2589. { v8/putzeily.i Ueber1 "1" }
  2590. aa = 1.
  2591. END.
  2592. IF Ueber2 <> "" THEN
  2593. DO:
  2594. { v8/putzeily.i Ueber2 "1" }
  2595. aa = 1.
  2596. END.
  2597. IF Ueber3 <> "" THEN
  2598. DO:
  2599. { v8/putzeily.i Ueber3 "1" }
  2600. aa = 1.
  2601. END.
  2602. IF aa = 1 THEN
  2603. DO:
  2604. { v8/putzeily.i XLeer "1" }.
  2605. END.
  2606. TiGedru = TRUE.
  2607. END.
  2608. IF Leer > 0 OR TiDruck THEN
  2609. DO:
  2610. IF Ueber4 <> "" THEN
  2611. DO:
  2612. { v8/putzeily.i Ueber4 "2" }
  2613. END.
  2614. IF Ueber5 <> "" THEN
  2615. DO:
  2616. { v8/putzeily.i Ueber5 "2" }
  2617. END.
  2618. IF Uebertrag <> "" THEN
  2619. DO:
  2620. { v8/putzeily.i Uebertrag "2" }
  2621. END.
  2622. END.
  2623. TiDruck = FALSE.
  2624. Uebertrag = "".
  2625. Leer = 0.
  2626. Zuszz = 0.
  2627. END PROCEDURE.
  2628. /* _UIB-CODE-BLOCK-END */
  2629. &ANALYZE-RESUME
  2630. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view D-Dialog
  2631. PROCEDURE local-view :
  2632. /*------------------------------------------------------------------------------
  2633. Purpose: Override standard ADM method
  2634. Notes:
  2635. ------------------------------------------------------------------------------*/
  2636. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
  2637. APPLY 'VALUE-CHANGED' TO CB_Listenart IN FRAME {&FRAME-NAME}.
  2638. APPLY 'VALUE-CHANGED' TO CB_Drucker IN FRAME {&FRAME-NAME}.
  2639. APPLY 'ENTRY' TO CB_Listenart IN FRAME {&FRAME-NAME}.
  2640. END PROCEDURE.
  2641. /* _UIB-CODE-BLOCK-END */
  2642. &ANALYZE-RESUME
  2643. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUE_SEITE D-Dialog
  2644. PROCEDURE NEUE_SEITE :
  2645. /*------------------------------------------------------------------------------
  2646. Purpose:
  2647. Parameters: <none>
  2648. Notes:
  2649. ------------------------------------------------------------------------------*/
  2650. DEFINE VARIABLE A AS INTEGER NO-UNDO.
  2651. DEFINE VARIABLE B AS INTEGER NO-UNDO.
  2652. DO WHILE VSeite > 0:
  2653. IF DOpen THEN
  2654. DO:
  2655. PUT STREAM Out_Stream CHR(12).
  2656. LEAVE.
  2657. END.
  2658. A = BLiDruck.Listtzz.
  2659. DO B = VLine TO A:
  2660. VZNr = VZNr + 1.
  2661. CREATE XTermOut.
  2662. ASSIGN
  2663. XTermOut.ZNr = VZNr
  2664. XTermOut.Zeile = ''.
  2665. END.
  2666. LEAVE.
  2667. END.
  2668. VLine = 0.
  2669. VSeite = VSeite + 1.
  2670. END PROCEDURE.
  2671. /* _UIB-CODE-BLOCK-END */
  2672. &ANALYZE-RESUME
  2673. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPENEXCEL D-Dialog
  2674. PROCEDURE OPENEXCEL :
  2675. /*------------------------------------------------------------------------------
  2676. Purpose:
  2677. Parameters: <none>
  2678. Notes:
  2679. ------------------------------------------------------------------------------*/
  2680. DEFINE INPUT PARAMETER excelAppl AS COMPONENT-HANDLE NO-UNDO.
  2681. DEFINE INPUT PARAMETER VDateiName AS CHARACTER NO-UNDO.
  2682. DEFINE INPUT PARAMETER VMakro AS CHARACTER NO-UNDO.
  2683. DEFINE OUTPUT PARAMETER io AS LOG NO-UNDO.
  2684. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  2685. DEFINE VARIABLE Laenge AS INTEGER NO-UNDO.
  2686. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  2687. DEFINE VARIABLE ReadOnly AS LOG NO-UNDO.
  2688. DO WHILE TRUE:
  2689. IF VDateiName = '' THEN
  2690. DO:
  2691. io = FALSE.
  2692. RETURN.
  2693. END.
  2694. IF SEARCH(VDateiName) <> ? THEN
  2695. DO:
  2696. VDateiName = SEARCH(VDateiName).
  2697. LEAVE.
  2698. END.
  2699. cString = ''.
  2700. Laenge = LENGTH(VDateiName).
  2701. DO ix = Laenge TO 1 BY -1:
  2702. IF SUBSTRING(VDateiName,ix,01) = '/' THEN LEAVE.
  2703. IF SUBSTRING(VDateiName,ix,01) = '\' THEN LEAVE.
  2704. cString = SUBSTRING(VDateiName,ix,01) + cString.
  2705. END.
  2706. VDateiName = 'Vorlagen\' + cString.
  2707. IF SEARCH(VDateiName) <> ? THEN
  2708. DO:
  2709. VDateiName = SEARCH(VDateiName).
  2710. LEAVE.
  2711. END.
  2712. VDateiName = 'WordVorlagen\' + cString.
  2713. IF SEARCH(VDateiName) <> ? THEN
  2714. DO:
  2715. VDateiName = SEARCH(VDateiName).
  2716. LEAVE.
  2717. END.
  2718. VDateiName = 'ExcelVorlagen\' + cString.
  2719. IF SEARCH(VDateiName) <> ? THEN
  2720. DO:
  2721. VDateiName = SEARCH(VDateiName).
  2722. LEAVE.
  2723. END.
  2724. io = FALSE.
  2725. RETURN.
  2726. END.
  2727. FILE-INFO:FILE-NAME = VDateiName.
  2728. VDateiName = FILE-INFO:FULL-PATHNAME.
  2729. IF INDEX(VDateiName, 'Vorlage') > 0 THEN ReadOnly = TRUE.
  2730. ELSE ReadOnly = FALSE.
  2731. io = excelAppl:Workbooks:Open(VDateiName, 0, ReadOnly) NO-ERROR.
  2732. IF NOT io THEN RETURN.
  2733. IF VMakro = '' THEN RETURN.
  2734. io = excelAppl:APPLICATION:RUN(VMakro).
  2735. RETURN.
  2736. END PROCEDURE.
  2737. /* _UIB-CODE-BLOCK-END */
  2738. &ANALYZE-RESUME
  2739. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records D-Dialog _ADM-SEND-RECORDS
  2740. PROCEDURE send-records :
  2741. /*------------------------------------------------------------------------------
  2742. Purpose: Send record ROWID's for all tables used by
  2743. this file.
  2744. Parameters: see template/snd-head.i
  2745. ------------------------------------------------------------------------------*/
  2746. /* Define variables needed by this internal procedure. */
  2747. {src/adm/template/snd-head.i}
  2748. /* For each requested table, put it's ROWID in the output list. */
  2749. {src/adm/template/snd-list.i "Listen"}
  2750. /* Deal with any unexpected table requests before closing. */
  2751. {src/adm/template/snd-end.i}
  2752. END PROCEDURE.
  2753. /* _UIB-CODE-BLOCK-END */
  2754. &ANALYZE-RESUME
  2755. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SORT01 D-Dialog
  2756. PROCEDURE SORT01 :
  2757. /*------------------------------------------------------------------------------
  2758. Purpose:
  2759. Parameters: <none>
  2760. Notes:
  2761. ------------------------------------------------------------------------------*/
  2762. XSort1 = ''.
  2763. IF THilfsTab.Sort_1 = '' THEN RETURN.
  2764. FIND EAVSt1 USE-INDEX EAVSt1-k1
  2765. WHERE EAVSt1.Firma = THilfsTab.Firma
  2766. AND EAVSt1.Cd_1 = INTEGER(THilfsTab.Sort_1) NO-LOCK NO-ERROR.
  2767. IF AVAILABLE EAVSt1 THEN XSort1 = EAVSt1.Bezeichnung.
  2768. END PROCEDURE.
  2769. /* _UIB-CODE-BLOCK-END */
  2770. &ANALYZE-RESUME
  2771. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SORT02 D-Dialog
  2772. PROCEDURE SORT02 :
  2773. /*------------------------------------------------------------------------------
  2774. Purpose:
  2775. Parameters: <none>
  2776. Notes:
  2777. ------------------------------------------------------------------------------*/
  2778. XSort2 = ''.
  2779. IF THilfsTab.Sort_2 = '' THEN RETURN.
  2780. FIND EAVSt2 USE-INDEX EAVSt2-k1
  2781. WHERE EAVSt2.Firma = THilfsTab.Firma
  2782. AND EAVSt2.Cd_1 = INTEGER(THilfsTab.Sort_1)
  2783. AND EAVSt2.Cd_2 = INTEGER(THilfsTab.Sort_2) NO-LOCK NO-ERROR.
  2784. IF AVAILABLE EAVSt2 THEN XSort2 = EAVSt2.Bezeichnung.
  2785. END PROCEDURE.
  2786. /* _UIB-CODE-BLOCK-END */
  2787. &ANALYZE-RESUME
  2788. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SORTIERARTEN D-Dialog
  2789. PROCEDURE SORTIERARTEN :
  2790. /*------------------------------------------------------------------------------
  2791. Purpose:
  2792. Parameters: <none>
  2793. Notes:
  2794. ------------------------------------------------------------------------------*/
  2795. DO WITH FRAME {&FRAME-NAME}:
  2796. CASE VLiArt:
  2797. /*
  2798. WHEN 1 THEN DO:
  2799. RS_Sort:RADIO-BUTTONS = 'Warengruppe/Produktegruppe/Artikelgruppe,1,,2,,3'.
  2800. RS_Sort-2:RADIO-BUTTONS = 'Suchbegriff,1,Kundengruppe/Suchbegriff,2,Preisgruppe/Suchbegriff,3'.
  2801. END.
  2802. */
  2803. WHEN 1 THEN
  2804. DO:
  2805. RS_Sort:RADIO-BUTTONS = 'EAV-Code / Artikelnummer / Inhalt / Jahr,1'.
  2806. END.
  2807. WHEN 2 THEN
  2808. DO:
  2809. RS_Sort:RADIO-BUTTONS = 'EAV-Code / Artikelnummer / Inhalt / Jahr,1'.
  2810. END.
  2811. WHEN 3 THEN
  2812. DO:
  2813. RS_Sort:RADIO-BUTTONS = 'EAV-Code / Artikelnummer / Inhalt / Jahr,1'.
  2814. END.
  2815. END CASE.
  2816. END.
  2817. END PROCEDURE.
  2818. /* _UIB-CODE-BLOCK-END */
  2819. &ANALYZE-RESUME
  2820. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed D-Dialog
  2821. PROCEDURE state-changed :
  2822. /* -----------------------------------------------------------
  2823. Purpose:
  2824. Parameters: <none>
  2825. Notes:
  2826. -------------------------------------------------------------*/
  2827. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  2828. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  2829. END PROCEDURE.
  2830. /* _UIB-CODE-BLOCK-END */
  2831. &ANALYZE-RESUME
  2832. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEMP_FILE D-Dialog
  2833. PROCEDURE TEMP_FILE :
  2834. /*------------------------------------------------------------------------------
  2835. Purpose:
  2836. Parameters: <none>
  2837. Notes:
  2838. ------------------------------------------------------------------------------*/
  2839. DEFINE VARIABLE VSort1 AS CHARACTER NO-UNDO.
  2840. DEFINE VARIABLE VSort2 AS CHARACTER NO-UNDO.
  2841. DEFINE VARIABLE VSort3 AS CHARACTER NO-UNDO.
  2842. DEFINE VARIABLE XVDat AS DATE NO-UNDO.
  2843. DEFINE VARIABLE XBDat AS DATE NO-UNDO.
  2844. DEFINE VARIABLE YVDat AS DATE NO-UNDO.
  2845. DEFINE VARIABLE YBDat AS DATE NO-UNDO.
  2846. DEFINE VARIABLE VBestand AS DECIMAL DECIMALS 4 NO-UNDO.
  2847. DEFINE VARIABLE VInvAlt AS DECIMAL DECIMALS 4 NO-UNDO.
  2848. DEFINE VARIABLE VInvNeu AS DECIMAL DECIMALS 4 NO-UNDO.
  2849. VDatum = F_VDatum.
  2850. BDatum = F_BDatum.
  2851. XVDat = VDatum - 10.
  2852. XBDat = VDatum + 10.
  2853. YVDat = BDatum - 10.
  2854. YBDat = BDatum + 10.
  2855. FOR EACH THilfsTab:
  2856. DELETE THilfsTab.
  2857. END.
  2858. FOR EACH BArtst USE-INDEX Artst-k1
  2859. WHERE BArtst.Firma = GVFirma
  2860. AND BArtst.Artnr >= F_VArtnr
  2861. AND BArtst.Artnr <= F_BArtnr
  2862. AND BArtst.Inhalt >= F_VInhalt
  2863. AND BArtst.Inhalt <= F_BInhalt
  2864. AND BArtst.Jahr >= F_VJahr
  2865. AND BArtst.Jahr <= F_BJahr
  2866. AND BArtst.Aktiv = TRUE
  2867. AND BArtst.EAV_Code <> '' NO-LOCK :
  2868. Ja = FALSE.
  2869. VBestand = 0.
  2870. VInvAlt = 0.
  2871. VInvNeu = 0.
  2872. IDatA = VDatum.
  2873. IDatN = BDatum.
  2874. DO WHILE TRUE:
  2875. IF F_Hersteller <> '' AND
  2876. LOOKUP(STRING(BArtst.Herst ,"999"), F_Hersteller ) = 0 THEN LEAVE.
  2877. IF F_Warengruppe <> '' AND
  2878. LOOKUP(STRING(BArtst.Wg_Grp ,"999"), F_Warengruppe ) = 0 THEN LEAVE.
  2879. IF VLiArt = 2 THEN
  2880. DO:
  2881. RUN INVENTAR_BESTAND ( INPUT VDatum, OUTPUT VBestand ).
  2882. IF VBestand = ? THEN LEAVE.
  2883. END.
  2884. IF VLiArt = 4 THEN
  2885. DO:
  2886. RUN INVENTAR_BESTAND ( INPUT VDatum - 1, OUTPUT VInvAlt ).
  2887. RUN INVENTAR_BESTAND ( INPUT BDatum , OUTPUT VInvNeu ).
  2888. END.
  2889. Ja = TRUE.
  2890. LEAVE.
  2891. END.
  2892. IF NOT Ja THEN NEXT.
  2893. VSort1 = SUBSTRING(BArtst.EAV_Code,01,02).
  2894. VSort2 = SUBSTRING(BArtst.EAV_Code,03,02).
  2895. DO WHILE TRUE:
  2896. IF VSort2 <> '00' THEN LEAVE.
  2897. VSort2 = ''.
  2898. IF VSort1 <> '00' THEN LEAVE.
  2899. VSort1 = ''.
  2900. LEAVE.
  2901. END.
  2902. IF VSort1 = '' THEN NEXT.
  2903. CREATE THilfsTab.
  2904. ASSIGN
  2905. THilfsTab.Firma = GVFirma
  2906. THilfsTab.Sort_1 = VSort1
  2907. THilfsTab.Sort_2 = VSort2
  2908. THilfsTab.Sort_3 = STRING(BArtst.Artnr ,"999999")
  2909. + STRING(BArtst.Inhalt,"9999")
  2910. + STRING(BArtst.Jahr ,"9999")
  2911. THilfsTab.Zahl_1 = RECID(BArtst)
  2912. THilfsTab.Wert[01] = VBestand
  2913. THilfsTab.Wert[02] = VInvAlt
  2914. THilfsTab.Wert[03] = VInvNeu
  2915. THilfsTab.Datum_1 = IDatA
  2916. THilfsTab.Datum_2 = IDatN
  2917. THilfsTab.Wert_1 = BArtst.Alk_Gehalt.
  2918. END.
  2919. END PROCEDURE.
  2920. /* _UIB-CODE-BLOCK-END */
  2921. &ANALYZE-RESUME
  2922. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WORKFILE D-Dialog
  2923. PROCEDURE WORKFILE :
  2924. /*------------------------------------------------------------------------------
  2925. Purpose:
  2926. Parameters: <none>
  2927. Notes:
  2928. ------------------------------------------------------------------------------*/
  2929. DOpen = FALSE.
  2930. VTemp = ''.
  2931. IF BDrucker.Emul = 'TERMINAL' THEN
  2932. DO:
  2933. FOR EACH XTermOut:
  2934. DELETE XTermOut.
  2935. END.
  2936. VZNr = 0.
  2937. RETURN.
  2938. END.
  2939. IF VLiArt = 2 THEN RETURN.
  2940. IF VLiArt = 3 THEN RETURN.
  2941. DO WHILE TRUE TRANSACTION:
  2942. FIND Tabel USE-INDEX Tabel-k1
  2943. WHERE Tabel.Firma = GVFirma
  2944. AND Tabel.RecArt = 'TEMPFILE'
  2945. AND Tabel.CodeI = 0
  2946. AND Tabel.CodeC = 'EWK'
  2947. AND Tabel.Sprcd = 0 NO-ERROR.
  2948. IF NOT AVAILABLE Tabel THEN
  2949. DO:
  2950. CREATE Tabel.
  2951. ASSIGN
  2952. Tabel.Firma = GVFirma
  2953. Tabel.RecArt = 'TEMPFILE'
  2954. Tabel.CodeI = 0
  2955. Tabel.CodeC = 'EWK'
  2956. Tabel.Sprcd = 0
  2957. Tabel.Bez1 = SESSION:TEMP-DIR.
  2958. END.
  2959. Tabel.Int_1 = Tabel.Int_1 + 1.
  2960. VTemp = Tabel.Bez1 + 'EWK' + STRING(Tabel.Int_1) + '.tmp'.
  2961. RELEASE Tabel.
  2962. LEAVE.
  2963. END.
  2964. DOpen = TRUE.
  2965. END PROCEDURE.
  2966. /* _UIB-CODE-BLOCK-END */
  2967. &ANALYZE-RESUME
  2968. /* ************************ Function Implementations ***************** */
  2969. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION CREATEEXCEL D-Dialog
  2970. FUNCTION CREATEEXCEL RETURNS COMPONENT-HANDLE
  2971. ( /* parameter-definitions */ ) :
  2972. /*------------------------------------------------------------------------------
  2973. Purpose:
  2974. Notes:
  2975. ------------------------------------------------------------------------------*/
  2976. DEFINE VARIABLE hdExcel AS COMPONENT-HANDLE NO-UNDO.
  2977. DO WHILE TRUE:
  2978. CREATE "Excel.Application" hdExcel CONNECT NO-ERROR.
  2979. IF VALID-HANDLE(hdExcel) THEN LEAVE.
  2980. CREATE "Excel.Application" hdExcel NO-ERROR.
  2981. IF VALID-HANDLE(hdExcel) THEN hdExcel:Visible = TRUE.
  2982. LEAVE.
  2983. END.
  2984. RETURN hdExcel.
  2985. END FUNCTION.
  2986. /* _UIB-CODE-BLOCK-END */
  2987. &ANALYZE-RESUME