Сведения о работниках лаборатории: различия между версиями
Sidminik (обсуждение | вклад) |
|||
| Строка 61: | Строка 61: | ||
|Вид работы <code>Fields!type.Value</code>||<code>Редактировать</code> >> <code>Карточка сотрудника</code> >> <code>Информация</code> >> <code>Трудовые отношения</code> >> <code>Тип занятости</code> | |Вид работы <code>Fields!type.Value</code>||<code>Редактировать</code> >> <code>Карточка сотрудника</code> >> <code>Информация</code> >> <code>Трудовые отношения</code> >> <code>Тип занятости</code> | ||
|- | |- | ||
|Условие <code>IIF()</code>||rowspan=2"|<code>=IIF(IsNothing(Fields!form.Value) And IsNothing(Fields!number.Value) And IsNothing(Fields!date.Value) And IsNothing(Fields!type.Value), "-", Fields!form.Value + " " + Fields!number.Value + IIF( Not IsNothing(Fields!date.Value), " от " + Fields!date.Value, "") + " (" + Fields!type.Value + ")")</code> если все 4 поля БД, содержащие форму, номер, дату и тип являются пустыми, то в строку заносится прочерк; иначе вносятся форма + номер + (если дата не пустая, то « от » + дата, если пустая то ничего) + тип | |Условие <code>IIF()</code>||rowspan=2"|<code>=IIF(IsNothing(Fields!form.Value) And IsNothing(Fields!number.Value) And IsNothing(Fields!date.Value) And IsNothing(Fields!type.Value), "-", Fields!form.Value + " " + Fields!number.Value + IIF( Not IsNothing(Fields!date.Value), " от " + Fields!date.Value, "") + " (" + Fields!type.Value + ")")</code> | ||
если все 4 поля БД, содержащие форму, номер, дату и тип являются пустыми, то в строку заносится прочерк; иначе вносятся форма + номер + (если дата не пустая, то « от » + дата, если пустая то ничего) + тип | |||
|- | |- | ||
|Сравнение с пустой ячейкой <code>Not IsNothing()</code> | |Сравнение с пустой ячейкой <code>Not IsNothing()</code> | ||
| Строка 79: | Строка 80: | ||
|Реквизиты диплома <code>Fields!diplom.Value</code>||<code>Редактировать</code> >> <code>Карточка сотрудника</code> >> <code>Информация</code> >> <code>Трудовые отношения</code> >> <code>Реквизиты документа об образовании</code> | |Реквизиты диплома <code>Fields!diplom.Value</code>||<code>Редактировать</code> >> <code>Карточка сотрудника</code> >> <code>Информация</code> >> <code>Трудовые отношения</code> >> <code>Реквизиты документа об образовании</code> | ||
|- | |- | ||
|Условие <code>IIF()</code>||rowspan="2"|<code>=IIF(IsNothing(Fields!univer.Value) And IsNothing(Fields!uni_year.Value) And IsNothing(Fields!prof.Value) And IsNothing(Fields!diplom.Value), "-", IIF( Not IsNothing(Fields!univer.Value), Fields!univer.Value & ", ", "") &IIF( Not IsNothing(Fields!uni_year.Value), Fields!uni_year.Value & ", ", "") & IIF( Not IsNothing(Fields!prof.Value), Fields!prof.Value & ", ", "") & Fields!diplom.Value)</code> если все 4 поля БД (учебное заведение, год окончания, специальность и реквизиты диплома) пустые, то вносится прочерк; иначе к трем полям применяется условие – если поле не пустое, выводится поле и запятая, если пустое, то ничего; к последнему полю применяется условие без запятой – если поле не пустое, то выводится поле, если пустое, то ничего; | |Условие <code>IIF()</code>||rowspan="2"|<code>=IIF(IsNothing(Fields!univer.Value) And IsNothing(Fields!uni_year.Value) And IsNothing(Fields!prof.Value) And IsNothing(Fields!diplom.Value), "-", IIF( Not IsNothing(Fields!univer.Value), Fields!univer.Value & ", ", "") &IIF( Not IsNothing(Fields!uni_year.Value), Fields!uni_year.Value & ", ", "") & IIF( Not IsNothing(Fields!prof.Value), Fields!prof.Value & ", ", "") & Fields!diplom.Value)</code> | ||
если все 4 поля БД (учебное заведение, год окончания, специальность и реквизиты диплома) пустые, то вносится прочерк; иначе к трем полям применяется условие – если поле не пустое, выводится поле и запятая, если пустое, то ничего; к последнему полю применяется условие без запятой – если поле не пустое, то выводится поле, если пустое, то ничего; | |||
|- | |- | ||
|Сравнение с пустой ячейкой <code>Not IsNothing()</code> | |Сравнение с пустой ячейкой <code>Not IsNothing()</code> | ||
|- | |||
|rowspan="3"|Практический опыт по исследованиям, испытаниям, измерениям, включенным в область аккредитации (в годах, с указанием, в каких организациях, в какой период и по каким видам исследований (испытаний) измерений получен)||Дата начала трудовой деятельности <code>Fields!start.Value</code>||<code>Редактировать</code> >> <code>Карточка сотрудника</code> >> <code>Информация</code> >> <code>Дата начала практического опыта</code> | |||
|- | |||
|Условие <code>IIF()</code>||<code>=IIF(IsNothing(Fields!start.Value), "-", Code.ReturnYearsWithSuffix (Fields!start.Value) & vbLF & Fields!start.Value & " - по текущую дату")</code> | |||
если в БД поле даты начала трудовой деятельности пустое, выводится прочерк; | |||
иначе | |||
‒ вызывает функцию <code>ReturnYearsWithSuffix()</code>, возвращающую количество лет и текстовый суффикс « год/года/лет» в зависимости от числа лет стажа; | |||
‒ переносит строку (<code>vbLF</code>); | |||
‒ выводит год начала трудовой деятельности + «по текущую дату» | |||
|- | |||
|Количество лет <code>DateDiff(DateInterval.Year, Fields!start.Value, Now()</code>||<code>Public Function ReturnYearsWithSuffix(inputDate As Date) As String | |||
Dim yearsDiff As Long = DateDiff(DateInterval.Year, inputDate, Now()) | |||
Dim resultDate As Long = yearsDiff | |||
Dim resultString As String = yearsDiff.ToString() | |||
If (resultDate > 20) Then | |||
resultDate = resultDate Mod 10 | |||
End If | |||
Select Case resultDate | |||
Case 1 | |||
resultString &= $" год" | |||
Case 2 To 4 | |||
resultString &= $" года" | |||
Case Else | |||
resultString &= $" лет" | |||
End Select | |||
Return resultString | |||
End Function</code> | |||
функция принимает числовое значение количества лет трудового стажа; | |||
<code>DateDiff()</code> вычисляет разницу между двумя датами (между третьим и вторым аргументами), при этом первый аргумент <code>DateInterval.Year</code> указывает функции, в каких единицах измерения нужно вернуть разницу (в данном случае, в полных годах), второй аргумент <code>inputDate</code> начало периода, третий аргумент <code>Now()</code> конец периода (текущая системная дата и время на момент выполнения кода); результат вычисления присваивается переменной <code>yearsDiff</code>; | |||
значение сохраняется в виде строки в переменной <code>resultString</code>; | |||
создается переменная <code>resultDate</code> и ей присваивается ранее вычисленное значение лет из переменной <code>yearsDiff</code> (для последующих вычислений суффикса); | |||
если количество лет более 20, то <code>resultDate</code> делится на 10 и получившийся остаток перезаписывается в переменную <code>resultDate</code>; | |||
переменная <code>resultDate</code> для определения соответствующего суффикса отправляется в оператор <code>Select Case</code>, где в зависимости от ее значения к ранее полученной строке <code>resultString</code> дописывается через пробел необходимый суффикс «год/года/лет»; | |||
функция возвращает итоговую строку в вызвавшее ее выражение в ячейке для дальнейшей обработки (соединения с другими данными) | |||
|- | |- | ||
Версия от 09:30, 20 января 2026
Параметры
В форме используются 5 фильтров параметров:
Выберите лабораторию:(выбор одного из вариантов); выводятся в алфавитном порядке лаборатории, имеющие сотрудников;Укажите ФИО уполномоченного лица:(выбор одного из вариантов); выводятся только сотрудники выбранной в п.1 лаборатории;Укажите должность уполномоченного лица:(выбор одного из вариантов); выводятся должности, относящиеся к выбранному в п.2 сотруднику;Сотрудники (область аккредитации):(доступные значения – «в области аккредитации», «вне области аккредитации»);Введите начальное значение нумерации строк:(ввод целого числа); по умолчанию 1, возможен ввод в т.ч. 0 или отрицательного числа.
Атрибуты
В наборе данных (SQL-запрос для DataSet) в таблице ATTRIBUTE_NAME используются атрибуты со следующими значениями NAME:
- 'СНИЛС' –
snils; - 'Форма привлечения труда' –
form; - 'Тип занятости' –
type; - 'Номер договора' –
number; - 'Дата договора' –
date; - 'Выполняемые функции, исследования, испытания, измерения' –
func; - 'Наименование учебного заведения' –
univer; - 'Год окончания' –
uni_year; - 'Квалификация по документу' –
prof; - 'Реквизиты документа об образовании' –
diplom; - 'Дата начала практического опыта' –
start; - 'В области аккредитации' –
accred.
Поля, данные, выражения и формулы
| Поля | Данные и выражения | Формулы |
|---|---|---|
| Верхний колонтитул | Название лаборатории =Parameters!ReportParameterLaboratory.Value |
Персонал >> Привязка или Редактировать >> Карточка сотрудника >> Привязка
|
Владелец версии Code.Globals.GetVersionOwner() |
="Владелец версии: " & Code.Globals.GetVersionOwner()
| |
| Заголовок | Текущая дата Today.ToString("dd.MM.yyyy") |
="По состоянию на: " & Today.ToString("dd.MM.yyyy")
|
| Основная таблица | ||
| № п/п | Вывод сквозной нумерации строк RowNumber() |
=RowNumber() + Parameters!ReportParametrNumberFirstString.Value – 1 из счетчика RowNumber() вычитается единица, чтобы скорректировать смещение относительно числа, введенного пользователем; при вводе пользователем, например, числа 50, для первой строки отчета RowNumber() вернет 1: выражение вычисляется как 1 + 50 - 1, что дает в результате 50 (желаемый начальный номер); для второй строки RowNumber() вернет 2, и выражение даст 2 + 50 - 1 = 51, и так далее
|
Начальное значение нумерации строк из параметра фильтра: Parameters!ReportParametrNumberFirstString.Value – 1
| ||
| Фамилия, имя, отчество (при наличии), страховой номер индивидуального лицевого счета, дата и место рождения | Вывод ФИО Fields!fio.Value |
Редактировать >> Карточка сотрудника >> Информация >> Фамилия:
|
Редактировать >> Карточка сотрудника >> Информация >> Имя:
| ||
Редактировать >> Карточка сотрудника >> Информация >> Отчество:
| ||
Вывод СНИЛС Fields!snils.Value |
Редактировать >> Карточка сотрудника >> Информация >> СНИЛС:
| |
Условие IIF() |
=IIF( Not IsNothing(Fields!snils.Value), Fields!fio.Value + vbLF + "СНИЛС " + Fields!snils.Value, Fields!fio.Value) если поле БД, содержащее СНИЛС, не пустое, то в ячейку вносится значение ФИО + перенос на новую строку + надпись «СНИЛС: » + значение поля СНИЛС; иначе вносится только значение ФИО
| |
Сравнение с пустой ячейкой Not IsNothing()
| ||
Перенос строки vbLF
| ||
| Основание для привлечения личного труда (трудовой договор, гражданско-правовой договор или иное), работа по основному месту работы или по совместительству | Форма договора Fields!form.Value |
Редактировать >> Карточка сотрудника >> Информация >> Трудовые отношения >> Форма привлечения труда:
|
Номер договора Fields!number.Value |
Редактировать >> Карточка сотрудника >> Информация >> Трудовые отношения >> Номер договора:
| |
Дата договора Fields!date.Value |
Редактировать >> Карточка сотрудника >> Информация >> Трудовые отношения >> Дата договора
| |
Вид работы Fields!type.Value |
Редактировать >> Карточка сотрудника >> Информация >> Трудовые отношения >> Тип занятости
| |
Условие IIF() |
=IIF(IsNothing(Fields!form.Value) And IsNothing(Fields!number.Value) And IsNothing(Fields!date.Value) And IsNothing(Fields!type.Value), "-", Fields!form.Value + " " + Fields!number.Value + IIF( Not IsNothing(Fields!date.Value), " от " + Fields!date.Value, "") + " (" + Fields!type.Value + ")")
если все 4 поля БД, содержащие форму, номер, дату и тип являются пустыми, то в строку заносится прочерк; иначе вносятся форма + номер + (если дата не пустая, то « от » + дата, если пустая то ничего) + тип | |
Сравнение с пустой ячейкой Not IsNothing()
| ||
| Выполняемые функции, проводимые исследования, испытания, измерения | Выполняемые функции Fields!func.Value |
Редактировать >> Карточка сотрудника >> Информация >> Выполняемые функции, исследования, испытания, измерения
|
Условие IIF() |
=IIF(IsNothing (Fields!func.Value), "-", Fields!func.Value) если поле БД, содержащее функцию, пустое, то вносится прочерк, иначе вносится функция из поля
| |
Сравнение с пустой ячейкой Not IsNothing()
| ||
| Образование (наименование учебного заведения, год окончания, квалификация по документу об образовании, реквизиты документа об образовании) | Название учебного заведения Fields!univer.Value |
Редактировать >> Карточка сотрудника >> Информация >> Образование >> Наименование учебного заведения
|
Год окончания Fields!uni_year.Value |
Редактировать >> Карточка сотрудника >> Информация >> Трудовые отношения >> Год окончания
| |
Квалификация Fields!prof.Value |
Редактировать >> Карточка сотрудника >> Информация >> Трудовые отношения >> Квалификация по документу
| |
Реквизиты диплома Fields!diplom.Value |
Редактировать >> Карточка сотрудника >> Информация >> Трудовые отношения >> Реквизиты документа об образовании
| |
Условие IIF() |
=IIF(IsNothing(Fields!univer.Value) And IsNothing(Fields!uni_year.Value) And IsNothing(Fields!prof.Value) And IsNothing(Fields!diplom.Value), "-", IIF( Not IsNothing(Fields!univer.Value), Fields!univer.Value & ", ", "") &IIF( Not IsNothing(Fields!uni_year.Value), Fields!uni_year.Value & ", ", "") & IIF( Not IsNothing(Fields!prof.Value), Fields!prof.Value & ", ", "") & Fields!diplom.Value)
если все 4 поля БД (учебное заведение, год окончания, специальность и реквизиты диплома) пустые, то вносится прочерк; иначе к трем полям применяется условие – если поле не пустое, выводится поле и запятая, если пустое, то ничего; к последнему полю применяется условие без запятой – если поле не пустое, то выводится поле, если пустое, то ничего; | |
Сравнение с пустой ячейкой Not IsNothing()
| ||
| Практический опыт по исследованиям, испытаниям, измерениям, включенным в область аккредитации (в годах, с указанием, в каких организациях, в какой период и по каким видам исследований (испытаний) измерений получен) | Дата начала трудовой деятельности Fields!start.Value |
Редактировать >> Карточка сотрудника >> Информация >> Дата начала практического опыта
|
Условие IIF() |
=IIF(IsNothing(Fields!start.Value), "-", Code.ReturnYearsWithSuffix (Fields!start.Value) & vbLF & Fields!start.Value & " - по текущую дату")
если в БД поле даты начала трудовой деятельности пустое, выводится прочерк;
иначе
‒ вызывает функцию | |
Количество лет DateDiff(DateInterval.Year, Fields!start.Value, Now() |
Public Function ReturnYearsWithSuffix(inputDate As Date) As String
| |