Независимый форум, посвященный системе БОСС-Кадровик и всему, что с ней связано
|
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Mikhail
Зарегистрирован: 16.08.2012 Сообщения: 177 Откуда: Москва
|
Добавлено: Пт Июн 21, 2013 10:13 Заголовок сообщения: Перемещение между полями в диалоге редактирования. |
|
|
Всем привет.
Сделал несколько пользовательских объектов типа "список", создал для них диалоги редактирования. Операции добавления/обновления/удаления работают корректно, да и в целом все ок, кроме одного момента: при открытии диалога для редактирования перемещение между полями диалога возможно только по кнопке "TAB". Установить курсор в новое произвольное поле с помощью мыши не удается - курсор остается в прежнем поле.
Если ввести заведомо неверные данные которые не удовлетворяют условиям проверки (секция Update/Insert), то мы возвращаемся обратно к диалогу и тогда можем свободно перемещаться между полями используя мышь.
Кто-нибудь сталкивался с такой ситуацией? Подскажите, пожалуйста, какой параметр диалога я упускаю или дело в чем-то еще? |
|
Вернуться к началу |
|
|
RVV Большой шоколадный орден
Зарегистрирован: 14.01.2010 Сообщения: 449
|
Добавлено: Пт Июн 21, 2013 11:58 Заголовок сообщения: |
|
|
Версия RPexec какая?
Диалог динамический или нет? |
|
Вернуться к началу |
|
|
Mikhail
Зарегистрирован: 16.08.2012 Сообщения: 177 Откуда: Москва
|
Добавлено: Пт Июн 21, 2013 12:15 Заголовок сообщения: |
|
|
RPexec 10.29.00.000
Диалог - объект замещения типа "Диалог", указан в качестве диалога редактирования для объекта типа "Список".
Сам диалог весьма простой, более того, их несколько и в большинстве своем они однотипны и для них всех свойственно такое поведение, что свидетельствует о наличии систематической ошибки с моей стороны, но в чем эта ошибка не могу понять )
Пример кода раздела "Динамический ресурс" одного из таких диалогов:
Код: | alias _dlgresource = (
/*Version of Dynamic Resource*/
ver=4011;
/*Dialog(rect,options), menu, sline, {help}*/
(0, 0, 750, 279, 0xca0),,,{};
/*Update/OK Trigger*/
1,{BEFORE
{
--пробиваем дату изменения в поле user_hart.mdate
let @new:mdate = CONVERT (date, GETDATE());
--проверка на наличие пересекающихся записей
local _check = 0;
select top 1 user_hart.id
into :_check
from user_hart
where user_hart.pid = @user_hart_dlg:pid
and @user_hart_dlg:fromd <= user_hart.tod
and @user_hart_dlg:tod >= user_hart.fromd;
if _check <> 0 then error Пересечение с действуещей записью;
--проверка на корректность вводимых сумм, дат и выбор сотрудника
if @user_hart_dlg:pid = 0 then error Выберите сотрудника;
if @user_hart_dlg:mobile_sum < 0 then error Премия за мобильность не может быть отрицательной;
if @user_hart_dlg:rent_fact < 0 then error Доплата за аренду жилья не может быть отрицательной;
if @user_hart_dlg:rent_max < 0 then error Доплата за аренду жилья не может быть отрицательной;
if @user_hart_dlg:trans_num < 0 then error Количество поездок не может быть отрицательным;
if @user_hart_dlg:rent_fact > @user_hart_dlg:rent_max then error Доплата за аренду жилья превышает максимально допустимое значение;
if @user_hart_dlg:fromd > @user_hart_dlg:tod then error Период действия хартии введен неверно;
};};
/*Insert Trigger*/
3,{BEFORE
{
--пробиваем дату изменения в поле user_hart.mdate
let @new:mdate = CONVERT(date, GETDATE());
--проверка на наличие пересекающихся записей
local _check = 0;
select user_hart.id
into :_check
from user_hart
where user_hart.pid = @user_hart_dlg:pid
and @user_hart_dlg:fromd <= user_hart.tod
and @user_hart_dlg:tod >= user_hart.fromd;
if _check <> 0 then error Пересечение с действуещей записью;
--проверка на корректность вводимых сумм, дат и выбор сотрудника
if @user_hart_dlg:pid = 0 then error Выберите сотрудника;
if @user_hart_dlg:mobile_sum < 0 then error Премия за мобильность не может быть отрицательной;
if @user_hart_dlg:rent_fact < 0 then error Доплата за аренду жилья не может быть отрицательной;
if @user_hart_dlg:rent_max < 0 then error Доплата за аренду жилья не может быть отрицательной;
if @user_hart_dlg:trans_num < 0 then error Количество поездок не может быть отрицательным;
if @user_hart_dlg:rent_fact > @user_hart_dlg:rent_max then error Доплата за аренду жилья превышает максимально допустимое значение;
if @user_hart_dlg:fromd > @user_hart_dlg:tod then error Период действия хартии введен неверно;
};};
/*Let/Init SQL*/
5,{pid = 0;
mobile_sum = 0;
rent_fact = 0;
rent_max = 0;
trans_num = 0;
dms = 0;
fromd = '1900-01-01';
tod = '1900-01-01';
uname = @@NetName;
mdate = CONVERT(date, GETDATE());};
/*Lookup(pFilter,options),field,{sql},link,draw,data,'hint'*/
E,(20, 20, 35, 20, 0x0),"ФИО:",(210, 15, 230, 20, 0x204),2,{user_hart_vw;},0,3,1,"";
/*InputLine(rect,options),field,{sql},'hint'*/
E,(20, 50, 185, 20, 0x0),"Премия за мобильность:",(210, 50, 65, 20, 0x0),3,{},"";
/*InputLine(rect,options),field,{sql},'hint'*/
E,(20, 80, 185, 20, 0x0),"Компенсация аренды жилья (факт):",(210, 80, 65, 20, 0x0),4,{},"";
/*InputLine(rect,options),field,{sql},'hint'*/
E,(290, 80, 40, 20, 0x0),"(макс):",(335, 80, 75, 20, 0x0),5,{},"";
/*Buttons(rect,options), name*/
N,(425, 75, 30, 30, 0x0),user_vo73_mnu;
/*InputLine(rect,options),field,{sql},'hint'*/
E,(20, 110, 185, 20, 0x0),"Количество поездок домой:",(210, 110, 65, 20, 0x0),6,{},"";
/*Buttons(rect,options), name*/
N,(290, 105, 30, 30, 0x0),user_trans_hist_mnu;
/*RadioButtons(rect,options),field,{text},'hint'*/
R,(20, 140, 185, 20, 0x0),"ДМС для родственников:",(210, 135, 65, 30, 0x8000),7,{Нет
Есть},"";
/*InputLine(rect,options),field,{sql},'hint'*/
E,(20, 170, 185, 20, 0x0),"Период действия хартии (с даты):",(210, 170, 75, 20, 0x100),8,{},"";
/*InputLine(rect,options),field,{sql},'hint'*/
E,(310, 170, 50, 15, 0x0),"(по дату):",(365, 170, 75, 20, 0x100),9,{},"";
);
dialog{
/*init procedure*/
/*tab procedure*/
TAB {};
/* sql */
@user_hart_dlg
select
id,
pid,
mobile_sum,
rent_fact,
rent_max,
trans_num,
dms,
fromd,
tod,
uname,
mdate
from user_hart;
},0x10,""; |
|
|
Вернуться к началу |
|
|
RVV Большой шоколадный орден
Зарегистрирован: 14.01.2010 Сообщения: 449
|
Добавлено: Пт Июн 21, 2013 12:50 Заголовок сообщения: |
|
|
Ошибка в RPexec
Со слов разработчиков, исправлено в версии не ниже 11.2.9.2
Так что, ждем новый RPexec |
|
Вернуться к началу |
|
|
Mikhail
Зарегистрирован: 16.08.2012 Сообщения: 177 Откуда: Москва
|
Добавлено: Пт Июн 21, 2013 17:45 Заголовок сообщения: |
|
|
RVV, большое спасибо за ответ.
Интересно, что подобная ситуация не возникает с ранее созданными диалогами. |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|