View Full Version : گزارشگیری با StimulSoft به دلخواه کاربر
jmfnima
جمعه 28 مرداد 1390, 19:42 عصر
با سلام به همه دوستان عزیز
من میخوام در استیمول سافت گزارش رو مطابق با خواسته کاربر تهیه کنم بدین صورت که کاربر خودش ستون های گزارش رو به دلخواه خودش انتخاب کنه .
واضحتر بگم که فرض کنید بر روی یک فرم 5 تا چک باکس ( به اندازه فیلدهای تیبل دیتا بیس ) داریم و بتونیم گزارش رو بر اساس چک باکس هایی که تیک خورده به ما بده .
مثلا اگه 3 تا از این چک باکس ها تیک خورده بود گزارشی که به ما میده دارای 3 ستون باشه و اون سه ستونی هم که میده بر اساس همون 3 چک باکسی که تیک خورده به ما بده .
jmfnima
جمعه 11 شهریور 1390, 21:18 عصر
با سلام به همه دوستان
اگه کسی میتونه این سوال منو جواب بده کارم خیلی گیره .
MIRZAEI2003
جمعه 11 شهریور 1390, 22:03 عصر
باید گزارشتو داینامیک بسازی
مثلا یه همچین چیزی ( کد مربوط به یکی از پروژه هایی بود که توی همین فروم گذاشته بودن)
public static void PrintDataGrid(DataGridView sender, bool Landscape, string ReportTitle)
{
DataTable dt = GetDataGridViewDataSource(sender as DataGridView);
foreach (DataColumn dc in dt.Columns)
{
dc.ColumnName = ReplaceSpaceWithUnderline(dc.ColumnName);
}
DataView dataView = dt.DefaultView;
StiReport report = new StiReport();
report.ScriptLanguage = StiReportLanguageType.CSharp;
report.RegData("view", dataView);
//Fill dictionary
report.Dictionary.Synchronize();
StiPage page = report.Pages.Items[0];
if (Landscape)
page.Orientation = StiPageOrientation.Landscape;
//Create Report Title Band
StiReportTitleBand rt = new StiReportTitleBand();
rt.Height = 1.5f;
rt.Name = "ReportTitleBand";
StiText st = new StiText(new RectangleD(0, 0, page.Width, 1f));
st.Text.Value = ReportTitle;
st.HorAlignment = StiTextHorAlignment.Center;
st.Name = "TitleText1";
st.Font = new Font("B Mitra", 16f);
rt.Components.Add(st);
page.Components.Add(rt);
//Create HeaderBand
StiHeaderBand headerBand = new StiHeaderBand();
headerBand.Height = 0.5f;
headerBand.Name = "HeaderBand";
page.Components.Add(headerBand);
//Create Dataaband
StiDataBand dataBand = new StiDataBand();
dataBand.DataSourceName = "view" + dataView.Table.TableName;
dataBand.Height = 0.5f;
dataBand.Name = "DataBand";
page.Components.Add(dataBand);
//Create texts
Double pos = 0;
Double columnWidth = StiAlignValue.AlignToMinGrid(page.Width / dataView.Table.Columns.Count, 0.1, true);
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 = ReplaceUnderLineWithSpace(column.Caption);
// headerText.Text.Value = column.Caption;
headerText.HorAlignment = StiTextHorAlignment.Center;
headerText.Name = "HeaderText" + nameIndex.ToString();
headerText.Brush = new StiSolidBrush(Color.LightGreen);
headerText.Border.Side = StiBorderSides.All;
headerBand.Components.Add(headerText);
headerText.Font = new Font("Tahoma", 8f);
//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.Border.Side = StiBorderSides.All;
dataText.HorAlignment = StiTextHorAlignment.Center;
dataText.Font = new Font("Tahoma", 8f);
//dataText.WordWrap = true;
//dataText.CanGrow = true;
//Add highlight
//StiCondition condition = new StiCondition();
//condition.BackColor = Color.CornflowerBlue;
//condition.TextColor = Color.Black;
//condition.Expression = "(Line & 1) == 1";
//condition.Item = StiFilterItem.Expression;
//dataText.Conditions.Add(condition);
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);
//page.Components.Add(footerBand);
////Create text on footer
//StiText footerText = new StiText(new RectangleD(0, 0, page.Width, 0.5f));
//footerText.Text.Value = "تعداد = {Count()-1}";
//footerText.HorAlignment = StiTextHorAlignment.Right;
//footerText.Name = "FooterText";
//footerText.Brush = new StiSolidBrush(Color.WhiteSmoke);
//footerText.Font = new Font("Tahoma", 8f);
// footerBand.Components.Add(footerText);
//Render without progress bar
report.Render(true);
report.Show();
}
jmfnima
سه شنبه 15 شهریور 1390, 23:54 عصر
با سلام و تشکر از شما دوست عزیز MIRZAEI2003
این کدهای شما برام شفاف نیست اگه میشه یک نمونه برنامه برام بزارین ممنون میشم .
Esmail Solhkhah
چهارشنبه 16 شهریور 1390, 00:40 صبح
با سلام و تشکر از شما دوست عزیز MIRZAEI2003
این کدهای شما برام شفاف نیست اگه میشه یک نمونه برنامه برام بزارین ممنون میشم .
یه نمونه برنامه واسه این کارا نوشتم
http://barnamenevis.org/showthread.php?64210-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%AF%D8%B1-%D8%B3%D9%8A-%D8%B4%D8%A7%D8%B1%D9%BE/page75
پست شماره 746
موفق باشید.
jmfnima
چهارشنبه 16 شهریور 1390, 13:35 عصر
با تشكر از شما دوست عزيز
اين سورسي كه شما در در پست 746 گذاشتين مربوط به تبديل ديتا گريد ويو به استيمول هست كه ديتا گريد ويو رو در استيمول نشون ميده ولي من ميخوام طوري باشه كه روي فرم به تعداد فيلدهاي ديتابيس چك باكس بزارم و گزارش بر اساس چك باكس هايي كه تيك خورده باشه به ما بده .
يعني مثلا اگه ديتابيس داراي فيلدهاي 1و 2و3و4و5 باشه و به تعداد اين پنج تا فيلد پنج تا چك باكس داشته باشيم و وقتي چك باكس هاي 1 و 2 و4 تيك خورده بود در گزارش هم فقط فيلدهاي 1 و 2 و 4 نشون داده بشه .
MIRZAEI2003
شنبه 19 شهریور 1390, 18:15 عصر
من زیاد روی اون کد فکر نکردم ولی به نظرم راهش همونه چون اون کد روی یک datatable کار میکنه شما هم وقتی تیک یه چک باکس رو حذف میکنی ستون مربوط به اون چک باکس رو از توی datatable که داری حذف کن datatable رو به این کد بده .
همچنین وقتی اضافه میکنی یه ستون به datatable اضافه کن. این کد یه دیتا گرید ویو میگیره و Datatable رو از اون گرید ویو در میاره.
parsdarab
پنج شنبه 07 مهر 1390, 20:23 عصر
سلام
باید یک فیلد از نوع چک باکس داخل جدول بسازی و در datagridview تیک گزینه های رو بزاری بعد این تیک های گذاشته شده رو در جدول اعمال کنی بعد داخل گزارشت بگی ان رکورد هایی که تیک زده شده نمایش بدی
aliramazani
شنبه 09 مهر 1390, 15:45 عصر
خود سمپلهای استیمول توضیح داده. منم از اونجا یاد گرفتم.
jmfnima
یک شنبه 10 مهر 1390, 14:04 عصر
با سلام به شما دوست عزيز
اين سمپل هايي كه شما ميفرماييد كجا هست ؟؟؟
aliramazani
یک شنبه 10 مهر 1390, 17:07 عصر
وقتی استیمول را دانلود کردید توی خود پوشه های دانلود شده هست.
jmfnima
جمعه 15 مهر 1390, 11:33 صبح
با سلام و تشکر از شما دوست عزیز
ولی وقتی استیمول رو دانلود کردم سمپلی با اون نبود اگه ممکنه این سمپل ها رو برام بزارین ممنون میشم .
BahmanDB
پنج شنبه 21 مهر 1390, 12:46 عصر
تو اين ادرس هم فيلم اموزشي هست هم sample
http://www.stimulsoft.com
موفق باشيد
jmfnima
دوشنبه 25 مهر 1390, 13:52 عصر
با سلام به شما
من كليه فيلم ها و سمپل هاي مربوط به سايت اصلي استيمول رو دانلود كردم ولي همچنين چيزي كه من ميخوام نداشت . سمپل هايي كه داشت به درد كار من نمخوره . اگه ميتونيد بيشتر راهنماييم كنين . ممنون
sozanban
شنبه 30 مهر 1390, 19:35 عصر
به نظر من چندتا گزارش به تعدادی که میخوای بساز...بعد شرط بذار هر کدوم از چک باکسها تیک خورده بود گزارش مربوط به اون نمایش داده بشه!!!!
hadisajadi
شنبه 14 مرداد 1391, 13:44 عصر
سلام من میخوام که با Stored Procedureی که تو دیتابیس ساختم با Stimul ارتباط برقرار کنم لطفأ راهنمایی کنید.
fatemeh2012
سه شنبه 15 اسفند 1391, 15:02 عصر
سلام
من می خوام با simul یک گزارش از فرمم بگیرم که دیتابس هم ندارم بگیرم . میشه کمک کنید بگید چ طوری باید کار کنم و رو دکمه گزارش چی باید بنویسم؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.