GUI Application Development(1234)

Posted by Daimyen Best on 27-Jun-2016 15:07

I'm having an issue with the labs for this tutorial starting with lab 4-2.


Make a details button.
Supposed to use 2 procedures wOrderSelect.w calls gOrderMaint.w.
Lab answers and solution provided still give me error 3234 mismatched parameters passed to gOrderMaint.w.
Supposed to pass persistent process handle and rowid in that order, called procedure receives in the same order.  Not sure where I'm going wrong.

Lab 5 builds on these procedures and makes a new and modify button, adds a char parameter to be passed from wOrderSelect.w to gOrderMaint.w.  Solutions/answers provided with labs still throwing same 3234 error as in lab 4.


Possible fix here, did not work.  I searched forum and kb before posting, sorry if the fix is already somewhere.

http://knowledgebase.progress.com/articles/Article/000030659?q=mismatched+number+of+parameters&l=en_US&fs=Search&pn=1

All Replies

Posted by Stefan Drissen on 27-Jun-2016 16:08

Not sure what 'this tutorial' refers to, can you provide a link to it? Or is this the web based training?

It may be easier to just provide the (relevant) code that you are using (both caller and callee).

Posted by Daimyen Best on 27-Jun-2016 16:16

This tutorial, the web based training through progress PEC.

wbt.progress.com/.../ekp

Gotta be signed in to the Progress Education Community for it to bring you to the right place.

OK.

Caller procedure is wOrderSelect.w

DEFINE VARIABLE ghProcLib AS HANDLE NO-UNDO.

ghProcLib is run as persistent in Internal Procedure InitializeObjects:

RUN PersistentProc.p PERSISTENT SET ghProcLib.

Selection of the btnDetails in the caller procedure is 

DO:

     RUN gOrderMaint.w(INPUT ghProcLib, INPUT ttOrder.RowIdent).

END.

Posted by Daimyen Best on 27-Jun-2016 16:34

Callee is gOrderMaint.w

Takes params in as

DEFINE INPUT PARAMETER phProcLib       AS HANDLE      NO-UNDO.

DEFINE INPUT PARAMETER prowOrderRow    AS ROWID       NO-UNDO.

but when I run and click details button I get 3234 error mismatched number of parameters passed to gOrderMaint.w.

Later labs add more parameters to caller and callee but its pretty much the same thing, I add a string to caller, catch it in callee character variable but its still not seeing one or all of the parameters passed to it.

Solution code in lab folder and answers provided by the course also throw the 3234 error for this and the other labs that relate to it (adding new, modify save and refresh buttons).

I hope that's more helpful.

Posted by Stefan Drissen on 27-Jun-2016 17:22

I have no access to wbt, so am going on your code snippets here.

Your caller should not compile - it is missing a closing parenthesis, ie it should be:

RUN gOrderMaint.w ( INPUT ghProcLib, INPUT ttOrder.RowIdent ).

If that was just a typo, what is the datatype of ttOrder.Row|dent? I would expect this to be a ROWID, you can find it wherever the temp-table ttOrder is defined, something like:

DEFINE TEMP-TABLE ttOrder

  FIELD RowIdent AS ROWID

Posted by Daimyen Best on 28-Jun-2016 08:10

Missing parens in the previous message was a typo here, code has the parens.

DEFINE TEMP-TABLE ttOrder NO-UNDO LIKE Order

      FIELD RowIdent AS ROWID

      INDEX RowIdent RowIdent.

Is the definition of ttOrder.

RowIdent is already defined as a ROWID. Passing as ttOrder.RowIdent.RowIdent would be passing the index not the ROWID right?

Could it be my PROPath set wrong, trying to compile another version of the callee?

Posted by Stefan Drissen on 28-Jun-2016 15:12

Mismatched number of parameters passed to routine <name>. (3234)

You are passing parameters to a routine, but the number of parameters you passed does not match the number of parameters expected by the routine.

Is there an additional input / output parameter (possibly hidden in an include) in the callee?

If the above is not true, then yes, it could be a propath or a stale r-code (r-code that has been compiled based on older version of source and not updated) problem - can you delete all r-code from your project just to be sure?

Could you attach the complete sources?

Posted by Daimyen Best on 29-Jun-2016 10:29

It was a stale r-code issue, the labs say to save to the same directory with the same name as the example code given.

I deleted all but the current versions and the procedures worked. Caller must have been calling a callee without the input variables declared to catch the parameters passed to it.

Thanks for the help!!!!

This thread is closed