Fórum herdando valores. #292382
19/08/2005
0
Tenho um form frmRelatorio, outro frmCadPedido.
No frmRelatorio, no evento AfterPrint, eu faço o relatório receber todos os valores, (Número do Pedido, Cliente etc.. etc..).
No final eu pego o id do pedido (Where idpedido = frmCadPedido.idpedido)
Essa solução funciona legal.
O Problema:
Agora fiz uma pesquisa, de pedidos nessa pesquisa eu gostaria de imprimir também o pedido.
Então meu frmRelatorio está pegando o valor idpedido, do form frmCadPedido.
Eu gostaria de passar esse valor de ambos os form, sem repetir código.
Eu sei que poderia colocar o valor idpedido, em baixo do Tform, mas o form frmRelatorio vai ficar com 2 variaveis iguais, outra também vou precisar disso no frmRelatorio, não gostaria de criar um procedimento com muitos parametros, só precisava herdar o valor dessa variavel de ambos os forms.
alguém tem uma solução boa para resolver isso ?
Obrigado
Lynx
Curtir tópico
+ 0Posts
19/08/2005
Lynx
e no outro form fazer
with TfrmRelatorio.Create(nil) do begin rlPedido.AfterPrint.ImprimirRelatorio(nomedoform:idpedido); rlPedido.Preview; free end;
Mas não deu certo
Gostei + 0
19/08/2005
Lynx
No form relatório eu criei a procedure ImprimirRelatorio(Form:TForm;idpedido:Integer)
no form do cadastro ou pesquisa, eu coloco assim
with TfrmRelatorio.Create(nil) do begin rlPedido.AfterPrint.ImprimirRelatorio(frmPesquisaouCadastro,idpedido); rlPedido.Preview; free end;
Mas está retornando esse erro
Gostei + 0
19/08/2005
Lynx
frmrelatorio
varidpedido: Integer;
frmCadPedido e FrmPesqPedido
Nesses forms eu altero o valor da variavel varpedido, do relatório.
É Possivel alterar o valor da variavel em outro form ?
é meio estranho fazer isso...
Alguém pode me dar uma força ?
Valeu
Gostei + 0
19/08/2005
Rjun
Gostei + 0
19/08/2005
Lynx
Ler funciona, mas alterar o valor não.
Isso é meio gambiarra tb...
Como seria declarar propriedades ?
Na verdade o que eu preciso é passar o valor, da variavel idpedido de qualquer form.
Quando fixo no frmRelatório ,frmcadPedidos.idpedido funciona...
Mas só vai funcionar para esse form.
valeu
Gostei + 0
20/08/2005
Lynx
SQL.Add(´select * from PEDIDOS where IDPEDIDO = :IDPEDIDO´); ParamByName(´IDPEDIDO´).AsInteger:= frmCadPedidos.idpedido; Open;
Eu fixei o frmCadPedidos, esse valor deveria ser dinamico, no caso.
frmFormQueAbriu.idpedido.
Porque, agora vou passar o idpedido, em vários forms, e não gostaria de repetir código.
Gostei + 0
20/08/2005
Lynx
Não tem como pegar a variavel do form que abriu...
Fixando o valor da certo, só para um form.
Não gostaria de fazer gambiarra com variavel pra saber qual form abriu, e colocar vários parametros...
:cry:
Gostei + 0
20/08/2005
Lynx
Imagine isso
FrmCadPedidos var idpedido : Integer; FrmPesqPedidos var idpedido : Integer
No cadastro tem um botao para imprimir, quando clica nele abre o FrmRelatorio.
no form relatório tem isso.
with qryRelPedido do begin Close; SQL.Clear; SQL.Add(´select * from PEDIDOS where IDPEDIDO = :IDPEDIDO´); ParamByName(´IDPEDIDO´).AsInteger:= frmCadPedidos.idpedido; Open; lblData.Caption:= ´Data: ´+FieldByname(´DATA´).AsString; lblPedido.Caption:= ´Pedido Nº ´+FieldByname(´CODPEDIDO´).AsString; abaixo tem muitas mais linhas... passando para os label do relatório
Então essa situação funciona porque eu coloco fixo [color=red:e61925b042]frmCadPedidos.idpedido[/color:e61925b042] na condicão do relatório.
Se eu mudar para [color=red:e61925b042]frmPesqPedidos.idpedido[/color:e61925b042] vai funcionar a impressao na tela de pesquisa e não vai funcionar na tela de cadastro :lol:
Acho que deu para entender, o que preciso...
Tentei de muitas maneiras mas não deu certo.
Só fazendo gambiarra com váriavel para resolver.
Alguém pode me ajudar, a resolver isso de uma forma mais limpa ?
Muito Obrigado.
Obs:(Fica aqui meu agradecimento ao Marcos Sales, pela força que deu nas m.p)
valeu!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)