Member 12245539 Ответов: 1

Как корректировать значения в элементе управления datagridview в Windows с#


У меня есть один DataGridView, и он содержит пять столбцов, то есть Name | Apr | May | Jun | July.
Практическое руководство представляет ценности как

Name  |Apr | May | Jun | July 
Fee1  |100 | 100 | 100 | 100
Fee2  |500 | 500 | 500 | 500
Fee3  |700 | 700 | 700 | 700


примечание: эти значения берутся из таблицы sql

Теперь мой вопрос заключается в том, что если я заполню Rs. 600 в текстовом поле и нажму на кнопку, то я хочу представить свой DataGridView следующим образом


Name  |Apr | May| Jun| July 
Fee1  |100 |  0 |  0 |  0
Fee2  |500 |  0 |  0 |  0
Fee3  |  0 |  0 |  0 |  0



если я заполню Rs. 1500 в текстовом поле и нажму на кнопку, то я хочу представить свой DataGridView следующим образом

Name  |Apr | May| Jun| July 
Fee1  |100 |100 |  0 |  0
Fee2  |500 |100 |  0 |  0
Fee3  |700 |  0 |  0 |  0


точно так же для всех столбцов я хочу, чтобы plz действительно помог...........

Karthik_Mahalingam

имеет ли gridview всегда только 3 строки?

Member 12245539

Нет он будет увеличиваться в соответствии с требованиями

Karthik_Mahalingam

ладно.

Karthik_Mahalingam

несколько фиксированных столбцов?

Member 12245539

да

Karthik_Mahalingam

проверьте мое решение.

Member 12245539

Он прекрасно работает, и извините, что я так поздно вам это сказал. Перед именем e. i NameId доступен еще один столбец, а NameId скрыт. Без столбца NameId он работает отлично, но если я добавлю столбец nameId, то получу ошибку


"Входная строка не была в правильном perfomat"

Кроме того, если сумма всех столбцов равна 10000 и я ввожу 10100 в текстовое поле, то он должен показать сообщение (Plz chech your entry).

Member 12245539

Я получил за игнорирование имени столбца
Я могу это сделать

"для (int i = 2; i < Dgv.Columns.Граф; i++)"

вместо

для (int i = 1; i < Dgv.Columns.Граф; i++)

Но сообщение мне нужно... для увеличения суммы......

Karthik_Mahalingam

для (int i = 1; i < Dgv.Columns.Граф; i++
это сделает свою работу.

какое послание?

Member 12245539

Если сумма всех столбцов равна 10000 и я ввожу 10100 в текстовое поле, то он должен показать сообщение (Plz chech your entry).

Karthik_Mahalingam

попробовать это

int amount = конвертировать.ToInt32(textbox1 элемент.Текст.Отделка());
для (int i = 2; i < Dgv.Columns.Граф; i++)
{
по каждому элементу (ячейки datagridviewrow строку в dgv.Строк)
{
int value = Convert.ToInt32(row. Cells[i]. Value);
если (сумма >= значение)
сумма = сумма-значение;
иначе если (сумма = = 0)
ряд.Ячейки[i]. значение = сумма;
ещё
{
ряд.Ячейки[i]. значение = сумма;
сумма = 0;
}
}
}
если (сумма > 0)
{
Ящик для сообщений.Показать ("пожалуйста, проверьте сумму");
}

Member 12245539

Большое спасибо!!!!!!

Karthik_Mahalingam

Добро пожаловать

Member 12245539

Мистер Картика, пожалуйста, помогите плз!!!!!!!
Ссылка находится ниже.

http://www.codeproject.com/Questions/1121112/How-to-sum-datagridview-column-in-last-column-thro

Karthik_Mahalingam

Привет сегодня я немного занят, разберусь с этим позже вечером.

Member 12245539

ХОРОШО СПАСИБО

Karthik_Mahalingam

кажется, вопрос решен.

Member 12245539

Нет, сэр, я все еще жду.......

Karthik_Mahalingam

я не получаю полной бизнес-логики.

Member 12245539

Это элемент управления DataGridView. Значения берутся из таблицы sql.
S_Id | Apr | May | Jun / Fine / Total
1001 | 100 | 100 | 100 | 0 | 0
1002 | 0 | 200 | 200 | 0 | 0
1003 | 300 | 200 | 200 | 0 | 0

Кроме того,
Есть три галочки также доступен на правую сторону datagridview в название Apr_CheckBox, May_CheckBox &амп; Jun_CheckBox.

Теперь мой вопрос, если я нажму на Apr_CheckBox, то значение столбца DataGridView Apr должно отображаться в последнем столбце, т. е. общее количество всех строк, таких как

S_Id | Apr | May | Jun / Fine / Total
1001 | 100 | 100 | 100 | 0 | 100
1002 | 0 | 200 | 200 | 0 | 0
1003 | 300 | 200 | 200 | 0 | 100

кроме того.
Одна формула должна быть там для тонкой колонки. Если дата ПК(системы) - 20.04.2016, то он должен посчитать дни с 15.04.2016 по 20.04.2016 и умножить на 5. После умножения он должен показать значения умножения в тонком столбце. любить

Предположим, что между 16.04.2016 и 20.04.2016 днями будет 5.

S_Id | Apr | May | Jun / Fine / Total
1001 | 100 | 100 | 100 | 25 | 100
1002 | 200 | 200 | 200 | 0 | 100
1003 | 300 | 200 | 200 | 25 | 100

аналогично для еще двух колонок май и июнь.

Возможно, это и понятно.......

Сэр плз смотрите.......

Karthik_Mahalingam

я понял сначала requiremnt
второй-это нормально с 15-го числа месяца ?

Karthik_Mahalingam

у вас есть team viewer?

Member 12245539

- Да, видел........

Karthik_Mahalingam

приходите в интернет после 7 вечера по восточному времени

Member 12245539

ОК

Karthik_Mahalingam

вы из Индии

Member 12245539

Да
Индия
Нью-Дели

Karthik_Mahalingam

Хорошо... хорошо

Member 12245539

Босс, я вернулся........

Karthik_Mahalingam

сэр, только что добрался до дома, пингуйте меня, если онлайн

Member 12245539

ладно Должен ли я сообщить удостоверение личности и пропуск??

Karthik_Mahalingam

да

Member 12245539

185 888 701

2330

Karthik_Mahalingam

неверный пароль

Member 12245539

6618

Karthik_Mahalingam

ладно

Member 12245539

Сэр, это сделано???

Karthik_Mahalingam

- нет, сэр, я в него не заглядывал.
в тот день коннектоин отключился. coundnt см.

Member 12245539

- Хорошо, Сэр...
В соответствии с вашей рекомендацией я это сделал. И сумма всех строк работает.Но прекрасная схема должна быть реализована...

Karthik_Mahalingam

возьмите ручку и бумагу, нарисуйте блок-схему и преобразуйте ее в алгоритм, а затем Закодируйте.
даже я собираюсь сделать то же самое, какой бы ни была ваша логика

Member 12245539

ОКЗ....
Спасибо......

Karthik_Mahalingam

хмм

Member 12245539

Нет он будет увеличиваться в соответствии с требованиями

Richard MacCutchan

Вам нужно написать обработчик событий для нажатия кнопки, чтобы изменить значения в соответствии с вашими требованиями. В чем проблема?

Maciej Los

Не ясно! Пожалуйста, будьте более конкретны и предоставьте более подробную информацию о ваших требованиях. Мы не можем читать в твоих мыслях и не видим твоего экрана.

1 Ответов

Рейтинг:
6

Karthik_Mahalingam

Попробовать это

private void button1_Click(object sender, EventArgs e)
       {
           int amount = Convert.ToInt32(textBox1.Text.Trim());
           for (int i = 1; i < dgv.Columns.Count; i++)
           {
               foreach (DataGridViewRow row in dgv.Rows)
               {
                   int value = Convert.ToInt32(row.Cells[i].Value);
                   if (amount >= value)
                       amount = amount - value;
                   else if (amount == 0)
                       row.Cells[i].Value = amount;
                   else
                   {
                       row.Cells[i].Value = amount;
                       amount = 0;
                   }
               }
           }
       }


       private void Form3_Load(object sender, EventArgs e)
       {
           DataTable dt = new DataTable();
           dt.Columns.Add("Name");
           dt.Columns.Add("Apr");
           dt.Columns.Add("May");
           dt.Columns.Add("Jun");
           dt.Columns.Add("July");
           dt.Rows.Add("Fee1", 100, 100, 100, 100);
           dt.Rows.Add("Fee2", 500, 500, 500, 500);
           dt.Rows.Add("Fee3", 700, 700, 700, 700);
           dgv.DataSource = dt;
           dgv.AllowUserToAddRows = false;
       }