xminxmin
پنج شنبه 22 فروردین 1392, 08:36 صبح
سلام اساتید محترم
من جدیدا شروع کردم از استیمول ریپورت استفاده کنم (تقریبا 2 روزه :چشمک:) برای همین کاملا مبتدی ام
یه سوال:
من یه DataGridView دارم و صرفا می خوام اطلاعات درون این جدول به ریپورت ارسال بشه.
آیا استیمول صرفا از منابع بانک اطلاعاتی مثل DataTable و غیره استفاده می کنه یا میشه DataSource اش رو ضرفا به یه DataGrid متصل کرد؟
تو گزینه هاش یه چیزی به نام Choose_DataSource داره که من از لیست بازشده اش DataGrid رو تیک زدم اما موقع ادامه کار ویزاردش اصلا ستون های Grid رو نمایش نمی ده.
اساتید محبت کنند اگر راه داره راهنمایی کنند اگر هم که باید Table بسازم یا درون DataSet جدول بسازم که برم سراغ این راه.
xminxmin
سه شنبه 27 فروردین 1392, 08:14 صبح
سلام دوستان خودم راهش رو پیدا کردم می گم تا شاید مشکل کسی باشه و حل شه
1. یه DataTable با نام ستون های مشابه ایجاد می کنیم و اطلاعات DataGridView رو داخلش می ریزیم
ایجاد با ستون های همنام:
Dim dt As New DataTable("Table1")
For i As Integer = 0 To DataGridView1.ColumnCount - 1
dt.Columns.Add(DataGridView1.Columns(i).Name)
Next
2. محیط Designer رو شی StiReport انتخاب می کنیم
3. در پانل سمت چپ راست کلیک کرده و NewDataSource رو انتخاب می کنیم
4. از لیست گزینه Data from business objects رو انتخاب می کنیم
5. ستون هایی مشابه و همنام با جدول ایجاد می کنیم
6. حالا از گزینه اضافه شده به لیست استفاده می کنیم و گزارش رو طراحی می کنیم
7. با کد زیر اطلاعات DataGridView رو نمایش می دیم
stiReport1.RegData("DataSource1", dt)
stiReport1.ResetRenderedState()
stiReport1.Show()
xminxmin
سه شنبه 27 فروردین 1392, 12:28 عصر
نمونه برنامه رو در این تاپیک گذاشتم:
http://barnamenevis.org/showthread.php?393716-%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4%DA%AF%DB%8C%D8%B1%D B%8C-%D9%85%D8%B3%D8%AA%D9%82%DB%8C%D9%85-%D8%A7%D8%B2-DataGridView&p=1746214#post1746214
amir3321
شنبه 07 اردیبهشت 1392, 14:55 عصر
با سلام راستش این کارو قبلا استاد اسماعیل خواه داخل 1001 نکته در سی شارپ توضیح دادند با stimulsoft
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();
}
و بصورت معمولی در این پست (http://barnamenevis.org/showthread.php?95001-1001-%D9%86%DA%A9%D8%AA%D9%87-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE&p=593955&viewfull=1#post593955) قرار دادند
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.