Urgente! Gracias, problemón con campo Lookup
Resulta que me he creado un campo lookup en un DBGrid y tengo en el evento OnExit de ese campo código
pues bueno, resulta que cuando selecciono una opción de la lista desplegable no se me queda
en el DBGrid
Igual es interesante saber que tengo un DSN creado a una BD Access.
procedure TF_Albaran.DBGrid1ColExit(Sender: TObject);
var
i : integer;
aux : string;
begin
//Se ejecuta este evento cuando es la columna de Surtido
if (DBGrid1.Columns [DBGrid1. SelectedIndex] = DBGrid1.Columns [1]) then
begin
DM_Form.TTallas.Database.StartTransAction;
DM_Form.TTallas.Edit; //ponemos la tabla en modo edición por si modifiecamos algún valor
aux := DBGrid1.Columns [1].Field.AsString;
DM_Form.TSurtido.First;
i := 4;
// ShowMessage ('Codigo del surtido: ' + DBGrid1.Columns [1].Field.AsString);
while (not DM_Form.TSurtido.Eof) do
begin
if (DM_Form.TSurtido.FieldByName ('CodSur').AsString = DBGrid1.Columns [1].Field.AsString) then
begin
DBGrid1.Columns .Field.AsString := DM_Form.TSurtido.FieldByName ('ParSur').Value;
// ShowMessage (DM_Form.TSurtido.FieldByName ('ParSur').Value);
i := i + 1;
end;
DM_Form.TSurtido.Next;
end;
ShowMessage (aux);
DBGrid1.Columns [1].Field.AsString := aux;
if (DBGrid1.Columns [1].Field.AsString = '0000000000') then //mujer, codigos: //hombre, codigos: el resto
begin
for i := 11 to 13 do //tallas 7, 8 y 9 q no pertenecen a la categoria de mujer
DBGrid1.Columns .Field.AsString := '0';
end;
DM_Form.TTallas.Post;
DM_Form.TTallas.Database.Commit;
// DM_Form.TTallas.Refresh;
// DBGrid1.Refresh;
end;
end;
pues bueno, resulta que cuando selecciono una opción de la lista desplegable no se me queda
en el DBGrid
Igual es interesante saber que tengo un DSN creado a una BD Access.
procedure TF_Albaran.DBGrid1ColExit(Sender: TObject);
var
i : integer;
aux : string;
begin
//Se ejecuta este evento cuando es la columna de Surtido
if (DBGrid1.Columns [DBGrid1. SelectedIndex] = DBGrid1.Columns [1]) then
begin
DM_Form.TTallas.Database.StartTransAction;
DM_Form.TTallas.Edit; //ponemos la tabla en modo edición por si modifiecamos algún valor
aux := DBGrid1.Columns [1].Field.AsString;
DM_Form.TSurtido.First;
i := 4;
// ShowMessage ('Codigo del surtido: ' + DBGrid1.Columns [1].Field.AsString);
while (not DM_Form.TSurtido.Eof) do
begin
if (DM_Form.TSurtido.FieldByName ('CodSur').AsString = DBGrid1.Columns [1].Field.AsString) then
begin
DBGrid1.Columns .Field.AsString := DM_Form.TSurtido.FieldByName ('ParSur').Value;
// ShowMessage (DM_Form.TSurtido.FieldByName ('ParSur').Value);
i := i + 1;
end;
DM_Form.TSurtido.Next;
end;
ShowMessage (aux);
DBGrid1.Columns [1].Field.AsString := aux;
if (DBGrid1.Columns [1].Field.AsString = '0000000000') then //mujer, codigos: //hombre, codigos: el resto
begin
for i := 11 to 13 do //tallas 7, 8 y 9 q no pertenecen a la categoria de mujer
DBGrid1.Columns .Field.AsString := '0';
end;
DM_Form.TTallas.Post;
DM_Form.TTallas.Database.Commit;
// DM_Form.TTallas.Refresh;
// DBGrid1.Refresh;
end;
end;
1 Respuesta
Respuesta de hluis
1