PDA

View Full Version : سوال: (+_+) گزاش گیری از چند جدول با کریستال ریپورت ؟؟؟



kkkaka
شنبه 25 شهریور 1391, 17:55 عصر
سلام به همه
اولآ باز هم عرض کنم که بنده جستجو کردم و خیلی چیزهای خوبی هم پیدا کردم ولی یه مشکل عمده دارم که تو بقیه تاپیک ها جوابشو پیدا نکردم.
بنده میخواهم از 3 تا جدول گزارش بگیرم
این کارو با دستور Union انجام دادم.
اما مشکل بنده اینه که تو جدولهای 1و2 فیلد های نام و نام خانوادگی با هم همنامند(name,family ) در این حالت بنده چجوری باید به دیتا ستم بفمونم که name اول از جدول 1 و name دوم از جدول 2؟؟؟
یکم حس میکنم سوالم گنگه اینجوری بگم که: من وقتی میخوام گزارش بگیرم یه دیتاست(برای کریستال) درست میکنم که فیلدهاش همنام با فیلد های تیبله بعد کریستال میفهمه که مثلآ فیلد name رو با مقدار نامی که دیتاست(خود برنامه) براش میفرسته پر کنه.
حالا اگر من دوتا فیلد name داشته باشم در اینصورت کریستال از کجا میفهمه کدوم از جدول یکه و کدوم از جدول 2؟؟؟

kkkaka
شنبه 25 شهریور 1391, 20:03 عصر
فرض کنید من داخل دیتا ست که قراره کریستال رو پر کنه دوتا تیبل(A,B) دارم با فیلد های همنام.
تو برنامه چجوری به فیلد های A مقدار بدم ؟

abcd_a
شنبه 25 شهریور 1391, 20:16 عصر
سلام
یک veiw هم از هر چندتا جدول که داری می تونی تعریف کنی و در دیتا ست همانند یک جدول می تونی باهاش کارکنی

kkkaka
شنبه 25 شهریور 1391, 20:25 عصر
abcd_a (http://barnamenevis.org/member.php?168249-abcd_a) جان یکم بیشتر توضیح میدی.
view ??

abcd_a
شنبه 25 شهریور 1391, 20:55 عصر
من خودم از ین روش استفاده میکنم تو SQL می تونی با دستور Create view می تونی یک view تعریف کنی به صورت یک کوری
ویا به صورت ویژوال روی view راست کلیک کن و گزینه new view را انتخاب کن و بعد جدول های را که لازم دار ی انتخاب کن و در مرحله بعد نام فیلد ها را و در نهایت view را با یک نام شبیه یک جدول ذخیره کن و درون دیتا ست یک جدول کنا ر جدولهای که داری اضافه میشه

kkkaka
شنبه 25 شهریور 1391, 21:05 عصر
abcd_a (http://barnamenevis.org/member.php?168249-abcd_a) جان مرسی عزیز
خیلی راه خوبیه ولی بنده رو SQL زیاد تسلط ندارم سعی میکنم تا جایی که میشه کارهامو تو Visual انجام بدم البته این روش رو حتمآ امتحان میکنم.
ولی میخوام بدونم راه دیگه ای وجود نداره؟؟؟

abcd_a
شنبه 25 شهریور 1391, 21:16 عصر
دو روش من بیشتر سراغ ندارم یک روش همنطور که خودتون گفتید یک جدول به صورت دستی تو دیتا ست بسایزی و فیلدهاش تنظیم کنی
یک روش تعریف view

تعریف view با روش دوم که عرض کردم خدمتتون راحته سریع هم به نتیجه میرسی کمتر از روش اول هم وقت میگیره

kkkaka
شنبه 25 شهریور 1391, 22:29 عصر
abcd_a (http://barnamenevis.org/member.php?168249-abcd_a) جان بسیار عالی
حالا اگر بنده بخوام بگم مثلآ نام و نام خانوادگی را از جدول A که کد آنها برابر x است را داخل ویوو بریز چکار باید بکنم؟
بنده دقیقآ میخواهم از دو تا جدول ، اطلاعات استاد و شاگرد رو در بیارم که بر اساس id اینکارو انجام میدم حالا میخوام تو ریپورتم این اطلاعات رو نمایش بدم.

ehsan7007
شنبه 25 شهریور 1391, 22:40 عصر
یک سند blank درست کن و روی Databasa filed کلیک راست کن و database Expert رو بزن و تیبل هات رو وارد کن.
اون وقت فیلد های مورد نظرت از هر تیبلی که می خوای رو درگ کن.

امیدوارم منظورت همین باشه.

abcd_a
شنبه 25 شهریور 1391, 22:52 عصر
موقعی که view را ایجاد کرده یک پینجره نمایش داده میشه که می تونی جدول های را که می خواهی اضافه کنی
بعد از اضافه کردن جدولها فیلدها ی را که می خوای تکدار شون کن به صورت اتوماتیک اضافه میشه

وبعد view را بایک نام ذخیره کن

و اما برای کوری نوشن فیلد های هم نام به صورت زیر انجام بده به عنوان مثال
select student.name, teacher.name from student inner join teacher on student.id=teacher.id

kkkaka
دوشنبه 27 شهریور 1391, 12:29 عصر
سلام به همه
متاسفانه هنوز مشکل بنده پا برجاست!
abcd_a (http://barnamenevis.org/member.php?168249-abcd_a) جان

select student.name, teacher.name from student inner join teacher on student.id=teacher.id
این شرایط در حالتی برقراره که Id هر دو یکی باشه.
بنده میخوام خودم Id هر کدومو بدم و اطلاعاتشون رو استخراج کنم.

abcd_a
دوشنبه 27 شهریور 1391, 14:59 عصر
سلام
یک مثال براتون نوشتم امیدوارم که مفید باشه

یک view برای جدول دانش اموز و معلم تعریف کرم
هر جا که سوال بود در خدمتم

ali_habibi1384
دوشنبه 27 شهریور 1391, 15:11 عصر
نميفهمم! شما ميگيد با union اونها رو يكي كرديد پس يه جدول داريد. اون يكي جدول ديگه از كجا مياد؟
جواب كلي اينكه اگر ميخوايد چندتا جدول رو توي يك گزارش بياريد كافيه از subreport در كريستال استفاده كنيد اينجوري هر ديتا تيبل رو به ساب ريپورت خودش پاس ميديد و اون مشكل همنام بودن حل ميشه. حالا مشكل كجاست؟

abcd_a
دوشنبه 27 شهریور 1391, 15:19 عصر
من برای ارسال فیلدها به کریستال یک view تعریف کردم که باعث ایجا یک جدول جدید در دیتاست میشه که ترکیبی از دو جدول موجوده، ولی موقع کوری گرفتن از join بین جدول student و teacher استفاده کردم!

abcd_a
دوشنبه 27 شهریور 1391, 20:18 عصر
نميفهمم! شما ميگيد با union اونها رو يكي كرديد پس يه جدول داريد. اون يكي جدول ديگه از كجا مياد؟
جواب كلي اينكه اگر ميخوايد چندتا جدول رو توي يك گزارش بياريد كافيه از subreport در كريستال استفاده كنيد اينجوري هر ديتا تيبل رو به ساب ريپورت خودش پاس ميديد و اون مشكل همنام بودن حل ميشه. حالا مشكل كجاست؟
ضمن تشکر
اگه امکان داره یه مثال از Subrepot در کریستال ریپورت بزنید
تو سایت جستجو کرد چیزی در مورد Subreport پیدا نکرم

ali_habibi1384
سه شنبه 28 شهریور 1391, 09:09 صبح
روي Section Details كليك راست بزنيد و از منوي Insert گزينه SubReport رو انتخاب كنيد.حالا گزارش مورد نظرتونو تنظيم كنيد . با اين روش شما به هر تعداد كه بخوايد ميتونيد گزارش داخل يك گزارش بسازيد و اطلاعات اونو از تيبلهاي ديتابيس يكي يكي بهش پاس بديد و پر كنيد:

rd.Subreports["Ghate"].SetDataSource(dtGhalamFaktorGhate);
rd.Subreports["Khadamat"].SetDataSource(dtGhalamFaktorKhadamat);
نمونه اي از فاكتور كه توش 2تا ساب ريپورت هست و 2 تا جدول كاملا مجزا رو بهش پاس دادم:
http://1.2.3.img98.net/out.php/i464886_subreport.jpg