Fórum Quando chamo o ClientDataSet de outro form da erro. #240502
30/06/2004
0
possuo um ClientDataSet chamado ´DataSet_Produto´ que esta no form chamado ´Form_LucroAprox´
e cuja Unit se chama ´uFrmLucroAprox´
Até aí tudo bem.
Em uma outra unit preciso deste DataSet.
Para isto, procedo da seguinte maneira:
[color=blue:61363d8bf9] uFrmLucroAprox.Form_LucroAprox.DataSet_Produto.First;
While Not uFrmLucroAprox.Form_LucroAprox.DataSet_Produto.Eof DO
Begin
...
...
End;[/color:61363d8bf9]
O que preciso é passar o caminho através de uma variável, pois ele poderá variar.
Assim, criei uma variavel tipo string que armazena este caminho.
[color=blue:61363d8bf9] FormularioPedinte := ´uFrmLucroAprox.Form_LucroAprox´;[/color:61363d8bf9]
Aí quando tento chamar:
[color=blue:61363d8bf9] FormularioPedinte.DataSet_Produto.First;[/color:61363d8bf9]
recebo as seguintes mensagens de erro:
[Error] uLucroAprox.pas(346): Record, object or class type required
[Error] uLucroAprox.pas(346): Missing operator or semicolon
[Fatal Error] Ortografando.dpr(63): Could not compile used unit ´ULucroAprox.pas´
e não sei como resolver o problema.
Grato pela atenção dispensada
vonirpereira@certto.com.br
Vanp
Curtir tópico
+ 0Posts
30/06/2004
Beppe
FormularioPedinte := ´uFrmLucroAprox.Form_LucroAprox´; Aí quando tento chamar: FormularioPedinte.DataSet_Produto.First;
Note que FormularioPedinte é uma string, logo, não permite seleção(campos e métodos). Declare-a como frmLucroAprox, ou algo assim.
Gostei + 0
30/06/2004
Cabelo
Form_LucroAprox.DataSet_Produto.First;
While Not Form_LucroAprox.DataSet_Produto.Eof DO
Begin
...
...
End;
espero ter ajudado..
Sem mais
Cabelo
Gostei + 0
30/06/2004
Vanp
uFrmLucroAprox.Form_LucroAprox.DataSet_Produto.First;
Mas preciso informar através de uma variável.
Preciso algo do tipo assim:
Var
FormularioPedinte : TForm;
Begin
FormularioPedinte := uFrmLucroAprox.Form_LucroAprox;
FormularioPedinte.DataSet_Produto.First;
End;
Gostei + 0
30/06/2004
Beppe
Gostei + 0
30/06/2004
Vanp
li sim seu post. Me desculpe se naum possuo o Know how como o seu.
Mas não estou conseguindo fazer funcionar da forma como preciso.
Veja parte do código que fiz com sua ajuda:
[color=blue:4bdac29b63]Function ValoresDataSetIniFin;
Var
FormularioPedinte : TForm_LucroAprox;
Begin
// aqui preciso informar o valor que FormularioPedinte receberá, onforme condições;
[color=red] If ................ then
FormularioPedinte := ..................
If ................ then
FormularioPedinte := ..................
If ................ then
FormularioPedinte := ..................[/color:4bdac29b63]
FormularioPedinte.DataSet_Produto.First;
....
....
End;[/color]
Foi assim que entendi. Mas dessa forma não resolve meu problema. Pois terei apenas um valor para FORMULARIOPEDINTE. E eu preciso informar outros valores, dependendo da situação. E esta informação preciso passar
no código que pus em vermelho.
Gostei + 0
30/06/2004
Vanp
Gostei + 0
30/06/2004
Beppe
1) Ao invés de pegar o form, pegue uma referência ao DataSet apenas.
ou
2) Faça cada formulário herdar de uma classe(esta sim descende de TForm) que contenha o DataSet.
Se vc precisar apenas o DataSet, (1) é mais viável.
Gostei + 0
30/06/2004
Vanp
obrigado pela disposição. Consegui resolver meu problema.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)