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

Паспорт качества газа (ГОСТ 5542): различия между версиями

Материал из Химсофт Вики
Нет описания правки
 
(не показано 47 промежуточных версий этого же участника)
Строка 1: Строка 1:
==Общий вид==
[[Файл:ng_2_5542.png|center|border]]
==Параметры==
==Параметры==
В форме используются 7 фильтров параметров:
В форме используются 7 фильтров параметров:
Строка 5: Строка 9:
!№!!Параметр!!Тип поля!!Данные!!Сортировка
!№!!Параметр!!Тип поля!!Данные!!Сортировка
|-
|-
|align="center"|1||<code>Выберите лабораторию:</code>||align="center"|выбор значения||лаборатории, имеющие записи в журналах||align="center"|по алфавиту
|align="center"|1||<code>Выберите лабораторию:</code>||align="center"|выбор значения||лаборатории, имеющие записи в журналах с показателями, у которых в наименовании нормы присутствует ГОСТ 5542||align="center"|по алфавиту
|-
|-
|align="center"|2||<code>Введите номер паспорта:</code>||align="center"|ввод текста||1 (значение по умолчанию)||align="center"|-
|align="center"|2||<code>Введите номер паспорта:</code>||align="center"|ввод текста||1 (значение по умолчанию)||align="center"|-
Строка 44: Строка 48:
*Дата поставки пробы
*Дата поставки пробы
*Полное наименование
*Полное наименование
*Код ОКПД 2
</div>
</div>


Строка 91: Строка 96:
<code style="background-color: #fff3e0;>Fields!head_org_address.Value, Fields!head_org_tel.Value, Fields!head_org_mail.Value</code> >> <code style="background-color: #fff3e0;>head_org_address, head_org_tel, head_org_mail / OrganisationDataSet</code> >> <code style="background-color: #fff3e0;>VALUE / LONGTEXT_STORAGE</code>, <code style="background-color: #fff3e0;>STRING_VALUE / COMPANY_LEVEL_ATTRIBUTE</code>
<code style="background-color: #fff3e0;>Fields!head_org_address.Value, Fields!head_org_tel.Value, Fields!head_org_mail.Value</code> >> <code style="background-color: #fff3e0;>head_org_address, head_org_tel, head_org_mail / OrganisationDataSet</code> >> <code style="background-color: #fff3e0;>VALUE / LONGTEXT_STORAGE</code>, <code style="background-color: #fff3e0;>STRING_VALUE / COMPANY_LEVEL_ATTRIBUTE</code>
|<syntaxhighlight lang="vb">=Fields!head_org_address.Value & vbLF & "тел, e-mail: " & ConcatFields("; ", Fields!head_org_tel.Value, Fields!head_org_mail.Value)</syntaxhighlight>
|<syntaxhighlight lang="vb">=Fields!head_org_address.Value & vbLF & "тел, e-mail: " & ConcatFields("; ", Fields!head_org_tel.Value, Fields!head_org_mail.Value)</syntaxhighlight>
используются:
*перенос строки (<code>vbLF</code>);
*для соединения полей функция [[Scripts#ConcatFields()|<code>ConcatFields()</code>]];
|-
|-
|Наименование лаборатории
|Наименование лаборатории
Строка 114: Строка 122:
|Должность
|Должность
|<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: #d4edda;>Должность</code>
<code style="background-color: #fff3e0;>Fields!position.Value</code> >> <code style="background-color: #fff3e0;>position / FilterDataSetFioHead</code> >> <code style="background-color: #fff3e0;>SURNAME; NAME; PATRONYMIC / EMPLOYEE</code>
<code style="background-color: #fff3e0;>Fields!position.Value</code> >> <code style="background-color: #fff3e0;>position / FilterDataSetFio</code> >> <code style="background-color: #fff3e0;>SURNAME; NAME; PATRONYMIC / EMPLOYEE</code>
|<syntaxhighlight lang="vb">=First(Fields!position.Value)</syntaxhighlight>
|<syntaxhighlight lang="vb">=First(Fields!position.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: #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!lab_name.Value</code> >> <code style="background-color: #fff3e0;>lab_name / FilterDataSetFioHead</code> >> <code style="background-color: #fff3e0;>SHORT_NAME / COMPANY_LEVEL</code>
<code style="background-color: #fff3e0;>Fields!lab_name.Value</code> >> <code style="background-color: #fff3e0;>lab_name / FilterDataSetFio</code> >> <code style="background-color: #fff3e0;>SHORT_NAME / COMPANY_LEVEL</code>
|<syntaxhighlight lang="vb">=First(Fields!lab_name.Value)</syntaxhighlight>
|<syntaxhighlight lang="vb">=First(Fields!lab_name.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: #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!surname.Value, Fields!name.Value, Fields!patronimyc.Value</code> >> <code style="background-color: #fff3e0;>surname, name, patronimyc / FilterDataSetFioHead</code> >> <code style="background-color: #fff3e0;>SURNAME; NAME; PATRONYMIC / EMPLOYEE</code>
<code style="background-color: #fff3e0;>Fields!surname.Value, Fields!name.Value, Fields!patronimyc.Value</code> >> <code style="background-color: #fff3e0;>surname, name, patronimyc / FilterDataSetFio</code> >> <code style="background-color: #fff3e0;>SURNAME; NAME; PATRONYMIC / EMPLOYEE</code>
|<syntaxhighlight lang="vb">=FormatFio(Fields!surname.Value, Fields!name.Value, Fields!patronimyc.Value, 2)</syntaxhighlight>
|<syntaxhighlight lang="vb">=FormatFio(Fields!surname.Value, Fields!name.Value, Fields!patronimyc.Value, 2)</syntaxhighlight>
*используется функция [[Scripts#FormatFio()|<code>FormatFio()</code>]]
|-
|-
|}
|}
Строка 144: Строка 153:
|<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: #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: #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: #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!ao_full_name.Value, Fields!quant_norm.Value</code> >> <code style="background-color: #fff3e0;>ao_full_name, quant_norm / MainDataSet</code> >> <code style="background-color: #fff3e0;>STRING_VALUE / ANALYSIS_OBJECT_ATTRIBUTE</code>, <code style="background-color: #fff3e0;>NAME / QUANTITATIVE_NORM</code>
<code style="background-color: #fff3e0;>Fields!ao_full_name.Value, Fields!quant_norm.Value</code> >> <code style="background-color: #fff3e0;>ao_full_name, quant_norm / MainDataSet</code> >> <code style="background-color: #fff3e0;>STRING_VALUE / ANALYSIS_OBJECT_ATTRIBUTE</code>, <code style="background-color: #fff3e0;>NAME / QUANTITATIVE_NORM</code>
|<syntaxhighlight lang="vb">=Fields!ao_full_name.Value & " по " & Fields!quant_norm.Value</syntaxhighlight>
|<syntaxhighlight lang="vb">=Fields!ao_full_name.Value & " по " & Fields!quant_norm.Value</syntaxhighlight>
|-
|-
|Код ОКПД2
|Код ОКПД2
|<nowiki>-</nowiki>
|<code style="background-color: #d4edda;>Объекты анализа</code> >> Выбрать объект >> <code style="background-color: #d4edda;>Редактировать</code> >> <code style="background-color: #d4edda;>Карточка объекта анализа</code> >> <code style="background-color: #d4edda;>Код ОКПД 2</code>
|<syntaxhighlight lang="vb">-</syntaxhighlight>
 
<code style="background-color: #fff3e0;>Fields!code_okpd2.Value</code> >> <code style="background-color: #fff3e0;>code_okpd2 / MainDataSet</code> >> <code style="background-color: #fff3e0;>STRING_VALUE / ANALYSIS_OBJECT_ATTRIBUTE</code>
|<syntaxhighlight lang="vb">="Код ОКПД 2 " & Fields!code_okpd2.Value</syntaxhighlight>
|-
|-
|Паспорт качества распространяется на объемы газа, поданного через газораспределительные станции:
|Паспорт качества распространяется на объемы газа, поданного через газораспределительные станции:
Строка 190: Строка 202:
|-
|-
|Наименование показателя
|Наименование показателя
|
|<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: #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!group_number.Value, Fields!met_ind_name.Value, Fields!ind_name.Value, Fields!unit.Value</code> >> <code style="background-color: #fff3e0;>group_number, met_ind_name, ind_name, unit / ResultDataSet</code> >> <code style="background-color: #fff3e0;>INTEGER_VALUE / INDICATOR_ATTRIBUTE</code>, <code style="background-color: #fff3e0;>INDICATOR_METHODOLOGY_NAME / METHODOLOGY_INDICATOR</code>, <code style="background-color: #fff3e0;>NAME / INDICATOR</code>, <code style="background-color: #fff3e0;>HTML_NAME / UNIT</code>
<code style="background-color: #fff3e0;>Fields!group_number.Value, Fields!met_ind_name.Value, Fields!ind_name.Value, Fields!unit.Value</code> >> <code style="background-color: #fff3e0;>group_number, met_ind_name, ind_name, unit / ResultDataSet</code> >> <code style="background-color: #fff3e0;>INTEGER_VALUE / INDICATOR_ATTRIBUTE</code>, <code style="background-color: #fff3e0;>INDICATOR_METHODOLOGY_NAME / METHODOLOGY_INDICATOR</code>, <code style="background-color: #fff3e0;>NAME / INDICATOR</code>, <code style="background-color: #fff3e0;>HTML_NAME / UNIT</code>
|<syntaxhighlight lang="vb">=GetIndName(Fields!group_number.Value, Fields!met_ind_name.Value, Fields!ind_name.Value, Fields!unit.Value)</syntaxhighlight>
|<syntaxhighlight lang="vb">=GetIndName(Fields!group_number.Value, Fields!met_ind_name.Value, Fields!ind_name.Value, Fields!unit.Value)</syntaxhighlight>
<syntaxhighlight lang="vb">
Public Function GetIndName(group As Integer, methIndName As Object, indName As Object, unit As Object) As String
Dim resultName As String = ""
If methIndName IsNot Nothing AndAlso Not IsDBNull(methIndName) AndAlso Not String.IsNullOrWhiteSpace(methIndName.ToString()) Then
resultName = methIndName.ToString().Trim()
ElseIf indName IsNot Nothing AndAlso Not IsDBNull(indName) Then
resultName = indName.ToString().Trim()
End If
If unit IsNot Nothing AndAlso Not IsDBNull(unit) AndAlso Not String.IsNullOrWhiteSpace(unit.ToString()) Then
If group <> 1 Then
Dim unitStr As String = RemoveTagsWithSupIndex(unit)
resultName &= ", " & unitStr
End If
End If
If resultName = "Метан" Then
resultName = "Молярная доля компонентов (компонентный состав), %" & vbLf & resultName
End If
Return resultName
End Function
</syntaxhighlight>
<syntaxhighlight lang="vb">
Public Function RemoveTagsWithSupIndex(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 Replace(txt, "3", "³", , , CompareMethod.Text)
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: #d4edda;>Нормативный документ</code>
<code style="background-color: #fff3e0;>Fields!norm_document.Value</code>  >> <code style="background-color: #fff3e0;>norm_document / ResultDataSet</code> >> <code style="background-color: #fff3e0;>NORMATIVE_DOCUMENT / METHODOLOGY</code>
<code style="background-color: #fff3e0;>Fields!norm_document.Value</code>  >> <code style="background-color: #fff3e0;>norm_document / ResultDataSet</code> >> <code style="background-color: #fff3e0;>NORMATIVE_DOCUMENT / METHODOLOGY</code>
|<syntaxhighlight lang="vb">=GetOrDash(Fields!norm_document.Value)</syntaxhighlight>
|<syntaxhighlight lang="vb">=GetOrDash(Fields!norm_document.Value)</syntaxhighlight>
*используется функция [[Scripts#GetOrDash()|<code>GetOrDash()</code>]]
|-
|-
|Норма минимальная и максимальная (строка 1)
|Норма минимальная и максимальная (строка 1)
|
|rowspan = "3"| <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: #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: #d4edda;>Нижний предел, Округление</code>
 
<code style="background-color: #fff3e0;>Fields!serial_number.Value, Fields!group_number.Value, Fields!min.Value, Fields!comment.Value, Fields!limit_scale.Value</code> >> <code style="background-color: #fff3e0;>serial_number, group_number, min, comment, limit_scale / ResultDataSet</code> >> <code style="background-color: #fff3e0;>INTEGER_VALUE / INDICATOR_ATTRIBUTE</code>, <code style="background-color: #fff3e0;>LOWER_LIMIT, COMMENT, LIMIT_SCALE / QUANTITATIVE_NORM</code>
<code style="background-color: #fff3e0;>Fields!serial_number.Value, Fields!group_number.Value, Fields!min.Value, Fields!comment.Value, Fields!limit_scale.Value</code> >> <code style="background-color: #fff3e0;>serial_number, group_number, min, comment, limit_scale / ResultDataSet</code> >> <code style="background-color: #fff3e0;>INTEGER_VALUE / INDICATOR_ATTRIBUTE</code>, <code style="background-color: #fff3e0;>LOWER_LIMIT, COMMENT, LIMIT_SCALE / QUANTITATIVE_NORM</code>
|<syntaxhighlight lang="vb">=IIF(Fields!serial_number.Value = 1, GetNorms(Fields!group_number.Value, Fields!min.Value, Fields!comment.Value, Fields!limit_scale.Value), "")</syntaxhighlight>
|<syntaxhighlight lang="vb">=IIF(Fields!serial_number.Value = 1, GetNorms(Fields!group_number.Value, Fields!min.Value, Fields!comment.Value, Fields!limit_scale.Value), "")</syntaxhighlight>
<syntaxhighlight lang="vb">
Public Function GetNorms(groupNumber As Integer, norm As String, comment As String, scale As Object) As String
If groupNumber = 1 Or groupNumber = 8 Or groupNumber = 9 Or groupNumber = 10 Then Return comment
If norm = "0" Or norm Like "*0*(0)*" Then Return "-"
If groupNumber = 6 Or groupNumber = 7 Then Return norm.Replace(".", ",")
If scale IsNot Nothing Then Return RoundMethod(Double.Parse(norm.Replace(".", ",")), Integer.Parse(scale), 1)
Return norm.Replace(".", ",")
End Function
</syntaxhighlight>
*используется функция [[Глобальные_функции#Rounding.RoundBase()|<code>Rounding.RoundBase()</code>]]
|-
|-
|Норма минимальная и максимальная (строка 2)
|Норма минимальная и максимальная (строка 2)
|
|<syntaxhighlight lang="vb">=GetNorms(Fields!group_number.Value, Fields!min.Value, Fields!comment.Value, Fields!limit_scale.Value)</syntaxhighlight>
|<syntaxhighlight lang="vb">=GetNorms(Fields!group_number.Value, Fields!min.Value, Fields!comment.Value, Fields!limit_scale.Value)</syntaxhighlight>
|-
|-
|Норма минимальная (строка 3)
|Норма минимальная (строка 3)
|
|<syntaxhighlight lang="vb">=GetNorms(Fields!group_number.Value, Fields!min.Value, Fields!comment.Value, Fields!limit_scale.Value)</syntaxhighlight>
|<syntaxhighlight lang="vb">=GetNorms(Fields!group_number.Value, Fields!min.Value, Fields!comment.Value, Fields!limit_scale.Value)</syntaxhighlight>
|-
|-
|Норма максимальная (строка 3)
|Норма максимальная (строка 3)
|
|Вместо <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: #d4edda;>Нормы</code> >> <code style="background-color: #d4edda;>Верхний предел</code><br>
Вместо <code style="background-color: #fff3e0;>min</code> используется  <code style="background-color: #fff3e0;>Fields!max.Value</code> >> <code style="background-color: #fff3e0;>max / ResultDataSet</code> >> <code style="background-color: #fff3e0;>UPPER_LIMIT / QUANTITATIVE_NORM</code>
|<syntaxhighlight lang="vb">=GetNorms(Fields!group_number.Value, Fields!max.Value, Fields!comment.Value, Fields!limit_scale.Value)</syntaxhighlight>
|<syntaxhighlight lang="vb">=GetNorms(Fields!group_number.Value, Fields!max.Value, Fields!comment.Value, Fields!limit_scale.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: #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: #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: #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: #d4edda;>Округление</code> >> Выбрать показатель >> <code style="background-color: #d4edda;>Представление результата анализа</code>
<code style="background-color: #fff3e0;>Fields!group_number.Value, Fields!ind_name.Value, Fields!num_result.Value, Fields!str_result.Value, Fields!min.Value, Fields!max.Value, Fields!round_num.Value, Fields!round_type.Value</code> >> <code style="background-color: #fff3e0;>group_number, ind_name, num_result, str_result, min, max, round_num, round_type / ResultDataSet</code> >> <code style="background-color: #fff3e0;>INTEGER_VALUE / INDICATOR_ATTRIBUTE</code>, <code style="background-color: #fff3e0;>NAME / INDICATOR</code>, <code style="background-color: #fff3e0;>AVG_R / JOURNAL_RESULT</code>, <code style="background-color: #fff3e0;>LOWER_LIMIT, UPPER_LIMIT / QUANTITATIVE_NORM</code>, <code style="background-color: #fff3e0;>NUMBER, TYPE / STANDARD_ROUND_RESULT</code>
|<syntaxhighlight lang="vb">=GetResult(Fields!group_number.Value, Fields!ind_name.Value, Fields!num_result.Value, Fields!str_result.Value, Fields!min.Value, Fields!max.Value, Fields!round_num.Value, Fields!round_type.Value)</syntaxhighlight>
|<syntaxhighlight lang="vb">=GetResult(Fields!group_number.Value, Fields!ind_name.Value, Fields!num_result.Value, Fields!str_result.Value, Fields!min.Value, Fields!max.Value, Fields!round_num.Value, Fields!round_type.Value)</syntaxhighlight>
<syntaxhighlight lang="vb">
Public Function GetResult(group As Integer, ind As String, numRes As Double, strRes As String, min As Object, max As Object, digits As Object, mode As Object) As String
If group = 6 Or group = 7 Then
Dim arr() As String = strRes.Split(" "c)
   
Dim firstNum As Double = Double.Parse(arr(0).Replace(".", ","))
Dim secondNum As Double = Double.Parse(arr(1).Replace(".", ",").Replace("(", "").Replace(")", ""))
Return RoundMethod(firstNum, 2, 1) & " (" & RoundMethod(secondNum, 0, 1) & ")"
End If
If ind.ToLower() Like "*еханич*римес*" And strRes = "0" Then
Return "отсутствуют"
End If
If group = 1 Or group = 8 Or group = 9 Then
Return RoundMethod(numRes, digits, mode)
End If
Dim numMin As Double
If min Is Nothing OrElse IsDBNull(min) OrElse String.IsNullOrWhiteSpace(min.ToString()) Then
numMin = Double.MinValue
Else
numMin = Val(min.ToString().Replace(",", "."))
End If
Dim numMax As Double
If max Is Nothing OrElse IsDBNull(max) OrElse String.IsNullOrWhiteSpace(max.ToString()) Then
numMax = Double.MaxValue
Else
numMax = Val(max.ToString().Replace(",", "."))
End If
If numRes < numMin Then
Return "менее " & min.ToString()
ElseIf numRes > numMax Then
Return "более " & max.ToString()
Else
Return RoundMethod(numRes, digits, mode) 
End If   
End Function
</syntaxhighlight>
*используется функция [[Глобальные_функции#Rounding.RoundBase()|<code>Rounding.RoundBase()</code>]]
|-
|-
|}
|}
Строка 231: Строка 349:
|-
|-
|1. Значения и нормы показателей ... установлены при стандартном давлении 101,325 кПа и стандартной температуре 20,0 °С. Стандартная температура сгорания 25,0 °С.
|1. Значения и нормы показателей ... установлены при стандартном давлении 101,325 кПа и стандартной температуре 20,0 °С. Стандартная температура сгорания 25,0 °С.
|
|<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>
|<syntaxhighlight lang="vb">="1. Значения и нормы показателей " & CollapseNumbers(LookupSet(True, Fields!standart_norm.Value, Fields!group_index.Value, "ResultDataSet")) & " установлены при стандартном давлении 101,325 кПа и стандартной температуре 20,0 °С. Стандартная температура сгорания 25,0 °С."</syntaxhighlight>
 
<code style="background-color: #fff3e0;>Fields!standart_norm.Value</code> >> <code style="background-color: #fff3e0;>standart_norm / NoteDataSet</code> >> <code style="background-color: #fff3e0;>BOOLEAN_VALUE / INDICATOR_ATTRIBUTE</code>
 
<code style="background-color: #fff3e0;>Fields!group_index.Value</code> >> <code style="background-color: #fff3e0;>group_index / NoteDataSet</code> >> <code style="background-color: #fff3e0;>SQL</code>
|<syntaxhighlight lang="vb">="1. Значения и нормы показателей " & CollapseNumbers(LookupSet(True, Fields!standart_norm.Value, Fields!group_index.Value, "NoteDataSet")) & " установлены при стандартном давлении 101,325 кПа и стандартной температуре 20,0 °С. Стандартная температура сгорания 25,0 °С."</syntaxhighlight>
*используется функция [[Scripts#CollapseNumbers()|<code>CollapseNumbers()</code>]]
|-
|-
|2. Нормы и значения показателей ... установлены при давлении в точке отбора пробы.
|2. Нормы и значения показателей ... установлены при давлении в точке отбора пробы.
|
|<code style="background-color: #d4edda;>Методики анализа</code> >> Выбрать методику >> <code style="background-color: #d4edda;>Редактировать</code> >> <code style="background-color: #d4edda;>Карточка методики анализа</code> >> <code style="background-color: #d4edda;>Наименование по методике</code>
|<syntaxhighlight lang="vb">="2. Нормы и значения показателей " &  CollapseNumbers(LookupSet(1, 1, GetNumForNote23(Fields!group_index.Value, Fields!met_ind_name.Value, Fields!ind_name.Value), "ResultDataSet")) &  " установлены при давлении в точке отбора пробы."</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!group_index.Value</code> >> <code style="background-color: #fff3e0;>group_index / NoteDataSet</code> >> <code style="background-color: #fff3e0;>SQL</code>
 
<code style="background-color: #fff3e0;>Fields!met_ind_name.Value, Fields!ind_name.Value</code> >> <code style="background-color: #fff3e0;>met_ind_name, ind_name / NoteDataSet</code> >> <code style="background-color: #fff3e0;>INTEGER_VALUE / INDICATOR_ATTRIBUTE</code>, <code style="background-color: #fff3e0;>INDICATOR_METHODOLOGY_NAME / METHODOLOGY_INDICATOR</code>
|<syntaxhighlight lang="vb">="2. Нормы и значения показателей " &  CollapseNumbers(LookupSet(1, 1, GetNumForNote23(Fields!group_index.Value, Fields!met_ind_name.Value, Fields!ind_name.Value), "NoteDataSet")) &  " установлены при давлении в точке отбора пробы."</syntaxhighlight>
*используется функция [[Scripts#CollapseNumbers()|<code>CollapseNumbers()</code>]]
<syntaxhighlight lang="vb">
Public Function GetNumForNote23(group As Object, methIndName As Object, indName As Object) As Object
Dim text As String = ""
If methIndName IsNot Nothing AndAlso Not IsDBNull(methIndName) Then
text = methIndName.ToString()
ElseIf indName IsNot Nothing AndAlso Not IsDBNull(indName) Then
text = indName.ToString()
End If
 
If LCase(text) Like "*емпер*точк*ос*" Then
Return group
End If
Return Nothing
End Function
</syntaxhighlight>
|-
|-
|3. Температура газа в точке отбора пробы при определении показателей ...
|3. Температура газа в точке отбора пробы при определении показателей ...
|
|<code style="background-color: #d4edda;>Методики анализа</code> >> Выбрать методику >> <code style="background-color: #d4edda;>Редактировать</code> >> <code style="background-color: #d4edda;>Карточка методики анализа</code> >> <code style="background-color: #d4edda;>Наименование по методике</code>
|<syntaxhighlight lang="vb">="3. Температура газа в точке отбора пробы при определении показателей " &  CollapseNumbers(LookupSet(1, 1, GetNumForNote23(Fields!group_number.Value, Fields!met_ind_name.Value, Fields!ind_name.Value), "ResultDataSet"))</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: #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: #d4edda;>Температура газа</code>
 
<code style="background-color: #fff3e0;>Fields!group_index.Value</code> >> <code style="background-color: #fff3e0;>group_index / NoteDataSet</code> >> <code style="background-color: #fff3e0;>SQL</code>
 
<code style="background-color: #fff3e0;>Fields!met_ind_name.Value, Fields!ind_name.Value, Fields!temperature.Value</code> >> <code style="background-color: #fff3e0;>met_ind_name, ind_name, temperature / NoteDataSet</code> >> <code style="background-color: #fff3e0;>INTEGER_VALUE / INDICATOR_ATTRIBUTE</code>, <code style="background-color: #fff3e0;>INDICATOR_METHODOLOGY_NAME / METHODOLOGY_INDICATOR</code>, <code style="background-color: #fff3e0;>VALUE / JRPARALLELVARS</code>
 
|<syntaxhighlight lang="vb">="3. Температура газа в точке отбора пробы при определении показателей " &  CollapseNumbers(LookupSet(1, 1, GetNumForNote23(Fields!group_index.Value, Fields!met_ind_name.Value, Fields!ind_name.Value), "NoteDataSet"))</syntaxhighlight>
*используется функция [[Scripts#CollapseNumbers()|<code>CollapseNumbers()</code>]]
<syntaxhighlight lang="vb">=Format(Max(Fields!temperature.Value), "0.##")</syntaxhighlight>
<syntaxhighlight lang="vb">=Format(Max(Fields!temperature.Value), "0.##")</syntaxhighlight>
|-
|-
|4. Значения показателей ... определены потоковыми средствами измерений (среднеарифметическое значение за период поставки).
|4. Значения показателей ... определены потоковыми средствами измерений (среднеарифметическое значение за период поставки).
|
|<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!group_index.Value</code> >> <code style="background-color: #fff3e0;>group_index / NoteDataSet</code> >> <code style="background-color: #fff3e0;>SQL</code>
 
<code style="background-color: #fff3e0;>Fields!definition.Value</code> >> <code style="background-color: #fff3e0;>definition / NoteDataSet</code> >> <code style="background-color: #fff3e0;>STRING_VALUE / JOURNAL_RESULT_ATTRIBUTE</code>
|<syntaxhighlight lang="vb">=CollapseNumbers(LookupSet(1, 1, GetNumForNote4(Fields!group_index.Value, Fields!definition.Value), "NoteDataSet"))</syntaxhighlight>
|<syntaxhighlight lang="vb">=CollapseNumbers(LookupSet(1, 1, GetNumForNote4(Fields!group_index.Value, Fields!definition.Value), "NoteDataSet"))</syntaxhighlight>
*используется функция [[Scripts#CollapseNumbers()|<code>CollapseNumbers()</code>]]
<syntaxhighlight lang="vb">
Public Function GetNumForNote4(group As Object, definition As Object) As Object
If definition Is Nothing Then Return Nothing
If LCase(definition.ToString()) Like "*ото*си*" Then Return group
Return Nothing
End Function
</syntaxhighlight>
|-
|-
|5. Значения показателей ... определены ...
|5. Значения показателей ... определены ...
|
|<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!group_index.Value</code> >> <code style="background-color: #fff3e0;>group_index / NoteDataSet</code> >> <code style="background-color: #fff3e0;>SQL</code>
 
<code style="background-color: #fff3e0;>Fields!definition.Value</code> >> <code style="background-color: #fff3e0;>definition / NoteDataSet</code> >> <code style="background-color: #fff3e0;>STRING_VALUE / JOURNAL_RESULT_ATTRIBUTE</code>
 
<code>=Parameters!ReportParameterLaboratory.Label</code>
|<syntaxhighlight lang="vb">=CollapseNumbers(LookupSet(1, 1, GetNumForNote5(Fields!group_index.Value, Fields!definition.Value, Fields!first_45.Value), "NoteDataSet"))</syntaxhighlight>
|<syntaxhighlight lang="vb">=CollapseNumbers(LookupSet(1, 1, GetNumForNote5(Fields!group_index.Value, Fields!definition.Value, Fields!first_45.Value), "NoteDataSet"))</syntaxhighlight>
*используется функция [[Scripts#CollapseNumbers()|<code>CollapseNumbers()</code>]]
<syntaxhighlight lang="vb">
Public Function GetNumForNote5(group As Object, definition As Object, first_45 As Boolean) As Object
If first_45 AndAlso group = 1 Then Return Nothing
If definition Is Nothing OrElse Not (LCase(definition.ToString()) Like "*ото*си*") Then Return group
Return Nothing
End Function
</syntaxhighlight>
<syntaxhighlight lang="vb">=Parameters!ReportParameterLaboratory.Label</syntaxhighlight>
<syntaxhighlight lang="vb">=Parameters!ReportParameterLaboratory.Label</syntaxhighlight>
|-
|-
Строка 263: Строка 449:
|-
|-
|Должность
|Должность
|
|<code style="background-color: #d4edda;>Персонал</code> >> Выбрать запись >> <code style="background-color: #d4edda;>Карточка сотрудника</code> >> <code style="background-color: #d4edda;>Должность</code>
<code style="background-color: #fff3e0;>Fields!position.Value</code> >> <code style="background-color: #fff3e0;>position / FilterDataSetFio</code> >> <code style="background-color: #fff3e0;>SURNAME; NAME; PATRONYMIC / EMPLOYEE</code>
|<syntaxhighlight lang="vb">=Fields!position.Value</syntaxhighlight>
|<syntaxhighlight lang="vb">=Fields!position.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!surname.Value, Fields!name.Value, Fields!patronimyc.Value</code> >> <code style="background-color: #fff3e0;>surname, name, patronimyc / FilterDataSetFio</code> >> <code style="background-color: #fff3e0;>SURNAME; NAME; PATRONYMIC / EMPLOYEE</code>
|<syntaxhighlight lang="vb">=FormatFio(Fields!surname.Value, Fields!name.Value, Fields!patronymic.Value, 2)</syntaxhighlight>
|<syntaxhighlight lang="vb">=FormatFio(Fields!surname.Value, Fields!name.Value, Fields!patronymic.Value, 2)</syntaxhighlight>
*используется функция [[Scripts#FormatFio()|<code>FormatFio()</code>]]
|-
|-
|}
|}

Текущая версия от 10:05, 31 марта 2026

Общий вид

Параметры

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

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

Внимание!

Также для фильтров п.6 и п.7 используются составные поля в DataSet, образующиеся с помощью функции FormatFio():

Атрибуты

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

  • Адрес
  • Телефоны
  • E-mail

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

  • НД на отбор проб
  • Дата и время отбора пробы
  • Дата поставки пробы
  • Полное наименование
  • Код ОКПД 2

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

  • Группа в паспорт качества
  • Номер в паспорт качества
  • Дата поставки пробы

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

  • Дата поставки пробы
  • Определен
  • Группа в паспорт качества
  • Номер в паспорт качества
  • Норма при стандартных условиях

Внимание!

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

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

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

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

Информация об организации

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

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

Код и комментарии
Наименование организации Подразделения предприятия >> + >> Выбрать предприятие >> Редактировать >> Карточка подразделения >> Краткое наименование

Fields!head_org.Value >> head_org / OrganisationDataSet >> SHORT_NAME / COMPANY_LEVEL

=Fields!head_org.Value
Адрес, телефоны, e-mail Подразделения предприятия >> + >> Выбрать предприятие >> Редактировать >> Карточка подразделения >> Адрес, Телефоны, E-mail

Fields!head_org_address.Value, Fields!head_org_tel.Value, Fields!head_org_mail.Value >> head_org_address, head_org_tel, head_org_mail / OrganisationDataSet >> VALUE / LONGTEXT_STORAGE, STRING_VALUE / COMPANY_LEVEL_ATTRIBUTE

=Fields!head_org_address.Value & vbLF & "тел, e-mail: " & ConcatFields("; ", Fields!head_org_tel.Value, Fields!head_org_mail.Value)

используются:

  • перенос строки (vbLF);
  • для соединения полей функция ConcatFields();
Наименование лаборатории Подразделения предприятия >> + >> Выбрать подразделение >> Редактировать >> Карточка подразделения >> Краткое наименование

Fields!lab_name.Value >> lab_name / OrganisationDataSet >> SHORT_NAME / COMPANY_LEVEL

=Fields!lab_name.Value
Адрес лаборатории Подразделения предприятия >> + >> Выбрать подразделение >> Редактировать >> Карточка подразделения >> Адрес

Fields!lab_address.Value >> lab_address / OrganisationDataSet >> VALUE / LONGTEXT_STORAGE

=Fields!lab_address.Value

Блок утверждения

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

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

Код и комментарии
Должность Персонал >> Выбрать запись >> Карточка сотрудника >> Должность

Fields!position.Value >> position / FilterDataSetFio >> SURNAME; NAME; PATRONYMIC / EMPLOYEE

=First(Fields!position.Value)
Лаборатория Подразделения предприятия >> + >> Выбрать подразделение >> Редактировать >> Карточка подразделения >> Краткое наименование

Fields!lab_name.Value >> lab_name / FilterDataSetFio >> SHORT_NAME / COMPANY_LEVEL

=First(Fields!lab_name.Value)
И.О. Фамилия Персонал >> Выбрать запись >> Карточка сотрудника >> Фамилия; Имя; Отчество

Fields!surname.Value, Fields!name.Value, Fields!patronimyc.Value >> surname, name, patronimyc / FilterDataSetFio >> SURNAME; NAME; PATRONYMIC / EMPLOYEE

=FormatFio(Fields!surname.Value, Fields!name.Value, Fields!patronimyc.Value, 2)

Общие данные паспорта

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

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

Код и комментарии
Номер паспорта качества Parameters!ReportParameterNum.Value
="Паспорт качества № " & Parameters!ReportParameterNum.Value
Наименование объекта анализа и наименование стандарта Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Полное наименование

Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Нормы >> Наименование

Fields!ao_full_name.Value, Fields!quant_norm.Value >> ao_full_name, quant_norm / MainDataSet >> STRING_VALUE / ANALYSIS_OBJECT_ATTRIBUTE, NAME / QUANTITATIVE_NORM

=Fields!ao_full_name.Value & " по " & Fields!quant_norm.Value
Код ОКПД2 Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Код ОКПД 2

Fields!code_okpd2.Value >> code_okpd2 / MainDataSet >> STRING_VALUE / ANALYSIS_OBJECT_ATTRIBUTE

="Код ОКПД 2 " & Fields!code_okpd2.Value
Паспорт качества распространяется на объемы газа, поданного через газораспределительные станции: Parameters!ReportParameterStation.Value
=IIF(Parameters!ReportParameterStation.Value = "-", "", Parameters!ReportParameterStation.Value)
Дата (период) отбора проб Лабораторные журналы >> Журнал регистрации проб и испытаний >> Выбрать пробу >> Редактировать >> Карточка пробы >> Информация >> Дата и время отбора пробы

Fields!sampling_date.Value >> sampling_date / MainDataSet >> DATE_VALUE / JOURNAL_RECORD_ATTRIBUTE

=Format(Min(Fields!sampling_date.Value), "dd.MM.yyyy") & " - " & Format(Max(Fields!sampling_date.Value), "dd.MM.yyyy")
НД на метод отбора Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> НД на отбор проб

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

=First(Fields!sampling_norm_doc.Value)
Место отбора проб Лабораторные журналы >> Журнал регистрации проб и испытаний >> Выбрать пробу >> Редактировать >> Карточка пробы >> Источник >> Выбранный источник

Fields!place_name.Value >> place_name / MainDataSet >> SHORT_NAME / SAMPLE_SOURCE

=First(Fields!place_name.Value)
Дата (период) испытаний Лабораторные журналы >> Журнал регистрации проб и испытаний >> Выбрать пробу >> Редактировать >> Карточка пробы >> Информация >> Дата поставки пробы

Fields!delivery_date.Value >> delivery_date / MainDataSet >> DATE_VALUE / JOURNAL_RECORD_ATTRIBUTE

=Format(Min(Fields!delivery_date.Value), "dd.MM.yyyy") & " - " & Format(Max(Fields!delivery_date.Value), "dd.MM.yyyy")

Таблица результатов

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

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

Код и комментарии
Fields!group_index.Value >> group_index / ResultDataSet >> SQL
=Fields!group_index.Value & "."
Наименование показателя Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Группа в паспорт качества, Наименование

Методики анализа >> Выбрать методику >> Редактировать >> Карточка методики анализа >> Наименование по методике, Единица измерения

Fields!group_number.Value, Fields!met_ind_name.Value, Fields!ind_name.Value, Fields!unit.Value >> group_number, met_ind_name, ind_name, unit / ResultDataSet >> INTEGER_VALUE / INDICATOR_ATTRIBUTE, INDICATOR_METHODOLOGY_NAME / METHODOLOGY_INDICATOR, NAME / INDICATOR, HTML_NAME / UNIT

=GetIndName(Fields!group_number.Value, Fields!met_ind_name.Value, Fields!ind_name.Value, Fields!unit.Value)
Public Function GetIndName(group As Integer, methIndName As Object, indName As Object, unit As Object) As String
	
	Dim resultName As String = ""
	
	If methIndName IsNot Nothing AndAlso Not IsDBNull(methIndName) AndAlso Not String.IsNullOrWhiteSpace(methIndName.ToString()) Then
		resultName = methIndName.ToString().Trim()
	ElseIf indName IsNot Nothing AndAlso Not IsDBNull(indName) Then
		resultName = indName.ToString().Trim()
	End If
		
	If unit IsNot Nothing AndAlso Not IsDBNull(unit) AndAlso Not String.IsNullOrWhiteSpace(unit.ToString()) Then
		If group <> 1 Then
			Dim unitStr As String = RemoveTagsWithSupIndex(unit)
			resultName &= ", " & unitStr
		End If
	End If	
	
	If resultName = "Метан" Then
		resultName = "Молярная доля компонентов (компонентный состав), %" & vbLf & resultName
	End If
	
	Return resultName
	
End Function
Public Function RemoveTagsWithSupIndex(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 Replace(txt, "3", "³", , , CompareMethod.Text)
End Function
Метод испытания Методики анализа >> Выбрать методику >> Редактировать >> Карточка методики анализа >> Нормативный документ

Fields!norm_document.Value >> norm_document / ResultDataSet >> NORMATIVE_DOCUMENT / METHODOLOGY

=GetOrDash(Fields!norm_document.Value)
Норма минимальная и максимальная (строка 1) Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Номер в паспорт качества, Группа в паспорт качества

Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Нормы >> Нижний предел, Округление

Fields!serial_number.Value, Fields!group_number.Value, Fields!min.Value, Fields!comment.Value, Fields!limit_scale.Value >> serial_number, group_number, min, comment, limit_scale / ResultDataSet >> INTEGER_VALUE / INDICATOR_ATTRIBUTE, LOWER_LIMIT, COMMENT, LIMIT_SCALE / QUANTITATIVE_NORM

=IIF(Fields!serial_number.Value = 1, GetNorms(Fields!group_number.Value, Fields!min.Value, Fields!comment.Value, Fields!limit_scale.Value), "")
Public Function GetNorms(groupNumber As Integer, norm As String, comment As String, scale As Object) As String

	If groupNumber = 1 Or groupNumber = 8 Or groupNumber = 9 Or groupNumber = 10 Then Return comment
	If norm = "0" Or norm Like "*0*(0)*" Then Return "-"	
	If groupNumber = 6 Or groupNumber = 7 Then Return norm.Replace(".", ",")
	If scale IsNot Nothing Then Return RoundMethod(Double.Parse(norm.Replace(".", ",")), Integer.Parse(scale), 1)
	Return norm.Replace(".", ",")
	
End Function
Норма минимальная и максимальная (строка 2)
=GetNorms(Fields!group_number.Value, Fields!min.Value, Fields!comment.Value, Fields!limit_scale.Value)
Норма минимальная (строка 3)
=GetNorms(Fields!group_number.Value, Fields!min.Value, Fields!comment.Value, Fields!limit_scale.Value)
Норма максимальная (строка 3) Вместо Нижний предел используется Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Нормы >> Верхний предел

Вместо min используется Fields!max.Value >> max / ResultDataSet >> UPPER_LIMIT / QUANTITATIVE_NORM

=GetNorms(Fields!group_number.Value, Fields!max.Value, Fields!comment.Value, Fields!limit_scale.Value)
Результаты испытаний Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Группа в паспорт качества, Наименование

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

Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Нормы >> Нижний предел, Верхний предел

Методики анализа >> Выбрать методику >> Редактировать >> Карточка методики анализа >> Округление >> Округление >> Выбрать показатель >> Представление результата анализа

Fields!group_number.Value, Fields!ind_name.Value, Fields!num_result.Value, Fields!str_result.Value, Fields!min.Value, Fields!max.Value, Fields!round_num.Value, Fields!round_type.Value >> group_number, ind_name, num_result, str_result, min, max, round_num, round_type / ResultDataSet >> INTEGER_VALUE / INDICATOR_ATTRIBUTE, NAME / INDICATOR, AVG_R / JOURNAL_RESULT, LOWER_LIMIT, UPPER_LIMIT / QUANTITATIVE_NORM, NUMBER, TYPE / STANDARD_ROUND_RESULT

=GetResult(Fields!group_number.Value, Fields!ind_name.Value, Fields!num_result.Value, Fields!str_result.Value, Fields!min.Value, Fields!max.Value, Fields!round_num.Value, Fields!round_type.Value)
Public Function GetResult(group As Integer, ind As String, numRes As Double, strRes As String, min As Object, max As Object, digits As Object, mode As Object) As String
	
	If group = 6 Or group = 7 Then
		Dim arr() As String = strRes.Split(" "c)
    	
		Dim firstNum As Double = Double.Parse(arr(0).Replace(".", ","))
		Dim secondNum As Double = Double.Parse(arr(1).Replace(".", ",").Replace("(", "").Replace(")", ""))
		
		Return RoundMethod(firstNum, 2, 1) & " (" & RoundMethod(secondNum, 0, 1) & ")"
	End If
	
	If ind.ToLower() Like "*еханич*римес*" And strRes = "0" Then
		Return "отсутствуют"
	End If
	
	If group = 1 Or group = 8 Or group = 9 Then
		Return RoundMethod(numRes, digits, mode)
	End If
		
	Dim numMin As Double
	If min Is Nothing OrElse IsDBNull(min) OrElse String.IsNullOrWhiteSpace(min.ToString()) Then
		numMin = Double.MinValue
	Else 
		numMin = Val(min.ToString().Replace(",", "."))
	End If
		
	Dim numMax As Double
	If max Is Nothing OrElse IsDBNull(max) OrElse String.IsNullOrWhiteSpace(max.ToString()) Then
		numMax = Double.MaxValue
	Else 
		numMax = Val(max.ToString().Replace(",", "."))
	End If 
	
	If numRes < numMin Then 
		Return "менее " & min.ToString()
	ElseIf numRes > numMax Then
		Return "более " & max.ToString()
	Else
		Return RoundMethod(numRes, digits, mode)  
	End If    		

End Function

Примечания

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

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

Код и комментарии
1. Значения и нормы показателей ... установлены при стандартном давлении 101,325 кПа и стандартной температуре 20,0 °С. Стандартная температура сгорания 25,0 °С. Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Норма при стандартных условиях

Fields!standart_norm.Value >> standart_norm / NoteDataSet >> BOOLEAN_VALUE / INDICATOR_ATTRIBUTE

Fields!group_index.Value >> group_index / NoteDataSet >> SQL

="1. Значения и нормы показателей " & CollapseNumbers(LookupSet(True, Fields!standart_norm.Value, Fields!group_index.Value, "NoteDataSet")) & " установлены при стандартном давлении 101,325 кПа и стандартной температуре 20,0 °С. Стандартная температура сгорания 25,0 °С."
2. Нормы и значения показателей ... установлены при давлении в точке отбора пробы. Методики анализа >> Выбрать методику >> Редактировать >> Карточка методики анализа >> Наименование по методике

Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Наименование

Fields!group_index.Value >> group_index / NoteDataSet >> SQL

Fields!met_ind_name.Value, Fields!ind_name.Value >> met_ind_name, ind_name / NoteDataSet >> INTEGER_VALUE / INDICATOR_ATTRIBUTE, INDICATOR_METHODOLOGY_NAME / METHODOLOGY_INDICATOR

="2. Нормы и значения показателей " &  CollapseNumbers(LookupSet(1, 1, GetNumForNote23(Fields!group_index.Value, Fields!met_ind_name.Value, Fields!ind_name.Value), "NoteDataSet")) &  " установлены при давлении в точке отбора пробы."
Public Function GetNumForNote23(group As Object, methIndName As Object, indName As Object) As Object
	Dim text As String = ""
	If methIndName IsNot Nothing AndAlso Not IsDBNull(methIndName) Then
		text = methIndName.ToString()
	ElseIf indName IsNot Nothing AndAlso Not IsDBNull(indName) Then
		text = indName.ToString()
	End If

	If LCase(text) Like "*емпер*точк*ос*" Then
		Return group
	End If
	
	Return Nothing
End Function
3. Температура газа в точке отбора пробы при определении показателей ... Методики анализа >> Выбрать методику >> Редактировать >> Карточка методики анализа >> Наименование по методике

Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Наименование

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

Fields!group_index.Value >> group_index / NoteDataSet >> SQL

Fields!met_ind_name.Value, Fields!ind_name.Value, Fields!temperature.Value >> met_ind_name, ind_name, temperature / NoteDataSet >> INTEGER_VALUE / INDICATOR_ATTRIBUTE, INDICATOR_METHODOLOGY_NAME / METHODOLOGY_INDICATOR, VALUE / JRPARALLELVARS

="3. Температура газа в точке отбора пробы при определении показателей " &  CollapseNumbers(LookupSet(1, 1, GetNumForNote23(Fields!group_index.Value, Fields!met_ind_name.Value, Fields!ind_name.Value), "NoteDataSet"))
=Format(Max(Fields!temperature.Value), "0.##")
4. Значения показателей ... определены потоковыми средствами измерений (среднеарифметическое значение за период поставки). Лабораторные журналы >> Журнал регистрации проб и результатов >> Выбрать пробу >> Результаты >> Ввод результатов >> Определен

Fields!group_index.Value >> group_index / NoteDataSet >> SQL

Fields!definition.Value >> definition / NoteDataSet >> STRING_VALUE / JOURNAL_RESULT_ATTRIBUTE

=CollapseNumbers(LookupSet(1, 1, GetNumForNote4(Fields!group_index.Value, Fields!definition.Value), "NoteDataSet"))
Public Function GetNumForNote4(group As Object, definition As Object) As Object
	If definition Is Nothing Then Return Nothing
	
	If LCase(definition.ToString()) Like "*ото*си*" Then Return group	
	
	Return Nothing
End Function
5. Значения показателей ... определены ... Лабораторные журналы >> Журнал регистрации проб и результатов >> Выбрать пробу >> Результаты >> Ввод результатов >> Определен

Fields!group_index.Value >> group_index / NoteDataSet >> SQL

Fields!definition.Value >> definition / NoteDataSet >> STRING_VALUE / JOURNAL_RESULT_ATTRIBUTE

=Parameters!ReportParameterLaboratory.Label

=CollapseNumbers(LookupSet(1, 1, GetNumForNote5(Fields!group_index.Value, Fields!definition.Value, Fields!first_45.Value), "NoteDataSet"))
Public Function GetNumForNote5(group As Object, definition As Object, first_45 As Boolean) As Object
	If first_45 AndAlso group = 1 Then Return Nothing
		
	If definition Is Nothing OrElse Not (LCase(definition.ToString()) Like "*ото*си*") Then Return group

	Return Nothing
End Function
=Parameters!ReportParameterLaboratory.Label

Подписи

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

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

Код и комментарии
Должность Персонал >> Выбрать запись >> Карточка сотрудника >> Должность

Fields!position.Value >> position / FilterDataSetFio >> SURNAME; NAME; PATRONYMIC / EMPLOYEE

=Fields!position.Value
И.О. Фамилия Персонал >> Выбрать запись >> Карточка сотрудника >> Фамилия; Имя; Отчество

Fields!surname.Value, Fields!name.Value, Fields!patronimyc.Value >> surname, name, patronimyc / FilterDataSetFio >> SURNAME; NAME; PATRONYMIC / EMPLOYEE

=FormatFio(Fields!surname.Value, Fields!name.Value, Fields!patronymic.Value, 2)