Add extra col to a Browse

emerson82

New Member
Hi,

I'm using character version I would to call a funciotion from my Browse, that function would show the name of a customer.

Below, I printed my browse. But, I have to show the of a cdprd field and that belongs another table.

DEFINE BROWSE br-mtbcd073
QUERY br-mtbcd073 NO-LOCK DISPLAY
mtbcd073.cod-empresa COLUMN-LABEL "EMP" FORMAT "!!":U
mtbcd073.cod-depto COLUMN-LABEL "DEPTO" FORMAT "X(2)":U
mtbcd073.cdprd COLUMN-LABEL "PRODUTO" FORMAT ">>>9":U*/
WITH NO-BOX NO-COLUMN-SCROLLING MULTIPLE SIZE 71 BY 11.


So I create the following function:

FUNCTION get-dsprd RETURNS CHAR.
FIND FIRST mtbcd077 USE-INDEX mtbcd077-ix1
WHERE mtbcd077.cod-empresa = mtbcd073.cod-empresa
AND mtbcd077.cdprd = mtbcd073.cdprd NO-LOCK NO-ERROR.

IF AVAIL mtbcd077 THEN
RETURN mtbcd077.dsprd.

RETURN "".
END FUNCTION.


My doubt is, how can I get this return value from get-dsprd. I knew how can I do it using graphical version, but I have no idea using character.

Thanks a lot,

Regards,

Emerson
 
Hello Emerson,

You can do this by two ways:

1) Adding an external table relation to the browser's query (if it is avaiable) and putting the wanted field in the display trigger of the browser;

2) Using the @ option like the following:

Code:
[COLOR=red]DEFINE VARIABLE globvar-emp AS CHAR NO-UNDO.[/COLOR]
 
DEFINE BROWSE br-mtbcd073
QUERY br-mtbcd073 NO-LOCK DISPLAY
mtbcd073.cod-empresa COLUMN-LABEL "EMP" FORMAT "!!":U
mtbcd073.cod-depto COLUMN-LABEL "DEPTO" FORMAT "X(2)":U 
mtbcd073.cdprd COLUMN-LABEL "PRODUTO" FORMAT ">>>9":U
[COLOR=red]get-dsprd(mtbcd073.cod-empresa) @ globvar-emp[/COLOR]
WITH NO-BOX NO-COLUMN-SCROLLING MULTIPLE SIZE 71 BY 11.
 
 
FUNCTION get-dsprd RETURNS CHAR [COLOR=red](INPUT PARAM c-cod-empresa AS CHARACTER).[/COLOR]
 
FIND FIRST mtbcd077 USE-INDEX mtbcd077-ix1
WHERE mtbcd077.cod-empresa = [COLOR=red]c-cod-empresa[/COLOR] 
AND mtbcd077.cdprd = mtbcd073.cdprd NO-LOCK NO-ERROR.
 
IF AVAIL mtbcd077 THEN
RETURN mtbcd077.dsprd. 
 
RETURN "".
END FUNCTION.

Hope this can help.
Cheers.
 
Back
Top