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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2012, 11:14   #1
city32
Пользователь
 
Регистрация: 14.10.2011
Сообщений: 48
По умолчанию программа тарификация

Здравствуйте уважаемые эксперты. Прошу подсказки в решении проблемы создания программы тарификации. У нас в учреждении есть несколько тарификационных списков: 1. руководитель и заместители, 2.рабочие, 3.служащие,4.1 стоматологическое отделение, 5. второе стомат отделение и так далее.
В итоге должно получится файл который есть в приложении.
С руководителем и заместителями вроде все просто, создал базу в аксесе, со столбцами как в приложении, вывел в dbgrid содержимое таблицы, сделал вычисляемые поля все нормально работает.
с рабочими и служащими картина такая же, вроде особо ничего сложного, а вот уже с другими посложнее. Пример в приложении 2. Думал на каждое отделение сделать по отдельной таблице, но не могу понять как их потом вывести в отчет вообщем, с подсчетом врачей, среднего мед персонала, младшего мед персонала и прочее.
Или может сделать всех сотрудников общим списком а потом выбирать по отделениям тех кто нужен, но тогда не могу понять как вести подсчет итого по тем же врачам и так далее.
Заранее благодарен за советы.
Вложения
Тип файла: zip Тарификация на 01.01.2012г.zip (26.9 Кб, 11 просмотров)
city32 вне форума Ответить с цитированием
Старый 01.04.2012, 17:02   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Упрощенная структура основной таблицы:
FIO ФИО
KodPodrazd код подразделения
KodDolgn код должности
Oklad оклад

Справочные таблицы для наименований подразделений и должностей отдельно сделать и наименования прицепить в запросе

Запрос:
Tip = 1 - инфа по сотрудникам
Tip = 2 - итог промежуточный по коду должности внутри подразделения
Tip = 3 - итог промежуточный по коду подразделения
Tip = 4 - итог Всего
Код:
SELECT 1 AS Tip,FIO,KodPodrazd,KodDolgn,Oklad FROM Tablica1
UNION
SELECT 2 AS Tip,'Всего по должности' AS FIO,KodPodrazd,KodDolgn,SUM(Oklad) AS Oklad FROM Tablica1 GROUP BY KodPodrazd,KodDolgn
UNION
SELECT 3 AS Tip,'Всего по подразделению' AS FIO,KodPodrazd,999 AS KodDolgn,SUM(Oklad) AS Oklad FROM Tablica1 GROUP BY KodPodrazd
UNION
SELECT 4 AS Tip,'Итого по ведомости' AS FIO,999 AS KodPodrazd,999 AS KodDolgn,SUM(Oklad) AS Oklad FROM Tablica1
ORDER BY 3,4,1
В DataSet-е сделать вычисляемые поля, чтобы не отображать коды 999 (в справочниках все коды должны быть меньше) и колонки явно указать. Понятное дело это только упрощенное направление действий
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.04.2012, 12:38   #3
city32
Пользователь
 
Регистрация: 14.10.2011
Сообщений: 48
По умолчанию

спасибо, буду пробовать разобраться хоть на первый взгляд и малость сложновато для меня.
city32 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа с применением записей и программа с применение множеств smert99 Помощь студентам 0 16.06.2011 23:14
Программа открыается если есть другая программа. bookkc Паскаль, Turbo Pascal, PascalABC.NET 12 14.10.2009 20:09
[PASCAL]Программа создания файла, программа обработки файла Виколяшка Фриланс 7 23.09.2009 17:38