Hi team
I have an encounter this following error message on my abl form
I have an encounter this following error message on my abl form
Code:
DEFINE PRIVATE VARIABLE btnDisplay AS Infragistics.Win.Misc.UltraButton NO-UNDO.
DEFINE PRIVATE VARIABLE btnSave AS Infragistics.Win.Misc.UltraButton NO-UNDO.
DEFINE PRIVATE VARIABLE bsMain AS Progress.Data.BindingSource NO-UNDO.
DEFINE PRIVATE VARIABLE components AS System.ComponentModel.IContainer NO-UNDO.
DEFINE PRIVATE VARIABLE dgMain AS Infragistics.Win.UltraWinGrid.UltraGrid NO-UNDO.
DEFINE PRIVATE VARIABLE hProc AS HANDLE NO-UNDO.
DEFINE PRIVATE VARIABLE sta AS LOGICAL NO-UNDO.
DEFINE PRIVATE VARIABLE hServer AS HANDLE NO-UNDO.
CONSTRUCTOR PUBLIC DesignForm ( ):
SUPER().
InitializeComponent().
sta = hServer:CONNECT ("-AppService asRunTest -H 196.11.122.223 -S 5162").
MESSAGE "test2".
IF NOT sta THEN DO:
RETURN ERROR "Failed to connect to AppsServer".
END.
THIS-OBJECT:ComponentsCollection:ADD(THIS-OBJECT:components).
CATCH e AS Progress.Lang.Error:
UNDO, THROW e.
END CATCH.
END CONSTRUCTOR.
/*------------------------------------------------------------------------------
Purpose:
Notes:
------------------------------------------------------------------------------*/
@VisualDesigner.
METHOD PRIVATE VOID btnDisplay_Click( INPUT sender AS System.Object, INPUT e AS System.EventArgs ):
DEFINE VARIABLE ophdDisplay AS HANDLE NO-UNDO.
DEFINE VARIABLE cError AS CHARACTER NO-UNDO.
RUN VALUE("Server\RunTest.p") ON hServer PERSISTENT SET hProc.
IF VALID-HANDLE (hProc) THEN DO:
RUN DisplayData IN hProc (
INPUT btnDisplay:Text,
OUTPUT DATASET-HANDLE ophdDisplay,
OUTPUT cError
).
DELETE PROCEDURE hProc.
bsMain:Handle = ophdDisplay.
bsMain:Refresh().
END.
RETURN.
END METHOD.
/*------------------------------------------------------------------------------
Purpose:
Notes:
------------------------------------------------------------------------------*/
@VisualDesigner.
METHOD PRIVATE VOID btnSave_Click( INPUT sender AS System.Object, INPUT e AS System.EventArgs ):
DEFINE VARIABLE ophdsDsiplay AS HANDLE NO-UNDO.
DEFINE VARIABLE cError AS CHARACTER NO-UNDO.
RUN VALUE("Server\RunTest.p") ON hServer PERSISTENT SET hProc.
IF VALID-HANDLE (hProc) THEN DO:
RUN saveData IN hProc (
INPUT btnSave:Text,
OUTPUT DATASET-HANDLE ophdsDsiplay,
OUTPUT cError
).
DELETE PROCEDURE hProc.
END.
bsMain:Handle = ophdsDsiplay.
bsMain:Refresh().
RETURN.
END METHOD.
Procedure
[code]
DEFINE TEMP-TABLE ttDisplay NO-UNDO
FIELD tt-Name AS CHARACTER
FIELD tt-Address AS CHARACTER
FIELD tt-PostCode AS CHARACTER
FIELD tt-StreetName AS CHARACTER
FIELD tt-Title AS CHARACTER.
DEFINE QUERY qDisplay FOR psmast SCROLLING.
DEFINE DATA-SOURCE srcDisplay FOR QUERY qDisplay.
DEFINE DATASET dsDisplay FOR ttDisplay.
PROCEDURE DisplayData:
MESSAGE "Test 1 data".
DEFINE INPUT PARAMETER ipcAddr AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER ipcTitle AS CHARACTER NO-UNDO.
DEFINE OUTPUT PARAMETER DATASET-HANDLE ophdsDisplay BY-VALUE.
DEFINE OUTPUT PARAMETER opcError AS CHARACTER NO-UNDO.
CREATE ttDisplay.
ASSIGN tt-Name = psagent.ag-agent
tt-Address = pscolmsg.psc-useramd
tt-PostCode = psassoc.pm-partno
tt-StreetName = pscons.pc-creuser
tt-Title = psvsales.note-id.
QUERY qDisplay:QUERY-PREPARE (SUBSTITUTE("FOR EACH psagent WHERE psc-useramd BEGINS '&1'",ipcAddr)).
DATASET dsDisplay:FILL-MODE = "empty".
BUFFER ttDisplay:ATTACH-DATA-SOURCE (DATA-SOURCE srcDisplay:HANDLE).
DATASET dsDisplay:FILL ().
BUFFER ttDisplay:DETACH-DATA-SOURCE().
ophdsDisplay = DATASET dsDisplay:HANDLE.
MESSAGE "test2 data".
END PROCEDURE.
PROCEDURE saveData:
MESSAGE "Test 3 data".
DEFINE INPUT PARAMETER ipcAddr AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER ipcTitle AS CHARACTER NO-UNDO.
DEFINE OUTPUT PARAMETER DATASET-HANDLE ophdsDisplay BY-VALUE.
DEFINE OUTPUT PARAMETER opcError AS CHARACTER NO-UNDO.
DEFINE VARIABLE hQuery AS HANDLE NO-UNDO.
CREATE QUERY hQuery.
hQuery:SET-BUFFERS (ophdsDisplay:GET-BUFFER-HANDLE (1)).
hQuery:QUERY-PREPARE("FOR EACH " + ophdsDisplay:GET-BUFFER-HANDLE(1):NAME).
hQuery:QUERY-OPEN ().
hQuery:GET-FIRST ().
MESSAGE "Test 4 data".
DELETE OBJECT hQuery NO-ERROR.
CATCH e AS Progress.Lang.Error:
ASSIGN opcError = e:GetMessage(1).
END CATCH.
END PROCEDURE.