g-excelbestellung.w 37 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gExcelbestellung
  5. {adecomm/appserv.i}
  6. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gExcelbestellung
  7. /*------------------------------------------------------------------------
  8. File:
  9. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  10. Input Parameters:
  11. <none>
  12. Output Parameters:
  13. <none>
  14. Author:
  15. Created:
  16. ------------------------------------------------------------------------*/
  17. /* This .W file was created with the Progress AppBuilder. */
  18. /*----------------------------------------------------------------------*/
  19. /* Create an unnamed pool to store all the widgets created
  20. by this procedure. This is a good default which assures
  21. that this procedure's triggers and internal procedures
  22. will execute in this procedure's storage, and that proper
  23. cleanup will occur on deletion of the procedure. */
  24. CREATE WIDGET-POOL.
  25. /* *************************** Definitions ************************** */
  26. /* Parameters Definitions --- */
  27. DEF INPUT PARAMETER ipAufnr AS INT NO-UNDO.
  28. /* Local Variable Definitions --- */
  29. DEF VAR htKunBest AS HANDLE NO-UNDO.
  30. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  31. DEF VAR iKnr AS INT NO-UNDO.
  32. DEF VAR iAufnr AS INT NO-UNDO.
  33. DEF TEMP-TABLE TExcel FIELD Zeile AS INT
  34. FIELD Artnr AS INT
  35. FIELD Inhalt AS INT
  36. FIELD Jahr AS INT
  37. FIELD iGGeb AS INT
  38. FIELD iVGeb AS INT
  39. FIELD iKGeb AS INT
  40. INDEX TExcel-k1 IS PRIMARY
  41. Artnr
  42. Inhalt
  43. Jahr.
  44. DEF TEMP-TABLE tKunbest LIKE Kunbest.
  45. DEF TEMP-TABLE tAufze LIKE Aufze
  46. FIELD Knr AS INT.
  47. { incl/dlgdefinition.i }
  48. { src/adm2/widgetprto.i }
  49. /* _UIB-CODE-BLOCK-END */
  50. &ANALYZE-RESUME
  51. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  52. /* ******************** Preprocessor Definitions ******************** */
  53. &Scoped-define PROCEDURE-TYPE SmartDialog
  54. &Scoped-define DB-AWARE no
  55. &Scoped-define ADM-CONTAINER DIALOG-BOX
  56. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  57. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  58. &Scoped-define FRAME-NAME gExcelbestellung
  59. /* Standard List Definitions */
  60. &Scoped-Define ENABLED-OBJECTS RECT-2 F_Knr F_Kunde F_Datei Btn_Datei ~
  61. F_Artnr F_Inhalt F_Jahr F_GGebinde F_VGebinde F_KGebinde Btn_Vorschau ~
  62. Btn_OK Btn_Cancel
  63. &Scoped-Define DISPLAYED-OBJECTS F_Knr F_Kunde F_Datei F_Artnr F_Inhalt ~
  64. F_Jahr F_GGebinde F_VGebinde F_KGebinde
  65. /* Custom List Definitions */
  66. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  67. &Scoped-define List-6 F_Knr F_Datei F_Artnr F_Inhalt F_Jahr F_GGebinde ~
  68. F_VGebinde F_KGebinde
  69. /* _UIB-PREPROCESSOR-BLOCK-END */
  70. &ANALYZE-RESUME
  71. /* ************************ Function Prototypes ********************** */
  72. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createAuftrag gExcelbestellung
  73. FUNCTION createAuftrag RETURNS INTEGER
  74. ( /* parameter-definitions */ ) FORWARD.
  75. /* _UIB-CODE-BLOCK-END */
  76. &ANALYZE-RESUME
  77. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getFehlwerte gExcelbestellung
  78. FUNCTION getFehlwerte RETURNS LOGICAL
  79. ( /* parameter-definitions */ ) FORWARD.
  80. /* _UIB-CODE-BLOCK-END */
  81. &ANALYZE-RESUME
  82. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setFehlwerte gExcelbestellung
  83. FUNCTION setFehlwerte RETURNS LOGICAL
  84. ( /* parameter-definitions */ ) FORWARD.
  85. /* _UIB-CODE-BLOCK-END */
  86. &ANALYZE-RESUME
  87. /* *********************** Control Definitions ********************** */
  88. /* Define a dialog box */
  89. /* Definitions of the field level widgets */
  90. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  91. LABEL "abbrechen"
  92. SIZE 15 BY 1.
  93. DEFINE BUTTON Btn_Datei
  94. IMAGE-UP FILE "grafik/select.bmp":U
  95. IMAGE-DOWN FILE "grafik/select.bmp":U
  96. IMAGE-INSENSITIVE FILE "grafik/select.bmp":U
  97. LABEL "Button 1"
  98. SIZE 5 BY 1.14.
  99. DEFINE BUTTON Btn_OK
  100. LABEL "OK"
  101. SIZE 15 BY 1.
  102. DEFINE BUTTON Btn_Vorschau
  103. LABEL "Vorschau"
  104. SIZE 15 BY 1.
  105. DEFINE VARIABLE F_Artnr AS CHARACTER FORMAT "x(02)":U
  106. LABEL "Spalte(n) Artikelnummer"
  107. VIEW-AS FILL-IN NATIVE
  108. SIZE 4 BY 1
  109. BGCOLOR 15 NO-UNDO.
  110. DEFINE VARIABLE F_Datei AS CHARACTER FORMAT "X(256)":U
  111. LABEL "Dateiname"
  112. VIEW-AS FILL-IN NATIVE
  113. SIZE 65 BY 1
  114. BGCOLOR 15 NO-UNDO.
  115. DEFINE VARIABLE F_GGebinde AS CHARACTER FORMAT "x(02)":U
  116. LABEL "Spalte(n) Menge G / V / KGeb"
  117. VIEW-AS FILL-IN NATIVE
  118. SIZE 4 BY 1
  119. BGCOLOR 15 NO-UNDO.
  120. DEFINE VARIABLE F_Inhalt AS CHARACTER FORMAT "x(02)":U
  121. LABEL "/"
  122. VIEW-AS FILL-IN NATIVE
  123. SIZE 4 BY 1
  124. BGCOLOR 15 NO-UNDO.
  125. DEFINE VARIABLE F_Jahr AS CHARACTER FORMAT "x(02)":U
  126. LABEL "/"
  127. VIEW-AS FILL-IN NATIVE
  128. SIZE 4 BY 1
  129. BGCOLOR 15 NO-UNDO.
  130. DEFINE VARIABLE F_KGebinde AS CHARACTER FORMAT "x(02)":U
  131. LABEL "/"
  132. VIEW-AS FILL-IN NATIVE
  133. SIZE 4 BY 1
  134. BGCOLOR 15 NO-UNDO.
  135. DEFINE VARIABLE F_Knr AS INTEGER FORMAT "999999":U INITIAL 0
  136. LABEL "Kunde"
  137. VIEW-AS FILL-IN NATIVE
  138. SIZE 11 BY 1
  139. BGCOLOR 15 NO-UNDO.
  140. DEFINE VARIABLE F_Kunde AS CHARACTER FORMAT "X(256)":U
  141. VIEW-AS FILL-IN NATIVE
  142. SIZE 58 BY 1 NO-UNDO.
  143. DEFINE VARIABLE F_VGebinde AS CHARACTER FORMAT "x(02)":U
  144. LABEL "/"
  145. VIEW-AS FILL-IN NATIVE
  146. SIZE 4 BY 1
  147. BGCOLOR 15 NO-UNDO.
  148. DEFINE RECTANGLE RECT-2
  149. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  150. SIZE 88 BY 6.19.
  151. /* ************************ Frame Definitions *********************** */
  152. DEFINE FRAME gExcelbestellung
  153. F_Knr AT ROW 1.52 COL 15 COLON-ALIGNED WIDGET-ID 18 NO-TAB-STOP
  154. F_Kunde AT ROW 1.52 COL 27 COLON-ALIGNED NO-LABEL WIDGET-ID 20 NO-TAB-STOP
  155. F_Datei AT ROW 3 COL 15 COLON-ALIGNED WIDGET-ID 4
  156. Btn_Datei AT ROW 3 COL 83 WIDGET-ID 16 NO-TAB-STOP
  157. F_Artnr AT ROW 4.48 COL 33 COLON-ALIGNED WIDGET-ID 6
  158. F_Inhalt AT ROW 4.48 COL 41 COLON-ALIGNED WIDGET-ID 8
  159. F_Jahr AT ROW 4.48 COL 49 COLON-ALIGNED WIDGET-ID 10
  160. F_GGebinde AT ROW 5.48 COL 33 COLON-ALIGNED WIDGET-ID 24
  161. F_VGebinde AT ROW 5.48 COL 41 COLON-ALIGNED WIDGET-ID 12
  162. F_KGebinde AT ROW 5.48 COL 49 COLON-ALIGNED WIDGET-ID 14
  163. Btn_Vorschau AT ROW 9 COL 18 WIDGET-ID 22
  164. Btn_OK AT ROW 9 COL 39
  165. Btn_Cancel AT ROW 9 COL 60
  166. RECT-2 AT ROW 1.24 COL 2 WIDGET-ID 2
  167. SPACE(0.99) SKIP(3.56)
  168. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  169. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  170. TITLE "Bestellung per ExcelDatei"
  171. CANCEL-BUTTON Btn_Cancel WIDGET-ID 100.
  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 APPSERVER
  180. */
  181. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  182. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gExcelbestellung
  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 gExcelbestellung
  190. FRAME-NAME */
  191. ASSIGN
  192. FRAME gExcelbestellung:SCROLLABLE = FALSE
  193. FRAME gExcelbestellung:HIDDEN = TRUE.
  194. /* SETTINGS FOR FILL-IN F_Artnr IN FRAME gExcelbestellung
  195. 6 */
  196. /* SETTINGS FOR FILL-IN F_Datei IN FRAME gExcelbestellung
  197. 6 */
  198. /* SETTINGS FOR FILL-IN F_GGebinde IN FRAME gExcelbestellung
  199. 6 */
  200. /* SETTINGS FOR FILL-IN F_Inhalt IN FRAME gExcelbestellung
  201. 6 */
  202. /* SETTINGS FOR FILL-IN F_Jahr IN FRAME gExcelbestellung
  203. 6 */
  204. /* SETTINGS FOR FILL-IN F_KGebinde IN FRAME gExcelbestellung
  205. 6 */
  206. /* SETTINGS FOR FILL-IN F_Knr IN FRAME gExcelbestellung
  207. 6 */
  208. ASSIGN
  209. F_Knr:READ-ONLY IN FRAME gExcelbestellung = TRUE.
  210. ASSIGN
  211. F_Kunde:READ-ONLY IN FRAME gExcelbestellung = TRUE.
  212. /* SETTINGS FOR FILL-IN F_VGebinde IN FRAME gExcelbestellung
  213. 6 */
  214. /* _RUN-TIME-ATTRIBUTES-END */
  215. &ANALYZE-RESUME
  216. /* Setting information for Queries and Browse Widgets fields */
  217. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gExcelbestellung
  218. /* Query rebuild information for DIALOG-BOX gExcelbestellung
  219. _Options = "SHARE-LOCK"
  220. _Query is NOT OPENED
  221. */ /* DIALOG-BOX gExcelbestellung */
  222. &ANALYZE-RESUME
  223. /* ************************ Control Triggers ************************ */
  224. &Scoped-define SELF-NAME gExcelbestellung
  225. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gExcelbestellung gExcelbestellung
  226. ON END-ERROR OF FRAME gExcelbestellung /* Bestellung per ExcelDatei */
  227. DO:
  228. RUN ENDE.
  229. RETURN NO-APPLY.
  230. END.
  231. /* _UIB-CODE-BLOCK-END */
  232. &ANALYZE-RESUME
  233. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gExcelbestellung gExcelbestellung
  234. ON WINDOW-CLOSE OF FRAME gExcelbestellung /* Bestellung per ExcelDatei */
  235. DO:
  236. RUN ENDE.
  237. RETURN NO-APPLY.
  238. END.
  239. /* _UIB-CODE-BLOCK-END */
  240. &ANALYZE-RESUME
  241. &Scoped-define SELF-NAME Btn_Cancel
  242. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gExcelbestellung
  243. ON CHOOSE OF Btn_Cancel IN FRAME gExcelbestellung /* abbrechen */
  244. DO:
  245. RUN ENDE.
  246. RETURN NO-APPLY.
  247. END.
  248. /* _UIB-CODE-BLOCK-END */
  249. &ANALYZE-RESUME
  250. &Scoped-define SELF-NAME Btn_Datei
  251. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Datei gExcelbestellung
  252. ON CHOOSE OF Btn_Datei IN FRAME gExcelbestellung /* Button 1 */
  253. DO:
  254. DEF VAR lok AS LOG NO-UNDO.
  255. DEF VAR cPath AS CHAR NO-UNDO.
  256. DEF VAR cDatei AS CHAR NO-UNDO.
  257. DEF VAR ii AS INT NO-UNDO.
  258. DO WITH FRAME {&FRAME-NAME}:
  259. ASSIGN F_Datei.
  260. IF F_Datei = '' THEN F_Datei = SUBSTITUTE('&1&2\Downloads\;A;B;C;D;E;',
  261. OS-GETENV("HOMEDRIVE"), OS-GETENV("HOMEPATH")).
  262. FILE-INFO:FILE-NAME = F_Datei NO-ERROR.
  263. IF FILE-INFO:FULL-PATHNAME <> '' AND
  264. FILE-INFO:FULL-PATHNAME <> ? THEN DO:
  265. IF INDEX(FILE-INFO:FILE-TYPE, 'D') > 0 THEN DO:
  266. cPath = F_Datei.
  267. F_Datei = FILE-INFO:FULL-PATHNAME.
  268. END.
  269. ELSE DO:
  270. cDatei = REPLACE(FILE-INFO:FULL-PATHNAME, '\', '/').
  271. ii = R-INDEX(cDatei, '/').
  272. IF ii = 0 THEN cPath = './'.
  273. ELSE cPath = SUBSTRING(cDatei,01,ii - 1) NO-ERROR.
  274. END.
  275. END.
  276. SYSTEM-DIALOG GET-FILE F_Datei
  277. FILTERS "Excel" "*.xls, *.xlsx"
  278. INITIAL-FILTER 1
  279. INITIAL-DIR cPath
  280. TITLE "Name der Bestelldatei"
  281. USE-FILENAME
  282. UPDATE lok.
  283. IF NOT lok THEN RETURN NO-APPLY.
  284. FILE-INFO:FILE-NAME = F_Datei.
  285. IF FILE-INFO:FULL-PATHNAME = ? OR
  286. FILE-INFO:FULL-PATHNAME = '' THEN RETURN NO-APPLY.
  287. DISPLAY F_Datei.
  288. APPLY 'ENTRY' TO F_Datei.
  289. RETURN NO-APPLY.
  290. END.
  291. END.
  292. /* _UIB-CODE-BLOCK-END */
  293. &ANALYZE-RESUME
  294. &Scoped-define SELF-NAME Btn_OK
  295. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gExcelbestellung
  296. ON CHOOSE OF Btn_OK IN FRAME gExcelbestellung /* OK */
  297. DO:
  298. DO WHILE TRUE ON ERROR UNDO, RETURN:
  299. RUN EINLESEN_EXCEL.
  300. IF RETURN-VALUE = 'ERROR' THEN RETURN NO-APPLY.
  301. LEAVE.
  302. END.
  303. BtnOK = TRUE.
  304. RUN ENDE.
  305. RETURN NO-APPLY.
  306. END.
  307. /* _UIB-CODE-BLOCK-END */
  308. &ANALYZE-RESUME
  309. &Scoped-define SELF-NAME Btn_Vorschau
  310. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Vorschau gExcelbestellung
  311. ON CHOOSE OF Btn_Vorschau IN FRAME gExcelbestellung /* Vorschau */
  312. DO:
  313. DO WHILE TRUE ON ERROR UNDO, RETURN:
  314. RUN OEFFNEN_EXCEL.
  315. IF RETURN-VALUE = 'ERROR' THEN RETURN NO-APPLY.
  316. LEAVE.
  317. END.
  318. APPLY 'ENTRY' TO F_Artnr.
  319. RETURN NO-APPLY.
  320. END.
  321. /* _UIB-CODE-BLOCK-END */
  322. &ANALYZE-RESUME
  323. &Scoped-define SELF-NAME F_Knr
  324. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr gExcelbestellung
  325. ON ALT-F OF F_Knr IN FRAME gExcelbestellung /* Kunde */
  326. DO:
  327. RUN FINDEN.
  328. APPLY 'ENTRY' TO SELF.
  329. RETURN NO-APPLY.
  330. END.
  331. /* _UIB-CODE-BLOCK-END */
  332. &ANALYZE-RESUME
  333. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr gExcelbestellung
  334. ON CTRL-N OF F_Knr IN FRAME gExcelbestellung /* Kunde */
  335. DO:
  336. RUN FINDEN_NUMMER.
  337. APPLY 'ENTRY' TO SELF.
  338. RETURN NO-APPLY.
  339. END.
  340. /* _UIB-CODE-BLOCK-END */
  341. &ANALYZE-RESUME
  342. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr gExcelbestellung
  343. ON LEAVE OF F_Knr IN FRAME gExcelbestellung /* Kunde */
  344. DO:
  345. ASSIGN {&List-6}.
  346. FIND Adresse NO-LOCK
  347. WHERE Adresse.Firma = AdFirma
  348. AND Adresse.Knr = F_Knr NO-ERROR.
  349. IF NOT AVAILABLE Adresse THEN DO:
  350. APPLY 'ENTRY' TO SELF.
  351. RETURN NO-APPLY.
  352. END.
  353. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  354. ASSIGN F_Knr = Adresse.Knr
  355. F_Kunde = Adresse.Anzeig_Br.
  356. DISPLAY F_Knr F_Kunde.
  357. LEAVE.
  358. END.
  359. END.
  360. /* _UIB-CODE-BLOCK-END */
  361. &ANALYZE-RESUME
  362. &UNDEFINE SELF-NAME
  363. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gExcelbestellung
  364. /* *************************** Main Block *************************** */
  365. { incl/dlgmainblock.i }
  366. {src/adm2/dialogmn.i}
  367. /* _UIB-CODE-BLOCK-END */
  368. &ANALYZE-RESUME
  369. /* ********************** Internal Procedures *********************** */
  370. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gExcelbestellung _ADM-CREATE-OBJECTS
  371. PROCEDURE adm-create-objects :
  372. /*------------------------------------------------------------------------------
  373. Purpose: Create handles for all SmartObjects used in this procedure.
  374. After SmartObjects are initialized, then SmartLinks are added.
  375. Parameters: <none>
  376. ------------------------------------------------------------------------------*/
  377. END PROCEDURE.
  378. /* _UIB-CODE-BLOCK-END */
  379. &ANALYZE-RESUME
  380. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gExcelbestellung _DEFAULT-DISABLE
  381. PROCEDURE disable_UI :
  382. /*------------------------------------------------------------------------------
  383. Purpose: DISABLE the User Interface
  384. Parameters: <none>
  385. Notes: Here we clean-up the user-interface by deleting
  386. dynamic widgets we have created and/or hide
  387. frames. This procedure is usually called when
  388. we are ready to "clean-up" after running.
  389. ------------------------------------------------------------------------------*/
  390. /* Hide all frames. */
  391. HIDE FRAME gExcelbestellung.
  392. END PROCEDURE.
  393. /* _UIB-CODE-BLOCK-END */
  394. &ANALYZE-RESUME
  395. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EINLESEN_EXCEL gExcelbestellung
  396. PROCEDURE EINLESEN_EXCEL :
  397. /*------------------------------------------------------------------------------
  398. Purpose:
  399. Parameters: <none>
  400. Notes:
  401. ------------------------------------------------------------------------------*/
  402. DEF VAR cDokument AS CHAR NO-UNDO.
  403. DEF VAR cAktuell AS CHAR NO-UNDO.
  404. DO WITH FRAME {&FRAME-NAME}:
  405. ASSIGN {&List-6}.
  406. FILE-INFO:FILE-NAME = F_Datei.
  407. IF FILE-INFO:FULL-PATHNAME = ? OR
  408. FILE-INFO:FULL-PATHNAME = '' OR
  409. INDEX(FILE-INFO:FILE-TYPE, 'D') > 0 THEN DO:
  410. MESSAGE 'ungültiger Dateiname'
  411. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  412. APPLY 'ENTRY' TO F_Datei.
  413. RETURN 'ERROR'.
  414. END.
  415. F_Datei = FILE-INFO:FULL-PATHNAME.
  416. cAktuell = REPLACE(F_Datei, '\', '/').
  417. cAktuell = ENTRY(NUM-ENTRIES(cAktuell, '/'), cAktuell, '/').
  418. IF F_Artnr = '' THEN DO:
  419. MESSAGE 'Spalte für Artikelnummer zwingend'
  420. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  421. APPLY 'ENTRY' TO F_Artnr.
  422. RETURN 'ERROR'.
  423. END.
  424. IF F_GGebinde = '' AND
  425. F_VGebinde = '' AND
  426. F_KGebinde = '' THEN DO:
  427. MESSAGE 'Spalte für Verkaufgebinde und/oder Kleingebinde ist zwingend'
  428. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  429. APPLY 'ENTRY' TO F_VGebinde.
  430. RETURN 'ERROR'.
  431. END.
  432. END.
  433. DO WHILE TRUE:
  434. IF VALID-HANDLE(excelAppl) THEN DO:
  435. cDokument = excelAppl:ActiveWorkbook:NAME NO-ERROR.
  436. IF cDokument = ? THEN cDokument = ''.
  437. LEAVE.
  438. END.
  439. CREATE "Excel.Application" excelAppl CONNECT NO-ERROR.
  440. IF VALID-HANDLE(excelAppl) THEN LEAVE.
  441. CREATE "Excel.Application" excelAppl NO-ERROR.
  442. LEAVE.
  443. END.
  444. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  445. MESSAGE 'Excel konnte nicht gestartet werden'
  446. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  447. RETURN.
  448. END.
  449. IF cAktuell <> cDokument THEN
  450. excelAppl:Workbooks:Open(F_Datei, 0, FALSE, 4, "", "", TRUE, , ";", ,).
  451. excelAppl:Visible = TRUE.
  452. DEF VAR ii AS INT NO-UNDO.
  453. DEF VAR cZelle AS CHAR NO-UNDO.
  454. DEF VAR iEmpty AS INT NO-UNDO.
  455. DEF VAR cValue AS CHAR NO-UNDO.
  456. DEF VAR iArtnr AS INT NO-UNDO.
  457. DEF VAR iInhalt AS INT NO-UNDO.
  458. DEF VAR iJahr AS INT NO-UNDO.
  459. DEF VAR iGGeb AS INT NO-UNDO.
  460. DEF VAR iVGeb AS INT NO-UNDO.
  461. DEF VAR iKGeb AS INT NO-UNDO.
  462. ii = 0.
  463. iEmpty = 0.
  464. EMPTY TEMP-TABLE tKunBest.
  465. EMPTY TEMP-TABLE tExcel.
  466. DO WHILE TRUE:
  467. ii = ii + 1.
  468. ASSIGN iArtnr = 0
  469. iInhalt = 0
  470. iJahr = 0
  471. iVGeb = 0
  472. iKGeb = 0.
  473. cZelle = F_Artnr + STRING(ii).
  474. excelAppl:Range(cZelle):Select.
  475. cValue = excelAppl:ActiveCell:Value.
  476. IF cValue = ? OR
  477. cValue = '' THEN cValue = excelAppl:ActiveCell:FormulaR1C1.
  478. IF cValue = '' OR
  479. cValue = ? THEN DO:
  480. iEmpty = iEmpty + 1.
  481. IF iEmpty >= 3 THEN LEAVE.
  482. NEXT.
  483. END.
  484. iArtnr = INTEGER(cValue) NO-ERROR.
  485. IF ERROR-STATUS:ERROR THEN NEXT.
  486. IF F_Inhalt <> '' THEN DO:
  487. cZelle = F_Inhalt + STRING(ii).
  488. excelAppl:Range(cZelle):Select.
  489. cValue = excelAppl:ActiveCell:Value.
  490. IF cValue = ? OR
  491. cValue = '' THEN cValue = excelAppl:ActiveCell:FormulaR1C1.
  492. iInhalt = INTEGER(cValue) NO-ERROR.
  493. IF ERROR-STATUS:ERROR THEN NEXT.
  494. END.
  495. IF F_Jahr <> '' THEN DO:
  496. cZelle = F_Jahr + STRING(ii).
  497. excelAppl:Range(cZelle):Select.
  498. cValue = excelAppl:ActiveCell:Value.
  499. IF cValue = ? OR
  500. cValue = '' THEN cValue = excelAppl:ActiveCell:FormulaR1C1.
  501. iJahr = INTEGER(cValue) NO-ERROR.
  502. IF ERROR-STATUS:ERROR THEN NEXT.
  503. END.
  504. IF F_GGebinde <> '' THEN DO:
  505. cZelle = F_GGebinde + STRING(ii).
  506. excelAppl:Range(cZelle):Select.
  507. cValue = excelAppl:ActiveCell:Value.
  508. IF cValue = ? OR
  509. cValue = '' THEN cValue = excelAppl:ActiveCell:FormulaR1C1.
  510. iGGeb = INTEGER(cValue) NO-ERROR.
  511. IF ERROR-STATUS:ERROR THEN NEXT.
  512. END.
  513. IF F_VGebinde <> '' THEN DO:
  514. cZelle = F_VGebinde + STRING(ii).
  515. excelAppl:Range(cZelle):Select.
  516. cValue = excelAppl:ActiveCell:Value.
  517. IF cValue = ? OR
  518. cValue = '' THEN cValue = excelAppl:ActiveCell:FormulaR1C1.
  519. iVGeb = INTEGER(cValue) NO-ERROR.
  520. IF ERROR-STATUS:ERROR THEN NEXT.
  521. END.
  522. IF F_KGebinde <> '' THEN DO:
  523. cZelle = F_KGebinde + STRING(ii).
  524. excelAppl:Range(cZelle):Select.
  525. cValue = excelAppl:ActiveCell:Value.
  526. IF cValue = ? OR
  527. cValue = '' THEN cValue = excelAppl:ActiveCell:FormulaR1C1.
  528. iKGeb = INTEGER(cValue) NO-ERROR.
  529. IF ERROR-STATUS:ERROR THEN NEXT.
  530. END.
  531. IF iGGeb = 0 AND
  532. iVGeb = 0 AND
  533. iKGeb = 0 THEN NEXT.
  534. FIND Artst NO-LOCK
  535. WHERE Artst.Firma = Firma
  536. AND Artst.Artnr = iArtnr
  537. AND Artst.Inhalt = iInhalt
  538. AND Artst.Jahr = iJahr NO-ERROR.
  539. IF NOT AVAILABLE Artst THEN NEXT.
  540. CREATE tExcel.
  541. ASSIGN tExcel.Zeile = ii
  542. tExcel.Artnr = iArtnr
  543. tExcel.Inhalt = iInhalt
  544. tExcel.Jahr = iJahr
  545. tExcel.iGGeb = iGGeb
  546. tExcel.iVGeb = iVGeb
  547. tExcel.iKGeb = iKGeb.
  548. cZelle = STRING(ii) + ':' + STRING(ii).
  549. excelAppl:Rows(cZelle):Select.
  550. excelAppl:Selection:Interior:ColorIndex = 4.
  551. excelAppl:Selection:Interior:Pattern = 1.
  552. END.
  553. ii = 0.
  554. FOR EACH tExcel:
  555. FIND Artst NO-LOCK
  556. WHERE Artst.Firma = Firma
  557. AND Artst.Artnr = tExcel.Artnr
  558. AND Artst.Inhalt = tExcel.Inhalt
  559. AND Artst.Jahr = tExcel.Jahr NO-ERROR.
  560. FIND GGebinde NO-LOCK
  561. WHERE GGebinde.Firma = Artst.Firma
  562. AND GGebinde.Geb_Cd = Artst.GGeb_Cd NO-ERROR.
  563. IF NOT AVAILABLE GGebinde THEN DO:
  564. cZelle = STRING(tExcel.Zeile) + ':' + STRING(tExcel.Zeile).
  565. excelAppl:Rows(cZelle):Select.
  566. excelAppl:Selection:Interior:ColorIndex = 6.
  567. excelAppl:Selection:Interior:Pattern = 1.
  568. NEXT.
  569. END.
  570. FIND VGebinde NO-LOCK
  571. WHERE VGebinde.Firma = Artst.Firma
  572. AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-ERROR.
  573. IF NOT AVAILABLE VGebinde THEN DO:
  574. cZelle = STRING(tExcel.Zeile) + ':' + STRING(tExcel.Zeile).
  575. excelAppl:Rows(cZelle):Select.
  576. excelAppl:Selection:Interior:ColorIndex = 6.
  577. excelAppl:Selection:Interior:Pattern = 1.
  578. NEXT.
  579. END.
  580. FIND KGebinde NO-LOCK
  581. WHERE KGebinde.Firma = Artst.Firma
  582. AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR.
  583. IF NOT AVAILABLE KGebinde THEN DO:
  584. cZelle = STRING(tExcel.Zeile) + ':' + STRING(tExcel.Zeile).
  585. excelAppl:Rows(cZelle):Select.
  586. excelAppl:Selection:Interior:ColorIndex = 6.
  587. excelAppl:Selection:Interior:Pattern = 1.
  588. NEXT.
  589. END.
  590. IF tExcel.iGGeb > 0 THEN tExcel.iVGeb = tExcel.iGGeb * GGebinde.Inhalt.
  591. IF tExcel.iVGeb > 0 THEN tExcel.iKGeb = tExcel.iVGeb * VGebinde.Inhalt.
  592. ii = ii + 1.
  593. CREATE tKunBest.
  594. ASSIGN tKunBest.Firma = Firma
  595. tKunBest.Knr = iKnr
  596. tKunBest.Pos = tExcel.Zeile
  597. tKunBest.Artnr = Artst.Artnr
  598. tKunBest.Inhalt = Artst.Inhalt
  599. tKunBest.Jahr = Artst.jahr
  600. tKunBest.Best = 0
  601. tKunBest.GGeb_Cd = Artst.GGeb_Cd
  602. tKunBest.GGeb_Me = 0
  603. tKunBest.VGeb_Cd = Artst.VGeb_Cd
  604. tKunBest.VGeb_Me = tExcel.iVGeb
  605. tKunBest.KGeb_Cd = Artst.KGeb_Cd
  606. tKunBest.KGeb_Me = tExcel.iKGeb
  607. tKunBest.Lag_Buch = Artst.Lager
  608. tKunBest.Soll = 0.
  609. IF tKunBest.KGeb_Me = 0 THEN DO:
  610. tKunBest.KGeb_Me = tKunBest.VGeb_Me * VGebinde.Inhalt.
  611. NEXT.
  612. END.
  613. IF tKunBest.VGeb_Me > 0 THEN NEXT.
  614. IF (tKunBest.KGeb_Me MOD VGebinde.Inhalt) = 0 THEN DO:
  615. tKunBest.VGeb_Me = tKunBest.KGeb_Me / VGebinde.Inhalt.
  616. NEXT.
  617. END.
  618. tKunBest.KGeb_Me = tKunbest.KGeb_Me - (tKunBest.KGeb_Me MOD VGebinde.Inhalt).
  619. tKunBest.VGeb_Me = tKunBest.KGeb_Me / VGebinde.Inhalt.
  620. END.
  621. RELEASE OBJECT excelAppl.
  622. ii = DYNAMIC-FUNCTION('createAuftrag':U IN THIS-PROCEDURE) NO-ERROR.
  623. MESSAGE SUBSTITUTE('Es wurden &1 Auftragszeilen erstellt', ii)
  624. VIEW-AS ALERT-BOX.
  625. END PROCEDURE.
  626. /* _UIB-CODE-BLOCK-END */
  627. &ANALYZE-RESUME
  628. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gExcelbestellung
  629. PROCEDURE enableObject :
  630. /*------------------------------------------------------------------------------
  631. Purpose: Super Override
  632. Parameters:
  633. Notes:
  634. ------------------------------------------------------------------------------*/
  635. F_Knr = 0.
  636. FIND Aufko NO-LOCK
  637. WHERE Aufko.Firma = Firma
  638. AND Aufko.Aufnr = ipAufnr NO-ERROR.
  639. IF AVAILABLE Aufko THEN DO:
  640. F_Knr = Aufko.Knr.
  641. iKnr = Aufko.Knr.
  642. iAufnr = Aufko.Aufnr.
  643. FIND Adresse NO-LOCK
  644. WHERE Adresse.Firma = AdFirma
  645. AND Adresse.Knr = F_Knr NO-ERROR.
  646. F_Kunde = Adresse.Anzeig_Br.
  647. END.
  648. DYNAMIC-FUNCTION('getFehlwerte':U) NO-ERROR.
  649. { incl/dlgenableobject.i }
  650. END PROCEDURE.
  651. /* _UIB-CODE-BLOCK-END */
  652. &ANALYZE-RESUME
  653. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gExcelbestellung _DEFAULT-ENABLE
  654. PROCEDURE enable_UI :
  655. /*------------------------------------------------------------------------------
  656. Purpose: ENABLE the User Interface
  657. Parameters: <none>
  658. Notes: Here we display/view/enable the widgets in the
  659. user-interface. In addition, OPEN all queries
  660. associated with each FRAME and BROWSE.
  661. These statements here are based on the "Other
  662. Settings" section of the widget Property Sheets.
  663. ------------------------------------------------------------------------------*/
  664. DISPLAY F_Knr F_Kunde F_Datei F_Artnr F_Inhalt F_Jahr F_GGebinde F_VGebinde
  665. F_KGebinde
  666. WITH FRAME gExcelbestellung.
  667. ENABLE RECT-2 F_Knr F_Kunde F_Datei Btn_Datei F_Artnr F_Inhalt F_Jahr
  668. F_GGebinde F_VGebinde F_KGebinde Btn_Vorschau Btn_OK Btn_Cancel
  669. WITH FRAME gExcelbestellung.
  670. VIEW FRAME gExcelbestellung.
  671. {&OPEN-BROWSERS-IN-QUERY-gExcelbestellung}
  672. END PROCEDURE.
  673. /* _UIB-CODE-BLOCK-END */
  674. &ANALYZE-RESUME
  675. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gExcelbestellung
  676. PROCEDURE ENDE :
  677. /*------------------------------------------------------------------------------
  678. Purpose:
  679. Parameters: <none>
  680. Notes:
  681. ------------------------------------------------------------------------------*/
  682. IF btnOK THEN DO:
  683. DYNAMIC-FUNCTION('setFehlwerte':U) NO-ERROR.
  684. END.
  685. { incl/dlgende.i }
  686. END PROCEDURE.
  687. /* _UIB-CODE-BLOCK-END */
  688. &ANALYZE-RESUME
  689. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FINDEN gExcelbestellung
  690. PROCEDURE FINDEN :
  691. /*------------------------------------------------------------------------------
  692. Purpose:
  693. Parameters: <none>
  694. Notes:
  695. ------------------------------------------------------------------------------*/
  696. DEF VAR iRecid AS RECID NO-UNDO.
  697. DEF VAR cRetVal AS CHAR NO-UNDO.
  698. DEF VAR cSection AS CHAR NO-UNDO.
  699. DEF VAR cKey AS CHAR NO-UNDO.
  700. RUN 'g-suchen-adresse.w':U ( '', OUTPUT iRecid ) NO-ERROR.
  701. IF iRecid = ? OR
  702. iRecid = 0 THEN RETURN.
  703. FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid.
  704. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  705. ASSIGN F_Knr = Adresse.Knr
  706. F_Kunde = Adresse.Anzeig_Br.
  707. DISPLAY F_Knr F_Kunde.
  708. LEAVE.
  709. END.
  710. DYNAMIC-FUNCTION('getFehlwerte':U).
  711. END PROCEDURE.
  712. /* _UIB-CODE-BLOCK-END */
  713. &ANALYZE-RESUME
  714. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FINDEN_NUMMER gExcelbestellung
  715. PROCEDURE FINDEN_NUMMER :
  716. /*------------------------------------------------------------------------------
  717. Purpose:
  718. Parameters: <none>
  719. Notes:
  720. ------------------------------------------------------------------------------*/
  721. DEF VAR iRecid AS RECID NO-UNDO.
  722. RUN 'g-kundennr.w':U ( OUTPUT iRecid ).
  723. IF iRecid = ? OR
  724. iRecid = 0 THEN RETURN.
  725. FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid.
  726. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  727. ASSIGN F_Knr = Adresse.Knr
  728. F_Kunde = Adresse.Anzeig_Br.
  729. DISPLAY F_Knr F_Kunde.
  730. LEAVE.
  731. END.
  732. DYNAMIC-FUNCTION('getFehlwerte':U).
  733. END PROCEDURE.
  734. /* _UIB-CODE-BLOCK-END */
  735. &ANALYZE-RESUME
  736. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OEFFNEN_EXCEL gExcelbestellung
  737. PROCEDURE OEFFNEN_EXCEL :
  738. /*------------------------------------------------------------------------------
  739. Purpose:
  740. Parameters: <none>
  741. Notes:
  742. ------------------------------------------------------------------------------*/
  743. DEF VAR cDokument AS CHAR NO-UNDO.
  744. DO WITH FRAME {&FRAME-NAME}:
  745. ASSIGN {&List-6}.
  746. FILE-INFO:FILE-NAME = F_Datei.
  747. IF FILE-INFO:FULL-PATHNAME = ? OR
  748. FILE-INFO:FULL-PATHNAME = '' OR
  749. INDEX(FILE-INFO:FILE-TYPE, 'D') > 0 THEN DO:
  750. MESSAGE 'ungültiger Dateiname'
  751. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  752. APPLY 'ENTRY' TO F_Datei.
  753. RETURN 'ERROR'.
  754. END.
  755. F_Datei = FILE-INFO:FULL-PATHNAME.
  756. END.
  757. DO WHILE TRUE:
  758. IF VALID-HANDLE(excelAppl) THEN DO:
  759. cDokument = excelAppl:ActiveWorkbook:NAME NO-ERROR.
  760. IF cDokument <> '' AND
  761. cDokument <> ? THEN DO:
  762. excelAppl:ActiveWorkbook:CLOSE ( FALSE, cDokument ) NO-ERROR.
  763. END.
  764. RELEASE OBJECT excelAppl NO-ERROR.
  765. END.
  766. CREATE "Excel.Application" excelAppl CONNECT NO-ERROR.
  767. IF VALID-HANDLE(excelAppl) THEN LEAVE.
  768. CREATE "Excel.Application" excelAppl NO-ERROR.
  769. LEAVE.
  770. END.
  771. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  772. MESSAGE 'Excel konnte nicht gestartet werden'
  773. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  774. RETURN.
  775. END.
  776. excelAppl:Workbooks:Open(F_Datei, 0, FALSE, 4, "", "", TRUE, , ";", ,).
  777. excelAppl:Visible = TRUE.
  778. END PROCEDURE.
  779. /* _UIB-CODE-BLOCK-END */
  780. &ANALYZE-RESUME
  781. /* ************************ Function Implementations ***************** */
  782. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createAuftrag gExcelbestellung
  783. FUNCTION createAuftrag RETURNS INTEGER
  784. ( /* parameter-definitions */ ) :
  785. /*------------------------------------------------------------------------------
  786. Purpose:
  787. Notes:
  788. ------------------------------------------------------------------------------*/
  789. DEF VAR htAufze AS HANDLE NO-UNDO.
  790. DEF VAR lRetVal AS LOG NO-UNDO.
  791. DEF VAR iRetVal AS INT NO-UNDO.
  792. DEF VAR iPreisArt AS INT NO-UNDO.
  793. DEF VAR nTotal AS DEC DECIMALS 4 NO-UNDO EXTENT 15.
  794. DEF VAR cRetValue AS CHAR NO-UNDO.
  795. DEF VAR iAnz AS INT NO-UNDO.
  796. DEF BUFFER bAufze FOR Aufze.
  797. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  798. FOR EACH tKunBest
  799. WHERE tKunBest.KGeb_Me > 0:
  800. EMPTY TEMP-TABLE tAufze.
  801. CREATE tAufze.
  802. ASSIGN tAufze.Firma = Firma
  803. tAufze.Aufnr = iAufnr
  804. tAufze.Artnr = tKunBest.Artnr
  805. tAufze.Inhalt = tKunBest.Inhalt
  806. tAufze.Jahr = tKunBest.Jahr
  807. tAufze.Preis_Mut = FALSE
  808. tAufze.Knr = iKnr.
  809. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  810. iRetVal = DYNAMIC-FUNCTION ( 'fillAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR.
  811. IF iRetVal > 0 THEN DO:
  812. MESSAGE iRetVal
  813. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  814. DYNAMIC-FUNCTION('fehlerMeldung':U, iRetVal, '' ) NO-ERROR.
  815. RETURN 0.
  816. END.
  817. FIND FIRST tAufze.
  818. ASSIGN tAufze.Preis_Mut = FALSE
  819. tAufze.MBest = tKunBest.KGeb_Me
  820. tAufze.MGeli = tKunBest.KGeb_Me
  821. tAufze.VGeb_Be = tKunBest.VGeb_Me
  822. tAufze.VGeb_Me = tKunBest.VGeb_Me
  823. tAufze.KGeb_Be = tKunBest.KGeb_Me
  824. tAufze.KGeb_Me = tKunBest.KGeb_Me
  825. .
  826. iPreisArt = DYNAMIC-FUNCTION ( 'getPreisAufze':U , INPUT-OUTPUT htAufze ) NO-ERROR.
  827. FIND FIRST tAufze.
  828. lRetVal = DYNAMIC-FUNCTION ( 'calculateZeilenTotal':U, INPUT-OUTPUT htAufze ) NO-ERROR.
  829. FIND FIRST tAufze.
  830. FIND LAST bAufze NO-LOCK
  831. WHERE bAufze.Firma = tAufze.Firma
  832. AND bAufze.Aufnr = tAufze.Aufnr NO-ERROR.
  833. IF NOT AVAILABLE bAufze THEN tAufze.Pos = 05.
  834. ELSE tAufze.Pos = bAufze.Pos - (bAufze.Pos MOD 5) + 05.
  835. DYNAMIC-FUNCTION('fillArtbwFromAufze':U, INPUT-OUTPUT htAufze ).
  836. FIND FIRST tAufze.
  837. CREATE bAufze.
  838. BUFFER-COPY tAufze TO bAufze.
  839. RELEASE bAufze.
  840. iAnz = iAnz + 1.
  841. END.
  842. cRetValue = DYNAMIC-FUNCTION('calculateAuftragsTotal':U, Firma, iAufnr, OUTPUT nTotal ) NO-ERROR.
  843. IF cRetValue BEGINS 'KREDIT' THEN DO:
  844. RUN FEHLER ( 1086 ) NO-ERROR.
  845. END.
  846. RETURN iAnz.
  847. END FUNCTION.
  848. /* _UIB-CODE-BLOCK-END */
  849. &ANALYZE-RESUME
  850. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getFehlwerte gExcelbestellung
  851. FUNCTION getFehlwerte RETURNS LOGICAL
  852. ( /* parameter-definitions */ ) :
  853. /*------------------------------------------------------------------------------
  854. Purpose:
  855. Notes:
  856. ------------------------------------------------------------------------------*/
  857. DEF VAR cRetVal AS CHAR NO-UNDO.
  858. DEF VAR ii AS INT NO-UNDO.
  859. DO WITH FRAME {&FRAME-NAME}:
  860. ASSIGN {&List-6}.
  861. END.
  862. FIND Tabel NO-LOCK
  863. WHERE Tabel.Firma = Firma
  864. AND Tabel.RecArt = 'EXCELBEST'
  865. AND Tabel.CodeC = ''
  866. AND Tabel.CodeI = F_Knr
  867. AND Tabel.Sprcd = 1 NO-ERROR.
  868. IF AVAILABLE Tabel THEN cRetVal = Tabel.Bez1.
  869. IF cRetVal = '' THEN cRetVal = SUBSTITUTE('&1&2\Downloads\;A;B;C;D;E;F;',
  870. OS-GETENV("HOMEDRIVE"),
  871. OS-GETENV("HOMEPATH")).
  872. DO ii = 1 TO NUM-ENTRIES(cRetVal, ';'):
  873. CASE ii:
  874. WHEN 1 THEN F_Datei = ENTRY(ii, cRetVal, ';') NO-ERROR.
  875. WHEN 2 THEN F_Artnr = ENTRY(ii, cRetVal, ';') NO-ERROR.
  876. WHEN 3 THEN F_Inhalt = ENTRY(ii, cRetVal, ';') NO-ERROR.
  877. WHEN 4 THEN F_Jahr = ENTRY(ii, cRetVal, ';') NO-ERROR.
  878. WHEN 5 THEN F_GGebinde = ENTRY(ii, cRetVal, ';') NO-ERROR.
  879. WHEN 6 THEN F_VGebinde = ENTRY(ii, cRetVal, ';') NO-ERROR.
  880. WHEN 7 THEN F_KGebinde = ENTRY(ii, cRetVal, ';') NO-ERROR.
  881. END CASE.
  882. END.
  883. DO WITH FRAME {&FRAME-NAME}:
  884. DISPLAY {&Liast-6}.
  885. END.
  886. RETURN TRUE.
  887. END FUNCTION.
  888. /* _UIB-CODE-BLOCK-END */
  889. &ANALYZE-RESUME
  890. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setFehlwerte gExcelbestellung
  891. FUNCTION setFehlwerte RETURNS LOGICAL
  892. ( /* parameter-definitions */ ) :
  893. /*------------------------------------------------------------------------------
  894. Purpose:
  895. Notes:
  896. ------------------------------------------------------------------------------*/
  897. DEF VAR cRetVal AS CHAR NO-UNDO.
  898. DEF VAR ii AS INT NO-UNDO.
  899. REPEAT TRANSACTION:
  900. FIND Tabel
  901. WHERE Tabel.Firma = Firma
  902. AND Tabel.RecArt = 'EXCELBEST'
  903. AND Tabel.CodeC = ''
  904. AND Tabel.CodeI = iKnr
  905. AND Tabel.Sprcd = 1 NO-ERROR.
  906. IF NOT AVAILABLE Tabel THEN DO:
  907. CREATE Tabel.
  908. ASSIGN Tabel.Firma = Firma
  909. Tabel.RecArt = 'EXCELBEST'
  910. Tabel.CodeC = ''
  911. Tabel.CodeI = iKnr
  912. Tabel.Sprcd = 1 NO-ERROR.
  913. END.
  914. Tabel.Bez1 = SUBSTITUTE('&1;&2;&3;&4;&5;&6;&7;',
  915. F_Datei, F_Artnr, F_Inhalt, F_Jahr,
  916. F_GGebinde, F_VGebinde, F_KGebinde).
  917. RELEASE Tabel.
  918. LEAVE.
  919. END.
  920. RETURN TRUE.
  921. END FUNCTION.
  922. /* _UIB-CODE-BLOCK-END */
  923. &ANALYZE-RESUME