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

نام تاپیک: ساخت یک database ساده با استفاده از کلاس ها ، Linq و ساخت یک Report ساده با Stimulsoft

  1. #1
    کاربر دائمی آواتار M.KH-SH
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    تهران
    پست
    847

    ساخت یک database ساده با استفاده از کلاس ها ، Linq و ساخت یک Report ساده با Stimulsoft

    با سلام
    امیدوار هستم که این آموزش مفید باشد.

    گاهی اوقات هستش که روی سیستمی هستیم و دسترسی به هیچ یک از فایل های متداول برای ساخت دیتابیس رو نداریم ، از طرف دیگه هم با فایل XML نمیشه به درستی و به سادگی ساختار یک دیتابیس رو با جداول بسیار زیاد ساخت و همیشه به مشکل برمیخورد.
    یک روش برای این که بتونیم این کار رو انجام بدیم این هستش که از کلاس های ساخته شده توسط خودمون یک دیتابیس رو بسازیم.
    به فرض من یک کلاس دارم که اسم اون رو میزارم DataBase این کلاس حاوی چند Property هستش که نمایانگر جداول موجود در این دیتا بیس ما هستش که اطلاعات رو در اون قرار میدهیم.

    Property های مورد نظر ما باید به صورت List<T> باشه چون قراره یک لیست رو بگیره و یا به ما بده از طرفی هم نیاز هستش که به راحتی کم یا زیاد بشه و یا تغییری رو در اون ایجاد کنیم.

     public class DataBase
    {
    public List<PreInvoice> PreInvoiceTable { get; set; }
    public List<PreInvoiceDetail> PreInvoiceDetail { get; set; }
    }


    هر کدام از Property های بالا از یک کلاس دیگه به صورت لیست ساخته شده اند که هر کدام از کلاس ها نیز خود دارای یک سری Property دیگه هستند که مثل SQL همون فیلد های مورد نیاز خودمون به حساب می آیند.

    بعد از ساختن این دیتا بیس و جداول آن باید بتونیم فایل رو ذخیره کنیم و از دیتای اون استفاده کنیم برای این کار باید از [Serializable] بر بالای هر کلاس استفاده کنیم با این روش می توانیم کلاس DataBase رو تبدیل به Binary کنیم و سپس از طریق File.WriteBinary ذخیره کنیم.
    برای خواندن فایل نیر از File.ReadBinary استفاده میکنیم و سپس آنرا توسط کلاس DeSerializable تبدیل به یک object کرده و آنرا به DataBase تبدیل می کنیم.

    -----------------------

    توضیحات اولیه بودش که با یک سری از مطالب اولیه آشنا باشید.


    یک پروژه بسیار کوچک با این سناریو داریم ::::
    یک پیش فاکتور رو ثبت کنیم ، سپس ایتم های موجود در اون رو اضافه یا کم و یا ویرایش کنیم سپس آنرا در لیست صفحه اصلی به نمایش بزاریم و در صورت نیاز آنرا چاپ کنیم.

    نکته: در برنامه بعضی از توابع هستند که به صورت آماده در C#‎ نیست ولی ساخته شده که اصطلاحا به Extender معروف هستند.
    بنا براین برای اینکه در باز نویسی به مشکل نخورید کد Serialize رو میزارم و بقیه هم که مشخص هستش فقط Convert کردن می باشد و یا می توانید از خود کلاس Alphasoft.Class.Public برای این کار استفاده کنید.


    public static byte[] ToBinary(object item)
    {
    var bf = new BinaryFormatter();
    var ms = new MemoryStream();
    bf.Serialize(ms, item);
    return ms.GetBuffer();
    }


    public static object ToObject(byte[] item)
    {
    var ms = new MemoryStream(item);
    var bf = new BinaryFormatter();
    return bf.Deserialize(ms);
    }

    -----
    برای استفاده از قابلیت ویرایش صفحه گزارش باید در کلاس Print در تابع PrintPreInvoice خط Report.Design() رو فعال کنید.

    -----

    در صورت داشتن سئوال در این باره در پست های آنده پاسخ خواهم داد.



    به علت حجم بالای فایل در سایت نشود Upload کنم.
    لینک دانلود ::: alphasoft.ir/download/preinvoice.rar سایز فایل : 5.4 mb

  2. #2
    کاربر دائمی آواتار M.KH-SH
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    تهران
    پست
    847

    نقل قول: ساخت یک دیتابیس ساده با استفاده از کلاس ها ، Linq و ساخت یک Report ساده با Stimulsoft

    به صورت خلاصه نوشتن یک Extender به این صورت می باشد.

    public static class Extender
    {
    public static int ToInt(this string item)
    {
    return int.Parse(item);
    }
    }


    شما با کلاس بالا یک تابع به تمام string ها اضافه کردید که میتوانید تمامی آنها را تبدیل به int کنید.
    نوشتن به همان صورت معمول می باشد ولی با این تفاوت که کلاس و توابع باید به صورت static باشند و قبل از parameter مورد نظر از کلمه this استفاده شود.

    نحوه استفاده
    var number="12333".ToInt();

  3. #3
    کاربر دائمی آواتار M.KH-SH
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    تهران
    پست
    847

    نقل قول: ساخت یک دیتابیس ساده با استفاده از کلاس ها ، Linq و ساخت یک Report ساده با Stimulsoft

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

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

    به طور کلی این گزارش ساز توانایی ساخت گزارش رو در win , web , silverlight , wpf به ما میده و کار با اون نیز خیلی ساده و راحت هستش.

    نحوه کار:

    در پروژه کلاسی به نام Print وجود دارد که در این کلاس تمامی کد های مورد نیاز برای یک گزارش سازی رو به ما میده(فقط بخش ارسال اطلاعات و نمایش و همچنین امکانات لازم برای تغییرات جزی در طراحی و کنترل های بکار رفته در خود فایل ریپرت.).

    برای اینکه بتونین اطلاعات رو ارسال کنید نیاز به یک یا چند DataTable دارین که ساختار کلی اطلاعات رو در DataTable بسازید و اطلاعات ساختار یافته و با type های مشخص شده و استاندارد رو به گزارش ساز ارسال کنید.

    var FirstTable= new DataTable("FirstTable");
    FirstTable.Columns.Add("Name");
    FirstTable.Columns.Add("Famil");


    با دستور بالا ما یک DataTable رو ساختیم که دو ستون دارد حالا باید برای این ستون ها خط اضافه کنیم تا اطلاعات رو وارد اون کنیم.

    FirstTable.Rows.Add("محمد","شریعتی");
    FirstTable.Rows.Add("رضا","خسروانی");


    خوب با این کد هم ما دو خط به جدول ساخته شده اضافه کردیم.

    حالا برای ارسال اطلاعات به گزارش باید از کلاس های Stimulsoft استفاده کنیم.

    کلاس های مورد استفاده در نمونه برنامه اول در بخش رفرنس موجود هستش با اسم Stimulsoft شروع شده اند. آنها را کپی کرده و یا برنامه Stimulsoft رو دانلود کنید.

    از فضای نام :
    using Stimulsoft.Report;
    در کلاس مورد نظر استفاده میکنیم.

    در تابع مورد نظر که جدول FirstTable رو در اون ایجاد کردیم و خطوط رو به اون اضافه کردیم از StiReport یک نمونه جدید ایجاد میکنیم.

    var Report=new StiReport();


    در این کلاس تابعی به نام RegData وجود دارد که یکی از ورودی های آن DataTable هست با استفاده از این گزینه جدول FirstTable رو تخصیص میدیم.

    Report.RegData(FirstTable);


    خوب حالا این کلاس حاوی اطلاعات مورد نظر ما هستش.
    چون برای اولین با میخوایم گزارش رو بسازیم تنها باید با استفاده از تابع Design فرم ساختن گزارش رو لود کنیم.

    Report.Design();


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

    بعد از ذخیره فایل با استفاده از تابع Load می توانید فایل ذخیره شده رو به عنوان ورودی پیش فرض به کلاس مورد نظر ارائه بدیم.
    فایل ورودی می تواند یک آدرس یا Binary باشد که میتوان از Resource آنرا فراخوانی کرد.

    Report.Load("ReportFile.mrt");


    در صورت اجرای این کد می توانید برنامه را با صفحه ساخته شده باز نمایید.

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


    شکل کلی دستورات



    using Stimulsoft.Report;
    namespace Print
    {
    class Print
    {
    public void PrintMain()
    {
    var FirstTable=new DataTable("FirstTable");

    FirstTable.Columns.Add("Name");
    FirstTable.Columns.Add("Famil");

    FirstTable.Rows.Add("محمد","شریعتی");
    FirstTable.Rows.Add("رضا","خسروانی");


    var Report=new StiReport();
    Report.RegData(FirstTable);
    Report.Load("ReportFile.mrt");
    Report.Desgin();
    //OR
    Report.Show();//
    //OR
    Report.Print();//


    }

    }

    }


  4. #4
    کاربر دائمی آواتار alexmcse
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    شیراز
    پست
    860

    نقل قول: ساخت یک دیتابیس ساده با استفاده از کلاس ها ، Linq و ساخت یک Report ساده با Stimulsoft

    نقل قول نوشته شده توسط M.KH-SH مشاهده تاپیک
    به صورت خلاصه نوشتن یک Extender به این صورت می باشد.

    public static class Extender
    {
    public static int ToInt(this string item)
    {
    return int.Parse(item);
    }
    }


    شما با کلاس بالا یک تابع به تمام string ها اضافه کردید که میتوانید تمامی آنها را تبدیل به int کنید.
    نوشتن به همان صورت معمول می باشد ولی با این تفاوت که کلاس و توابع باید به صورت static باشند و قبل از parameter مورد نظر از کلمه this استفاده شود.

    نحوه استفاده
    var number="12333".ToInt();
    سلام
    دوست عزیز
    از کلمه this خطا میگیرد همچنین نحوه استفاده آن را بیان کنیدتشکر

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

  1. پاسخ: 0
    آخرین پست: جمعه 19 دی 1393, 09:16 صبح
  2. سوال: اتصال به بانک با استفاده از کلاس ها
    نوشته شده توسط veniz2008 در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: پنج شنبه 15 دی 1390, 10:34 صبح
  3. پاسخ: 12
    آخرین پست: جمعه 06 آبان 1390, 19:53 عصر
  4. حرفه ای: روشي براي استفاده از كلاس ها همانند يك DLL
    نوشته شده توسط alonemm در بخش PHP
    پاسخ: 3
    آخرین پست: سه شنبه 14 دی 1389, 23:47 عصر
  5. ساختن یه مربع رنگی با استفاده از کلاس ها
    نوشته شده توسط anesi123456 در بخش برنامه نویسی GTK، GTK+‎ و wxWidget
    پاسخ: 1
    آخرین پست: چهارشنبه 24 تیر 1388, 10:16 صبح

برچسب های این تاپیک

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

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