Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2013, 09:04   #1
fcdk_pavel
 
Регистрация: 13.09.2013
Сообщений: 8
По умолчанию код считающий сумму по столбцам в одном StringGrid и записывающий в другой

есть код считающий сумму по столбцам в одном StringGrid и записывающий в другой
Код:
//Подсчёт сумм по столбцам в таблице Sg1 и запись результатов в таблицу Sg2.
  for j := Sg1.FixedCols to Sg1.ColCount - 1 do begin
    Sum := 0;
    {Подсчёт суммы по j-му столбцу.
    Если в ячейке записан текст, не являющийся представлением числа,
    то такое значение будет принято равным 0 (нулю).}
    for i := Sg1.FixedRows+1 to Sg1.RowCount - 1 do
      Sum := Sum + StrToFloatDef(Sg1.Cells[j, i], 0);
    //Запись подсчитанной суммы в Sg2.
    Sg2.Cells[j, Sg2.FixedRows] := FloatToStr(Sum);
  end;
как изменить код чтобы если в каком то столбце было значение с "-"(ячейка Е8[-4213] и т.д.) он его обнулял? например в отмеченных на скрине столбцах есть значения с "-". надо чтобы если число отрицательное его принимать как 0, и уже суммировать значение с таким учетом.
помогите пожалуйста!!
Изображения
Тип файла: jpg untitled.jpg (121.6 Кб, 119 просмотров)
fcdk_pavel вне форума Ответить с цитированием
Старый 11.10.2013, 11:04   #2
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию

так и напиши как говоришь.
вот ты считаешь
Код:
    for i := Sg1.FixedRows+1 to Sg1.RowCount - 1 do
      Sum := Sum + StrToFloatDef(Sg1.Cells[j, i], 0);
добавь переменную и разверни цикл и сделай проверку.
Код:
 for i := Sg1.FixedRows+1 to Sg1.RowCount - 1 do
    begin //temp_ch:double; или такой же тип как у Sum
      temp_ch:=StrToFloatDef(Sg1.Cells[j, i], 0);//запомнили число ячейки
      if temp_ch<=0 then temp_ch:=0; //проверка на отрицательное
      Sum := Sum +temp_ch; //добавили изменённое
    end;
в дельфи не проверял, но вроде правильно должно работать.
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
IliaIT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти сумму по столбцам и определить максимум. Fri Помощь студентам 4 10.10.2011 16:58
Найти сумму элементов матрицы по столбцам и строкам.На паскале Дмитричок Помощь студентам 14 02.04.2011 15:34
Как в MS Excel посчитать сумму значений по столбцам, входящих в именованную ячейку? sahthey Microsoft Office Excel 3 20.05.2010 11:32
двумерный массив, нати макс.сумму по столбцам mau6 Помощь студентам 5 04.06.2008 21:14