Relatorios - Parâmetos flexíveis

Delphi

28/08/2003

Tipo assim eu quero imprimir relatórios, mas antes do relatório, eu gostaria de chamar uma tela que eu digitasse o jeito que eu quero que o relatório saia, tipo data do dia tal ao dia tal, por codigo, por descrição, etc, então como faço essa chamada antes??????


Rodrigo51

Rodrigo51

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

28/08/2003

Colega,

Coloque os componentes necessários no formulário e faça uma query para suportar sua estratégia.
Coloquei um exemplo de SQL e da instrução de chamada para sua análise.
SQL
SELECT PV.PTO_RAZAO, L.LAB_NOME, M.MED_NOME, ML.PTO_CODIGO, ML.MED_ID, ML.LOT_ID, ML.LOT_VALIDO, ML.LOT_COMPRA,
SUM(ML.LOT_QTDE) CAIXAS, SUM(ML.LOT_FRAC) FRACOES
FROM MEDICAMENTOS_LOTE ML
INNER JOIN PONTOS_DE_VENDA PV
ON (ML.PTO_CODIGO=PV.PTO_CODIGO)
INNER JOIN MEDICAMENTOS M
ON (M.MED_ID = ML.MED_ID)
LEFT JOIN LABORATORIOS L
ON (L.LAB_ID=M.LAB_ID)
WHERE (PV.PTO_CODIGO >= :INI_PONTO AND PV.PTO_CODIGO <= :TER_PONTO)
AND (M.LAB_ID >= :INI_LAB AND M.LAB_ID <= :TER_LAB)
AND (ML.MED_ID >= :INI_PRODUTO AND ML.MED_ID <= :TER_PRODUTO)
AND (ML.LOT_COMPRA >= :INI_DATA AND ML.LOT_COMPRA <= :TER_DATA)
GROUP BY PV.PTO_RAZAO, L.LAB_NOME, M.MED_NOME, ML.PTO_CODIGO, ML.MED_ID, ML.LOT_ID, ML.LOT_VALIDO, ML.LOT_COMPRA
HAVING SUM(ML.LOT_QTDE) + SUM(ML.LOT_FRAC) > 0



No OnClick
begin

  qEstoque.Close;

  qEstoque.ParamByName(´INI_PONTO´).AsInteger:= seIniPonto.AsInteger;
  qEstoque.ParamByName(´TER_PONTO´).AsInteger:= seTerPonto.AsInteger;

  qEstoque.ParamByName(´INI_LAB´).AsInteger:= seIniLab.AsInteger;
  qEstoque.ParamByName(´TER_LAB´).AsInteger:= seTerLab.AsInteger;

  qEstoque.ParamByName(´INI_PRODUTO´).AsInteger:= seIniProduto.AsInteger;
  qEstoque.ParamByName(´TER_PRODUTO´).AsInteger:= seTerProduto.AsInteger;

  qEstoque.ParamByName(´INI_DATA´).AsDate:= DateTimePicker1.Date;
  qEstoque.ParamByName(´TER_DATA´).AsDate:= DateTimePicker2.Date;

  qEstoque.Open;

  qrlPeriodo.Caption:= DateToStr(DateTimePicker1.Date)+ ´ à ´+DateToStr(DateTimePicker2.Date);
  QRGroup1.ForceNewPage:= rgPDV.ItemIndex=0;
  QRGroup2.ForceNewPage:= rgLaboratorio.ItemIndex=0;

  QuickRep1.PreviewModal;

end;



GOSTEI 0
POSTAR