Независимый форум, посвященный системе БОСС-Кадровик и всему, что с ней связано
|
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
tveritin
Зарегистрирован: 26.01.2016 Сообщения: 191 Откуда: Санкт-Петербург
|
Добавлено: Ср Мар 19, 2025 12:23 Заголовок сообщения: Список в диалоге |
|
|
Есть такая конструкция.
Код: | alias _dlgresource={
(0,0,770,400,0);
e,(20,30,70,20, 0x28),'С даты:',(90,30,70,20, 0x100),1;
e,(190,30,70,20, 0x28),'По дату:',(260,30,70,20, 0x100),2;
c,(20,70,200,70,0x0),'~',(20,70,260,60,0x4050),3,{ суммировать с табелем по подработкам },'';
E,(20, 100, 196, 20, 0x0),"Подразделение",(236, 100, 292, 20, 0x4),4,{hrvw_structs_firm_look},0,2,1,"";
B,(20, 125, 605, 135, 0x0),{@XList SELECT
distinct replace(replace(pr_group_value.str1,char(13),''),char(10),'') num_tab, (select full_name from card where auto_card in (select Auto_Card from people where num_tab=replace(replace(pr_group_value.str1,char(13),''),char(10),'') and @@d_from between in_date and out_date))[%x]"ФИО"
FROM pr_group_value _HINTBROWSER
INNER JOIN pr_group ON pr_group.id = pr_group_value.id_group
AND pr_group.reference = 'PEOPLE' and pr_group.sname = 'Line manager'
LEFT JOIN pr_group_type ON pr_group_type.id_pr_group_type = pr_group.id_pr_group_type
INNER JOIN (SELECT id_rec FROM dbo.ADFN_RoleList_Acc(user_name(),'pr_group')) as acc ON acc.id_rec = pr_group.id
WHERE pr_group_value.id_ref in (select pid from tb_emps where st=CURSTATION)
and @@d_from between pr_group_value.FromD and pr_group_value.tod}; |
Список сделан для того, чтоб в нём выбрать нужные записи.
Записи-то выбираются. А вот как обработать этот список? Как получить значения выбранных записей?
`SCAN @XList` говорит, что "Отсутствует или неверное имя sTable @XList". |
|
Вернуться к началу |
|
 |
tveritin
Зарегистрирован: 26.01.2016 Сообщения: 191 Откуда: Санкт-Петербург
|
|
Вернуться к началу |
|
 |
tveritin
Зарегистрирован: 26.01.2016 Сообщения: 191 Откуда: Санкт-Петербург
|
Добавлено: Чт Мар 20, 2025 00:47 Заголовок сообщения: |
|
|
Сохраню здесь для истории. Да и может пригодится кому.
Код: | -- рисуем диалог для инициализации параметров отчета ----------------------------------------
STABLE @XName SELECT CONVERT(datetime,FirstDayOfMonth) as TabelFromDate, -- табель с даты
CONVERT(datetime,LastDayOfMonth) as TabelToDate, -- табель по дату
1 as SumTabel, -- суммировать с табелем по подработкам
@@struct_code['] as struct_code;
------------------------
$If(Object_Id('TempDB..#Test') Is Not Null) Drop Table [#Test];
$SELECT
distinct replace(replace(pr_group_value.str1,char(13),''),char(10),'') as num_tab,
(select full_name from card where auto_card in (select Auto_Card from people where num_tab=replace(replace(pr_group_value.str1,char(13),''),char(10),'') and @@d_from between in_date and out_date)) as full_name,
0 as checked
Into "#Test"
FROM pr_group_value
INNER JOIN pr_group ON pr_group.id = pr_group_value.id_group
AND pr_group.reference = 'PEOPLE' and pr_group.sname = 'Line manager'
LEFT JOIN pr_group_type ON pr_group_type.id_pr_group_type = pr_group.id_pr_group_type
INNER JOIN (SELECT id_rec FROM dbo.ADFN_RoleList_Acc(user_name(),'pr_group')) as acc ON acc.id_rec = pr_group.id
WHERE pr_group_value.id_ref in (select pid from tb_emps where st=CURSTATION)
and @@d_from between pr_group_value.FromD and pr_group_value.tod;
alias _dlgresource={
(0,0,770,400,0);
ver = 4011;
1, {
If(@@xWindow(@xBrw, Check, 0x0040) == 0 Then {
Update "#Test" Set checked = 1 Where num_tab = @xBrw:num_tab;
} Else {
Scan -1 @xBrw
Execute{
Update "#Test" Set checked = 1 Where num_tab = @xBrw:num_tab;
};
};
};
e,(20,30,70,20, 0x28),'С даты:',(90,30,70,20, 0x100),1;
e,(190,30,70,20, 0x28),'По дату:',(260,30,70,20, 0x100),2;
c,(20,70,200,70,0x0),'~',(20,70,260,60,0x4050),3,{ суммировать с табелем по подработкам },'';
E,(20, 100, 196, 20, 0x0),"Подразделение",(236, 100, 292, 20, 0x4),4,{hrvw_structs_firm_look},0,2,1,"";
/*B,(20, 125, 605, 135, 0x0),{@XList};*/
B,(20, 125, 605, 135, 0x000c), {
Alias _BrwResource = {
(1, 0, 0, 0, 0x0003), 0x0000, 0x0000,,,, 0, {};
C, {
"Таб.№", 0x0000, 20;
"ФИО", 0x0000, 64;
};
};
@xBrw
Select num_tab, full_name
From "#Test"
Order By num_tab;
};
};
DIALOG @XName,,'~Рассылка табеля отработанного времени';
if _Result <> 10 then {DESTROY @XName; ERROR;}; -- отказ -> выход
--пользуемся результатами
Browser {
Select num_tab, full_name
From "#Test"
Where checked = 1
Order By num_tab
}; |
|
|
Вернуться к началу |
|
 |
tveritin
Зарегистрирован: 26.01.2016 Сообщения: 191 Откуда: Санкт-Петербург
|
Добавлено: Чт Мар 20, 2025 11:38 Заголовок сообщения: |
|
|
Вот бы еще разобраться как установить при создании диалога все галки в списке. Ведь по-умолчанию все сброшены, а надо, чтоб все включенные были. |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|