g-p_kubes.w 86 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gVertrAusw
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gVertrAusw
  6. /*------------------------------------------------------------------------
  7. File:
  8. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  9. Input Parameters:
  10. <none>
  11. Output Parameters:
  12. <none>
  13. Author:
  14. Created:
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress AppBuilder. */
  17. /*----------------------------------------------------------------------*/
  18. /* Create an unnamed pool to store all the widgets created
  19. by this procedure. This is a good default which assures
  20. that this procedure's triggers and internal procedures
  21. will execute in this procedure's storage, and that proper
  22. cleanup will occur on deletion of the procedure. */
  23. CREATE WIDGET-POOL.
  24. /* *************************** Definitions ************************** */
  25. /* Parameters Definitions --- */
  26. /* Local Variable Definitions --- */
  27. DEFINE VARIABLE MaxPage AS INTEGER NO-UNDO.
  28. DEFINE VARIABLE AktSeite AS INTEGER NO-UNDO.
  29. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO.
  30. DEFINE VARIABLE lFirma AS CHARACTER NO-UNDO.
  31. DEFINE VARIABLE Firma AS CHARACTER NO-UNDO.
  32. DEFINE VARIABLE AdFirma AS CHARACTER NO-UNDO.
  33. DEFINE VARIABLE Vertr AS INTEGER NO-UNDO.
  34. DEFINE VARIABLE LiArt AS INTEGER NO-UNDO.
  35. DEFINE VARIABLE cFirma AS CHARACTER NO-UNDO.
  36. DEFINE VARIABLE TotUmsatz AS DECIMAL NO-UNDO.
  37. DEFINE VARIABLE TotSaldo AS DECIMAL NO-UNDO.
  38. DEFINE VARIABLE cInstallation AS CHARACTER NO-UNDO.
  39. DEFINE VARIABLE cBenutzer AS CHARACTER NO-UNDO.
  40. DEFINE STREAM O_Stream.
  41. DEFINE STREAM I_Stream.
  42. DEFINE TEMP-TABLE tKuBes LIKE KuBes
  43. FIELD KdeInd AS INTEGER
  44. FIELD Anzeig_Br AS CHARACTER
  45. FIELD Aktivitaet AS CHARACTER
  46. FIELD Ort AS CHARACTER
  47. FIELD Plz AS CHARACTER
  48. FIELD Suchbe AS CHARACTER
  49. FIELD Datum AS DATE
  50. FIELD cTel AS CHARACTER
  51. FIELD cSort AS CHARACTER.
  52. DEFINE TEMP-TABLE TUmsatz
  53. FIELD Knr AS INTEGER
  54. FIELD Firma AS CHARACTER
  55. FIELD Jahr AS INTEGER
  56. FIELD Wgr AS INTEGER
  57. FIELD Umsatz AS DECIMAL
  58. INDEX TUmsatz-k1 IS PRIMARY
  59. Knr
  60. Firma
  61. Jahr
  62. Wgr.
  63. DEFINE BUFFER BUmsatz FOR TUmsatz.
  64. DEFINE TEMP-TABLE tTabel LIKE Tabel .
  65. DEFINE TEMP-TABLE TWgr LIKE WarenGrp.
  66. DEFINE TEMP-TABLE tKuBesSpe LIKE KuBesSpe
  67. FIELD Kontakt AS CHARACTER
  68. FIELD Aktivitaet AS CHARACTER
  69. FIELD Vertr AS INTEGER
  70. FIELD cSpesenArt AS CHARACTER
  71. FIELD cKonto AS CHARACTER
  72. FIELD lKunden AS LOG
  73. .
  74. DEFINE TEMP-TABLE TExcel
  75. FIELD Nummer AS INTEGER
  76. FIELD Feld AS CHARACTER
  77. INDEX TExcel-k1 IS PRIMARY
  78. Nummer .
  79. DEFINE TEMP-TABLE TAdresse LIKE Adresse.
  80. DEFINE TEMP-TABLE tTotale NO-UNDO
  81. FIELD cArt AS CHARACTER
  82. FIELD cSchluessel AS CHARACTER
  83. FIELD Betrag AS DECIMAL.
  84. /* _UIB-CODE-BLOCK-END */
  85. &ANALYZE-RESUME
  86. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  87. /* ******************** Preprocessor Definitions ******************** */
  88. &Scoped-define PROCEDURE-TYPE SmartDialog
  89. &Scoped-define DB-AWARE no
  90. &Scoped-define ADM-CONTAINER DIALOG-BOX
  91. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  92. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  93. &Scoped-define FRAME-NAME gVertrAusw
  94. /* Standard List Definitions */
  95. &Scoped-Define ENABLED-OBJECTS RECT-13 CB_Vertreter CB_Listenart ~
  96. F_Kundengrp F_Preisgrp F_Aktivitaeten F_VonDat F_BisDat F_VonKnr F_BisKnr ~
  97. T_Besuchsart T_Wirtesonntag R_Abgeschl R_Sort Btn_OK Btn_Cancel F_Sort
  98. &Scoped-Define DISPLAYED-OBJECTS CB_Vertreter CB_Listenart F_Kundengrp ~
  99. F_Preisgrp F_Aktivitaeten F_VonDat F_BisDat F_VonKnr F_BisKnr T_Besuchsart ~
  100. T_Wirtesonntag R_Abgeschl R_Sort F_Sort
  101. /* Custom List Definitions */
  102. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  103. &Scoped-define List-6 CB_Vertreter CB_Listenart F_Kundengrp F_Preisgrp ~
  104. F_Aktivitaeten F_VonDat F_BisDat F_VonKnr F_BisKnr T_Besuchsart ~
  105. T_Wirtesonntag R_Abgeschl R_Sort
  106. /* _UIB-PREPROCESSOR-BLOCK-END */
  107. &ANALYZE-RESUME
  108. /* *********************** Control Definitions ********************** */
  109. /* Define a dialog box */
  110. /* Definitions of the field level widgets */
  111. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  112. LABEL "&Abbrechen"
  113. SIZE 15 BY 1.
  114. DEFINE BUTTON Btn_OK
  115. IMAGE-UP FILE "grafik/results%.ico":U
  116. IMAGE-INSENSITIVE FILE "grafik/results%.ico":U
  117. LABEL "Excel"
  118. SIZE 7 BY 1.71.
  119. DEFINE VARIABLE CB_Listenart AS CHARACTER FORMAT "X(256)":U INITIAL "03"
  120. LABEL "Listenart"
  121. VIEW-AS COMBO-BOX INNER-LINES 5
  122. LIST-ITEM-PAIRS "Besuchsblatt","01",
  123. "Kundenbesuchsplan","02",
  124. "Spesenabrechnung","03"
  125. DROP-DOWN-LIST
  126. SIZE 38 BY 1
  127. BGCOLOR 15 NO-UNDO.
  128. DEFINE VARIABLE CB_Vertreter AS CHARACTER FORMAT "X(256)":U INITIAL "03"
  129. LABEL "Vertreter"
  130. VIEW-AS COMBO-BOX INNER-LINES 5
  131. DROP-DOWN-LIST
  132. SIZE 38 BY 1
  133. BGCOLOR 15 NO-UNDO.
  134. DEFINE VARIABLE F_Aktivitaeten AS CHARACTER FORMAT "X(256)":U
  135. LABEL "Aktivitäten"
  136. VIEW-AS FILL-IN NATIVE
  137. SIZE 60 BY 1
  138. BGCOLOR 15 NO-UNDO.
  139. DEFINE VARIABLE F_BisDat AS DATE FORMAT "99.99.9999":U
  140. LABEL "-"
  141. VIEW-AS FILL-IN NATIVE
  142. SIZE 16 BY 1
  143. BGCOLOR 15 NO-UNDO.
  144. DEFINE VARIABLE F_BisKnr AS INTEGER FORMAT "999999":U INITIAL 0
  145. LABEL "-"
  146. VIEW-AS FILL-IN NATIVE
  147. SIZE 11 BY 1
  148. BGCOLOR 15 NO-UNDO.
  149. DEFINE VARIABLE F_Kundengrp AS CHARACTER FORMAT "X(256)":U
  150. LABEL "Kundengruppen"
  151. VIEW-AS FILL-IN NATIVE
  152. SIZE 60 BY 1
  153. BGCOLOR 15 NO-UNDO.
  154. DEFINE VARIABLE F_Preisgrp AS CHARACTER FORMAT "X(256)":U
  155. LABEL "Preisgruppen"
  156. VIEW-AS FILL-IN NATIVE
  157. SIZE 60 BY 1
  158. BGCOLOR 15 NO-UNDO.
  159. DEFINE VARIABLE F_Sort AS CHARACTER FORMAT "X(256)":U INITIAL "Sortierung beim Besuchsplan"
  160. VIEW-AS TEXT
  161. SIZE 33.6 BY .71 NO-UNDO.
  162. DEFINE VARIABLE F_VonDat AS DATE FORMAT "99.99.9999":U
  163. LABEL "von - bis Datum"
  164. VIEW-AS FILL-IN NATIVE
  165. SIZE 16 BY 1
  166. BGCOLOR 15 NO-UNDO.
  167. DEFINE VARIABLE F_VonKnr AS INTEGER FORMAT "999999":U INITIAL 0
  168. LABEL "von - bis Kundennummer"
  169. VIEW-AS FILL-IN NATIVE
  170. SIZE 11 BY 1
  171. BGCOLOR 15 NO-UNDO.
  172. DEFINE VARIABLE R_Abgeschl AS INTEGER
  173. VIEW-AS RADIO-SET VERTICAL
  174. RADIO-BUTTONS
  175. "alle", 1,
  176. "nur unerledigte", 2,
  177. "nur erledigte", 3
  178. SIZE 34 BY 2.38 NO-UNDO.
  179. DEFINE VARIABLE R_Sort AS INTEGER
  180. VIEW-AS RADIO-SET VERTICAL
  181. RADIO-BUTTONS
  182. "Datum/Ort", 1,
  183. "Plz", 2,
  184. "Ort", 3
  185. SIZE 34 BY 2.38 NO-UNDO.
  186. DEFINE RECTANGLE RECT-13
  187. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  188. SIZE 97.8 BY 21.48.
  189. DEFINE VARIABLE T_Besuchsart AS LOGICAL INITIAL NO
  190. LABEL "Besuchsart"
  191. VIEW-AS TOGGLE-BOX
  192. SIZE 30 BY 1 NO-UNDO.
  193. DEFINE VARIABLE T_Wirtesonntag AS LOGICAL INITIAL NO
  194. LABEL "Wirtesonntag"
  195. VIEW-AS TOGGLE-BOX
  196. SIZE 30 BY 1 NO-UNDO.
  197. /* ************************ Frame Definitions *********************** */
  198. DEFINE FRAME gVertrAusw
  199. CB_Vertreter AT ROW 1.52 COL 28 COLON-ALIGNED
  200. CB_Listenart AT ROW 2.52 COL 28 COLON-ALIGNED
  201. F_Kundengrp AT ROW 3.52 COL 28 COLON-ALIGNED
  202. F_Preisgrp AT ROW 4.52 COL 28 COLON-ALIGNED
  203. F_Aktivitaeten AT ROW 5.52 COL 28 COLON-ALIGNED
  204. F_VonDat AT ROW 8 COL 28 COLON-ALIGNED
  205. F_BisDat AT ROW 8 COL 47 COLON-ALIGNED
  206. F_VonKnr AT ROW 9 COL 28 COLON-ALIGNED
  207. F_BisKnr AT ROW 9 COL 47 COLON-ALIGNED
  208. T_Besuchsart AT ROW 11 COL 30
  209. T_Wirtesonntag AT ROW 12 COL 30
  210. R_Abgeschl AT ROW 13.38 COL 30 NO-LABEL
  211. R_Sort AT ROW 16.86 COL 30 NO-LABEL WIDGET-ID 2
  212. Btn_OK AT ROW 19.76 COL 29.8
  213. Btn_Cancel AT ROW 20.1 COL 54
  214. F_Sort AT ROW 16.05 COL 28 COLON-ALIGNED NO-LABEL WIDGET-ID 8
  215. RECT-13 AT ROW 1.24 COL 2
  216. SPACE(2.39) SKIP(0.46)
  217. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  218. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  219. TITLE "Vertreterauswertungen"
  220. CANCEL-BUTTON Btn_Cancel.
  221. /* *********************** Procedure Settings ************************ */
  222. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  223. /* Settings for THIS-PROCEDURE
  224. Type: SmartDialog
  225. Allow: Basic,Browse,DB-Fields,Query,Smart
  226. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  227. Design Page: 1
  228. Other Settings: COMPILE
  229. */
  230. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  231. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gVertrAusw
  232. /* ************************* Included-Libraries *********************** */
  233. {src/adm2/containr.i}
  234. /* _UIB-CODE-BLOCK-END */
  235. &ANALYZE-RESUME
  236. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  237. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  238. /* SETTINGS FOR DIALOG-BOX gVertrAusw
  239. FRAME-NAME */
  240. ASSIGN
  241. FRAME gVertrAusw:SCROLLABLE = FALSE
  242. FRAME gVertrAusw:HIDDEN = TRUE.
  243. /* SETTINGS FOR COMBO-BOX CB_Listenart IN FRAME gVertrAusw
  244. 6 */
  245. /* SETTINGS FOR COMBO-BOX CB_Vertreter IN FRAME gVertrAusw
  246. 6 */
  247. /* SETTINGS FOR FILL-IN F_Aktivitaeten IN FRAME gVertrAusw
  248. 6 */
  249. /* SETTINGS FOR FILL-IN F_BisDat IN FRAME gVertrAusw
  250. 6 */
  251. /* SETTINGS FOR FILL-IN F_BisKnr IN FRAME gVertrAusw
  252. 6 */
  253. /* SETTINGS FOR FILL-IN F_Kundengrp IN FRAME gVertrAusw
  254. 6 */
  255. /* SETTINGS FOR FILL-IN F_Preisgrp IN FRAME gVertrAusw
  256. 6 */
  257. ASSIGN
  258. F_Sort:READ-ONLY IN FRAME gVertrAusw = TRUE.
  259. /* SETTINGS FOR FILL-IN F_VonDat IN FRAME gVertrAusw
  260. 6 */
  261. /* SETTINGS FOR FILL-IN F_VonKnr IN FRAME gVertrAusw
  262. 6 */
  263. /* SETTINGS FOR RADIO-SET R_Abgeschl IN FRAME gVertrAusw
  264. 6 */
  265. /* SETTINGS FOR RADIO-SET R_Sort IN FRAME gVertrAusw
  266. 6 */
  267. /* SETTINGS FOR TOGGLE-BOX T_Besuchsart IN FRAME gVertrAusw
  268. 6 */
  269. /* SETTINGS FOR TOGGLE-BOX T_Wirtesonntag IN FRAME gVertrAusw
  270. 6 */
  271. /* _RUN-TIME-ATTRIBUTES-END */
  272. &ANALYZE-RESUME
  273. /* Setting information for Queries and Browse Widgets fields */
  274. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gVertrAusw
  275. /* Query rebuild information for DIALOG-BOX gVertrAusw
  276. _Options = "SHARE-LOCK"
  277. _Query is NOT OPENED
  278. */ /* DIALOG-BOX gVertrAusw */
  279. &ANALYZE-RESUME
  280. /* ************************ Control Triggers ************************ */
  281. &Scoped-define SELF-NAME gVertrAusw
  282. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gVertrAusw gVertrAusw
  283. ON END-ERROR OF FRAME gVertrAusw /* Vertreterauswertungen */
  284. DO:
  285. RUN ENDE.
  286. RETURN NO-APPLY.
  287. END.
  288. /* _UIB-CODE-BLOCK-END */
  289. &ANALYZE-RESUME
  290. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gVertrAusw gVertrAusw
  291. ON GO OF FRAME gVertrAusw /* Vertreterauswertungen */
  292. DO:
  293. /*
  294. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR.
  295. */
  296. END.
  297. /* _UIB-CODE-BLOCK-END */
  298. &ANALYZE-RESUME
  299. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gVertrAusw gVertrAusw
  300. ON WINDOW-CLOSE OF FRAME gVertrAusw /* Vertreterauswertungen */
  301. DO:
  302. RUN ENDE.
  303. RETURN NO-APPLY.
  304. END.
  305. /* _UIB-CODE-BLOCK-END */
  306. &ANALYZE-RESUME
  307. &Scoped-define SELF-NAME Btn_Cancel
  308. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gVertrAusw
  309. ON CHOOSE OF Btn_Cancel IN FRAME gVertrAusw /* Abbrechen */
  310. DO:
  311. RUN ENDE.
  312. RETURN NO-APPLY.
  313. END.
  314. /* _UIB-CODE-BLOCK-END */
  315. &ANALYZE-RESUME
  316. &Scoped-define SELF-NAME Btn_OK
  317. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gVertrAusw
  318. ON CHOOSE OF Btn_OK IN FRAME gVertrAusw /* Excel */
  319. DO:
  320. DO WITH FRAME {&FRAME-NAME}:
  321. Btn_OK:SENSITIVE = FALSE.
  322. Btn_Cancel:SENSITIVE = FALSE.
  323. SESSION:SET-WAIT-STATE ('GENERAL').
  324. END.
  325. RUN REPORT.
  326. DO WITH FRAME {&FRAME-NAME}:
  327. Btn_OK:SENSITIVE = TRUE.
  328. Btn_Cancel:SENSITIVE = TRUE.
  329. SESSION:SET-WAIT-STATE('').
  330. END.
  331. RUN ENDE.
  332. RETURN NO-APPLY.
  333. END.
  334. /* _UIB-CODE-BLOCK-END */
  335. &ANALYZE-RESUME
  336. &Scoped-define SELF-NAME CB_Listenart
  337. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Listenart gVertrAusw
  338. ON VALUE-CHANGED OF CB_Listenart IN FRAME gVertrAusw /* Listenart */
  339. DO:
  340. CASE CB_listenart:SCREEN-VALUE:
  341. WHEN '02' THEN
  342. DO WITH FRAME {&FRAME-NAME}:
  343. R_Sort:HIDDEN = FALSE.
  344. F_Sort:HIDDEN = FALSE.
  345. END.
  346. OTHERWISE
  347. DO:
  348. R_Sort:HIDDEN = TRUE.
  349. F_Sort:HIDDEN = TRUE.
  350. END.
  351. END CASE.
  352. END.
  353. /* _UIB-CODE-BLOCK-END */
  354. &ANALYZE-RESUME
  355. &Scoped-define SELF-NAME F_Aktivitaeten
  356. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Aktivitaeten gVertrAusw
  357. ON RIGHT-MOUSE-CLICK OF F_Aktivitaeten IN FRAME gVertrAusw /* Aktivitäten */
  358. DO:
  359. RUN g-auswahl-tabelle.w ( INPUT SELF, INPUT 'BESUCH' ).
  360. END.
  361. /* _UIB-CODE-BLOCK-END */
  362. &ANALYZE-RESUME
  363. &Scoped-define SELF-NAME F_Kundengrp
  364. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Kundengrp gVertrAusw
  365. ON RIGHT-MOUSE-CLICK OF F_Kundengrp IN FRAME gVertrAusw /* Kundengruppen */
  366. DO:
  367. RUN g-auswahl-tabelle.w ( INPUT SELF, INPUT 'KUNDGRP' ).
  368. END.
  369. /* _UIB-CODE-BLOCK-END */
  370. &ANALYZE-RESUME
  371. &Scoped-define SELF-NAME F_Preisgrp
  372. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Preisgrp gVertrAusw
  373. ON RIGHT-MOUSE-CLICK OF F_Preisgrp IN FRAME gVertrAusw /* Preisgruppen */
  374. DO:
  375. RUN g-auswahl-tabelle.w ( INPUT SELF, INPUT 'PREGRP' ).
  376. END.
  377. /* _UIB-CODE-BLOCK-END */
  378. &ANALYZE-RESUME
  379. &Scoped-define SELF-NAME F_VonKnr
  380. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_VonKnr gVertrAusw
  381. ON ALT-F OF F_VonKnr IN FRAME gVertrAusw /* von - bis Kundennummer */
  382. DO:
  383. DEFINE VARIABLE cAdresse AS CHARACTER NO-UNDO.
  384. RUN g-such-adresse.w ( OUTPUT cAdresse ) NO-ERROR.
  385. IF cAdresse <> '' THEN SELF:SCREEN-VALUE = STRING(INTEGER(ENTRY(3, cAdresse, CHR(01)))) NO-ERROR.
  386. APPLY 'ENTRY' TO SELF.
  387. RETURN NO-APPLY.
  388. END.
  389. /* _UIB-CODE-BLOCK-END */
  390. &ANALYZE-RESUME
  391. &UNDEFINE SELF-NAME
  392. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gVertrAusw
  393. /* *************************** Main Block *************************** */
  394. MaxPage = 1.
  395. AktSeite = 1.
  396. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  397. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  398. EMPTY TEMP-TABLE tAdresse.
  399. EMPTY TEMP-TABLE tTabel .
  400. CREATE TAdresse.
  401. FOR EACH Tabel WHERE Tabel.Firma = Firma
  402. AND Tabel.RecArt = 'BESUCH' NO-LOCK:
  403. CREATE tTabel.
  404. BUFFER-COPY Tabel TO tTabel.
  405. END.
  406. SESSION:DATA-ENTRY-RETURN = TRUE.
  407. SUBSCRIBE TO 'TOOLBAR' ANYWHERE.
  408. /* TRIGGERS ------------------------------------------------------ */
  409. ON 'ALT-CURSOR-RIGHT':U OF FRAME {&FRAME-NAME} ANYWHERE
  410. DO:
  411. RUN NEXTPAGE.
  412. END.
  413. ON 'ALT-CURSOR-LEFT':U OF FRAME {&FRAME-NAME} ANYWHERE
  414. DO:
  415. RUN PREVPAGE.
  416. END.
  417. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE
  418. DO:
  419. RUN ENTRY_CURSOR.
  420. END.
  421. /*
  422. ON 'PAGE-DOWN':U OF {&WINDOW-NAME} ANYWHERE
  423. DO:
  424. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Next':U ).
  425. END.
  426. ON 'PAGE-UP':U OF {&WINDOW-NAME} ANYWHERE
  427. DO:
  428. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Prev':U ).
  429. END.
  430. ON 'ALT-RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE
  431. DO:
  432. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'UPDATE':U ).
  433. END.
  434. ON 'ALT-INS':U OF FRAME {&FRAME-NAME} ANYWHERE
  435. DO:
  436. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'ADD':U ).
  437. END.
  438. ON 'ALT-DEL':U OF FRAME {&FRAME-NAME} ANYWHERE
  439. DO:
  440. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'DELETE':U ).
  441. END.
  442. ON 'ALT-R':U OF FRAME {&FRAME-NAME} ANYWHERE
  443. DO:
  444. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'RESET':U ).
  445. END.
  446. ON 'F9':U OF FRAME {&FRAME-NAME} ANYWHERE
  447. DO:
  448. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ).
  449. END.
  450. ON 'ALT-S':U OF FRAME {&FRAME-NAME} ANYWHERE
  451. DO:
  452. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ).
  453. END.
  454. ON 'ALT-K':U OF FRAME {&FRAME-NAME} ANYWHERE
  455. DO:
  456. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'COPY':U ).
  457. END.
  458. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE
  459. DO:
  460. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  461. IF FMutFlag = FALSE THEN DO:
  462. RUN ENDE.
  463. RETURN NO-APPLY.
  464. END.
  465. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'CANCEL':U ).
  466. RETURN NO-APPLY.
  467. END.
  468. */
  469. /* ------------------------------------------------------------------ */
  470. {src/adm2/dialogmn.i}
  471. /* _UIB-CODE-BLOCK-END */
  472. &ANALYZE-RESUME
  473. /* ********************** Internal Procedures *********************** */
  474. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gVertrAusw _ADM-CREATE-OBJECTS
  475. PROCEDURE adm-create-objects :
  476. /*------------------------------------------------------------------------------
  477. Purpose: Create handles for all SmartObjects used in this procedure.
  478. After SmartObjects are initialized, then SmartLinks are added.
  479. Parameters: <none>
  480. ------------------------------------------------------------------------------*/
  481. END PROCEDURE.
  482. /* _UIB-CODE-BLOCK-END */
  483. &ANALYZE-RESUME
  484. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BEREINIGEN gVertrAusw
  485. PROCEDURE BEREINIGEN :
  486. /*------------------------------------------------------------------------------
  487. Purpose:
  488. Parameters: <none>
  489. Notes:
  490. ------------------------------------------------------------------------------*/
  491. DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  492. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  493. DEFINE VARIABLE i AS INTEGER NO-UNDO.
  494. cString = ''.
  495. DO i = 1 TO LENGTH(ipHandle:SCREEN-VALUE):
  496. IF SUBSTRING(ipHandle:SCREEN-VALUE,i,1) < '0' OR
  497. SUBSTRING(ipHandle:SCREEN-VALUE,i,1) > '9' THEN
  498. DO:
  499. SUBSTRING(ipHandle:SCREEN-VALUE,i) = ','.
  500. END.
  501. END.
  502. DO i = 1 TO NUM-ENTRIES(ipHandle:SCREEN-VALUE, ','):
  503. IF cString <> '' THEN cString = cString + ','.
  504. cString = cString
  505. + STRING(INTEGER(ENTRY(i, ipHandle:SCREEN-VALUE, ',')),'999').
  506. END.
  507. ipHandle:SCREEN-VALUE = cString.
  508. RETURN.
  509. END PROCEDURE.
  510. /* _UIB-CODE-BLOCK-END */
  511. &ANALYZE-RESUME
  512. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage gVertrAusw
  513. PROCEDURE changePage :
  514. /*------------------------------------------------------------------------------
  515. Purpose: Super Override
  516. Parameters:
  517. Notes:
  518. ------------------------------------------------------------------------------*/
  519. /* Code placed here will execute PRIOR to standard behavior. */
  520. RUN SUPER.
  521. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  522. CASE AktSeite:
  523. WHEN 1 THEN
  524. DO:
  525. /* RUN addLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */
  526. /* RUN addLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */
  527. /* RUN ToolbarInit ( INPUT h_d-auftr ). */
  528. RUN ENTRY_CURSOR.
  529. END.
  530. WHEN 2 THEN
  531. DO:
  532. RUN ENTRY_CURSOR.
  533. END.
  534. END CASE.
  535. END PROCEDURE.
  536. /* _UIB-CODE-BLOCK-END */
  537. &ANALYZE-RESUME
  538. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DATEI_EINLESEN gVertrAusw
  539. PROCEDURE DATEI_EINLESEN :
  540. /*------------------------------------------------------------------------------
  541. Purpose:
  542. Parameters: <none>
  543. Notes:
  544. ------------------------------------------------------------------------------*/
  545. DEFINE INPUT PARAMETER ipDatei AS CHARACTER NO-UNDO.
  546. DEFINE VARIABLE Zeile AS CHARACTER NO-UNDO.
  547. DEFINE VARIABLE i AS INTEGER NO-UNDO.
  548. EMPTY TEMP-TABLE TExcel.
  549. i = 0.
  550. INPUT STREAM I_Stream FROM VALUE(ipDatei) NO-ECHO NO-MAP.
  551. REPEAT ON STOP UNDO, LEAVE WITH FRAME f_Print:
  552. IMPORT STREAM I_Stream UNFORMATTED Zeile.
  553. i = i + 1.
  554. CREATE TExcel.
  555. ASSIGN
  556. TExcel.Nummer = i
  557. TExcel.Feld = Zeile.
  558. END.
  559. INPUT STREAM I_Stream CLOSE.
  560. OUTPUT STREAM O_Stream TO VALUE(ipDatei) NO-ECHO NO-MAP.
  561. FOR EACH TExcel NO-LOCK:
  562. Zeile = TExcel.Feld.
  563. IF Zeile BEGINS 'xGrau' OR
  564. Zeile BEGINS 'xRechts' OR
  565. Zeile BEGINS 'xNeueSeite' THEN ENTRY (1, Zeile, '£') = ''.
  566. PUT STREAM O_Stream CONTROL Zeile CHR(13).
  567. END.
  568. OUTPUT STREAM O_Stream CLOSE.
  569. END PROCEDURE.
  570. /* _UIB-CODE-BLOCK-END */
  571. &ANALYZE-RESUME
  572. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gVertrAusw _DEFAULT-DISABLE
  573. PROCEDURE disable_UI :
  574. /*------------------------------------------------------------------------------
  575. Purpose: DISABLE the User Interface
  576. Parameters: <none>
  577. Notes: Here we clean-up the user-interface by deleting
  578. dynamic widgets we have created and/or hide
  579. frames. This procedure is usually called when
  580. we are ready to "clean-up" after running.
  581. ------------------------------------------------------------------------------*/
  582. /* Hide all frames. */
  583. HIDE FRAME gVertrAusw.
  584. END PROCEDURE.
  585. /* _UIB-CODE-BLOCK-END */
  586. &ANALYZE-RESUME
  587. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gVertrAusw
  588. PROCEDURE enableObject :
  589. /*------------------------------------------------------------------------------
  590. Purpose: Super Override
  591. Parameters:
  592. Notes:
  593. ------------------------------------------------------------------------------*/
  594. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  595. cInstallation = DYNAMIC-FUNCTION ('getInstallation':U).
  596. cBenutzer = DYNAMIC-FUNCTION ('getBenutzer':U).
  597. DO WITH FRAME {&FRAME-NAME}:
  598. RUN COMBO_VERTRETER ( INPUT CB_Vertreter:HANDLE ) NO-ERROR.
  599. cString = CB_Vertreter:LIST-ITEM-PAIRS + ';' + 'Alle Vertreter (0);000000'.
  600. CB_Vertreter:LIST-ITEM-PAIRS = cString.
  601. RUN LESEN_FEHLWERTE.
  602. END.
  603. RUN SUPER.
  604. /* oswald spezial */
  605. IF cInstallation = 'oswald' AND
  606. cBenutzer = 'gt' THEN
  607. DO:
  608. CB_Vertreter:SCREEN-VALUE = '000030'.
  609. CB_Vertreter:SENSITIVE = FALSE.
  610. END.
  611. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR.
  612. END PROCEDURE.
  613. /* _UIB-CODE-BLOCK-END */
  614. &ANALYZE-RESUME
  615. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gVertrAusw _DEFAULT-ENABLE
  616. PROCEDURE enable_UI :
  617. /*------------------------------------------------------------------------------
  618. Purpose: ENABLE the User Interface
  619. Parameters: <none>
  620. Notes: Here we display/view/enable the widgets in the
  621. user-interface. In addition, OPEN all queries
  622. associated with each FRAME and BROWSE.
  623. These statements here are based on the "Other
  624. Settings" section of the widget Property Sheets.
  625. ------------------------------------------------------------------------------*/
  626. DISPLAY CB_Vertreter CB_Listenart F_Kundengrp F_Preisgrp F_Aktivitaeten
  627. F_VonDat F_BisDat F_VonKnr F_BisKnr T_Besuchsart T_Wirtesonntag
  628. R_Abgeschl R_Sort F_Sort
  629. WITH FRAME gVertrAusw.
  630. ENABLE RECT-13 CB_Vertreter CB_Listenart F_Kundengrp F_Preisgrp
  631. F_Aktivitaeten F_VonDat F_BisDat F_VonKnr F_BisKnr T_Besuchsart
  632. T_Wirtesonntag R_Abgeschl R_Sort Btn_OK Btn_Cancel F_Sort
  633. WITH FRAME gVertrAusw.
  634. VIEW FRAME gVertrAusw.
  635. {&OPEN-BROWSERS-IN-QUERY-gVertrAusw}
  636. END PROCEDURE.
  637. /* _UIB-CODE-BLOCK-END */
  638. &ANALYZE-RESUME
  639. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gVertrAusw
  640. PROCEDURE ENDE :
  641. /*------------------------------------------------------------------------------
  642. Purpose:
  643. Parameters: <none>
  644. Notes:
  645. ------------------------------------------------------------------------------*/
  646. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  647. IF AktSeite > 1 THEN
  648. DO:
  649. RUN selectPage ( INPUT 1 ).
  650. RETURN NO-APPLY.
  651. END.
  652. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  653. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  654. RETURN NO-APPLY.
  655. END PROCEDURE.
  656. /* _UIB-CODE-BLOCK-END */
  657. &ANALYZE-RESUME
  658. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR gVertrAusw
  659. PROCEDURE ENTRY_CURSOR :
  660. /*------------------------------------------------------------------------------
  661. Purpose:
  662. Parameters: <none>
  663. Notes:
  664. ------------------------------------------------------------------------------*/
  665. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  666. CASE AktSeite:
  667. /* WHEN 1 THEN RUN applyEntry IN h_v-adresse ( INPUT ? ). */
  668. /* WHEN 2 THEN RUN applyEntry IN h_f-adrkomm ( INPUT ? ). */
  669. /* WHEN 3 THEN RUN applyEntry IN h_b-auftbb ( INPUT ? ). */
  670. /* WHEN 4 THEN RUN applyEntry IN h_b-aufdet ( INPUT ? ). */
  671. /* WHEN 5 THEN RUN applyEntry IN h_b-aufstreu ( INPUT ? ). */
  672. /* WHEN 6 THEN RUN applyEntry IN h_b-auffak ( INPUT ? ). */
  673. /* WHEN 7 THEN RUN applyEntry IN h_b-position ( INPUT ? ). */
  674. END CASE.
  675. RETURN NO-APPLY.
  676. END PROCEDURE.
  677. /* _UIB-CODE-BLOCK-END */
  678. &ANALYZE-RESUME
  679. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gVertrAusw
  680. PROCEDURE exitObject :
  681. /*------------------------------------------------------------------------------
  682. Purpose: Super Override
  683. Parameters:
  684. Notes:
  685. ------------------------------------------------------------------------------*/
  686. RUN ENDE.
  687. RETURN NO-APPLY.
  688. END PROCEDURE.
  689. /* _UIB-CODE-BLOCK-END */
  690. &ANALYZE-RESUME
  691. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FORMATIEREN gVertrAusw
  692. PROCEDURE FORMATIEREN :
  693. /*------------------------------------------------------------------------------
  694. Purpose:
  695. Parameters: <none>
  696. Notes:
  697. ------------------------------------------------------------------------------*/
  698. DEFINE INPUT PARAMETER ipExcel AS COMPONENT-HANDLE NO-UNDO.
  699. DEFINE VARIABLE i AS INTEGER NO-UNDO.
  700. DEFINE VARIABLE Selekt AS CHARACTER NO-UNDO.
  701. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO.
  702. Selekt = ''.
  703. FOR EACH TExcel NO-LOCK:
  704. DO WHILE TRUE:
  705. IF NOT TExcel.Feld BEGINS 'xGrau' THEN LEAVE.
  706. i = TExcel.Nummer + 2.
  707. Selekt = STRING(i) + ':' + STRING(i).
  708. ipExcel:Range(Selekt):SELECT.
  709. ipExcel:Application:RUN ( 'Grau' ).
  710. LEAVE.
  711. END.
  712. DO WHILE TRUE:
  713. IF NOT TExcel.Feld BEGINS 'xRechts' THEN LEAVE.
  714. i = TExcel.Nummer + 2.
  715. Selekt = 'C' + STRING(i) + ':Z' + STRING(i).
  716. ipExcel:Range(Selekt):SELECT.
  717. ipExcel:Selection:HorizontalAlignment = -4152.
  718. LEAVE.
  719. END.
  720. DO WHILE TRUE:
  721. IF NOT TExcel.Feld BEGINS 'xNeueSeite' THEN LEAVE.
  722. i = TExcel.Nummer + 2.
  723. Selekt = STRING(i) + ':' + STRING(i).
  724. ipExcel:Rows(Selekt):SELECT.
  725. ipExcel:ActiveWindow:SelectedSheets:HPageBreaks:Add (ipExcel:SELECTION).
  726. LEAVE.
  727. END.
  728. END.
  729. END PROCEDURE.
  730. /* _UIB-CODE-BLOCK-END */
  731. &ANALYZE-RESUME
  732. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF gVertrAusw
  733. PROCEDURE KOPF :
  734. /*------------------------------------------------------------------------------
  735. Purpose:
  736. Parameters: <none>
  737. Notes:
  738. ------------------------------------------------------------------------------*/
  739. DEFINE INPUT PARAMETER eh AS COMPONENT-HANDLE NO-UNDO.
  740. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO.
  741. DEFINE VARIABLE Breite AS DECIMAL NO-UNDO.
  742. FIND Steuer USE-INDEX Steuer-k1
  743. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  744. CASE LiArt:
  745. WHEN 1 THEN
  746. DO:
  747. Zelle = 'A1'.
  748. eh:Range(Zelle):Select.
  749. eh:Selection:Value = Steuer.Firma1.
  750. Zelle = 'M1'.
  751. eh:Range(Zelle):Select.
  752. eh:Selection:Value = 'Kunden-Karte'.
  753. Zelle = 'Z1'.
  754. eh:Range(Zelle):Select.
  755. eh:Selection:Value = 'Datum : ' + STRING(TODAY,'99.99.9999').
  756. Zelle = 'A2'.
  757. eh:Range(Zelle):Select.
  758. eh:Selection:Value = Steuer.Ort.
  759. Zelle = 'M2'.
  760. eh:Range(Zelle):Select.
  761. eh:Selection:Value = ''.
  762. Zelle = 'Z2'.
  763. eh:Range(Zelle):Select.
  764. eh:Selection:Value = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  765. END.
  766. WHEN 2 THEN
  767. DO:
  768. Zelle = 'A1'.
  769. eh:Range(Zelle):Select.
  770. eh:Selection:Value = Steuer.Firma1.
  771. Zelle = 'C1'.
  772. eh:Range(Zelle):Select.
  773. eh:Selection:Value = 'Besuchsplan'.
  774. Zelle = 'H1'.
  775. eh:Range(Zelle):Select.
  776. eh:Selection:Value = 'Datum : ' + STRING(TODAY,'99.99.9999').
  777. Zelle = 'A2'.
  778. eh:Range(Zelle):Select.
  779. eh:Selection:Value = Steuer.Ort.
  780. Zelle = 'C2'.
  781. eh:Range(Zelle):Select.
  782. eh:Selection:Value = 'per ' + STRING(F_VonDat,'99.99.9999').
  783. Zelle = 'H2'.
  784. eh:Range(Zelle):Select.
  785. eh:Selection:Value = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  786. IF NOT T_Besuchsart THEN
  787. DO:
  788. eh:Columns('E:E'):Select.
  789. Breite = eh:Selection:ColumnWidth.
  790. eh:Selection:EntireColumn:Hidden = TRUE.
  791. eh:Columns('D:D'):Select.
  792. Breite = Breite + eh:Selection:ColumnWidth.
  793. eh:Selection:ColumnWidth = Breite.
  794. END.
  795. IF NOT T_Wirtesonntag THEN
  796. DO:
  797. eh:Columns('G:G'):Select.
  798. Breite = eh:Selection:ColumnWidth.
  799. eh:Selection:EntireColumn:Hidden = TRUE.
  800. eh:Columns('B:B'):Select.
  801. Breite = Breite + eh:Selection:ColumnWidth.
  802. eh:Selection:ColumnWidth = Breite.
  803. END.
  804. END.
  805. WHEN 3 THEN
  806. DO:
  807. Zelle = 'A1'.
  808. eh:Range(Zelle):Select.
  809. eh:Selection:Value = Steuer.Firma1.
  810. Zelle = 'F1'.
  811. eh:Range(Zelle):Select.
  812. eh:Selection:Value = 'Spesenabrechnung'.
  813. Zelle = 'L1'.
  814. eh:Range(Zelle):Select.
  815. eh:Selection:Value = 'Datum : ' + STRING(TODAY,'99.99.9999').
  816. Zelle = 'A2'.
  817. eh:Range(Zelle):Select.
  818. eh:Selection:Value = Steuer.Ort.
  819. Zelle = 'F2'.
  820. eh:Range(Zelle):Select.
  821. eh:Selection:Value = STRING(F_VonDat,'99.99.9999')
  822. + ' - '
  823. + STRING(F_BisDat,'99.99.9999').
  824. Zelle = 'L2'.
  825. eh:Range(Zelle):Select.
  826. eh:Selection:Value = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  827. END.
  828. END CASE.
  829. END PROCEDURE.
  830. /* _UIB-CODE-BLOCK-END */
  831. &ANALYZE-RESUME
  832. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LESEN_FEHLWERTE gVertrAusw
  833. PROCEDURE LESEN_FEHLWERTE :
  834. /*------------------------------------------------------------------------------
  835. Purpose:
  836. Parameters: <none>
  837. Notes:
  838. ------------------------------------------------------------------------------*/
  839. DEFINE VARIABLE cVal AS CHARACTER NO-UNDO.
  840. DEFINE VARIABLE cKey AS CHARACTER NO-UNDO.
  841. DEFINE VARIABLE i AS INTEGER NO-UNDO.
  842. cKey = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.' ) NO-ERROR.
  843. GET-KEY-VALUE SECTION 'Auswertungen' KEY cKey VALUE cVal.
  844. IF cVal = ? THEN RETURN.
  845. DO WITH FRAME {&FRAME-NAME}:
  846. DO i = 1 TO NUM-ENTRIES(cVal, '@'):
  847. CASE i:
  848. WHEN 1 THEN
  849. CB_Vertreter :SCREEN-VALUE = ENTRY(i, cVal, '@') NO-ERROR.
  850. WHEN 2 THEN
  851. CB_Listenart :SCREEN-VALUE = ENTRY(i, cVal, '@') NO-ERROR.
  852. WHEN 3 THEN
  853. F_Kundengrp :SCREEN-VALUE = ENTRY(i, cVal, '@') NO-ERROR.
  854. WHEN 4 THEN
  855. F_Preisgrp :SCREEN-VALUE = ENTRY(i, cVal, '@') NO-ERROR.
  856. WHEN 5 THEN
  857. F_VonDat :SCREEN-VALUE = ENTRY(i, cVal, '@') NO-ERROR.
  858. WHEN 6 THEN
  859. F_BisDat :SCREEN-VALUE = ENTRY(i, cVal, '@') NO-ERROR.
  860. WHEN 7 THEN
  861. F_VonKnr :SCREEN-VALUE = ENTRY(i, cVal, '@') NO-ERROR.
  862. WHEN 8 THEN
  863. F_BisKnr :SCREEN-VALUE = ENTRY(i, cVal, '@') NO-ERROR.
  864. WHEN 9 THEN
  865. R_Abgeschl :SCREEN-VALUE = ENTRY(i, cVal, '@') NO-ERROR.
  866. WHEN 10 THEN
  867. F_Aktivitaeten:SCREEN-VALUE = ENTRY(i, cVal, '@') NO-ERROR.
  868. WHEN 11 THEN
  869. R_Sort :SCREEN-VALUE = ENTRY(i, cVal, '@') NO-ERROR.
  870. END CASE.
  871. END.
  872. ASSIGN {&List-6}.
  873. END.
  874. END PROCEDURE.
  875. /* _UIB-CODE-BLOCK-END */
  876. &ANALYZE-RESUME
  877. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE gVertrAusw
  878. PROCEDURE NEXTPAGE :
  879. /*------------------------------------------------------------------------------
  880. Purpose:
  881. Parameters: <none>
  882. Notes:
  883. ------------------------------------------------------------------------------*/
  884. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  885. IF AktSeite = MaxPage THEN AktSeite = 1.
  886. ELSE AktSeite = AktSeite + 1.
  887. RUN selectPage ( INPUT AktSeite ).
  888. END PROCEDURE.
  889. /* _UIB-CODE-BLOCK-END */
  890. &ANALYZE-RESUME
  891. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREVPAGE gVertrAusw
  892. PROCEDURE PREVPAGE :
  893. /*------------------------------------------------------------------------------
  894. Purpose:
  895. Parameters: <none>
  896. Notes:
  897. ------------------------------------------------------------------------------*/
  898. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  899. IF AktSeite = 1 THEN AktSeite = MaxPage.
  900. ELSE AktSeite = AktSeite - 1.
  901. RUN selectPage ( INPUT AktSeite ).
  902. END PROCEDURE.
  903. /* _UIB-CODE-BLOCK-END */
  904. &ANALYZE-RESUME
  905. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gVertrAusw
  906. PROCEDURE REPORT :
  907. /*------------------------------------------------------------------------------
  908. Purpose:
  909. Parameters: <none>
  910. Notes:
  911. ------------------------------------------------------------------------------*/
  912. DO WITH FRAME {&FRAME-NAME}:
  913. RUN BEREINIGEN ( INPUT F_Kundengrp :HANDLE ).
  914. RUN BEREINIGEN ( INPUT F_Preisgrp :HANDLE ).
  915. F_Aktivitaeten = REPLACE(F_Aktivitaeten, ';', ',').
  916. F_Aktivitaeten = REPLACE(F_Aktivitaeten, ' ', ',').
  917. ASSIGN {&List-6}.
  918. IF F_VonKnr = 0 AND F_BisKnr = 0 THEN F_BisKnr = 999999.
  919. IF F_VonKnr > F_BisKnr THEN F_BisKnr = F_VonKnr.
  920. IF F_VonDat = ? THEN F_VonDat = DATE(01,01,YEAR(TODAY)).
  921. IF F_BisDat = ? THEN F_BisDat = TODAY + 28.
  922. DISPLAY {&List-6}.
  923. RUN SCHREIBEN_FEHLWERTE.
  924. LiArt = INTEGER(CB_Listenart:SCREEN-VALUE).
  925. Vertr = INTEGER(CB_Vertreter:SCREEN-VALUE).
  926. END.
  927. CASE LiArt:
  928. WHEN 1 THEN RUN REPORT01.
  929. WHEN 2 THEN RUN REPORT02.
  930. WHEN 3 THEN RUN REPORT03.
  931. END CASE.
  932. END PROCEDURE.
  933. /* _UIB-CODE-BLOCK-END */
  934. &ANALYZE-RESUME
  935. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT01 gVertrAusw
  936. PROCEDURE REPORT01 :
  937. /*------------------------------------------------------------------------------
  938. Purpose:
  939. Parameters: <none>
  940. Notes:
  941. ------------------------------------------------------------------------------*/
  942. DEFINE VARIABLE cVorlage AS CHARACTER NO-UNDO.
  943. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO.
  944. DEFINE VARIABLE cDokument AS CHARACTER NO-UNDO.
  945. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  946. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO.
  947. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO.
  948. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  949. DEFINE VARIABLE cRetVal AS CHARACTER NO-UNDO.
  950. DEFINE VARIABLE ja AS LOG NO-UNDO.
  951. DEFINE VARIABLE i AS INTEGER NO-UNDO.
  952. DEFINE VARIABLE j AS INTEGER NO-UNDO.
  953. DEFINE VARIABLE k AS INTEGER NO-UNDO.
  954. DEFINE VARIABLE cDatum1 AS CHARACTER NO-UNDO.
  955. DEFINE VARIABLE cDatum2 AS CHARACTER NO-UNDO.
  956. DEFINE VARIABLE cipString AS CHARACTER NO-UNDO.
  957. DEFINE VARIABLE copString AS CHARACTER NO-UNDO.
  958. DEFINE VARIABLE cFremd1 AS CHARACTER NO-UNDO.
  959. DEFINE VARIABLE cFremd2 AS CHARACTER NO-UNDO.
  960. DEFINE VARIABLE cFremd3 AS CHARACTER NO-UNDO.
  961. DEFINE VARIABLE cFremd4 AS CHARACTER NO-UNDO.
  962. DEFINE VARIABLE cFremd5 AS CHARACTER NO-UNDO.
  963. DEFINE VARIABLE cVertr AS CHARACTER NO-UNDO.
  964. DEFINE VARIABLE cBier AS CHARACTER NO-UNDO.
  965. DEFINE VARIABLE cWiSo AS CHARACTER NO-UNDO.
  966. DEFINE VARIABLE cKuBes AS CHARACTER NO-UNDO.
  967. cFirma = ''.
  968. FOR EACH Steuer WHERE Steuer.AdFirma = AdFirma NO-LOCK:
  969. cFirma = cFirma + ',' + Steuer.Firma.
  970. END.
  971. cFirma = SUBSTRING(cFirma,02).
  972. EMPTY TEMP-TABLE tKuBes.
  973. EMPTY TEMP-TABLE TWgr.
  974. FOR EACH WarenGrp NO-LOCK:
  975. CREATE TWgr.
  976. BUFFER-COPY WarenGrp TO TWgr.
  977. END.
  978. IF Vertr > 0 THEN
  979. DO:
  980. FOR EACH KuBes USE-INDEX KuBes-k2
  981. WHERE KuBes.Firma = AdFirma
  982. AND KuBes.Vertr = Vertr
  983. AND KuBes.Knr >= F_VonKnr
  984. AND KuBes.Knr <= F_BisKnr
  985. AND KuBes.Datum_1 >= F_VonDat
  986. AND KuBes.Datum_1 <= F_BisDat
  987. AND ((F_Aktivitaeten = '') OR
  988. (LOOKUP(KuBes.Art, F_Aktivitaeten, ',') > 0))
  989. NO-LOCK,
  990. FIRST Adresse USE-INDEX Adresse-k1
  991. WHERE Adresse.Firma = KuBes.Firma
  992. AND Adresse.Knr = KuBes.Knr
  993. AND Adresse.Aktiv = TRUE NO-LOCK:
  994. IF R_Abgeschl = 2 AND
  995. KuBes.Abgeschl = TRUE THEN NEXT.
  996. IF R_Abgeschl = 3 AND
  997. KuBes.Abgeschl = FALSE THEN NEXT.
  998. DO WHILE TRUE:
  999. ja = TRUE.
  1000. IF F_Kundengrp = '' THEN LEAVE.
  1001. IF F_Preisgrp = '' THEN LEAVE.
  1002. FIND Debst USE-INDEX Debst-k1
  1003. WHERE Debst.Firma = Firma
  1004. AND Debst.Knr = KuBes.Knr
  1005. AND Debst.Aktiv = TRUE NO-LOCK NO-ERROR.
  1006. IF NOT AVAILABLE Debst THEN
  1007. DO:
  1008. ja = FALSE.
  1009. LEAVE.
  1010. END.
  1011. IF F_Kundengrp <> '' AND
  1012. LOOKUP(STRING(Debst.Ku_Grp ,'999'), F_Kundengrp, ',') = 0 THEN ja = FALSE.
  1013. IF F_Preisgrp <> '' AND
  1014. LOOKUP(STRING(Debst.Preis_Grp,'999'), F_Preisgrp , ',') = 0 THEN ja = FALSE.
  1015. LEAVE.
  1016. END.
  1017. IF NOT ja THEN NEXT.
  1018. CREATE tKuBes.
  1019. BUFFER-COPY KuBes TO tKuBes
  1020. ASSIGN
  1021. tKuBes.KdeInd = 0
  1022. tKuBes.Anzeig_Br = Adresse.Anzeig_Br.
  1023. IF tKuBes.Adr_04 <> '' THEN
  1024. DO:
  1025. tKuBes.Anzeig_br = tKuBes.Adr_04.
  1026. DO k = 3 TO 1 BY -1:
  1027. CASE k:
  1028. WHEN 1 THEN
  1029. DO:
  1030. IF tKuBes.Adr_01 = '' THEN NEXT.
  1031. tKuBes.Anzeig_br = tKuBes.Adr_01 + ', ' + tKuBes.Anzeig_br.
  1032. END.
  1033. WHEN 2 THEN
  1034. DO:
  1035. IF tKuBes.Adr_02 = '' THEN NEXT.
  1036. tKuBes.Anzeig_br = tKuBes.Adr_02 + ', ' + tKuBes.Anzeig_br.
  1037. END.
  1038. WHEN 3 THEN
  1039. DO:
  1040. IF tKuBes.Adr_03 = '' THEN NEXT.
  1041. tKuBes.Anzeig_br = tKuBes.Adr_03 + ', ' + tKuBes.Anzeig_br.
  1042. END.
  1043. END CASE.
  1044. END.
  1045. END.
  1046. END.
  1047. END.
  1048. IF Vertr = 0 THEN
  1049. DO:
  1050. FOR EACH KuBes USE-INDEX KuBes-k1
  1051. WHERE KuBes.Firma = AdFirma
  1052. AND KuBes.Knr >= F_VonKnr
  1053. AND KuBes.Knr <= F_BisKnr
  1054. AND KuBes.Datum_1 >= F_VonDat
  1055. AND KuBes.Datum_1 <= F_BisDat NO-LOCK,
  1056. FIRST Adresse USE-INDEX Adresse-k1
  1057. WHERE Adresse.Firma = KuBes.Firma
  1058. AND Adresse.Knr = KuBes.Knr
  1059. AND Adresse.Aktiv = TRUE NO-LOCK:
  1060. IF R_Abgeschl = 2 AND
  1061. KuBes.Abgeschl = TRUE THEN NEXT.
  1062. IF R_Abgeschl = 3 AND
  1063. KuBes.Abgeschl = FALSE THEN NEXT.
  1064. DO WHILE TRUE:
  1065. ja = TRUE.
  1066. IF F_Kundengrp = '' THEN LEAVE.
  1067. IF F_Preisgrp = '' THEN LEAVE.
  1068. FIND Debst USE-INDEX Debst-k1
  1069. WHERE Debst.Firma = Firma
  1070. AND Debst.Knr = KuBes.Knr
  1071. AND Debst.Aktiv = TRUE NO-LOCK NO-ERROR.
  1072. IF NOT AVAILABLE Debst THEN
  1073. DO:
  1074. ja = FALSE.
  1075. LEAVE.
  1076. END.
  1077. IF F_Kundengrp <> '' AND
  1078. LOOKUP(STRING(Debst.Ku_Grp ,'999'), F_Kundengrp, ',') = 0 THEN ja = FALSE.
  1079. IF F_Preisgrp <> '' AND
  1080. LOOKUP(STRING(Debst.Preis_Grp,'999'), F_Preisgrp , ',') = 0 THEN ja = FALSE.
  1081. LEAVE.
  1082. END.
  1083. IF NOT ja THEN NEXT.
  1084. CREATE tKuBes.
  1085. BUFFER-COPY KuBes TO tKuBes
  1086. ASSIGN
  1087. tKuBes.KdeInd = 0
  1088. tKuBes.Anzeig_Br = Adresse.Anzeig_Br.
  1089. IF tKuBes.Adr_04 <> '' THEN
  1090. DO:
  1091. tKuBes.Anzeig_br = tKuBes.Adr_04.
  1092. DO k = 3 TO 1 BY -1:
  1093. CASE k:
  1094. WHEN 1 THEN
  1095. DO:
  1096. IF tKuBes.Adr_01 = '' THEN NEXT.
  1097. tKuBes.Anzeig_br = tKuBes.Adr_01 + ', ' + tKuBes.Anzeig_br.
  1098. END.
  1099. WHEN 2 THEN
  1100. DO:
  1101. IF tKuBes.Adr_02 = '' THEN NEXT.
  1102. tKuBes.Anzeig_br = tKuBes.Adr_02 + ', ' + tKuBes.Anzeig_br.
  1103. END.
  1104. WHEN 3 THEN
  1105. DO:
  1106. IF tKuBes.Adr_03 = '' THEN NEXT.
  1107. tKuBes.Anzeig_br = tKuBes.Adr_03 + ', ' + tKuBes.Anzeig_br.
  1108. END.
  1109. END CASE.
  1110. END.
  1111. END.
  1112. END.
  1113. END.
  1114. DO WHILE TRUE:
  1115. FIND FIRST tKuBes NO-LOCK NO-ERROR.
  1116. IF AVAILABLE tKuBes THEN LEAVE.
  1117. IF F_VonKnr <> F_BisKnr THEN RETURN.
  1118. FIND Adresse USE-INDEX Adresse-k1
  1119. WHERE Adresse.Firma = AdFirma
  1120. AND Adresse.Knr = F_VonKnr NO-LOCK NO-ERROR.
  1121. IF NOT AVAILABLE Adresse THEN RETURN.
  1122. CREATE tKuBes.
  1123. ASSIGN
  1124. tKuBes.Firma = Adresse.Firma
  1125. tKuBes.Knr = Adresse.Knr
  1126. tKuBes.Datum_1 = ?
  1127. tKuBes.Datum_2 = ?
  1128. tKuBes.Vertr = 0
  1129. tKuBes.Abgeschl = FALSE.
  1130. LEAVE.
  1131. END.
  1132. FOR EACH tKuBes BY tKuBes.Firma
  1133. BY tKuBes.Knr
  1134. BY tKuBes.Datum_1
  1135. BY tKuBes.Ind.
  1136. IF tKuBes.Adr_04 = '' THEN j = 0.
  1137. ELSE j = j + 1.
  1138. tKuBes.KdeInd = j.
  1139. END.
  1140. cVorlage = 'KundenKarte.xls'.
  1141. cDokument = 'KundenKarte.xls'.
  1142. cDaten = 'KundenKarte.txt'.
  1143. cDateiName = cDokument + CHR(01) + cVorlage.
  1144. RUN CREATEDATEI ( INPUT cDateiName ).
  1145. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1146. cDokument = RETURN-VALUE.
  1147. cDateiName = cDaten.
  1148. RUN CREATEDATEI ( INPUT cDateiName ).
  1149. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1150. cDaten = RETURN-VALUE.
  1151. RUN FIND_VERTRETER ( INPUT Vertr, OUTPUT cString ) NO-ERROR.
  1152. IF cString = '' THEN cString = STRING(Vertr,'99') + CHR(01) + '??????????'.
  1153. OUTPUT TO VALUE(cDaten).
  1154. FOR EACH tKuBes BREAK BY tKuBes.Knr
  1155. BY tKuBes.KdeInd
  1156. BY tKuBes.Datum_1 DESCENDING
  1157. BY tKuBes.Ind :
  1158. IF tKuBes.Datum_1 = ? THEN cDatum1 = ''.
  1159. ELSE cDatum1 = STRING(tKuBes.Datum_1,'99.99.9999').
  1160. IF tKuBes.Datum_2 = ? THEN cDatum2 = ''.
  1161. ELSE cDatum2 = STRING(tKuBes.Datum_2,'99.99.9999').
  1162. DO WHILE TRUE:
  1163. IF NOT FIRST-OF ( tKuBes.KdeInd ) THEN LEAVE.
  1164. TotSaldo = 0.
  1165. TotUmsatz = 0.
  1166. cVertr = ''.
  1167. cBier = ''.
  1168. cWiSo = ''.
  1169. FIND Adresse USE-INDEX Adresse-k1
  1170. WHERE Adresse.Firma = tKuBes.Firma
  1171. AND Adresse.Knr = tKuBes.Knr NO-LOCK NO-ERROR.
  1172. FIND Debst USE-INDEX Debst-k1
  1173. WHERE Debst.Firma = tKuBes.Firma
  1174. AND Debst.Knr = tKuBes.Knr NO-LOCK NO-ERROR.
  1175. FIND KuBesSta USE-INDEX KuBesSta-k1
  1176. WHERE KuBesSta.Firma = tKuBes.Firma
  1177. AND KuBesSta.Knr = tKuBes.Knr NO-LOCK NO-ERROR.
  1178. FIND FIRST TAdresse.
  1179. BUFFER-COPY Adresse TO TAdresse.
  1180. IF tKuBes.Adr_04 <> '' THEN
  1181. DO:
  1182. ASSIGN
  1183. TAdresse.Anschrift = ''
  1184. TAdresse.Anschrift[11] = tKuBes.Adr_04
  1185. TAdresse.Anschrift[10] = tKuBes.Adr_03
  1186. TAdresse.Anschrift[09] = tKuBes.Adr_02
  1187. TAdresse.Anschrift[08] = tKuBes.Adr_01.
  1188. END.
  1189. IF AVAILABLE KuBesSta THEN
  1190. DO:
  1191. cipString = STRING(KuBesSta.FremdWgr1) + ';'
  1192. + STRING(KuBesSta.FremdWgr2) + ';'
  1193. + STRING(KuBesSta.FremdWgr3) + ';'
  1194. + STRING(KuBesSta.FremdWgr4) + ';'
  1195. + STRING(KuBesSta.FremdWgr5).
  1196. RUN WARENGRUPPEN ( INPUT cipString, OUTPUT copString ).
  1197. cFremd1 = ENTRY(1, copString, ';').
  1198. cFremd2 = ENTRY(2, copString, ';').
  1199. cFremd3 = ENTRY(3, copString, ';').
  1200. cFremd4 = ENTRY(4, copString, ';').
  1201. cFremd5 = ENTRY(5, copString, ';').
  1202. cKuBes = STRING(KuBesSta.AnzSoll ,'zz9') + '/'
  1203. + STRING(KuBesSta.AnzHaben,'zz9').
  1204. END.
  1205. lFirma = Firma.
  1206. IF AVAILABLE Debst THEN
  1207. DO:
  1208. RUN TABELLEN ( INPUT Debst.Vertr,
  1209. INPUT 'VERTR' ,
  1210. OUTPUT cVertr).
  1211. RUN TABELLEN ( INPUT Debst.Bier_Cd,
  1212. INPUT 'BIER' ,
  1213. OUTPUT cBier).
  1214. RUN TABELLEN ( INPUT Debst.Wirt_So,
  1215. INPUT 'WISO' ,
  1216. OUTPUT cWiSo).
  1217. END.
  1218. IF NOT FIRST ( tKuBes.KdeInd ) THEN PUT CONTROL 'xNeueSeite'.
  1219. DO i = 6 TO 11 WHILE AVAILABLE KuBesSta:
  1220. PUT CONTROL '£' TAdresse.Anschrift[i].
  1221. CASE i:
  1222. WHEN 06 THEN
  1223. PUT CONTROL '£££££££££££££££££££'
  1224. 'Fremdlieferanten'
  1225. '£££'
  1226. .
  1227. WHEN 07 THEN
  1228. PUT CONTROL '£££££££££££££££££££'
  1229. cFremd1
  1230. ':£££'
  1231. KuBesSta.FremdLief1.
  1232. WHEN 08 THEN
  1233. PUT CONTROL '£££££££££££'
  1234. 'Vertreter:£££'
  1235. cVertr
  1236. '£££££'
  1237. cFremd2
  1238. ':£££'
  1239. KuBesSta.FremdLief2.
  1240. WHEN 09 THEN
  1241. PUT CONTROL '£££££££££££'
  1242. 'Kundenbesuche:£££'
  1243. cKuBes
  1244. '£££££'
  1245. cFremd3
  1246. ':£££'
  1247. KuBesSta.FremdLief3.
  1248. WHEN 10 THEN
  1249. PUT CONTROL '£££££££££££'
  1250. 'Biergruppe:£££'
  1251. cBier
  1252. '£££££'
  1253. cFremd4
  1254. ':£££'
  1255. KuBesSta.FremdLief4.
  1256. WHEN 11 THEN
  1257. PUT CONTROL '££££'
  1258. STRING(tKuBes.Knr,'999999')
  1259. '£££££££'
  1260. 'Wirtesonntag:£££'
  1261. cWiSo
  1262. '£££££'
  1263. cFremd5
  1264. ':£££'
  1265. KuBesSta.FremdLief5.
  1266. END CASE.
  1267. PUT CONTROL CHR(10).
  1268. END.
  1269. PUT CONTROL '£' CHR(10)
  1270. '£Telefon Geschäft:£££' Adresse.Tel-1
  1271. '£££Telefon Privat:£££' Adresse.Tel-2 CHR(10)
  1272. '£Fax Geschäft:£££' Adresse.Tel-3
  1273. '£££Fax Privat:£££' Adresse.Tel-4 CHR(10) '£' CHR(10).
  1274. FOR EACH Debst USE-INDEX Debst-k2
  1275. WHERE Debst.Knr = tKuBes.Knr
  1276. AND Debst.Aktiv = TRUE NO-LOCK:
  1277. FIND Steuer WHERE Steuer.Firma = Debst.Firma NO-LOCK.
  1278. PUT CONTROL Steuer.Firma1
  1279. ' ('
  1280. TRIM(STRING(Debst.Saldo,'->>>,>>>9.99'))
  1281. ')' CHR(10).
  1282. lFirma = Debst.Firma.
  1283. RUN TABELLEN ( INPUT Debst.Ku_Grp,
  1284. INPUT 'KUNDGRP' ,
  1285. OUTPUT cRetVal).
  1286. cString = '££Kundengruppe:£££' + cRetVal.
  1287. RUN TABELLEN ( INPUT Debst.Preis_Grp,
  1288. INPUT 'PREGRP' ,
  1289. OUTPUT cRetVal).
  1290. cString = cString + '££££Preisgruppe:£££' + cRetVal.
  1291. RUN TABELLEN ( INPUT Debst.Rab_Grp,
  1292. INPUT 'RABGRP' ,
  1293. OUTPUT cRetVal).
  1294. cString = cString + '££££Rabattgruppe:£££' + cRetVal.
  1295. PUT CONTROL cString CHR(10).
  1296. RUN TABELLEN ( INPUT Debst.Bonus_Grp,
  1297. INPUT 'BONUS' ,
  1298. OUTPUT cRetVal).
  1299. cString = '££Bonusgruppe:£££' + cRetVal.
  1300. RUN TABELLEN ( INPUT Debst.ABC_Grp,
  1301. INPUT 'ABCGRP' ,
  1302. OUTPUT cRetVal).
  1303. cString = cString + '££££ABC-Gruppe:£££' + cRetVal.
  1304. FIND Kondi USE-INDEX Kondi-k1
  1305. WHERE Kondi.Sprcd = 1
  1306. AND Kondi.Kond = Debst.Kond NO-LOCK NO-ERROR.
  1307. cString = cString + '££££Zahlungskondition:£££'
  1308. + STRING(Debst.Kond,'999 ').
  1309. IF AVAILABLE Kondi THEN cString = cString + Kondi.KoText.
  1310. PUT CONTROL cString CHR(10).
  1311. PUT CONTROL '£' CHR(10).
  1312. TotSaldo = TotSaldo + Debst.Saldo.
  1313. END.
  1314. RUN UMSAETZE ( INPUT tKuBes.Knr ).
  1315. PUT CONTROL 'Total Umsatz / Saldo -> ('
  1316. TRIM(STRING(TotUmsatz,'->>>,>>>,>>9'))
  1317. ' / '
  1318. TRIM(STRING(TotSaldo ,'->>>,>>>,>>9.99'))
  1319. ')'
  1320. CHR(10) '£' CHR(10).
  1321. LEAVE.
  1322. END.
  1323. PUT CONTROL '££'.
  1324. PUT CONTROL cDatum1 '££'
  1325. tKuBes.Art '£'
  1326. STRING(tKuBes.Abgeschl,'ja/nein') '£'
  1327. cDatum2 '££'
  1328. STRING(tKuBes.Spesen,'->>9.99') '££'.
  1329. RUN TABELLEN ( INPUT tKuBes.Vertr,
  1330. INPUT 'VERTR' ,
  1331. OUTPUT cRetVal).
  1332. PUT CONTROL cRetVal.
  1333. j = NUM-ENTRIES(tKuBes.Beschreibung, CHR(10)).
  1334. IF j = 0 THEN j = 1.
  1335. DO i = 1 TO j:
  1336. IF i = 1 THEN PUT CONTROL '££££'.
  1337. ELSE PUT CONTROL '££££££££££££££'.
  1338. PUT CONTROL ENTRY(i, tKuBes.Beschreibung, CHR(10) ) CHR(10).
  1339. END.
  1340. IF LAST-OF(tKuBes.KdeInd) THEN PUT CONTROL '£' CHR(10).
  1341. END.
  1342. OUTPUT CLOSE.
  1343. RUN DATEI_EINLESEN ( INPUT cDaten ).
  1344. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  1345. IF NOT VALID-HANDLE(excelAppl) THEN
  1346. DO:
  1347. RUN FEHLER ( INPUT 1035 ).
  1348. RETURN.
  1349. END.
  1350. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
  1351. IF NOT ja THEN
  1352. DO:
  1353. RUN FEHLER ( INPUT 1040 ).
  1354. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1355. RETURN NO-APPLY.
  1356. END.
  1357. Zelle = 'A3'.
  1358. excelAppl:Range(Zelle):SELECT.
  1359. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten.
  1360. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  1361. RUN KOPF ( INPUT excelAppl ).
  1362. Zelle = 'A1'.
  1363. excelAppl:Range(Zelle):SELECT.
  1364. excelAppl:Selection:ColumnWidth = 0.3.
  1365. RUN FORMATIEREN ( INPUT excelAppl ).
  1366. Zelle = 'A1'.
  1367. excelAppl:Range(Zelle):SELECT.
  1368. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1369. END PROCEDURE.
  1370. /* _UIB-CODE-BLOCK-END */
  1371. &ANALYZE-RESUME
  1372. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT02 gVertrAusw
  1373. PROCEDURE REPORT02 :
  1374. /*------------------------------------------------------------------------------
  1375. Purpose:
  1376. Parameters: <none>
  1377. Notes:
  1378. ------------------------------------------------------------------------------*/
  1379. DEFINE VARIABLE cVorlage AS CHARACTER NO-UNDO.
  1380. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO.
  1381. DEFINE VARIABLE cDokument AS CHARACTER NO-UNDO.
  1382. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  1383. DEFINE VARIABLE cSonntag AS CHARACTER NO-UNDO.
  1384. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO.
  1385. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO.
  1386. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1387. DEFINE VARIABLE ja AS LOG NO-UNDO.
  1388. DEFINE VARIABLE i AS INTEGER NO-UNDO.
  1389. DEFINE VARIABLE j AS INTEGER NO-UNDO.
  1390. DEFINE VARIABLE k AS INTEGER NO-UNDO.
  1391. EMPTY TEMP-TABLE tKuBes.
  1392. IF Vertr > 0 THEN
  1393. DO:
  1394. FOR EACH KuBes USE-INDEX KuBes-k2
  1395. WHERE KuBes.Firma = Firma
  1396. AND KuBes.Vertr = Vertr
  1397. AND KuBes.Knr >= F_VonKnr
  1398. AND KuBes.Knr <= F_BisKnr
  1399. AND KuBes.Datum_1 >= F_VonDat
  1400. AND KuBes.Datum_1 <= F_BisDat
  1401. AND ((F_Aktivitaeten = '') OR
  1402. (LOOKUP(KuBes.Art, F_Aktivitaeten, ',') > 0))
  1403. NO-LOCK,
  1404. FIRST Adresse USE-INDEX Adresse-k1
  1405. WHERE Adresse.Firma = KuBes.Firma
  1406. AND Adresse.Knr = KuBes.Knr
  1407. AND Adresse.Aktiv = TRUE NO-LOCK:
  1408. IF R_Abgeschl = 2 AND
  1409. KuBes.Abgeschl = TRUE THEN NEXT.
  1410. IF R_Abgeschl = 3 AND
  1411. KuBes.Abgeschl = FALSE THEN NEXT.
  1412. DO WHILE TRUE:
  1413. ja = TRUE.
  1414. IF F_Kundengrp = '' THEN LEAVE.
  1415. IF F_Preisgrp = '' THEN LEAVE.
  1416. FIND Debst USE-INDEX Debst-k1
  1417. WHERE Debst.Firma = Firma
  1418. AND Debst.Knr = KuBes.Knr
  1419. AND Debst.Aktiv = TRUE NO-LOCK NO-ERROR.
  1420. IF NOT AVAILABLE Debst THEN
  1421. DO:
  1422. Ja = FALSE.
  1423. LEAVE.
  1424. END.
  1425. IF F_Kundengrp <> '' AND
  1426. LOOKUP(STRING(Debst.Ku_Grp ,'999'), F_Kundengrp, ',') = 0 THEN Ja = FALSE.
  1427. IF F_Preisgrp <> '' AND
  1428. LOOKUP(STRING(Debst.Preis_Grp,'999'), F_Preisgrp , ',') = 0 THEN Ja = FALSE.
  1429. LEAVE.
  1430. END.
  1431. IF NOT Ja THEN NEXT.
  1432. FIND FIRST TTabel USE-INDEX Tabel-k1
  1433. WHERE TTabel.Firma = Firma
  1434. AND TTabel.RecArt = 'BESUCH'
  1435. AND TTabel.CodeC = KuBes.Art NO-LOCK NO-ERROR.
  1436. CREATE tKuBes.
  1437. BUFFER-COPY KuBes TO tKuBes
  1438. ASSIGN
  1439. tKuBes.Anzeig_Br = Adresse.Anzeig_Br
  1440. tKuBes.Ort = Adresse.Ort
  1441. tKuBes.Suchbe = Adresse.Suchbe
  1442. tKuBes.Plz = Adresse.Plz.
  1443. IF tKuBes.Datum_2 <> ? THEN tKuBes.Datum = tKuBes.Datum_2.
  1444. ELSE tKuBes.Datum = tKuBes.Datum_1.
  1445. IF AVAILABLE TTabel THEN tKuBes.Aktivitaet = TTabel.Bez1.
  1446. ELSE tKuBes.Aktivitaet = tKuBes.Art.
  1447. IF Adresse.Tel-1 <> '' THEN tKuBes.cTel = Adresse.Tel-1.
  1448. ELSE tKuBes.cTel = Adresse.Tel-2.
  1449. IF tKuBes.Adr_04 <> '' THEN
  1450. DO:
  1451. tKuBes.Anzeig_br = tKuBes.Adr_04.
  1452. DO k = 3 TO 1 BY -1:
  1453. CASE k:
  1454. WHEN 1 THEN
  1455. DO:
  1456. IF tKuBes.Adr_01 = '' THEN NEXT.
  1457. tKuBes.Anzeig_br = tKuBes.Adr_01 + ', ' + tKuBes.Anzeig_br.
  1458. END.
  1459. WHEN 2 THEN
  1460. DO:
  1461. IF tKuBes.Adr_02 = '' THEN NEXT.
  1462. tKuBes.Anzeig_br = tKuBes.Adr_02 + ', ' + tKuBes.Anzeig_br.
  1463. END.
  1464. WHEN 3 THEN
  1465. DO:
  1466. IF tKuBes.Adr_03 = '' THEN NEXT.
  1467. tKuBes.Anzeig_br = tKuBes.Adr_03 + ', ' + tKuBes.Anzeig_br.
  1468. END.
  1469. END CASE.
  1470. END.
  1471. END.
  1472. END.
  1473. END.
  1474. IF Vertr = 0 THEN
  1475. DO:
  1476. FOR EACH KuBes USE-INDEX KuBes-k1
  1477. WHERE KuBes.Firma = AdFirma
  1478. AND KuBes.Knr >= F_VonKnr
  1479. AND KuBes.Knr <= F_BisKnr
  1480. AND KuBes.Datum_1 >= F_VonDat
  1481. AND KuBes.Datum_1 <= F_BisDat NO-LOCK,
  1482. FIRST Adresse USE-INDEX Adresse-k1
  1483. WHERE Adresse.Firma = KuBes.Firma
  1484. AND Adresse.Knr = KuBes.Knr
  1485. AND Adresse.Aktiv = TRUE NO-LOCK:
  1486. IF R_Abgeschl = 2 AND
  1487. KuBes.Abgeschl = TRUE THEN NEXT.
  1488. IF R_Abgeschl = 3 AND
  1489. KuBes.Abgeschl = FALSE THEN NEXT.
  1490. DO WHILE TRUE:
  1491. ja = TRUE.
  1492. IF F_Kundengrp = '' THEN LEAVE.
  1493. IF F_Preisgrp = '' THEN LEAVE.
  1494. FIND Debst USE-INDEX Debst-k1
  1495. WHERE Debst.Firma = Firma
  1496. AND Debst.Knr = KuBes.Knr
  1497. AND Debst.Aktiv = TRUE NO-LOCK NO-ERROR.
  1498. IF NOT AVAILABLE Debst THEN
  1499. DO:
  1500. Ja = FALSE.
  1501. LEAVE.
  1502. END.
  1503. IF F_Kundengrp <> '' AND
  1504. LOOKUP(STRING(Debst.Ku_Grp ,'999'), F_Kundengrp, ',') = 0 THEN Ja = FALSE.
  1505. IF F_Preisgrp <> '' AND
  1506. LOOKUP(STRING(Debst.Preis_Grp,'999'), F_Preisgrp , ',') = 0 THEN Ja = FALSE.
  1507. LEAVE.
  1508. END.
  1509. IF NOT Ja THEN NEXT.
  1510. FIND FIRST TTabel USE-INDEX Tabel-k1
  1511. WHERE TTabel.Firma = Firma
  1512. AND TTabel.RecArt = 'BESUCH'
  1513. AND TTabel.CodeC = KuBes.Art NO-LOCK NO-ERROR.
  1514. CREATE tKuBes.
  1515. BUFFER-COPY KuBes TO tKuBes
  1516. ASSIGN
  1517. tKuBes.Anzeig_Br = Adresse.Anzeig_Br
  1518. tKuBes.Ort = Adresse.Ort
  1519. tKuBes.Suchbe = Adresse.Suchbe
  1520. tKuBes.Plz = Adresse.Plz.
  1521. IF tKuBes.Datum_2 <> ? THEN tKuBes.Datum = tKuBes.Datum_2.
  1522. ELSE tKuBes.Datum = tKuBes.Datum_1.
  1523. IF AVAILABLE TTabel THEN tKuBes.Aktivitaet = TTabel.Bez1.
  1524. ELSE tKuBes.Aktivitaet = tKuBes.Art.
  1525. IF Adresse.Tel-1 <> '' THEN tKuBes.cTel = Adresse.Tel-1.
  1526. ELSE tKuBes.cTel = Adresse.Tel-2.
  1527. IF tKuBes.Adr_04 <> '' THEN
  1528. DO:
  1529. tKuBes.Anzeig_br = tKuBes.Adr_04.
  1530. DO k = 3 TO 1 BY -1:
  1531. CASE k:
  1532. WHEN 1 THEN
  1533. DO:
  1534. IF tKuBes.Adr_01 = '' THEN NEXT.
  1535. tKuBes.Anzeig_br = tKuBes.Adr_01 + ', ' + tKuBes.Anzeig_br.
  1536. END.
  1537. WHEN 2 THEN
  1538. DO:
  1539. IF tKuBes.Adr_02 = '' THEN NEXT.
  1540. tKuBes.Anzeig_br = tKuBes.Adr_02 + ', ' + tKuBes.Anzeig_br.
  1541. END.
  1542. WHEN 3 THEN
  1543. DO:
  1544. IF tKuBes.Adr_03 = '' THEN NEXT.
  1545. tKuBes.Anzeig_br = tKuBes.Adr_03 + ', ' + tKuBes.Anzeig_br.
  1546. END.
  1547. END CASE.
  1548. END.
  1549. END.
  1550. END.
  1551. END.
  1552. FIND FIRST tKuBes NO-LOCK NO-ERROR.
  1553. IF NOT AVAILABLE tKuBes THEN RETURN.
  1554. FOR EACH tKuBes BY tKuBes.Firma
  1555. BY tKuBes.Knr
  1556. BY tKuBes.Datum
  1557. BY tKuBes.Ind.
  1558. IF tKuBes.Adr_04 = '' THEN j = 0.
  1559. ELSE j = j + 1.
  1560. tKuBes.KdeInd = j.
  1561. CASE R_Sort:
  1562. WHEN 1 THEN
  1563. ASSIGN
  1564. tKuBes.cSort = STRING(YEAR (tKuBes.Datum),'9999')
  1565. + STRING(MONTH(tKuBes.Datum),'99')
  1566. + STRING(DAY (tKuBes.Datum),'99')
  1567. + STRING(tKuBes.Ort,'x(20)').
  1568. WHEN 2 THEN
  1569. ASSIGN
  1570. tKuBes.cSort = STRING(tKuBes.Plz,'x(06)')
  1571. + STRING(tKuBes.Knr,'999999').
  1572. WHEN 3 THEN
  1573. ASSIGN
  1574. tKuBes.cSort = STRING(tKuBes.Ort,'x(20)')
  1575. + STRING(tKuBes.Knr,'999999').
  1576. END CASE.
  1577. END.
  1578. cVorlage = 'Besuchsplan.xls'.
  1579. cDokument = 'Besuchsplan.xls'.
  1580. cDaten = 'Besuchsplan.txt'.
  1581. cDateiName = cDokument + CHR(01) + cVorlage.
  1582. RUN CREATEDATEI ( INPUT cDateiName ).
  1583. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1584. cDokument = RETURN-VALUE.
  1585. cDateiName = cDaten.
  1586. RUN CREATEDATEI ( INPUT cDateiName ).
  1587. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1588. cDaten = RETURN-VALUE.
  1589. RUN FIND_VERTRETER ( INPUT Vertr, OUTPUT cString ) NO-ERROR.
  1590. IF cString = '' THEN cString = STRING(Vertr,'99') + CHR(01) + '??????????'.
  1591. OUTPUT TO VALUE(cDaten).
  1592. PUT CONTROL ENTRY(1, cString, CHR(01)) ' '
  1593. ENTRY(2, cString, CHR(01)) CHR(10) '£' CHR(10)
  1594. '£Kunde£Termin erledigt am£Text£Art£Erl£Wirtesonntag£TelefonNr' CHR(10).
  1595. FOR EACH tKuBes BREAK BY tKuBes.cSort
  1596. BY tKuBes.Suchbe
  1597. BY tKuBes.Knr
  1598. BY tKuBes.KdeInd
  1599. :
  1600. PUT CONTROL '£'.
  1601. IF FIRST-OF(tKuBes.KdeInd) THEN
  1602. DO:
  1603. FIND Debst USE-INDEX Debst-k1
  1604. WHERE Debst.Firma = tKuBes.Firma
  1605. AND Debst.Knr = tKuBes.Knr NO-LOCK NO-ERROR.
  1606. IF NOT AVAILABLE Debst THEN cSonntag = ''.
  1607. ELSE
  1608. DO:
  1609. RUN FIND_WIRTESONNTAG ( INPUT Debst.Wirt_So, OUTPUT cSonntag ) NO-ERROR.
  1610. IF cSonntag <> '' THEN cSonntag = ENTRY(2, cSonntag, CHR(01)).
  1611. END.
  1612. PUT CONTROL STRING(tKuBes.Knr,'999999 ')
  1613. tKuBes.Anzeig_Br.
  1614. END.
  1615. PUT CONTROL '£'.
  1616. PUT CONTROL STRING(tKuBes.Datum_1,'99.99.9999').
  1617. IF tKuBes.Datum_2 <> ? THEN PUT CONTROL ' ' STRING(tKuBes.Datum_2,'99.99.9999').
  1618. PUT CONTROL '£'.
  1619. j = NUM-ENTRIES(tKuBes.Beschreibung, CHR(10)).
  1620. DO i = 1 TO j:
  1621. PUT CONTROL ENTRY(i, tKuBes.Beschreibung, CHR(10) ).
  1622. IF i < j THEN PUT CONTROL CHR(10) '£££'.
  1623. END.
  1624. PUT CONTROL '£'
  1625. tKuBes.Aktivitaet '£'
  1626. STRING(tKuBes.Abgeschl,'ja/nein') '£'
  1627. cSonntag '£'
  1628. tKuBes.cTel.
  1629. PUT CONTROL CHR(10).
  1630. IF LAST-OF(tKuBes.KdeInd) THEN PUT CONTROL '£' CHR(10).
  1631. END.
  1632. OUTPUT CLOSE.
  1633. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  1634. IF NOT VALID-HANDLE(excelAppl) THEN
  1635. DO:
  1636. RUN FEHLER ( INPUT 1035 ).
  1637. RETURN.
  1638. END.
  1639. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
  1640. IF NOT ja THEN
  1641. DO:
  1642. RUN FEHLER ( INPUT 1040 ).
  1643. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1644. RETURN NO-APPLY.
  1645. END.
  1646. Zelle = 'A4'.
  1647. excelAppl:Range(Zelle):SELECT.
  1648. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten.
  1649. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  1650. RUN KOPF ( INPUT excelAppl ).
  1651. Zelle = 'A1'.
  1652. excelAppl:Range(Zelle):SELECT.
  1653. excelAppl:Selection:ColumnWidth = 0.3.
  1654. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1655. END PROCEDURE.
  1656. /* _UIB-CODE-BLOCK-END */
  1657. &ANALYZE-RESUME
  1658. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT03 gVertrAusw
  1659. PROCEDURE REPORT03 :
  1660. /*------------------------------------------------------------------------------
  1661. Purpose:
  1662. Parameters: <none>
  1663. Notes:
  1664. ------------------------------------------------------------------------------*/
  1665. DEFINE VARIABLE cVorlage AS CHARACTER NO-UNDO.
  1666. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO.
  1667. DEFINE VARIABLE cDokument AS CHARACTER NO-UNDO.
  1668. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  1669. DEFINE VARIABLE cSonntag AS CHARACTER NO-UNDO.
  1670. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO.
  1671. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO.
  1672. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1673. DEFINE VARIABLE ja AS LOG NO-UNDO.
  1674. DEFINE VARIABLE i AS INTEGER NO-UNDO.
  1675. DEFINE VARIABLE j AS INTEGER NO-UNDO.
  1676. DEFINE VARIABLE k AS INTEGER NO-UNDO.
  1677. DEFINE VARIABLE cVertreter AS CHARACTER NO-UNDO.
  1678. DEFINE VARIABLE cAktivitaet AS CHARACTER NO-UNDO.
  1679. DEFINE VARIABLE cSpesenart AS CHARACTER NO-UNDO.
  1680. DEFINE VARIABLE cKunde AS CHARACTER NO-UNDO.
  1681. DEFINE VARIABLE cKonto AS CHARACTER NO-UNDO.
  1682. DEFINE VARIABLE lKunde AS LOG NO-UNDO.
  1683. DEFINE VARIABLE cToArt AS CHARACTER NO-UNDO
  1684. INIT '1SPA,2KON,3MWS,8VER'.
  1685. DEFINE VARIABLE cArt AS CHARACTER NO-UNDO.
  1686. DEFINE VARIABLE cKey AS CHARACTER NO-UNDO.
  1687. EMPTY TEMP-TABLE tKuBesSpe.
  1688. FOR EACH KuBesSpe NO-LOCK USE-INDEX KuBesSpe-k1
  1689. WHERE KuBesSpe.Firma = Firma
  1690. AND KuBesSpe.Knr >= F_VonKnr
  1691. AND KuBesSpe.Knr <= F_BisKnr
  1692. AND KuBesSpe.Datum_1 >= F_VonDat
  1693. AND KuBesSpe.Datum_1 <= F_BisDat,
  1694. FIRST KuBes NO-LOCK USE-INDEX KuBes-k1
  1695. WHERE KuBes.Firma = KuBesSpe.Firma
  1696. AND KuBes.Knr = KuBesSpe.Knr
  1697. AND KuBes.Datum_1 = KuBesSpe.Datum_1
  1698. AND KuBes.Ind = KuBesSpe.Ind
  1699. AND ((F_Aktivitaeten = '') OR
  1700. (LOOKUP(KuBes.Art, F_Aktivitaeten, ',') > 0))
  1701. AND ((Vertr = 0) OR
  1702. (KuBes.Vertr = Vertr )):
  1703. DO WHILE TRUE:
  1704. ja = TRUE.
  1705. IF F_Kundengrp = '' AND
  1706. F_Preisgrp = '' THEN LEAVE.
  1707. FIND Debst USE-INDEX Debst-k1
  1708. WHERE Debst.Firma = Firma
  1709. AND Debst.Knr = KuBes.Knr
  1710. AND Debst.Aktiv = TRUE NO-LOCK NO-ERROR.
  1711. IF NOT AVAILABLE Debst THEN
  1712. DO:
  1713. Ja = FALSE.
  1714. LEAVE.
  1715. END.
  1716. IF F_Kundengrp <> '' AND
  1717. LOOKUP(STRING(Debst.Ku_Grp ,'999'), F_Kundengrp, ',') = 0 THEN Ja = FALSE.
  1718. IF F_Preisgrp <> '' AND
  1719. LOOKUP(STRING(Debst.Preis_Grp,'999'), F_Preisgrp , ',') = 0 THEN Ja = FALSE.
  1720. LEAVE.
  1721. END.
  1722. IF NOT Ja THEN NEXT.
  1723. FIND Tabel NO-LOCK
  1724. WHERE Tabel.Firma = Firma
  1725. AND Tabel.RecArt = 'SPESART'
  1726. AND Tabel.CodeC = ''
  1727. AND Tabel.CodeI = KuBesSpe.SpesenArt
  1728. AND Tabel.Sprcd = 1 NO-ERROR.
  1729. IF AVAILABLE Tabel THEN
  1730. DO:
  1731. ASSIGN
  1732. lKunde = Tabel.Flag_1
  1733. cSpesenart = Tabel.Bez1
  1734. cKonto = Tabel.Bez2.
  1735. END.
  1736. ELSE
  1737. DO:
  1738. ASSIGN
  1739. lKunde = FALSE
  1740. cSpesenart = STRING(KuBesSpe.SpesenArt,'999')
  1741. cKonto = '????'.
  1742. END.
  1743. FIND FIRST tTabel NO-LOCK USE-INDEX Tabel-k1
  1744. WHERE tTabel.Firma = Firma
  1745. AND tTabel.RecArt = 'BESUCH'
  1746. AND tTabel.CodeC = KuBes.Art NO-ERROR.
  1747. cAktivitaet = (IF AVAILABLE tTabel THEN tTabel.Bez1 ELSE KuBes.Art).
  1748. CREATE tKuBesSpe.
  1749. BUFFER-COPY KuBesSpe TO tKuBesSpe
  1750. ASSIGN
  1751. tKuBesSpe.Vertr = KuBes.Vertr
  1752. tKuBesSpe.cSpesenArt = cSpesenart
  1753. tKuBesSpe.Aktivitaet = cAktivitaet
  1754. tKuBesSpe.cKonto = cKonto
  1755. tKuBesSpe.lKunden = lKunde
  1756. tKuBesSpe.Kontakt = (IF lKunde THEN KuBes.Kontakt ELSE '').
  1757. END.
  1758. FIND FIRST tKuBesSpe NO-LOCK NO-ERROR.
  1759. IF NOT AVAILABLE tKuBesSpe THEN RETURN.
  1760. cVorlage = 'SpesenFormular.xls'.
  1761. cDokument = 'SpesenFormular.xls'.
  1762. cDaten = 'SpesenFormular.txt'.
  1763. cDateiName = cDokument + CHR(01) + cVorlage.
  1764. RUN CREATEDATEI ( INPUT cDateiName ).
  1765. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1766. cDokument = RETURN-VALUE.
  1767. cDateiName = cDaten.
  1768. RUN CREATEDATEI ( INPUT cDateiName ).
  1769. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1770. cDaten = RETURN-VALUE.
  1771. OUTPUT TO VALUE(cDaten).
  1772. PUT CONTROL '£Datum£BelegNr£Lokal£Anz.Pers.£Kunde£Kontakt£Bemerkung£Aktivität£Betrag£Mwst£Konto' CHR(10)
  1773. '£' CHR(10).
  1774. FOR EACH tKuBesSpe
  1775. BREAK BY tKuBesSpe.Vertr
  1776. BY tKuBesSpe.SpesenArt
  1777. BY tKuBesSpe.Datum_1
  1778. BY tKuBesSpe.Knr :
  1779. IF FIRST-OF ( tKuBesSpe.Vertr ) THEN
  1780. DO:
  1781. RUN FIND_VERTRETER ( INPUT Vertr, OUTPUT cString ) NO-ERROR.
  1782. IF cString = '' THEN cVertreter = STRING(tKuBesSpe.Vertr,'99 ') + '??????????'.
  1783. ELSE cVertreter = STRING(tKuBesSpe.Vertr,'99 ') + ENTRY(2, cString, CHR(01)).
  1784. PUT CONTROL cString
  1785. CHR(10)
  1786. '£'
  1787. CHR(10).
  1788. EMPTY TEMP-TABLE tTotale.
  1789. END.
  1790. IF FIRST-OF(tKuBesSpe.SpesenArt) THEN
  1791. DO:
  1792. PUT CONTROL tKuBesSpe.cSpesenart CHR(10).
  1793. END.
  1794. cKunde = ''.
  1795. IF tKuBesSpe.lKunden THEN
  1796. DO:
  1797. FIND Adresse NO-LOCK USE-INDEX Adresse-k1
  1798. WHERE Adresse.Firma = AdFirma
  1799. AND Adresse.Knr = tKuBesSpe.Knr
  1800. AND Adresse.Aktiv = TRUE NO-ERROR.
  1801. IF AVAILABLE Adresse THEN
  1802. DO:
  1803. IF Adresse.Firma1 <> '' THEN cKunde = TRIM(Adresse.Firma1 + ' ' + Adresse.Firma2 ).
  1804. ELSE cKunde = TRIM(Adresse.Name + ' ' + Adresse.Vorname).
  1805. END.
  1806. END.
  1807. PUT CONTROL '£'.
  1808. PUT CONTROL STRING(tKuBesSpe.Datum_1,'99.99.9999')
  1809. '£'
  1810. tKuBesSpe.BelegNr
  1811. '£'
  1812. tKuBesSpe.Lokal
  1813. '£'
  1814. tKuBesSpe.AnzPers
  1815. '£'
  1816. cKunde
  1817. '£'
  1818. tKuBesSpe.Kontakt
  1819. '£'
  1820. tKuBesSpe.Bemerk
  1821. '£'
  1822. tKuBesSpe.Aktivitaet
  1823. '£'
  1824. TRIM(STRING(tKuBesSpe.Betrag,'->>>>>9.99'))
  1825. '£'
  1826. TRIM(STRING(tKuBesSpe.MWSt_Ansatz,'>>9.99%'))
  1827. '£'
  1828. tKuBesSpe.cKonto
  1829. CHR(10).
  1830. DO i = 1 TO NUM-ENTRIES(cToArt, ','):
  1831. cArt = ENTRY(i, cToArt, ',').
  1832. CASE cArt:
  1833. WHEN '1SPA' THEN
  1834. cKey = tKuBesSpe.cSpesenart.
  1835. WHEN '2KON' THEN
  1836. cKey = tKuBesSpe.cKonto.
  1837. WHEN '3MWS' THEN
  1838. cKey = STRING(tKuBesSpe.MWST_Ansatz,'z9.99%').
  1839. WHEN '8VER' THEN
  1840. cKey = cVertreter.
  1841. END CASE.
  1842. FIND FIRST tTotale
  1843. WHERE tTotale.cArt = cArt
  1844. AND tTotale.cSchluessel = cKey NO-ERROR.
  1845. IF NOT AVAILABLE tTotale THEN
  1846. DO:
  1847. CREATE tTotale.
  1848. ASSIGN
  1849. tTotale.cArt = cArt
  1850. tTotale.cSchluessel = cKey.
  1851. END.
  1852. tTotale.Betrag = tTotale.Betrag + tKuBesSpe.Betrag.
  1853. END.
  1854. IF LAST-OF ( tKuBesSpe.SpesenArt ) THEN
  1855. DO:
  1856. FIND FIRST tTotale
  1857. WHERE tTotale.cArt = '1SPA' NO-ERROR.
  1858. PUT CONTROL 'Total '
  1859. tTotale.cSchluessel
  1860. '£££££££££'
  1861. TRIM(STRING(tTotale.Betrag,'->>>>>9.99'))
  1862. CHR(10) '£' CHR(10).
  1863. DELETE tTotale.
  1864. END.
  1865. IF NOT LAST-OF(tKuBesSpe.Vertr) THEN NEXT.
  1866. FOR EACH tTotale
  1867. BREAK BY tTotale.cArt
  1868. BY tTotale.cSchluessel:
  1869. PUT CONTROL 'Total '
  1870. tTotale.cSchluessel
  1871. '£££££££££'
  1872. TRIM(STRING(tTotale.Betrag,'->>>>>9.99'))
  1873. CHR(10).
  1874. IF LAST-OF ( tTotale.cArt ) THEN PUT CONTROL '£' CHR(10).
  1875. END.
  1876. END.
  1877. OUTPUT CLOSE.
  1878. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  1879. IF NOT VALID-HANDLE(excelAppl) THEN
  1880. DO:
  1881. RUN FEHLER ( INPUT 1035 ).
  1882. RETURN.
  1883. END.
  1884. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
  1885. IF NOT ja THEN
  1886. DO:
  1887. RUN FEHLER ( INPUT 1040 ).
  1888. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1889. RETURN NO-APPLY.
  1890. END.
  1891. Zelle = 'A6'.
  1892. excelAppl:Range(Zelle):SELECT.
  1893. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten.
  1894. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  1895. RUN KOPF ( INPUT excelAppl ).
  1896. Zelle = 'A1'.
  1897. excelAppl:Range(Zelle):SELECT.
  1898. excelAppl:Selection:ColumnWidth = 0.3.
  1899. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1900. END PROCEDURE.
  1901. /* _UIB-CODE-BLOCK-END */
  1902. &ANALYZE-RESUME
  1903. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SCHREIBEN_FEHLWERTE gVertrAusw
  1904. PROCEDURE SCHREIBEN_FEHLWERTE :
  1905. /*------------------------------------------------------------------------------
  1906. Purpose:
  1907. Parameters: <none>
  1908. Notes:
  1909. ------------------------------------------------------------------------------*/
  1910. DEFINE VARIABLE cVal AS CHARACTER NO-UNDO.
  1911. DEFINE VARIABLE cKey AS CHARACTER NO-UNDO.
  1912. DO WITH FRAME {&FRAME-NAME}:
  1913. ASSIGN {&List-6}.
  1914. cKey = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.' ) NO-ERROR.
  1915. cVal = CB_Vertreter :SCREEN-VALUE + '@'
  1916. + CB_Listenart :SCREEN-VALUE + '@'
  1917. + F_Kundengrp :SCREEN-VALUE + '@'
  1918. + F_Preisgrp :SCREEN-VALUE + '@'
  1919. + F_VonDat :SCREEN-VALUE + '@'
  1920. + F_BisDat :SCREEN-VALUE + '@'
  1921. + F_VonKnr :SCREEN-VALUE + '@'
  1922. + F_BisKnr :SCREEN-VALUE + '@'
  1923. + R_Abgeschl :SCREEN-VALUE + '@'
  1924. + F_Aktivitaeten:SCREEN-VALUE + '@'
  1925. + R_Sort :SCREEN-VALUE + '@'.
  1926. PUT-KEY-VALUE SECTION 'Auswertungen' KEY cKey VALUE cVal.
  1927. END.
  1928. END PROCEDURE.
  1929. /* _UIB-CODE-BLOCK-END */
  1930. &ANALYZE-RESUME
  1931. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage gVertrAusw
  1932. PROCEDURE selectPage :
  1933. /*------------------------------------------------------------------------------
  1934. Purpose: Super Override
  1935. Parameters:
  1936. Notes:
  1937. ------------------------------------------------------------------------------*/
  1938. DEFINE INPUT PARAMETER piPageNum AS INTEGER NO-UNDO.
  1939. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO.
  1940. DEFINE VARIABLE MutProg AS CHARACTER NO-UNDO.
  1941. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  1942. DO WHILE TRUE:
  1943. IF NOT FMutFlag THEN LEAVE.
  1944. MutProg = DYNAMIC-FUNCTION('GETMUTPROG':U).
  1945. IF MutProg <> THIS-PROCEDURE:FILE-NAME THEN LEAVE.
  1946. RETURN NO-APPLY.
  1947. END.
  1948. CASE piPageNum:
  1949. END CASE.
  1950. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  1951. CASE AktSeite:
  1952. WHEN 1 THEN
  1953. DO:
  1954. /* RUN removeLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */
  1955. /* RUN removeLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */
  1956. END.
  1957. END CASE.
  1958. RUN SUPER( INPUT piPageNum).
  1959. END PROCEDURE.
  1960. /* _UIB-CODE-BLOCK-END */
  1961. &ANALYZE-RESUME
  1962. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TABELLEN gVertrAusw
  1963. PROCEDURE TABELLEN :
  1964. /*------------------------------------------------------------------------------
  1965. Purpose:
  1966. Parameters: <none>
  1967. Notes:
  1968. ------------------------------------------------------------------------------*/
  1969. DEFINE INPUT PARAMETER ipCode AS INTEGER NO-UNDO.
  1970. DEFINE INPUT PARAMETER ipRecArt AS CHARACTER NO-UNDO.
  1971. DEFINE OUTPUT PARAMETER opString AS CHARACTER NO-UNDO.
  1972. opString = STRING(ipCode,'999 ').
  1973. FIND Tabel USE-INDEX Tabel-k1
  1974. WHERE Tabel.Firma = lFirma
  1975. AND Tabel.RecArt = ipRecArt
  1976. AND Tabel.CodeC = ''
  1977. AND Tabel.CodeI = ipCode
  1978. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  1979. IF AVAILABLE Tabel THEN opString = opString + Tabel.Bez1.
  1980. RETURN.
  1981. END PROCEDURE.
  1982. /* _UIB-CODE-BLOCK-END */
  1983. &ANALYZE-RESUME
  1984. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR gVertrAusw
  1985. PROCEDURE TOOLBAR :
  1986. /*------------------------------------------------------------------------------
  1987. Purpose:
  1988. Parameters: <none>
  1989. Notes:
  1990. ------------------------------------------------------------------------------*/
  1991. DEFINE INPUT PARAMETER pcAction AS CHARACTER NO-UNDO.
  1992. /*
  1993. RUN TOOLBAR IN h_dyntoolbar ( INPUT pcAction ).
  1994. */
  1995. END PROCEDURE.
  1996. /* _UIB-CODE-BLOCK-END */
  1997. &ANALYZE-RESUME
  1998. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE UMSAETZE gVertrAusw
  1999. PROCEDURE UMSAETZE :
  2000. /*------------------------------------------------------------------------------
  2001. Purpose:
  2002. Parameters: <none>
  2003. Notes:
  2004. ------------------------------------------------------------------------------*/
  2005. DEFINE INPUT PARAMETER ipKnr AS INTEGER NO-UNDO.
  2006. DEFINE VARIABLE i AS INTEGER NO-UNDO.
  2007. DEFINE VARIABLE j AS INTEGER NO-UNDO.
  2008. DEFINE VARIABLE k AS INTEGER NO-UNDO.
  2009. DEFINE VARIABLE xFirma AS CHARACTER NO-UNDO.
  2010. DEFINE VARIABLE cWgr AS CHARACTER NO-UNDO.
  2011. DEFINE VARIABLE cWgrTit AS CHARACTER NO-UNDO.
  2012. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  2013. DEFINE VARIABLE iFTot AS DECIMAL NO-UNDO.
  2014. DEFINE VARIABLE iGTot AS DECIMAL NO-UNDO.
  2015. DEFINE VARIABLE iJTot AS DECIMAL NO-UNDO.
  2016. EMPTY TEMP-TABLE TUmsatz.
  2017. DO i = 1 TO NUM-ENTRIES(cFirma, ','):
  2018. xFirma = ENTRY(i, cFirma, ',').
  2019. FOR EACH DeArUms USE-INDEX DeArUms-k3
  2020. WHERE DeArUms.Firma = xFirma
  2021. AND DeArUms.Knr = ipKnr NO-LOCK,
  2022. FIRST Artst USE-INDEX Artst-k1
  2023. WHERE Artst.Firma = DeArUms.Firma
  2024. AND Artst.Artnr = DeArUms.Artnr
  2025. AND Artst.Inhalt = DeArUms.Inhalt
  2026. AND Artst.Jahr = DeArUms.Jahrg NO-LOCK:
  2027. k = Artst.Wg_Grp.
  2028. FIND FIRST TWgr USE-INDEX WarenGrp-k1
  2029. WHERE TWgr.Firma = Artst.Firma
  2030. AND TWgr.Wgr = k NO-LOCK NO-ERROR.
  2031. IF NOT AVAILABLE TWgr THEN k = 999.
  2032. FIND TUmsatz USE-INDEX TUmsatz-k1
  2033. WHERE TUmsatz.Knr = DeArUms.Knr
  2034. AND TUmsatz.Firma = DeArUms.Firma
  2035. AND TUmsatz.Jahr = DeArUms.Jahr
  2036. AND TUmsatz.Wgr = k NO-ERROR.
  2037. IF NOT AVAILABLE TUmsatz THEN
  2038. DO:
  2039. CREATE TUmsatz.
  2040. ASSIGN
  2041. TUmsatz.Knr = DeArUms.Knr
  2042. TUmsatz.Firma = DeArUms.Firma
  2043. TUmsatz.Jahr = DeArUms.Jahr
  2044. TUmsatz.Wgr = k NO-ERROR.
  2045. END.
  2046. TUmsatz.Umsatz = TUmsatz.Umsatz + DeArUms.VP_Kum.
  2047. END.
  2048. END.
  2049. FOR EACH TUmsatz WHERE TUmsatz.Jahr < 9999:
  2050. FIND BUmsatz USE-INDEX TUmsatz-k1
  2051. WHERE BUmsatz.Knr = TUmsatz.Knr
  2052. AND BUmsatz.Firma = TUmsatz.Firma
  2053. AND BUmsatz.Jahr = 9999
  2054. AND BUmsatz.Wgr = TUmsatz.Wgr NO-ERROR.
  2055. IF NOT AVAILABLE BUmsatz THEN
  2056. DO:
  2057. CREATE BUmsatz.
  2058. ASSIGN
  2059. BUmsatz.Knr = TUmsatz.Knr
  2060. BUmsatz.Firma = TUmsatz.Firma
  2061. BUmsatz.Jahr = 9999
  2062. BUmsatz.Wgr = TUmsatz.Wgr NO-ERROR.
  2063. END.
  2064. BUmsatz.Umsatz = BUmsatz.Umsatz + TUmsatz.Umsatz.
  2065. TotUmsatz = TotUmsatz + TUmsatz.Umsatz.
  2066. END.
  2067. iGTot = 0.
  2068. FOR EACH TUmsatz NO-LOCK
  2069. BREAK BY TUmsatz.Knr
  2070. BY TUmsatz.Firma
  2071. BY TUmsatz.Jahr
  2072. BY TUmsatz.Wgr :
  2073. IF FIRST-OF ( TUmsatz.Firma ) THEN
  2074. DO:
  2075. iFTot = 0.
  2076. j = 0.
  2077. FIND Steuer WHERE Steuer.Firma = TUmsatz.Firma NO-LOCK.
  2078. PUT CONTROL 'Umsätze in Firma : ' Steuer.Firma1 CHR(10).
  2079. cWgr = ''.
  2080. cWgrTit = ''.
  2081. FOR EACH TWgr USE-INDEX WarenGrp-k1
  2082. WHERE TWgr.Firma = TUmsatz.Firma NO-LOCK:
  2083. cWgr = cWgr + ';' + STRING(TWgr.Wgr,'999').
  2084. cWgrTit = cWgrTit + ';' + TWgr.Bez1.
  2085. j = j + 1.
  2086. END.
  2087. cWgr = cWgr + ';Undef'.
  2088. cWgrTit = cWgrTit + ';Diverse'.
  2089. j = j + 1.
  2090. cWgr = cWgr + ';Tot'.
  2091. cWgrTit = cWgrTit + ';Total'.
  2092. j = j + 1.
  2093. cWgr = SUBSTRING(cWgr ,02).
  2094. cWgrTit = SUBSTRING(cWgrTit ,02).
  2095. PUT CONTROL 'xGrau£'.
  2096. DO i = 1 TO j:
  2097. PUT CONTROL '£' ENTRY(i, cWgrTit, ';').
  2098. END.
  2099. PUT CONTROL CHR(10) '£' CHR(10).
  2100. END.
  2101. IF FIRST-OF ( TUmsatz.Jahr ) THEN
  2102. DO:
  2103. iJTot = 0.
  2104. cString = FILL(';', j).
  2105. END.
  2106. i = 0.
  2107. i = LOOKUP(STRING(TUmsatz.Wgr,'999'), cWgr, ';').
  2108. IF i = 0 THEN i = j - 1.
  2109. ENTRY(i, cString, ';') = TRIM(STRING(TUmsatz.Umsatz,'->>>,>>>,>>9')).
  2110. iJTot = iJTot + TUmsatz.Umsatz.
  2111. iFTot = iJTot + TUmsatz.Umsatz.
  2112. iGTot = iJTot + TUmsatz.Umsatz.
  2113. IF NOT LAST-OF ( TUmsatz.Jahr ) THEN NEXT.
  2114. ENTRY(j, cString, ';') = TRIM(STRING(iJTot,'->>>,>>>,>>9')).
  2115. PUT CONTROL STRING(TUmsatz.Jahr,'xRechts£9999').
  2116. DO i = 1 TO j:
  2117. PUT CONTROL '£' ENTRY(i, cString, ';').
  2118. END.
  2119. PUT CONTROL CHR(10).
  2120. IF NOT LAST-OF ( TUmsatz.Firma ) THEN NEXT.
  2121. PUT CONTROL '£' CHR(10).
  2122. END.
  2123. END PROCEDURE.
  2124. /* _UIB-CODE-BLOCK-END */
  2125. &ANALYZE-RESUME
  2126. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WARENGRUPPEN gVertrAusw
  2127. PROCEDURE WARENGRUPPEN :
  2128. /*------------------------------------------------------------------------------
  2129. Purpose:
  2130. Parameters: <none>
  2131. Notes:
  2132. ------------------------------------------------------------------------------*/
  2133. DEFINE INPUT PARAMETER ipString AS CHARACTER NO-UNDO.
  2134. DEFINE OUTPUT PARAMETER opString AS CHARACTER NO-UNDO.
  2135. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  2136. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  2137. opString = ';;;;'.
  2138. DO ii = 1 TO 5:
  2139. i1 = INTEGER(ENTRY(ii, ipString, ';')).
  2140. IF i1 = 0 THEN NEXT.
  2141. FIND WarenGrp USE-INDEX WarenGrp-k1
  2142. WHERE WarenGrp.Firma = Firma
  2143. AND WarenGrp.Wgr = i1 NO-LOCK NO-ERROR.
  2144. IF NOT AVAILABLE WarenGrp THEN ENTRY(ii, opString, ';') = '??????????'.
  2145. ELSE ENTRY(ii, opString, ';') = WarenGrp.Bez1.
  2146. END.
  2147. END PROCEDURE.
  2148. /* _UIB-CODE-BLOCK-END */
  2149. &ANALYZE-RESUME