PDA

View Full Version : ساخت کنترل براساس رکوردهای جدول



Salah Sanjabian
دوشنبه 05 مهر 1389, 12:21 عصر
سلام خدمت همه دوستان.

یه چندروزی هست مشغول نوشتن برنامه مدیریت فروش یه خدمات کامپیوتری هستم ،حالا به مشکل برخوردم و اونم اینه که این خدمات کامپیوتری یه سری کارها رو مانند تایپ،اسکن،رایت CD و...............
من برا این خدمات یه جدول در نظر گرفتم که مدیر میتونه نوع کارروتعریف کنه مثلا

کدسرویس نام سرویس قیمت
1 تایپ 200
2 رایت سی دی 500

حالا براساس این رکوردها من CheckBox و TextBox (برا تعداد) میسازم .
یعنی برنامه یه روز میتونه 3 تا CheckBox داشته باشه و روز بعد مثلا 5 تا.
و هر مشتری که هر کدوم از این خدمات رو بخواد ChechBoxs مربوط به اون تیک خواهد خورد و بعد محاسبه قیمت براساس تعداد .
به تظرتون این روش درستیه؟



void InitialControl()
{
da = newSqlDataAdapter("select * from tblservicecustomer order by ServiceCode asc", con);
dt = newDataTable();
da.Fill(dt);

for (int i = 1; i <= dt.Rows.Count; i++)
{
CreateCheckBox(i);

CreatetxtCount(i);
}
}



void CreateCheckBox(int Counter)
{
Point P;
if (Counter <=10)
P = newPoint(750, 420 + (Counter * 25));
else
P = newPoint(200, 420 + ((Counter-(Counter / 10*10)) * 25));
CheckBox CheckBox = newCheckBox();
CheckBox .Size = newSize(250, 25);
CheckBox.Name = "CheckServices"+Counter.ToString() ;
CheckBox.Location = P;
CheckBox.Text = dt.Rows[Counter - 1][1].ToString();
CheckBox.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
this.Controls.Add(CheckBox);

}


void CreatetxtCount(int Counter)
{
Point P;
if (Counter <= 10)
P = newPoint(530, 422 + (Counter * 25));
else
P = newPoint(5, 422 + ((Counter - (Counter / 10 * 10)) * 25));
TextBox txtCount=newTextBox();
txtCount.Size=newSize(45,20);
txtCount.Name = "txtCount" + Counter.ToString();
txtCount.MaxLength = 5;
txtCount.Location=P;
this.Controls.Add(txtCount);

}

Reza_Yarahmadi
دوشنبه 05 مهر 1389, 13:48 عصر
اگر نياز داريد ابزارها بصورت پويا ساخته بشه بهتر اينه كه يه يوزر كنترل بسازيد ، توي اون تمام ابزارهاي مورد نياز رو قرار بديد و توي برنامه به تعداد مورد نياز از اين يوزر كنترل استفاده كنيد
شايد بنا به احتياج لازم شد به ازا هر فعاليت چندتا ابزار ديگه هم اضافه كنيد آيا ميخوايد واسه هر كدوم از اونها يه متد تعريف كنيد و ... ويا شايد بعدا نياز شد چند ابزار رو زير هم قرار بديد اونموقع واسه مديريت كردن مكان ابزارها به مشكل ميخوريد و مجبوريد همه متدها رو دستكاري كنيد.
البته اينم بگم كه روشهاي ديگه اي هم براي پشتيباني از تعريف فعاليت توسط كاربر وجود داره. مثلا اينكه فعاليت ها توي يه لست باكس يا كمبو باكس ريخته بشه و كاربر بعد از انتخاب نوع فعاليت و... روي دكمه ثبت كليك كنه. (انتخاب روش به شما و نيازهاي برنامه مربوط ميشه)

Salah Sanjabian
دوشنبه 05 مهر 1389, 14:26 عصر
اگر نياز داريد ابزارها بصورت پويا ساخته بشه بهتر اينه كه يه يوزر كنترل بسازيد ، توي اون تمام ابزارهاي مورد نياز رو قرار بديد و توي برنامه به تعداد مورد نياز از اين يوزر كنترل استفاده كنيد

البته اينم بگم كه روشهاي ديگه اي هم براي پشتيباني از تعريف فعاليت توسط كاربر وجود داره. مثلا اينكه فعاليت ها توي يه لست باكس يا كمبو باكس ريخته بشه و كاربر بعد از انتخاب نوع فعاليت و... روي دكمه ثبت كليك كنه. (انتخاب روش به شما و نيازهاي برنامه مربوط ميشه)
فکر استفاده از User Control هم مثله روش خودم باشه ، چون بالاخره اطلاعات از یه جدول خونده میشه.

استفاده از ComboBox هم شاید صحیح نباشه چون یه مشتری میتونه چند تا کاربخواد(رایت و پرینت و ........)

بهتره از DataGrid استفاده کنم چون هم اطلاعات رو از جدول میشه بهش بایند کرد و هم دوستون (یکی از نوع CheckBoc(برا تیک خوردن کار مشتری) و دیگری از نوع TextBox(برا تعداد))از اول بهش اضافه کرد و براساس رکوردها تغییر کنه

نظرتون چیه؟