Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/06/2009, 03:15
javi_cassi
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 16 años, 4 meses
Puntos: 11
Respuesta: Imprimir lotes con Crystal Reports

haberla, claro que la hay.
Lo primero que tienes que hacer es decirle que no quieres visualizar el report. Usa la propiedad visible.

Después tienes que mandar el report a la impresora (elegir una de la sque tengas) e imprimirlo.

Te pongo un ejemplo de como lo hago yo. El ejemplo en concreto lo que hace es coger un objeto imagen, (porque lo que hago es capturar la imagen de pantalla), y luego imprimo dicho objeto usando la impresora de PDF.

Supongo que tu tendras que hacer lo mismo, solo que pasandole el report, y elgiendo la impresoa normal para que te imprima el documento.

Espero que te sirva, ya nos dices

No hay que importar ninguna libreria (bueno, para usar mi emplo exactamente si, porque uso una libreria de imagenes: Imports System.Drawing.Printing)

Cita:

Private Sub btt_impresora_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btt_impresora.Click

Dim gr As Graphics = Me.CreateGraphics
' Tamaño de lo que queremos copiar
Dim fSize As Size = Me.Size
Dim gr2 As Graphics
' Copiar el área de la pantalla que ocupa el formulario
Dim picCaptura As New PictureBox

Me.BackColor = Color.White
Me.btt_ayuda.Visible = False

Me.btt_salir.Visible = False

bm = New Bitmap(fSize.Width, fSize.Height, gr)
gr2 = Graphics.FromImage(bm)
gr2.CopyFromScreen(Me.Location.X + 4, Me.Location.Y + 30, 0, 0, fSize - New Size(8, 40))
gr2.RotateTransform(180)

picCaptura.Image = bm
'picCaptura.Image.Save("prueba.pdf")

pd = New PrintDocument
'seleccionar_impr()
pd.PrinterSettings.PrinterName = "Adobe PDF"
pd.DefaultPageSettings.Landscape = True
pd.DefaultPageSettings.Margins.Left = 230
pd.DefaultPageSettings.Margins.Top = 100
pd.PrinterSettings.PrintFileName = "prueba.pdf"

pd.Print()
Me.BackColor = Color.WhiteSmoke
Me.btt_ayuda.Visible = True
Me.btt_salir.Visible = True
End Sub


Sub pd_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs) Handles pd.PrintPage
Dim x As Integer = e.MarginBounds.X
Dim y As Integer = e.MarginBounds.Y
e.PageSettings.PrinterSettings.DefaultPageSettings .Landscape = True

e.Graphics.DrawImage(bm, x - 100, y - 15)
e.HasMorePages = False
End Sub