Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Denis
Зарегистрирован: 01.06.2011 Сообщения: 39
|
Добавлено: Пт Июн 24, 2011 16:24 Заголовок сообщения: Табельный учет. Форма Т-13 |
|
|
Добрый день!
Решил попробовать чутка переделать форму Т-13.
А именно поправить структурное подразделение.
На данный момент на форме выводится конкретное подразделение, например "Управление информационных технологий"
Как считают некоторые (не будем указывать в сторону отдела кадров ) данный способ отображения названия подразделения не совсем корректен.
Нужно чтобы отображался полный путь к подразделению, начиная с подразделения 0-го уровня.
Пример:
Департамент управления делами/Управление информационных технологий.
Данную штуку удалось почти что реализовать. Застрял на условии IF...ELSE...
var b;
// Заголовки:
OpenSelect T SELECT ((select top 1 struct_parent from structs where struct_code = :_struct_code));
Fetch T, b;
CloseSelect T;
if (b == 0)
{
OpenSelect T SELECT @@firm_name, isnull((select top 1 struct_name from structs where struct_code = :_struct_code),'');
Fetch T, NameFirm, NameStruct;
CloseSelect T;
}
else
{
OpenSelect T SELECT @@firm_name, isnull((select (struct_name+'/'+(select struct_name from structs where structs.struct_code=a.struct_parent)) from structs a where a.struct_code = :_struct_code),'');
Fetch T, NameFirm, NameStruct;
CloseSelect T;
};
Вот фрагмент когда. Тут в идеале должна проходить проверка по столбцу struct_parent из таблицы structs
При условии что значение = 0 просто выводим название подразделения и все.
В ином же случае выводится путь до подчиненного подразделения.
У меня не получается запихнуть значение в переменную b.
Подскажите как устанвить переменной значение из столбца struct_parent?
И еще можете пояснить назначение OpenSelect ? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
RVV Большой шоколадный орден
![Большой шоколадный орден Большой шоколадный орден](images/bpic_0000731.jpg)
Зарегистрирован: 14.01.2010 Сообщения: 449
|
Добавлено: Пт Июн 24, 2011 17:38 Заголовок сообщения: |
|
|
Используйте
[dbo].[udf_fullname_tree]('STRUCTS', structs.Struct_code, default)
/*"Подразделение (Развернутое наименование)"*/ |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Vitaly Большой шоколадный орден
![Большой шоколадный орден Большой шоколадный орден](images/bpic_0000731.jpg)
Зарегистрирован: 29.07.2008 Сообщения: 281 Откуда: Санкт-Петербург
|
Добавлено: Пт Июн 24, 2011 17:43 Заголовок сообщения: |
|
|
А можно на X-языке написать, что-то типа такого
Код: | Let _test_ = 36 As Int; --- Подразделение с которого начинаем
Let _str_ = '' As String;
Select Struct_Lev+1 Into :_n_ From structs where Struct_Code = _test_;
Scan _n_
Execute {
Select Struct_Parent, Struct_Name InTo :_test_, :_str2_ From structs where Struct_Code = _test_ ;
Let _str_ = ' \ ' + '_str2_' + ' ' + '_str_';
}; |
|
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
zhenya17
Зарегистрирован: 04.02.2009 Сообщения: 190 Откуда: Кемерово
|
Добавлено: Пт Июн 24, 2011 23:22 Заголовок сообщения: |
|
|
RVV писал(а): | Используйте
[dbo].[udf_fullname_tree]('STRUCTS', structs.Struct_code, default)
/*"Подразделение (Развернутое наименование)"*/ | +1 |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Denis
Зарегистрирован: 01.06.2011 Сообщения: 39
|
Добавлено: Ср Июн 29, 2011 12:44 Заголовок сообщения: |
|
|
RVV писал(а): | Используйте
[dbo].[udf_fullname_tree]('STRUCTS', structs.Struct_code, default)
/*"Подразделение (Развернутое наименование)"*/ |
То что надо.
Спасибо! |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Denis
Зарегистрирован: 01.06.2011 Сообщения: 39
|
Добавлено: Ср Июл 20, 2011 16:33 Заголовок сообщения: |
|
|
Добрый день!
В продолжении темы
Недавно поставили обновление ......-10
Обновление коснулось и формы табеля.
Что сразу бросилось в глаза, так это отсутствие "Развернутого наименования"
Хотя текущее структурное подразделение выползает исправно.
Пробовал вернуть формы и процедуру табеля из предидущей версии...сработало, но только от части. В итоге название подразделения вообще не выводится.
В обновленной процедуре(tb_tabel_t13) не могу найти где присваивается значение/наименование подразделения.
Если взять из старой процедуры фрагмент
OpenSelect T SELECT @@firm_name, isnull((select top 1 struct_name from structs where struct_code = :_struct_code),'');
то тут при замене переменной :_struct_code на какое либо числовое значение получим заполненное наименование подразделения. Если оставим все как есть, то наименование не будет заполняться.
Такое впечатление что переменной никакого значения не присваивается. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
RVV Большой шоколадный орден
![Большой шоколадный орден Большой шоколадный орден](images/bpic_0000731.jpg)
Зарегистрирован: 14.01.2010 Сообщения: 449
|
Добавлено: Пн Авг 01, 2011 13:47 Заголовок сообщения: |
|
|
Диалог tb_print_13
переменная rep_struct_name_
-- Заголовок
-- Подразделение
SELECT struct_name INTO rep_struct_name_
FROM structs WHERE struct_code = @new:struct_code; |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Jadeson578
Зарегистрирован: 08.11.2017 Сообщения: 1
|
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|