Error guardando en BD... VFP

Jummm ya había pegado todo el código y explicación y cuando le di enviar me mostró La extensión de la pregunta ha de ser inferior a 3900 caracteres... Noob... Buehh...
Amigos expertos, estoy intentando hacer un sistema personal para control de inventario, presupuestos y facturación pero surge un error cuanto intento almacenar datos en la bd, me dice que - El valor, tipo o numero de argumentos no es válido para la función - ... Intento trabajar con 4 tablas, clientes, vendedores, productos y temporal_presupuestos... El código va cuando intento cargar la cantidad y almacenar los datos del form que los obtuvo de otras tablas, en la tabla temporal_presupuestos... EL código es el siguiente, y marcare la linea con un * para que vean el problema:
with thisform
if !empty(.txtcantidad.value)
IF thisform.detal.Enabled= .T.
sub_temporal=VAL(.txtcantidad.value)*VAL(alltrim(.combocodigo.list(.combocodigo.listindex,8)))
valor=str(sub_temporal)
SELECT 4
append blank
replace line_temp_pres with STR(.linea.value);
nume_temp_pres with STR(.numpresupuesto.value);
codi_vend_temp_pres with STR(.vendedor.value);
codi_clie_temp_pres with STR(.clientes.value);
prec_temp_pres with STR(.detal.Caption);
codi_prod_temp_pres WITH STR(.combocodigo.value);
cant_prod_temp_pres WITH STR(.txtcantidad.value);
subt_prod_temp_pres with STR(valor)
ELSE
sub_temporal=VAL(.txtcantidad.value)*VAL(alltrim(.combocodigo.list(.combocodigo.listindex,7)))
valor=str(sub_temporal)
SELECT 4
append blank
replace line_temp_pres with STR(.linea.value);
nume_temp_pres with STR(.numpresupuesto.value);
codi_vend_temp_pres with STR(.vendedor.value);
codi_clie_temp_pres with STR(.clientes.value);
prec_temp_pres with STR(.detal.Caption);
cod_prod_temp_pres WITH STR(.combocodigo.value);
cant_prod_temp_pres WITH STR(.txtcantidad.value);
subt_prod_temp_pres with STR(valor)
ENDIF
ant_linea=VAL(.linea.value)+1
.linea.value=ant_linea
sub_temporal=0
valor=""
ELSE
MESSAGEBOX("Ingrese una cantidad", 0+16)
Endif
endwith
Es de importancia decirles que mi tabla posee solo campos de tipo carácter, por ende intento pasarlos como str()
Si desean más info o algún experto queré echarle un vistazo al código puedo pasarlo a algún email si su intención es ayudarme... Gracias a todos

1 respuesta

Respuesta
1
He analizado tu código y en principio no encuentro incongruencias. No obstante hay datos que no puedo saber debido a que son propios de los controles y tablas que utilizas.
No obstante el error que recibes indica claramente que alguna de las funciones que estás utilizando para convertir el formato de tus datos es inapropiada, y como estás utilizando funciones dentro de funciones es difícil encontrar el error analizando el código.
Para depurar tu programa te sugiero que verifiques qué linea es la que te da el error.
Prueba los segmentos de código de cada uno de tus 2 bucles para ver qué línea te da el error.
O ejecuta el formulario / programa y fíjate que cuando te aparece el error te aparece el mensaje que tu dices con las opciones suspender, ignorar, cancelar. Dale clic a suspender para que se abra el depurador y te indique la línea que tiene el error.
Si el error se produce en alguno de los comandos replace que estás utilizando haz lo siguiente
Reemplaza el comando replace masivo por un replace para cada campo y así encontrarás la función que te está dando el error.
Jummm...! Ya solucione la parte del guardado en la bd, lo hice como ud me dijo pero seguía mostrando el error... lo que hice fue guardarlo en variables como cadena y después si le dije al sistema que me los guarde en la bd, ilogcamente lo guardo pero buehh... Gracias por su apoyo

Añade tu respuesta

Haz clic para o