| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490 |
- &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
- &ANALYZE-RESUME
- /* Connected Databases
- anadat PROGRESS
- */
- &Scoped-define WINDOW-NAME CURRENT-WINDOW
- &Scoped-define FRAME-NAME gArtikelSuchen
- {adecomm/appserv.i}
- /* Temp-Table and Buffer definitions */
- DEFINE TEMP-TABLE tArtst NO-UNDO LIKE Artst
- FIELD Bez1 AS CHARACTER
- FIELD Bez2 AS CHARACTER
- FIELD KGeb_KBez AS CHARACTER
- FIELD VGeb_KBez AS CHARACTER
- FIELD iRecid AS RECID
- FIELD cSort AS CHARACTER
- FIELD iTreffer AS INTEGER
- FIELD WortIndex AS CHARACTER
- INDEX kWortIndex IS WORD-INDEX
- WortIndex.
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gArtikelSuchen
- /*------------------------------------------------------------------------
- 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 --- */
- DEFINE INPUT PARAMETER ipSuchbe AS CHARACTER NO-UNDO.
- DEFINE OUTPUT PARAMETER opRecid AS RECID NO-UNDO.
- /* Local Variable Definitions --- */
- &SCOPED-DEFINE Tabelle tArtst
- &SCOPED-DEFINE Feld WordIndex
- { incl/dlgdefinition.i }
- { incl/dynbrwdefinition.i }
- DEFINE VARIABLE iKnr AS INTEGER INIT 0 NO-UNDO.
- DEFINE VARIABLE iLager AS INTEGER INIT 0 NO-UNDO.
- DEFINE VARIABLE lLager AS LOG INIT FALSE NO-UNDO.
- DEFINE VARIABLE MinNr AS INTEGER NO-UNDO.
- DEFINE VARIABLE cHerk AS CHARACTER NO-UNDO.
- DEFINE VARIABLE fAdmin AS LOG NO-UNDO.
- DEFINE VARIABLE iVertr AS INTEGER NO-UNDO.
- DEFINE VARIABLE lInaktiv AS LOG NO-UNDO.
- DEFINE VARIABLE cInstall AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cSort AS CHARACTER INIT 'cSort' NO-UNDO.
- DEFINE VARIABLE lAufAb AS LOG INIT TRUE NO-UNDO.
- DEFINE VARIABLE cAufAb AS CHARACTER INIT '' NO-UNDO.
- DEFINE VARIABLE cFilterFeld AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cFilterWert AS CHARACTER NO-UNDO.
- DEFINE VARIABLE dDatum AS DATE NO-UNDO.
- DEFINE VARIABLE cIndex AS CHARACTER NO-UNDO INIT ' '.
- DEFINE TEMP-TABLE tSuchFelder NO-UNDO
- FIELD iWort AS INTEGER
- FIELD iSuch AS INTEGER
- FIELD cSuch AS CHARACTER
- 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 gArtikelSuchen
- &Scoped-define BROWSE-NAME Browser_suchen
- /* Internal Tables (found by Frame, Query & Browse Queries) */
- &Scoped-define INTERNAL-TABLES tArtst
- /* Definitions for BROWSE Browser_suchen */
- &Scoped-define FIELDS-IN-QUERY-Browser_suchen tArtst.KGeb_KBez @ KGeb_KBez ~
- tArtst.VGeb_Kbez @ VGeb_KBez tArtst.Artnr tArtst.Jahr tArtst.Inhalt ~
- tArtst.Bez1 @ Bez1 tArtst.Bez2 @ Bez2 tArtst.Bestand tArtst.Listen_EP ~
- tArtst.Alk_Gehalt tArtst.Ausverk tArtst.FremdNr tArtst.Suchbe
- &Scoped-define ENABLED-FIELDS-IN-QUERY-Browser_suchen
- &Scoped-define QUERY-STRING-Browser_suchen FOR EACH tArtst NO-LOCK INDEXED-REPOSITION
- &Scoped-define OPEN-QUERY-Browser_suchen OPEN QUERY Browser_suchen FOR EACH tArtst NO-LOCK INDEXED-REPOSITION.
- &Scoped-define TABLES-IN-QUERY-Browser_suchen tArtst
- &Scoped-define FIRST-TABLE-IN-QUERY-Browser_suchen tArtst
- /* Definitions for DIALOG-BOX gArtikelSuchen */
- /* 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 getArtikelSelektiert gArtikelSuchen
- FUNCTION getArtikelSelektiert RETURNS LOGICAL
- ( ipArtnr AS INTEGER, ipInhalt AS INTEGER, ipJahr AS INTEGER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD openQuery gArtikelSuchen
- FUNCTION openQuery RETURNS LOGICAL
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setKollonnenfarbe gArtikelSuchen
- FUNCTION setKollonnenfarbe RETURNS LOGICAL
- ( ipFarbe AS INTEGER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD startQueryArtikel gArtikelSuchen
- FUNCTION startQueryArtikel RETURNS INTEGER
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD startQueryArtlief gArtikelSuchen
- FUNCTION startQueryArtlief 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 TOOLTIP "nach Inhalt suchen ~"Inhalt=150~", Nach Jahrgang suchen ~"Jahr=2015~""
- BGCOLOR 15 NO-UNDO.
- DEFINE RECTANGLE RECT-2
- EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
- SIZE 184 BY 19.52.
- /* Query definitions */
- &ANALYZE-SUSPEND
- DEFINE QUERY Browser_suchen FOR
- tArtst SCROLLING.
- &ANALYZE-RESUME
- /* Browse definitions */
- DEFINE BROWSE Browser_suchen
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Browser_suchen gArtikelSuchen _STRUCTURED
- QUERY Browser_suchen NO-LOCK DISPLAY
- tArtst.KGeb_KBez @ KGeb_KBez COLUMN-LABEL "KGeb" FORMAT "x(10)":U
- tArtst.VGeb_Kbez @ VGeb_KBez COLUMN-LABEL "VGeb" FORMAT "x(10)":U
- tArtst.Artnr FORMAT "999999":U WIDTH 9
- tArtst.Jahr FORMAT "9999":U WIDTH 6
- tArtst.Inhalt FORMAT "9999":U
- tArtst.Bez1 @ Bez1 COLUMN-LABEL "Bezeichnung - 1" FORMAT "x(30)":U
- WIDTH 35
- tArtst.Bez2 @ Bez2 COLUMN-LABEL "Bezeichnung - 2" FORMAT "x(30)":U
- WIDTH 35
- tArtst.Bestand FORMAT "zzzzz,zz9-":U WIDTH 10
- tArtst.Listen_EP COLUMN-LABEL "Listen-EP" FORMAT "z,zz9.999":U
- WIDTH 10
- tArtst.Alk_Gehalt COLUMN-LABEL "Alk-%" FORMAT "zz9.999":U
- WIDTH 10
- tArtst.Ausverk FORMAT "9":U WIDTH 8
- tArtst.FremdNr COLUMN-LABEL "Alte Nummer" FORMAT "XXXXXX.XXXX.XXXX":U
- WIDTH 23
- tArtst.Suchbe COLUMN-LABEL "Suchbegriff" FORMAT "x(15)":U
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- WITH NO-ROW-MARKERS SEPARATORS SIZE 180 BY 17.14.
- /* ************************ Frame Definitions *********************** */
- DEFINE FRAME gArtikelSuchen
- F_Suchbegriffe AT ROW 2 COL 17.8 COLON-ALIGNED WIDGET-ID 4
- Browser_suchen AT ROW 3.38 COL 5 WIDGET-ID 200
- RECT-2 AT ROW 1.48 COL 3 WIDGET-ID 2
- SPACE(1.99) SKIP(0.47)
- WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
- SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
- TITLE "Artikel 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: tArtst T "?" NO-UNDO AnaDat Artst
- ADDITIONAL-FIELDS:
- FIELD Bez1 AS CHAR
- FIELD Bez2 AS CHAR
- FIELD KGeb_KBez AS CHAR
- FIELD VGeb_KBez AS CHAR
- FIELD iRecid AS RECID
- FIELD cSort AS CHAR
- FIELD iTreffer AS INT
- FIELD WortIndex AS CHAR
- INDEX kWortIndex IS WORD-INDEX
- WortIndex
- END-FIELDS.
- END-TABLES.
- */
- &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gArtikelSuchen
- /* ************************* 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 gArtikelSuchen
- FRAME-NAME */
- /* BROWSE-TAB Browser_suchen F_Suchbegriffe gArtikelSuchen */
- ASSIGN
- FRAME gArtikelSuchen:SCROLLABLE = FALSE
- FRAME gArtikelSuchen:HIDDEN = TRUE.
- ASSIGN
- Browser_suchen:POPUP-MENU IN FRAME gArtikelSuchen = MENU POPUP-MENU-Browser_suchen:HANDLE
- Browser_suchen:COLUMN-RESIZABLE IN FRAME gArtikelSuchen = TRUE
- Browser_suchen:COLUMN-MOVABLE IN FRAME gArtikelSuchen = 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 = "tArtst"
- _Options = "NO-LOCK INDEXED-REPOSITION"
- _TblOptList = ",,"
- _FldNameList[1] > "_<CALC>"
- "tArtst.KGeb_KBez @ KGeb_KBez" "KGeb" "x(10)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[2] > "_<CALC>"
- "tArtst.VGeb_Kbez @ VGeb_KBez" "VGeb" "x(10)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[3] > Temp-Tables.tArtst.Artnr
- "tArtst.Artnr" ? ? "integer" ? ? ? ? ? ? no ? no no "9" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[4] > Temp-Tables.tArtst.Jahr
- "tArtst.Jahr" ? ? "integer" ? ? ? ? ? ? no ? no no "6" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[5] = Temp-Tables.tArtst.Inhalt
- _FldNameList[6] > "_<CALC>"
- "tArtst.Bez1 @ Bez1" "Bezeichnung - 1" "x(30)" ? ? ? ? ? ? ? no ? no no "35" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[7] > "_<CALC>"
- "tArtst.Bez2 @ Bez2" "Bezeichnung - 2" "x(30)" ? ? ? ? ? ? ? no ? no no "35" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[8] > Temp-Tables.tArtst.Bestand
- "tArtst.Bestand" ? ? "integer" ? ? ? ? ? ? no ? no no "10" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[9] > Temp-Tables.tArtst.Listen_EP
- "tArtst.Listen_EP" "Listen-EP" ? "decimal" ? ? ? ? ? ? no ? no no "10" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[10] > Temp-Tables.tArtst.Alk_Gehalt
- "tArtst.Alk_Gehalt" "Alk-%" ? "decimal" ? ? ? ? ? ? no ? no no "10" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[11] > Temp-Tables.tArtst.Ausverk
- "tArtst.Ausverk" ? "9" "integer" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[12] > Temp-Tables.tArtst.FremdNr
- "tArtst.FremdNr" "Alte Nummer" "XXXXXX.XXXX.XXXX" "character" ? ? ? ? ? ? no ? no no "23" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _FldNameList[13] > Temp-Tables.tArtst.Suchbe
- "tArtst.Suchbe" "Suchbegriff" ? "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
- _Query is NOT OPENED
- */ /* BROWSE Browser_suchen */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gArtikelSuchen
- /* Query rebuild information for DIALOG-BOX gArtikelSuchen
- _Options = "SHARE-LOCK"
- _Query is NOT OPENED
- */ /* DIALOG-BOX gArtikelSuchen */
- &ANALYZE-RESUME
-
- /* ************************ Control Triggers ************************ */
- &Scoped-define SELF-NAME gArtikelSuchen
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gArtikelSuchen gArtikelSuchen
- ON END-ERROR OF FRAME gArtikelSuchen /* Artikel suchen */
- DO:
- opRecid = ?.
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gArtikelSuchen gArtikelSuchen
- ON WINDOW-CLOSE OF FRAME gArtikelSuchen /* Artikel 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 gArtikelSuchen
- ON END-ERROR OF Browser_suchen IN FRAME gArtikelSuchen
- DO:
- APPLY 'ENTRY' TO F_Suchbegriffe.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Browser_suchen gArtikelSuchen
- ON LEFT-MOUSE-DBLCLICK OF Browser_suchen IN FRAME gArtikelSuchen
- 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 = tArtst.iRecid.
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Browser_suchen gArtikelSuchen
- ON RETURN OF Browser_suchen IN FRAME gArtikelSuchen
- 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 = tArtst.iRecid.
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Browser_suchen gArtikelSuchen
- ON ROW-DISPLAY OF Browser_suchen IN FRAME gArtikelSuchen
- DO:
- DEFINE VARIABLE iFarbe AS INTEGER NO-UNDO.
-
- iFarbe = 15.
- IF tArtst.Artnr > 0 THEN
- DO:
- iFarbe = 15.
- IF NOT tArtst.Lager AND cInstall <> 'oswald' THEN iFarbe = 11.
- IF tArtst.Ausverk = 8 THEN iFarbe = 13. /* Beschaffungsartikel */
- IF tArtst.Ausverk = 9 THEN iFarbe = 12. /* Ausverkauft */
- IF tArtst.Aktiv = FALSE THEN iFarbe = 12. /* gelöscht/inaktiv */
- END.
- DYNAMIC-FUNCTION('setKollonnenfarbe':U, iFarbe) NO-ERROR.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Browser_suchen gArtikelSuchen
- ON START-SEARCH OF Browser_suchen IN FRAME gArtikelSuchen
- 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 gArtikelSuchen
- ON RETURN OF F_Suchbegriffe IN FRAME gArtikelSuchen /* suchen nach */
- DO:
- ASSIGN F_Suchbegriffe.
- SESSION:SET-WAIT-STATE('General').
- RUN START_QUERY ( SELF:SCREEN-VALUE).
- SESSION:SET-WAIT-STATE('').
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &UNDEFINE SELF-NAME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gArtikelSuchen
- /* *************************** Main Block *************************** */
- ASSIGN
- cHerk = ''
- iKnr = 0
- cIndex = ' '.
- IF NUM-ENTRIES(ipSuchbe, ';') > 1 THEN
- DO:
- cHerk = ENTRY(1, ipSuchbe, ';').
- ipSuchbe = ENTRY(2, ipSuchbe, ';').
- END.
- IF cHerk = '' THEN
- DO:
- IF ipSuchbe <> '' AND
- NUM-ENTRIES(ipSuchbe, ',') > 1 THEN
- DO:
- cHerk = ipSuchbe.
- ipSuchbe = ''.
- END.
- END.
- IF cHerk <> '' THEN
- DO:
- IF cHerk BEGINS 'BEST' THEN
- DO:
- ASSIGN
- iKnr = INTEGER(ENTRY(2, cHerk, ','))
- cHerk = ENTRY(1, cHerk, ',').
- END.
- IF cHerk BEGINS 'VERKAUF' THEN
- DO:
- ASSIGN
- iKnr = INTEGER(ENTRY(2, cHerk, ','))
- dDatum = DATE (ENTRY(3, cHerk, ','))
- cHerk = ENTRY(1, cHerk, ',').
- END.
- IF cHerk BEGINS 'INVENTAR' THEN
- DO:
- ASSIGN
- iLager = INTEGER(ENTRY(2, cHerk, ','))
- lLager = TRUE
- cHerk = ENTRY(1, cHerk, ',').
- END.
- END.
- IF cHerk = '' THEN cHerk = 'ART'.
- MinNr = DYNAMIC-FUNCTION('getMinArtnr':U) NO-ERROR.
- IF MinNr > 1 THEN MinNr = INTEGER('1' + FILL('0', MinNr - 1)).
- cInstall = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR.
-
- { incl/dlgmainblock.i }
- { incl/dynbrwmainblock.i }
- { incl/dynbrwinternproc.i }
- F_Suchbegriffe = ipSuchbe.
- opRecid = ?.
- fAdmin = DYNAMIC-FUNCTION('getAdmin':U ) NO-ERROR.
- {src/adm2/dialogmn.i}
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gArtikelSuchen _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 gArtikelSuchen
- 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 gArtikelSuchen _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 gArtikelSuchen.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gArtikelSuchen
- PROCEDURE enableObject :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- cSort = 'Bez1'.
- { incl/dlgenableobject.i }
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gArtikelSuchen _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 gArtikelSuchen.
- ENABLE RECT-2 F_Suchbegriffe Browser_suchen
- WITH FRAME gArtikelSuchen.
- VIEW FRAME gArtikelSuchen.
- {&OPEN-BROWSERS-IN-QUERY-gArtikelSuchen}
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gArtikelSuchen
- 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 gArtikelSuchen
- PROCEDURE INAKTIVE_EINAUS :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
- DO WITH FRAME {&FRAME-NAME}:
- cString = F_Suchbegriffe:SCREEN-VALUE.
- lInaktiv = NOT lInaktiv.
- DYNAMIC-FUNCTION('setAnzeigeArtikelSucheInaktiv':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 gArtikelSuchen
- PROCEDURE initializeObject :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE cName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE xWhere AS CHARACTER 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('getAnzeigeArtikelSucheInaktiv':U) NO-ERROR.
- 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_PROC gArtikelSuchen
- PROCEDURE OPENQUERY_PROC :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE xWhere AS CHARACTER NO-UNDO.
- DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
- DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
- DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
- DEFINE VARIABLE cWert AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ix AS INTEGER NO-UNDO.
- hBuffer = hbQuery:GET-BUFFER-HANDLE(1).
- xWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK ', cqTabelle).
- DO ix = 1 TO NUM-ENTRIES(cFilterFeld, ','):
- cFeld = ENTRY(ix, cFilterFeld, ',').
- IF cFeld = 'CLEAR' THEN
- DO:
- cFilterFeld = ''.
- cFilterWert = ''.
- LEAVE.
- END.
- hFeld = hBuffer:BUFFER-FIELD(cFeld).
- CASE hFeld:TYPE.
- WHEN 'INTEGER' THEN
- cWert = ENTRY(ix, cFilterWert, ',').
- WHEN 'DECIMAL' THEN
- cWert = ENTRY(ix, cFilterWert, ',').
- WHEN 'DATE' THEN
- cWert = STRING(DATE(ENTRY(ix, cFilterWert, ','))).
- WHEN 'LOGICAL' THEN
- cWert = (IF ENTRY(ix, cFilterWert, ',') BEGINS 'n' THEN 'FALSE' ELSE 'TRUE').
- OTHERWISE
- cWert = QUOTER(ENTRY(ix, cFilterWert, ',')).
- END.
- xWhere = xWhere
- + (IF ix = 1 THEN 'WHERE ' ELSE ' AND ')
- + SUBSTITUTE('&1.&2 = &3 ', cqTabelle, cFeld, cWert).
- END.
-
- xWhere = xWhere
- + SUBSTITUTE(' BY &1 &2 ', 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_FILTER gArtikelSuchen
- PROCEDURE SET_FILTER :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- { incl/datsetfilter.i }
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_SORT gArtikelSuchen
- PROCEDURE SET_SORT :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipSort AS CHARACTER NO-UNDO.
- IF ipSort = cSort THEN lAufAb = NOT lAufAb.
- cSort = ipSort.
- cAufAb = (IF lAufAb THEN '' ELSE 'DESCENDING').
- RUN OPENQUERY_PROC.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SPEZ_SUCHEN gArtikelSuchen
- PROCEDURE SPEZ_SUCHEN:
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipcSuchbe AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iWert AS INTEGER NO-UNDO.
- DEFINE VARIABLE cArt AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iAnzArt AS INTEGER NO-UNDO.
- DEFINE VARIABLE iPrior AS INTEGER NO-UNDO INIT 0.
- cArt = ENTRY(1, ipcSuchbe, '=').
- iWert = INTEGER(ENTRY(2, ipcSuchbe, '=')) NO-ERROR.
- IF ERROR-STATUS:ERROR THEN RETURN 'ERROR'.
- iAnzArt = 0.
- EMPTY TEMP-TABLE tArtst.
- FOR EACH Artst NO-LOCK
- WHERE Artst.Firma = Firma
- AND ((cArt = 'Inhalt' AND Artst.Inhalt = iWert) OR
- (cArt = 'Jahr' AND Artst.Jahr = iWert) ),
-
- FIRST ArtBez OF Artst:
-
- CREATE tArtst.
- BUFFER-COPY Artst TO tArtst
- ASSIGN
- tArtst.iRecid = RECID(Artst)
- tArtst.Bez1 = Artbez.Bez1
- tArtst.Bez2 = Artbez.Bez2
- tArtst.cSort = STRING(iPrior,'99')
- + STRING(Artst.Artnr ,'99999999')
- + STRING(Artst.Inhalt,'9999')
- + STRING(Artst.Jahr ,'9999').
- IF iAnzArt >= 200 THEN LEAVE.
- END.
- END PROCEDURE.
-
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE START_QUERY gArtikelSuchen
- PROCEDURE START_QUERY :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipWorte AS CHARACTER NO-UNDO.
-
- DEFINE VARIABLE xWort AS CHARACTER NO-UNDO.
- DEFINE VARIABLE aWorte AS CHARACTER NO-UNDO.
- DEFINE VARIABLE yy AS INTEGER NO-UNDO.
- DEFINE VARIABLE Zahl AS INTEGER NO-UNDO.
- DEFINE VARIABLE iKnrFak AS INTEGER NO-UNDO.
- DEFINE VARIABLE iAnzArt AS INTEGER NO-UNDO.
-
- DEFINE BUFFER bArtbw FOR Artbw.
-
- EMPTY TEMP-TABLE tArtst.
- EMPTY TEMP-TABLE tSuchFelder.
- ipWorte = REPLACE(ipWorte, '*', '').
-
- IF ipWorte BEGINS 'INHALT=' OR
- ipWorte BEGINS 'JAHR=' THEN
- DO:
- RUN SPEZ_SUCHEN ( ipWorte ).
- IF RETURN-VALUE = 'ERROR' THEN
- DO WITH FRAME {&FRAME-NAME}:
- APPLY 'ENTRY' TO F_Suchbegriffe.
- RETURN NO-APPLY.
- END.
- END.
- ELSE
- DO:
- 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:
- DO WHILE Zahl < MinNr AND yy = 1:
- Zahl = Zahl * 10.
- END.
- tSuchFelder.iSuch = Zahl.
- 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 'ART' THEN
- iAnzArt = DYNAMIC-FUNCTION('startQueryArtikel':U ).
- WHEN 'BEST' THEN
- iAnzArt = DYNAMIC-FUNCTION('startQueryArtlief':U ).
- WHEN 'INVENTAR' THEN
- iAnzArt = DYNAMIC-FUNCTION('startQueryArtikel':U ).
- WHEN 'VERKAUF' THEN
- iAnzArt = DYNAMIC-FUNCTION('startQueryArtikel':U ).
- END.
- END.
-
- FOR EACH tArtst
- BREAK BY tArtst.Artnr
- BY tArtst.Inhalt
- BY tArtst.Jahr:
- IF NOT FIRST-OF ( tArtst.Jahr ) THEN
- DO:
- DELETE tArtst.
- NEXT.
- END.
- IF cHerk BEGINS 'VERKAUF' THEN
- DO:
- FIND FIRST bArtbw NO-LOCK
- WHERE bArtbw.Firma = Firma
- AND bArtbw.Knr = iKnr
- AND bArtbw.Artnr = tArtst.Artnr
- AND bArtbw.Inhalt = tArtst.Inhalt
- AND bArtbw.Jahr = tArtst.Jahr
- AND bArtbw.Datum >= dDatum NO-ERROR.
- IF NOT AVAILABLE bArtbw THEN
- DO:
- DELETE tArtst.
- NEXT.
- END.
- END.
-
- FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1
- WHERE KGebinde.Firma = tArtst.Firma
- AND KGebinde.Geb_Cd = tArtst.KGeb_Cd NO-ERROR.
- FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1
- WHERE VGebinde.Firma = tArtst.Firma
- AND VGebinde.Geb_Cd = tArtst.VGeb_Cd NO-ERROR.
- ASSIGN
- tArtst.KGeb_KBez = (IF AVAILABLE KGebinde THEN KGebinde.KBez ELSE '??????')
- tArtst.VGeb_KBez = (IF AVAILABLE VGebinde THEN VGebinde.KBez ELSE '??????').
- IF lLager THEN
- DO:
- FIND FIRST ArtLager NO-LOCK
- WHERE ArtLager.Firma = tArtst.Firma
- AND ArtLager.Artnr = tArtst.Artnr
- AND ArtLager.Inhalt = tArtst.Inhalt
- AND ArtLager.Jahr = tArtst.Jahr
- AND ArtLager.Lager = iLager NO-ERROR.
- IF NOT AVAILABLE ArtLager THEN
- DO:
- DELETE tArtst.
- iAnzArt = iAnzArt - 1.
- NEXT.
- END.
- END.
- END.
- opRecid = ?.
- RUN OPENQUERY_PROC.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ************************ Function Implementations ***************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getArtikelSelektiert gArtikelSuchen
- FUNCTION getArtikelSelektiert RETURNS LOGICAL
- ( ipArtnr AS INTEGER, ipInhalt AS INTEGER, ipJahr AS INTEGER ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- FIND FIRST tArtst NO-LOCK
- WHERE tArtst.Firma = Firma
- AND tArtst.Artnr = ipArtnr
- AND tArtst.Inhalt = ipInhalt
- AND tArtst.Jahr = ipJahr NO-ERROR.
- IF AVAILABLE tArtst THEN RETURN TRUE.
-
- RETURN FALSE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION openQuery gArtikelSuchen
- FUNCTION openQuery RETURNS LOGICAL
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- RUN OPENQUERY_PROC.
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setKollonnenfarbe gArtikelSuchen
- FUNCTION setKollonnenfarbe RETURNS LOGICAL
- ( ipFarbe AS INTEGER ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- { incl/brwsetzeilenfarbe.i }
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION startQueryArtikel gArtikelSuchen
- FUNCTION startQueryArtikel RETURNS INTEGER
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE iAnzArt AS INTEGER NO-UNDO.
- DEFINE VARIABLE iPrior AS INTEGER INIT 0 NO-UNDO.
- DEFINE VARIABLE lJa AS LOG NO-UNDO.
- DEFINE VARIABLE aWorte AS CHARACTER NO-UNDO.
- DEFINE VARIABLE nWorte AS CHARACTER NO-UNDO.
- DEFINE VARIABLE xWort AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE iBisAnr AS INTEGER NO-UNDO.
-
- cSort = ''.
- /* Auf Artikelnummern */
- iPrior = iPrior + 1.
- FOR EACH tSuchFelder NO-LOCK
- WHERE tSuchFelder.iSuch > 0
- AND tSuchFelder.lGefunden = FALSE:
- CASE cInstall:
- WHEN 'OSWALD' OR
- WHEN 'LaTorre' THEN
- iBisAnr = 999999.
- OTHERWISE
- iBisAnr = tSuchFelder.iSuch.
- END.
- cSort = 'cSort'.
- FOR EACH Artst NO-LOCK USE-INDEX Artst-k1
- WHERE Artst.Firma = Firma
- AND Artst.Artnr >= tSuchFelder.iSuch
- AND Artst.Artnr <= iBisAnr :
- IF NOT lInaktiv THEN
- DO:
- IF NOT Artst.Aktiv THEN NEXT.
- IF Artst.Ausverk = 9 THEN NEXT.
- END.
- FIND FIRST Artbez NO-LOCK OF Artst NO-ERROR.
- IF NOT AVAILABLE Artbez THEN NEXT.
-
- IF cIndex <> ' ' THEN
- DO:
- ii = INDEX(Artbez.WortIndex, cIndex).
- IF ii = 0 THEN NEXT.
- END.
-
- ASSIGN
- iAnzArt = iAnzArt + 1
- tSuchFelder.lGefunden = TRUE.
- CREATE tArtst.
- BUFFER-COPY Artst TO tArtst
- ASSIGN
- tArtst.iRecid = RECID(Artst)
- tArtst.Bez1 = Artbez.Bez1
- tArtst.Bez2 = Artbez.Bez2
- tArtst.cSort = STRING(iPrior,'99')
- + STRING(Artst.Artnr ,'99999999')
- + STRING(Artst.Inhalt,'9999')
- + STRING(Artst.Jahr ,'9999').
- IF iAnzArt >= 200 THEN LEAVE.
- END.
- END.
- IF iAnzArt >= 200 THEN RETURN iAnzArt.
- DO WHILE TRUE: /* OSWALD-SPEZIALFALL (Suchen nach Suchbegriff) */
- IF cInstall <> 'OSWALD' AND
- cInstall <> 'LaTorre' THEN LEAVE.
- iPrior = iPrior + 1.
- lJa = FALSE.
- aWorte = ''.
- FOR EACH tSuchFelder WHERE tSuchFelder.lGefunden = FALSE
- AND tSuchFelder.iSuch = 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 Artst NO-LOCK USE-INDEX Artst-k2
- WHERE Artst.Firma = Firma
- AND ((lInaktiv)
- OR (NOT lInaktiv AND
- Artst.Aktiv AND
- Artst.Ausverk < 9))
- AND Artst.Suchbe BEGINS aWorte,
-
- FIRST Artbez NO-LOCK OF Artst :
- IF NOT AVAILABLE Artbez THEN NEXT.
-
- IF cIndex <> ' ' THEN
- DO:
- ii = INDEX(Artbez.WortIndex, cIndex).
- IF ii = 0 THEN NEXT.
- END.
-
- IF NOT DYNAMIC-FUNCTION('getArtikelSelektiert':U,
- Artst.Artnr, Artst.Inhalt, Artst.Jahr ) THEN
- DO:
- ASSIGN
- iAnzArt = iAnzArt + 1
- lJa = TRUE.
- CREATE tArtst.
- BUFFER-COPY Artst TO tArtst
- ASSIGN
- tArtst.iRecid = RECID(Artst)
- tArtst.Bez1 = Artbez.Bez1
- tArtst.Bez2 = Artbez.Bez2
- tArtst.cSort = STRING(iPrior,'99')
- + STRING(Artst.Artnr ,'99999999')
- + STRING(Artst.Inhalt,'9999')
- + STRING(Artst.Jahr ,'9999').
- END.
- END.
- IF cSort = '' THEN cSort = 'Bez1'.
- IF lJa THEN RETURN iAnzArt.
- LEAVE.
- 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 iAnzArt.
- lJa = FALSE.
- cSort = (IF cSort = '' THEN 'Bez1' ELSE 'cSort').
- GENAU:
- FOR EACH Artbez NO-LOCK
- WHERE Artbez.Firma = Firma
- AND Artbez.Sprcd = 1
- AND Artbez.WortIndex CONTAINS aWorte
- AND INDEX(Artbez.Wortindex, cIndex) > 0,
-
- FIRST Artst NO-LOCK USE-INDEX Artst-k1
- WHERE Artst.Firma = Artbez.Firma
- AND Artst.Artnr = Artbez.Artnr
- AND Artst.Inhalt = Artbez.Inhalt
- AND Artst.Jahr = Artbez.Jahr
- AND ((lInaktiv)
- OR (NOT lInaktiv AND
- Artst.Aktiv AND
- Artst.Ausverk < 9)) :
-
- DO ii = 1 TO NUM-ENTRIES(aWorte, ' '):
- xWort = ENTRY(ii, aWorte, ' ').
- IF LOOKUP(xWort, Artbez.WortIndex, ' ') = 0 THEN NEXT GENAU.
- END.
-
- lJa = TRUE.
- IF NOT DYNAMIC-FUNCTION('getArtikelSelektiert':U, Artst.Artnr, Artst.Inhalt, Artst.Jahr ) THEN
- DO:
- CREATE tArtst.
- BUFFER-COPY Artst TO tArtst
- ASSIGN
- tArtst.iRecid = RECID(Artst)
- tArtst.Bez1 = Artbez.Bez1
- tArtst.Bez2 = Artbez.Bez2
- tArtst.cSort = STRING(iPrior,'99')
- + Artst.Suchbe
- + STRING(Artst.Artnr ,'99999999')
- + STRING(Artst.Inhalt,'9999')
- + STRING(Artst.Jahr ,'9999').
- iAnzArt = iAnzArt + 1.
- END.
- END.
- IF iAnzArt >= 100 THEN RETURN iAnzArt.
- /* IF LENGTH(cIndex) > 2 THEN RETURN iAnzArt.*/
-
- /* Auf matching Inhalt mit einem folgenden "*" 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 Artbez NO-LOCK
- WHERE Artbez.Firma = Firma
- AND Artbez.Sprcd = 1
- AND ((nWorte <> '' AND Artbez.WortIndex CONTAINS nWorte)
- OR (nWorte = ''))
- AND ((aWorte <> '' AND Artbez.WortIndex MATCHES aWorte)
- OR (aWorte = '')),
- FIRST Artst NO-LOCK USE-INDEX Artst-k1
- WHERE Artst.Firma = Artbez.Firma
- AND Artst.Artnr = Artbez.Artnr
- AND Artst.Inhalt = Artbez.Inhalt
- AND Artst.Jahr = Artbez.Jahr
- AND ((lInaktiv)
- OR (NOT lInaktiv AND
- Artst.Aktiv AND
- Artst.Ausverk < 9)) :
-
- lJa = TRUE.
- IF NOT DYNAMIC-FUNCTION('getArtikelSelektiert':U, Artst.Artnr, Artst.Inhalt, Artst.Jahr ) THEN DO:
- CREATE tArtst.
- BUFFER-COPY Artst TO tArtst
- ASSIGN tArtst.iRecid = RECID(Artst)
- tArtst.Bez1 = Artbez.Bez1
- tArtst.Bez2 = Artbez.Bez2
- tArtst.cSort = STRING(iPrior,'99')
- + Artst.Suchbe
- + STRING(Artst.Artnr ,'99999999')
- + STRING(Artst.Inhalt,'9999')
- + STRING(Artst.Jahr ,'9999').
- iAnzArt = iAnzArt + 1.
- END.
- END.
- IF iAnzArt >= 100 THEN RETURN iAnzArt.
-
- IF lJa THEN RETURN iAnzArt.
- */
- /* 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 Artbez NO-LOCK
- WHERE Artbez.Firma = Firma
- AND Artbez.Sprcd = 1
- AND ((nWorte <> '' AND Artbez.WortIndex CONTAINS nWorte)
- OR (nWorte = ''))
- AND ((aWorte <> '' AND Artbez.WortIndex MATCHES aWorte)
- OR (aWorte = ''))
- AND INDEX(Artbez.Wortindex, cIndex) > 0,
-
- FIRST Artst NO-LOCK USE-INDEX Artst-k1
- WHERE Artst.Firma = Artbez.Firma
- AND Artst.Artnr = Artbez.Artnr
- AND Artst.Inhalt = Artbez.Inhalt
- AND Artst.Jahr = Artbez.Jahr
- AND ((lInaktiv)
- OR (NOT lInaktiv AND
- Artst.Aktiv AND
- Artst.Ausverk < 9)) :
-
- lJa = TRUE.
- IF NOT DYNAMIC-FUNCTION('getArtikelSelektiert':U, Artst.Artnr, Artst.Inhalt, Artst.Jahr ) THEN
- DO:
- CREATE tArtst.
- BUFFER-COPY Artst TO tArtst
- ASSIGN
- tArtst.iRecid = RECID(Artst)
- tArtst.Bez1 = Artbez.Bez1
- tArtst.Bez2 = Artbez.Bez2
- tArtst.cSort = STRING(iPrior,'99')
- + Artst.Suchbe
- + STRING(Artst.Artnr ,'99999999')
- + STRING(Artst.Inhalt,'9999')
- + STRING(Artst.Jahr ,'9999').
- iAnzArt = iAnzArt + 1.
- END.
- END.
- IF lJa THEN RETURN iAnzArt.
-
- /* 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 Artbez NO-LOCK
- WHERE Artbez.Firma = Firma
- AND Artbez.Sprcd = 1
- AND ((nWorte <> '' AND Artbez.WortIndex CONTAINS nWorte)
- OR (nWorte = ''))
- AND ((aWorte <> '' AND Artbez.WortIndex MATCHES aWorte)
- OR (aWorte = ''))
- AND INDEX(Artbez.Wortindex, cIndex) > 0,
-
- FIRST Artst NO-LOCK USE-INDEX Artst-k1
- WHERE Artst.Firma = Artbez.Firma
- AND Artst.Artnr = Artbez.Artnr
- AND Artst.Inhalt = Artbez.Inhalt
- AND Artst.Jahr = Artbez.Jahr
- AND ((lInaktiv)
- OR (NOT lInaktiv AND
- Artst.Aktiv AND
- Artst.Ausverk < 9)) :
-
- lJa = TRUE.
- IF NOT DYNAMIC-FUNCTION('getArtikelSelektiert':U, Artst.Artnr, Artst.Inhalt, Artst.Jahr ) THEN
- DO:
- CREATE tArtst.
- BUFFER-COPY Artst TO tArtst
- ASSIGN
- tArtst.iRecid = RECID(Artst)
- tArtst.Bez1 = Artbez.Bez1
- tArtst.Bez2 = Artbez.Bez2
- tArtst.cSort = STRING(iPrior,'99')
- + Artst.Suchbe
- + STRING(Artst.Artnr ,'99999999')
- + STRING(Artst.Inhalt,'9999')
- + STRING(Artst.Jahr ,'9999').
- iAnzArt = iAnzArt + 1.
- END.
- IF lJa THEN RETURN iAnzArt.
- END.
- END.
-
- IF nWorte = '' THEN RETURN iAnzArt.
-
- /* 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 iAnzArt.
- lJa = FALSE.
- FOR EACH Artbez NO-LOCK
- WHERE Artbez.Firma = Firma
- AND Artbez.Sprcd = 1
- AND Artbez.WortIndex MATCHES aWorte
- AND INDEX(Artbez.Wortindex, cIndex) > 0,
-
- FIRST Artst NO-LOCK USE-INDEX Artst-k1
- WHERE Artst.Firma = Artbez.Firma
- AND Artst.Artnr = Artbez.Artnr
- AND Artst.Inhalt = Artbez.Inhalt
- AND Artst.Jahr = Artbez.Jahr
- AND ((lInaktiv)
- OR (NOT lInaktiv AND
- Artst.Aktiv AND
- Artst.Ausverk < 9)) :
-
- lJa = TRUE.
- IF NOT DYNAMIC-FUNCTION('getArtikelSelektiert':U, Artst.Artnr, Artst.Inhalt, Artst.Jahr ) THEN
- DO:
- CREATE tArtst.
- BUFFER-COPY Artst TO tArtst
- ASSIGN
- tArtst.iRecid = RECID(Artst)
- tArtst.Bez1 = Artbez.Bez1
- tArtst.Bez2 = Artbez.Bez2
- tArtst.cSort = STRING(iPrior,'99')
- + Artst.Suchbe
- + STRING(Artst.Artnr ,'99999999')
- + STRING(Artst.Inhalt,'9999')
- + STRING(Artst.Jahr ,'9999').
- iAnzArt = iAnzArt + 1.
- END.
- IF iAnzArt >= 100 THEN LEAVE.
- END.
-
- IF lJa THEN RETURN iAnzArt.
-
- RETURN iAnzArt.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION startQueryArtlief gArtikelSuchen
- FUNCTION startQueryArtlief RETURNS INTEGER
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE iAnzArt AS INTEGER NO-UNDO.
-
- cIndex = SUBSTITUTE('XLIEFSTX&1', STRING(iKnr,'999999')).
- iAnzArt = DYNAMIC-FUNCTION('startQueryArtikel':U) NO-ERROR.
- RETURN iAnzArt.
-
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
|