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

نام تاپیک: گزارشگیری master detail در fastreport

  1. #1

    گزارشگیری master detail در fastreport

    سلام
    توی برنامه یه جدول اشخاص دارم و 10 تا جدول که مشخصات آموزشی، سوابق بیماری و ............ نگهداری میشوند که همه به آی دی اشخاص موجود در جدول person ارتباط دارند. حالا میخوام گزارش تهیه کنم که هر شخصی با سوابق بیماری و ..... در یک گزارش چاپ بشه، میخوام دوستان راهنمایی کنند. برای گزارش از جدول به صورت تکی مشکل ندارم، مشکل با چگونگی اتصال سوابق بیماری و ... مرتبط هر شخص هست. نوع query که باید بفرستم سمت fastreport چی باید باشه؟؟ لطفا اساتید راهنمایی بفرمایید. متشکرم

    من یه توضیحی بدم قبل از اینکه دوستان پاسخ بدند، من میتونم الان جدوال master detail رو هم نشون بدم ولی اشتباه نمایش میده یعنی مثلا برای تک تک آدم ها تمام جدول سوابق بیماری رو میاره ولی من میخوام سوابق بیماری شخص 1 رو برا خودش بیاره و سوابق شخص 50 رو برای خودش نمایش بده نه اینکه کل جدول detail رو برای همه اشخاص نمایش بده، دوستان لطفا راهنمایی کنید مهمه.
    آخرین ویرایش به وسیله Mahmoud.Afrad : سه شنبه 07 مرداد 1393 در 20:08 عصر

  2. #2

    نقل قول: گزارشگیری master detail در fastreport

    باید برای کوئری هات شرط بزاری تا اطلاعات شخص مورد نظرت رو دریافت کنی. کدت رو بزار.

  3. #3
    کاربر دائمی آواتار khokhan
    تاریخ عضویت
    دی 1388
    محل زندگی
    اسکو
    پست
    2,176

    نقل قول: گزارشگیری master detail در fastreport

    نقل قول نوشته شده توسط arshad89 مشاهده تاپیک
    سلام
    توی برنامه یه جدول اشخاص دارم و 10 تا جدول که مشخصات آموزشی، سوابق بیماری و ............ نگهداری میشوند که همه به آی دی اشخاص موجود در جدول person ارتباط دارند. حالا میخوام گزارش تهیه کنم که هر شخصی با سوابق بیماری و ..... در یک گزارش چاپ بشه، میخوام دوستان راهنمایی کنند. برای گزارش از جدول به صورت تکی مشکل ندارم، مشکل با چگونگی اتصال سوابق بیماری و ... مرتبط هر شخص هست. نوع query که باید بفرستم سمت fastreport چی باید باشه؟؟ لطفا اساتید راهنمایی بفرمایید. متشکرم

    من یه توضیحی بدم قبل از اینکه دوستان پاسخ بدند، من میتونم الان جدوال master detail رو هم نشون بدم ولی اشتباه نمایش میده یعنی مثلا برای تک تک آدم ها تمام جدول سوابق بیماری رو میاره ولی من میخوام سوابق بیماری شخص 1 رو برا خودش بیاره و سوابق شخص 50 رو برای خودش نمایش بده نه اینکه کل جدول detail رو برای همه اشخاص نمایش بده، دوستان لطفا راهنمایی کنید مهمه.
    ابتدا به تعداد جدولهای ذینفع کوئری بزن و نتیجه همه کوئری ها رو بریز داخل یه دیتاست
    بعد از اینکه اطلاعات رو درون یه دیتاست واحد قرار دادی بر اساس فیلد مشترک میان جداول یک رابطه ایجاد کن و دیتا تیبل ها رو به هم رط بده
    در این حال اگه دیتاست حاصل رو به فست ریپورت ارجاع بدی خواهی دید که همون ارتباط در گزارش نیز برقرار شده و خیلی آسون می تونی فیلدها رو توی گزارش قرار بدی و
    رابطه پدر و فرزندی رو برقرار کنی

    این هم کدی که می تونی به تعداد لازم دیتا تیبل به گزارش پاس بدی البته بعد از اینکه رابطه میانشون برقرار شد


    report.GetDataSource("Country").Enabled = true;
    report.GetDataSource("State").Enabled = true;





    Untitled.jpg

  4. #4

    نقل قول: گزارشگیری master detail در fastreport

    ممنون که پاسخ دادید.
    اگه میشه آقای khokhan نمونه کد کامل تری بذارید ممنون میشم. من کدی که الان استفاده میکنم در واقع دو تا query میزنم و به گزارش پاس میدم ولی قبلش گزارش رو ایجاد کردم و به یه کانکشن مرتبط کردمش و تو برنامه با کوئری خاص خودم فیلترش میکنم ولی از روش شما سر در نیاوردم. با روش من فقط میشه اطلاعات یه شخص خاص رو نمایش داد نه همه افراد رو.
    اگر کد کامل تری بذارید یا یه نمونه بذارید ممنون میشم.
    بازم از توجهتون ممنون

  5. #5

    نقل قول: گزارشگیری master detail در fastreport

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

  6. #6
    کاربر دائمی آواتار khokhan
    تاریخ عضویت
    دی 1388
    محل زندگی
    اسکو
    پست
    2,176

    نقل قول: گزارشگیری master detail در fastreport

    نقل قول نوشته شده توسط arshad89 مشاهده تاپیک
    منتظر راهنمایی بیشتر شما هستم. ممنون
    فرض رو بر این می گیریم که شما دو تا جدول توی بانک دارین یکی جدول کشور ها و دیگری جدول استانها .................. !!!! فیلد کد کشور، کلیداصلی جدول کشورها و در جدول استانها کلید خارجی است

    Untitled.jpg

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

    به تعداد جداول دیتاتیبل ایجاد کرده وبر اساس فیلد مشترک میان دوجدول یک ارتباط میانشان برقرار می کنین :

     private void CreateDataSet2()        {
    FDataSet = new DataSet();
    _connect.connString();
    SqlDataAdapter adapter = new SqlDataAdapter(@"SELECT * FROM Country;
    SELECT * FROM State ", _connect.conConnect);


    adapter.TableMappings.Add("Table", "Country");
    adapter.TableMappings.Add("Table1", "State");
    adapter.Fill(FDataSet);
    FDataSet.Relations.Add("Country_State", FDataSet.Tables["Country"].Columns["CountryCode"],
    FDataSet.Tables["State"].Columns["CountryCode"]);




    }


    _._. * توجه داشته باشید که تا این مرحله ما هیچ فایل گزارشی نساختیم

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

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

     private void button1_Click(object sender, EventArgs e)        {
    Report report = new Report();
    report.RegisterData(FDataSet);
    report.GetDataSource("Country").Enabled = true;
    report.GetDataSource("State").Enabled = true;
    report.Design();
    report.Dispose();
    }


    این دکمه هیچ گزارشی براتون نمایش نمی ده و تنها شما رو به بخش طراحی گزارش هدایت می کنه

    بخش طراحی :

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

    و برای نمایان شدن اونها بایستی از منوی بالایی محیط گزارش و از گزینه " داده " ، روی عبارت "انتخاب داده های گزارش " کلیک کنین تا ارتباط میان جداول هم لحاظ گردند

    Untitled2.png

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

    ودر خاتمه گزارش ساخته شده رو در پوشه دیباگ پروژه ذخیره کنین و دفعات بعد که خواستین برای طراحی مجدده وارد همین گزارش شوید می تونین از این دکمه استفاده کنین

    و یا اینکه بعد از اتمام کار دکمه طراحی رو حذف کنین

    بخش نمایش گزارش :

    این بخش نیز دستوراتش همانند بخش طراحی است با این تفاوت که به جای
    report.Design از گزینه report.Show استفاده می کنین

    وهمچنین می توانید تنها یک دکمه قرار بدین و این دو قسمت رو باهمدیگر تلفیق کنین :

     private void button2_Click(object sender, EventArgs e)        {
    Report report = new Report();
    report.Load(@"" + Application.StartupPath + "/report.frx");
    report.RegisterData(FDataSet);
    report.Show();
    report.Dispose();
    }

تاپیک های مشابه

  1. حالت master / detail
    نوشته شده توسط amir_king2_2 در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 9
    آخرین پست: سه شنبه 06 اسفند 1387, 09:47 صبح
  2. مشکل با Master/Detail در FastReport
    نوشته شده توسط dkhatibi در بخش ابزارهای گزارش سازی در دلفی
    پاسخ: 2
    آخرین پست: دوشنبه 26 آذر 1386, 06:43 صبح
  3. جستجو در جداول Master/Detail
    نوشته شده توسط javidtaheri در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 2
    آخرین پست: سه شنبه 21 شهریور 1385, 17:55 عصر
  4. نحوه ثبت فرمهای ورود اطلاعات در vb.net (master/detail)
    نوشته شده توسط jafari1 در بخش VB.NET
    پاسخ: 1
    آخرین پست: چهارشنبه 20 اسفند 1382, 16:08 عصر
  5. گزارش گیری Master Detail در FastReport
    نوشته شده توسط DataMaster در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: دوشنبه 17 آذر 1382, 06:25 صبح

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

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