تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 2 از 4 اولاول 1234 آخرآخر
نمايش نتايج 11 به 20 از 34

نام تاپيک: شروع به کار با کریستال ریپورت

  1. #11
    اگه نباشه جاش خالی می مونه samaram's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    آنجا که دلم خوش به هوایش باشد
    پست ها
    486

    پيش فرض

    میتوانید TypedDataSet ای با پسوند دیزاین xsd.* در پروژه ایجاد کنید؟
    Project->Add New Item->Data->DataSet
    بله. با نام dsfactor ایجاد کردم.
    سپس با درگ از ServerExplorer یا با راست کلیک در نمایه طراحی و انتخاب گزینه Add->TableAdapter جدولی جدیدی در TypedDataSet تان ایجاد کنید.
    اینکار رو کردم و در اون مرحله ی choose a command type گزینه ی use sql statement رو انتخاب کردم. در پنجره ی بعد دکمه ی query builder رو زدم. در پنجره ی add table جدولی که قراره بعضی از فیلدهاش رو در گزارش نشون بدم رو انتخاب کردم. مثلا جدول TB_customer . بعد هم add رو زدم و پنجره رو بستم. حالا در پنجره ی query builder گزینه ی all columns رو انتخاب کردم و نهایتا ok رو زدم.(شرطی که طبق اون باید رکوردها در گزارش نشون داده بشن رو مشخص نکردم دیگه. درسته؟ باشه برا بعد؟!!) نهایتا هم finish رو کلیک کردم و یه جدول به نام TB_customerTableAdabtor ایجاد شد.
    سپس پروزه را یک کامپایل کنید.
    Build->Rebuild Solution
    اینکار رو هم انجام دادم.

    بعد گزارش کریستال را اضافه کنید
    Project->Add New Item->Report->Crystal Report

    در ویزاردی که باز میشود همین TypedDataSet و جدولش داخلش را DataSource گزارش اعلام کنید.
    در کدوم مرحله ی ویزارد؟ پنجره ی data که available data source ها رو در ساختارهای درختی نشون میده؟
    قبلا create new connection رو انتخاب می کردم. حالا کدومو انتخاب کنم و کجاش این دو تا رو بهش معرفی کنم؟
    من ADO .NET dataset رو انتخاب کردم و بعد ادامه ی مراحل . اما وقتی گزارش رو اجرا کردم صفحه ی ریپورتم خالی بود! کدهایی هم که داخل فرم فراخوانی کننده ی کریستال ریپورتم نوشتم اینا بود:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ضمنا زیر اون خط using... خط سبز کشید و اجراش کرد! (ببخشید که اینطور با جزئیات میگم. راستش از بس این تیکه کد اذیتم کرد درمونده شدم و میخوام حل شه دیگه)
    Last edited by samaram; 16-02-2010 at 20:47. دليل: تکمیل موضوع

  2. #12
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    در کدوم مرحله ی ویزارد؟ پنجره ی data که available data source ها رو در ساختارهای درختی نشون میده؟
    قبلا create new connection رو انتخاب می کردم. حالا کدومو انتخاب کنم و کجاش این دو تا رو بهش معرفی کنم؟
    من ADO .NET dataset رو انتخاب کردم و بعد ادامه ی مراحل . اما وقتی گزارش رو اجرا کردم صفحه ی ریپورتم خالی بود! کدهایی هم که داخل فرم فراخوانی کننده ی
    مراحل قبلیتان برای دیتاست صحیح بوده و ادامه اش ...
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اگر مرحله داخل [...] را هم انجام دهید و پیگیری کنید خود کریستال یک گزارش پیشفرض (کاملاً بی ریخت!) هم برایتان درتس میکند و فرم گذارشتان خالی نخواهد بود.
    ولی چه فیلدها روی گزارش باشد و چه نباشد اگر DataTable تان را درست اضافه کرده باشید باید در سمت (معمولاً) چپ VS ابزار Field Explorer (در زمان باز بودن طراح گزارش) امده باشد.
    در این ابزار و در شاخه Database Fields میتوانید فیلدها را یافته و روی گزارش و در محل مناسب رها کنید و گزارش را طراحی کنید.

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

    =====

    میخواهید همان لحظه چاپ کنید یا پیش پرینت (Preview) به کاربر نشان دهید.
    برای Preview باید فرمی و کنترلری محیا کنید تا به کاربر نشان دهد.

    برای چاپ مستقیم هم همین کد کافی است:
    (دستور آخر فرمان چاپ را میدهد و الزامی است)
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ولی من نمیدانم ماهیت، فیلد sh شما چیست؟
    یعنی عددی است یا متنی؟ یا ...
    شما در دستورات خودتان ToString داده اید، یعنی فیلد sh متنی است؟

    ==============

    از مطالب فوق که بگذریم و بعد از انکه انشاا... مشکل قبلیتان رفع شد، چند مطلب دیگر هم مطرح میشود.
    مثلاً ...
    - شما میتوانید DataAdapter (همان TB_customerTableAdabtor) را یا اصلاً ایجادش نکنید!!! یا حداقل به SELECT آن هم پارامتر بدهید و از همان استفاده کنید.

    - شما میتوانید از ابزار گزارش سازی لذت بخش تر Stimul هم استفاده کنید.

    - اگر فکر میکنید، کمکتان میکند...
    دیتابیس sql تان را برایم آپلود کنید من یک نمونه گزارش ساده برایتان درست میکنم.

    =====

    موفق باشید.

  3. #13
    اگه نباشه جاش خالی می مونه samaram's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    آنجا که دلم خوش به هوایش باشد
    پست ها
    486

    پيش فرض

    الان سر كار هستم و پروژ رو همراهم ندارم تا كدها رو چك كنم. ولي همين سوالاتي كه فعلا به ذهنم رسيد:
    ولی من نمیدانم ماهیت، فیلد sh شما چیست؟
    یعنی عددی است یا متنی؟ یا ...
    شما در دستورات خودتان ToString داده اید، یعنی فیلد sh متنی است؟
    يه متغير از نوع int هست كه تو يه كلاس به نام common تعريفش كردم و ازش براي مبادله ي يه مقدار بين فرم ها و گزارش هام استفاده ميكنم.

    از مطالب فوق که بگذریم و بعد از انکه انشاا... مشکل قبلیتان رفع شد، چند مطلب دیگر هم مطرح میشود.
    مثلاً ...
    - شما میتوانید DataAdapter (همان TB_customerTableAdabtor) را یا اصلاً ایجادش نکنید!!! یا حداقل به SELECT آن هم پارامتر بدهید و از همان استفاده کنید.
    اخه تو querybuilder به select نميتونم شرط بدم. چون حالت تايپ دستور اونجا جوريه كه متغير نوع دستور يعني مثلا cmd رو نداره تا بعدش بتونم مثلا common.sh رو بهش اضافه كنم. واضح تر ميگم. من بايد تو شرطم بگم where sh=@id . ولي بعدش بايد با دستور cmd...addwithvalue مقدار common.sh رو بهش اضافه كنم ديگه. درسته؟ خب همين رو نميدونم تو querybuilder چطور بايد تعريف كنم.

    - شما میتوانید از ابزار گزارش سازی لذت بخش تر Stimul هم استفاده کنید.
    اين ديگه چيه؟:43:
    - اگر فکر میکنید، کمکتان میکند...
    دیتابیس sql تان را برایم آپلود کنید من یک نمونه گزارش ساده برایتان درست میکنم.
    كمك كه حتما ميكنه . بخدا من همينجوريشم هروقت ميام اينجا يه سوال ديگه مطرح كنم شرمنده ام. چشم. الان كه بانك هام اينجا نيستند. عصر براتون آپلود ميكنم.


    موفق باشید
    با اينهمه بزرگواري شما مگه ميشه موفق نشم؟

  4. #14
    اگه نباشه جاش خالی می مونه samaram's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    آنجا که دلم خوش به هوایش باشد
    پست ها
    486

    پيش فرض

    سلام. ین مراحل که شما فرمودید رو دیشب هم انجام دادم اما بازم این crystal report viewer هیچی نشون نمیده.
    ببینید منطق برنامه ی من اینه:
    در فرمی به نام frmsearch یه گراید ویو دارم که کاربر نتیجه ی جستجوش رو در اون می بینه . بعد سطر مورد نظرش رو انتخاب میکنه و دکمه ی "نمایش فاکتور" رو میزنه. با زدن این دکمه id سطر انتخاب شده به متغیر sh در کلاس common میره. و بعد فرم frmfactor راخوانی میشه که در این فرم یه crystal report viewer گذاشتم و دستورات زیر رو تایپ کردم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    با اینهمه بازم موقع اجرا مقداری داخل crystal report viewer نمیبینم.
    یه سوال جدید. اگه بخوام قبل از نمایش در کریستال ریپورت محاسباتی روی بعضی از فیلدهای بانکم انجام بدم و بعد اونها رو روی گزارش نشون بدم میشه. درسته؟
    راستی اینم دیتابیسم(اگه توش نکات غیرحرفه ای دیدین ببخشید!)
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by samaram; 17-02-2010 at 19:50. دليل: افزودن فایل

  5. #15
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    يه متغير از نوع int هست كه تو يه كلاس به نام common تعريفش كردم و ازش براي مبادله ي يه مقدار بين فرم ها و گزارش هام استفاده ميكنم.
    پس عددی است و مقدارش را هم دارید و از Textbox نمیگیرید.
    با این شرایط استفاده از ToString اشتباه بوده است.

    اخه تو querybuilder به select نميتونم شرط بدم. چون حالت تايپ دستور اونجا جوريه كه متغير نوع دستور يعني مثلا cmd رو نداره تا بعدش بتونم مثلا common.sh رو بهش اضافه كنم. واضح تر ميگم. من بايد تو شرطم بگم where sh=@id . ولي بعدش بايد با دستور cmd...addwithvalue مقدار common.sh رو بهش اضافه كنم ديگه. درسته؟ خب همين رو نميدونم تو querybuilder چطور بايد تعريف كنم.
    شما در فرم ویزاردی QueryBuilder دستور SQL ای با شرط میدهید مثلاً ;(SELECT * FROM [TB_customer] WHERE ([sh]=@sh بعد خود ویزاررد پارامتر و ورودیهای لازم را تولید میکند در نهایت کد Fill شما چیزی شبیه این میشود:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    شما نیاز به اصلاح ConnectionString بسته به شرایط دارید که البته این میتواند راه های متنوعی داشته باشد.
    ولی در TypedDataAdapter متد Fill سفارشی برای شما ایجاد میشود که لیست پارامترها را میگیرد و به نوعی کار کدنویسی دستی را کمتر میکند.

    اين ديگه چيه؟
    یک برنامه مشابه Crystal .
    اصول کار و طراحی ارتباط و... تقریباً مشابه است.
    ولی امکانات و محیط بهتری دارد.
    اگر دقت کرده باشید چیدمان فیلدها در کریستال کاری بشدت حوسله سر بر و رنج آور است، مخصوصاً که مقیاس فاصله و ابعاد استانداری ندارد و...

    ميام اينجا يه سوال ديگه مطرح كنم شرمنده ام
    دوست عزیز کسی که در تالار سوالی را جواب میدهد که تفنگ پشت کلش نگذاشتند که سوال جواب بدهد.
    هر کس بخواهد سوال میپرسد هرکس هم بخواهد جواب میدهد.
    اصولاً اگر قرار باشد افراد سوال نپرسند که اصلاً تالار گفتگو بی معنی میشود!!!
    شما سوالتان را نپرسید، کسی هم نخواهد جواب دهد! پس چی؟ آقا نظرتان چیست که تعطیل کنیم بریم بخوابیم؟؟؟
    یعنی اصلاً این تالارهای گفتگو (حداقل در حیطه انجمن های علمی) برای سوال و جواب و رفع اشکال است.

    با اینهمه بازم موقع اجرا مقداری داخل crystal report viewer نمیبینم
    باید report را به viewer بدهید و من نمیدانم داده اید یا نه ...

    اجازه دهید بانکتان را دانلود کنم و گزارش ساده ای برایتان طراحی کنم، ادامه میدهیم.
    فقط شاید کمی طول بکشد!
    انشاا... سعی میکنم پنجشنبه و جمعه وقتی رویش بگذارم.

    موفق باشید.

  6. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  7. #16
    اگه نباشه جاش خالی می مونه samaram's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    آنجا که دلم خوش به هوایش باشد
    پست ها
    486

    پيش فرض

    ببینید کد من اینطور شده :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    خسته شدم دیگه از دستش!!
    گزارش من قراره یه فاکتور برای یه مشتری خاص باشه. یعنی با اعمال اون شرطی که میبینید میخواد فقط مشخصات یه مشتری رو نشون بده. اما الان گزارش رو با کد بالا نشون میده ولی توش فقط عناوین فیلدهای بانک هست و رکورد مورد نظرمو نشون نداده

  8. #17
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    خوب من چیزی برایتان حاضر کردم.
    خیلی دلم میخواست بقیه فیلدها را را تغییر دهم ولی جلوی خودم را گرفتم
    با اجازه تان دیگر date را تحمل نکردم، یک جورهایی تاریخ string ای میبینم هنگ میکنم!
    نتیجتاً نوع date تان را smalldatetime کردم و فیلد اول را هم Autonumber کردم.

    =====

    چون از برخی جهات کریستال کمی عقب افتاده است ناچاراً فقط به TypedDataSet به صورت کاملاً مجازی یک فیلد PersianDate اضافه شده که string شده شمسی date را نگاه میدارد. (که با تغییر Culture انجام میشود)

    گزینه چاپ و پیش چاپ و ویرایش را برایتان درست کردم.
    کدها بسیار ساده هستند و به نظرم قابل فهم.
    روی همین کدها سوالی بود بفرمائید

    لینک دانلود:
    mediafire.com/?mjghfdznijm

    =====

    انشاا... مشکلتان حل شود.

  9. #18
    اگه نباشه جاش خالی می مونه samaram's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    آنجا که دلم خوش به هوایش باشد
    پست ها
    486

    پيش فرض

    سلام
    خوب من چیزی برایتان حاضر کردم.
    خیلی دلم میخواست بقیه فیلدها را را تغییر دهم ولی جلوی خودم را گرفتم
    با اجازه تان دیگر date را تحمل نکردم، یک جورهایی تاریخ string ای میبینم هنگ میکنم!
    نتیجتاً نوع date تان را smalldatetime کردم و فیلد اول را هم Autonumber کردم.

    =====

    چون از برخی جهات کریستال کمی عقب افتاده است ناچاراً فقط به TypedDataSet به صورت کاملاً مجازی یک فیلد PersianDate اضافه شده که string شده شمسی date را نگاه میدارد. (که با تغییر Culture انجام میشود)

    گزینه چاپ و پیش چاپ و ویرایش را برایتان درست کردم.
    کدها بسیار ساده هستند و به نظرم قابل فهم.
    روی همین کدها سوالی بود بفرمائید

    لینک دانلود:
    mediafire.com/?mjghfdznijm

    =====
    .
    ببینید کاربر قراره با این نرم افزار یه سری پرونده هایی که از قبل داره رو هم ثبت کنه. بنابراین فیلد sh رو نمیتونم Autonumber بگیرم. چون اینجوری نمیتونه شماره پرونده های قبلیشو ثبت کنه. در مورد date هم این date تاریخ ثبت نیست. تاریخ بستن قرارداده . بنابراین میبینید که بازم نمیتونم از نوع smalldate بذارم. چون اینجوری نمیتونه دقیقا تاریخی که قرار داد در اون تاریخ بسته شده رو بذاره.
    دارم روی گزارش کار میکنم. واقعا از لطفتون ممنونم...
    انشاا... مشکلتان حل شود

  10. #19
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    کاربر قراره با این نرم افزار یه سری پرونده هایی که از قبل داره رو هم ثبت کنه. بنابراین فیلد sh رو نمیتونم Autonumber بگیرم.
    خوب یک فیلد AutoNumber برای کلید داشته باشید فیلد sh خودتان را هم داشته باشید.
    فیلد Autonumber بسیار بسیار کارکرد شبکه ای برا را مستحکم میکند و از خطاهای هم زمانی از چند رایانه خیلی زیاد جلوگیری میکند.

    در مورد date هم این date تاریخ ثبت نیست
    من هم همچین فکری نکرده بودم!

    بنابراین میبینید که بازم نمیتونم از نوع smalldate بذارم. چون اینجوری نمیتونه دقیقا تاریخی که قرار داد در اون تاریخ بسته شده رو بذاره
    چرا؟؟؟!!!
    شما در فرم Persian Editor میتوانید تاریخ را هم کاملاً دقیق اصلاح کنید.
    تاریخ های غیر مجاز هم نمیتوانید وارد کنید، (سعی کنید چیز اشتباهی وارد کنید و ببینید چه میشود!)

    فیلد smalldatetime هم مقادیر را مجاز میکند و هم عملیات Sort کردن معنی واقعی تری پیدا میکند و با سایر نرمافزارها هم برای import و export و وب سرویسها هماهنگی خوبی دارد.

    ورودی شمسی و چاپ هم که شمسی است! ولی فقط ذخیره با نوع استاندارد میلادی است

    موفق باشید.

  11. #20
    اگه نباشه جاش خالی می مونه samaram's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    آنجا که دلم خوش به هوایش باشد
    پست ها
    486

    پيش فرض

    انگاری درست شد!!! البته باید روی یه مورد دیگه اش کار کنم. ولی میشه ترتیب کارتون رو بگید. مثلا ترتیب ایجاد فرم ها و گزارش ها و دیتاست و... (راه حل نه. فقط ترتیب)

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

برچسب های این موضوع

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •