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;

1 Respuesta

Respuesta
1
Creo que primero debería entrar en modo edición para poder cambiar el campo, hacer el post, y el salir se ejecuta tu código.
en el DataSource Autoedit=true; ya te habilita para editar.
en el dbgrid Options
dbEditing = true
ReadOnly = False;
Si lo quieres hacer a nivel de Campo en el dbgrid tienes que ponerlas en persistentes en Colunms o por medio del programa las cargas.
Pones todas los campos en readonly=true salvo el que quieres modificar.
Bueno espero que se solucione tu problema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas