باسلام خدمت دوستان عزیز.
من در فرمم براساس چند تا فیلد جستجو انجام میدم و نتیجه این جستجو در دیتاگرید نشون داده میشه. حالا میخوام وقتی دکمه چاپ رو میزنم این داده ها با استفاده از استیمول بره برای چاپ. طبق یک فایل آموزشی که دقیقا همین مطلب رو آموزش داده بود پیش رفتم و در استیمول از datatable استفاده کردم.در سمت کدنویسی ویژوال هم دستورات مربوطه رو نوشتم ولی با اینکه داده در دیتاگرید هست هیچی نمایش نمیده.
ممنون میشم راهنمایی بفرمایید.
مطمئن هستید DataTable پر شده به گزارش ارسال میشه ؟
در گزارش فقط مقداری از اطلاعات را نمایش دهید تا مطمئن بشید از برنامه درست ارسال میشه
اگر پر شده بود مشکل از طراحی گزارش است
نمیشه حدس زد از کجا میتونه باشه
باسلام. من طبق این فایلی که ضمیمه هست گزارش رو تهیه کردم.قسمت "مهم1"
امکان بررسی فایل ضمیمه را ندارم
همینجا مشکل را مطرح کنید
تو این فایل گفته اگر قراره طبق فیلترهای خاصی جستجو انجام بدین و نتیجه رو در دیتاگریدویو نمایش بدین، در استیمول سافت باید این گزینه رو بعد از انتخاب new datasource انتخاب کنیم:
و بعدش توی دکمه ای که قرار گزارش رو نشون بده این دستورات رو بنویسیم:
private void button1_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("Fname"); dt.Columns.Add("Lname"); dt.Columns.Add("Number"); for (int i = 0; i < dataGridView1.Rows.Count ; i++) { dt.Rows.Add(dataGridView1.Rows[i].Cells[1].Value, dataGridView1.Rows[i].Cells[2].Value, dataGridView1.Rows[i].Cells[3].Value); } StiReport report = new StiReport(); report.Load("Report.mrt"); report.RegData("DataSource1", dt); report.Show(); }
نگفته در استیمول متغیر ورودی تعریف بشه و یا منبع داده ای انتخاب بشه ...
کد را بخ شکل زیر تغییر دهید و تست کنید
private void button1_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("Fname"); dt.Columns.Add("Lname"); dt.Columns.Add("Number"); for (int i = 0; i < dataGridView1.Rows.Count ; i++) { dt.Rows.Add(dataGridView1.Rows[i].Cells[1].Value, dataGridView1.Rows[i].Cells[2].Value, dataGridView1.Rows[i].Cells[3].Value); } StiReport report = new StiReport(); report.RegData("DataSource1", dt); report.Load("Report.mrt"); report.Show(); }
بازم هیچی نشون نمیده...
نام دیتاسورس در گزارش باید دقیقا DataSource1 باشه
درست عمل کردید ؟
بله.این هم تصویر دیزاینر استیمول
با سلام
وقت بخیر
من هم این مشکل را داشتم ولی با کمک خدا و اطلاعاتی که کسب کردم فهمیدم هنگامی که ما داریم ستون های یک دیتاست را می زنیم باید هر سه فیلد قسمت بالا پرشوند
یعنی تا انجایی که شما رفتین درست است ولی یک مشکل است که از روی عکسم متوجه می شوید
private void btnPrint_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("FirstName");
dt.Columns.Add("LastName");
dt.Columns.Add("Age");
dt.Columns.Add("Tall");
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dt.Rows.Add(dataGridView1.Rows[i].Cells[0].Value,
dataGridView1.Rows[i].Cells[1].Value,
dataGridView1.Rows[i].Cells[2].Value,
dataGridView1.Rows[i].Cells[3].Value);
}
StiReport report = new StiReport();
report.RegData("Info2", dt);
report.Load("Report.mrt");
report.Show();
}
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)