Ver Mensaje Individual
  #1  
Antiguo 23-02-2007
loxod loxod is offline
Miembro
 
Registrado: feb 2007
Ubicación: Mexico
Posts: 45
Reputación: 0
loxod Va por buen camino
crear un campo lookup de forma dinamica y mostrarlo en un dbgrid

Quiero crear un campo lookup de forma dinamica y mostrar este nuevo campo en un dbgrid.

Tengo el siguiente procedimiento


**************************************************************************************************** *****************************
Código Delphi [-]
Procedure TForm.AddCalcStringField(Table1, Table2: tDataset; fName,fDisplay:String;
                                           Size:Integer; Keyfield1, Result : String);
var
  f : TField;
  i : integer;
begin
  table1.Close;
  for i := 0 to table1.FieldDefs.Count - 1 do
    if table1.FindField(table1.FieldDefs[i].Name) = nil then
       table1.FieldDefs.Items[i].CreateField(table1);

  if table1.FindField(fName) <> nil then Exit;

  f := TStringField.Create(Table1);
  f.DisplayLabel := fDisplay;
  f.DisplayWidth := Size;
  f.fieldKind := fkLookup;
  f.FieldName := fName;
  f.Index := Table1.FieldCount;
  f.Keyfields:= Keyfield1;
  f.lookupDataSet:=table2;
  f.LookupKeyfields :=  Keyfield1;
  f.LookupResultField:=  Result;
  f.Name := Table1.Name+fName;
  f.Size := Size;

  f.Visible := True;
  f.DataSet := Table1;
  Table1.Open;
  f.Free;

  dbgrid.Columns.Add;
  dbgrid.Columns[Table1.FieldCount].FieldName := fName;
  dbgrid.Columns[Table1.FieldCount].Title.Caption :=fDisplay;
  dbgrid.Columns[Table1.FieldCount].Title.Alignment := taCenter;
  dbgrid.Columns[Table1.FieldCount].Title.Font.Style := [fsbold];
  dbgrid.Columns[Table1.FieldCount].Width := 100;

end;
**************************************************************************************************** *****************************

Cuando yo ejecuto la aplicacion el campo lookup no se muestra en el dbgrid.



Alguna idea de que es lo que esta mal.
Table1 y Table2 son generados en runtime



De antemano les agradesco su ayuda

Última edición por roman fecha: 24-02-2007 a las 04:05:33. Razón: Agregar etiqueta [delphi] para mejor legibilidad
Responder Con Cita