PDA

View Full Version : حرفه ای: ارسال متغیرها به گزارش ساز stimulsoft در C#‎



apkgames
سه شنبه 24 بهمن 1402, 18:03 عصر
سلام و عرض ادب خدمت اساتید گرامی
دوستان برنامه من پایگاه داده نداره و فقط و فقط چندتا تکست باکس هستش که اطلاعات رو از اونا میگرم.
و مبخوام اونا رو با متغییر به گزارش ساز stimul ارسال کنم تا چاپ بشه.
به چه طریق باید این کار رو انجام بدم؟

پرستو پارسایی
چهارشنبه 25 بهمن 1402, 17:43 عصر
برای انتقال اطلاعات از تکست باکس‌ها به گزارش ساز Stimulsoft، می‌تونید از متغیرها استفاده کنین. اول باید مقدار ورودی از تکست باکس‌ها را به متغیرها ارسال و سپس از مقادیر متغیرها در گزارش ساز استفاده کنید.
فرض کنید دو تکست باکس با نام‌های txtName و txtAge در فرم شما وجود داره. می‌تونید مقدار ورودی این دو تکست باکس را در متغیرهای name و age ذخیره و سپس از این متغیرها در گزارش ساز استفاده کنید
Path_to_your_report_file.mrt را با مسیر فایل گزارش ساز Stimulsoft خود جایگزین کنید. و نام فیلدهایی که در گزارش ساز تعریف کردید (مانند Name و Age) را در متد RegData تغییر بدید.
اگر بیشتر از دو تکست باکس دارین، می‌تونید متغیرهای دیگری برای ذخیره مقادیر ایجاد کنید و آن‌ها را به گزارش ساز منتقل کنید.




using Stimulsoft.Report;


public class Form1 : Form
{
private TextBox txtName;
private TextBox txtAge;


public Form1()
{
InitializeComponent();
}


private void btnPrint_Click(object sender, EventArgs e)
{
// دریافت مقدار ورودی از تکست باکس‌ها
string name = txtName.Text;
int age = Convert.ToInt32(txtAge.Text);


// ایجاد گزارش ساز Stimulsoft
StiReport report = new StiReport();
report.Load("Path_to_your_report_file.mrt");


// انتقال مقادیر به گزارش ساز
report.RegData("Name", name);
report.RegData("Age", age);


// چاپ گزارش
report.Show();
}
}

apkgames
جمعه 27 بهمن 1402, 12:57 عصر
برای انتقال اطلاعات از تکست باکس‌ها به گزارش ساز Stimulsoft، می‌تونید از متغیرها استفاده کنین. اول باید مقدار ورودی از تکست باکس‌ها را به متغیرها ارسال و سپس از مقادیر متغیرها در گزارش ساز استفاده کنید.
فرض کنید دو تکست باکس با نام‌های txtName و txtAge در فرم شما وجود داره. می‌تونید مقدار ورودی این دو تکست باکس را در متغیرهای name و age ذخیره و سپس از این متغیرها در گزارش ساز استفاده کنید
Path_to_your_report_file.mrt را با مسیر فایل گزارش ساز Stimulsoft خود جایگزین کنید. و نام فیلدهایی که در گزارش ساز تعریف کردید (مانند Name و Age) را در متد RegData تغییر بدید.
اگر بیشتر از دو تکست باکس دارین، می‌تونید متغیرهای دیگری برای ذخیره مقادیر ایجاد کنید و آن‌ها را به گزارش ساز منتقل کنید.




using Stimulsoft.Report;


public class Form1 : Form
{
private TextBox txtName;
private TextBox txtAge;


public Form1()
{
InitializeComponent();
}


private void btnPrint_Click(object sender, EventArgs e)
{
// دریافت مقدار ورودی از تکست باکس‌ها
string name = txtName.Text;
int age = Convert.ToInt32(txtAge.Text);


// ایجاد گزارش ساز Stimulsoft
StiReport report = new StiReport();
report.Load("Path_to_your_report_file.mrt");


// انتقال مقادیر به گزارش ساز
report.RegData("Name", name);
report.RegData("Age", age);


// چاپ گزارش
report.Show();
}
}
سلام و خیلی ممنونم از توضیحات کامل و جامع شما
با این توضیحات شما مشکل سمت کد نویسی سی شارپم حل شد.
فقط در سمت طراحی گزارش stimulsoftاین متغییر هارو چطوری تعریف کنیم یا چطوری جاگذاری کنیم؟
ممنون میشم در این مورد هم ، بنده رو راهنمایی بفرمایید.

پرستو پارسایی
جمعه 27 بهمن 1402, 16:26 عصر
txtName و txtAge دو تکست باکس هستن که مقادیر ورودی را دریافت می‌کنن. برای تعریف و جاگذاری این دو تکست باکس در طراحی گزارش Stimulsoft، می‌تونید از فیلد های متنی استفاده کنید.
برای تعریف فیلد های متنی در گزارش Stimulsoft، اینگونه تست کنید
در نرم افزار Stimulsoft Designer، گزارش جدید خود را ایجاد ، یا گزارش موجود را باز کنین
از قسمت "Data" در نوار ابزار، فیلد متنی را به صفحه گزارش بکشید.
در پنجره "Properties"، نام فیلد را به "Name" تغییر بدید.
برای جاگذاری مقادیر در این فیلد، از کد زیر در رویداد BeforePrint فیلد استفاده کنین


private void txtName_BeforePrint(object sender, System.EventArgs e)
{
txtName.Text = Parameters["Name"].Value.ToString();
}

private void txtAge_BeforePrint(object sender, System.EventArgs e)
{
txtAge.Text = Parameters["Age"].Value.ToString();
}

Parameters["Name"].Value و Parameters["Age"].Value مقادیری هستن که به گزارش ساز Stimulsoft ارسال می‌شن. برای ارسال این مقادیر به گزارش ساز، می‌تونید از دستور report.Dictionary.Parameters["Name"].Value = name; و report.Dictionary.Parameters["Age"].Value = age; در کد خود استفاده کنین
بعد از انجام این مراحل، مقادیر وارد شده در تکست باکس ها به فیلدهای متنی گزارش منتقل می‌شن و می‌تونید گزارش را نمایش بدید

apkgames
شنبه 28 بهمن 1402, 00:12 صبح
حیلی ممنونم از لطفتون که وقت میزارید و پاسخ میدید.
فقط متوجه رویداد BeforePrint نشدم ، چون بین رویداد های مربوط به تکست باکس نتونستم پیداش کنم.

و اینکه این دستور :
txtAge.Text = Parameters["Age"].Value.ToString();

باعث نمیشه که مقدار پارامتر age در تکست باکس قرار بگیره؟ پس چطوری به گزارش ساز ارسال میشن؟

apkgames
شنبه 28 بهمن 1402, 10:14 صبح
دوستان کدوم ورژن از stimulsoft برای کار با c# هستش و اینکه کرک کردنش هم راحت هست؟
ورژن سی شارپ ۲۰۲۰ هستش

apkgames
دوشنبه 30 بهمن 1402, 18:32 عصر
txtName و txtAge دو تکست باکس هستن که مقادیر ورودی را دریافت می‌کنن. برای تعریف و جاگذاری این دو تکست باکس در طراحی گزارش Stimulsoft، می‌تونید از فیلد های متنی استفاده کنید.
برای تعریف فیلد های متنی در گزارش Stimulsoft، اینگونه تست کنید
در نرم افزار Stimulsoft Designer، گزارش جدید خود را ایجاد ، یا گزارش موجود را باز کنین
از قسمت "Data" در نوار ابزار، فیلد متنی را به صفحه گزارش بکشید.
در پنجره "Properties"، نام فیلد را به "Name" تغییر بدید.
برای جاگذاری مقادیر در این فیلد، از کد زیر در رویداد BeforePrint فیلد استفاده کنین


private void txtName_BeforePrint(object sender, System.EventArgs e)
{
txtName.Text = Parameters["Name"].Value.ToString();
}

private void txtAge_BeforePrint(object sender, System.EventArgs e)
{
txtAge.Text = Parameters["Age"].Value.ToString();
}

Parameters["Name"].Value و Parameters["Age"].Value مقادیری هستن که به گزارش ساز Stimulsoft ارسال می‌شن. برای ارسال این مقادیر به گزارش ساز، می‌تونید از دستور report.Dictionary.Parameters["Name"].Value = name; و report.Dictionary.Parameters["Age"].Value = age; در کد خود استفاده کنین
بعد از انجام این مراحل، مقادیر وارد شده در تکست باکس ها به فیلدهای متنی گزارش منتقل می‌شن و می‌تونید گزارش را نمایش بدید
میشه در خصوص سوالم راهنمایی بفرمایید؟

پرستو پارسایی
سه شنبه 01 اسفند 1402, 17:51 عصر
BeforePrint یک رویداده که در گزارش‌ها یا فرم‌های چاپ استفاده می‌شه
دو متد BeforePrint برای دو فیلد txtName و txtAge تعریف شدن
هرکدام از این متدها مقدار مربوط به پارامتر Name یا Age را از Parameters دریافت کرده و در متن مربوطه نمایش میدن
این کد باید در قسمت‌های مربوط به چاپ گزارش یا فرم قراربگیره تا قبل از چاپ، مقادیر مربوط به Name و Age به درستی نمایش داده بشن. در کدی که ارسال کردم کامل توضیح دادم مشکلتون دقیقا چیه؟

apkgames
سه شنبه 01 اسفند 1402, 21:48 عصر
BeforePrint یک رویداده که در گزارش‌ها یا فرم‌های چاپ استفاده می‌شه
دو متد BeforePrint برای دو فیلد txtName و txtAge تعریف شدن
هرکدام از این متدها مقدار مربوط به پارامتر Name یا Age را از Parameters دریافت کرده و در متن مربوطه نمایش میدن
این کد باید در قسمت‌های مربوط به چاپ گزارش یا فرم قراربگیره تا قبل از چاپ، مقادیر مربوط به Name و Age به درستی نمایش داده بشن. در کدی که ارسال کردم کامل توضیح دادم مشکلتون دقیقا چیه؟
مشکلم اینه که این رویدادهای beforeprint رو باید از قسمت رویدادهای سی شارپ انتخاب کنم یا دستی تایپ کنم و ایجاد کنم؟

منظور اینکه رویداد beforeprint رو نمیتونم پیدا کنم.


و اینکه برای
Parameters در دستور Parameters["Age"].Value.ToString(); پیام خطا میده

پرستو پارسایی
چهارشنبه 02 اسفند 1402, 20:24 عصر
اینگونه تست کنید

using Stimulsoft.Base;
using Stimulsoft.Report;


private void btnPrint_Click(object sender, EventArgs e)
{
// ایجاد یک گزارش جدید
StiReport report = new StiReport();


// اضافه کردن فایل گزارش طراحی شده به گزارش جدید
report.Load("PathToYourReport.mrt");


// تنظیم مقادیر پارامترها از تکست باکس‌ها
report.Dictionary.Variables["Name"].ValueObject = txtName.Text;
report.Dictionary.Variables["Age"].ValueObject = txtAge.Text;


// نمایش گزارش
report.Show();
}