View Full Version : حرفه ای: ایجاد گزارش از ترکیب سه جدول
hosseines
شنبه 23 مرداد 1395, 20:01 عصر
سلام خدمت دوستان
من سه تا جدول بصورت شکل زیر دارم که می خوام خروجی گزارشم بصورت تصویر دوم باشه چکار باید کنم تو گزارش باید انجام بدم یا در بانک اطلاعاتی..؟
juza66
شنبه 23 مرداد 1395, 21:22 عصر
سلام
نمیدونم گزارشت رو با چی درست میکنی
ولی با استیمول سافت میتونی، یک دیتاست تویی استیمول بسازی با فیلد هر سه تیبل، و تویی سی شارپ جداولت رو join کنی و یک دیتاتیبل بسازی پاسشون بدی به دیتاتیبلت و موقعی که چاپ میزنی دیتاتیبلت رو پاس بدی به چاپت. به همین سادگی
موفق و پیروز
hosseines
شنبه 23 مرداد 1395, 22:03 عصر
ممنون دوست عزیز
با استیمول میخوام انجام بدم.
مشکل من اینه که میخوام تعداد ستون های گزارش متغییر باشه یعنی ممکن تو یکگزارش سه ستون و در گزارش دیگه دو 5 ستون داشته باشم.
و همچنین میخوام سرفصل ستون های گزارشم از جدول کد باشه باید چکار کنم..؟
reza_ali202000
شنبه 23 مرداد 1395, 22:33 عصر
از ذستور pivot استفاده کنید.
http://www.codeproject.com/Tips/500811/Simple-Way-To-Use-Pivot-In-SQL-Query
http://stackoverflow.com/questions/15931607/convert-rows-to-columns-using-pivot-in-sql-server
omid nasri
یک شنبه 24 مرداد 1395, 21:59 عصر
اگر بخوام خیلی راحت جواب بدم و به نتیجه برسی، اگر داری از استیمول سافت استفاده میکنی این امکان برای شما مقدر است که از طرف برنامه Business Objects ارسال کنید، در این مورد میتوان به نوع مدل ارسالی خروجی متفاوت هم داشته باشی با Type مشخص.
hosseines
دوشنبه 25 مرداد 1395, 14:11 عصر
اگر بخوام خیلی راحت جواب بدم و به نتیجه برسی، اگر داری از استیمول سافت استفاده میکنی این امکان برای شما مقدر است که از طرف برنامه Business Objects ارسال کنید، در این مورد میتوان به نوع مدل ارسالی خروجی متفاوت هم داشته باشی با Type مشخص.
ممنون
میتونید بیشتر توضیح بدید یا نمونه بزارید...
barnamenevisjavan
دوشنبه 25 مرداد 1395, 17:37 عصر
در کل راه های زیادی وجود داره اما بهترین کار (به نظر من) داخل sql یه View بسازید و جداول و فیلدهای دلخواهتون رو انتخاب کنید (تبدیل به یه جدول شخصی سازی شده میشه) در نهایت توی گزارش این ویو رو فراخوانی کنید
omid nasri
دوشنبه 25 مرداد 1395, 18:58 عصر
ممنون
میتونید بیشتر توضیح بدید یا نمونه بزارید...
یک نمونه که استفاده شده است:
http://www.omidnasri.com/asp-net-mvc/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4-%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-stimulsoft-%D8%AF%D8%B1-asp-net-mvc
کافیست همین روال رو برای دسکتاپ پیاده سازی کنید.
hosseines
دوشنبه 25 مرداد 1395, 22:00 عصر
از ذستور pivot استفاده کنید.
http://www.codeproject.com/Tips/500811/Simple-Way-To-Use-Pivot-In-SQL-Query
http://stackoverflow.com/questions/15931607/convert-rows-to-columns-using-pivot-in-sql-server
با کد زیر تونستم تقریبا به جواب برسم
DECLARE @cols AS NVARCHAR(MAX)='';
DECLARE @query AS NVARCHAR(MAX)='';
SELECT @cols = @cols + QUOTENAME(NameF) + ',' FROM (select distinct NameF from Table_1 where IDsanad=1 ) as tmp
select @cols = substring(@cols, 0, len(@cols))
set @query =
'SELECT * from
(
select NameF, NameM, Mablagh from Table_1
) src
pivot
(
Sum(Mablagh) for NameF in (' + @cols + ')
) piv'
execute(@query)
141993
دو تا مشکل دارم
اول اینکه می خوام بجای مقادیر null مقدار صفر نمایش داده بشه
دوم میخوام یه ستون داشته باشم که جمع هر ردیف رو نمایش بده
باید چکار کنم..؟
Mahmoud.Afrad
سه شنبه 26 مرداد 1395, 04:10 صبح
با این طراحی عملا دو جدول قسمت و کد بدون استفاده خواهند ماند و جدول سند هم دارای افزونگی داده خواهد شد. برای نرمال سازی جدول سند، به جای NameM باید آیدی قسمت و به جای NameF باید آیدی جدول کد به عنوان کلید خارجی استفاده شوند.
از فانکشن ISNULL میتونید برای تبدیل مقدار NULL به مقدار مورد نظر خودتون(در اینجا صفر) استفاده کنید.
برای تبدیل مقادیر null به صفر باید سطرهایی تولید کنید که مبلغ اونها null باشد. هر سطر جدول کد با تمام سطرهای جدول قسمت ترکیب شوند برای این کار میتونید آیدی جدول کد و آیدی جدول قسمت رو با هم به صورت دکارتی ترکیب کنید(Cross join) و بعد ، از حاصل آن در join با جدول سند استفاده کنید(left join). حاصل رو برای بدست آوردن نام هر آیدی با دو جدول دیگر join میکنید
برای بدست آوردن مجموع سطر و ستون هم در لینک زیر یک مثال خوب هست
http://stackoverflow.com/a/28233641
hosseines
پنج شنبه 28 مرداد 1395, 21:10 عصر
ممنون دوست عزیز مشکلم حل شد.
ولی حالا میخوام اطلاعات را بفرستم استیمول برای گزارش چکار کنم البته باید در نظر بگیریم که تعداد ستون ها متغییر می باشد ممکن است 5 ستون باشد یا 10 ستون
rahmatipoor
پنج شنبه 28 مرداد 1395, 22:51 عصر
شبیه این عبارت رو توی همین سایت سرچ کن . نمونه هست. قبلا دیدم :
ایجاد گزارش پویا با استیمول
این هم نتایج تحقیقات چند وقت قبل بنده :
http://s2.picofile.com/file/8264273176/Dynamic_Report.rar.html
hosseines
جمعه 29 مرداد 1395, 09:53 صبح
شبیه این عبارت رو توی همین سایت سرچ کن . نمونه هست. قبلا دیدم : ایجاد گزارش پویا با استیمول این هم نتایج تحقیقات چند وقت قبل بنده : http://s2.picofile.com/file/8264273176/Dynamic_Report.rar.html ممنون دوست عزیز ولی امکان دانلود فایل وجود ندارد
vb341
جمعه 29 مرداد 1395, 11:40 صبح
همونطور که دوستان گفتن شما ابتدا یک View با استفاده از سه جدول طراحی کنید و بعد از گزارش نوع Cross Tab در استیمول استفاده کنید
hosseines
جمعه 29 مرداد 1395, 13:26 عصر
همونطور که دوستان گفتن شما ابتدا یک View با استفاده از سه جدول طراحی کنید و بعد از گزارش نوع Cross Tab در استیمول استفاده کنید دوست عزیز من اطلاعاتی که می خواهم رو در دیتاگرید تونستم نمایش بدم الان میخوام که بفرستم به استیمول برای چاپ و مشکلم اینجاست که تعداد ستون ها متغییر می باشد...
reza_ali202000
جمعه 29 مرداد 1395, 14:02 عصر
ممنون دوست عزیز مشکلم حل شد.
ولی حالا میخوام اطلاعات را بفرستم استیمول برای گزارش چکار کنم البته باید در نظر بگیریم که تعداد ستون ها متغییر می باشد ممکن است 5 ستون باشد یا 10 ستون
نظرم اینه که بیاری توی دیتاگریدویو و بعد با ریپورت ویور چاپش کنی. اتفاقا کلاسهای اماده زیادی در این رابطه هست.
print datagridview
rahmatipoor
جمعه 29 مرداد 1395, 14:50 عصر
یه کلاس به پروژه ات اضافه کن و اسم اون رو ReportGenerator بذار و کدهای زیر رو توی اون کپی کن .
فقط بعد از کپی کدها namespace اون رو عوض کن
using System;
using System.Data;
using System.Drawing;
using Stimulsoft.Base;
using Stimulsoft.Base.Drawing;
using Stimulsoft.Report;
using Stimulsoft.Report.Components;
using Stimulsoft.Report.Export;
namespace Daftar_Rahnama
{
internal class ReportGenerator
{
StiPageOrientation _PageOrientation;
string _ReportTitle;
StiBorder _PageBorder;
StiBorder _ReportTitleBorder;
double _ReportTitleHeight;
StiTextHorAlignment _ReportTitleHorAlignment;
StiVertAlignment _ReportTitleVertAlignment;
Font _ReportTitleFont;
double _HeaderBandHeight;
StiBorder _HeaderBandBorder;
double _DataBandHeight;
StiBorder _DataBandBorder;
bool _DataBandCanGrow;
StiTextHorAlignment _HeaderColumnsHorAlignment;
StiVertAlignment _HeaderColumnsVertAlignment;
StiBrush _HeaderColumnsBrush;
StiBorderSides _HeaderColumnsBorderSide;
Font _HeaderColumnsFont;
StiTextHorAlignment _DataTextHorAlignment;
StiVertAlignment _DataTextVertAlignment;
StiBorderSides _DataTextBorderSides;
Font _DataTextFont;
bool _DataTextWordWrap;
StiBrush _FooterBandBrush;
string _FooterTextValue;
StiTextHorAlignment _FooterTextHorAlignment;
StiVertAlignment _FooterTextVertAlignment;
StiBrush _FooterTextBrush;
Font _FooterTextFont;
StiBorder _FooterTextBorder;
public ReportGenerator()
{
PageOrientation = StiPageOrientation.Landscape;
PageBorder = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.None);
ReportTitleBorder = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.None);
ReportTitleHeight = 1.5f;
ReportTitleHorAlignment = StiTextHorAlignment.Center;
ReportTitleVertAlignment = StiVertAlignment.Center;
ReportTitleFont = new Font("B Mitra", 20f);
HeaderBandHeight = 0.5f;
HeaderBandBorder = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid);
DataBandHeight = 0.5f;
DataBandBorder = new StiBorder(StiBorderSides.Left, Color.Black, 1, StiPenStyle.Solid);
DataBandCanGrow = true;
HeaderColumnsHorAlignment = StiTextHorAlignment.Center;
HeaderColumnsVertAlignment = StiVertAlignment.Center;
HeaderColumnsBrush = new StiSolidBrush(Color.Wheat);
HeaderColumnsBorderSide = StiBorderSides.All;
HeaderColumnsFont = new Font("Tahoma", 8f,FontStyle.Bold);
DataTextHorAlignment = StiTextHorAlignment.Center;
DataTextVertAlignment = StiVertAlignment.Center;
DataTextBorderSides = StiBorderSides.All;
DataTextFont = new Font("Tahoma", 8f);
DataTextWordWrap = true;
FooterBandBrush = new StiSolidBrush(Color.WhiteSmoke);
FooterTextValue = "تعداد رکوردهای چاپ شده: {Count()}";
FooterTextHorAlignment = StiTextHorAlignment.Right;
FooterTextVertAlignment = StiVertAlignment.Center;
FooterTextBrush = new StiSolidBrush(Color.WhiteSmoke);
FooterTextFont = new Font("Tahoma", 8f);
FooterTextBorder = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid);
}
public StiPageOrientation PageOrientation { get { return _PageOrientation; } set { _PageOrientation = value; } }
public string ReportTitle { get { return _ReportTitle; } set { _ReportTitle = value; } }
public StiBorder PageBorder { get { return _PageBorder; } set { _PageBorder = value; } }
public StiBorder ReportTitleBorder { get { return _ReportTitleBorder; } set { _ReportTitleBorder = value; } }
public double ReportTitleHeight { get { return _ReportTitleHeight; } set { _ReportTitleHeight = value; } }
public StiTextHorAlignment ReportTitleHorAlignment { get { return _ReportTitleHorAlignment; } set { _ReportTitleHorAlignment = value; } }
public StiVertAlignment ReportTitleVertAlignment { get { return _ReportTitleVertAlignment; } set { _ReportTitleVertAlignment = value; } }
public Font ReportTitleFont { get { return _ReportTitleFont; } set { _ReportTitleFont = value; } }
public double HeaderBandHeight { get { return _HeaderBandHeight; } set { _HeaderBandHeight = value; } }
public StiBorder HeaderBandBorder { get { return _HeaderBandBorder; } set { _HeaderBandBorder = value; } }
public double DataBandHeight { get { return _DataBandHeight; } set { _DataBandHeight = value; } }
public StiBorder DataBandBorder { get { return _DataBandBorder; } set { _DataBandBorder = value; } }
public bool DataBandCanGrow { get { return _DataBandCanGrow; } set { _DataBandCanGrow = value; } }
public StiTextHorAlignment HeaderColumnsHorAlignment { get { return _HeaderColumnsHorAlignment; } set { _HeaderColumnsHorAlignment = value; } }
public StiVertAlignment HeaderColumnsVertAlignment { get { return _HeaderColumnsVertAlignment; } set { _HeaderColumnsVertAlignment = value; } }
public StiBrush HeaderColumnsBrush { get { return _HeaderColumnsBrush; } set { _HeaderColumnsBrush = value; } }
public StiBorderSides HeaderColumnsBorderSide { get { return _HeaderColumnsBorderSide; } set { _HeaderColumnsBorderSide = value; } }
public Font HeaderColumnsFont { get { return _HeaderColumnsFont; } set { _HeaderColumnsFont = value; } }
public StiTextHorAlignment DataTextHorAlignment { get { return _DataTextHorAlignment; } set { _DataTextHorAlignment = value; } }
public StiVertAlignment DataTextVertAlignment { get { return _DataTextVertAlignment; } set { _DataTextVertAlignment = value; } }
public StiBorderSides DataTextBorderSides { get { return _DataTextBorderSides; } set { _DataTextBorderSides = value; } }
public Font DataTextFont { get { return _DataTextFont; } set { _DataTextFont = value; } }
public bool DataTextWordWrap { get { return _DataTextWordWrap; } set { _DataTextWordWrap = value; } }
public StiBrush FooterBandBrush { get { return _FooterBandBrush; } set { _FooterBandBrush = value; } }
public string FooterTextValue { get { return _FooterTextValue; } set { _FooterTextValue = value; } }
public StiTextHorAlignment FooterTextHorAlignment { get { return _FooterTextHorAlignment; } set { _FooterTextHorAlignment = value; } }
public StiVertAlignment FooterTextVertAlignment { get { return _FooterTextVertAlignment; } set { _FooterTextVertAlignment = value; } }
public StiBrush FooterTextBrush { get { return _FooterTextBrush; } set { _FooterTextBrush = value; } }
public Font FooterTextFont { get { return _FooterTextFont; } set { _FooterTextFont = value; } }
public StiBorder FooterTextBorder { get { return _FooterTextBorder; } set { _FooterTextBorder = value; } }
public void PrintReport(DataTable dtDataSource)
{
DataView dataView = dtDataSource.DefaultView;
StiReport report = new StiReport();
report.ScriptLanguage = StiReportLanguageType.CSharp;
report.RegData("view", dataView);
//Fill dictionary
report.Dictionary.Synchronize();
StiPage page = report.Pages.Items[0];
page.Border = _PageBorder;
page.Orientation = _PageOrientation;
//Create Report Title Band
StiReportTitleBand rt = new StiReportTitleBand();
rt.Height = _ReportTitleHeight;
rt.Name = "ReportTitleBand";
rt.Border = _ReportTitleBorder;
//Create Text on Report Title Band
StiText st = new StiText(new RectangleD(0, 0, page.Width, 1f));
st.Text.Value = _ReportTitle;
st.HorAlignment = _ReportTitleHorAlignment;
st.VertAlignment = _ReportTitleVertAlignment;
st.Name = "TitleText1";
st.Font = _ReportTitleFont;
rt.Components.Add(st);
page.Components.Add(rt);
//Create HeaderBand
StiHeaderBand headerBand = new StiHeaderBand();
headerBand.Height = _HeaderBandHeight;
headerBand.Name = "HeaderBand";
headerBand.Border = _HeaderBandBorder;
page.Components.Add(headerBand);
//Create DataBand
StiDataBand dataBand = new StiDataBand();
dataBand.DataSourceName = "view" + dataView.Table.TableName;
dataBand.Height = _DataBandHeight;
dataBand.Name = "DataBand";
dataBand.Border = _DataBandBorder;
dataBand.CanGrow = _DataBandCanGrow;
page.Components.Add(dataBand);
//Create texts
Double pos = 0;
Double columnWidth = StiAlignValue.AlignToMinGrid(page.Width / dataView.Table.Columns.Count, 0.1, false);
int nameIndex = 1;
for (int i = dataView.Table.Columns.Count - 1; i != -1; i--)
{
DataColumn column = dataView.Table.Columns[i];
//Create text on header
StiText headerText = new StiText(new RectangleD(pos, 0, columnWidth, 0.5f));
headerText.Text.Value = column.Caption;
headerText.HorAlignment = _HeaderColumnsHorAlignment;
headerText.VertAlignment = _HeaderColumnsVertAlignment;
headerText.Name = "HeaderText" + nameIndex.ToString();
headerText.Brush = _HeaderColumnsBrush;
headerText.Border.Side = _HeaderColumnsBorderSide;
headerBand.Components.Add(headerText);
headerText.Font = _HeaderColumnsFont;
//Create text on Data Band
StiText dataText = new StiText(new RectangleD(pos, 0, columnWidth, 0.5f));
dataText.Text.Value = "{view" + dataView.Table.TableName + "." + Stimulsoft.Report.CodeDom.StiCodeDomSerializator.R eplaceSymbols(column.ColumnName) + "}";
dataText.Name = "DataText" + nameIndex.ToString();
dataText.HorAlignment = _DataTextHorAlignment;
dataText.VertAlignment = _DataTextVertAlignment;
dataText.Font = _DataTextFont;
dataText.Border.Side = _DataTextBorderSides;
dataText.WordWrap = _DataTextWordWrap;
dataBand.Components.Add(dataText);
pos += columnWidth;
nameIndex++;
}
//Create FooterBand
StiFooterBand footerBand = new StiFooterBand();
footerBand.Height = 0.5f;
footerBand.Name = "FooterBand";
footerBand.Border = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid);
footerBand.Left = dataBand.Left;
footerBand.Width = dataBand.Width;
footerBand.Brush = _FooterBandBrush;
page.Components.Add(footerBand);
//Create text on footer
StiText footerText = new StiText(new RectangleD(0, 0, page.Width, 0.5f));
footerText.Text.Value = _FooterTextValue;
footerText.HorAlignment = _FooterTextHorAlignment;
footerText.VertAlignment = _FooterTextVertAlignment;
footerText.Name = "FooterText";
footerText.Brush = _FooterTextBrush;
footerText.Font = _FooterTextFont;
footerText.Border = _FooterTextBorder;
footerBand.Components.Add(footerText);
//Render without progress bar
report.Render(false);
report.Show();
}
public void ExportToExcel(DataTable data, string FileName)
{
StiReport Report = new StiReport();
Font _HeaderFont = new Font("Tahoma", 8f, FontStyle.Bold);
Font _RowsFont = new Font("Tahoma", 8f, FontStyle.Regular);
//Add data to datastore
Report.RegData("data", data);
//Fill dictionary
Report.Dictionary.Synchronize();
Report.Dictionary.DataSources[0].Name = "data";
Report.Dictionary.DataSources[0].Alias = "data";
StiPage page = Report.Pages[0];
page.Orientation = Stimulsoft.Report.Components.StiPageOrientation.La ndscape;
page.RightToLeft = true;
page.Width = 100;
//Create HeaderBand
StiHeaderBand headerBand = new StiHeaderBand();
headerBand.Height = 0.5;
headerBand.Name = "HeaderBand";
headerBand.SetFont(_RowsFont);
page.Components.Add(headerBand);
//Create Databand
StiDataBand dataBand = new StiDataBand();
dataBand.DataSourceName = "data";
dataBand.Height = 0.5;
dataBand.Name = "DataBand";
dataBand.SetFont(_RowsFont);
page.Components.Add(dataBand);
//Create texts
double pos = 0;
//double columnWidth = StiAlignValue.AlignToMinGrid(page.Width / data.Columns.Count, 0.1, true);
double columnWidth = 2;
int nameIndex = 1;
foreach (DataColumn dataColumn in data.Columns)
{
//Create text on header
StiText headerText = new StiText(new RectangleD(pos, 0, columnWidth, 0.5));
headerText.Text.Value = dataColumn.Caption;
headerText.HorAlignment = StiTextHorAlignment.Center;
headerText.VertAlignment = StiVertAlignment.Center;
headerText.Name = "HeaderText" + nameIndex.ToString();
headerText.Font = _HeaderFont;
headerText.Brush = new StiSolidBrush(Color.WhiteSmoke);
headerText.Border.Side = StiBorderSides.All;
headerBand.Components.Add(headerText);
//Create text on Data Band
StiText dataText = new StiText(new RectangleD(pos, 0, columnWidth, 0.5));
dataText.Text.Value = "{data." + Stimulsoft.Report.CodeDom.StiCodeDomSerializator.R eplaceSymbols(dataColumn.ColumnName) + "}";
dataText.Name = "DataText" + nameIndex.ToString();
dataText.Font = _RowsFont;
dataText.Border.Side = StiBorderSides.All;
dataText.HorAlignment = StiTextHorAlignment.Center;
StiCondition condition = new StiCondition();
condition.BackColor = Color.White;
condition.TextColor = Color.Black;
condition.Font = _RowsFont;
condition.Expression = "(Line & 1) == 1";
condition.Item = StiFilterItem.Expression;
dataText.Conditions.Add(condition);
dataBand.Components.Add(dataText);
pos = pos + columnWidth;
nameIndex++;
}
//Create FooterBand
StiFooterBand footerBand = new StiFooterBand();
footerBand.Height = 0.5;
footerBand.Name = "FooterBand";
page.Components.Add(footerBand);
//Render without progress bar
Report.Render(false);
StiExcel2007ExportSettings ExcelSettings = new StiExcel2007ExportSettings();
ExcelSettings.UseOnePageHeaderAndFooter = true;
ExcelSettings.ExportObjectFormatting = true;
StiOptions.Export.Excel2007.ColumnsRightToLeft = true;
StiOptions.Export.Excel2007.RemoveEmptySpaceAtBott om = true;
Report.ExportDocument(StiExportFormat.Excel2007, FileName, ExcelSettings);
}
}
}
بعد یه نمونه از این کلاس درست کن و از متد PrintReport که یک دیتا تیبل رو به عنوان ورودی میگیره استفاده کن . اینطوری :
ReportGenerator report = new ReportGenerator();
report.ReportTitle = "ليست اطلاعات و مشخصات افراد ";
report.ReportTitleFont = new Font("B Yekan", 12f);
report.HeaderColumnsFont = new Font("B Nazanin", 8f, FontStyle.Bold);
report.PageOrientation = Stimulsoft.Report.Components.StiPageOrientation.La ndscape;
report.DataBandCanGrow = true;
report.DataTextFont = new Font("B Nazanin", 8f, FontStyle.Regular);
report.DataTextWordWrap = true;
DataTable dt = PreparPrintDataTable();
report.PrintReport(dt);
البته به توی خط یکی به آخر باید دیتاتیبل خودت رو مشخص کنی .
همچنین کلاسی که گفتم یه متد برای استخراج به اکسل به نام ExportToExcel هم داره که میتونی استفاده کنی
hosseines
دوشنبه 01 شهریور 1395, 20:49 عصر
ممنو میشم بیشتر توضیح بدید
نمونه اگر دارید بزارید لطفا...
rahmatipoor
سه شنبه 02 شهریور 1395, 00:36 صبح
گفتم که یک کلاس به برنامه تون اضافه کنید و اسمش رو ReportGenerator بذارید و محتویاتی که چند پست قبل گفتم رو بهش اضافه کنید.
بعدش شما وقتی کوئری تون رو اجرا میکنید ، معمولا جوابش رو به صورت دیتاتیبل یا دیتاویو می گیرید.
کافیه هر جایی که خواستید با دستور
ReportGenerator report = new ReportGenerator();
یک نمونه از کلاس تون ایجاد کنید.
بعدش با استفاده از متد PrintReport از نمونه کلاسی که ایجاد کردید استفاده کنید. ( این متد یک دیتاتیبل رو به عنوان ورودی میگیره و به صورت اتوماتیک و پویا بر اساس تعداد ستونهای دیتاتیبل گزارش رو براتون ایجاد و نمایش میده )
فرض کنید نام دیتا تیبل شما dt هست. حالا قبلش هر جوری این dt رو پر کردید.
کافیه این کد رو توی دکمه تون بنویسید
report .PrintReport(dt);
البته قبلش باید یه نمونه از کلاس ReportGenerator ایجاد کرده باشید.( توی همین پست چند خط قبل توضیح دادم)
پس کاملش این میشه :
ReportGenerator report = new ReportGenerator();
report .PrintReport(dt);
hosseines
سه شنبه 02 شهریور 1395, 06:11 صبح
ممنون
پس نیازی نیست استیمول رو به فرم اضافه کنم یا در استیمول کاری کنم..؟
rahmatipoor
سه شنبه 02 شهریور 1395, 14:23 عصر
نه
فقط به رفرنسهای برنامه، رفرنسهای استیمول رو اضافه کنید
hosseines
سه شنبه 02 شهریور 1395, 16:02 عصر
نه
فقط به رفرنسهای برنامه، رفرنسهای استیمول رو اضافه کنید
خیلی خیلی ممنون دوست عزیز.
با روشی که گفتی تونستم انجام بدم فقط اگه بخوام نام سر ستون دو تا از ستون های دیتاگرید که به استمیول میفرستم رو تغییر بدم و عرض دو ستون رو تغییر بدم باید چکار کنم
rahmatipoor
سه شنبه 02 شهریور 1395, 17:27 عصر
تغییر عنوان ستونها
dt.Columns["نام ستون"].Caption ="نام دلخواه";
این کار رو قبل از کد ایجاد گزارش بنویسید برای هر ستونی که می خواهید تغییر عنوان بدید
hosseines
سه شنبه 02 شهریور 1395, 20:17 عصر
تغییر عنوان ستونها
dt.Columns["نام ستون"].Caption ="نام دلخواه";
این کار رو قبل از کد ایجاد گزارش بنویسید برای هر ستونی که می خواهید تغییر عنوان بدید
دستت درد نکنه.
فقط چجوری باید عرض ستون تغییر تغییر بدم...؟
rahmatipoor
چهارشنبه 03 شهریور 1395, 10:06 صبح
تغییر عرض ستون رو هنوز انجام ندادم
اگه به نتیجه رسیدم اینجا میذارم
hosseines
چهارشنبه 03 شهریور 1395, 15:09 عصر
تغییر عرض ستون رو هنوز انجام ندادم
اگه به نتیجه رسیدم اینجا میذارم
ممنون دوست عزیز
پس بیصبرانه منتظرم
h.gheidrlou
دوشنبه 11 اردیبهشت 1396, 21:16 عصر
وقعا جای تشکر داره که اینقدر زحمت کشیدید
ولی خب نواقصی هم داره
من جمله گروه بندی== جمع هرگروه و تعین استیل بهتر برای گزارش
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.