![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 22.11.2006
Сообщений: 3
|
![]()
Всем привет.
Господа, такая задачка: Есть StringGrid и размечен он следующим образом 1 2 3 4 5 6 7 8 9 и т.д. Иванов 8 8 8 8 8 0 0 8 8 и т.д. Петров 8 8 8 8 8 0 0 8 8 и т.д. Сидоров 8 8 8 8 8 0 0 8 8 и т.д. Иванова 7,2 7,2 7,2 7,2 7,2 0 0 7,2 7,2 и т.д. т.е. фактически и вид у него как у табеля рабочего времени, исходя из этого с 1 по 5 рабочая неделя, 6 и 7 - выходные (они равны нулю) и т.д. изначально количество работников не известно, но известно количество рабочих дней (к примеру табель состовляется заранее и выходные отмечаются) Вопрос, как правельно и безгеморойно организовать: 1. Суммирование каждой строки отдельно (т.е. подсчитать реальные количество часов работника) 2. Суммирование всех строк вместе (т.е. подсчитать сколько часов работал весь участок или служба ) буду очень признателен в ответе на данный вопрос З.Ы. обращаю внимание что Работницы имеют не 8 часовой рабочий день а 7,2 ! Не целочисленный тип получается! ![]() Более наглядно табель видно тут - http://www.forum.ishodniki.ru/index.php?topic=8515.0 Последний раз редактировалось Deicider; 22.11.2006 в 05:45. |
![]() |
![]() |
![]() |
#2 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
![]()
1. Проблем нет. Первый столбик - пропускается, вторая и последующие суммируются, за исключением последнего - он показывает общие часы.
Var i,n: integer; S: Real; begin S:=0; For i:=1 to StringGrid1.ColCount-2 do if i=StringGrid1.ColCount-2 then begin StringGrid1.Cells[i+1,n]:=FloatToStr(S); S:=0; end else S:=S+StrtoFloat(StringGrid1.Cells[i,n]); end; 2. Это тоже не составит проблемы - var i,n: integer; S,c:Real; begin c:=0; S:=0; for n :=1 to StringGrid1.RowCount-1 do For i:=1 to StringGrid1.ColCount-2 do if i=StringGrid1.ColCount-1 then begin StringGrid1.Cells[i,n]:=Floattostr(S); c:=c+S; S:=0; end else S:=S+StrtoFloat(StringGrid1.Cells[i,n]); end; 3. StrToFloat, FloatToStr - команды преобразования строки в вещественный тип и наоборот соответственно.
Познавая других, мы познаем себя.
С'est la vie... |
![]() |
![]() |
![]() |
#3 |
Регистрация: 22.11.2006
Сообщений: 3
|
![]()
SuperVisor - большое тебе человеческое спасибо - просто на работе мастера загрузили лишней мукулатурой - пытаюсь оптимизировать все до последней возможной капли.
Слушай есть еще такой вопрос - хотя он простой - как произвести поиск в непроиндексированной таблице (DBaseIV)? Сама задача состоит следующим образом - берется общая таблица с материалом, методом копирования в таблицу типа temp1 выбирается из нее определенные поля с материалом и его количеством. Далее на отдельно заполняемую смету я выбираю уже из таблицы temp1 в другую таблицу (к примеру temp2) материал в определенном количестве. Что требуется - нужно из temp1 по выбранному пункту отнять количество материла выбираемое для temp2 и при этом отобразить сколько осталось в temp1 (соотвественно тип поля с количеством float). Это не сложно, но у меня не получается установить правельно курсос на выбираемое поле что бы сделать вычисление и сохранение. |
![]() |
![]() |
![]() |
#4 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
![]()
Если еще не разобрался, советую открыть тему в разделе "БД в Delphi" - этот вопрос может заинтересовать многих пользователей форума.
Познавая других, мы познаем себя.
С'est la vie... |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
написать на Delphi прогу типа "Автоинспектор" | Vexis | Помощь студентам | 20 | 29.12.2008 17:24 |
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует | skobets | Общие вопросы C/C++ | 2 | 03.06.2008 06:51 |
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) | Dorvir | Microsoft Office Excel | 2 | 28.03.2008 10:03 |
разница "sting.h" и <string> | Ceprey | Общие вопросы C/C++ | 3 | 27.03.2008 22:13 |
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" | MAcK | Компоненты Delphi | 11 | 24.10.2007 10:49 |