PDA

View Full Version : ارسال چند دیتاتیبل به گزارش stimulreport



نیما حتمی
دوشنبه 25 شهریور 1392, 15:06 عصر
با سلام

دوستان من از استیمول ریپورت برای گزارشگیری استفاده می کنم حالا من میخوام از 1 جدول سه بار خروجی بگیرم و با استفاده از table data source در گزارشم استفاده کنم.حالا مشکل اینجاست که من واسه خروجی اول و نماشی اون مشکلی ندارم ولی واسه دومی به بعد مشکل دارم.الان که بررسی کردم که دیدم چون فقط یه بار میشه از این دستور در هر صفحه استیمول استفاده کرد من نمیتونم 3 خروجی رو در گزارشم نشون بدم


InterGharardad.RegData("Dt2",t);

حالا چیکار کنم؟

ashkan1234
دوشنبه 25 شهریور 1392, 22:56 عصر
سلام!
این روشی که گفتی نمیدونم منظورت ADO.net بود که ویزاردی کانکت میشی!
کلا اینو که متوجه شدم رو جواب میدم...
سه تا دیتا بایند بیار رو صفحه گزارشگیریت سه تا دیتا بهش پاس بده!
یا راه منطقی ترش هم اینه که با یه حلقه یا یه شرط سه تا دیتا رو بیاری توی یه دونه دیتا بایند!

aslan
سه شنبه 26 شهریور 1392, 00:48 صبح
با سلام

دوستان من از استیمول ریپورت برای گزارشگیری استفاده می کنم حالا من میخوام از 1 جدول سه بار خروجی بگیرم و با استفاده از table data source در گزارشم استفاده کنم.حالا مشکل اینجاست که من واسه خروجی اول و نماشی اون مشکلی ندارم ولی واسه دومی به بعد مشکل دارم.الان که بررسی کردم که دیدم چون فقط یه بار میشه از این دستور در هر صفحه استیمول استفاده کرد من نمیتونم 3 خروجی رو در گزارشم نشون بدم


InterGharardad.RegData("Dt2",t);

حالا چیکار کنم؟

سلام
سوالتون یک کم نامفهومه :

از 1 جدول سه بار خروجی بگیرم
منظورتون 3 نسخه از یک گزارشه ؟ یا چیزه دیگه ؟

بررسی کردم که دیدم چون فقط یه بار میشه از این دستور در هر صفحه استیمول
احتمالا بررسی تون و یا نتیجه گیریتون اشتباه بوده چون میتونین از این دستور (RegData) بیش از یکبار هم استفاده کنین ..
...
در صورتیکه مشکلتون بر طرف نشده بیشتر توضیح بدین شاید بشه کمکی کرد
موفق باشید

نیما حتمی
سه شنبه 26 شهریور 1392, 09:48 صبح
aslan جان من این کد رو نوشتم ولی ایراد میگیره


SqlDataAdapter insert = newSqlDataAdapter(@"select Namec as [ ],familyc as [ ],radeseni as [],Htb [ ] from customer where shgh='"+ShGH.Text +"' ", connect);

DataTable t = newDataTable(); insert.Fill(t);

SqlDataAdapter insert1 = newSqlDataAdapter(@"select * from customer where typePassenger='true' and shgh='" + ShGH.Text + "' ", connect);

DataTable t1 = newDataTable(); insert1.Fill(t1);

SqlDataAdapter mali = newSqlDataAdapter(@"select accountkol as [ ],bestankar as [],bedehkar as [] from customer where typePassenger='true' and shgh='" + ShGH.Text + "' ", connect);

DataTable tmali = newDataTable(); mali.Fill(tmali);

SqlDataAdapter insert3 = newSqlDataAdapter(@"select * from Setting ", connect);

DataTable t3 = newDataTable(); insert3.Fill(t3);

InterGharardad.RegData("Dt2",t);

InterGharardad.RegData("Dt1", tmali);

// InterGharardad.RegData("Dt1",tmali);

InterGharardad.Load("InterGharardad.mrt");

دو خط زیر و قبول نمی کنه


InterGharardad.RegData("Dt2",t);

InterGharardad.RegData("Dt1", tmali);

ashkan1234
سه شنبه 26 شهریور 1392, 10:18 صبح
سلام!
منظورت از قبول نمیکنه حتما یه اررور هستش دیگه!
از خطایی که میده یه عکس بگیر بذار!
هیچ کدوم دیتا هات مقدار نال برنمیگردونن؟

نیما حتمی
سه شنبه 26 شهریور 1392, 11:00 صبح
نه اررور نمیده گزارشو باز میکنه و شکل زیرو نشون میده
110782
درواقع قاطی میکنه.من دوتا دیتا سورس تو گزارشم دارم که از تو برنامم پر میشه وقتی یه دونه دیتا سورس دارم برنامه جواب میده ولی 2 تا به بالا این شکلی میشه و گزارشو نشون نمیده

نیما حتمی
سه شنبه 26 شهریور 1392, 11:33 صبح
110786
این در قسمت طراحی فرمم هستش.اجری گزارش در پست قبل گذاشتم دوستان کسی میتونه بگه مشکلو چطور حل کنم.
فقط کافیه متوجه شم چطور میشه از دستور

InterGharardad.RegData("Dt2",t);

چندین بار در یک page گزارش استفاده کرد.ظاهر امر اینطور هست ک هفقط یه بار میشه استفاده کرد ولی خوب یکی مثل من که میخواد اطلاعات مسافر-هتل-پرواز مربوط به یه مسافرو در یک قرارداد بیاره باید چیکار کنه

نیما حتمی
سه شنبه 26 شهریور 1392, 12:02 عصر
آقا توروخدا یه نفر کمک کنه

aslan
سه شنبه 26 شهریور 1392, 15:06 عصر
سلام
ببینید لینک زیر میتونه کمکتون کنه
http://forum.stimulsoft.com/viewtopic.php?f=8&t=3979&p=17159&hilit=Two+RegData#p17159
لازم است فایل گزارش را ابتدا لود کنید و بعدا بقیه کارها را انجام دهید ......
در ضمن چه نیازی به اینهمه دیتا تیبل وجود داره وقتی که اکثرا از یک جدول (Customer) و با یک شرط اطلاعات واکشی میشه ..........؟؟؟؟!!!

نیما حتمی
سه شنبه 26 شهریور 1392, 15:21 عصر
خوب باید تو جداول مختلف نشون داده بشه

ashkan1234
سه شنبه 26 شهریور 1392, 15:48 عصر
همونطور که آقا aslan هم فرمودند نیازی به چندتا دیتا تیبل نداری!
یدونه دیتا تیبل همه مقادیر رو توش جا بده!
بعدش از استیمول اونجا میتونی چندتا دیتاست تعریف کنیو بندازی روی صفحه ات...
البته من زیاد با ADO.net کار نکردم و بیشتر Linq کار کردم!(البته این موضوع هیچ ربطی به ریشه سوال نداره)
توی یه گزارش گاهی شده که از 4 تا جدول مختلف هم با 4تا دبتاست مختلف گزارش گرفتم!
اگه خواستی یه سورس کوچیک بزار برات درستش میکنم...

نیما حتمی
سه شنبه 26 شهریور 1392, 16:42 عصر
اشکان جان مرسی.سورس برنامه رو میزارم ببین میتونی کاری کنی.فقط اینو بدون که من از تو برنامه دیتاتیبلو پر میکنم و تو گزارش فراخونی میکنم.حالا وقتی که تو گزارش دو تا دیتا سور میزاری و تو برنامه دوتا Report.regdata میزاری هیچی رو تو گزارش نشون نمیده.خیلی گیرم به خدا



SqlConnection connect = new SqlConnection();

connect.ConnectionString = Ajans.Properties.Settings.Default.Connection.ToStr ing();

try


{

connect.Open();

DataSet ds = new DataSet();

SqlDataAdapter insert = new SqlDataAdapter(@"select Namec as [ ],familyc as [ ],radeseni as [],Htb [ ] from customer where shgh='"+ShGH.Text +"' ", connect);

DataTable t = new DataTable(); insert.Fill(t);

SqlDataAdapter insert1 = new SqlDataAdapter(@"select * from customer where typePassenger='true' and shgh='" + ShGH.Text + "' ", connect);

DataTable t1 = new DataTable(); insert1.Fill(t1);

SqlDataAdapter mali = new SqlDataAdapter(@"select Timeraft as [ ],Tiketfrom as [],tiketbargashgt as [],DateHarekat as [] from customer where typePassenger='true' and shgh='" + ShGH.Text + "' ", connect);

DataTable air = new DataTable(); mali.Fill(air);

SqlDataAdapter insert3 = new SqlDataAdapter(@"select * from Setting ", connect);

DataTable t3 = new DataTable(); insert3.Fill(t3);


ds.Tables.Add(air);

ds.Tables.Add(t);

//return ds;

InterGharardad.Load("InterGharardad.mrt");

InterGharardad.RegData("test","Dt2",ds);

InterGharardad.RegData("test", "Dt1", ds);

//InterGharardad.RegData("Dt2",t);






// InterGharardad.RegData("Dt1", air);

// InterGharardad.Load("InterGharardad.mrt");




// InterGharardad.RegData("Dt1",air);

//InterGharardad.RegReportDataSources();

//InterGharardad.LoadFromString("InterGharardad.mrt");

//((StiText)InterGharardad.Pages["Page1"].GetComponents()["countkol"]).Text.Value = t3.Rows[0][0].ToString();

((StiText)InterGharardad.Pages["Page1"].GetComponents()["shgh"]).Text.Value = t1.Rows[0][1].ToString();

((StiText)InterGharardad.Pages["Page1"].GetComponents()["NameUser"]).Text.Value = t1.Rows[0][14].ToString();

((StiText)InterGharardad.Pages["Page1"].GetComponents()["Date"]).Text.Value = t1.Rows[0][10].ToString();

((StiText)InterGharardad.Pages["Page1"].GetComponents()["Name"]).Text.Value = t1.Rows[0][2].ToString() + " " + t1.Rows[0][3].ToString();

((StiText)InterGharardad.Pages["Page1"].GetComponents()["request"]).Text.Value = t1.Rows[0][13].ToString() ;

((StiText)InterGharardad.Pages["Page1"].GetComponents()["Count"]).Text.Value = t1.Rows[0][11].ToString();

((StiText)InterGharardad.Pages["Page1"].GetComponents()["Addres"]).Text.Value = t1.Rows[0][68].ToString() ;

((StiText)InterGharardad.Pages["Page1"].GetComponents()["Tellmosafer"]).Text.Value = t1.Rows[0][66].ToString();

((StiText)InterGharardad.Pages["Page1"].GetComponents()["Mobile"]).Text.Value = t1.Rows[0][4].ToString() ;

//((StiText)InterGharardad.Pages["Page1"].GetComponents()["Mobile"]).Text.Value = t1.Rows[0][2].ToString() ;

((StiText)InterGharardad.Pages["Page1"].GetComponents()["NameCompany"]).Text.Value = t3.Rows[0][0].ToString();

((StiText)InterGharardad.Pages["Page1"].GetComponents()["addrescompany"]).Text.Value = t3.Rows[0][4].ToString();

((StiText)InterGharardad.Pages["Page1"].GetComponents()["TellAjans"]).Text.Value = t3.Rows[0][1].ToString();

((StiText)InterGharardad.Pages["Page1"].GetComponents()["Nametor"]).Text.Value = t1.Rows[0][18].ToString();

((StiText)InterGharardad.Pages["Page1"].GetComponents()["From"]).Text.Value = t1.Rows[0][5].ToString();

((StiText)InterGharardad.Pages["Page1"].GetComponents()["To"]).Text.Value = t1.Rows[0][55].ToString();

((StiText)InterGharardad.Pages["Page1"].GetComponents()["ezam"]).Text.Value = t1.Rows[0][5].ToString();

//((StiText)InterGharardad.Pages["Page1"].GetComponents()["kol"]).Text.Value = t1.Rows[0][25].ToString();

// ((StiText)InterGharardad.Pages["Page1"].GetComponents()["Nametor"]).Text.Value = t1.Rows[0][18].ToString();

//((StiText)InterGharardad.Pages["Page1"].GetComponents()["NameCompany"]).Text.Value = t2.Rows[0][0].ToString();

//((StiText)InterGharardad.Pages["Page1"].GetComponents()["TelN"]).Text.Value = t2.Rows[0][1].ToString();

// ((StiText)InterGharardad.Pages["Page1"].GetComponents()["FaxN"]).Text.Value = t2.Rows[0][2].ToString();

// ((StiText)InterGharardad.Pages["Page1"].GetComponents()["Address"]).Text.Value = t2.Rows[0][4].ToString();

/* if (checkBox6.Checked == true)



{

((StiText)RLeider.Pages["Page1"].GetComponents()["NameHotel"]).Text.Value = t1.Rows[0][17].ToString();

}

else

{

((StiText)RLeider.Pages["Page1"].GetComponents()["NameHotel"]).Text.Value = "";

}*/


// ((StiText)InterGharardad.Pages["Page1"].GetComponents()["Dateback"]).Text.Value = t1.Rows[0][55].ToString();


InterGharardad.Show();

}

catch (Exception x)


{

FarsiMessageBox.FMessageBox.Show(" ", "", FarsiMessageBox.FMessageBoxButtons.OK, FarsiMessageBox.FMessageBoxIcons.Warning, FarsiMessageBox.FMessageBoxDefaultButtons.Button1, x.Message.ToString());


}

finally


{

connect.Close();

}

}

نیما حتمی
سه شنبه 26 شهریور 1392, 17:04 عصر
اشکان من باید از 3 تا دیتا تیبل استفاده کنم چون تو هر دیتا تیبل یکسری اطلاعات به یه شرط خاص فراخونی میشه.اگه اونطور که تو میگی همرو بریزم تو یه دیتاتیبل و تو گزارش تو دیتاست نشون بدم نمیشه که فدات شم.هرچند همه از یه جدول فراخونی میشه

shahryari
سه شنبه 26 شهریور 1392, 17:33 عصر
البته اگر به شکل زیر عمل کنی دیگه اون کد هم لازم نیست

110803

اگر متوجه نشدی میتونم بصورت انلاین حلش کنم

ashkan1234
سه شنبه 26 شهریور 1392, 19:33 عصر
بانک 2008.
VS2010
همونجوری که خواستی فقط شرمنده وقت نداشتم با لینک کد زدم!
سه تا دیتا ست...2تاش از جدول و یکی هم دیتا خالی
110809

نیما حتمی
چهارشنبه 27 شهریور 1392, 08:43 صبح
اشکان جان نمیخوام بگم مبتدی هستم ولی این طور کدنویسی رو تا حالا ندیدم من.من یه جدول تو بانکم دارم کدمم نوشتم واست حالا مشکلم ست کردن این دستور regdata واسه 3 تا دیتا سته توروخدا خیلی ساده و راحت بگو چیکار کنم دادا

نیما حتمی
چهارشنبه 27 شهریور 1392, 09:43 صبح
اشکان جان در ادامه صحیتام باید بگم که این برنامه شما هم جواب نداد و همون مشکل برنامه منو داره.یعنی اطلاعات رو نشون نمیده.من فکر کنم استیمول اصلا اجازه نمیده که بیش از 1 باز از دستور regdata بشه در یک page گزارش استفاده کرد چون هر ترفندی رو که بگی زدم و شما دوستان هم کلی زحمت کشیدین راهنمایی کردین ولی جواب نداد.چون وقتی بهش میگی

InterGharardad.RegData("Dt2",t);

بعد در خط بعد میای میگی

InterGharardad.RegData("Dt1",air);

یه جورایی قاطی میکنه و نمیفهمه چیرو باید نشون بده و در نتیجه برگه سفید نشون میده
این مشکل اساسی هست که من باهاش برخورد کردم و مطوئنم دیر یا زود شما عزیزان هم باهاش برخورد میکنید و متوجه میشین من چی کشیدم:گریه: حالا با توجه به این صحبتها و اینکه با توجه به برنامه ای که اشکان هم داد و مشکل حل نشد هر کی میتونه کمک کنه.دوستان فقط راه حلهایی رد ارائه بدین که تا حالا تو این تایپیک اساتید نگفتن چون اکثر راه ها گفته شده و نتیجه نگرفتیم مرسی از همه عزیزان

hamid_hr
چهارشنبه 27 شهریور 1392, 12:35 عصر
سلام
من اينطوري 6 تا تيبلو فرستادم برا چاپ
مشكلي هم ندارم
srp.RegData("Ds1", "ww1", DsMain.Tables[0]);
srp.RegData("Ds2", "ww2", DsMain.Tables[1]);
srp.RegData("Ds3", "ww3", DsMain.Tables[2]);
srp.RegData("Ds4", "ww4", DsMain.Tables[3]);
srp.RegData("Ds5", "ww5", DsMain.Tables[4]);
srp.RegData("Ds6", "ww6", DsMain.Tables[5]);
srp.Dictionary.Synchronize();
srp.Unit = new Stimulsoft.Report.Units.StiCentimetersUnit();
stiViewerControl1.Report = srp;
stiViewerControl1.SetParametersButtonChecked(false );
srp.Render();

نیما حتمی
چهارشنبه 27 شهریور 1392, 14:35 عصر
srp.Dictionary.Synchronize();
srp.Unit = new Stimulsoft.Report.Units.StiCentimetersUnit();
stiViewerControl1.Report = srp;
stiViewerControl1.SetParametersButtonChecked(false );
srp.Render();

این چند خط کد کارشون چیه؟
چرا واسه من

stiViewerControl1.Report = srp
نمی شناسه

نیما حتمی
چهارشنبه 27 شهریور 1392, 14:55 عصر
دوستان این قضیه داره میشه کشف اتم
این سورس برنامه منه



connect.Open();

SqlDataAdapter insert = new SqlDataAdapter(@"select shgh as [ ],Namec as [ ],familyc as [ ],radeseni as [],Htb [ ] from customer where shgh='"+ShGH.Text +"'", connect);

DataTable t = new DataTable(); insert.Fill(t);

SqlDataAdapter insert1 = new SqlDataAdapter(@"select * from customer where typePassenger='true' and shgh='" + ShGH.Text + "' ", connect);

DataTable t1 = new DataTable(); insert1.Fill(t1);

SqlDataAdapter mali = new SqlDataAdapter(@"select Timeraft as [ ],Tiketfrom as ,tiketbargashgt as ,DateHarekat as from customer where shgh='" + ShGH.Text + "' and typePassenger='true'", connect);

DataTable air = new DataTable(); mali.Fill(air);

SqlDataAdapter insert3 = new SqlDataAdapter(@"select * from Setting ", connect);

DataTable t3 = new DataTable(); insert3.Fill(t3);




//InterGharardad.DataStore.Clear();

InterGharardad.Load("InterGharardad.mrt");

InterGharardad.RegData("Dt2",t);

InterGharardad.RegData("Dt1",air);

// InterGharardad.Dictionary.Synchronize();

// InterGharardad.Unit = new Stimulsoft.Report.Units.StiCentimetersUnit();

// stiViewerControl1.Report = InterGharardad;

//InterGharardad.Render();


InterGharardad.Show();


این سورسو دوستان لطف کنن اگه اشکالی داره درست کنن.مشکل یا تو سورس منه یا تو گزارشم دیگه این سورس بچه ها ببینین میتونین کاری کنین

نیما حتمی
چهارشنبه 27 شهریور 1392, 15:47 عصر
دوستان هیچ کدوم از راه حلهایی که گفتین جواب نمیده.چرا آخه؟من سورسم گذاشتم بالا لطفا رو سورس نظرتونو بگین کجاش ایراد داره.من دارم با دیتا تیبل پر میکنم و تو گزارشم نشون میدم.1 دیتاتیبلو جواب میده ولی 2تا به بالا رو نشون نمیده.عت چیه آخه دارم دیوونه میشم

ashkan1234
چهارشنبه 27 شهریور 1392, 17:22 عصر
سلام!همونطور که عرض کردم!فرصت نداشتم با دیتاتیبل کد بزنم!
الانم دسترسی به کامپیوتر خونه ندارم باموبایلم!
ولی دیروز که کد رونوشتم تستش کردم!هیچ مشکلی هم نداشت!
حالا اینکه مشکل شما کجاست نمیدونم!
اگر کد مستر خوخان خان جواب نداد وقتی رفتم منزل حتما کدهارو برات تشریح میکنم و یک عکس از خروجی کدهام برات میزارم تا ببینی چجوری 2تا از جدولها را آوردم در گزارشگیری!
:لبخند:
خوخان خان دسته بیل کی؟!