2010-12-06 33 views
6

He escrito una solicitud en C# y ahora quiero imprimir su contenido en forma de factura, como se muestra en la figura Quiero imprimir los datos del cliente solo una vez pero los trabajos que solicitó realizar en su automóvil en la vista de cuadrícula de datos debe estar allí en forma de lista con mano de obra y mano de obra total al final de la factura. algunas personas sugirieron utilizar informes de cristal nunca he usado ellos para buscar una solución más simple corte que corta los valores, ¿cómo podemos impresión necesarios de forma alt textImprimir factura C# Winforms

+0

Algo como Crystal Reports es probablemente tu mejor opción. Hay otras herramientas de informes disponibles. Telerik tiene algunos (pero son caros). – ChrisF

+0

pero en comparación con 2010 no tienen informes de cristal y cuando se trata de publicar este software en la máquina del cliente donde no hay vs 2010 entonces la instalación de informes de cristal puede ser necesaria, así que es un poco ... usted sabe –

+1

yo uso http: // www.devexpress.com/Products/NET/Printing/index.xml?tab=features, muy simple, sin embargo, $ 150 –

Respuesta

6

La solución más fácil y rápida es usar el control PrintForm de Visual Basic PowerPack (también se puede usar en proyectos C#).

http://msdn.microsoft.com/en-us/vbasic/bb735936.aspx

sólo tienes que arrastrar el comando en el formulario y luego de la llamada código

printForm1.Print(); 

Esto imprimirá lo que está en la forma, por lo que sólo diseñar el informe en un formulario y luego llamar a ese código, y tu estas listo.

+0

¿Qué ocurre con la redistribución de mi aplicación? dosis que necesita para ser instalado –

+0

Puede implementar los dlls con su aplicación, o puede usar el paquete bootstrapper incluido para redistribuirlos fácilmente en un clic o proyecto de instalación. Es muy pequeño y simple, mira el enlace en mi respuesta para más información. – theChrisKent

3

La última vez que necesitaba para imprimir unos campos de un formulario C# , Simplemente creé una imagen de mapa de bits usando el objeto "Mapa de bits" y "Gráficos" y usé "PrintDocument" para imprimirla.

El diseño del informe impreso se realiza en código especificando las coordenadas de los elementos que se imprimirán. Es barato y sucio, pero funciona.

3

Puede usar un informe local de SSRS (extensión .rdlc). Debería haber una nueva plantilla de elemento en "Informes" para crear el informe. El informe se muestra en Winforms usando el control del visor de informes (el control también se puede usar en una aplicación WPF usando un WindowsFormsHost). El único inconveniente es una dependencia requerida que debe instalarse con su aplicación. Here is the redistributable package for the 2010 report viewer.

A plus es que el informe puede alojarse fácilmente en una instancia de SSRS si/cuándo será necesario visualizarlo desde un navegador. El espectador también puede generar informes localmente que están alojados en una instancia de SSRS.

Hay muchas guías en línea para usar el visor de informes dependiendo de la fuente de datos que se utilizará para rellenar el informe. El siguiente ejemplo usa una lista genérica como fuente de datos. Las "etiquetas" en la nueva línea ReportDataSource tienen que ser las mismas que el nombre del Dataset en la definición del informe. Las propiedades del objeto genérico también deben coincidir con los nombres de columna del Dataset.

public ReportViewer(IEnumerable<UnprocessedLabel> labels) 
    { 
     InitializeComponent(); 

     var reportViewer = new Microsoft.Reporting.WinForms.ReportViewer { ProcessingMode = ProcessingMode.Local }; 
     reportViewer.LocalReport.ReportPath = System.IO.Path.GetDirectoryName(Application.ResourceAssembly.Location) + "\\UnprocessedPalletLabel.rdlc"; 
     var ds = new ReportDataSource("labels", labels); 
     reportViewer.LocalReport.DataSources.Add(ds); 
     reportViewer.RefreshReport(); 
    }