Ilano 0 Denunciar post Postado Agosto 12, 2014 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_relEmpresasInherits System.Web.UI.PagePrivate Empresa As New PROTOCOLO.objEmpresasPrivate Permissao As New PROTOCOLO.objPermissoesPrivate Sub HabilitaBotoes()Dim Ds As Data.DataSetDim pPagina As StringpPagina = Request.CurrentExecutionFilePathpPagina = pPagina.Remove(0, pPagina.LastIndexOf("/") + 1)TryLbMensagem.Text = DBNull.Value.ToStringDs = Permissao.ConsultaAvancada(" A.Perfil_Codigo = " & Session("sPerfil") & _" AND B.Modulo_Arquivo = 'relatorios/" & pPagina & "'", "")If Not Ds Is Nothing ThenIf Ds.Tables(0).Rows.Count > 0 ThenWebReport1.ShowPrint = Ds.Tables(0).Rows(0)("Perm_Imprime")WebReport1.ShowExports = Ds.Tables(0).Rows(0)("Perm_Exporta")ElseIf Ds.Tables(0).Rows.Count = 0 ThenWebReport1.ShowPrint = FalseWebReport1.ShowExports = FalseEnd IfEnd IfElseIf Ds Is Nothing ThenWebReport1.ShowPrint = FalseWebReport1.ShowExports = FalseEnd IfEnd IfCatch ex As ExceptionLbMensagem.Text = "Ocorreu um erro: " & ex.MessageEnd TryEnd SubPrivate Sub PovoaRelatorio(ByVal pParametro As String, ByVal pOrdem As String)Dim pSQL As StringpSQL = " SELECT * FROM v_empresas "If Trim(pParametro) <> DBNull.Value.ToString Then pSQL = pSQL & " WHERE " & pParametroIf Trim(pOrdem) <> DBNull.Value.ToString Then pSQL = pSQL & " ORDER BY " & pOrdem Else pSQL = pSQL & " ORDER BY Empresa_RazaoSocial "HabilitaBotoes()SqlDataSource1.SelectCommand = pSQLSqlDataSource1.DataBind()WebReport1.ReportFile = Server.MapPath("reEmpresas.frx")WebReport1.Refresh()End SubPrivate 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 SubProtected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LoadIf Not IsPostBack ThenPovoaRelatorio(" Empresa_Codigo = 0 ", "")End IfEnd SubProtected Sub BtnConsultar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles BtnConsultar.ClickPovoaRelatorio(" Empresa_RazaoSocial LIKE '%" & TxtBusca.Text & "%' ", "")End SubProtected Sub SqlDataSource1_Selected(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles SqlDataSource1.SelectedIf e.AffectedRows > 0 ThendivRelatorio.Visible = TrueElseIf e.AffectedRows = 0 ThendivRelatorio.Visible = FalseEnd IfEnd IfEnd SubProtected Sub BtnPDF_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles BtnPDF.ClickGerarPF()End SubEnd Class Grato,Ilano. Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Agosto 13, 2014 Windows forms? Compartilhar este post Link para o post Compartilhar em outros sites
Ilano 0 Denunciar post Postado Agosto 13, 2014 É 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
KhaosDoctor 242 Denunciar post Postado Agosto 13, 2014 Quanto ao erro: https://www.google.com.br/search?q=Showing+a+modal+dialog+box+or+form+when+the+application+is+not+running+in+UserInteractive+mode+is+not+a+valid+operation.&oq=Showing+a+modal+dialog+box+or+form+when+the+application+is+not+running+in+UserInteractive+mode+is+not+a+valid+operation.&aqs=chrome..69i57.444j0j7&sourceid=chrome&es_sm=0&ie=UTF-8 Quanto à impressora, existe alguma limitações, pois o browser não permite o acesso direto à impressora co cliente, contudo, é possível realizar um processo de impressão através do window.print() [veja em http://www.codeproject.com/Questions/428371/ASP-NET-Printing-on-clients-side-directly-without] mas ele vai abrir a pré visualização. http://stackoverflow.com/questions/270674/print-pdf-from-asp-net-without-preview http://www.neodynamic.com/articles/Print-PDF-from-ASP-NET-directly-to-default-printer-without-print-dialog/ http://forums.asp.net/t/1751503.aspx?Directly+Print+to+printer+using+javascript+ Compartilhar este post Link para o post Compartilhar em outros sites
Ilano 0 Denunciar post Postado Agosto 14, 2014 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
KhaosDoctor 242 Denunciar post Postado Agosto 14, 2014 Ele dá algum problema? Compartilhar este post Link para o post Compartilhar em outros sites
Ilano 0 Denunciar post Postado Agosto 14, 2014 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
KhaosDoctor 242 Denunciar post Postado Agosto 14, 2014 Coloque alguns breakpoints e verifique o caminho do arquivo. Compartilhar este post Link para o post Compartilhar em outros sites
Ilano 0 Denunciar post Postado Agosto 14, 2014 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