Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   duda con dblookupcombobox (https://www.clubdelphi.com/foros/showthread.php?t=81611)

donpedro 29-11-2012 21:08:44

duda con dblookupcombobox
 
hola a todos, espero que esten bien y que Dios me los Bendiga mucho.......
agradezco de antemano la ayuda que me pueden brindar con respecto a este problemilla...

estoy trabajando con delphi 2010, mysql como base de datos.
en estos momentos estoy truncado con un modulo que trata de asignarle a un profesor los cursos y las materias que va a impartir
aqui les muestro la imagen.


excusen el dbgrid en el medio, es solo para ver el comportamiento en la tabla.....

lo que esta pasando es que al elegir el curso y la tanda y despues de asignar las materias,,,, al grabar me lo graba como lo muestra en el dbgrid. me graba el curso y la tanda en el primer registro y despues las demas cosas....no se si es un comportamiento de dblookupcombobox que al elegir coloca la tabla en insert e introduce el dato automaticamente....no se si me di a entender, pero aki le agrego el codigo que estoy utilizando para grabar.

Código Delphi [-]
procedure TFMATERIASPORPROFESOR.BGUARDARClick(Sender: TObject);
var b:integer;
begin
   with dmdatos do
begin


   for b := 0 to Listbox2.items.Count - 1 do
   begin

   dmdatos.ATMATERIASPORPROFESOR.Append;

  ATMATERIASPORPROFESORPROFESORID.AsString:=EID.Text;
  ATMATERIASPORPROFESORNOMBRES.AsString:=LNOMBRE.Caption;
  ATMATERIASPORPROFESORCEDULA.AsString:=LCEDULA.Caption;
  ATMATERIASPORPROFESORGRADO.AsString:=EGRADO.Text;
  ATMATERIASPORPROFESORTANDA.AsString:=ETANDA.Text;
  ATMATERIASPORPROFESOR.FieldByName('MATERIAID').ASSTRING:=listbox2.items[b];
 ATMATERIASPORPROFESOR.Post;

     SHOWMESSAGE('DATOS GRABADOS EXITOSAMENTE');

  END;

end;

end;

ecfisa 29-11-2012 21:47:55

Hola donpedro.

Si no entiendo mal tu duda, es el comportamiento normal.

Siempre y cuando la propiedad AutoEdit del TDataSource enlazado a la propiedad DataSource del TDBLookupComboBox esté en True, este asignará el valor del campo definido en la propiedad KeyField al definido en la propiedad DataField automáticamente. Y por tanto antes del evento OnClick del TButton.

Saludos.

Edito: Lo último dicho, por supuesto es válido si realizas una selección en el combo antes de pulsar el boton BGUARDAR.

donpedro 29-11-2012 22:12:17

si pongo false el autoedit entonces no me funcionan los dblookupcombobox,,,, como hago para que no me pase eso,,,, sino que me grabe normal

ecfisa 29-11-2012 22:28:25

Cita:

Empezado por donpedro (Mensaje 450913)
si pongo false el autoedit entonces no me funcionan los dblookupcombobox,,,, como hago para que no me pase eso,,,, sino que me grabe normal

Hola.

Lo que entiendo, y si estoy equivocado corregime, es que deseas que todas las asignaciónes a los campos se realize en el evento OnClick del TButton.

Entonces podrías dejar en blanco las propiedades DataSource y DataField de los TDBLookupComboBox y en el evento OnClick hacer:
Código Delphi [-]
  with dmdatos.ATMATERIASPORPROFESOR do
  begin
    ...
    FieldByName('GRADO').Value := DBLookupComboBoxGrado.KeyValue;
    FieldByName('TANDA').Value := DBLookupComboBoxTanda.KeyValue;
    ...
  end;

Saludos.

donpedro 29-11-2012 22:37:02

muchas gracias ecfisa,,, les quite el datasource y el datafield y funciono a la perfeccion......gracias de veras.....
creo que esto se puede dar por caso cerrado.......


La franja horaria es GMT +2. Ahora son las 22:54:26.

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