g-suchen-adresse.w 51 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492
  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. &Scoped-define FRAME-NAME gSuchenAdressen
  8. {adecomm/appserv.i}
  9. /* Temp-Table and Buffer definitions */
  10. DEFINE TEMP-TABLE tAdresse NO-UNDO LIKE Adresse
  11. FIELD iRecid AS RECID
  12. FIELD cSort AS CHAR
  13. .
  14. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gSuchenAdressen
  15. /*------------------------------------------------------------------------
  16. File:
  17. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  18. Input Parameters:
  19. <none>
  20. Output Parameters:
  21. <none>
  22. Author:
  23. Created:
  24. ------------------------------------------------------------------------*/
  25. /* This .W file was created with the Progress AppBuilder. */
  26. /*----------------------------------------------------------------------*/
  27. /* Create an unnamed pool to store all the widgets created
  28. by this procedure. This is a good default which assures
  29. that this procedure's triggers and internal procedures
  30. will execute in this procedure's storage, and that proper
  31. cleanup will occur on deletion of the procedure. */
  32. CREATE WIDGET-POOL.
  33. /* *************************** Definitions ************************** */
  34. /* Parameters Definitions --- */
  35. DEF INPUT PARAMETER ipSuchbe AS CHAR NO-UNDO.
  36. DEF OUTPUT PARAMETER opRecid AS RECID NO-UNDO.
  37. /* Local Variable Definitions --- */
  38. &SCOPED-DEFINE Tabelle tAdresse
  39. &SCOPED-DEFINE Feld WordIndex
  40. { incl/dlgdefinition.i }
  41. { incl/dynbrwdefinition.i }
  42. DEF VAR xFakAdr AS CHAR NO-UNDO.
  43. DEF VAR cHerk AS CHAR NO-UNDO.
  44. DEF VAR fAdmin AS LOG NO-UNDO.
  45. DEF VAR iVertr AS INT NO-UNDO.
  46. DEF VAR lInaktiv AS LOG NO-UNDO.
  47. DEF VAR cInstallation AS CHAR NO-UNDO.
  48. DEF VAR cSort AS CHAR INIT 'cSort' NO-UNDO.
  49. DEF VAR lAufAb AS LOG INIT TRUE NO-UNDO.
  50. DEF VAR cAufAb AS CHAR INIT '' NO-UNDO.
  51. DEF VAR lAlfa AS LOG INIT FALSE NO-UNDO.
  52. DEF VAR iPrior AS INT INIT 0 NO-UNDO.
  53. DEF VAR BGNormal AS INT NO-UNDO.
  54. DEF VAR BGFreigabe AS INT NO-UNDO.
  55. DEF VAR BGDelete AS INT NO-UNDO.
  56. DEF VAR RetValue AS CHAR NO-UNDO.
  57. DEF TEMP-TABLE tSuchFelder NO-UNDO
  58. FIELD iWort AS INT
  59. FIELD iSuch AS INT
  60. FIELD cSuch AS CHAR
  61. FIELD lGefunden AS LOG INIT FALSE
  62. INDEX tSuchFelder-k1 IS PRIMARY
  63. iWort
  64. .
  65. { src/adm2/widgetprto.i }
  66. /* _UIB-CODE-BLOCK-END */
  67. &ANALYZE-RESUME
  68. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  69. /* ******************** Preprocessor Definitions ******************** */
  70. &Scoped-define PROCEDURE-TYPE SmartDialog
  71. &Scoped-define DB-AWARE no
  72. &Scoped-define ADM-CONTAINER DIALOG-BOX
  73. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  74. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  75. &Scoped-define FRAME-NAME gSuchenAdressen
  76. &Scoped-define BROWSE-NAME Browser_suchen
  77. /* Internal Tables (found by Frame, Query & Browse Queries) */
  78. &Scoped-define INTERNAL-TABLES tAdresse
  79. /* Definitions for BROWSE Browser_suchen */
  80. &Scoped-define FIELDS-IN-QUERY-Browser_suchen tAdresse.Knr ~
  81. tAdresse.Anzeig_br tAdresse.Firma1 tAdresse.Name tAdresse.Ort ~
  82. DYNAMIC-FUNCTION('getFakturaAdresse':U, Knr ) @ xFakAdr tAdresse.Suchbe ~
  83. tAdresse.cSort @ cSort
  84. &Scoped-define ENABLED-FIELDS-IN-QUERY-Browser_suchen
  85. &Scoped-define QUERY-STRING-Browser_suchen FOR EACH tAdresse NO-LOCK INDEXED-REPOSITION
  86. &Scoped-define OPEN-QUERY-Browser_suchen OPEN QUERY Browser_suchen FOR EACH tAdresse NO-LOCK INDEXED-REPOSITION.
  87. &Scoped-define TABLES-IN-QUERY-Browser_suchen tAdresse
  88. &Scoped-define FIRST-TABLE-IN-QUERY-Browser_suchen tAdresse
  89. /* Definitions for DIALOG-BOX gSuchenAdressen */
  90. &Scoped-define OPEN-BROWSERS-IN-QUERY-gSuchenAdressen ~
  91. ~{&OPEN-QUERY-Browser_suchen}
  92. /* Standard List Definitions */
  93. &Scoped-Define ENABLED-OBJECTS RECT-2 F_Suchbegriffe Browser_suchen
  94. &Scoped-Define DISPLAYED-OBJECTS F_Suchbegriffe
  95. /* Custom List Definitions */
  96. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  97. /* _UIB-PREPROCESSOR-BLOCK-END */
  98. &ANALYZE-RESUME
  99. /* ************************ Function Prototypes ********************** */
  100. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getAdresseSelektiert gSuchenAdressen
  101. FUNCTION getAdresseSelektiert RETURNS LOGICAL
  102. ( ipKnr AS INT ) FORWARD.
  103. /* _UIB-CODE-BLOCK-END */
  104. &ANALYZE-RESUME
  105. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getFakturaAdresse gSuchenAdressen
  106. FUNCTION getFakturaAdresse RETURNS CHARACTER
  107. ( ipKnr AS INT ) FORWARD.
  108. /* _UIB-CODE-BLOCK-END */
  109. &ANALYZE-RESUME
  110. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setKollonnenfarbe gSuchenAdressen
  111. FUNCTION setKollonnenfarbe RETURNS LOGICAL
  112. ( ipFarbe AS INT ) FORWARD.
  113. /* _UIB-CODE-BLOCK-END */
  114. &ANALYZE-RESUME
  115. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD startQueryAdresse gSuchenAdressen
  116. FUNCTION startQueryAdresse RETURNS INTEGER
  117. ( /* parameter-definitions */ ) FORWARD.
  118. /* _UIB-CODE-BLOCK-END */
  119. &ANALYZE-RESUME
  120. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD startQueryAuftrag gSuchenAdressen
  121. FUNCTION startQueryAuftrag RETURNS INTEGER
  122. ( /* parameter-definitions */ ) FORWARD.
  123. /* _UIB-CODE-BLOCK-END */
  124. &ANALYZE-RESUME
  125. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD startQueryDebst gSuchenAdressen
  126. FUNCTION startQueryDebst RETURNS INTEGER
  127. ( /* parameter-definitions */ ) FORWARD.
  128. /* _UIB-CODE-BLOCK-END */
  129. &ANALYZE-RESUME
  130. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD startQueryKundenbesuch gSuchenAdressen
  131. FUNCTION startQueryKundenbesuch RETURNS INTEGER
  132. ( /* parameter-definitions */ ) FORWARD.
  133. /* _UIB-CODE-BLOCK-END */
  134. &ANALYZE-RESUME
  135. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD startQueryLieferant gSuchenAdressen
  136. FUNCTION startQueryLieferant RETURNS INTEGER
  137. ( /* parameter-definitions */ ) FORWARD.
  138. /* _UIB-CODE-BLOCK-END */
  139. &ANALYZE-RESUME
  140. /* *********************** Control Definitions ********************** */
  141. /* Define a dialog box */
  142. /* Menu Definitions */
  143. DEFINE MENU POPUP-MENU-Browser_suchen
  144. MENU-ITEM X_INAKTIVE_EINAUS LABEL "inaktive anzeigen ?"
  145. TOGGLE-BOX.
  146. /* Definitions of the field level widgets */
  147. DEFINE VARIABLE F_Suchbegriffe AS CHARACTER FORMAT "X(256)":U
  148. LABEL "suchen nach"
  149. VIEW-AS FILL-IN NATIVE
  150. SIZE 50 BY 1
  151. BGCOLOR 15 NO-UNDO.
  152. DEFINE RECTANGLE RECT-2
  153. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  154. SIZE 210 BY 19.52.
  155. /* Query definitions */
  156. &ANALYZE-SUSPEND
  157. DEFINE QUERY Browser_suchen FOR
  158. tAdresse SCROLLING.
  159. &ANALYZE-RESUME
  160. /* Browse definitions */
  161. DEFINE BROWSE Browser_suchen
  162. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Browser_suchen gSuchenAdressen _STRUCTURED
  163. QUERY Browser_suchen NO-LOCK DISPLAY
  164. tAdresse.Knr FORMAT "999999":U WIDTH 8
  165. tAdresse.Anzeig_br COLUMN-LABEL "Adresse" FORMAT "x(75)":U
  166. tAdresse.Firma1 FORMAT "x(35)":U WIDTH 25
  167. tAdresse.Name FORMAT "x(35)":U WIDTH 25
  168. tAdresse.Ort FORMAT "X(30)":U WIDTH 25
  169. DYNAMIC-FUNCTION('getFakturaAdresse':U, Knr ) @ xFakAdr COLUMN-LABEL "Faktura-Adresse" FORMAT "x(60)":U
  170. WIDTH 40
  171. tAdresse.Suchbe FORMAT "X(20)":U
  172. tAdresse.cSort @ cSort COLUMN-LABEL "Sortierung" FORMAT "x(12)":U
  173. /* _UIB-CODE-BLOCK-END */
  174. &ANALYZE-RESUME
  175. WITH NO-ROW-MARKERS SEPARATORS SIZE 206 BY 17.14.
  176. /* ************************ Frame Definitions *********************** */
  177. DEFINE FRAME gSuchenAdressen
  178. F_Suchbegriffe AT ROW 2 COL 17.8 COLON-ALIGNED WIDGET-ID 4
  179. Browser_suchen AT ROW 3.38 COL 3 WIDGET-ID 200
  180. RECT-2 AT ROW 1.24 COL 2 WIDGET-ID 2
  181. SPACE(1.79) SKIP(0.37)
  182. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  183. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  184. TITLE "Adressen suchen" WIDGET-ID 100.
  185. /* *********************** Procedure Settings ************************ */
  186. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  187. /* Settings for THIS-PROCEDURE
  188. Type: SmartDialog
  189. Allow: Basic,Browse,DB-Fields,Query,Smart
  190. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  191. Design Page: 1
  192. Other Settings: COMPILE APPSERVER
  193. Temp-Tables and Buffers:
  194. TABLE: tAdresse T "?" NO-UNDO AnaDat Adresse
  195. ADDITIONAL-FIELDS:
  196. FIELD iRecid AS RECID
  197. FIELD cSort AS CHAR
  198. END-FIELDS.
  199. END-TABLES.
  200. */
  201. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  202. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gSuchenAdressen
  203. /* ************************* Included-Libraries *********************** */
  204. {src/adm2/containr.i}
  205. /* _UIB-CODE-BLOCK-END */
  206. &ANALYZE-RESUME
  207. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  208. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  209. /* SETTINGS FOR DIALOG-BOX gSuchenAdressen
  210. FRAME-NAME */
  211. /* BROWSE-TAB Browser_suchen F_Suchbegriffe gSuchenAdressen */
  212. ASSIGN
  213. FRAME gSuchenAdressen:SCROLLABLE = FALSE
  214. FRAME gSuchenAdressen:HIDDEN = TRUE.
  215. ASSIGN
  216. Browser_suchen:POPUP-MENU IN FRAME gSuchenAdressen = MENU POPUP-MENU-Browser_suchen:HANDLE
  217. Browser_suchen:COLUMN-RESIZABLE IN FRAME gSuchenAdressen = TRUE
  218. Browser_suchen:COLUMN-MOVABLE IN FRAME gSuchenAdressen = TRUE.
  219. /* _RUN-TIME-ATTRIBUTES-END */
  220. &ANALYZE-RESUME
  221. /* Setting information for Queries and Browse Widgets fields */
  222. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Browser_suchen
  223. /* Query rebuild information for BROWSE Browser_suchen
  224. _TblList = "Temp-Tables.tAdresse"
  225. _Options = "NO-LOCK INDEXED-REPOSITION"
  226. _FldNameList[1] > Temp-Tables.tAdresse.Knr
  227. "tAdresse.Knr" ? ? "integer" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  228. _FldNameList[2] > Temp-Tables.tAdresse.Anzeig_br
  229. "tAdresse.Anzeig_br" "Adresse" ? "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  230. _FldNameList[3] > Temp-Tables.tAdresse.Firma1
  231. "tAdresse.Firma1" ? ? "character" ? ? ? ? ? ? no ? no no "25" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  232. _FldNameList[4] > Temp-Tables.tAdresse.Name
  233. "tAdresse.Name" ? ? "character" ? ? ? ? ? ? no ? no no "25" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  234. _FldNameList[5] > Temp-Tables.tAdresse.Ort
  235. "tAdresse.Ort" ? ? "character" ? ? ? ? ? ? no ? no no "25" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  236. _FldNameList[6] > "_<CALC>"
  237. "DYNAMIC-FUNCTION('getFakturaAdresse':U, Knr ) @ xFakAdr" "Faktura-Adresse" "x(60)" ? ? ? ? ? ? ? no ? no no "40" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  238. _FldNameList[7] = Temp-Tables.tAdresse.Suchbe
  239. _FldNameList[8] > "_<CALC>"
  240. "tAdresse.cSort @ cSort" "Sortierung" "x(12)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  241. _Query is OPENED
  242. */ /* BROWSE Browser_suchen */
  243. &ANALYZE-RESUME
  244. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gSuchenAdressen
  245. /* Query rebuild information for DIALOG-BOX gSuchenAdressen
  246. _Options = "SHARE-LOCK"
  247. _Query is NOT OPENED
  248. */ /* DIALOG-BOX gSuchenAdressen */
  249. &ANALYZE-RESUME
  250. /* ************************ Control Triggers ************************ */
  251. &Scoped-define SELF-NAME gSuchenAdressen
  252. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gSuchenAdressen gSuchenAdressen
  253. ON END-ERROR OF FRAME gSuchenAdressen /* Adressen suchen */
  254. DO:
  255. opRecid = ?.
  256. RUN ENDE.
  257. RETURN NO-APPLY.
  258. END.
  259. /* _UIB-CODE-BLOCK-END */
  260. &ANALYZE-RESUME
  261. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gSuchenAdressen gSuchenAdressen
  262. ON WINDOW-CLOSE OF FRAME gSuchenAdressen /* Adressen suchen */
  263. DO:
  264. RUN ENDE.
  265. RETURN NO-APPLY.
  266. END.
  267. /* _UIB-CODE-BLOCK-END */
  268. &ANALYZE-RESUME
  269. &Scoped-define BROWSE-NAME Browser_suchen
  270. &Scoped-define SELF-NAME Browser_suchen
  271. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Browser_suchen gSuchenAdressen
  272. ON END-ERROR OF Browser_suchen IN FRAME gSuchenAdressen
  273. DO:
  274. APPLY 'ENTRY' TO F_Suchbegriffe.
  275. RETURN NO-APPLY.
  276. END.
  277. /* _UIB-CODE-BLOCK-END */
  278. &ANALYZE-RESUME
  279. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Browser_suchen gSuchenAdressen
  280. ON LEFT-MOUSE-DBLCLICK OF Browser_suchen IN FRAME gSuchenAdressen
  281. DO:
  282. IF NUM-RESULTS('{&BROWSE-NAME}') = ? THEN RETURN NO-APPLY.
  283. IF NUM-RESULTS('{&BROWSE-NAME}') = 0 THEN RETURN NO-APPLY.
  284. BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  285. opRecid = tAdresse.iRecid.
  286. RUN ENDE.
  287. RETURN NO-APPLY.
  288. END.
  289. /* _UIB-CODE-BLOCK-END */
  290. &ANALYZE-RESUME
  291. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Browser_suchen gSuchenAdressen
  292. ON RETURN OF Browser_suchen IN FRAME gSuchenAdressen
  293. DO:
  294. IF NUM-RESULTS('{&BROWSE-NAME}') = ? THEN RETURN NO-APPLY.
  295. IF NUM-RESULTS('{&BROWSE-NAME}') = 0 THEN RETURN NO-APPLY.
  296. BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  297. opRecid = tAdresse.iRecid.
  298. RUN ENDE.
  299. RETURN NO-APPLY.
  300. END.
  301. /* _UIB-CODE-BLOCK-END */
  302. &ANALYZE-RESUME
  303. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Browser_suchen gSuchenAdressen
  304. ON ROW-DISPLAY OF Browser_suchen IN FRAME gSuchenAdressen
  305. DO:
  306. DEF VAR iFarbe AS INT NO-UNDO.
  307. IF NOT tAdresse.Aktiv THEN iFarbe = BGDelete.
  308. ELSE
  309. IF NOT tAdresse.lFreigabe THEN iFarbe = BGFreigabe.
  310. ELSE iFarbe = BGNormal.
  311. DYNAMIC-FUNCTION('setKollonnenfarbe':U, iFarbe) NO-ERROR.
  312. END.
  313. /* _UIB-CODE-BLOCK-END */
  314. &ANALYZE-RESUME
  315. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Browser_suchen gSuchenAdressen
  316. ON START-SEARCH OF Browser_suchen IN FRAME gSuchenAdressen
  317. DO:
  318. { incl/dynbrwstartsearch.i }
  319. END.
  320. /* _UIB-CODE-BLOCK-END */
  321. &ANALYZE-RESUME
  322. &Scoped-define SELF-NAME F_Suchbegriffe
  323. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Suchbegriffe gSuchenAdressen
  324. ON RETURN OF F_Suchbegriffe IN FRAME gSuchenAdressen /* suchen nach */
  325. DO:
  326. ASSIGN F_Suchbegriffe.
  327. RUN START_QUERY ( SELF:SCREEN-VALUE).
  328. RETURN NO-APPLY.
  329. END.
  330. /* _UIB-CODE-BLOCK-END */
  331. &ANALYZE-RESUME
  332. &UNDEFINE SELF-NAME
  333. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gSuchenAdressen
  334. /* *************************** Main Block *************************** */
  335. IF ipSuchbe = '' THEN ipSuchbe = 'ADR'.
  336. IF NUM-ENTRIES(ipSuchbe, ';') = 1 THEN DO:
  337. IF ipSuchbe BEGINS 'ADR' THEN ASSIGN cHerk = ipSuchbe ipSuchbe = ''.
  338. IF ipSuchbe BEGINS 'AUF' THEN ASSIGN cHerk = ipSuchbe ipSuchbe = ''.
  339. IF ipSuchbe BEGINS 'DEB' THEN ASSIGN cHerk = ipSuchbe ipSuchbe = ''.
  340. IF ipSuchbe BEGINS 'LIE' THEN ASSIGN cHerk = ipSuchbe ipSuchbe = ''.
  341. IF ipSuchbe BEGINS 'KUBES' THEN ASSIGN cHerk = ipSuchbe ipSuchbe = ''.
  342. END.
  343. IF NUM-ENTRIES(ipSuchbe, ';') > 1 THEN DO:
  344. cHerk = ENTRY(01, ipSuchbe, ';') NO-ERROR.
  345. ipSuchbe = ENTRY(02, ipSuchbe, ';') NO-ERROR.
  346. IF ipSuchbe = ? THEN ipSuchbe = ''.
  347. END.
  348. IF cHerk BEGINS 'KUBES' THEN DO:
  349. iVertr = INTEGER(ENTRY(2, cHerk, ',')) NO-ERROR.
  350. cHerk = ENTRY(1, cHerk, ',') NO-ERROR.
  351. END.
  352. { incl/dlgmainblock.i }
  353. { incl/dynbrwmainblock.i }
  354. { incl/dynbrwinternproc.i }
  355. F_Suchbegriffe = ipSuchbe.
  356. opRecid = ?.
  357. fAdmin = DYNAMIC-FUNCTION('getAdmin':U ) NO-ERROR.
  358. cInstallation = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR.
  359. { src/adm2/dialogmn.i }
  360. /* _UIB-CODE-BLOCK-END */
  361. &ANALYZE-RESUME
  362. /* ********************** Internal Procedures *********************** */
  363. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gSuchenAdressen _ADM-CREATE-OBJECTS
  364. PROCEDURE adm-create-objects :
  365. /*------------------------------------------------------------------------------
  366. Purpose: Create handles for all SmartObjects used in this procedure.
  367. After SmartObjects are initialized, then SmartLinks are added.
  368. Parameters: <none>
  369. ------------------------------------------------------------------------------*/
  370. END PROCEDURE.
  371. /* _UIB-CODE-BLOCK-END */
  372. &ANALYZE-RESUME
  373. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE destroyObject gSuchenAdressen
  374. PROCEDURE destroyObject :
  375. /*------------------------------------------------------------------------------
  376. Purpose: Super Override
  377. Parameters:
  378. Notes:
  379. ------------------------------------------------------------------------------*/
  380. { incl/dynbrwdestroy.i }
  381. RUN SUPER.
  382. /* Code placed here will execute AFTER standard behavior. */
  383. END PROCEDURE.
  384. /* _UIB-CODE-BLOCK-END */
  385. &ANALYZE-RESUME
  386. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gSuchenAdressen _DEFAULT-DISABLE
  387. PROCEDURE disable_UI :
  388. /*------------------------------------------------------------------------------
  389. Purpose: DISABLE the User Interface
  390. Parameters: <none>
  391. Notes: Here we clean-up the user-interface by deleting
  392. dynamic widgets we have created and/or hide
  393. frames. This procedure is usually called when
  394. we are ready to "clean-up" after running.
  395. ------------------------------------------------------------------------------*/
  396. /* Hide all frames. */
  397. HIDE FRAME gSuchenAdressen.
  398. END PROCEDURE.
  399. /* _UIB-CODE-BLOCK-END */
  400. &ANALYZE-RESUME
  401. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gSuchenAdressen
  402. PROCEDURE enableObject :
  403. /*------------------------------------------------------------------------------
  404. Purpose: Super Override
  405. Parameters:
  406. Notes:
  407. ------------------------------------------------------------------------------*/
  408. GET-KEY-VALUE SECTION 'Grundeinstellungen'
  409. KEY 'BGGeloescht'
  410. VALUE RetValue.
  411. IF RetValue = ? THEN ASSIGN RetValue = ''.
  412. IF RetValue = '' THEN ASSIGN RetValue = '12'.
  413. BGDelete = INTEGER(RetValue).
  414. GET-KEY-VALUE SECTION 'Grundeinstellungen'
  415. KEY 'BGFreigabe'
  416. VALUE RetValue.
  417. IF RetValue = ? THEN ASSIGN RetValue = ''.
  418. IF RetValue = '' THEN ASSIGN RetValue = '14'.
  419. BGFreigabe = INTEGER(RetValue).
  420. BGNormal = 15.
  421. { incl/dlgenableobject.i }
  422. END PROCEDURE.
  423. /* _UIB-CODE-BLOCK-END */
  424. &ANALYZE-RESUME
  425. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gSuchenAdressen _DEFAULT-ENABLE
  426. PROCEDURE enable_UI :
  427. /*------------------------------------------------------------------------------
  428. Purpose: ENABLE the User Interface
  429. Parameters: <none>
  430. Notes: Here we display/view/enable the widgets in the
  431. user-interface. In addition, OPEN all queries
  432. associated with each FRAME and BROWSE.
  433. These statements here are based on the "Other
  434. Settings" section of the widget Property Sheets.
  435. ------------------------------------------------------------------------------*/
  436. DISPLAY F_Suchbegriffe
  437. WITH FRAME gSuchenAdressen.
  438. ENABLE RECT-2 F_Suchbegriffe Browser_suchen
  439. WITH FRAME gSuchenAdressen.
  440. VIEW FRAME gSuchenAdressen.
  441. {&OPEN-BROWSERS-IN-QUERY-gSuchenAdressen}
  442. END PROCEDURE.
  443. /* _UIB-CODE-BLOCK-END */
  444. &ANALYZE-RESUME
  445. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gSuchenAdressen
  446. PROCEDURE ENDE :
  447. /*------------------------------------------------------------------------------
  448. Purpose:
  449. Parameters: <none>
  450. Notes:
  451. ------------------------------------------------------------------------------*/
  452. { incl/dlgende.i }
  453. END PROCEDURE.
  454. /* _UIB-CODE-BLOCK-END */
  455. &ANALYZE-RESUME
  456. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INAKTIVE_EINAUS gSuchenAdressen
  457. PROCEDURE INAKTIVE_EINAUS :
  458. /*------------------------------------------------------------------------------
  459. Purpose:
  460. Parameters: <none>
  461. Notes:
  462. ------------------------------------------------------------------------------*/
  463. DEF VAR cString AS CHAR NO-UNDO.
  464. DO WITH FRAME {&FRAME-NAME}:
  465. cString = F_Suchbegriffe:SCREEN-VALUE.
  466. lInaktiv = NOT lInaktiv.
  467. DYNAMIC-FUNCTION('setAnzeigeAdresseInaktiv':U, lInaktiv ) NO-ERROR.
  468. RUN START_QUERY ( cString ).
  469. RETURN NO-APPLY.
  470. END.
  471. END PROCEDURE.
  472. /* _UIB-CODE-BLOCK-END */
  473. &ANALYZE-RESUME
  474. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject gSuchenAdressen
  475. PROCEDURE initializeObject :
  476. /*------------------------------------------------------------------------------
  477. Purpose: Super Override
  478. Parameters:
  479. Notes:
  480. ------------------------------------------------------------------------------*/
  481. DEF VAR cName AS CHAR NO-UNDO.
  482. DEF VAR xWhere AS CHAR NO-UNDO.
  483. RUN SUPER.
  484. DO WITH FRAME {&FRAME-NAME}:
  485. hbQuery = {&BROWSE-NAME}:QUERY.
  486. hqBuffer = hbQuery:GET-BUFFER-HANDLE(1).
  487. cqTabelle = hqBuffer:NAME.
  488. END.
  489. xWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK BY &2 &3 ', cqTabelle, cSort, cAufAb ).
  490. hbQuery:QUERY-PREPARE(xWhere).
  491. { incl/dynbrwinitialize.i}
  492. lInaktiv = DYNAMIC-FUNCTION('getAnzeigeAdresseInaktiv':U) NO-ERROR.
  493. IF NOT fAdmin THEN lInaktiv = FALSE.
  494. hInaktiv:CHECKED = lInaktiv.
  495. IF ipSuchbe <> '' THEN RUN START_QUERY ( ipSuchbe ).
  496. END PROCEDURE.
  497. /* _UIB-CODE-BLOCK-END */
  498. &ANALYZE-RESUME
  499. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPENQUERY gSuchenAdressen
  500. PROCEDURE OPENQUERY :
  501. /*------------------------------------------------------------------------------
  502. Purpose:
  503. Parameters: <none>
  504. Notes:
  505. ------------------------------------------------------------------------------*/
  506. DEF VAR xWhere AS CHAR NO-UNDO.
  507. xWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK BY &2 &3 ', cqTabelle, cSort, cAufAb).
  508. hbQuery:QUERY-PREPARE(xWhere) NO-ERROR.
  509. hbQuery:QUERY-OPEN() NO-ERROR.
  510. DO WITH FRAME {&FRAME-NAME}:
  511. IF hbQuery:NUM-RESULTS = 0 OR
  512. hbQuery:NUM-RESULTS = ?
  513. THEN APPLY 'ENTRY' TO F_Suchbegriffe.
  514. ELSE APPLY 'ENTRY' TO {&BROWSE-NAME}.
  515. RETURN NO-APPLY.
  516. END.
  517. END PROCEDURE.
  518. /* _UIB-CODE-BLOCK-END */
  519. &ANALYZE-RESUME
  520. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_SORT gSuchenAdressen
  521. PROCEDURE SET_SORT :
  522. /*------------------------------------------------------------------------------
  523. Purpose:
  524. Parameters: <none>
  525. Notes:
  526. ------------------------------------------------------------------------------*/
  527. DEF INPUT PARAMETER ipSort AS CHAR NO-UNDO.
  528. IF ipSort = cSort THEN lAufAb = NOT lAufAb.
  529. cSort = ipSort.
  530. cAufAb = (IF lAufAb THEN '' ELSE 'DESCENDING').
  531. RUN OPENQUERY.
  532. END PROCEDURE.
  533. /* _UIB-CODE-BLOCK-END */
  534. &ANALYZE-RESUME
  535. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE START_QUERY gSuchenAdressen
  536. PROCEDURE START_QUERY :
  537. /*------------------------------------------------------------------------------
  538. Purpose:
  539. Parameters: <none>
  540. Notes:
  541. ------------------------------------------------------------------------------*/
  542. DEF INPUT PARAMETER ipWorte AS CHAR NO-UNDO.
  543. DEF VAR xWort AS CHAR NO-UNDO.
  544. DEF VAR aWorte AS CHAR NO-UNDO.
  545. DEF VAR yy AS INT NO-UNDO.
  546. DEF VAR Zahl AS INT NO-UNDO.
  547. DEF VAR iKnrFak AS INT NO-UNDO.
  548. DEF VAR fNumSort AS LOG INIT FALSE NO-UNDO.
  549. DEF VAR iAnzAdr AS INT NO-UNDO.
  550. DEF VAR cSuchbe AS CHAR NO-UNDO.
  551. EMPTY TEMP-TABLE tAdresse.
  552. EMPTY TEMP-TABLE tSuchFelder.
  553. ipWorte = REPLACE(ipWorte, '*', '').
  554. iPrior = 0.
  555. lAlfa = FALSE.
  556. DO yy = 1 TO NUM-ENTRIES(ipWorte, ' '):
  557. CREATE tSuchFelder.
  558. ASSIGN tSuchFelder.iWort = yy
  559. tSuchFelder.iSuch = 0
  560. tSuchFelder.cSuch = ''
  561. tSuchFelder.lGefunden = FALSE.
  562. xWort = TRIM(ENTRY(yy, ipWorte, ' ')).
  563. Zahl = INTEGER(xWort) NO-ERROR.
  564. IF NOT ERROR-STATUS:ERROR AND
  565. Zahl < 1000000 AND
  566. NOT xWort BEGINS '0' THEN DO:
  567. tSuchFelder.iSuch = Zahl.
  568. CREATE tSuchFelder.
  569. ASSIGN tSuchFelder.iWort = yy
  570. tSuchFelder.iSuch = 0
  571. tSuchFelder.cSuch = xWort
  572. tSuchFelder.lGefunden = FALSE.
  573. NEXT.
  574. END.
  575. tSuchFelder.cSuch = xWort.
  576. END.
  577. FIND FIRST tSuchFelder NO-LOCK NO-ERROR.
  578. IF NOT AVAILABLE tSuchFelder THEN DO:
  579. MESSAGE 'Kein Suchbegriff eingegeben'
  580. VIEW-AS ALERT-BOX INFORMATION.
  581. APPLY 'ENTRY' TO F_Suchbegriffe IN FRAME {&FRAME-NAME}.
  582. RETURN NO-APPLY.
  583. END.
  584. CASE cHerk:
  585. WHEN 'ADR' THEN iAnzAdr = DYNAMIC-FUNCTION('startQueryAdresse':U ).
  586. WHEN 'AUF' THEN iAnzAdr = DYNAMIC-FUNCTION('startQueryAuftrag':U ).
  587. WHEN 'DEB' THEN iAnzAdr = DYNAMIC-FUNCTION('startQueryDebst':U ).
  588. WHEN 'LIE' THEN iAnzAdr = DYNAMIC-FUNCTION('startQueryLieferant':U ).
  589. WHEN 'KUBES' THEN DO:
  590. /* oswald spezial */
  591. IF cInstallation = 'oswald' AND
  592. iVertr = 30 THEN iVertr = 999999.
  593. IF iVertr = 999999 THEN iAnzAdr = DYNAMIC-FUNCTION('startQueryAdresse':U ).
  594. ELSE iAnzAdr = DYNAMIC-FUNCTION('startQueryKundenbesuch':U).
  595. END.
  596. END.
  597. IF lAlfa THEN DO:
  598. FOR EACH tAdresse:
  599. IF tAdresse.Suchbe <> '' THEN cSuchbe = tAdresse.cSort + SUBSTRING(cSuchbe,01,02) + tAdresse.Suchbe.
  600. ELSE
  601. IF tAdresse.Firma1 <> '' THEN cSuchbe = tAdresse.cSort + SUBSTRING(cSuchbe,01,02) + tAdresse.Firma1.
  602. ELSE cSuchbe = tAdresse.cSort + SUBSTRING(cSuchbe,01,02) + tAdresse.Name.
  603. tAdresse.cSort = cSuchbe.
  604. END.
  605. END.
  606. RUN OPENQUERY.
  607. /*
  608. OPEN QUERY {&BROWSE-NAME}
  609. FOR EACH tAdresse NO-LOCK
  610. BY tAdresse.cSort.
  611. DO WITH FRAME {&FRAME-NAME}:
  612. IF NUM-RESULTS('{&BROWSE-NAME}') = 0 OR
  613. NUM-RESULTS('{&BROWSE-NAME}') = ?
  614. THEN APPLY 'ENTRY' TO F_Suchbegriffe.
  615. ELSE APPLY 'ENTRY' TO {&BROWSE-NAME}.
  616. RETURN NO-APPLY.
  617. END.
  618. */
  619. RETURN NO-APPLY.
  620. END PROCEDURE.
  621. /* _UIB-CODE-BLOCK-END */
  622. &ANALYZE-RESUME
  623. /* ************************ Function Implementations ***************** */
  624. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getAdresseSelektiert gSuchenAdressen
  625. FUNCTION getAdresseSelektiert RETURNS LOGICAL
  626. ( ipKnr AS INT ) :
  627. /*------------------------------------------------------------------------------
  628. Purpose:
  629. Notes:
  630. ------------------------------------------------------------------------------*/
  631. FIND FIRST tAdresse NO-LOCK
  632. WHERE tAdresse.Firma = AdFirma
  633. AND tAdresse.Knr = ipKnr NO-ERROR.
  634. IF AVAILABLE tAdresse THEN RETURN TRUE.
  635. RETURN FALSE.
  636. END FUNCTION.
  637. /* _UIB-CODE-BLOCK-END */
  638. &ANALYZE-RESUME
  639. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getFakturaAdresse gSuchenAdressen
  640. FUNCTION getFakturaAdresse RETURNS CHARACTER
  641. ( ipKnr AS INT ) :
  642. /*------------------------------------------------------------------------------
  643. Purpose:
  644. Notes:
  645. ------------------------------------------------------------------------------*/
  646. DEF BUFFER BAdresse FOR Adresse.
  647. FIND Debst NO-LOCK
  648. WHERE Debst.Firma = Firma
  649. AND Debst.Knr = ipKnr NO-ERROR.
  650. IF NOT AVAILABLE Debst THEN RETURN ''.
  651. IF Debst.KnrFak = 0 THEN RETURN ''.
  652. FIND BAdresse NO-LOCK
  653. WHERE BAdresse.Firma = AdFirma
  654. AND BAdresse.Knr = Debst.KnrFak NO-ERROR.
  655. IF NOT AVAILABLE BAdresse THEN RETURN ''.
  656. RETURN STRING(BAdresse.Knr,'999999 ') + BAdresse.Anzeig_Br.
  657. END FUNCTION.
  658. /* _UIB-CODE-BLOCK-END */
  659. &ANALYZE-RESUME
  660. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setKollonnenfarbe gSuchenAdressen
  661. FUNCTION setKollonnenfarbe RETURNS LOGICAL
  662. ( ipFarbe AS INT ) :
  663. /*------------------------------------------------------------------------------
  664. Purpose:
  665. Notes:
  666. ------------------------------------------------------------------------------*/
  667. { incl/brwsetzeilenfarbe.i }
  668. END FUNCTION.
  669. /* _UIB-CODE-BLOCK-END */
  670. &ANALYZE-RESUME
  671. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION startQueryAdresse gSuchenAdressen
  672. FUNCTION startQueryAdresse RETURNS INTEGER
  673. ( /* parameter-definitions */ ) :
  674. /*------------------------------------------------------------------------------
  675. Purpose:
  676. Notes:
  677. ------------------------------------------------------------------------------*/
  678. DEF VAR iAnzAdr AS INT NO-UNDO.
  679. DEF VAR lJa AS LOG NO-UNDO.
  680. DEF VAR aWorte AS CHAR NO-UNDO.
  681. DEF VAR nWorte AS CHAR NO-UNDO.
  682. DEF VAR xWort AS CHAR NO-UNDO.
  683. DEF VAR ii AS INT NO-UNDO.
  684. /* Auf Adressenummern */
  685. iPrior = iPrior + 1.
  686. FOR EACH tSuchFelder NO-LOCK
  687. WHERE tSuchFelder.iSuch > 0
  688. AND tSuchFelder.lGefunden = FALSE:
  689. FIND Adresse NO-LOCK USE-INDEX Adresse-k1
  690. WHERE Adresse.Firma = AdFirma
  691. AND Adresse.Knr = tSuchFelder.iSuch NO-ERROR.
  692. IF NOT AVAILABLE Adresse THEN NEXT.
  693. IF NOT lInaktiv AND
  694. NOT Adresse.Aktiv THEN NEXT.
  695. ASSIGN iAnzAdr = iAnzAdr + 1
  696. tSuchFelder.lGefunden = TRUE.
  697. CREATE tAdresse.
  698. BUFFER-COPY Adresse TO tAdresse
  699. ASSIGN tAdresse.iRecid = RECID(Adresse)
  700. tAdresse.cSort = STRING(iPrior,'99') + STRING(Adresse.Knr,'99999999').
  701. lAlfa = FALSE.
  702. END.
  703. DO WHILE TRUE: /* OSWALD-SPEZIALFALL (Suchen nach Suchbegriff) */
  704. IF cInstallation <> 'OSWALD' AND
  705. cInstallation <> 'LaTorre' THEN LEAVE.
  706. iPrior = iPrior + 1.
  707. lJa = FALSE.
  708. aWorte = ''.
  709. FOR EACH tSuchFelder WHERE tSuchFelder.lGefunden = FALSE
  710. AND tSuchFelder.iSuch = 0
  711. AND tSuchFelder.iWort > 0:
  712. aWorte = aWorte + (IF aWorte = '' THEN '' ELSE ' ')
  713. + (IF tSuchFelder.iSuch = 0 THEN tSuchFelder.cSuch
  714. ELSE TRIM(STRING(tSuchFelder.iSuch,'>>>>>>>>>>>9'))).
  715. END.
  716. IF aWorte = '' THEN LEAVE.
  717. FOR EACH Adresse NO-LOCK USE-INDEX Adresse-k2
  718. WHERE Adresse.Firma = AdFirma
  719. AND ((lInaktiv)
  720. OR (NOT lInaktiv AND
  721. Adresse.Aktiv))
  722. AND Adresse.Suchbe BEGINS aWorte:
  723. IF NOT DYNAMIC-FUNCTION('getAdresseSelektiert':U, Adresse.Knr ) THEN DO:
  724. ASSIGN iAnzAdr = iAnzAdr + 1
  725. lJa = TRUE.
  726. CREATE tAdresse.
  727. BUFFER-COPY Adresse TO tAdresse
  728. ASSIGN tAdresse.iRecid = RECID(Adresse)
  729. tAdresse.cSort = STRING(iPrior,'99') + TRIM(SUBSTRING(Adresse.Suchbe,01,12)).
  730. END.
  731. END.
  732. IF lJa THEN lAlfa = TRUE.
  733. LEAVE.
  734. END.
  735. IF cInstallation = 'OSWALD' THEN DO:
  736. IF lJa THEN RETURN iAnzAdr.
  737. IF iAnzAdr > 0 THEN RETURN iAnzAdr.
  738. END.
  739. /* Auf genauen Inhalt der eingegebenen Worte */
  740. iPrior = iPrior + 1.
  741. aWorte = ''.
  742. FOR EACH tSuchFelder WHERE tSuchFelder.lGefunden = FALSE.
  743. aWorte = aWorte + (IF aWorte = '' THEN '' ELSE ' ')
  744. + (IF tSuchFelder.iSuch = 0 THEN tSuchFelder.cSuch
  745. ELSE TRIM(STRING(tSuchFelder.iSuch,'>>>>>>>>>>>9'))).
  746. END.
  747. IF aWorte = '' THEN RETURN iAnzAdr.
  748. lAlfa = TRUE.
  749. lJa = FALSE.
  750. GENAU:
  751. FOR EACH Adresse NO-LOCK
  752. WHERE Adresse.Firma = AdFirma
  753. AND ((lInaktiv)
  754. OR (NOT lInaktiv AND
  755. Adresse.Aktiv))
  756. AND Adresse.WortIndex CONTAINS aWorte:
  757. DO ii = 1 TO NUM-ENTRIES(aWorte, ' '):
  758. xWort = ENTRY(ii, aWorte, ' ').
  759. IF LOOKUP(xWort, Adresse.WortIndex, ' ') = 0 THEN NEXT GENAU.
  760. END.
  761. lJa = TRUE.
  762. IF NOT DYNAMIC-FUNCTION('getAdresseSelektiert':U, Adresse.Knr ) THEN DO:
  763. CREATE tAdresse.
  764. BUFFER-COPY Adresse TO tAdresse
  765. ASSIGN tAdresse.iRecid = RECID(Adresse)
  766. tAdresse.cSort = STRING(iPrior,'99') + REPLACE(ENTRY(1, F_Suchbegriffe, ' '), '*', '')
  767. iAnzAdr = iAnzAdr + 1.
  768. END.
  769. END.
  770. IF lJa AND
  771. iAnzAdr >= 20 THEN RETURN iAnzAdr.
  772. /* Auf matching Inhalt der eingegebenen Worte mit Beginn */
  773. iPrior = iPrior + 1.
  774. aWorte = ''.
  775. nWorte = ''.
  776. FOR EACH tSuchFelder WHERE tSuchFelder.lGefunden = FALSE.
  777. IF tSuchFelder.iWort = 0 THEN DO:
  778. nWorte = nWorte + (IF nWorte = '' THEN '' ELSE ' ')
  779. + tSuchFelder.cSuch.
  780. NEXT.
  781. END.
  782. IF tSuchFelder.iSuch > 0 THEN
  783. nWorte = nWorte + (IF nWorte = '' THEN '' ELSE ' ')
  784. + TRIM(STRING(tSuchFelder.iSuch,'>>>>>>>>>>>9')).
  785. ELSE
  786. aWorte = aWorte + (IF aWorte = '' THEN '' ELSE ' ')
  787. + tSuchFelder.cSuch + '*'.
  788. END.
  789. lJa = FALSE.
  790. FOR EACH Adresse NO-LOCK
  791. WHERE Adresse.Firma = AdFirma
  792. AND ((lInaktiv)
  793. OR (NOT lInaktiv AND
  794. Adresse.Aktiv))
  795. AND ((nWorte <> '' AND Adresse.WortIndex CONTAINS nWorte)
  796. OR (nWorte = ''))
  797. AND ((aWorte <> '' AND Adresse.WortIndex MATCHES aWorte)
  798. OR (aWorte = '')):
  799. lJa = TRUE.
  800. IF NOT DYNAMIC-FUNCTION('getAdresseSelektiert':U, Adresse.Knr ) THEN DO:
  801. CREATE tAdresse.
  802. BUFFER-COPY Adresse TO tAdresse
  803. ASSIGN tAdresse.iRecid = RECID(Adresse)
  804. tAdresse.cSort = STRING(iPrior,'99') + REPLACE(ENTRY(1, F_Suchbegriffe, ' '), '*', '')
  805. iAnzAdr = iAnzAdr + 1.
  806. END.
  807. END.
  808. IF lJa AND
  809. iAnzAdr >= 20 THEN RETURN iAnzAdr.
  810. /* Auf matching Inhalt der eingegebenen Worte */
  811. iPrior = iPrior + 1.
  812. aWorte = ''.
  813. nWorte = ''.
  814. FOR EACH tSuchFelder WHERE tSuchFelder.lGefunden = FALSE.
  815. IF tSuchFelder.iWort = 0 THEN DO:
  816. nWorte = nWorte + (IF nWorte = '' THEN '' ELSE ' ')
  817. + tSuchFelder.cSuch.
  818. NEXT.
  819. END.
  820. IF tSuchFelder.iSuch > 0 THEN
  821. nWorte = nWorte + (IF nWorte = '' THEN '' ELSE ' ')
  822. + TRIM(STRING(tSuchFelder.iSuch,'>>>>>>>>>>>9')).
  823. ELSE
  824. aWorte = aWorte + (IF aWorte = '' THEN '' ELSE ' ')
  825. + '*' + tSuchFelder.cSuch + '*'.
  826. END.
  827. lJa = FALSE.
  828. FOR EACH Adresse NO-LOCK
  829. WHERE Adresse.Firma = AdFirma
  830. AND ((lInaktiv)
  831. OR (NOT lInaktiv AND
  832. Adresse.Aktiv))
  833. AND ((nWorte <> '' AND Adresse.WortIndex CONTAINS nWorte)
  834. OR (nWorte = ''))
  835. AND ((aWorte <> '' AND Adresse.WortIndex MATCHES aWorte)
  836. OR (aWorte = '')):
  837. lJa = TRUE.
  838. IF NOT DYNAMIC-FUNCTION('getAdresseSelektiert':U, Adresse.Knr ) THEN DO:
  839. CREATE tAdresse.
  840. BUFFER-COPY Adresse TO tAdresse
  841. ASSIGN tAdresse.iRecid = RECID(Adresse)
  842. tAdresse.cSort = STRING(iPrior,'99') + REPLACE(ENTRY(1, F_Suchbegriffe, ' '), '*', '')
  843. iAnzAdr = iAnzAdr + 1.
  844. END.
  845. END.
  846. IF lJa THEN RETURN iAnzAdr.
  847. /* Auf matching mit weniger Begriffen der eingegebenen Worte */
  848. FOR EACH tSuchFelder WHERE tSuchFelder.iSuch > 0:
  849. DELETE tSuchFelder.
  850. END.
  851. DO WHILE TRUE:
  852. FIND LAST tSuchFelder WHERE tSuchFelder.iWort > 0 NO-ERROR.
  853. IF NOT AVAILABLE tSuchFelder THEN LEAVE.
  854. DELETE tSuchFelder.
  855. FIND FIRST tSuchFelder WHERE tSuchFelder.iWort > 0 NO-ERROR.
  856. IF NOT AVAILABLE tSuchFelder THEN LEAVE.
  857. iPrior = iPrior + 1.
  858. aWorte = ''.
  859. FOR EACH tSuchFelder WHERE tSuchFelder.lGefunden = FALSE.
  860. IF tSuchFelder.iWort = 0 THEN NEXT.
  861. aWorte = aWorte + (IF aWorte = '' THEN '' ELSE ' ')
  862. + '*'
  863. + tSuchFelder.cSuch
  864. + '*'.
  865. END.
  866. lJa = FALSE.
  867. FOR EACH Adresse NO-LOCK
  868. WHERE Adresse.Firma = AdFirma
  869. AND ((lInaktiv)
  870. OR (NOT lInaktiv AND
  871. Adresse.Aktiv))
  872. AND ((nWorte <> '' AND Adresse.WortIndex CONTAINS nWorte)
  873. OR (nWorte = ''))
  874. AND ((aWorte <> '' AND Adresse.WortIndex MATCHES aWorte)
  875. OR (aWorte = '')):
  876. lJa = TRUE.
  877. IF NOT DYNAMIC-FUNCTION('getAdresseSelektiert':U, Adresse.Knr ) THEN DO:
  878. CREATE tAdresse.
  879. BUFFER-COPY Adresse TO tAdresse
  880. ASSIGN tAdresse.iRecid = RECID(Adresse)
  881. tAdresse.cSort = STRING(iPrior,'99') + REPLACE(ENTRY(1, F_Suchbegriffe, ' '), '*', '')
  882. iAnzAdr = iAnzAdr + 1.
  883. END.
  884. END.
  885. IF lJa THEN RETURN iAnzAdr.
  886. END.
  887. IF nWorte = '' THEN RETURN iAnzAdr.
  888. /* matches mit den eingegeben Zahlen (wenn vorhanden) */
  889. iPrior = iPrior + 1.
  890. aWorte = ''.
  891. FOR EACH tSuchFelder WHERE tSuchFelder.iWort <> 0:
  892. DELETE tSuchFelder.
  893. END.
  894. DO ii = 1 TO NUM-ENTRIES(nWorte, ' '):
  895. xWort = ENTRY(ii, nWorte, ' ').
  896. FIND FIRST tSuchFelder WHERE tSuchFelder.cSuch = xWort NO-ERROR.
  897. IF AVAILABLE tSuchFelder THEN NEXT.
  898. CREATE tSuchFelder.
  899. ASSIGN tSuchFelder.iWort = ii
  900. tSuchFelder.iSuch = 0
  901. tSuchFelder.cSuch = xWort
  902. tSuchFelder.lGefunden = FALSE.
  903. END.
  904. FOR EACH tSuchFelder:
  905. IF tSuchFelder.iWort = 0 THEN DO:
  906. nWorte = tSuchFelder.cSuch.
  907. NEXT.
  908. END.
  909. aWorte = aWorte + (IF aWorte = '' THEN '' ELSE ' ')
  910. + '*' + tSuchFelder.cSuch + '*'.
  911. END.
  912. IF aWorte = '' THEN RETURN iAnzAdr.
  913. lJa = FALSE.
  914. FOR EACH Adresse NO-LOCK
  915. WHERE Adresse.Firma = AdFirma
  916. AND ((lInaktiv)
  917. OR (NOT lInaktiv AND
  918. Adresse.Aktiv))
  919. AND Adresse.WortIndex MATCHES aWorte:
  920. lJa = TRUE.
  921. IF NOT DYNAMIC-FUNCTION('getAdresseSelektiert':U, Adresse.Knr ) THEN DO:
  922. CREATE tAdresse.
  923. BUFFER-COPY Adresse TO tAdresse
  924. ASSIGN tAdresse.iRecid = RECID(Adresse)
  925. tAdresse.cSort = STRING(iPrior,'99') + REPLACE(ENTRY(1, F_Suchbegriffe, ' '), '*', '')
  926. iAnzAdr = iAnzAdr + 1.
  927. END.
  928. END.
  929. IF lJa THEN RETURN iAnzAdr.
  930. RETURN iAnzAdr.
  931. END FUNCTION.
  932. /* _UIB-CODE-BLOCK-END */
  933. &ANALYZE-RESUME
  934. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION startQueryAuftrag gSuchenAdressen
  935. FUNCTION startQueryAuftrag RETURNS INTEGER
  936. ( /* parameter-definitions */ ) :
  937. /*------------------------------------------------------------------------------
  938. Purpose:
  939. Notes:
  940. ------------------------------------------------------------------------------*/
  941. DEF VAR iAnzAdr AS INT NO-UNDO.
  942. DEF VAR lJa AS LOG NO-UNDO.
  943. DEF VAR aWorte AS CHAR NO-UNDO.
  944. DEF VAR nWorte AS CHAR NO-UNDO.
  945. DEF VAR ii AS INT NO-UNDO.
  946. DEF VAR iKnrFak AS INT NO-UNDO.
  947. DEF BUFFER btAdresse FOR tAdresse.
  948. FOR EACH tSuchFelder NO-LOCK
  949. WHERE tSuchFelder.iSuch > 0
  950. AND tSuchFelder.lGefunden = FALSE:
  951. FIND Debst NO-LOCK USE-INDEX Debst-k1
  952. WHERE Debst.Firma = Firma
  953. AND Debst.Knr = tSuchFelder.iSuch
  954. AND Debst.Aktiv = TRUE NO-ERROR.
  955. IF NOT AVAILABLE Debst THEN NEXT.
  956. FIND Adresse NO-LOCK USE-INDEX Adresse-k1
  957. WHERE Adresse.Firma = AdFirma
  958. AND Adresse.Knr = Debst.Knr NO-ERROR.
  959. IF NOT AVAILABLE Adresse THEN NEXT.
  960. IF NOT lInaktiv AND
  961. NOT Adresse.Aktiv THEN NEXT.
  962. ASSIGN iAnzAdr = iAnzAdr + 1
  963. tSuchFelder.lGefunden = TRUE.
  964. CREATE tAdresse.
  965. BUFFER-COPY Adresse TO tAdresse
  966. ASSIGN tAdresse.iRecid = RECID(Adresse)
  967. tAdresse.cSort = STRING(iPrior,'99') + STRING(Adresse.Knr,'99999999').
  968. END.
  969. FIND FIRST tSuchFelder NO-LOCK
  970. WHERE tSuchFelder.cSuch > '' NO-ERROR.
  971. IF NOT AVAILABLE tSuchFelder THEN RETURN iAnzAdr.
  972. /* Suchbegriff für Debitoren zu den Suchwörtern hinzufügen */
  973. CREATE tSuchFelder.
  974. ASSIGN tSuchFelder.iWort = 0
  975. tSuchFelder.iSuch = 0
  976. tSuchFelder.cSuch = 'XDEBSTX'
  977. tSuchFelder.lGefunden = FALSE.
  978. iAnzAdr = DYNAMIC-FUNCTION('startQueryAdresse':U) NO-ERROR.
  979. FOR EACH tAdresse:
  980. FIND Debst NO-LOCK USE-INDEX Debst-k1
  981. WHERE Debst.Firma = Firma
  982. AND Debst.Knr = tAdresse.Knr NO-ERROR.
  983. IF NOT AVAILABLE Debst THEN DO:
  984. DELETE tAdresse.
  985. iAnzAdr = iAnzAdr - 1.
  986. NEXT.
  987. END.
  988. IF Debst.KnrFak > 0 AND
  989. Debst.KnrFak <> Debst.Knr THEN NEXT.
  990. iKnrFak = Debst.Knr.
  991. FIND FIRST Debst USE-INDEX Debst-KnrFak
  992. WHERE Debst.Firma = Firma
  993. AND Debst.KnrFak = iKnrFak
  994. AND Debst.Aktiv NO-ERROR.
  995. IF NOT AVAILABLE Debst THEN NEXT.
  996. FIND LAST Artbw NO-LOCK USE-INDEX Artbw-k3
  997. WHERE Artbw.Firma = Firma
  998. AND Artbw.Knr = tAdresse.Knr NO-ERROR.
  999. IF NOT AVAILABLE Artbw THEN DO:
  1000. DELETE tAdresse.
  1001. iAnzAdr = iAnzAdr - 1.
  1002. NEXT.
  1003. END.
  1004. IF Artbw.Datum < (TODAY - 730) THEN DO:
  1005. DELETE tAdresse.
  1006. iAnzAdr = iAnzAdr - 1.
  1007. NEXT.
  1008. END.
  1009. END.
  1010. RETURN iAnzAdr.
  1011. END FUNCTION.
  1012. /* _UIB-CODE-BLOCK-END */
  1013. &ANALYZE-RESUME
  1014. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION startQueryDebst gSuchenAdressen
  1015. FUNCTION startQueryDebst RETURNS INTEGER
  1016. ( /* parameter-definitions */ ) :
  1017. /*------------------------------------------------------------------------------
  1018. Purpose:
  1019. Notes:
  1020. ------------------------------------------------------------------------------*/
  1021. DEF VAR iAnzAdr AS INT NO-UNDO.
  1022. DEF VAR lJa AS LOG NO-UNDO.
  1023. DEF VAR aWorte AS CHAR NO-UNDO.
  1024. DEF VAR nWorte AS CHAR NO-UNDO.
  1025. DEF VAR ii AS INT NO-UNDO.
  1026. DEF VAR iKnrFak AS INT NO-UNDO.
  1027. DEF BUFFER btAdresse FOR tAdresse.
  1028. FOR EACH tSuchFelder NO-LOCK
  1029. WHERE tSuchFelder.iSuch > 0
  1030. AND tSuchFelder.lGefunden = FALSE:
  1031. FIND Debst NO-LOCK USE-INDEX Debst-k1
  1032. WHERE Debst.Firma = Firma
  1033. AND Debst.Knr = tSuchFelder.iSuch
  1034. AND Debst.Aktiv = TRUE NO-ERROR.
  1035. IF NOT AVAILABLE Debst THEN NEXT.
  1036. FIND Adresse NO-LOCK USE-INDEX Adresse-k1
  1037. WHERE Adresse.Firma = AdFirma
  1038. AND Adresse.Knr = Debst.Knr NO-ERROR.
  1039. IF NOT AVAILABLE Adresse THEN NEXT.
  1040. IF NOT lInaktiv AND
  1041. NOT Adresse.Aktiv THEN NEXT.
  1042. ASSIGN iAnzAdr = iAnzAdr + 1
  1043. tSuchFelder.lGefunden = TRUE.
  1044. CREATE tAdresse.
  1045. BUFFER-COPY Adresse TO tAdresse
  1046. ASSIGN tAdresse.iRecid = RECID(Adresse)
  1047. tAdresse.cSort = STRING(iPrior,'99') + STRING(Adresse.Knr,'99999999').
  1048. END.
  1049. FIND FIRST tSuchFelder NO-LOCK
  1050. WHERE tSuchFelder.cSuch > '' NO-ERROR.
  1051. IF NOT AVAILABLE tSuchFelder THEN RETURN iAnzAdr.
  1052. /* Suchbegriff für Debitor zu den Suchwörtern hinzufügen */
  1053. CREATE tSuchFelder.
  1054. ASSIGN tSuchFelder.iWort = 0
  1055. tSuchFelder.iSuch = 0
  1056. tSuchFelder.cSuch = 'XDEBSTX'
  1057. tSuchFelder.lGefunden = FALSE.
  1058. iAnzAdr = DYNAMIC-FUNCTION('startQueryAdresse':U) NO-ERROR.
  1059. /*
  1060. FOR EACH tAdresse:
  1061. FIND Debst NO-LOCK USE-INDEX Debst-k1
  1062. WHERE Debst.Firma = Firma
  1063. AND Debst.Knr = tAdresse.Knr NO-ERROR.
  1064. IF NOT AVAILABLE Debst THEN DO:
  1065. DELETE tAdresse.
  1066. iAnzAdr = iAnzAdr - 1.
  1067. NEXT.
  1068. END.
  1069. IF Debst.KnrFak > 0 AND
  1070. Debst.KnrFak <> Debst.Knr THEN NEXT.
  1071. iKnrFak = Debst.Knr.
  1072. FIND FIRST Debst USE-INDEX Debst-KnrFak
  1073. WHERE Debst.Firma = Firma
  1074. AND Debst.KnrFak = iKnrFak
  1075. AND Debst.Aktiv NO-ERROR.
  1076. IF NOT AVAILABLE Debst THEN NEXT.
  1077. FIND FIRST Artbw NO-LOCK USE-INDEX Artbw-k3
  1078. WHERE Artbw.Firma = Firma
  1079. AND Artbw.Knr = tAdresse.Knr NO-ERROR.
  1080. IF NOT AVAILABLE Artbw THEN DO:
  1081. DELETE tAdresse.
  1082. iAnzAdr = iAnzAdr - 1.
  1083. NEXT.
  1084. END.
  1085. IF Artbw.Datum < (TODAY - 730) THEN DO:
  1086. DELETE tAdresse.
  1087. iAnzAdr = iAnzAdr - 1.
  1088. NEXT.
  1089. END.
  1090. END.
  1091. */
  1092. RETURN iAnzAdr.
  1093. END FUNCTION.
  1094. /* _UIB-CODE-BLOCK-END */
  1095. &ANALYZE-RESUME
  1096. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION startQueryKundenbesuch gSuchenAdressen
  1097. FUNCTION startQueryKundenbesuch RETURNS INTEGER
  1098. ( /* parameter-definitions */ ) :
  1099. /*------------------------------------------------------------------------------
  1100. Purpose:
  1101. Notes:
  1102. ------------------------------------------------------------------------------*/
  1103. DEF VAR iAnzAdr AS INT NO-UNDO.
  1104. DEF VAR lJa AS LOG NO-UNDO.
  1105. DEF VAR aWorte AS CHAR NO-UNDO.
  1106. DEF VAR nWorte AS CHAR NO-UNDO.
  1107. DEF VAR ii AS INT NO-UNDO.
  1108. DEF VAR iKnrFak AS INT NO-UNDO.
  1109. DEF BUFFER btAdresse FOR tAdresse.
  1110. FOR EACH tSuchFelder NO-LOCK
  1111. WHERE tSuchFelder.iSuch > 0
  1112. AND tSuchFelder.lGefunden = FALSE:
  1113. IF iVertr < 999999 THEN DO:
  1114. FIND Debst NO-LOCK USE-INDEX Debst-Vertr
  1115. WHERE Debst.Firma = Firma
  1116. AND Debst.Knr = tSuchFelder.iSuch
  1117. AND Debst.Vertr = iVertr
  1118. AND Debst.Aktiv = TRUE NO-ERROR.
  1119. IF NOT AVAILABLE Debst THEN NEXT.
  1120. END.
  1121. FIND Adresse NO-LOCK USE-INDEX Adresse-k1
  1122. WHERE Adresse.Firma = AdFirma
  1123. AND Adresse.Knr = tSuchFelder.iSuch NO-ERROR.
  1124. IF NOT AVAILABLE Adresse THEN NEXT.
  1125. IF NOT lInaktiv AND
  1126. NOT Adresse.Aktiv THEN NEXT.
  1127. ASSIGN iAnzAdr = iAnzAdr + 1
  1128. tSuchFelder.lGefunden = TRUE.
  1129. CREATE tAdresse.
  1130. BUFFER-COPY Adresse TO tAdresse
  1131. ASSIGN tAdresse.iRecid = RECID(Adresse)
  1132. tAdresse.cSort = STRING(iPrior,'99') + STRING(Adresse.Knr,'99999999').
  1133. END.
  1134. FIND FIRST tSuchFelder NO-LOCK
  1135. WHERE tSuchFelder.cSuch > '' NO-ERROR.
  1136. IF NOT AVAILABLE tSuchFelder THEN RETURN iAnzAdr.
  1137. /* Suchbegriff für Debitor zu den Suchwörtern hinzufügen */
  1138. CREATE tSuchFelder.
  1139. ASSIGN tSuchFelder.iWort = 0
  1140. tSuchFelder.iSuch = 0
  1141. tSuchFelder.cSuch = 'XDEBSTX'
  1142. tSuchFelder.lGefunden = FALSE.
  1143. iAnzAdr = DYNAMIC-FUNCTION('startQueryAdresse':U) NO-ERROR.
  1144. IF iVertr = 999999 THEN RETURN iAnzAdr.
  1145. FOR EACH tAdresse:
  1146. FIND Debst NO-LOCK USE-INDEX Debst-Vertr
  1147. WHERE Debst.Firma = Firma
  1148. AND Debst.Knr = tAdresse.Knr
  1149. AND Debst.Vertr = iVertr NO-ERROR.
  1150. IF NOT AVAILABLE Debst THEN DO:
  1151. DELETE tAdresse.
  1152. iAnzAdr = iAnzAdr - 1.
  1153. NEXT.
  1154. END.
  1155. END.
  1156. RETURN iAnzAdr.
  1157. END FUNCTION.
  1158. /* _UIB-CODE-BLOCK-END */
  1159. &ANALYZE-RESUME
  1160. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION startQueryLieferant gSuchenAdressen
  1161. FUNCTION startQueryLieferant RETURNS INTEGER
  1162. ( /* parameter-definitions */ ) :
  1163. /*------------------------------------------------------------------------------
  1164. Purpose:
  1165. Notes:
  1166. ------------------------------------------------------------------------------*/
  1167. DEF VAR iAnzAdr AS INT NO-UNDO.
  1168. DEF VAR lJa AS LOG NO-UNDO.
  1169. DEF VAR aWorte AS CHAR NO-UNDO.
  1170. DEF VAR nWorte AS CHAR NO-UNDO.
  1171. DEF VAR ii AS INT NO-UNDO.
  1172. FOR EACH tSuchFelder NO-LOCK
  1173. WHERE tSuchFelder.iSuch > 0
  1174. AND tSuchFelder.lGefunden = FALSE:
  1175. FIND Liefst NO-LOCK USE-INDEX Liefst-k1
  1176. WHERE Liefst.Firma = Firma
  1177. AND Liefst.Knr = tSuchFelder.iSuch
  1178. AND Liefst.Aktiv = TRUE NO-ERROR.
  1179. IF NOT AVAILABLE Liefst THEN NEXT.
  1180. FIND Adresse NO-LOCK USE-INDEX Adresse-k1
  1181. WHERE Adresse.Firma = AdFirma
  1182. AND Adresse.Knr = Liefst.Knr NO-ERROR.
  1183. IF NOT AVAILABLE Adresse THEN NEXT.
  1184. IF NOT lInaktiv AND
  1185. NOT Adresse.Aktiv THEN NEXT.
  1186. ASSIGN iAnzAdr = iAnzAdr + 1
  1187. tSuchFelder.lGefunden = TRUE.
  1188. CREATE tAdresse.
  1189. BUFFER-COPY Adresse TO tAdresse
  1190. ASSIGN tAdresse.iRecid = RECID(Adresse)
  1191. tAdresse.cSort = STRING(iPrior,'99') + STRING(Adresse.Knr,'99999999').
  1192. END.
  1193. FIND FIRST tSuchFelder NO-LOCK
  1194. WHERE tSuchFelder.cSuch > '' NO-ERROR.
  1195. IF NOT AVAILABLE tSuchFelder THEN RETURN iAnzAdr.
  1196. /* Suchbegriff für Lieferant zu den Suchwörtern hinzufügen */
  1197. CREATE tSuchFelder.
  1198. ASSIGN tSuchFelder.iWort = 0
  1199. tSuchFelder.iSuch = 0
  1200. tSuchFelder.cSuch = 'XLIEFSTX'
  1201. tSuchFelder.lGefunden = FALSE.
  1202. iAnzAdr = DYNAMIC-FUNCTION('startQueryAdresse':U) NO-ERROR.
  1203. RETURN iAnzAdr.
  1204. END FUNCTION.
  1205. /* _UIB-CODE-BLOCK-END */
  1206. &ANALYZE-RESUME