ارسال اطلاعات به چاپ با چک باکس dataGridView به صورت تفکیک شده

بپرسید
  • barman.ar16 barman.ar16
  • 66 ماه قبل
  • 66 ماه قبل
  • 174 نمایش

0

{{ digitTrunc(content.likes) }}

سلام دوستان

من توی برنامه سی شارپی ام از گریدویو تلریک استفاده می کنم و برای چاپ هم از استیمول سافت

یک جدول دارم با این وضعیت :

سلام دوستان
من توی برنامه سی شارپی ام از گریدویو تلریک استفاده می کنم و برای چاپ هم از استیمول سافت

یک جدول دارم با این وضعیت :
||https://tosinso.com/files/get/8cd5e259-5b5b-4679-92e1-b387f94838db||
خب همانطور که مشخصه بعضی از کد ملی ها تکراری هستند
من در واقع میخوام برای هر فرد یک کاغذ A5 به عنوان کاربرگ غیبت فردی چاپ بگیرم
این روش رو انجام دادم و مشکلی نیست
1- ابتدا میام به صورت group by بر اساس کد ملی اطلاعات رو توی یک دیتاگریدویو نمایش میدم
2- وقتی کاربر روی یک ردیف دوبار کلیک می کنه اون کد ملی رو میگیرم و یک بار دیگه یک دیتاتیبل میسازم و اطلاعات رو از جدول میخونم این بار بدون group by و با شرط کد ملی = ؟؟؟ که کد ملی رو از سلول اول میگیرم
3- اطلاعات دیتاتیبل رو میفرستم برای استیمول و تمام

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

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

در ضمن اینطوری خواستم دیتاتیبل بسازم اما نشد :
<c#>
for (var i = 0; i < rgv.RowCount; i++)
{
    if (!Convert.ToBoolean(rgv.Rows[i].Cells[0].Value)) continue;
    SQLiteConnection con = new SQLiteConnection(con);
    SQLiteCommand cmd = new SQLiteCommand(SELECT * FROM student where melli like ' + rgv.ChildRows[i].Cells[melli].Value + ', con);
    SQLiteDataAdapter ad = new SQLiteDataAdapter(cmd);
    DataSet ds = new DataSet();
    ad.Fill(ds, student);
}
<c#>
وقتی چند مورد را تیک میزنم فقط کد ملی آخری که تیک خورده گرفته میشه و دیتاتیبل بر اساس اون ساخته میشه (برای تست دیتاتیبل رو ریختم داخل یک دیتاگریدویو دیگه دیدم این شکلیه) 
ممنون

خب همانطور که مشخصه بعضی از کد ملی ها تکراری هستند

من در واقع میخوام برای هر فرد یک کاغذ A5 به عنوان کاربرگ غیبت فردی چاپ بگیرم

این روش رو انجام دادم و مشکلی نیست

1- ابتدا میام به صورت group by بر اساس کد ملی اطلاعات رو توی یک دیتاگریدویو نمایش میدم

2- وقتی کاربر روی یک ردیف دوبار کلیک می کنه اون کد ملی رو میگیرم و یک بار دیگه یک دیتاتیبل میسازم و اطلاعات رو از جدول میخونم این بار بدون group by و با شرط کد ملی = ؟؟؟ که کد ملی رو از سلول اول میگیرم

3- اطلاعات دیتاتیبل رو میفرستم برای استیمول و تمام

تا اینجا کار مشکلی نیست

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

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

ممنون میشم اگر راهی به ذهن تون میرسه کمک کنید

در ضمن اینطوری خواستم دیتاتیبل بسازم اما نشد :

for (var i = 0; i < rgv.RowCount; i++)
{
    if (!Convert.ToBoolean(rgv.Rows[i].Cells[0].Value)) continue;
    SQLiteConnection con = new SQLiteConnection(con);
    SQLiteCommand cmd = new SQLiteCommand("SELECT * FROM student where melli like '" + rgv.ChildRows[i].Cells["melli"].Value + "'", con);
    SQLiteDataAdapter ad = new SQLiteDataAdapter(cmd);
    DataSet ds = new DataSet();
    ad.Fill(ds, "student");
}

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

ممنون

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

پاسخ ها به این سوال

پاسخ ها به این سوال

{{ digitTrunc(post.likes) }}

این پست در تاریخ {{ dateString(new Date(post.deleteDate)) }} توسط {{ post.deletedByUser }} حذف شده است.

دلیل حذف: {{ post.deleteReason ?? 'نامشخص' }}

{{ err }}
{{ post.userAchivements.rhodiumAchievements }}
{{ post.userAchivements.platinumAchievements }}
{{ post.userAchivements.goldAchievements }}
{{ post.userAchivements.silverAchievements }}
{{ post.userAchivements.bronzeAchievements }}
{{ timeSince(new Date(post.date)) }} قبل

برای ثبت پاسخ خود در وب سایت وارد حساب کاربری خود شوید
قابلیت ارسال مطلب توسط مدیریت سایت غیر فعال شده است