DATA REPORT - O RELATORIO SAI SEMPRE O MESMO.
Pessoal, boa tarde.
Sou novo no site e programo tem pouco tempo. Se eu postar algo errado me avisem por favor.
Preciso de uma ajuda, estou usando vb6 e fiz um relatório usando o Data Report, na tela de seleção eu faço a seleção e mando imprimir..sai o relatório normal, aà fecho o relatório o programa continua na tela de seleção então eu mudo um item da seleção e peço a impressão, o relatório sai igual ao anterior..é como se ele ficasse na memória e não atualizasse de acordo com minha nova seleção...como faço para fazer com que ele atualize e saia com os novos dados conforme a seleção?
Valeu...obrigado.
Sou novo no site e programo tem pouco tempo. Se eu postar algo errado me avisem por favor.
Preciso de uma ajuda, estou usando vb6 e fiz um relatório usando o Data Report, na tela de seleção eu faço a seleção e mando imprimir..sai o relatório normal, aà fecho o relatório o programa continua na tela de seleção então eu mudo um item da seleção e peço a impressão, o relatório sai igual ao anterior..é como se ele ficasse na memória e não atualizasse de acordo com minha nova seleção...como faço para fazer com que ele atualize e saia com os novos dados conforme a seleção?
Valeu...obrigado.
Fenando, boa tarde
Como você alimenta o relatório que você criou do Data Repot?
Favor postar seu código para interpretação.
Att.,
Eliseu
Como você alimenta o relatório que você criou do Data Repot?
Favor postar seu código para interpretação.
Att.,
Eliseu
Castelo, blz?
Cara..o código é um pouco grande, mas deixa eu tentar esclarecer...criei um DataEnvironment onde tenho Paciente como principal e resultados como filhos..aà eu faço select no banco e grava em tabelas temporárias que estão nesta DataEnvironment , beleza..fiz os testes..as tabelas temporárias do DataEnvironment atualizam..estão com os dados corretos e atualizados, mas o data report traz sempre o mesmo relatório...é como se não fizesse um refresh entende? Se eu tiro um laudo do paciente 1 ele sai normal...aà volto pra tela de seleção e qualquer outro paciente que eu pedir ele sai o laudo sempre daquele 1 que tirei pela primeira vez...se eu sair do programa e entrar novamente...e pedir o laudo de outro ele sai..porém se eu pedir novamente de outro..sai sempre deste...
Valeu meu amigo.
Att.
Fernando
Cara..o código é um pouco grande, mas deixa eu tentar esclarecer...criei um DataEnvironment onde tenho Paciente como principal e resultados como filhos..aà eu faço select no banco e grava em tabelas temporárias que estão nesta DataEnvironment , beleza..fiz os testes..as tabelas temporárias do DataEnvironment atualizam..estão com os dados corretos e atualizados, mas o data report traz sempre o mesmo relatório...é como se não fizesse um refresh entende? Se eu tiro um laudo do paciente 1 ele sai normal...aà volto pra tela de seleção e qualquer outro paciente que eu pedir ele sai o laudo sempre daquele 1 que tirei pela primeira vez...se eu sair do programa e entrar novamente...e pedir o laudo de outro ele sai..porém se eu pedir novamente de outro..sai sempre deste...
Valeu meu amigo.
Att.
Fernando
Então Fernando,
Eu estou desenvolvendo um sistema de bibliotecas e um para administração escolar. Havia cogitado utilizar DataEnvironment, porém desisti, pois pela quantidade de relatórios que utilizo, procurei me informar sobre relatórios do Data Report sem DataEnvironment e achei um material bom do Marcoratti.
E assim não tenho problemas com os relatórios no que diz respeito a atualização, pois a cada novo pedido de impressão são feitas novas consultas que alimentam o datareport.
Vamos ver se alguém tenha alguma idéia boa para ajudar.
Att.,
Eliseu
Eu estou desenvolvendo um sistema de bibliotecas e um para administração escolar. Havia cogitado utilizar DataEnvironment, porém desisti, pois pela quantidade de relatórios que utilizo, procurei me informar sobre relatórios do Data Report sem DataEnvironment e achei um material bom do Marcoratti.
E assim não tenho problemas com os relatórios no que diz respeito a atualização, pois a cada novo pedido de impressão são feitas novas consultas que alimentam o datareport.
Vamos ver se alguém tenha alguma idéia boa para ajudar.
Att.,
Eliseu
Bom sem o código que cria os relatórios fica meio difÃcil, veja se o problema esta em algum Loop
Tenta isso no evento Terminate do Datareport:
ou isso
Private Sub DataReport_Terminate()
Set NomeDoSeuDataReport = Nothing
End Sub
ou isso
Private Sub DataReport_Terminate()
Unload NomeDoSeuDataReport
End Sub
Roberto
Agradeço, mas não deu certo...é como se o relatório estivesse estampado já e ele mostra sempre o mesmo...não entendo...só consigo mudar os dados do relatório quando saio totalmente do projeto e entro novamente...aà ele faz certo..mas apenas na primeira vez...para eu conseguir mudar tenho que sair novamente do projeto...
Tentei dar refresh no rpt mas não deu...é assim...o dataenvironment está atualizado...atualiza certinho a cada mudança de seleção que faço..somente o datareport não atualiza..trás sempre os mesmos dados no relatório...vou continuar tentando..vou tentar extrair só a parte que interessa de código e tentar postar..mas se alguém puder me ajudar com estas informações..agradeço muito...
Valeu..
Fernando
Agradeço, mas não deu certo...é como se o relatório estivesse estampado já e ele mostra sempre o mesmo...não entendo...só consigo mudar os dados do relatório quando saio totalmente do projeto e entro novamente...aà ele faz certo..mas apenas na primeira vez...para eu conseguir mudar tenho que sair novamente do projeto...
Tentei dar refresh no rpt mas não deu...é assim...o dataenvironment está atualizado...atualiza certinho a cada mudança de seleção que faço..somente o datareport não atualiza..trás sempre os mesmos dados no relatório...vou continuar tentando..vou tentar extrair só a parte que interessa de código e tentar postar..mas se alguém puder me ajudar com estas informações..agradeço muito...
Valeu..
Fernando
Antes de abrir o Datareport
Tambem teste o código anterior com o nome do dataenviromment
Unload NomedoDataEnviromment
Tambem teste o código anterior com o nome do dataenviromment
Sei lá... mas vê se ajuda
achei em um forum da internet http://www.xtremevbtalk.com/archive/index.php/t-130623.html
extrai a parte que interessa:
With DataEnv
If .rsCustomer.State = 1 Then .rsCustomer.Close
If .Cn.State = 1 Then .Cn.Close
Set DataReport1.DataSource = Nothing
DataReport1.DataMember = [Ô][Ô]
x
x
x
x
x
x
x
DataReport1.Refresh
DataReport1.Show vbModal
Unload DataEnv
End With
o código original é esse
Private Sub cmdPrint_Click()
Dim i As Integer
With DataEnv
If .rsCustomer.State = 1 Then .rsCustomer.Close
If .Cn.State = 1 Then .Cn.Close
Set DataReport1.DataSource = Nothing
DataReport1.DataMember = [Ô][Ô]
.Cn.CursorLocation = adUseClient
.Cn.ConnectionString = [Ô]Provider=MSDataShape.1;Persist Security Info=False;Data Source=[Ô] + DB_Name + [Ô];Data Provider=MICROSOFT.JET.OLEDB.4.0[Ô]
.Cn.Open
.rsCustomer.Source = [Ô]SHAPE {SELECT * FROM Customer WHERE ID=[Ô] + CStr(CustomerID) + [Ô]} AS Customer APPEND ({SELECT * FROM Appointment ORDER BY Datum DESC} AS Appointment RELATE [ô]ID[ô] TO [ô]CustomerID[ô]) AS Appointment[Ô]
.rsCustomer.ActiveConnection = .Cn
.rsCustomer.Open
End With
With DataReport1
Set .DataSource = Nothing
.DataMember = [Ô][Ô]
Set DataReport1.DataSource = DataEnv.rsCustomer
With .Sections([Ô]Customer_Header[Ô]).Controls
For i = 1 To .Count
If TypeOf .Item(i) Is RptTextBox Or _
TypeOf .Item(i) Is RptFunction Then
.Item(i).DataMember = [Ô][Ô]
End If
Next i
End With
With .Sections([Ô]Appointmenten_Detail[Ô]).Controls
For i = 1 To .Count
If TypeOf .Item(i) Is RptTextBox Or _
TypeOf .Item(i) Is RptFunction Then
.Item(i).DataMember = [Ô]Appointment[Ô]
End If
Next i
End With
End With
DataReport1.Refresh
DataReport1.Show vbModal
Unload DataEnv
End Sub
Pesquise
achei em um forum da internet http://www.xtremevbtalk.com/archive/index.php/t-130623.html
extrai a parte que interessa:
With DataEnv
If .rsCustomer.State = 1 Then .rsCustomer.Close
If .Cn.State = 1 Then .Cn.Close
Set DataReport1.DataSource = Nothing
DataReport1.DataMember = [Ô][Ô]
x
x
x
x
x
x
x
DataReport1.Refresh
DataReport1.Show vbModal
Unload DataEnv
End With
o código original é esse
Private Sub cmdPrint_Click()
Dim i As Integer
With DataEnv
If .rsCustomer.State = 1 Then .rsCustomer.Close
If .Cn.State = 1 Then .Cn.Close
Set DataReport1.DataSource = Nothing
DataReport1.DataMember = [Ô][Ô]
.Cn.CursorLocation = adUseClient
.Cn.ConnectionString = [Ô]Provider=MSDataShape.1;Persist Security Info=False;Data Source=[Ô] + DB_Name + [Ô];Data Provider=MICROSOFT.JET.OLEDB.4.0[Ô]
.Cn.Open
.rsCustomer.Source = [Ô]SHAPE {SELECT * FROM Customer WHERE ID=[Ô] + CStr(CustomerID) + [Ô]} AS Customer APPEND ({SELECT * FROM Appointment ORDER BY Datum DESC} AS Appointment RELATE [ô]ID[ô] TO [ô]CustomerID[ô]) AS Appointment[Ô]
.rsCustomer.ActiveConnection = .Cn
.rsCustomer.Open
End With
With DataReport1
Set .DataSource = Nothing
.DataMember = [Ô][Ô]
Set DataReport1.DataSource = DataEnv.rsCustomer
With .Sections([Ô]Customer_Header[Ô]).Controls
For i = 1 To .Count
If TypeOf .Item(i) Is RptTextBox Or _
TypeOf .Item(i) Is RptFunction Then
.Item(i).DataMember = [Ô][Ô]
End If
Next i
End With
With .Sections([Ô]Appointmenten_Detail[Ô]).Controls
For i = 1 To .Count
If TypeOf .Item(i) Is RptTextBox Or _
TypeOf .Item(i) Is RptFunction Then
.Item(i).DataMember = [Ô]Appointment[Ô]
End If
Next i
End With
End With
DataReport1.Refresh
DataReport1.Show vbModal
Unload DataEnv
End Sub
Pesquise
Pessoal...bom dia!!!!
Grande Roberto Martins....grande mesmo...deu certo...
Bastou dar um unload no dataenvironment antes de chamar o data report.
Agradeço imensamente a ajuda de todos e estarei por aqui...apesar da ainda pouca experiência...no que eu puder ajudar estarei tentando..
Valeuuu...abraços...
Grande Roberto Martins....grande mesmo...deu certo...
Bastou dar um unload no dataenvironment antes de chamar o data report.
Agradeço imensamente a ajuda de todos e estarei por aqui...apesar da ainda pouca experiência...no que eu puder ajudar estarei tentando..
Valeuuu...abraços...
Tópico encerrado , respostas não são mais permitidas