Список форумов BOSSForum.RU - Форум. БОСС-Кадровик
Независимый форум, посвященный системе БОСС-Кадровик
и всему, что с ней связано
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

создание диалога для обработки данных по назначению

 
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> X-язык
Предыдущая тема :: Следующая тема  
Автор Сообщение
zeha_t



Зарегистрирован: 30.03.2012
Сообщения: 25

СообщениеДобавлено: Пн Апр 02, 2012 15:32    Заголовок сообщения: создание диалога для обработки данных по назначению Ответить с цитатой

Добрые люди помогите разобраться с созданием диалога. (занимаюсь боссом очень мало, поэтому сразу прошу простить если что не так). Итак, хочу создать диалоговое окно, с помощью которого смог бы задавать необходимый диапозон по дате назначения сотрудников, есть вот такой диалог, может можно переделать его ))).

--диалог ввода периода
STABLE @XName SELECT GetDate() ,
GetDate() ;
alias _dlgresource={
(0,0,350,100,0);
e,(50,0,80,20, 0x10),'с ...',(50,20,80,20,0x100),1;
e,(200,0,80,20, 0x10),'по ...',(200,20,80,20,0x100),2;
};
DIALOG @XName,,'~Дата расчета' ;
Let :dat1_ := @XName:1 as date;
Let :dat2_ := @XName:2 as date;
DESTROY @XName;
--return dat1_ ... dat2_;
if _Result <> 10 then error; -- отказ -> выход
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mike
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 07.04.2011
Сообщения: 255

СообщениеДобавлено: Пн Апр 02, 2012 15:56    Заголовок сообщения: Ответить с цитатой

Цитата:
с помощью которого смог бы задавать необходимый диапозон по дате назначения сотрудников


А можно поконкретнее, я эту фразу совсем не понял.

Если имеется ввиду, что нужен период задавать, то этот диалог вполне подходит... а что еще нужно то?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
zeha_t



Зарегистрирован: 30.03.2012
Сообщения: 25

СообщениеДобавлено: Пн Апр 02, 2012 16:22    Заголовок сообщения: Ответить с цитатой

да нужно задавать период, но необходимо чтобы этот период работал конкретно по дате назначения, т.е. как привязать диалог к дате назначения (просто я чайник, может проблему не корректно описываю).
делаю так browser{
SELECT [Card1].[Full_Name][%x]"ФИО",
[People2].[in_date][%x]"Дата приема на работу",
[People2].[out_date][%x]"Дата увольнения",
[PR_CURRENT3].[Date_trans] [%x]"Дата назначения",
[Appointments4].[Name_appoint] [%x]"Должность",
[SETUP5].[Name] [%x]"Наименование предприятия",
[Card1].[Name] [%x]"Фамилия"
FROM [Card] as [Card1] (NOLOCK)
join [People] as [People2] (NOLOCK) ON [People2].[Auto_Card] = [Card1].[Auto_Card]
join [PR_CURRENT] as [PR_CURRENT3] (NOLOCK) on [PR_CURRENT3].[PID]=[people2].[PID]
join [Appointments] as [Appointments4] (NOLOCK) on [Appointments4].[code_appoint]=[PR_CURRENT3].[code_appoint]
join [SETUP] as [SETUP5] (NOLOCK) on [SETUP5].[id_firm]=[people2].[id_firm]
WHERE 1 = 1 and [SETUP5].id_firm = 1
and [People2].in_date<=getdate() and [People2].out_date>getdate()
and [PR_CURRENT3].flag_last='*'
and ([People2].in_date>='01.03.2012' and [People2].out_date>='01.04.2012')


}

задаю диапозон с помощью условия, не получается + ко всему хочу для себя понять как можно диалог с выбором периода связать с датой назначения, как то так Embarassed
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
zeha_t



Зарегистрирован: 30.03.2012
Сообщения: 25

СообщениеДобавлено: Пн Апр 02, 2012 16:23    Заголовок сообщения: Ответить с цитатой

с browser это я уже сам экспериментирую как второй вариант, но всё же хочу понять как создаётся диалог...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mike
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 07.04.2011
Сообщения: 255

СообщениеДобавлено: Пн Апр 02, 2012 17:14    Заголовок сообщения: Ответить с цитатой

Вы все правильно делаете.
В секции where, когда выводите окошко browser на экран, добавьте в условие переменные из диалога:
Код:
WHERE 1 = 1 and [SETUP5].id_firm = 1
and [People2].in_date<=getdate() and [People2].out_date>getdate()
and [PR_CURRENT3].flag_last='*'
and ([People2].in_date>=dat1_and [People2].out_date>=dat2_)


Последний раз редактировалось: Mike (Пн Апр 02, 2012 17:16), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mike
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 07.04.2011
Сообщения: 255

СообщениеДобавлено: Пн Апр 02, 2012 17:15    Заголовок сообщения: Ответить с цитатой

zeha_t писал(а):
с browser это я уже сам экспериментирую как второй вариант, но всё же хочу понять как создаётся диалог...

Диалог вы создаете, в диалоге заполняются поля и переменным передается значение.
Далее эти переменные можете использовать хоть в браузерах, хоть где...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
zeha_t



Зарегистрирован: 30.03.2012
Сообщения: 25

СообщениеДобавлено: Вт Апр 03, 2012 08:01    Заголовок сообщения: Ответить с цитатой

спасибо, вроде теперь понятно!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
vviktor



Зарегистрирован: 09.01.2019
Сообщения: 105
Откуда: Пермь

СообщениеДобавлено: Ср Янв 27, 2021 10:46    Заголовок сообщения: Ответить с цитатой

Доброго дня !

Обнаружено странное проведение триггера по простановке признака "
Код:
flag_last
"

В случае если редактируемое назначение является последним "
Код:
flag_last = '*'
" и переносится в информационные/

Прошу исправить trigger [tr_Pr_current_u__flag_last]
Добавив проверку для 'deleted'



Код:
     if exists (select top 1 1 from deleted where pid > 0)
      begin

   --   отмечаем последнее назначение часть 2
         UPDATE dbo.pr_current
            SET flag_last = ' '
         FROM deleted
         WHERE deleted.pid = pr_current.pid
         AND pr_current.flag_last = '*'

         UPDATE dbo.pr_current
            SET flag_last   = '*'
               ,date_depart = '2099-01-01'
         FROM deleted
         WHERE deleted.pid = pr_current.pid
         AND pr_current.prid = (
                SELECT top 1 prid   
               FROM dbo.pr_current
               WHERE pid = deleted.pid
                 ORDER BY date_trans DESC, prid DESC
            )

      end
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
RVV
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 14.01.2010
Сообщения: 449

СообщениеДобавлено: Ср Янв 27, 2021 11:22    Заголовок сообщения: Ответить с цитатой

Поле flag_last давно уже не используется
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
vviktor



Зарегистрирован: 09.01.2019
Сообщения: 105
Откуда: Пермь

СообщениеДобавлено: Ср Янв 27, 2021 15:42    Заголовок сообщения: Ответить с цитатой

в демо базе данный триггер присутствует версия (6.07.01.21)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DUCKKK
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 16.09.2009
Сообщения: 1681

СообщениеДобавлено: Ср Янв 27, 2021 15:54    Заголовок сообщения: Ответить с цитатой

А взять демо-базу поновее?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
RVV
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 14.01.2010
Сообщения: 449

СообщениеДобавлено: Чт Янв 28, 2021 15:48    Заголовок сообщения: Ответить с цитатой

Триггеры
TR tr_Pr_current_d__flag_last
TR tr_Pr_current_i__flag_last
TR tr_Pr_current_u__flag_last

оставлены для совместимости со старым кодом.
Но в планах - их удалить, тк поле flag_last давно не используется,
в т.ч. и в отчетах
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
vviktor



Зарегистрирован: 09.01.2019
Сообщения: 105
Откуда: Пермь

СообщениеДобавлено: Пт Янв 29, 2021 13:29    Заголовок сообщения: Ответить с цитатой

Понял. Спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> X-язык Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Pоwerеd by рhpВB © 2001, 2005 рhpВB Grouр
Русская поддержка phрВB
Rambler's Top100 Рейтинг@Mail.ru Список форумов BOSSForum.RU