&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases framework PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS bTableWin /*------------------------------------------------------------------------ File: adm2\src\browser.w Description: SmartDataBrowser Object Input Parameters: Output Parameters: ------------------------------------------------------------------------*/ /* 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. */ USING utilities.utilitiesHandler FROM PROPATH. CREATE WIDGET-POOL. /* *************************** Definitions ************************** */ /* Parameters Definitions --- */ /* Local Variable Definitions --- */ { incl/tmpbrowser.i } { properties_formular_html.i } {src/adm2/widgetprto.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartDataBrowser &Scoped-define DB-AWARE no &Scoped-define ADM-SUPPORTED-LINKS TableIO-Target,Data-Target,Update-Source /* Include file with RowObject temp-table definition */ &Scoped-define DATA-FIELD-DEFS "d-viewer_ko.i" /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME F-Main &Scoped-define BROWSE-NAME br_viewerko /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES rowObject /* Definitions for BROWSE br_viewerko */ &Scoped-define FIELDS-IN-QUERY-br_viewerko rowObject.mandant ~ rowObject.benutzer rowObject.program rowObject.tabelle &Scoped-define ENABLED-FIELDS-IN-QUERY-br_viewerko &Scoped-define QUERY-STRING-br_viewerko FOR EACH rowObject NO-LOCK INDEXED-REPOSITION &Scoped-define OPEN-QUERY-br_viewerko OPEN QUERY br_viewerko FOR EACH rowObject NO-LOCK INDEXED-REPOSITION. &Scoped-define TABLES-IN-QUERY-br_viewerko rowObject &Scoped-define FIRST-TABLE-IN-QUERY-br_viewerko rowObject /* Definitions for FRAME F-Main */ /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS RECT-1 RECT-3 br_viewerko Btn_create /* 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 createSelections bTableWin FUNCTION createSelections RETURNS CHARACTER ( iprviewer_ze AS RECID, ipiSprcd AS INTEGER, OUTPUT cWerte AS CHARACTER, OUTPUT cAnzeige AS CHARACTER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getLabel bTableWin FUNCTION getLabel RETURNS CHARACTER ( iprRecid AS RECID, ipcArt AS CHARACTER, ipiSprcd AS INTEGER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setZeilenfarbe bTableWin FUNCTION setZeilenfarbe RETURNS LOGICAL ( ipFarbe AS INTEGER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_create LABEL "Format erstellen" SIZE 22 BY 1. DEFINE RECTANGLE RECT-1 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 90 BY 7.14. DEFINE RECTANGLE RECT-3 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 32 BY 7.14. /* Query definitions */ &ANALYZE-SUSPEND DEFINE TEMP-TABLE RowObject NO-UNDO {{&DATA-FIELD-DEFS}} {src/adm2/robjflds.i}. DEFINE QUERY br_viewerko FOR rowObject SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE br_viewerko &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS br_viewerko bTableWin _STRUCTURED QUERY br_viewerko NO-LOCK DISPLAY rowObject.mandant FORMAT "x(08)":U rowObject.benutzer FORMAT "x(30)":U rowObject.program FORMAT "x(20)":U rowObject.tabelle FORMAT "x(20)":U /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ASSIGN NO-AUTO-VALIDATE NO-ROW-MARKERS SEPARATORS SIZE 88 BY 6.67. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main br_viewerko AT ROW 1.48 COL 3 WIDGET-ID 200 Btn_create AT ROW 2 COL 99 WIDGET-ID 4 RECT-1 AT ROW 1.24 COL 2 WIDGET-ID 2 RECT-3 AT ROW 1.24 COL 93 WIDGET-ID 6 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDataBrowser Data Source: "d-viewer_ko.w" Allow: Basic,Browse Frames: 1 Add Fields to: Neither Other Settings: PERSISTENT-ONLY COMPILE */ /* This procedure should always be RUN PERSISTENT. Report the error, */ /* then cleanup and return. */ IF NOT THIS-PROCEDURE:PERSISTENT THEN DO: MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U VIEW-AS ALERT-BOX ERROR BUTTONS OK. RETURN. END. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW /* DESIGN Window definition (used by the UIB) CREATE WINDOW bTableWin ASSIGN HEIGHT = 7.62 WIDTH = 125.2. /* END WINDOW DEFINITION */ */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB bTableWin /* ************************* Included-Libraries *********************** */ {src/adm2/browser.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW bTableWin NOT-VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME F-Main NOT-VISIBLE FRAME-NAME Size-to-Fit */ /* BROWSE-TAB br_viewerko RECT-3 F-Main */ ASSIGN FRAME F-Main:SCROLLABLE = FALSE FRAME F-Main:HIDDEN = TRUE. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE br_viewerko /* Query rebuild information for BROWSE br_viewerko _TblList = "rowObject" _Options = "NO-LOCK INDEXED-REPOSITION" _FldNameList[1] = _.rowObject.mandant _FldNameList[2] = _.rowObject.benutzer _FldNameList[3] = _.rowObject.program _FldNameList[4] = _.rowObject.tabelle _Query is NOT OPENED */ /* BROWSE br_viewerko */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main /* Query rebuild information for FRAME F-Main _Options = "NO-LOCK" _Query is NOT OPENED */ /* FRAME F-Main */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define BROWSE-NAME br_viewerko &Scoped-define SELF-NAME br_viewerko &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin ON CTRL-END OF br_viewerko IN FRAME F-Main DO: APPLY "END":U TO BROWSE {&BROWSE-NAME}. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin ON CTRL-HOME OF br_viewerko IN FRAME F-Main DO: APPLY "HOME":U TO BROWSE {&BROWSE-NAME}. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin ON DEFAULT-ACTION OF br_viewerko IN FRAME F-Main DO: {src/adm2/brsdefault.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin ON END OF br_viewerko IN FRAME F-Main DO: {src/adm2/brsend.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin ON ENTRY OF br_viewerko IN FRAME F-Main DO: IF VALID-HANDLE(hFenster) THEN DO: RUN SET_TABLEIO IN hFenster ( 'viewerkopf' ). APPLY 'VALUE-CHANGED' TO SELF. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin ON HOME OF br_viewerko IN FRAME F-Main DO: {src/adm2/brshome.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin ON LEFT-MOUSE-CLICK OF br_viewerko IN FRAME F-Main DO: APPLY 'ENTRY' TO {&BROWSE-NAME}. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin ON LEFT-MOUSE-DBLCLICK OF br_viewerko IN FRAME F-Main DO: IF NOT VALID-HANDLE( hFenster ) THEN RETURN NO-APPLY. RUN TOOLBAR IN hFenster ( INPUT 'UPDATE' ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin ON OFF-END OF br_viewerko IN FRAME F-Main DO: {src/adm2/brsoffnd.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin ON OFF-HOME OF br_viewerko IN FRAME F-Main DO: {src/adm2/brsoffhm.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin ON ROW-ENTRY OF br_viewerko IN FRAME F-Main DO: {src/adm2/brsentry.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin ON ROW-LEAVE OF br_viewerko IN FRAME F-Main DO: {src/adm2/brsleave.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin ON SCROLL-NOTIFY OF br_viewerko IN FRAME F-Main DO: {src/adm2/brsscrol.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin ON START-SEARCH OF br_viewerko IN FRAME F-Main DO: { incl/brwstartsearch.i } END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin ON VALUE-CHANGED OF br_viewerko IN FRAME F-Main DO: {src/adm2/brschnge.i} DEFINE VARIABLE rRecid AS RECID NO-UNDO. DEFINE BUFFER bviewer FOR viewer_ko. IF BROWSE {&BROWSE-NAME}:NUM-SELECTED-ROWS = 0 THEN BROWSE {&BROWSE-NAME}:SELECT-FOCUSED-ROW (). BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW (1). IF ERROR-STATUS:ERROR THEN RETURN. rRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten) NO-ERROR. IF rRecid = ? THEN RETURN. FIND bviewer NO-LOCK WHERE RECID(bviewer) = rRecid. PUBLISH 'ANZEIGE_FELDER' ( bviewer.benutzer, bviewer.program, bviewer.tabelle ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_create &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_create bTableWin ON CHOOSE OF Btn_create IN FRAME F-Main /* Format erstellen */ DO: DEFINE VARIABLE rRecid AS RECID NO-UNDO. BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1). rRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten) NO-ERROR. RUN CREATE_HTML_INCLUDE ( rRecid ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK bTableWin /* *************************** Main Block *************************** */ { incl/brwmainblock.i } { incl/brwinternproc.i } &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN RUN initializeObject. &ENDIF /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_HTML_INCLUDE bTableWin PROCEDURE CREATE_HTML_INCLUDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER iprRecid AS RECID NO-UNDO. DEFINE VARIABLE cFilename AS CHARACTER NO-UNDO. DEFINE VARIABLE cZeile AS CHARACTER NO-UNDO. DEFINE VARIABLE cStyle AS CHARACTER NO-UNDO. DEFINE VARIABLE cAttribute AS CHARACTER NO-UNDO. DEFINE VARIABLE iTabIndex AS INTEGER NO-UNDO. DEFINE VARIABLE cTabIndex AS CHARACTER NO-UNDO. DEFINE VARIABLE cSelectTabelle AS CHARACTER NO-UNDO. DEFINE VARIABLE cSelTabText AS CHARACTER NO-UNDO. DEFINE VARIABLE cSelTabWert AS CHARACTER NO-UNDO. DEFINE VARIABLE cSelectTexte AS CHARACTER NO-UNDO. DEFINE VARIABLE cSelectWerte AS CHARACTER NO-UNDO. DEFINE VARIABLE cOption AS CHARACTER NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE hqSelTab AS HANDLE NO-UNDO. DEFINE VARIABLE hbSelTab AS HANDLE NO-UNDO. DEFINE VARIABLE cWhere AS CHARACTER NO-UNDO. DEFINE VARIABLE iBuffVal AS INTEGER NO-UNDO. DEFINE VARIABLE lcHTML AS LONGCHAR NO-UNDO. DEFINE VARIABLE mcHtml AS MEMPTR NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO. DEFINE VARIABLE lFirma AS LOGICAL NO-UNDO INIT FALSE. DEFINE VARIABLE lSelections AS LOGICAL NO-UNDO INIT FALSE. DEFINE VARIABLE iSprcd AS INTEGER NO-UNDO. DEFINE VARIABLE cIndexFields AS CHARACTER NO-UNDO. DEFINE VARIABLE outilitiesHandler AS utilitiesHandler NO-UNDO. outilitiesHandler = NEW utilitiesHandler(). FIX-CODEPAGE (lcHTML) = 'utf-8'. FIND viewer_ko NO-LOCK WHERE RECID(viewer_ko) = iprRecid. FIND Benutzer NO-LOCK WHERE Benutzer.Benutzer = viewer_ko.benutzer NO-ERROR. iSprcd = (IF Benutzer.Sprcd > 0 AND Benutzer.Sprcd < 11 THEN Benutzer.Sprcd ELSE 1). cIndexFields = outilitiesHandler:getPrimaryIndexFields( INPUT viewer_ko.tabelle ) NO-ERROR. cFileName = SUBSTITUTE('../include/&1.incl', viewer_ko.program ). OUTPUT TO VALUE(cFileName) NO-MAP NO-CONVERT. cZeile = SUBSTITUTE(cform-container, viewer_ko.anzahlspalten). PUT CONTROL cZeile CHR(10). iTabIndex = 0. FOR EACH viewer_ze NO-LOCK OF viewer_ko BY viewer_ze.prior: PUT CONTROL ' ' cform-group CHR(10). IF NOT viewer_ze.lHidden THEN DO: cString = DYNAMIC-FUNCTION ('getLabel':U, RECID(viewer_ze), 'side', iSprcd) NO-ERROR. cZeile = FILL(' ',08) + SUBSTITUTE(clabel, viewer_ze.feld, cString). PUT CONTROL cZeile CHR(10). END. cAttribute = viewer_ze.attributes. cTabIndex = ''. IF NOT viewer_ze.lHidden THEN DO: iTabIndex = iTabIndex + 1. cTabIndex = SUBSTITUTE ('tabindex="&1"', TRIM(STRING(iTabIndex,'>>>9'))). IF INDEX(cAttribute, 'tabindex') = 0 THEN cAttribute = cAttribute + ' ' + cTabIndex. END. DO WHILE viewer_ze.selecttexte <> '': cStyle = viewer_ze.styles. cStyle = cStyle + (IF cStyle = '' THEN '' ELSE '; ') + SUBSTITUTE('text-align: &1', viewer_ze.textalign). cStyle = SUBSTITUTE('style="&1"', cStyle). cSelectTexte = REPLACE(viewer_ze.selecttexte, ',', ';'). cSelectWerte = REPLACE(viewer_ze.selectwerte, ',', ';'). cOption = ''. DO ii = 1 TO NUM-ENTRIES(cSelectWerte, ';'): cOption = cOption + (IF cOption = '' THEN '' ELSE CHR(10)) + SUBSTITUTE('&3', ENTRY(ii, cSelectWerte, ';'), ENTRY(ii, cSelectTexte, ';'), FILL(' ',12)). END. cZeile = FILL(' ',08) + SUBSTITUTE(cselect, cAttribute, cStyle, viewer_ze.privatedata, CHR(10), cOption, FILL(' ',08)). PUT CONTROL cZeile CHR(10). LEAVE. END. DO WHILE viewer_ze.selecttabelle <> '': cSelectTabelle = REPLACE(viewer_ze.selecttabelle, ',', ';'). cSelTabWert = ENTRY(2, cSelectTabelle, ';') NO-ERROR. cSelTabText = ENTRY(3, cSelectTabelle, ';') NO-ERROR. cSelectTabelle = ENTRY(1, cSelectTabelle, ';') NO-ERROR. IF cSelectTabelle = 'selections' THEN DO: cWhere = DYNAMIC-FUNCTION ('createSelections':U, RECID(viewer_ze), iSprcd, OUTPUT cSelectWerte, OUTPUT cSelectTexte ). lSelections = TRUE. END. ELSE DO: CREATE QUERY hqSelTab. CREATE BUFFER hbSelTab FOR TABLE cSelectTabelle. hFeld = hbSelTab:BUFFER-FIELD('Firma') NO-ERROR. IF VALID-HANDLE(hFeld) THEN lFirma = TRUE. hqSelTab:SET-BUFFERS(hbSelTab). IF lFirma THEN cWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK WHERE &1.Firma = &2 ' , cSelectTabelle, QUOTER(viewer_ze.mandant)). IF NOT lFirma THEN cWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK ' , cSelectTabelle ). hqSelTab:QUERY-PREPARE (cWhere). hqSelTab:QUERY-OPEN(). cSelectTexte = ''. cSelectWerte = ''. DO WHILE TRUE: hqSelTab:GET-NEXT() NO-ERROR. IF hqSelTab:QUERY-OFF-END THEN LEAVE. iBuffVal = (IF hbSelTab:BUFFER-FIELD(cSelTabText):EXTENT > 0 THEN iSprcd ELSE 0). cSelectWerte = cSelectWerte + (IF cSelectWerte = '' THEN '' ELSE ';') + hbSelTab:BUFFER-FIELD(cSelTabWert):BUFFER-VALUE(0). cSelectTexte = cSelectTexte + (IF cSelectTexte = '' THEN '' ELSE ';') + hbSelTab:BUFFER-FIELD(cSelTabText):BUFFER-VALUE(iBuffVal) + SUBSTITUTE(' (&1)', hbSelTab:BUFFER-FIELD(cSelTabWert):BUFFER-VALUE(0)). END. DELETE OBJECT hbSelTab. DELETE OBJECT hqSelTab. cStyle = viewer_ze.styles. cStyle = cStyle + (IF cStyle = '' THEN '' ELSE '; ') + SUBSTITUTE('text-align: &1', viewer_ze.textalign). cStyle = SUBSTITUTE('style="&1"', cStyle). cOption = ''. END. DO ii = 1 TO NUM-ENTRIES(cSelectWerte, ';'): cOption = cOption + (IF cOption = '' THEN '' ELSE CHR(10)) + SUBSTITUTE('&3', ENTRY(ii, cSelectWerte, ';'), ENTRY(ii, cSelectTexte, ';'), FILL(' ',12)). END. cZeile = FILL(' ',08) + SUBSTITUTE(cselect, cAttribute, cStyle, viewer_ze.privatedata, CHR(10), cOption, FILL(' ',08)). PUT CONTROL cZeile CHR(10). LEAVE. END. DO WHILE viewer_ze.selecttexte = '' AND viewer_ze.selecttabelle = '': cStyle = viewer_ze.styles. cStyle = cStyle + (IF cStyle = '' THEN '' ELSE '; ') + SUBSTITUTE('text-align: &1', viewer_ze.textalign). cStyle = SUBSTITUTE('style="&1"', cStyle). cZeile = FILL(' ',08) + SUBSTITUTE(cinput, cAttribute, cStyle, viewer_ze.privatedata). PUT CONTROL cZeile CHR(10). LEAVE. END. PUT CONTROL ' ' CHR(10). END. PUT CONTROL '' CHR(10). OUTPUT CLOSE. FILE-INFO:FILE-NAME = cFilename. SET-SIZE(mcHTML) = FILE-INFO:FILE-SIZE + 1. COPY-LOB FROM FILE cFileName TO mcHTML NO-CONVERT. COPY-LOB FROM mcHTML TO lcHTML. COPY-LOB FROM lcHTML TO FILE cFilename NO-CONVERT. FIND htmldokumente WHERE htmldokumente.mandant = viewer_ko.mandant AND htmldokumente.benutzer = viewer_ko.benutzer AND htmldokumente.program = viewer_ko.program AND htmldokumente.art = 'formular' AND htmldokumente.sprcd = iSprcd NO-ERROR. IF NOT AVAILABLE htmldokumente THEN DO: CREATE htmldokumente. ASSIGN htmldokumente.mandant = viewer_ko.mandant htmldokumente.benutzer = viewer_ko.benutzer htmldokumente.program = viewer_ko.program htmldokumente.art = 'formular' htmldokumente.sprcd = iSprcd NO-ERROR. END. htmldokumente.htmltext = STRING(lcHTML). RELEASE htmldokumente. SET-SIZE (mcHTML) = 0. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE destroyObject bTableWin PROCEDURE destroyObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE hBrowser AS HANDLE NO-UNDO. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}. DYNAMIC-FUNCTION('setBrowserDaten':U, INPUT hBrowser, INPUT Sektion ) NO-ERROR. 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 bTableWin _DEFAULT-DISABLE PROCEDURE disable_UI : /*------------------------------------------------------------------------------ Purpose: DISABLE the User Interface Parameters: 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 F-Main. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_BROWSE bTableWin PROCEDURE ENTRY_BROWSE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ APPLY 'ENTRY' TO {&BROWSE-NAME} IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject bTableWin PROCEDURE initializeObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/brwinitialize.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createSelections bTableWin FUNCTION createSelections RETURNS CHARACTER ( iprviewer_ze AS RECID, ipiSprcd AS INTEGER, OUTPUT cWerte AS CHARACTER, OUTPUT cAnzeige AS CHARACTER ): /*------------------------------------------------------------------------------*/ /* Purpose: Super Override */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE VARIABLE cTabelle AS CHARACTER NO-UNDO. DEFINE VARIABLE cInhalt AS CHARACTER NO-UNDO. DEFINE VARIABLE lFound AS LOGICAL NO-UNDO. DEFINE BUFFER bviewer_ze FOR viewer_ze. FIND bviewer_ze NO-LOCK WHERE RECID(bviewer_ze) = iprviewer_ze. FOR EACH selections NO-LOCK WHERE selections.mandant = bviewer_ze.mandant AND selections.tabelle = bviewer_ze.tabelle AND selections.feld = bviewer_ze.feld AND selections.sprcd = ipiSprcd: cWerte = cWerte + (IF cWerte = '' THEN '' ELSE ';') + selections.wert. cAnzeige = cAnzeige + (IF cAnzeige = '' THEN '' ELSE ';') + selections.anzeige + SUBSTITUTE(' (&1) ':U, selections.wert). END. IF cWerte <> '' THEN RETURN cWerte. FOR EACH selections NO-LOCK WHERE selections.mandant = bviewer_ze.mandant AND selections.tabelle = '' AND selections.feld = bviewer_ze.feld AND selections.sprcd = ipiSprcd: cWerte = cWerte + (IF cWerte = '' THEN '' ELSE ';') + selections.wert. cAnzeige = cAnzeige + (IF cAnzeige = '' THEN '' ELSE ';') + selections.anzeige + SUBSTITUTE(' (&1) ':U, selections.wert). END. IF cWerte <> '' THEN RETURN cWerte. FOR EACH selections NO-LOCK WHERE selections.mandant = bviewer_ze.mandant AND selections.tabelle = '' AND selections.feld = bviewer_ze.feld: cWerte = cWerte + (IF cWerte = '' THEN '' ELSE ';') + selections.wert. cAnzeige = cAnzeige + (IF cAnzeige = '' THEN '' ELSE ';') + selections.anzeige + SUBSTITUTE(' (&1) ':U, selections.wert). END. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getLabel bTableWin FUNCTION getLabel RETURNS CHARACTER ( iprRecid AS RECID, ipcArt AS CHARACTER, ipiSprcd AS INTEGER ): /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cLabel AS CHARACTER NO-UNDO. DEFINE BUFFER bviewer_ze FOR viewer_ze. FIND bviewer_ze NO-LOCK WHERE RECID(bviewer_ze) = iprRecid. IF ipiSprcd = 0 OR ipiSprcd > 10 THEN ipiSprcd = 1. FIND FIRST labeltexte NO-LOCK WHERE labeltexte.mandant = bviewer_ze.mandant AND labeltexte.benutzer = bviewer_ze.benutzer AND labeltexte.program = bviewer_ze.program AND labeltexte.tabelle = bviewer_ze.tabelle AND labeltexte.feld = bviewer_ze.feld AND labeltexte.sprcd = ipiSprcd NO-ERROR. IF NOT AVAILABLE labeltexte THEN DO: FIND FIRST labeltexte NO-LOCK WHERE labeltexte.mandant = bviewer_ze.mandant AND labeltexte.program = bviewer_ze.program AND labeltexte.tabelle = bviewer_ze.tabelle AND labeltexte.feld = bviewer_ze.feld AND labeltexte.sprcd = ipiSprcd NO-ERROR. END. IF NOT AVAILABLE labeltexte THEN DO: FIND FIRST labeltexte NO-LOCK WHERE labeltexte.mandant = bviewer_ze.mandant AND labeltexte.tabelle = bviewer_ze.tabelle AND labeltexte.feld = bviewer_ze.feld AND labeltexte.sprcd = ipiSprcd NO-ERROR. END. IF NOT AVAILABLE labeltexte THEN DO: FIND FIRST labeltexte NO-LOCK WHERE labeltexte.mandant = bviewer_ze.mandant AND labeltexte.feld = bviewer_ze.feld AND labeltexte.sprcd = ipiSprcd NO-ERROR. END. CASE ipcArt: WHEN 'side' THEN cLabel = (IF AVAILABLE labeltexte THEN labeltexte.sidelabel ELSE bviewer_ze.feld). WHEN 'head' THEN cLabel = (IF AVAILABLE labeltexte THEN labeltexte.headlabel ELSE bviewer_ze.feld). END CASE. RETURN cLabel. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setZeilenfarbe bTableWin FUNCTION setZeilenfarbe RETURNS LOGICAL ( ipFarbe AS INTEGER ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ { incl/brwsetzeilenfarbe.i } END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME