Field Value required en clientdataset
Publicado por giuli (1 intervención) el 04/11/2014 20:55:47
he buscado en el foro y no encuentro tema similar.
Tengo un form de ticket y uno de catalogo de productos, en donde hay un boton de agregar (al ticket).
la grilla de productos tiene un query simplemente, pero el ticket tiene un clientdataset con un provider que tiene tambien un query pero selecciona el producto cuyo idproducto sea igual al seleccionado en la grilla.
Entonces luego del insert hago eso justamente: el idproducto de qpt(ticket) igual al idproducot de la grilla pero obtengo field value required.
El codigo es el siguiente(en un TSpeedButton):
Lo cierto es que muestra el precio y la cantidad pero no el nombre y categoria del producto
Tengo un form de ticket y uno de catalogo de productos, en donde hay un boton de agregar (al ticket).
la grilla de productos tiene un query simplemente, pero el ticket tiene un clientdataset con un provider que tiene tambien un query pero selecciona el producto cuyo idproducto sea igual al seleccionado en la grilla.
Entonces luego del insert hago eso justamente: el idproducto de qpt(ticket) igual al idproducot de la grilla pero obtengo field value required.
El codigo es el siguiente(en un TSpeedButton):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if (Grillaprod.SelectedRows.Count=0) then
begin
with ClientModule1.cdsticket do
begin
Open;
Insert;
FieldByName('idproducto').AsInteger:=Grillaprod.DataSource.DataSet.FieldByName('idproducto').AsInteger;
FieldByName('categoria').AsString:=Grillaprod.DataSource.DataSet.FieldByName('descripcion').AsString;
FieldByName('marca').AsString:=Grillaprod.DataSource.DataSet.FieldByName('detalle').AsString;
FieldByName('nombre').AsString:=Grillaprod.DataSource.DataSet.FieldByName('nombre').AsString;
FieldByName('cantidad').AsFloat:=StrToFloat(Ecantidad.Text);
FieldByName('precio').AsFloat:=Grillaprod.DataSource.DataSet.FieldByName('precio').AsFloat;
FieldByName('subtotal').AsFloat:=FieldByName('cantidad').AsFloat * FieldByName('precio').AsFloat;
end;
if ClientModule1.cdsticket.State in [dsInsert,dsEdit] then
ClientModule1.cdsticket.Post;
if ClientModule1.cdsticket.ChangeCount > 0 then
ClientModule1.cdsticket.ApplyUpdates(0);
end
else
begin
ShowMessage('Seleccione al menos un producto')
end;
end;
end.
Lo cierto es que muestra el precio y la cantidad pero no el nombre y categoria del producto
Valora esta pregunta


0