PDA

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



aradhirad
یک شنبه 03 اسفند 1399, 17:29 عصر
سلام
میخوام مثلا گزینه انتخاب داخل فرم بذارم مثلا چکهای دریافتی رو نشون بده یا پرداختی یا همه
یه همچین چیزی
یا مثلا بین دوتاریخ یا همه

من با پروسیجر و استیمول سافت کار میکنم . برای هر شرط باید یه گزارش جدا طراخی کنم و نشون بدم؟؟؟؟

Mahmoud Zaad
یک شنبه 03 اسفند 1399, 21:32 عصر
سلام
اگر همه یا بیشتر فیلدهای گزارش مشترک هستند نیازی به طراحی گزارش های جدا نیست. این موارد با شرط های SQL حل میشن. مثلا می تونید دو تا رادیو باتن رو فرم بذارید با عنوان چکهای پرداختی و چکهای دریافتی. حالا در رویداد کلیک دکمه جستجو، بررسی میکنید کدوم رادیو باتن کلیک شده و به تناسب، یک شرط رو اجرا میکنید مثلا
string _query = "select * from table where ";
if(rdbPardakhti.Checked)
_query+="filed=1";
if(rdbDaryafti.Checked)
_query+="field=2";
//اجرای کوئری
در اینجا من فرض کردم شما یک فیلدی دارید که مشخص میکنه چک دریافتی هست یا پرداختی، اگر پرداختی بود فیلد =1 هست و اگر دریافتی بود فیلد=2

برای تاریخ هم همینطور، مثلا اگر یک تکست باکس برای ورود تاریخ توسط کاربر داشته باشید، یک شرط دیگه هم به کوئری اضافه میشه
_query+=" AND date='"+txtDate.Text+"'";
یا برای جستجوی یک بازه زمانی
_query+=" AND date Between '"+txtDate1.Text+"' AND '"+txtDate2.Text+"'";

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

aradhirad
یک شنبه 03 اسفند 1399, 23:11 عصر
خیلی ممنون از این که وقت گذاشتین

خودمم خیلی سرچ کردم و به این نتیجه رسیدم که از داخل برنامه دیتاسورس استیمول رو بنویسم .

DataSet ds = new DataSet();
SqlDataAdapter adp = new SqlDataAdapter();
adp.SelectCommand = new SqlCommand();
adp.SelectCommand.Connection = con;
adp.SelectCommand.CommandText = "select * from tblcheck,tblmoshtari where tblcheck.idmoshtari=tblmoshtari.id and tblcheck.vaziat='برگشت چک' order by tblcheck.id ";

adp.Fill(ds, "t");
StiReport report = new StiReport();
report.Load("report/rptlistcheck.mrt");
report.RegData("t", ds);
report.Compile();
report["caption"] = rb.Text;
//
report.ShowWithRibbonGUI();

اینجا گذاشتم شاید به درد کسی بخوره

aradhirad
یک شنبه 03 اسفند 1399, 23:12 عصر
اون قسمت "برگشت چک" رو چطور بصورت پارامتر تعریف کنم؟

Mahmoud Zaad
دوشنبه 04 اسفند 1399, 08:10 صبح
اینها رو قبل از خط adp.Fill(ds, "t"); بنویسید:
adp.SelectCommand.Parameters.AddWithValue("@vaziat", "برگشت چک");
یا برای تکست باکس
adp.SelectCommand.Parameters.AddWithValue("@vaziat", textBox1.Text);

aradhirad
چهارشنبه 06 اسفند 1399, 00:56 صبح
بسیار بسیار ممنونم