Inquiridor
Criar Relatorio sem Dataset

Pergunta
-
Olá, o sistema que estou trabalhando usa toda a conexão via codigo, pegando os dados de um txt porque o banco pode mudar de local em rede, agora que fui fazer o relatorio só vejo aulas via dataset onde tenho que informar o ip ou localhost, como faço para pegar os dados de conexão via codigo?
Todas as Respostas
-
Boa noite.
Com certeza tem como fazer sem dataset.
Com crystal reports fiz muitas vezes.
Porém com dataset é muito mais fácil, especialmente se estiver utilizando o report viewer.
MARIANO1776
- Sugerido como Resposta Mariano1776 domingo, 8 de setembro de 2019 23:04
-
Desculpe a demora!
Então, como faço para criar uma conexão com o dataset que eu possa alterar o caminho via codigo? Por exemplo fiz toda minha conexão do data set como servidor mysql local, então quando a maquina estiver em rede tenho qu mudar essa configuração do dataset para a rede, eu faço isso via codigo exemplo
MySqlConnection ConectarBanco = new MySqlConnection(DADOS.Dados_Conexao);
onde "dados_conexao" é minha string com o caminho do banco
como faço para alterar a conexao do dataset para essa string, em tempo de execução?
Espero que tenha entendido
-
Boa tarde.
Segue alguns fragmentos do meu código.
Está em asp.net vb.
Faz tempo que não mexo e não me lembro de alguns detalhes da conexão.
Veja este link:
http://www.macoratti.net/10/09/rptv_rd1.htm
http://www.macoratti.net/aspn_grv.htm
Case "Gerar_Relatório" Dim DS As New System.Data.DataSet If BD.Gera_Relatórios(DS, lbl_Evento.Text.Substring(0, 3), "Credenciamento", "") = -1 Then Mensagem("Erro ao gerar relatório.") : Exit Sub Session("DS") = DS Page.ClientScript.RegisterClientScriptBlock(Me.Page.GetType(), "Relatório", "window.open('rel.aspx','_blank','width=800');", True) End Select Public Shared Function Gera_Relatórios(ByRef DS As DataSet, ByVal Evento As Integer, ByVal Str_Relatório As String, ByVal Condição As String) As Integer Dim CONN As MySqlConnection CONN = New MySqlConnection(str_connectionstring) Dim CMD As MySqlCommand = CONN.CreateCommand Dim strSql As String Select Case Str_Relatório Case "Credenciamento" CMD.Parameters.Add(New MySqlParameter("@evento", Evento)) Dim da As MySqlDataAdapter = New MySqlDataAdapter(CMD) Try strSql = "Select dados_pessoais.nome as Nome, dados_pessoais.cpf as CPF, dados_pessoais.data_nascimento as Data_Nascimento, dados_pessoais.cargo as Cargo, dados_pessoais.foto as Foto FROM dados_pessoais inner join credenciamento on dados_pessoais.id_dados_pessoais = credenciamento.id_dados_pessoais where credenciamento.evento = @evento order by dados_pessoais.nome" CMD.CommandText = strSql da = New MySqlDataAdapter(CMD) da.Fill(DS, "Cadastro") da.Dispose() Gera_Relatórios = 1 Catch ex As Exception Gera_Relatórios = -1 End Try
Imports Microsoft.Reporting.WebForms
Partial Class rel
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Session("Página") <> "cad_eventos" AndAlso Session("Página") <> "Países" Then If Session("Evento") = "" OrElse Session("Operador") = "" Then Response.Redirect("~/web")
If Not IsPostBack Then
Try
ReportViewer1.Reset()
'define o modo Local como o processamento para o ReportViewer
ReportViewer1.ProcessingMode = ProcessingMode.Local
'Cria uma fonte de dados no relatório para o dataset
Dim ds_Rpt As New ReportDataSource()
If Session("Página") = "credenciamento" Then
ReportViewer1.LocalReport.ReportPath = "App_Code/Credenciamento.rdlc"
'define o nome do datasource
ds_Rpt.Name = "DataSet_Cadastro"
ElseIf Session("Página") = "cad_eventos" Then
ReportViewer1.LocalReport.ReportPath = "App_Code/Eventos.rdlc"
'define o nome do datasource
ds_Rpt.Name = "DataSet_Eventos"
ElseIf Session("Página") = "Países" Then
ReportViewer1.LocalReport.ReportPath = "App_Code/Paises.rdlc"
'define o nome do datasource
ds_Rpt.Name = "DataSet_Paises"
End If
'usa primeira tabela do dataset
ds_Rpt.Value = Session("DS").Tables(0)
'atribui o datasource ao relatorio
ReportViewer1.LocalReport.DataSources.Add(ds_Rpt)
ReportViewer1.DataBind()
Dim warnings As Warning() = Nothing
Dim streamids As String() = Nothing
Dim mimeType As String = Nothing
Dim encoding As String = Nothing
Dim fileNameExtension As String = Nothing
Dim exportBytes() As Byte = ReportViewer1.LocalReport.Render("PDF", Nothing, mimeType, encoding, fileNameExtension, streamids, warnings)
HttpContext.Current.Response.Buffer = True
HttpContext.Current.Response.Clear()
HttpContext.Current.Response.ContentType = mimeType
HttpContext.Current.Response.AddHeader("content-disposition", ("inline; filename=ExportedReport." + fileNameExtension))
HttpContext.Current.Response.BinaryWrite(exportBytes)
HttpContext.Current.Response.Flush()
HttpContext.Current.Response.End()
Catch
If (Not ClientScript.IsStartupScriptRegistered("clientScript")) Then ClientScript.RegisterClientScriptBlock(Me.GetType(), "clientScript", "<script language=JavaScript>alert('Erro ao gerar relatório.');</script>")
End Try
End If
End Sub
End Class
MARIANO1776
- Editado Mariano1776 segunda-feira, 16 de setembro de 2019 23:02