PDA

View Full Version : سوال: مشکل گزارش stimulsoft در ویندوزهای 32 و 64یتی



etemad113
دوشنبه 02 دی 1392, 15:14 عصر
سلام
من برنامه رو روی ویندوز سون 64 بیتی نوشتم وسط های کار رفتم روی سون 32 بیتی و نرم افزار را تموم کردم .
حالا دوباره به 64 بیتی اومدم اما دیگه پروژه اجرا نمیشه و خطا میده
کسی میدونه مشکل چیه؟

davidrobert
دوشنبه 02 دی 1392, 17:40 عصر
نحوه آدرس دهی به چه صورت هستش در سی شارپ آیا خود استیمول راه ارتباط رو میسازه یا خودتون نحوه ارتباط رو خودتون دستی میسازید و به دیتابیس وصل میکنید.

etemad113
دوشنبه 02 دی 1392, 17: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
{
}

etemad113
دوشنبه 02 دی 1392, 18:58 عصر
یعنی مشکل به خاطر ویندوز جدیده؟
اگه دوباره 32 بیتی نصب کنم مشکلم حل میشه؟

davidrobert
دوشنبه 02 دی 1392, 20: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();
}
وقتی این کد ها رو برای چاپ نوشتید دیگه برنامه شما آمده هستش برای چاپ اطلاعات کلی و یا اطلاعات که یافت شده و نمایش داده شده رو برای چاپ میفرسته و به راحتی می توانید از کد ها استفاده کنید نوش جان امید وارم کد ها بدرد شما بخوره و مشکل شما رفع بشه.

etemad113
دوشنبه 02 دی 1392, 21:16 عصر
سلام
ممنون آقای محترم
ولی گزارش گیری من هیچ مشکلی نداشت و کامل اجرا می شد بدون هیچ خطائی
فقط مشکل از سر تغییر ویندوز به وجود اومده
مشکل تغییر ویندوزه نمیدونم چه ربطی داره!
خیلی ممنون بابت جوابتون

winner1
دوشنبه 02 دی 1392, 21:46 عصر
سلام
ممنون آقای محترم
ولی گزارش گیری من هیچ مشکلی نداشت و کامل اجرا می شد بدون هیچ خطائی
فقط مشکل از سر تغییر ویندوز به وجود اومده
مشکل تغییر ویندوزه نمیدونم چه ربطی داره!
خیلی ممنون بابت جوابتون
az refrensat stimullo hazf kon dobare ezafe kon movafag bashi

etemad113
سه شنبه 03 دی 1392, 15:27 عصر
سلام
در ابتدای کار خطای شماره یک رو می بینم
وقتی dll های stimulsoft رو حذف کرده و دوباره به refrence ها اضافه می کنم خطای شماره دو رو می بینم
وقتی برنامه رو اجرا می کنم خطای شماره سه رو می بینم که به نظرم مفهومش اینه که باید reportsorce رو دوباره بهش معرفی کنم
و وقتی که این کارو می خوام بکنم خطای شماره 4 رو می بینم!!!!!!!!!!!!!!!!!!!!!!

davidrobert
سه شنبه 03 دی 1392, 15:32 عصر
دوست عزیز همین طور که از این خطا
http://barnamenevis.org/attachment.php?attachmentid=114359&stc=1&d=1387888003

معلوم هستش فونت arial از سیستم شما پاک شده و برنامه قادر به پیدا کردن فونت نیست و داره خطا میده برنامه شما.

etemad113
سه شنبه 03 دی 1392, 15:40 عصر
ولی همین الان چک کردم هستش تو پوشه فونت ها

elahe1364
سه شنبه 03 دی 1392, 15:44 عصر
نوع فونت object هاتون رو به چیز دیگری مثل tahoma تغییر بدید.

etemad113
سه شنبه 03 دی 1392, 15:49 عصر
جالب این جاست که فونت همه object ها tahoma هست
من اصلا جایی یادم نمیاد فونت arial گذاشته باشم و همشون رو tahoma انتخاب کردم

etemad113
سه شنبه 03 دی 1392, 21:00 عصر
کسی نمی تونه راهنمایی کنه؟؟
باید پروژه رو تحویل بدم
32 بیتی هم نصب کردم مشکل حل نشد

etemad113
سه شنبه 03 دی 1392, 22:20 عصر
سلام
من فهمیدم مشکل چیه
گاهی وقتا وقتی با ویندوز بدون دیواره آتش به اینترنت وصل میشید کلا دات نت قاطی می کنه!!!!!!!
من دوباره ویندوز 32 بیتی رو نصب کردم و dll های stimulsoft رو حذف کردم و دوباره اضافه کردم
تا اینجای قضیه warning از بین میره
حالا برای erro هم که هست : Unable to find manifest signing certificate in the certificate store
باید از مسیر project/properties/signing تیک این گزینه را برداریم sign thi clickonce manifests

ممنون از همه دوستانی که راهنمایی کردند

elahe1364
چهارشنبه 18 دی 1392, 15:03 عصر
منم چند روز پیش با این مشکل مواجه شدم.
این فایل رو دانلود کن و نصب کن تا مشکل حل بشه.
http://www.microsoft.com/en-us/download/details.aspx?id=16083