بنده نسخه 32 بیتی کریستال ریپورت رو در کامپیوتر کلاینت ها نصب کردم اما باز هم هنگام گزارش گیری با کریستال ریپورت، وقتی که برنامه در حال ران شدن کریستال است، برنامه کلا کرش میکنه و بسته میشه، آیا لازمه مورد دیگری هم نصب بشه؟؟
با سپاس فراوان از پرس نت.
سلام. بله همین Runtime32 برای کلاینت ها کافیه و نیازی به نصب روی سرور نیست. فقط چون شما میگید روی سیستم خودتون درست اجرا میشه به احتمال زیاد مشکلتون در کانکشن استرینگ کریستال هست. احتمال داره شما کانکشن استرینگ رو به صورت دستی و لوکال برای کریستال تعریف کردید و وقتی گزارش روی کلاینت اجرا میشه، نمیتونه به دیتابیس متصل بشه. این مورد رو چک کنید.
این قطعه کد بنده برای پنجره گزارش هست:
namespace TEMAR.window
{
/// <summary>
/// Interaction logic for win_showReports.xaml
/// </summary>
public partial class win_showReports : Window
{
public string Report_Name { get; set; }
public string GetFormula { get; set; }
public string[] Params = new string[15];
ReportDocument RD = new ReportDocument();
public win_showReports()
{
InitializeComponent();
}
private void SetDBLoginForReport(ConnectionInfo conectioninfo, ReportDocument reportDocument)
{
Tables tables = reportDocument.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
TableLogOnInfo Tinfo = table.LogOnInfo;
Tinfo.ConnectionInfo = conectioninfo;
table.ApplyLogOnInfo(Tinfo);
}
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
if (Report_Name == null)
{
return;
}
string path = System.AppDomain.CurrentDomain.BaseDirectory + "Reports\\" + this.Report_Name;
RD.Load(path);
RD.RecordSelectionFormula = this.GetFormula;
ConnectionInfo connectioninfo = new ConnectionInfo();
connectioninfo.UserID = PublicVariables.GetUserDatabase(PublicVariables.ConnectionString);
connectioninfo.DatabaseName = PublicVariables.GetDatabaseName(PublicVariables.ConnectionString); ;
connectioninfo.Password = PublicVariables.GetPassword(PublicVariables.ConnectionString); ;
connectioninfo.ServerName = PublicVariables.GetServerName(PublicVariables.ConnectionString); ;
connectioninfo.IntegratedSecurity = false;
SetDBLoginForReport(connectioninfo, RD);
switch (Report_Name)
{
case "UserList.rpt":
{
RD.SetParameterValue("ReportDate", String.Format("{0:dd/MM/yyyy}", DateTime.Now));
break;
}
case "PersonnelList.rpt":
{
break;
}
case "PartList.rpt":
{
//RD.SetParameterValue("preparDate", String.Format("{0:dd/MM/yyyy}", DateTime.Now));
RD.SetParameterValue("storeNam", Params[4]);
RD.SetParameterValue("toolsTyp", Params[5]);
RD.SetParameterValue("fromLID", Params[7]);
RD.SetParameterValue("toLID", Params[8]);
if (Params[9] != null)
{ RD.SetParameterValue("fromNID", Params[9]); }
if (Params[10] != null)
{ RD.SetParameterValue("toNID", Params[10]); }
break;
}
case "InOutList.rpt":
{
//RD.SetParameterValue("preparDate", String.Format("{0:dd/MM/yyyy}", DateTime.Now));
RD.SetParameterValue("InOut_az", Params[0]);
RD.SetParameterValue("InOut_ta", Params[1]);
break;
}
case "CalibrationTags.rpt":
{
RD.SetParameterValue("partType", Params[2]);
RD.SetParameterValue("storeName", Params[3]);
break;
}
case "ServicingCard.rpt":
{
RD.SetParameterValue("PARTtype", Params[11]);
RD.SetParameterValue("STOREname", Params[12]);
RD.SetParameterValue("PARTcond", Params[13]);
break;
}
}
CRV.ViewerCore.ReportSource = RD;
}
}
}
کدها ظاهرا مشکلی ندارند. کدهای قسمت Window_Loaded رو داخل Try و Cach به شکل زیر قرار بدید تا زمانی که در کلاینت اجرا میشه متن خطارو بهتون بده.
try
{
//// محل قرار گیری کدها
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
با سلام،
مشکل حل شد.
می بایست در کامپیوتر کلاینت ورژن نسخه Runtime32 بیتی مرتبط با همان کریستال ریپورتی که گزارشات در آن ساخته شده را نصب می کردم که اینطور نبود.
با نصب نسخه مربوطه مشکل حل شد.
سپاس از شما جناب Sowgandi.
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1113
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
564
- پاسخ :
1
|
تاریخ :
1403/07/13
- ساعت :
12:06:00 PM
- بازدید :
300
- پاسخ :
1
|
تاریخ :
1403/06/24
- ساعت :
08:52:00 PM
- بازدید :
272
- پاسخ :
1
|
تاریخ :
1398/09/14
- ساعت :
01:58:00 PM
- بازدید :
4221
- پاسخ :
1
|
تاریخ :
1398/09/16
- ساعت :
11:41:00 AM
- بازدید :
4242
- پاسخ :
1
|
تاریخ :
1398/09/07
- ساعت :
02:15:00 PM
- بازدید :
3836
- پاسخ :
5
|
تاریخ :
1403/05/16
- ساعت :
05:43:00 AM
- بازدید :
550
- پاسخ :
0
|
تاریخ :
1398/09/05
- ساعت :
06:04:00 PM
- بازدید :
3146
- پاسخ :
2
|
تاریخ :
1398/09/08
- ساعت :
11:38:00 PM
- بازدید :
3232
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
370
- پاسخ :
1
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
909
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
891
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1281
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4746
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1113
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
564
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
126
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
72
- پاسخ :
0
|
تاریخ :
1403/07/13
- ساعت :
12:06:00 PM
- بازدید :
300
- پاسخ :
1
|