rafailka  |
Отправлено: 28 Мая, 2010 - 11:39:08
|

Full Member

Покинул форум
Сообщений всего: 166
Дата рег-ции: Окт. 2009
Откуда: Moscow, Russia
Репутация: 0

|
Вызов f_cu_date в качестве хранимой процедуры, по-моему, на странице 44 не нужен (тем более, что это приводит к ошибке). Я удалил.
Явным параметром-датой должна быть не дата отчёта, а дата приказа.
Без второй страницы (43) всё работает. Можно удалить.
Итоги отчёта (последние несколько строк) не совсем понял, что собой представляют. Мне кажется, там количество штатных должностей сейчас. А надо количество штатных единиц. Кстати, в текущем виде отчёта получается, что итог по отчёту может отличаться от суммы предшествующих строк (: так не надо.
В шапке отчёта итог (количество штатных единиц) тоже должен вычисляться.
У процедуры P_REP_SHTAT_RASPIS не было параметров. Я их описал в процедуре и организовал их передачу при вызове со страницы.
Breadcrumb Отчёт "Штатное расписание", по-моему, тоже не нужна. Не вижу, где бы она использовалась. Удалю? |
|
|
rafailka  |
Отправлено: 01 Июня, 2010 - 14:17:21
|

Full Member

Покинул форум
Сообщений всего: 166
Дата рег-ции: Окт. 2009
Откуда: Moscow, Russia
Репутация: 0

|
zix пишет:Пункт 3 ---> Исправил!
OK. По коду
CODE:
fguz:=substr(rec.depname,5,length(rec.depname)-4);
1. Поле в таблице имеет тип varchar2(512), переменная fguz объявлена как varchar2(240). Если ввести достаточно длинное название организации, отчёт не сможет быть сформирован. Я сейчас ввёл "длинное" название организации, получил "ORA-06502: PL/SQL: : буфер символьных строк слишком маленький" вместо отчёта. Рекомендую привести тип переменной в соответствие с типом поля таблицы, из которого берётся значение для переменной, либо использовать конструкцию rdep.depname%type, чтобы это соответствие обеспечивалось автоматически, либо выделить память под "невозможно длинную строку", например, varchar2(2000) -- это примерно страница А4 печатного текста.
2. Вырезание первых 4-х символов из названия -- не лучшая идея, если не проверять, что в этих символах написано. Если кто-то решит развернуть аббревиатуру "ФГУЗ", в отчёт попадёт только "ральное государственное учреждение здравоохранения" -- некрасиво. Рекомендую использовать replace. Результат получается более предсказуемый.
zix пишет:"Подпись (label) к полю ввода даты" ---> Исправил на "Дата приказа"!
Хорошо (: |
|
|
|