g-p_auftrag-analyse.w 37 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gAuftragsanalyse
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gAuftragsanalyse
  6. /*------------------------------------------------------------------------
  7. File:
  8. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  9. Input Parameters:
  10. <none>
  11. Output Parameters:
  12. <none>
  13. Author:
  14. Created:
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress AppBuilder. */
  17. /*----------------------------------------------------------------------*/
  18. /* Create an unnamed pool to store all the widgets created
  19. by this procedure. This is a good default which assures
  20. that this procedure's triggers and internal procedures
  21. will execute in this procedure's storage, and that proper
  22. cleanup will occur on deletion of the procedure. */
  23. CREATE WIDGET-POOL.
  24. /* *************************** Definitions ************************** */
  25. /* Parameters Definitions --- */
  26. /* Local Variable Definitions --- */
  27. DEF VAR MaxPage AS INT NO-UNDO.
  28. DEF VAR AktSeite AS INT NO-UNDO.
  29. DEF VAR FMutFlag AS LOG NO-UNDO.
  30. DEF VAR Firma AS CHAR NO-UNDO.
  31. DEF VAR AdFirma AS CHAR NO-UNDO.
  32. DEF VAR cVorlage AS CHAR NO-UNDO.
  33. DEF VAR cDaten AS CHAR NO-UNDO.
  34. DEF VAR cDokument AS CHAR NO-UNDO.
  35. DEF VAR cDateiName AS CHAR NO-UNDO.
  36. DEF VAR Zelle AS CHAR NO-UNDO.
  37. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  38. DEF TEMP-TABLE TUmsatz FIELD Knr AS INT
  39. FIELD Aufnr AS INT
  40. FIELD Datum AS DATE
  41. FIELD Anz_Fak AS INT
  42. FIELD Anz_Zei AS INT
  43. FIELD Brutto AS DEC DECIMALS 4
  44. FIELD Netto AS DEC DECIMALS 4
  45. FIELD Rabatte AS DEC DECIMALS 4
  46. FIELD EP AS DEC DECIMALS 4
  47. FIELD Gewicht AS DEC DECIMALS 4
  48. FIELD Anz_KGeb AS DEC
  49. FIELD Anz_VGeb AS DEC
  50. FIELD Adresse AS CHAR
  51. INDEX TUmsatz-k1
  52. Knr
  53. Aufnr .
  54. DEF BUFFER BUmsatz FOR TUmsatz.
  55. /* _UIB-CODE-BLOCK-END */
  56. &ANALYZE-RESUME
  57. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  58. /* ******************** Preprocessor Definitions ******************** */
  59. &Scoped-define PROCEDURE-TYPE SmartDialog
  60. &Scoped-define DB-AWARE no
  61. &Scoped-define ADM-CONTAINER DIALOG-BOX
  62. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  63. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  64. &Scoped-define FRAME-NAME gAuftragsanalyse
  65. /* Standard List Definitions */
  66. &Scoped-Define ENABLED-OBJECTS RECT-12 F_VonKnr F_BisKnr F_Kundengrp F_Tour ~
  67. F_Vertreter F_VonArtnr F_BisArtnr F_Warengrp F_VonDatum F_BisDatum T_Marge ~
  68. T_Detail Btn_OK Btn_Cancel
  69. &Scoped-Define DISPLAYED-OBJECTS F_VonKnr F_BisKnr F_Kundengrp F_Tour ~
  70. F_Vertreter F_VonArtnr F_BisArtnr F_Warengrp F_VonDatum F_BisDatum T_Marge ~
  71. T_Detail
  72. /* Custom List Definitions */
  73. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  74. &Scoped-define List-6 F_VonKnr F_BisKnr F_Kundengrp F_Tour F_Vertreter ~
  75. F_VonArtnr F_BisArtnr F_Warengrp F_VonDatum F_BisDatum T_Marge T_Detail
  76. /* _UIB-PREPROCESSOR-BLOCK-END */
  77. &ANALYZE-RESUME
  78. /* *********************** Control Definitions ********************** */
  79. /* Define a dialog box */
  80. /* Definitions of the field level widgets */
  81. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  82. LABEL "&abbrechen"
  83. SIZE 14 BY 1.19.
  84. DEFINE BUTTON Btn_OK
  85. IMAGE-UP FILE "grafik/results%.ico":U
  86. IMAGE-INSENSITIVE FILE "grafik/results%.ico":U
  87. LABEL "Excel"
  88. SIZE 7 BY 1.71.
  89. DEFINE VARIABLE F_BisArtnr AS INTEGER FORMAT "999999":U INITIAL 0
  90. LABEL "-"
  91. VIEW-AS FILL-IN NATIVE
  92. SIZE 11 BY 1
  93. BGCOLOR 15 NO-UNDO.
  94. DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999":U
  95. LABEL "-"
  96. VIEW-AS FILL-IN NATIVE
  97. SIZE 16 BY 1
  98. BGCOLOR 15 NO-UNDO.
  99. DEFINE VARIABLE F_BisKnr AS INTEGER FORMAT "999999":U INITIAL 0
  100. LABEL "-"
  101. VIEW-AS FILL-IN NATIVE
  102. SIZE 11 BY 1 TOOLTIP "ALT-F suchen einer Kundennummer"
  103. BGCOLOR 15 NO-UNDO.
  104. DEFINE VARIABLE F_Kundengrp AS CHARACTER FORMAT "X(256)":U
  105. LABEL "Kudengruppen"
  106. VIEW-AS FILL-IN NATIVE
  107. SIZE 46.4 BY 1
  108. BGCOLOR 15 NO-UNDO.
  109. DEFINE VARIABLE F_Tour AS CHARACTER FORMAT "X(256)":U
  110. LABEL "Tourenplan"
  111. VIEW-AS FILL-IN NATIVE
  112. SIZE 46.4 BY 1
  113. BGCOLOR 15 NO-UNDO.
  114. DEFINE VARIABLE F_Vertreter AS CHARACTER FORMAT "X(256)":U
  115. LABEL "Vertreter"
  116. VIEW-AS FILL-IN NATIVE
  117. SIZE 46.4 BY 1
  118. BGCOLOR 15 NO-UNDO.
  119. DEFINE VARIABLE F_VonArtnr AS INTEGER FORMAT "999999":U INITIAL 0
  120. LABEL "von - bis Artikelnummer"
  121. VIEW-AS FILL-IN NATIVE
  122. SIZE 11 BY 1
  123. BGCOLOR 15 NO-UNDO.
  124. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U
  125. LABEL "von - bis Datum"
  126. VIEW-AS FILL-IN NATIVE
  127. SIZE 16 BY 1
  128. BGCOLOR 15 NO-UNDO.
  129. DEFINE VARIABLE F_VonKnr AS INTEGER FORMAT "999999":U INITIAL 0
  130. LABEL "von - bis Knr"
  131. VIEW-AS FILL-IN NATIVE
  132. SIZE 11 BY 1 TOOLTIP "ALT-F suchen einer Kundennummer"
  133. BGCOLOR 15 NO-UNDO.
  134. DEFINE VARIABLE F_Warengrp AS CHARACTER FORMAT "X(256)":U
  135. LABEL "Warengruppen"
  136. VIEW-AS FILL-IN NATIVE
  137. SIZE 46.4 BY 1
  138. BGCOLOR 15 NO-UNDO.
  139. DEFINE RECTANGLE RECT-12
  140. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  141. SIZE 84 BY 14.05.
  142. DEFINE VARIABLE T_Detail AS LOGICAL INITIAL no
  143. LABEL "Details ? (jeden Lieferschein)"
  144. VIEW-AS TOGGLE-BOX
  145. SIZE 40.2 BY 1 NO-UNDO.
  146. DEFINE VARIABLE T_Marge AS LOGICAL INITIAL no
  147. LABEL "Margenberechnung ?"
  148. VIEW-AS TOGGLE-BOX
  149. SIZE 40.2 BY 1 NO-UNDO.
  150. /* ************************ Frame Definitions *********************** */
  151. DEFINE FRAME gAuftragsanalyse
  152. F_VonKnr AT ROW 2 COL 28 COLON-ALIGNED
  153. F_BisKnr AT ROW 2 COL 41 COLON-ALIGNED
  154. F_Kundengrp AT ROW 3 COL 28 COLON-ALIGNED
  155. F_Tour AT ROW 4 COL 28 COLON-ALIGNED
  156. F_Vertreter AT ROW 5 COL 28 COLON-ALIGNED
  157. F_VonArtnr AT ROW 6.52 COL 28 COLON-ALIGNED
  158. F_BisArtnr AT ROW 6.52 COL 41 COLON-ALIGNED
  159. F_Warengrp AT ROW 7.52 COL 28 COLON-ALIGNED
  160. F_VonDatum AT ROW 9 COL 28 COLON-ALIGNED
  161. F_BisDatum AT ROW 9 COL 47 COLON-ALIGNED
  162. T_Marge AT ROW 10.52 COL 30
  163. T_Detail AT ROW 11.52 COL 30
  164. Btn_OK AT ROW 13.29 COL 30
  165. Btn_Cancel AT ROW 13.52 COL 55.8
  166. RECT-12 AT ROW 1.24 COL 2
  167. SPACE(0.99) SKIP(0.22)
  168. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  169. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  170. TITLE "Auftragsanalyse"
  171. CANCEL-BUTTON Btn_Cancel.
  172. /* *********************** Procedure Settings ************************ */
  173. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  174. /* Settings for THIS-PROCEDURE
  175. Type: SmartDialog
  176. Allow: Basic,Browse,DB-Fields,Query,Smart
  177. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  178. Design Page: 1
  179. Other Settings: COMPILE
  180. */
  181. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  182. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gAuftragsanalyse
  183. /* ************************* Included-Libraries *********************** */
  184. {src/adm2/containr.i}
  185. /* _UIB-CODE-BLOCK-END */
  186. &ANALYZE-RESUME
  187. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  188. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  189. /* SETTINGS FOR DIALOG-BOX gAuftragsanalyse
  190. FRAME-NAME */
  191. ASSIGN
  192. FRAME gAuftragsanalyse:SCROLLABLE = FALSE
  193. FRAME gAuftragsanalyse:HIDDEN = TRUE.
  194. /* SETTINGS FOR FILL-IN F_BisArtnr IN FRAME gAuftragsanalyse
  195. 6 */
  196. /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME gAuftragsanalyse
  197. 6 */
  198. /* SETTINGS FOR FILL-IN F_BisKnr IN FRAME gAuftragsanalyse
  199. 6 */
  200. /* SETTINGS FOR FILL-IN F_Kundengrp IN FRAME gAuftragsanalyse
  201. 6 */
  202. /* SETTINGS FOR FILL-IN F_Tour IN FRAME gAuftragsanalyse
  203. 6 */
  204. /* SETTINGS FOR FILL-IN F_Vertreter IN FRAME gAuftragsanalyse
  205. 6 */
  206. /* SETTINGS FOR FILL-IN F_VonArtnr IN FRAME gAuftragsanalyse
  207. 6 */
  208. /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME gAuftragsanalyse
  209. 6 */
  210. /* SETTINGS FOR FILL-IN F_VonKnr IN FRAME gAuftragsanalyse
  211. 6 */
  212. /* SETTINGS FOR FILL-IN F_Warengrp IN FRAME gAuftragsanalyse
  213. 6 */
  214. /* SETTINGS FOR TOGGLE-BOX T_Detail IN FRAME gAuftragsanalyse
  215. 6 */
  216. /* SETTINGS FOR TOGGLE-BOX T_Marge IN FRAME gAuftragsanalyse
  217. 6 */
  218. /* _RUN-TIME-ATTRIBUTES-END */
  219. &ANALYZE-RESUME
  220. /* Setting information for Queries and Browse Widgets fields */
  221. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gAuftragsanalyse
  222. /* Query rebuild information for DIALOG-BOX gAuftragsanalyse
  223. _Options = "SHARE-LOCK"
  224. _Query is NOT OPENED
  225. */ /* DIALOG-BOX gAuftragsanalyse */
  226. &ANALYZE-RESUME
  227. /* ************************ Control Triggers ************************ */
  228. &Scoped-define SELF-NAME gAuftragsanalyse
  229. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gAuftragsanalyse gAuftragsanalyse
  230. ON END-ERROR OF FRAME gAuftragsanalyse /* Auftragsanalyse */
  231. DO:
  232. RUN ENDE.
  233. RETURN NO-APPLY.
  234. END.
  235. /* _UIB-CODE-BLOCK-END */
  236. &ANALYZE-RESUME
  237. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gAuftragsanalyse gAuftragsanalyse
  238. ON GO OF FRAME gAuftragsanalyse /* Auftragsanalyse */
  239. DO:
  240. /*
  241. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR.
  242. */
  243. END.
  244. /* _UIB-CODE-BLOCK-END */
  245. &ANALYZE-RESUME
  246. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gAuftragsanalyse gAuftragsanalyse
  247. ON WINDOW-CLOSE OF FRAME gAuftragsanalyse /* Auftragsanalyse */
  248. DO:
  249. RUN ENDE.
  250. RETURN NO-APPLY.
  251. END.
  252. /* _UIB-CODE-BLOCK-END */
  253. &ANALYZE-RESUME
  254. &Scoped-define SELF-NAME Btn_Cancel
  255. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gAuftragsanalyse
  256. ON CHOOSE OF Btn_Cancel IN FRAME gAuftragsanalyse /* abbrechen */
  257. DO:
  258. RUN ENDE.
  259. RETURN NO-APPLY.
  260. END.
  261. /* _UIB-CODE-BLOCK-END */
  262. &ANALYZE-RESUME
  263. &Scoped-define SELF-NAME Btn_OK
  264. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gAuftragsanalyse
  265. ON CHOOSE OF Btn_OK IN FRAME gAuftragsanalyse /* Excel */
  266. DO:
  267. DO WITH FRAME {&FRAME-NAME}:
  268. Btn_OK:SENSITIVE = FALSE.
  269. Btn_Cancel:SENSITIVE = FALSE.
  270. SESSION:SET-WAIT-STATE ('GENERAL').
  271. END.
  272. RUN REPORT.
  273. DO WITH FRAME {&FRAME-NAME}:
  274. Btn_OK:SENSITIVE = TRUE.
  275. Btn_Cancel:SENSITIVE = TRUE.
  276. SESSION:SET-WAIT-STATE('').
  277. END.
  278. RUN ENDE.
  279. RETURN NO-APPLY.
  280. END.
  281. /* _UIB-CODE-BLOCK-END */
  282. &ANALYZE-RESUME
  283. &Scoped-define SELF-NAME F_BisKnr
  284. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_BisKnr gAuftragsanalyse
  285. ON ALT-F OF F_BisKnr IN FRAME gAuftragsanalyse /* - */
  286. DO:
  287. DEF VAR iRecid AS RECID NO-UNDO.
  288. RUN 'g-suchen-adresse.w':U ( 'AUF', OUTPUT iRecid ).
  289. IF iRecid = ? OR
  290. iRecid = 0 THEN RETURN NO-APPLY.
  291. FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid NO-ERROR.
  292. SELF:SCREEN-VALUE = STRING(Adresse.Knr).
  293. APPLY 'ENTRY' TO SELF.
  294. RETURN NO-APPLY.
  295. END.
  296. /* _UIB-CODE-BLOCK-END */
  297. &ANALYZE-RESUME
  298. &Scoped-define SELF-NAME F_Kundengrp
  299. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Kundengrp gAuftragsanalyse
  300. ON RIGHT-MOUSE-CLICK OF F_Kundengrp IN FRAME gAuftragsanalyse /* Kudengruppen */
  301. DO:
  302. RUN g-auswahl-tabelle.w ( INPUT SELF, INPUT 'KUNDGRP' ).
  303. END.
  304. /* _UIB-CODE-BLOCK-END */
  305. &ANALYZE-RESUME
  306. &Scoped-define SELF-NAME F_Tour
  307. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Tour gAuftragsanalyse
  308. ON RIGHT-MOUSE-CLICK OF F_Tour IN FRAME gAuftragsanalyse /* Tourenplan */
  309. DO:
  310. RUN g-auswahl-tabelle.w ( INPUT SELF, INPUT 'TOUR1' ).
  311. END.
  312. /* _UIB-CODE-BLOCK-END */
  313. &ANALYZE-RESUME
  314. &Scoped-define SELF-NAME F_Vertreter
  315. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Vertreter gAuftragsanalyse
  316. ON RIGHT-MOUSE-CLICK OF F_Vertreter IN FRAME gAuftragsanalyse /* Vertreter */
  317. DO:
  318. RUN g-auswahl-tabelle.w ( INPUT SELF, INPUT 'VERTR' ).
  319. END.
  320. /* _UIB-CODE-BLOCK-END */
  321. &ANALYZE-RESUME
  322. &Scoped-define SELF-NAME F_VonKnr
  323. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_VonKnr gAuftragsanalyse
  324. ON ALT-F OF F_VonKnr IN FRAME gAuftragsanalyse /* von - bis Knr */
  325. DO:
  326. DEF VAR iRecid AS RECID NO-UNDO.
  327. RUN 'g-suchen-adresse.w':U ( 'AUF', OUTPUT iRecid ).
  328. IF iRecid = ? OR
  329. iRecid = 0 THEN RETURN NO-APPLY.
  330. FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid NO-ERROR.
  331. SELF:SCREEN-VALUE = STRING(Adresse.Knr).
  332. F_BisKnr:SCREEN-VALUE = STRING(Adresse.Knr).
  333. APPLY 'ENTRY' TO SELF.
  334. RETURN NO-APPLY.
  335. END.
  336. /* _UIB-CODE-BLOCK-END */
  337. &ANALYZE-RESUME
  338. &Scoped-define SELF-NAME F_Warengrp
  339. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Warengrp gAuftragsanalyse
  340. ON RIGHT-MOUSE-CLICK OF F_Warengrp IN FRAME gAuftragsanalyse /* Warengruppen */
  341. DO:
  342. RUN g-auswahl-wgr.w ( INPUT SELF ).
  343. END.
  344. /* _UIB-CODE-BLOCK-END */
  345. &ANALYZE-RESUME
  346. &Scoped-define SELF-NAME T_Detail
  347. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Detail gAuftragsanalyse
  348. ON RETURN OF T_Detail IN FRAME gAuftragsanalyse /* Details ? (jeden Lieferschein) */
  349. DO:
  350. APPLY 'TAB' TO SELF.
  351. RETURN NO-APPLY.
  352. END.
  353. /* _UIB-CODE-BLOCK-END */
  354. &ANALYZE-RESUME
  355. &Scoped-define SELF-NAME T_Marge
  356. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Marge gAuftragsanalyse
  357. ON RETURN OF T_Marge IN FRAME gAuftragsanalyse /* Margenberechnung ? */
  358. DO:
  359. APPLY 'TAB' TO SELF.
  360. RETURN NO-APPLY.
  361. END.
  362. /* _UIB-CODE-BLOCK-END */
  363. &ANALYZE-RESUME
  364. &UNDEFINE SELF-NAME
  365. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gAuftragsanalyse
  366. /* *************************** Main Block *************************** */
  367. MaxPage = 1.
  368. AktSeite = 1.
  369. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  370. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  371. SESSION:DATA-ENTRY-RETURN = TRUE.
  372. /* TRIGGERS ------------------------------------------------------ */
  373. /*
  374. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE
  375. DO:
  376. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  377. IF FMutFlag = FALSE THEN DO:
  378. RUN ENDE.
  379. RETURN NO-APPLY.
  380. END.
  381. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'CANCEL':U ).
  382. RETURN NO-APPLY.
  383. END.
  384. */
  385. /* ------------------------------------------------------------------ */
  386. {src/adm2/dialogmn.i}
  387. /* _UIB-CODE-BLOCK-END */
  388. &ANALYZE-RESUME
  389. /* ********************** Internal Procedures *********************** */
  390. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gAuftragsanalyse _ADM-CREATE-OBJECTS
  391. PROCEDURE adm-create-objects :
  392. /*------------------------------------------------------------------------------
  393. Purpose: Create handles for all SmartObjects used in this procedure.
  394. After SmartObjects are initialized, then SmartLinks are added.
  395. Parameters: <none>
  396. ------------------------------------------------------------------------------*/
  397. END PROCEDURE.
  398. /* _UIB-CODE-BLOCK-END */
  399. &ANALYZE-RESUME
  400. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BEREINIGEN gAuftragsanalyse
  401. PROCEDURE BEREINIGEN :
  402. /*------------------------------------------------------------------------------
  403. Purpose:
  404. Parameters: <none>
  405. Notes:
  406. ------------------------------------------------------------------------------*/
  407. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  408. DEF VAR cString AS CHAR NO-UNDO.
  409. DEF VAR i AS INT NO-UNDO.
  410. cString = ''.
  411. DO i = 1 TO LENGTH(ipHandle:SCREEN-VALUE):
  412. IF SUBSTRING(ipHandle:SCREEN-VALUE,i,1) < '0' OR
  413. SUBSTRING(ipHandle:SCREEN-VALUE,i,1) > '9' THEN DO:
  414. SUBSTRING(ipHandle:SCREEN-VALUE,i) = ','.
  415. END.
  416. END.
  417. DO i = 1 TO NUM-ENTRIES(ipHandle:SCREEN-VALUE, ','):
  418. IF cString <> '' THEN cString = cString + ','.
  419. cString = cString
  420. + STRING(INTEGER(ENTRY(i, ipHandle:SCREEN-VALUE, ',')),'999').
  421. END.
  422. ipHandle:SCREEN-VALUE = cString.
  423. RETURN.
  424. END PROCEDURE.
  425. /* _UIB-CODE-BLOCK-END */
  426. &ANALYZE-RESUME
  427. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gAuftragsanalyse _DEFAULT-DISABLE
  428. PROCEDURE disable_UI :
  429. /*------------------------------------------------------------------------------
  430. Purpose: DISABLE the User Interface
  431. Parameters: <none>
  432. Notes: Here we clean-up the user-interface by deleting
  433. dynamic widgets we have created and/or hide
  434. frames. This procedure is usually called when
  435. we are ready to "clean-up" after running.
  436. ------------------------------------------------------------------------------*/
  437. /* Hide all frames. */
  438. HIDE FRAME gAuftragsanalyse.
  439. END PROCEDURE.
  440. /* _UIB-CODE-BLOCK-END */
  441. &ANALYZE-RESUME
  442. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gAuftragsanalyse
  443. PROCEDURE enableObject :
  444. /*------------------------------------------------------------------------------
  445. Purpose: Super Override
  446. Parameters:
  447. Notes:
  448. ------------------------------------------------------------------------------*/
  449. RUN LESEN_FEHLWERTE.
  450. RUN SUPER.
  451. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR.
  452. END PROCEDURE.
  453. /* _UIB-CODE-BLOCK-END */
  454. &ANALYZE-RESUME
  455. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gAuftragsanalyse _DEFAULT-ENABLE
  456. PROCEDURE enable_UI :
  457. /*------------------------------------------------------------------------------
  458. Purpose: ENABLE the User Interface
  459. Parameters: <none>
  460. Notes: Here we display/view/enable the widgets in the
  461. user-interface. In addition, OPEN all queries
  462. associated with each FRAME and BROWSE.
  463. These statements here are based on the "Other
  464. Settings" section of the widget Property Sheets.
  465. ------------------------------------------------------------------------------*/
  466. DISPLAY F_VonKnr F_BisKnr F_Kundengrp F_Tour F_Vertreter F_VonArtnr F_BisArtnr
  467. F_Warengrp F_VonDatum F_BisDatum T_Marge T_Detail
  468. WITH FRAME gAuftragsanalyse.
  469. ENABLE RECT-12 F_VonKnr F_BisKnr F_Kundengrp F_Tour F_Vertreter F_VonArtnr
  470. F_BisArtnr F_Warengrp F_VonDatum F_BisDatum T_Marge T_Detail Btn_OK
  471. Btn_Cancel
  472. WITH FRAME gAuftragsanalyse.
  473. VIEW FRAME gAuftragsanalyse.
  474. {&OPEN-BROWSERS-IN-QUERY-gAuftragsanalyse}
  475. END PROCEDURE.
  476. /* _UIB-CODE-BLOCK-END */
  477. &ANALYZE-RESUME
  478. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gAuftragsanalyse
  479. PROCEDURE ENDE :
  480. /*------------------------------------------------------------------------------
  481. Purpose:
  482. Parameters: <none>
  483. Notes:
  484. ------------------------------------------------------------------------------*/
  485. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  486. IF AktSeite > 1 THEN DO:
  487. RUN selectPage ( INPUT 1 ).
  488. RETURN NO-APPLY.
  489. END.
  490. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  491. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  492. RETURN NO-APPLY.
  493. END PROCEDURE.
  494. /* _UIB-CODE-BLOCK-END */
  495. &ANALYZE-RESUME
  496. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gAuftragsanalyse
  497. PROCEDURE exitObject :
  498. /*------------------------------------------------------------------------------
  499. Purpose: Super Override
  500. Parameters:
  501. Notes:
  502. ------------------------------------------------------------------------------*/
  503. RUN ENDE.
  504. RETURN NO-APPLY.
  505. END PROCEDURE.
  506. /* _UIB-CODE-BLOCK-END */
  507. &ANALYZE-RESUME
  508. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF gAuftragsanalyse
  509. PROCEDURE KOPF :
  510. /*------------------------------------------------------------------------------
  511. Purpose:
  512. Parameters: <none>
  513. Notes:
  514. ------------------------------------------------------------------------------*/
  515. DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO.
  516. DEF VAR Zelle AS CHAR NO-UNDO.
  517. FIND Steuer USE-INDEX Steuer-k1
  518. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  519. IF T_Marge THEN DO:
  520. Zelle = 'B1'.
  521. eh:Range(Zelle):SELECT.
  522. eh:SELECTION:VALUE = Steuer.Firma1.
  523. Zelle = 'C1'.
  524. eh:Range(Zelle):SELECT.
  525. eh:SELECTION:VALUE = 'Auftragsstatistik'.
  526. Zelle = 'K1'.
  527. eh:Range(Zelle):SELECT.
  528. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  529. Zelle = 'B2'.
  530. eh:Range(Zelle):SELECT.
  531. eh:SELECTION:VALUE = Steuer.Ort.
  532. Zelle = 'C2'.
  533. eh:Range(Zelle):SELECT.
  534. eh:SELECTION:VALUE = STRING(F_VonDatum,'99.99.9999')
  535. + ' - '
  536. + STRING(F_BisDatum,'99.99.9999').
  537. Zelle = 'K2'.
  538. eh:Range(Zelle):SELECT.
  539. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  540. RETURN.
  541. END.
  542. Zelle = 'B1'.
  543. eh:Range(Zelle):SELECT.
  544. eh:SELECTION:VALUE = Steuer.Firma1.
  545. Zelle = 'C1'.
  546. eh:Range(Zelle):SELECT.
  547. eh:SELECTION:VALUE = 'Auftragsstatistik'.
  548. Zelle = 'I1'.
  549. eh:Range(Zelle):SELECT.
  550. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  551. Zelle = 'B2'.
  552. eh:Range(Zelle):SELECT.
  553. eh:SELECTION:VALUE = Steuer.Ort.
  554. Zelle = 'C2'.
  555. eh:Range(Zelle):SELECT.
  556. eh:SELECTION:VALUE = STRING(F_VonDatum,'99.99.9999')
  557. + ' - '
  558. + STRING(F_BisDatum,'99.99.9999').
  559. Zelle = 'I2'.
  560. eh:Range(Zelle):SELECT.
  561. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  562. IF T_Detail THEN DO:
  563. Zelle = 'C3'.
  564. eh:Range(Zelle):SELECT.
  565. eh:SELECTION:VALUE = 'Liefer'.
  566. Zelle = 'C4'.
  567. eh:Range(Zelle):SELECT.
  568. eh:SELECTION:VALUE = 'Datum '.
  569. END.
  570. END PROCEDURE.
  571. /* _UIB-CODE-BLOCK-END */
  572. &ANALYZE-RESUME
  573. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LESEN_FEHLWERTE gAuftragsanalyse
  574. PROCEDURE LESEN_FEHLWERTE :
  575. /*------------------------------------------------------------------------------
  576. Purpose:
  577. Parameters: <none>
  578. Notes:
  579. ------------------------------------------------------------------------------*/
  580. DEF VAR cVal AS CHAR NO-UNDO.
  581. DEF VAR cKey AS CHAR NO-UNDO.
  582. DEF VAR i AS INT NO-UNDO.
  583. DEF VAR cWert AS CHAR NO-UNDO.
  584. cKey = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.' ) NO-ERROR.
  585. GET-KEY-VALUE SECTION 'Auswertungen' KEY cKey VALUE cVal.
  586. IF cVal = ? THEN RETURN.
  587. DO WITH FRAME {&FRAME-NAME}:
  588. DO i = 1 TO NUM-ENTRIES(cVal, '@'):
  589. cWert = ENTRY(i, cVal, '@').
  590. CASE i:
  591. WHEN 1 THEN F_VonKnr :SCREEN-VALUE = cWert NO-ERROR.
  592. WHEN 2 THEN F_BisKnr :SCREEN-VALUE = cWert NO-ERROR.
  593. WHEN 3 THEN F_Kundengrp :SCREEN-VALUE = cWert NO-ERROR.
  594. WHEN 4 THEN F_Tour :SCREEN-VALUE = cWert NO-ERROR.
  595. WHEN 5 THEN F_Vertreter :SCREEN-VALUE = cWert NO-ERROR.
  596. WHEN 6 THEN F_VonArtnr :SCREEN-VALUE = cWert NO-ERROR.
  597. WHEN 7 THEN F_BisArtnr :SCREEN-VALUE = cWert NO-ERROR.
  598. WHEN 8 THEN F_Warengrp :SCREEN-VALUE = cWert NO-ERROR.
  599. WHEN 9 THEN F_VonDatum :SCREEN-VALUE = cWert NO-ERROR.
  600. WHEN 10 THEN F_BisDatum :SCREEN-VALUE = cWert NO-ERROR.
  601. WHEN 11 THEN T_Marge :SCREEN-VALUE = cWert NO-ERROR.
  602. WHEN 12 THEN T_Detail :SCREEN-VALUE = cWert NO-ERROR.
  603. END CASE.
  604. END.
  605. ASSIGN {&List-6}.
  606. END.
  607. END PROCEDURE.
  608. /* _UIB-CODE-BLOCK-END */
  609. &ANALYZE-RESUME
  610. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gAuftragsanalyse
  611. PROCEDURE REPORT :
  612. /*------------------------------------------------------------------------------
  613. Purpose:
  614. Parameters: <none>
  615. Notes:
  616. ------------------------------------------------------------------------------*/
  617. DEF VAR ja AS LOG NO-UNDO.
  618. DEF VAR cString AS CHAR NO-UNDO.
  619. DEF VAR cWgr AS CHAR NO-UNDO.
  620. DEF VAR Ep AS DEC DECIMALS 4 NO-UNDO.
  621. DEF VAR Vp AS DEC DECIMALS 4 NO-UNDO.
  622. DEF VAR Ma AS DEC DECIMALS 4 NO-UNDO.
  623. DEF VAR MWST% AS DEC NO-UNDO.
  624. DEF VAR AnzFak AS INT NO-UNDO.
  625. DEF VAR AnzZei AS INT NO-UNDO.
  626. DEF VAR TotGewicht AS DEC DECIMALS 3 NO-UNDO.
  627. DEF VAR TotBrutto AS DEC DECIMALS 4 NO-UNDO.
  628. DEF VAR TotRabatt AS DEC DECIMALS 4 NO-UNDO.
  629. DEF VAR TotNetto AS DEC DECIMALS 4 NO-UNDO.
  630. DEF VAR TotEP AS DEC DECIMALS 4 NO-UNDO.
  631. DEF VAR TotKGeb AS INT NO-UNDO.
  632. DEF VAR TotVGeb AS INT NO-UNDO.
  633. DO WITH FRAME {&FRAME-NAME}:
  634. RUN BEREINIGEN ( INPUT F_Kundengrp :HANDLE ).
  635. RUN BEREINIGEN ( INPUT F_Tour :HANDLE ).
  636. RUN BEREINIGEN ( INPUT F_Vertreter :HANDLE ).
  637. RUN BEREINIGEN ( INPUT F_Warengrp :HANDLE ).
  638. ASSIGN {&List-6}.
  639. IF F_VonKnr = 0 AND F_BisKnr = 0 THEN F_BisKnr = 999999.
  640. IF F_VonKnr > F_BisKnr THEN F_BisKnr = F_VonKnr.
  641. IF F_VonArtnr = 0 AND F_BisArtnr = 0 THEN F_BisArtnr = 999999.
  642. IF F_VonArtnr > F_BisArtnr THEN F_BisArtnr = F_VonArtnr.
  643. IF F_VonDatum = ? THEN F_VonDatum = DATE(01,01,YEAR(TODAY)).
  644. IF F_BisDatum = ? THEN F_BisDatum = DATE(12,31,YEAR(TODAY)).
  645. IF F_BisDatum < F_VonDatum THEN F_BisDatum = F_VonDatum.
  646. DISPLAY {&List-6}.
  647. RUN SCHREIBEN_FEHLWERTE.
  648. END.
  649. EMPTY TEMP-TABLE TUmsatz.
  650. FOR EACH Savko USE-INDEX Savko-k2
  651. WHERE Savko.Firma = Firma
  652. AND Savko.Knr >= F_VonKnr
  653. AND Savko.Knr <= F_BisKnr
  654. AND Savko.Lief_Datum >= F_VonDatum
  655. AND Savko.Lief_Datum <= F_BisDatum NO-LOCK,
  656. FIRST Debst USE-INDEX Debst-k1
  657. WHERE Debst.Firma = Savko.Firma
  658. AND Debst.Knr = Savko.Knr
  659. AND Debst.Aktiv = TRUE NO-LOCK,
  660. FIRST Adresse USE-INDEX Adresse-k1
  661. WHERE Adresse.Firma = AdFirma
  662. AND Adresse.Knr = Debst.Knr
  663. AND Adresse.Aktiv = TRUE NO-LOCK :
  664. IF F_Kundengrp = '' THEN.
  665. ELSE DO:
  666. IF LOOKUP(STRING(Savko.Ku_Grp ,'999'), F_Kundengrp, ',') = 0 THEN NEXT.
  667. END.
  668. IF F_Tour = '' THEN.
  669. ELSE DO:
  670. IF LOOKUP(STRING(Savko.Tour_Nr1,'999'), F_Tour , ',') = 0 THEN NEXT.
  671. END.
  672. IF F_Vertreter = '' THEN.
  673. ELSE DO:
  674. IF LOOKUP(STRING(Savko.Vertr ,'999') , F_Vertreter, ',') = 0 THEN NEXT.
  675. END.
  676. IF NOT T_Detail THEN DO:
  677. FIND FIRST TUmsatz USE-INDEX TUmsatz-k1
  678. WHERE TUmsatz.Knr = Savko.Knr NO-ERROR.
  679. END.
  680. ELSE DO:
  681. FIND FIRST TUmsatz USE-INDEX TUmsatz-k1
  682. WHERE TUmsatz.Knr = Savko.Knr
  683. AND TUmsatz.Aufnr = Savko.Aufnr NO-ERROR.
  684. END.
  685. IF NOT AVAILABLE TUmsatz THEN DO:
  686. CREATE TUmsatz.
  687. ASSIGN TUmsatz.Knr = Savko.Knr
  688. TUmsatz.Adresse = Adresse.Anzeig_Br
  689. TUmsatz.Anz_Fak = 0
  690. TUmsatz.Anz_Zei = 0
  691. TUmsatz.Brutto = 0
  692. TUmsatz.Netto = 0
  693. TUmsatz.Rabatte = 0
  694. TUmsatz.EP = 0
  695. TUmsatz.Gewicht = 0
  696. TUmsatz.Anz_KGeb = 0
  697. TUmsatz.Anz_VGeb = 0.
  698. IF T_Detail THEN ASSIGN TUmsatz.Aufnr = Savko.Aufnr
  699. TUmsatz.Datum = Savko.Lief_Datum.
  700. END.
  701. ja = TRUE.
  702. FOR EACH Savze USE-INDEX Savze-k1
  703. WHERE Savze.Firma = Savko.Firma
  704. AND Savze.Aufnr = Savko.Aufnr
  705. AND Savze.Artnr >= F_VonArtnr
  706. AND savze.Artnr <= F_BisArtnr NO-LOCK,
  707. FIRST Artst USE-INDEX Artst-k1
  708. WHERE Artst.Firma = Savze.Firma
  709. AND Artst.Artnr = Savze.Artnr
  710. AND Artst.Inhalt = Savze.Inhalt
  711. AND Artst.Jahr = Savze.Jahr
  712. AND Artst.Aktiv = TRUE NO-LOCK:
  713. IF F_Warengrp = '' THEN.
  714. ELSE DO:
  715. IF LOOKUP(STRING(Artst.Wg_Grp,'999'), F_Warengrp , ',') = 0 THEN NEXT.
  716. END.
  717. IF ja THEN DO:
  718. TUmsatz.Anz_Fak = TUmsatz.Anz_Fak + 1.
  719. ja = FALSE.
  720. END.
  721. MWST% = Savze.MWST%.
  722. Ep = Savze.EP * Savze.MGel .
  723. Vp = Savze.Net_Betr
  724. - Savze.Auf_Rab
  725. - Savze.Abh_Rab
  726. - Savze.Auf_Sp_Rab.
  727. IF Savze.MWST_Inkl THEN DO:
  728. IF MWST% = 0 THEN DO:
  729. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  730. WHERE MWSTAns.MWST_Cd = Savze.WuCd
  731. AND MWSTAns.Datum <= Savko.Kond_Datum NO-LOCK NO-ERROR.
  732. IF AVAILABLE MWSTAns THEN MWST% = MWSTAns.Ansatz.
  733. END.
  734. Vp = Vp * 100 / (100 + MWST%).
  735. END.
  736. ASSIGN TUmsatz.Anz_Zei = TUmsatz.Anz_Zei + 1
  737. TUmsatz.Brutto = TUmsatz.Brutto + Savze.Bru_Betr
  738. TUmsatz.Netto = TUmsatz.Netto + Vp
  739. TUmsatz.Rabatte = TUmsatz.Rabatte
  740. + Savze.Auf_Rab
  741. + Savze.Abh_Rab
  742. + Savze.Auf_Sp_Rab
  743. TUmsatz.EP = TUmsatz.EP + EP
  744. TUmsatz.Gewicht = TUmsatz.Gewicht + Savze.Gewicht
  745. TUmsatz.Anz_KGeb = TUmsatz.Anz_KGeb + Savze.KGeb_Me
  746. TUmsatz.Anz_VGeb = TUmsatz.Anz_VGeb + Savze.VGeb_Me.
  747. END.
  748. END.
  749. IF T_Marge = TRUE THEN cString = 'J'.
  750. ELSE cString = 'N'.
  751. cVorlage = 'AuftragStat' + cString + '.xls'.
  752. cDokument = 'AuftragStat' + cString + '.xls'.
  753. cDaten = 'AuftragStat' + cString + '.txt'.
  754. cDateiName = cDokument + CHR(01) + cVorlage.
  755. RUN CREATEDATEI ( INPUT cDateiName ).
  756. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  757. cDokument = RETURN-VALUE.
  758. cDateiName = cDaten.
  759. RUN CREATEDATEI ( INPUT cDateiName ).
  760. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  761. cDaten = RETURN-VALUE.
  762. OUTPUT TO VALUE(cDaten).
  763. FOR EACH TUmsatz USE-INDEX TUmsatz-k1 NO-LOCK
  764. BREAK BY TUmsatz.Knr
  765. BY TUmsatz.Aufnr :
  766. Ma = 0.
  767. IF TUmsatz.EP <> 0 AND
  768. TUmsatz.Netto <> 0 THEN Ma = 100 - (TUmsatz.EP * 100 / TUmsatz.Netto).
  769. IF FIRST-OF ( TUmsatz.Knr ) THEN DO:
  770. AnzFak = 0.
  771. AnzZei = 0.
  772. TotGewicht = 0.
  773. TotBrutto = 0.
  774. TotRabatt = 0.
  775. TotNetto = 0.
  776. TotEP = 0.
  777. TotKGeb = 0.
  778. TotVGeb = 0.
  779. PUT CONTROL '£'
  780. STRING(TUmsatz.Knr,'999999 ')
  781. TUmsatz.Adresse '£'.
  782. END.
  783. ELSE DO:
  784. PUT CONTROL '££'.
  785. END.
  786. IF T_Detail
  787. THEN PUT CONTROL STRING(TUmsatz.Datum,'99.99.9999') '£'.
  788. ELSE PUT CONTROL TRIM(STRING(TUmsatz.Anz_Fak ,'->>>,>>9')) '£'.
  789. PUT CONTROL TRIM(STRING(TUmsatz.Anz_Zei ,'->>>,>>9')) '£'
  790. TRIM(STRING(TUmsatz.Anz_KGeb,'->>>,>>9')) '£'
  791. TRIM(STRING(TUmsatz.Anz_VGeb,'->>>,>>9')) '£'
  792. TRIM(STRING(TUmsatz.Gewicht ,'->>>,>>9.999')) '£'
  793. TRIM(STRING(TUmsatz.Brutto ,'->>>,>>>,>>9.99')) '£'
  794. TRIM(STRING(TUmsatz.Netto ,'->>>,>>>,>>9.99')).
  795. IF T_Marge THEN DO:
  796. PUT CONTROL '£'
  797. TRIM(STRING(TUmsatz.EP,'->>>,>>>,>>9.99')) '£'
  798. TRIM(STRING(Ma ,'->>9.99')).
  799. END.
  800. PUT CONTROL CHR(10).
  801. AnzFak = AnzFak + 1.
  802. AnzZei = AnzZei + TUmsatz.Anz_Zei.
  803. TotGewicht = TotGewicht + TUmsatz.Gewicht.
  804. TotBrutto = TotBrutto + TUmsatz.Brutto.
  805. TotRabatt = TotRabatt + TUmsatz.Rabatte.
  806. TotNetto = TotNetto + TUmsatz.Netto.
  807. TotEP = TotEP + TUmsatz.EP.
  808. TotKGeb = TotKGeb + TUmsatz.Anz_KGeb.
  809. TotVGeb = TotVGeb + TUmsatz.Anz_VGeb.
  810. IF NOT T_Detail THEN NEXT.
  811. IF NOT LAST-OF ( TUmsatz.Knr ) THEN NEXT.
  812. Ma = 0.
  813. IF TotEP <> 0 AND
  814. TotNetto <> 0 THEN Ma = 100 - (TotEP * 100 / TotNetto).
  815. PUT CONTROL '£Kundentotal£'
  816. TRIM(STRING(AnzFak ,'->>>,>>9')) '£'
  817. TRIM(STRING(AnzZei ,'->>>,>>9')) '£'
  818. TRIM(STRING(TotKGeb ,'->>>,>>9')) '£'
  819. TRIM(STRING(TotVGeb ,'->>>,>>9')) '£'
  820. TRIM(STRING(TotGewicht ,'->>>,>>9.999')) '£'
  821. TRIM(STRING(TotBrutto ,'->>>,>>>,>>9.99')) '£'
  822. TRIM(STRING(TotNetto ,'->>>,>>>,>>9.99')).
  823. IF T_Marge THEN DO:
  824. PUT CONTROL '£'
  825. TRIM(STRING(TotEP ,'->>>,>>>,>>9.99')) '£'
  826. TRIM(STRING(Ma ,'->>9.99')).
  827. END.
  828. PUT CONTROL CHR(10)
  829. '£' CHR(10).
  830. END.
  831. OUTPUT CLOSE.
  832. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  833. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  834. RUN FEHLER ( INPUT 1035 ).
  835. RETURN.
  836. END.
  837. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
  838. IF NOT ja THEN DO:
  839. RUN FEHLER ( INPUT 1040 ).
  840. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  841. RETURN NO-APPLY.
  842. END.
  843. Zelle = 'A6'.
  844. excelAppl:Range(Zelle):SELECT.
  845. excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten.
  846. excelAppl:APPLICATION:RUN ( 'DateiEinfügen' ).
  847. RUN KOPF ( INPUT excelAppl ).
  848. Zelle = 'A1'.
  849. excelAppl:Range(Zelle):SELECT.
  850. excelAppl:SELECTION:ColumnWidth = 0.3.
  851. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  852. END PROCEDURE.
  853. /* _UIB-CODE-BLOCK-END */
  854. &ANALYZE-RESUME
  855. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SCHREIBEN_FEHLWERTE gAuftragsanalyse
  856. PROCEDURE SCHREIBEN_FEHLWERTE :
  857. /*------------------------------------------------------------------------------
  858. Purpose:
  859. Parameters: <none>
  860. Notes:
  861. ------------------------------------------------------------------------------*/
  862. DEF VAR cVal AS CHAR NO-UNDO.
  863. DEF VAR cKey AS CHAR NO-UNDO.
  864. DO WITH FRAME {&FRAME-NAME}:
  865. ASSIGN {&List-6}.
  866. cKey = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.' ) NO-ERROR.
  867. cVal = F_VonKnr :SCREEN-VALUE + '@'
  868. + F_BisKnr :SCREEN-VALUE + '@'
  869. + F_Kundengrp :SCREEN-VALUE + '@'
  870. + F_Tour :SCREEN-VALUE + '@'
  871. + F_Vertreter :SCREEN-VALUE + '@'
  872. + F_VonArtnr :SCREEN-VALUE + '@'
  873. + F_BisArtnr :SCREEN-VALUE + '@'
  874. + F_Warengrp :SCREEN-VALUE + '@'
  875. + F_VonDatum :SCREEN-VALUE + '@'
  876. + F_BisDatum :SCREEN-VALUE + '@'
  877. + T_Marge :SCREEN-VALUE + '@'
  878. + T_Detail :SCREEN-VALUE + '@'.
  879. PUT-KEY-VALUE SECTION 'Auswertungen' KEY cKey VALUE cVal.
  880. END.
  881. END PROCEDURE.
  882. /* _UIB-CODE-BLOCK-END */
  883. &ANALYZE-RESUME