RELATÓRIOS LENTOS!

MESTRE 06/05/2015 08:29:52
#446403
Citação:

vejo q praticamente não existe diferenças a não ser a exibição em si do form, realmente não sei se seria motivo de erros do tipo, na hora de instanciar ta 6 por meia dúzia...



Valeuuuuuuuuuuuuu Nicko.. ta funcionando perfeitamenteeeee cara agora, o problema tava na forma de chamar o relatório mesmo, testei dessa forma que você me mandou e funcionou! obrigado!...

Agora deixa eu te perguntar uma coisa, quando eu quiser fazer um relatorio que mistura grid com dados normais de registro unico, por exemplo Nome,cpf, telefone
  rpt.SetDataSource(_ListaCorrecao.ToList)


O meu DataSource teria de ser rpt.SetDataSource(_ListaCorrecao) ??
ai meu código ficaria:
    _ListaCorrecao.Clear()

For i = 0 To gridCorrecao.Rows.Count - 1
_ListaCorrecao.Add(New cls_Lista)
_ListaCorrecao.Item(i).Titulo = gridCorrecao.Rows(i).Cells(1).Value
_ListaCorrecao.Item(i).Cabecalho_Esq = gridCorrecao.Rows(i).Cells(2).Value
_ListaCorrecao.Item(i).Cabecalho_Dir = gridCorrecao.Rows(i).Cells(3).Value
_ListaCorrecao.Item(i).Descr_Esq = gridCorrecao.Rows(i).Cells(4).Value
_ListaCorrecao.Item(i).Descr_Dir = gridCorrecao.Rows(i).Cells(5).Value
Next

_ListaCorrecao.Nome = txtNome.text
_ListaCorrecao.CPF = txtCpf.text
_ListaCorrecao.telefone = txtTelefone.text


ta correto?? ou é melhor criar um DataTable?


LUIS.HERRERA 06/05/2015 08:57:33
#446405
Mestre se você fizer assim, somente o último registro do _ListaCorrecao terá os dados nome, cpf e telefone. O correto é você incluir isso dentro do Loop também, pois assim todos os registros terão esses dados, e o relatório será preenchido.
Não sei se jogando apenas no primeiro registro também funcionaria, teria de fazer teste para não ter todos os dados repetidos, mas se fizer uma quebra de página por nome ou cpf, obrigatoriamente deveria ter os dados em todos os registros, pois pode ter mais de um cpf, não sei se sua pesquisa permite isso.

se for colocar só no primeiro registro, basta inverte as 3 últimas linhas do fim para antes do for next.
NILSONTRES 06/05/2015 09:25:37
#446408
Citação:

ta correto?? ou é melhor criar um DataTable?


Mestre, essa forma que postei, é exatamente para não ter que criar datatable, sofri muito com isso, nesse caso ao invés de vc prencher o list com um Grid, que só foi para exemplificar como preencher um list, vc preenche com os dados de seu banco.
Eu tenho uma função generica para preencher com qualquer query, ela te retorna o arrey.

Public _ListDoutores As New List(Of Tab_nag_doutores)
Public Function List(ByVal StrSql As String) As List(Of Tab_nag_doutores)
Try
_ListDoutores.Clear()
Dim i As Integer = 0
If SQL_NAG.SEL(StrSql, False) = True Then[ô]aqui eu utilizo classes de conexão, mas aqui vai a query de consulta
While SQL_NAG.MY_RE.Read()[ô]while nos registros do banco
_ListDoutores.Add(New Tab_nag_doutores)
_ListDoutores.Item(i).Codigo = SQL_NAG.MY_RE.Item([Ô]Codigo[Ô]).ToString
_ListDoutores.Item(i).Nome = SQL_NAG.MY_RE.Item([Ô]Nome[Ô]).ToString
_ListDoutores.Item(i).fone = SQL_NAG.MY_RE.Item([Ô]fone[Ô]).ToString
_ListDoutores.Item(i).Celular = SQL_NAG.MY_RE.Item([Ô]Celular[Ô]).ToString
_ListDoutores.Item(i).Data_Cad = SQL_NAG.MY_RE.Item([Ô]Data_Cad[Ô]).ToString
_ListDoutores.Item(i).Percent_Com = SQL_NAG.MY_RE.Item([Ô]Percent_Com[Ô]).ToString
_ListDoutores.Item(i).Tipo_Com = SQL_NAG.MY_RE.Item([Ô]Tipo_Com[Ô]).ToString
_ListDoutores.Item(i).Usuario = SQL_NAG.MY_RE.Item([Ô]Usuario[Ô]).ToString
_ListDoutores.Item(i).Maquina = SQL_NAG.MY_RE.Item([Ô]Maquina[Ô]).ToString
_ListDoutores.Item(i).Stamp = SQL_NAG.MY_RE.Item([Ô]Stamp[Ô]).ToString
i += 1
End While
SQL_NAG.FECHA_SEL()
Return _ListDoutores.ToList
Else
Return Nothing
End If
Catch
MsgBox(Err.GetException.StackTrace, MsgBoxStyle.Critical, [Ô]AVISO[Ô])
Return Nothing
End Try

End Function


[ô]Abaixo, basicamente a classe
Public Class Tab_nag_doutores
Public Property Codigo As Integer
Public Property Nome As String
Public Property fone As String
Public Property Celular As String
Public Property Data_Cad As Date
Public Property Percent_Com As Decimal
Public Property Tipo_Com As Integer
Public Property Usuario As Integer
Public Property Maquina As String
Public Property Stamp As DateTime
End Class
NICKOSOFT 06/05/2015 09:27:20
#446409
é mestre não sei, nunca tentei usar um list como source do relatório, a forma q aprendi e me viro é alimentar aquela dataset, mas acredito q o list estando preenchido ele puxe as informações, seria preciso fazer alguns testes para ver....o pessoal passou varias dicas de como buscar dados, creio q funcione...
MESTRE 07/05/2015 07:26:08
#446442
Citação:

Mestre se você fizer assim, somente o último registro do _ListaCorrecao terá os dados nome, cpf e telefone. O correto é você incluir isso dentro do Loop também, pois assim todos os registros terão esses dados, e o relatório será preenchido.
Não sei se jogando apenas no primeiro registro também funcionaria, teria de fazer teste para não ter todos os dados repetidos, mas se fizer uma quebra de página por nome ou cpf, obrigatoriamente deveria ter os dados em todos os registros, pois pode ter mais de um cpf, não sei se sua pesquisa permite isso.

se for colocar só no primeiro registro, basta inverte as 3 últimas linhas do fim para antes do for next.



Entendi, muito obrigado!! no caso foi um exemplo e a pesquisa seria 1 campo só por isso tirei fora do loop.. seria um dado tipo [Ô]Nome[Ô] só vai nome de uma pessoa sempre a cada relatório por exemplo hehe..


Citação:

é mestre não sei, nunca tentei usar um list como source do relatório, a forma q aprendi e me viro é alimentar aquela dataset, mas acredito q o list estando preenchido ele puxe as informações, seria preciso fazer alguns testes para ver....o pessoal passou varias dicas de como buscar dados, creio q funcione...



Então vou fazer por DataSet também hehe..

Citação:

Mestre, essa forma que postei, é exatamente para não ter que criar datatable, sofri muito com isso, nesse caso ao invés de vc prencher o list com um Grid, que só foi para exemplificar como preencher um list, vc preenche com os dados de seu banco.
Eu tenho uma função generica para preencher com qualquer query, ela te retorna o arrey.



Muito legal o jeito que você faz hehe.. entendi seu exemplo muito bom obrigado!!

Queria agradecer o pessoal que me ajudou aí, queria poder finalizar o tópico com a resposta de todos más só da pra ser um..

Agradeço aí pessoal!! obrigado!
Página 3 de 3 [25 registro(s)]
Tópico encerrado , respostas não são mais permitidas