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

Поля в БД, соответствующие картинкам из интерфейса. БК MSSQL

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



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

СообщениеДобавлено: Пн Июн 07, 2021 07:33    Заголовок сообщения: Поля в БД, соответствующие картинкам из интерфейса. БК MSSQL Ответить с цитатой

Привет всем.
Кто может подсказать в каких полях и таблицах хранятся приведенные данные:

https://disk.yandex.ru/i/-_HtQhOu5lLE-g
https://disk.yandex.ru/i/c8QpxZZ6WEtBcQ

Модуль структуры данных (er2) не помог.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
vviktor



Зарегистрирован: 09.01.2019
Сообщения: 96
Откуда: Пермь

СообщениеДобавлено: Пн Июн 07, 2021 10:36    Заголовок сообщения: Ответить с цитатой

картинка 1
Код:

select * from zrp_acc_anal
select * from HR_CUSTOMER


картинка 2
функция вернула дерево подчинённости из таблицы 'Structs'
Код:

[dbo].[UDF_pr_structs_tree]
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
tveritin



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

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

Спасибо.
Действительно, в HR_CUSTOMER нужные значения есть.
Но, как это связать с работником?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
tveritin



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

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

1. Через structs.cust_id связал.
2. [dbo].[UDF_pr_structs_tree] - не нашел такой функции у себя в базе.
Можете прислать содержимое?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
vviktor



Зарегистрирован: 09.01.2019
Сообщения: 96
Откуда: Пермь

СообщениеДобавлено: Ср Июн 09, 2021 09:47    Заголовок сообщения: Ответить с цитатой

Код:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--*********************************************************************************************************************************************************************************************
-- ВНИМАНИЕ !!! Функция в первую очередь предназначена для формирования ПРИКАЗОВ
--*********************************************************************************************************************************************************************************************

-- Функция возвращает полный путь до указанного подразделения
-- Возвращается полный путь (перечень) подразделений от указанного до подразделения верхнего уровня

-- Описание параметров:
-- @struct_code - код подразделения из таблицы STRUCTS
-- @separation - разделитель меду названиями подразделений разных уровней. По умолчанию равно '-'

-- @type - способ формирования строки с путем
--   0 - подразделение 0-го уровня + "искомое" подразделение
--   1  -  перечисляются подразделения в именительном падеже, начиная с верхнего уровня
--   2  -  перечисляются подразделения в именительном падеже, начиная с нижнего уровня
--   3  -  перечисляются подразделения начиная с нижнего уровня, первое название в именительном падеже, остальные - в родительном

--*********************************************************************************************************************************************************************************************
ALTER FUNCTION [dbo].[UDF_pr_tree_name](@struct_code INTEGER, @separation varchar(255) = ' - ' )
RETURNS varchar(2048)
AS
BEGIN

  DECLARE @s varchar(255),
         @tree_name  varchar (2048),
         @type integer,
         @id_firm integer,
        @no_print tinyint
      
Select @id_firm = id_firm From structs Where struct_code = @struct_code
Select @tree_name = ''
Select @type = Cast([dbo].[pr_global_var] ('PR_FLAG_TREE',  @id_firm, default,  default, '0') as integer)

if @type = 0  BEGIN
     DECLARE Tree_Cursor CURSOR  FAST_FORWARD   FOR
   SELECT Struct_name, no_print FROM
     (SELECT structs.Struct_name, structs.struct_lev, structs.no_print
       FROM structs structs_root WITH (NOLOCK),
        structs   WITH (NOLOCK)
       WHERE     structs.struct_code = @struct_code
      AND structs.struct_root = structs_root.struct_code
   UNION ALL
     SELECT structs_root.Struct_name, structs_root.struct_lev, structs_root.no_print
       FROM structs structs_root WITH (NOLOCK),
        structs   WITH (NOLOCK)
       WHERE     structs.struct_code = @struct_code
      AND structs.struct_root = structs_root.struct_code
      AND structs.struct_root <> @struct_code) AS STRUCTS
       ORDER BY struct_lev
END

if @type = 1  BEGIN
     DECLARE Tree_Cursor CURSOR  FAST_FORWARD   FOR
     SELECT structs.Struct_name
         ,structs.no_print
       FROM tree WITH (NOLOCK),
        structs   WITH (NOLOCK)
       WHERE     structs.struct_code = tree.struct_parent
      AND tree.struct_code = @struct_code
       ORDER BY structs.struct_lev
END

if @type = 2  BEGIN
     DECLARE Tree_Cursor CURSOR  FAST_FORWARD   FOR
     SELECT structs.Struct_name
         ,structs.no_print
       FROM tree WITH (NOLOCK),
        structs   WITH (NOLOCK)
       WHERE     structs.struct_code = tree.struct_parent
      AND tree.struct_code = @struct_code
       ORDER BY structs.struct_lev DESC
END


if @type >= 3  BEGIN
     DECLARE Tree_Cursor CURSOR  FAST_FORWARD   FOR
     SELECT CASE
         WHEN structs.struct_name_R = '' OR structs.struct_name_R IS NULL OR structs.struct_code = @struct_code
               OR structs.struct_code = (select top 1 struct_parent from structs WITH (NOLOCK) where struct_code = @struct_code and no_print = 1)
            THEN structs.Struct_name
            ELSE structs.struct_name_R
         END
         ,structs.no_print
       FROM tree WITH (NOLOCK),
        structs   WITH (NOLOCK)
       WHERE     structs.struct_code = tree.struct_parent
      AND tree.struct_code = @struct_code
       ORDER BY structs.struct_lev DESC
END


  OPEN Tree_Cursor

  FETCH NEXT FROM Tree_Cursor INTO @s, @no_print
     if (@@FETCH_STATUS = 0 AND @no_print = 0)  Select  @tree_name =  @s

  WHILE @@FETCH_STATUS = 0
  BEGIN
     FETCH NEXT FROM Tree_Cursor INTO @s, @no_print
     if (@@FETCH_STATUS = 0 AND @no_print = 0)
      begin
         if @tree_name = ''
            Select  @tree_name = @s
         else
            Select  @tree_name = @tree_name + @separation + @s
      end
  END

  CLOSE Tree_Cursor
  DEALLOCATE Tree_Cursor

  return LEFT(@tree_name, 2048)

END
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> Общие вопросы Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Pоwerеd by рhpВB © 2001, 2005 рhpВB Grouр
Русская поддержка phрВB
Rambler's Top100 Рейтинг@Mail.ru Список форумов BOSSForum.RU