Dbcombo y Itemlist

Post Reply
User avatar
cmarucco
Posts: 46
Joined: Tue Oct 11, 2005 2:23 pm
Location: argentina

Dbcombo y Itemlist

Post 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 ...
User avatar
ADBLANCO
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Post 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
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Post 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.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
cmarucco
Posts: 46
Joined: Tue Oct 11, 2005 2:23 pm
Location: argentina

Post 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.
Post Reply