Buscar

Mostrando entradas con la etiqueta Crystal Report. Mostrar todas las entradas
Mostrando entradas con la etiqueta Crystal Report. Mostrar todas las entradas

viernes, 12 de marzo de 2010

Saber cual es la impresora por defecto c#

Este código busca la impresora por defecto en el sistema y devuelve el nombre, para que lo podamos utilizar desde Cristal Report o desde cualquier reporteador

!-- code formatted by http://manoli.net/csharpformat/ -->
public static string  GetImpresoraDefecto()
        {
         for (int i = 0; i < PrinterSettings.InstalledPrinters.Count; i++)
            {
                PrinterSettings a = new PrinterSettings();
                a.PrinterName = PrinterSettings.InstalledPrinters[i].ToString();
                if (a.IsDefaultPrinter)
                {
                   return   PrinterSettings.InstalledPrinters[i].ToString();

                }
            }
            return "";
        }
desde Cristal Report se utiliza de la siguinte manera:

rpt.PrintOptions.PrinterName = GetImpresoraDefecto();

espacio de nombres:
using System.Drawing.Printing;

martes, 12 de mayo de 2009

Imprimir en la impresora por defecto un reporte de Crystal Report en C#

Este código busca la impresora por defecto del equipo, y se la asigna a un reporte, para imprimirlo, sin necesidad de mostrar el reporte, ni de mostrar el cuadro de dialogo de impresión.

public void Imprimir()
{
string NombreImpresora = "";//Donde guardare el nombre de la impresora por defecto

//Busco la impresora por defecto
for (int i = 0; i < PrinterSettings.InstalledPrinters.Count; i++)
{
PrinterSettings a = new PrinterSettings();
a.PrinterName = PrinterSettings.InstalledPrinters[i].ToString();
if (a.IsDefaultPrinter)
{
NombreImpresora = PrinterSettings.InstalledPrinters[i].ToString();

}
}


rptReporte rpt = new rptReporte ();// Instancio el reporte


rpt.SetDataSource(Dt);//Asigno la fuente de datos a mi reporte.
rpt.PrintOptions.PrinterName =NombreImpresora; );//Asigno la impresora
rpt.PrintToPrinter(2, false, 0, 0); );//Imprimo 2 copias
}


Si necesitamos imprimir el reporte en una impresora especifica, simplemente asignamos el nombre de la impresora al reporte

rpt.PrintOptions.PrinterName =”ElNombreImpresora”;


Nombre de espacios utilizados

using System.Drawing.Printing;

viernes, 17 de abril de 2009

Insertar imágenes dinámicamente en Cristal Report con C# 2005

Insertar imágenes dinámicamente en Cristal Report
Muchas veces tenemos que insertar imágenes ennuestros reportes dependiendo el registro que estemos mostrando, una forma queme a funcionado muy bien es la siguiente.
Cuando diseñemos el reporte debemos insertar un campo de tipo System.Byte[] en el DataTable utilizadopara el diseño de nuestro reporte, en este campo meteremos la imagen entiempo de ejecución.


Este campo se inserta en el reporte y será dondemostraremos la imagen.



Para mostrar el reporte utilizamos lo siguiente, para llenarel campo creado.

public void CargarReporte()
{
DataTable Dt = new
DataTable();//Creo un DataTable que sera la fuente de datos de mi reporte.
Dt=clsOrdenTerceros.Get_InfoParaOrdenImpresa(NumOrden);//Lleno el DataTable

rptOrdenSalidaTercero rpt = new rptOrdenSalidaTercero();// instancio el reporte

Dt.Columns.Add("Ruta11",System.Type.GetType("System.Byte[]"));//Agrego la columna con el tipo de dato "System.Byte[]",donde guardare mi imagen.

Dt.Rows[0]["Ruta11"] = CargarImagen("C:\foto.jpg"));//Cargo La imagen

rpt.SetDataSource(Dt);//Asigno la fuente de datos a mi reporte.
}

Y esta es la función que carga la imagen.


public static Byte[]CargarImagen(string rutaArchivo)
{


if (rutaArchivo != "")
{

try
{

FileStream Archivo = new FileStream(rutaArchivo, FileMode.Open);//Creo el archivo
BinaryReader binRead = new BinaryReader(Archivo);//Cargo el Archivo en modo binario

Byte[] imagenEnBytes = new Byte[(Int64)Archivo.Length]; //Creo un Array de Bytes donde guardare la imagen

binRead.Read(imagenEnBytes,0, (int)Archivo.Length);//Cargo la imagen en el array de Bytes
binRead.Close();

Archivo.Close();

return imagenEnBytes;//Devuelvo la imagen convertida en un array de bytes

}


catch
{
return new Byte[0];
}

}

return new byte[0];

}



Espacio de nombre Usados


using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;