Array
(
)

Gerar Relatorios

Américo Grespan...,,,
   - 13 mai 2011


  Pessoal, estou tentando construir uma rotina de Sql para gerar relatorios que seja da seguinte formar , eu escolha um perido entre codigos, datas e setores , o exemplo básico abaixo que faço com o codigo não determina o periódo por que por mais que mexe ele gera todos os dados da tabela e so o que eu determinei por exemplo , tenho 100 cadastrado so quero que apareça o 000020 até 000030 , mesmo assim ele mostra todos os 100 ,






Var VarSQL ,Vordem , VOS1 , VOS2 :String;
begin
  Vordem := ComboBox1.Text;
  VOS1   := Frm_Cha_Rel_OS.Maskedit1.text;
  VOS2   := Frm_Cha_Rel_OS.MaskEdit2.Text;
  //========================================
  VarSQL := 'SELECT * FROM Tb_OrdServicos WHERE Codigo >= ';
  VarSQL := VarSQL+VOS1+' AND Codigo <=';
  VarSQL := VarSQL+VOS2+' ORDER BY '+ vOrdem;
  //====================================================
  Frm_Cha_Rel_OS.Sql_OS.Close;
  Frm_Cha_Rel_OS.Sql_OS.SQL.add(VarSQL);
  Frm_Cha_Rel_OS.Sql_OS.Open;

if RadioGroup2.ItemIndex = 0 then
   Begin
       Frm_Rel_OS001 := Tfrm_Rel_OS001.Create(Self);
       Frm_Rel_OS001.QuickRep1.Preview;

   End;
if RadioGroup2.ItemIndex = 1 then
   Begin
       Frm_Rel_OS002 := Tfrm_Rel_OS002.Create(Self);
       Frm_Rel_OS002.QuickRep1.Preview;
   End;







Eliel Martins
|
MVP
    16 mai 2011

  Olá Américo !

  Não sei se entendi direito, mas o que você está querendo dizer que você quer limitar a quantidade de registro que o seu SQL retorne, se for isso você pode usar a instrução "TOP 10" que irá retorna 10 registros, segue um exemplo básico abaixo :

SELECT TOP 10 *
  FROM TAB_PRODUTO

Observação : Esse comando TOP é utilizado no banco de dados SQL Server, agora tem que ver qual banco de dados você está utilizando, dependo qual banco de dados que for, deve ter uma sintaxe diferente.


Espero ter ajudado, se entendi errado o que você estava querendo passar, me desculpe. Mas qualquer coisa repassa novamente com mais detalhes o que deseja.


Eliel G. Martins