Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ilano

Impressão com FastReport.Net

Recommended Posts

Olá pessoal,

Eu fiz um relatório usando FastReport.Net com SQL Server mas, ao clicar na impressora do componente, abre uma tela pedindo para fazer o download em PDF do relatório. Como faço para imprimir direto para a impressora? Tentei fazer com que gerasse um PDF (GerarPF()), até que cria o arquivo mas, ao abrir, fica pensando e não abre nada. Mas, se for na pasta onde está o arquivo PDF eu consigo visualizá-lo.

Estou desenvolvendo em Visual Studio 2012, linguagem VB. Segue o código abaixo:

 

Partial Class administrador_relatorios_relEmpresas
Inherits System.Web.UI.Page
Private Empresa As New PROTOCOLO.objEmpresas
Private Permissao As New PROTOCOLO.objPermissoes

Private Sub HabilitaBotoes()
Dim Ds As Data.DataSet
Dim pPagina As String
pPagina = Request.CurrentExecutionFilePath
pPagina = pPagina.Remove(0, pPagina.LastIndexOf("/") + 1)

Try
LbMensagem.Text = DBNull.Value.ToString
Ds = Permissao.ConsultaAvancada(" A.Perfil_Codigo = " & Session("sPerfil") & _
" AND B.Modulo_Arquivo = 'relatorios/" & pPagina & "'", "")

If Not Ds Is Nothing Then
If Ds.Tables(0).Rows.Count > 0 Then
WebReport1.ShowPrint = Ds.Tables(0).Rows(0)("Perm_Imprime")
WebReport1.ShowExports = Ds.Tables(0).Rows(0)("Perm_Exporta")
Else
If Ds.Tables(0).Rows.Count = 0 Then
WebReport1.ShowPrint = False
WebReport1.ShowExports = False
End If
End If
Else
If Ds Is Nothing Then
WebReport1.ShowPrint = False
WebReport1.ShowExports = False
End If
End If

Catch ex As Exception
LbMensagem.Text = "Ocorreu um erro:
" & ex.Message
End Try

End Sub

Private Sub PovoaRelatorio(ByVal pParametro As String, ByVal pOrdem As String)
Dim pSQL As String
pSQL = " SELECT * FROM v_empresas "
If Trim(pParametro) <> DBNull.Value.ToString Then pSQL = pSQL & " WHERE " & pParametro
If Trim(pOrdem) <> DBNull.Value.ToString Then pSQL = pSQL & " ORDER BY " & pOrdem Else pSQL = pSQL & " ORDER BY Empresa_RazaoSocial "

HabilitaBotoes()

SqlDataSource1.SelectCommand = pSQL
SqlDataSource1.DataBind()

WebReport1.ReportFile = Server.MapPath("reEmpresas.frx")
WebReport1.Refresh()

End Sub

Private Sub GerarPF()
WebReport1.Prepare()
Dim export As FastReport.Export.Pdf.PDFExport = New FastReport.Export.Pdf.PDFExport()
WebReport1.Report.Export(export, "../../protocolo/relatorios/relEmpresas.pdf")
Response.Redirect("../../relatorios/relEmpresas.pdf")

End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
PovoaRelatorio(" Empresa_Codigo = 0 ", "")

End If

End Sub

Protected Sub BtnConsultar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles BtnConsultar.Click
PovoaRelatorio(" Empresa_RazaoSocial LIKE '%" & TxtBusca.Text & "%' ", "")

End Sub

Protected Sub SqlDataSource1_Selected(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles SqlDataSource1.Selected
If e.AffectedRows > 0 Then
divRelatorio.Visible = True
Else
If e.AffectedRows = 0 Then
divRelatorio.Visible = False
End If
End If

End Sub

Protected Sub BtnPDF_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles BtnPDF.Click
GerarPF()

End Sub

End Class

 



Grato,

Ilano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É WebForm.

 

Tentei esse código:

 

Protected Sub BtnImprimir_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles BtnImprimir.Click
WebReport1.Report.PrintPrepared()
WebReport1.Report.Print()
End Sub
Mas está retornando a mensagem:
Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.
Alguma ideia de como resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, tô quase desistindo disso! O que é uma pena, pois o FastReport dá de mil a zero no ReportView. Bom, vou esquecer o print. Vou insistir no PDF só pelo componente, que vale muito a pena.

 

O código abaixo gera o PDF, mas ao abrir fica pensando um tempão e não abre. Alguma sugestão para resolver esse problema?

 

Private Sub GerarPF()
WebReport1.Prepare()
Dim export As FastReport.Export.Pdf.PDFExport = New FastReport.Export.Pdf.PDFExport()
WebReport1.Report.Export(export, "../../protocolo/relatorios/relEmpresas.pdf")
Response.Redirect("../../relatorios/relEmpresas.pdf")

End Sub

 

Grato,

 

Ilano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, não dá nenhum problema não. Apenas que o arquivo PDF não abre. É como se ele não encontrasse e ficasse procurando, mas o arquivo é criado direitinho.

 

No código GerarPDF, antes de mandar abrir o arquivo PDF adicionei a linha WebReport1.Report.Dispose() mas não tive sucesso, continua na mesma.


É interessante que se eu tentar abrir o pdf pelo sistema não abre, fica rodando e não abre, mas se eu for lá na pasta e der dois cliques no arquivo ele abre. Fiz um teste colocando o hyperlink com o caminho do arquivo. Ele chama, abre o programa do PDF e fica carregando, carregando e nada. Alguma ideia do que seja isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá KhaosDoctor,

 

Cara, finlamente deu certo! Acredita que na máquina local ele não gera o arquivo, mas quando publico o arquivo é gerado tranquilamente! Eu fiquei muito preso ao que estava fazendo na minha máquina e não tentei ver como seria no servidor. Finalmenteeeeeeeeeee!!!!!!!!!

 

Adoro esse FastReport, trabalho com ele com Delphi para Desktop e acho ele sensacional. Se não fosse a facilidade e qualidade que ele oferece para desenvolver relatórios eu não teria insistido nele.

 

Muito obrigado por sua atenção. Valeu!

 

:clap:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.