| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492 |
- &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
- &ANALYZE-RESUME
- /* Connected Databases
- anadat PROGRESS
- */
- &Scoped-define WINDOW-NAME CURRENT-WINDOW
- &Scoped-define FRAME-NAME gSuchenAdressen
- {adecomm/appserv.i}
- /* Temp-Table and Buffer definitions */
- DEFINE TEMP-TABLE tAdresse NO-UNDO LIKE Adresse
- FIELD iRecid AS RECID
- FIELD cSort AS CHAR
- .
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gSuchenAdressen
- /*------------------------------------------------------------------------
- File:
- Description: from cntnrdlg.w - ADM2 SmartDialog Template
- Input Parameters:
- <none>
- Output Parameters:
- <none>
- Author:
- Created:
- ------------------------------------------------------------------------*/
- /* This .W file was created with the Progress AppBuilder. */
- /*----------------------------------------------------------------------*/
- /* Create an unnamed pool to store all the widgets created
- by this procedure. This is a good default which assures
- that this procedure's triggers and internal procedures
- will execute in this procedure's storage, and that proper
- cleanup will occur on deletion of the procedure. */
- CREATE WIDGET-POOL.
- /* *************************** Definitions ************************** */
- /* Parameters Definitions --- */
- DEF INPUT PARAMETER ipSuchbe AS CHAR NO-UNDO.
- DEF OUTPUT PARAMETER opRecid AS RECID NO-UNDO.
- /* Local Variable Definitions --- */
- &SCOPED-DEFINE Tabelle tAdresse
- &SCOPED-DEFINE Feld WordIndex
- { incl/dlgdefinition.i }
- { incl/dynbrwdefinition.i }
- DEF VAR xFakAdr AS CHAR NO-UNDO.
- DEF VAR cHerk AS CHAR NO-UNDO.
- DEF VAR fAdmin AS LOG NO-UNDO.
- DEF VAR iVertr AS INT NO-UNDO.
- DEF VAR lInaktiv AS LOG NO-UNDO.
- DEF VAR cInstallation AS CHAR NO-UNDO.
- DEF VAR cSort AS CHAR INIT 'cSort' NO-UNDO.
- DEF VAR lAufAb AS LOG INIT TRUE NO-UNDO.
- DEF VAR cAufAb AS CHAR INIT '' NO-UNDO.
- DEF VAR lAlfa AS LOG INIT FALSE NO-UNDO.
- DEF VAR iPrior AS INT INIT 0 NO-UNDO.
- DEF VAR BGNormal AS INT NO-UNDO.
- DEF VAR BGFreigabe AS INT NO-UNDO.
- DEF VAR BGDelete AS INT NO-UNDO.
- DEF VAR RetValue AS CHAR NO-UNDO.
- DEF TEMP-TABLE tSuchFelder NO-UNDO
- FIELD iWort AS INT
- FIELD iSuch AS INT
- FIELD cSuch AS CHAR
- FIELD lGefunden AS LOG INIT FALSE
-
- INDEX tSuchFelder-k1 IS PRIMARY
- iWort
- .
-
- { src/adm2/widgetprto.i }
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
- /* ******************** Preprocessor Definitions ******************** */
- &Scoped-define PROCEDURE-TYPE SmartDialog
- &Scoped-define DB-AWARE no
- &Scoped-define ADM-CONTAINER DIALOG-BOX
- &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
- /* Name of designated FRAME-NAME and/or first browse and/or first query */
- &Scoped-define FRAME-NAME gSuchenAdressen
- &Scoped-define BROWSE-NAME Browser_suchen
- /* Internal Tables (found by Frame, Query & Browse Queries) */
- &Scoped-define INTERNAL-TABLES tAdresse
- /* Definitions for BROWSE Browser_suchen */
- &Scoped-define FIELDS-IN-QUERY-Browser_suchen tAdresse.Knr ~
- tAdresse.Anzeig_br tAdresse.Firma1 tAdresse.Name tAdresse.Ort ~
- DYNAMIC-FUNCTION('getFakturaAdresse':U, Knr ) @ xFakAdr tAdresse.Suchbe ~
- tAdresse.cSort @ cSort
- &Scoped-define ENABLED-FIELDS-IN-QUERY-Browser_suchen
- &Scoped-define QUERY-STRING-Browser_suchen FOR EACH tAdresse NO-LOCK INDEXED-REPOSITION
- &Scoped-define OPEN-QUERY-Browser_suchen OPEN QUERY Browser_suchen FOR EACH tAdresse NO-LOCK INDEXED-REPOSITION.
- &Scoped-define TABLES-IN-QUERY-Browser_suchen tAdresse
- &Scoped-define FIRST-TABLE-IN-QUERY-Browser_suchen tAdresse
- /* Definitions for DIALOG-BOX gSuchenAdressen */
- &Scoped-define OPEN-BROWSERS-IN-QUERY-gSuchenAdressen ~
- ~{&OPEN-QUERY-Browser_suchen}
- /* Standard List Definitions */
- &Scoped-Define ENABLED-OBJECTS RECT-2 F_Suchbegriffe Browser_suchen
- &Scoped-Define DISPLAYED-OBJECTS F_Suchbegriffe
- /* Custom List Definitions */
- /* List-1,List-2,List-3,List-4,List-5,List-6 */
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- /* ************************ Function Prototypes ********************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getAdresseSelektiert gSuchenAdressen
- FUNCTION getAdresseSelektiert RETURNS LOGICAL
- ( ipKnr AS INT ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getFakturaAdresse gSuchenAdressen
- FUNCTION getFakturaAdresse RETURNS CHARACTER
- ( ipKnr AS INT ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setKollonnenfarbe gSuchenAdressen
- FUNCTION setKollonnenfarbe RETURNS LOGICAL
- ( ipFarbe AS INT ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD startQueryAdresse gSuchenAdressen
- FUNCTION startQueryAdresse RETURNS INTEGER
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD startQueryAuftrag gSuchenAdressen
- FUNCTION startQueryAuftrag RETURNS INTEGER
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD startQueryDebst gSuchenAdressen
- FUNCTION startQueryDebst RETURNS INTEGER
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD startQueryKundenbesuch gSuchenAdressen
- FUNCTION startQueryKundenbesuch RETURNS INTEGER
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD startQueryLieferant gSuchenAdressen
- FUNCTION startQueryLieferant RETURNS INTEGER
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* *********************** Control Definitions ********************** */
- /* Define a dialog box */
- /* Menu Definitions */
- DEFINE MENU POPUP-MENU-Browser_suchen
- MENU-ITEM X_INAKTIVE_EINAUS LABEL "inaktive anzeigen ?"
- TOGGLE-BOX.
- /* Definitions of the field level widgets */
- DEFINE VARIABLE F_Suchbegriffe AS CHARACTER FORMAT "X(256)":U
- LABEL "suchen nach"
- VIEW-AS FILL-IN NATIVE
- SIZE 50 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE RECTANGLE RECT-2
- EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
- SIZE 210 BY 19.52.
- /* Query definitions */
- &ANALYZE-SUSPEND
- DEFINE QUERY Browser_suchen FOR
- tAdresse SCROLLING.
- &ANALYZE-RESUME
- /* Browse definitions */
- DEFINE BROWSE Browser_suchen
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Browser_suchen gSuchenAdressen _STRUCTURED
- QUERY Browser_suchen NO-LOCK DISPLAY
- tAdresse.Knr FORMAT "999999":U WIDTH 8
- tAdresse.Anzeig_br COLUMN-LABEL "Adresse" FORMAT "x(75)":U
- tAdresse.Firma1 FORMAT "x(35)":U WIDTH 25
- tAdresse.Name FORMAT "x(35)":U WIDTH 25
- tAdresse.Ort FORMAT "X(30)":U WIDTH 25
- DYNAMIC-FUNCTION('getFakturaAdresse':U, Knr ) @ xFakAdr COLUMN-LABEL "Faktura-Adresse" FORMAT "x(60)":U
- WIDTH 40
- tAdresse.Suchbe FORMAT "X(20)":U
- tAdresse.cSort @ cSort COLUMN-LABEL "Sortierung" FORMAT "x(12)":U
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- WITH NO-ROW-MARKERS SEPARATORS SIZE 206 BY 17.14.
- /* ************************ Frame Definitions *********************** */
- DEFINE FRAME gSuchenAdressen
- F_Suchbegriffe AT ROW 2 COL 17.8 COLON-ALIGNED WIDGET-ID 4
- Browser_suchen AT ROW 3.38 COL 3 WIDGET-ID 200
- RECT-2 AT ROW 1.24 COL 2 WIDGET-ID 2
- SPACE(1.79) SKIP(0.37)
- WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
- SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
- TITLE "Adressen suchen" WIDGET-ID 100.
- /* *********************** Procedure Settings ************************ */
- &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
- /* Settings for THIS-PROCEDURE
- Type: SmartDialog
- Allow: Basic,Browse,DB-Fields,Query,Smart
- Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
- Design Page: 1
- Other Settings: COMPILE APPSERVER
- Temp-Tables and Buffers:
- TABLE: tAdresse T "?" NO-UNDO AnaDat Adresse
- ADDITIONAL-FIELDS:
- FIELD iRecid AS RECID
- FIELD cSort AS CHAR
-
- END-FIELDS.
- END-TABLES.
- */
- &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gSuchenAdressen
- /* ************************* Included-Libraries *********************** */
- {src/adm2/containr.i}
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* *********** Runtime Attributes and AppBuilder Settings *********** */
- &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
- /* SETTINGS FOR DIALOG-BOX gSuchenAdressen
- FRAME-NAME */
- /* BROWSE-TAB Browser_suchen F_Suchbegriffe gSuchenAdressen */
- ASSIGN
- FRAME gSuchenAdressen:SCROLLABLE = FALSE
- FRAME gSuchenAdressen:HIDDEN = TRUE.
- ASSIGN
- Browser_suchen:POPUP-MENU IN FRAME gSuchenAdressen = MENU POPUP-MENU-Browser_suchen:HANDLE
- Browser_suchen:COLUMN-RESIZABLE IN FRAME gSuchenAdressen = TRUE
- Browser_suchen:COLUMN-MOVABLE IN FRAME gSuchenAdressen = TRUE.
- /* _RUN-TIME-ATTRIBUTES-END */
- &ANALYZE-RESUME
- /* Setting information for Queries and Browse Widgets fields */
- &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Browser_suchen
- /* Query rebuild information for BROWSE Browser_suchen
- _TblList = "Temp-Tables.tAdresse"
- _Options = "NO-LOCK INDEXED-REPOSITION"
- _FldNameList[1] > Temp-Tables.tAdresse.Knr
- "tAdresse.Knr" ? ? "integer" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[2] > Temp-Tables.tAdresse.Anzeig_br
- "tAdresse.Anzeig_br" "Adresse" ? "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[3] > Temp-Tables.tAdresse.Firma1
- "tAdresse.Firma1" ? ? "character" ? ? ? ? ? ? no ? no no "25" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[4] > Temp-Tables.tAdresse.Name
- "tAdresse.Name" ? ? "character" ? ? ? ? ? ? no ? no no "25" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[5] > Temp-Tables.tAdresse.Ort
- "tAdresse.Ort" ? ? "character" ? ? ? ? ? ? no ? no no "25" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[6] > "_<CALC>"
- "DYNAMIC-FUNCTION('getFakturaAdresse':U, Knr ) @ xFakAdr" "Faktura-Adresse" "x(60)" ? ? ? ? ? ? ? no ? no no "40" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[7] = Temp-Tables.tAdresse.Suchbe
- _FldNameList[8] > "_<CALC>"
- "tAdresse.cSort @ cSort" "Sortierung" "x(12)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _Query is OPENED
- */ /* BROWSE Browser_suchen */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gSuchenAdressen
- /* Query rebuild information for DIALOG-BOX gSuchenAdressen
- _Options = "SHARE-LOCK"
- _Query is NOT OPENED
- */ /* DIALOG-BOX gSuchenAdressen */
- &ANALYZE-RESUME
-
- /* ************************ Control Triggers ************************ */
- &Scoped-define SELF-NAME gSuchenAdressen
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gSuchenAdressen gSuchenAdressen
- ON END-ERROR OF FRAME gSuchenAdressen /* Adressen suchen */
- DO:
- opRecid = ?.
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gSuchenAdressen gSuchenAdressen
- ON WINDOW-CLOSE OF FRAME gSuchenAdressen /* Adressen suchen */
- DO:
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define BROWSE-NAME Browser_suchen
- &Scoped-define SELF-NAME Browser_suchen
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Browser_suchen gSuchenAdressen
- ON END-ERROR OF Browser_suchen IN FRAME gSuchenAdressen
- DO:
- APPLY 'ENTRY' TO F_Suchbegriffe.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Browser_suchen gSuchenAdressen
- ON LEFT-MOUSE-DBLCLICK OF Browser_suchen IN FRAME gSuchenAdressen
- DO:
- IF NUM-RESULTS('{&BROWSE-NAME}') = ? THEN RETURN NO-APPLY.
- IF NUM-RESULTS('{&BROWSE-NAME}') = 0 THEN RETURN NO-APPLY.
- BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
- opRecid = tAdresse.iRecid.
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Browser_suchen gSuchenAdressen
- ON RETURN OF Browser_suchen IN FRAME gSuchenAdressen
- DO:
- IF NUM-RESULTS('{&BROWSE-NAME}') = ? THEN RETURN NO-APPLY.
- IF NUM-RESULTS('{&BROWSE-NAME}') = 0 THEN RETURN NO-APPLY.
- BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
- opRecid = tAdresse.iRecid.
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Browser_suchen gSuchenAdressen
- ON ROW-DISPLAY OF Browser_suchen IN FRAME gSuchenAdressen
- DO:
- DEF VAR iFarbe AS INT NO-UNDO.
- IF NOT tAdresse.Aktiv THEN iFarbe = BGDelete.
- ELSE
- IF NOT tAdresse.lFreigabe THEN iFarbe = BGFreigabe.
- ELSE iFarbe = BGNormal.
- DYNAMIC-FUNCTION('setKollonnenfarbe':U, iFarbe) NO-ERROR.
-
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Browser_suchen gSuchenAdressen
- ON START-SEARCH OF Browser_suchen IN FRAME gSuchenAdressen
- DO:
- { incl/dynbrwstartsearch.i }
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Suchbegriffe
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Suchbegriffe gSuchenAdressen
- ON RETURN OF F_Suchbegriffe IN FRAME gSuchenAdressen /* suchen nach */
- DO:
- ASSIGN F_Suchbegriffe.
- RUN START_QUERY ( SELF:SCREEN-VALUE).
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &UNDEFINE SELF-NAME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gSuchenAdressen
- /* *************************** Main Block *************************** */
- IF ipSuchbe = '' THEN ipSuchbe = 'ADR'.
- IF NUM-ENTRIES(ipSuchbe, ';') = 1 THEN DO:
- IF ipSuchbe BEGINS 'ADR' THEN ASSIGN cHerk = ipSuchbe ipSuchbe = ''.
- IF ipSuchbe BEGINS 'AUF' THEN ASSIGN cHerk = ipSuchbe ipSuchbe = ''.
- IF ipSuchbe BEGINS 'DEB' THEN ASSIGN cHerk = ipSuchbe ipSuchbe = ''.
- IF ipSuchbe BEGINS 'LIE' THEN ASSIGN cHerk = ipSuchbe ipSuchbe = ''.
- IF ipSuchbe BEGINS 'KUBES' THEN ASSIGN cHerk = ipSuchbe ipSuchbe = ''.
- END.
- IF NUM-ENTRIES(ipSuchbe, ';') > 1 THEN DO:
- cHerk = ENTRY(01, ipSuchbe, ';') NO-ERROR.
- ipSuchbe = ENTRY(02, ipSuchbe, ';') NO-ERROR.
- IF ipSuchbe = ? THEN ipSuchbe = ''.
- END.
- IF cHerk BEGINS 'KUBES' THEN DO:
- iVertr = INTEGER(ENTRY(2, cHerk, ',')) NO-ERROR.
- cHerk = ENTRY(1, cHerk, ',') NO-ERROR.
- END.
- { incl/dlgmainblock.i }
- { incl/dynbrwmainblock.i }
- { incl/dynbrwinternproc.i }
- F_Suchbegriffe = ipSuchbe.
- opRecid = ?.
- fAdmin = DYNAMIC-FUNCTION('getAdmin':U ) NO-ERROR.
- cInstallation = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR.
- { src/adm2/dialogmn.i }
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gSuchenAdressen _ADM-CREATE-OBJECTS
- PROCEDURE adm-create-objects :
- /*------------------------------------------------------------------------------
- Purpose: Create handles for all SmartObjects used in this procedure.
- After SmartObjects are initialized, then SmartLinks are added.
- Parameters: <none>
- ------------------------------------------------------------------------------*/
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE destroyObject gSuchenAdressen
- PROCEDURE destroyObject :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- { incl/dynbrwdestroy.i }
- RUN SUPER.
- /* Code placed here will execute AFTER standard behavior. */
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gSuchenAdressen _DEFAULT-DISABLE
- PROCEDURE disable_UI :
- /*------------------------------------------------------------------------------
- Purpose: DISABLE the User Interface
- Parameters: <none>
- Notes: Here we clean-up the user-interface by deleting
- dynamic widgets we have created and/or hide
- frames. This procedure is usually called when
- we are ready to "clean-up" after running.
- ------------------------------------------------------------------------------*/
- /* Hide all frames. */
- HIDE FRAME gSuchenAdressen.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gSuchenAdressen
- PROCEDURE enableObject :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- GET-KEY-VALUE SECTION 'Grundeinstellungen'
- KEY 'BGGeloescht'
- VALUE RetValue.
- IF RetValue = ? THEN ASSIGN RetValue = ''.
- IF RetValue = '' THEN ASSIGN RetValue = '12'.
- BGDelete = INTEGER(RetValue).
- GET-KEY-VALUE SECTION 'Grundeinstellungen'
- KEY 'BGFreigabe'
- VALUE RetValue.
- IF RetValue = ? THEN ASSIGN RetValue = ''.
- IF RetValue = '' THEN ASSIGN RetValue = '14'.
- BGFreigabe = INTEGER(RetValue).
- BGNormal = 15.
-
- { incl/dlgenableobject.i }
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gSuchenAdressen _DEFAULT-ENABLE
- PROCEDURE enable_UI :
- /*------------------------------------------------------------------------------
- Purpose: ENABLE the User Interface
- Parameters: <none>
- Notes: Here we display/view/enable the widgets in the
- user-interface. In addition, OPEN all queries
- associated with each FRAME and BROWSE.
- These statements here are based on the "Other
- Settings" section of the widget Property Sheets.
- ------------------------------------------------------------------------------*/
- DISPLAY F_Suchbegriffe
- WITH FRAME gSuchenAdressen.
- ENABLE RECT-2 F_Suchbegriffe Browser_suchen
- WITH FRAME gSuchenAdressen.
- VIEW FRAME gSuchenAdressen.
- {&OPEN-BROWSERS-IN-QUERY-gSuchenAdressen}
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gSuchenAdressen
- PROCEDURE ENDE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- { incl/dlgende.i }
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INAKTIVE_EINAUS gSuchenAdressen
- PROCEDURE INAKTIVE_EINAUS :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR cString AS CHAR NO-UNDO.
- DO WITH FRAME {&FRAME-NAME}:
- cString = F_Suchbegriffe:SCREEN-VALUE.
- lInaktiv = NOT lInaktiv.
- DYNAMIC-FUNCTION('setAnzeigeAdresseInaktiv':U, lInaktiv ) NO-ERROR.
- RUN START_QUERY ( cString ).
- RETURN NO-APPLY.
- END.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject gSuchenAdressen
- PROCEDURE initializeObject :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR cName AS CHAR NO-UNDO.
- DEF VAR xWhere AS CHAR NO-UNDO.
- RUN SUPER.
- DO WITH FRAME {&FRAME-NAME}:
- hbQuery = {&BROWSE-NAME}:QUERY.
- hqBuffer = hbQuery:GET-BUFFER-HANDLE(1).
- cqTabelle = hqBuffer:NAME.
- END.
- xWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK BY &2 &3 ', cqTabelle, cSort, cAufAb ).
- hbQuery:QUERY-PREPARE(xWhere).
-
- { incl/dynbrwinitialize.i}
- lInaktiv = DYNAMIC-FUNCTION('getAnzeigeAdresseInaktiv':U) NO-ERROR.
- IF NOT fAdmin THEN lInaktiv = FALSE.
- hInaktiv:CHECKED = lInaktiv.
-
- IF ipSuchbe <> '' THEN RUN START_QUERY ( ipSuchbe ).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPENQUERY gSuchenAdressen
- PROCEDURE OPENQUERY :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR xWhere AS CHAR NO-UNDO.
- xWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK BY &2 &3 ', cqTabelle, cSort, cAufAb).
- hbQuery:QUERY-PREPARE(xWhere) NO-ERROR.
- hbQuery:QUERY-OPEN() NO-ERROR.
- DO WITH FRAME {&FRAME-NAME}:
- IF hbQuery:NUM-RESULTS = 0 OR
- hbQuery:NUM-RESULTS = ?
- THEN APPLY 'ENTRY' TO F_Suchbegriffe.
- ELSE APPLY 'ENTRY' TO {&BROWSE-NAME}.
- RETURN NO-APPLY.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_SORT gSuchenAdressen
- PROCEDURE SET_SORT :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipSort AS CHAR NO-UNDO.
- IF ipSort = cSort THEN lAufAb = NOT lAufAb.
- cSort = ipSort.
- cAufAb = (IF lAufAb THEN '' ELSE 'DESCENDING').
- RUN OPENQUERY.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE START_QUERY gSuchenAdressen
- PROCEDURE START_QUERY :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipWorte AS CHAR NO-UNDO.
-
- DEF VAR xWort AS CHAR NO-UNDO.
- DEF VAR aWorte AS CHAR NO-UNDO.
- DEF VAR yy AS INT NO-UNDO.
- DEF VAR Zahl AS INT NO-UNDO.
- DEF VAR iKnrFak AS INT NO-UNDO.
- DEF VAR fNumSort AS LOG INIT FALSE NO-UNDO.
- DEF VAR iAnzAdr AS INT NO-UNDO.
- DEF VAR cSuchbe AS CHAR NO-UNDO.
-
- EMPTY TEMP-TABLE tAdresse.
- EMPTY TEMP-TABLE tSuchFelder.
- ipWorte = REPLACE(ipWorte, '*', '').
- iPrior = 0.
- lAlfa = FALSE.
- DO yy = 1 TO NUM-ENTRIES(ipWorte, ' '):
- CREATE tSuchFelder.
- ASSIGN tSuchFelder.iWort = yy
- tSuchFelder.iSuch = 0
- tSuchFelder.cSuch = ''
- tSuchFelder.lGefunden = FALSE.
-
- xWort = TRIM(ENTRY(yy, ipWorte, ' ')).
-
- Zahl = INTEGER(xWort) NO-ERROR.
- IF NOT ERROR-STATUS:ERROR AND
- Zahl < 1000000 AND
- NOT xWort BEGINS '0' THEN DO:
- tSuchFelder.iSuch = Zahl.
-
- CREATE tSuchFelder.
- ASSIGN tSuchFelder.iWort = yy
- tSuchFelder.iSuch = 0
- tSuchFelder.cSuch = xWort
- tSuchFelder.lGefunden = FALSE.
- NEXT.
- END.
-
- tSuchFelder.cSuch = xWort.
- END.
- FIND FIRST tSuchFelder NO-LOCK NO-ERROR.
- IF NOT AVAILABLE tSuchFelder THEN DO:
- MESSAGE 'Kein Suchbegriff eingegeben'
- VIEW-AS ALERT-BOX INFORMATION.
- APPLY 'ENTRY' TO F_Suchbegriffe IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
-
- CASE cHerk:
- WHEN 'ADR' THEN iAnzAdr = DYNAMIC-FUNCTION('startQueryAdresse':U ).
- WHEN 'AUF' THEN iAnzAdr = DYNAMIC-FUNCTION('startQueryAuftrag':U ).
- WHEN 'DEB' THEN iAnzAdr = DYNAMIC-FUNCTION('startQueryDebst':U ).
- WHEN 'LIE' THEN iAnzAdr = DYNAMIC-FUNCTION('startQueryLieferant':U ).
- WHEN 'KUBES' THEN DO:
- /* oswald spezial */
- IF cInstallation = 'oswald' AND
- iVertr = 30 THEN iVertr = 999999.
- IF iVertr = 999999 THEN iAnzAdr = DYNAMIC-FUNCTION('startQueryAdresse':U ).
- ELSE iAnzAdr = DYNAMIC-FUNCTION('startQueryKundenbesuch':U).
- END.
- END.
- IF lAlfa THEN DO:
- FOR EACH tAdresse:
- IF tAdresse.Suchbe <> '' THEN cSuchbe = tAdresse.cSort + SUBSTRING(cSuchbe,01,02) + tAdresse.Suchbe.
- ELSE
- IF tAdresse.Firma1 <> '' THEN cSuchbe = tAdresse.cSort + SUBSTRING(cSuchbe,01,02) + tAdresse.Firma1.
- ELSE cSuchbe = tAdresse.cSort + SUBSTRING(cSuchbe,01,02) + tAdresse.Name.
- tAdresse.cSort = cSuchbe.
- END.
- END.
- RUN OPENQUERY.
- /*
- OPEN QUERY {&BROWSE-NAME}
- FOR EACH tAdresse NO-LOCK
-
- BY tAdresse.cSort.
- DO WITH FRAME {&FRAME-NAME}:
- IF NUM-RESULTS('{&BROWSE-NAME}') = 0 OR
- NUM-RESULTS('{&BROWSE-NAME}') = ?
- THEN APPLY 'ENTRY' TO F_Suchbegriffe.
- ELSE APPLY 'ENTRY' TO {&BROWSE-NAME}.
- RETURN NO-APPLY.
- END.
- */
- RETURN NO-APPLY.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ************************ Function Implementations ***************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getAdresseSelektiert gSuchenAdressen
- FUNCTION getAdresseSelektiert RETURNS LOGICAL
- ( ipKnr AS INT ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- FIND FIRST tAdresse NO-LOCK
- WHERE tAdresse.Firma = AdFirma
- AND tAdresse.Knr = ipKnr NO-ERROR.
- IF AVAILABLE tAdresse THEN RETURN TRUE.
-
- RETURN FALSE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getFakturaAdresse gSuchenAdressen
- FUNCTION getFakturaAdresse RETURNS CHARACTER
- ( ipKnr AS INT ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEF BUFFER BAdresse FOR Adresse.
- FIND Debst NO-LOCK
- WHERE Debst.Firma = Firma
- AND Debst.Knr = ipKnr NO-ERROR.
- IF NOT AVAILABLE Debst THEN RETURN ''.
- IF Debst.KnrFak = 0 THEN RETURN ''.
-
- FIND BAdresse NO-LOCK
- WHERE BAdresse.Firma = AdFirma
- AND BAdresse.Knr = Debst.KnrFak NO-ERROR.
- IF NOT AVAILABLE BAdresse THEN RETURN ''.
-
- RETURN STRING(BAdresse.Knr,'999999 ') + BAdresse.Anzeig_Br.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setKollonnenfarbe gSuchenAdressen
- FUNCTION setKollonnenfarbe RETURNS LOGICAL
- ( ipFarbe AS INT ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- { incl/brwsetzeilenfarbe.i }
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION startQueryAdresse gSuchenAdressen
- FUNCTION startQueryAdresse RETURNS INTEGER
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR iAnzAdr AS INT NO-UNDO.
- DEF VAR lJa AS LOG NO-UNDO.
- DEF VAR aWorte AS CHAR NO-UNDO.
- DEF VAR nWorte AS CHAR NO-UNDO.
- DEF VAR xWort AS CHAR NO-UNDO.
- DEF VAR ii AS INT NO-UNDO.
- /* Auf Adressenummern */
- iPrior = iPrior + 1.
- FOR EACH tSuchFelder NO-LOCK
- WHERE tSuchFelder.iSuch > 0
- AND tSuchFelder.lGefunden = FALSE:
- FIND Adresse NO-LOCK USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = tSuchFelder.iSuch NO-ERROR.
- IF NOT AVAILABLE Adresse THEN NEXT.
- IF NOT lInaktiv AND
- NOT Adresse.Aktiv THEN NEXT.
-
- ASSIGN iAnzAdr = iAnzAdr + 1
- tSuchFelder.lGefunden = TRUE.
- CREATE tAdresse.
- BUFFER-COPY Adresse TO tAdresse
- ASSIGN tAdresse.iRecid = RECID(Adresse)
- tAdresse.cSort = STRING(iPrior,'99') + STRING(Adresse.Knr,'99999999').
- lAlfa = FALSE.
- END.
-
- DO WHILE TRUE: /* OSWALD-SPEZIALFALL (Suchen nach Suchbegriff) */
- IF cInstallation <> 'OSWALD' AND
- cInstallation <> 'LaTorre' THEN LEAVE.
- iPrior = iPrior + 1.
- lJa = FALSE.
- aWorte = ''.
- FOR EACH tSuchFelder WHERE tSuchFelder.lGefunden = FALSE
- AND tSuchFelder.iSuch = 0
- AND tSuchFelder.iWort > 0:
- aWorte = aWorte + (IF aWorte = '' THEN '' ELSE ' ')
- + (IF tSuchFelder.iSuch = 0 THEN tSuchFelder.cSuch
- ELSE TRIM(STRING(tSuchFelder.iSuch,'>>>>>>>>>>>9'))).
- END.
- IF aWorte = '' THEN LEAVE.
- FOR EACH Adresse NO-LOCK USE-INDEX Adresse-k2
- WHERE Adresse.Firma = AdFirma
- AND ((lInaktiv)
- OR (NOT lInaktiv AND
- Adresse.Aktiv))
- AND Adresse.Suchbe BEGINS aWorte:
-
- IF NOT DYNAMIC-FUNCTION('getAdresseSelektiert':U, Adresse.Knr ) THEN DO:
- ASSIGN iAnzAdr = iAnzAdr + 1
- lJa = TRUE.
- CREATE tAdresse.
- BUFFER-COPY Adresse TO tAdresse
- ASSIGN tAdresse.iRecid = RECID(Adresse)
- tAdresse.cSort = STRING(iPrior,'99') + TRIM(SUBSTRING(Adresse.Suchbe,01,12)).
- END.
- END.
- IF lJa THEN lAlfa = TRUE.
- LEAVE.
- END.
- IF cInstallation = 'OSWALD' THEN DO:
- IF lJa THEN RETURN iAnzAdr.
- IF iAnzAdr > 0 THEN RETURN iAnzAdr.
- END.
-
- /* Auf genauen Inhalt der eingegebenen Worte */
-
- iPrior = iPrior + 1.
- aWorte = ''.
- FOR EACH tSuchFelder WHERE tSuchFelder.lGefunden = FALSE.
- aWorte = aWorte + (IF aWorte = '' THEN '' ELSE ' ')
- + (IF tSuchFelder.iSuch = 0 THEN tSuchFelder.cSuch
- ELSE TRIM(STRING(tSuchFelder.iSuch,'>>>>>>>>>>>9'))).
- END.
- IF aWorte = '' THEN RETURN iAnzAdr.
- lAlfa = TRUE.
- lJa = FALSE.
- GENAU:
- FOR EACH Adresse NO-LOCK
- WHERE Adresse.Firma = AdFirma
- AND ((lInaktiv)
- OR (NOT lInaktiv AND
- Adresse.Aktiv))
- AND Adresse.WortIndex CONTAINS aWorte:
-
- DO ii = 1 TO NUM-ENTRIES(aWorte, ' '):
- xWort = ENTRY(ii, aWorte, ' ').
- IF LOOKUP(xWort, Adresse.WortIndex, ' ') = 0 THEN NEXT GENAU.
- END.
- lJa = TRUE.
- IF NOT DYNAMIC-FUNCTION('getAdresseSelektiert':U, Adresse.Knr ) THEN DO:
- CREATE tAdresse.
- BUFFER-COPY Adresse TO tAdresse
- ASSIGN tAdresse.iRecid = RECID(Adresse)
- tAdresse.cSort = STRING(iPrior,'99') + REPLACE(ENTRY(1, F_Suchbegriffe, ' '), '*', '')
- iAnzAdr = iAnzAdr + 1.
- END.
- END.
- IF lJa AND
- iAnzAdr >= 20 THEN RETURN iAnzAdr.
-
- /* Auf matching Inhalt der eingegebenen Worte mit Beginn */
-
- iPrior = iPrior + 1.
- aWorte = ''.
- nWorte = ''.
- FOR EACH tSuchFelder WHERE tSuchFelder.lGefunden = FALSE.
- IF tSuchFelder.iWort = 0 THEN DO:
- nWorte = nWorte + (IF nWorte = '' THEN '' ELSE ' ')
- + tSuchFelder.cSuch.
- NEXT.
- END.
- IF tSuchFelder.iSuch > 0 THEN
- nWorte = nWorte + (IF nWorte = '' THEN '' ELSE ' ')
- + TRIM(STRING(tSuchFelder.iSuch,'>>>>>>>>>>>9')).
- ELSE
- aWorte = aWorte + (IF aWorte = '' THEN '' ELSE ' ')
- + tSuchFelder.cSuch + '*'.
- END.
- lJa = FALSE.
- FOR EACH Adresse NO-LOCK
- WHERE Adresse.Firma = AdFirma
- AND ((lInaktiv)
- OR (NOT lInaktiv AND
- Adresse.Aktiv))
- AND ((nWorte <> '' AND Adresse.WortIndex CONTAINS nWorte)
- OR (nWorte = ''))
- AND ((aWorte <> '' AND Adresse.WortIndex MATCHES aWorte)
- OR (aWorte = '')):
-
- lJa = TRUE.
- IF NOT DYNAMIC-FUNCTION('getAdresseSelektiert':U, Adresse.Knr ) THEN DO:
- CREATE tAdresse.
- BUFFER-COPY Adresse TO tAdresse
- ASSIGN tAdresse.iRecid = RECID(Adresse)
- tAdresse.cSort = STRING(iPrior,'99') + REPLACE(ENTRY(1, F_Suchbegriffe, ' '), '*', '')
- iAnzAdr = iAnzAdr + 1.
- END.
- END.
- IF lJa AND
- iAnzAdr >= 20 THEN RETURN iAnzAdr.
-
- /* Auf matching Inhalt der eingegebenen Worte */
-
- iPrior = iPrior + 1.
- aWorte = ''.
- nWorte = ''.
- FOR EACH tSuchFelder WHERE tSuchFelder.lGefunden = FALSE.
- IF tSuchFelder.iWort = 0 THEN DO:
- nWorte = nWorte + (IF nWorte = '' THEN '' ELSE ' ')
- + tSuchFelder.cSuch.
- NEXT.
- END.
- IF tSuchFelder.iSuch > 0 THEN
- nWorte = nWorte + (IF nWorte = '' THEN '' ELSE ' ')
- + TRIM(STRING(tSuchFelder.iSuch,'>>>>>>>>>>>9')).
- ELSE
- aWorte = aWorte + (IF aWorte = '' THEN '' ELSE ' ')
- + '*' + tSuchFelder.cSuch + '*'.
- END.
- lJa = FALSE.
- FOR EACH Adresse NO-LOCK
- WHERE Adresse.Firma = AdFirma
- AND ((lInaktiv)
- OR (NOT lInaktiv AND
- Adresse.Aktiv))
- AND ((nWorte <> '' AND Adresse.WortIndex CONTAINS nWorte)
- OR (nWorte = ''))
- AND ((aWorte <> '' AND Adresse.WortIndex MATCHES aWorte)
- OR (aWorte = '')):
-
- lJa = TRUE.
- IF NOT DYNAMIC-FUNCTION('getAdresseSelektiert':U, Adresse.Knr ) THEN DO:
- CREATE tAdresse.
- BUFFER-COPY Adresse TO tAdresse
- ASSIGN tAdresse.iRecid = RECID(Adresse)
- tAdresse.cSort = STRING(iPrior,'99') + REPLACE(ENTRY(1, F_Suchbegriffe, ' '), '*', '')
- iAnzAdr = iAnzAdr + 1.
- END.
- END.
- IF lJa THEN RETURN iAnzAdr.
-
- /* Auf matching mit weniger Begriffen der eingegebenen Worte */
- FOR EACH tSuchFelder WHERE tSuchFelder.iSuch > 0:
- DELETE tSuchFelder.
- END.
- DO WHILE TRUE:
- FIND LAST tSuchFelder WHERE tSuchFelder.iWort > 0 NO-ERROR.
- IF NOT AVAILABLE tSuchFelder THEN LEAVE.
- DELETE tSuchFelder.
- FIND FIRST tSuchFelder WHERE tSuchFelder.iWort > 0 NO-ERROR.
- IF NOT AVAILABLE tSuchFelder THEN LEAVE.
-
- iPrior = iPrior + 1.
- aWorte = ''.
- FOR EACH tSuchFelder WHERE tSuchFelder.lGefunden = FALSE.
- IF tSuchFelder.iWort = 0 THEN NEXT.
- aWorte = aWorte + (IF aWorte = '' THEN '' ELSE ' ')
- + '*'
- + tSuchFelder.cSuch
- + '*'.
- END.
- lJa = FALSE.
- FOR EACH Adresse NO-LOCK
- WHERE Adresse.Firma = AdFirma
- AND ((lInaktiv)
- OR (NOT lInaktiv AND
- Adresse.Aktiv))
- AND ((nWorte <> '' AND Adresse.WortIndex CONTAINS nWorte)
- OR (nWorte = ''))
- AND ((aWorte <> '' AND Adresse.WortIndex MATCHES aWorte)
- OR (aWorte = '')):
-
- lJa = TRUE.
- IF NOT DYNAMIC-FUNCTION('getAdresseSelektiert':U, Adresse.Knr ) THEN DO:
- CREATE tAdresse.
- BUFFER-COPY Adresse TO tAdresse
- ASSIGN tAdresse.iRecid = RECID(Adresse)
- tAdresse.cSort = STRING(iPrior,'99') + REPLACE(ENTRY(1, F_Suchbegriffe, ' '), '*', '')
- iAnzAdr = iAnzAdr + 1.
- END.
- END.
- IF lJa THEN RETURN iAnzAdr.
- END.
-
- IF nWorte = '' THEN RETURN iAnzAdr.
-
- /* matches mit den eingegeben Zahlen (wenn vorhanden) */
- iPrior = iPrior + 1.
- aWorte = ''.
- FOR EACH tSuchFelder WHERE tSuchFelder.iWort <> 0:
- DELETE tSuchFelder.
- END.
- DO ii = 1 TO NUM-ENTRIES(nWorte, ' '):
- xWort = ENTRY(ii, nWorte, ' ').
- FIND FIRST tSuchFelder WHERE tSuchFelder.cSuch = xWort NO-ERROR.
- IF AVAILABLE tSuchFelder THEN NEXT.
- CREATE tSuchFelder.
- ASSIGN tSuchFelder.iWort = ii
- tSuchFelder.iSuch = 0
- tSuchFelder.cSuch = xWort
- tSuchFelder.lGefunden = FALSE.
- END.
- FOR EACH tSuchFelder:
- IF tSuchFelder.iWort = 0 THEN DO:
- nWorte = tSuchFelder.cSuch.
- NEXT.
- END.
- aWorte = aWorte + (IF aWorte = '' THEN '' ELSE ' ')
- + '*' + tSuchFelder.cSuch + '*'.
- END.
- IF aWorte = '' THEN RETURN iAnzAdr.
- lJa = FALSE.
- FOR EACH Adresse NO-LOCK
- WHERE Adresse.Firma = AdFirma
- AND ((lInaktiv)
- OR (NOT lInaktiv AND
- Adresse.Aktiv))
- AND Adresse.WortIndex MATCHES aWorte:
-
- lJa = TRUE.
- IF NOT DYNAMIC-FUNCTION('getAdresseSelektiert':U, Adresse.Knr ) THEN DO:
- CREATE tAdresse.
- BUFFER-COPY Adresse TO tAdresse
- ASSIGN tAdresse.iRecid = RECID(Adresse)
- tAdresse.cSort = STRING(iPrior,'99') + REPLACE(ENTRY(1, F_Suchbegriffe, ' '), '*', '')
- iAnzAdr = iAnzAdr + 1.
- END.
- END.
- IF lJa THEN RETURN iAnzAdr.
-
- RETURN iAnzAdr.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION startQueryAuftrag gSuchenAdressen
- FUNCTION startQueryAuftrag RETURNS INTEGER
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR iAnzAdr AS INT NO-UNDO.
- DEF VAR lJa AS LOG NO-UNDO.
- DEF VAR aWorte AS CHAR NO-UNDO.
- DEF VAR nWorte AS CHAR NO-UNDO.
- DEF VAR ii AS INT NO-UNDO.
- DEF VAR iKnrFak AS INT NO-UNDO.
-
- DEF BUFFER btAdresse FOR tAdresse.
- FOR EACH tSuchFelder NO-LOCK
- WHERE tSuchFelder.iSuch > 0
- AND tSuchFelder.lGefunden = FALSE:
- FIND Debst NO-LOCK USE-INDEX Debst-k1
- WHERE Debst.Firma = Firma
- AND Debst.Knr = tSuchFelder.iSuch
- AND Debst.Aktiv = TRUE NO-ERROR.
- IF NOT AVAILABLE Debst THEN NEXT.
- FIND Adresse NO-LOCK USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = Debst.Knr NO-ERROR.
- IF NOT AVAILABLE Adresse THEN NEXT.
- IF NOT lInaktiv AND
- NOT Adresse.Aktiv THEN NEXT.
-
- ASSIGN iAnzAdr = iAnzAdr + 1
- tSuchFelder.lGefunden = TRUE.
- CREATE tAdresse.
- BUFFER-COPY Adresse TO tAdresse
- ASSIGN tAdresse.iRecid = RECID(Adresse)
- tAdresse.cSort = STRING(iPrior,'99') + STRING(Adresse.Knr,'99999999').
- END.
-
- FIND FIRST tSuchFelder NO-LOCK
- WHERE tSuchFelder.cSuch > '' NO-ERROR.
- IF NOT AVAILABLE tSuchFelder THEN RETURN iAnzAdr.
- /* Suchbegriff für Debitoren zu den Suchwörtern hinzufügen */
- CREATE tSuchFelder.
- ASSIGN tSuchFelder.iWort = 0
- tSuchFelder.iSuch = 0
- tSuchFelder.cSuch = 'XDEBSTX'
- tSuchFelder.lGefunden = FALSE.
- iAnzAdr = DYNAMIC-FUNCTION('startQueryAdresse':U) NO-ERROR.
-
- FOR EACH tAdresse:
- FIND Debst NO-LOCK USE-INDEX Debst-k1
- WHERE Debst.Firma = Firma
- AND Debst.Knr = tAdresse.Knr NO-ERROR.
- IF NOT AVAILABLE Debst THEN DO:
- DELETE tAdresse.
- iAnzAdr = iAnzAdr - 1.
- NEXT.
- END.
- IF Debst.KnrFak > 0 AND
- Debst.KnrFak <> Debst.Knr THEN NEXT.
- iKnrFak = Debst.Knr.
- FIND FIRST Debst USE-INDEX Debst-KnrFak
- WHERE Debst.Firma = Firma
- AND Debst.KnrFak = iKnrFak
- AND Debst.Aktiv NO-ERROR.
- IF NOT AVAILABLE Debst THEN NEXT.
- FIND LAST Artbw NO-LOCK USE-INDEX Artbw-k3
- WHERE Artbw.Firma = Firma
- AND Artbw.Knr = tAdresse.Knr NO-ERROR.
- IF NOT AVAILABLE Artbw THEN DO:
- DELETE tAdresse.
- iAnzAdr = iAnzAdr - 1.
- NEXT.
- END.
- IF Artbw.Datum < (TODAY - 730) THEN DO:
- DELETE tAdresse.
- iAnzAdr = iAnzAdr - 1.
- NEXT.
- END.
- END.
- RETURN iAnzAdr.
-
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION startQueryDebst gSuchenAdressen
- FUNCTION startQueryDebst RETURNS INTEGER
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR iAnzAdr AS INT NO-UNDO.
- DEF VAR lJa AS LOG NO-UNDO.
- DEF VAR aWorte AS CHAR NO-UNDO.
- DEF VAR nWorte AS CHAR NO-UNDO.
- DEF VAR ii AS INT NO-UNDO.
- DEF VAR iKnrFak AS INT NO-UNDO.
-
- DEF BUFFER btAdresse FOR tAdresse.
- FOR EACH tSuchFelder NO-LOCK
- WHERE tSuchFelder.iSuch > 0
- AND tSuchFelder.lGefunden = FALSE:
- FIND Debst NO-LOCK USE-INDEX Debst-k1
- WHERE Debst.Firma = Firma
- AND Debst.Knr = tSuchFelder.iSuch
- AND Debst.Aktiv = TRUE NO-ERROR.
- IF NOT AVAILABLE Debst THEN NEXT.
- FIND Adresse NO-LOCK USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = Debst.Knr NO-ERROR.
- IF NOT AVAILABLE Adresse THEN NEXT.
- IF NOT lInaktiv AND
- NOT Adresse.Aktiv THEN NEXT.
-
- ASSIGN iAnzAdr = iAnzAdr + 1
- tSuchFelder.lGefunden = TRUE.
- CREATE tAdresse.
- BUFFER-COPY Adresse TO tAdresse
- ASSIGN tAdresse.iRecid = RECID(Adresse)
- tAdresse.cSort = STRING(iPrior,'99') + STRING(Adresse.Knr,'99999999').
- END.
-
- FIND FIRST tSuchFelder NO-LOCK
- WHERE tSuchFelder.cSuch > '' NO-ERROR.
- IF NOT AVAILABLE tSuchFelder THEN RETURN iAnzAdr.
- /* Suchbegriff für Debitor zu den Suchwörtern hinzufügen */
- CREATE tSuchFelder.
- ASSIGN tSuchFelder.iWort = 0
- tSuchFelder.iSuch = 0
- tSuchFelder.cSuch = 'XDEBSTX'
- tSuchFelder.lGefunden = FALSE.
- iAnzAdr = DYNAMIC-FUNCTION('startQueryAdresse':U) NO-ERROR.
- /*
- FOR EACH tAdresse:
- FIND Debst NO-LOCK USE-INDEX Debst-k1
- WHERE Debst.Firma = Firma
- AND Debst.Knr = tAdresse.Knr NO-ERROR.
- IF NOT AVAILABLE Debst THEN DO:
- DELETE tAdresse.
- iAnzAdr = iAnzAdr - 1.
- NEXT.
- END.
- IF Debst.KnrFak > 0 AND
- Debst.KnrFak <> Debst.Knr THEN NEXT.
- iKnrFak = Debst.Knr.
- FIND FIRST Debst USE-INDEX Debst-KnrFak
- WHERE Debst.Firma = Firma
- AND Debst.KnrFak = iKnrFak
- AND Debst.Aktiv NO-ERROR.
- IF NOT AVAILABLE Debst THEN NEXT.
- FIND FIRST Artbw NO-LOCK USE-INDEX Artbw-k3
- WHERE Artbw.Firma = Firma
- AND Artbw.Knr = tAdresse.Knr NO-ERROR.
- IF NOT AVAILABLE Artbw THEN DO:
- DELETE tAdresse.
- iAnzAdr = iAnzAdr - 1.
- NEXT.
- END.
- IF Artbw.Datum < (TODAY - 730) THEN DO:
- DELETE tAdresse.
- iAnzAdr = iAnzAdr - 1.
- NEXT.
- END.
- END.
- */
- RETURN iAnzAdr.
-
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION startQueryKundenbesuch gSuchenAdressen
- FUNCTION startQueryKundenbesuch RETURNS INTEGER
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR iAnzAdr AS INT NO-UNDO.
- DEF VAR lJa AS LOG NO-UNDO.
- DEF VAR aWorte AS CHAR NO-UNDO.
- DEF VAR nWorte AS CHAR NO-UNDO.
- DEF VAR ii AS INT NO-UNDO.
- DEF VAR iKnrFak AS INT NO-UNDO.
-
- DEF BUFFER btAdresse FOR tAdresse.
- FOR EACH tSuchFelder NO-LOCK
- WHERE tSuchFelder.iSuch > 0
- AND tSuchFelder.lGefunden = FALSE:
- IF iVertr < 999999 THEN DO:
- FIND Debst NO-LOCK USE-INDEX Debst-Vertr
- WHERE Debst.Firma = Firma
- AND Debst.Knr = tSuchFelder.iSuch
- AND Debst.Vertr = iVertr
- AND Debst.Aktiv = TRUE NO-ERROR.
- IF NOT AVAILABLE Debst THEN NEXT.
- END.
- FIND Adresse NO-LOCK USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = tSuchFelder.iSuch NO-ERROR.
- IF NOT AVAILABLE Adresse THEN NEXT.
- IF NOT lInaktiv AND
- NOT Adresse.Aktiv THEN NEXT.
-
- ASSIGN iAnzAdr = iAnzAdr + 1
- tSuchFelder.lGefunden = TRUE.
- CREATE tAdresse.
- BUFFER-COPY Adresse TO tAdresse
- ASSIGN tAdresse.iRecid = RECID(Adresse)
- tAdresse.cSort = STRING(iPrior,'99') + STRING(Adresse.Knr,'99999999').
- END.
-
- FIND FIRST tSuchFelder NO-LOCK
- WHERE tSuchFelder.cSuch > '' NO-ERROR.
- IF NOT AVAILABLE tSuchFelder THEN RETURN iAnzAdr.
- /* Suchbegriff für Debitor zu den Suchwörtern hinzufügen */
- CREATE tSuchFelder.
- ASSIGN tSuchFelder.iWort = 0
- tSuchFelder.iSuch = 0
- tSuchFelder.cSuch = 'XDEBSTX'
- tSuchFelder.lGefunden = FALSE.
- iAnzAdr = DYNAMIC-FUNCTION('startQueryAdresse':U) NO-ERROR.
- IF iVertr = 999999 THEN RETURN iAnzAdr.
-
- FOR EACH tAdresse:
- FIND Debst NO-LOCK USE-INDEX Debst-Vertr
- WHERE Debst.Firma = Firma
- AND Debst.Knr = tAdresse.Knr
- AND Debst.Vertr = iVertr NO-ERROR.
- IF NOT AVAILABLE Debst THEN DO:
- DELETE tAdresse.
- iAnzAdr = iAnzAdr - 1.
- NEXT.
- END.
- END.
- RETURN iAnzAdr.
-
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION startQueryLieferant gSuchenAdressen
- FUNCTION startQueryLieferant RETURNS INTEGER
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR iAnzAdr AS INT NO-UNDO.
- DEF VAR lJa AS LOG NO-UNDO.
- DEF VAR aWorte AS CHAR NO-UNDO.
- DEF VAR nWorte AS CHAR NO-UNDO.
- DEF VAR ii AS INT NO-UNDO.
- FOR EACH tSuchFelder NO-LOCK
- WHERE tSuchFelder.iSuch > 0
- AND tSuchFelder.lGefunden = FALSE:
- FIND Liefst NO-LOCK USE-INDEX Liefst-k1
- WHERE Liefst.Firma = Firma
- AND Liefst.Knr = tSuchFelder.iSuch
- AND Liefst.Aktiv = TRUE NO-ERROR.
- IF NOT AVAILABLE Liefst THEN NEXT.
- FIND Adresse NO-LOCK USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = Liefst.Knr NO-ERROR.
- IF NOT AVAILABLE Adresse THEN NEXT.
- IF NOT lInaktiv AND
- NOT Adresse.Aktiv THEN NEXT.
-
- ASSIGN iAnzAdr = iAnzAdr + 1
- tSuchFelder.lGefunden = TRUE.
- CREATE tAdresse.
- BUFFER-COPY Adresse TO tAdresse
- ASSIGN tAdresse.iRecid = RECID(Adresse)
- tAdresse.cSort = STRING(iPrior,'99') + STRING(Adresse.Knr,'99999999').
- END.
-
- FIND FIRST tSuchFelder NO-LOCK
- WHERE tSuchFelder.cSuch > '' NO-ERROR.
- IF NOT AVAILABLE tSuchFelder THEN RETURN iAnzAdr.
- /* Suchbegriff für Lieferant zu den Suchwörtern hinzufügen */
- CREATE tSuchFelder.
- ASSIGN tSuchFelder.iWort = 0
- tSuchFelder.iSuch = 0
- tSuchFelder.cSuch = 'XLIEFSTX'
- tSuchFelder.lGefunden = FALSE.
- iAnzAdr = DYNAMIC-FUNCTION('startQueryAdresse':U) NO-ERROR.
- RETURN iAnzAdr.
-
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
|