filtrar datas

21/02/2003

0

ola amigos, gostaria de uma ajuda se possivel, tenho dois campos em minha TBEmp (dataInicio e DataFim), como faço para quando o usuario entrar com uma determinada data o sistema faça uma comparacao (se data solicitada >= data inicio and data solicitada <= data fim) entao filtrar minha tabela e eu possa imprimir?

PS.nao sei usar ainda SQL.

Obragado pela força

JLM


Anonymous

Anonymous

Responder

Posts

21/02/2003

Anonymous

POR EXEMPLO, EM UM BANCO USANDO O COMPONENTE TABLE SEM USAR SQL, VOCE PODERIA PROCEDER DA SEGUINTE MANEIRA.

TABLE1.FILTERED := FALSE; //MOSTRAR TODOS OS REGISTROS
TABLE1.FILTER := ´ DATA >= ´´´+EDIT1.TEXT+´´´ ´; //PARA FILTRAR
TABLE1.FILTERED:=TRUE; //PARA ATUALIZAR A TABELA

OBS: VC TEM QUE CRIAR OBJETOS DE CAMPO, PARA FAZER ISSO VC DA UM DUPLO CLICK NO SEU COMPONENTE TABLE CLIQUE COM O BOTAO DIREITO NA CAIXINHA QUE VAI ABRIR E SELECIONE A OPCAO ´ADD ALL FIELDS´


ESPERO TER AJUDADO


Responder

21/02/2003

Aroldo Zanela

[quote:31ab898150=´Joao Luiz´]ola amigos, gostaria de uma ajuda se possivel, tenho dois campos em minha TBEmp (dataInicio e DataFim), como faço para quando o usuario entrar com uma determinada data o sistema faça uma comparacao (se data solicitada >= data inicio and data solicitada <= data fim) entao filtrar minha tabela e eu possa imprimir?

PS.nao sei usar ainda SQL.

Obragado pela força

JLM[/quote:31ab898150]

Coloque um componente Query no formulário;

Vamos usar o alias DBDEMOS na propriedade DatabaseName;

Na propriedade [b:31ab898150]SQL[/b:31ab898150], escreva algo como:
SELECT LAST_NAME, FIRST_NAME, ACCT_NBR, DATE_OPEN
FROM  Clients
WHERE  DATE_OPEN BETWEEN :INICIO AND :TERMINO

Na propriedade [b:31ab898150]Params[/b:31ab898150] clique nos ...
Os parâmetros INICIO e TERMINO estarão lá. Selecione os dois campos e mude as propriedades: DataType -> ftDate e ParamType -> ptInput
Coloque um Button, ema dbgrid e dois DateTimePickers

No click do button, adicione o seguinte:
  Query1.Close;
  Query1.ParamByName(´INICIO´).AsDate:= DateTimePicker1.Date;
  Query1.ParamByName(´TERMINO´).AsDate:= DateTimePicker2.Date;
  Query1.Open;


Ou então, marque o código abaixo e copie para o clipboard e coloque um formulário apenas e pressione CTRL V

  object DateTimePicker1: TDateTimePicker
    Left = 34
    Top = 116
    Width = 186
    Height = 21
    CalAlignment = dtaLeft
    Date = 37673.7600429398
    Time = 37673.7600429398
    DateFormat = dfShort
    DateMode = dmComboBox
    Kind = dtkDate
    ParseInput = False
    TabOrder = 0
  end
  object DateTimePicker2: TDateTimePicker
    Left = 32
    Top = 166
    Width = 186
    Height = 21
    CalAlignment = dtaLeft
    Date = 37673.7600810185
    Time = 37673.7600810185
    DateFormat = dfShort
    DateMode = dmComboBox
    Kind = dtkDate
    ParseInput = False
    TabOrder = 1
  end
  object BitBtn1: TBitBtn
    Left = 44
    Top = 46
    Width = 75
    Height = 25
    Caption = ´BitBtn1´
    TabOrder = 2
    OnClick = BitBtn1Click
  end
  object DBGrid1: TDBGrid
    Left = 34
    Top = 206
    Width = 487
    Height = 120
    DataSource = DataSource1
    TabOrder = 3
    TitleFont.Charset = DEFAULT_CHARSET
    TitleFont.Color = clWindowText
    TitleFont.Height = -11
    TitleFont.Name = ´MS Sans Serif´
    TitleFont.Style = []
  end
  object Query1: TQuery
    DatabaseName = ´DBDEMOS´
    SQL.Strings = (
      ´SELECT LAST_NAME, FIRST_NAME, ACCT_NBR, DATE_OPEN´
      ´FROM  Clients´
      ´WHERE  DATE_OPEN BETWEEN :INICIO AND :TERMINO´)
    Left = 134
    Top = 48
    ParamData = <
      item
        DataType = ftDate
        Name = ´INICIO´
        ParamType = ptInput
      end
      item
        DataType = ftDate
        Name = ´TERMINO´
        ParamType = ptInput
      end>
  end
  object DataSource1: TDataSource
    DataSet = Query1
    Left = 214
    Top = 56
  end



Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar