نمایش نتایج 1 تا 21 از 21

نام تاپیک: ایجاد گزارشی با استفاده از فیلدهای چند جدول و مرتب شده براساس یکی از فیلدها

  1. #1
    کاربر دائمی
    تاریخ عضویت
    دی 1384
    محل زندگی
    ایران
    پست
    229
    ببخشید دوستان که من یهو اومدم وسط یک سوال برام پیش اومده

    من در دیتابیسم چندین table دارم و میخوام از 3 تا از این جدولها استفاده کنم و اطلاعات اونها رو در فرم گزارشم نمایش بدم البته در هر کدوم از جداول یک فیلد به نام Tarikh وجود داره و میخوام اطلاعات بر اساس اون مرتب بشه .
    اگه دوستام خواستن مثالی بزنن لطف کنن و از نام این جدولها استفاده کنن Table1 و Table2 و و Table3 حا لا باید چیکار کنم
    من با Formula اشنایی دارم در حد متوسط و اگر هم از طریق وی بی میشه این کارو کرد ممنون میشم اگه کمک کنید

    در چند پست قبل چیزی خوندم (کوئری تون رو توی دیتاست بریزید و بعد این دیتاست رو به گزارش بایند کنید) یعنی چطور؟

  2. #2
    من در دیتابیسم چندین table دارم و میخوام از 3 تا از این جدولها استفاده کنم و اطلاعات اونها رو در فرم گزارشم نمایش بدم البته در هر کدوم از جداول یک فیلد به نام Tarikh وجود داره و میخوام اطلاعات بر اساس اون مرتب بشه .
    اگه فقط مشکل شما مرتب کردن بر اساس یک فیلد هست از select expert استفاده کنید...
    اگه نه بیشتر توضیح بدید...

    در چند پست قبل چیزی خوندم (کوئری تون رو توی دیتاست بریزید و بعد این دیتاست رو به گزارش بایند کنید) یعنی چطور؟
    اینکه چطور نتیجه کوئری رو بریزین توی دیتاست که مشخصه(از طریق ویزارد قسمتی داره که کد sql رو ازتون میگیره و .... با کد هم اگه مشکل دارید توی یکی از پست ها همین تاپیک کدش هست.

    اما اینکه چطور دیتاست رو به ریپورت بدین:
    همون جایی که دیتابیس سورس برای ریپورت تون مشخص می کنید یکی از گزینه هاش دیتا سورس های پروژه هست که می تونید دیتاست بدین.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    دی 1384
    محل زندگی
    ایران
    پست
    229
    ببینید بهتره اینطور بگم مثلا در اون سه table من یک فیلد دارم به نام SH و در table1.sh این اعداد ثبت شده 9و5و7 و در Table2.sh این اعداد 8و6و2 و در table3.sh این اعداد 1و4 حالا میخوام در هنگام نمایش به این صورت نمایش داده بشه 1و2و4و5و6و7و8و9 چطور میشه این کارو انجام داد در ضمن SH از نوع Number هست

    من منظورتون رو از ویزارد متوجه نمیشم میشه بگین از کجا میتونم از اون استفاده کنم.

  4. #4
    نقل قول نوشته شده توسط reza_rad مشاهده تاپیک
    ا
    اما اینکه چطور دیتاست رو به ریپورت بدین:
    همون جایی که دیتابیس سورس برای ریپورت تون مشخص می کنید یکی از گزینه هاش دیتا سورس های پروژه هست که می تونید دیتاست بدین.

    تو قسمتی که می فرمایید فقط دیتاستهایی که با ویزارد درست کردیم هست یا اونهایی که با کد درست کردیم هم میشه؟ برای من که هیچ کدوم از دیتا ستها تو اون قسمت نمیاد که انتحابش کنم.
    آیا باید کار خاصی انجام داد که کریستال ریپورت دیتاستهای پروژه را بشناسه؟؟

  5. #5
    ببینید بهتره اینطور بگم مثلا در اون سه table من یک فیلد دارم به نام SH و در table1.sh این اعداد ثبت شده 9و5و7 و در Table2.sh این اعداد 8و6و2 و در table3.sh این اعداد 1و4 حالا میخوام در هنگام نمایش به این صورت نمایش داده بشه 1و2و4و5و6و7و8و9 چطور میشه این کارو انجام داد در ضمن SH از نوع Number هست
    اگه سه تا جدولتون فیلدهاشون یکیه با هم union شون کنید بعد order by رو روی کل خروجی بزنید... مثلا همچین چیزی:

    select *from
    (select f1,f2,... from table1
    union
    select f1,f2,... from table2
    union
    select f1,f2,... from table3)temp_table
    order by f1

    حالا برای اینکه دیتاست شما این اطلاعات رو نشون بده برین روی فرم تون یه sqldataadapter (اگه دیتا بیس تون مثلا sqlserver هست) قرار بدین و ویزاردی که میاد رو مراحلش رو تا آخر برید یه جایی می پرسه که دیتا رو از کجا بیارم و چند گزینه داره که یکیش SQL statement هست و اونجا این کوئری رو وارد کنید.

    تو قسمتی که می فرمایید فقط دیتاستهایی که با ویزارد درست کردیم هست یا اونهایی که با کد درست کردیم هم میشه؟ برای من که هیچ کدوم از دیتا ستها تو اون قسمت نمیاد که انتحابش کنم.
    آیا باید کار خاصی انجام داد که کریستال ریپورت دیتاستهای پروژه را بشناسه؟؟
    فقط اونهایی که با ویزارد ساخته شدن. اون هم توی project data و بعد ADO.NET datasets

  6. #6
    کاربر دائمی
    تاریخ عضویت
    دی 1384
    محل زندگی
    ایران
    پست
    229
    Reza_rad جان ممنون از راهنماییت
    ببین من یک مثال میزارم ببین چطور میشه حلش کرد
    در این برنامه وقتی روی Union 1 کلیک میکنی دقیقا خواستم برآورده میشه ولی فقط همون یک فیلد نمایش داده میشه و در Union 2 با خطا مواجه میشم چون نام فیلد های جداول با هم یکی نیستن فقط یک فیلد در تمام جدولها مشترکه .

    و میخوام حاصل رو به فرم کریستالم ارسال کنم .
    ممنون
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: zip Pr.zip‏ (13.0 کیلوبایت, 29 دیدار)

  7. #7
    من جداول شما رو دیدم
    خب طبیعیه که union مشکل پیدا کنه چون فیلدها با هم متفاوتند.

    حالا سوال من اینه :
    شما می خوای جداولی که فیلدهای متفاوتی دارند رو بصورت درهم و به ترتیب یک فیاد مشترک نشون بدی؟!!! عنوان فیلدهایی که مشترک نیستند رو چی می ذاری؟!
    فکر کنم منطق کار یه خورده مشکل داشته باشه اگه در مورد منطق کار بیشتر توضیح بدی شاید بشه فکری کرد....

  8. #8
    کاربر دائمی
    تاریخ عضویت
    دی 1384
    محل زندگی
    ایران
    پست
    229
    Reza_rad عزیز بهتره منظورم رو کامل بیان کنم
    من در حال نوشتن یک برنامه حسابداری هستم و مشکل من در اینجاست که من مثلا برای تهیه گزارش از حساب ریز یک شخص باید اطلاعات رو از چند table بخونم مثلا factor که چه اجناسی رو خریده و chek که آیا چک پرداخت کرده یا نه و Naghdi که چه مبالغ نقدی رو پرداخت کرده و ... و میخوام اطلاعاتو به ترتیب تاریخ نمایش بدم.
    به نظرت باید چیکار کنم و اگه نحوه ثبت اطلاعات من مشکلی داره ممنون میشم راهنمایی کنی.

  9. #9
    خب می تونی اطلاعات هر کدوم رو جدا مرتب کنی و نشون بدی. مثلا اول چک ها بعد فاکتورها و ... اینجوری فکر می کنم منطقی تره. چون اطلاعات فاکتورها مسلما فیلدهای متفاوتی داره با نقدی و ... که کنارهم چیدنشون مشکل می کنه فهم قضیه رو برای کاربر.
    ولی اگه اصرار داری که اونطوری کار کنی می تونی اطلاعات 3 تا جدول رو بریزی توی یه جدول temp (البته این هم در صورتی ممکنه که نوع فیلدها یکی باشه و فقط اسامی فرق کنه) . بعد جدول temp رو بر اساس ستون تاریخ مرتب کنی و نشون بدی. البته روش جالبی نیست ولی برای این حالت گویا تنها راهه!

  10. #10
    کاربر دائمی
    تاریخ عضویت
    دی 1384
    محل زندگی
    ایران
    پست
    229
    در ضمن من یک جا رو توضیح کامل ندادم که خلاصه ای از این جداول در داخل گزارش قرار می گیرن مثل (تاریخ - بابت - بدهکار - بستانکار)
    در حالت اول (در این حالت اطلاعات به ترتیب تاریخ نمایش داده نمیشن) من چندین برنامه حسابداری رو دیدم که اطلاعات به ترتیب تاریخ مرتب شدن(مثل برلیان)
    و فقط این مشکل رو دارم که میتونم از یک جدول در کریستال استفاده کنم و برای استفاده از دو یا چند جدول مشکل دارم (میشه در موردش توضیح بدین و یا مثالی در این مورد برام بزارید از VB6 و Crystall 10 استفاده میکنم)
    در حالت دومی که گفتید اگه اطلاعات ثبت شده زیاد باشند ایجاد گزارش مقداری طول میکشه

  11. #11
    کاربر دائمی
    تاریخ عضویت
    دی 1384
    محل زندگی
    ایران
    پست
    229
    یادم رفت بگم مگه نمیشه در کریستال در قسمت Details به این ترتیب 4 فیلد ساخت (تاریخ - بابت - بدهکار - بستانکار) و با استفاده از کد نویسی در کریستال این گزارش رو تهیه کرد(یعنی اطلاعاتو از جداول بخونه و خلاصه کنیم و نمایش بدیم)

  12. #12
    یادم رفت بگم مگه نمیشه در کریستال در قسمت Details به این ترتیب 4 فیلد ساخت (تاریخ - بابت - بدهکار - بستانکار) و با استفاده از کد نویسی در کریستال این گزارش رو تهیه کرد(یعنی اطلاعاتو از جداول بخونه و خلاصه کنیم و نمایش بدیم)
    چرا میشه.
    ولی الان مشکل این نیست. مشکل تهیه کوئری ای هست که نتیجه رو به صورت دلخواه شما برگردونه

    شما کوئری ای رو که الان برای بیرون کشیدن دیتاهای این جداول استفاده می کنی اینجا بذار تا ببینیم چیکارش میشه کرد.

  13. #13
    کاربر دائمی
    تاریخ عضویت
    دی 1384
    محل زندگی
    ایران
    پست
    229
    الان مشکل من همینه در ضمن من درکل برنامه فقط با استفاده از کریستال فرم گزارش رو ساختم و با استفاده از ویبی محدوده گزارش رو تعیین میکنم و از کوئری اصلا استفاده نکردم
    راستی آخرین پست من در صفحه 2 رو خوندید

  14. #14
    کاربر دائمی
    تاریخ عضویت
    دی 1384
    محل زندگی
    ایران
    پست
    229
    رضا جان نیستی

  15. #15
    در ضمن من یک جا رو توضیح کامل ندادم که خلاصه ای از این جداول در داخل گزارش قرار می گیرن مثل (تاریخ - بابت - بدهکار - بستانکار)
    در حالت اول (در این حالت اطلاعات به ترتیب تاریخ نمایش داده نمیشن) من چندین برنامه حسابداری رو دیدم که اطلاعات به ترتیب تاریخ مرتب شدن(مثل برلیان)
    سوال من اینه:
    آیا این چهار تا فیلدی که گفتی توی همه جدولهات که الان می خوای ازشون دیتا بکشی بیرون موجوده؟


    الان مشکل من همینه
    یادم رفت بگم مگه نمیشه در کریستال در قسمت Details به این ترتیب 4 فیلد ساخت (تاریخ - بابت - بدهکار - بستانکار) و با استفاده از کد نویسی در کریستال این گزارش رو تهیه کرد(یعنی اطلاعاتو از جداول بخونه و خلاصه کنیم و نمایش بدیم)
    آرمین عزیز میشه اینکارو کرد ولی این دیتا ها باید به یه شکلی از دیتابیس خونده بشن اون هم از توی 3 تا جدول که شما می خوای مرتبش هم بکنی تازه. پس باید اول مشخص بشه که چطور از DB خونده بشن. حالا جواب سوال بالا رو بده ببینیم میشه کاریش کرد...

  16. #16
    من برای این بحث تاپیک جدید ایجاد کردم و پست ها رو به اونجا منتقل کردم.

  17. #17
    کاربر دائمی
    تاریخ عضویت
    دی 1384
    محل زندگی
    ایران
    پست
    229
    بله در تمام جداول وجود داره

    بابت تاپیک هم ممنون.

  18. #18
    بله در تمام جداول وجود داره
    اگه اینطوره پس مشکلی نیست که عزیز...
    شما از union استفاده کن ولی توی سلکت هاش فقط همین 4 تا فیلد و بنویس. و در نهایت هم براساس تاریخ order by کن .
    میشه اینجوری:

    elect *from
    (select tarikh,babat,bedehkar,bestankar from table1
    union
    select tarikh,babat,bedehkar,bestankar from table2
    union
    select tarikh,babat,bedehkar,bestankar from table3)temp_table
    order by tarikh


    چون نتیجه همه سلکت ها از یک نوعه union مشکلی ایجاد نمی کنه.

  19. #19
    کاربر دائمی
    تاریخ عضویت
    دی 1384
    محل زندگی
    ایران
    پست
    229
    ببین من منظورت رو درست متوجه نشدم
    در تمام جداول وجود داره ولی نام فیلدها با هم تفاوت داره

  20. #20
    در تمام جداول وجود داره ولی نام فیلدها با هم تفاوت داره
    باز هم عملیه. اگه نوع فیلد ها یکی باشه میشه


    select f1 as bedehkar,f2 as bestankar , .... from table1
    union
    select f11 as bedehkar, f22 as bestankar , .. from table2
    union
    ...

    همه رو با یک نام مستعار سلکت کن، اگه نوعشون مثل هم باشه کار می کنه.

  21. #21
    کاربر دائمی
    تاریخ عضویت
    دی 1384
    محل زندگی
    ایران
    پست
    229
    دنیا دنیا ممنونم رضا جان

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •