مشاهده دست آورد نظرسنجی: نظر شما در مورد این کنترل:

رای دهنده
12. شما نمی توانید در این رای گیری رای بدهید
  • خوب بود

    11 91.67%
  • مشابه و یا بهتر از این وجود دارد

    1 8.33%
  • خوب نبود

    0 0%
نمایش نتایج 1 تا 14 از 14

نام تاپیک: ارائه کنترل پیشرفته ReportControl

  1. #1
    کاربر دائمی آواتار Payam Moradi
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    بيرجند
    سن
    40
    پست
    524

    ارائه کنترل پیشرفته ReportControl

    این کنترل میتواند جایگزین کنترلهایی مانند DataGrid Listview و TreeView و ... شود.
    این کنترل کاملا شبیه Grid در Outlook 2003 میباشد و قابلیت نمایش اطلاعات یک ارایه و یا رکوردست و غیر در آن وجود دارد.

    دیتا در این کنترل به دو روش میتوان نمایش داد:
    روش رکوردها:
    در این روش اطلاعات را با اضافه کردن هر سطر (Record) نمایش میدهیم. در این روش بسته به اندازه اطلاعات، حافظه اشغال میشود.
    در این روش قابلیت Sort, Group, Filter امکانپذیر است.
    روش مجازی:
    در این روش به تعداد رکوری (سطر) که قرار است نمایش داده شود سطر مجازی ایجاد شده و در زمان لازم آن سطر با گرفتن اطلاعات (مثلا از یک آرایه یا یک Recordset) پر میشود و پس از آن حذف میشود. در این روش فقط به اندازه یک صفحه از رکوردها حافظه اشغال میشود.
    در این روش قابلیت Sort, Group, Filter در حالت معمول امکانپذیر نمی باشد.

    بدیهی است روش دوم برای حجم زیاد اطلاعات مناسبتر است و میتوان قابلیت Sort, Group, Filter را با کمی خلاقیت اضافه کرد.(خود همیشه ترجیح میدهم از روش دوم استفاده کنم).

    بهر حال برای هر دو مورد مثال زده شده است. ابتدا فایل Payam.ReportControl.ocx موجود در پوشه COM را رجیستر نمایید.در این مثال ها از BIBLIO.MDB استفاده شده است. این بانک را از روی سی دی ویژال بیسیک و یا مسیر نصب آن پیدا کرده و در هر کدام از پوشه های Record Sample و Virtual list کپی نمایید.

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

    موفق باشید.
    ----------------------------
    ----------------------------
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    کاربر دائمی آواتار Payam Moradi
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    بيرجند
    سن
    40
    پست
    524
    این هم یک نمونه دیگر.
    ----------------------------
    ----------------------------
    فایل های ضمیمه فایل های ضمیمه

  3. #3
    کاربر دائمی آواتار Payam Moradi
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    بيرجند
    سن
    40
    پست
    524
    این هم نمونه ای دیگر!
    فایل های ضمیمه فایل های ضمیمه

  4. #4
    کاربر دائمی آواتار Payam Moradi
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    بيرجند
    سن
    40
    پست
    524
    اینم یک مثال کاملتر:

    سایر فرم ها رو از منوی ReportControl و منوی Test ببینید.
    موفق باشید!
    .
    .
    .
    فایل های ضمیمه فایل های ضمیمه

  5. #5
    نقل قول نوشته شده توسط Payam Moradi مشاهده تاپیک
    ابتدا فایل Payam.ReportControl.ocx موجود در پوشه COM را رجیستر نمایید.
    ----------------------------
    با سلام من نتونستم فایل ocx رو رجیستری کنم ؟
    لطفا من را راهنمایی کنید
    با تشکر

  6. #6
    کاربر دائمی آواتار Payam Moradi
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    بيرجند
    سن
    40
    پست
    524
    جهت رجیستر کردن دو فایل reg.bat و regsvr32.exe را از فایل فشرده ذیل دریافت و در مسیری که Payam.ReportControl.ocx قرار دارد کپی کرده و فایل reg.bat را اجرا نمایید!
    ..
    ..
    فایل های ضمیمه فایل های ضمیمه

  7. #7
    کاربر دائمی آواتار sjj
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    ایران
    پست
    304
    جناب مرادی با عرض سلام خدمت شما باید بگم که کنترل هایی که شما ارئه می کنید بسیار زیبا هستند ولی مشکلی که وجود داره اینه که استفاده از این کنترل ها خیلی آسون نیست و برای هر تغییر کوچیکی باید چندین خط کد نوشت.در واقع در محیط دیزاین کاربرد چندانی ندارن.حالا فرض کنید که ما برای یه پروژه تجاری بخوایم از اینا استفاده کنیم.
    اگه این مشکل حل شدنی باشه خیلی عالی می شه.
    با تشکر.

  8. #8
    کاربر دائمی آواتار Payam Moradi
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    بيرجند
    سن
    40
    پست
    524
    نقل قول نوشته شده توسط sjj مشاهده تاپیک
    جناب مرادی با عرض سلام خدمت شما باید بگم که کنترل هایی که شما ارئه می کنید بسیار زیبا هستند ولی مشکلی که وجود داره اینه که استفاده از این کنترل ها خیلی آسون نیست و برای هر تغییر کوچیکی باید چندین خط کد نوشت.در واقع در محیط دیزاین کاربرد چندانی ندارن.حالا فرض کنید که ما برای یه پروژه تجاری بخوایم از اینا استفاده کنیم.
    اگه این مشکل حل شدنی باشه خیلی عالی می شه.
    با تشکر.
    سلام
    کاملا حق با شماست.
    ولی اینجانب به شخصه 10 خط نوشتن کد برای یک کنترل را در برابر چند مزیت مهم این کنترلها ناچیز میدونم. هیچوقت باعث کند و یا قفل شدن برنامه نمیشوند. سرعت پردازش بالا دارند. هیچوقت مشکلی در مورد کاربرد در برنامه های فارسی نداشتم (به غیر موارد ناچیز که هنوز راهی پیدا نشده و زیاد هم مهم نیست).
    عدم وجود یک Property Page یا تنظیمات در دیزاین، عاملی ست که باعث سرعت لود این کنترل ها میشود.
    لازم نیست در همه فرمها کد نوشته شود. بلکه تغییرات عمومی را بصورت یک تابع عمومی تعریف کنید و کافیست شی مربوطه را به تابع ارجاع دهید.

    بهر حال انتخاب با شماست.
    اگر هم فکر میکنید جایی مشکلی وجود دارد و یا نوشتن کد اضافی غیر منطقی می‌یاشد، بفرمایید تا لازم راهنمایی لازم صورت گیرد.
    فعلا فرصتی نیست. ولی حداکثر تا سه هفته دیگه با معرفی نسخه های جدید بحث آموزش کنترل ها را شروع میکنم.
    موفق باشید.

  9. #9
    آقا پیام واقعا دستتون درد نکنه ولی اگر روش کار مثل سایر کنترلها بصورت ویزارد میشد که خیلی بهتر بود

  10. #10
    سلام
    جناب آقای مرادی این کامپوننتی که معرفی کردین اسکرول افقی هم داره؟
    من ندیدم

  11. #11
    جالب بود
    حالا اگه کسی از این استفاده کنه بعدا تو پروژه اشکالی رخ نمی ده مثلا یه قفل زمانی یا حجمی؟

  12. #12
    می دونید منظورم اینه که اطمینان از اینکه بعدا خطایی رخ نده
    من کامل نگاه نکردم اما قسمتی برای تغییر فونت ندیدم

  13. #13
    کاربر دائمی آواتار Payam Moradi
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    بيرجند
    سن
    40
    پست
    524
    سلام

    آقا پیام واقعا دستتون درد نکنه ولی اگر روش کار مثل سایر کنترلها بصورت ویزارد میشد که خیلی بهتر بود
    علتش قبلا ذکر شده!

    سلام
    جناب آقای مرادی این کامپوننتی که معرفی کردین اسکرول افقی هم داره؟
    من ندیدم
    میتونه دو دلیل داشته باشه:
    1) شما خصوصیت AutoColumnSizing همیشه برابر True قرار میدهید. این خاصیت باعث میشه که کنترل به صورت خودکار تمامی ستونها را در عرض ReportControl جای بده و Scroll افقی رو محو کنه.
    2) شما گزینه بالا رو برابر False قرار دادید ولی مجموع طول سرستونها کمتر از عرض ReportControl است. بنابراین Scroll افقی دیده نمیشه.

    جالب بود
    حالا اگه کسی از این استفاده کنه بعدا تو پروژه اشکالی رخ نمی ده مثلا یه قفل زمانی یا حجمی؟
    این کنترل قفل نداره. خاطر جمع.
    ضمنا تست خودش رو توسط خودم در پروژهای حجیمی پس داده.

    من کامل نگاه نکردم اما قسمتی برای تغییر فونت ندیدم
    در حالت design فونت تنظیم نمیشه.
    باید در یک قسمت مناسب از کدهای ذیل جهت تغییر Font استفاده نمایید:
     ReportControl1.PaintManager.CaptionFont = <FontObject>
    ReportControl1.PaintManager.TextFont = <FontObject>
    ReportControl1.PaintManager.PreviewTextFont = <FontObject>
    ReportControl1.ToolTipContext.Font = <FontObject>


    هر کدام از خطوط بالا فونت یک قسمت رو تنظیم میکنه. از روی نام هر کدام معلومه فونت کجا تغییر پیدا میکنه.
    به جای <FontObject> هم میتونید شی فونتی که قبلا تعریف و تنظیم نمودید بگذارید. یا برای راحتی بجای آن بگذارید Label1.Font . البته Label1 در فرم ایجاد شده باشد و فونت مورد نظر را در این لیبل تنظیم کرده باشید. یا هم جلوی فونت یک دات (.) بگذارید تا لیست خصایص فونت جهت تنظیم باز بشه.

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

     Private Sub ReportControl1_BeforeDrawRow(ByVal Row As Payam_ReportControl.IReportRow, ByVal Item As Payam_ReportControl.IReportRecordItem, ByVal Metrics As Payam_ReportControl.IReportRecordItemMetrics)
    Metrics.Font = <FontObject>
    End Sub


    بازم اگه مشکلی بود ...

  14. #14

    نقل قول: ارائه کنترل پیشرفته ReportControl

    یه مشکل داره - من هر کاری کردم نتونستم درستش کنم اونم این هست که توی ویندوز 7 جواب نمی ده این کنترل ها و خطا می زنه
    system error &H80004005...

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

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