Page 1 of 1

Capturar parámetros llamado desde prg SOLUCIONADO

Posted: Thu Feb 20, 2020 12:52 pm
by leandro
Buenos días para todos,

El caso es el siguiente:

En el menu de nuestra aplicación, se hace el llamado a un prg desde el menu, de la siguiente manera:

Code: Select all

         @ 15, 10 ADD BUTTON oBtF6 GROUP oGr1 BITMAP "#8095";
               SIZE 62,64 PROMPT "Saldos"+CRLF+;
                             "Iniciales" ACTION ( articulos(1) ) // articulos es el nombre del prg
 


Pero no se como capturar el parametro que viene al momento en que se abre el prg

Code: Select all

//aqui inicia articulos.prg

#include "fivewin.ch"
#include "xbrowse.ch"
#include "report.ch"
#include "Ado.ch"

//Como capturo el parametro que viene desde el menu?

PUBLIC oCnArt
PUBLIC oRsArt

......
 
Espero haberme hecho entender, de antemano gracias

Re: Capturar parámetros llamado desde prg

Posted: Thu Feb 20, 2020 1:16 pm
by karinha

Code: Select all

#include "fivewin.ch"
#include "xbrowse.ch"
#include "report.ch"
#include "Ado.ch"

FUNCTION Main()  // MENU PRINCIPAL

   // Variables aqui
   /*
   LOCAL
   GLOBAL
   MEMVAR
   PRIVATE
   */

   PUBLIC oCnArt
   PUBLIC oRsArt
   PUBLIC nOpcion


   @ 15, 10 ADD BUTTON oBtF6 GROUP oGr1 BITMAP "#8095";
      SIZE 62,64 PROMPT "Saldos"+CRLF+ "Iniciales" ;
      ACTION ( ARTICULOS( nOpcion := 1 ) ) // articulos es el nombre del prg
 
   ...

RETURN NIL

//aqui inicia articulos.prg

//Como capturo el parametro que viene desde el menu?
// Llame desde el menu cuantas opciones deseas.
FUNCTION ARTICULOS( nOpcion )  // ARTICULO.PRG -> 8 Digitos es mejor.

   IF nOpcion     == 3
   ..

   ELSEIF nOpcion == 2
   ..

   ELSEIF nOpcion == 1

   etc

   ENDIF

RETURN NIL
 
Saludos.

Re: Capturar parámetros llamado desde prg

Posted: Thu Feb 20, 2020 8:20 pm
by postinelli
PCOUNT()

Re: Capturar parámetros llamado desde prg

Posted: Thu Feb 20, 2020 8:20 pm
by postinelli
PCOUNT()
Determine the position of the last actual parameter passed
------------------------------------------------------------------------------
Syntax

PCOUNT() --> nLastArgumentPos

Returns

PCOUNT() returns, as an integer numeric value, the position of the last
argument passed. If no arguments are passed, PCOUNT() returns zero.

Re: Capturar parámetros llamado desde prg

Posted: Thu Feb 20, 2020 9:35 pm
by leandro
postinelli y karinha, gracias por responder

Pero la función pcount() cuenta los parámetros, pero como _? cual es el array que cuenta?

Gracias

Re: Capturar parámetros llamado desde prg

Posted: Fri Feb 21, 2020 12:58 am
by cnavarro
Leandro

Code: Select all

   local aParams := hb_aParams()
 

Re: Capturar parámetros llamado desde prg

Posted: Fri Feb 21, 2020 4:25 am
by Armando
Leandro:

A ver si es lo que necesitas?

Code: Select all

// Programa que llama a otro
Date2Txt(P1,P2,P3,P4,P5,P6,P7,P8)
….
….
// Programa llamado
FUNCTION Date2Txt(dFecha,nTipdia,nTipMes,nTipAmo,cSepDia,cSepDM,cSepMA,lZeros)
 
Si observas, es igual que cuando llamas a una función

Saludos

Re: Capturar parámetros llamado desde prg

Posted: Fri Feb 21, 2020 11:15 am
by karinha
// SAMPLES\PARAM.PRG

Code: Select all

#include "FiveWin.ch"

FUNCTION Main()

   TestApars( 'par1', 'par2', '//par3', 'par4', 'par5' )

RETURN NIL

FUNCTION TestApars()

   LOCAL nParamNo
   LOCAL aParams := HB_AParams()

   FOR nParamNo := 1 TO LEN( aParams )

      ? nParamNo, aParams[ nParamNo ]

   NEXT

RETURN NIL

/*
      Result :
      ----------
      1 par1
      2 par2
      3 //par3
      4 par4
      5 par5
*/
 
Saludos.

Re: Capturar parámetros llamado desde prg

Posted: Fri Feb 21, 2020 2:15 pm
by leandro
Gracias a todos por la respuestas,

finalmente lo pude solucionar de la forma que sugirió Cristobal,

Code: Select all

#include "fivewin.ch"
#include "report.ch"
#include "Ado.ch"
#include "vrd.ch"
#include "dtpicker.ch"
#include "xbrowse.ch"
#include "outlook.ch"
#include "splitter.Ch"

SET DATE BRITISH
SET CENTURY ON
SET EPOCH TO 1920
REQUEST HB_LANG_ES
HB_LANGSELECT( 'ES' )
FW_SetUnicode( .t. )

PUBLIC aParams := hb_aParams()