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

Паспорт качества газа (ОСТ 089)

Материал из Химсофт Вики

Общий вид

Параметры

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

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

Атрибуты

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

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

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

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

В наборе данных 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

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

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

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

Код и комментарии
Номер паспорта качества 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
Период поставки -
=" с     " & Format(Parameters!ReportParameterFrom.Value, "HH:mm      dd.MM.yyyy")
="по     " & Format(Parameters!ReportParameterTo.Value, "HH:mm     dd.MM.yyyy")
Дата (период) отбора проб Лабораторные журналы >> Журнал регистрации проб и испытаний >> Выбрать пробу >> Редактировать >> Карточка пробы >> Информация >> Дата и время отбора пробы

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

=RangeDate(Min(Fields!sampling_date.Value), Max(Fields!sampling_date.Value))
Public Function RangeDate(minDate As Object, maxDate As Object) As String

	Dim hasMin As Boolean = Not minDate Is Nothing
	Dim hasMax As Boolean = Not maxDate Is Nothing

	If Not hasMin And Not hasMax Then Return "-"
	
	If hasMin And Not hasMax Then
		Return minDate.Date
	ElseIf Not hasMin And hasMax Then
		Return maxDate.Date
	ElseIf hasMin And hasMax Then
		If minDate.Date = maxDate.Date Then
			Return minDate.Date
		Else
			Return minDate.Date & " - " & maxDate.Date
		End If
	End If

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

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!min_date_analysis.Value, Fields!max_date_analysis.Value >> min_date_analysis, max_date_analysis / MainDataSet >> DATE_VALUE / JOURNAL_RESULT_ATTRIBUTE

=RangeDate(Fields!min_date_analysis.Value, Fields!max_date_analysis.Value)

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

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

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

Код и комментарии
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!max.Value, Fields!comment.Value, Fields!limit_scale.Value >> serial_number, group_number, min, max, comment, limit_scale / ResultDataSet >> INTEGER_VALUE / INDICATOR_ATTRIBUTE, LOWER_LIMIT, UPPER_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 = 11 Then Return comment
	If norm = "0" Or norm Like "*0*(0)*" Then Return "-"	
	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)
Норма (строки прочие)
=GetNorms(Fields!group_number.Value, Fields!min.Value, Fields!comment.Value, Fields!limit_scale.Value)
=GetNorms(Fields!group_number.Value, Fields!max.Value, Fields!comment.Value, Fields!limit_scale.Value)
Норма (строка 4) Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Номер в паспорт качества

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

Fields!group_index.Value, Fields!min.Value, Fields!max.Value, Fields!limit_scale.Value >> group_index, min, max, limit_scale / ResultDataSet >> INTEGER_VALUE / INDICATOR_ATTRIBUTE, LOWER_LIMIT, UPPER_LIMIT, LIMIT_SCALE / QUANTITATIVE_NORM

=GetNorms4(LookupSet(4, Fields!group_index.Value, Fields!min.Value, "ResultDataSet"), LookupSet(4, Fields!group_index.Value, Fields!limit_scale.Value, "ResultDataSet"))
=GetNorms4(LookupSet(4, Fields!group_index.Value, Fields!max.Value, "ResultDataSet"), LookupSet(4, Fields!group_index.Value, Fields!limit_scale.Value, "ResultDataSet"))
Public Function GetNorms4(norms As Object(), scales As Object()) As String
	
	Dim first As String = ""
	If norms(0) IsNot Nothing Then first = norms(0).ToString().Replace(".", ",")
	
	Dim second As String = ""
	If norms(1) IsNot Nothing Then second = norms(1).ToString().Replace(".", ",")
    
	If (first = "0" Or first = "") And (second = "0" Or second = "") Then Return "-"
	
	Dim result As New System.Text.StringBuilder()
		
	If Not String.IsNullOrEmpty(first) Then
		If scales.Length > 0 AndAlso scales(0) IsNot Nothing Then
			result.Append(RoundMethod(Double.Parse(first), Integer.Parse(scales(0)), 1)) 
		Else 
			result.Append(first) 
		End If
	End If
			
	If Not String.IsNullOrEmpty(second) Then
		result.Append(" (")
		
		If scales.Length > 1 AndAlso scales(1) IsNot Nothing Then
			result.Append(RoundMethod(Double.Parse(second), Integer.Parse(scales(1)), 1))
		Else 
			result.Append(second)
		End If
		
		result.Append(")")
	End If
	
	Return result.ToString()

End Function
Норма (строка 5)
=GetNorms56(Fields!group_index.Value, LookupSet(5, Fields!group_index.Value, Fields!min.Value, "ResultDataSet"), LookupSet(5, Fields!group_index.Value, Fields!limit_scale.Value, "ResultDataSet"))
=GetNorms56(Fields!group_index.Value, LookupSet(5, Fields!group_index.Value, Fields!max.Value, "ResultDataSet"), LookupSet(5, Fields!group_index.Value, Fields!limit_scale.Value, "ResultDataSet"))
Public Function GetNorms56(group As Integer, norms As Object(), scales As Object()) As String
	
	Dim first As String = ""
	If norms(0) IsNot Nothing Then first = norms(0).ToString().Replace(".", ",")
	
	Dim second As String = ""
	If norms(1) IsNot Nothing Then second = norms(1).ToString().Replace(".", ",")
	
	Dim result As New System.Text.StringBuilder() 
	result.Append(vbLF & vbLF & vbLF)
	
	If String.IsNullOrEmpty(first) OrElse first = "0" Then 
		first = "-"
	ElseIf scales.Length > 0 AndAlso scales(0) IsNot Nothing Then
			first = RoundMethod(Double.Parse(first), Integer.Parse(scales(0)), 1)
	End If
		
	If String.IsNullOrEmpty(second) OrElse second = "0" Then 
		second = "-"
	ElseIf scales.Length > 1 AndAlso scales(1) IsNot Nothing Then
		second = RoundMethod(Double.Parse(second), Integer.Parse(scales(1)), 1)
	End If
		
	If group = 5 Then
		result.Append(first & vbLF & second)
	Else 
		result.Append(vbLF & first & vbLF & second)
	End If
	
	Return result.ToString()
	
End Function
Норма (строка 6)
=GetNorms56(Fields!group_index.Value, LookupSet(6, Fields!group_index.Value, Fields!min.Value, "ResultDataSet"), LookupSet(6, Fields!group_index.Value, Fields!limit_scale.Value, "ResultDataSet"))
=GetNorms56(Fields!group_index.Value, LookupSet(6, Fields!group_index.Value, Fields!max.Value, "ResultDataSet"), LookupSet(6, Fields!group_index.Value, Fields!limit_scale.Value, "ResultDataSet"))
Результаты испытаний (кроме 4, 5, 6 групп) Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Группа в паспорт качества, Номер в паспорт качества

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

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

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

Fields!group_number.Value, Fields!group_index.Value, Fields!num_result.Value, Fields!str_result.Value, Fields!met_min.Value, Fields!met_max.Value, Fields!round_num.Value, Fields!round_type.Value >> group_number, num_result, str_result, met_min, met_max, round_num, round_type / ResultDataSet >> INTEGER_VALUE / INDICATOR_ATTRIBUTE, NAME / INDICATOR, AVG_R / JOURNAL_RESULT, FROM, TO / METH_METR_RNG_BNDS, NUMBER, TYPE / STANDARD_ROUND_RESULT

=GetResult(Fields!group_number.Value,  Fields!num_result.Value, Fields!str_result.Value, Fields!met_min.Value, Fields!met_max.Value, Fields!round_num.Value, Fields!round_type.Value)
Public Function GetResult(group As Integer, numRes As Double, strRes As String, 
	min As Object, max As Object, digits As Object, mode As Object) As String
	
	Select Case group
		
		Case 4
			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(")", ""))
			
			Dim compareRangeNorm = GetMetRange(numRes, min, max, digits, mode)
			
			If compareRangeNorm Like "%менее%" Or compareRangeNorm Like "%более%" Then
				Return compareRangeNorm
			Else 
				Return RoundMethod(firstNum, 2, 1) & " (" & RoundMethod(secondNum, 0, 1) & ")"
			End If
			
		Case 10
			Return "отсутствуют"

		Case Else
			Return GetMetRange(numRes, min, max, digits, mode)	
		
	End Select
	
End Function
Public Function GetMetRange(numRes As Double, min As Object, max As Object, digits As Object, mode As Object) As String
	
	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
  • используется функция RoundMethod, вариация функции Rounding.RoundBase()
Результаты испытаний (4 группа)
=GetResult4( LookupSet(4, Fields!group_index.Value, Fields!num_result.Value, "ResultDataSet"),  LookupSet(4, Fields!group_index.Value, Fields!met_min.Value, "ResultDataSet"), LookupSet(4, Fields!group_index.Value, Fields!met_max.Value, "ResultDataSet"), LookupSet(4, Fields!group_index.Value, Fields!round_num.Value, "ResultDataSet"),   LookupSet(4, Fields!group_index.Value, Fields!round_type.Value, "ResultDataSet"))
Public Function GetResult4(numRes As Object, min As Object, max As Object, digits As Object, mode As Object) As String
	
	Dim first As String = ""
	If numRes(0) IsNot Nothing Then first = numRes(0).ToString().Replace(".", ",")
	
	Dim second As String = ""
	If numRes(1) IsNot Nothing Then second = numRes(1).ToString().Replace(".", ",")
    
	If (first = "0" Or first = "") And (second = "0" Or second = "") Then Return "-"
	
	Dim compareRangeNorm = GetMetRange(numRes(0), min(0), max(0), digits(0), mode(0))
			
	If compareRangeNorm Like "*менее*" Or compareRangeNorm Like "*более*" Then
		Return compareRangeNorm
	Else 
		Return RoundMethod(numRes(0), 2, 1) & " (" & RoundMethod(numRes(1), 0, 1) & ")"
	End If

End Function
  • используется функция RoundMethod, вариация функции Rounding.RoundBase()
Результаты испытаний (5, 6 группы)
=GetResult56(Fields!group_index.Value,  LookupSet(5, Fields!group_index.Value, Fields!num_result.Value, "ResultDataSet"),  LookupSet(5, Fields!group_index.Value, Fields!met_min.Value, "ResultDataSet"),  LookupSet(5, Fields!group_index.Value, Fields!met_max.Value, "ResultDataSet"),  LookupSet(5, Fields!group_index.Value, Fields!round_num.Value, "ResultDataSet"),  LookupSet(5, Fields!group_index.Value, Fields!round_type.Value, "ResultDataSet"),  Fields!delivery_date.Value)
=GetResult56(Fields!group_index.Value,  LookupSet(6, Fields!group_index.Value, Fields!num_result.Value, "ResultDataSet"),  LookupSet(6, Fields!group_index.Value, Fields!met_min.Value, "ResultDataSet"),  LookupSet(6, Fields!group_index.Value, Fields!met_max.Value, "ResultDataSet"),  LookupSet(6, Fields!group_index.Value, Fields!round_num.Value, "ResultDataSet"),  LookupSet(6, Fields!group_index.Value, Fields!round_type.Value, "ResultDataSet"),  Fields!delivery_date.Value)
Public Function GetResult56(group As Integer, numRes As Object, min As Object, max As Object, digits As Object, mode As Object, startDate As Object) As String
	
	Dim first As String = ""
	If numRes(0) IsNot Nothing Then first = numRes(0).ToString().Replace(".", ",")
	
	Dim second As String = ""
	If numRes(1) IsNot Nothing Then second = numRes(1).ToString().Replace(".", ",")
    
	If (first = "0" Or first = "") And (second = "0" Or second = "") Then Return "-"
	
	Dim result As New System.Text.StringBuilder()
	result.Append(vbLF & vbLF & vbLF)
	
	If String.IsNullOrEmpty(first) OrElse first = "0" Then 
		first = "-"
	ElseIf numRes.Length > 0 AndAlso numRes(0) IsNot Nothing Then
		first = GetMetRange(numRes(0), min(0), max(0), digits(0), mode(0))
	End If

	If String.IsNullOrEmpty(second) OrElse second = "0" Then 
		second = "-"
	ElseIf numRes.Length > 1 AndAlso numRes(1) IsNot Nothing Then
		second = GetMetRange(numRes(1), min(1), max(1), digits(1), mode(1))
	End If
	
	If group = 6 Then result.Append(vbLF)
	
	If Month(startDate) >= 10 Or Month(startDate) <= 4 Then
		result.Append(first & vbLF & "-")
	Else
		result.Append("-" & vbLF & second)
	End If	
		
	Return result.ToString()

End Function

Примечания

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

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

Код и комментарии
1. Значения и нормы показателей ... установлены при стандартном давлении 101,325 кПа и стандартной температуре 20,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!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
3. Значения показателей ... определены ... Лабораторные журналы >> Журнал регистрации проб и результатов >> Выбрать пробу >> Результаты >> Ввод результатов >> Определен

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)
Дата выдачи паспорта качества -
="Дата выдачи паспорта качества: " & Format(Now(), "dd.MM.yyyy")