Ayuda->Problema en browse con variables.

Post Reply
AndresZaragoza
Posts: 28
Joined: Wed Dec 13, 2006 6:07 pm

Ayuda->Problema en browse con variables.

Post by AndresZaragoza »

Un problema:

Si quiero hacer un browse con _ a visualizar que sean variables, aprace el contenido todo el blanco.
No se si estoy haciendo algo erróneo.
Gracias de antemano.

Ej NO funciona:
@ 1.65, 0.5 LISTBOX oBrw FIELDS (lpCampo1),(lpCampo2),(lpCampo3)...

en cambio, si funciona:
@ 1.65, 0.5 LISTBOX oBrw FIELDS codigo,nombre1,nombre2...
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Andrés,

Que tipo de valores (C,N,L,D) tienen las variables lpCampo1, lpCampo2, lpCampo3 ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
AndresZaragoza
Posts: 28
Joined: Wed Dec 13, 2006 6:07 pm

Browse

Post by AndresZaragoza »

Hola Antonio,

Las variables contienen los nombres de _ a mostrar, son carácter.
Verás estoy haciendo una función genérica de búsqueda con su browse para que valga para varios ficheros: articulos, clientes.... por lo que le mando nombre de fichero y entre otras cosas más los nombres que tiene que mostrar. Te escribo el ejemplo:

=Buscar(oWnd,'Clientes',210,250,'Efth010',99,83,'cprvcod','cprvome','cprvnom'...)

FUNCTION Buscar(lpVentana,lpTitulo,lpAncho,lpAlto,lpFichero,lpAncBrw,lpAltBrw,lpCampo1,lpCampo2,lpCampo3)

@ 1.65, 0.5 LISTBOX oBrw FIELDS (lpCampo1),(lpCampo2),(lpCampo3) .... SIZE lpAncBrw, lpAltBrw....
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Andrés,

Estos nombres de variables no deben llevar comillas:

'cprvcod','cprvome','cprvnom', ...

debe ser:

cprvcod, cprvome, cprvnom, ...
regards, saludos

Antonio Linares
www.fivetechsoft.com
AndresZaragoza
Posts: 28
Joined: Wed Dec 13, 2006 6:07 pm

Post by AndresZaragoza »

Sigue sin funcionar.

Creo que mandandole el nombre del campo sin comillas estamos mandando el cotenido de la variable, no el nombre en si que hace falta para montar el browse, te mando el ejemplo completo (con el cambio que propones):
Gracias de nuevo


#include "FWCE.ch"

function Main()
local cText := Space( 50 )
NumReg = 0
oWnd = 0
DEFINE WINDOW oWnd TITLE "Ejemplo"

AbrirFicheros()

@ 5, 5 BUTTON "Acción" SIZE 80, 20 ACTION Avisa(oWnd, 'Clientes',210,250,'Efth010',99,83,cprvcod,cprvome,cprvnom,'Código', 'Nombre Comercial', 'Nombre Fiscal',50,200,200)
@ 7.9, 5.1 SAY NumReg OF oWnd SIZE 80, 15
@ 7, 5 BUTTON "Dime" SIZE 80, 20 ACTION prueba(NumReg)

ACTIVATE WINDOW oWnd
RETURN nil

FUNCTION prueba(nr)
@ 9.9, 5.1 SAY Nr OF oWnd SIZE 80, 15
RETURN nil


FUNCTION Avisa(lpVentana,lpTitulo,lpAncho,lpAlto,lpFichero,lpAncBrw,lpAltBrw,lpCampo1,lpCampo2,lpCampo3,lpATit1,lpATit2,lpATit3,lpAncho1,lpAncho2,lpAncho3)
*************************************************************
* lpVentana -> Ventana padre
* lpTitulo -> Título de ventana
* lpAncho -> Ancho de pantalla
* lpAlto -> Alto de pantalla
* lpFichero -> Fichero a listar
*************************************
* Si están en blanco no se ponen.
*************************************
* lpAncBrw -> Alto del browse
* lpAltBrw -> Alto del browse

* lpCampo1 -> 1 Campo en la base de datos
* lpCampo2 -> 2 Campo en la base de datos
* lpCampo3 -> 3 Campo en la base de datos
* lpATit1 -> Título del Campo 1
* lpATit2 -> Título del Campo 2
* lpATit3 -> Título del Campo 3
* lpAncho1 -> Ancho del Campo 1
* lpAncho2 -> Ancho del Campo 2
* lpAncho3 -> Ancho del Campo 3
*
************************************************************
DEFINE FONT ofontPeque NAME "Arial" SIZE 4, -8
SELECT (lpFichero)
DEFINE DIALOG dBrowse TITLE lpTitulo SIZE lpAncho, lpAlto OF lpVentana

@ 1.65, 0.5 LISTBOX oBrw FIELDS (lpCampo1),(lpCampo2),(lpCampo3) COLSIZES 50,200,200 ;
OF dBrowse HEADERS 'Código', 'Nombre Comercial', 'Nombre Fiscal' SIZE lpAncBrw, lpAltBrw

@ 107, 35 BTNBMP oCancelar FILE CurDir() + "\bmp\cancelar.bmp" SIZE 12, 12 ACTION Cancelar()
@ 107, 65 BTNBMP oAceptar FILE CurDir() + "\bmp\ok.bmp" SIZE 12, 12 ACTION Aceptar()

@ 7.9, 5.1 SAY "Cancelar Aceptar" OF dBrowse font ofontPeque SIZE 80, 15

ACTIVATE DIALOG dBrowse CENTERED
RETURN nil



FUNCTION Aceptar(lpFichero)
SELECT (lpFichero)
NumReg = RECNO()
dBrowse:End()
RETURN nil



FUNCTION CAncelar
NumReg = 0
dBrowse:End()
RETURN nil


FUNCTION AbrirFicheros
Request DbfCdx
Request DbfFpt
RddSetDefault ('DbfCdx')
Request Hb_Lang_PLWIN
Request Hb_CodePage_PLWIN

**********
* Clientes
**********
IF .NOT. USED("Efth010")
USE (CurDir()+"\Efth010") NEW
ELSE
SELECT Efth010
ENDIF
RETURN nil
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Andrés,

No había entendido bien lo que querías hacer, disculpa.

Puedes hacerlo como querías, solo cambiando esto:

=Buscar(oWnd,'Clientes',210,250,'Efth010',99,83,'cprvcod','cprvome','cprvnom'...)

FUNCTION Buscar(lpVentana,lpTitulo,lpAncho,lpAlto,lpFichero,lpAncBrw,lpAltBrw,lpCampo1,lpCampo2,lpCampo3)

@ 1.65, 0.5 LISTBOX oBrw FIELDS FieldGet( FieldPos( lpCampo1 ) ),FieldGet( FieldPos( (lpCampo2) ), FieldGet( FieldPos( (lpCampo3) ) .... SIZE lpAncBrw, lpAltBrw....

Fíjate en el uso de FieldGet() y FieldPos()
regards, saludos

Antonio Linares
www.fivetechsoft.com
AndresZaragoza
Posts: 28
Joined: Wed Dec 13, 2006 6:07 pm

Post by AndresZaragoza »

Gracias, lo pruebo y te comento
Un saludo
AndresZaragoza
Posts: 28
Joined: Wed Dec 13, 2006 6:07 pm

Post by AndresZaragoza »

Muy agradecido. funciona perfectamente.
Saludos
Post Reply