DATA REPORT VINDO DE UM FORM
Galera, preciso de mais uma ajuda de vocÊs, vamos lá...
Meu programa como alguns jpa sabem cadastra Numeros de Patrimonios. COm a ajuda de vocês fiz o botão para somar os valores de patrimonio de um setor X, e somar quando patrimonios possuem um setor X. Ambas as informações são passadas para o mesmo label no qual se fez o código. Dali, eu já quero mandar no mesmo botão para um data report. No código eu vou explicar melhor:
Private Sub cmdrelatorio_Click()
abrebanco
[ô]Código para contar o valor total dos nips no setor Almoxarifado
Set rsdados = cnn.Execute([Ô]SELECT sum(valor) FROM CADASTRONIP where SETOR = [ô]Almoxarifado[ô][Ô])
lblvalor.Caption = IIf(IsNull(rsdados.Fields(0)), 0, rsdados.Fields(0)) [ô]Joguei este valor para o lblvalor que está no formrelatorio (onde se encontra também este botão)
[ô] Código para contar o valor total de nips cadastrados no setor Almoxarifado
Set rsdados = cnn.Execute([Ô]SELECT count(SETOR) FROM CADASTRONIP where SETOR = [ô]Almoxarifado[ô][Ô])
lblnip.Caption = IIf(IsNull(rsdados.Fields(0)), 0, rsdados.Fields(0)) [ô]Joguei este valor para o lblnip que está no formrelatorio (onde se encontra também este botão)
[ô] AGORA EU PRECISO QUE ESSES DOIS LABELS (LBLVALOR E LBLNIP) CAIA NO DATARELATORIO, que já esta montado com dois rptTEXTBOX, com seus DATAFIELD dessa forma: nip , valor (JUSTAMENTE PARA QUE CAIBA O LBLNIP E O LBLVALOR)
[ô]Pois bem, abaixo segue o código que eu fiz, que é código de datareport que eu conheço, porem é obvio que ele esta puxando do banco de dados, e não é isso que eu preciso, eu preciso que o data report puxe esses dois labels que estão no meu formrelatorio....TUDO FICARà NO MESMO BOTÃO, os labels são apenas campos ocultos para fazer a transição para o relatório, se nem isso for preciso por favor me ajudem.
[ô]Código do datareport errado
Set rsdados = New ADODB.Recordset
rsdados.Open [Ô]Select * from cadastronip where nip = [ô][Ô] & optalmoxarifao & [Ô][ô][Ô], cnn
Set datanip.DataSource = rsdados
datanip.Show
End Sub
---
Pessoal, aproveito para colocar outra duvida em pauta, é uma coisa fácil, mas que esqueci completamente, já criei meu LOGIN no programa, e queria colocar aquele código para quando eu digitar a senha, ao inves de aparece realmente os numeros, deve aparecer ******
-
Desde já agradeço.
Meu programa como alguns jpa sabem cadastra Numeros de Patrimonios. COm a ajuda de vocês fiz o botão para somar os valores de patrimonio de um setor X, e somar quando patrimonios possuem um setor X. Ambas as informações são passadas para o mesmo label no qual se fez o código. Dali, eu já quero mandar no mesmo botão para um data report. No código eu vou explicar melhor:
Private Sub cmdrelatorio_Click()
abrebanco
[ô]Código para contar o valor total dos nips no setor Almoxarifado
Set rsdados = cnn.Execute([Ô]SELECT sum(valor) FROM CADASTRONIP where SETOR = [ô]Almoxarifado[ô][Ô])
lblvalor.Caption = IIf(IsNull(rsdados.Fields(0)), 0, rsdados.Fields(0)) [ô]Joguei este valor para o lblvalor que está no formrelatorio (onde se encontra também este botão)
[ô] Código para contar o valor total de nips cadastrados no setor Almoxarifado
Set rsdados = cnn.Execute([Ô]SELECT count(SETOR) FROM CADASTRONIP where SETOR = [ô]Almoxarifado[ô][Ô])
lblnip.Caption = IIf(IsNull(rsdados.Fields(0)), 0, rsdados.Fields(0)) [ô]Joguei este valor para o lblnip que está no formrelatorio (onde se encontra também este botão)
[ô] AGORA EU PRECISO QUE ESSES DOIS LABELS (LBLVALOR E LBLNIP) CAIA NO DATARELATORIO, que já esta montado com dois rptTEXTBOX, com seus DATAFIELD dessa forma: nip , valor (JUSTAMENTE PARA QUE CAIBA O LBLNIP E O LBLVALOR)
[ô]Pois bem, abaixo segue o código que eu fiz, que é código de datareport que eu conheço, porem é obvio que ele esta puxando do banco de dados, e não é isso que eu preciso, eu preciso que o data report puxe esses dois labels que estão no meu formrelatorio....TUDO FICARà NO MESMO BOTÃO, os labels são apenas campos ocultos para fazer a transição para o relatório, se nem isso for preciso por favor me ajudem.
[ô]Código do datareport errado
Set rsdados = New ADODB.Recordset
rsdados.Open [Ô]Select * from cadastronip where nip = [ô][Ô] & optalmoxarifao & [Ô][ô][Ô], cnn
Set datanip.DataSource = rsdados
datanip.Show
End Sub
---
Pessoal, aproveito para colocar outra duvida em pauta, é uma coisa fácil, mas que esqueci completamente, já criei meu LOGIN no programa, e queria colocar aquele código para quando eu digitar a senha, ao inves de aparece realmente os numeros, deve aparecer ******
-
Desde já agradeço.
Não dá para usar um RptTextbox sem um campo definido no DataSource do Report. Você pode criar o campo com um select e pegar o total com um rptFunction. Veja como coloquei neste tópico
Se você quer mesmo usar os valores guardados nas labels do formulário, você vai ter que inserir os rptLabels no relatório. Esse exemplo pega o valor da Label1 do Frm1 e [Ô]joga[Ô] na rptLabel de nome Labe3 e está na Section5 do Relatorio de nome Rpt
Se você quer mesmo usar os valores guardados nas labels do formulário, você vai ter que inserir os rptLabels no relatório. Esse exemplo pega o valor da Label1 do Frm1 e [Ô]joga[Ô] na rptLabel de nome Labe3 e está na Section5 do Relatorio de nome Rpt
Rpt.Sections([Ô]Section5[Ô]).Controls([Ô]Label3[Ô]).Caption = Frm1.Label1.Caption
Ainda não deu certo galera \=
O mais próximo que tinha chegado era?
With datarelatorio
rpttxtsetor = formrelatorio.lblsetor.Caption
rpttxtvalor = formrelatorio.lblvalor.Caption
rpttxtnip = formrelatorio.lblnip.Caption
End With
Ai da o erro INVALID DATA SOURCE \=
Sei nem por onde começar!
O mais próximo que tinha chegado era?
With datarelatorio
rpttxtsetor = formrelatorio.lblsetor.Caption
rpttxtvalor = formrelatorio.lblvalor.Caption
rpttxtnip = formrelatorio.lblnip.Caption
End With
Ai da o erro INVALID DATA SOURCE \=
Sei nem por onde começar!
Grava esses valores em uma tabela temporária que já esteja ligada ao Report... ??? Não dá certo?
Tem que ser rptLabel e não RptText e conforme coloquei :
Posta o fonte que ajustamos
Rpt.Sections([Ô]Section5[Ô]).Controls([Ô]Label3[Ô]).Caption = Frm1.Label1.Caption
Posta o fonte que ajustamos
Meu código INTEIRO ficou assim:
abrebanco
Set rsdados = cnn.Execute([Ô]SELECT sum(valor) FROM CADASTRONIP where SETOR = [ô]Almoxarifado[ô][Ô]) [ô]SOMOU TODOS OS VALORES DA TABELA CADASTRONIP DO SETOR ALMOXARIFADO
lblvalor.Caption = IIf(IsNull(rsdados.Fields(0)), 0, rsdados.Fields(0)) [ô]e jogou no label lblbalor, que não salva em lugar nenhum, é apenas um label no FORMRELATORIO
Set rsdados = cnn.Execute([Ô]SELECT count(SETOR) FROM CADASTRONIP where SETOR = [ô]Almoxarifado[ô][Ô]) [ô]CONTOU NIPS TEM CADASTRADOS NA TABELA CADASTRONIP DO SETOR ALMOXARIFADO
lblnip.Caption = IIf(IsNull(rsdados.Fields(0)), 0, rsdados.Fields(0)) [ô]e jogou no label lblnip, que não salva em lugar nenhum, é apenas um label no FORMRELATORIO
[ô]ESSE é O CODIGO QUE VOCÊ ME PASSARAM E QUE OCASIONA ERRO
rpt.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblsetor[Ô]).Caption = formrelatorio.lblsetor.Caption [ô]O NAME DO LABEL DO DATARELATORIO é RPTLBLSETOR
rpt.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblnip[Ô]).Caption = formrelatorio.lblnip.Caption [ô]O NAME DO LABEL DO DATARELATORIO é RPTLBNIP
datarelatorio.Show
END SUB
é isso pessoal, e ele da o erro no código que eu n sei fazer:
rpt.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblsetor[Ô]).Caption = formrelatorio.lblsetor.Caption
rpt.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblnip[Ô]).Caption = formrelatorio.lblnip.Caption
ERRO IDIOTA:
objeto requerido
O problema é que os nomes etão batendo, não entendo o porque do objeto requerido....
AI PRA FAZER UM TESTE EU MUDEI O CÓDIGO FINAL PARA:
datareport.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblsetor[Ô]).Caption = formrelatorio.lblsetor.Caption
datareport.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblnip[Ô]).Caption = formrelatorio.lblnip.Caption
E o erro foi: INVALID DATA SOURCE
abrebanco
Set rsdados = cnn.Execute([Ô]SELECT sum(valor) FROM CADASTRONIP where SETOR = [ô]Almoxarifado[ô][Ô]) [ô]SOMOU TODOS OS VALORES DA TABELA CADASTRONIP DO SETOR ALMOXARIFADO
lblvalor.Caption = IIf(IsNull(rsdados.Fields(0)), 0, rsdados.Fields(0)) [ô]e jogou no label lblbalor, que não salva em lugar nenhum, é apenas um label no FORMRELATORIO
Set rsdados = cnn.Execute([Ô]SELECT count(SETOR) FROM CADASTRONIP where SETOR = [ô]Almoxarifado[ô][Ô]) [ô]CONTOU NIPS TEM CADASTRADOS NA TABELA CADASTRONIP DO SETOR ALMOXARIFADO
lblnip.Caption = IIf(IsNull(rsdados.Fields(0)), 0, rsdados.Fields(0)) [ô]e jogou no label lblnip, que não salva em lugar nenhum, é apenas um label no FORMRELATORIO
[ô]ESSE é O CODIGO QUE VOCÊ ME PASSARAM E QUE OCASIONA ERRO
rpt.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblsetor[Ô]).Caption = formrelatorio.lblsetor.Caption [ô]O NAME DO LABEL DO DATARELATORIO é RPTLBLSETOR
rpt.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblnip[Ô]).Caption = formrelatorio.lblnip.Caption [ô]O NAME DO LABEL DO DATARELATORIO é RPTLBNIP
datarelatorio.Show
END SUB
é isso pessoal, e ele da o erro no código que eu n sei fazer:
rpt.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblsetor[Ô]).Caption = formrelatorio.lblsetor.Caption
rpt.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblnip[Ô]).Caption = formrelatorio.lblnip.Caption
ERRO IDIOTA:
objeto requerido
O problema é que os nomes etão batendo, não entendo o porque do objeto requerido....
AI PRA FAZER UM TESTE EU MUDEI O CÓDIGO FINAL PARA:
datareport.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblsetor[Ô]).Caption = formrelatorio.lblsetor.Caption
datareport.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblnip[Ô]).Caption = formrelatorio.lblnip.Caption
E o erro foi: INVALID DATA SOURCE
Tem que ser no evento Initialize do DataReport
Click no relatório e click em qualquer na área de qualquer section do relatorio. Selecione o evento correto. Datarelatório é o nome do seu relatório. fica mais ou menos assim:
Click no relatório e click em qualquer na área de qualquer section do relatorio. Selecione o evento correto. Datarelatório é o nome do seu relatório. fica mais ou menos assim:
Private Sub DataReport_Initialize()
datarelatorio.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblsetor[Ô]).Caption = formrelatorio.lblsetor.Caption
datarelatorio.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblnip[Ô]).Caption = formrelatorio.lblnip.Caption
End Sub
Agora sim amigos, o que o ROBIU disse é verdade
No evento INITIALIZE do DATAREPORT o código era:
datarelatorio.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblsetor[Ô]).Caption = formrelatorio.lblsetor.Caption
datarelatorio.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblnip[Ô]).Caption = formrelatorio.lblnip.Caption
Já no botão de gerar o relatório o código estava:
datarelatorio.Show
E na verdade é:
abrebanco
Set datarelatorio.DataSource = rsdados
datarelatorio.Show
Por isso que estava dando INVALID DATA SOURCE!
Muito obrigado amigos, me ajudaram mais uma vez, abraçoss!
-- tópico fechado --
No evento INITIALIZE do DATAREPORT o código era:
datarelatorio.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblsetor[Ô]).Caption = formrelatorio.lblsetor.Caption
datarelatorio.Sections([Ô]Section1[Ô]).Controls([Ô]rptlblnip[Ô]).Caption = formrelatorio.lblnip.Caption
Já no botão de gerar o relatório o código estava:
datarelatorio.Show
E na verdade é:
abrebanco
Set datarelatorio.DataSource = rsdados
datarelatorio.Show
Por isso que estava dando INVALID DATA SOURCE!
Muito obrigado amigos, me ajudaram mais uma vez, abraçoss!
-- tópico fechado --
Tópico encerrado , respostas não são mais permitidas