Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Usar Varias Ibquery En Dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=92150)

Dergon 09-08-2017 21:57:52

Usar Varias Ibquery En Dbgrid
 
Hola amigos,estoy con un inconveniente a la hora de usar una ibquery,hize una consulta via sql con ibquery de una tabla en la cual enlaze mi dbgrid,y tambien otra ibquery por si mi checkbox estubiera desactivada,y la otra si estubiera el checkbox activada,el codigo en sql va bien,lo que pasa es que mi dbgrid esta enlazada al primer ibquery y al ejecutar la otra ibquery no va por causa que mi dbgrid.datasour queda por el ibquery1.

Aqui el codigo
Código Delphi [-]
procedure TFrmConVenta.BitBtn1Click(Sender: TObject);
begin
      if CheckBox1.Checked = false then
         begin
         dm_dados.sqlConVenta.Close;
         dm_dados.sqlConVenta.ParamByName('mov').AsInteger:=StrToInt(editcodini.Text);
         dm_dados.sqlConVenta.ParamByName('numvend').AsInteger:=StrToInt(editcodvend.Text);
         dm_dados.sqlConVenta.ParamByName('numcli').AsInteger:=StrToInt(edtnumcli.Text);
         dm_dados.sqlConVenta.ParamByName('datavend').AsDate:=StrToDate(MaskEdit1.Text);
         dm_dados.sqlConVenta.Open;
         end
           else
           If CheckBox1.Checked = true then
           begin 
           sql_sem_filtro.Close;
           sql_sem_filtro.ParamByName('datavend').AsDate:=StrToDate(MaskEdit1.Text);
           sql_sem_filtro.Open;

oscarac 09-08-2017 22:04:46

estoy entendiendo que en un DBGRID quieres mostrar el resultado de 3 datasource diferentes?

Dergon 09-08-2017 22:16:28

tengo un dbgrid con el datasource del ibquery1,utilizando un checkbox para ejecutar una ibquery en mode checked=true y la otra ibquery2 en modo checked=false,solo muestra las infromaciones del primer ibquery1 por la cual esta mi dbgrid.

TOPX 09-08-2017 22:41:48

Hola, osea con algo así:
Código Delphi [-]
if not CheckBox1.Checked then
begin
  {etc, etc...} dm_dados.sqlConVenta.Open;

  DataSource1.DataSet := dm_dados.sqlConVenta;
end
else
begin
  {etc, etc...} sql_sem_filtro.Open;

  DataSource1.DataSet := sql_sem_filtro;
end;
-

oscarac 09-08-2017 22:45:39

Cita:

Empezado por Dergon (Mensaje 520151)
tengo un dbgrid con el datasource del ibquery1,utilizando un checkbox para ejecutar una ibquery en mode checked=true y la otra ibquery2 en modo checked=false,solo muestra las infromaciones del primer ibquery1 por la cual esta mi dbgrid.

puedes ser un poco mas especifico?
porque estoy entiendo que en un dbgrid quieres mostrar la informacion de 2 datasource, en ese caso solo asignarias el datasource al dbgrid

i
Código Delphi [-]
f CheckBox1.Checked then
  Dbgrid1.DataSet := DataSource1
else
  Dbgrid2.DataSet := DataSource2;
end;

ecfisa 09-08-2017 22:52:48

Hola Dergon.

Por favor cuando incluyas código en tus mensajes usa las etiquetas de este modo:


Y también recuerda que el foro "Trucos" es para realizar aportes novedosos, no para consultas. Cuando dudes en que foro poner tu mensaje usa el foro "Varios" (agregué las etiquetas y moví tu hilo a dicho foro).

Saludos y gracias por tu colaboración :)

Dergon 09-08-2017 23:08:52

[RESOLVIDO] Gracias a todos por la mano,consegui hacerlo de esta manera.
 
[RESOLVIDO]
Gracias a todos por la mano,consegui hacerlo de esta manera.

Código Delphi [-]
procedure TFrmConVenta.BitBtn1Click(Sender: TObject);
begin
         if CheckBox1.Checked = false then
         begin
         DBGrid1.DataSource.DataSet := dm_dados.sqlConVenta;
         dm_dados.sqlConVenta.Close;
         dm_dados.sqlConVenta.ParamByName('mov').AsInteger:=StrToInt(editcodini.Text);
         dm_dados.sqlConVenta.ParamByName('numvend').AsInteger:=StrToInt(editcodvend.Text);
         dm_dados.sqlConVenta.ParamByName('numcli').AsInteger:=StrToInt(edtnumcli.Text);
         dm_dados.sqlConVenta.ParamByName('datavend').AsDate:=StrToDate(MaskEdit1.Text);
         dm_dados.sqlConVenta.Open;
         end
           else
           begin
           If CheckBox1.Checked = true then
           DBGrid1.DataSource.DataSet:= sql_sem_filtro;
           MaskEdit1.Text := DateToStr(date);
           begin
           sql_sem_filtro.Close;
           sql_sem_filtro.ParamByName('datavend').AsDate:=StrToDate(MaskEdit1.Text);
           sql_sem_filtro.Open;

end;
end;
end;
end.


La franja horaria es GMT +2. Ahora son las 13:39:12.

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