Parametro

28/06/2008

1

Pessoal to com um probleminha aqui em um form que chama um relatorio tipo assim:

eu tenho dois relatorio provindo de um unico form que são relatorios de Orçamentos e relatorios de Pedidos os mesmos no sistema são definidos pelas letras (O e P)

gostaria de quando eu selecionar no RadioGroup um parametro que identificace cada relatorio... Estou usando da seguinte forma mas não esta dando certo ele não m avisa se eu abrir um relatorio do tipo (P) no lugar errado...

estou usando o fortes report

Begin
//Relatorio de Orçamento
   if radio.itemindex = 0 then
   begin
     FrmImp_Pedido:=TFrmImp_Pedido.create(Self);
     FrmImp_Pedido.orcamento.Preview;
     FrmImp_Pedido.Destroy;
   end;
   If FrmOrcamento.ADO_Orcamento.FieldByName(´TIPO´).AsString = ´P´ then
  begin
    showmessage(´O relatorio não é um relatório de Orçamento!´);
    exit;
  end
  else
//Relatorio de Pedidos
if radio.itemindex = 1 then
   begin
    FrmImp_Pedido:=TFrmImp_Pedido.create(Self);
    FrmImp_Pedido.Pedidos.Preview;
     // FrmImp_Pedido.AreaImpressao.Preview;
    FrmImp_Pedido.Destroy;
      end;

end;



Responder

Posts

29/06/2008

Edilcimar

Faça dentro desta estrututa
If RadioGroup1.ItemIndex = 0 then
begin
fala algo
end
Else If RadioGroup1.ItemIndex = 1 then
begin
faça outra coisa
end;
Quanto ao teu tipo ´P´, onde você quer ser avisado?
Se for no ItemIndex = 0 então coloque antes ou depois do ´faça algo´, se for no ItemIndex = 1 então coloque antes ou depois do ´faça outra coisa´, porém se quiser ser avisado de qualquer maneira então coloque antes do ItemIndex = 0 ou depois do último end


Responder

29/06/2008

Paulo

Sua chamada a query está fora de tudo, por isso não funciona. O Edilcimar te disse como fazer para chamar sua variável P ou O. Pode também usar o case assim(Como o colega falou esta certo, estou apenas te dando outra opção).

Case radio.itemindex of 0:begin Aqui coloca todo o seu código para a opção 0 Caso seja P ou O faça aqui end; 1:begin Aqui coloca todo o seu código para a opção 1 Caso seja P ou O faça aqui end; end;//Fim do case



Responder
não entendi o porquê do radiogroup....

se o tipo do documento já diz qual lay-out deve ser utilizado, porque preciso selecionar se é (P)edido ou (O)rçamento e avaliar se eu escolhi o tipo de relatório de acordo com o registro posicionado???

Não poderia ser simplesmente assim:
Begin
  // crio o Form de impressão
  FrmImp_Pedido := TFrmImp_Pedido.Create(Self);

  if FrmOrcamento.ADO_Orcamento.FieldByName(´TIPO´).AsString = ´P´ then
    //Relatorio de Pedidos
    FrmImp_Pedido.Pedidos.Preview;
  else
    //Relatorio de Orçamento
    FrmImp_Pedido.Orcamento.Preview;

  FrmImp_Pedido.Destroy;
end;



Responder

30/06/2008

Tchucky

OLá emerson.en eu uso radiogroup pq tenho 7 tipo de relatorio a ser selecionado neste form...

fiz da forma q o Paulo falou usando o case e ta tudo blz agora


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira