Ver Mensaje Individual
  #26  
Antiguo 26-12-2008
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Reputación: 24
fjcg02 Va camino a la fama
Hola, yo tengo una función que me crea los campos lookup . Igual os puede ayudar.
Por otro lado, creo que hay que asegurarse de que el DBGrid debe abrirse posteriormente a la creación del campo, ya que si no no estará disponible.
En su día yo tuve problemas con la generación de estos campos en ejecución, y tuve que asegurarme de que el campo se generaba bien recorriendome el dataset y mostrando los campos que tenía.

Saludos

Código Delphi [-]
procedure TForm1.CrearCAmpoLookup(Query: TMDOQuery; Campo, CAmpo_FK, tabla_FK, SQL: string);
var campow: Tfield;
begin
  Campow:= TStringfield.Create(nil);
  CAmpow.Fieldname:= SQLTAblas.FieldByName('NOMBRE_SI_FK').AsString;
  Campow.FieldKind:= fkLookup;
  Campow.Dataset:= Query;
  CAmpow.DisplayLAbel:= SQLTAblas.FieldByName('LABEL_SI_FK').AsString;
  CAmpow.DisplayWidth:= 40;
  Campow.LookupDataSet:= ClonarDataset(SQLFK,
                         ['database','transaction'],
                         SQL);
  Campow.KeyFields:= Campo;
  Campow.LookupKeyFields:= Campo_FK;
  Campow.LookupDataSet.Open;
  Campow.LookupResultField:= CAmpow.LookupDataSet.Fields[1].FieldName;

end;
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita