etemad113
دوشنبه 02 دی 1392, 18:51 عصر
نحوه آدرس دهی به چه صورت هستش در سی شارپ آیا خود استیمول راه ارتباط رو میسازه یا خودتون نحوه ارتباط رو خودتون دستی میسازید و به دیتابیس وصل میکنید.
خودم می سازم
try
{
StiReport rpt = new StiReport();
rpt.Load("ReportsFiles/stiReportDocument.mrt");
StiVariablesCollection myvariable = new StiVariablesCollection();
myvariable.Add("NowDate", PersianDate.GetNowDateString());
myvariable.Add("NowTime",PersianTime.GetNowTimeString());
myvariable.Add("StudentName", datagridDocument[1, row].Value.ToString());
myvariable.Add("StudentFamily", datagridDocument[2, row].Value.ToString());
myvariable.Add("StudentNationalcode", datagridDocument[3, row].Value.ToString());
myvariable.Add("Studentphone", datagridDocument[19, row].Value.ToString());
rpt.Dictionary.Variables.AddRange(myvariable);
rpt.RegData(ShowDocumentSet);
rpt.Show();
}
catch
{
}
davidrobert
دوشنبه 02 دی 1392, 21:05 عصر
سلام دوست عزیز یک نظری من این هستش که شما در داخل خود اسمیول سافت که ارتباط با دیتابیس ساختید باعث ایجاد خطا شده یعنی ارتباطی که در داخل خود استمیول دادید برای ارتباط جدید به این صورت
@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DBAppHesabDare.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"; باعث شده فایل گزارش گیری شما با مشکل و خطا بشه بخاطر همین من برای شما 2 نوع کد نویسی برای ارتباط با استمیول قرار میدم که وقتی آدرس فایل استیمول رو بدید خود استمیول ارتباط رو متوجه میشه و همون ارتباط رو میسازه دلیل اینکه گفتم 2 تا کد نویسی نمی دونم شما به چه صورت کد نویسی میکنید بخاطر همین کد نویسی به صورت Ef اول قرار میدم و بعد به روش Ado این هم بگم نحوه پرینت گرفتن خود از استیمول به این صورت یا اطلاعات رو کلی برای چاپ میدم و یا جستجو میکنم و همون اطلاعات پیدا شده رو میفرستم برای چاپ در کل اطلاعات که دیتاگرید نشان میده رو میفرستم برای چاپ
کد نویسی به روش Ef برای گزارش گیردی در استمیول.
private void PrnInfo()
{
if (DGV.CurrentRow == null)
{
return;
}
DataTable table = new DataTable("DGV_Rows");
foreach (DataGridViewColumn column in DGV.Columns)
table.Columns.Add(column.Name, typeof(string));
for (int i = 0; i < DGV.Rows.Count; i++)
{
table.Rows.Add();
for (int j = 0; j < DGV.Columns.Count; j++)
{
table.Rows[i][j] = DGV[j, i].Value;
}
}
DataSet Ds = new DataSet();
Ds.Tables.Add(table);
Stimulsoft.Report.StiReport stiReport1 = new Stimulsoft.Report.StiReport();
stiReport1.Load(System.Windows.Forms.Application.S tartupPath + @"\InformationReportingCustomer.mrt");
//StiVariable sddatetime = new StiVariable("Date", "ShDateAndTime", typeof(string), clsn.dateshort(DateTime.Now), false);
//stiReport1.Dictionary.Variables.Add(sddatetime);
//(stiReport1.GetComponentByName("textdate") as StiText).Text = textBox1.Text;
(stiReport1.GetComponentByName("textdate") as StiText).Text = "تاریخ و زمان صدور : " + clsn.TimeFull(DateTime.Now) + " - " +
clsn.dateshort(DateTime.Now);
(stiReport1.GetComponentByName("pic") as StiImage).Image = pictureBox2.Image;
(stiReport1.GetComponentByName("TxtnameAddmin") as StiText).Text = LblNameAdmin.Text;
(stiReport1.GetComponentByName("TxtCompanie") as StiText).Text = LblType.Text;
(stiReport1.GetComponentByName("txtRegtion") as StiText).Text = LblAddRegster.Text;
stiReport1.RegData(table);
StiOptions.Viewer.Windows.ShowPageDesignButton = false;
StiOptions.Viewer.Windows.ShowOpenButton = false;
//stiReport1.Design();
stiReport1.Show();
}
private void BtnPrn_Click(object sender, EventArgs e)
{
PrnInfo();
}
کد نویسی به روش Ado فرق این یه خورد کد نویسی بیشتر داره برای ساخت گزاری گیری در استمیول اول بایستی ارتباط با دیتابیس رو بر قرار کنید چون خود ارتباط با دیتابیس رو در یک کلاس تعریف میکنم و به این صورت استفاده میکنم یعنی صدا میکنم دیتابیسم رو DataAccess dbm=new DataAccess();
اول یک کلاس میسازید به نام DataManagmant.cs وقتی ارتباط رو ساختید این کد ها رو مینویسید برای ارتباط با دیتابیس برای گزارش گیری اطلاعات موجود در دیتاگرید ویو کد ها مورد نظر using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace AppSoftwareHesabDarePoshak
{
class DataManagmant
{
public static SqlConnection SCO = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DBAppHesabDare.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
public static SqlCommand SCM = new SqlCommand();
public static SqlDataAdapter SDA = new SqlDataAdapter();
public static SqlCommandBuilder SCB = new SqlCommandBuilder();
public static DataTable DT = new DataTable();
public static DataTable Search(string CTS)
{
if (SCO.State != ConnectionState.Open) SCO.Open();
DT = new DataTable();
SCM = new SqlCommand(CTS, SCO);
SDA = new SqlDataAdapter(SCM);
SCB = new SqlCommandBuilder(SDA);
SDA.Fill(DT);
return (DT);
}
public static DataTable I_U_D(string CTS, string CTSIDU)
{
if (SCO.State != ConnectionState.Open) SCO.Open();
DT = new DataTable();
SCM = new SqlCommand(CTS, SCO);
SDA = new SqlDataAdapter(SCM);
SCB = new SqlCommandBuilder(SDA);
SDA.Fill(DT);
SCM.CommandText = CTSIDU;
SCM.ExecuteNonQuery();
return (DT);
}
}
}
حالا که این کد ها رو نوشتید در فرم که قسط ارسال اطلاعات برای گزارش رو دارید این کد رو برای چاپ اطلاعات بنویسید. void Prn()
{
if (Dgv.CurrentRow == null)
{
return;
}
switch (CmbSearch.Text)
{
case "کد مشتری":
{
DataManagmant.DT =
DataManagmant.Search(
"SELECT Code_Customer AS [کد مشتری], Sex_Customer AS جنسیت, Name_Customer AS نام, Last_Customer AS [نام خانوادگی], CodeMelay_Customer AS [کد ملی],TelePhone_Customer AS تلفن, Mobile_Customer AS موبایل, Ostan_Customer AS استان, Tower_Customer AS شهرستان, City_Customer AS شهر,Address_Customer AS نشانی, DateAdd_Customer AS [تاریخ ثبت], TimeAdd_Customer AS [ساعت ثبت] FROM Tbl_AddInfoCustomer where convert(varchar,Code_Customer) Like N'%" +
TxtSearch.Text + "%' ORDER BY Code_Customer DESC");
break;
}
case "نام":
{
DataManagmant.DT =
DataManagmant.Search(
"SELECT Code_Customer AS [کد مشتری], Sex_Customer AS جنسیت, Name_Customer AS نام, Last_Customer AS [نام خانوادگی], CodeMelay_Customer AS [کد ملی],TelePhone_Customer AS تلفن, Mobile_Customer AS موبایل, Ostan_Customer AS استان, Tower_Customer AS شهرستان, City_Customer AS شهر,Address_Customer AS نشانی, DateAdd_Customer AS [تاریخ ثبت], TimeAdd_Customer AS [ساعت ثبت] FROM Tbl_AddInfoCustomer where Name_Customer Like N'%" +
TxtSearch.Text + "%' ORDER BY Code_Customer DESC");
break;
}
case "نام خانوادگی":
{
DataManagmant.DT =
DataManagmant.Search(
"SELECT Code_Customer AS [کد مشتری], Sex_Customer AS جنسیت, Name_Customer AS نام, Last_Customer AS [نام خانوادگی], CodeMelay_Customer AS [کد ملی],TelePhone_Customer AS تلفن, Mobile_Customer AS موبایل, Ostan_Customer AS استان, Tower_Customer AS شهرستان, City_Customer AS شهر,Address_Customer AS نشانی, DateAdd_Customer AS [تاریخ ثبت], TimeAdd_Customer AS [ساعت ثبت] FROM Tbl_AddInfoCustomer where Last_Customer Like N'%" +
TxtSearch.Text + "%' ORDER BY Code_Customer DESC");
break;
}
case "کد ملی":
{
DataManagmant.DT =
DataManagmant.Search(
"SELECT Code_Customer AS [کد مشتری], Sex_Customer AS جنسیت, Name_Customer AS نام, Last_Customer AS [نام خانوادگی], CodeMelay_Customer AS [کد ملی],TelePhone_Customer AS تلفن, Mobile_Customer AS موبایل, Ostan_Customer AS استان, Tower_Customer AS شهرستان, City_Customer AS شهر,Address_Customer AS نشانی, DateAdd_Customer AS [تاریخ ثبت], TimeAdd_Customer AS [ساعت ثبت] FROM Tbl_AddInfoCustomer where convert(varchar,CodeMelay_Customer) Like N'%" +
TxtSearch.Text + "%' ORDER BY Code_Customer DESC");
break;
}
case "تلفن":
{
DataManagmant.DT =
DataManagmant.Search(
"SELECT Code_Customer AS [کد مشتری], Sex_Customer AS جنسیت, Name_Customer AS نام, Last_Customer AS [نام خانوادگی], CodeMelay_Customer AS [کد ملی],TelePhone_Customer AS تلفن, Mobile_Customer AS موبایل, Ostan_Customer AS استان, Tower_Customer AS شهرستان, City_Customer AS شهر,Address_Customer AS نشانی, DateAdd_Customer AS [تاریخ ثبت], TimeAdd_Customer AS [ساعت ثبت] FROM Tbl_AddInfoCustomer where convert(varchar,TelePhone_Customer) Like N'%" +
TxtSearch.Text +
"%' ORDER BY Code_Customer DESC");
break;
}
case "موبایل":
{
DataManagmant.DT =
DataManagmant.Search(
"SELECT Code_Customer AS [کد مشتری], Sex_Customer AS جنسیت, Name_Customer AS نام, Last_Customer AS [نام خانوادگی], CodeMelay_Customer AS [کد ملی],TelePhone_Customer AS تلفن, Mobile_Customer AS موبایل, Ostan_Customer AS استان, Tower_Customer AS شهرستان, City_Customer AS شهر,Address_Customer AS نشانی, DateAdd_Customer AS [تاریخ ثبت], TimeAdd_Customer AS [ساعت ثبت] FROM Tbl_AddInfoCustomer where convert(varchar,Mobile_Customer) Like N'%" +
TxtSearch.Text +
"%' ORDER BY Code_Customer DESC");
break;
}
case "استان":
{
DataManagmant.DT =
DataManagmant.Search(
"SELECT Code_Customer AS [کد مشتری], Sex_Customer AS جنسیت, Name_Customer AS نام, Last_Customer AS [نام خانوادگی], CodeMelay_Customer AS [کد ملی],TelePhone_Customer AS تلفن, Mobile_Customer AS موبایل, Ostan_Customer AS استان, Tower_Customer AS شهرستان, City_Customer AS شهر,Address_Customer AS نشانی, DateAdd_Customer AS [تاریخ ثبت], TimeAdd_Customer AS [ساعت ثبت] FROM Tbl_AddInfoCustomer where Ostan_Customer Like N'%" +
TxtSearch.Text +
"%' ORDER BY Code_Customer DESC");
break;
}
case "شهرستان":
{
DataManagmant.DT =
DataManagmant.Search(
"SELECT Code_Customer AS [کد مشتری], Sex_Customer AS جنسیت, Name_Customer AS نام, Last_Customer AS [نام خانوادگی], CodeMelay_Customer AS [کد ملی],TelePhone_Customer AS تلفن, Mobile_Customer AS موبایل, Ostan_Customer AS استان, Tower_Customer AS شهرستان, City_Customer AS شهر,Address_Customer AS نشانی, DateAdd_Customer AS [تاریخ ثبت], TimeAdd_Customer AS [ساعت ثبت] FROM Tbl_AddInfoCustomer where Tower_Customer Like N'%" +
TxtSearch.Text +
"%' ORDER BY Code_Customer DESC");
break;
}
case "شهر":
{
DataManagmant.DT =
DataManagmant.Search(
"SELECT Code_Customer AS [کد مشتری], Sex_Customer AS جنسیت, Name_Customer AS نام, Last_Customer AS [نام خانوادگی], CodeMelay_Customer AS [کد ملی],TelePhone_Customer AS تلفن, Mobile_Customer AS موبایل, Ostan_Customer AS استان, Tower_Customer AS شهرستان, City_Customer AS شهر,Address_Customer AS نشانی, DateAdd_Customer AS [تاریخ ثبت], TimeAdd_Customer AS [ساعت ثبت] FROM Tbl_AddInfoCustomer where City_Customer Like N'%" +
TxtSearch.Text +
"%' ORDER BY Code_Customer DESC");
break;
}
case "نشانی":
{
DataManagmant.DT =
DataManagmant.Search(
"SELECT Code_Customer AS [کد مشتری], Sex_Customer AS جنسیت, Name_Customer AS نام, Last_Customer AS [نام خانوادگی], CodeMelay_Customer AS [کد ملی],TelePhone_Customer AS تلفن, Mobile_Customer AS موبایل, Ostan_Customer AS استان, Tower_Customer AS شهرستان, City_Customer AS شهر,Address_Customer AS نشانی, DateAdd_Customer AS [تاریخ ثبت], TimeAdd_Customer AS [ساعت ثبت] FROM Tbl_AddInfoCustomer where Address_Customer Like N'%" +
TxtSearch.Text +
"%' ORDER BY Code_Customer DESC");
break;
}
case "تاریخ ثبت":
{
DataManagmant.DT = DataManagmant.Search("SELECT Code_Customer AS [کد مشتری], Sex_Customer AS جنسیت, Name_Customer AS نام, Last_Customer AS [نام خانوادگی], CodeMelay_Customer AS [کد ملی],TelePhone_Customer AS تلفن, Mobile_Customer AS موبایل, Ostan_Customer AS استان, Tower_Customer AS شهرستان, City_Customer AS شهر,Address_Customer AS نشانی, DateAdd_Customer AS [تاریخ ثبت], TimeAdd_Customer AS [ساعت ثبت] FROM Tbl_AddInfoCustomer where DateAdd_Customer Like N'%" +
TxtSearch.Text +
"%' ORDER BY Code_Customer DESC");
break;
}
}
try
{
DataSet dst = new DataSet();
dst.Tables.Add(DataManagmant.DT);
StiReport stiReport1 = new StiReport();
stiReport1.Load(Application.StartupPath + @"\RptListCustomer.mrt");
StiVariable svDT = new StiVariable("Date", "ShDate", typeof(string), clsNeed.dateshort(DateTime.Now), false);
stiReport1.Dictionary.Variables.Add(svDT);
//(stiReport1.GetComponentByName("TxtSodorAz") as StiText).Text = LblUnit.Text;
//(stiReport1.GetComponentByName("TxtSexAndLast") as StiText).Text = LblSex.Text + " : " + LblName.Text;
stiReport1.RegData(DataManagmant.DT);
//StiOptions.Viewer.Windows.ShowEditorTool = false;
//StiOptions.Viewer.Windows.ScrollToEditableComponen t = false;
StiOptions.Viewer.Windows.ShowPageDesignButton = false;
StiOptions.Viewer.Windows.ShowOpenButton = false;
//stiReport1.Design();
stiReport1.Show();
}
catch (Exception ex)
{
if (!ShowFrindMessage)
{
PersianMessageBox.Show(ex.Message);
}
else
{
PersianMessageBox.Show("خطا در اجرا دستورات / خطا 114");
}
}
}
private void BtnPrn_Click(object sender, EventArgs e)
{
Prn();
}
وقتی این کد ها رو برای چاپ نوشتید دیگه برنامه شما آمده هستش برای چاپ اطلاعات کلی و یا اطلاعات که یافت شده و نمایش داده شده رو برای چاپ میفرسته و به راحتی می توانید از کد ها استفاده کنید نوش جان امید وارم کد ها بدرد شما بخوره و مشکل شما رفع بشه.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.