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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 22.11.2006, 06:40   #1
Deicider
 
Регистрация: 22.11.2006
Сообщений: 3
Репутация: 10
По умолчанию Работа с 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 в 06:45.
Deicider вне форума   Ответить с цитированием
Старый 22.11.2006, 14:49   #2
SuperVisor
Павел Сергеевич
Участник клуба
 
Регистрация: 05.11.2006
Адрес: г.Тюмень
Сообщений: 665
Репутация: 328

icq: 235938687 Отправить сообщение для SuperVisor с помощью AIM
Восклицание

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, 15:14   #3
Deicider
 
Регистрация: 22.11.2006
Сообщений: 3
Репутация: 10
По умолчанию

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

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

icq: 235938687 Отправить сообщение для SuperVisor с помощью AIM
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать на Delphi прогу типа "Автоинспектор" Vexis Помощь студентам 20 29.12.2008 18:24
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 11:03
разница "sting.h" и <string> Ceprey Общие вопросы C/C++ 3 27.03.2008 23:13
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49


13:29.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.