بسته شدن برنامه هنگامی که کریستال ریپورت در حال ران شدن در کامپیوتر کلاینت است
بنده نسخه 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.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf
- Library Animation برای کنترلهای WPF
- مشکل در تغییر مقدار Text کنترل RibbonBar در کامپوننت DevExpress
- قرار دادن مقادیر ارسالی یک ستون از جدول به صورت سطری در استیمول