No se... Seguiste con las mismas asignaciones. lee los comentarios y entenderás un poco lo que trato de decirte
Código Delphi
[-]
procedure TfCantidad.BCokClick(Sender: TObject);
var
CantArts: integer; begin
fmodulo.tVentadetalle.Active := true;
fmodulo.tProductos.Active := true;
if (string(Ecantidad.Text).Trim.Length = 0)
or (not TryStrToInt(Ecantidad.Text, CantArts)) then
begin
Application.MessageBox('El valor ingresado debe ser mayor a O', 'Drugstore',mb_yesno+mb_iconquestion);
Exit;
end;
if fmodulo.tVentadetalle.State in [dsEdit, dsInsert] then
fmodulo.tVentadetalle.Cancel;
fmodulo.tVentadetalle.Insert;
fmodulo.tVentadetalle.Fields.FieldByName('id_ventas').AsString := IntToStr(fmodulo.qnumventa.Fields.FieldByName('id_venta').AsInteger + 1);
fmodulo.tVentadetalle.Fields.FieldByName('id_producto').Value := fmodulo.tProductos.Fields.FieldByName('id_producto').Value;
fmodulo.tVentadetalle.Fields.FieldByName('Precio_v').AsString := IntToStr(fmodulo.tVentadetalle.Fields.FieldByName('cantidad').AsInteger * fmodulo.tProductos.Fields.FieldByName('precio_vent').AsInteger);
fmodulo.tVentadetalle.Fields.FieldByName('cantidad').AsString := fmodulo.tVentadetalle.Fields.FieldByName('cantidad').AsString;
fmodulo.tVentadetalle.Post;
fmodulo.tVentadetalle.Refresh;
self.Close;
end;
He tratado de utilizar los mismos tipos de datos que al parecer tienes en tu dataset. pero cosas como el precio y cantidad es mejor que los coloques como float. EN un futuro pueden decirte que quieren vender medio paquete de cigarrillos o que el valor de un producto con oferta es de 9.99