PDA

View Full Version : مشکل رکورد های اضافه در گزارش



bhz1919
چهارشنبه 02 فروردین 1385, 11:21 صبح
با سلام

در یک بانک با دو جدولی که ارتباط چند به چند دارند در هر دو جدول اطلاعات طورتی است که باید خروجی نمایش آن فقط دو رکورد باشد ولی رکوردها بصورت ضرب شده در هم نمایش داده می شوند. یعنی دو تا دو رکورد در دو جدول به جای دو تا , چهار تا نمایش داده می شوند.

در ضمن ارتاط بین آنها را در crystal به همان صورت چند به چند تعریف کردم ولی مثل اینکه بدون توجه به ارتباط بین آنها رکوردها ضرب شده در هم نمایش داده می شوند.

می خواستم ببینم مشکل از چیست؟


با تشکر

Bithiah
چهارشنبه 02 فروردین 1385, 18:55 عصر
دوست عزیز،
بهتره ابتدا توضیح بدین که به چه نحو داده ها رو از بانک اطلاعاتیتون دورن گزارش لود می کنین. منظور اینه که برای مثال آیا دیتاسورستون یه رکوردست هست که از درون برنامه توسط کد به گزارش ارسال می کنید یا اینکه برای مثال درون فایل گزارش فیلدها را از جداول مختلف بانک قرار داده اید و یا اینکه از یک Command برای واکشی اطلاعات از بانک داده استفاده کرده اید.
در صورتیکه فیلدها را تک تک از جداول بیاورید و با کد هم هیچ محدودیتی اعمال نکنید، مسلما Relation میان جداول نادیده گرفته خواهد شد. ضمنا به گروه بندی اطلاعات در کریستال ریپورت هم توجه خاص داشته باشید، چرا که امکان بسیار قدرتمند و گسترده ای در دست طراح گزارش است.
در هر صورت سوالتان به توضیح بیشتر احتیاج دارد.

bhz1919
چهارشنبه 02 فروردین 1385, 19:58 عصر
من از محیط crystal repot viewer خود net استفاده می کنم و فقط بدون کد نویسی و گروه بندی فیلذهایی از دو جدول که رابطه چند به چند دارند را می خواهم نشان دهم.

البته من با این مفاهیم آشنایی چندانی ندارم


ولی یکی از چیزهایی که خیلی برام ضروریه فرستادن عبارات sql بصورت یک پارامتر بهreport viewer crystalبرای گزارش گیری پویا در زمان احرا در net است.

با تشکر

meh_secure
پنج شنبه 03 فروردین 1385, 00:46 صبح
مشکل شما یا از ساختار جداول تون هست و یا کوئری گیری نادرست و به کریستال ربطی نداره.البته میشه با گروه بندی یه جورایی سرو تهش رو هم آورد ولی این راهش نیست و کلی از سرعتتون رو هم می گیره.

bhz1919
پنج شنبه 03 فروردین 1385, 14:07 عصر
البته این مشکل با تغییر نام یک فیلد جدول فعلا درست شد ولی یک مشکل دیگه اینه که در یک گزارش گیری پویا با datasetکه درون خاصیت report.SetDataSource قرار میگیره در ارتباط یک به چند دو جدول با هم یک همچین اتفاقی داره می افته

در صورتی که در دستور select مربوطه query را درست داده بودم.


آیا کسی با daatset و پاس دادن آن به report ها مخصوصا در query ها با روابط یک به چند یا بیشتر کار کرده که راهنمایی بکنه؟

bhz1919
پنج شنبه 03 فروردین 1385, 14:24 عصر
در ادامه صحبت هام متذکر می شم که query های من با جداول یک در چند در sql درست جواب
می ده ولی در report با dataset است که رکوردهای تکراری نمایش می ده.

meh_secure
پنج شنبه 03 فروردین 1385, 16:38 عصر
دوستان سلام مجدد. بزودی یک مثال در رابطه با گزارش گیری پویا در net. و همچنین در VB6 در اختیارتون می گذارم. کمی منتظر بمانید.

MMAASS
پنج شنبه 03 فروردین 1385, 22:40 عصر
با سلام

در یک بانک با دو جدولی که ارتباط چند به چند دارند در هر دو جدول اطلاعات طورتی است که باید خروجی نمایش آن فقط دو رکورد باشد ولی رکوردها بصورت ضرب شده در هم نمایش داده می شوند. یعنی دو تا دو رکورد در دو جدول به جای دو تا , چهار تا نمایش داده می شوند.

در ضمن ارتاط بین آنها را در crystal به همان صورت چند به چند تعریف کردم ولی مثل اینکه بدون توجه به ارتباط بین آنها رکوردها ضرب شده در هم نمایش داده می شوند.

می خواستم ببینم مشکل از چیست؟


با تشکر
سلام دوست عزیز
در کل برقراری ارتباط چند به چند نادرسته (فکر نمی کنین این نوع ارتباط با نبودنش یکیه :متفکر: )
ببینین می تونین این ارتباط رو به دو رابطه یک به چند تغییر بدین؟

bhz1919
جمعه 04 فروردین 1385, 12:19 عصر
با سلام


اصولا ارتباط چند به چند در جداول بصورت دو رابطه یک به چند که پیاده سازی می شه

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

MMAASS
جمعه 11 فروردین 1385, 21:00 عصر
سلام دوست عزیز
نمی دونم مشکلتون حل شده یا نه؟
باید بگم یه مشکل بزرگی که تو کریستال ریپورت هست اینه که وقتی دیتاست تغییر پیدا می کنه گزارش اون تغییرات رو نمی گیره.
به نظر من ابتدا کوئریتون (البته فکر کنم منظورتون همون دیتا آداپتور باشه) را کامل بسازین اگه که روابط رو تو SQL هم تعریف نکردین اینجا هم می تونین این کار رو انجام بدین. بعدش دیتاستشو درست کنین (البته اگه قبلا ساختین فقط یه بار اونو چک و ویرایش کنین نیازی به پاک کردن و ساختن مجدد اونا نیست) فایل rpt قبلی رو هم پاک کنین و واسه ی این دیتاست نهایی یه گزارش جدید بسازین و از قبلی استفاده نکنین.
امیدوارم که جواب بگیرین.