| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734 |
- /*------------------------------------------------------------------------
- File : getHTMLImpl
- Purpose :
- Syntax :
- Description :
- Author(s) : walter.riechsteiner
- Created : Wed May 29 21:02:53 CEST 2024
- Notes :
- ----------------------------------------------------------------------*/
- BLOCK-LEVEL ON ERROR UNDO, THROW.
- USING OpenEdge.Net.HTTP.IHttpResponse FROM PROPATH.
- USING OpenEdge.Net.HTTP.StatusCodeEnum FROM PROPATH.
- USING OpenEdge.Web.IWebRequest FROM PROPATH.
- USING OpenEdge.Web.WebHandler FROM PROPATH.
- USING OpenEdge.Web.WebResponseWriter FROM PROPATH.
- USING Progress.Json.ObjectModel.JsonObject FROM PROPATH.
- USING Progress.Json.ObjectModel.JsonArray FROM PROPATH.
- USING src.ch.adprime.gemis.WebHandlerUtilities FROM PROPATH.
- USING utilities.utilitiesHandler FROM PROPATH.
- CLASS getHTMLImpl INHERITS WebHandler:
- DEFINE VARIABLE outilitiesHandler AS utilitiesHandler NO-UNDO.
- DEFINE VARIABLE htviewer_ze AS HANDLE NO-UNDO.
- DEFINE VARIABLE iSprcd AS INTEGER NO-UNDO.
- DEFINE TEMP-TABLE tviewer_ko LIKE viewer_ko.
- DEFINE TEMP-TABLE tviewer_ze LIKE viewer_ze
- FIELD iMaxLaenge AS INTEGER
- FIELD iBreite AS INTEGER
- FIELD iDecimals AS INTEGER
- .
- { ttInput.i }
- { properties_formular_html.i }
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- METHOD PUBLIC LONGCHAR createHtmlFormular( ):
-
- DEFINE VARIABLE lcHtmlFormular AS LONGCHAR NO-UNDO.
- DEFINE VARIABLE iTabIndex AS INTEGER NO-UNDO.
- DEFINE VARIABLE cIndexFields AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cZeile AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cAttribute AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cTabIndex AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cStyle AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lcSelectTexte AS LONGCHAR NO-UNDO.
- DEFINE VARIABLE lcSelectWerte AS LONGCHAR NO-UNDO.
- DEFINE VARIABLE lcOption AS LONGCHAR NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
-
- DEFINE VARIABLE cLabelText AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lFirma AS LOGICAL NO-UNDO INIT FALSE.
- DEFINE VARIABLE iLength AS INTEGER NO-UNDO.
- DEFINE VARIABLE iMaxBreite AS INTEGER NO-UNDO.
- DEFINE VARIABLE iAnzSpalten AS INTEGER NO-UNDO.
- DEFINE VARIABLE iBerechSpalten AS INTEGER NO-UNDO.
-
- DEFINE BUFFER bFile FOR AnaDat._File.
-
- FIX-CODEPAGE (lcHtmlFormular) = 'utf-8'.
-
- FIND FIRST ttInput.
- EMPTY TEMP-TABLE tviewer_ko.
- EMPTY TEMP-TABLE tviewer_ze.
-
- htviewer_ze = TEMP-TABLE tviewer_ze:DEFAULT-BUFFER-HANDLE.
-
- DO WHILE TRUE:
- FIND FIRST viewer_ko NO-LOCK
- WHERE viewer_ko.mandant = ttInput.mandant
- AND viewer_ko.benutzer = ttInput.benutzer
- AND viewer_ko.program = ttInput.programm
- AND viewer_ko.tabelle = ttInput.tabelle NO-ERROR.
- IF AVAILABLE viewer_ko THEN LEAVE.
- FIND FIRST viewer_ko NO-LOCK
- WHERE viewer_ko.mandant = ttInput.mandant
- AND viewer_ko.benutzer = 'admin'
- AND viewer_ko.program = ttInput.programm
- AND viewer_ko.tabelle = ttInput.tabelle NO-ERROR.
- IF NOT AVAILABLE viewer_ko THEN RETURN lcHtmlFormular.
- IF viewer_ko.benutzer = 'admin' AND
- ttInput.benutzer = 'admin' THEN LEAVE.
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
- CREATE tviewer_ko.
- BUFFER-COPY viewer_ko
- EXCEPT viewer_ko.benutzer
- TO tviewer_ko
- ASSIGN
- tviewer_ko.benutzer = ttInput.benutzer.
- FOR EACH viewer_ze NO-LOCK OF viewer_ko:
- CREATE tviewer_ze.
- BUFFER-COPY viewer_ze
- EXCEPT viewer_ze.benutzer
- TO tviewer_ze
- ASSIGN
- tviewer_ze.benutzer = ttInput.benutzer.
- END.
- FIND viewer_ko OF tviewer_ko NO-ERROR.
- IF NOT AVAILABLE viewer_ko THEN
- DO:
- CREATE viewer_ko.
- BUFFER-COPY tviewer_ko TO viewer_ko.
- END.
- FOR EACH tviewer_ze NO-LOCK:
- FIND viewer_ze OF tviewer_ze NO-ERROR.
- IF AVAILABLE viewer_ze THEN NEXT.
- CREATE viewer_ze.
- BUFFER-COPY tviewer_ze TO viewer_ze.
- END.
- LEAVE.
- END.
- END.
-
- EMPTY TEMP-TABLE tviewer_ko.
- EMPTY TEMP-TABLE tviewer_ze.
-
- FIND bFile NO-LOCK
- WHERE bFile._File-Name = viewer_ko.tabelle.
-
- IF viewer_ko.anzahlspalten < 10 THEN
- DO:
- ASSIGN
- iAnzSpalten = viewer_ko.anzahlspalten
- iBerechSpalten = viewer_ko.anzahlspalten.
- END.
- ELSE
- DO:
- cString = STRING(viewer_ko.anzahlspalten,'99').
- ASSIGN
- iAnzSpalten = INTEGER(SUBSTRING(cString,01,01))
- iBerechSpalten = INTEGER(SUBSTRING(cString,02,01)).
- END.
-
- cIndexFields = outilitiesHandler:getPrimaryIndexFields( INPUT viewer_ko.tabelle ) NO-ERROR.
- lcHtmlFormular = SUBSTITUTE(cform-container, iAnzSpalten) + CHR(10).
- iTabIndex = 0.
- CREATE tviewer_ze.
- htviewer_ze = TEMP-TABLE tviewer_ze:DEFAULT-BUFFER-HANDLE.
- FOR EACH viewer_ze NO-LOCK OF viewer_ko
- BY viewer_ze.prior:
-
- IF ttInput.params = '' AND
- viewer_ze.privatedata <> '' THEN NEXT.
- IF ttInput.params <> '' THEN
- DO:
- DO ii = 1 TO NUM-ENTRIES(viewer_ze.privatedata, ';'):
- cString = ENTRY(ii, viewer_ze.privatedata, ';').
- IF INDEX(viewer_ze.privatedata, cString) > 0 THEN LEAVE.
- END.
- IF ii > NUM-ENTRIES(viewer_ze.privatedata, ';') THEN NEXT.
- END.
-
- lcHtmlFormular = lcHtmlFormular + ' ' + cform-group + CHR(10).
-
- FIND FIRST tviewer_ze.
- BUFFER-COPY viewer_ze TO tviewer_ze.
- ASSIGN
- tviewer_ze.iMaxLaenge = 0
- tviewer_ze.iBreite = 0
- tviewer_ze.iDecimals = 0
- .
-
- DO WHILE TRUE:
- cLabelText = ''.
-
- IF tviewer_ze.feld BEGINS 'Dummy' OR
- tviewer_ze.feld = 'ident' THEN
- DO:
- ASSIGN
- tviewer_ze.lHidden = TRUE
- tviewer_ze.lReadonly = TRUE
- tviewer_ze.styles = ''
- tviewer_ze.attributes = ''
- // tviewer_ze.privatedata = ''
- tviewer_ze.iMaxLaenge = 1
- .
- LEAVE.
- END.
-
- IF NOT tviewer_ze.lHidden THEN
- DO:
- cString = getLabel(INPUT 'side', INPUT iSprcd) NO-ERROR.
- clabelText = FILL(' ',08) + SUBSTITUTE(clabel, tviewer_ze.feld, cString).
- END.
-
- IF tviewer_ze.selecttabelle = 'selections' THEN
- DO:
- lRetVal = fillSelection (INPUT-OUTPUT htviewer_ze, OUTPUT lcSelectWerte, OUTPUT lcSelectTexte).
- IF lRetVal THEN
- ASSIGN
- tviewer_ze.selecttabelle = ''
- tviewer_ze.feldtype = 'select'.
- LEAVE.
- END.
-
- IF tviewer_ze.selecttabelle <> '' THEN
- DO:
- lRetVal = fillSelectionAusTabelle(INPUT-OUTPUT htviewer_ze, OUTPUT lcSelectWerte, OUTPUT lcSelectTexte).
- IF lRetVal THEN
- ASSIGN
- tviewer_ze.selecttabelle = ''
- tviewer_ze.feldtype = 'select'.
- LEAVE.
- END.
-
- FIND AnaDat._Field NO-LOCK
- WHERE AnaDat._Field._Field-name = tviewer_ze.feld
- AND AnaDat._FIeld._File-Recid = RECID(bFile).
- IF INDEX(_Field._View-AS, 'TOGGLE-BOX') > 0 THEN
- DO:
- tviewer_ze.feldtype = 'checkbox'.
- LEAVE.
- END.
- IF INDEX(_Field._View-AS, 'EDITOR') > 0 THEN
- DO:
- tviewer_ze.feldtype = 'textarea'.
- LEAVE.
- END.
- LEAVE.
- END.
-
- iLength = 0.
- iDecimals = 0.
- CASE tviewer_ze.feldtype:
- WHEN 'character' THEN
- ASSIGN
- tviewer_ze.iBreite = getMaxLength(tviewer_ze.feldformat)
- tviewer_ze.iMaxLaenge = tviewer_ze.iBreite.
- WHEN 'textarea' THEN
- ASSIGN
- tviewer_ze.iBreite = getMaxLength(tviewer_ze.feldformat)
- tviewer_ze.iMaxLaenge = tviewer_ze.iBreite.
- WHEN 'integer' THEN
- ASSIGN
- tviewer_ze.iBreite = LENGTH(tviewer_ze.feldformat)
- tviewer_ze.iMaxLaenge = tviewer_ze.iBreite
- tviewer_ze.iDecimals = -1.
- WHEN 'decimal' THEN
- DO:
- tviewer_ze.iBreite = LENGTH(tviewer_ze.feldformat).
- tviewer_ze.iMaxLaenge = tviewer_ze.iBreite.
- ii = INDEX(tviewer_ze.feldformat, '.').
- IF ii > 0 THEN tviewer_ze.iDecimals = LENGTH(ENTRY(2, tviewer_ze.feldformat, '.')).
- ELSE tviewer_ze.iDecimals = -1.
- END.
- WHEN 'checkbox' THEN
- DO:
- tviewer_ze.iBreite = 2.
- END.
- WHEN 'select' THEN
- DO:
- tviewer_ze.iBreite = iMaxBreite.
- END.
- OTHERWISE
- ASSIGN
- tviewer_ze.iBreite = getMaxLength(tviewer_ze.feldformat)
- tviewer_ze.iMaxLaenge = tviewer_ze.iBreite.
- END CASE.
-
- iMaxBreite = 0.
- CASE iBerechSpalten:
- WHEN 1 THEN
- iMaxBreite = 90.
- WHEN 2 THEN
- iMaxBreite = 45.
- WHEN 3 THEN
- iMaxBreite = 30.
- WHEN 4 THEN
- iMaxBreite = 22.
- OTHERWISE
- iMaxBreite = 20.
- END CASE.
-
- IF tviewer_ze.iBreite > iMaxBreite THEN tviewer_ze.iBreite = iMaxBreite.
-
- cAttribute = ''.
- cTabIndex = ''.
- cStyle = ''.
- lcOption = ''.
- IF NOT tviewer_ze.lHidden AND
- NOT tviewer_ze.lReadonly THEN
- DO:
- iTabIndex = iTabIndex + 1.
- cTabIndex = SUBSTITUTE ('tabindex="&1" ', TRIM(STRING(iTabIndex,'>>>9'))).
- END.
-
- DO WHILE lcSelectTexte <> '':
- DO ii = 1 TO NUM-ENTRIES(lcSelectWerte, ';'):
- lcOption = lcOption
- + (IF lcOption = '' THEN '' ELSE CHR(10))
- + SUBSTITUTE('&3<option value="&1">&2</option>', ENTRY(ii, lcSelectWerte, ';'), ENTRY(ii, lcSelectTexte, ';'), FILL(' ',12)).
- END.
- LEAVE.
- END.
- //
- // Attribute definieren
- //
- cAttribute = SUBSTITUTE('id= "&1" name="&1" ', tviewer_ze.feld, tviewer_ze.feld).
- IF tviewer_ze.lHidden THEN cAttribute = cAttribute + 'type="hidden" ' .
- ELSE
- DO:
- CASE tviewer_ze.feldtype:
- WHEN 'checkbox' THEN
- cAttribute = cAttribute + 'type="checkbox" '.
- WHEN 'textarea' THEN
- cAttribute = cAttribute + 'type="text" wrap="soft" '.
- OTHERWISE
- cAttribute = cAttribute + 'type="text" '.
- END CASE.
- END.
- IF tviewer_ze.lReadonly THEN cAttribute = cAttribute + 'readonly="true" '.
- IF tviewer_ze.iMaxLaenge > 0 THEN cAttribute = cAttribute + SUBSTITUTE('maxlength="&1" ', TRIM(STRING(tviewer_ze.iMaxLaenge))).
- IF tviewer_ze.iDecimals > 0 THEN cAttribute = cAttribute + SUBSTITUTE('step="0.&1" ', FILL('0', tviewer_ze.iDecimals)).
- IF tviewer_ze.iDecimals < 0 THEN cAttribute = cAttribute + 'step="0" '.
- IF cTabIndex <> '' THEN cAttribute = cAttribute + cTabIndex.
- //
- // Style definieren
- //
- DO WHILE TRUE:
- IF tviewer_ze.feldtype = 'select' THEN
- DO:
- cStyle = SUBSTITUTE('width: &1vw; text-align: &2;', tviewer_ze.iBreite, "left").
- LEAVE.
- END.
- IF tviewer_ze.feldtype = 'textarea' THEN
- DO:
- cStyle = SUBSTITUTE('width: &1vw; text-align: &2;', tviewer_ze.iBreite, "left").
- LEAVE.
- END.
- cStyle = SUBSTITUTE('width: &1vw; text-align: &2;', tviewer_ze.iBreite, tviewer_ze.textalign).
- LEAVE.
- END.
-
- cStyle = 'style=' + QUOTER(cStyle).
-
- CASE tviewer_ze.feldtype:
- WHEN 'textarea' THEN
- cZeile = FILL(' ',08) + SUBSTITUTE(cTextarea, cAttribute, cStyle, '' ).
- WHEN 'select' THEN
- cZeile = FILL(' ',08) + SUBSTITUTE(cSelect, cAttribute, cStyle, tviewer_ze.privatedata, CHR(10), lcOption, FILL(' ',08) ).
- OTHERWISE
- cZeile = FILL(' ',08) + SUBSTITUTE(cInput , cAttribute, cStyle, '' ).
- END CASE.
- IF cLabelText <> '' THEN lcHtmlFormular = lcHtmlFormular + cLabelText + CHR(10).
- lcHtmlFormular = lcHtmlFormular + cZeile + CHR(10).
-
- lcHtmlFormular = lcHtmlFormular + ' </div>' + CHR(10).
-
- END.
-
- lcHtmlFormular = lcHtmlFormular + '</div>' + CHR(10).
- RETURN lcHtmlFormular.
- END METHOD.
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- METHOD PUBLIC CHARACTER createSelections(
- INPUT iprviewer_ze AS RECID,
- INPUT ipiSprcd AS INTEGER,
- OUTPUT cWerte AS CHARACTER,
- OUTPUT cAnzeige AS CHARACTER
- ):
- DEFINE VARIABLE cTabelle AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cInhalt AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lFound AS LOGICAL NO-UNDO.
-
- DEFINE BUFFER btviewer_ze FOR tviewer_ze.
-
- FIND btviewer_ze NO-LOCK WHERE RECID(btviewer_ze) = iprviewer_ze.
- FOR EACH selections NO-LOCK
- WHERE selections.mandant = btviewer_ze.mandant
- AND selections.tabelle = btviewer_ze.tabelle
- AND selections.feld = btviewer_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 = btviewer_ze.mandant
- AND selections.tabelle = ''
- AND selections.feld = btviewer_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 = btviewer_ze.mandant
- AND selections.tabelle = ''
- AND selections.feld = btviewer_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 METHOD.
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- METHOD PUBLIC CHARACTER getLabel(
- INPUT ipcArt AS CHARACTER,
- INPUT ipiSprcd AS INTEGER
- ):
-
- DEFINE VARIABLE cLabel AS CHARACTER NO-UNDO.
-
- DEFINE BUFFER btviewer_ze FOR tviewer_ze.
-
- FIND FIRST btviewer_ze NO-LOCK.
-
- IF ipiSprcd = 0 OR
- ipiSprcd > 10 THEN ipiSprcd = 1.
-
- FIND FIRST labeltexte NO-LOCK
- WHERE labeltexte.mandant = btviewer_ze.mandant
- AND labeltexte.benutzer = btviewer_ze.benutzer
- AND labeltexte.program = btviewer_ze.program
- AND labeltexte.tabelle = btviewer_ze.tabelle
- AND labeltexte.feld = btviewer_ze.feld
- AND labeltexte.sprcd = ipiSprcd NO-ERROR.
- IF NOT AVAILABLE labeltexte THEN
- DO:
- FIND FIRST labeltexte NO-LOCK
- WHERE labeltexte.mandant = btviewer_ze.mandant
- AND labeltexte.program = btviewer_ze.program
- AND labeltexte.tabelle = btviewer_ze.tabelle
- AND labeltexte.feld = btviewer_ze.feld
- AND labeltexte.sprcd = ipiSprcd NO-ERROR.
- END.
- IF NOT AVAILABLE labeltexte THEN
- DO:
- FIND FIRST labeltexte NO-LOCK
- WHERE labeltexte.mandant = btviewer_ze.mandant
- AND labeltexte.tabelle = btviewer_ze.tabelle
- AND labeltexte.feld = btviewer_ze.feld
- AND labeltexte.sprcd = ipiSprcd NO-ERROR.
- END.
- IF NOT AVAILABLE labeltexte THEN
- DO:
- FIND FIRST labeltexte NO-LOCK
- WHERE labeltexte.mandant = btviewer_ze.mandant
- AND labeltexte.feld = btviewer_ze.feld
- AND labeltexte.sprcd = ipiSprcd NO-ERROR.
- END.
- CASE ipcArt:
- WHEN 'side' THEN
- cLabel = (IF AVAILABLE labeltexte THEN labeltexte.sidelabel ELSE btviewer_ze.feld).
- WHEN 'head' THEN
- cLabel = (IF AVAILABLE labeltexte THEN labeltexte.headlabel ELSE btviewer_ze.feld).
- END CASE.
-
- RETURN cLabel.
- END METHOD.
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- METHOD PUBLIC INTEGER getMaxLength(
- ipcFormat AS CHARACTER
- ):
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE x1 AS INTEGER NO-UNDO.
- DEFINE VARIABLE cFormat AS CHARACTER NO-UNDO.
-
- x1 = INDEX(ipcFormat, '(').
- IF x1 = 0 THEN RETURN LENGTH(ipcFormat).
-
- cFormat = REPLACE(ipcFormat, '(', ';').
- cFormat = REPLACE(cFormat , ')', ';').
- x1 = INTEGER(ENTRY(2, cFormat, ';')).
- RETURN x1.
- END METHOD.
- METHOD OVERRIDE PROTECTED INTEGER HandlePost(INPUT poRequest AS IWebRequest):
- DEFINE VARIABLE oResponse AS IHttpResponse NO-UNDO.
- DEFINE VARIABLE oWriter AS WebResponseWriter NO-UNDO.
- DEFINE VARIABLE oJsonData AS JsonObject NO-UNDO.
- DEFINE VARIABLE lcJsonString AS LONGCHAR NO-UNDO.
- DEFINE VARIABLE oInput AS JsonObject NO-UNDO.
-
- DEFINE VARIABLE hbttDBTabelle AS HANDLE NO-UNDO.
- DEFINE VARIABLE httDBTabelle AS HANDLE NO-UNDO.
- DEFINE VARIABLE hqDBTabelle AS HANDLE NO-UNDO.
- DEFINE VARIABLE hbDBTabelle AS HANDLE NO-UNDO.
-
- DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
- DEFINE VARIABLE cAktion AS CHARACTER NO-UNDO.
-
- EMPTY TEMP-TABLE ttInput .
- lRetVal = WebHandlerUtilities:getJsonFromRequest(INPUT poRequest, OUTPUT oJsonData) NO-ERROR.
- MESSAGE 'getJsonFromRequest = ' lRetVal.
-
- oJsonData:WRITE(lcJsonString, FALSE).
- MESSAGE 'ganzer eingangsstring = ' STRING(lcJsonString).
-
- //
- // Input-Daten (Steuersatz) aus JsonObject lesen und in ttInput füllen
- //
- EMPTY TEMP-TABLE ttInput .
- hbttInput = TEMP-TABLE ttInput:DEFAULT-BUFFER-HANDLE.
- oInput = NEW JsonObject().
- oInput = oJsonData:GetJsonObject('ttInput').
- lRetVal = hbttInput:READ-JSON ('JsonObject', oInput).
-
- FIND FIRST ttInput.
- cAktion = ttInput.action.
- iSprcd = INTEGER(ttInput.sprcd).
- IF iSprcd < 1 OR iSprcd > 10 THEN iSprcd = 1.
-
- outilitiesHandler = NEW utilitiesHandler ().
-
- DO WHILE lRetVal:
- lcJsonString = createHtmlFormular().
-
- MESSAGE 'Rückgabe: ' + STRING(lcJsonString).
- oResponse = NEW OpenEdge.Web.WebResponse().
- oResponse:StatusCode = INTEGER(StatusCodeEnum:OK).
- oResponse:ContentType = "text/plain".
- oWriter = NEW WebResponseWriter(oResponse).
-
- oWriter:Open().
- /* oWriter:Write(htmldokumente.htmltext).*/
- oWriter:Write(lcJsonString).
- oWriter:Close().
-
- LEAVE.
- END.
-
- DO WHILE NOT lRetVal:
- oResponse = NEW OpenEdge.Web.WebResponse().
- oResponse:StatusCode = INTEGER(StatusCodeEnum:OK).
- oResponse:ContentType = "application/json;charset=utf-8".
- oWriter = NEW WebResponseWriter(oResponse).
- oWriter:Open().
- MESSAGE 'lcString Rückgabe: ' + STRING(lcJsonString) VIEW-AS ALERT-BOX.
- oWriter:Write(lcJsonString).
- oWriter:Close().
- LEAVE.
- END.
- MESSAGE "Exiting HandlePost" VIEW-AS ALERT-BOX.
- CATCH e AS Progress.Lang.Error:
- MESSAGE "Exception occurred: " + e:GetMessage(1) VIEW-AS ALERT-BOX ERROR BUTTONS OK.
- RETURN -1.
- END CATCH.
-
- END METHOD.
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- METHOD PUBLIC LOGICAL fillSelection(
- INPUT-OUTPUT iphtviewer_ze AS HANDLE,
- OUTPUT oplcSelectWerte AS LONGCHAR,
- OUTPUT oplcSelectTexte AS LONGCHAR
- ):
- DEFINE VARIABLE cTabelle AS CHARACTER NO-UNDO.
-
- ASSIGN
- iphtviewer_ze::selecttexte = ''
- iphtviewer_ze::selectwerte = ''
- cTabelle = iphtviewer_ze::tabelle
- oplcSelectWerte = ''
- oplcSelectTexte = ''
- NO-ERROR.
-
- FIND FIRST selections NO-LOCK
- WHERE selections.mandant = iphtviewer_ze::mandant
- AND selections.tabelle = cTabelle
- AND selections.feld = iphtviewer_ze::feld
- AND selections.Sprcd = iSprcd NO-ERROR.
- IF NOT AVAILABLE selections THEN
- DO:
- cTabelle = ''.
- FIND FIRST selections NO-LOCK
- WHERE selections.mandant = iphtviewer_ze::mandant
- AND selections.tabelle = cTabelle
- AND selections.feld = iphtviewer_ze::feld
- AND selections.Sprcd = iSprcd NO-ERROR.
- END.
- IF NOT AVAILABLE (selections) THEN RETURN FALSE.
- FOR EACH selections NO-LOCK
- WHERE selections.mandant = iphtviewer_ze::mandant
- AND selections.tabelle = cTabelle
- AND selections.feld = iphtviewer_ze::feld
- AND selections.Sprcd = iSprcd:
- ASSIGN
- oplcSelectTexte = oplcSelectTexte
- + (IF oplcSelectTexte = '' THEN '' ELSE ';')
- + selections.anzeige.
- ASSIGN
- oplcSelectWerte = oplcSelectWerte
- + (IF oplcSelectWerte = '' THEN '' ELSE ';')
- + selections.wert.
- END.
- RETURN TRUE.
- END METHOD.
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- METHOD PUBLIC LOGICAL fillSelectionAusTabelle(
- INPUT-OUTPUT iphtviewer_ze AS HANDLE,
- OUTPUT oplcSelectWerte AS LONGCHAR,
- OUTPUT oplcSelectTexte AS LONGCHAR
- ):
-
- DEFINE VARIABLE cTabelle AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cAnzeige AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iFeldIndex AS INTEGER NO-UNDO.
- DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
-
- DEFINE VARIABLE hqTabelle AS HANDLE NO-UNDO.
- DEFINE VARIABLE hbTabelle AS HANDLE NO-UNDO.
- DEFINE VARIABLE cWhere AS CHARACTER NO-UNDO.
-
- ASSIGN
- cTabelle = ENTRY(1, iphtviewer_ze::selecttabelle, ';')
- cFeld = ENTRY(2, iphtviewer_ze::selecttabelle, ';')
- cAnzeige = ENTRY(3, iphtviewer_ze::selecttabelle, ';')
-
- oplcSelectWerte = ''
- oplcSelectTexte = ''
- NO-ERROR.
-
- CREATE QUERY hqTabelle.
- CREATE BUFFER hbTabelle FOR TABLE cTabelle.
- cWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK WHERE &1.Firma = &2 ', cTabelle, QUOTER(iphtviewer_ze::mandant) ).
- hqTabelle:SET-BUFFERS (hbTabelle).
- hqTabelle:QUERY-PREPARE (cWhere).
- hqTabelle:QUERY-OPEN ().
- hqTabelle:GET-FIRST ().
-
- iFeldIndex = (IF hbTabelle:BUFFER-FIELD(cAnzeige):EXTENT = 0 THEN 0 ELSE iSprcd).
- DO WHILE NOT hqTabelle:QUERY-OFF-END:
- cString = hbTabelle:BUFFER-FIELD(cAnzeige):BUFFER-VALUE(iFeldIndex).
- oplcSelectTexte = oplcSelectTexte
- + (IF oplcSelectTexte = '' THEN '' ELSE ';')
- + cString.
-
- cString = hbTabelle:BUFFER-FIELD(cFeld):BUFFER-VALUE(0).
- oplcSelectWerte = oplcSelectWerte
- + (IF oplcSelectWerte = '' THEN '' ELSE ';')
- + cString.
- hqTabelle:GET-NEXT ().
- END.
-
- hqTabelle:QUERY-CLOSE ().
- DELETE OBJECT hbTabelle NO-ERROR.
- DELETE OBJECT hqTabelle NO-ERROR.
-
- RETURN TRUE .
- END METHOD.
- METHOD OVERRIDE PROTECTED INTEGER HandleNotAllowedMethod(INPUT poRequest AS IWebRequest):
- DEFINE VARIABLE result AS INTEGER NO-UNDO.
- MESSAGE "HandleNotAllowedMethod called" VIEW-AS ALERT-BOX.
- RETURN result.
- END METHOD.
- METHOD OVERRIDE PROTECTED INTEGER HandleNotImplemented(INPUT poRequest AS IWebRequest):
- DEFINE VARIABLE result AS INTEGER NO-UNDO.
- MESSAGE "HandleNotImplemented called" VIEW-AS ALERT-BOX.
- RETURN result.
- END METHOD.
- END CLASS.
|