b-bestell-gebinde.w 43 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS B-table-Win
  8. /*------------------------------------------------------------------------
  9. File:
  10. Description: from BROWSER.W - Basic SmartBrowser Object Template
  11. Input Parameters:
  12. <none>
  13. Output Parameters:
  14. <none>
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress UIB. */
  17. /*----------------------------------------------------------------------*/
  18. /* Create an unnamed pool to store all the widgets created
  19. by this procedure. This is a good default which assures
  20. that this procedure's triggers and internal procedures
  21. will execute in this procedure's storage, and that proper
  22. cleanup will occur on deletion of the procedure. */
  23. CREATE WIDGET-POOL.
  24. /* *************************** Definitions ************************** */
  25. &Scoped-define ERSTES-FELD Menge
  26. &Scoped-define ZWEITES-FELD Menge
  27. &Scoped-define LETZTES-FELD Menge
  28. &Scoped-define INPUT-FELDER BesGebKo.Menge
  29. &Scoped-define DATEI-NAME BesGebKo
  30. /* *************************** Definitions ************************** */
  31. /* Parameters Definitions --- */
  32. /* Local Variable Definitions --- */
  33. /* --------------------------------------------------------------------------- */
  34. DEF VAR VUpdate AS LOG INIT FALSE NO-UNDO.
  35. DEF VAR VSpeichern AS LOG INIT FALSE NO-UNDO.
  36. DEF VAR VNeu AS LOG INIT FALSE NO-UNDO.
  37. DEF VAR FErfassen AS LOG INIT FALSE NO-UNDO.
  38. DEF VAR PHandle AS HANDLE NO-UNDO.
  39. DEF VAR XHandle AS HANDLE NO-UNDO.
  40. DEF VAR LHandle AS HANDLE NO-UNDO.
  41. DEF VAR ch AS CHAR NO-UNDO.
  42. DEF VAR VText AS CHAR FORMAT "x(30)" NO-UNDO.
  43. DEF VAR QOpen AS LOG INIT FALSE NO-UNDO.
  44. DEF VAR FQOpen AS LOG INIT FALSE NO-UNDO.
  45. DEF VAR Vorhanden AS LOG NO-UNDO.
  46. DEF VAR VRecid AS RECID NO-UNDO.
  47. DEF VAR VROWID AS ROWID NO-UNDO.
  48. DEF VAR Feldname AS CHAR NO-UNDO.
  49. DEF VAR FeldInhalt AS CHAR NO-UNDO.
  50. DEF VAR BStatus AS INT INIT 0 NO-UNDO.
  51. DEF BUFFER B{&DATEI-NAME} FOR {&DATEI-NAME}.
  52. /* --------------------------------------------------------------------------- */
  53. /* Parameters Definitions --- */
  54. /* Local Variable Definitions --- */
  55. DEF VAR VBetrag AS DEC NO-UNDO.
  56. DEF VAR ok AS LOG NO-UNDO.
  57. DEF VAR VKnr AS INT NO-UNDO.
  58. DEF VAR VDoknr AS INT NO-UNDO.
  59. DEF VAR VDatum AS DATE NO-UNDO.
  60. DEF VAR VMWST AS INT NO-UNDO.
  61. DEF VAR FCuDw AS LOG NO-UNDO.
  62. /* ---------- Globale Variablen ---------------------------------- */
  63. { v8/globvar.i" " " " "SHARED" }
  64. { v8/debivar.i " " " " "SHARED" }
  65. { v8/artivar.i " " " " "SHARED" }
  66. { v8/contvar.i " " " " "SHARED" }
  67. /* _UIB-CODE-BLOCK-END */
  68. &ANALYZE-RESUME
  69. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  70. /* ******************** Preprocessor Definitions ******************** */
  71. &Scoped-define PROCEDURE-TYPE SmartBrowser
  72. &Scoped-define DB-AWARE no
  73. &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target
  74. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  75. &Scoped-define FRAME-NAME F-Main
  76. &Scoped-define BROWSE-NAME br_table
  77. /* Internal Tables (found by Frame, Query & Browse Queries) */
  78. &Scoped-define INTERNAL-TABLES BesGebKo
  79. /* Define KEY-PHRASE in case it is used by any query. */
  80. &Scoped-define KEY-PHRASE TRUE
  81. /* Definitions for BROWSE br_table */
  82. &Scoped-define FIELDS-IN-QUERY-br_table BesGebKo.Menge VText @ VText ~
  83. VBetrag @ VBetrag
  84. &Scoped-define ENABLED-FIELDS-IN-QUERY-br_table BesGebKo.Menge
  85. &Scoped-define ENABLED-TABLES-IN-QUERY-br_table BesGebKo
  86. &Scoped-define FIRST-ENABLED-TABLE-IN-QUERY-br_table BesGebKo
  87. &Scoped-define QUERY-STRING-br_table FOR EACH BesGebKo WHERE ~{&KEY-PHRASE} ~
  88. AND BesGebKo.Firma = GVFirma ~
  89. AND BesGebKo.Besnr = VDoknr NO-LOCK ~
  90. BY BesGebKo.Sort_Cd
  91. &Scoped-define OPEN-QUERY-br_table OPEN QUERY br_table FOR EACH BesGebKo WHERE ~{&KEY-PHRASE} ~
  92. AND BesGebKo.Firma = GVFirma ~
  93. AND BesGebKo.Besnr = VDoknr NO-LOCK ~
  94. BY BesGebKo.Sort_Cd.
  95. &Scoped-define TABLES-IN-QUERY-br_table BesGebKo
  96. &Scoped-define FIRST-TABLE-IN-QUERY-br_table BesGebKo
  97. /* Definitions for FRAME F-Main */
  98. /* Standard List Definitions */
  99. &Scoped-Define ENABLED-OBJECTS RECT-9 br_table E_Adresse
  100. &Scoped-Define DISPLAYED-OBJECTS F_Besnr E_Adresse
  101. /* Custom List Definitions */
  102. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  103. /* _UIB-PREPROCESSOR-BLOCK-END */
  104. &ANALYZE-RESUME
  105. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" B-table-Win _INLINE
  106. /* Actions: ? adm/support/keyedit.w ? ? ? */
  107. /* STRUCTURED-DATA
  108. <KEY-OBJECT>
  109. &BROWSE-NAME
  110. </KEY-OBJECT>
  111. <FOREIGN-KEYS>
  112. </FOREIGN-KEYS>
  113. <EXECUTING-CODE>
  114. **************************
  115. * Set attributes related to FOREIGN KEYS
  116. */
  117. RUN set-attribute-list (
  118. 'Keys-Accepted = "",
  119. Keys-Supplied = ""':U).
  120. /**************************
  121. </EXECUTING-CODE> */
  122. /* _UIB-CODE-BLOCK-END */
  123. &ANALYZE-RESUME
  124. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Advanced Query Options" B-table-Win _INLINE
  125. /* Actions: ? adm/support/advqedit.w ? ? ? */
  126. /* STRUCTURED-DATA
  127. <KEY-OBJECT>
  128. &BROWSE-NAME
  129. </KEY-OBJECT>
  130. <SORTBY-OPTIONS>
  131. </SORTBY-OPTIONS>
  132. <SORTBY-RUN-CODE>
  133. ************************
  134. * Set attributes related to SORTBY-OPTIONS */
  135. RUN set-attribute-list (
  136. 'SortBy-Options = ""':U).
  137. /************************
  138. </SORTBY-RUN-CODE>
  139. <FILTER-ATTRIBUTES>
  140. </FILTER-ATTRIBUTES> */
  141. /* _UIB-CODE-BLOCK-END */
  142. &ANALYZE-RESUME
  143. /* *********************** Control Definitions ********************** */
  144. /* Definitions of the field level widgets */
  145. DEFINE BUTTON Btn_Erfassen
  146. LABEL "&Erfassen"
  147. SIZE 19.8 BY 1.19.
  148. DEFINE BUTTON Btn_Loeschen
  149. LABEL "&Löschen"
  150. SIZE 19.8 BY 1.19.
  151. DEFINE BUTTON Btn_Speichern
  152. LABEL "&Speichern"
  153. SIZE 19.8 BY 1.19.
  154. DEFINE VARIABLE E_Adresse AS CHARACTER
  155. VIEW-AS EDITOR NO-WORD-WRAP MAX-CHARS 500
  156. SIZE 47.8 BY 5.43
  157. BGCOLOR 15 FONT 16 NO-UNDO.
  158. DEFINE VARIABLE F_Besnr AS INTEGER FORMAT "999999":U INITIAL 0
  159. LABEL "Dokumentnummer"
  160. VIEW-AS FILL-IN NATIVE
  161. SIZE 12.4 BY 1
  162. BGCOLOR 15 NO-UNDO.
  163. DEFINE RECTANGLE RECT-9
  164. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  165. SIZE 111.8 BY 22.
  166. /* Query definitions */
  167. &ANALYZE-SUSPEND
  168. DEFINE QUERY br_table FOR
  169. BesGebKo SCROLLING.
  170. &ANALYZE-RESUME
  171. /* Browse definitions */
  172. DEFINE BROWSE br_table
  173. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS br_table B-table-Win _STRUCTURED
  174. QUERY br_table NO-LOCK DISPLAY
  175. BesGebKo.Menge FORMAT "zz,zz9-":U
  176. VText @ VText COLUMN-LABEL "Bezeichnung" FORMAT "x(30)":U
  177. VBetrag @ VBetrag COLUMN-LABEL "Betrag" FORMAT "zzz,zz9.99-":U
  178. ENABLE
  179. BesGebKo.Menge
  180. /* _UIB-CODE-BLOCK-END */
  181. &ANALYZE-RESUME
  182. WITH NO-ASSIGN NO-ROW-MARKERS SEPARATORS SIZE 56 BY 20.86
  183. BGCOLOR 15 .
  184. /* ************************ Frame Definitions *********************** */
  185. DEFINE FRAME F-Main
  186. br_table AT ROW 1.57 COL 3.6
  187. Btn_Erfassen AT ROW 1.86 COL 61.4
  188. Btn_Speichern AT ROW 3.05 COL 61.4
  189. Btn_Loeschen AT ROW 4.33 COL 61.4
  190. F_Besnr AT ROW 7.57 COL 94.8 COLON-ALIGNED
  191. E_Adresse AT ROW 8.81 COL 61.4 NO-LABEL
  192. RECT-9 AT ROW 1 COL 1
  193. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  194. SIDE-LABELS NO-UNDERLINE THREE-D
  195. AT COL 1 ROW 1 SCROLLABLE
  196. DEFAULT-BUTTON Btn_Speichern.
  197. /* *********************** Procedure Settings ************************ */
  198. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  199. /* Settings for THIS-PROCEDURE
  200. Type: SmartBrowser
  201. Allow: Basic,Browse
  202. Frames: 1
  203. Add Fields to: EXTERNAL-TABLES
  204. Other Settings: PERSISTENT-ONLY
  205. */
  206. /* This procedure should always be RUN PERSISTENT. Report the error, */
  207. /* then cleanup and return. */
  208. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  209. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  210. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  211. RETURN.
  212. END.
  213. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  214. /* ************************* Create Window ************************** */
  215. &ANALYZE-SUSPEND _CREATE-WINDOW
  216. /* DESIGN Window definition (used by the UIB)
  217. CREATE WINDOW B-table-Win ASSIGN
  218. HEIGHT = 22.29
  219. WIDTH = 112.2.
  220. /* END WINDOW DEFINITION */
  221. */
  222. &ANALYZE-RESUME
  223. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB B-table-Win
  224. /* ************************* Included-Libraries *********************** */
  225. {src/adm/method/browser.i}
  226. /* _UIB-CODE-BLOCK-END */
  227. &ANALYZE-RESUME
  228. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  229. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  230. /* SETTINGS FOR WINDOW B-table-Win
  231. NOT-VISIBLE,,RUN-PERSISTENT */
  232. /* SETTINGS FOR FRAME F-Main
  233. NOT-VISIBLE FRAME-NAME Size-to-Fit */
  234. /* BROWSE-TAB br_table RECT-9 F-Main */
  235. ASSIGN
  236. FRAME F-Main:SCROLLABLE = FALSE
  237. FRAME F-Main:HIDDEN = TRUE
  238. FRAME F-Main:RESIZABLE = TRUE.
  239. /* SETTINGS FOR BUTTON Btn_Erfassen IN FRAME F-Main
  240. NO-ENABLE */
  241. ASSIGN
  242. Btn_Erfassen:PRIVATE-DATA IN FRAME F-Main =
  243. "Abbrechen".
  244. /* SETTINGS FOR BUTTON Btn_Loeschen IN FRAME F-Main
  245. NO-ENABLE */
  246. /* SETTINGS FOR BUTTON Btn_Speichern IN FRAME F-Main
  247. NO-ENABLE */
  248. ASSIGN
  249. E_Adresse:RETURN-INSERTED IN FRAME F-Main = TRUE
  250. E_Adresse:READ-ONLY IN FRAME F-Main = TRUE.
  251. /* SETTINGS FOR FILL-IN F_Besnr IN FRAME F-Main
  252. NO-ENABLE */
  253. /* _RUN-TIME-ATTRIBUTES-END */
  254. &ANALYZE-RESUME
  255. /* Setting information for Queries and Browse Widgets fields */
  256. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE br_table
  257. /* Query rebuild information for BROWSE br_table
  258. _TblList = "AnaDat.BesGebKo"
  259. _Options = "NO-LOCK KEY-PHRASE"
  260. _OrdList = "AnaDat.BesGebKo.Sort_Cd|yes"
  261. _Where[1] = "BesGebKo.Firma = GVFirma
  262. AND BesGebKo.Besnr = VDoknr"
  263. _FldNameList[1] > AnaDat.BesGebKo.Menge
  264. "BesGebKo.Menge" ? ? "decimal" ? ? ? ? ? ? yes ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  265. _FldNameList[2] > "_<CALC>"
  266. "VText @ VText" "Bezeichnung" "x(30)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  267. _FldNameList[3] > "_<CALC>"
  268. "VBetrag @ VBetrag" "Betrag" "zzz,zz9.99-" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  269. _Query is NOT OPENED
  270. */ /* BROWSE br_table */
  271. &ANALYZE-RESUME
  272. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  273. /* Query rebuild information for FRAME F-Main
  274. _Options = "NO-LOCK"
  275. _Query is NOT OPENED
  276. */ /* FRAME F-Main */
  277. &ANALYZE-RESUME
  278. /* ************************ Control Triggers ************************ */
  279. &Scoped-define BROWSE-NAME br_table
  280. &Scoped-define SELF-NAME br_table
  281. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  282. ON ROW-DISPLAY OF br_table IN FRAME F-Main
  283. DO:
  284. RUN ANZEIGE.
  285. END.
  286. /* _UIB-CODE-BLOCK-END */
  287. &ANALYZE-RESUME
  288. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  289. ON ROW-ENTRY OF br_table IN FRAME F-Main
  290. DO:
  291. {src/adm/template/brsentry.i}
  292. END.
  293. /* _UIB-CODE-BLOCK-END */
  294. &ANALYZE-RESUME
  295. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  296. ON ROW-LEAVE OF br_table IN FRAME F-Main
  297. DO:
  298. LKY = LASTKEY.
  299. LHandle = LAST-EVENT:WIDGET-LEAVE.
  300. XHandle = LAST-EVENT:WIDGET-ENTER.
  301. DO WHILE VUpdate AND NOT FErfassen WITH FRAME {&FRAME-NAME}:
  302. IF KEYFUNCTION(LKY) = 'END-ERROR' THEN DO:
  303. VSpeichern = FALSE.
  304. RUN ERFASSEN.
  305. RETURN NO-APPLY.
  306. END.
  307. IF NOT FCuDw THEN DO:
  308. IF {&BROWSE-NAME}:CURRENT-ROW-MODIFIED = FALSE THEN DO:
  309. VSpeichern = FALSE.
  310. VUpdate = FALSE.
  311. RUN ERFASSEN.
  312. RETURN NO-APPLY.
  313. END.
  314. END.
  315. IF LKY = KEYCODE('RETURN') THEN DO:
  316. RUN SPEICHERN.
  317. RETURN NO-APPLY.
  318. END.
  319. IF LKY = KEYCODE('TAB') AND
  320. LHandle:NAME = '{&LETZTES-FELD}' THEN DO:
  321. RUN SPEICHERN.
  322. RETURN NO-APPLY.
  323. END.
  324. IF VALID-HANDLE(XHandle) THEN DO:
  325. DO WHILE XHandle:TYPE = 'BUTTON':
  326. IF XHandle:NAME = 'Btn_Erfassen' THEN RETURN.
  327. IF XHandle:NAME = 'Btn_Speichern' THEN RETURN.
  328. APPLY 'ENTRY' TO LHandle.
  329. RETURN NO-APPLY.
  330. END.
  331. END.
  332. RETURN NO-APPLY.
  333. END.
  334. FErfassen = FALSE.
  335. {src/adm/template/brsleave.i}
  336. END.
  337. /* _UIB-CODE-BLOCK-END */
  338. &ANALYZE-RESUME
  339. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  340. ON VALUE-CHANGED OF br_table IN FRAME F-Main
  341. DO:
  342. RUN ANZEIGE.
  343. {src/adm/template/brschnge.i}
  344. END.
  345. /* _UIB-CODE-BLOCK-END */
  346. &ANALYZE-RESUME
  347. &Scoped-define SELF-NAME Btn_Erfassen
  348. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Erfassen B-table-Win
  349. ON CHOOSE OF Btn_Erfassen IN FRAME F-Main /* Erfassen */
  350. DO:
  351. IF VUpdate THEN VSpeichern = FALSE.
  352. VUpdate = FALSE.
  353. RUN ERFASSEN.
  354. END.
  355. /* _UIB-CODE-BLOCK-END */
  356. &ANALYZE-RESUME
  357. &Scoped-define SELF-NAME Btn_Loeschen
  358. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Loeschen B-table-Win
  359. ON CHOOSE OF Btn_Loeschen IN FRAME F-Main /* Löschen */
  360. DO:
  361. RUN LOESCHEN.
  362. END.
  363. /* _UIB-CODE-BLOCK-END */
  364. &ANALYZE-RESUME
  365. &Scoped-define SELF-NAME Btn_Speichern
  366. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Speichern B-table-Win
  367. ON CHOOSE OF Btn_Speichern IN FRAME F-Main /* Speichern */
  368. DO:
  369. VUpdate = FALSE.
  370. RUN SPEICHERN.
  371. END.
  372. /* _UIB-CODE-BLOCK-END */
  373. &ANALYZE-RESUME
  374. &UNDEFINE SELF-NAME
  375. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK B-table-Win
  376. /* *************************** Main Block *************************** */
  377. FCuDw = FALSE.
  378. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  379. RUN dispatch IN THIS-PROCEDURE ('initialize':U).
  380. &ENDIF
  381. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR.
  382. IF Steuer.Fwi06 = 0 THEN VMWST = 1.
  383. ELSE VMWST = Steuer.Fwi06.
  384. /* ------ Triggers ---------------------------------------------------- */
  385. ON ALT-- OF BROWSE {&BROWSE-NAME}
  386. DO:
  387. IF VUpdate THEN RETURN NO-APPLY.
  388. RUN new-state ( INPUT 'Prev_Page, MAIN':U ).
  389. RETURN NO-APPLY.
  390. END.
  391. ON ALT-+ OF BROWSE {&BROWSE-NAME}
  392. DO:
  393. IF VUpdate THEN RETURN NO-APPLY.
  394. RUN new-state ( INPUT 'Next_Page, MAIN':U ).
  395. RETURN NO-APPLY.
  396. END.
  397. ON CURSOR-UP OF {&INPUT-FELDER} IN BROWSE {&BROWSE-NAME}
  398. DO:
  399. IF NOT VUpdate THEN RETURN.
  400. DO WITH FRAME {&FRAME-NAME}:
  401. FCuDw = TRUE.
  402. RUN SPEICHERN.
  403. ok = {&BROWSE-NAME}:SELECT-PREV-ROW().
  404. IF NOT ok THEN RETURN NO-APPLY.
  405. {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  406. RUN ANZEIGE.
  407. RUN SPEICHERN.
  408. FCuDw = FALSE.
  409. RETURN NO-APPLY.
  410. END.
  411. END.
  412. ON CURSOR-DOWN OF {&INPUT-FELDER} IN BROWSE {&BROWSE-NAME}
  413. DO:
  414. IF NOT VUpdate THEN RETURN.
  415. DO WITH FRAME {&FRAME-NAME}:
  416. FCuDw = TRUE.
  417. RUN SPEICHERN.
  418. ok = {&BROWSE-NAME}:SELECT-NEXT-ROW().
  419. IF NOT ok THEN RETURN NO-APPLY.
  420. {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  421. RUN ANZEIGE.
  422. RUN SPEICHERN.
  423. FCuDw = FALSE.
  424. RETURN NO-APPLY.
  425. END.
  426. END.
  427. ON INSERT-MODE OF BROWSE {&BROWSE-NAME}
  428. DO:
  429. IF VUpdate THEN RETURN NO-APPLY.
  430. RUN ERFASSEN.
  431. END.
  432. ON RETURN OF BROWSE {&BROWSE-NAME}
  433. DO:
  434. IF VUpdate THEN RETURN NO-APPLY.
  435. RUN SPEICHERN.
  436. END.
  437. ON DELETE-CHARACTER OF BROWSE {&BROWSE-NAME}
  438. DO:
  439. IF VUpdate THEN RETURN NO-APPLY.
  440. RUN LOESCHEN.
  441. END.
  442. ON CTRL-CURSOR-RIGHT OF {&WINDOW-NAME}
  443. OR CTRL-CURSOR-RIGHT OF BROWSE {&BROWSE-NAME}
  444. DO:
  445. IF VUpdate THEN RETURN NO-APPLY.
  446. RUN new-state ( INPUT 'Next_Page, MAIN':U ).
  447. RETURN NO-APPLY.
  448. END.
  449. ON CTRL-CURSOR-LEFT OF {&WINDOW-NAME}
  450. OR CTRL-CURSOR-LEFT OF BROWSE {&BROWSE-NAME}
  451. DO:
  452. IF VUpdate THEN RETURN NO-APPLY.
  453. RUN new-state ( INPUT 'Prev_Page, MAIN':U ).
  454. RETURN NO-APPLY.
  455. END.
  456. ON ENTRY OF {&DATEI-NAME}.{&ERSTES-FELD} IN BROWSE {&BROWSE-NAME}
  457. DO:
  458. IF NOT VNeu THEN DO:
  459. APPLY 'ENTRY' TO {&DATEI-NAME}.{&ZWEITES-FELD} IN BROWSE {&BROWSE-NAME}.
  460. RETURN NO-APPLY.
  461. END.
  462. END.
  463. ON RETURN OF {&DATEI-NAME}.{&ERSTES-FELD} IN BROWSE {&BROWSE-NAME}
  464. DO:
  465. IF NOT VUpdate THEN RETURN.
  466. APPLY 'TAB' TO SELF.
  467. RETURN NO-APPLY.
  468. END.
  469. ON END-ERROR OF {&INPUT-FELDER} IN BROWSE {&BROWSE-NAME}
  470. OR END-ERROR OF BROWSE {&BROWSE-NAME}
  471. DO:
  472. VSpeichern = FALSE.
  473. IF NOT VUpdate THEN DO:
  474. RUN new-state ( INPUT 'ENDE, MAIN':U ).
  475. RETURN NO-APPLY.
  476. END.
  477. APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}.
  478. END.
  479. ON LEFT-MOUSE-DOWN, RIGHT-MOUSE-DOWN, MIDDLE-MOUSE-DOWN OF BROWSE {&BROWSE-NAME}
  480. DO:
  481. DO WHILE TRUE:
  482. IF NOT VUpdate THEN LEAVE.
  483. XHandle = {&BROWSE-NAME}:CURRENT-COLUMN IN FRAME {&FRAME-NAME}.
  484. IF NOT VALID-HANDLE(XHandle) THEN XHandle = LAST-EVENT:WIDGET-LEAVE.
  485. IF VALID-HANDLE(XHandle) THEN DO:
  486. APPLY 'LEAVE' TO XHandle.
  487. RETURN.
  488. END.
  489. LEAVE.
  490. END.
  491. END.
  492. ON LEAVE OF {&DATEI-NAME}.{&ERSTES-FELD} IN BROWSE {&BROWSE-NAME}
  493. DO:
  494. IF NOT VUpdate THEN RETURN.
  495. LKY = LASTKEY.
  496. LHandle = LAST-EVENT:WIDGET-ENTER.
  497. IF VALID-HANDLE(LHandle) THEN DO:
  498. IF LHandle:TYPE = 'BUTTON' AND
  499. LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO:
  500. VSpeichern = FALSE.
  501. APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}.
  502. RETURN NO-APPLY.
  503. END.
  504. END.
  505. IF NOT VSpeichern THEN RETURN.
  506. XHandle = {&BROWSE-NAME}:CURRENT-COLUMN IN FRAME {&FRAME-NAME}.
  507. Feldname = XHandle:NAME.
  508. Feldinhalt = XHandle:SCREEN-VALUE.
  509. END.
  510. /* _UIB-CODE-BLOCK-END */
  511. &ANALYZE-RESUME
  512. /* ********************** Internal Procedures *********************** */
  513. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available B-table-Win _ADM-ROW-AVAILABLE
  514. PROCEDURE adm-row-available :
  515. /*------------------------------------------------------------------------------
  516. Purpose: Dispatched to this procedure when the Record-
  517. Source has a new row available. This procedure
  518. tries to get the new row (or foriegn keys) from
  519. the Record-Source and process it.
  520. Parameters: <none>
  521. ------------------------------------------------------------------------------*/
  522. /* Define variables needed by this internal procedure. */
  523. {src/adm/template/row-head.i}
  524. /* Process the newly available records (i.e. display fields,
  525. open queries, and/or pass records on to any RECORD-TARGETS). */
  526. {src/adm/template/row-end.i}
  527. END PROCEDURE.
  528. /* _UIB-CODE-BLOCK-END */
  529. &ANALYZE-RESUME
  530. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANZEIGE B-table-Win
  531. PROCEDURE ANZEIGE :
  532. /*------------------------------------------------------------------------------
  533. Purpose:
  534. Parameters: <none>
  535. Notes:
  536. ------------------------------------------------------------------------------*/
  537. VText = ''.
  538. IF AVAILABLE {&DATEI-NAME} THEN DO:
  539. VRecid = RECID({&DATEI-NAME}) NO-ERROR.
  540. VROWID = ROWID({&DATEI-NAME}) NO-ERROR.
  541. IF NOT AVAILABLE {&DATEI-NAME} THEN RETURN.
  542. FIND GebRueck USE-INDEX GebRueck-k1 NO-LOCK
  543. WHERE GebRueck.Firma = GVFirma
  544. AND GebRueck.Geb_Cd = BesGebKo.Geb_Cd NO-ERROR.
  545. IF AVAILABLE GebRueck THEN VText = GebRueck.Bez.
  546. ELSE VText = FILL('?', 20).
  547. VBetrag = BesGebKo.Betrag_1 + BesGebKo.Betrag_2 + BesGebKo.Betrag_3.
  548. END.
  549. END PROCEDURE.
  550. /* _UIB-CODE-BLOCK-END */
  551. &ANALYZE-RESUME
  552. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BUTTON_ENABLE B-table-Win
  553. PROCEDURE BUTTON_ENABLE :
  554. /*------------------------------------------------------------------------------
  555. Purpose:
  556. Parameters: <none>
  557. Notes:
  558. ------------------------------------------------------------------------------*/
  559. DEF INPUT PARAMETER Art AS INT NO-UNDO.
  560. DO WITH FRAME {&FRAME-NAME}:
  561. IF Art < 90 THEN BStatus = Art.
  562. IF Art = 98 THEN Art = 9.
  563. IF Art = 99 THEN Art = BStatus.
  564. IF AVAILABLE Besko AND Besko.Best_Sta <> 2 THEN Art = 9.
  565. CASE Art:
  566. WHEN 1 THEN DO:
  567. ENABLE Btn_Erfassen.
  568. DISABLE Btn_Speichern Btn_Loeschen.
  569. END.
  570. WHEN 2 THEN DO:
  571. ENABLE Btn_Erfassen Btn_Speichern Btn_Loeschen.
  572. END.
  573. WHEN 3 THEN DO:
  574. DISABLE Btn_Loeschen.
  575. ENABLE Btn_Speichern.
  576. END.
  577. WHEN 9 THEN DO:
  578. DISABLE Btn_Erfassen Btn_Speichern Btn_Loeschen.
  579. END.
  580. END CASE.
  581. END.
  582. END PROCEDURE.
  583. /* _UIB-CODE-BLOCK-END */
  584. &ANALYZE-RESUME
  585. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_GebKontr B-table-Win
  586. PROCEDURE CREATE_GebKontr :
  587. /*------------------------------------------------------------------------------
  588. Purpose:
  589. Parameters: <none>
  590. Notes:
  591. ------------------------------------------------------------------------------*/
  592. DO WITH FRAME {&FRAME-NAME}:
  593. FIND LAST GebKontr USE-INDEX GebKontr-k1
  594. WHERE GebKontr.Firma = GVFirma
  595. AND GebKontr.Knr = VKnr NO-LOCK NO-ERROR.
  596. IF NOT AVAILABLE GebKontr THEN ix = 1.
  597. ELSE ix = GebKontr.Trnr + 1.
  598. CREATE GebKontr.
  599. ASSIGN GebKontr.Firma = GVFirma
  600. GebKontr.Knr = VKnr
  601. GebKontr.Trnr = ix
  602. GebKontr.Geb_Cd = GebKonto.Geb_Cd
  603. GebKontr.Doknr = VDoknr
  604. GebKontr.Datum = VDatum
  605. GebKontr.Preis = GebKonto.Depot.
  606. LVRecid = RECID(GebKontr).
  607. IF GebKonto.MWST_Art = 0 THEN DO:
  608. ASSIGN GebKontr.MWST_Cd = 11
  609. GebKontr.MWST_% = 0
  610. GebKontr.MWST_Inkl = TRUE.
  611. RETURN.
  612. END.
  613. IF GebKonto.MWST_Art = 1 THEN DO:
  614. FIND Wust USE-INDEX Wust-k1
  615. WHERE Wust.CodeK = VMWST
  616. AND Wust.CodeA = Artst.MWST NO-LOCK NO-ERROR.
  617. END.
  618. IF GebKonto.MWST_Art = 2 THEN DO:
  619. FIND FIRST Wust USE-INDEX Wust-k2
  620. WHERE Wust.WuCd = GebKonto.MWST_Cd NO-LOCK NO-ERROR.
  621. END.
  622. IF NOT AVAILABLE Wust THEN DO:
  623. ASSIGN GebKontr.MWST_Cd = 11
  624. GebKontr.MWST_% = 0
  625. GebKontr.MWST_Inkl = TRUE.
  626. RETURN.
  627. END.
  628. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  629. WHERE MWSTAns.MWST_Cd = Wust.WuCd
  630. AND MWSTAns.Datum <= TODAY NO-LOCK.
  631. ASSIGN GebKontr.MWST_Cd = Wust.WuCd
  632. GebKontr.MWST_% = MWSTAns.Ansatz
  633. GebKontr.MWST_Inkl = Wust.Incl.
  634. END.
  635. RETURN.
  636. END PROCEDURE.
  637. /* _UIB-CODE-BLOCK-END */
  638. &ANALYZE-RESUME
  639. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI B-table-Win _DEFAULT-DISABLE
  640. PROCEDURE disable_UI :
  641. /*------------------------------------------------------------------------------
  642. Purpose: DISABLE the User Interface
  643. Parameters: <none>
  644. Notes: Here we clean-up the user-interface by deleting
  645. dynamic widgets we have created and/or hide
  646. frames. This procedure is usually called when
  647. we are ready to "clean-up" after running.
  648. ------------------------------------------------------------------------------*/
  649. /* Hide all frames. */
  650. HIDE FRAME F-Main.
  651. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  652. END PROCEDURE.
  653. /* _UIB-CODE-BLOCK-END */
  654. &ANALYZE-RESUME
  655. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ERFASSEN B-table-Win
  656. PROCEDURE ERFASSEN :
  657. /*------------------------------------------------------------------------------
  658. Purpose:
  659. Parameters: <none>
  660. Notes:
  661. ------------------------------------------------------------------------------*/
  662. DO WITH FRAME {&FRAME-NAME}:
  663. IF Btn_Erfassen:SENSITIVE = FALSE THEN RETURN NO-APPLY.
  664. APPLY 'ENTRY' TO Btn_Erfassen.
  665. CASE Btn_Erfassen:LABEL:
  666. WHEN '&Erfassen' THEN DO:
  667. RETURN NO-APPLY.
  668. END.
  669. WHEN '&Abbrechen' THEN DO:
  670. VSpeichern = FALSE.
  671. RUN adm-disable-fields.
  672. RUN adm-cancel-record.
  673. VUpdate = FALSE.
  674. VNeu = FALSE.
  675. FErfassen = FALSE.
  676. Btn_Erfassen:LABEL = '&Erfassen'.
  677. Btn_Speichern:LABEL = '&Aendern'.
  678. IF Vorhanden THEN RUN BUTTON_ENABLE ( 2 ).
  679. ELSE RUN BUTTON_ENABLE ( 1 ).
  680. END.
  681. END CASE.
  682. END.
  683. IF NOT VUpdate THEN RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'browser_entry' ).
  684. END PROCEDURE.
  685. /* _UIB-CODE-BLOCK-END */
  686. &ANALYZE-RESUME
  687. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_BUCHEN B-table-Win
  688. PROCEDURE GEBINDE_BUCHEN :
  689. /*------------------------------------------------------------------------------
  690. Purpose:
  691. Parameters: <none>
  692. Notes:
  693. ------------------------------------------------------------------------------*/
  694. DEF INPUT PARAMETER Art AS INT NO-UNDO.
  695. DO WHILE Art = 1.
  696. DO WHILE BesGebKo.Kto_Cd1 <> '':
  697. FIND GebKonto USE-INDEX GebKonto-k1
  698. WHERE GebKonto.Firma = GVFirma
  699. AND GebKonto.Geb_Cd = BesGebKo.Kto_Cd1 NO-ERROR.
  700. IF NOT AVAILABLE GebKonto THEN LEAVE.
  701. IF GebKonto.Depot = 0 THEN LEAVE.
  702. FIND FIRST GebKontr USE-INDEX GebKontr-k2
  703. WHERE GebKontr.Firma = GVFirma
  704. AND GebKontr.Knr = VKnr
  705. AND GebKontr.Geb_Cd = GebKonto.Geb_Cd
  706. AND GebKontr.Doknr = VDoknr
  707. AND GebKontr.Datum = VDatum NO-ERROR.
  708. IF NOT AVAILABLE GebKontr THEN DO:
  709. RUN CREATE_GebKontr.
  710. FIND GebKontr WHERE RECID(GebKontr) = LVRecid.
  711. END.
  712. GebKontr.Ausgang = GebKontr.Ausgang + (BesGebKo.Menge * BesGebKo.Anz_1).
  713. LEAVE.
  714. END.
  715. DO WHILE BesGebKo.Kto_Cd2 <> '':
  716. FIND GebKonto USE-INDEX GebKonto-k1
  717. WHERE GebKonto.Firma = GVFirma
  718. AND GebKonto.Geb_Cd = BesGebKo.Kto_Cd2 NO-ERROR.
  719. IF NOT AVAILABLE GebKonto THEN LEAVE.
  720. IF GebKonto.Depot = 0 THEN LEAVE.
  721. FIND FIRST GebKontr USE-INDEX GebKontr-k2
  722. WHERE GebKontr.Firma = GVFirma
  723. AND GebKontr.Knr = VKnr
  724. AND GebKontr.Geb_Cd = GebKonto.Geb_Cd
  725. AND GebKontr.Doknr = VDoknr
  726. AND GebKontr.Datum = VDatum NO-ERROR.
  727. IF NOT AVAILABLE GebKontr THEN DO:
  728. RUN CREATE_GebKontr.
  729. FIND GebKontr WHERE RECID(GebKontr) = LVRecid.
  730. END.
  731. GebKontr.Ausgang = GebKontr.Ausgang + (BesGebKo.Menge * BesGebKo.Anz_2).
  732. LEAVE.
  733. END.
  734. DO WHILE BesGebKo.Kto_Cd3 <> '':
  735. FIND GebKonto USE-INDEX GebKonto-k1
  736. WHERE GebKonto.Firma = GVFirma
  737. AND GebKonto.Geb_Cd = BesGebKo.Kto_Cd3 NO-ERROR.
  738. IF NOT AVAILABLE GebKonto THEN LEAVE.
  739. IF GebKonto.Depot = 0 THEN LEAVE.
  740. FIND FIRST GebKontr USE-INDEX GebKontr-k2
  741. WHERE GebKontr.Firma = GVFirma
  742. AND GebKontr.Knr = VKnr
  743. AND GebKontr.Geb_Cd = GebKonto.Geb_Cd
  744. AND GebKontr.Doknr = VDoknr
  745. AND GebKontr.Datum = VDatum NO-ERROR.
  746. IF NOT AVAILABLE GebKontr THEN DO:
  747. RUN CREATE_GebKontr.
  748. FIND GebKontr WHERE RECID(GebKontr) = LVRecid.
  749. END.
  750. GebKontr.Ausgang = GebKontr.Ausgang + (BesGebKo.Menge * BesGebKo.Anz_3).
  751. LEAVE.
  752. END.
  753. /*
  754. FIND BesGebKo OF BesGebKo.
  755. { v8/BesGebKo.i "BesGebKo" "BesGebKo" }
  756. */
  757. RETURN.
  758. END.
  759. DO WHILE Art = 2.
  760. DO WHILE BesGebKo.Kto_Cd1 <> '':
  761. FIND GebKonto USE-INDEX GebKonto-k1
  762. WHERE GebKonto.Firma = GVFirma
  763. AND GebKonto.Geb_Cd = BesGebKo.Kto_Cd1 NO-ERROR.
  764. IF NOT AVAILABLE GebKonto THEN LEAVE.
  765. IF GebKonto.Depot = 0 THEN LEAVE.
  766. FIND FIRST GebKontr USE-INDEX GebKontr-k2
  767. WHERE GebKontr.Firma = GVFirma
  768. AND GebKontr.Knr = VKnr
  769. AND GebKontr.Geb_Cd = GebKonto.Geb_Cd
  770. AND GebKontr.Doknr = VDoknr
  771. AND GebKontr.Datum = VDatum NO-ERROR.
  772. IF NOT AVAILABLE GebKontr THEN DO:
  773. RUN CREATE_GebKontr.
  774. FIND GebKontr WHERE RECID(GebKontr) = LVRecid.
  775. END.
  776. GebKontr.Ausgang = GebKontr.Ausgang - (BesGebKo.Menge * BesGebKo.Anz_1).
  777. LEAVE.
  778. END.
  779. DO WHILE BesGebKo.Kto_Cd2 <> '':
  780. FIND GebKonto USE-INDEX GebKonto-k1
  781. WHERE GebKonto.Firma = GVFirma
  782. AND GebKonto.Geb_Cd = BesGebKo.Kto_Cd2 NO-ERROR.
  783. IF NOT AVAILABLE GebKonto THEN LEAVE.
  784. IF GebKonto.Depot = 0 THEN LEAVE.
  785. FIND FIRST GebKontr USE-INDEX GebKontr-k2
  786. WHERE GebKontr.Firma = GVFirma
  787. AND GebKontr.Knr = VKnr
  788. AND GebKontr.Geb_Cd = GebKonto.Geb_Cd
  789. AND GebKontr.Doknr = VDoknr
  790. AND GebKontr.Datum = VDatum NO-ERROR.
  791. IF NOT AVAILABLE GebKontr THEN DO:
  792. RUN CREATE_GebKontr.
  793. FIND GebKontr WHERE RECID(GebKontr) = LVRecid.
  794. END.
  795. GebKontr.Ausgang = GebKontr.Ausgang - (BesGebKo.Menge * BesGebKo.Anz_2).
  796. LEAVE.
  797. END.
  798. DO WHILE BesGebKo.Kto_Cd3 <> '':
  799. FIND GebKonto USE-INDEX GebKonto-k1
  800. WHERE GebKonto.Firma = GVFirma
  801. AND GebKonto.Geb_Cd = BesGebKo.Kto_Cd3 NO-ERROR.
  802. IF NOT AVAILABLE GebKonto THEN LEAVE.
  803. IF GebKonto.Depot = 0 THEN LEAVE.
  804. FIND FIRST GebKontr USE-INDEX GebKontr-k2
  805. WHERE GebKontr.Firma = GVFirma
  806. AND GebKontr.Knr = VKnr
  807. AND GebKontr.Geb_Cd = GebKonto.Geb_Cd
  808. AND GebKontr.Doknr = VDoknr
  809. AND GebKontr.Datum = VDatum NO-ERROR.
  810. IF NOT AVAILABLE GebKontr THEN DO:
  811. RUN CREATE_GebKontr.
  812. FIND GebKontr WHERE RECID(GebKontr) = LVRecid.
  813. END.
  814. GebKontr.Ausgang = GebKontr.Ausgang - (BesGebKo.Menge * BesGebKo.Anz_3).
  815. LEAVE.
  816. END.
  817. RETURN.
  818. END.
  819. END PROCEDURE.
  820. /* _UIB-CODE-BLOCK-END */
  821. &ANALYZE-RESUME
  822. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-assign-record B-table-Win
  823. PROCEDURE local-assign-record :
  824. /*------------------------------------------------------------------------------
  825. Purpose: Override standard ADM method
  826. Notes:
  827. ------------------------------------------------------------------------------*/
  828. RUN dispatch IN THIS-PROCEDURE ( INPUT 'assign-record':U ) .
  829. IF VNeu THEN DO:
  830. END.
  831. ELSE DO:
  832. END.
  833. ASSIGN BesGebKo.Betrag_1 = BesGebKo.Anz_1 * BesGebKo.Wert_1 * BesGebKo.Menge
  834. BesGebKo.Betrag_2 = BesGebKo.Anz_2 * BesGebKo.Wert_2 * BesGebKo.Menge
  835. BesGebKo.Betrag_3 = BesGebKo.Anz_3 * BesGebKo.Wert_3 * BesGebKo.Menge.
  836. VBetrag = BesGebKo.Betrag_1 + BesGebKo.Betrag_2 + BesGebKo.Betrag_3.
  837. RUN dispatch IN THIS-PROCEDURE ('display-fields':U).
  838. END PROCEDURE.
  839. /* _UIB-CODE-BLOCK-END */
  840. &ANALYZE-RESUME
  841. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-hide B-table-Win
  842. PROCEDURE local-hide :
  843. /*------------------------------------------------------------------------------
  844. Purpose: Override standard ADM method
  845. Notes:
  846. ------------------------------------------------------------------------------*/
  847. IF VUpdate THEN DO:
  848. APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}.
  849. RUN ERFASSEN.
  850. END.
  851. RUN dispatch IN THIS-PROCEDURE ( INPUT 'hide':U ) .
  852. FQOpen = FALSE.
  853. END PROCEDURE.
  854. /* _UIB-CODE-BLOCK-END */
  855. &ANALYZE-RESUME
  856. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-open-query B-table-Win
  857. PROCEDURE local-open-query :
  858. /*------------------------------------------------------------------------------
  859. Purpose: Override standard ADM method
  860. Notes:
  861. ------------------------------------------------------------------------------*/
  862. QOpen = FALSE.
  863. Vorhanden = FALSE.
  864. RUN dispatch IN THIS-PROCEDURE ( INPUT 'open-query':U ).
  865. QOpen = TRUE.
  866. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  867. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE.
  868. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN LEAVE.
  869. Vorhanden = TRUE.
  870. LEAVE.
  871. END.
  872. DO WITH FRAME {&FRAME-NAME}:
  873. IF Vorhanden THEN DO:
  874. RUN BUTTON_ENABLE ( 2 ).
  875. APPLY 'VALUE-CHANGED' TO BROWSE {&BROWSE-NAME}.
  876. END.
  877. ELSE DO:
  878. RUN BUTTON_ENABLE ( 1 ).
  879. END.
  880. END.
  881. END PROCEDURE.
  882. /* _UIB-CODE-BLOCK-END */
  883. &ANALYZE-RESUME
  884. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view B-table-Win
  885. PROCEDURE local-view :
  886. /*------------------------------------------------------------------------------
  887. Purpose: Override standard ADM method
  888. Notes:
  889. ------------------------------------------------------------------------------*/
  890. VKnr = LVLnr.
  891. VDoknr = LVBesnr.
  892. FIND Besko USE-INDEX Besko-k1
  893. WHERE Besko.Firma = GVFirma
  894. AND Besko.Besnr = LVBesnr NO-LOCK NO-ERROR.
  895. FIND FIRST BesGebKo USE-INDEX BesGebKo-k1
  896. WHERE BesGebKo.Firma = GVFirma
  897. AND BesGebKo.Besnr = VDoknr NO-LOCK NO-ERROR.
  898. DO WHILE NOT AVAILABLE BesGebKo:
  899. FOR EACH GebRueck NO-LOCK TRANSACTION:
  900. CREATE BesGebKo.
  901. ASSIGN BesGebKo.Firma = GVFirma
  902. BesGebKo.Besnr = VDoknr
  903. BesGebKo.Sort_Cd = GebRueck.Sort_Cd
  904. BesGebKo.Geb_Cd = GebRueck.Geb_Cd
  905. BesGebKo.Anz_1 = GebRueck.Anz_1
  906. BesGebKo.Kto_Cd1 = GebRueck.Kto_Cd1
  907. BesGebKo.Anz_2 = GebRueck.Anz_2
  908. BesGebKo.Kto_Cd2 = GebRueck.Kto_Cd2
  909. BesGebKo.Anz_3 = GebRueck.Anz_3
  910. BesGebKo.Kto_Cd3 = GebRueck.Kto_Cd3.
  911. IF BesGebKo.Kto_Cd1 <> '' THEN DO:
  912. FIND GebKonto USE-INDEX GebKonto-k1
  913. WHERE GebKonto.Firma = GVFirma
  914. AND GebKonto.Geb_Cd = BesGebKo.Kto_Cd1 NO-LOCK.
  915. BesGebKo.Wert_1 = GebKonto.Depot.
  916. END.
  917. IF BesGebKo.Kto_Cd2 <> '' THEN DO:
  918. FIND GebKonto USE-INDEX GebKonto-k1
  919. WHERE GebKonto.Firma = GVFirma
  920. AND GebKonto.Geb_Cd = BesGebKo.Kto_Cd2 NO-LOCK.
  921. BesGebKo.Wert_2 = GebKonto.Depot.
  922. END.
  923. IF BesGebKo.Kto_Cd3 <> '' THEN DO:
  924. FIND GebKonto USE-INDEX GebKonto-k1
  925. WHERE GebKonto.Firma = GVFirma
  926. AND GebKonto.Geb_Cd = BesGebKo.Kto_Cd3 NO-LOCK.
  927. BesGebKo.Wert_3 = GebKonto.Depot.
  928. END.
  929. END.
  930. LEAVE.
  931. END.
  932. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
  933. FQOpen = TRUE.
  934. RUN BUTTON_ENABLE ( INPUT 2 ).
  935. DO WITH FRAME {&FRAME-NAME}:
  936. Btn_Erfassen:LABEL IN FRAME {&FRAME-NAME} = '&Erfassen'.
  937. Btn_Speichern:LABEL IN FRAME {&FRAME-NAME} = '&Aendern'.
  938. RUN dispatch IN THIS-PROCEDURE ('open-query':U).
  939. RUN dispatch IN THIS-PROCEDURE ('disable-fields':U).
  940. F_Besnr = VDoknr.
  941. E_Adresse = ''.
  942. FIND Adresse USE-INDEX Adresse-k1
  943. WHERE Adresse.Firma = AdFirma
  944. AND Adresse.Knr = VKnr NO-LOCK NO-ERROR.
  945. IF AVAILABLE Adresse THEN DO:
  946. E_Adresse = Adresse.Anschrift[03] + CHR(10) +
  947. Adresse.Anschrift[04] + CHR(10) +
  948. Adresse.Anschrift[05] + CHR(10) +
  949. Adresse.Anschrift[06] + CHR(10) +
  950. Adresse.Anschrift[07] + CHR(10) +
  951. Adresse.Anschrift[08] + CHR(10) +
  952. Adresse.Anschrift[09] + CHR(10) +
  953. Adresse.Anschrift[10].
  954. END.
  955. DISPLAY F_Besnr E_Adresse
  956. {&List-5}.
  957. IF Besko.Best_Sta <> 2 THEN DO:
  958. MESSAGE "Das Gebinde kann nur im Status Eingang/Gebinde mutiert werden"
  959. VIEW-AS ALERT-BOX ERROR.
  960. RUN BUTTON_ENABLE ( INPUT 98 ).
  961. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  962. RETURN NO-APPLY.
  963. END.
  964. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE.
  965. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN LEAVE.
  966. {&BROWSE-NAME}:SELECT-FOCUSED-ROW().
  967. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  968. RETURN NO-APPLY.
  969. END.
  970. END PROCEDURE.
  971. /* _UIB-CODE-BLOCK-END */
  972. &ANALYZE-RESUME
  973. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN B-table-Win
  974. PROCEDURE LOESCHEN :
  975. /*------------------------------------------------------------------------------
  976. Purpose:
  977. Parameters: <none>
  978. Notes:
  979. ------------------------------------------------------------------------------*/
  980. IF Btn_Loeschen:SENSITIVE IN FRAME {&FRAME-NAME} = FALSE THEN RETURN NO-APPLY.
  981. APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}.
  982. RUN BUTTON_ENABLE ( 9 ).
  983. Ja = FALSE.
  984. { v8/loeschen.i }
  985. IF NOT Ja THEN DO:
  986. RUN BUTTON_ENABLE ( 2 ).
  987. RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'browser_entry' ).
  988. RETURN.
  989. END.
  990. RUN dispatch IN THIS-PROCEDURE ('delete-record':U).
  991. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  992. Vorhanden = FALSE.
  993. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE.
  994. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN LEAVE.
  995. Vorhanden = TRUE.
  996. LEAVE.
  997. END.
  998. IF Vorhanden THEN RUN BUTTON_ENABLE ( 2 ).
  999. ELSE RUN BUTTON_ENABLE ( 1 ).
  1000. RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'browser_entry' ).
  1001. END PROCEDURE.
  1002. /* _UIB-CODE-BLOCK-END */
  1003. &ANALYZE-RESUME
  1004. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records B-table-Win _ADM-SEND-RECORDS
  1005. PROCEDURE send-records :
  1006. /*------------------------------------------------------------------------------
  1007. Purpose: Send record ROWID's for all tables used by
  1008. this file.
  1009. Parameters: see template/snd-head.i
  1010. ------------------------------------------------------------------------------*/
  1011. /* Define variables needed by this internal procedure. */
  1012. {src/adm/template/snd-head.i}
  1013. /* For each requested table, put it's ROWID in the output list. */
  1014. {src/adm/template/snd-list.i "BesGebKo"}
  1015. /* Deal with any unexpected table requests before closing. */
  1016. {src/adm/template/snd-end.i}
  1017. END PROCEDURE.
  1018. /* _UIB-CODE-BLOCK-END */
  1019. &ANALYZE-RESUME
  1020. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SPEICHERN B-table-Win
  1021. PROCEDURE SPEICHERN :
  1022. /*------------------------------------------------------------------------------
  1023. Purpose:
  1024. Parameters: <none>
  1025. Notes:
  1026. ------------------------------------------------------------------------------*/
  1027. DEF VAR XROWID AS ROWID NO-UNDO.
  1028. DO WITH FRAME {&FRAME-NAME}:
  1029. IF Btn_Speichern:SENSITIVE = FALSE THEN RETURN NO-APPLY.
  1030. APPLY 'ENTRY' TO Btn_Speichern.
  1031. CASE Btn_Speichern:LABEL:
  1032. WHEN '&Aendern' THEN DO:
  1033. RUN adm-enable-fields.
  1034. APPLY 'ENTRY' TO {&DATEI-NAME}.{&ZWEITES-FELD} IN BROWSE {&BROWSE-NAME}.
  1035. VUpdate = TRUE.
  1036. VNeu = FALSE.
  1037. VSpeichern = TRUE.
  1038. Btn_Erfassen:LABEL = '&Abbrechen'.
  1039. Btn_Speichern:LABEL = '&Speichern'.
  1040. RUN BUTTON_ENABLE ( 3 ).
  1041. END.
  1042. WHEN '&Speichern' THEN DO:
  1043. VUpdate = FALSE.
  1044. RUN adm-disable-fields.
  1045. RUN adm-update-record.
  1046. RUN adm-end-update.
  1047. VNeu = FALSE.
  1048. VSpeichern = FALSE.
  1049. Btn_Erfassen:LABEL = '&Erfassen'.
  1050. Btn_Speichern:LABEL = '&Aendern'.
  1051. IF Vorhanden THEN RUN BUTTON_ENABLE ( 2 ).
  1052. ELSE RUN BUTTON_ENABLE ( 1 ).
  1053. END.
  1054. END CASE.
  1055. END.
  1056. IF NOT VUpdate THEN RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'browser_entry' ).
  1057. END PROCEDURE.
  1058. /* _UIB-CODE-BLOCK-END */
  1059. &ANALYZE-RESUME
  1060. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed B-table-Win
  1061. PROCEDURE state-changed :
  1062. /* -----------------------------------------------------------
  1063. Purpose:
  1064. Parameters: <none>
  1065. Notes:
  1066. -------------------------------------------------------------*/
  1067. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  1068. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  1069. CASE p-state:
  1070. WHEN 'first-record' THEN DO:
  1071. RUN ANZEIGE.
  1072. RUN set-attribute-list('Query-Position=':U + p-state).
  1073. RETURN NO-APPLY.
  1074. END.
  1075. WHEN 'browser_entry' THEN DO:
  1076. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  1077. RETURN NO-APPLY.
  1078. END.
  1079. {src/adm/template/bstates.i}
  1080. END CASE.
  1081. END PROCEDURE.
  1082. /* _UIB-CODE-BLOCK-END */
  1083. &ANALYZE-RESUME