v-abholze.w 70 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111
  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. {adecomm/appserv.i}
  8. /* Temp-Table and Buffer definitions */
  9. DEFINE TEMP-TABLE RowObject NO-UNDO
  10. {"d-abholze.i"}.
  11. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS vTableWin
  12. /*------------------------------------------------------------------------
  13. File:
  14. Description: from viewer.w - Template for SmartDataViewer objects
  15. Input Parameters:
  16. <none>
  17. Output Parameters:
  18. <none>
  19. ------------------------------------------------------------------------*/
  20. /* This .W file was created with the Progress AppBuilder. */
  21. /*----------------------------------------------------------------------*/
  22. /* Create an unnamed pool to store all the widgets created
  23. by this procedure. This is a good default which assures
  24. that this procedure's triggers and internal procedures
  25. will execute in this procedure's storage, and that proper
  26. cleanup will occur on deletion of the procedure. */
  27. CREATE WIDGET-POOL.
  28. /* *************************** Definitions ************************** */
  29. /* Komma-Trennzeichen */
  30. /* Keyfelder werden beim Mutieren nicht "Enabled" */
  31. &Scoped-define ERSTES_FELD F_Artnr
  32. &Scoped-define LETZTES_FELD Rab_Wert
  33. &Scoped-define KEY_FELDER F_Artnr,Inhalt,Jahr
  34. &Scoped-define NUR_LESEN KGeb_Me
  35. { incl/viwdefinition.i }
  36. DEF VAR iArtnr AS INT NO-UNDO.
  37. DEF VAR iInhalt AS INT NO-UNDO.
  38. DEF VAR iJahr AS INT NO-UNDO.
  39. DEF VAR iAufnr AS INT NO-UNDO.
  40. DEF VAR iPos AS INT NO-UNDO.
  41. DEF VAR htAufze AS HANDLE NO-UNDO.
  42. DEF VAR cUpdFields AS CHAR NO-UNDO.
  43. DEF VAR lNew AS LOG NO-UNDO.
  44. DEF VAR iLKY AS INT NO-UNDO.
  45. DEF VAR lVorEntry AS LOG NO-UNDO.
  46. DEF VAR hLastField AS HANDLE NO-UNDO.
  47. DEF VAR cAktRowId AS CHAR NO-UNDO.
  48. DEF VAR iPreisArt AS INT NO-UNDO.
  49. DEF VAR iOldRabArt AS INT NO-UNDO.
  50. DEF BUFFER BArtst FOR Artst.
  51. DEF BUFFER BAufze FOR Aufze.
  52. DEF BUFFER BAufko FOR Aufko.
  53. DEF TEMP-TABLE tAufze NO-UNDO LIKE Aufze
  54. FIELD KGebinde AS CHAR
  55. FIELD VGebinde AS CHAR
  56. FIELD GGebinde AS CHAR
  57. FIELD Knr AS INT
  58. FIELD iRecid AS RECID.
  59. DEF TEMP-TABLE sAufze NO-UNDO LIKE Aufze.
  60. DEF TEMP-TABLE eAufze NO-UNDO LIKE Aufze.
  61. {src/adm2/widgetprto.i}
  62. /* _UIB-CODE-BLOCK-END */
  63. &ANALYZE-RESUME
  64. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  65. /* ******************** Preprocessor Definitions ******************** */
  66. &Scoped-define PROCEDURE-TYPE SmartDataViewer
  67. &Scoped-define DB-AWARE no
  68. &Scoped-define ADM-CONTAINER FRAME
  69. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  70. /* Include file with RowObject temp-table definition */
  71. &Scoped-define DATA-FIELD-DEFS "d-abholze.i"
  72. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  73. &Scoped-define FRAME-NAME F-Main
  74. /* Standard List Definitions */
  75. &Scoped-Define ENABLED-FIELDS RowObject.Aktion RowObject.Inhalt ~
  76. RowObject.Jahr RowObject.Bez1 RowObject.Bez2 RowObject.Pos RowObject.Preis ~
  77. RowObject.Aufnr RowObject.Firma RowObject.Rab_Art RowObject.Rab_Wert ~
  78. RowObject.Zus_Wert RowObject.Zus_Art RowObject.KGeb_Me RowObject.FremdNr
  79. &Scoped-define ENABLED-TABLES RowObject
  80. &Scoped-define FIRST-ENABLED-TABLE RowObject
  81. &Scoped-Define ENABLED-OBJECTS F_Artnr RECT-1
  82. &Scoped-Define DISPLAYED-FIELDS RowObject.Aktion RowObject.Inhalt ~
  83. RowObject.Jahr RowObject.Bez1 RowObject.Bez2 RowObject.Pos RowObject.Preis ~
  84. RowObject.Aufnr RowObject.Firma RowObject.Rab_Art RowObject.Rab_Wert ~
  85. RowObject.Zus_Wert RowObject.Zus_Art RowObject.Artnr RowObject.KGeb_Me ~
  86. RowObject.FremdNr RowObject.PreisArt
  87. &Scoped-define DISPLAYED-TABLES RowObject
  88. &Scoped-define FIRST-DISPLAYED-TABLE RowObject
  89. &Scoped-Define DISPLAYED-OBJECTS F_Artnr
  90. /* Custom List Definitions */
  91. /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */
  92. &Scoped-define List-4 RowObject.Bez1 RowObject.Bez2
  93. &Scoped-define List-5 F_Artnr RowObject.Inhalt RowObject.Jahr
  94. &Scoped-define List-6 RowObject.Preis RowObject.Rab_Art RowObject.Rab_Wert ~
  95. RowObject.KGeb_Me
  96. /* _UIB-PREPROCESSOR-BLOCK-END */
  97. &ANALYZE-RESUME
  98. /* *********************** Control Definitions ********************** */
  99. /* Definitions of the field level widgets */
  100. DEFINE VARIABLE F_Artnr AS CHARACTER FORMAT "x(20)":U
  101. VIEW-AS FILL-IN NATIVE
  102. SIZE 14 BY 1
  103. BGCOLOR 15 NO-UNDO.
  104. DEFINE RECTANGLE RECT-1
  105. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  106. SIZE 150 BY 3.57.
  107. /* ************************ Frame Definitions *********************** */
  108. DEFINE FRAME F-Main
  109. RowObject.Aktion AT ROW 2 COL 48 COLON-ALIGNED WIDGET-ID 60
  110. VIEW-AS FILL-IN NATIVE
  111. SIZE 4 BY 1
  112. BGCOLOR 15 NO-TAB-STOP
  113. F_Artnr AT ROW 2.52 COL 1 COLON-ALIGNED NO-LABEL WIDGET-ID 50
  114. RowObject.Inhalt AT ROW 2.52 COL 16 COLON-ALIGNED NO-LABEL WIDGET-ID 30
  115. VIEW-AS FILL-IN NATIVE
  116. SIZE 8 BY 1
  117. BGCOLOR 15
  118. RowObject.Jahr AT ROW 2.52 COL 24 COLON-ALIGNED NO-LABEL WIDGET-ID 32
  119. VIEW-AS FILL-IN NATIVE
  120. SIZE 8 BY 1
  121. BGCOLOR 15
  122. RowObject.Bez1 AT ROW 2.52 COL 33 COLON-ALIGNED NO-LABEL WIDGET-ID 26
  123. VIEW-AS FILL-IN NATIVE
  124. SIZE 40 BY 1
  125. BGCOLOR 15
  126. RowObject.Bez2 AT ROW 3.52 COL 33 COLON-ALIGNED NO-LABEL WIDGET-ID 28
  127. VIEW-AS FILL-IN NATIVE
  128. SIZE 40 BY 1
  129. BGCOLOR 15
  130. RowObject.Pos AT ROW 2 COL 48 COLON-ALIGNED WIDGET-ID 58
  131. VIEW-AS FILL-IN NATIVE
  132. SIZE 4 BY 1
  133. BGCOLOR 15 NO-TAB-STOP
  134. RowObject.Preis AT ROW 2.52 COL 109 COLON-ALIGNED NO-LABEL WIDGET-ID 36
  135. VIEW-AS FILL-IN NATIVE
  136. SIZE 18 BY 1
  137. BGCOLOR 15
  138. RowObject.Aufnr AT ROW 2 COL 48 COLON-ALIGNED WIDGET-ID 54
  139. VIEW-AS FILL-IN NATIVE
  140. SIZE 4 BY 1
  141. BGCOLOR 15 NO-TAB-STOP
  142. RowObject.Firma AT ROW 2 COL 48 COLON-ALIGNED WIDGET-ID 56
  143. VIEW-AS FILL-IN NATIVE
  144. SIZE 4 BY 1
  145. BGCOLOR 15 NO-TAB-STOP
  146. RowObject.Rab_Art AT ROW 2.52 COL 128 COLON-ALIGNED NO-LABEL WIDGET-ID 38
  147. VIEW-AS COMBO-BOX
  148. LIST-ITEM-PAIRS "Kein Rabatt",0,
  149. "Prozent",1,
  150. "Betrag",2,
  151. "EP Plus",3
  152. DROP-DOWN-LIST
  153. SIZE 20 BY 1
  154. RowObject.Rab_Wert AT ROW 3.52 COL 133 COLON-ALIGNED NO-LABEL WIDGET-ID 40
  155. VIEW-AS FILL-IN NATIVE
  156. SIZE 15 BY 1
  157. BGCOLOR 15
  158. RowObject.Zus_Wert AT ROW 2 COL 48 COLON-ALIGNED WIDGET-ID 64
  159. VIEW-AS FILL-IN NATIVE
  160. SIZE 4 BY 1
  161. BGCOLOR 15 NO-TAB-STOP
  162. RowObject.Zus_Art AT ROW 2 COL 48 COLON-ALIGNED WIDGET-ID 62
  163. VIEW-AS COMBO-BOX
  164. LIST-ITEM-PAIRS "Kein Rabatt",0,
  165. "Prozent",1,
  166. "Betrag",2
  167. DROP-DOWN-LIST
  168. SIZE 4 BY 1
  169. BGCOLOR 15 NO-TAB-STOP
  170. RowObject.Artnr AT ROW 2 COL 50 COLON-ALIGNED NO-LABEL WIDGET-ID 24
  171. VIEW-AS FILL-IN NATIVE
  172. SIZE 4 BY 1
  173. BGCOLOR 15 NO-TAB-STOP
  174. RowObject.KGeb_Me AT ROW 2.52 COL 92 COLON-ALIGNED NO-LABEL WIDGET-ID 34
  175. VIEW-AS FILL-IN NATIVE
  176. SIZE 17 BY 1
  177. BGCOLOR 15 NO-TAB-STOP
  178. RowObject.FremdNr AT ROW 3.52 COL 1 COLON-ALIGNED NO-LABEL WIDGET-ID 52 FORMAT "XXXXXX.XXXX.XXXX"
  179. VIEW-AS FILL-IN NATIVE
  180. SIZE 24 BY 1
  181. BGCOLOR 15 NO-TAB-STOP
  182. RowObject.PreisArt AT ROW 2 COL 50 COLON-ALIGNED WIDGET-ID 66 FORMAT "99-"
  183. VIEW-AS FILL-IN NATIVE
  184. SIZE 4 BY 1
  185. BGCOLOR 15 NO-TAB-STOP
  186. " Menge Preis Rabatt" VIEW-AS TEXT
  187. SIZE 51 BY .81 AT ROW 1.67 COL 98.2 WIDGET-ID 48
  188. FONT 6
  189. "Artikel" VIEW-AS TEXT
  190. SIZE 15 BY .81 AT ROW 1.67 COL 3 WIDGET-ID 42
  191. FONT 6
  192. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  193. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  194. AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100.
  195. /* DEFINE FRAME statement is approaching 4K Bytes. Breaking it up */
  196. DEFINE FRAME F-Main
  197. "Inhalt / Jahr" VIEW-AS TEXT
  198. SIZE 16 BY .81 AT ROW 1.67 COL 18 WIDGET-ID 44
  199. FONT 6
  200. "Bezeichnung/Beschreibung" VIEW-AS TEXT
  201. SIZE 32 BY .81 AT ROW 1.67 COL 34 WIDGET-ID 46
  202. FONT 6
  203. RECT-1 AT ROW 1.24 COL 2 WIDGET-ID 22
  204. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  205. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  206. AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100.
  207. /* *********************** Procedure Settings ************************ */
  208. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  209. /* Settings for THIS-PROCEDURE
  210. Type: SmartDataViewer
  211. Data Source: "d-abholze.w"
  212. Allow: Basic,DB-Fields,Smart
  213. Container Links: Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  214. Frames: 1
  215. Add Fields to: Neither
  216. Other Settings: PERSISTENT-ONLY COMPILE APPSERVER
  217. Temp-Tables and Buffers:
  218. TABLE: RowObject D "?" NO-UNDO
  219. ADDITIONAL-FIELDS:
  220. {d-abholze.i}
  221. END-FIELDS.
  222. END-TABLES.
  223. */
  224. /* This procedure should always be RUN PERSISTENT. Report the error, */
  225. /* then cleanup and return. */
  226. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  227. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  228. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  229. RETURN.
  230. END.
  231. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  232. /* ************************* Create Window ************************** */
  233. &ANALYZE-SUSPEND _CREATE-WINDOW
  234. /* DESIGN Window definition (used by the UIB)
  235. CREATE WINDOW vTableWin ASSIGN
  236. HEIGHT = 4.05
  237. WIDTH = 152.
  238. /* END WINDOW DEFINITION */
  239. */
  240. &ANALYZE-RESUME
  241. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB vTableWin
  242. /* ************************* Included-Libraries *********************** */
  243. {src/adm2/viewer.i}
  244. /* _UIB-CODE-BLOCK-END */
  245. &ANALYZE-RESUME
  246. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  247. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  248. /* SETTINGS FOR WINDOW vTableWin
  249. VISIBLE,,RUN-PERSISTENT */
  250. /* SETTINGS FOR FRAME F-Main
  251. NOT-VISIBLE FRAME-NAME Size-to-Fit Custom */
  252. ASSIGN
  253. FRAME F-Main:SCROLLABLE = FALSE
  254. FRAME F-Main:HIDDEN = TRUE.
  255. ASSIGN
  256. RowObject.Aktion:HIDDEN IN FRAME F-Main = TRUE
  257. RowObject.Aktion:READ-ONLY IN FRAME F-Main = TRUE.
  258. /* SETTINGS FOR FILL-IN RowObject.Artnr IN FRAME F-Main
  259. NO-ENABLE */
  260. ASSIGN
  261. RowObject.Artnr:HIDDEN IN FRAME F-Main = TRUE
  262. RowObject.Artnr:READ-ONLY IN FRAME F-Main = TRUE.
  263. ASSIGN
  264. RowObject.Aufnr:HIDDEN IN FRAME F-Main = TRUE
  265. RowObject.Aufnr:READ-ONLY IN FRAME F-Main = TRUE.
  266. /* SETTINGS FOR FILL-IN RowObject.Bez1 IN FRAME F-Main
  267. 4 */
  268. /* SETTINGS FOR FILL-IN RowObject.Bez2 IN FRAME F-Main
  269. 4 */
  270. ASSIGN
  271. RowObject.Firma:HIDDEN IN FRAME F-Main = TRUE
  272. RowObject.Firma:READ-ONLY IN FRAME F-Main = TRUE.
  273. /* SETTINGS FOR FILL-IN RowObject.FremdNr IN FRAME F-Main
  274. EXP-FORMAT */
  275. ASSIGN
  276. RowObject.FremdNr:READ-ONLY IN FRAME F-Main = TRUE.
  277. /* SETTINGS FOR FILL-IN F_Artnr IN FRAME F-Main
  278. 5 */
  279. /* SETTINGS FOR FILL-IN RowObject.Inhalt IN FRAME F-Main
  280. 5 */
  281. /* SETTINGS FOR FILL-IN RowObject.Jahr IN FRAME F-Main
  282. 5 */
  283. /* SETTINGS FOR FILL-IN RowObject.KGeb_Me IN FRAME F-Main
  284. 6 */
  285. ASSIGN
  286. RowObject.KGeb_Me:READ-ONLY IN FRAME F-Main = TRUE.
  287. ASSIGN
  288. RowObject.Pos:HIDDEN IN FRAME F-Main = TRUE
  289. RowObject.Pos:READ-ONLY IN FRAME F-Main = TRUE.
  290. /* SETTINGS FOR FILL-IN RowObject.Preis IN FRAME F-Main
  291. 6 */
  292. /* SETTINGS FOR FILL-IN RowObject.PreisArt IN FRAME F-Main
  293. NO-ENABLE EXP-FORMAT */
  294. ASSIGN
  295. RowObject.PreisArt:HIDDEN IN FRAME F-Main = TRUE
  296. RowObject.PreisArt:READ-ONLY IN FRAME F-Main = TRUE.
  297. /* SETTINGS FOR COMBO-BOX RowObject.Rab_Art IN FRAME F-Main
  298. 6 */
  299. /* SETTINGS FOR FILL-IN RowObject.Rab_Wert IN FRAME F-Main
  300. 6 */
  301. ASSIGN
  302. RowObject.Zus_Art:HIDDEN IN FRAME F-Main = TRUE.
  303. ASSIGN
  304. RowObject.Zus_Wert:HIDDEN IN FRAME F-Main = TRUE
  305. RowObject.Zus_Wert:READ-ONLY IN FRAME F-Main = TRUE.
  306. /* _RUN-TIME-ATTRIBUTES-END */
  307. &ANALYZE-RESUME
  308. /* Setting information for Queries and Browse Widgets fields */
  309. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  310. /* Query rebuild information for FRAME F-Main
  311. _Options = "NO-LOCK"
  312. _Query is NOT OPENED
  313. */ /* FRAME F-Main */
  314. &ANALYZE-RESUME
  315. /* ************************ Control Triggers ************************ */
  316. &Scoped-define SELF-NAME RowObject.Bez1
  317. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Bez1 vTableWin
  318. ON BACK-TAB OF RowObject.Bez1 IN FRAME F-Main /* Bez1 */
  319. DO:
  320. RUN TOOLBAR IN hKontainer ( 'CANCEL' ).
  321. APPLY 'U1'.
  322. RETURN NO-APPLY.
  323. END.
  324. /* _UIB-CODE-BLOCK-END */
  325. &ANALYZE-RESUME
  326. &Scoped-define SELF-NAME F_Artnr
  327. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr vTableWin
  328. ON ALT-F OF F_Artnr IN FRAME F-Main
  329. DO:
  330. DEF VAR iArtnr AS INT NO-UNDO.
  331. DEF VAR iRecid AS RECID NO-UNDO.
  332. DEF VAR iAnzArt AS INT NO-UNDO.
  333. DEF VAR iRetVal AS INT INIT 0 NO-UNDO.
  334. DEF BUFFER bArtst FOR Artst.
  335. DEF BUFFER bArtbez FOR Artbez.
  336. IF NOT lNew THEN RETURN.
  337. RUN 'g-suchen-artikel.w':U ( F_Artnr:SCREEN-VALUE, OUTPUT iRecid ) NO-ERROR.
  338. IF iRecid = ? OR
  339. iRecid = 0 THEN DO:
  340. APPLY 'ENTRY' TO F_Artnr.
  341. RETURN.
  342. END.
  343. FIND bArtst NO-LOCK WHERE RECID(bArtst) = iRecid.
  344. ASSIGN rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr)
  345. rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt)
  346. rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr)
  347. F_Artnr :SCREEN-VALUE = STRING(bArtst.Artnr).
  348. FIND FIRST tAufze NO-ERROR.
  349. ASSIGN tAufze.Firma = Firma
  350. tAufze.Aufnr = INTEGER(rowObject.Aufnr:SCREEN-VALUE)
  351. tAufze.Artnr = bArtst.Artnr
  352. tAufze.Inhalt = bArtst.Inhalt
  353. tAufze.Jahr = bArtst.Jahr.
  354. RELEASE bArtst.
  355. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  356. iRetVal = DYNAMIC-FUNCTION ( 'fillAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR.
  357. IF iRetVal > 0 THEN DO:
  358. DYNAMIC-FUNCTION('fehlerMeldung':U, iRetVal, '' ) NO-ERROR.
  359. APPLY 'ENTRY' TO SELF.
  360. RETURN NO-APPLY.
  361. END.
  362. FIND FIRST tAufze.
  363. RUN MENGE.
  364. IF RETURN-VALUE <> '' THEN DO:
  365. APPLY 'ENTRY' TO SELF.
  366. RETURN NO-APPLY.
  367. END.
  368. FIND FIRST tAufze.
  369. RUN TEMP_TABLE_TO_SCREEN ( htAufze ).
  370. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT TRUE ).
  371. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', INPUT FALSE ).
  372. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}', INPUT FALSE ).
  373. APPLY 'ENTRY' TO rowObject.Bez1.
  374. RETURN NO-APPLY.
  375. END.
  376. /* _UIB-CODE-BLOCK-END */
  377. &ANALYZE-RESUME
  378. &Scoped-define SELF-NAME RowObject.Inhalt
  379. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Inhalt vTableWin
  380. ON END-ERROR OF RowObject.Inhalt IN FRAME F-Main /* Inhalt */
  381. DO:
  382. APPLY 'ENTRY' TO F_Artnr.
  383. RETURN NO-APPLY.
  384. END.
  385. /* _UIB-CODE-BLOCK-END */
  386. &ANALYZE-RESUME
  387. &Scoped-define SELF-NAME RowObject.Jahr
  388. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Jahr vTableWin
  389. ON END-ERROR OF RowObject.Jahr IN FRAME F-Main /* Jahr */
  390. DO:
  391. APPLY 'ENTRY' TO F_Artnr.
  392. RETURN NO-APPLY.
  393. END.
  394. /* _UIB-CODE-BLOCK-END */
  395. &ANALYZE-RESUME
  396. &Scoped-define SELF-NAME RowObject.Rab_Art
  397. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Rab_Art vTableWin
  398. ON ENTRY OF RowObject.Rab_Art IN FRAME F-Main /* Rab_Art */
  399. DO:
  400. iOldRabArt = INTEGER(SELF:SCREEN-VALUE).
  401. END.
  402. /* _UIB-CODE-BLOCK-END */
  403. &ANALYZE-RESUME
  404. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Rab_Art vTableWin
  405. ON VALUE-CHANGED OF RowObject.Rab_Art IN FRAME F-Main /* Rab_Art */
  406. DO:
  407. DEF BUFFER bArtst FOR Artst.
  408. FIND FIRST tAufze.
  409. ASSIGN tAufze.Rab_Wert = 0.0
  410. tAufze.Rab_Art = INTEGER(SELF:SCREEN-VALUE).
  411. DO WHILE TRUE:
  412. IF tAufze.Rab_Art = 0 THEN DO:
  413. rowObject.Rab_Wert:READ-ONLY = TRUE.
  414. END.
  415. ELSE DO:
  416. rowObject.Rab_Wert:READ-ONLY = FALSE.
  417. IF tAufze.Rab_Art = 3 THEN DO:
  418. FIND bArtst NO-LOCK
  419. WHERE bArtst.Firma = tAufze.Firma
  420. AND bArtst.Artnr = tAufze.Artnr
  421. AND bArtst.Inhalt = tAufze.Inhalt
  422. AND bArtst.Jahr = tAufze.Jahr.
  423. tAufze.Rab_Wert = 0.0.
  424. IF bArtst.DEP <> 0 THEN tAufze.Preis = bArtst.DEP.
  425. IF bArtst.LEP <> 0 THEN tAufze.Preis = bArtst.LEP.
  426. IF bArtst.Listen_EP <> 0 THEN tAufze.Preis = bArtst.Listen_EP.
  427. END.
  428. ELSE DO:
  429. IF iOldRabArt = 3 THEN DO:
  430. FIND FIRST tAufze.
  431. ASSIGN tAufze.Preis_Mut = FALSE
  432. tAufze.Rab_Art = tAufze.Rab_Art
  433. tAufze.Rab_Wert = 0.
  434. iPreisArt = DYNAMIC-FUNCTION('getPreisAufze':U, INPUT-OUTPUT htAufze) NO-ERROR.
  435. IF iPreisArt < 0 THEN DO:
  436. MESSAGE 'Artikel ohne Preis'
  437. VIEW-AS ALERT-BOX INFORMATION.
  438. iPreisArt = 0.
  439. END.
  440. END.
  441. END.
  442. END.
  443. iOldRabArt = tAufze.Rab_Art.
  444. LEAVE.
  445. END.
  446. RUN TEMP_TABLE_TO_SCREEN ( htAufze ).
  447. END.
  448. /* _UIB-CODE-BLOCK-END */
  449. &ANALYZE-RESUME
  450. &UNDEFINE SELF-NAME
  451. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin
  452. /* *************************** Main Block *************************** */
  453. { incl/viwmainblock.i }
  454. cUpdFields = 'KGeb_Me,Preis,Bez1,Bez2,Preis,Rab_Art,Rab_Wert'.
  455. CREATE tAufze.
  456. CREATE sAufze.
  457. CREATE eAufze.
  458. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  459. ON 'END':U OF FRAME {&FRAME-NAME} ANYWHERE
  460. DO:
  461. FMut = DYNAMIC-FUNCTION ('getMutflag':U, INPUT Progname) NO-ERROR.
  462. IF NOT FMut THEN RETURN 'APPLY'.
  463. RUN TOOLBAR IN hKontainer ( INPUT 'SAVE':U ).
  464. RETURN NO-APPLY.
  465. END.
  466. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  467. RUN initializeObject.
  468. &ENDIF
  469. /************************ INTERNAL PROCEDURES ********************/
  470. /* _UIB-CODE-BLOCK-END */
  471. &ANALYZE-RESUME
  472. /* ********************** Internal Procedures *********************** */
  473. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE addRecord vTableWin
  474. PROCEDURE addRecord :
  475. /*------------------------------------------------------------------------------
  476. Purpose: Super Override
  477. Parameters:
  478. Notes:
  479. ------------------------------------------------------------------------------*/
  480. DEF VAR cRowId AS CHAR NO-UNDO.
  481. DEF VAR iArtnr AS INT NO-UNDO.
  482. DEF VAR iAufnr AS INT NO-UNDO.
  483. DEF VAR iRecid AS RECID NO-UNDO.
  484. DEF VAR iKnr AS INT NO-UNDO.
  485. DEF VAR lJa AS LOG NO-UNDO.
  486. DEF BUFFER bAufko FOR Aufko.
  487. PUBLISH 'GET_CURRENT_ABHOLKO' ( OUTPUT iRecid, OUTPUT iAufnr ).
  488. DO WITH FRAME {&FRAME-NAME}:
  489. IF iAufnr = 0 THEN DO:
  490. RUN TOOLBAR IN hKontainer ( 'ABBRUCH' ).
  491. RUN TOOLBAR IN hKontainer ( 'CANCEL' ).
  492. RETURN NO-APPLY.
  493. END.
  494. END.
  495. FIND bAufko NO-LOCK
  496. WHERE RECID(bAufko) = iRecid.
  497. lNew = TRUE.
  498. FNeu = TRUE.
  499. FMut = TRUE.
  500. FDisp = TRUE.
  501. RUN SUPER.
  502. DO WITH FRAME {&FRAME-NAME}:
  503. EMPTY TEMP-TABLE tAufze.
  504. CREATE tAufze.
  505. ASSIGN tAufze.Firma = bAufko.Firma
  506. tAufze.Aufnr = bAufko.Aufnr
  507. tAufze.Artnr = 0
  508. tAufze.Inhalt = 0
  509. tAufze.Jahr = 0
  510. tAufze.Rab_Art = bAufko.Zei_Rab_Art
  511. tAufze.Rab_Wert = bAufko.Zei_Rab_Wert
  512. tAufze.Zus_Art = bAufko.Zuschl_Art
  513. tAufze.Zus_Wert = bAufko.Zuschl_Wert.
  514. RUN TEMP_TABLE_TO_SCREEN ( htAufze ).
  515. END.
  516. END PROCEDURE.
  517. /* _UIB-CODE-BLOCK-END */
  518. &ANALYZE-RESUME
  519. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE applyEntry vTableWin
  520. PROCEDURE applyEntry :
  521. /*------------------------------------------------------------------------------
  522. Purpose: Super Override
  523. Parameters:
  524. Notes:
  525. ------------------------------------------------------------------------------*/
  526. DEFINE INPUT PARAMETER pcField AS CHARACTER NO-UNDO.
  527. lVorEntry = TRUE.
  528. RUN SUPER( INPUT pcField).
  529. APPLY 'ENTRY' TO F_Artnr IN FRAME {&FRAME-NAME}.
  530. END PROCEDURE.
  531. /* _UIB-CODE-BLOCK-END */
  532. &ANALYZE-RESUME
  533. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin
  534. PROCEDURE cancelRecord :
  535. /*------------------------------------------------------------------------------
  536. Purpose: Super Override
  537. Parameters:
  538. Notes:
  539. ------------------------------------------------------------------------------*/
  540. FCancel = TRUE.
  541. lNew = FALSE.
  542. RUN SUPER.
  543. /* Code placed here will execute AFTER standard behavior. */
  544. END PROCEDURE.
  545. /* _UIB-CODE-BLOCK-END */
  546. &ANALYZE-RESUME
  547. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE copyRecord vTableWin
  548. PROCEDURE copyRecord :
  549. /*------------------------------------------------------------------------------
  550. Purpose: Super Override
  551. Parameters:
  552. Notes:
  553. ------------------------------------------------------------------------------*/
  554. RUN TOOLBAR IN hKontainer ('ABBRUCH') NO-ERROR.
  555. /* FNeu = TRUE. */
  556. /* FMut = TRUE. */
  557. /* FCopy = TRUE. */
  558. /* FDisp = TRUE. */
  559. /* */
  560. /* RUN SUPER. */
  561. END PROCEDURE.
  562. /* _UIB-CODE-BLOCK-END */
  563. &ANALYZE-RESUME
  564. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteRecord vTableWin
  565. PROCEDURE deleteRecord :
  566. /*------------------------------------------------------------------------------
  567. Purpose: Super Override
  568. Parameters:
  569. Notes:
  570. ------------------------------------------------------------------------------*/
  571. DEF VAR lJa AS LOG NO-UNDO.
  572. DEF VAR iRecid AS RECID NO-UNDO.
  573. DEF VAR iAufnr AS INT NO-UNDO.
  574. DEF VAR lAdmin AS LOG NO-UNDO.
  575. DEF VAR lSpez AS LOG NO-UNDO.
  576. DEF VAR cMeldung AS CHAR NO-UNDO.
  577. DEF VAR nTotal AS DEC DECIMALS 4 NO-UNDO EXTENT 15.
  578. DEF VAR cRetValue AS CHAR NO-UNDO.
  579. DEF VAR nAuftot AS DEC NO-UNDO.
  580. DEF BUFFER bAufko FOR Aufko.
  581. DEF BUFFER bAufze FOR Aufze.
  582. DEF BUFFER bRuestAuf FOR RuestAuf.
  583. lAdmin = DYNAMIC-FUNCTION('getAdmin':U) NO-ERROR.
  584. lSpez = DYNAMIC-FUNCTION('getSpez':U ) NO-ERROR.
  585. lJa = DYNAMIC-FUNCTION( 'ANTWORT_NEIN':U, INPUT 1000 ).
  586. IF NOT lJa THEN DO:
  587. RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL':U ) NO-ERROR.
  588. RETURN NO-APPLY.
  589. END.
  590. RUN 'refreshRow' IN hDaten.
  591. iRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten) NO-ERROR.
  592. FIND bAufze NO-LOCK WHERE RECID(bAufze) = iRecid.
  593. FIND bAufko NO-LOCK
  594. WHERE bAufko.Firma = bAufze.Firma
  595. AND bAufko.Aufnr = bAufze.Aufnr.
  596. iAufnr = bAufze.Aufnr.
  597. IF bAufko.Auf_Sta >= 03 AND
  598. bAufko.Auf_Sta <= 05 AND
  599. bAufko.Gedruckt AND
  600. NOT lAdmin THEN DO:
  601. MESSAGE 'Auftragszeile darf nicht mehr gelöscht werden' SKIP
  602. 'Bitte Administrator fragen! ' VIEW-AS ALERT-BOX INFORMATION.
  603. RELEASE bAufko.
  604. RELEASE bAufze.
  605. RETURN NO-APPLY.
  606. END.
  607. lJa = TRUE.
  608. FIND FIRST bRuestAuf NO-LOCK
  609. WHERE bRuestAuf.Firma = bAufko.Firma
  610. AND bRuestAuf.Aufnr = bAufko.Aufnr NO-ERROR.
  611. DO WHILE AVAILABLE bRuestAuf:
  612. FIND FIRST bRuestAuf NO-LOCK
  613. WHERE bRuestAuf.Firma = bAufko.Firma
  614. AND bRuestAuf.Aufnr = bAufko.Aufnr
  615. AND bRuestAuf.Artnr = bAufze.Artnr
  616. AND bRuestAuf.Inhalt = bAufze.Inhalt
  617. AND bRuestAuf.Jahr = bAufze.Jahr NO-ERROR.
  618. IF NOT AVAILABLE bRuestAuf THEN LEAVE.
  619. lJa = FALSE.
  620. IF bRuestAuf.lGeruestet THEN DO:
  621. cMeldung = 'Achtung!!! Artikel ist bereits gerüstet!!!'
  622. + CHR(10)
  623. + 'Unbedingt im Lager melden, dass der Artikel wieder zurück muss!'
  624. + CHR(10)
  625. + 'Trotzdem löschen?'.
  626. MESSAGE cMeldung VIEW-AS ALERT-BOX QUESTION
  627. BUTTONS YES-NO
  628. UPDATE lJa.
  629. LEAVE.
  630. END.
  631. IF bRuestAuf.lRSGedruckt THEN DO:
  632. cMeldung = 'Achtung!!! Rüstschein neu Drucken!'
  633. + CHR(10)
  634. + 'Meldung an Lager, dass der Alte vernichtet werden soll'.
  635. MESSAGE cMeldung VIEW-AS ALERT-BOX.
  636. END.
  637. lJa = TRUE.
  638. LEAVE.
  639. END.
  640. IF NOT lJa THEN DO:
  641. RUN TOOLBAR IN hKontainer ( 'ABBRUCH' ) NO-ERROR.
  642. RUN TOOLBAR IN hKontainer ( 'CANCEL' ) NO-ERROR.
  643. RELEASE bAufko.
  644. RETURN NO-APPLY.
  645. END.
  646. RUN SUPER.
  647. FIND bAufko NO-LOCK
  648. WHERE bAufko.Firma = tAufze.Firma
  649. AND bAufko.Aufnr = tAufze.Aufnr NO-ERROR.
  650. nAufTot = bAufko.Auf_Tot.
  651. cRetValue = DYNAMIC-FUNCTION('calculateAuftragsTotal':U, Firma, iAufnr, OUTPUT nTotal ) NO-ERROR.
  652. IF nAufTot <> nTotal[10] THEN DYNAMIC-FUNCTION('setAufkoDruckFlag':U, tAufze.Firma, tAufze.Aufnr, FALSE ) NO-ERROR.
  653. PUBLISH 'refreshAbholKo'.
  654. END PROCEDURE.
  655. /* _UIB-CODE-BLOCK-END */
  656. &ANALYZE-RESUME
  657. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin
  658. PROCEDURE disableFields :
  659. /*------------------------------------------------------------------------------
  660. Purpose: Super Override
  661. Parameters:
  662. Notes:
  663. ------------------------------------------------------------------------------*/
  664. DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO.
  665. DO WITH FRAME {&FRAME-NAME}:
  666. END.
  667. RUN SUPER( INPUT pcFieldType).
  668. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  669. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  670. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  671. RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT 15 ).
  672. END.
  673. DO WITH FRAME {&FRAME-NAME}:
  674. F_Artnr:READ-ONLY = TRUE.
  675. END.
  676. END PROCEDURE.
  677. /* _UIB-CODE-BLOCK-END */
  678. &ANALYZE-RESUME
  679. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI vTableWin _DEFAULT-DISABLE
  680. PROCEDURE disable_UI :
  681. /*------------------------------------------------------------------------------
  682. Purpose: DISABLE the User Interface
  683. Parameters: <none>
  684. Notes: Here we clean-up the user-interface by deleting
  685. dynamic widgets we have created and/or hide
  686. frames. This procedure is usually called when
  687. we are ready to "clean-up" after running.
  688. ------------------------------------------------------------------------------*/
  689. /* Hide all frames. */
  690. HIDE FRAME F-Main.
  691. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  692. END PROCEDURE.
  693. /* _UIB-CODE-BLOCK-END */
  694. &ANALYZE-RESUME
  695. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE displayFields vTableWin
  696. PROCEDURE displayFields :
  697. /*------------------------------------------------------------------------------
  698. Purpose: Super Override
  699. Parameters:
  700. Notes:
  701. ------------------------------------------------------------------------------*/
  702. DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  703. DEF VAR iArtnr AS INT NO-UNDO.
  704. IF NOT FDisp THEN DO:
  705. FDisp = TRUE.
  706. RETURN.
  707. END.
  708. cAktRowId = ENTRY(1, pcColValues, CHR(01)).
  709. IF FCancel THEN pcColValues = OldColValues.
  710. IF NOT FNeu THEN OldColValues = pcColValues.
  711. OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
  712. IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ).
  713. DO WITH FRAME {&FRAME-NAME}:
  714. END.
  715. RUN SUPER( INPUT pcColValues).
  716. iArtnr = INTEGER(rowObject.Artnr:SCREEN-VALUE) NO-ERROR.
  717. FCancel = FALSE.
  718. DO WITH FRAME {&FRAME-NAME}:
  719. F_Artnr:SCREEN-VALUE = (IF iArtnr = 0 THEN '' ELSE rowObject.Artnr:SCREEN-VALUE) NO-ERROR.
  720. /* IF NOT FCancel AND */
  721. /* lNew THEN F_Artnr:SCREEN-VALUE = ''. */
  722. IF INTEGER(rowObject.PreisArt:SCREEN-VALUE) >= 3 AND
  723. INTEGER(rowObject.PreisArt:SCREEN-VALUE) <= 4 THEN rowObject.Preis:BGCOLOR = 11.
  724. ELSE rowObject.Preis:BGCOLOR = 15.
  725. END.
  726. END PROCEDURE.
  727. /* _UIB-CODE-BLOCK-END */
  728. &ANALYZE-RESUME
  729. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin
  730. PROCEDURE enableFields :
  731. /*------------------------------------------------------------------------------
  732. Purpose: Super Override
  733. Parameters:
  734. Notes:
  735. ------------------------------------------------------------------------------*/
  736. /* Code placed here will execute PRIOR to standard behavior. */
  737. /*
  738. RUN SUPER.
  739. */
  740. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  741. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ).
  742. IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN DO:
  743. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ).
  744. END.
  745. DO WITH FRAME {&FRAME-NAME}:
  746. END.
  747. IF lNew THEN DO:
  748. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', INPUT TRUE ).
  749. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}', INPUT TRUE ).
  750. F_Artnr:READ-ONLY = FALSE.
  751. RETURN.
  752. END.
  753. ELSE DO:
  754. iArtnr = INTEGER(rowObject.Artnr:SCREEN-VALUE) NO-ERROR.
  755. IF iArtnr = 0 THEN RUN READONLY_FELDER ( INPUT Fenster, '{&List-5}', INPUT TRUE ).
  756. END.
  757. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  758. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  759. END.
  760. END PROCEDURE.
  761. /* _UIB-CODE-BLOCK-END */
  762. &ANALYZE-RESUME
  763. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin
  764. PROCEDURE enableObject :
  765. /*------------------------------------------------------------------------------
  766. Purpose: Super Override
  767. Parameters:
  768. Notes:
  769. ------------------------------------------------------------------------------*/
  770. /* Code placed here will execute PRIOR to standard behavior. */
  771. RUN SUPER.
  772. { incl/viwenableobject.i }
  773. END PROCEDURE.
  774. /* _UIB-CODE-BLOCK-END */
  775. &ANALYZE-RESUME
  776. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin
  777. PROCEDURE ENTRY_FELD_TEST :
  778. /*------------------------------------------------------------------------------
  779. Purpose:
  780. Parameters: <none>
  781. Notes:
  782. ------------------------------------------------------------------------------*/
  783. { incl/viwentryfeldtest.i }
  784. IF lVorEntry THEN DO:
  785. lVorEntry = FALSE.
  786. RETURN.
  787. END.
  788. FIND FIRST tAufze.
  789. DO WHILE NOT FNeu WITH FRAME {&FRAME-NAME}:
  790. CASE FeldName:
  791. WHEN 'F_Artnr' OR
  792. WHEN 'Inhalt' OR
  793. WHEN 'Jahr' THEN DO:
  794. APPLY 'TAB' TO SELF.
  795. RETURN 'APPLY'.
  796. END.
  797. WHEN 'Preis' THEN DO:
  798. SELF:MODIFIED = FALSE.
  799. IF tAufze.Preis_Mut THEN DO:
  800. RUN MELDUNG ( 1065 ).
  801. END.
  802. END.
  803. WHEN 'Rab_Art' OR
  804. WHEN 'Rab_Wert' THEN DO:
  805. SELF:MODIFIED = FALSE.
  806. END.
  807. END CASE.
  808. LEAVE.
  809. END.
  810. RETURN ''.
  811. END PROCEDURE.
  812. /* _UIB-CODE-BLOCK-END */
  813. &ANALYZE-RESUME
  814. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FEHLWERTE vTableWin
  815. PROCEDURE FEHLWERTE :
  816. /*------------------------------------------------------------------------------
  817. Purpose:
  818. Parameters: <none>
  819. Notes:
  820. ------------------------------------------------------------------------------*/
  821. DEF INPUT-OUTPUT PARAMETER pcColValues AS CHAR NO-UNDO.
  822. DEF VAR i1 AS INT NO-UNDO.
  823. IF FCancel THEN RETURN.
  824. IF NOT FCopy THEN DO WITH FRAME {&FRAME-NAME}:
  825. /* i1 = LOOKUP('Feld', oldColList, ',') + 1. */
  826. /* ENTRY(i1, pcColValues, CHR(1)) = 'Fehlwert' NO-ERROR. */
  827. END.
  828. IF FCopy THEN DO:
  829. END.
  830. END PROCEDURE.
  831. /* _UIB-CODE-BLOCK-END */
  832. &ANALYZE-RESUME
  833. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FRAME_TO_BUFFER vTableWin
  834. PROCEDURE FRAME_TO_BUFFER :
  835. /*------------------------------------------------------------------------------
  836. Purpose:
  837. Parameters: <none>
  838. Notes:
  839. ------------------------------------------------------------------------------*/
  840. DEF VAR ii AS INT NO-UNDO.
  841. DEF VAR hFelder AS HANDLE NO-UNDO.
  842. DEF VAR hFeld AS HANDLE NO-UNDO.
  843. FIND FIRST tAufze.
  844. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  845. hFelder = Fenster:FIRST-CHILD.
  846. DO WHILE VALID-HANDLE (hFelder) :
  847. DO WHILE TRUE:
  848. IF hFelder:TYPE = 'RECTANGLE' THEN LEAVE.
  849. IF hFelder:TYPE = 'LITERAL' THEN LEAVE.
  850. IF hFelder:NAME = ? THEN LEAVE.
  851. ii = LOOKUP(hFelder:NAME, cUpdFields, ',').
  852. IF ii = 0 THEN LEAVE.
  853. hFeld = htAufze:BUFFER-FIELD(hFelder:NAME) NO-ERROR.
  854. IF NOT VALID-HANDLE ( hFeld ) THEN LEAVE.
  855. CASE hFeld:DATA-TYPE:
  856. WHEN 'logical' THEN DO:
  857. IF hFeld:SCREEN-VALUE BEGINS '0' OR
  858. hFeld:SCREEN-VALUE BEGINS 'n'
  859. THEN hFeld:BUFFER-VALUE = STRING(FALSE).
  860. ELSE hFeld:BUFFER-VALUE = STRING(TRUE).
  861. END.
  862. OTHERWISE DO:
  863. hFeld:BUFFER-VALUE = hFelder:SCREEN-VALUE.
  864. END.
  865. END CASE.
  866. LEAVE.
  867. END.
  868. hFelder = hFelder:NEXT-SIBLING.
  869. END.
  870. DO WITH FRAME {&FRAME-NAME}:
  871. /*
  872. rowObject.Preis :MODIFIED = FALSE.
  873. rowObject.Rab_Art :MODIFIED = FALSE.
  874. rowObject.Rab_Wert:MODIFIED = FALSE.
  875. rowObject.Zus_Art :MODIFIED = FALSE.
  876. rowObject.Zus_Wert:MODIFIED = FALSE.
  877. */
  878. IF rowObject.Aktion:SCREEN-VALUE BEGINS 'n'
  879. THEN rowObject.Preis:BGCOLOR = 15.
  880. ELSE rowObject.Preis:BGCOLOR = 14.
  881. END.
  882. END PROCEDURE.
  883. /* _UIB-CODE-BLOCK-END */
  884. &ANALYZE-RESUME
  885. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDEKONTI_ERMITTELN vTableWin
  886. PROCEDURE GEBINDEKONTI_ERMITTELN :
  887. /*------------------------------------------------------------------------------
  888. Purpose:
  889. Parameters: <none>
  890. Notes:
  891. ------------------------------------------------------------------------------*/
  892. FIND FIRST tAufze.
  893. FIND GGebinde
  894. WHERE GGebinde.Firma = Firma
  895. AND GGebinde.Geb_Cd = tAufze.GGeb_Cd NO-LOCK NO-ERROR.
  896. DO WHILE TRUE:
  897. IF NOT AVAILABLE GGebinde THEN DO:
  898. RUN FEHLER ( INPUT 332 ).
  899. RETURN 'FEHLER'.
  900. END.
  901. IF GGebinde.Geb_Kto = '' THEN LEAVE.
  902. FIND GebKonto USE-INDEX GebKonto-k1
  903. WHERE GebKonto.Firma = Firma
  904. AND GebKonto.Geb_Cd = GGebinde.Geb_Kto NO-LOCK NO-ERROR.
  905. IF NOT AVAILABLE GebKonto THEN DO:
  906. RUN FEHLER ( INPUT 333 ).
  907. RETURN 'FEHLER'.
  908. END.
  909. tAufze.GGebKto = GebKonto.Geb_Cd.
  910. LEAVE.
  911. END.
  912. FIND VGebinde WHERE VGebinde.Firma = Firma
  913. AND VGebinde.Geb_Cd = tAufze.VGeb_Cd NO-LOCK NO-ERROR.
  914. DO WHILE TRUE:
  915. IF NOT AVAILABLE VGebinde THEN DO:
  916. RUN FEHLER ( INPUT 336 ).
  917. RETURN 'FEHLER'.
  918. END.
  919. IF VGebinde.Geb_Kto = '' THEN LEAVE.
  920. FIND GebKonto USE-INDEX GebKonto-k1
  921. WHERE GebKonto.Firma = Firma
  922. AND GebKonto.Geb_Cd = VGebinde.Geb_Kto NO-LOCK NO-ERROR.
  923. IF NOT AVAILABLE GebKonto THEN DO:
  924. RUN FEHLER ( INPUT 337 ).
  925. RETURN 'FEHLER'.
  926. END.
  927. tAufze.VGebKto = GebKonto.Geb_Cd.
  928. LEAVE.
  929. END.
  930. FIND KGebinde WHERE KGebinde.Firma = Firma
  931. AND KGebinde.Geb_Cd = tAufze.KGeb_Cd NO-LOCK NO-ERROR.
  932. DO WHILE TRUE:
  933. IF NOT AVAILABLE KGebinde THEN DO:
  934. RUN FEHLER ( INPUT 338 ).
  935. RETURN 'FEHLER'.
  936. END.
  937. IF KGebinde.Geb_Kto = '' THEN LEAVE.
  938. FIND GebKonto USE-INDEX GebKonto-k1
  939. WHERE GebKonto.Firma = Firma
  940. AND GebKonto.Geb_Cd = KGebinde.Geb_Kto NO-LOCK NO-ERROR.
  941. IF NOT AVAILABLE GebKonto THEN DO:
  942. RUN FEHLER ( INPUT 1078 ).
  943. RETURN 'FEHLER'.
  944. END.
  945. tAufze.KGebKto = GebKonto.Geb_Cd.
  946. LEAVE.
  947. END.
  948. RETURN ''.
  949. END PROCEDURE.
  950. /* _UIB-CODE-BLOCK-END */
  951. &ANALYZE-RESUME
  952. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_ARTNR vTableWin
  953. PROCEDURE LEAVE_ARTNR :
  954. /*------------------------------------------------------------------------------
  955. Purpose:
  956. Parameters: <none>
  957. Notes:
  958. ------------------------------------------------------------------------------*/
  959. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  960. DEF VAR iArtnr AS INT NO-UNDO.
  961. DEF VAR iRecid AS RECID NO-UNDO.
  962. DEF VAR iAnzArt AS INT NO-UNDO.
  963. DEF VAR iRetVal AS INT INIT 0 NO-UNDO.
  964. DEF VAR lRetVal AS LOG NO-UNDO.
  965. DEF BUFFER bArtst FOR Artst.
  966. DEF BUFFER bArtbez FOR Artbez.
  967. iLKY = LASTKEY.
  968. iAnzArt = 0.
  969. iRecid = 0.
  970. DO WITH FRAME {&FRAME-NAME}:
  971. /* ---------------------------------------------------------- */
  972. /* Artikelnummer = Leer -> Nur Text-Eingabe */
  973. /* ---------------------------------------------------------- */
  974. IF ipHandle:SCREEN-VALUE = '' THEN DO WITH FRAME {&FRAME-NAME}:
  975. F_Artnr :SCREEN-VALUE = ''.
  976. rowObject.Inhalt:SCREEN-VALUE = ''.
  977. rowObject.Jahr :SCREEN-VALUE = ''.
  978. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', INPUT FALSE ).
  979. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT TRUE ).
  980. EMPTY TEMP-TABLE tAufze.
  981. CREATE tAufze.
  982. ASSIGN tAufze.Firma = Firma
  983. tAufze.Aufnr = INTEGER(rowObject.Aufnr:SCREEN-VALUE)
  984. tAufze.Artnr = 0
  985. tAufze.Inhalt = 0
  986. tAufze.Jahr = 0
  987. tAufze.Rab_Art = 0
  988. tAUfze.Rab_Wert = 0.0
  989. tAufze.Zus_Art = 0
  990. tAUfze.Zus_Wert = 0.0
  991. tAufze.Preis_Mut = FALSE.
  992. lVorEntry = TRUE.
  993. APPLY 'ENTRY' TO rowObject.Bez1.
  994. RETURN 'APPLY'.
  995. END.
  996. A000:
  997. REPEAT WHILE TRUE:
  998. iArtnr = INTEGER(ipHandle:SCREEN-VALUE) NO-ERROR.
  999. IF ERROR-STATUS:ERROR THEN LEAVE.
  1000. FOR EACH bArtst NO-LOCK
  1001. WHERE bArtst.Firma = Firma
  1002. AND bArtst.Artnr = iArtnr
  1003. AND bArtst.Aktiv = TRUE
  1004. AND bArtst.Ausverk < 9 :
  1005. iAnzArt = iAnzArt + 1.
  1006. IF iAnzArt > 1 THEN LEAVE A000.
  1007. ASSIGN iRecid = RECID(bArtst).
  1008. RELEASE bArtst.
  1009. END.
  1010. LEAVE.
  1011. END.
  1012. DO WHILE TRUE:
  1013. IF iAnzArt = 1 THEN LEAVE.
  1014. IF iLKY = 9 AND
  1015. iAnzArt > 0 THEN LEAVE.
  1016. RUN 'g-suchen-artikel.w':U ( F_Artnr:SCREEN-VALUE, OUTPUT iRecid ) NO-ERROR.
  1017. IF iRecid = ? OR
  1018. iRecid = 0 THEN DO:
  1019. APPLY 'ENTRY' TO F_Artnr.
  1020. RETURN 'APPLY'.
  1021. END.
  1022. LEAVE.
  1023. END.
  1024. FIND bArtst NO-LOCK WHERE RECID(bArtst) = iRecid.
  1025. IF NOT bArtst.Aktiv THEN DO:
  1026. DYNAMIC-FUNCTION('fehlerMeldung':U, 1052, '' ) NO-ERROR.
  1027. APPLY 'ENTRY' TO F_Artnr.
  1028. RETURN 'APPLY'.
  1029. END.
  1030. IF bArtst.Ausverk = 9 THEN DO:
  1031. lRetVal = DYNAMIC-FUNCTION('ANTWORT_NEIN':U, 1053, '' ) NO-ERROR.
  1032. IF NOT lRetVal THEN DO:
  1033. APPLY 'ENTRY' TO F_Artnr.
  1034. RETURN 'APPLY'.
  1035. END.
  1036. END.
  1037. ASSIGN rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr)
  1038. rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt)
  1039. rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr)
  1040. F_Artnr :SCREEN-VALUE = STRING(bArtst.Artnr)
  1041. ipHandle :SCREEN-VALUE = STRING(bArtst.Artnr).
  1042. FIND FIRST tAufze NO-ERROR.
  1043. ASSIGN tAufze.Firma = Firma
  1044. tAufze.Aufnr = INTEGER(rowObject.Aufnr:SCREEN-VALUE)
  1045. tAufze.Artnr = bArtst.Artnr
  1046. tAufze.Inhalt = bArtst.Inhalt
  1047. tAufze.Jahr = bArtst.Jahr.
  1048. RELEASE bArtst.
  1049. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  1050. iRetVal = DYNAMIC-FUNCTION ( 'fillAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR.
  1051. IF iRetVal > 0 THEN DO:
  1052. DYNAMIC-FUNCTION('fehlerMeldung':U, iRetVal, '' ) NO-ERROR.
  1053. APPLY 'ENTRY' TO ipHandle.
  1054. RETURN 'APPLY'.
  1055. END.
  1056. IF iLKY = 09 AND
  1057. iAnzArt > 1 THEN DO:
  1058. RUN TEMP_TABLE_TO_SCREEN ( htAufze ).
  1059. APPLY 'ENTRY' TO rowObject.Inhalt.
  1060. RETURN 'APPLY'.
  1061. END.
  1062. RUN MENGE.
  1063. IF RETURN-VALUE <> '' THEN DO:
  1064. APPLY 'ENTRY' TO ipHandle.
  1065. RETURN 'APPLY'.
  1066. END.
  1067. FIND FIRST tAufze.
  1068. RUN TEMP_TABLE_TO_SCREEN ( htAufze ).
  1069. F_Artnr:SCREEN-VALUE = STRING(tAufze.Artnr).
  1070. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', (IF tAufze.Artnr > 0 THEN FALSE ELSE TRUE) ).
  1071. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}', INPUT FALSE ).
  1072. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT TRUE ).
  1073. APPLY 'ENTRY' TO rowObject.Bez1.
  1074. RETURN 'APPLY'.
  1075. END.
  1076. END PROCEDURE.
  1077. /* _UIB-CODE-BLOCK-END */
  1078. &ANALYZE-RESUME
  1079. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_FELD_TEST vTableWin
  1080. PROCEDURE LEAVE_FELD_TEST :
  1081. /*------------------------------------------------------------------------------
  1082. Purpose:
  1083. Parameters: <none>
  1084. Notes:
  1085. ------------------------------------------------------------------------------*/
  1086. { incl/viwleavefeldtest.i }
  1087. DEF VAR lJa AS LOG NO-UNDO.
  1088. DEF VAR cFeld AS CHAR NO-UNDO.
  1089. DEF VAR iRabArt AS INT NO-UNDO.
  1090. DEF VAR nPreis AS DEC DECIMALS 4 NO-UNDO.
  1091. DEF VAR hWiType AS CHAR NO-UNDO.
  1092. DEF BUFFER bArtst FOR Artst.
  1093. FeldName = ipHandle:NAME.
  1094. hLastField = hLEAVE.
  1095. FIND FIRST tAufze.
  1096. DO WHILE FNeu WITH FRAME {&FRAME-NAME}:
  1097. CASE FeldName:
  1098. WHEN 'F_Artnr' THEN DO:
  1099. RUN LEAVE_ARTNR (SELF:HANDLE).
  1100. RETURN RETURN-VALUE.
  1101. END.
  1102. WHEN 'Inhalt' THEN DO:
  1103. RUN LEAVE_INHALT (SELF:HANDLE).
  1104. RETURN RETURN-VALUE.
  1105. END.
  1106. WHEN 'Jahr' THEN DO:
  1107. RUN LEAVE_JAHR (SELF:HANDLE).
  1108. RETURN RETURN-VALUE.
  1109. END.
  1110. END CASE.
  1111. LEAVE.
  1112. END.
  1113. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  1114. CASE FeldName:
  1115. WHEN 'Jahr' THEN DO:
  1116. IF tAufze.Artnr = 0 THEN DO:
  1117. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', INPUT FALSE ).
  1118. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT TRUE ).
  1119. APPLY 'ENTRY' TO rowObject.Bez1.
  1120. RETURN 'APPLY'.
  1121. END.
  1122. ELSE DO:
  1123. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', INPUT FALSE ).
  1124. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}', INPUT FALSE ).
  1125. RUN MENGE.
  1126. IF RETURN-VALUE <> '' THEN DO:
  1127. RUN TOOLBAR IN hKontainer ( 'CANCEL' ).
  1128. APPLY 'U1'.
  1129. RETURN 'APPLY'.
  1130. END.
  1131. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT TRUE ).
  1132. FIND FIRST tAufze.
  1133. RUN TEMP_TABLE_TO_SCREEN ( htAufze ).
  1134. APPLY 'ENTRY' TO rowObject.Bez1.
  1135. RETURN 'APPLY'.
  1136. END.
  1137. END.
  1138. WHEN 'Preis' THEN DO:
  1139. IF tAufze.Artnr > 0 AND
  1140. DECIMAL(SELF:SCREEN-VALUE) = 0.00 THEN DO:
  1141. lJa = DYNAMIC-FUNCTION('ANTWORT_NEIN':U, 0329 ) NO-ERROR.
  1142. IF NOT lJa THEN RETURN 'ERROR'.
  1143. tAufze.Preis_Mut = TRUE.
  1144. END.
  1145. IF SELF:MODIFIED THEN tAufze.Preis_Mut = TRUE.
  1146. IF DECIMAL(SELF:SCREEN-VALUE) = 0.00 THEN DO:
  1147. ASSIGN tAufze.Rab_Art = 0
  1148. tAufze.Rab_Wert = 0.0
  1149. tAufze.Zus_Art = 0
  1150. tAufze.Zus_Wert = 0.0
  1151. tAufze.Aktion = FALSE
  1152. tAufze.Aktion_Text = ''
  1153. tAufze.Preis = 0.
  1154. RUN TEMP_TABLE_TO_SCREEN ( htAufze ).
  1155. END.
  1156. END.
  1157. WHEN 'Rab_Art' THEN DO:
  1158. iRabArt = INTEGER(SELF:SCREEN-VALUE).
  1159. CASE iRabArt:
  1160. WHEN 3 THEN DO:
  1161. IF SELF:MODIFIED THEN DO:
  1162. FIND bArtst NO-LOCK OF tAufze.
  1163. IF bArtst.DEP <> 0 THEN nPreis = bArtst.DEP.
  1164. IF bArtst.LEP <> 0 THEN nPreis = bArtst.LEP.
  1165. IF bArtst.Listen_EP <> 0 THEN nPreis = bArtst.Listen_EP.
  1166. rowObject.Preis :SCREEN-VALUE = STRING(nPreis).
  1167. rowObject.Rab_Wert:SCREEN-VALUE = STRING(0.0).
  1168. RELEASE bArtst.
  1169. END.
  1170. END.
  1171. END.
  1172. END.
  1173. WHEN 'Rab_Art' OR
  1174. WHEN 'Rab_Wert' THEN DO:
  1175. IF SELF:MODIFIED THEN DO:
  1176. ASSIGN tAufze.Preis_Mut = TRUE
  1177. tAufze.Aktion = FALSE
  1178. tAufze.Aktion_Text = ''.
  1179. END.
  1180. END.
  1181. END.
  1182. LEAVE.
  1183. END.
  1184. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  1185. IF NOT SELF:MODIFIED THEN LEAVE.
  1186. IF FeldName = 'F_Artnr' THEN RETURN.
  1187. hWiType = SELF:TYPE.
  1188. CASE hWiType:
  1189. WHEN 'FILL-IN' THEN DO:
  1190. IF NOT SELF:READ-ONLY THEN DO:
  1191. FIND FIRST tAufze.
  1192. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  1193. htAufze:BUFFER-FIELD(FeldName):BUFFER-VALUE = SELF:SCREEN-VALUE.
  1194. END.
  1195. END.
  1196. WHEN 'COMBO-BOX' THEN DO:
  1197. IF SELF:SENSITIVE THEN DO:
  1198. FIND FIRST tAufze.
  1199. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  1200. htAufze:BUFFER-FIELD(FeldName):BUFFER-VALUE = SELF:SCREEN-VALUE.
  1201. END.
  1202. END.
  1203. END CASE.
  1204. CASE FeldName:
  1205. END CASE.
  1206. LEAVE.
  1207. END.
  1208. IF LOOKUP(FeldName, '{&LETZTES_FELD}', ',') > 0 THEN DO:
  1209. DO WHILE TRUE:
  1210. IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE.
  1211. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE.
  1212. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE.
  1213. RETURN ''.
  1214. END.
  1215. APPLY 'ALT-S'.
  1216. RETURN 'APPLY'.
  1217. END.
  1218. RETURN ''.
  1219. END PROCEDURE.
  1220. /* _UIB-CODE-BLOCK-END */
  1221. &ANALYZE-RESUME
  1222. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_INHALT vTableWin
  1223. PROCEDURE LEAVE_INHALT :
  1224. /*------------------------------------------------------------------------------
  1225. Purpose:
  1226. Parameters: <none>
  1227. Notes:
  1228. ------------------------------------------------------------------------------*/
  1229. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  1230. DEF VAR iArtnr AS INT NO-UNDO.
  1231. DEF VAR iInhalt AS INT NO-UNDO.
  1232. DEF VAR iRecid AS RECID NO-UNDO.
  1233. DEF VAR iAnzArt AS INT NO-UNDO.
  1234. DEF VAR lFehler AS LOG INIT FALSE NO-UNDO.
  1235. DEF VAR iRetVal AS INT INIT 0 NO-UNDO.
  1236. DEF BUFFER bArtst FOR Artst.
  1237. DEF BUFFER bArtbez FOR Artbez.
  1238. DO WITH FRAME {&FRAME-NAME}:
  1239. iLKY = LASTKEY.
  1240. iAnzArt = 0.
  1241. iRecid = 0.
  1242. IF KEYFUNCTION(iLKY) = 'END-ERROR' THEN RETURN.
  1243. IF KEYFUNCTION(iLKY) = 'BACK-TAB' THEN RETURN.
  1244. IF KEYLABEL (iLKY) BEGINS 'MOUSE' THEN DO:
  1245. APPLY 'ENTRY' TO F_Artnr.
  1246. RETURN 'APPLY'.
  1247. END.
  1248. A000:
  1249. REPEAT WHILE TRUE:
  1250. iArtnr = INTEGER(F_Artnr:SCREEN-VALUE) NO-ERROR.
  1251. IF ERROR-STATUS:ERROR THEN LEAVE.
  1252. iInhalt = INTEGER(ipHandle:SCREEN-VALUE) NO-ERROR.
  1253. FOR EACH bArtst NO-LOCK
  1254. WHERE bArtst.Firma = Firma
  1255. AND bArtst.Artnr = iArtnr
  1256. AND bArtst.Inhalt = iInhalt
  1257. AND bArtst.Aktiv = TRUE
  1258. AND bArtst.Ausverk < 9 :
  1259. iAnzArt = iAnzArt + 1.
  1260. IF iAnzArt > 1 THEN LEAVE A000.
  1261. ASSIGN iRecid = RECID(bArtst).
  1262. RELEASE bArtst.
  1263. END.
  1264. LEAVE.
  1265. END.
  1266. DO WHILE TRUE:
  1267. IF iAnzArt = 1 THEN LEAVE.
  1268. IF iLKY = 9 AND
  1269. iAnzArt > 0 THEN LEAVE.
  1270. RUN 'g-suchen-artikel.w':U ( F_Artnr:SCREEN-VALUE, OUTPUT iRecid ) NO-ERROR.
  1271. IF iRecid = ? OR
  1272. iRecid = 0 THEN DO:
  1273. APPLY 'ENTRY' TO F_Artnr.
  1274. RETURN 'APPLY'.
  1275. END.
  1276. LEAVE.
  1277. END.
  1278. FIND bArtst NO-LOCK WHERE RECID(bArtst) = iRecid.
  1279. ASSIGN rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr)
  1280. rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt)
  1281. rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr)
  1282. F_Artnr :SCREEN-VALUE = STRING(bArtst.Artnr).
  1283. FIND FIRST tAufze NO-ERROR.
  1284. ASSIGN tAufze.Firma = Firma
  1285. tAufze.Aufnr = INTEGER(rowObject.Aufnr:SCREEN-VALUE)
  1286. tAufze.Artnr = bArtst.Artnr
  1287. tAufze.Inhalt = bArtst.Inhalt
  1288. tAufze.Jahr = bArtst.Jahr.
  1289. RELEASE bArtst.
  1290. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  1291. iRetVal = DYNAMIC-FUNCTION ( 'fillAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR.
  1292. IF iRetVal > 0 THEN DO:
  1293. DYNAMIC-FUNCTION('fehlerMeldung':U, iRetVal, '' ) NO-ERROR.
  1294. APPLY 'ENTRY' TO ipHandle.
  1295. RETURN 'APPLY'.
  1296. END.
  1297. IF iLKY = 09 AND
  1298. iAnzArt > 1 THEN DO:
  1299. RUN TEMP_TABLE_TO_SCREEN ( htAufze ).
  1300. RETURN.
  1301. END.
  1302. RUN MENGE.
  1303. IF RETURN-VALUE <> '' THEN DO:
  1304. APPLY 'ENTRY' TO ipHandle.
  1305. RETURN 'APPLY'.
  1306. END.
  1307. FIND FIRST tAufze.
  1308. RUN TEMP_TABLE_TO_SCREEN ( htAufze ).
  1309. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', (IF tAufze.Artnr > 0 THEN FALSE ELSE TRUE) ).
  1310. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}', INPUT FALSE ).
  1311. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT TRUE ).
  1312. APPLY 'ENTRY' TO rowObject.Bez1.
  1313. RETURN 'APPLY'.
  1314. END.
  1315. END PROCEDURE.
  1316. /* _UIB-CODE-BLOCK-END */
  1317. &ANALYZE-RESUME
  1318. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_JAHR vTableWin
  1319. PROCEDURE LEAVE_JAHR :
  1320. /*------------------------------------------------------------------------------
  1321. Purpose:
  1322. Parameters: <none>
  1323. Notes:
  1324. ------------------------------------------------------------------------------*/
  1325. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  1326. DEF VAR iArtnr AS INT NO-UNDO.
  1327. DEF VAR iInhalt AS INT NO-UNDO.
  1328. DEF VAR iJahr AS INT NO-UNDO.
  1329. DEF VAR iAnzArt AS INT NO-UNDO.
  1330. DEF VAR iRecid AS RECID NO-UNDO.
  1331. DEF VAR iRetVal AS INT NO-UNDO.
  1332. DEF BUFFER bArtst FOR Artst.
  1333. DEF BUFFER bArtbez FOR Artbez.
  1334. DO WITH FRAME {&FRAME-NAME}:
  1335. iLKY = LASTKEY.
  1336. iAnzArt = 0.
  1337. iRecid = 0.
  1338. IF KEYFUNCTION(iLKY) = 'END-ERROR' THEN RETURN.
  1339. IF KEYFUNCTION(iLKY) = 'BACK-TAB' THEN RETURN.
  1340. IF KEYLABEL (iLKY) BEGINS 'MOUSE' THEN DO:
  1341. APPLY 'ENTRY' TO rowObject.Inhalt.
  1342. RETURN 'APPLY'.
  1343. END.
  1344. A000:
  1345. REPEAT WHILE TRUE:
  1346. iArtnr = INTEGER(F_Artnr:SCREEN-VALUE) NO-ERROR.
  1347. IF ERROR-STATUS:ERROR THEN LEAVE.
  1348. iInhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE) NO-ERROR.
  1349. iJahr = INTEGER(ipHandle:SCREEN-VALUE) NO-ERROR.
  1350. FOR EACH bArtst NO-LOCK
  1351. WHERE bArtst.Firma = Firma
  1352. AND bArtst.Artnr = iArtnr
  1353. AND bArtst.Inhalt = iInhalt
  1354. AND bArtst.Jahr = iJahr
  1355. AND bArtst.Aktiv = TRUE
  1356. AND bArtst.Ausverk < 9 :
  1357. iAnzArt = iAnzArt + 1.
  1358. IF iAnzArt > 1 THEN LEAVE A000.
  1359. ASSIGN iRecid = RECID(bArtst).
  1360. RELEASE bArtst.
  1361. END.
  1362. LEAVE.
  1363. END.
  1364. DO WHILE TRUE:
  1365. IF iAnzArt = 1 THEN LEAVE.
  1366. APPLY 'ENTRY' TO ipHandle.
  1367. RETURN 'APPLY'.
  1368. END.
  1369. FIND bArtst NO-LOCK WHERE RECID(bArtst) = iRecid.
  1370. ASSIGN rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr)
  1371. rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt)
  1372. rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr)
  1373. F_Artnr :SCREEN-VALUE = STRING(bArtst.Artnr).
  1374. FIND FIRST tAufze NO-ERROR.
  1375. ASSIGN tAufze.Firma = Firma
  1376. tAufze.Aufnr = INTEGER(rowObject.Aufnr:SCREEN-VALUE)
  1377. tAufze.Artnr = bArtst.Artnr
  1378. tAufze.Inhalt = bArtst.Inhalt
  1379. tAufze.Jahr = bArtst.Jahr .
  1380. RELEASE bArtst.
  1381. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  1382. iRetVal = DYNAMIC-FUNCTION ( 'fillAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR.
  1383. IF iRetVal > 0 THEN DO:
  1384. DYNAMIC-FUNCTION('fehlerMeldung':U, iRetVal, '' ) NO-ERROR.
  1385. APPLY 'ENTRY' TO ipHandle.
  1386. RETURN 'APPLY'.
  1387. END.
  1388. RUN MENGE.
  1389. IF RETURN-VALUE <> '' THEN DO:
  1390. APPLY 'ENTRY' TO ipHandle.
  1391. RETURN 'APPLY'.
  1392. END.
  1393. FIND FIRST tAufze.
  1394. RUN TEMP_TABLE_TO_SCREEN ( htAufze ).
  1395. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', (IF tAufze.Artnr > 0 THEN FALSE ELSE TRUE) ).
  1396. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}', INPUT FALSE ).
  1397. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT TRUE ).
  1398. APPLY 'ENTRY' TO rowObject.Bez1.
  1399. RETURN 'APPLY'.
  1400. END.
  1401. END PROCEDURE.
  1402. /* _UIB-CODE-BLOCK-END */
  1403. &ANALYZE-RESUME
  1404. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MENGE vTableWin
  1405. PROCEDURE MENGE :
  1406. /*------------------------------------------------------------------------------
  1407. Purpose:
  1408. Parameters: <none>
  1409. Notes:
  1410. ------------------------------------------------------------------------------*/
  1411. DEF VAR cDaten AS CHAR NO-UNDO.
  1412. DEF VAR lRetVal AS LOG NO-UNDO.
  1413. DEF BUFFER bArtst FOR Artst.
  1414. DEF BUFFER bKGebinde FOR KGebinde.
  1415. DEF BUFFER bVGebinde FOR VGebinde.
  1416. DEF BUFFER bGGebinde FOR GGebinde.
  1417. FIND FIRST tAufze NO-ERROR.
  1418. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  1419. RUN "g-gebindemenge-neu.w" ( INPUT-OUTPUT htAufze, OUTPUT lRetVal ).
  1420. IF NOT lRetVal THEN RETURN 'Fehler'.
  1421. FIND FIRST tAufze.
  1422. FIND bArtst NO-LOCK
  1423. WHERE bArtst.Firma = tAufze.Firma
  1424. AND bArtst.Artnr = tAufze.Artnr
  1425. AND bArtst.Inhalt = tAufze.Inhalt
  1426. AND bArtst.Jahr = tAufze.Jahr.
  1427. ASSIGN tAufze.KGeb_Ru = tAufze.KGeb_Be - tAufze.KGeb_Me
  1428. tAufze.VGeb_Ru = tAufze.VGeb_Be - tAufze.VGeb_Me
  1429. tAufze.GGeb_Ru = tAufze.GGeb_Be - tAufze.GGeb_Me
  1430. tAufze.MBest = tAufze.KGeb_Be
  1431. tAufze.MGeli = tAufze.KGeb_Me
  1432. tAufze.MRuek = tAufze.KGeb_Ru.
  1433. FIND bGGebinde NO-LOCK
  1434. WHERE bGGebinde.Firma = Firma
  1435. AND bGGebinde.Geb_Cd = tAufze.GGeb_Cd NO-ERROR.
  1436. FIND bVGebinde NO-LOCK
  1437. WHERE bVGebinde.Firma = Firma
  1438. AND bVGebinde.Geb_Cd = tAufze.VGeb_Cd NO-ERROR.
  1439. FIND bKGebinde NO-LOCK
  1440. WHERE bKGebinde.Firma = Firma
  1441. AND bKGebinde.Geb_Cd = tAufze.KGeb_Cd NO-ERROR.
  1442. /* -------------------------------------------------------------- */
  1443. /* Liter und Gewicht */
  1444. /* -------------------------------------------------------------- */
  1445. tAufze.Liter = bKGebinde.Inhalt * tAufze.KGeb_Me / 100.
  1446. tAufze.Gewicht = (bArtst.Gewicht * tAufze.KGeb_Me)
  1447. + (bKGebinde.Gewicht * tAufze.KGeb_Me)
  1448. + (bVGebinde.Gewicht * tAufze.VGeb_Me)
  1449. + (bGGebinde.Gewicht * tAufze.GGeb_Me).
  1450. tAufze.KGebinde = bKGebinde.KBez.
  1451. tAufze.VGebinde = bVGebinde.KBez.
  1452. tAufze.GGebinde = bGGebinde.KBez.
  1453. iPreisArt = DYNAMIC-FUNCTION('getPreisAufze':U, INPUT-OUTPUT htAufze) NO-ERROR.
  1454. IF iPreisArt < 0 THEN DO:
  1455. MESSAGE 'Artikel ohne Preis'
  1456. VIEW-AS ALERT-BOX INFORMATION.
  1457. iPreisArt = 0.
  1458. END.
  1459. DO WITH FRAME {&FRAME-NAME}:
  1460. tAufze.PreisArt = iPreisArt.
  1461. rowObject.PreisArt:SCREEN-VALUE = STRING(iPreisArt).
  1462. rowObject.Preis:BGCOLOR = 15.
  1463. CASE iPreisArt:
  1464. WHEN 3 THEN rowObject.Preis:BGCOLOR = 11.
  1465. WHEN 4 THEN rowObject.Preis:BGCOLOR = 11.
  1466. END.
  1467. END.
  1468. RELEASE bArtst.
  1469. RELEASE bKGebinde.
  1470. RELEASE bVGebinde.
  1471. RELEASE bGGebinde.
  1472. END PROCEDURE.
  1473. /* _UIB-CODE-BLOCK-END */
  1474. &ANALYZE-RESUME
  1475. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETURN_FELD vTableWin
  1476. PROCEDURE RETURN_FELD :
  1477. /*------------------------------------------------------------------------------
  1478. Purpose:
  1479. Parameters: <none>
  1480. Notes:
  1481. ------------------------------------------------------------------------------*/
  1482. { incl/viwreturnfeld.i }
  1483. END PROCEDURE.
  1484. /* _UIB-CODE-BLOCK-END */
  1485. &ANALYZE-RESUME
  1486. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEMP_TABLE_TO_BUFFER vTableWin
  1487. PROCEDURE TEMP_TABLE_TO_BUFFER :
  1488. /*------------------------------------------------------------------------------
  1489. Purpose:
  1490. Parameters: <none>
  1491. Notes:
  1492. ------------------------------------------------------------------------------*/
  1493. DEF VAR ii AS INT NO-UNDO.
  1494. DEF VAR i1 AS INT NO-UNDO.
  1495. DEF VAR i2 AS INT NO-UNDO.
  1496. DEF VAR cFeld AS CHAR NO-UNDO.
  1497. DEF VAR cColList AS CHAR NO-UNDO.
  1498. DEF VAR hFeld AS HANDLE NO-UNDO.
  1499. DEF VAR hbAufze AS HANDLE NO-UNDO.
  1500. DEF BUFFER bAufze FOR Aufze.
  1501. cColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
  1502. ii = NUM-ENTRIES(cColList, ',') + 1.
  1503. FIND FIRST tAufze.
  1504. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  1505. FIND bAufze OF tAufze.
  1506. hbAufze = BUFFER bAufze:HANDLE.
  1507. DYNAMIC-FUNCTION('fillArtbwFromAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR.
  1508. REPEAT TRANSACTION:
  1509. DISABLE TRIGGERS FOR LOAD OF Aufze.
  1510. FIND bAufze OF tAufze.
  1511. DO ii = 1 TO htAufze:NUM-FIELDS:
  1512. cFeld = htAufze:BUFFER-FIELD(ii):NAME.
  1513. i1 = LOOKUP(cFeld, cColList, ',') + 1 NO-ERROR.
  1514. IF i1 > 1 THEN NEXT.
  1515. hFeld = hbAufze:BUFFER-FIELD(cFeld) NO-ERROR.
  1516. IF NOT VALID-HANDLE(hFeld) THEN NEXT.
  1517. IF hFeld:EXTENT > 1 THEN DO:
  1518. DO i2 = 1 TO hFeld:EXTENT:
  1519. IF hbAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE(i2) = htAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE(i2) THEN NEXT.
  1520. hbAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE(i2) = htAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE(i2).
  1521. END.
  1522. NEXT.
  1523. END.
  1524. IF hbAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE = htAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE THEN NEXT.
  1525. hbAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE = htAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE.
  1526. END.
  1527. RELEASE bAufze.
  1528. LEAVE.
  1529. END.
  1530. DO WITH FRAME {&FRAME-NAME}:
  1531. RUN refreshRow IN hDaten NO-ERROR.
  1532. END.
  1533. END PROCEDURE.
  1534. /* _UIB-CODE-BLOCK-END */
  1535. &ANALYZE-RESUME
  1536. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEMP_TABLE_TO_SCREEN vTableWin
  1537. PROCEDURE TEMP_TABLE_TO_SCREEN :
  1538. /*------------------------------------------------------------------------------
  1539. Purpose:
  1540. Parameters: <none>
  1541. Notes:
  1542. ------------------------------------------------------------------------------*/
  1543. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  1544. DEF VAR ii AS INT NO-UNDO.
  1545. DEF VAR i1 AS INT NO-UNDO.
  1546. DEF VAR cColList AS CHAR NO-UNDO.
  1547. DEF VAR cColValues AS CHAR NO-UNDO.
  1548. DEF VAR cFeld AS CHAR NO-UNDO.
  1549. cColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
  1550. ii = NUM-ENTRIES(cColList, ',') + 1.
  1551. cColValues = FILL(CHR(01), ii).
  1552. DO ii = 1 TO ipHandle:NUM-FIELDS:
  1553. cFeld = ipHandle:BUFFER-FIELD(ii):NAME.
  1554. i1 = LOOKUP(cFeld, cColList, ',') + 1 NO-ERROR.
  1555. IF i1 < 2 THEN NEXT.
  1556. ENTRY(i1, cColValues, CHR(1)) = ipHandle:BUFFER-FIELD(ii):BUFFER-VALUE NO-ERROR.
  1557. END.
  1558. ENTRY(1, cColValues, CHR(01)) = cAktRowId.
  1559. RUN displayFields ( cColValues ).
  1560. END PROCEDURE.
  1561. /* _UIB-CODE-BLOCK-END */
  1562. &ANALYZE-RESUME
  1563. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEST_EINGABEN vTableWin
  1564. PROCEDURE TEST_EINGABEN :
  1565. /*------------------------------------------------------------------------------
  1566. Purpose:
  1567. Parameters: <none>
  1568. Notes:
  1569. ------------------------------------------------------------------------------*/
  1570. DEF OUTPUT PARAMETER opJa AS LOG NO-UNDO.
  1571. DEF VAR eHandle AS HANDLE NO-UNDO.
  1572. DEF VAR cString AS CHAR NO-UNDO.
  1573. DEF VAR iNummer AS INT NO-UNDO.
  1574. DEF VAR iRecid AS RECID NO-UNDO.
  1575. DEF VAR lJa AS LOG NO-UNDO.
  1576. DEF BUFFER bAufze FOR Aufze.
  1577. FIND FIRST tAufze.
  1578. opJa = FALSE.
  1579. eHandle = ?.
  1580. IF NOT FMut THEN RETURN.
  1581. AAA000:
  1582. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  1583. IF tAufze.Artnr = 0 THEN LEAVE.
  1584. IF DECIMAL(rowObject.Preis:SCREEN-VALUE) = 0 AND
  1585. tAufze.Preis_Mut = FALSE THEN DO:
  1586. lJa = DYNAMIC-FUNCTION('ANTWORT_NEIN', 0329 ) NO-ERROR.
  1587. IF NOT lJa THEN DO:
  1588. eHandle = rowObject.Preis:HANDLE.
  1589. LEAVE.
  1590. END.
  1591. END.
  1592. IF INTEGER(rowObject.Rab_Art :SCREEN-VALUE) = 0 THEN rowObject.Rab_Wert:SCREEN-VALUE = STRING(0).
  1593. IF INTEGER(rowObject.Zus_Art :SCREEN-VALUE) = 0 THEN rowObject.Zus_Wert:SCREEN-VALUE = STRING(0).
  1594. IF DECIMAL(rowObject.Zus_Wert:SCREEN-VALUE) = 0 THEN rowObject.Zus_Art :SCREEN-VALUE = STRING(0).
  1595. ASSIGN tAufze.Rab_Art = INTEGER(rowObject.Rab_Art :SCREEN-VALUE)
  1596. tAufze.Rab_Wert = DECIMAL(rowObject.Rab_Wert:SCREEN-VALUE)
  1597. tAufze.Zus_Art = INTEGER(rowObject.Zus_Art :SCREEN-VALUE)
  1598. tAufze.Zus_Wert = DECIMAL(rowObject.Zus_Wert:SCREEN-VALUE) NO-ERROR.
  1599. LEAVE.
  1600. END.
  1601. IF VALID-HANDLE(eHandle) THEN DO:
  1602. APPLY 'ENTRY' TO eHandle.
  1603. RETURN NO-APPLY.
  1604. END.
  1605. IF NOT lNew THEN DO:
  1606. /* -------------------------------------------------------------------------- */
  1607. /* ist der Datensatz inwischen von einem anderen Benutzer geändert worden ? */
  1608. /* -------------------------------------------------------------------------- */
  1609. FIND FIRST eAufze.
  1610. iRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten) NO-ERROR.
  1611. FIND bAufze EXCLUSIVE-LOCK WHERE RECID(bAufze) = iRecid.
  1612. BUFFER-COPY bAufze TO eAufze.
  1613. RELEASE bAufze.
  1614. FIND FIRST sAufze.
  1615. BUFFER-COMPARE sAufze TO eAufze SAVE RESULT IN cString.
  1616. IF cString <> '' THEN DO:
  1617. MESSAGE 'Dieser Datensatz wurde inzwischen von einem anderen Benutzer verändert' SKIP
  1618. 'Ihre Änderungen werden rückgängig gemacht, bitte nochmals eingeben'
  1619. VIEW-AS ALERT-BOX.
  1620. RELEASE bAufze.
  1621. RUN TOOLBAR IN hKontainer ('ABBRUCH') NO-ERROR.
  1622. RUN TOOLBAR IN hKontainer ('CANCEL') NO-ERROR.
  1623. RUN refreshRow IN hDaten.
  1624. RETURN NO-APPLY.
  1625. END.
  1626. RELEASE bAufze.
  1627. END.
  1628. ELSE DO:
  1629. FIND FIRST tAufze.
  1630. FIND LAST bAufze NO-LOCK
  1631. WHERE bAufze.Firma = tAufze.Firma
  1632. AND bAufze.Aufnr = tAufze.Aufnr NO-ERROR.
  1633. IF NOT AVAILABLE bAufze THEN tAufze.Pos = 05.
  1634. ELSE tAufze.Pos = bAufze.Pos - (bAufze.Pos MOD 5) + 05.
  1635. rowObject.Pos:SCREEN-VALUE = STRING(tAufze.Pos).
  1636. END.
  1637. RUN TEMP_TABLE_TO_SCREEN ( htAufze ).
  1638. opJa = TRUE.
  1639. END PROCEDURE.
  1640. /* _UIB-CODE-BLOCK-END */
  1641. &ANALYZE-RESUME
  1642. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin
  1643. PROCEDURE updateMode :
  1644. /*------------------------------------------------------------------------------
  1645. Purpose: Super Override
  1646. Parameters:
  1647. Notes:
  1648. ------------------------------------------------------------------------------*/
  1649. DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO.
  1650. DEF VAR iRecid AS RECID NO-UNDO.
  1651. DEF BUFFER bAufze FOR Aufze.
  1652. CASE pcMode:
  1653. WHEN 'updateBegin' THEN DO:
  1654. RUN 'refreshRow' IN hDaten.
  1655. iRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten) NO-ERROR.
  1656. FIND bAufze NO-LOCK WHERE RECID(bAufze) = iRecid.
  1657. FIND FIRST tAufze NO-ERROR.
  1658. IF NOT AVAILABLE tAufze THEN CREATE tAufze.
  1659. BUFFER-COPY bAufze TO tAufze.
  1660. FIND FIRST sAufze.
  1661. BUFFER-COPY bAufze TO sAufze.
  1662. RELEASE bAufze.
  1663. END.
  1664. WHEN 'updateEnd' THEN DO:
  1665. END.
  1666. END.
  1667. RUN SUPER( INPUT pcMode).
  1668. CASE pcMode:
  1669. WHEN 'updateBegin' THEN DO:
  1670. FMut = TRUE.
  1671. END.
  1672. WHEN 'updateEnd' THEN DO:
  1673. FNeu = FALSE.
  1674. FMut = FALSE.
  1675. FCopy = FALSE.
  1676. lNew = FALSE.
  1677. RUN 'refreshRow' IN hDaten.
  1678. APPLY 'U1'.
  1679. END.
  1680. END.
  1681. END PROCEDURE.
  1682. /* _UIB-CODE-BLOCK-END */
  1683. &ANALYZE-RESUME
  1684. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin
  1685. PROCEDURE updateRecord :
  1686. /*------------------------------------------------------------------------------
  1687. Purpose: Super Override
  1688. Parameters:
  1689. Notes:
  1690. ------------------------------------------------------------------------------*/
  1691. DEF VAR lrNew AS LOG NO-UNDO.
  1692. DEF VAR nTotal AS DEC DECIMALS 4 NO-UNDO EXTENT 15.
  1693. DEF VAR cRetValue AS CHAR NO-UNDO.
  1694. DEF VAR nAufTot AS DEC NO-UNDO.
  1695. DEF BUFFER bAufko FOR Aufko.
  1696. DO WITH FRAME {&FRAME-NAME}:
  1697. DYNAMIC-FUNCTION('SETMODIFIEDFLAG':U, INPUT Fenster, INPUT TRUE).
  1698. END.
  1699. lrNew = lNew.
  1700. FNeu = FALSE.
  1701. FCopy = FALSE.
  1702. FIND FIRST tAufze.
  1703. IF tAufze.Artnr > 0 THEN DYNAMIC-FUNCTION('calculateZeilenTotal':U, INPUT-OUTPUT htAufze ).
  1704. REPEAT TRANSACTION:
  1705. RUN SUPER.
  1706. RUN TEMP_TABLE_TO_BUFFER.
  1707. LEAVE.
  1708. END.
  1709. IF tAufze.Artnr > 0 THEN DO:
  1710. FIND bAufko NO-LOCK
  1711. WHERE bAufko.Firma = tAufze.Firma
  1712. AND bAufko.Aufnr = tAufze.Aufnr NO-ERROR.
  1713. nAufTot = bAufko.Auf_Tot.
  1714. cRetValue = DYNAMIC-FUNCTION('calculateAuftragsTotal':U, tAufze.Firma, tAufze.Aufnr, OUTPUT nTotal ) NO-ERROR.
  1715. IF nAufTot <> nTotal[10] THEN DYNAMIC-FUNCTION('setAufkoDruckFlag':U, tAufze.Firma, tAufze.Aufnr, FALSE ) NO-ERROR.
  1716. PUBLISH 'refreshAbholKo'.
  1717. END.
  1718. END PROCEDURE.
  1719. /* _UIB-CODE-BLOCK-END */
  1720. &ANALYZE-RESUME