با سلام
آیا امکان گرفتن خروجی تصویر از گزارشات با فرمتهای jpg و یا png امکان پذیر است؟چگونه؟
باتشکر
new PdfReport().DocumentPreferences(doc => { doc.RunDirection(PdfRunDirection.RightToLeft); doc.Orientation(PageOrientation.Portrait); doc.PageSize(PdfPageSize.A4); doc.DocumentMetadata(new DocumentMetadata { Author = _company, Application = "نرم افزار ", Keywords = "حساب تفصیلی " + _accountName, Subject = "حساب تفصیلی " + _accountName, Title = "حساب تفصیلی " + _accountName }); }) .DefaultFonts(fonts => { fonts.Path(Path.Combine(Environment.CurrentDirectory, @"fonts\irsans.ttf"), Path.Combine(Environment.CurrentDirectory, @"fonts\verdana.ttf")); fonts.Size(8); }) .PagesFooter(footer => { footer.DefaultFooter(string.Concat("کاربر : ", _userService.CurrentUser != null ? _userService.CurrentUser.UserName : string.Empty, " | ", "تاریخ تهیه گزارش : ", DateTimeHelper.ToPersianShortDateString(DateTime.Now, true, true))); }) .PagesHeader(header => { header.CustomHeader(new MasterDetailBookReportsHeader { PdfRptFont = header.PdfFont, Company = _company, FinancialYear = _financialPeriod.GetCurrentFinancialPeriodTitle(), ReportType = ReportType.SpecialDetailBook, ReportTitle = "دفتر تفصیلی" }); }) .MainTableTemplate(template => { template.CustomTemplate(new GrayTemplate()); }) .MainTablePreferences(table => { table.ColumnsWidthsType(TableColumnWidthType.Relative); table.GroupsPreferences(new GroupsPreferences { GroupType = GroupType.HideGroupingColumns, RepeatHeaderRowPerGroup = true, ShowOneGroupPerPage = true, SpacingBeforeAllGroupsSummary = 5f, NewGroupAvailableSpacingThreshold = 5f }); }) .MainTableDataSource(dataSource => { dataSource.AnonymousTypeList(_rows); }) .MainTableColumns(columns => { columns.AddColumn(column => { column.PropertyName<VoucherRowPrintViewModel>(x => x.Title); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Center); column.IsVisible(true); column.IsRowNumber(true); column.Order(0); column.Width(0.7f); column.Group(true, (val1, val2) => { return val1.ToString() == val2.ToString(); }); }); columns.AddColumn(column => { column.PropertyName("rowNumber"); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Center); column.IsVisible(true); column.IsRowNumber(true); column.Order(0); column.Width(0.7f); column.HeaderCell("ردیف"); }); columns.AddColumn(column => { column.PropertyName<VoucherRowPrintViewModel>(x => x.VoucherNumber); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Center); column.IsVisible(true); column.Order(0); column.Width(1); column.HeaderCell("سند"); }); columns.AddColumn(column => { column.PropertyName<VoucherRowPrintViewModel>(x => x.VoucherDate); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Center); column.IsVisible(true); column.Order(1); column.Width(1.5f); column.ColumnItemsTemplate(template => { template.TextBlock(); template.DisplayFormatFormula(obj => DateTimeHelper.ToPersianShortDateString((DateTime)obj)); }); column.HeaderCell("تاریخ"); }); columns.AddColumn(column => { column.PropertyName<VoucherRowPrintViewModel>(x => x.Description); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Left); column.IsVisible(true); column.Order(0); column.Width(4); column.HeaderCell("شرح"); }); columns.AddColumn(column => { column.PropertyName<VoucherRowPrintViewModel>(x => x.Debtor); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Right); column.IsVisible(true); column.Order(2); column.Width(1.5f); column.ColumnItemsTemplate(template => { template.TextBlock(); template.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); column.AggregateFunction(aggregateFunction => { aggregateFunction.NumericAggregateFunction(AggregateFunction.Sum); aggregateFunction.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); column.HeaderCell("بدهکار"); }); columns.AddColumn(column => { column.PropertyName<VoucherRowPrintViewModel>(x => x.Creditor); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Right); column.IsVisible(true); column.Order(3); column.Width(1.5f); column.ColumnItemsTemplate(template => { template.TextBlock(); template.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); column.AggregateFunction(aggregateFunction => { aggregateFunction.NumericAggregateFunction(AggregateFunction.Sum); aggregateFunction.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); column.HeaderCell("بستانکار"); }); columns.AddColumn(column => { column.PropertyName<VoucherRowPrintViewModel>(x => x.CaclulatedDetection); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Left); column.IsVisible(true); column.Order(4); column.Width(1); column.AggregateFunction(aggregateFunction => { aggregateFunction.CustomAggregateFunction(new CumulativeAggregateFunction(true)); aggregateFunction.DisplayFormatFormula(obj => obj == null ? string.Empty : obj.ToString()); }); column.HeaderCell("تشخیص"); }); columns.AddColumn(column => { column.PropertyName<VoucherRowPrintViewModel>(x => x.CaclulatedRemains); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Right); column.IsVisible(true); column.Order(5); column.Width(1.5f); column.ColumnItemsTemplate(template => { template.TextBlock(); template.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); column.AggregateFunction(aggregateFunction => { aggregateFunction.CustomAggregateFunction(new CumulativeAggregateFunction()); aggregateFunction.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); column.HeaderCell("مانده"); }); }) .MainTableSummarySettings(summarySettings => { summarySettings.OverallSummarySettings("جمع کل"); summarySettings.PreviousPageSummarySettings("نقل از صفحه قبل"); }) .MainTableEvents(events => { events.DataSourceIsEmpty(message: "داده ای جهت نمایش وجود ندارد."); events.CellCreated(args => { args.Cell.BasicProperties.CellPadding = 4f; }); events.MainTableAdded(args => { var taxTable = new PdfGrid(3); // Create a clone of the MainTable's structure taxTable.RunDirection = 3; taxTable.SetWidths(new float[] { 3, 3, 3 }); taxTable.WidthPercentage = 100f; taxTable.SpacingBefore = 10f; taxTable.AddSimpleRow( (data, cellProperties) => { data.Value = "امضاء تنظیم کننده"; cellProperties.ShowBorder = true; cellProperties.PdfFont = args.PdfFont; }, (data, cellProperties) => { data.Value = "امضاء حسابدار"; cellProperties.ShowBorder = true; cellProperties.PdfFont = args.PdfFont; }, (data, cellProperties) => { data.Value = "امضاء مدیرعامل"; cellProperties.ShowBorder = true; cellProperties.PdfFont = args.PdfFont; }); args.PdfDoc.Add(taxTable); }); }) .Export(export => { export.ToExcel("خروجی اکسل"); export.ToCsv("خروجی CSV"); export.ToXml("خروجی XML"); }) .Generate(data => data.AsPdfFile(_documentSource));
string.Concat(" ",item.Title);
در اینجا مشاهده میکنید که گروه دارایی جاری به همراه حسابهای کل آن در یک سطح نشان داده میشود که این امر خوانایی گزارش را کم میکند.
این گزارش قرار است در 3 سطح کل و معین و تفصیلی گرفته شود.
با تشکر
new PdfReport().DocumentPreferences(doc => { doc.RunDirection(PdfRunDirection.RightToLeft); doc.Orientation(PageOrientation.Portrait); doc.PageSize(PdfPageSize.A4); doc.DocumentMetadata(new DocumentMetadata { Author = _company, Application = "نرم افزار ", Keywords = "سود فاکتورها", Subject = "سود فاکتورها", Title = "سود فاکتورها" }); }) .DefaultFonts(fonts => { fonts.Path(Path.Combine(Environment.CurrentDirectory, @"fonts\irsans.ttf"), Path.Combine(Environment.CurrentDirectory, @"fonts\verdana.ttf")); fonts.Size(8); }) .PagesFooter(footer => { footer.DefaultFooter(DateTimeHelper.ToPersianShortDateString(DateTime.Now,true,true)); }) .PagesHeader(header => { header.HtmlHeader(rptHeader => { // Register fonts and styles var styleSheet = new iTextSharp.text.html.simpleparser.StyleSheet(); iTextSharp.text.FontFactory.Register(Path.Combine(Environment.CurrentDirectory, @"fonts\BFARNAZ.TTF"), "Farnaz"); styleSheet.LoadStyle("report-header", "size", "12pt"); styleSheet.LoadStyle("report-header", "font-family", "Farnaz"); iTextSharp.text.FontFactory.Register(Path.Combine(Environment.CurrentDirectory, @"fonts\BNAZANIN.TTF"), "Bnazanin"); styleSheet.LoadStyle("report-desc", "size", "12pt"); styleSheet.LoadStyle("report-desc", "font-family", "Bnazanin"); rptHeader.PageHeaderProperties(new HeaderBasicProperties { RunDirection = PdfRunDirection.RightToLeft, HorizontalAlignment = PdfRpt.Core.Contracts.HorizontalAlignment.Center, ShowBorder = false, PdfFont = header.PdfFont, StyleSheet = styleSheet }); rptHeader.AddPageHeader(pageHeader => { var title = "سود فاکتورها"; var companyName = string.Concat("شرکت / فروشگاه ", _company); var financialYear = string.Concat("سال مالی ", _financialPeriod.GetCurrentFinancialPeriodTitle()); return string.Format(@" <table cellpadding='0' cellspacing='0' class='report-header'> <tr> <td>{0}</td> </tr> <tr> <td>{1}</td> </tr> <tr> <td>{2}</td> </tr> </table> <table cellpadding='0' cellspacing='0' class='report-desc'> <tr> <td align='left' width='10%'>{3}</td><td align='left' width='10%'>از تاریخ:</td> <td align='left' width='65%'>{4}</td><td align='left' width='15%'>از شماره:</td> </tr> <tr> <td align='left' width='10%'>{5}</td> <td align='left' width='10%'>تا تاریخ:</td> <td align='left' width='65%'>{6}</td> <td align='left' width='15%'>تا شماره:</td> </tr> </table> " , title, companyName, financialYear, DateTimeHelper.ToPersianShortDateString(_fromDate), _fromNumber, DateTimeHelper.ToPersianShortDateString(_toDate), _toNumber ); }); }); }) .MainTableTemplate(template => { template.CustomTemplate(new GrayTemplate()); }) .MainTablePreferences(table => { table.ColumnsWidthsType(TableColumnWidthType.Relative); table.NumberOfDataRowsPerPage(0); }) .MainTableDataSource(dataSource => { var factorsProfitItems = FactorsProfitItems.Select(g => new { Number = g.Number, SaleDate = g.SaleDate, Customer = g.Customer, Description = g.Description, FactorProfit = g.FactorProfit, Discount = g.Discount, RealProfit = g.RealProfit }); dataSource.StronglyTypedList(factorsProfitItems); }) .MainTableColumns(columns => { columns.AddColumn(column => { column.PropertyName<FactorsProfitItemPrintViewModel>(x => x.Number); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Center); column.IsVisible(true); column.Order(0); column.Width(1); column.HeaderCell("ش فاکتور"); }); columns.AddColumn(column => { column.PropertyName<FactorsProfitItemPrintViewModel>(x => x.SaleDate); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Left); column.IsVisible(true); column.Order(1); column.Width(1); column.ColumnItemsTemplate(template => { template.TextBlock(); template.DisplayFormatFormula(obj => DateTimeHelper.ToPersianShortDateString((DateTime)obj)); }); column.HeaderCell("تاریخ"); }); columns.AddColumn(column => { column.PropertyName<FactorsProfitItemPrintViewModel>(x => x.Customer); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Left); column.IsVisible(true); column.Order(2); column.Width(1.5f); column.HeaderCell("مشتری"); }); columns.AddColumn(column => { column.PropertyName<FactorsProfitItemPrintViewModel>(x => x.Description); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Center); column.IsVisible(true); column.Order(3); column.Width(2); column.HeaderCell("شرح"); }); columns.AddColumn(column => { column.PropertyName<FactorsProfitItemPrintViewModel>(x => x.FactorProfit); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Right); column.IsVisible(true); column.Order(4); column.Width(1); column.ColumnItemsTemplate(template => { template.TextBlock(); template.DisplayFormatFormula(obj => string.Format("{0:n0}", obj)); }); column.AggregateFunction(aggregateFunction => { aggregateFunction.NumericAggregateFunction(AggregateFunction.Sum); aggregateFunction.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); column.HeaderCell("سود فاکتور"); }); columns.AddColumn(column => { column.PropertyName<FactorsProfitItemPrintViewModel>(x => x.Discount); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Right); column.IsVisible(true); column.Order(5); column.Width(1); column.ColumnItemsTemplate(template => { template.TextBlock(); template.DisplayFormatFormula(obj => string.Format("{0:n0}", obj)); }); column.AggregateFunction(aggregateFunction => { aggregateFunction.NumericAggregateFunction(AggregateFunction.Sum); aggregateFunction.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); column.HeaderCell("تخفیف"); }); columns.AddColumn(column => { column.PropertyName<FactorsProfitItemPrintViewModel>(x => x.RealProfit); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Right); column.IsVisible(true); column.Order(6); column.Width(1); column.ColumnItemsTemplate(template => { template.TextBlock(); template.DisplayFormatFormula(obj => string.Format("{0:n0}", obj)); }); column.AggregateFunction(aggregateFunction => { aggregateFunction.NumericAggregateFunction(AggregateFunction.Sum); aggregateFunction.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); column.HeaderCell("سود خالص"); }); }) .MainTableSummarySettings(summarySettings => { summarySettings.OverallSummarySettings("جمع کل"); summarySettings.PreviousPageSummarySettings("نقل از صفحه قبل"); summarySettings.PageSummarySettings("جمع کل صفحه"); }) .MainTableEvents(events => { events.DataSourceIsEmpty(message: "داده ای جهت نمایش وجود ندارد."); events.CellCreated(args => { args.Cell.BasicProperties.CellPadding = 4f; }); events.MainTableAdded(args => { var taxTable = new PdfGrid(3); // Create a clone of the MainTable's structure taxTable.RunDirection = 3; taxTable.SetWidths(new float[] { 3, 3, 3 }); taxTable.WidthPercentage = 100f; taxTable.SpacingBefore = 60f; taxTable.AddSimpleRow( (data, cellProperties) => { data.Value = "امضاء تنظیم کننده"; cellProperties.ShowBorder = false; cellProperties.PdfFont = args.PdfFont; }, (data, cellProperties) => { data.Value = "امضاء حسابدار"; cellProperties.ShowBorder = false; cellProperties.PdfFont = args.PdfFont; }, (data, cellProperties) => { data.Value = "امضاء مدیرعامل"; cellProperties.ShowBorder = false; cellProperties.PdfFont = args.PdfFont; }); args.PdfDoc.Add(taxTable); }); }) .Export(export => { export.ToExcel("خروجی اکسل"); export.ToCsv("خروجی CSV"); export.ToXml("خروجی XML"); }) .Generate(data => data.AsPdfFile(_documentSource));
با تشکر.
columns.AddColumn(column => { column.PropertyName<VoucherRowPrintViewModel>(x => x.Title); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Left); column.IsVisible(true); column.Order(1); column.Width(3); column.HeaderCell("شرح"); }); columns.AddColumn(column => { column.PropertyName<VoucherRowPrintViewModel>(x => x.Creditor); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Right); column.IsVisible(true); column.Order(4); column.Width(2); column.ColumnItemsTemplate(template => { template.TextBlock(); template.DisplayFormatFormula(obj => string.Format("{0:n0}", obj)); }); column.AggregateFunction(aggregateFunction => { aggregateFunction.NumericAggregateFunction(AggregateFunction.Sum); aggregateFunction.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); column.HeaderCell("بستانکار"); });
public object ProcessingBoundary(IList<SummaryCellData> columnCellsSummaryData) { if (columnCellsSummaryData == null || !columnCellsSummaryData.Any()) return 0; var list = columnCellsSummaryData; var lastItem = list.Last(); return lastItem.CellData.PropertyValue; }
Method 'set_DisplayFormatFormula' in type 'Hezareh.Modules.Accounting.Reporting.ViewModels.MySampleAggregateFunction' from assembly 'Hezareh.Modules.Accounting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
public class MySampleAggregateFunction : IAggregateFunction { public MySampleAggregateFunction() { } /// <summary> /// Fires before rendering of this cell. /// Now you have time to manipulate the received object and apply your custom formatting function. /// It can be null. /// </summary> public Func<object, string> DisplayFormatFormula { set; get; } #region Fields (6) double _groupAvg; long _groupRowNumber; double _groupSum; double _overallAvg; long _overallRowNumber; double _overallSum; #endregion Fields #region Properties (2) /// <summary> /// Returns current groups' aggregate value. /// </summary> public object GroupValue { get { return _groupAvg; } } /// <summary> /// Returns current row's aggregate value without considering the presence of the groups. /// </summary> public object OverallValue { get { return _overallAvg; } } #endregion Properties #region Methods (4) // Public Methods (1) /// <summary> /// Fires after adding a cell to the main table. /// </summary> /// <param name="cellDataValue">Current cell's data</param> /// <param name="isNewGroupStarted">Indicated starting a new group</param> public void CellAdded(object cellDataValue, bool isNewGroupStarted) { checkNewGroupStarted(isNewGroupStarted); _overallRowNumber++; _groupRowNumber++; double cellValue; if (double.TryParse(cellDataValue.ToSafeString(), NumberStyles.AllowThousands | NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture, out cellValue)) { groupAvg(cellValue); overallAvg(cellValue); } } // Private Methods (3) private void checkNewGroupStarted(bool newGroupStarted) { if (newGroupStarted) { _groupRowNumber = 0; _groupAvg = 0; _groupSum = 0; } } private void groupAvg(double cellValue) { _groupSum += cellValue; _groupAvg = _groupSum / _groupRowNumber; } private void overallAvg(double cellValue) { _overallSum += cellValue; _overallAvg = _overallSum / _overallRowNumber; } /// <summary> /// A general method which takes a list of data and calculates its corresponding aggregate value. /// It will be used to calculate the aggregate value of each pages individually, with considering the previous pages data. /// </summary> /// <param name="columnCellsSummaryData">List of data</param> /// <returns>Aggregate value</returns> public object ProcessingBoundary(IList<SummaryCellData> columnCellsSummaryData) { if (columnCellsSummaryData == null || !columnCellsSummaryData.Any()) return 0; var list = columnCellsSummaryData; var lastItem = list.Last(); return lastItem.CellData.PropertyValue; } #endregion Methods }
columns.AddColumn(column => { column.PropertyName<VoucherRowPrintViewModel>(x => x.CaclulatedRemains); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Right); column.IsVisible(true); column.Order(5); column.Width(1.5f); column.ColumnItemsTemplate(template => { template.TextBlock(); template.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); column.AggregateFunction(aggregateFunction => { aggregateFunction.CustomAggregateFunction(new MySampleAggregateFunction()); aggregateFunction.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); column.HeaderCell("مانده"); });