21-04-19, 01:07 PM
(21-04-19, 12:55 AM)elgokr كتب :بخصوص السؤال الاول المقصود بها تفعيل وتعطيل كما فى الصورة
![]()
التفعيل يعنى يوجد سطر فارغ دائماً بنهايا اخر سطر يحتوى على بيانات
بخصوص امر البحث اليك امر من اثنين أما عن طريق عمل استعلامومن ثم جلب قيم الاستعلام وارسالها الى الداتا جريد ومن ثم تنفيذ الكود كما تم شرحه بالسابقأو انك تستخدم كود Filter من خلال الكود كالتالىفى حدث TextBox1_TextChanged الخاص بـ TextBox بحيث عند الكتابة يتم تنفيذ الكودأو يمكن ايضاً فى حدث Button1_Click الخاص بالزر لتجنب اى خطاء
تقوم بتنفيذ هذا الكود
كود :
DataView getFilter = new DataView(dt);
getFilter.RowFilter = "name = '" + textBox1.Text + "'";
dataGridView1.DataSource = getFilter;
حيث ان DT هو DataTable اللى تم ارسالها للداتا جريد مسبقاً
واذا كنت تستخدم DS والمقصود DataSet فقط استبدل dt بـ
كود :
ds.Tables("nametable")
الان فى السطر الثانى تجد كلمة Name فقط استبدل هذه الكلمة
باسم العمود المطلوب البحث به عن الاسم طبعاً يمكنك جعل الكود بهذا الشكل
كود :
getFilter.RowFilter = "name Like '%" + textBox1.Text + "%'";
وبكده انت قمت بعمل البحث / فلتر على البيانات عن الاسم المطلوب
بخصوص السؤال الثالث وانه يجمع الكل ما عدا السطر الاخيرفقط لكونك تستخدم الكود الاخير والذى يحتوى على -1وبما ان فى الصورة موضح انك معطل الاضافة اليدوية كما تم الشرح فى السؤال الاول
فكل ما عليك ان تقوم بحذف هذا الجزء بالكود وهو -1 ليصبح الكود بهذا الشكل
كود :
Int32 H = 0;
Int32 M = 0;
Int32 S = 0;
for (int ii = 0; ii < dataGridView1.RowCount; ii++)
{
TimeSpan ts = TimeSpan.Parse(dataGridView1.Rows[ii].Cells[0].Value.ToString());
H += Convert.ToInt32(ts.Hours);
M += Convert.ToInt32(ts.Minutes);
S += Convert.ToInt32(ts.Seconds);
}
textBox1.Text = H.ToString("00") + ":" + M.ToString("00") + ":" + S.ToString("00");
أو يمكنك ان تكتفى باستخدام هذا الكود
كود :
Int32 H = 0;
Int32 M = 0;
Int32 S = 0;
foreach (DataGridViewRow GetTotal in dataGridView1.Rows)
{
if (GetTotal.Cells[0].Value != null)
{
TimeSpan ts = TimeSpan.Parse(GetTotal.Cells[0].Value.ToString());
H += Convert.ToInt32(ts.Hours);
M += Convert.ToInt32(ts.Minutes);
S += Convert.ToInt32(ts.Seconds);
}
}
textBox1.Text = H.ToString("00") + ":" + M.ToString("00") + ":" + S.ToString("00");
كده تم الانتهاء الاجابة على 3 اسئلة الخاصة بك
واتمنى ان تكون الصورة كاملة معك وان يكون الشرح بسيط
تحياتى لكوتمنياتى لك التوفيق
ماشاء الله على الشرح الاكثر من رائع
الف مليون تحيه وتقدير ليك
شرحك اكثر من مليون رائع
كنت عايز اسالك على حاجه اخيره
هل ينفع اعمل بحث بين تاريخين وفي نفس الوقت اعمل بحث بالاسم زى ما انا عامل فى البرنامج ...
يعني مثلا اقولة هاتلى من 1/4/2019 حتى 31/4/2019 وبعدين اعمل فلتر على الاسم اللى انا عاوزه يظهر ما بين التاريخين دول ؟!
مره تانى الف مليون شكر ليك
