v-spezrab-deb.w 51 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. /* Temp-Table and Buffer definitions */
  8. DEFINE TEMP-TABLE RowObject
  9. {"d-spezrab.i"}.
  10. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS vTableWin
  11. /*------------------------------------------------------------------------
  12. File:
  13. Description: from viewer.w - Template for SmartDataViewer objects
  14. Input Parameters:
  15. <none>
  16. Output Parameters:
  17. <none>
  18. ------------------------------------------------------------------------*/
  19. /* This .W file was created with the Progress AppBuilder. */
  20. /*----------------------------------------------------------------------*/
  21. /* Create an unnamed pool to store all the widgets created
  22. by this procedure. This is a good default which assures
  23. that this procedure's triggers and internal procedures
  24. will execute in this procedure's storage, and that proper
  25. cleanup will occur on deletion of the procedure. */
  26. CREATE WIDGET-POOL.
  27. /* *************************** Definitions ************************** */
  28. /* Komma-Trennzeichen */
  29. /* Keyfelder werden beim Mutieren nicht "Enabled" */
  30. &Scoped-define ERSTES_FELD CB_Rabattgruppe
  31. &Scoped-define LETZTES_FELD Auf_Wert
  32. &Scoped-define KEY_FELDER CB_Rabattgruppe,Menge
  33. &Scoped-define NUR_LESEN
  34. /* Parameters Definitions --- */
  35. /* Local Variable Definitions --- */
  36. DEF VAR SAktiv AS LOG NO-UNDO INIT FALSE.
  37. DEF VAR FNeu AS LOG NO-UNDO INIT FALSE.
  38. DEF VAR FMut AS LOG NO-UNDO INIT FALSE.
  39. DEF VAR FCopy AS LOG NO-UNDO INIT FALSE.
  40. DEF VAR FDisp AS LOG NO-UNDO INIT TRUE .
  41. DEF VAR Fenster AS HANDLE NO-UNDO.
  42. DEF VAR oldColValues AS CHAR NO-UNDO.
  43. DEF VAR oldColList AS CHAR NO-UNDO.
  44. DEF VAR Firma AS CHAR NO-UNDO.
  45. DEF VAR AdFirma AS CHAR NO-UNDO.
  46. DEF VAR Knr AS INT NO-UNDO.
  47. DEF VAR hDaten AS HANDLE NO-UNDO.
  48. DEF VAR vDatum AS DATE NO-UNDO.
  49. DEF VAR bDatum AS DATE NO-UNDO.
  50. DEF VAR dZRab AS DEC DECIMALS 4 NO-UNDO.
  51. DEF VAR dARab AS DEC DECIMALS 4 NO-UNDO.
  52. DEF VAR iRabGrp AS INT NO-UNDO.
  53. DEF VAR lZArt AS LOG INIT TRUE NO-UNDO FORMAT 'P/B'.
  54. DEF VAR lAArt AS LOG INIT TRUE NO-UNDO FORMAT 'P/B'.
  55. DEF VAR dMenge AS DEC INIT 1 NO-UNDO.
  56. DEF TEMP-TABLE TSpPrRab LIKE SpPrRab.
  57. /* _UIB-CODE-BLOCK-END */
  58. &ANALYZE-RESUME
  59. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  60. /* ******************** Preprocessor Definitions ******************** */
  61. &Scoped-define PROCEDURE-TYPE SmartDataViewer
  62. &Scoped-define DB-AWARE no
  63. &Scoped-define ADM-CONTAINER FRAME
  64. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  65. /* Include file with RowObject temp-table definition */
  66. &Scoped-define DATA-FIELD-DEFS "d-spezrab.i"
  67. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  68. &Scoped-define FRAME-NAME F-Main
  69. /* Standard List Definitions */
  70. &Scoped-Define ENABLED-FIELDS RowObject.Menge RowObject.Ab_Datum ~
  71. RowObject.Bis_Datum RowObject.lNetto RowObject.Wert RowObject.Auf_Wert
  72. &Scoped-define ENABLED-TABLES RowObject
  73. &Scoped-define FIRST-ENABLED-TABLE RowObject
  74. &Scoped-Define ENABLED-OBJECTS CB_Rabattgruppe CB_Z_Art CB_A_Art ~
  75. Btn_Kopieren Btn_Loeschen Btn_Excel RECT-2 RECT-3
  76. &Scoped-Define DISPLAYED-FIELDS RowObject.Menge RowObject.Ab_Datum ~
  77. RowObject.Bis_Datum RowObject.lNetto RowObject.Knr RowObject.Wert ~
  78. RowObject.Auf_Wert RowObject.Firma RowObject.RabGrp RowObject.Proz_Betr ~
  79. RowObject.Auf_Proz_Betr RowObject.Rab_Grp
  80. &Scoped-define DISPLAYED-TABLES RowObject
  81. &Scoped-define FIRST-DISPLAYED-TABLE RowObject
  82. &Scoped-Define DISPLAYED-OBJECTS CB_Rabattgruppe CB_Z_Art CB_A_Art F_Knr ~
  83. F_Datum
  84. /* Custom List Definitions */
  85. /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */
  86. &Scoped-define List-5 Btn_Kopieren Btn_Loeschen Btn_Excel
  87. &Scoped-define List-6 F_Knr
  88. /* _UIB-PREPROCESSOR-BLOCK-END */
  89. &ANALYZE-RESUME
  90. /* *********************** Control Definitions ********************** */
  91. /* Definitions of the field level widgets */
  92. DEFINE BUTTON Btn_Excel
  93. IMAGE-UP FILE "grafik/results%.ico":U
  94. IMAGE-INSENSITIVE FILE "grafik/results%.ico":U
  95. LABEL "Excel"
  96. SIZE 7 BY 1.81.
  97. DEFINE BUTTON Btn_Kopieren
  98. LABEL "&Kopieren"
  99. SIZE 12 BY 1.
  100. DEFINE BUTTON Btn_Loeschen
  101. LABEL "&Löschen"
  102. SIZE 12 BY 1.
  103. DEFINE VARIABLE CB_A_Art AS CHARACTER FORMAT "X(256)":U
  104. LABEL "Auftrags-Rabatt"
  105. VIEW-AS COMBO-BOX INNER-LINES 5
  106. LIST-ITEM-PAIRS "Prozent","P",
  107. "Abzug Betrag","B"
  108. DROP-DOWN-LIST
  109. SIZE 16 BY 1
  110. BGCOLOR 15 NO-UNDO.
  111. DEFINE VARIABLE CB_Rabattgruppe AS CHARACTER FORMAT "X(256)":U
  112. LABEL "Rabattgruppe"
  113. VIEW-AS COMBO-BOX INNER-LINES 5
  114. LIST-ITEM-PAIRS "Item 1","Item 1"
  115. DROP-DOWN-LIST
  116. SIZE 40 BY 1
  117. BGCOLOR 15 NO-UNDO.
  118. DEFINE VARIABLE CB_Z_Art AS CHARACTER FORMAT "X(256)":U
  119. LABEL "Zeilen-Rabatt"
  120. VIEW-AS COMBO-BOX INNER-LINES 5
  121. LIST-ITEM-PAIRS "Prozent","P",
  122. "Abzug Betrag","B"
  123. DROP-DOWN-LIST
  124. SIZE 16 BY 1
  125. BGCOLOR 15 NO-UNDO.
  126. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U
  127. LABEL "bis Datum"
  128. VIEW-AS FILL-IN NATIVE
  129. SIZE 15 BY 1 TOOLTIP "Löschen mit <RETURN>-Taste"
  130. BGCOLOR 15 NO-UNDO.
  131. DEFINE VARIABLE F_Knr AS INTEGER FORMAT "999999":U INITIAL 0
  132. LABEL "zu Kundennummer"
  133. VIEW-AS FILL-IN NATIVE
  134. SIZE 11 BY 1 TOOLTIP "Kopieren mit <RETURN>-Taste"
  135. BGCOLOR 15 NO-UNDO.
  136. DEFINE RECTANGLE RECT-2
  137. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  138. SIZE 110 BY 2.48.
  139. DEFINE RECTANGLE RECT-3
  140. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  141. SIZE 110 BY 4.71.
  142. /* ************************ Frame Definitions *********************** */
  143. DEFINE FRAME F-Main
  144. CB_Rabattgruppe AT ROW 1.52 COL 17 COLON-ALIGNED
  145. RowObject.Menge AT ROW 2.52 COL 17 COLON-ALIGNED
  146. LABEL "ab Menge" FORMAT "zzz,zz9"
  147. VIEW-AS FILL-IN NATIVE
  148. SIZE 11.8 BY 1
  149. BGCOLOR 15
  150. RowObject.Ab_Datum AT ROW 3.52 COL 17 COLON-ALIGNED
  151. LABEL "gültig ab/bis" FORMAT "99.99.9999"
  152. VIEW-AS FILL-IN NATIVE
  153. SIZE 16 BY 1
  154. BGCOLOR 15
  155. RowObject.Bis_Datum AT ROW 3.52 COL 36 COLON-ALIGNED
  156. LABEL "/" FORMAT "99.99.9999"
  157. VIEW-AS FILL-IN NATIVE
  158. SIZE 16 BY 1
  159. BGCOLOR 15
  160. RowObject.lNetto AT ROW 3.52 COL 72 WIDGET-ID 4
  161. LABEL "auf Nettoartikel?"
  162. VIEW-AS TOGGLE-BOX
  163. SIZE 20.6 BY 1
  164. RowObject.Knr AT ROW 2.52 COL 78 COLON-ALIGNED
  165. VIEW-AS FILL-IN
  166. SIZE 4 BY 1 NO-TAB-STOP
  167. CB_Z_Art AT ROW 4.52 COL 17 COLON-ALIGNED
  168. RowObject.Wert AT ROW 4.52 COL 36 COLON-ALIGNED
  169. LABEL "/" FORMAT "zzz9.9999-"
  170. VIEW-AS FILL-IN NATIVE
  171. SIZE 16 BY 1
  172. BGCOLOR 15
  173. CB_A_Art AT ROW 4.52 COL 70 COLON-ALIGNED
  174. RowObject.Auf_Wert AT ROW 4.52 COL 89.2 COLON-ALIGNED
  175. LABEL "/" FORMAT "zzz9.9999-"
  176. VIEW-AS FILL-IN NATIVE
  177. SIZE 16 BY 1
  178. BGCOLOR 15
  179. RowObject.Firma AT ROW 2.52 COL 78 COLON-ALIGNED
  180. VIEW-AS FILL-IN
  181. SIZE 4 BY 1 NO-TAB-STOP
  182. Btn_Kopieren AT ROW 7.14 COL 4.6
  183. F_Knr AT ROW 7.14 COL 35.6 COLON-ALIGNED
  184. Btn_Loeschen AT ROW 7.14 COL 55
  185. Btn_Excel AT ROW 6.76 COL 102.4
  186. RowObject.RabGrp AT ROW 2.52 COL 78 COLON-ALIGNED
  187. VIEW-AS FILL-IN
  188. SIZE 4 BY 1 NO-TAB-STOP
  189. F_Datum AT ROW 7.14 COL 77.6 COLON-ALIGNED NO-TAB-STOP
  190. RowObject.Proz_Betr AT ROW 2.52 COL 78 COLON-ALIGNED
  191. VIEW-AS FILL-IN
  192. SIZE 4 BY 1 NO-TAB-STOP
  193. RowObject.Auf_Proz_Betr AT ROW 2.52 COL 78 COLON-ALIGNED
  194. VIEW-AS FILL-IN
  195. SIZE 4 BY 1 NO-TAB-STOP
  196. RowObject.Rab_Grp AT ROW 2.52 COL 78 COLON-ALIGNED
  197. LABEL "Rab_Grp" FORMAT "999999"
  198. VIEW-AS FILL-IN
  199. SIZE 4 BY 1 NO-TAB-STOP
  200. RECT-2 AT ROW 6.43 COL 2
  201. RECT-3 AT ROW 1.24 COL 2
  202. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  203. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  204. AT COL 1 ROW 1 SCROLLABLE .
  205. /* *********************** Procedure Settings ************************ */
  206. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  207. /* Settings for THIS-PROCEDURE
  208. Type: SmartDataViewer
  209. Data Source: "d-spezrab.w"
  210. Allow: Basic,DB-Fields,Smart
  211. Container Links: Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  212. Frames: 1
  213. Add Fields to: Neither
  214. Other Settings: PERSISTENT-ONLY COMPILE
  215. Temp-Tables and Buffers:
  216. TABLE: RowObject D "?" ?
  217. ADDITIONAL-FIELDS:
  218. {d-spezrab.i}
  219. END-FIELDS.
  220. END-TABLES.
  221. */
  222. /* This procedure should always be RUN PERSISTENT. Report the error, */
  223. /* then cleanup and return. */
  224. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  225. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  226. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  227. RETURN.
  228. END.
  229. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  230. /* ************************* Create Window ************************** */
  231. &ANALYZE-SUSPEND _CREATE-WINDOW
  232. /* DESIGN Window definition (used by the UIB)
  233. CREATE WINDOW vTableWin ASSIGN
  234. HEIGHT = 8.38
  235. WIDTH = 112.4.
  236. /* END WINDOW DEFINITION */
  237. */
  238. &ANALYZE-RESUME
  239. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB vTableWin
  240. /* ************************* Included-Libraries *********************** */
  241. {src/adm2/viewer.i}
  242. /* _UIB-CODE-BLOCK-END */
  243. &ANALYZE-RESUME
  244. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  245. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  246. /* SETTINGS FOR WINDOW vTableWin
  247. VISIBLE,,RUN-PERSISTENT */
  248. /* SETTINGS FOR FRAME F-Main
  249. NOT-VISIBLE FRAME-NAME Size-to-Fit Custom */
  250. ASSIGN
  251. FRAME F-Main:SCROLLABLE = FALSE
  252. FRAME F-Main:HIDDEN = TRUE.
  253. /* SETTINGS FOR FILL-IN RowObject.Ab_Datum IN FRAME F-Main
  254. EXP-LABEL EXP-FORMAT */
  255. /* SETTINGS FOR FILL-IN RowObject.Auf_Proz_Betr IN FRAME F-Main
  256. NO-ENABLE */
  257. ASSIGN
  258. RowObject.Auf_Proz_Betr:HIDDEN IN FRAME F-Main = TRUE
  259. RowObject.Auf_Proz_Betr:READ-ONLY IN FRAME F-Main = TRUE.
  260. /* SETTINGS FOR FILL-IN RowObject.Auf_Wert IN FRAME F-Main
  261. EXP-LABEL EXP-FORMAT */
  262. /* SETTINGS FOR FILL-IN RowObject.Bis_Datum IN FRAME F-Main
  263. EXP-LABEL EXP-FORMAT */
  264. /* SETTINGS FOR BUTTON Btn_Excel IN FRAME F-Main
  265. 5 */
  266. /* SETTINGS FOR BUTTON Btn_Kopieren IN FRAME F-Main
  267. 5 */
  268. /* SETTINGS FOR BUTTON Btn_Loeschen IN FRAME F-Main
  269. 5 */
  270. /* SETTINGS FOR FILL-IN RowObject.Firma IN FRAME F-Main
  271. NO-ENABLE */
  272. ASSIGN
  273. RowObject.Firma:HIDDEN IN FRAME F-Main = TRUE
  274. RowObject.Firma:READ-ONLY IN FRAME F-Main = TRUE.
  275. /* SETTINGS FOR FILL-IN F_Datum IN FRAME F-Main
  276. NO-ENABLE */
  277. ASSIGN
  278. F_Datum:READ-ONLY IN FRAME F-Main = TRUE.
  279. /* SETTINGS FOR FILL-IN F_Knr IN FRAME F-Main
  280. NO-ENABLE 6 */
  281. /* SETTINGS FOR FILL-IN RowObject.Knr IN FRAME F-Main
  282. NO-ENABLE */
  283. ASSIGN
  284. RowObject.Knr:HIDDEN IN FRAME F-Main = TRUE
  285. RowObject.Knr:READ-ONLY IN FRAME F-Main = TRUE.
  286. /* SETTINGS FOR TOGGLE-BOX RowObject.lNetto IN FRAME F-Main
  287. EXP-LABEL */
  288. /* SETTINGS FOR FILL-IN RowObject.Menge IN FRAME F-Main
  289. EXP-LABEL EXP-FORMAT */
  290. /* SETTINGS FOR FILL-IN RowObject.Proz_Betr IN FRAME F-Main
  291. NO-ENABLE */
  292. ASSIGN
  293. RowObject.Proz_Betr:HIDDEN IN FRAME F-Main = TRUE
  294. RowObject.Proz_Betr:READ-ONLY IN FRAME F-Main = TRUE.
  295. /* SETTINGS FOR FILL-IN RowObject.RabGrp IN FRAME F-Main
  296. NO-ENABLE */
  297. ASSIGN
  298. RowObject.RabGrp:HIDDEN IN FRAME F-Main = TRUE
  299. RowObject.RabGrp:READ-ONLY IN FRAME F-Main = TRUE.
  300. /* SETTINGS FOR FILL-IN RowObject.Rab_Grp IN FRAME F-Main
  301. NO-ENABLE EXP-LABEL EXP-FORMAT */
  302. ASSIGN
  303. RowObject.Rab_Grp:HIDDEN IN FRAME F-Main = TRUE
  304. RowObject.Rab_Grp:READ-ONLY IN FRAME F-Main = TRUE.
  305. /* SETTINGS FOR FILL-IN RowObject.Wert IN FRAME F-Main
  306. EXP-LABEL EXP-FORMAT */
  307. /* _RUN-TIME-ATTRIBUTES-END */
  308. &ANALYZE-RESUME
  309. /* Setting information for Queries and Browse Widgets fields */
  310. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  311. /* Query rebuild information for FRAME F-Main
  312. _Options = "NO-LOCK"
  313. _Query is NOT OPENED
  314. */ /* FRAME F-Main */
  315. &ANALYZE-RESUME
  316. /* ************************ Control Triggers ************************ */
  317. &Scoped-define SELF-NAME Btn_Excel
  318. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel vTableWin
  319. ON CHOOSE OF Btn_Excel IN FRAME F-Main /* Excel */
  320. DO:
  321. DISABLE Btn_Excel WITH FRAME {&FRAME-NAME}.
  322. RUN REPORT.
  323. ENABLE Btn_Excel WITH FRAME {&FRAME-NAME}.
  324. END.
  325. /* _UIB-CODE-BLOCK-END */
  326. &ANALYZE-RESUME
  327. &Scoped-define SELF-NAME Btn_Kopieren
  328. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Kopieren vTableWin
  329. ON CHOOSE OF Btn_Kopieren IN FRAME F-Main /* Kopieren */
  330. DO:
  331. IF FMut THEN RETURN NO-APPLY.
  332. DO WITH FRAME {&FRAME-NAME}:
  333. DISABLE {&List-5}.
  334. F_Knr:SENSITIVE = TRUE.
  335. F_Knr:TAB-STOP = TRUE.
  336. APPLY 'ENTRY' TO F_Knr.
  337. RETURN NO-APPLY.
  338. END.
  339. END.
  340. /* _UIB-CODE-BLOCK-END */
  341. &ANALYZE-RESUME
  342. &Scoped-define SELF-NAME Btn_Loeschen
  343. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Loeschen vTableWin
  344. ON CHOOSE OF Btn_Loeschen IN FRAME F-Main /* Löschen */
  345. DO:
  346. IF FMut THEN RETURN NO-APPLY.
  347. DO WITH FRAME {&FRAME-NAME}:
  348. SELF:SENSITIVE = FALSE.
  349. F_Datum:SENSITIVE = TRUE.
  350. F_Datum:TAB-STOP = TRUE.
  351. APPLY 'ENTRY' TO F_Datum.
  352. RETURN NO-APPLY.
  353. END.
  354. END.
  355. /* _UIB-CODE-BLOCK-END */
  356. &ANALYZE-RESUME
  357. &Scoped-define SELF-NAME CB_A_Art
  358. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_A_Art vTableWin
  359. ON VALUE-CHANGED OF CB_A_Art IN FRAME F-Main /* Auftrags-Rabatt */
  360. DO:
  361. IF NOT FMut THEN SELF:SCREEN-VALUE = rowObject.Auf_Proz_Betr:SCREEN-VALUE.
  362. rowObject.Auf_Proz_Betr:SCREEN-VALUE = SELF:SCREEN-VALUE.
  363. rowObject.Auf_Proz_Betr:MODIFIED = TRUE.
  364. END.
  365. /* _UIB-CODE-BLOCK-END */
  366. &ANALYZE-RESUME
  367. &Scoped-define SELF-NAME CB_Rabattgruppe
  368. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Rabattgruppe vTableWin
  369. ON RETURN OF CB_Rabattgruppe IN FRAME F-Main /* Rabattgruppe */
  370. DO:
  371. APPLY 'TAB' TO SELF.
  372. RETURN NO-APPLY.
  373. END.
  374. /* _UIB-CODE-BLOCK-END */
  375. &ANALYZE-RESUME
  376. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Rabattgruppe vTableWin
  377. ON VALUE-CHANGED OF CB_Rabattgruppe IN FRAME F-Main /* Rabattgruppe */
  378. DO:
  379. IF NOT FNeu THEN SELF:SCREEN-VALUE = rowObject.Rab_Grp:SCREEN-VALUE NO-ERROR.
  380. rowObject.Rab_Grp:SCREEN-VALUE = SELF:SCREEN-VALUE NO-ERROR.
  381. IF FNeu THEN rowObject.Rab_Grp:MODIFIED = TRUE.
  382. END.
  383. /* _UIB-CODE-BLOCK-END */
  384. &ANALYZE-RESUME
  385. &Scoped-define SELF-NAME CB_Z_Art
  386. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Z_Art vTableWin
  387. ON VALUE-CHANGED OF CB_Z_Art IN FRAME F-Main /* Zeilen-Rabatt */
  388. DO:
  389. IF NOT FMut THEN SELF:SCREEN-VALUE = rowObject.Proz_Betr:SCREEN-VALUE.
  390. rowObject.Proz_Betr:SCREEN-VALUE = SELF:SCREEN-VALUE.
  391. rowObject.Proz_Betr:MODIFIED = TRUE.
  392. END.
  393. /* _UIB-CODE-BLOCK-END */
  394. &ANALYZE-RESUME
  395. &Scoped-define SELF-NAME F_Datum
  396. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum vTableWin
  397. ON END-ERROR OF F_Datum IN FRAME F-Main /* bis Datum */
  398. DO:
  399. DO WITH FRAME {&FRAME-NAME}:
  400. SELF:SCREEN-VALUE = ''.
  401. SELF:SENSITIVE = FALSE.
  402. SELF:TAB-STOP = FALSE.
  403. ENABLE {&List-5}.
  404. APPLY 'U1'.
  405. RETURN NO-APPLY.
  406. END.
  407. END.
  408. /* _UIB-CODE-BLOCK-END */
  409. &ANALYZE-RESUME
  410. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum vTableWin
  411. ON LEAVE OF F_Datum IN FRAME F-Main /* bis Datum */
  412. DO:
  413. RUN LOESCHEN.
  414. RETURN NO-APPLY.
  415. END.
  416. /* _UIB-CODE-BLOCK-END */
  417. &ANALYZE-RESUME
  418. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum vTableWin
  419. ON RETURN OF F_Datum IN FRAME F-Main /* bis Datum */
  420. DO:
  421. APPLY 'TAB' TO SELF.
  422. RETURN NO-APPLY.
  423. END.
  424. /* _UIB-CODE-BLOCK-END */
  425. &ANALYZE-RESUME
  426. &Scoped-define SELF-NAME F_Knr
  427. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin
  428. ON END-ERROR OF F_Knr IN FRAME F-Main /* zu Kundennummer */
  429. DO:
  430. DO WITH FRAME {&FRAME-NAME}:
  431. SELF:SCREEN-VALUE = '0'.
  432. SELF:SENSITIVE = FALSE.
  433. SELF:TAB-STOP = FALSE.
  434. ENABLE {&List-5}.
  435. APPLY 'U1'.
  436. RETURN NO-APPLY.
  437. END.
  438. END.
  439. /* _UIB-CODE-BLOCK-END */
  440. &ANALYZE-RESUME
  441. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin
  442. ON LEAVE OF F_Knr IN FRAME F-Main /* zu Kundennummer */
  443. DO:
  444. RUN KOPIEREN.
  445. RETURN NO-APPLY.
  446. END.
  447. /* _UIB-CODE-BLOCK-END */
  448. &ANALYZE-RESUME
  449. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin
  450. ON RETURN OF F_Knr IN FRAME F-Main /* zu Kundennummer */
  451. DO:
  452. APPLY 'TAB' TO SELF.
  453. RETURN NO-APPLY.
  454. END.
  455. /* _UIB-CODE-BLOCK-END */
  456. &ANALYZE-RESUME
  457. &Scoped-define SELF-NAME RowObject.lNetto
  458. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.lNetto vTableWin
  459. ON VALUE-CHANGED OF RowObject.lNetto IN FRAME F-Main /* auf Nettoartikel? */
  460. DO:
  461. IF NOT FMut THEN SELF:SCREEN-VALUE = (IF SELF:SCREEN-VALUE BEGINS 'n' THEN STRING(TRUE) ELSE STRING(FALSE) ).
  462. END.
  463. /* _UIB-CODE-BLOCK-END */
  464. &ANALYZE-RESUME
  465. &UNDEFINE SELF-NAME
  466. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin
  467. /* *************************** Main Block *************************** */
  468. SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR.
  469. IF SAktiv THEN DO:
  470. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  471. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  472. END.
  473. /* Triggers ------------------------------------------------------ */
  474. ON 'RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE
  475. DO:
  476. RUN RETURN_FELD ( INPUT SELF:HANDLE ).
  477. IF RETURN-VALUE = 'TAB' THEN DO:
  478. APPLY 'TAB' TO SELF.
  479. RETURN NO-APPLY.
  480. END.
  481. END.
  482. ON 'ENTRY':U OF FRAME {&FRAME-NAME} ANYWHERE
  483. DO:
  484. RUN ENTRY_FELD_TEST ( INPUT SELF:HANDLE ).
  485. IF RETURN-VALUE = 'ERROR' THEN DO:
  486. APPLY 'ENTRY' TO SELF.
  487. RETURN NO-APPLY.
  488. END.
  489. IF RETURN-VALUE = 'APPLY' THEN DO:
  490. RETURN NO-APPLY.
  491. END.
  492. END.
  493. ON 'LEAVE':U OF FRAME {&FRAME-NAME} ANYWHERE
  494. DO:
  495. RUN LEAVE_FELD_TEST ( INPUT SELF:HANDLE ).
  496. IF RETURN-VALUE = 'ERROR' THEN DO:
  497. APPLY 'ENTRY' TO SELF.
  498. RETURN NO-APPLY.
  499. END.
  500. IF RETURN-VALUE = 'APPLY' THEN DO:
  501. RETURN NO-APPLY.
  502. END.
  503. END.
  504. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  505. RUN initializeObject.
  506. &ENDIF
  507. /************************ INTERNAL PROCEDURES ********************/
  508. /* _UIB-CODE-BLOCK-END */
  509. &ANALYZE-RESUME
  510. /* ********************** Internal Procedures *********************** */
  511. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE addRecord vTableWin
  512. PROCEDURE addRecord :
  513. /*------------------------------------------------------------------------------
  514. Purpose: Super Override
  515. Parameters:
  516. Notes:
  517. ------------------------------------------------------------------------------*/
  518. DO WITH FRAME {&FRAME-NAME}:
  519. F_Datum:SCREEN-VALUE = ''.
  520. F_Datum:SENSITIVE = FALSE.
  521. F_Datum:TAB-STOP = FALSE.
  522. END.
  523. Knr = DYNAMIC-FUNCTION('GETKNR':U) NO-ERROR.
  524. IF Knr = 0 THEN DO:
  525. DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR.
  526. RETURN NO-APPLY.
  527. END.
  528. FIND Debst USE-INDEX Debst-k1
  529. WHERE Debst.Firma = Firma
  530. AND Debst.Knr = Knr NO-LOCK NO-ERROR.
  531. IF NOT AVAILABLE Debst THEN DO:
  532. RUN FEHLER ( INPUT 1016 ).
  533. DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR.
  534. RETURN NO-APPLY.
  535. END.
  536. FNeu = TRUE.
  537. FMut = TRUE.
  538. FDisp = TRUE.
  539. RUN SUPER.
  540. END PROCEDURE.
  541. /* _UIB-CODE-BLOCK-END */
  542. &ANALYZE-RESUME
  543. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin
  544. PROCEDURE cancelRecord :
  545. /*------------------------------------------------------------------------------
  546. Purpose: Super Override
  547. Parameters:
  548. Notes:
  549. ------------------------------------------------------------------------------*/
  550. /* Code placed here will execute PRIOR to standard behavior. */
  551. RUN SUPER.
  552. /* Code placed here will execute AFTER standard behavior. */
  553. END PROCEDURE.
  554. /* _UIB-CODE-BLOCK-END */
  555. &ANALYZE-RESUME
  556. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE copyRecord vTableWin
  557. PROCEDURE copyRecord :
  558. /*------------------------------------------------------------------------------
  559. Purpose: Super Override
  560. Parameters:
  561. Notes:
  562. ------------------------------------------------------------------------------*/
  563. DO WITH FRAME {&FRAME-NAME}:
  564. F_Datum:SCREEN-VALUE = ''.
  565. F_Datum:SENSITIVE = FALSE.
  566. F_Datum:TAB-STOP = FALSE.
  567. END.
  568. Knr = DYNAMIC-FUNCTION('GETKNR':U) NO-ERROR.
  569. IF Knr = 0 THEN DO:
  570. DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR.
  571. RETURN NO-APPLY.
  572. END.
  573. FIND Debst USE-INDEX Debst-k1
  574. WHERE Debst.Firma = Firma
  575. AND Debst.Knr = Knr NO-LOCK NO-ERROR.
  576. IF NOT AVAILABLE Debst THEN DO:
  577. RUN FEHLER ( INPUT 1016 ).
  578. DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR.
  579. RETURN NO-APPLY.
  580. END.
  581. FNeu = TRUE.
  582. FMut = TRUE.
  583. FCopy = TRUE.
  584. FDisp = FALSE.
  585. RUN SUPER.
  586. END PROCEDURE.
  587. /* _UIB-CODE-BLOCK-END */
  588. &ANALYZE-RESUME
  589. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteRecord vTableWin
  590. PROCEDURE deleteRecord :
  591. /*------------------------------------------------------------------------------
  592. Purpose: Super Override
  593. Parameters:
  594. Notes:
  595. ------------------------------------------------------------------------------*/
  596. DEF VAR Ja AS LOG NO-UNDO.
  597. Ja = DYNAMIC-FUNCTION( 'ANTWORT_JA':U, INPUT 1000 ).
  598. IF NOT Ja THEN DO:
  599. PUBLISH 'TOOLBAR' ( INPUT 'CANCEL':U ).
  600. RETURN NO-APPLY.
  601. END.
  602. RUN SUPER.
  603. /* Code placed here will execute AFTER standard behavior. */
  604. END PROCEDURE.
  605. /* _UIB-CODE-BLOCK-END */
  606. &ANALYZE-RESUME
  607. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin
  608. PROCEDURE disableFields :
  609. /*------------------------------------------------------------------------------
  610. Purpose: Super Override
  611. Parameters:
  612. Notes:
  613. ------------------------------------------------------------------------------*/
  614. DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO.
  615. DO WITH FRAME {&FRAME-NAME}:
  616. END.
  617. RUN SUPER( INPUT pcFieldType).
  618. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  619. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  620. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  621. RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT 15 ).
  622. END.
  623. DO WITH FRAME {&FRAME-NAME}:
  624. ENABLE {&list-5}.
  625. END.
  626. END PROCEDURE.
  627. /* _UIB-CODE-BLOCK-END */
  628. &ANALYZE-RESUME
  629. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI vTableWin _DEFAULT-DISABLE
  630. PROCEDURE disable_UI :
  631. /*------------------------------------------------------------------------------
  632. Purpose: DISABLE the User Interface
  633. Parameters: <none>
  634. Notes: Here we clean-up the user-interface by deleting
  635. dynamic widgets we have created and/or hide
  636. frames. This procedure is usually called when
  637. we are ready to "clean-up" after running.
  638. ------------------------------------------------------------------------------*/
  639. /* Hide all frames. */
  640. HIDE FRAME F-Main.
  641. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  642. END PROCEDURE.
  643. /* _UIB-CODE-BLOCK-END */
  644. &ANALYZE-RESUME
  645. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE displayFields vTableWin
  646. PROCEDURE displayFields :
  647. /*------------------------------------------------------------------------------
  648. Purpose: Super Override
  649. Parameters:
  650. Notes:
  651. ------------------------------------------------------------------------------*/
  652. DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  653. IF NOT FDisp THEN DO:
  654. FDisp = TRUE.
  655. RETURN.
  656. END.
  657. OldColValues = pcColValues.
  658. OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
  659. IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ).
  660. DO WITH FRAME {&FRAME-NAME}:
  661. END.
  662. RUN SUPER( INPUT pcColValues).
  663. DO WITH FRAME {&FRAME-NAME}:
  664. CB_Rabattgruppe:SCREEN-VALUE = rowObject.Rab_Grp:SCREEN-VALUE NO-ERROR.
  665. CB_Z_Art:SCREEN-VALUE = rowObject.Proz_Betr:SCREEN-VALUE NO-ERROR.
  666. CB_A_Art:SCREEN-VALUE = rowObject.Auf_Proz_Betr:SCREEN-VALUE NO-ERROR.
  667. F_Knr :SCREEN-VALUE = ''.
  668. F_Datum:SCREEN-VALUE = ''.
  669. END.
  670. END PROCEDURE.
  671. /* _UIB-CODE-BLOCK-END */
  672. &ANALYZE-RESUME
  673. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin
  674. PROCEDURE enableFields :
  675. /*------------------------------------------------------------------------------
  676. Purpose: Super Override
  677. Parameters:
  678. Notes:
  679. ------------------------------------------------------------------------------*/
  680. /* Code placed here will execute PRIOR to standard behavior. */
  681. /*
  682. RUN SUPER.
  683. */
  684. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  685. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ).
  686. IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN DO:
  687. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ).
  688. END.
  689. DO WITH FRAME {&FRAME-NAME}:
  690. DISABLE {&list-5}.
  691. ENABLE CB_Rabattgruppe.
  692. END.
  693. IF FNeu THEN RETURN.
  694. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  695. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  696. END.
  697. END PROCEDURE.
  698. /* _UIB-CODE-BLOCK-END */
  699. &ANALYZE-RESUME
  700. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin
  701. PROCEDURE enableObject :
  702. /*------------------------------------------------------------------------------
  703. Purpose: Super Override
  704. Parameters:
  705. Notes:
  706. ------------------------------------------------------------------------------*/
  707. DO WITH FRAME {&FRAME-NAME}:
  708. RUN COMBO_RABATTGRUPPE ( INPUT CB_Rabattgruppe:HANDLE ).
  709. END.
  710. RUN SUPER.
  711. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  712. IF SAktiv THEN DO:
  713. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  714. END.
  715. END PROCEDURE.
  716. /* _UIB-CODE-BLOCK-END */
  717. &ANALYZE-RESUME
  718. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin
  719. PROCEDURE ENTRY_FELD_TEST :
  720. /*------------------------------------------------------------------------------
  721. Purpose:
  722. Parameters: <none>
  723. Notes:
  724. ------------------------------------------------------------------------------*/
  725. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  726. DEF VAR FeldName AS CHAR NO-UNDO.
  727. DEF VAR FeldInhalt AS CHAR NO-UNDO.
  728. FeldName = ''.
  729. FeldInhalt = ''.
  730. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  731. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  732. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  733. FeldName = ipHandle:NAME.
  734. IF ipHandle:TYPE = 'FILL-IN' OR
  735. ipHandle:TYPE = 'COMBO-BOX' OR
  736. ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE.
  737. IF NOT FMut THEN RETURN ''.
  738. DO WITH FRAME {&FRAME-NAME}:
  739. CASE FeldName:
  740. END CASE.
  741. END.
  742. RETURN ''.
  743. END PROCEDURE.
  744. /* _UIB-CODE-BLOCK-END */
  745. &ANALYZE-RESUME
  746. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FEHLWERTE vTableWin
  747. PROCEDURE FEHLWERTE :
  748. /*------------------------------------------------------------------------------
  749. Purpose:
  750. Parameters: <none>
  751. Notes:
  752. ------------------------------------------------------------------------------*/
  753. DEF INPUT-OUTPUT PARAMETER pcColValues AS CHAR NO-UNDO.
  754. DEF VAR FwFelder AS CHAR NO-UNDO.
  755. DEF VAR FwFeld AS CHAR NO-UNDO.
  756. DEF VAR FwValue AS CHAR NO-UNDO.
  757. DEF VAR ix AS INT NO-UNDO.
  758. DEF VAR i1 AS INT NO-UNDO.
  759. GET-KEY-VALUE SECTION 'Fw???????' KEY ? VALUE FwFelder.
  760. IF NOT FCopy THEN DO:
  761. DO ix = 1 TO NUM-ENTRIES(FwFelder, ','):
  762. FwFeld = ENTRY (ix , FwFelder , ',').
  763. i1 = LOOKUP(FwFeld, oldColList, ',') + 1.
  764. IF i1 < 2 THEN NEXT.
  765. GET-KEY-VALUE SECTION 'Fw???????' KEY FwFeld VALUE FwValue.
  766. ENTRY(i1, pcColValues, CHR(1)) = FwValue NO-ERROR.
  767. END.
  768. IF vDatum = ? THEN vDatum = TODAY.
  769. IF bDatum = ? THEN bDatum = DATE(12,31,YEAR(TODAY)).
  770. i1 = LOOKUP('Ab_Datum', oldColList, ',') + 1.
  771. ENTRY(i1, pcColValues, CHR(01)) = STRING(vDatum) NO-ERROR.
  772. i1 = LOOKUP('Bis_Datum', oldColList, ',') + 1.
  773. ENTRY(i1, pcColValues, CHR(01)) = (IF bDatum = ? THEN '31.12.2099' ELSE STRING(bDatum)) NO-ERROR.
  774. i1 = LOOKUP('Wert', oldColList, ',') + 1.
  775. ENTRY(i1, pcColValues, CHR(01)) = STRING(dZRab) NO-ERROR.
  776. i1 = LOOKUP('Auf_Wert', oldColList, ',') + 1.
  777. ENTRY(i1, pcColValues, CHR(01)) = STRING(dARab) NO-ERROR.
  778. i1 = LOOKUP('Menge', oldColList, ',') + 1.
  779. ENTRY(i1, pcColValues, CHR(01)) = STRING(dMenge) NO-ERROR.
  780. i1 = LOOKUP('Proz_Betr', oldColList, ',') + 1.
  781. ENTRY(i1, pcColValues, CHR(01)) = STRING(lZArt) NO-ERROR.
  782. i1 = LOOKUP('Auf_Proz_Betr', oldColList, ',') + 1.
  783. ENTRY(i1, pcColValues, CHR(01)) = STRING(lAArt) NO-ERROR.
  784. i1 = LOOKUP('Rab_Grp', oldColList, ',') + 1.
  785. ENTRY(i1, pcColValues, CHR(01)) = STRING(iRabGrp) NO-ERROR.
  786. ix = DYNAMIC-FUNCTION('getFWNettoRab':U) NO-ERROR.
  787. i1 = LOOKUP('lNetto', oldColList, ',') + 1.
  788. ENTRY(i1, pcColValues, CHR(01)) = (IF ix = 0 THEN STRING(TRUE) ELSE STRING(FALSE)) NO-ERROR.
  789. END.
  790. IF FCopy THEN DO:
  791. END.
  792. OldColValues = pcColValues.
  793. END PROCEDURE.
  794. /* _UIB-CODE-BLOCK-END */
  795. &ANALYZE-RESUME
  796. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF vTableWin
  797. PROCEDURE KOPF :
  798. /*------------------------------------------------------------------------------
  799. Purpose:
  800. Parameters: <none>
  801. Notes:
  802. ------------------------------------------------------------------------------*/
  803. DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO.
  804. DEF VAR Zelle AS CHAR NO-UNDO.
  805. FIND Steuer USE-INDEX Steuer-k1
  806. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  807. Zelle = 'Links1'.
  808. eh:Range(Zelle):SELECT.
  809. eh:SELECTION:VALUE = Steuer.Firma1.
  810. Zelle = 'Mitte1'.
  811. eh:Range(Zelle):SELECT.
  812. eh:SELECTION:VALUE = 'Spezialrabatte eines Kunden'.
  813. Zelle = 'Rechts1'.
  814. eh:Range(Zelle):SELECT.
  815. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  816. Zelle = 'Links2'.
  817. eh:Range(Zelle):SELECT.
  818. eh:SELECTION:VALUE = Steuer.Ort.
  819. Zelle = 'Mitte2'.
  820. eh:Range(Zelle):SELECT.
  821. eh:SELECTION:VALUE = ''.
  822. Zelle = 'Rechts2'.
  823. eh:Range(Zelle):SELECT.
  824. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  825. END PROCEDURE.
  826. /* _UIB-CODE-BLOCK-END */
  827. &ANALYZE-RESUME
  828. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPIEREN vTableWin
  829. PROCEDURE KOPIEREN :
  830. /*------------------------------------------------------------------------------
  831. Purpose:
  832. Parameters: <none>
  833. Notes:
  834. ------------------------------------------------------------------------------*/
  835. DEF VAR NeuKnr AS INT NO-UNDO.
  836. DEF VAR Ja AS LOG NO-UNDO.
  837. DO WITH FRAME {&FRAME-NAME}:
  838. IF KEYFUNCTION(LASTKEY) <> 'RETURN' THEN DO:
  839. F_Knr:SCREEN-VALUE = ''.
  840. F_Knr:SENSITIVE = FALSE.
  841. F_Knr:TAB-STOP = FALSE.
  842. ENABLE {&List-5}.
  843. APPLY 'U1'.
  844. RETURN NO-APPLY.
  845. END.
  846. NeuKnr = INTEGER(F_Knr:SCREEN-VALUE).
  847. Knr = INTEGER(rowObject.Knr:SCREEN-VALUE).
  848. IF Knr = 0 OR
  849. Knr = ? THEN DO:
  850. F_Knr:SCREEN-VALUE = ''.
  851. F_Knr:SENSITIVE = FALSE.
  852. F_Knr:TAB-STOP = FALSE.
  853. ENABLE {&List-5}.
  854. APPLY 'U1'.
  855. RETURN NO-APPLY.
  856. END.
  857. FIND Adresse USE-INDEX Adresse-k1
  858. WHERE Adresse.Firma = AdFirma
  859. AND Adresse.Knr = NeuKnr
  860. AND Adresse.Aktiv = TRUE NO-LOCK NO-ERROR.
  861. IF NOT AVAILABLE Adresse THEN DO:
  862. RUN FEHLER ( INPUT 1015 ).
  863. APPLY 'ENTRY' TO F_Knr.
  864. RETURN NO-APPLY.
  865. END.
  866. FIND Debst USE-INDEX Debst-k1
  867. WHERE Debst.Firma = Firma
  868. AND Debst.Knr = NeuKnr
  869. AND Debst.Aktiv = TRUE NO-LOCK NO-ERROR.
  870. IF NOT AVAILABLE Debst THEN DO:
  871. RUN FEHLER ( INPUT 1016 ).
  872. APPLY 'ENTRY' TO F_Knr.
  873. RETURN NO-APPLY.
  874. END.
  875. FIND FIRST SpPrRab USE-INDEX SpPrRab-k1
  876. WHERE SpPrRab.Firma = Debst.Firma
  877. AND SpPrRab.Knr = NeuKnr NO-LOCK NO-ERROR.
  878. IF AVAILABLE SpPrRab THEN DO:
  879. Ja = FALSE.
  880. MESSAGE 'Kunde hat bereits Spezialrabatte! Sollen diese gelöscht werden?' SKIP
  881. VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
  882. UPDATE Ja.
  883. IF Ja THEN DO:
  884. FOR EACH SpPrRab USE-INDEX SpPrRab-k1
  885. WHERE SpPrRab.Firma = Firma
  886. AND SpPrRab.Knr = NeuKnr TRANSACTION:
  887. DELETE SpPrRab.
  888. END.
  889. END.
  890. END.
  891. Ja = TRUE.
  892. MESSAGE 'Wollen Sie diese Konditionen vom Kunden ' STRING(Knr,'999999')
  893. ' zum Kunden ' SKIP
  894. STRING(NeuKnr,"999999 ") Adresse.Anzeig_Br ' übertragen ? '
  895. VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
  896. UPDATE Ja.
  897. IF NOT Ja THEN DO:
  898. F_Knr:SCREEN-VALUE = ''.
  899. F_Knr:SENSITIVE = FALSE.
  900. F_Knr:TAB-STOP = FALSE.
  901. ENABLE {&List-5}.
  902. APPLY 'U1'.
  903. RETURN NO-APPLY.
  904. END.
  905. EMPTY TEMP-TABLE tSpPrRab.
  906. FOR EACH SpPrRab USE-INDEX SpPrRab-k1
  907. WHERE SpPrRab.Firma = Firma
  908. AND SpPrRab.Knr = Knr NO-LOCK:
  909. CREATE TSpPrRab.
  910. BUFFER-COPY SpPrRab TO TSpPrRab
  911. ASSIGN TSpPrRab.Knr = NeuKnr.
  912. END.
  913. REPEAT TRANSACTION:
  914. FOR EACH TSpPrRab:
  915. FIND SpPrRab OF TSpPrRab NO-ERROR.
  916. IF NOT AVAILABLE SpPrRab THEN CREATE SpPrRab.
  917. BUFFER-COPY TSpPrRab TO SpPrRab.
  918. DELETE TSpPrRab.
  919. END.
  920. LEAVE.
  921. END.
  922. F_Knr:SCREEN-VALUE = ''.
  923. F_Knr:SENSITIVE = FALSE.
  924. F_Knr:TAB-STOP = FALSE.
  925. ENABLE {&List-5}.
  926. APPLY 'U1'.
  927. RETURN NO-APPLY.
  928. END.
  929. END PROCEDURE.
  930. /* _UIB-CODE-BLOCK-END */
  931. &ANALYZE-RESUME
  932. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_FELD_TEST vTableWin
  933. PROCEDURE LEAVE_FELD_TEST :
  934. /*------------------------------------------------------------------------------
  935. Purpose:
  936. Parameters: <none>
  937. Notes:
  938. ------------------------------------------------------------------------------*/
  939. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  940. DEF VAR FeldName AS CHAR NO-UNDO.
  941. DEF VAR FeldInhalt AS CHAR NO-UNDO.
  942. DEF VAR ix AS INT NO-UNDO.
  943. DEF VAR LKY AS INT NO-UNDO.
  944. DEF VAR hLEAVE AS HANDLE NO-UNDO.
  945. DEF VAR hENTER AS HANDLE NO-UNDO.
  946. DEF VAR Daten AS CHAR NO-UNDO.
  947. IF FMut = FALSE THEN RETURN ''.
  948. LKY = LASTKEY.
  949. hENTER = LAST-EVENT:WIDGET-ENTER.
  950. hLEAVE = LAST-EVENT:WIDGET-LEAVE.
  951. FeldName = ''.
  952. FeldInhalt = ''.
  953. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  954. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  955. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  956. FeldName = ipHandle:NAME.
  957. IF ipHandle:TYPE = 'FILL-IN' OR
  958. ipHandle:TYPE = 'COMBO-BOX' OR
  959. ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE.
  960. DO WHILE FNeu WITH FRAME {&FRAME-NAME}:
  961. CASE FeldName:
  962. WHEN 'Menge' THEN DO:
  963. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN ''.
  964. IF VALID-HANDLE(hENTER) AND
  965. hENTER:NAME = 'CB_Rabattgruppe' THEN RETURN ''.
  966. FIND SpPrRab NO-LOCK USE-INDEX SpPrRab-k1
  967. WHERE SpPrRab.Firma = Firma
  968. AND SpPrRab.Knr = Knr
  969. AND SpPrRab.Rab_Grp = INTEGER(CB_Rabattgruppe:SCREEN-VALUE)
  970. AND SpPrRab.Menge = INTEGER(FeldInhalt) NO-ERROR.
  971. IF AVAILABLE(SpPrRab) THEN DO:
  972. RUN FEHLER ( INPUT 1044 ).
  973. RETURN 'ERROR'.
  974. END.
  975. END.
  976. END CASE.
  977. LEAVE.
  978. END.
  979. DO WITH FRAME {&FRAME-NAME}:
  980. CASE FeldName:
  981. WHEN 'Ab_Datum' THEN DO:
  982. IF DATE(FeldInhalt) = ?
  983. THEN ipHandle:SCREEN-VALUE = STRING(DATE(01,01,YEAR(TODAY))).
  984. END.
  985. WHEN 'Bis_Datum' THEN DO:
  986. IF DATE(FeldInhalt) = ?
  987. THEN ipHandle:SCREEN-VALUE = STRING(DATE(12,31,YEAR(TODAY) + 1)).
  988. END.
  989. END CASE.
  990. END.
  991. IF LOOKUP(FeldName, '{&LETZTES_FELD}', ',') > 0 THEN DO:
  992. DO WHILE TRUE:
  993. IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE.
  994. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE.
  995. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE.
  996. RETURN ''.
  997. END.
  998. APPLY 'ALT-S'.
  999. RETURN 'APPLY'.
  1000. END.
  1001. RETURN ''.
  1002. END PROCEDURE.
  1003. /* _UIB-CODE-BLOCK-END */
  1004. &ANALYZE-RESUME
  1005. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN vTableWin
  1006. PROCEDURE LOESCHEN :
  1007. /*------------------------------------------------------------------------------
  1008. Purpose:
  1009. Parameters: <none>
  1010. Notes:
  1011. ------------------------------------------------------------------------------*/
  1012. DEF VAR Ja AS LOG NO-UNDO.
  1013. DEF VAR dHandle AS HANDLE NO-UNDO.
  1014. DO WITH FRAME {&FRAME-NAME}:
  1015. IF KEYFUNCTION(LASTKEY) <> 'RETURN' THEN DO:
  1016. F_Datum:SCREEN-VALUE = ''.
  1017. F_Datum:SENSITIVE = FALSE.
  1018. F_Datum:TAB-STOP = FALSE.
  1019. ENABLE {&List-5}.
  1020. APPLY 'U1'.
  1021. RETURN NO-APPLY.
  1022. END.
  1023. Knr = INTEGER(rowObject.Knr:SCREEN-VALUE).
  1024. IF DATE(F_Datum:SCREEN-VALUE) = ? THEN DO:
  1025. F_Datum:SCREEN-VALUE = ''.
  1026. F_Datum:SENSITIVE = FALSE.
  1027. F_Datum:TAB-STOP = FALSE.
  1028. ENABLE {&List-5}.
  1029. APPLY 'U1'.
  1030. RETURN NO-APPLY.
  1031. END.
  1032. FIND Adresse USE-INDEX Adresse-k1
  1033. WHERE Adresse.Firma = AdFirma
  1034. AND Adresse.Knr = Knr
  1035. AND Adresse.Aktiv = TRUE NO-LOCK NO-ERROR.
  1036. IF NOT AVAILABLE Adresse THEN DO:
  1037. RUN FEHLER ( INPUT 1015 ).
  1038. F_Datum:SCREEN-VALUE = ''.
  1039. F_Datum:SENSITIVE = FALSE.
  1040. F_Datum:TAB-STOP = FALSE.
  1041. ENABLE {&List-5}.
  1042. APPLY 'U1'.
  1043. RETURN NO-APPLY.
  1044. END.
  1045. FIND Debst USE-INDEX Debst-k1
  1046. WHERE Debst.Firma = Firma
  1047. AND Debst.Knr = Knr
  1048. AND Debst.Aktiv = TRUE NO-LOCK NO-ERROR.
  1049. IF NOT AVAILABLE Debst THEN DO:
  1050. RUN FEHLER ( INPUT 1016 ).
  1051. F_Datum:SCREEN-VALUE = ''.
  1052. F_Datum:SENSITIVE = FALSE.
  1053. F_Datum:TAB-STOP = FALSE.
  1054. ENABLE {&List-5}.
  1055. APPLY 'U1'.
  1056. RETURN NO-APPLY.
  1057. END.
  1058. Ja = FALSE.
  1059. F_Datum = DATE(F_Datum:SCREEN-VALUE).
  1060. MESSAGE 'Wollen Sie alle Spezialrabatte mit Gültigkeit ' SKIP
  1061. 'bis ' STRING(F_Datum,'99.99.9999') ' dieses Kunden löschen ? '
  1062. VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
  1063. UPDATE Ja.
  1064. IF NOT Ja THEN DO:
  1065. F_Datum:SCREEN-VALUE = ''.
  1066. F_Datum:SENSITIVE = FALSE.
  1067. F_Datum:TAB-STOP = FALSE.
  1068. ENABLE {&List-5}.
  1069. APPLY 'U1'.
  1070. RETURN NO-APPLY.
  1071. END.
  1072. FOR EACH SpPrRab USE-INDEX SpPrRab-k1
  1073. WHERE SpPrRab.Firma = Firma
  1074. AND SpPrRab.Knr = Knr
  1075. AND SpPrRab.Bis_Datum <= F_Datum TRANSACTION:
  1076. DELETE SpPrRab.
  1077. END.
  1078. dHandle = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR.
  1079. IF VALID-HANDLE(dHandle) THEN DYNAMIC-FUNCTION('openQuery':U IN dHandle ) NO-ERROR.
  1080. F_Datum:SCREEN-VALUE = ''.
  1081. F_Datum:SENSITIVE = FALSE.
  1082. F_Datum:TAB-STOP = FALSE.
  1083. ENABLE {&List-5}.
  1084. APPLY 'U1'.
  1085. RETURN NO-APPLY.
  1086. END.
  1087. END PROCEDURE.
  1088. /* _UIB-CODE-BLOCK-END */
  1089. &ANALYZE-RESUME
  1090. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT vTableWin
  1091. PROCEDURE REPORT :
  1092. /*------------------------------------------------------------------------------
  1093. Purpose:
  1094. Parameters: <none>
  1095. Notes:
  1096. ------------------------------------------------------------------------------*/
  1097. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  1098. DEF VAR DatenName AS CHAR NO-UNDO.
  1099. DEF VAR DateiName AS CHAR NO-UNDO.
  1100. DEF VAR Zelle AS CHAR NO-UNDO.
  1101. DEF VAR xText AS CHAR NO-UNDO.
  1102. DEF VAR Ja AS LOG NO-UNDO.
  1103. DEF VAR RabGrp AS CHAR NO-UNDO.
  1104. DEF VAR Knr AS INT NO-UNDO.
  1105. DEF VAR Kunde AS CHAR NO-UNDO.
  1106. Knr = DYNAMIC-FUNCTION('GETKNR':U) NO-ERROR.
  1107. Kunde = DYNAMIC-FUNCTION('GETADRESSEANZEIGEBR':U,
  1108. INPUT Knr, INPUT 0) NO-ERROR.
  1109. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  1110. DatenName = 'KundenSpezialRabatte.txt'.
  1111. DateiName = 'KundenSpezialRabatte.xls' + CHR(01) + 'KundenSpezialRabatte.xls'.
  1112. DO WITH FRAME {&FRAME-NAME}:
  1113. DO WHILE TRUE:
  1114. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  1115. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  1116. RUN FEHLER ( INPUT 1035 ).
  1117. RETURN NO-APPLY.
  1118. END.
  1119. LEAVE.
  1120. END.
  1121. DO WHILE TRUE:
  1122. RUN CREATEDATEI ( INPUT DateiName ).
  1123. IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE.
  1124. CASE RETURN-VALUE:
  1125. WHEN 'ERROR-PARAMETER' THEN DO:
  1126. RUN FEHLER ( INPUT 1036 ).
  1127. RETURN NO-APPLY.
  1128. END.
  1129. WHEN 'ERROR-LOESCHEN' THEN DO:
  1130. RUN FEHLER ( INPUT 1037 ).
  1131. RETURN NO-APPLY.
  1132. END.
  1133. WHEN 'ERROR-VORLAGE' THEN DO:
  1134. RUN FEHLER ( INPUT 1038 ).
  1135. RETURN NO-APPLY.
  1136. END.
  1137. OTHERWISE DO:
  1138. MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR.
  1139. RETURN NO-APPLY.
  1140. END.
  1141. END CASE.
  1142. LEAVE.
  1143. END.
  1144. DateiName = RETURN-VALUE.
  1145. DO WHILE TRUE:
  1146. RUN CREATEDATEI ( INPUT DatenName ).
  1147. IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE.
  1148. CASE RETURN-VALUE:
  1149. WHEN 'ERROR-PARAMETER' THEN DO:
  1150. RUN FEHLER ( INPUT 1036 ).
  1151. RETURN NO-APPLY.
  1152. END.
  1153. WHEN 'ERROR-LOESCHEN' THEN DO:
  1154. RUN FEHLER ( INPUT 1037 ).
  1155. RETURN NO-APPLY.
  1156. END.
  1157. WHEN 'ERROR-VORLAGE' THEN DO:
  1158. RUN FEHLER ( INPUT 1038 ).
  1159. RETURN NO-APPLY.
  1160. END.
  1161. OTHERWISE DO:
  1162. MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR.
  1163. RETURN NO-APPLY.
  1164. END.
  1165. END CASE.
  1166. LEAVE.
  1167. END.
  1168. DatenName = RETURN-VALUE.
  1169. OUTPUT TO VALUE(DatenName) APPEND.
  1170. PUT CONTROL '£'
  1171. STRING(Knr,'999999 ')
  1172. Kunde CHR(10).
  1173. PUT CONTROL '£££££££Zeilen£££Auftrag' CHR(10)
  1174. '£Grp£Rabattgruppe£Menge£ab£bis£Art££Wert'
  1175. '£Art££Wert' CHR(10)
  1176. '£' CHR(10).
  1177. FOR EACH SpPrRab NO-LOCK USE-INDEX SpPrRab-k1
  1178. WHERE SpPrRab.Firma = Firma
  1179. AND SpPrRab.Knr = Knr :
  1180. RUN FIND_RABATTGRUPPE ( INPUT SpPrRab.Rab_Grp, OUTPUT xText ) NO-ERROR.
  1181. IF xText <> '' THEN RabGrp = ENTRY(2, xText, CHR(01)).
  1182. ELSE RabGrp = '??????????'.
  1183. PUT CONTROL '£'.
  1184. PUT CONTROL STRING(SpPrRab.Rab_Grp ,'999') '£'
  1185. RabGrp '£'
  1186. STRING(SpPrRab.Menge ,'zzzzzz') '£'
  1187. STRING(SpPrRab.Ab_Datum ,'99.99.9999') '£'
  1188. STRING(SpPrRab.Bis_Datum ,'99.99.9999') '£'
  1189. STRING(SpPrRab.Proz_Betr ,'%/Fr') '£'
  1190. '£'
  1191. STRING(SpPrRab.Wert ,'>>>>9.999') '£'
  1192. STRING(SpPrRab.Auf_Proz_Betr,'%/Fr') '£'
  1193. '£'
  1194. STRING(SpPrRab.Auf_Wert ,'>>>>9.999') CHR(10).
  1195. END.
  1196. OUTPUT CLOSE.
  1197. RUN OPENEXCEL ( INPUT excelAppl,
  1198. INPUT DateiName,
  1199. INPUT '',
  1200. OUTPUT Ja ).
  1201. IF NOT Ja THEN DO:
  1202. RUN FEHLER ( INPUT 1040 ).
  1203. RETURN NO-APPLY.
  1204. END.
  1205. Zelle = 'A3'.
  1206. excelAppl:Range(Zelle):SELECT.
  1207. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + DatenName.
  1208. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  1209. RUN KOPF ( INPUT excelAppl ).
  1210. Zelle = 'A1'.
  1211. excelAppl:Range(Zelle):SELECT.
  1212. excelAppl:Selection:ColumnWidth = 0.3.
  1213. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1214. END.
  1215. END PROCEDURE.
  1216. /* _UIB-CODE-BLOCK-END */
  1217. &ANALYZE-RESUME
  1218. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETURN_FELD vTableWin
  1219. PROCEDURE RETURN_FELD :
  1220. /*------------------------------------------------------------------------------
  1221. Purpose:
  1222. Parameters: <none>
  1223. Notes:
  1224. ------------------------------------------------------------------------------*/
  1225. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  1226. DEF VAR FeldName AS CHAR NO-UNDO.
  1227. IF FMut = FALSE THEN RETURN ''.
  1228. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  1229. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  1230. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  1231. FeldName = ipHandle:NAME.
  1232. IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN DO:
  1233. RETURN 'TAB'.
  1234. END.
  1235. IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN DO:
  1236. RETURN 'TAB'.
  1237. END.
  1238. FeldName = 'rowObject.' + FeldName.
  1239. IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN DO:
  1240. RETURN 'TAB'.
  1241. END.
  1242. IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN DO:
  1243. RETURN 'TAB'.
  1244. END.
  1245. RETURN ''.
  1246. END PROCEDURE.
  1247. /* _UIB-CODE-BLOCK-END */
  1248. &ANALYZE-RESUME
  1249. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin
  1250. PROCEDURE updateMode :
  1251. /*------------------------------------------------------------------------------
  1252. Purpose: Super Override
  1253. Parameters:
  1254. Notes:
  1255. ------------------------------------------------------------------------------*/
  1256. DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO.
  1257. CASE pcMode:
  1258. WHEN 'updateBegin' THEN DO:
  1259. DO WITH FRAME {&FRAME-NAME}:
  1260. F_Datum:SCREEN-VALUE = ''.
  1261. F_Datum:SENSITIVE = FALSE.
  1262. F_Datum:TAB-STOP = FALSE.
  1263. END.
  1264. END.
  1265. WHEN 'updateEnd' THEN DO:
  1266. END.
  1267. END.
  1268. RUN SUPER( INPUT pcMode).
  1269. CASE pcMode:
  1270. WHEN 'updateBegin' THEN DO:
  1271. FMut = TRUE.
  1272. END.
  1273. WHEN 'updateEnd' THEN DO:
  1274. FNeu = FALSE.
  1275. FMut = FALSE.
  1276. FCopy = FALSE.
  1277. END.
  1278. END.
  1279. END PROCEDURE.
  1280. /* _UIB-CODE-BLOCK-END */
  1281. &ANALYZE-RESUME
  1282. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin
  1283. PROCEDURE updateRecord :
  1284. /*------------------------------------------------------------------------------
  1285. Purpose: Super Override
  1286. Parameters:
  1287. Notes:
  1288. ------------------------------------------------------------------------------*/
  1289. DO WITH FRAME {&FRAME-NAME}:
  1290. IF FNeu THEN DO:
  1291. rowObject.Rab_Grp:SCREEN-VALUE = CB_Rabattgruppe:SCREEN-VALUE.
  1292. rowObject.Rab_Grp :MODIFIED = TRUE.
  1293. rowObject.Ab_Datum :MODIFIED = TRUE.
  1294. rowObject.Bis_Datum:MODIFIED = TRUE.
  1295. END.
  1296. rowObject.Proz_Betr:SCREEN-VALUE = CB_Z_Art:SCREEN-VALUE.
  1297. rowObject.Auf_Proz_Betr:SCREEN-VALUE = CB_A_Art:SCREEN-VALUE.
  1298. rowObject.Proz_Betr:MODIFIED = TRUE.
  1299. rowObject.Auf_Proz_Betr:MODIFIED = TRUE.
  1300. iRabGrp = INTEGER(rowObject.Rab_Grp :SCREEN-VALUE) NO-ERROR.
  1301. lZArt = (IF rowObject.Proz_Betr :SCREEN-VALUE BEGINS 'P' THEN TRUE ELSE FALSE) NO-ERROR.
  1302. lAArt = (IF rowObject.Auf_Proz_Betr:SCREEN-VALUE BEGINS 'P' THEN TRUE ELSE FALSE) NO-ERROR.
  1303. dMenge = DECIMAL(rowObject.Menge :SCREEN-VALUE) NO-ERROR.
  1304. vDatum = DATE(rowObject.Ab_Datum :SCREEN-VALUE) NO-ERROR.
  1305. bDatum = DATE(rowObject.Bis_Datum:SCREEN-VALUE) NO-ERROR.
  1306. IF lZArt THEN dZRab = DECIMAL(rowObject.Wert:SCREEN-VALUE) NO-ERROR.
  1307. ELSE dZRab = 0.
  1308. IF lAArt THEN dARab = DECIMAL(rowObject.Auf_Wert:SCREEN-VALUE) NO-ERROR.
  1309. ELSE dARab = 0.
  1310. END.
  1311. FNeu = FALSE.
  1312. FCopy = FALSE.
  1313. RUN SUPER.
  1314. /* Code placed here will execute AFTER standard behavior. */
  1315. END PROCEDURE.
  1316. /* _UIB-CODE-BLOCK-END */
  1317. &ANALYZE-RESUME