Add some existing examples

This commit is contained in:
Niels Kooiman
2022-02-23 16:14:58 +01:00
parent b7973a6e52
commit cdc8d89447
3 changed files with 209 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
public async Task CreateCustomOfferReport(CrudAPI api, GiftProject giftProject)
{
var reportName = "Offerte 3";
var report = await LoadReport(api, reportName);
var order = ConvertProjectToOrder(giftProject);
report.DataSource = new List()
{
new UnicontaMasterDetail()
{
Master = order,
Details = order.OfferLines.ToArray()
}
};
var stream = new MemoryStream();
var pdfOptions = new PdfExportOptions();
await report.ExportToPdfAsync(stream, pdfOptions);
stream.Position = 0;
var data = stream.ToArray();
var fileName = "Offerte 123";
var attachment = new UserDocsClient()
{
_Data = data,
_Text = fileName,
_DocumentType = FileextensionsTypes.PDF
};
return attachment;
}
private static async Task LoadReport(CrudAPI api, string reportName)
{
var apiWrapper = new ApiWrapper(api);
var reports = await apiWrapper.Filter()
.WhereEqual(x => x.Name, reportName)
.Run();
var reportRow = reports.FirstOrDefault();
if (reportRow == null)
throw new Exception($"Kon rapport '{reportName}' niet vinden!");
// Load Layout bytes in repord
_ = await api.Read(reportRow);
var reportLayout = reportRow.Layout;
if (reportLayout == null)
throw new Exception($"Kon rapport '{reportName}' layout niet laden!");
XtraReport report;
try
{
report = ReportUtil.GetXtraReportFromLayout(reportLayout);
}
catch (Exception)
{
report = null;
}
if (report == null)
throw new Exception($"Kon rapport '{reportName}' niet laden! (error while loading layout)");
return report;
}