Page 1 of 1

Dbcombo y Itemlist

Posted: Sat Feb 02, 2008 10:08 pm
by cmarucco
Hola Foro: Tengo el siguiente problema:
En el siguiente Dbcombo y a ejecutar la funcion descuento, me devuelve la posicion relativa del registro y no el valor del campo Codigo del cual tengo que obtener el porcentaje que debo aplicar....

REDEFINE DBCOMBO oCbx1 VAR nTipopago Update id 179 of oDlg;
on Change (Descuento(@nDescuento, nTipopago),o178:Refresh (),o178:Setfocus());
Alias "Tipopago";
Itemfield "Codigo" ;
Listfield "Descrip"
//----------------------------------
STATIC FUNCTION Descuento(nDescuento, nTipopago)

? "nTipopago", nTipopago // aca me devuelve el recno, que lo interpreta como "Codigo"...

If TipoPago ->(Dbseek(Str(nTipopago,2)))
nDescuento:= Tipopago->Porcen
else
MsgAlert(" No Se Encontro, Tipo de Pago " )
Endif

RETURN Nil

o sea me posiciono en "AMEX" del Archivo "Tipopago", que tiene el codigo 16 y tiene un porcentaje de 5, y me devuelve en nTipopago la posicion (por ejemplo) 8 que es el recno del registro en el archivo y es otro tipo de pago .....

El archivo es Codigo Numerico de 2 y descrip caracter de 30..

Estoy usando:
Todo lo incluido en el FHW 712
Harbour for BCC - build 01/December/2007
Y los dialogos con WorkShop

Desde ya Muchas Gracias ...

Posted: Wed Feb 06, 2008 4:57 pm
by ADBLANCO
A mi tambien me trabaja mal el DBCOMBO, por lo que evito utilizarlo, Pero de todas formas prueba modificar tu funcion:

IF nTipoPago>0
TipoPago ->(Dbgoto(nTipopago))
nDescuento:= Tipopago->Porcen
ELSE
MsgAlert("Debe Seleccionar Porcentaje")
ENDIF

Posted: Wed Feb 06, 2008 5:09 pm
by Biel EA6DD
No se puede usar data numericos con DbCombo., creo que eso es el problema que tienes. Prueba a convertirlo a caracter.

James Bott dice:
You can't use numeric data with either Combobox or DBComobo--the data must be converted to string. If numeric data values are passed as parameters to methods then they are assumed to be locations, not data elements.

DBCombo inherits from the Combobox class so it inherits the same behavior. Some time ago I tried to modify DBCombo to handle numeric data but it turned out to a huge amount of work since I would have to rewrite most of the combobox methods too.

Since DBCombo's can also use arrays, then you can just convert the database info to an array of strings before initializing DBCombo, then convert the selected value back to a number.

Posted: Wed Feb 06, 2008 7:29 pm
by cmarucco
Si, depues de varias pruebas, me decidi a agregar a el/los archivo/s un campo mas, que es un campo carater, que al momento de dar de alta un registro, el campo "codigo" que es numerico lo paso a caracter, y luego trabajo los DBcombo con ese campo caracter....... y funciona perfectamente con lo que necesito .....
Desde ya muchas gracias por las respuestas.