CRYSTAL REPORTS COM 2 CLASSES

MAXCIM 29/05/2015 14:13:28
#447179
olá amigos tudo bem?
uso um exemplo daqui do VBmania de passar dados para o Crystal reports usando classe. Funciona perfeitamente segue modelo
Dim _ListEtiquetas As New List(Of Class_List)

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
For i = 0 To DataGridView1.Rows.Count - 1
_ListEtiquetas.Add(New Class_List)
_ListEtiquetas.Item(i).Nome = DataGridView1.Rows(i).Cells(0).Value
_ListEtiquetas.Item(i).Idade = DataGridView1.Rows(i).Cells(1).Value
Next
Dim rpt As New CrystalReport1
rpt.SetDataSource(_ListEtiquetas.ToList)

FRM_VIEW.CrystalReportViewer1.ReportSource = rpt
FRM_VIEW.Show()
End Sub


Como faço para preencher o reportsource com duas classes ou mais?
no meu caso tenho a classe cliente, classe produto e classe faturas.


desde já agradeço
MAXCIM 03/06/2015 13:37:03
#447351
usei o modelo que peguei aqui no site, http://vbmania.com.br/index.php?modulo=detalhe&id=9340

funciona perfeitamente, porem com apenas um objeto list. e para passar mais objetos?
MESTRE 03/06/2015 15:03:37
#447354
Fala compadre guarulhense, essa era minha duvida também..

to utilizando DataSet e DataTable e estou me dando bem por enquanto...

ja tentou utilizar dataset com datatable?
MAXCIM 03/06/2015 15:16:30
#447355
Mestre, uso sim, 99,99% dos relatórios são usando Dataset, porem tenho alguns casos de dados desconectados... leitura de XML e dados montados OFFline que já estão montados na classe, ai seria mais útil repassar a própria classe para o Crystal.


att
Max
MESTRE 03/06/2015 16:13:26
#447358
Resposta escolhida
Citação:

Use o DataSource propriedade para especificar a fonte de valores para vincular a um controle de listagem de dados. Uma fonte de dados deve ser uma coleção que implementa um a System.Collections.IEnumerable interface (como System.Data.DataView, System.Collections.ArrayList, ou System.Collections.Generic.List(Of T)) ou o IListSource interface para vincular a um controle derivado de BaseDataList classe. Ao definir o DataSource propriedade, você deve escrever manualmente o código para executar ligação de dados.
Se a fonte de dados especificado pelo DataSource propriedade contém várias fontes de dados, use o DataMember propriedade para especificar a fonte específica para vincular ao controle. Por exemplo, se você tiver um System.Data.DataSet de objeto com várias tabelas, você deve especificar qual tabela para vincular ao controle. Depois de especificar a fonte de dados, use o DataBind método para vincular a fonte de dados ao controle.


Como alternativa, você pode usar o DataSourceID propriedade para vincular automaticamente uma fonte de dados representada por um controle de fonte de dados. Ao definir o DataSourceID propriedade, os dados listando controle automaticamente vincula ao controle de fonte de dados especificado. Você não precisará escrever um código que explicitamente chamadas a DataBind método.



Link: https://msdn.microsoft.com/pt-br/library/system.web.ui.webcontrols.basedatalist.datasource%28v=vs.110%29.aspx
MESTRE 08/06/2015 07:37:15
#447501
Não consegui encontrar.. tentei procurar como utilizar datasourceid e não encontrei

justamente por isso estou utilizando datasets com datatables, porém seria de grande valia saber como utilizar objetos list com várias classes.
NILSONTRES 08/06/2015 10:43:03
#447505
Então pessoal,
Criei esse método de utilizar list para fugir dos datasets que para min eram terríveis a sua atualização a cada campo inserido ou alterado na tabela do banco a que se referia o dataset.
Por incrível que pareça nunca precisei utilizar dois list, isso devido a forma que preparo meus sistemas, já antevendo coisas e nunca deixando a necessidade de se cruzar
tabelas para relatórios.
Por isso nunca precisei, mas confesso que realmente isso é muito interessante, e não quer dizer que nunca vou precisar.
Por isso tentei achar uma forma e também não encontrei, na verdade meu tempo esta curto demais, inclusive, queria até dar uma ajuda no topico do Sat Fiscal, mas não tenho tempo, em fim, no pouco tempo que tive não encontrei uma solução para isso.
Talvez a criação instantânea de list, inserindo a cada necessidade os campos desejados e preenchendo eles com os campos selecionados na consulta sql, pensem na ideia.
MESTRE 09/06/2015 07:24:12
#447529
Acho que assim como disse NILSONTRES deve dar certo..
Tópico encerrado , respostas não são mais permitidas