Tengo el siguiente formulario de una aplicacion vieja que se quiere renovar en Access:
https://ibb.co/YTYqWRX
Hasta ahora hice la parte de arriba pero se me complico con la grilla.Para lo mismo estoy usando un DBGrid pero no logro hacerlo:
Tiene el listado de codigos alfanumericos en la columna codigo por cada registro(esto por lo que busque se puede hacer con la propiedad PickList de Column). Cuando se selecciona un codigo aparece el nombre y precio del producto correspondiente. A su vez el combo lista que se ve es otra tabla de la base de datos que aplica un descuento de acuerdo al cliente(ya esta predeterminada) pudiendo cambiarse.
Se que no es algo sencillo al menos para mi:
Código Delphi
[-] procedure TDataModule1.cdsptemporalNewRecord(DataSet: TDataSet);
begin
SetupGridPickList('Codigo','Select * from productos;');
end;
Hasta ahora uso el evento on new record(hay un boton de agregar registro),con la idea de llenar un TClientDataSet como tabla temporal, y cargar el combo haciendo uso de picklist:
Código Delphi
[-]procedure TDataModule1.SetupGridPickList(const FieldName, sql: string);
var
slPickList:TStringList;
Query : TSQLQuery;
i : integer;
begin
slPickList:=TStringList.Create;
Query := TSQLQuery.Create(self);
Query.SQLConnection :=DataModule1.CONEXION;
Query.SQL.Text := sql;
Query.Open;
Query.First;
while not Query.eof do
begin
slPickList.Add(Query.Fields[9].AsString);
Query.Next;
end;
Form3.DBGrid1.Columns[1].PickList:=slPickList;
end;
Alguna sugerencia?Es posible?