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

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




نمايش نتايج 1 به 9 از 9

نام تاپيک: اختلال در چاپ در برنامه های تحت شبکه!

  1. #1
    اگه نباشه جاش خالی می مونه MTPROG's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    شهر 3500 ساله
    پست ها
    432

    پيش فرض اختلال در چاپ در برنامه های تحت شبکه!

    تو یک برنامه عملیات چاپ اینطوری صورت میگره:
    1-تو بانک یک جدولTMP به نام فرضا x قرار گرفته که شامل چند تا فیلد هستش و برای همه چاپها استفاده میشه
    2-وقتی کاربر میخواد چاپ کنه اطلاعاتشو بعد از انتخاب به این جدول میفرسته و چاپ میشه(فرمهای کریستال به این جدول متصل هستند)

    مشکل:
    این روش تو برنامه تک کاربره مشکلی نداره اما تو برنامه تحت شبکه امکان اختلال در چاپ وجود داره چون به فرض مثال اگر دو کاربر همزمان بخوان اطلاعات برای چاپ بفرستن (مثلا فاکتور) در یک زمان اطلاعات هر دو فاکتور در جدول x نوشته میشه و هنگام نمایش فاکتور اطلاعات اضافی نمایش داده میشود

    البته من فکر میکنم با گذاشتن یک فیلد در بانک با نام flag که هنگام نوشتن اطلاعات مقدار آن 1 و هنگام اتمام کار مقدار 0 بگیره و کلاینتها هنگام چاپ این فیلد رو بررسی کنن اگه 1 بود در یک حلقه منتظر بمونن تا 0 بشه و اگر 0 بود اطلاعاتشونو برای چاپ بفرستن میشه مشکلو حل کرد (چیزی تو مایه های قفل دستی)



    به نظر شما چه راه یا روشی بهتری وجود داره که بتوان این مشکل رو حل کرد؟

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

    پيش فرض

    سلام
    کلاً لزوم وجود جدول TMP را درک نمیکنم و به نظرم کار بیهوده ای است و توجیحی در آن نمیبینم. چرا مستقیم از جدول اصلی گزارش نمیگیرد؟

  3. #3
    اگه نباشه جاش خالی می مونه MTPROG's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    شهر 3500 ساله
    پست ها
    432

    پيش فرض

    به دو دلیل :
    1-گزارشات ترکیبی هستند فرضا برای یک گزارش از چهار تا جدول مختلف استفاده میشه که فیلدهای بدست آمده با جدول اصلی متفاوت هستش چطور میشه از همون جدول اصلی استفاده کرد(مثلا جدول اصلی 3 فیلد ولی گزارش 5 فیلد)

    2-برای تهیه گزارش با کریستال باید یک DataSet از یک جدول وجود داشته باشه تا بتونی فیلدها رو ربط بدی اگر از جدول اصلی باشه و فیلدهای اون به اندازه فیلدهای گزارش ترکیبی نباشه تکلیف بقیه فیلدها چی میشه!

  4. #4
    کاربر فعال انجمن دات نت عــــلی's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    زیر سایه عرش الهی
    پست ها
    2,335

    پيش فرض

    سلام دوست عزیز خسته نباشید.اگه بخوای بزاری توی یه حلقه میدونی چه بلایی سر سیستم میاد؟هیچوقت این کارو نکن.
    بهت پیشنهاد میکنم یه فرم طراحی کنی و طوری طراحی کنی که بسته نشه(اگه نمیدونی بپرس تا بگم).حالا اون فرم رو ShowDialog میکنی و توش مینویسی لطفاً صبر کنید... حالا تا زمانی که فرم بسته نشه کدهای بعد فرم اجرا نمیشن چون فرم ShowDialog شده.خوب حالا تو فرم یه دکمه میزاری که هر وقت OK شد امتحان کنه ببینه اجازه ورود هست یا نه در صورتی که اجازه ورود داده شد پنجره بسته بشه و کد ها اجرا بشن.
    یا علی.

  5. #5
    اگه نباشه جاش خالی می مونه MTPROG's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    شهر 3500 ساله
    پست ها
    432

    پيش فرض

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

    من تو برنامهام یک کامپونینت انتظار با فلش طراحی کردم که به کاربر نشون داده میشه تا عملیات تموم بشه

    ولی از پیشنهادتون ممنون

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

    پيش فرض

    سلام
    ... به دو دلیل ...
    بهرحال اگر چندین جدول را هم به هم join کنید، باز یک دستور select خواهید داشت!
    با دستور Select خود dataset را پر کنید و dataset را تحویل کریستال بدهید...

    نکند شما جدول را مستقیماً به کریستال متصل میکنید؟؟؟

    در واقع ان جدول temp شما میشود dataset داخل خود برنامه...

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  7. #7
    اگه نباشه جاش خالی می مونه MTPROG's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    شهر 3500 ساله
    پست ها
    432

    پيش فرض

    تو پر کردن dataset مشکلی نیست

    مشکل هنگام طراحی کریستال هستش چون باید فیلدهاتو از یک dataset بکشی توی فرم چاپ اینجاست که اگر فیلدهای dataset موجود در قسمت Datasource محیط VS کمتر از نیاز شما باشه مشکل به وجود میاد.

    بزارید با یه مثال بگم
    فرض کنید سه تا جدول با فیلدهای رو برو داریم : x=id,x1,x2 y=id,y1,y2 z=id,z1,z2

    با Select زیر خروجی بدست میاد
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    حال dataset داخل برنامه شامل شش فیلد هستش و اطلاعات برای چاپ اماده است

    حالا موقع طراحی کریستال ریپورت باید یه dataset تو Datasource محیط VS وجود داشته باشه تا بتونی فیلدهاتو بکشی تو فرم کریستال و جداول رو مرتب کنی
    ولی از هر کدوم از جداول اصلی که بخوای استفاده کنی حداکثر دارای سه فسلد است ولی خروجی دارای شش فیلد است
    مشکل من تو این قسمت هستش!
    Last edited by MTPROG; 15-06-2009 at 08:48.

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

    پيش فرض

    سلام
    خود dataset شما باید شش فیلدی باشد!!!
    و خود dataset شما باید حاصل این sql را نگه دارد...
    یعنی خود dataset شما باید جای آن جدول TMP را بگیرد...

    گمانم شما در ساخت datatable شش فیلدی تان مشکل دارید.

    یک dataset خالی اضافه کنید و روی قسمت خالی اش در نمایه طراحی راست کلیک ..
    RightClick->Add->TableAdapter

    Connection را برای ویزارد تکمیل کنید و با تنظیمات پیش فرض Next کنید تا به بخش Enetr a SQL Statement برسید...
    1- با کمک دکمه Query Builder دستور SQL دلخواه تان را وارد نمایید (مثلاً همانکه در بالا نوشته بودید... میتوانید قسمت where و پارامتر شرطی هم اضافه کنید...)

    2- دکمه Advanced Options را هم کلیک کنید و تیک هر سه گزینه را بردارید...

    ویزارد را Next کنید.
    تیک Create methods to send updates directly to database را هم بردارید...

    و باز هم Next و OK

    حالا شما یک datatable در داخل dataset تان دارید که خود این datatable دارای شش فیلد میباشد و دقیقاً معادل همان جدول tmp هارد است.

    نتیجتاً از این datatable و dataset جدید در کریستال استفاده کنید.
    موفق باشید.

  9. #9
    اگه نباشه جاش خالی می مونه MTPROG's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    شهر 3500 ساله
    پست ها
    432

    پيش فرض

    میرم تست کنم

Thread Information

Users Browsing this Thread

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

User Tag List

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

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