У меня есть интерактивная сетка, и мне нужно рассчитать нижний предел, а верхний предел зависит от значений. среднего значения и стандартного отклонения, и это уравнение
low = (mean - sd) * 2
high = (mean + sd) * 2
это пример см. изображение:
Мне нужно, чтобы при нажатии кнопки вычислить нижний предел и верхний предел выполнить расчеты.
У меня есть старая программа C Sharp, и я выполнял цикл и расчет при нажатии кнопки, и это код C Sharp:
private void btnsdi_Click(object sender, EventArgs e)
{
for (int i = 0; i < dgvResult.Rows.Count; i++)
{
if (!String.IsNullOrEmpty(dgvResult.Rows[i].Cells[4].Value.ToString()) && !String.IsNullOrEmpty(dgvResult.Rows[i].Cells[5].Value.ToString()))
{
string mean = dgvResult.Rows[i].Cells[4].Value.ToString();
string sd = dgvResult.Rows[i].Cells[5].Value.ToString();
dgvResult.Rows[i].Cells[6].Value = (Convert.ToDecimal(mean) - (Convert.ToDecimal(sd) * 2));
dgvResult.Rows[i].Cells[7].Value = (+Convert.ToDecimal(mean) +(Convert.ToDecimal(sd) * 2));
}
}
}
Как я могу зациклить и выполнить расчет при нажатии кнопки в интерактивной сетке или могу ли я сделать это для каждой строки при вводе среднего значения, а SD выполняет расчет по строке?
Без тестирования я бы сделал следующее: Создайте динамическое действие по изменению среднего значения: sd, которое рассчитывает минимум, и еще одно, вычисляющее максимум. Установите действие, которое будет срабатывать при загрузке страницы. Это гарантирует, что значение всегда будет актуальным (при загрузке страницы и при изменении), и кнопка не понадобится.
Я решил это, используя динамическое действие, выполнив следующие шаги:
1- Добавьте СТАТИЧЕСКИЙ ID для столбцов MEAN, SD, LOW и HIGH
2- создать динамическое действие по изменению MEAN и SD
3- истинным действием будет «Выполнение кода JavaScript», и это код:
var mean = ($v("T_MEAN") != "")?parseFloat($v("T_MEAN")):0;
var sd = ($v("T_SD") != "")?parseFloat($v("T_SD")):0;
var low = 0;
var high = 0;
if (!isNaN(mean) && !isNaN(sd))
{
low = mean - (sd * 2);
high = mean + (sd *2);
}
$s("T_LOW",low);
$s("T_HIGH",high);
4- этот код будет работать и рассчитывать для каждой строки напрямую, когда среднее значение типа и значение SD будут рассчитывать нижнее и верхнее значение столбца.