In the okButton_Click method you are invoking an ABL event to a none ABL object which is not valid.
I do not know how to do the same for a .NET object. The only thing I can instantly think of is set a keypress event and method for txtNumero and adjust the button method to send a return to the...
As Tom says, it is not easy to see from the code the actual problem.
Just to be clear, is txtNumero an ABL fill-in or a .NET fill-in? If .NET then that could be the reason for the error. Try something along these lines:
txtNumero:Focus().
System.Windows.Forms.SendKeys:Send("~{ENTER}").
This...
You can either set the method to be an extent or the best option is to make the method a VOID method instead:
METHOD PUBLIC VOID CustomValue (OUTPUT oValor1 AS CHAR, OUTPUT oValor2 AS CHAR):
oValor1 = "abc".
oValor2 = "33".
END METHOD.
Then the calling code passes defined variables for the...
Yes, the sending of the input parameter is correct.
No problem outputting a Temp Table, and there are a number of ways.
The best option is to encapsulate the Temp Table into a single object and have access methods to work with the temp-table. This avoids passing the temp-table at all...
I normally call a dialog box using the examples I posted in my first post, and see that in teste2 you have done similar so that is okay.
In teste1 you have the WAIT-FOR in the ShowModalDialog method and if you wanted values from that Dialog then this would be the workings:
DEFINE VARIABLE...
I have never used DYNAMIC-NEW so do not know the reason. This article seems to confirm your problem:
https://knowledgebase.progress.com/articles/Knowledge/P148058
As per the article, does DYNAMIC-INVOKE work instead:
DYNAMIC-INVOKE(oForm, "CustomValue").
Previous post was incomplete. To obtain a parameter in the calling program two ideas:
Pass the handle/object of the calling procedure/class either via the constructor or a method/property to the called class, and when accepted run the internal procedure/method from the called class:
RUN...
One option is to invoke/record an OK acceptance and if accepted set the parameter then.
Example 1:
DEFINE VARIABLE oDialogResult AS System.Windows.Forms.DialogResult NO-UNDO.
DEFINE VARIABLE oPrintDialog AS System.Windows.Forms.PrintDialog NO-UNDO.
oPrintDialog = NEW...
I think I see the problem. Are you able to determine the fields/browses/etc. by walking the widget tree? If so, can you set the trigger doing something similar to?:
DO WHILE hObject <> ?:
IF hObject:TYPE = "BROWSE" THEN
ON RIGHT-MOUSE-CLICK OF hObject PERSISTENT
RUN whatever...
I am not sure but it could be the anywhere that is causing the problem.
If you only set the trigger for the browse does that work?:
ON RIGHT-MOUSE-CLICK OF BROWSE-1 IN FRAME DEFAULT-FRAME
DO:
...
END.
If you have multiple browses or the browse is dynamic then set this trigger at run-time.
The problem is you are trying to change the format using a method that only works if there is at least one selected record/row in the browse:
Try the solutions in the attached text files.
According to this article it is not possible:
https://knowledgebase.progress.com/articles/Knowledge/P4242
From this site it looks to be possible by making API calls to obtain the position of the popup menu and then simulating the click:
http://www.databaseforum.info/16/724304.aspx
I have not used DocuWare and can only find a cut-down version available so cannot really offer much help.
But one thought I had is do you have Progress Developer Studio and if so what does Class Browser say for DocuWare.Services.Http.DeserializedHttpResponse? It will hopefully give you the code...
For GUI development in ABL there are two development options - AppBuilder and Visual Designer - but do not know if an actual tutorial exists for either.
There is a bit of a tutorial for AppBuilder here - see the section called "Introducing the OpenEdge AppBuilder"...
I am not sure on this. Is the problem that you make an amendment using the AppBuilder and when saved the code for the frame definitions is in a different order?
If so, then this does seem to happen and am not sure if it can be turned off. One solution I apply is in "List Objects" click each...
JGress, you have asked follow up questions to this using the conversations option which I cannot answer as it has been closed.
I am assuming that it has been closed because questions should be asked via the standard forum which is the way to do things. This allows others to give an input.
Your...
If you want another option there are the .NET controls although need to be on a more recent version of Progress.
A very simple solution based on this posting - Question - Label Name in the button:
DEFINE VARIABLE hWin AS HANDLE NO-UNDO.
DEFINE VARIABLE MainForm AS Progress.Windows.Form NO-UNDO...
According to this article it does appear possible to load .NET DLL libraries programmatically but do not know how practical this is:
https://knowledgebase.progress.com/articles/Knowledge/000050739
If you know the row number then something similar to either of these:
chWorkSheet:Rows(4):Delete.
chWorksheet:Rows(vRow):EntireRow:Delete.
If working with a range then something similar to:
chWorkSheet:Range(vRange):EntireRow:Delete.
/* Or */
chRange =...
As Tom has explained:
So you need to obtain the handle to the field, and again as Tom has posted "walking the widget tree" is the general solution.
Attached is a very old kbase that shows how to handle extent field screen values that you can adapt. Send the function the name of the variable -...
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.