|
|
@@ -487,6 +487,9 @@ END PROCEDURE.
|
|
|
DEFINE VARIABLE cuser_name AS CHARACTER NO-UNDO.
|
|
|
DEFINE VARIABLE cActiveSelection AS CHARACTER NO-UNDO.
|
|
|
DEFINE VARIABLE cFormId AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cFileAusForm AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE ii AS INTEGER NO-UNDO.
|
|
|
+ DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
|
|
|
|
|
|
DEFINE VARIABLE rPrimeIndex AS RECID NO-UNDO.
|
|
|
DEFINE VARIABLE rField AS RECID NO-UNDO.
|
|
|
@@ -497,16 +500,28 @@ END PROCEDURE.
|
|
|
DEFINE VARIABLE cValue AS CHARACTER NO-UNDO.
|
|
|
DEFINE VARIABLE cFieldNames AS CHARACTER NO-UNDO EXTENT.
|
|
|
DEFINE VARIABLE cKeyFieldReplace AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cKeyFields AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cKeyValues AS CHARACTER NO-UNDO.
|
|
|
|
|
|
ccompany = oJsonIdent:GetCharacter('company' ) NO-ERROR.
|
|
|
cuser_name = oJsonIdent:GetCharacter('user_name') NO-ERROR.
|
|
|
cprogram = oJsonIdent:GetCharacter('program' ) NO-ERROR.
|
|
|
cFormId = oJsonIdent:GetCharacter('formId' ) NO-ERROR.
|
|
|
- IF oJsonIdent:HAS('file_name') THEN cFileName = oJsonIdent:GetCharacter('file_name').
|
|
|
+ IF oJsonIdent:HAS('file_name') THEN
|
|
|
+ DO:
|
|
|
+ cFileName = oJsonIdent:GetCharacter('file_name') NO-ERROR.
|
|
|
+ cDBName = oJsonIdent:GetCharacter('DBName') NO-ERROR.
|
|
|
+ END.
|
|
|
ELSE
|
|
|
DO:
|
|
|
- cFileName = ENTRY(1, cFormId, '_').
|
|
|
+ cFileName = ''.
|
|
|
+ getFileNameFromFormId(
|
|
|
+ INPUT cFormId ,
|
|
|
+ OUTPUT cFileName,
|
|
|
+ OUTPUT cDBName
|
|
|
+ ).
|
|
|
oJsonIdent:ADD('file_name', cFileName).
|
|
|
+ oJsonIdent:ADD('DBName' , cDBName ).
|
|
|
END.
|
|
|
|
|
|
ASSIGN
|
|
|
@@ -514,22 +529,24 @@ END PROCEDURE.
|
|
|
lActive = FALSE
|
|
|
lWordIndex = FALSE.
|
|
|
|
|
|
- DO WHILE TRUE:
|
|
|
- cDBName = 'Ge_MIS'.
|
|
|
- cDBFileName = SUBSTITUTE('&1.&2', cDBName, cFileName).
|
|
|
- CREATE BUFFER hBuffer FOR TABLE cDBFileName NO-ERROR.
|
|
|
- IF VALID-HANDLE(hBuffer) THEN LEAVE.
|
|
|
-
|
|
|
- cDBName = 'FRAMEWORK'.
|
|
|
- DELETE OBJECT hBuffer NO-ERROR.
|
|
|
- cDBFileName = SUBSTITUTE('&1.&2', cDBName, cFileName).
|
|
|
- CREATE BUFFER hBuffer FOR TABLE cDBFileName NO-ERROR.
|
|
|
- IF VALID-HANDLE(hBuffer) THEN LEAVE.
|
|
|
-
|
|
|
- RETURN.
|
|
|
- END.
|
|
|
-
|
|
|
- oJsonIdent:ADD('DBName', cDBName).
|
|
|
+ /* DO WHILE TRUE: */
|
|
|
+ /* cDBName = 'Ge_MIS'. */
|
|
|
+ /* cDBFileName = SUBSTITUTE('&1.&2', cDBName, cFileName).*/
|
|
|
+ /* CREATE BUFFER hBuffer FOR TABLE cDBFileName NO-ERROR. */
|
|
|
+ /* IF VALID-HANDLE(hBuffer) THEN LEAVE. */
|
|
|
+ /* */
|
|
|
+ /* cDBName = 'FRAMEWORK'. */
|
|
|
+ /* DELETE OBJECT hBuffer NO-ERROR. */
|
|
|
+ /* cDBFileName = SUBSTITUTE('&1.&2', cDBName, cFileName).*/
|
|
|
+ /* CREATE BUFFER hBuffer FOR TABLE cDBFileName NO-ERROR. */
|
|
|
+ /* IF VALID-HANDLE(hBuffer) THEN LEAVE. */
|
|
|
+ /* */
|
|
|
+ /* RETURN. */
|
|
|
+ /* END. */
|
|
|
+ /* */
|
|
|
+ /* oJsonIdent:ADD('DBName', cDBName). */
|
|
|
+ /* */
|
|
|
+ CREATE BUFFER hBuffer FOR TABLE cFileName NO-ERROR.
|
|
|
|
|
|
hField = hBuffer:BUFFER-FIELD('active') NO-ERROR.
|
|
|
IF NOT ERROR-STATUS:ERROR AND
|
|
|
@@ -551,7 +568,7 @@ END PROCEDURE.
|
|
|
CREATE BUFFER hDictFile FOR TABLE cDBFileName NO-ERROR.
|
|
|
|
|
|
cWhere = SUBSTITUTE('WHERE _File-Name = &1 ', QUOTER(cFileName)).
|
|
|
- lOK = hDictFile:FIND-FIRST (cWhere) NO-ERROR.
|
|
|
+ lOK = hDictFile:FIND-FIRST (cWhere, NO-LOCK) NO-ERROR.
|
|
|
rRecid = hDictFile:RECID.
|
|
|
rPrimeIndex = hDictFile::_Prime-Index.
|
|
|
|
|
|
@@ -621,29 +638,48 @@ END PROCEDURE.
|
|
|
//
|
|
|
// restlichen Keyfelder in Tabelle schreiben
|
|
|
//
|
|
|
+ getKeyFields(
|
|
|
+ INPUT oJsonIdent,
|
|
|
+ OUTPUT cKeyFields,
|
|
|
+ OUTPUT cKeyValues
|
|
|
+ ).
|
|
|
+ MESSAGE
|
|
|
+ 'cKeyFields =' cKeyFields SKIP
|
|
|
+ 'cKeyValue =' cKeyValues SKIP.
|
|
|
CREATE BUFFER hField FOR TABLE SUBSTITUTE('&1._Field', cDBName).
|
|
|
- cFieldNames = oJsonIdent:getNames().
|
|
|
- cKeyFieldReplace = SUBSTITUTE ('keyField_&1_', cFileName).
|
|
|
- DO i1 = 1 TO EXTENT(cFieldNames):
|
|
|
- IF NOT cFieldNames[i1] BEGINS 'keyfield' THEN NEXT.
|
|
|
+
|
|
|
+ /* cFieldNames = oJsonIdent:getNames(). */
|
|
|
+ /* cKeyFieldReplace = SUBSTITUTE ('keyField_&1_', cFileName).*/
|
|
|
+ /* MESSAGE */
|
|
|
+ /* 'cFileName =' cFileName SKIP */
|
|
|
+ /* 'cFieldNames =' cFieldNames[01] SKIP */
|
|
|
+ /* 'cKeyFieldReplace =' cKeyFieldReplace SKIP */
|
|
|
+ /* 'cDBName =' cDBName. */
|
|
|
+ DO i1 = 1 TO NUM-ENTRIES(cKeyFields, ';'):
|
|
|
+ cFieldName = ENTRY(i1, cKeyFields, ';').
|
|
|
+ cValue = ENTRY(i1, cKeyValues, CHR(01)).
|
|
|
+// MESSAGE 'cFieldName-1' cFieldName ' / ' 'Value ->' cValue.
|
|
|
+ cFieldName = REPLACE(cFieldName, 'keyfield_', '').
|
|
|
+// MESSAGE 'cFieldName-2' cFieldName '/' cFileName.
|
|
|
+ cFieldName = REPLACE(cFieldName, cFileName + '_' , '').
|
|
|
+// MESSAGE 'cFieldName-3' cFieldName '/' cFileName.
|
|
|
+ //IF NOT ENTRY(2, cFieldName, '_') = cFileName THEN ENTRY(2, cFieldName, '_') = cFileName.
|
|
|
|
|
|
- cFieldName = cFieldNames[i1].
|
|
|
- IF NOT ENTRY(2, cFieldName, '_') = cFileName THEN ENTRY(2, cFieldName, '_') = cFileName.
|
|
|
+ cKeyField = ENTRY(i1, cKeyFields, ';').
|
|
|
+ cField = cFieldName.
|
|
|
|
|
|
- cKeyField = cFieldNames[i1].
|
|
|
- cField = REPLACE(cFieldName, cKeyFieldReplace, '').
|
|
|
-
|
|
|
- cWhere = SUBSTITUTE('WHERE cFieldName = &1 ', QUOTER(cField) ).
|
|
|
+ cWhere = SUBSTITUTE('WHERE cFieldName = &1 ', QUOTER(cFieldName) ).
|
|
|
+// MESSAGE 'cWhere bei _Field =' cWhere.
|
|
|
lOK = httKeyFields:FIND-FIRST(cWhere, NO-LOCK) NO-ERROR.
|
|
|
IF lOK THEN
|
|
|
DO:
|
|
|
- cValue = oJsonIdent:GetCharacter(cKeyField) NO-ERROR.
|
|
|
+ // cValue = oJsonIdent:GetCharacter(cKeyField) NO-ERROR.
|
|
|
httKeyFields::cvalue = cValue.
|
|
|
NEXT.
|
|
|
END.
|
|
|
|
|
|
- cValue = oJsonIdent:GetCharacter(cKeyField) NO-ERROR.
|
|
|
- cWhere = SUBSTITUTE('WHERE &1._File-recid = &2 AND &1._Field-Name = &3', '_Field', rRecid, QUOTER(cField)).
|
|
|
+ // cValue = oJsonIdent:GetCharacter(cKeyField) NO-ERROR.
|
|
|
+ cWhere = SUBSTITUTE('WHERE _File-Recid = &1 AND _Field-Name = &2', rRecid, QUOTER(cFieldName)).
|
|
|
hField:FIND-FIRST(cWhere, NO-LOCK).
|
|
|
httKeyFields:BUFFER-CREATE().
|
|
|
ASSIGN
|
|
|
@@ -655,6 +691,7 @@ END PROCEDURE.
|
|
|
httKeyFields::cDataType = hField::_Data-Type
|
|
|
httKeyFields::lKeyfield = TRUE.
|
|
|
END.
|
|
|
+ httKeyFields:WRITE-JSON ('FILE', SUBSTITUTE('C:\TEMP\ttKeyfields_&1.json', cFileName), TRUE).
|
|
|
//
|
|
|
// Filterfelder
|
|
|
//
|
|
|
@@ -1129,6 +1166,36 @@ END PROCEDURE.
|
|
|
Notes:
|
|
|
------------------------------------------------------------------------------*/
|
|
|
|
|
|
+ METHOD PUBLIC VOID getFileNameFromFormId(
|
|
|
+ INPUT cFormId AS CHARACTER,
|
|
|
+ OUTPUT cFileName AS CHARACTER,
|
|
|
+ OUTPUT cDBName AS CHARACTER
|
|
|
+ ):
|
|
|
+
|
|
|
+ DEFINE VARIABLE ii AS INTEGER NO-UNDO.
|
|
|
+ DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
|
|
|
+
|
|
|
+ cFileName = ENTRY(1, cFormId, '_').
|
|
|
+ ii = 1.
|
|
|
+ DO WHILE TRUE:
|
|
|
+ CREATE BUFFER hBuffer FOR TABLE cFileName NO-ERROR.
|
|
|
+ IF VALID-OBJECT(hBuffer) THEN LEAVE.
|
|
|
+ ii = ii + 1.
|
|
|
+ cFileName = cFileName
|
|
|
+ + '_'
|
|
|
+ + ENTRY(ii, cFormId, '_').
|
|
|
+ END.
|
|
|
+ cDBName = hBuffer:DBNAME.
|
|
|
+ DELETE OBJECT hBuffer NO-ERROR.
|
|
|
+ RETURN.
|
|
|
+
|
|
|
+ END METHOD.
|
|
|
+
|
|
|
+ /*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+ ------------------------------------------------------------------------------*/
|
|
|
+
|
|
|
METHOD PUBLIC CHARACTER getHeader(
|
|
|
INPUT httInput AS HANDLE
|
|
|
):
|
|
|
@@ -1184,6 +1251,7 @@ END PROCEDURE.
|
|
|
DEFINE VARIABLE cFormId AS CHARACTER NO-UNDO.
|
|
|
DEFINE VARIABLE cClassName AS CHARACTER NO-UNDO.
|
|
|
DEFINE VARIABLE cFilename AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cDBName AS CHARACTER NO-UNDO.
|
|
|
|
|
|
oHeader = poRequest:GetHeader('X-COMPANY').
|
|
|
ccompany = oHeader:VALUE.
|
|
|
@@ -1227,11 +1295,20 @@ END PROCEDURE.
|
|
|
// language_id soll immer ein Interger-Wert sein
|
|
|
oJsonIdent:SET('language_id', INTEGER(oJsonIdent:GetJsonText('language_id'))).
|
|
|
|
|
|
+ IF NOT oJsonIdent:HAS('function') THEN MESSAGE 'getHeaderData ohne Function'.
|
|
|
+
|
|
|
IF oJsonIdent:HAS('formId') THEN
|
|
|
DO:
|
|
|
cFormId = oJsonIdent:GetCharacter('formId').
|
|
|
- cFileName = ENTRY(1, cFormId, '_').
|
|
|
- IF NOT oJsonIdent:HAS('file_name') THEN oJsonIdent:ADD('file_name', cFileName).
|
|
|
+ getFileNameFromFormId(
|
|
|
+ INPUT cFormId ,
|
|
|
+ OUTPUT cFileName ,
|
|
|
+ OUTPUT cDBName
|
|
|
+ ).
|
|
|
+ oJsonIdent:ADD('DBName' , cDBName).
|
|
|
+ oJsonIdent:ADD('file_name', cFileName).
|
|
|
+
|
|
|
+// IF NOT oJsonIdent:HAS('file_name') THEN oJsonIdent:ADD('file_name', cFileName).
|
|
|
|
|
|
// cFileName = SUBSTITUTE ('C:\TEMP\oJsonIdent_getHeaderData_&1.log', cFormId).
|
|
|
// oJsonIdent:WriteFile(cFileName, TRUE).
|
|
|
@@ -1244,6 +1321,11 @@ END PROCEDURE.
|
|
|
// MESSAGE 'programm gefunden mit FormId' cFormId.
|
|
|
END.
|
|
|
END.
|
|
|
+ ELSE
|
|
|
+ DO:
|
|
|
+// MESSAGE 'getHeaderData ohne formid ********************************************************'.
|
|
|
+ END.
|
|
|
+// MESSAGE 'createHeaderData -> FileName' cFileName.
|
|
|
|
|
|
ccompany = oJsonIdent:GetCharacter('company').
|
|
|
cuser_name = oJsonIdent:GetCharacter('user_name').
|
|
|
@@ -1271,9 +1353,27 @@ END PROCEDURE.
|
|
|
|
|
|
DEFINE VARIABLE cFieldNames AS CHARACTER NO-UNDO EXTENT.
|
|
|
DEFINE VARIABLE cFieldName AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cFileName AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cDBName AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cDBFile AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cWhere AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE rFile AS RECID NO-UNDO.
|
|
|
DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
|
|
|
DEFINE VARIABLE lOK AS LOGICAL NO-UNDO.
|
|
|
- DEFINE VARIABLE cValue AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cValue AS LONGCHAR NO-UNDO.
|
|
|
+ DEFINE VARIABLE cDataType AS CHARACTER NO-UNDO.
|
|
|
+
|
|
|
+ DEFINE VARIABLE hFileBuff AS HANDLE NO-UNDO.
|
|
|
+
|
|
|
+ cFileName = oJsonIdent:GetCharacter('file_name').
|
|
|
+ cDBName = oJsonIdent:GetCharacter('DBName').
|
|
|
+ cDBFile = SUBSTITUTE('&1._File', cDBName).
|
|
|
+ CREATE BUFFER hFileBuff FOR TABLE cDBFile NO-ERROR.
|
|
|
+ cWhere = SUBSTITUTE('WHERE &1._File-Name = &2', cDBFile, QUOTER(cFileName)).
|
|
|
+ hFileBuff:FIND-FIRST(cWhere, NO-LOCK) NO-ERROR.
|
|
|
+ rFile = hFileBuff:RECID.
|
|
|
+
|
|
|
+ DELETE OBJECT hFileBuff NO-ERROR.
|
|
|
|
|
|
cKeyFields = ''.
|
|
|
cKeyValues = ''.
|
|
|
@@ -1283,736 +1383,734 @@ END PROCEDURE.
|
|
|
cKeyFields = cKeyFields
|
|
|
+ (IF cKeyFields = '' THEN '' ELSE ';')
|
|
|
+ REPLACE(cFieldNames[i1], 'keyfield_', '').
|
|
|
- cValue = oJsonIdent:GetCharacter(cFieldNames[i1]).
|
|
|
+ cValue = oJsonIdent:GetJsonText(cFieldNames[i1]).
|
|
|
cKeyValues = cKeyValues
|
|
|
+ (IF cKeyValues = '' THEN '' ELSE CHR(01))
|
|
|
+ cValue.
|
|
|
END.
|
|
|
+
|
|
|
+ cDBFile = SUBSTITUTE('&1._Field', cDBName).
|
|
|
+ CREATE BUFFER hFileBuff FOR TABLE cDBFile NO-ERROR.
|
|
|
+// MESSAGE 'Buffer für Field = ' hFileBuff:NAME.
|
|
|
lOK = TRUE.
|
|
|
DO i1 = 1 TO NUM-ENTRIES(cKeyFields, ';'):
|
|
|
- cString = ENTRY(i1, cKeyFields, ';').
|
|
|
- cString = ENTRY(1, cString, '_') + '_'.
|
|
|
+ cString = cFileName + '_'.
|
|
|
+// MESSAGE 'replace String =' cString.
|
|
|
cFieldName = REPLACE(ENTRY(i1, cKeyFields, ';'), cString, '').
|
|
|
+// MESSAGE 'FELDNAME =' cFieldName.
|
|
|
+ cWhere = SUBSTITUTE('WHERE _File-Recid = &1 AND _Field-Name = &2 ', rFile, QUOTER(cFieldName)).
|
|
|
+// MESSAGE 'cWhere bei _Field =' cWhere.
|
|
|
+ hFileBuff:FIND-FIRST(cWhere, NO-LOCK).
|
|
|
+// MESSAGE hFileBuff::_Data-Type.
|
|
|
+
|
|
|
+ cDataType = hFileBuff::_Data-Type.
|
|
|
+ CASE cDataType:
|
|
|
+ WHEN 'character' THEN
|
|
|
+ ENTRY(i1, cKeyValues, CHR(01)) = ENTRY(i1, cKeyValues, CHR(01)).
|
|
|
+ WHEN 'logical' THEN
|
|
|
+ ENTRY(i1, cKeyValues, CHR(01)) = STRING(ENTRY(i1, cKeyValues, CHR(01)),"TRUE/FALSE").
|
|
|
+ END CASE.
|
|
|
+ END.
|
|
|
|
|
|
- DO WHILE lOK:
|
|
|
- FIND FIRST Ge_MIS._Field NO-LOCK
|
|
|
- WHERE Ge_MIS._Field._Field-Name = cFieldname NO-ERROR.
|
|
|
- IF NOT AVAILABLE Ge_MIS._Field THEN
|
|
|
- DO:
|
|
|
- lOK = FALSE.
|
|
|
- LEAVE.
|
|
|
- END.
|
|
|
-
|
|
|
- CASE Ge_MIS._Field._Data-Type:
|
|
|
- WHEN 'character' THEN
|
|
|
- ENTRY(i1, cKeyValues, CHR(01)) = QUOTER(ENTRY(i1, cKeyValues, CHR(01))).
|
|
|
- WHEN 'logical' THEN
|
|
|
- ENTRY(i1, cKeyValues, CHR(01)) = STRING(ENTRY(i1, cKeyValues, CHR(01)),"TRUE/FALSE").
|
|
|
- END CASE.
|
|
|
-
|
|
|
+ DO WHILE NOT lOK:
|
|
|
+ FIND FIRST FRAMEWORK._Field NO-LOCK
|
|
|
+ WHERE FRAMEWORK._Field._Field-Name = cFieldname NO-ERROR.
|
|
|
+ IF NOT AVAILABLE FRAMEWORK._Field THEN
|
|
|
+ DO:
|
|
|
+ lOK = FALSE.
|
|
|
LEAVE.
|
|
|
END.
|
|
|
-
|
|
|
- DO WHILE NOT lOK:
|
|
|
- FIND FIRST FRAMEWORK._Field NO-LOCK
|
|
|
- WHERE FRAMEWORK._Field._Field-Name = cFieldname NO-ERROR.
|
|
|
- IF NOT AVAILABLE FRAMEWORK._Field THEN
|
|
|
- DO:
|
|
|
- lOK = FALSE.
|
|
|
- LEAVE.
|
|
|
- END.
|
|
|
|
|
|
- CASE FRAMEWORK._Field._Data-Type:
|
|
|
- WHEN 'character' THEN
|
|
|
- ENTRY(i1, cKeyValues, CHR(01)) = QUOTER(ENTRY(i1, cKeyValues, CHR(01))).
|
|
|
- WHEN 'logical' THEN
|
|
|
- ENTRY(i1, cKeyValues, CHR(01)) = STRING(ENTRY(i1, cKeyValues, CHR(01)),"TRUE/FALSE").
|
|
|
- END CASE.
|
|
|
+ CASE FRAMEWORK._Field._Data-Type:
|
|
|
+ WHEN 'character' THEN
|
|
|
+ ENTRY(i1, cKeyValues, CHR(01)) = QUOTER(ENTRY(i1, cKeyValues, CHR(01))).
|
|
|
+ WHEN 'logical' THEN
|
|
|
+ ENTRY(i1, cKeyValues, CHR(01)) = STRING(ENTRY(i1, cKeyValues, CHR(01)),"TRUE/FALSE").
|
|
|
+ END CASE.
|
|
|
|
|
|
- LEAVE.
|
|
|
- END.
|
|
|
+ LEAVE.
|
|
|
END.
|
|
|
|
|
|
- lRetVal = TRUE.
|
|
|
- RETURN lRetVal.
|
|
|
+ lRetVal = TRUE.
|
|
|
+ RETURN lRetVal.
|
|
|
|
|
|
- END METHOD.
|
|
|
+END METHOD.
|
|
|
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
|
|
|
- METHOD PUBLIC CHARACTER getLogicalDBName(
|
|
|
- INPUT ipcFilename AS CHARACTER
|
|
|
- ):
|
|
|
+METHOD PUBLIC CHARACTER getLogicalDBName(
|
|
|
+ INPUT ipcFilename AS CHARACTER
|
|
|
+ ):
|
|
|
|
|
|
- DEFINE VARIABLE cLogicalDBName AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cLogicalDBName AS CHARACTER NO-UNDO.
|
|
|
|
|
|
- DEFINE VARIABLE hDictBuffer AS HANDLE NO-UNDO.
|
|
|
- DEFINE VARIABLE cFileName AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE hDictBuffer AS HANDLE NO-UNDO.
|
|
|
+ DEFINE VARIABLE cFileName AS CHARACTER NO-UNDO.
|
|
|
|
|
|
- cFileName = SUBSTITUTE('Ge_MIS.&1', ipcFilename) NO-ERROR.
|
|
|
- CREATE BUFFER hDictBuffer FOR TABLE cFileName NO-ERROR.
|
|
|
+ cFileName = SUBSTITUTE('Ge_MIS.&1', ipcFilename) NO-ERROR.
|
|
|
+ CREATE BUFFER hDictBuffer FOR TABLE cFileName NO-ERROR.
|
|
|
|
|
|
- cLogicalDBName = (IF VALID-HANDLE(hDictBuffer) THEN 'Ge_MIS' ELSE 'FRAMEWORK').
|
|
|
+ cLogicalDBName = (IF VALID-HANDLE(hDictBuffer) THEN 'Ge_MIS' ELSE 'FRAMEWORK').
|
|
|
|
|
|
- DELETE OBJECT hDictBuffer NO-ERROR.
|
|
|
+ DELETE OBJECT hDictBuffer NO-ERROR.
|
|
|
|
|
|
- RETURN cLogicalDBName.
|
|
|
+ RETURN cLogicalDBName.
|
|
|
|
|
|
- END METHOD.
|
|
|
+END METHOD.
|
|
|
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
|
|
|
- METHOD PUBLIC CHARACTER getProgramName(
|
|
|
- INPUT oJsonIdent AS JsonObject,
|
|
|
- INPUT cUsers AS CHARACTER ,
|
|
|
- OUTPUT cFormUser AS CHARACTER ,
|
|
|
- OUTPUT cFormColumns AS CHARACTER ,
|
|
|
- INPUT-OUTPUT iItemsPerPage AS INTEGER ,
|
|
|
- INPUT-OUTPUT cMaxHeight AS CHARACTER
|
|
|
- ):
|
|
|
+METHOD PUBLIC CHARACTER getProgramName(
|
|
|
+ INPUT oJsonIdent AS JsonObject,
|
|
|
+ INPUT cUsers AS CHARACTER ,
|
|
|
+ OUTPUT cFormUser AS CHARACTER ,
|
|
|
+ OUTPUT cFormColumns AS CHARACTER ,
|
|
|
+ INPUT-OUTPUT iItemsPerPage AS INTEGER ,
|
|
|
+ INPUT-OUTPUT cMaxHeight AS CHARACTER
|
|
|
+ ):
|
|
|
|
|
|
- DEFINE VARIABLE ccompany AS CHARACTER NO-UNDO.
|
|
|
- DEFINE VARIABLE cFormId AS CHARACTER NO-UNDO.
|
|
|
- DEFINE VARIABLE cProgramUser AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE ccompany AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cFormId AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cProgramUser AS CHARACTER NO-UNDO.
|
|
|
|
|
|
- cProgram = ''.
|
|
|
- ccompany = oJsonIdent:GetCharacter('company').
|
|
|
- cFormId = oJsonIdent:GetCharacter('formId' ).
|
|
|
+ cProgram = ''.
|
|
|
+ ccompany = oJsonIdent:GetCharacter('company').
|
|
|
+ cFormId = oJsonIdent:GetCharacter('formId' ).
|
|
|
|
|
|
- DO i1 = 1 TO NUM-ENTRIES(cUsers, ','):
|
|
|
- cProgramUser = ENTRY(i1, cUsers).
|
|
|
- FIND FIRST htmldokumente NO-LOCK
|
|
|
- WHERE htmldokumente.company = ccompany
|
|
|
- AND htmldokumente.user_name = cProgramUser
|
|
|
- AND htmldokumente.FormId = cFormId NO-ERROR.
|
|
|
- IF NOT AVAILABLE htmldokumente THEN NEXT.
|
|
|
+ DO i1 = 1 TO NUM-ENTRIES(cUsers, ','):
|
|
|
+ cProgramUser = ENTRY(i1, cUsers).
|
|
|
+ FIND FIRST htmldokumente NO-LOCK
|
|
|
+ WHERE htmldokumente.company = ccompany
|
|
|
+ AND htmldokumente.user_name = cProgramUser
|
|
|
+ AND htmldokumente.FormId = cFormId NO-ERROR.
|
|
|
+ IF NOT AVAILABLE htmldokumente THEN NEXT.
|
|
|
|
|
|
- ASSIGN
|
|
|
- cProgram = htmldokumente.program
|
|
|
- cFormUser = cProgramUser
|
|
|
- iItemsPerPage = htmldokumente.itemsPerPage
|
|
|
- cMaxHeight = htmldokumente.tableMaxHeight
|
|
|
- cFormColumns = htmldokumente.formColumns.
|
|
|
- LEAVE.
|
|
|
- END.
|
|
|
-
|
|
|
- RETURN cProgram.
|
|
|
-
|
|
|
- END METHOD.
|
|
|
-
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
-
|
|
|
- METHOD PUBLIC CHARACTER iso2date(
|
|
|
- INPUT cIsoDate AS CHARACTER
|
|
|
- ):
|
|
|
+ ASSIGN
|
|
|
+ cProgram = htmldokumente.program
|
|
|
+ cFormUser = cProgramUser
|
|
|
+ iItemsPerPage = htmldokumente.itemsPerPage
|
|
|
+ cMaxHeight = htmldokumente.tableMaxHeight
|
|
|
+ cFormColumns = htmldokumente.formColumns.
|
|
|
+ LEAVE.
|
|
|
+ END.
|
|
|
+
|
|
|
+ RETURN cProgram.
|
|
|
+
|
|
|
+END METHOD.
|
|
|
+
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
+
|
|
|
+METHOD PUBLIC CHARACTER iso2date(
|
|
|
+ INPUT cIsoDate AS CHARACTER
|
|
|
+ ):
|
|
|
|
|
|
- DEFINE VARIABLE cDate AS CHARACTER NO-UNDO.
|
|
|
-
|
|
|
- IF cIsoDate = '' OR
|
|
|
- cIsoDate = ? THEN RETURN cDate.
|
|
|
- cDate = SUBSTITUTE('&1/&2/&3', ENTRY(2, cIsoDate, '-'), ENTRY(3, cIsoDate, '-'), ENTRY(1, cIsoDate, '-') ).
|
|
|
-
|
|
|
- RETURN cDate.
|
|
|
-
|
|
|
- END METHOD.
|
|
|
-
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
-
|
|
|
- METHOD PUBLIC VOID readLastcWhere(
|
|
|
- INPUT oJsonIdent AS JsonObject,
|
|
|
- INPUT cFileName AS CHARACTER ,
|
|
|
- OUTPUT cWhere AS CHARACTER
|
|
|
- ):
|
|
|
-
|
|
|
- FIND userdata
|
|
|
- WHERE userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
- AND userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
- AND userdata.branch = '0000'
|
|
|
- AND userdata.record_type = 'where'
|
|
|
- AND userdata.section = cFileName
|
|
|
- AND userdata.key_type = 'last' NO-ERROR.
|
|
|
+ DEFINE VARIABLE cDate AS CHARACTER NO-UNDO.
|
|
|
+
|
|
|
+ IF cIsoDate = '' OR
|
|
|
+ cIsoDate = ? THEN RETURN cDate.
|
|
|
+ cDate = SUBSTITUTE('&1/&2/&3', ENTRY(2, cIsoDate, '-'), ENTRY(3, cIsoDate, '-'), ENTRY(1, cIsoDate, '-') ).
|
|
|
+
|
|
|
+ RETURN cDate.
|
|
|
+
|
|
|
+END METHOD.
|
|
|
+
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
+
|
|
|
+METHOD PUBLIC VOID readLastcWhere(
|
|
|
+ INPUT oJsonIdent AS JsonObject,
|
|
|
+ INPUT cFileName AS CHARACTER ,
|
|
|
+ OUTPUT cWhere AS CHARACTER
|
|
|
+ ):
|
|
|
+
|
|
|
+ FIND userdata
|
|
|
+ WHERE userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
+ AND userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
+ AND userdata.branch = '0000'
|
|
|
+ AND userdata.record_type = 'where'
|
|
|
+ AND userdata.section = cFileName
|
|
|
+ AND userdata.key_type = 'last' NO-ERROR.
|
|
|
|
|
|
- IF AVAILABLE userdata THEN cWhere = userdata.cfield_1.
|
|
|
- RELEASE userdata.
|
|
|
-
|
|
|
- RETURN.
|
|
|
-
|
|
|
- END METHOD.
|
|
|
-
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
-
|
|
|
- METHOD PUBLIC LOGICAL readLastRecord(
|
|
|
- INPUT oJsonIdent AS JsonObject,
|
|
|
- OUTPUT cWhere AS CHARACTER
|
|
|
- ):
|
|
|
-
|
|
|
- FIND userdata NO-LOCK
|
|
|
- WHERE userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
- AND userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
- AND userdata.branch = '0000'
|
|
|
- AND userdata.record_type = 'lastrecord'
|
|
|
- AND userdata.section = oJsonIdent:GetCharacter('file_name')
|
|
|
- AND userdata.key_type = '' NO-ERROR.
|
|
|
+ IF AVAILABLE userdata THEN cWhere = userdata.cfield_1.
|
|
|
+ RELEASE userdata.
|
|
|
+
|
|
|
+ RETURN.
|
|
|
+
|
|
|
+END METHOD.
|
|
|
+
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
+
|
|
|
+METHOD PUBLIC LOGICAL readLastRecord(
|
|
|
+ INPUT oJsonIdent AS JsonObject,
|
|
|
+ OUTPUT cWhere AS CHARACTER
|
|
|
+ ):
|
|
|
+
|
|
|
+ FIND userdata NO-LOCK
|
|
|
+ WHERE userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
+ AND userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
+ AND userdata.branch = '0000'
|
|
|
+ AND userdata.record_type = 'lastrecord'
|
|
|
+ AND userdata.section = oJsonIdent:GetCharacter('file_name')
|
|
|
+ AND userdata.key_type = '' NO-ERROR.
|
|
|
|
|
|
- IF NOT AVAILABLE userdata THEN RETURN FALSE.
|
|
|
+ IF NOT AVAILABLE userdata THEN RETURN FALSE.
|
|
|
|
|
|
- cWhere = userdata.cfield_1.
|
|
|
- RELEASE userdata.
|
|
|
+ cWhere = userdata.cfield_1.
|
|
|
+ RELEASE userdata.
|
|
|
|
|
|
- RETURN TRUE.
|
|
|
+ RETURN TRUE.
|
|
|
|
|
|
- END METHOD.
|
|
|
+END METHOD.
|
|
|
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
|
|
|
- METHOD PUBLIC VOID readSortFields(
|
|
|
- INPUT oJsonIdent AS JsonObject,
|
|
|
- INPUT cFileName AS CHARACTER ,
|
|
|
- OUTPUT cSortField AS CHARACTER ,
|
|
|
- OUTPUT cDirection AS CHARACTER
|
|
|
- ):
|
|
|
+METHOD PUBLIC VOID readSortFields(
|
|
|
+ INPUT oJsonIdent AS JsonObject,
|
|
|
+ INPUT cFileName AS CHARACTER ,
|
|
|
+ OUTPUT cSortField AS CHARACTER ,
|
|
|
+ OUTPUT cDirection AS CHARACTER
|
|
|
+ ):
|
|
|
|
|
|
- DEFINE VARIABLE cCompany AS CHARACTER NO-UNDO.
|
|
|
- DEFINE VARIABLE cUser_Name AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cCompany AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cUser_Name AS CHARACTER NO-UNDO.
|
|
|
|
|
|
- cSortField = ''.
|
|
|
- cDirection = ''.
|
|
|
- cCompany = oJsonIdent:GetCharacter('company' ).
|
|
|
- cUser_Name = oJsonIdent:GetCharacter('user_name').
|
|
|
- FIND userdata NO-LOCK
|
|
|
- WHERE userdata.user_name = cUser_Name
|
|
|
- AND userdata.company = cCompany
|
|
|
- AND userdata.branch = '0000'
|
|
|
- AND userdata.record_type = 'sortField'
|
|
|
- AND userdata.section = cFileName
|
|
|
- AND userdata.key_type = '' NO-ERROR.
|
|
|
- IF AVAILABLE userdata THEN
|
|
|
- ASSIGN
|
|
|
- cSortField = userdata.cfield_1
|
|
|
- cDirection = (IF userdata.cfield_2 BEGINS 'asc' THEN '' ELSE userdata.cfield_2).
|
|
|
-
|
|
|
- RETURN.
|
|
|
-
|
|
|
- END METHOD.
|
|
|
-
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
-
|
|
|
- METHOD PUBLIC CHARACTER getPrimaryIndexFields(
|
|
|
- INPUT ipctable AS CHARACTER
|
|
|
- ):
|
|
|
-
|
|
|
- DEFINE VARIABLE cFields AS CHARACTER NO-UNDO.
|
|
|
- DEFINE VARIABLE cDBNames AS CHARACTER NO-UNDO INIT 'Ge_MIS;FRAMEWORK'.
|
|
|
- DEFINE VARIABLE cDBName AS CHARACTER NO-UNDO.
|
|
|
- DEFINE VARIABLE cFileName AS CHARACTER NO-UNDO.
|
|
|
- DEFINE VARIABLE cFieldName AS CHARACTER NO-UNDO.
|
|
|
- DEFINE VARIABLE ix AS INTEGER NO-UNDO.
|
|
|
-
|
|
|
- DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
|
|
|
-
|
|
|
- DO ix = 1 TO NUM-ENTRIES(cDBNames, ';'):
|
|
|
- cDBName = ENTRY(ix, cDBNames, ';').
|
|
|
- cFileName = SUBSTITUTE('&1.&2', cDBName, ipcTable).
|
|
|
- CREATE BUFFER hBuffer FOR TABLE cFileName NO-ERROR.
|
|
|
- IF NOT ERROR-STATUS:ERROR AND
|
|
|
- VALID-HANDLE(hBuffer) THEN LEAVE.
|
|
|
+ cSortField = ''.
|
|
|
+ cDirection = ''.
|
|
|
+ cCompany = oJsonIdent:GetCharacter('company' ).
|
|
|
+ cUser_Name = oJsonIdent:GetCharacter('user_name').
|
|
|
+ FIND userdata NO-LOCK
|
|
|
+ WHERE userdata.user_name = cUser_Name
|
|
|
+ AND userdata.company = cCompany
|
|
|
+ AND userdata.branch = '0000'
|
|
|
+ AND userdata.record_type = 'sortField'
|
|
|
+ AND userdata.section = cFileName
|
|
|
+ AND userdata.key_type = '' NO-ERROR.
|
|
|
+ IF AVAILABLE userdata THEN
|
|
|
+ ASSIGN
|
|
|
+ cSortField = userdata.cfield_1
|
|
|
+ cDirection = (IF userdata.cfield_2 BEGINS 'asc' THEN '' ELSE userdata.cfield_2).
|
|
|
+
|
|
|
+ RETURN.
|
|
|
+
|
|
|
+END METHOD.
|
|
|
+
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
+
|
|
|
+METHOD PUBLIC CHARACTER getPrimaryIndexFields(
|
|
|
+ INPUT ipctable AS CHARACTER
|
|
|
+ ):
|
|
|
+
|
|
|
+ DEFINE VARIABLE cFields AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cDBNames AS CHARACTER NO-UNDO INIT 'Ge_MIS;FRAMEWORK'.
|
|
|
+ DEFINE VARIABLE cDBName AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cFileName AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cFieldName AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE ix AS INTEGER NO-UNDO.
|
|
|
+
|
|
|
+ DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
|
|
|
+
|
|
|
+ DO ix = 1 TO NUM-ENTRIES(cDBNames, ';'):
|
|
|
+ cDBName = ENTRY(ix, cDBNames, ';').
|
|
|
+ cFileName = SUBSTITUTE('&1.&2', cDBName, ipcTable).
|
|
|
+ CREATE BUFFER hBuffer FOR TABLE cFileName NO-ERROR.
|
|
|
+ IF NOT ERROR-STATUS:ERROR AND
|
|
|
+ VALID-HANDLE(hBuffer) THEN LEAVE.
|
|
|
|
|
|
- DELETE OBJECT hBuffer NO-ERROR.
|
|
|
- cDBName = ''.
|
|
|
- END.
|
|
|
DELETE OBJECT hBuffer NO-ERROR.
|
|
|
+ cDBName = ''.
|
|
|
+ END.
|
|
|
+ DELETE OBJECT hBuffer NO-ERROR.
|
|
|
|
|
|
- cFields = ''.
|
|
|
- CASE cDBName:
|
|
|
- WHEN 'Ge_MIS' THEN
|
|
|
- DO:
|
|
|
- FIND FIRST Ge_MIS._File NO-LOCK
|
|
|
- WHERE Ge_MIS._File._File-Name = ipctable NO-ERROR.
|
|
|
- FOR EACH Ge_MIS._Index-Field NO-LOCK
|
|
|
- WHERE Ge_MIS._Index-Field._Index-Recid = Ge_MIS._File._Prime-Index,
|
|
|
+ cFields = ''.
|
|
|
+ CASE cDBName:
|
|
|
+ WHEN 'Ge_MIS' THEN
|
|
|
+ DO:
|
|
|
+ FIND FIRST Ge_MIS._File NO-LOCK
|
|
|
+ WHERE Ge_MIS._File._File-Name = ipctable NO-ERROR.
|
|
|
+ FOR EACH Ge_MIS._Index-Field NO-LOCK
|
|
|
+ WHERE Ge_MIS._Index-Field._Index-Recid = Ge_MIS._File._Prime-Index,
|
|
|
|
|
|
- FIRST Ge_MIS._Field NO-LOCK
|
|
|
- WHERE RECID(Ge_MIS._Field) = Ge_MIS._index-Field._Field-recid
|
|
|
+ FIRST Ge_MIS._Field NO-LOCK
|
|
|
+ WHERE RECID(Ge_MIS._Field) = Ge_MIS._index-Field._Field-recid
|
|
|
|
|
|
- BY Ge_MIS._Index-Field._Index-Seq:
|
|
|
+ BY Ge_MIS._Index-Field._Index-Seq:
|
|
|
|
|
|
- cFields = cFields
|
|
|
- + (IF cFields = '' THEN '' ELSE ';')
|
|
|
- + Ge_MIS._Field._Field-Name.
|
|
|
- END.
|
|
|
- END.
|
|
|
- WHEN 'FRAMEWORK' THEN
|
|
|
- DO:
|
|
|
- FIND FIRST FRAMEWORK._File NO-LOCK
|
|
|
- WHERE FRAMEWORK._File._File-Name = ipctable NO-ERROR.
|
|
|
- FOR EACH FRAMEWORK._Index-Field NO-LOCK
|
|
|
- WHERE FRAMEWORK._Index-Field._Index-Recid = FRAMEWORK._File._Prime-Index,
|
|
|
+ cFields = cFields
|
|
|
+ + (IF cFields = '' THEN '' ELSE ';')
|
|
|
+ + Ge_MIS._Field._Field-Name.
|
|
|
+ END.
|
|
|
+ END.
|
|
|
+ WHEN 'FRAMEWORK' THEN
|
|
|
+ DO:
|
|
|
+ FIND FIRST FRAMEWORK._File NO-LOCK
|
|
|
+ WHERE FRAMEWORK._File._File-Name = ipctable NO-ERROR.
|
|
|
+ FOR EACH FRAMEWORK._Index-Field NO-LOCK
|
|
|
+ WHERE FRAMEWORK._Index-Field._Index-Recid = FRAMEWORK._File._Prime-Index,
|
|
|
|
|
|
- FIRST FRAMEWORK._Field NO-LOCK
|
|
|
- WHERE RECID(FRAMEWORK._Field) = FRAMEWORK._index-Field._Field-recid
|
|
|
+ FIRST FRAMEWORK._Field NO-LOCK
|
|
|
+ WHERE RECID(FRAMEWORK._Field) = FRAMEWORK._index-Field._Field-recid
|
|
|
|
|
|
- BY FRAMEWORK._Index-Field._Index-Seq:
|
|
|
+ BY FRAMEWORK._Index-Field._Index-Seq:
|
|
|
|
|
|
- cFields = cFields
|
|
|
- + (IF cFields = '' THEN '' ELSE ';')
|
|
|
- + FRAMEWORK._Field._Field-Name.
|
|
|
- END.
|
|
|
- END.
|
|
|
- END CASE.
|
|
|
+ cFields = cFields
|
|
|
+ + (IF cFields = '' THEN '' ELSE ';')
|
|
|
+ + FRAMEWORK._Field._Field-Name.
|
|
|
+ END.
|
|
|
+ END.
|
|
|
+ END CASE.
|
|
|
|
|
|
- RETURN cFields.
|
|
|
+ RETURN cFields.
|
|
|
|
|
|
- END METHOD.
|
|
|
+END METHOD.
|
|
|
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
|
|
|
- METHOD PUBLIC CHARACTER getSysUser( ):
|
|
|
+METHOD PUBLIC CHARACTER getSysUser( ):
|
|
|
|
|
|
- DEFINE VARIABLE mBen AS MEMPTR NO-UNDO.
|
|
|
- DEFINE VARIABLE iLeng AS INTEGER INIT 100 NO-UNDO.
|
|
|
- DEFINE VARIABLE fok AS INTEGER NO-UNDO.
|
|
|
- DEFINE VARIABLE cBen AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE mBen AS MEMPTR NO-UNDO.
|
|
|
+ DEFINE VARIABLE iLeng AS INTEGER INIT 100 NO-UNDO.
|
|
|
+ DEFINE VARIABLE fok AS INTEGER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cBen AS CHARACTER NO-UNDO.
|
|
|
|
|
|
- SET-SIZE(mBen) = iLeng.
|
|
|
- RUN GetUserNameA( OUTPUT mBen, INPUT-OUTPUT iLeng, OUTPUT fok ) NO-ERROR.
|
|
|
- ASSIGN
|
|
|
- cBen = GET-STRING(mBen,1) NO-ERROR.
|
|
|
+ SET-SIZE(mBen) = iLeng.
|
|
|
+ RUN GetUserNameA( OUTPUT mBen, INPUT-OUTPUT iLeng, OUTPUT fok ) NO-ERROR.
|
|
|
+ ASSIGN
|
|
|
+ cBen = GET-STRING(mBen,1) NO-ERROR.
|
|
|
|
|
|
- SET-SIZE(mBen) = 0.
|
|
|
+ SET-SIZE(mBen) = 0.
|
|
|
|
|
|
- RETURN cBen.
|
|
|
+ RETURN cBen.
|
|
|
|
|
|
- END METHOD.
|
|
|
+END METHOD.
|
|
|
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
|
|
|
- METHOD PUBLIC LOGICAL readInputDatenFromJson(
|
|
|
- INPUT oJsonObject AS JsonObject,
|
|
|
- INPUT hbttInput AS HANDLE,
|
|
|
- INPUT-OUTPUT hbttTemp AS HANDLE
|
|
|
- ):
|
|
|
+METHOD PUBLIC LOGICAL readInputDatenFromJson(
|
|
|
+ INPUT oJsonObject AS JsonObject,
|
|
|
+ INPUT hbttInput AS HANDLE,
|
|
|
+ INPUT-OUTPUT hbttTemp AS HANDLE
|
|
|
+ ):
|
|
|
|
|
|
- DEFINE VARIABLE lcJsonString AS LONGCHAR NO-UNDO.
|
|
|
- DEFINE VARIABLE lcOriginal AS LONGCHAR NO-UNDO.
|
|
|
+ DEFINE VARIABLE lcJsonString AS LONGCHAR NO-UNDO.
|
|
|
+ DEFINE VARIABLE lcOriginal AS LONGCHAR NO-UNDO.
|
|
|
|
|
|
- DEFINE VARIABLE ctable AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE ctable AS CHARACTER NO-UNDO.
|
|
|
|
|
|
- DEFINE VARIABLE jsonttTemp AS jsonObject NO-UNDO.
|
|
|
+ DEFINE VARIABLE jsonttTemp AS jsonObject NO-UNDO.
|
|
|
|
|
|
- DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO INIT FALSE.
|
|
|
- DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO INIT FALSE.
|
|
|
+ DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
|
|
|
|
|
|
- jsonttTemp = NEW JsonObject().
|
|
|
- jsonttTemp = oJsonObject:GetJsonObject('ttTemp').
|
|
|
- lRetVal = hbttTemp:READ-JSON ('JsonObject', jsonttTemp).
|
|
|
- hbttTemp:FIND-FIRST ().
|
|
|
+ jsonttTemp = NEW JsonObject().
|
|
|
+ jsonttTemp = oJsonObject:GetJsonObject('ttTemp').
|
|
|
+ lRetVal = hbttTemp:READ-JSON ('JsonObject', jsonttTemp).
|
|
|
+ hbttTemp:FIND-FIRST ().
|
|
|
|
|
|
- hbttTemp:WRITE-JSON('longchar', lcJsonString, FALSE).
|
|
|
+ hbttTemp:WRITE-JSON('longchar', lcJsonString, FALSE).
|
|
|
// MESSAGE 'Daten zweiter Buffer -> ' STRING(lcJsonString).
|
|
|
|
|
|
- lRetVal = TRUE.
|
|
|
- RETURN lRetVal.
|
|
|
+ lRetVal = TRUE.
|
|
|
+ RETURN lRetVal.
|
|
|
|
|
|
- END METHOD.
|
|
|
+END METHOD.
|
|
|
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
|
|
|
- METHOD PUBLIC VOID readPosition(
|
|
|
- INPUT oJsonIdent AS JsonObject ,
|
|
|
- INPUT cFileName AS CHARACTER ,
|
|
|
- OUTPUT iCurrentPosition AS INTEGER ,
|
|
|
- OUTPUT iStartPage AS INTEGER ,
|
|
|
- OUTPUT iMaxRecords AS INTEGER
|
|
|
- ):
|
|
|
+METHOD PUBLIC VOID readPosition(
|
|
|
+ INPUT oJsonIdent AS JsonObject ,
|
|
|
+ INPUT cFileName AS CHARACTER ,
|
|
|
+ OUTPUT iCurrentPosition AS INTEGER ,
|
|
|
+ OUTPUT iStartPage AS INTEGER ,
|
|
|
+ OUTPUT iMaxRecords AS INTEGER
|
|
|
+ ):
|
|
|
|
|
|
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
|
|
|
- FIND userdata
|
|
|
- WHERE userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
- AND userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
- AND userdata.branch = '0000'
|
|
|
- AND userdata.record_type = 'position'
|
|
|
- AND userdata.section = cFileName
|
|
|
- AND userdata.key_type = '' NO-ERROR.
|
|
|
- IF AVAILABLE userdata THEN
|
|
|
- DO:
|
|
|
- ASSIGN
|
|
|
- iCurrentPosition = userdata.ifield_1
|
|
|
- iStartPage = userdata.ifield_2
|
|
|
- iMaxRecords = userdata.ifield_3.
|
|
|
- END.
|
|
|
- ELSE
|
|
|
- DO:
|
|
|
- ASSIGN
|
|
|
- iCurrentPosition = 1
|
|
|
- iStartPage = 1
|
|
|
- iMaxRecords = 25.
|
|
|
- END.
|
|
|
- RELEASE userdata.
|
|
|
- LEAVE.
|
|
|
- END.
|
|
|
-
|
|
|
- RETURN.
|
|
|
-
|
|
|
- END METHOD.
|
|
|
-
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
-
|
|
|
- METHOD PUBLIC VOID readStartcWhere(
|
|
|
- INPUT oJsonIdent AS JsonObject,
|
|
|
- INPUT cFileName AS CHARACTER ,
|
|
|
- OUTPUT cWhere AS CHARACTER
|
|
|
- ):
|
|
|
-
|
|
|
+ REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
|
|
|
FIND userdata
|
|
|
WHERE userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
AND userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
AND userdata.branch = '0000'
|
|
|
- AND userdata.record_type = 'where'
|
|
|
+ AND userdata.record_type = 'position'
|
|
|
AND userdata.section = cFileName
|
|
|
- AND userdata.key_type = 'start' NO-ERROR.
|
|
|
-
|
|
|
- IF AVAILABLE userdata THEN cWhere = userdata.cfield_1.
|
|
|
+ AND userdata.key_type = '' NO-ERROR.
|
|
|
+ IF AVAILABLE userdata THEN
|
|
|
+ DO:
|
|
|
+ ASSIGN
|
|
|
+ iCurrentPosition = userdata.ifield_1
|
|
|
+ iStartPage = userdata.ifield_2
|
|
|
+ iMaxRecords = userdata.ifield_3.
|
|
|
+ END.
|
|
|
+ ELSE
|
|
|
+ DO:
|
|
|
+ ASSIGN
|
|
|
+ iCurrentPosition = 1
|
|
|
+ iStartPage = 1
|
|
|
+ iMaxRecords = 25.
|
|
|
+ END.
|
|
|
RELEASE userdata.
|
|
|
+ LEAVE.
|
|
|
+ END.
|
|
|
+
|
|
|
+ RETURN.
|
|
|
+
|
|
|
+END METHOD.
|
|
|
+
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
+
|
|
|
+METHOD PUBLIC VOID readStartcWhere(
|
|
|
+ INPUT oJsonIdent AS JsonObject,
|
|
|
+ INPUT cFileName AS CHARACTER ,
|
|
|
+ OUTPUT cWhere AS CHARACTER
|
|
|
+ ):
|
|
|
+
|
|
|
+ FIND userdata
|
|
|
+ WHERE userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
+ AND userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
+ AND userdata.branch = '0000'
|
|
|
+ AND userdata.record_type = 'where'
|
|
|
+ AND userdata.section = cFileName
|
|
|
+ AND userdata.key_type = 'start' NO-ERROR.
|
|
|
+
|
|
|
+ IF AVAILABLE userdata THEN cWhere = userdata.cfield_1.
|
|
|
+ RELEASE userdata.
|
|
|
|
|
|
- RETURN.
|
|
|
+ RETURN.
|
|
|
|
|
|
- END METHOD.
|
|
|
+END METHOD.
|
|
|
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
|
|
|
- METHOD PUBLIC VOID setActiveSelection(
|
|
|
- INPUT oJsonIdent AS JsonObject,
|
|
|
- INPUT cFileName AS CHARACTER ,
|
|
|
- INPUT cActiveSelection AS CHARACTER
|
|
|
- ):
|
|
|
+METHOD PUBLIC VOID setActiveSelection(
|
|
|
+ INPUT oJsonIdent AS JsonObject,
|
|
|
+ INPUT cFileName AS CHARACTER ,
|
|
|
+ INPUT cActiveSelection AS CHARACTER
|
|
|
+ ):
|
|
|
|
|
|
- DEFINE VARIABLE ccompany AS CHARACTER NO-UNDO.
|
|
|
- DEFINE VARIABLE cuser_name AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE ccompany AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cuser_name AS CHARACTER NO-UNDO.
|
|
|
|
|
|
- ASSIGN
|
|
|
- ccompany = oJsonIdent:GetCharacter('company')
|
|
|
- cuser_name = oJsonIdent:GetCharacter('user_name')
|
|
|
- cProgram = oJsonIdent:GetCharacter('program').
|
|
|
+ ASSIGN
|
|
|
+ ccompany = oJsonIdent:GetCharacter('company')
|
|
|
+ cuser_name = oJsonIdent:GetCharacter('user_name')
|
|
|
+ cProgram = oJsonIdent:GetCharacter('program').
|
|
|
|
|
|
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
|
|
|
- FIND userdata
|
|
|
- WHERE userdata.user_name = cuser_name
|
|
|
- AND userdata.company = ccompany
|
|
|
- AND userdata.branch = '0000'
|
|
|
- AND userdata.record_type = 'active'
|
|
|
- AND userdata.section = cFileName
|
|
|
- AND userdata.key_type = cProgram NO-ERROR.
|
|
|
- IF NOT AVAILABLE userdata THEN
|
|
|
- DO:
|
|
|
- CREATE userdata.
|
|
|
- ASSIGN
|
|
|
- userdata.user_name = cuser_name
|
|
|
- userdata.company = ccompany
|
|
|
- userdata.branch = '0000'
|
|
|
- userdata.record_type = 'active'
|
|
|
- userdata.section = cFileName
|
|
|
- userdata.key_type = cProgram
|
|
|
- userdata.creation_date = NOW NO-ERROR.
|
|
|
- END.
|
|
|
- ELSE
|
|
|
- DO:
|
|
|
- userdata.access_date = NOW.
|
|
|
- END.
|
|
|
- userdata.cfield_1 = cActiveSelection.
|
|
|
- RELEASE userdata.
|
|
|
- LEAVE.
|
|
|
- END.
|
|
|
+ REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
|
|
|
+ FIND userdata
|
|
|
+ WHERE userdata.user_name = cuser_name
|
|
|
+ AND userdata.company = ccompany
|
|
|
+ AND userdata.branch = '0000'
|
|
|
+ AND userdata.record_type = 'active'
|
|
|
+ AND userdata.section = cFileName
|
|
|
+ AND userdata.key_type = cProgram NO-ERROR.
|
|
|
+ IF NOT AVAILABLE userdata THEN
|
|
|
+ DO:
|
|
|
+ CREATE userdata.
|
|
|
+ ASSIGN
|
|
|
+ userdata.user_name = cuser_name
|
|
|
+ userdata.company = ccompany
|
|
|
+ userdata.branch = '0000'
|
|
|
+ userdata.record_type = 'active'
|
|
|
+ userdata.section = cFileName
|
|
|
+ userdata.key_type = cProgram
|
|
|
+ userdata.creation_date = NOW NO-ERROR.
|
|
|
+ END.
|
|
|
+ ELSE
|
|
|
+ DO:
|
|
|
+ userdata.access_date = NOW.
|
|
|
+ END.
|
|
|
+ userdata.cfield_1 = cActiveSelection.
|
|
|
+ RELEASE userdata.
|
|
|
+ LEAVE.
|
|
|
+ END.
|
|
|
|
|
|
- RETURN.
|
|
|
+ RETURN.
|
|
|
|
|
|
- END METHOD.
|
|
|
+END METHOD.
|
|
|
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
|
|
|
- METHOD PUBLIC LONGCHAR trimStructure(
|
|
|
- INPUT oJsonInput AS JsonObject
|
|
|
- ):
|
|
|
+METHOD PUBLIC LONGCHAR trimStructure(
|
|
|
+ INPUT oJsonInput AS JsonObject
|
|
|
+ ):
|
|
|
|
|
|
- DEFINE VARIABLE lcResult AS LONGCHAR NO-UNDO.
|
|
|
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
|
|
|
+ DEFINE VARIABLE lcResult AS LONGCHAR NO-UNDO.
|
|
|
+ DEFINE VARIABLE ii AS INTEGER NO-UNDO.
|
|
|
|
|
|
- lcResult = TRIM(oJsonInput:GetJsonText()).
|
|
|
- lcResult = SUBSTRING(lcResult,02).
|
|
|
- ii = LENGTH(lcResult) - 1.
|
|
|
- lcResult = SUBSTRING(lcResult,01, ii).
|
|
|
+ lcResult = TRIM(oJsonInput:GetJsonText()).
|
|
|
+ lcResult = SUBSTRING(lcResult,02).
|
|
|
+ ii = LENGTH(lcResult) - 1.
|
|
|
+ lcResult = SUBSTRING(lcResult,01, ii).
|
|
|
|
|
|
- RETURN lcResult.
|
|
|
+ RETURN lcResult.
|
|
|
|
|
|
- END METHOD.
|
|
|
+END METHOD.
|
|
|
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
|
|
|
- METHOD PUBLIC VOID writeLastcWhere(
|
|
|
- INPUT oJsonIdent AS JsonObject,
|
|
|
- INPUT cFileName AS CHARACTER ,
|
|
|
- INPUT cWhere AS CHARACTER
|
|
|
- ):
|
|
|
+METHOD PUBLIC VOID writeLastcWhere(
|
|
|
+ INPUT oJsonIdent AS JsonObject,
|
|
|
+ INPUT cFileName AS CHARACTER ,
|
|
|
+ INPUT cWhere AS CHARACTER
|
|
|
+ ):
|
|
|
|
|
|
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
|
|
|
- FIND userdata
|
|
|
- WHERE userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
- AND userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
- AND userdata.branch = '0000'
|
|
|
- AND userdata.record_type = 'where'
|
|
|
- AND userdata.section = cFileName
|
|
|
- AND userdata.key_type = 'last' NO-ERROR.
|
|
|
+ REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
|
|
|
+ FIND userdata
|
|
|
+ WHERE userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
+ AND userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
+ AND userdata.branch = '0000'
|
|
|
+ AND userdata.record_type = 'where'
|
|
|
+ AND userdata.section = cFileName
|
|
|
+ AND userdata.key_type = 'last' NO-ERROR.
|
|
|
|
|
|
- IF NOT AVAILABLE userdata THEN
|
|
|
- DO:
|
|
|
- CREATE userdata.
|
|
|
- ASSIGN
|
|
|
- userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
- userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
- userdata.branch = '0000'
|
|
|
- userdata.record_type = 'where'
|
|
|
- userdata.section = cFileName
|
|
|
- userdata.key_type = 'last' NO-ERROR.
|
|
|
- END.
|
|
|
- ASSIGN
|
|
|
- userdata.cfield_1 = cWhere.
|
|
|
- RELEASE userdata.
|
|
|
- LEAVE.
|
|
|
+ IF NOT AVAILABLE userdata THEN
|
|
|
+ DO:
|
|
|
+ CREATE userdata.
|
|
|
+ ASSIGN
|
|
|
+ userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
+ userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
+ userdata.branch = '0000'
|
|
|
+ userdata.record_type = 'where'
|
|
|
+ userdata.section = cFileName
|
|
|
+ userdata.key_type = 'last' NO-ERROR.
|
|
|
END.
|
|
|
+ ASSIGN
|
|
|
+ userdata.cfield_1 = cWhere.
|
|
|
+ RELEASE userdata.
|
|
|
+ LEAVE.
|
|
|
+ END.
|
|
|
|
|
|
- RETURN.
|
|
|
+ RETURN.
|
|
|
|
|
|
- END METHOD.
|
|
|
+END METHOD.
|
|
|
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
|
|
|
- METHOD PUBLIC LOGICAL writeLastRecord(
|
|
|
- INPUT oJsonIdent AS JsonObject,
|
|
|
- INPUT cWhere AS CHARACTER
|
|
|
- ):
|
|
|
+METHOD PUBLIC LOGICAL writeLastRecord(
|
|
|
+ INPUT oJsonIdent AS JsonObject,
|
|
|
+ INPUT cWhere AS CHARACTER
|
|
|
+ ):
|
|
|
|
|
|
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
|
|
|
- FIND userdata
|
|
|
- WHERE userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
- AND userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
- AND userdata.branch = '0000'
|
|
|
- AND userdata.record_type = 'lastrecord'
|
|
|
- AND userdata.section = oJsonIdent:GetCharacter('file_name')
|
|
|
- AND userdata.key_type = '' NO-ERROR.
|
|
|
+ REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
|
|
|
+ FIND userdata
|
|
|
+ WHERE userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
+ AND userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
+ AND userdata.branch = '0000'
|
|
|
+ AND userdata.record_type = 'lastrecord'
|
|
|
+ AND userdata.section = oJsonIdent:GetCharacter('file_name')
|
|
|
+ AND userdata.key_type = '' NO-ERROR.
|
|
|
|
|
|
- IF NOT AVAILABLE userdata THEN
|
|
|
- DO:
|
|
|
- CREATE userdata.
|
|
|
- ASSIGN
|
|
|
- userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
- userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
- userdata.branch = '0000'
|
|
|
- userdata.record_type = 'lastrecord'
|
|
|
- userdata.section = oJsonIdent:GetCharacter('file_name')
|
|
|
- userdata.key_type = ''
|
|
|
- userdata.creation_date = NOW NO-ERROR.
|
|
|
- END.
|
|
|
- ASSIGN
|
|
|
- userdata.cfield_1 = cWhere
|
|
|
- userdata.access_date = NOW.
|
|
|
- RELEASE userdata.
|
|
|
- LEAVE.
|
|
|
+ IF NOT AVAILABLE userdata THEN
|
|
|
+ DO:
|
|
|
+ CREATE userdata.
|
|
|
+ ASSIGN
|
|
|
+ userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
+ userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
+ userdata.branch = '0000'
|
|
|
+ userdata.record_type = 'lastrecord'
|
|
|
+ userdata.section = oJsonIdent:GetCharacter('file_name')
|
|
|
+ userdata.key_type = ''
|
|
|
+ userdata.creation_date = NOW NO-ERROR.
|
|
|
END.
|
|
|
+ ASSIGN
|
|
|
+ userdata.cfield_1 = cWhere
|
|
|
+ userdata.access_date = NOW.
|
|
|
+ RELEASE userdata.
|
|
|
+ LEAVE.
|
|
|
+ END.
|
|
|
|
|
|
- RETURN TRUE.
|
|
|
+ RETURN TRUE.
|
|
|
|
|
|
- END METHOD.
|
|
|
+END METHOD.
|
|
|
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
|
|
|
- METHOD PUBLIC VOID writePosition(
|
|
|
- INPUT oJsonIdent AS JsonObject,
|
|
|
- INPUT cFileName AS CHARACTER ,
|
|
|
- INPUT iCurrentPosition AS INTEGER ,
|
|
|
- INPUT iStartPage AS INTEGER ,
|
|
|
- INPUT iMaxRecords AS INTEGER
|
|
|
- ):
|
|
|
+METHOD PUBLIC VOID writePosition(
|
|
|
+ INPUT oJsonIdent AS JsonObject,
|
|
|
+ INPUT cFileName AS CHARACTER ,
|
|
|
+ INPUT iCurrentPosition AS INTEGER ,
|
|
|
+ INPUT iStartPage AS INTEGER ,
|
|
|
+ INPUT iMaxRecords AS INTEGER
|
|
|
+ ):
|
|
|
|
|
|
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
|
|
|
- FIND userdata
|
|
|
- WHERE userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
- AND userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
- AND userdata.branch = '0000'
|
|
|
- AND userdata.record_type = 'position'
|
|
|
- AND userdata.section = cFileName
|
|
|
- AND userdata.key_type = '' NO-ERROR.
|
|
|
+ REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
|
|
|
+ FIND userdata
|
|
|
+ WHERE userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
+ AND userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
+ AND userdata.branch = '0000'
|
|
|
+ AND userdata.record_type = 'position'
|
|
|
+ AND userdata.section = cFileName
|
|
|
+ AND userdata.key_type = '' NO-ERROR.
|
|
|
|
|
|
- IF NOT AVAILABLE userdata THEN
|
|
|
- DO:
|
|
|
- CREATE userdata.
|
|
|
- ASSIGN
|
|
|
- userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
- userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
- userdata.branch = '0000'
|
|
|
- userdata.record_type = 'position'
|
|
|
- userdata.section = cFileName
|
|
|
- userdata.key_type = '' NO-ERROR.
|
|
|
- END.
|
|
|
- ASSIGN
|
|
|
- userdata.ifield_1 = iCurrentPosition
|
|
|
- userdata.iField_2 = iStartPage
|
|
|
- userdata.ifield_3 = iMaxRecords.
|
|
|
- RELEASE userdata.
|
|
|
- LEAVE.
|
|
|
+ IF NOT AVAILABLE userdata THEN
|
|
|
+ DO:
|
|
|
+ CREATE userdata.
|
|
|
+ ASSIGN
|
|
|
+ userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
+ userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
+ userdata.branch = '0000'
|
|
|
+ userdata.record_type = 'position'
|
|
|
+ userdata.section = cFileName
|
|
|
+ userdata.key_type = '' NO-ERROR.
|
|
|
END.
|
|
|
+ ASSIGN
|
|
|
+ userdata.ifield_1 = iCurrentPosition
|
|
|
+ userdata.iField_2 = iStartPage
|
|
|
+ userdata.ifield_3 = iMaxRecords.
|
|
|
+ RELEASE userdata.
|
|
|
+ LEAVE.
|
|
|
+ END.
|
|
|
|
|
|
- RETURN.
|
|
|
+ RETURN.
|
|
|
|
|
|
- END METHOD.
|
|
|
+END METHOD.
|
|
|
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
|
|
|
- METHOD PUBLIC VOID writeSortfields(
|
|
|
- INPUT oJsonIdent AS JsonObject,
|
|
|
- INPUT cFileName AS CHARACTER ,
|
|
|
- INPUT cSortField AS CHARACTER ,
|
|
|
- INPUT cDirection AS CHARACTER
|
|
|
- ):
|
|
|
+METHOD PUBLIC VOID writeSortfields(
|
|
|
+ INPUT oJsonIdent AS JsonObject,
|
|
|
+ INPUT cFileName AS CHARACTER ,
|
|
|
+ INPUT cSortField AS CHARACTER ,
|
|
|
+ INPUT cDirection AS CHARACTER
|
|
|
+ ):
|
|
|
|
|
|
- DEFINE VARIABLE cCompany AS CHARACTER NO-UNDO.
|
|
|
- DEFINE VARIABLE cUser_Name AS CHARACTER NO-UNDO.
|
|
|
- DEFINE VARIABLE cReplace AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cCompany AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cUser_Name AS CHARACTER NO-UNDO.
|
|
|
+ DEFINE VARIABLE cReplace AS CHARACTER NO-UNDO.
|
|
|
|
|
|
- cCompany = oJsonIdent:GetCharacter('company' ).
|
|
|
- cUser_Name = oJsonIdent:GetCharacter('user_name').
|
|
|
- cReplace = SUBSTITUTE('&1_', cFileName).
|
|
|
- cSortField = REPLACE(cSortField, cReplace, '').
|
|
|
-
|
|
|
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
|
|
|
- FIND userdata
|
|
|
- WHERE userdata.user_name = cUser_Name
|
|
|
- AND userdata.company = cCompany
|
|
|
- AND userdata.branch = '0000'
|
|
|
- AND userdata.record_type = 'sortField'
|
|
|
- AND userdata.section = cFileName
|
|
|
- AND userdata.key_type = '' NO-ERROR.
|
|
|
+ cCompany = oJsonIdent:GetCharacter('company' ).
|
|
|
+ cUser_Name = oJsonIdent:GetCharacter('user_name').
|
|
|
+ cReplace = SUBSTITUTE('&1_', cFileName).
|
|
|
+ cSortField = REPLACE(cSortField, cReplace, '').
|
|
|
+
|
|
|
+ REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
|
|
|
+ FIND userdata
|
|
|
+ WHERE userdata.user_name = cUser_Name
|
|
|
+ AND userdata.company = cCompany
|
|
|
+ AND userdata.branch = '0000'
|
|
|
+ AND userdata.record_type = 'sortField'
|
|
|
+ AND userdata.section = cFileName
|
|
|
+ AND userdata.key_type = '' NO-ERROR.
|
|
|
|
|
|
- IF NOT AVAILABLE userdata THEN
|
|
|
- DO:
|
|
|
- CREATE userdata.
|
|
|
- ASSIGN
|
|
|
- userdata.user_name = cUser_Name
|
|
|
- userdata.company = cCompany
|
|
|
- userdata.branch = '0000'
|
|
|
- userdata.record_type = 'sortField'
|
|
|
- userdata.section = cFileName
|
|
|
- userdata.key_type = '' NO-ERROR.
|
|
|
- END.
|
|
|
- ASSIGN
|
|
|
- userdata.cfield_1 = cSortfield
|
|
|
- userdata.cfield_2 = cDirection.
|
|
|
- RELEASE userdata.
|
|
|
- LEAVE.
|
|
|
+ IF NOT AVAILABLE userdata THEN
|
|
|
+ DO:
|
|
|
+ CREATE userdata.
|
|
|
+ ASSIGN
|
|
|
+ userdata.user_name = cUser_Name
|
|
|
+ userdata.company = cCompany
|
|
|
+ userdata.branch = '0000'
|
|
|
+ userdata.record_type = 'sortField'
|
|
|
+ userdata.section = cFileName
|
|
|
+ userdata.key_type = '' NO-ERROR.
|
|
|
END.
|
|
|
+ ASSIGN
|
|
|
+ userdata.cfield_1 = cSortfield
|
|
|
+ userdata.cfield_2 = cDirection.
|
|
|
+ RELEASE userdata.
|
|
|
+ LEAVE.
|
|
|
+ END.
|
|
|
|
|
|
- RETURN.
|
|
|
+ RETURN.
|
|
|
|
|
|
- END METHOD.
|
|
|
+END METHOD.
|
|
|
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
|
|
|
- METHOD PUBLIC VOID writeStartcWhere(
|
|
|
- INPUT oJsonIdent AS JsonObject,
|
|
|
- INPUT cFileName AS CHARACTER ,
|
|
|
- INPUT cWhere AS CHARACTER
|
|
|
- ):
|
|
|
+METHOD PUBLIC VOID writeStartcWhere(
|
|
|
+ INPUT oJsonIdent AS JsonObject,
|
|
|
+ INPUT cFileName AS CHARACTER ,
|
|
|
+ INPUT cWhere AS CHARACTER
|
|
|
+ ):
|
|
|
|
|
|
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
|
|
|
- FIND userdata
|
|
|
- WHERE userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
- AND userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
- AND userdata.branch = '0000'
|
|
|
- AND userdata.record_type = 'where'
|
|
|
- AND userdata.section = cFileName
|
|
|
- AND userdata.key_type = 'start' NO-ERROR.
|
|
|
+ REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
|
|
|
+ FIND userdata
|
|
|
+ WHERE userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
+ AND userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
+ AND userdata.branch = '0000'
|
|
|
+ AND userdata.record_type = 'where'
|
|
|
+ AND userdata.section = cFileName
|
|
|
+ AND userdata.key_type = 'start' NO-ERROR.
|
|
|
|
|
|
- IF NOT AVAILABLE userdata THEN
|
|
|
- DO:
|
|
|
- CREATE userdata.
|
|
|
- ASSIGN
|
|
|
- userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
- userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
- userdata.branch = '0000'
|
|
|
- userdata.record_type = 'where'
|
|
|
- userdata.section = cFileName
|
|
|
- userdata.key_type = 'start' NO-ERROR.
|
|
|
- END.
|
|
|
- ASSIGN
|
|
|
- userdata.cfield_1 = cWhere.
|
|
|
- RELEASE userdata.
|
|
|
- LEAVE.
|
|
|
+ IF NOT AVAILABLE userdata THEN
|
|
|
+ DO:
|
|
|
+ CREATE userdata.
|
|
|
+ ASSIGN
|
|
|
+ userdata.user_name = oJsonIdent:GetCharacter('user_name')
|
|
|
+ userdata.company = oJsonIdent:GetCharacter('company')
|
|
|
+ userdata.branch = '0000'
|
|
|
+ userdata.record_type = 'where'
|
|
|
+ userdata.section = cFileName
|
|
|
+ userdata.key_type = 'start' NO-ERROR.
|
|
|
END.
|
|
|
-
|
|
|
- RETURN.
|
|
|
-
|
|
|
- END METHOD.
|
|
|
-
|
|
|
- /*------------------------------------------------------------------------------
|
|
|
- Purpose:
|
|
|
- Notes:
|
|
|
- ------------------------------------------------------------------------------*/
|
|
|
- DESTRUCTOR PUBLIC utilitiesHandler ( ):
|
|
|
- /* MESSAGE 'Destructor utilitiesHandler '.*/
|
|
|
- /* DELETE OBJECT hQuery NO-ERROR. */
|
|
|
- /* DELETE OBJECT hBuffer NO-ERROR. */
|
|
|
- END DESTRUCTOR.
|
|
|
+ ASSIGN
|
|
|
+ userdata.cfield_1 = cWhere.
|
|
|
+ RELEASE userdata.
|
|
|
+ LEAVE.
|
|
|
+ END.
|
|
|
+
|
|
|
+ RETURN.
|
|
|
+
|
|
|
+END METHOD.
|
|
|
+
|
|
|
+/*------------------------------------------------------------------------------
|
|
|
+ Purpose:
|
|
|
+ Notes:
|
|
|
+------------------------------------------------------------------------------*/
|
|
|
+DESTRUCTOR PUBLIC utilitiesHandler ( ):
|
|
|
+/* MESSAGE 'Destructor utilitiesHandler '.*/
|
|
|
+/* DELETE OBJECT hQuery NO-ERROR. */
|
|
|
+/* DELETE OBJECT hBuffer NO-ERROR. */
|
|
|
+END DESTRUCTOR.
|
|
|
|
|
|
END CLASS.
|