Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 22.11.2006, 05:40   #1
Deicider
 
Регистрация: 22.11.2006
Сообщений: 3
По умолчанию Работа с String Grid - помогите написать "Табель рабочего времени"

Всем привет.
Господа, такая задачка:
Есть 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.
Deicider вне форума Ответить с цитированием
Старый 22.11.2006, 13:49   #2
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 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...
SuperVisor вне форума Ответить с цитированием
Старый 22.11.2006, 14:14   #3
Deicider
 
Регистрация: 22.11.2006
Сообщений: 3
По умолчанию

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

Слушай есть еще такой вопрос - хотя он простой - как произвести поиск в непроиндексированной таблице (DBaseIV)?
Сама задача состоит следующим образом - берется общая таблица с материалом, методом копирования в таблицу типа temp1 выбирается из нее определенные поля с материалом и его количеством. Далее на отдельно заполняемую смету я выбираю уже из таблицы temp1 в другую таблицу (к примеру temp2) материал в определенном количестве. Что требуется - нужно из temp1 по выбранному пункту отнять количество материла выбираемое для temp2 и при этом отобразить сколько осталось в temp1 (соотвественно тип поля с количеством float). Это не сложно, но у меня не получается установить правельно курсос на выбираемое поле что бы сделать вычисление и сохранение.
Deicider вне форума Ответить с цитированием
Старый 29.11.2006, 20:59   #4
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Если еще не разобрался, советую открыть тему в разделе "БД в Delphi" - этот вопрос может заинтересовать многих пользователей форума.
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать на Delphi прогу типа "Автоинспектор" Vexis Помощь студентам 20 29.12.2008 17:24
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 05: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 09:49


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840