PDA

View Full Version : مبتدی: ارتباط بین چند باتن مختلف در #C



messi13
شنبه 12 مرداد 1392, 11:49 صبح
سلام من سه تا سرچ مختلف دارم
میخوام همه رو واسه چاب منتقل کنم رو یه بوتن..
جاشون یه جوری که نمیشه بوتن رو برداشت..باید باشه..من واسه یکیشون کد چاپ رو قرار دادم..
میشه با کلیک بر دکمه بوتنی که کد نداره ارجاع بشه به اون بوتنی که کد داره و چاپ بشه..
البته سه تاشون قراره واسم تاریخ رو چاپ کنن یکی روزانه ،یکی ماهانه ودیگری گزارش سالانه
یعنی کدسرچشون مشترکه تقریبا...
http://axgig.com/images/15042553036504410583.jpg

amir200h
شنبه 12 مرداد 1392, 11:52 صبح
اینجوری میتونی یه باتن رو صدا بزنی
button1_Click(sender, e);

amir200h
شنبه 12 مرداد 1392, 11:53 صبح
یا یه متد نویس و متد رو فراخوانی کن

messi13
شنبه 12 مرداد 1392, 12:00 عصر
یا یه متد نویس و متد رو فراخوانی کن
ممنون با همون پست دوم جواب گرفتم..بنظرم هم ساده تره هم مفید
این متد نویسی هم یه توضیح میدید..

amir200h
شنبه 12 مرداد 1392, 12:17 عصر
مدهاتونو داخل ی تابع میتویسین و هرجا خواستین صداش میکنین. مثلا شما یه messagebox رو شاید خیلی جاها باید استفاده کنین. واسه جلوگیری از تکرار کد نویسی میایم اونو داخل یه تابع مینویسیم بعد هرجا خواستیم اونو صدا میزنیم.
این یه نمونه تابع
private void message()
{
MessageBox.Show("amir200h");
}

حالا هرجا خواستیم این پیام نمایش داده بشه فقط کافیه نام تابع رو بنویسیم. به این صورت
message();

khokhan
شنبه 12 مرداد 1392, 12:25 عصر
ممنون با همون پست دوم جواب گرفتم..بنظرم هم ساده تره هم مفید
این متد نویسی هم یه توضیح میدید..
به جای اینکه سه تا باتن چاپ داشته باشیم بهتره یه گرید داشته باشیم و نتیجه همه جستجوها درون اون ریخته بشه :لبخند:
اون وقت می تونیم با یه باتن چاپ محتویات گرید رو بریزیم درون یه دیتا تیبل و بفرستیم به گزارش

sgh_programer
شنبه 12 مرداد 1392, 12:32 عصر
بنام خدا
سلام
دوست گرامی تمام این گزارشگیری ها رو میتونستی با یک باتن هم بنویسی و نیازی هم به سه باتن چاپ نبود


به جای اینکه سه تا باتن چاپ داشته باشیم بهتره یه گرید داشته باشیم و نتیجه همه جستجوها درون اون ریخته بشه :لبخند:
اون وقت می تونیم با یه باتن چاپ محتویات گرید رو بریزیم درون یه دیتا تیبل و بفرستیم به گزارش

اره اینجوی هم میشه البته به دیتا تیبل هم نیازی نیست میشه sqlcommand.commandtext را هر باز بفرستی به عنوان گزارش

موفق باشی

messi13
شنبه 12 مرداد 1392, 12:32 عصر
مدهاتونو داخل ی تابع میتویسین و هرجا خواستین صداش میکنین. مثلا شما یه messagebox رو شاید خیلی جاها باید استفاده کنین. واسه جلوگیری از تکرار کد نویسی میایم اونو داخل یه تابع مینویسیم بعد هرجا خواستیم اونو صدا میزنیم.
این یه نمونه تابع
private void message()
{
MessageBox.Show("amir200h");
}

حالا هرجا خواستیم این پیام نمایش داده بشه فقط کافیه نام تابع رو بنویسیم. به این صورت
message();
دستت درد نکنه

به جای اینکه سه تا باتن چاپ داشته باشیم بهتره یه گرید داشته باشیم و نتیجه همه جستجوها درون اون ریخته بشه :لبخند:
اون وقت می تونیم با یه باتن چاپ محتویات گرید رو بریزیم درون یه دیتا تیبل و بفرستیم به گزارش
چجوری؟..خوخان خان بنظرت سخت نیست..:متفکر:

khokhan
شنبه 12 مرداد 1392, 12:35 عصر
بنام خدا
سلام
دوست گرامی تمام این گزارشگیری ها رو میتونستی با یک باتن هم بنویسی و نیازی هم به سه باتن چاپ نبود

موفق باشی
آقای messi13 تحویل بگیر حالا اگه مدتی بگذره همه با من هم عقیده می شن :لبخند::قهقهه:

messi13
شنبه 12 مرداد 1392, 12:38 عصر
بنام خدا
سلام
دوست گرامی تمام این گزارشگیری ها رو میتونستی با یک باتن هم بنویسی و نیازی هم به سه باتن چاپ نبود

موفق باشی
سلام حق باشماست..
من تمام کدنویسی ها رو انجام دادم....میتونم سرچ سالانه و ماهانه رو یه جوری ادغام کنم ولی گزارش روزانه با ماسک تکس با اون فرمت یه کم بنظرم گیج کنندس واسم..
مثلا یه کمبو باکس واسه بذارم.گزارش ماهانه سالانه و روزانه وبا سلکتشون..سرچ مورد نظر انجام بشه
من اینقد باز طراحی کردم..میگم درصد خطای کاربر پائین تره بره و استفاده بیشتر..البته این نظر منه

amir200h
شنبه 12 مرداد 1392, 12:39 عصر
آقای messi13 تحویل بگیر حالا اگه مدتی بگذره همه با من هم عقیده می شن :لبخند::قهقهه:

خوب شاید نوع گزارش گیریشون فرق کنه خوب :لبخند:
مثلا باتن دوم از ی جدول دیگه بخواد گزارش بگیره :لبخند:
البته با شرطو شروطو نوشتن یه تابع که کوئری بگیره بله میشه و حرفتون درسته :لبخند:

khokhan
شنبه 12 مرداد 1392, 12:40 عصر
چجوری؟..... بنظرت سخت نیست..

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

messi13
شنبه 12 مرداد 1392, 12:40 عصر
آقای messi13 تحویل بگیر حالا اگه مدتی بگذره همه با من هم عقیده می شن :لبخند::قهقهه:
ما که رو حرف استاد حرفی نداریم..داریم؟؟؟؟:لبخند:

khokhan
شنبه 12 مرداد 1392, 12:42 عصر
خوب شاید نوع گزارش گیریشون فرق کنه خوب :لبخند:
مثلا باتن دوم از ی جدول دیگه بخواد گزارش بگیره :لبخند:
البته با شرطو شروطو نوشتن یه تابع که کوئری بگیره بله میشه و حرفتون درسته :لبخند:
نه نیست اگه بود که بایستی برای هر کدومش یه فرم مجزا داشته باشه

sgh_programer
شنبه 12 مرداد 1392, 12:42 عصر
آقای messi13 تحویل بگیر حالا اگه مدتی بگذره همه با من هم عقیده می شن :لبخند::قهقهه:

دوست عزیز این که چیزی نیست اگه بقیه دوستان هم به این پست سر بزنن شاید حتی بدون باتن هم بشه!!!!!!!!!!!!!!!!:متعجب::متعجب::م فکر::چشمک:

دوست عزیز(messi13) یه خورده پیش خودت تحلیل کن خیلی راحت میتونی انجامش بدی

همگی موفق باشید

amir200h
شنبه 12 مرداد 1392, 12:43 عصر
ما که رو حرف استاد حرفی نداریم..داریم؟؟؟؟:لبخند:

نه والا. ما جلو استاد khokhan حرفی نداریم. الانم اگه زیر پسشتون جسارت میکنیم و چیزی میزاریم واسه اینه که داریم درس پس میدیم :لبخند:

khokhan
شنبه 12 مرداد 1392, 12:44 عصر
ما که رو حرف استاد حرفی نداریم..داریم؟؟؟؟:لبخند:
به دل نگیر مزاح کردیم
تکست باکس با ماسکت تکست باکس چه فرقی می تونه داشته باشه ؟؟؟؟؟؟؟/
جز اینکه ماسکت تکست باکس " بزک دوزک" کرده :قهقهه:

amir200h
شنبه 12 مرداد 1392, 12:45 عصر
نه نیست اگه بود که بایستی برای هر کدومش یه فرم مجزا داشته باشه

چرا فرم مجزا؟؟ خوب هردفعه مقدار گرید رو پاک میکنن و سرچ جدید میزنن :لبخند:

khokhan
شنبه 12 مرداد 1392, 12:48 عصر
نه والا. ما جلو استاد khokhan حرفی نداریم. الانم اگه زیر پسشتون جسارت میکنیم و چیزی میزاریم واسه اینه که داریم درس پس میدیم :لبخند:
شما لطف دارین :لبخند:
ولی سخن من در اینه که چون هر سه جستجو فیلدهای ثابت برمی گردونه نیازی به سه عدد باتن نیست و البته در حد یه پیشنهاده شاید کسی دوست داشته باشه کل فرمشو از اول تا انتها همینطوری با باتن پر کنه مگه می شه دم زد ؟؟؟؟ چار دیواری اختیاری !:لبخند:

khokhan
شنبه 12 مرداد 1392, 12:51 عصر
چرا فرم مجزا؟؟ خوب هردفعه مقدار گرید رو پاک میکنن و سرچ جدید میزنن :لبخند:
حالا بستگی به سلیقه فرد داره بله می شه این کار رو هم انجام داد وبه قول آقای sgh_programer شاید بشه بدون فرم هم انجام داد :لبخند:

sgh_programer
شنبه 12 مرداد 1392, 12:52 عصر
دوست عزیز( messi13) به عکس زیر نگاه کن
108407
حالا شاید زیاد مد نظرت نباشه ولی یه ذهنیت برات ایجاد میکنه

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

موفق باشی

messi13
شنبه 12 مرداد 1392, 12:57 عصر
دوست عزیز( messi13) به عکس زیر نگاه کن
108407
حالا شاید زیاد مد نظرت نباشه ولی یه ذهنیت برات ایجاد میکنه

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

موفق باشی
بله درسته باید یه طرحی نو دراندازیم..:خجالت:

messi13
شنبه 12 مرداد 1392, 12:58 عصر
شما اگه فرم اصلی منو ببیند چه حالی میشین.:لبخند:
خیلی ضایعس بچه ها؟:افسرده:
http://axgig.com/images/78829178520262521124.jpg

amir200h
شنبه 12 مرداد 1392, 12:59 عصر
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa :متعجب:

sgh_programer
شنبه 12 مرداد 1392, 13:03 عصر
اره دوست گلم فرمت یه خورده شلوغ هست ولی هیچ وقت هیچ وقت هیچ وقت خودتو دست کم نگیر وامیدت رو از دست نده
و یه پیشنهاد : در همین تالار خیلی از دوستان برای قیمت گذاری روی برنامه هاشون یه سری عکس از برنامه میذارن که میتونه کلی توی طراحیت بهت کمک کنه چون هرکی یه سلیقه داره شما میتونی ازش ایده بگیری

همگی موفق باشید

messi13
شنبه 12 مرداد 1392, 13:08 عصر
اره دوست گلم فرمت یه خورده شلوغ هست ولی هیچ وقت هیچ وقت هیچ وقت خودتو دست کم نگیر وامیدت رو از دست نده
و یه پیشنهاد : در همین تالار خیلی از دوستان برای قیمت گذاری روی برنامه هاشون یه سری عکس از برنامه میذارن که میتونه کلی توی طراحیت بهت کمک کنه چون هرکی یه سلیقه داره شما میتونی ازش ایده بگیری

همگی موفق باشید
ممنون از راهنمائیتون
در این فرم
هر باتن هم کلی کد مخصوص به خودش رو داره با یه ریپورت جداگانه
من دیگه اون اخراش گفتم باید را ههائی باشه که از این همه کدنویسی راحت بشم...
من اول راهم..و ازنظرات شما وسایر دوستان استفاده میکنم..
از الان سعی میکنم همین فرم رو خلاصه تر کنم

khokhan
شنبه 12 مرداد 1392, 13:11 عصر
شما اگه فرم اصلی منو ببیند چه حالی میشین.:لبخند:
خیلی ضایعس بچه ها؟:افسرده:

پیشنهاد من اینه که برنامه تونو قسمت بندی کنین و تکلیف هر قسمت رو توی فرم اصلی برنامه مشخص کنین و در هر قسمت گزارش مربوطه رو داشته باشین البته با رعایت اصل اختصار (خلاصه و مفید )

messi13
شنبه 12 مرداد 1392, 13:13 عصر
به دل نگیر مزاح کردیم
تکست باکس با ماسکت تکست باکس چه فرقی می تونه داشته باشه ؟؟؟؟؟؟؟/
جز اینکه ماسکت تکست باکس " بزک دوزک" کرده :قهقهه:
:گریه:
من چجوری میتونم
تو کمبوباکس وقتی تاریخ روزانه رو از ایتم های مختلف انتخاب کردم...این فرمت ماسکت تکست باکس واسه کاربر فعال بشه..:متعجب::متعجب:
مثلا از یه کد مثلا راننده سوئیچ بشه به فرمت ماسکت تکست باکس واسه ورود داده:متفکر:
مردم میشه؟آره؟:لبخند:
البته من میگم کمبو شاید شما نظرتون یه جور دیگس

khokhan
شنبه 12 مرداد 1392, 13:17 عصر
یه چیزی شبیه این :لبخند:

sgh_programer
شنبه 12 مرداد 1392, 13:21 عصر
مردم میشه؟آره؟:لبخند:
با این تیکه خیلی حال کردم

یادته گفتم که بعضی از دوستان از برنامه هاشون عکس میذارن و میشه ازشون ایده گرفت. نمونشو khokhan برامون گذاشته

messi13
شنبه 12 مرداد 1392, 13:28 عصر
با این تیکه خیلی حال کردم

یادته گفتم که بعضی از دوستان از برنامه هاشون عکس میذارن و میشه ازشون ایده گرفت. نمونشو khokhan برامون گذاشته


ظاهرا این استاد khokhan هنوز دستشو واسه ما رو نکرده..:متفکر::لبخند:
باید بیشتر ازاین اذیت بشه...تا بیشتر معلوماتش رو منتشر کنه:لبخند:

khokhan
شنبه 12 مرداد 1392, 13:28 عصر
:گریه:

مثلا از یه کد مثلا راننده سوئیچ بشه به فرمت ماسکت تکست باکس واسه ورود داده:متفکر:


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


DataClasses1DataContext context = new DataClasses1DataContext();
var aa = from a in context.Persons
where a.PersonAge == 12500
select a;

this.maskedTextBox1.Text = aa.ToList()[0].PersonAge.ToString();

messi13
شنبه 12 مرداد 1392, 13:32 عصر
البته می بخشین من زیاد متوجه منظورتون نمی شم
منضورتون یه چیزی شبیه اینه ؟


DataClasses1DataContext context = new DataClasses1DataContext();
var aa = from a in context.Persons
where a.PersonAge == 12500
select a;

this.maskedTextBox1.Text = aa.ToList()[0].PersonAge.ToString();
نه داداش..
بذار یه طراحی کوچیک رو فرم انجام بدم بعد یه شات میگرم میذارم ببینی

sohil_ww
شنبه 12 مرداد 1392, 13:57 عصر
ظاهرا این استاد khokhan هنوز دستشو واسه ما رو نکرده..
باید بیشتر ازاین اذیت بشه...تا بیشتر معلوماتش رو منتشر کنه

معلوماتش به همه بچه های تالار ثابت شدس ! !

و در مورد عکس که بالا گذاشتی و از ضایع بودنش پرسیدی باید بگم اره یکم ضایعس

من تو برنامه دیده بودم که همه گزارش ها رو تو 1 لیست باکس گذاشته بود بعد از اینکه گزارش انتخاب می شد اجزا می شد فکر کنم اینم خوب باشه
البته بی شباهتم به چیزی که آقای خوخان و دیگر دوستان از قبیل امیر و مسی (من فکر می کردم فوتبالیسته :لبخندساده: الان فهمیدم برنامه نویسه) گفتن هم می تونی استفاده کنی و در کل همه ایدن و سلیقه شما مهمه در آخر کار
اگه کاری از نظر خودت ضایع بود بدون ضایع است ولی اگه از نظر خوت قشنگ بود مطمین باش قشنگه(البته همیشه انتقاد به بهتر شدنش کمک می کنه )
و درضمن ض فرم هر چقدر هم ضایع باشه باز خالقش خودتی و صد در صد ارزش داره

hojjatshariffam
شنبه 12 مرداد 1392, 17:12 عصر
اینجوری میتونی یه باتن رو صدا بزنی
button1_Click(sender, e);


ممنون با همون پست دوم جواب گرفتم..بنظرم هم ساده تره هم مفید
این متد نویسی هم یه توضیح میدید..

بنظرم در مورد سئوالت به نتیحه رسیدی ولی روی صحبتم با دوست عزیز amir200h
این نوع صدا زدن باتن برای کلیک شدن و انجام عملیات متد کلیک صحصح نیست چون sender یه آبجکته که ممکنه تو متد استفاده بشه در حالی که اون باید همون باتنی باشه که روش کلیک کردیم.
خیلی از برنامه نویسان از Object و eventHandeler ارسالی استفاده می کنند ، منطقی هم هست چون در فرم هایی که باتن زیادی داره و کارهای مشابه (و یا باتن ها در حین اجرا طبق اطلاعات ورودی ایجاد میشه ) اصولش اینه که فقط یک متد کلیک نوشته بشه و داخل متد سوئیچ انجام بشه
مثل دستورات زیر که که در یکی از پست های زیر یکی لازم داشت ، (در مورد چک باکس بودو sender استفاده شده است)

if (sender is CheckBox)
{
(sender as CheckBox).Checked = true;
}

یه نمونه دریه در این رابطه ببینید

MessageBox.Show(((TextBox)sender).Text, " شده است TextChange متن داخل تکست باکسی که");

به جای اینن می تونید ، از این استفاده کنید

button1.PerformClick();



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


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