none
Criar Relatorio sem Dataset RRS feed

  • 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?
    domingo, 1 de setembro de 2019 19:07

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
    domingo, 1 de setembro de 2019 23:48
  • 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

    segunda-feira, 16 de setembro de 2019 15:43
  • 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
    segunda-feira, 16 de setembro de 2019 22:53