У меня есть настольное приложение в .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
Есть ли способ предварительно просмотреть и печатать отчеты в .NET Winui 3? ⇐ C#
Место общения программистов C#
1756066135
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}");
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79745150/is-there-a-way-to-preview-and-print-reports-in-net-winui-3[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия