async private void ShowDocument(IEnumerable <DebtorInvoiceClient> debtorInvoices, bool isInvoice) { busyIndicator.IsBusy = true; busyIndicator.BusyContent = Uniconta.ClientTools.Localization.lookup("GeneratingPage"); try { var docList = debtorInvoices.ToList(); #if !SILVERLIGHT var failedPrints = new List <long>(); var count = docList.Count; string dockName = null, reportName = null; bool exportAsPdf = false; System.Windows.Forms.FolderBrowserDialog folderDialogSaveInvoice = null; hasLookups = false; if (count > 1) { hasLookups = true; if (count > StandardPrintReportPage.MAX_PREVIEW_REPORT_LIMIT) { var confirmMsg = string.Format(Uniconta.ClientTools.Localization.lookup("PreivewRecordsExportMsg"), count); if (UnicontaMessageBox.Show(confirmMsg, Uniconta.ClientTools.Localization.lookup("Confirmation"), MessageBoxButton.YesNo) == MessageBoxResult.Yes) { exportAsPdf = true; } } else if (isInvoice) { dockName = string.Concat(Uniconta.ClientTools.Localization.lookup("Preview"), ": ", Uniconta.ClientTools.Localization.lookup("Debtor"), " ", Uniconta.ClientTools.Localization.lookup("Invoices")); reportName = string.Concat(Uniconta.ClientTools.Localization.lookup("Debtor"), Uniconta.ClientTools.Localization.lookup("Invoices")); } else { dockName = string.Concat(Uniconta.ClientTools.Localization.lookup("Preview"), ": ", Uniconta.ClientTools.Localization.lookup("Packnote")); reportName = Uniconta.ClientTools.Localization.lookup("Packnote"); } ribbonControl.DisableButtons(new [] { "ShowInvoice", "ShowPackNote" }); } #elif SILVERLIGHT int top = 200, left = 300; int count = docList.Count; if (count > 1) { #endif foreach (var debtInvoice in docList) { #if !SILVERLIGHT IsGeneratingDocument = true; IPrintReport printReport = isInvoice ? await PrintInvoice(debtInvoice) : await PrintPackNote(debtInvoice); if (printReport?.Report != null) { var docNumber = isInvoice ? debtInvoice._InvoiceNumber : debtInvoice._PackNote; if (count > 1 && IsGeneratingDocument) { if (exportAsPdf) { string docName = isInvoice ? Uniconta.ClientTools.Localization.lookup("Invoice") : Uniconta.ClientTools.Localization.lookup("Packnote"); string directoryPath = string.Empty; if (folderDialogSaveInvoice == null) { folderDialogSaveInvoice = UtilDisplay.LoadFolderBrowserDialog; var dialogResult = folderDialogSaveInvoice.ShowDialog(); if (dialogResult == System.Windows.Forms.DialogResult.OK || dialogResult == System.Windows.Forms.DialogResult.Yes) { directoryPath = folderDialogSaveInvoice.SelectedPath; } } else { directoryPath = folderDialogSaveInvoice.SelectedPath; } Utility.ExportReportAsPdf(printReport.Report, directoryPath, docName, NumberConvert.ToString(docNumber)); } else { if (standardViewerPageForDocument == null) { standardViewerPageForDocument = dockCtrl.AddDockItem(api?.CompanyEntity, TabControls.StandardPrintReportPage, ParentControl, new object[] { printReport, reportName }, dockName) as StandardPrintReportPage; } else { standardViewerPageForDocument.InsertToMasterReport(printReport.Report); } } } else { var docType = isInvoice ? CompanyLayoutType.Invoice : CompanyLayoutType.Packnote; reportName = await Utility.GetLocalizedReportName(api, debtInvoice, docType); dockName = string.Format("{0} {1}", Uniconta.ClientTools.Localization.lookup("Preview"), string.Format("{0}: {1}", isInvoice ? Uniconta.ClientTools.Localization.lookup("Invoice") : Uniconta.ClientTools.Localization.lookup("Packnote"), NumberConvert.ToString(docNumber))); AddDockItem(TabControls.StandardPrintReportPage, new object[] { new List <IPrintReport> { printReport }, reportName }, dockName); break; } } else { failedPrints.Add(debtInvoice.InvoiceNumber); } } IsGeneratingDocument = false; ribbonControl?.EnableButtons(new [] { "ShowInvoice", "ShowPackNote" }); if (failedPrints.Count > 0) { var failedList = string.Join(",", failedPrints); UnicontaMessageBox.Show(Uniconta.ClientTools.Localization.lookup("FailedPrintmsg") + failedList, Uniconta.ClientTools.Localization.lookup("Error"), MessageBoxButton.OK); } #elif SILVERLIGHT DefaultPrint(debtInvoice, true, new Point(top, left)); left = left - left / count; top = top - top / count; } } else { DefaultPrint(debtorInvoices.First()); } #endif }
public BalanceReportTemplatePrint(object sourceData, object sourceHeaderData, object objBalance, object frontPageReport) { InitializeComponent(); var bal = (Balance)objBalance; HeaderData headerdata = (HeaderData)sourceHeaderData; if (string.IsNullOrEmpty(headerdata.BalanceName)) { headerdata.BalanceName = Uniconta.ClientTools.Localization.lookup("ReportCriteria"); } headerdata.AccountColWidth = bal.ColumnSizeAccount == (byte)0 ? 80 : bal.ColumnSizeAccount; headerdata.AccountNameColWidth = bal.ColumnSizeName == (byte)0 ? 200 : bal.ColumnSizeName; headerdata.LineSpace = new Thickness(0, 0, 0, bal.LineSpace); headerdata.LeftMargin = new Thickness(bal.LeftMargin, 0, 0, 0); headerdata.DimColWidth = bal.ColumnSizeDim == (byte)0 ? 90 : bal.ColumnSizeDim; headerdata.DClblWidth = bal.ColumnSizeAmount == (byte)0 ? 100 : bal.ColumnSizeAmount; headerdata.FontSize = bal.FontSize == 0 ? 12 : bal.FontSize; headerdata.AmountSize = bal.ColumnSizeAmount; #if !SILVERLIGHT List <List <TemplateDataItems> > simpleLinkItems = new List <List <TemplateDataItems> >(); var currentItems = ((TemplateDataContext)sourceData).TemplateReportlist; List <TemplateDataItems> currentLinkItems = new List <TemplateDataItems>(); for (int i = 0; i < currentItems.Count; i++) { currentLinkItems.Add(currentItems[i]); if (currentItems[i].IsNewPage == Visibility.Visible) { simpleLinkItems.Add(currentLinkItems); currentLinkItems = new List <TemplateDataItems>(); } if (i == currentItems.Count - 1) { simpleLinkItems.Add(currentLinkItems); } } DevExpress.XtraPrinting.PrintingSystem ps = new DevExpress.XtraPrinting.PrintingSystem(); ps.Graph.PageBackColor = System.Drawing.Color.Transparent; //Setting the default Printer if (!string.IsNullOrEmpty(session.User._Printer)) { ps.PageSettings.PrinterName = session.User._Printer; } List <TemplatedLink> links = new List <TemplatedLink>(); var frontPageText = bal._FrontPage; if (!string.IsNullOrEmpty(frontPageText) && bal._PrintFrontPage) { if (frontPageReport is DevExpress.XtraReports.UI.XtraReport) { var balanceFrontPageList = StandardPrintReportPage.AssignWatermark(frontPageReport as DevExpress.XtraReports.UI.XtraReport); ps.Pages.AddRange(balanceFrontPageList); } else { var frontPageLink = BalanceReportPrint.CreateFrontPageLink(frontPageText, bal._Landscape, bal.FontSize, (DataTemplate)this.Resources["frontPageHeaderTemplate"]); frontPageLink.CreateDocument(false); links.Add(frontPageLink); } } foreach (List <TemplateDataItems> e in simpleLinkItems) { var templateLink = CreateLink(headerdata, e, ((Balance)objBalance)._Landscape); templateLink.CreateDocument(false); links.Add(templateLink); } foreach (var link in links) { ps.Pages.AddRange(link.PrintingSystem.Pages); } custPrint.DocumentSource = ps; #endif #if SILVERLIGHT TemplatePrintBaseModule printbase = new TemplatePrintBaseModule(); printbase.PageHeaderTemplate = (DataTemplate)this.Resources["pageHeaderTemplate"]; printbase.DetailTemplate = (DataTemplate)this.Resources["detailTemplate"]; printbase.HeaderTemplateDataContext = headerdata; printbase.DetailsTemplateDataContext = (TemplateDataContext)sourceData; printbase.HeaderTemplateDataContext._Landscape = ((Balance)objBalance)._Landscape; this.DataContext = printbase; #endif }