Primero que nada un cordial saludo a todos los participantes el foro. Al igual que todos necesito ayuda urgente con un problemita que tengo, les cuento:
estoy diseñando una aplicación de facturación con 3 tablas sencillas(paradox 7)
tcliente(contiene todos los datos ci,direccion,nombre y apellidos)
tdeuda(contiene la ci(como clave principal)y los meses del año como en un control de pago manual)
tfactucar( contiene los datos de la factura el monto, numero de factura, fecha, a quien fue realizada y el concepto o detalle de la misma)
hasta aqui todo va bien(creo yo)puedo editar los registros existentes...
El detalle es que un usuario puede facturar varios años(logicamente) pero cuando voy a agregar otro registro a la tabla tdeuda se tranca el programa y tengo varios errores entre los cuales destaca 'key violation'.
Código Delphi
[-]
este es el boton calcular donde hago los procesos necesarios
if(data.tdeuda.FieldByName('AÑO').AsInteger=strtoint(edit3.Text))then
begin
data.tfactura.Locate('CEDULA',Edit2.Text,[]);
data.tfactura.edit;
data.tfactura.FieldByName('DETALLE').AsString:= cadena;
data.tfactura.FieldByName('MONTO').NewValue:=total;
data.tfactura.FieldByName('AÑO').AsString:=edit3.Text;
data.tfactura.ApplyUpdates;
data.tdeuda.Edit;
data.tdeuda.FieldByName('ENERO').AsInteger:= data.tfactura.FieldValues['Nº DE RECIBO'];
data.tdeuda.FieldByName('FEBRERO').AsInteger:= data.tfactura.FieldValues['Nº DE RECIBO'];
data.tdeuda.ApplyUpdates;
end;
if(data.tdeuda.FieldByName('AÑO').AsInteger<>STRTOINT(EDIT3.Text)) THEN
begin
showmessage('Año No Existe, Se Factura Otro Año');
data.tfactura.Append;
data.tdeuda.Append;
data.tdeuda.FieldByName('AÑO').NewValue:=strtoint(edit3.Text);
data.tdeuda.FieldByName('CEDULA_CLIENTE').AsInteger:= strtoint(edit2.Text);
data.tdeuda.FieldByName('ENERO').NewValue:= data.tfactura.FieldValues['Nº DE RECIBO']; data.tfactura.FieldByName('DETALLE').AsString:= cadena;
data.tfactura.FieldByName('MONTO').NewValue:=total;
data.tfactura.FieldByName('Nº DE RECIBO').NewValue:= data.tfactura.FieldValues['Nº DE RECIBO']*2;
data.tfactura.FieldByName('AÑO').AsString:=edit3.Text;
data.tfactura.ApplyUpdates;
data.tdeuda.ApplyUpdates;
end;
end;
seria muy gentil de su parte colaborarme con mis errores