Независимый форум, посвященный системе БОСС-Кадровик и всему, что с ней связано
|
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
tveritin
Зарегистрирован: 26.01.2016 Сообщения: 191 Откуда: Санкт-Петербург
|
Добавлено: Ср Ноя 24, 2021 18:01 Заголовок сообщения: BROWSER in DIALOG |
|
|
Привет всем. Задался вопросом: Как сделать простейший диалог с таблицей из запроса.
Такой вариант:
Код: | @choose select 0;
alias _dlgresource={
(0,0,400,100,0);
e,(40,20,95,20, 0x0),'Список изменений',(40,40,80,20,0x100),1;
B,(60, 120, 320, 180, 0x0),{select id_hrtb_event[] "id записи", date_was [%x] "Было", date_will [%x] "Будет", correct [] "Примечание" from #USER_table _hintbrowser};
};
DIALOG @choose,,'~ То, что выбрано и будет изменено' ;
|
работает, но мне не нужно поле ввода. Нужно окно с таблицей (browser) и кнопки ОК, Отказ. Выбирать я ничего не планирую, достаточно только продолжить выполнение если ОК и прервать по Отказу. |
|
Вернуться к началу |
|
 |
tveritin
Зарегистрирован: 26.01.2016 Сообщения: 191 Откуда: Санкт-Петербург
|
Добавлено: Чт Ноя 25, 2021 10:30 Заголовок сообщения: |
|
|
Похоже, уже разобрался сам:
Код: | STABLE @choose select 0;
alias _dlgresource={
(0,0,400,100,0);
--e,(40,20,95,20, 0x0),'Список изменений',(40,40,80,20,0x100),1;
T,(40,20,95,20, 0x0),'Список изменений';
B,(60, 120, 320, 180, 0x0),{select id_hrtb_event[] "id записи", date_was [%x] "Было", date_will [%x] "Будет", correct [] "Примечание" from #USER_table _hintbrowser};
};
DIALOG @choose,,'~ То, что выбрано и будет изменено' ;
DESTROY @choose;
if _Result <> 10 then error; -- отказ -> выход иначе делаем все, что ниже
|
может кому и пригодится.
Последний раз редактировалось: tveritin (Чт Ноя 25, 2021 14:35), всего редактировалось 1 раз |
|
Вернуться к началу |
|
 |
NewAge
Зарегистрирован: 11.06.2010 Сообщения: 109
|
Добавлено: Пн Дек 27, 2021 17:08 Заголовок сообщения: |
|
|
А зачем такие сложности? Не проще ли просто вывести список с кнопками "Ок" и "Отказ"? В нем даже если нужно можно будет выбирать.
Код: |
Browser {
/* Какой-то запрос */
}, 0x0008, 'Делаем это?';
|
|
|
Вернуться к началу |
|
 |
tveritin
Зарегистрирован: 26.01.2016 Сообщения: 191 Откуда: Санкт-Петербург
|
Добавлено: Пн Дек 27, 2021 17:31 Заголовок сообщения: |
|
|
Спасибо. Буду иметь в виду. |
|
Вернуться к началу |
|
 |
tveritin
Зарегистрирован: 26.01.2016 Сообщения: 191 Откуда: Санкт-Петербург
|
Добавлено: Вт Фев 01, 2022 10:54 Заголовок сообщения: |
|
|
NewAge писал(а): | А зачем такие сложности? Не проще ли просто вывести список с кнопками "Ок" и "Отказ"? В нем даже если нужно можно будет выбирать.
Код: |
Browser {
/* Какой-то запрос */
}, 0x0008, 'Делаем это?';
|
|
Попытался применить это для случая, где в списке есть чекбоксы. Надо получить список выбранных строк.
Код: | STABLE @my_lst многострочный SQL-запрос;
alias _brwresource=(
/*Version of Dynamic Resource*/
ver=4011;
/*Window(x,y,h,w,type_window),global_options,opt_menu,name_dialog,name_menu,name_sline,TreeSizeX,{name_help}*/
--(0, 0, 800, 600, 0x1),0x0,0x7,hr_dlg_actocen,hr_mnu_actocen,hr_mnu_actocen_ocen,0,{};
(0, 0, 800, 600, 0x3),0x0,0x7,hr_dlg_actocen,,,0,{};
--(0, 0, 800, 600, 0x3),0x20,0x7,pr_dlg_firms,adm_mnu_firm,,0,{};
/*{Link sql}*/
L,{};
/*{Top;Bottom sql}*/
T,{;};
/*{End sql}*/
E,{};
/*{ContextMenu}*/
M,{pr_virtual_yu,1,0x10;};
/*'title', col_opt, col_width*/
C,{
"№",0x5,10;
"С даты",0x0,16;
"По дату",0x0,16;
"Код",0x0,10;
"Характеристика",0x0,40;
"Балл",0x0,10;
"Наименование оценки",0x0,20;
"",0x4,10;
"Вес",0x0,10;
"",0x4,10;
"Доп. информация",0x0,20;
"Раздел профиля",0x0,25;
"Раздел характеристик",0x0,35;
"Периодичность оценки, мес.",0x0,25;
"",0x14,0;
};
);
Browser{
/*init procedure*/
LOCAL _check_op := 0;
/*tab procedure*/
TAB {};
@my_lst
},0x0008,"~Выберите ...... ";
Scan @my_lst
EXECUTE
{
return @my_lst:id_hr_actocen;
}; --< execute
DESTROY @my_lst;
|
Пока никак. Похоже, @my_lst не преобразуется в запрос в теле browser {} |
|
Вернуться к началу |
|
 |
NewAge
Зарегистрирован: 11.06.2010 Сообщения: 109
|
Добавлено: Чт Фев 03, 2022 14:27 Заголовок сообщения: |
|
|
Код: | $If(Object_Id('TempDB..#Test') Is Not Null) Drop Table "#Test";
$Select tp.code_pay, tp.user_code_pay, tp.name_pay, Cast(0 As TinyInt) As checked
Into "#Test"
From typ_pay_pay tpp _HintBrowser Inner Join typ_pay tp _HintBrowser On tp.code_pay = tpp.code_pay
Where tpp.code_pay_tbl = 0 And tp.activ = 0;
Alias _DlgResource = {
(0, 0, 640, 480, 0x8000);
ver = 4011;
1, {
If(@@xWindow(@xBrw, Check, 0x0040) == 0 Then {
Update "#Test" Set checked = 1 Where code_pay = @xBrw:code_pay;
} Else {
Scan -1 @xBrw
Execute{
Update "#Test" Set checked = 1 Where code_pay = @xBrw:code_pay;
};
};
};
E, (15, 17, 120, 18, 0x0000), 'Таблица входимости:', (140, 15, 400, 20, 0x0004), Tbl, {Select code_pay_tbl, sname, name_pay_tbl From typ_pay_tbl}, 0, 2, 1;
B,(5, 45, 620, 380, 0x000c), {
Alias _BrwResource = {
(1, 0, 0, 0, 0x0003), 0x0000, 0x0000,,,, 0, {};
C, {
"Код ВО", 0x0000, 16;
"Польз. код ВО", 0x0000, 16;
"Наименование ВО", 0x0000, 64;
};
};
@xBrw
Select code_pay, user_code_pay, name_pay
From "#Test"
Order By code_pay;
};
};
Dialog {
Tab {
If(DlgField[''] = 'Tbl') Then {
Delete From "#Test" Where 1 = 1;
Insert Into "#Test"(code_pay, user_code_pay, name_pay)
Select tp.code_pay, tp.user_code_pay, tp.name_pay
From typ_pay_pay tpp _HintBrowser Inner Join typ_pay tp _HintBrowser On tp.code_pay = tpp.code_pay
Where tpp.code_pay_tbl = @xDlg:Tbl['] And tp.activ = 0;
};
Msg 2037, @xBrw;
};
@xDlg
Select 0 As Tbl;
}, 0x0000, '~Test';
Alias _BrwResource = {
(1, 0, 0, 0, 0x0001), 0x0000, 0x0000,,,, 0, {};
C, {
"Код ВО", 0x0000, 16;
"Польз. код ВО", 0x0000, 16;
"Наименование ВО", 0x0000, 64;
};
};
Browser {
Select code_pay, user_code_pay, name_pay
From "#Test"
Where checked = 1
Order By code_pay
}; |
|
|
Вернуться к началу |
|
 |
tveritin
Зарегистрирован: 26.01.2016 Сообщения: 191 Откуда: Санкт-Петербург
|
Добавлено: Чт Фев 03, 2022 14:29 Заголовок сообщения: |
|
|
Спасибо. Возьму на вооружение.
Но уже решил созданием списка в rp-дизайнере. |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|