PDA

View Full Version : چگونگی ارتباط دیتاتیبل با StimulSoft



jmfnima
دوشنبه 24 مرداد 1390, 22:04 عصر
با سلام به همه دوستان عزیز
من در پروژه ام یک کلاس تعریف کردم که از داخل این کلاس کانکشن رو هم ساختم و در داخل این کلاس یک دیتاتیبل رو تعریف کردم که به دیتابیس من وصل میشه . در فرم گزارشگیری از استیمول سافت استفاده کردم حال میخوام این دیتاتیبل رو به استیمول وصلش کنم و کدهایی که به کار برده ام نیز در پایین آوردم ولی نمیدونم مشکل چیه T هر کاری میکنم که این استیمول اطلاعات این دیتاتیبل رو نشون بده نمیشه و فقط اطلاعات همون دیتابیسی که از اول به استیمول وصل بوده رو نشون میده . هر کس میتونه بهم کمک کنه ممنون میشم .


(private void button1_Click(object sender, EventArgs e
}
//dtTavaghofat دیتا تیبلی که از یک کلاس دیگر فراخوانی میشه
;()DataSet ds = new DataSet
(ds.Tables.Add(dtTavaghofat
;("stiReport1.Load("stiReport1.mrt
;(stiReport1.RegData(ds
;() stiReport1.Render
;stiViewerControl1.Report = stiReport1
;()stiViewerControl1.Show

{

Esmail Solhkhah
دوشنبه 24 مرداد 1390, 23:28 عصر
خب طبیعیه شما موقع دیزاین گزارش از دیتاست تیبل خاصی رو به StiReport ست کردید و حالا انتظار داره دیتا رو از همون تیبل بگیره

یا تو دیزاین تیبل رو عوض کنید یا با یه حلقه Foreach تمام رکوردهای دیتاتیبل dtTavaghofat رو بریزید تو اون تیبلی که موقع دیزاین گزارش ست کرده بودید.

موفق باشید.

morteza271
دوشنبه 24 مرداد 1390, 23:55 عصر
اگه مراحل زیر رو به ترتیب برین به نتیجه می رسین :
فرض کنید یک دیتاتیبل دارین به نام dt و ستون های این دیتاتیبل برابر id - name - familly هستش.حالا میخوایم این دیتاتیبل رو به صفحه گزارش وصلش کنیم:
مطابق عکس های زیر جلو برین :
1- ابتدا یک Data Source بسازید :
73857
2-
73856
3- بعد در صفحه باز شده مطابق عکس زیر ستون های دیتاتیبل رو در دیتاست ایجاد شده میسازیم :
73855

بعد در سی شارپ کدهای زیر رو می نویسیم :
DataSet ds = new DataSet();
ds.Tables.Add(dt);
stiListReport.ResetRenderedState();
stiListReport.RegData("dsList", ds);
stiListReport.Dictionary.Synchronize();
stiListReport.Show();

فقط توجه داشته باشید اسم ستون ها باید دقیقا برابر باشند.یعنی اسم ستون هایی که در دیتاتیبل dt هست باید دقیقا همان نام ها را برای ستون های دیتاست داخل صفحه گزارش گذاشت.
موفق باشید

jmfnima
سه شنبه 25 مرداد 1390, 20:30 عصر
با تشکر از دوست عزیز troski
این روش شما رو امتحان کردم ولی باز هم جواب نمیده . نمیدونم مشکل من کجاست؟

shocraneh
سه شنبه 25 مرداد 1390, 21:57 عصر
به لینک زیر برو
http://barnamenevis.org/showthread.php?117526-سوالات-مربوط-به-StimulReport-رو-در-این-تاپیک-مطرح-کنید/page62
تاپیک #617
البته دوست گرامیمون Esmail Solhkhah (http://barnamenevis.org/member.php?27551-Esmail-Solhkhah) در تاپیک ها ی قبلیش هم دقیقابرای همین مورد شما پروژه گذاشته اند.دستشون درد نکنه

morteza271
سه شنبه 25 مرداد 1390, 22:25 عصر
با تشکر از دوست عزیز troski
این روش شما رو امتحان کردم ولی باز هم جواب نمیده . نمیدونم مشکل من کجاست؟

مطمئن باشید اگه یه خورده باهاش ور برید حتما درست میشه،چون من خودم دارم تمام گزارشاتم رو همینطوری انجام میدم و مشکلی نداره.
همونطور که گفتم اسم ستون ها باید دقیقا برابر باشه(هم از نظر تعداد و هم از نظر نام ستون).

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

jmfnima
چهارشنبه 26 مرداد 1390, 22:37 عصر
با سلام و تشکر از دوست عزیز troski
روش شما رو دومرتبه تست کردم و جواب گرفتم .
حالا یک سوال دیگه که من دارم و اگه بهم پاسخ بدین لطف بزرگی در حق من کردین .
اینکه اگه خواسته باشیم که گزارش رو کاربر بر اساس فیلدهایی که خودش انتخاب میکنه تهیه بشه باید چیکار کرد؟ منظورم اینه که بر روی فرم به تعداد فیلدهای دیتاتیبل من چک باکس باشه و گزارشی که کاربر میخواد تهیه کنه بر اساس فیلدهایی که تیک زده باشه تهیه بشه .

morteza271
چهارشنبه 26 مرداد 1390, 23:03 عصر
منظورتون رو متوجه نشدم!!!
میخواین کاربر از سطرهای موجود تعدادی سطر رو انتخاب کنه و سطرهایی که انتخاب شدن رو چاپ کنه یا از بین ستون ها تعدادی رو انتخاب کنه؟

jmfnima
پنج شنبه 27 مرداد 1390, 14:03 عصر
آره دوست عزيز دقيقا همين طور است
من توي يك برنامه ديدم كه وقتي ميخواستي گزارش تهيه كني ميتونستي ستون ها رو طبق ميل خودت انتخاب كني و وقتي گزارش درست ميشد فقط همون ستون هايي كه كاربر انتخاب كرده بود در گزارش نمايش داده ميشد .

morteza271
پنج شنبه 27 مرداد 1390, 15:42 عصر
راستش توی این زمینه اطلاعی ندارم!!!
اگه در مورد تعداد سطر ها می بود مشکلی نبود ولی در مورد ستون ها ....!!!!!!!!
فقط بعضی از نرم افزارهای گزارش گیری هستند که میتونی قبل از چاپ شکل گزارش رو به کاربر نمایش بدی(یعنی یه جور پیش نمایش هست) بعد کاربر اگه خواست میتونه اونو ویرایش کنه و بعد چاپ رو بزنه!نمیدونم این براتون خوبه یا نه!!!
موفق باشید

jmfnima
پنج شنبه 27 مرداد 1390, 21:06 عصر
دوست عزیز در مورد ردیف ها باید به چه صورت عمل کرد . یا اگه لطف کنید بگید به چه طریقی میشه اطلاعات گزارش رو بر اساس یک کمبو باکس یا بین دو تاریخ در داخل دو تکس باکسی که بر روی فرم قرار دارد تهیه نمود .

morteza271
پنج شنبه 27 مرداد 1390, 22:02 عصر
در مورد اینکه چطوری فقط ردیف ها رو انتخاب کنه و ردیف های انتخاب شده چاپ بشه می تونید به این روش عمل کنید :
شما که دارین یه دیتاتیبل رو به گزارش پاس میدین دیگه!
خوب پس وقتی دارین دیتاتیبل رو میسازین فقط ستون هایی که انتخاب شدن رو داخل دیتاتیبل بریزین و بعد دیتاتیبل رو به گزارش پاس بدین.

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

راستش توضیح این سوالاتون بستگی به روش شما برای چاپ اطلاعات داره، اگه لطف کنید یه نمونه کدتون رو بذارین راحت تر می تونم کمکتون کنم.
موفق باشید

jmfnima
جمعه 28 مرداد 1390, 19:27 عصر
با تشکر از شما دوست عزیز troski
این روشی که شما در بالا به آن اشاره کردید رو من قبلا به کار بردم ولی من میخوام این کار رو با به کار بردن پارامتر در استیمول سافت انجام دهم .

pinkAzalia
چهارشنبه 26 بهمن 1390, 14:54 عصر
با سلام
من می خوام دو تا datatable به stimul پاس بدم
توی یک پست دیدم دوستی گفته بود dataset پاس بدم من این کار رو می کنم اما درست نمی شه میشه یک نمونه برام بگذارید . کد زیر رو نوشتم اما کار نمی کنه لطفا کمک کنید

ds.Merge(dt);

ds.Merge(dtresult);
reportReques.ResetRenderedState();

reportReques.RegData(ds);

reportReques.Dictionary.Synchronize();

reportReques.Render();

reportReques.Show();

jmfnima
چهارشنبه 26 بهمن 1390, 16:22 عصر
با سلام به همه دوستان عزیز
کسی نیست این جواب رو بده ؟؟؟ به چه طریقی میشه دو تا دیتاتیبل رو به استیمول سافت پاس داد ؟؟

pinkAzalia
چهارشنبه 03 اسفند 1390, 09:33 صبح
با سلام
من می خوام دو تا datatable به stimul پاس بدم
توی یک پست دیدم دوستی گفته بود dataset پاس بدم من این کار رو می کنم اما درست نمی شه میشه یک نمونه برام بگذارید . کد زیر رو نوشتم اما کار نمی کنه لطفا کمک کنید

ds.Merge(dt);

ds.Merge(dtresult);
reportReques.ResetRenderedState();

reportReques.RegData(ds);

reportReques.Dictionary.Synchronize();

reportReques.Render();

reportReques.Show();
توی stimul هم دو data source به با همان نام های datatable هام با همون فیلد ها دارم ولی باز گذارشم خالیه کسی می دونه چرا؟