Есть ли способ предварительно просмотреть и печатать отчеты в .NET Winui 3?C#

Место общения программистов C#
Ответить
Anonymous
 Есть ли способ предварительно просмотреть и печатать отчеты в .NET Winui 3?

Сообщение Anonymous »

У меня есть настольное приложение в .net winui3, и я не знаю, как проектировать и печатать отчеты. Я пытался разработать их в Fastereport, в отдельном приложении на моем компьютере и импортировал. В дизайнере FasterPort я установил XML в качестве данных.private async void ImprimirRecibo(object obj)
{
try
{
using (FastReport.Report reporte = new FastReport.Report())
{
string path = Path.Combine(AppContext.BaseDirectory, "Assets", "report1.frx");
reporte.Load(path);

int numeroRecibo = _recibo.idrecibos;
reporte.SetParameterValue("nro_recibo", numeroRecibo);
System.Diagnostics.Debug.WriteLine($"recibo: " + numeroRecibo);

DataTable dt = await _reciboService.ListadoRecdAsync(numeroRecibo);
dt.TableName = "Item";

// Registrar DataTable con el mismo nombre que en el XSD
reporte.RegisterData(dt, "Item");

// Obtener el DataSource específico y asignarlo a la DataBand
var dataSource = reporte.GetDataSource("Item");
if (reporte.FindObject("Data1") is DataBand dataBand)
{
// Asignar el DataSource CORRECTO a la DataBand
dataBand.DataSource = dataSource;
System.Diagnostics.Debug.WriteLine($"DataSource asignado: {dataBand.DataSource}");
}

// Habilitar el datasource
dataSource.Enabled = true;

// Preparar reporte
reporte.Prepare();

using (MemoryStream ms = new MemoryStream())
{
var export = new PDFSimpleExport();
reporte.Export(export, ms);
ms.Position = 0;

string tempFile = Path.Combine(Path.GetTempPath(), $"recibo_{numeroRecibo}.pdf");
await File.WriteAllBytesAsync(tempFile, ms.ToArray());

var ventanaPdf = new PdfViewerWindow(tempFile);
ventanaPdf.Activate();
}
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"Error al imprimir: {ex.Message}");
}
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... et-winui-3
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»