Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Llenar Combobox (https://www.clubdelphi.com/foros/showthread.php?t=69999)

agustin173 24-09-2010 00:00:34

Llenar Combobox
 
Hola a todos como estan

Tengo un combobox que necesito llenarlo con los datos de una tabla explico mejor

Estoy usando delphi 7.
Una tabla llamada "Itebis" con los campos (Codigo, Fecha Itebis).
un ADOquery llamado AdoItebis
un Combobox llamado CBItbis

Quiero llenar el combobox con el campo Itebis solamente que son numeros

Lo que deseo es que cuando le de un click al combobox me aparezca la lista de itebis que se encuentran en ese campo y lo seleccione.

el codigo que estoy usando es este

Código Delphi [-]
procedure TFrmRecepcion.FormCreate(Sender: TObject);
begin
  ADoItebis.SQL.Text := 'Select Itebis From Itebis';
  While not ADoItebis.Eof do
  begin
  CBItbis.Items.Add(ADoItebis.Fields[2].text);
  ADoItebis.Next;
  end;
end;

No se porque no se llena el combobox se queda vacio por favor ayudenme a poder llenar el combobox.

Caral 24-09-2010 00:04:30

Hola
Código Delphi [-]
procedure TFrmRecepcion.FormCreate(Sender: TObject);
begin
  ADoItebis.SQL.Text := 'Select Itebis From Itebis';
  ADoItebis.Active:= True;
  While not ADoItebis.Eof do
   begin
  CBItbis.Items.Add(ADoItebis.Fields[0].Text);
  ADoItebis.Next;
  end;
  ADoItebis.Active:= false;
end;
Saludos

agustin173 24-09-2010 00:25:21

caral hermano como estas

corregi el codigo como tu lo pusiste y me manda un error que es el siguiente

"Project Synapse.exe raised exception class edatabase error with message 'AdoItebis: field 'codigo' not found', process stopped use step or run to continue.

hay se queda el programa apuntando el error a la linea "adoitebis.active:= true" del codigo que me diste

ayusdame por favor

Caral 24-09-2010 00:28:21

Hola
As modificado algo en la tabla, haz lo siguiente:
Dale doble click al adoquery AdoItebis
Ahi te saldra una ventana, estoy seguro que esta un campo que se llama Codigo.
O quitas ese campo de esa ventana o quitas todos, da igual.
Prueba y veras que sirve.
Saludos

agustin173 24-09-2010 00:33:34

caral hermano tenias razon ese era el problema habia seleccionado los campos en la ventana lo quite y me funciono gracias hermano nuevamente

te estoy muy agradecido

ContraVeneno 24-09-2010 01:38:32

que bueno que ya quedó... aunque en este tipo de casos, lo más recomendable es utilizar un LoockUpComboBox.

Saludos.

naty_prog 27-09-2010 19:33:16

llenar un combobox con codigo fuente
 
Hola amigos, les quiero comentar que necesito rellenar un combobox (combobox_cuatrimestres) con distintos items de acuerdo a la selección de otro combobox (combobox_tipo),por medio de código fuente.
Al comenzar el programa, tengo el combobox_tipo en donde se encuentra las opciones 'anual' y 'cuatrimestral'. de acuerdo a lo que seleccione, en el combobox_cuatrimestres, si el usuario elijió 'anual', debe aparecer en la lista desplegable del combobox_cuatrimestres 1,3,5,7 (uno abajo del otro), si fuese que el usuario elige la opción 'cuatrimestral' del combobox_tipo, en el combobox_cuatrimestres, deben aparecer en la lista desplegable los items 1,2,3,4,5,6,7,8.
Aquí se me presenta el dilema: en el evento OnChange del combobox_tipo, realizo el filtro, utilizando la sentencia if para que el programa realice la comparación entre si el usuario elijió anual o cuatrimestral. el problema es cómo armo la línea de código para las dos opciones.
Estuve leyendo temas anteriores sobre rellenar combobox pero no me queda bien claro.
La línea sería algo como esto:

if (combobox_tipo.item.text:='anual') then
comcobox_cuatrimestres.items.add (//aquí es donde no se como seguiría la línea);
espero haberme expresado de manera eficiente para que puedan resolver mi problema y ayudar a otras personas que estén en la misma situación.
Saludos a todos y muchas gracias.

Caral 27-09-2010 19:52:38

Hola
Código Delphi [-]
combobox_cuatrimestres.Clear;
  case combobox_tipo.ItemIndex of
     0 : begin
          combobox_cuatrimestres.Items.Add('1');
          combobox_cuatrimestres.Items.Add('3');
          combobox_cuatrimestres.Items.Add('5');
          combobox_cuatrimestres.Items.Add('7');
         end;
     1 : begin
          combobox_cuatrimestres.Items.Add('1');
          combobox_cuatrimestres.Items.Add('2');
          combobox_cuatrimestres.Items.Add('3');
          combobox_cuatrimestres.Items.Add('4');
          combobox_cuatrimestres.Items.Add('5');
          combobox_cuatrimestres.Items.Add('6');
          combobox_cuatrimestres.Items.Add('7');
          combobox_cuatrimestres.Items.Add('8');
         end;
end;
Tambien se puede con salto de carro, pero no me acuerdo, tendria que pensarlo mas.:cool::)
Saludos

naty_prog 27-09-2010 19:59:28

gracias por la solución
 
Debido a que tengo poco tiempo para dedicarle a la tesis que estamos armando con mi compañero, la ayuda que nos dan desde este foro nos viene muy bien, ya que nos esforzamos por pensar distintas formas de darle soluciones a nuestros problemas de programación, sumado a la poca experiencia con el lenguaje delphi.
Les agradezco sinceramente la ayuda que nos brindan.Muchas gracias.Saludos

Caral 27-09-2010 20:18:57

Hola
La verdad me gusta mas con salto de linea:
Código Delphi [-]
var a,b:string;
begin
  combobox_cuatrimestres.Clear;
  a:= '1'+chr(13)+'3'+chr(13)+'5'+chr(13)+'7';
  b:= '1'+chr(13)+'2'+chr(13)+'3'+chr(13)+'4'+chr(13)+'5'+chr(13)+'6'+chr(13)+'7'+chr(13)+'8';
  case combobox_tipo.ItemIndex of
  0 : begin //Anual
      combobox_cuatrimestres.Items.Text:= a;
      end;
  1 : begin //Cuatrimestre
      combobox_cuatrimestres.Items.Text:= b;
      end;
  end;
end;
Saludos

naty_prog 27-09-2010 20:20:55

gracias
 
agradezco tus soluciones.saludos


La franja horaria es GMT +2. Ahora son las 01:45:21.

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