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

نام تاپیک: backgroundworker

  1. #1
    کاربر جدید
    تاریخ عضویت
    آبان 1390
    محل زندگی
    ؟
    پست
    28

    Question backgroundworker

    سلام دوستان

    من یک برنامه دفترچه تلفن ساده نوشتم که می خوام حین گزارش گیری بتونم با پنجره های دیگه هم کار کنم و کد گزارش گیری من اینه : به اضافه یک کد دیگه که اطلاعات رو از جدول بازیابی می کنه اگه می شه منو راهنمایی کنید !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    CrystalReport1 c = new CrystalReport1();
    c.SetDataSource(dataTableEmp);
    crystalReportViewer1.ReportSource = c

    با تشکر

  2. #2

    نقل قول: backgroundworker

    سلام دوست من

    منظورت دقیقا چیه اگه منظورت اینه که بتونی با سایر فرم ها تعامل داشته باشی میتونی جای ShowDialog از Show استفاده کنی و کد بروزرسانی اطلاعات رو در رویداد Active فرم بنویسی ,با اینکار مثلا اگه تو فرم اضافه کردن مقدار جدید اضافه کنی با انتخاب فرم گزارش گیری اطلاعات بروز میشه و اون رکوردم نمایش داده میشه.

    اگه منظورت اینه که در حین گزارش گیری فرم های دیگه وظایف دیگه ای بر عهده بگیرن همونطورم که قبلا بهت گفتم یک BackgroundWorker بزار.

    BackgroundWorker همون ترد هست اما مدل ویژوالش که باهاش میشه به صورت بصری باهاش کار کرد و مقادیر رو رد و بدل کرد.

    اگه غیر ازاینهاست زیبا و شفاف توضیح بده دقیقا میخوای چیکار کنی تا ما هم زیبا و شفاف برات توضیح بدیم.

    موفق باشی
    بایت بایت

  3. #3
    کاربر جدید
    تاریخ عضویت
    آبان 1390
    محل زندگی
    ؟
    پست
    28

    نقل قول: backgroundworker

    نقل قول نوشته شده توسط Youuness مشاهده تاپیک
    سلام دوست من

    منظورت دقیقا چیه اگه منظورت اینه که بتونی با سایر فرم ها تعامل داشته باشی میتونی جای ShowDialog از Show استفاده کنی و کد بروزرسانی اطلاعات رو در رویداد Active فرم بنویسی ,با اینکار مثلا اگه تو فرم اضافه کردن مقدار جدید اضافه کنی با انتخاب فرم گزارش گیری اطلاعات بروز میشه و اون رکوردم نمایش داده میشه.

    اگه منظورت اینه که در حین گزارش گیری فرم های دیگه وظایف دیگه ای بر عهده بگیرن همونطورم که قبلا بهت گفتم یک BackgroundWorker بزار.

    BackgroundWorker همون ترد هست اما مدل ویژوالش که باهاش میشه به صورت بصری باهاش کار کرد و مقادیر رو رد و بدل کرد.

    اگه غیر ازاینهاست زیبا و شفاف توضیح بده دقیقا میخوای چیکار کنی تا ما هم زیبا و شفاف برات توضیح بدیم.

    موفق باشی
    بایت بایت

    دوست عزیز منظور من همون است که حین گزارشگیر ی فرم های دیگه وظایف دیگه ای بر عهده دارن بتونن انجام بدن و اما حقیقت من کار با backgroundworker رو نمیدونم چطوری یعنی نمی دونم مثلا کد گزارشگیری رو توdoworkبنویسم یا کد نمایش فرم گزارش گیری رو توی اون بنویسم ؟

  4. #4

    نقل قول: backgroundworker

    از حرفاتون اینطور برداشت میشه که قصد دارید بار پردازشی عمل گزارش گیری رو به یه نخ دیگه بدید تا وقفه ای در کار با فرمتون ایجاد نشه. واسه اینکار میتونید از یک BackgroundWorker استفاده کنید. این شی دو رویداد DoWork که قراره عمل اصلی که قراره به نخ جدیدمون محول بشه رو انجام بده - و RunWorkerCompleted که ازش میتونید به عنوان دریافت نتیجه کار اتمام BackgroundWorker استفاده کنید رو داره. تابع RunWorkerAsync هم واسه صدا زدن DoWork استفاده میشه. اما نکته اینجاست که اشیای ایجاد شده تو نخ اصلیتون رو نمیشه تو DoWork (برخلاف RunWorkerCompleted )استفادشون کرد و همینطور بالعکس. اما آرگومان DoWorkEventArgs e تو DoWork و RunWorkerCompleted مشترکن که میتونید نتیجه کار رو در انتهای DoWork توی پروپرتی Result این آرگومان بذارید و همون پروپرتی رو توی RunWorkerCompleted ازش استفاده کنید.
    در مورد مثال شما باید CrystalReport و اشیای ارتباط با بانکت رو تو DoWork ایجاد کنید و در انتها e.Result برابر همون CrystalReport که تو همین تابع ساختید بکنید و تو RunWorkerCompleted ، همون crystalReportViewer1 که تو فرم اصلیتون ساختید رو به این شکل مقدار دهی کنید:
    crystalReportViewer1.ReportSource = (CrystalReport)e.Result;


    واسه ایجاد رویدادهای BackgroundWorker به این صورت اقدام می کنید
                BackgroundWorker bw = new BackgroundWorker();
    bw.DoWork += new DoWorkEventHandler(bw_DoWork);
    bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerComplet ed);


    و هرجا نیاز هست که عمل گذارش گیری انجام بشه تابع RunWorkerAsync رو صدا می زنید.
    آخرین ویرایش به وسیله AvantGarde : شنبه 11 آذر 1391 در 17:59 عصر

  5. #5
    کاربر جدید
    تاریخ عضویت
    آبان 1390
    محل زندگی
    ؟
    پست
    28

    نقل قول: backgroundworker

    نقل قول نوشته شده توسط AvantGarde مشاهده تاپیک
    از حرفاتون اینطور برداشت میشه که قصد دارید بار پردازشی عمل گزارش گیری رو به یه نخ دیگه بدید تا وقفه ای در کار با فرمتون ایجاد نشه. واسه اینکار میتونید از یک BackgroundWorker استفاده کنید. این شی دو رویداد DoWork که قراره عمل اصلی که قراره به نخ جدیدمون محول بشه رو انجام بده - و RunWorkerCompleted که ازش میتونید به عنوان دریافت نتیجه کار اتمام BackgroundWorker استفاده کنید رو داره. تابع RunWorkerAsync هم واسه صدا زدن DoWork استفاده میشه. اما نکته اینجاست که اشیای ایجاد شده تو نخ اصلیتون رو نمیشه تو DoWork (برخلاف RunWorkerCompleted )استفادشون کرد و همینطور بالعکس. اما آرگومان DoWorkEventArgs e تو DoWork و RunWorkerCompleted مشترکن که میتونید نتیجه کار رو در انتهای DoWork توی پروپرتی Result این آرگومان بذارید و همون پروپرتی رو توی RunWorkerCompleted ازش استفاده کنید.
    در مورد مثال شما باید CrystalReport و اشیای ارتباط با بانکت رو تو DoWork ایجاد کنید و در انتها e.Result برابر همون CrystalReport که ساختید بکنید و تو RunWorkerCompleted همون crystalReportViewer1 که تو فرم اصلیتون ساختید رو به این شکل مقدار دهی کنید:
    ((CrystalReport)e.Result).SetDataSource(dataTableE  mp);



    از شما بابت پاسخگويي متشكرم

  6. #6

    نقل قول: backgroundworker

    خواهش می کنم.
    کد رو هم اصلاح کردم

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

  1. مشکل با backgroundworker
    نوشته شده توسط Mrs.Net در بخش C#‎‎
    پاسخ: 9
    آخرین پست: چهارشنبه 18 مهر 1386, 04:47 صبح
  2. backgroundworker
    نوشته شده توسط f_iut79 در بخش VB.NET
    پاسخ: 7
    آخرین پست: پنج شنبه 07 تیر 1386, 16:12 عصر
  3. پاسخ: 3
    آخرین پست: شنبه 15 اردیبهشت 1386, 08:18 صبح
  4. کار با BackGroundWorker
    نوشته شده توسط bahman.net در بخش C#‎‎
    پاسخ: 4
    آخرین پست: جمعه 16 تیر 1385, 22:51 عصر

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

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