Хочется мне все-таки понять, помогите уже второй день голова

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
smv
Посетитель
Сообщения: 30
Зарегистрирован: 29 мар 2005, 17:49
Откуда: мск

Хочется мне все-таки понять, помогите уже второй день голова

Сообщение smv »

работаю с датами
есть две проблемы:
1. Выбираются ненужные месяца из 15 отпусков 3-4 непонятно почему (то ли оформлены отпуска задним числом, то ли еще что-то)из других месяцев
2. нужна выборка по человеку немогу найти как ее в пик засунуть - просто не знаю как.
вот что есть

select * from persons, katpodr, vacations
where ((
1 == vacations.status (noindex)
and D_B <<= vacations.docdate (noindex)
and D_E >>= vacations.docdate (noindex)
and vacations.person /== persons.nrec
and persons.GALDEP /== katpodr.nrec
and vacations.vactype /== klotpusk.nrec
))
order by vacations.docdate;
.begin
RUNDIALOG('GETINTERVAL',D_B,D_E);
// runinterfece (GetPersn)
end.

.fields
vacations.FOUNDATION
vacations.DOCDATE
klotpusk.notpus
persons.fio
katpodr.name
IF (D_B <= vacations.FACTYEARBEG, IF (D_E >= vacations.FACTYEAREND, vacations.DURATION, ((To_Days (D_E)-To_Days (vacations.FACTYEARBEG))+1)), ((To_Days (vacations.FACTYEAREND)-To_Days (D_B))+1))
IF (D_B <= vacations.FACTYEARBEG, IF (D_B >= vacations.FACTYEARBEG, D_B, vacations.FACTYEARBEG), D_B)

IF (D_E >= vacations.FACTYEAREND, IF (D_E <= vacations.FACTYEAREND, D_E, vacations.FACTYEAREND), D_E)
vacations.FACTYEARBEG
vacations.FACTYEAREND
.endfields
изучаю черные дыры... почему только мне)
Optimist
Постоянный обитатель
Сообщения: 104
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Moscow
Контактная информация:

Re: Хочется мне все-таки понять, помогите уже второй день го

Сообщение Optimist »

На вскидку могу сказать, что я не стал бы дату ставить в подвязках...
Так пробовал?

select * from persons, katpodr, vacations
where ((
1 == vacations.status (noindex)
and vacations.person /== persons.nrec
and persons.GALDEP /== katpodr.nrec
and vacations.vactype /== klotpusk.nrec
))
and D_B <= vacations.docdate
and D_E >= vacations.docdate
order by vacations.docdate;
smv
Посетитель
Сообщения: 30
Зарегистрирован: 29 мар 2005, 17:49
Откуда: мск

Понимание приходит на 3-тий день

Сообщение smv »

понимание на
изучаю черные дыры... почему только мне)
smv
Посетитель
Сообщения: 30
Зарегистрирован: 29 мар 2005, 17:49
Откуда: мск

Re: Понимание приходит на 3-тий день

Сообщение smv »

До меня дошло, что держит
and D_B <<= vacations.docdate (noindex)
and D_E >>= vacations.docdate (noindex)
это дата приказа, все приказы вышедшие раньше или позже не попадают
поменял на
and D_B <<= vacations.FACTYEARBEG (noindex)
and D_E >>= vacations.FACTYEAREND (noindex)
но теперь отпуска которые бывают переходят с одного месяца на другой не попадают, а только те которые были в этом месяце.
А второй вопрос повис в воздухе, нашел я интерфейс выбора подразделений через ШР PICKCATALOG2, но у него какие-то интересные параметры.
parameters
iEntryPoint, // точка входа (код каталога)
cCurPos, // NRec текущей (вход), выбранной (выход) позиции
parmode; // вход: 0 - режим выбора
// 1 - режим редактирования
// 2 - режим выбора с кнопкой по всем регионам
// ** остальные значения используюся только в Кадрах!
// 3 - выбор из списка отчетов
// 5 - все каталоги, редактирование
// 6 - все отчеты, редактирование
// 7 - выбор для доп. таблиц
// остальные добавлены BK
// 100-106 - аналогичны вышестоящим, только с обработкой
// маркировки (множественный выбор)
Как правильно написать запрос?
RunInterface(PICKCATALOG2,?,?,?)
что работало и выбиралось?
??? >:( ;D :D :P :-/
изучаю черные дыры... почему только мне)
Ответить