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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2014, 13:52   #1
Dmitri446
Пользователь
 
Регистрация: 17.05.2014
Сообщений: 19
По умолчанию Сумма ячеек в столбце stringgrid(Delphi)

Имеется программа

Код:
procedure TForm1.FormCreate(Sender: TObject);

var
f: TextFile;
Fm,S,A,C,D,E,G,H:string;
n:integer;
begin
StringGrid1.Cells[0,0]:='Наименование';
StringGrid1.Cells[1,0]:='Цена';
StringGrid1.Cells[2,0]:='ПН';
StringGrid1.Cells[3,0]:='ВТ';
StringGrid1.Cells[4,0]:='СР';
StringGrid1.Cells[5,0]:='ЧТ';
StringGrid1.Cells[6,0]:='ПТ';
StringGrid1.Cells[7,0]:='СБ';
StringGrid1.Cells[8,0]:='Расход за неделю(м)';
StringGrid1.Cells[9,0]:='Сумм за неделю';
AssignFile(f,'Ткань1.txt');   //загружаю файл в stringrid
Reset(F);
n:=0;
while not(Eof(f)) do
begin
Readln(f,Fm);
Readln(f,S);
Readln(f,A);
Readln(f,C);
Readln(f,D);
Readln(f,E);
Readln(f,G);
Readln(f,H);

with StringGrid1 do
begin
Cells[0,RowCount-1]:=Fm;
Cells[1,RowCount-1]:=S;
Cells[2,RowCount-1]:=A;
Cells[3,RowCount-1]:=C;
Cells[4,RowCount-1]:=D;
Cells[5,RowCount-1]:=E;
Cells[6,RowCount-1]:=G;
Cells[7,RowCount-1]:=H;
RowCount:=RowCount+1;
end;
end;
CloseFile(f);
StringGrid1.RowCount:=StringGrid1.RowCount-1;
end;


procedure TForm1.Button2Click(Sender: TObject);
var
a: array [1..10] of integer;
i,z: integer;
summ: integer;

begin

   for z:=1 to 10 do
    begin
       summ:=0;
   for i:=3 to 8 do  begin
      if Length(StringGrid1.Cells[i-1,z])<>0
      then a[i-1]:=StrToInt (StringGrid1.Cells[i-1,z])
      else a[i-1]:=0;

      summ:=summ+a[i-1];
    end;
         StringGrid1.Cells[8,z]:=intToStr(summ);

  end;
 end;
procedure TForm1.Button1Click(Sender: TObject);
var
a: array [1..10] of integer;
i,z: integer;
summ: integer;
begin

   for z:=3 to 8 do
    begin
       summ:=0;
   for i:=1 to 10 do  begin
      if Length(StringGrid1.Cells[z-1,i])<>0
      then a[z-1]:=StrToInt (StringGrid1.Cells[z-1,i])
      else a[z-1]:=0;

      summ:=summ+a[z-1];
    end;

           StringGrid1.Cells[z-1,11]:=IntToStr(summ);
           end;
           end;
procedure TForm1.Button3Click(Sender: TObject);
var
a: array [1..10] of integer;
i,z: integer;
summ: integer;
sr:integer;
begin

   for z:=1 to 10 do
    begin
       summ:=0;
   for i:=3 to 8 do  begin
      if Length(StringGrid1.Cells[i-1,z])<>0
      then a[i-1]:=StrToInt (StringGrid1.Cells[i-1,z])
      else a[i-1]:=0;

      summ:=summ+a[i-1];
    end;
      sr:=summ*StrToInt(StringGrid1.Cells[1,z]);
           StringGrid1.Cells[9,z]:=intToStr(sr);

  end;
 end;

procedure TForm1.Button4Click(Sender: TObject);
begin


end.
Нужно что бы при нажатии button4 выводилась сумма столбца "сумм. за неделю" в какую-нибудь ячейку

Последний раз редактировалось Dmitri446; 29.05.2014 в 15:21.
Dmitri446 вне форума Ответить с цитированием
Старый 29.05.2014, 14:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
сумма столбца "сумм. за неделю" в какую-нибудь ячейку
Код:
var i,sum:integer;
begin
 with StringGrid do begin
  for i:=1 to RowCount-1 do
   sum:=sum+StrToIntDef(Cells[ColCount-1,i],0);
  Cells[ColCount-1,RowCount-1]:=IntToStr(sum);
 end;
end;
Подходит?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.05.2014, 14:28   #3
Dmitri446
Пользователь
 
Регистрация: 17.05.2014
Сообщений: 19
По умолчанию

нет, нуль выводит, а можно это как то провернуть через те циклы которые я делал?
Dmitri446 вне форума Ответить с цитированием
Старый 29.05.2014, 14:32   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
нуль выводи
Не понятно... У тебя на скрине в последней колонке целые. Может скрин не актуальный? Может ты там вставляешь вещественные?
Цитата:
можно это как то провернуть через те циклы которые я делал?
Можно, но код твой я не понял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.05.2014, 14:34   #5
Dmitri446
Пользователь
 
Регистрация: 17.05.2014
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Не понятно... У тебя на скрине в последней колонке целые. Может скрин не актуальный? Может ты там вставляешь вещественные?

Можно, но код твой я не понял.
вставляю целые, скрин актуальный, могу скинуть саму программу.
можно узнать почему? А то мне это преподу сдавать

Последний раз редактировалось Dmitri446; 29.05.2014 в 14:37.
Dmitri446 вне форума Ответить с цитированием
Старый 29.05.2014, 14:37   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Почему что?
Почему я твой код не понял? - потому что он для меня запутанный оказался.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.05.2014, 14:40   #7
Dmitri446
Пользователь
 
Регистрация: 17.05.2014
Сообщений: 19
По умолчанию

оу, забыл сказать что сами цифры берутся из txt файла
Dmitri446 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Счетчик совпадающих ячеек в столбце ymnuhj Microsoft Office Excel 3 30.03.2012 18:10
Количестов строк и Сумма ячеек в столбце VictorM Microsoft Office Excel 15 17.01.2011 14:11
сумма в столбце listview vba pooli Microsoft Office Excel 5 05.09.2010 18:59