Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   DBListBox y DBEdit (https://www.clubdelphi.com/foros/showthread.php?t=90942)

fabiodidone 14-10-2016 20:50:59

DBListBox y DBEdit
 
Hola chicos. Les quería pedir si me pueden dar una mano. Quiero hacer un formulario, en donde hay un DBListBox que va a contener 5 palabras abreviadas. Al seleccionar alguna de ellas automáticamente ponga la palabra completa en un DBEdit. Y luego todo eso se guarda en una base de datos. No se muy bien como codificarlo.

Casimiro Notevi 14-10-2016 21:15:57

Te recuerdo que leas nuestra guía de estilo, gracias.
Y no olvides poner títulos lo más descriptivo posible a lo que preguntas.
En cuanto a tu mensaje, has olvidado hacer la pregunta.

fabiodidone 17-10-2016 19:21:54

Hola. Gracias por responder y disculpas por no expresarme correctamente. Quiero crear un formulario, en donde haya un DBListBox que va a contener estos cinco items: JF, AU, RE, EX y por ultimo VE

Al seleccionar alguno de estos items del DBListBox, automáticamente ponga la palabra completa en un DBEdit. Es decir, si por ejemplo selecciono en el DBListBox el item JF, ponga en el DBEdit JEFE o si selecciono AU AUXILIAR. Y asi con las cinco

La pregunta es: cual es el código que permita hacer lo que necesito?
Desde ya muchas gracias.

roman 17-10-2016 19:35:48

Sólamente tienes que asignar a las propiedades DataSource y DataField del DBListBox los mismos valores que las propiedades correspondientes del DBEdit.

LineComment Saludos

fabiodidone 19-10-2016 20:34:17

Lo había hecho así, pero muestra el mismo contenido. Es decir, si selecciono uno de los items del DBList Box lo muestra igual en el DBEdit. Yo necesitaría que el DBEdit muestre la palabra completa y no abreviada.

Me imagino que esta es la lógica:

si esta en el item 1 del DBListBox (JF) muestre en el DBEdit JEFE.
si esta en el item 2 del DBListBox (AU) muestre en el DBEdit AUXILIAR.
si esta en el item 3 del DBListBox (RE) muestre en el DBEdit RECEPCIONISTA.
si esta en el item 4 del DBListBox (EX) muestre en el DBEdit EXPEDICIÓN.
si esta en el item 5 del DBListBox (VE) muestre en el DBEdit VENTAS.

No se como escribir el código que recorra el DBListBOx y según donde este parado muestre un texto especifico en el DBEdit. Tal vez sea con un if,

roman 19-10-2016 20:43:54

¿Qué valores tiene la base de datos? ¿Las abreviaturas o las palabras completas?

LineComment Saludos

ecfisa 20-10-2016 14:10:14

Hola fabiodidone.

No nos das mucha información... Pero me pregunto si no te resultará mas sencillo usar un TComboBox en lugar de un TDBComboBox en este caso,
Código PHP:

...
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  
TComboBoxcb static_cast<TComboBox*>(ComboBox1);

  
cb->Items->CommaText "JF,AU,RE,EX,VE";
  
cb->Style csDropDownList;
  
cb->ItemIndex 0;
  
cb->OnChange  ComboBox1Change;
}

void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
  
TComboBoxcb static_cast<TComboBox*>(Sender);

  if (
cb->ItemIndex != -) {
    
AnsiString v[] = {"JEFE","AUXILIAR","RECEPCIONISTA","EXPEDICION","VENTAS"};
    
TDataSetState status DBEdit1->DataSource->DataSet->State;

    if ( !(
status == dsEdit && status == dsInsert) )
       
DBEdit1->DataSource->DataSet->Edit();
    
DBEdit1->Field->AsString v[cb->ItemIndex];
  }
}
... 

Saludos :)

fabiodidone 20-10-2016 19:31:44

Les agradezco por la paciencia que me tienen. Lo que sucede es que recién empiezo a programar con Builder c++. Tengo en mente lo que quiero hacer pero no se como expresarlo. Incluso puede ser que trate de hacerlo de la forma mas complicada, habiendo otras mas sencillas. Supongo que con el paso del tiempo le iré tomando la mano.
Por ejemplo, lo que me sugiere ecfisa (Mil gracias ecfisa) me funciono. Era eso precisamente lo que quería hacer. :) :) :) :).

fabiodidone 20-10-2016 19:33:23

Por supuesto, gracias a todos!!! Que no se me olvida. :) :) :) :) :).

Snaked 26-10-2016 16:40:48

una solucion muy elegante y precisa ecfisa..... eres un crá!!


La franja horaria es GMT +2. Ahora son las 08:41:03.

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