none
Ayuda: Formato de informe RDLC cambia al momento de mandar a impresión. RRS feed

  • Pregunta

  • hola a todos tengo un problema  con la impresión de mi informe factura.rdlc , lo que pasa es que al momento de mandarlo a impresión sin vista preliminar el formato ya establecido en tiempo de diesño se mueve o no lo considera. Como puedo hacer para que me considere el formato ya establecido.

    para la impresión sin vista previa utilice el codigo del sigueinte link. http://msdn.microsoft.com/en-us/library/ms252091(VS.80).aspx.

    Esperando su ayuda me despido. atte Jhon.

    jueves, 22 de julio de 2010 16:53

Todas las respuestas

  • Saludos,

     

    No se si sea el mismo caso que tenia yo,  diseñe una factura con un reporte, la idea era imprimir los campos y lugares correspondientes en una factura prediseñana.

     

    lo que me fue util fue que al informe en propiedades ( esquina izquierda )  darle los margenes, y en propiedades del informe darle las dimenciones.  imprimi a prueba -error comparando como se imprimia el informe hasta que quedara en los lugares adecuados, despues de esto ya no tenia problemas siempre me respetaba ese formato.

     

    ojala te sirva un poquito.

    nota:  diseñe mi reporte utilizando un dataset ( no necesariamente he ), y lo agrege a un control: reportviewer.

    martes, 27 de julio de 2010 15:58
  • Buenas,

    ¿Has mirado en las propiedades que los margenes y el total de tu informe no den mayor tamaño al de tu impresora?

    Un Saludo!


    Fran Díaz | {geeks.ms/blogs/fdiaz/} | {onobanet.com} | {secondnug.com}
    sábado, 31 de julio de 2010 21:40
    Moderador
  • Hola Fran. si, los margenes lo tengo bien configurado, como mencionaba en la pregunta el informe esta configurado para que
    se imprima en el formato pre impreso pero al momento de enviarlo a la impresora sin vista previa este no conserva los margenes
    ya establecidos. los ovia y la impresion sale en toda la hoja y no como se ha configurado. Utilizo este codigo

    Imports System.IO
    Imports System.Data
    Imports System.Text
    Imports System.Drawing.Imaging
    Imports System.Drawing.Printing Imports System.Collections.Generic
    Imports Microsoft.Reporting.WinForms

    Public Class Demo
       
    Implements IDisposable

       
    Private m_currentPageIndex As Integer
        Private m_streams As IList(Of Stream)

       
    Private Function LoadSalesData() As DataTable
           
    Dim dataSet As New DataSet()
            dataSet.ReadXml(
    "..\..\data.xml")
           
    Return dataSet.Tables(0)
       
    End Function

        Private Function CreateStream(ByVal name As String, _
          
    ByVal fileNameExtension As String, _
          
    ByVal encoding As Encoding, ByVal mimeType As String, _
          
    ByVal willSeek As Boolean) As Stream
           
    Dim stream As Stream = _
               
    New FileStream("..\..\" + _
                 name +
    "." + fileNameExtension, FileMode.Create)
            m_streams.Add(stream)
           
    Return stream
       
    End Function

        Private Sub Export(ByVal report As LocalReport)
           
    Dim deviceInfo As String = _
             
    "<DeviceInfo>" + _
             
    "  <OutputFormat>EMF</OutputFormat>" + _
             
    "  <PageWidth>8.5in</PageWidth>" + _
             
    "  <PageHeight>11in</PageHeight>" + _
             
    "  <MarginTop>0.25in</MarginTop>" + _
             
    "  <MarginLeft>0.25in</MarginLeft>" + _
             
    "  <MarginRight>0.25in</MarginRight>" + _
             
    "  <MarginBottom>0.25in</MarginBottom>" + _
             
    "</DeviceInfo>"
            Dim warnings() As Warning = Nothing
            m_streams = New List(Of Stream)()
            report.Render(
    "Image", deviceInfo, AddressOf CreateStream, _
               warnings)

           
    Dim stream As Stream
           
    For Each stream In m_streams
                stream.Position = 0
           
    Next
        End Sub

        Private Sub PrintPage(ByVal sender As Object, _
       
    ByVal ev As PrintPageEventArgs)
           
    Dim pageImage As New Metafile(m_streams(m_currentPageIndex))
            ev.Graphics.DrawImage(pageImage, ev.PageBounds)

            m_currentPageIndex += 1
            ev.HasMorePages = (m_currentPageIndex < m_streams.
    Count)
       
    End Sub

        Private Sub Print()
           
    Const printerName As String = _
             
    "Microsoft Office Document Image Writer"

            If m_streams Is Nothing Or m_streams.Count = 0 Then
                Return
            End If

            Dim printDoc As New PrintDocument()
            printDoc.PrinterSettings.PrinterName = printerName
           
    If Not printDoc.PrinterSettings.IsValid Then
                Dim msg As String = String.Format( _
                   
    "Can't find printer ""{0}"".", printerName)
                Console.WriteLine(msg)
               
    Return
            End If
            AddHandler printDoc.PrintPage, AddressOf PrintPage
            printDoc.Print()
       
    End Sub

        Private Sub Run()
           
    Dim report As LocalReport = New LocalReport()
            report.ReportPath =
    "..\..\Report.rdlc"
            report.DataSources.Add(New ReportDataSource("Sales", _
               LoadSalesData()))

            Export(report)

            m_currentPageIndex = 0
            Print()
       
    End Sub

        Public Overloads Sub Dispose() Implements IDisposable.Dispose
           
    If Not (m_streams Is Nothing) Then
                Dim stream As Stream
               
    For Each stream In m_streams
                    stream.Close()
               
    Next
                m_streams = Nothing
            End If
        End Sub

        Public Shared Sub Main(ByVal args As String())
           
    Using demo As Demo = New Demo()
                demo.Run()
           
    End Using
        End Sub
    End Class

    domingo, 1 de agosto de 2010 4:05