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

BROWSER in DIALOG

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



Зарегистрирован: 26.01.2016
Сообщения: 180
Откуда: Санкт-Петербург

СообщениеДобавлено: Ср Ноя 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) и кнопки ОК, Отказ. Выбирать я ничего не планирую, достаточно только продолжить выполнение если ОК и прервать по Отказу.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
tveritin



Зарегистрирован: 26.01.2016
Сообщения: 180
Откуда: Санкт-Петербург

СообщениеДобавлено: Чт Ноя 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 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
NewAge



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

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

А зачем такие сложности? Не проще ли просто вывести список с кнопками "Ок" и "Отказ"? В нем даже если нужно можно будет выбирать.
Код:

Browser {
   /* Какой-то запрос */
}, 0x0008, 'Делаем это?';
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
tveritin



Зарегистрирован: 26.01.2016
Сообщения: 180
Откуда: Санкт-Петербург

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

Спасибо. Буду иметь в виду.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
tveritin



Зарегистрирован: 26.01.2016
Сообщения: 180
Откуда: Санкт-Петербург

СообщениеДобавлено: Вт Фев 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 {}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
NewAge



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

СообщениеДобавлено: Чт Фев 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
Сообщения: 180
Откуда: Санкт-Петербург

СообщениеДобавлено: Чт Фев 03, 2022 14:29    Заголовок сообщения: Ответить с цитатой

Спасибо. Возьму на вооружение.
Но уже решил созданием списка в rp-дизайнере.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов 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