Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 26-12-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
Vale, y si le das clic con el botón derecho / secundario del ratón, ¿qué opciones de menú te aparecen?
Sale esto:

Cita:
Empezado por Al González Ver Mensaje
Por otro lado, ¿no habrá dentro de ese editor una sección para definir los campos persistentes?
No, únicamente para crear tablas SQLite, de ahí que quiera hacerlo por código.
Responder Con Cita
  #22  
Antiguo 26-12-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por noob Ver Mensaje
Sale esto:



No, únicamente para crear tablas SQLite, de ahí que quiera hacerlo por código.
Cuatro preguntas:

1. ¿Qué hay dentro de la opción "Edit Table"?
2. ¿Qué versión de Delphi utilizas?
3. ¿Tienes algún accesorio (wizard / experto) especial instalado en el IDE?
4. ¿Algún sitio Web de donde podamos descargar una versión gratuita de esos componentes SQLite?

Saludos.

Al.
Responder Con Cita
  #23  
Antiguo 26-12-2008
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
Al Gonzalez, Era afirmación...

por lo que veo es Lazarus y ahi si casi no lo eh usado, sin embargo tal vez te pueda servir este codigo:

Código Delphi [-]
FieldTEmp := TStringField.Create(dataset); 
   with FieldTEmp do 
   begin 
        FieldName := 'NewField'; 
        FieldKind := fkLookup; 
        KeyFields := 'character_family'; 
        LookupDataSet := clansDataSet; 
        LookupKeyFields := 'family_id'; 
        LookupResultField := 'family_group'; 
        DataSet := self.dataSet; 
   end; 
   dataSet.FieldDefs.Add(FieldTemp.FieldName, ftString, 50, false); 
   dataSet.Fields.Add(FieldTEmp);

este codigo es para crear un campo en tiempo de ejecucion, es de tipo lookup pero cambiando las propiedades lo puedes hacer calculado, espero que te sirva
Responder Con Cita
  #24  
Antiguo 26-12-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por luisgutierrezb Ver Mensaje
Al Gonzalez, Era afirmación...
Te pido una disculpa Luis. Creí que aquello lo había escrito Noob, pero ahora me doy cuenta que era un comentario tuyo. Lamento la confusión.
Responder Con Cita
  #25  
Antiguo 26-12-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
Cuatro preguntas:

1. ¿Qué hay dentro de la opción "Edit Table"?
2. ¿Qué versión de Delphi utilizas?
3. ¿Tienes algún accesorio (wizard / experto) especial instalado en el IDE?
4. ¿Algún sitio Web de donde podamos descargar una versión gratuita de esos componentes SQLite?

Saludos.

Al.
1. Está el editor de tablas Sqlite para cree una tabla.
2. Lazarus.
3. No.
4. http://sqlite4delphi.sourceforge.net/

Cita:
Empezado por luisgutierrezb Ver Mensaje
Al Gonzalez, Era afirmación...

por lo que veo es Lazarus y ahi si casi no lo eh usado, sin embargo tal vez te pueda servir este codigo:

Código Delphi [-]
 
FieldTEmp := TStringField.Create(dataset);     
with FieldTEmp do     
  begin          
    FieldName := 'NewField';          
    FieldKind := fkLookup;          
    KeyFields := 'character_family';          
    LookupDataSet := clansDataSet;          
    LookupKeyFields := 'family_id';          
    LookupResultField := 'family_group';          
    DataSet := self.dataSet;     
  end;     
dataSet.FieldDefs.Add(FieldTemp.FieldName, ftString, 50, false);     
dataSet.Fields.Add(FieldTEmp);

este codigo es para crear un campo en tiempo de ejecucion, es de tipo lookup pero cambiando las propiedades lo puedes hacer calculado, espero que te sirva
Ahora tengo esto:

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject); 
var   
  CampoTemporal: TStringField; 
begin   
  DatasetVentas.Active := True;   
  CampoTemporal := TStringField.Create(DatasetVentas);   
  with CampoTemporal do     
    begin       
      FieldName := 'Campo de búsqueda';       
      Lookup := True;       
      FieldKind := fkLookup;        
      KeyFields := 'Producto'; // Campo de la tabla base en el que se basa la búsqueda       
      LookupDataSet := DatasetProductos; // Tabla de búsqueda       
      LookupKeyFields := 'Codigo'; // Campos de la tabla de búsqueda que se corresponden con los KeyFields de la tabla base       
      LookupResultField := 'Descripcion'; // Campo de la tabla de búsqueda que se toma       
      DatasetVentas := Self.DatasetVentas;     
    end;   
  DatasetVentas.FieldDefs.Add(CampoTemporal.FieldName, ftString, 50, false);   
  DatasetVentas.Fields.Add(CampoTemporal);   
  DatasetVentas.Open; 
end;

Pero sale el DBGrid tal cual como si sólo hubiera hecho DatasetVentas.Open; no aparece ninguna columna adicional. A ver si alguien me echa un cable que parece que por lo menos he visto la forma de hacerlo por código, ahora sólo hace falta que funcione

Última edición por noob fecha: 26-12-2008 a las 02:36:12.
Responder Con Cita
  #26  
Antiguo 26-12-2008
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
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
  #27  
Antiguo 29-12-2008
Avatar de PepeLolo
PepeLolo PepeLolo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Fuenlabrada - Madrid - Espagna
Posts: 265
Poder: 21
PepeLolo Va por buen camino
Encontrada esta página con trucos para mostrar distintos componentes dentro de una celda de un dbgrid. Incluye código fuente de ejemplo.
__________________
PepeLolo
El hombre el único virus que mide más de unas cuantas micras
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Seleccionar multiples columnas en TDbGrid Leandro Ferrara OOP 1 01-11-2008 23:02:29
TDBGrid caperucitaazul C++ Builder 10 07-02-2006 23:27:30
TDBGrid didier Varios 1 05-04-2005 21:58:15
Componentes adicionales para kylix 3 OE. inexperto Lazarus, FreePascal, Kylix, etc. 13 13-12-2004 05:33:30
Problemas con TDBGrid Novás Varios 0 30-01-2004 10:32:20


La franja horaria es GMT +2. Ahora son las 00:14:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi