Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-04-2012
escorpionrojo43 escorpionrojo43 is offline
Miembro
 
Registrado: abr 2010
Posts: 89
Poder: 15
escorpionrojo43 Va por buen camino
dos valores en un DBLookupComboBox

Hola Compañeros.

En esta ocasión necesito saber como poner 2 valores en un DBLookupComboBox.
necesito mostrar nombre y apellido que son 2 campos diferentes en mi tabla.
espero me puedan ayudar gracias.
Responder Con Cita
  #2  
Antiguo 08-04-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Completa las siguientes propiedades del TDBLookupComboBox:
  • ListSource: Nombre del TDatasource asociado al DataSet. Ej: DataSource1
  • ListField: Nombre de los campos a mostrar separados por un ';' . Ej: Campo1;Campo2
  • KeyField: Campo clave

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 08-04-2012
escorpionrojo43 escorpionrojo43 is offline
Miembro
 
Registrado: abr 2010
Posts: 89
Poder: 15
escorpionrojo43 Va por buen camino
Thumbs up

Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Completa las siguientes propiedades del TDBLookupComboBox:
  • ListSource: Nombre del TDatasource asociado al DataSet. Ej: DataSource1
  • ListField: Nombre de los campos a mostrar separados por un ';' . Ej: Campo1;Campo2
  • KeyField: Campo clave

Saludos.
hola ecfisa te agradesco la informacion. el espacio de los campos es muy grande, necesito saber si hay alguna forma de reducir esos espacios.
gracias por tu aporte.
Responder Con Cita
  #4  
Antiguo 09-04-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

La propiedad ListField, de tipo string, contiene el valor o valores de el/los campos que van a ser mostrados, quizá haya otro modo de hacerlo pero lo único que se me ocurre ahora, es recurrir a la propiedad DisplayWidth del TField relacionado.

Veo dos opciones, la primera ajustando arbitrariamente la longitud de los campos a mostrar, ejemplo:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  ...
  DataSet.FieldByName('Campo1').DisplayWidth:= 15;
  DataSet.FieldByName('Campo2').DisplayWidth:= 10;
end;
Esto es simple y rápido pero truncará los valores si estos exceden el valor que se designo a la propiedad DisplayWidth.

La segunda es hacer un recorrido previo del TDataSet para calcular el valor máximo de cada campo a mostrar y luego ajustar la propiedad DisplayWidth a ese valor:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
  Max, Len: TPoint;
begin
  with DataSet do
  begin
    ...
    Max.X:= 0;
    Max.Y:= 0;
    First;
    while not Eof do
    begin
      Len.X:= Length(FieldByName('Campo1').AsString);
      Len.Y:= Length(FieldByName('Campo2').AsString);
      if Len.X > Max.X then Max.X:= Len.X;
      if Len.Y > Max.Y then Max.Y:= Len.Y;
      Next;
    end;
    FieldByName('Campo1').DisplayWidth:= Max.X;
    FieldByName('Campo2').DisplayWidth:= Max.Y;
    First;
  end;
end;
A esta última forma le veo dos inconvenientes, el primero que si existe algún campo con un valor de longitud igual al declarado en el campo es inútil. El segundo es que es ineficiente ya que recorre todo el dataset para hallar los máximos.
También está la posibilidad de reducir el tamaño de la fuente pero, lógicamente tiene un límite y pienso que ya lo debes haber intentado...

Por otro lado tomá en cuenta, que esto esta pensado para tratar con TStringField y también salvar los valores originales de las propiedades DisplayWidth de los campos modificados para restaurarlos al salir.


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
como pasar datos de un DBLookupComboBox a otro DBLookupComboBox francodelphi Conexión con bases de datos 3 30-11-2011 21:02:34
dblookupcombobox josi SQL 1 29-03-2008 15:37:45
DBLookupComboBox ChristianP Varios 3 15-03-2007 23:12:28
Dblookupcombobox desplegar todos los valores euss Conexión con bases de datos 2 12-04-2006 20:30:55


La franja horaria es GMT +2. Ahora son las 10:30:45.


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