|
|
|
Добавление строк в отчете
|
|||
|---|---|---|---|
|
#18+
Дрое время суток! Есть такая проблемка: Имеются три таблицы 1-ая Код Сотрудник .... 2-я Код Должность КоличествоПоШтату ..... 3-я КодСотрудника КодДолжности ..... Ну и связи 1.Код -> 3.КодСотрудника и 2.Код -> 3.КодДолжности Надо построить такой отчет, что бы для каждой записи "Должность" было столько строк в отчете, сколько указано в "КоличествоПо Штату". Пробовал сделать "КоличествоПоШтату" одинаковых записей в 2-ой таблице, но это не проходит в другом месте, так что от этого способа пришлось отказаться..... Люди добрые! ПАМАЖИТЕ кто чем может ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 21:17 |
|
||
|
Добавление строк в отчете
|
|||
|---|---|---|---|
|
#18+
Предлагаю решение очень не элегантное. Все-таки создать все эти размноженные записи в таблице, но не в той, а в какой-нибудь новой. Фу, самому противно, насколько некрасивое решение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 21:22 |
|
||
|
Добавление строк в отчете
|
|||
|---|---|---|---|
|
#18+
Вечер добрый... > это не проходит в другом месте А подробнее, если можно? > Надо построить такой отчет, что бы для каждой записи "Должность" было столько строк в отчете, сколько указано в "КоличествоПо Штату". Т.е. примерно так: 1 - Электрик (3 чел. по шт. расписанию) - Иванов И.И. 2 - Электрик (3 чел. по шт. расписанию) - Петров П.П. 3 - Электрик (3 чел. по шт. расписанию) - 4 - Наладчик (2 чел. по шт. расписанию) - Сидоров С.С. 5 - Наладчик (2 чел. по шт. расписанию) - ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 21:31 |
|
||
|
Добавление строк в отчете
|
|||
|---|---|---|---|
|
#18+
Именно.... А не проходит: В друго месте надо отловить не занятую должность... В том случае если она была использована, но потом освободилась.... Да еще если не на сегодняшнее число.... в общем еще большая заморочка На мой взгляд добавить лишние строчки - просще, но только вот не знаю как с VBA не знаком совершенно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 21:36 |
|
||
|
Добавление строк в отчете
|
|||
|---|---|---|---|
|
#18+
P.S.: Это сильно облегченный макет базы, которая в последствии будет реализована на MySQL или PostgrSQl + С/С++ (для добавления/изменения/удаления) данных и perl или php для просмотра все остальным. По этому реализации отличные от возможностей Access не катят :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 21:46 |
|
||
|
Добавление строк в отчете
|
|||
|---|---|---|---|
|
#18+
> с VBA не знаком совершенно :) И хочешь, чтобы за тебя этот кусок написали? Или решить запросами. А собрать табличку Должность-КолвоПоШтату-Работник (а-ля нарисованная мною) на выбранную дату уже смог? --- Вариант ВС, имхо, может и не самый быстрый будет, но самый универсальный (т.е. работающий при любых размерах поля КоличествоПоШтату). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 21:50 |
|
||
|
Добавление строк в отчете
|
|||
|---|---|---|---|
|
#18+
Да, кстати, для полноты картины, наверное, придется упомянуть еще табличку типа КодСотрудника КодДолжности ДатаЗанятияДолжности ДатаОсвобожденияДолжности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 21:54 |
|
||
|
Добавление строк в отчете
|
|||
|---|---|---|---|
|
#18+
Не! Кусок кода не обязательно.... нужен метод ( или функция/процедура ) позволяющая добавить строки в отчет...... (Справкой пользоваться умею :)) ) BC - весчь! Но в данном случае не подходит, потому как весь (кастрированный) проект готов, за исключением этого отчета... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 21:56 |
|
||
|
Добавление строк в отчете
|
|||
|---|---|---|---|
|
#18+
Для полноты картина.... ДатыОсвобождения в чистом виде нет.... Может быть "перевод на другую должность" или "увольнение" ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 21:57 |
|
||
|
Добавление строк в отчете
|
|||
|---|---|---|---|
|
#18+
Есть другое решение. Более утонченное. А именно: 1. Заводим дополнительную таблицу, в которой число записей заведомо больше, чем максимально возможное КоличествоПоШтату, а поле (по крайней мере необходимое) всего одно, причем числовое, в котором значения от 1 до общего количества записей (пусть это поле называется cou). 2. В источнике записей отчета добавляем эту таблицу безо всяких джойнов. Поле cou сажаем в Detail, можно с параметром Hidden=True. 3. В событии Detail_Format пишем: If Me!cou > Me!КоличествоПоШтату Then Cancel = True ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 22:05 |
|
||
|
Добавление строк в отчете
|
|||
|---|---|---|---|
|
#18+
А-ля ВС (поправьте, если что), используя DAO Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Это примерно. Не проверяя. Можно еще, как вариант, сделать ТаблицаЧисел 1 2 3 4 ... 10000 (ограничиваем максимальное число вакансий по штатному расписанию) Запрос1 select СотрНаДолжн.КодДолжности, СотрНаДолжн.КодСотрудника, (count(СотрНаДолжн.КодДолжности)-1) as ПорНомер from СотрНаДолжн As a left join СотрНаДолжн as b on a.КлючТаблицы < b.КлючТаблицы group by СотрНаДолжн.КодДолжности, СотрНаДолжн.КодСотрудника; Запрос2 select Должн.КодДолжности, Должн.КолвоПоШтату, ТаблицаЧисел.Число from Должн, ТаблицаЧисел; Запрос3 select Запрос2.КодДолжн, Запрос2.Число, Запрос1.КодСотрудника from Запрос2 left join Запрос1 on (Запрос2.КодДолжности=Запрос1.КодДолжности And Запрос2.Число = Запрос1.ПорНомер) where (Запрос2.КолвоПоШтату>=Запрос2.Число Or not isnull(Запрос1.КодСотрудника)) Тоже не проверял. Но в принципе должно работать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 22:38 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32290459&tid=1678914]: |
0ms |
get settings: |
6ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 359ms |

| 0 / 0 |
