Guest PauloR Posted April 23, 2009 at 09:12 AM Report #258479 Posted April 23, 2009 at 09:12 AM Precisava da vossa ajuda / dicas para o seguinte: Necessito de fazer uma serie de listagens. A BD que uso é o Access, mas não tenho definido nenhum dataset no projecto pois faço a ligação e carrego os dados por código. Outra situação é que tanto o nome da BD de dados bem como a sua localização são variaveis mas não é problema pois carrego esta informação quando o programa arranca. A minha questão é os Reports (rdlc) que vem com o VS 2008 funcionam bem? Existem alguns exemplos de reports sem datasets? O que necessitava era quando um utilizador carrega-se num botão o programa criava a instrucção SQL e chamava o report com esses parâmetros. É possivel? Já procurei em diversos sitios na NET mas não consegui nada. ? Obrigado
jpaulino Posted April 23, 2009 at 09:31 AM Report #258494 Posted April 23, 2009 at 09:31 AM Os Microsoft Reporting Services (*.rdls) funcionam muito bem e alias só uso eles actualmente. Na minha opinião são mais rápidos e fáceis de utilizar do que os Crystal Reports. Já à questão que colocas não sei se é possivel, e até porque se desse para o fazer não era nada prático. Os datasets servem para colocar os campos no relatório e depois, através do código, define-se a datasource. É muito mais fácil assim. Podes também passar parametros e colocar no relatório muito facilmente. Podes ver alguns exemplos e mais detalhes nestes sites. http://www.gotreportviewer.com/ http://msdn.microsoft.com/en-us/library/ms251712(VS.80).aspx http://www.neodynamic.com/ND/FaqsTipsTricks.aspx?tabid=66&prodid=7&sid=30 Se tiveres dúvidas diz que eu estou farto de os usar 😛
Guest PauloR Posted April 23, 2009 at 09:47 AM Report #258500 Posted April 23, 2009 at 09:47 AM Os Microsoft Reporting Services (*.rdls) funcionam muito bem e alias só uso eles actualmente. Na minha opinião são mais rápidos e fáceis de utilizar do que os Crystal Reports. Já à questão que colocas não sei se é possivel, e até porque se desse para o fazer não era nada prático. Os datasets servem para colocar os campos no relatório e depois, através do código, define-se a datasource. É muito mais fácil assim. Podes também passar parametros e colocar no relatório muito facilmente. Podes ver alguns exemplos e mais detalhes nestes sites. http://www.gotreportviewer.com/ http://msdn.microsoft.com/en-us/library/ms251712(VS.80).aspx http://www.neodynamic.com/ND/FaqsTipsTricks.aspx?tabid=66&prodid=7&sid=30 Se tiveres dúvidas diz que eu estou farto de os usar 😛 Em primeiro lugar obrigado pela rápida resposta 😛 Em relação aos dataset com faço em virtude de usar nome de DBs e localizações variaveis? Vou dar uma leitura aos links. Obrigado, cumpts
jpaulino Posted April 23, 2009 at 10:04 AM Report #258507 Posted April 23, 2009 at 10:04 AM Isso não interessa ... depois no código vais preencher uma dataset que terá a indicação para a localização da base de dados.
Guest PauloR Posted April 23, 2009 at 10:17 AM Report #258515 Posted April 23, 2009 at 10:17 AM Isso não interessa ... depois no código vais preencher uma dataset que terá a indicação para a localização da base de dados. Ok 😛 Vou fazer uns testes. Cumpts
Guest PauloR Posted April 23, 2009 at 11:33 AM Report #258548 Posted April 23, 2009 at 11:33 AM Para começar fiz uma listagem simples e sem parametros, mostra todos os registos usando um query da BD. - Criei o report.rdlc - Criei um form e adicionei o Report Viewer Agora como e onde altero a "Connection String" por codigo ? Obrigado
Guest PauloR Posted April 23, 2009 at 03:50 PM Report #258629 Posted April 23, 2009 at 03:50 PM jpaulino É com algo parecido com isto: How to persist changes to My.Settings.ConnectionString ? Ou existe alguma opção ou método do VB.net para estas situações? Obrigado
jpaulino Posted April 26, 2009 at 11:48 PM Report #259261 Posted April 26, 2009 at 11:48 PM Queres um exemplo, é isso ? 👍 Deixa-me lá abrir um projecto
jpaulino Posted April 26, 2009 at 11:55 PM Report #259263 Posted April 26, 2009 at 11:55 PM Bem, tens aqui um exemplo que está mais ou menos modificado. Precisas de alterar para Access! - Crias a dataset com a informação que precisas (neste caso era a tabela myTable) - Colocas um reportviewer no form - Utilizas o seguinte código (depois de adaptares) Try ReportViewer1.LocalReport.ReportPath = reportPath & "\Report1.rdlc" ' Preenche a listagem do relatório Using da As New SqlDataAdapter("SELECT * FROM myTable WHERE ID=?", connString) With da.SelectCommand.Parameters .Add("@id", SqlDbType.Int).Value = 123 End With Using ds As New DataSet da.Fill(ds) ReportViewer1.LocalReport.DataSources.Add(New ReportDataSource("Nome Do DataSet", ds.Tables(0))) End Using End Using ' Um parametro definido no report Dim parameters(0) As ReportParameter parameters(0) = New ReportParameter("ID", 123) ReportViewer1.LocalReport.SetParameters(parameters) With ReportViewer1 .SetDisplayMode(DisplayMode.PrintLayout) .ZoomMode = ZoomMode.Percent .ZoomPercent = 80 End With Catch ex As Exception MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) End Try
Guest PauloR Posted April 27, 2009 at 12:00 AM Report #259266 Posted April 27, 2009 at 12:00 AM 👍 Vou fazer uns testes. Obrigado 😛
Guest PauloR Posted April 27, 2009 at 06:23 PM Report #259484 Posted April 27, 2009 at 06:23 PM Depois de alguns testes: O código disponibilizado pelo jpaulino e adaptado para o MSAccess aparentemente funciona pois não dá qualquer erro durante a execução mas ... quando o reportviewer abre aparece a mensagem de cancelado e apenas mostra os títulos, header e o valor do parâmetro http://img98.imageshack.us/img98/4269/rpt1.png http://img98.imageshack.us/img98/674/rpt2.png
jpaulino Posted April 27, 2009 at 07:19 PM Report #259498 Posted April 27, 2009 at 07:19 PM Tens de mostrar a tua adaptação!
Guest PauloR Posted April 27, 2009 at 08:32 PM Report #259542 Posted April 27, 2009 at 08:32 PM Aqui está Dim strSQL As String = _ " SELECT LBK_Record, LBK_nome1, LBK_nome2, LBK_Nome3, " & _ " FROM qryLBSimples " & _ " WHERE LBK_Record = ?" Try 'ReportViewer1.LocalReport.ReportPath = "Report1.rdlc" 'Preenche a listagem do relatório Using da As New OleDbDataAdapter(strSQL, CnnString) With da.SelectCommand.Parameters .Add("@RecID", OleDbType.Integer).Value = 25 End With Using ds As New DataSet da.Fill(ds) ReportViewer1.LocalReport.DataSources.Add(New ReportDataSource("LBKDataSet", ds.Tables(0))) End Using End Using ' Um parametro definido no report Dim parameters(0) As ReportParameter parameters(0) = New ReportParameter("RecID", 25) ReportViewer1.LocalReport.SetParameters(parameters) With ReportViewer1 .SetDisplayMode(DisplayMode.PrintLayout) .ZoomMode = ZoomMode.Percent .ZoomPercent = 80 End With Catch ex As Exception MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) End Try Me.ReportViewer1.RefreshReport()
jpaulino Posted April 27, 2009 at 08:36 PM Report #259549 Posted April 27, 2009 at 08:36 PM Parece estar correcto. E tens estes campos no dataset que criaste LBKDataSet e está definido correctamente na datasource do report ?
Guest PauloR Posted April 27, 2009 at 09:14 PM Report #259585 Posted April 27, 2009 at 09:14 PM Parece estar correcto. E tens estes campos no dataset que criaste LBKDataSet e está definido correctamente na datasource do report ? Sim, Este é o meu problema e estou farto de dar voltas e voltas e não chego lá. Acho que vou eliminar o dataset, report, form e código e fazer novamente com calma. Pode estar "algo" a baralhar isto 😛 Obrigado
esquima Posted April 27, 2009 at 09:52 PM Report #259600 Posted April 27, 2009 at 09:52 PM tens o webservice dos reportings services n tens?
jpaulino Posted April 27, 2009 at 09:57 PM Report #259602 Posted April 27, 2009 at 09:57 PM See quiseres fazer um exemplo simples e mostrar (upload) posso dar uma olhada!
esquima Posted April 27, 2009 at 09:58 PM Report #259603 Posted April 27, 2009 at 09:58 PM eu para abrir os meus reports mando por url os parametros e ja ta...n tenho de mexer mto do lado do codigo
jpaulino Posted April 27, 2009 at 10:00 PM Report #259604 Posted April 27, 2009 at 10:00 PM eu para abrir os meus reports mando por url os parametros e ja ta...n tenho de mexer mto do lado do codigo Mas é uma aplicação windows 😛
esquima Posted April 27, 2009 at 10:01 PM Report #259606 Posted April 27, 2009 at 10:01 PM xiiiii...esquece 🙂 ja andava no lado dos aspx 😛 lolololol
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now