PDA

View Full Version : مبتدی: پردازش و ذخیره گزارش ساده استیمول بدون باز شدن گزارش



mohsenan
سه شنبه 19 مهر 1401, 19:42 عصر
با سلام خدمت اساتید
من یه برنامه ساده دارم که چند تا فیلد رو میگیره
توی یه گزارش قرار میده و بعد قراره به صورت یه فایل word ذخیره کنه
مشکلم اینه که اگر کد stireport.show(); را بزارم همه چیز درسته. هم فایل word به درستی ساخته میشه و هم جایگذاری ها درسته
اما اگر این خط کد رو قرار ندم خطای زیر رو میده
System.NullReferenceException: 'Object reference not set to an instance of an object.'



اگر کد stireport.compile رو بزارم خطایی ندارم و فایل word هم ساخته میشه اما فایل خالیه

الان کل خواستم از اساتید اینه که چه بکنم که وقتی دکمه تهیه گزارش رو میزنم یه فایل ورد سالم تحویل بگیرم

اینم کل کدیه که زدم برای خروجی گرفتن مستقیم از استیمول برای word

StiWord2007ExportSettings docsetting = new StiWord2007ExportSettings();
stiReport1.ExportDocument(StiExportFormat.Word2007 , "Report.docx", docsetting);


Process.Start("WINWORD.EXE", @"Report.docx");

mohsenan
شنبه 23 مهر 1401, 10:38 صبح
یعنی کسی نبود به این پست جوابی بده آیا؟

Iran58
شنبه 23 مهر 1401, 14:30 عصر
سلام
این کد من در mvc.core است
بدون انکه گزارش باز شود دانلود میشود

#region PrintWord
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
public async Task<IActionResult> PrintWord(int id)
{
var list = await dbContect.TestRepository.CeoPrintList(id);
var report = new StiReport();
report.Load(UploadsAddress.Print + "Points.mrt");
report.RegBusinessObject("dt", list);
return StiNetCoreReportResponse.ResponseAsWord2007(report );
}


#endregion PrintWord

fakhravari
دوشنبه 25 مهر 1401, 07:18 صبح
با سلام خدمت اساتید
من یه برنامه ساده دارم که چند تا فیلد رو میگیره
توی یه گزارش قرار میده و بعد قراره به صورت یه فایل word ذخیره کنه
مشکلم اینه که اگر کد stireport.show(); را بزارم همه چیز درسته. هم فایل word به درستی ساخته میشه و هم جایگذاری ها درسته
اما اگر این خط کد رو قرار ندم خطای زیر رو میده
System.NullReferenceException: 'Object reference not set to an instance of an object.'



اگر کد stireport.compile رو بزارم خطایی ندارم و فایل word هم ساخته میشه اما فایل خالیه

الان کل خواستم از اساتید اینه که چه بکنم که وقتی دکمه تهیه گزارش رو میزنم یه فایل ورد سالم تحویل بگیرم

اینم کل کدیه که زدم برای خروجی گرفتن مستقیم از استیمول برای word

StiWord2007ExportSettings docsetting = new StiWord2007ExportSettings();
stiReport1.ExportDocument(StiExportFormat.Word2007 , "Report.docx", docsetting);


Process.Start("WINWORD.EXE", @"Report.docx");




توی ویندوز کار میکنین؟

mohsenan
دوشنبه 25 مهر 1401, 11:07 صبح
بله
یه برنامه خیلی ساده
چند تا تکس باکس رو بگیره و بزاره روی یه صفحه a4 توی ورد
نه ذخیره ای داره
نه آرشیو سازی و دیتا بیس

mohsenan
دوشنبه 25 مهر 1401, 11:08 صبح
توی ویندوز کار میکنین؟
بله
یه برنامه خیلی ساده
چند تا تکس باکس رو بگیره و بزاره روی یه صفحه a4 توی ورد
نه ذخیره ای داره
نه آرشیو سازی و دیتا بیس

mohsenan
دوشنبه 25 مهر 1401, 11:14 صبح
سلام
این کد من در mvc.core است
بدون انکه گزارش باز شود دانلود میشود

#region PrintWord
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
public async Task<IActionResult> PrintWord(int id)
{
var list = await dbContect.TestRepository.CeoPrintList(id);
var report = new StiReport();
report.Load(UploadsAddress.Print + "Points.mrt");
report.RegBusinessObject("dt", list);
return StiNetCoreReportResponse.ResponseAsWord2007(report );
}


#endregion PrintWord

ممنون از پاسختون
ولی خواسته من کمی متفاوته
5 تا تکس باکسه که متغیر هستن و باید لابلای یه متن قرار بگیرن
و بعد به صورت فایل WORD ذخیره بشه
تا جایی که فایل ورد با جاگذاری های دقیق طبق طراحی گزارش باز میشه پیش رفتم
دقیقا نیازم برطرف میشه
اما مشکل اینه که نمیخوام خود گزارش استیمول باز بشه
در واقع هم محیط گزارش استیمول باز میشه و هم فایل ورد مورد نظرم
اگرم گزارش رو SHOW نزنم فایل وردم خالی باز میشه متاسفانه و عملا کامپایله کاری برام نمیکنه

علی فتحی
دوشنبه 25 مهر 1401, 14:12 عصر
DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter("SELECT* FROM dbo.Tasli", con);
da.Fill(dt);


DataTable dt1 = new DataTable();
SqlDataAdapter da1 = new SqlDataAdapter("SELECT * FROM dbo.Tkhroj where shb=@shb ", con);
da1.SelectCommand.Parameters.AddWithValue("@shb", labelX9.Text);
da1.Fill(dt1);


StiReport report = new StiReport();
report.Load(System.Windows.Forms.Application.Start upPath + @"\Rpt\Rhavala3.mrt");
Image imj = Image.FromFile(Application.StartupPath + "\\Data\\شاد.png");
(report.GetComponentByName("Image1") as StiImage).Image = imj;
(report.GetComponentByName("Image2") as StiImage).Image = imj;
report.RegData("Taslis", dt);
report.RegData("Tkhroj", dt1);
report.Print(false);
سلام میتونی بصورت پارامتر ارسال کنی