sy-uname написал(а):
Meshok написал(а):
...
Пасибо. Я так уже делал. Получается что этот отчет будет работать только для одного манданта =(
Отчёт полюбому будет работать в одном манданте, т.к. данные манданто-зависимы. Нет ничего криминального если пользователь вручную задаст корень или id будет зашито в варианте. Или сами реализуйте поиск всех вершин деревьев.
Пасиб.
Появился еще вопрос:А если надо вывести не только занимаемые штатные должности но и вакантные (т.е. поля табельный номер и имя будут пустыми)
Я начал так бороться с этой проблемой:
Объявил переменную - vspo type i, которую впоследствии использовал как флаг. Я присваивал ей значение 1, если прога заходила в условие IF objec-otype = 'S'.
А потом если не имелось лица для этой штатной должности я проверял переменную vspo и если он был равен 1 апенндил таблицу.
Но получилась неувязка: если имеется лицо, которое занимает штат. должность, то в таблицу добавляются 2 строки: одна только с инфой про орг.<я не знать русский языка> и про штат. должность, а другая с тем же самым но еще и с именем и фамилией.Т.е. моя хитрость) до конца не сработала.
Помогите плз, голову сломал как от этого избавиться...
А вот на всякий случай код:
Code:
GET OBJEC.
IF objec-otype = 'O'.
LOOP AT p1000 where begda LE pc-endda
AND endda GE pc-begda.
spec_tabl-SHORT = objec-short.
spec_tabl-STEXT = objec-stext.
ENDLOOP.
ENDIF.
IF objec-otype = 'S'.
vspo = 1.
LOOP AT p1000 where begda LE pc-endda
AND endda GE pc-begda.
spec_tabl-CP1_SHORT = objec-short.
spec_tabl-CP1_STEXT = objec-stext.
ENDLOOP.
ENDIF.
IF objec-otype = 'P'.
PROVIDE pernr FROM p0001
vorna nachn nach2 FROM p0002
BETWEEN pc-begda and pc-endda.
CONCATENATE p0002-vorna p0002-nachn p0002-nach2 INTO name
SEPARATED BY SPACE.
spec_tabl-pernr = p0001-pernr.
spec_tabl-cname = name.
ENDPROVIDE.
append spec_tabl.
clear spec_tabl-pernr.
clear spec_tabl-cname.
else.
if vspo eq 1.
append spec_tabl.
clear vspo.
endif.
ENDIF.
END-OF-SELECTION.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'zspec_str2'
TABLES
T_OUTTAB = spec_tabl[]