Перейти к содержанию

Сводный журнал результатов анализов: различия между версиями

Материал из Химсофт Вики
Новая страница: «==Параметры== В форме использу_тся _ фильтр_ параметров: {|class="wikitable" style="margin:auto; background-color: #fff;" |- !№ !Параметр !Тип поля !Данные !Сортировка |- |align="center"|1 |<code></code> |align="center"| | |align="center"| |- |} ==Атрибуты== В наборе данных <code>MainDataSet</code> в таблице <code>ATTRIBUTE_NAME</code> использу...»
 
 
(не показано 10 промежуточных версий этого же участника)
Строка 1: Строка 1:
==Параметры==
==Параметры==
В форме использу_тся _ фильтр_ параметров:
В форме используются 5 фильтров параметров:
{|class="wikitable" style="margin:auto; background-color: #fff;"  
{|class="wikitable" style="margin:auto; background-color: #fff;"  
|-
|-
Строка 10: Строка 10:
|-
|-
|align="center"|1
|align="center"|1
|<code></code>
|<code>Выберите лабораторию:</code>
|align="center"|  
|align="center"|выбор одного значения
|
|лаборатории, имеющие записи в журналах
|align="center"|
|align="center"|по алфавиту
|-
|align="center"|2
|<code>Выберите источники анализа:</code>
|align="center"|выбор нескольких значений
|источники анализа, относящиеся к <code>выбранной лаборатории (п.1)</code>
|align="center"|по алфавиту
|-
|align="center"|3
|<code>Выберите объекты анализа:</code>
|align="center"|выбор нескольких значений
|объекты анализа, относящиеся к <code>выбранному источнику (п.2)</code>
|align="center"|по алфавиту
|-
|align="center"|4
|<code>Дата начала:</code>
|align="center"|ввод или выбор даты
|начало периода (включительно)
|align="center"|-
|-
|align="center"|5
|<code>Дата завершения:</code>
|align="center"|ввод или выбор даты
|конец периода (включительно)
|align="center"|-
|-
|-
|}
|}
Строка 20: Строка 44:


В наборе данных <code>MainDataSet</code> в таблице <code>ATTRIBUTE_NAME</code> используются атрибуты со следующими значениями <code>NAME</code>:
В наборе данных <code>MainDataSet</code> в таблице <code>ATTRIBUTE_NAME</code> используются атрибуты со следующими значениями <code>NAME</code>:
*
*Дата и время отбора пробы
*
*Номер пробы
*
*Примечание для журнала
*
*


<div style="background-color: #fff3cd; border-left: 5px solid #ffc107; padding: 15px; margin: 10px 0;">
<div style="background-color: #fff3cd; border-left: 5px solid #ffc107; padding: 15px; margin: 10px 0;">
Строка 33: Строка 55:
В других базах этих полей может не быть либо их наименование может отличаться!!!
В других базах этих полей может не быть либо их наименование может отличаться!!!


При необходимости проведите корректировку.  
Отсутствующие в базе атрибуты не будут выводиться в документе. Для корректной работы документа актуализируйте атрибуты в соответствии с приведенным списком.
</div>
</div>


==Поля, данные, выражения, элементы интерфейса и код==
==Поля, данные, выражения, элементы интерфейса и код==
===Верхний колонтитул===
{|class="wikitable" style="margin:auto; background-color: #fff;"
|-
!Поля
!Интерфейс <code style="background-color: #d4edda;>...</code> >> <code style="background-color: #d4edda;>...</code>
и данные <code style="background-color: #fff3e0;>...</code> >> <code style="background-color: #fff3e0;>...</code>
!Код и комментарии
|-
|Название лаборатории
|<code>Parameters!ReportParameterLaboratory.Value</code>
|<syntaxhighlight lang="vb">=Parameters!ReportParameterLaboratory.Value</syntaxhighlight>
|-
|Владелец версии
|<code>Code.Globals.GetVersionOwner()</code>
|<syntaxhighlight lang="vb">="Владелец версии: " & Code.Globals.GetVersionOwner()</syntaxhighlight>
|-
|}


===Основная информация===
===Основная информация===
Строка 46: Строка 87:
!Код и комментарии
!Код и комментарии
|-
|-
|
|№ п/п
|<code>GroupIndex()</code>
|<syntaxhighlight lang="vb">=GroupIndex() + 1</syntaxhighlight>
для объединения одинаковых ячеек по вертикали (№п/п, дата и время и др.) создана группа на основе поля <code>date_value</code>; сама группировка в таблице не отображается (в настройках таблицы отключены значения <code>Include group header</code> и <code>Include group footer</code>), но позволяет нумеровать строки по группам (фактически - по паре "дата-время")
|-
|Дата, время регистрации
|<code style="background-color: #d4edda;>Лабораторные журналы</code> >> Выбрать подразделение >> Выбрать запись >> <code style="background-color: #d4edda;>Результаты</code> >> <code style="background-color: #d4edda;>Дата и время отбора пробы</code>
<code style="background-color: #fff3e0;>Fields!date_value.Value</code> >> <code style="background-color: #fff3e0;>date_value /  MainDataSet</code> >> <code style="background-color: #fff3e0;>DATE_VALUE / JOURNAL_RESULT_ATTRIBUTE</code>
|<syntaxhighlight lang="vb">=Fields!date_value.Value.ToString("dd.MM.yyyy hh:mm")</syntaxhighlight>
|-
|Шифр пробы
|<code style="background-color: #d4edda;>Лабораторные журналы</code> >> Выбрать подразделение >> Выбрать запись >> <code style="background-color: #d4edda;>Редактировать</code> >> <code style="background-color: #d4edda;>Журнал регистрации проб и результатов испытаний</code> >> <code style="background-color: #d4edda;>Информация</code> >> <code style="background-color: #d4edda;>Номер пробы</code>
<code style="background-color: #fff3e0;>Fields!code.Value</code> >> <code style="background-color: #fff3e0;>code /  MainDataSet</code> >> <code style="background-color: #fff3e0;>STRING_VALUE / JOURNAL_RECORD_ATTRIBUTE</code>
|<syntaxhighlight lang="vb">=Fields!code.Value</syntaxhighlight>
|-
|Информация о пробе
|<code style="background-color: #d4edda;>Объекты анализа</code> >> <code style="background-color: #d4edda;>Тип</code> и <code style="background-color: #d4edda;>Наименование</code><br>
<code style="background-color: #d4edda;>Источники проб</code> >> Выбрать запись >> <code style="background-color: #d4edda;>Редактировать</code> >> <code style="background-color: #d4edda;>Полное наименование</code>
<code style="background-color: #fff3e0;>Fields!ao_type.Value</code> >> <code style="background-color: #fff3e0;>ao_type / MainDataSet</code> >> <code style="background-color: #fff3e0;>NAME / CATALOG_RECORD_TYPE</code>
<code style="background-color: #fff3e0;>Fields!ao_name.Value</code> >> <code style="background-color: #fff3e0;>ao_name / MainDataSet</code> >> <code style="background-color: #fff3e0;>NAME / ANALYSIS_OBJECT</code>
<code style="background-color: #fff3e0;>Fields!sample_source</code> >> <code style="background-color: #fff3e0;>sample_source / MainDataSet</code> >> <code style="background-color: #fff3e0;>FULL_NAME / SAMPLE_SOURCE</code>
|<syntaxhighlight lang="vb">=Fields!ao_type.Value & vblf & Fields!ao_name.Value & vblf & Fields!sample_source.Value</syntaxhighlight>
|-
|Показатель, ед. изм., НД на методику анализа, Дата анализа
|<code style="background-color: #d4edda;>Лабораторные журналы</code> >> Выбрать подразделение >> Выбрать запись >> <code style="background-color: #d4edda;>Результаты</code> >> <code style="background-color: #d4edda;>Показатель</code>; <code style="background-color: #d4edda;>Методика анализа</code>; <code style="background-color: #d4edda;>Дата и время отбора пробы</code>
<code style="background-color: #fff3e0;>Fields!ind_meth_name.Value</code> >> <code style="background-color: #fff3e0;>ind_meth_name / MainDataSet</code> >> <code style="background-color: #fff3e0;>INDICATOR_METHODOLOGY_NAME / METHODOLOGY_INDICATOR</code><br>
<code style="background-color: #fff3e0;>Fields!unit.Value</code> >> <code style="background-color: #fff3e0;>unit / MainDataSet</code> >> <code style="background-color: #fff3e0;>HTML_NAME / UNIT</code><br>
<code style="background-color: #fff3e0;>Fields!norm_document.Value</code> >> <code style="background-color: #fff3e0;>norm_document / MainDataSet</code> >> <code style="background-color: #fff3e0;>NORMATIVE_DOCUMENT / METHODOLOGY</code><br>
<code style="background-color: #fff3e0;>Fields!date_value.Value</code> >> <code style="background-color: #fff3e0;>date_value /  MainDataSet</code> >> <code style="background-color: #fff3e0;>DATE_VALUE / JOURNAL_RESULT_ATTRIBUTE</code>
|<syntaxhighlight lang="vb">=Fields!ind_meth_name.Value & ", " & Code.RemoveTagsSimple(Fields!unit.Value) & vbLF & Fields!norm_document.Value & vbLF  & Fields!date_value.Value.ToString("dd.MM.yyyy hh:mm")</syntaxhighlight>
<syntaxhighlight lang="vb">
Function RemoveTagsSimple(ByVal input As String) As String
Dim tags() As String = {"<span>", "</span>", "<sub>", "</sub>", "<sup>", "</sup>"}
Dim txt As String = input
   
For Each tag As String In tags
txt = Replace(txt, tag, "", , , CompareMethod.Text)
Next
   
Return txt
End Function
</syntaxhighlight>
|-
|Результат ед. опр.
|<code style="background-color: #d4edda;>Лабораторные журналы</code> >> Выбрать подразделение >> Выбрать запись >> <code style="background-color: #d4edda;>Результаты</code> >> Выбрать показатель >> Раскрыть >> <code style="background-color: #d4edda;>Результат измерения</code>
<code style="background-color: #fff3e0;>Fields!single_result.Value</code> >> <code style="background-color: #fff3e0;>single_result / MainDataSet</code> >> <code style="background-color: #fff3e0;>RESULT / JRPARALLEL</code>
|<syntaxhighlight lang="vb">=Fields!single_result.Value</syntaxhighlight>
 
|-
|Проверка приемлемости (контроль повторяемости) r ≤ rₙ
|<code style="background-color: #d4edda;></code> >> <code style="background-color: #d4edda;></code>
|<code style="background-color: #d4edda;></code> >> <code style="background-color: #d4edda;></code>
<code style="background-color: #fff3e0;></code> >> <code style="background-color: #fff3e0;> / </code> >> <code style="background-color: #fff3e0;> / </code>
<code style="background-color: #fff3e0;></code> >> <code style="background-color: #fff3e0;> / </code> >> <code style="background-color: #fff3e0;> / </code>
|<syntaxhighlight lang="vb"></syntaxhighlight>
|<syntaxhighlight lang="vb">=Fields!RAZMAH.Value</syntaxhighlight>
|-
|Результат анализа, Х ± Δ(U)
|<code style="background-color: #d4edda;>Лабораторные журналы</code> >> Выбрать подразделение >> Выбрать запись >> <code style="background-color: #d4edda;>Результаты</code> >> <code style="background-color: #d4edda;>Результат</code>; <code style="background-color: #d4edda;>Показатель точности</code>
<code style="background-color: #fff3e0;>Fields!result_val.Value; Fields!result_dc.Value</code> >> <code style="background-color: #fff3e0;>result_val; result_dc / MainDataSet</code> >> <code style="background-color: #fff3e0;>AVG_R; DC / JOURNAL_RESULT</code>
|<syntaxhighlight lang="vb">=Fields!result_val.Value & "±" & Fields!result_dc.Value</syntaxhighlight>
|-
|Норма
|<code style="background-color: #d4edda;>Лабораторные журналы</code> >> Выбрать подразделение >> Выбрать запись >> <code style="background-color: #d4edda;>Результаты</code> >> <code style="background-color: #d4edda;>Норма</code>
<code style="background-color: #fff3e0;>Fields!min.Value; Fields!max.Value</code> >> <code style="background-color: #fff3e0;>min; max / MainDataSet</code> >> <code style="background-color: #fff3e0;>LOWER_LIMIT; UPPER_LIMIT / QUANTITATIVE_NORM</code>
|<syntaxhighlight lang="vb">=Code.NormProcessing(Fields!min.Value, Fields!max.Value)</syntaxhighlight>
<syntaxhighlight lang="vb">
Function NormProcessing(ByVal min  As String, ByVal max As String) As String
Dim result As String = ""
Dim hasMin As Boolean = Not String.IsNullOrEmpty(min) AndAlso min <> "0"
Dim hasMax As Boolean = Not String.IsNullOrEmpty(max) AndAlso max <> "0"
If hasMin And hasMax Then
result = min & "-" + max
Else If hasMin Then
result = "≥" & min
Else If hasMax Then
result = "≤" & max
Else
result = "-"
End If
Return result
End Function
</syntaxhighlight>
|-
|Ф.И.О. исполнителя
|<code style="background-color: #d4edda;>Лабораторные журналы</code> >> Выбрать подразделение >> Выбрать запись >> <code style="background-color: #d4edda;>Результаты</code> >> <code style="background-color: #d4edda;>Исполнитель</code>
<code style="background-color: #fff3e0;>Fields!e_surname.Value; Fields!e_name.Value; Fields!e_patronymic.Value</code> >> <code style="background-color: #fff3e0;>e_surname; e_name; e_patronymic / MainDataSet</code> >> <code style="background-color: #fff3e0;>SURNAME; NAME; PATRONYMIC / EMPLOYEE</code>
|<syntaxhighlight lang="vb">=IIF(Not IsNothing(Fields!e_surname.Value), Fields!e_surname.Value & " " & Left(Fields!e_name.Value, 1) & "." & Left(Fields!e_patronymic.Value, 1) & ".", "-")</syntaxhighlight>
 
|-
|Примечание
|<code style="background-color: #d4edda;>Лабораторные журналы</code> >> Выбрать подразделение >> Выбрать запись >> <code style="background-color: #d4edda;>Результаты</code> >> <code style="background-color: #d4edda;>Примечание</code>
<code style="background-color: #fff3e0;>Fields!note.Value</code> >> <code style="background-color: #fff3e0;>note / MainDataSet</code> >> <code style="background-color: #fff3e0;>STRING_VALUE / JOURNAL_RESULT_ATTRIBUTE</code>
|<syntaxhighlight lang="vb">=IIF(Not IsNothing(Fields!note.Value), Fields!note.Value, "-")</syntaxhighlight>
|-
|}
 
===Нижний колонтитул===
 
{|class="wikitable" style="margin:auto; background-color: #fff;"
|-
!Поля
!Интерфейс <code style="background-color: #d4edda;>...</code> >> <code style="background-color: #d4edda;>...</code>
и данные <code style="background-color: #fff3e0;>...</code> >> <code style="background-color: #fff3e0;>...</code>
!Код и комментарии
|-
|Имя программы
|<code>Code.Globals.GetProgramName()</code>
|<syntaxhighlight lang="vb">=Code.Globals.GetProgramName()</syntaxhighlight>
|-
|Нумерация страниц
|Номер страницы <code>Globals!PageNumber</code> и всего страниц <code>Globals!TotalPages</code>
|<syntaxhighlight lang="vb">="Страница " & Globals!PageNumber & " из " & Globals!TotalPages</syntaxhighlight>
|-
|-
|}
|}

Текущая версия от 08:01, 27 января 2026

Параметры

В форме используются 5 фильтров параметров:

Параметр Тип поля Данные Сортировка
1 Выберите лабораторию: выбор одного значения лаборатории, имеющие записи в журналах по алфавиту
2 Выберите источники анализа: выбор нескольких значений источники анализа, относящиеся к выбранной лаборатории (п.1) по алфавиту
3 Выберите объекты анализа: выбор нескольких значений объекты анализа, относящиеся к выбранному источнику (п.2) по алфавиту
4 Дата начала: ввод или выбор даты начало периода (включительно) -
5 Дата завершения: ввод или выбор даты конец периода (включительно) -

Атрибуты

В наборе данных MainDataSet в таблице ATTRIBUTE_NAME используются атрибуты со следующими значениями NAME:

  • Дата и время отбора пробы
  • Номер пробы
  • Примечание для журнала

Внимание!

Описание атрибутов приведено в соответствии с базой данных ASTRA-PG13 на основе созданных пользователем полей.

В других базах этих полей может не быть либо их наименование может отличаться!!!

Отсутствующие в базе атрибуты не будут выводиться в документе. Для корректной работы документа актуализируйте атрибуты в соответствии с приведенным списком.

Поля, данные, выражения, элементы интерфейса и код

Верхний колонтитул

Поля Интерфейс ... >> ...

и данные ... >> ...

Код и комментарии
Название лаборатории Parameters!ReportParameterLaboratory.Value
=Parameters!ReportParameterLaboratory.Value
Владелец версии Code.Globals.GetVersionOwner()
="Владелец версии: " & Code.Globals.GetVersionOwner()

Основная информация

Поля Интерфейс ... >> ...

и данные ... >> ...

Код и комментарии
№ п/п GroupIndex()
=GroupIndex() + 1

для объединения одинаковых ячеек по вертикали (№п/п, дата и время и др.) создана группа на основе поля date_value; сама группировка в таблице не отображается (в настройках таблицы отключены значения Include group header и Include group footer), но позволяет нумеровать строки по группам (фактически - по паре "дата-время")

Дата, время регистрации Лабораторные журналы >> Выбрать подразделение >> Выбрать запись >> Результаты >> Дата и время отбора пробы

Fields!date_value.Value >> date_value / MainDataSet >> DATE_VALUE / JOURNAL_RESULT_ATTRIBUTE

=Fields!date_value.Value.ToString("dd.MM.yyyy hh:mm")
Шифр пробы Лабораторные журналы >> Выбрать подразделение >> Выбрать запись >> Редактировать >> Журнал регистрации проб и результатов испытаний >> Информация >> Номер пробы

Fields!code.Value >> code / MainDataSet >> STRING_VALUE / JOURNAL_RECORD_ATTRIBUTE

=Fields!code.Value
Информация о пробе Объекты анализа >> Тип и Наименование

Источники проб >> Выбрать запись >> Редактировать >> Полное наименование Fields!ao_type.Value >> ao_type / MainDataSet >> NAME / CATALOG_RECORD_TYPE Fields!ao_name.Value >> ao_name / MainDataSet >> NAME / ANALYSIS_OBJECT Fields!sample_source >> sample_source / MainDataSet >> FULL_NAME / SAMPLE_SOURCE

=Fields!ao_type.Value & vblf & Fields!ao_name.Value & vblf & Fields!sample_source.Value
Показатель, ед. изм., НД на методику анализа, Дата анализа Лабораторные журналы >> Выбрать подразделение >> Выбрать запись >> Результаты >> Показатель; Методика анализа; Дата и время отбора пробы

Fields!ind_meth_name.Value >> ind_meth_name / MainDataSet >> INDICATOR_METHODOLOGY_NAME / METHODOLOGY_INDICATOR
Fields!unit.Value >> unit / MainDataSet >> HTML_NAME / UNIT
Fields!norm_document.Value >> norm_document / MainDataSet >> NORMATIVE_DOCUMENT / METHODOLOGY
Fields!date_value.Value >> date_value / MainDataSet >> DATE_VALUE / JOURNAL_RESULT_ATTRIBUTE

=Fields!ind_meth_name.Value & ", " & Code.RemoveTagsSimple(Fields!unit.Value) & vbLF & Fields!norm_document.Value & vbLF  & Fields!date_value.Value.ToString("dd.MM.yyyy hh:mm")
Function RemoveTagsSimple(ByVal input As String) As String
	Dim tags() As String = {"<span>", "</span>", "<sub>", "</sub>", "<sup>", "</sup>"}
	Dim txt As String = input
    
	For Each tag As String In tags
		txt = Replace(txt, tag, "", , , CompareMethod.Text)
	Next
    
	Return txt
End Function
Результат ед. опр. Лабораторные журналы >> Выбрать подразделение >> Выбрать запись >> Результаты >> Выбрать показатель >> Раскрыть >> Результат измерения

Fields!single_result.Value >> single_result / MainDataSet >> RESULT / JRPARALLEL

=Fields!single_result.Value
Проверка приемлемости (контроль повторяемости) r ≤ rₙ >>

>> / >> /

=Fields!RAZMAH.Value
Результат анализа, Х ± Δ(U) Лабораторные журналы >> Выбрать подразделение >> Выбрать запись >> Результаты >> Результат; Показатель точности

Fields!result_val.Value; Fields!result_dc.Value >> result_val; result_dc / MainDataSet >> AVG_R; DC / JOURNAL_RESULT

=Fields!result_val.Value & "±" & Fields!result_dc.Value
Норма Лабораторные журналы >> Выбрать подразделение >> Выбрать запись >> Результаты >> Норма

Fields!min.Value; Fields!max.Value >> min; max / MainDataSet >> LOWER_LIMIT; UPPER_LIMIT / QUANTITATIVE_NORM

=Code.NormProcessing(Fields!min.Value, Fields!max.Value)
Function NormProcessing(ByVal min  As String, ByVal max As String) As String
	Dim result As String = ""
	
	Dim hasMin As Boolean = Not String.IsNullOrEmpty(min) AndAlso min <> "0"
	Dim hasMax As Boolean = Not String.IsNullOrEmpty(max) AndAlso max <> "0"
	
	If hasMin And hasMax Then
		result = min & "-" + max
	Else If hasMin Then
		result = "≥" & min
	Else If hasMax Then
		result = "≤" & max
	Else 
		result = "-"
	End If
	
	Return result
End Function
Ф.И.О. исполнителя Лабораторные журналы >> Выбрать подразделение >> Выбрать запись >> Результаты >> Исполнитель

Fields!e_surname.Value; Fields!e_name.Value; Fields!e_patronymic.Value >> e_surname; e_name; e_patronymic / MainDataSet >> SURNAME; NAME; PATRONYMIC / EMPLOYEE

=IIF(Not IsNothing(Fields!e_surname.Value), Fields!e_surname.Value & " " & Left(Fields!e_name.Value, 1) & "." & Left(Fields!e_patronymic.Value, 1) & ".", "-")
Примечание Лабораторные журналы >> Выбрать подразделение >> Выбрать запись >> Результаты >> Примечание

Fields!note.Value >> note / MainDataSet >> STRING_VALUE / JOURNAL_RESULT_ATTRIBUTE

=IIF(Not IsNothing(Fields!note.Value), Fields!note.Value, "-")

Нижний колонтитул

Поля Интерфейс ... >> ...

и данные ... >> ...

Код и комментарии
Имя программы Code.Globals.GetProgramName()
=Code.Globals.GetProgramName()
Нумерация страниц Номер страницы Globals!PageNumber и всего страниц Globals!TotalPages
="Страница " & Globals!PageNumber & " из " & Globals!TotalPages