Паспорт качества газа (ГОСТ 5542)
Общий вид

Параметры
В форме используются 7 фильтров параметров:
| № | Параметр | Тип поля | Данные | Сортировка |
|---|---|---|---|---|
| 1 | Выберите лабораторию: |
выбор значения | лаборатории, имеющие записи в журналах с показателями, у которых в наименовании нормы присутствует ГОСТ 5542 | по алфавиту |
| 2 | Введите номер паспорта: |
ввод текста | 1 (значение по умолчанию) | - |
| 3 | Введите начало периода поставки: |
поле-календарь | 01.01.2020 0:00 (значение по умолчанию) | - |
| 4 | Введите завершение периода поставки: |
поле-календарь | текущие дата и время (значение по умолчанию) | - |
| 5 | Введите газораспределительные станции: |
ввод текста | газораспределительные станции ("-" значение по умолчанию) | - |
| 6 | Выберите сотрудника, утверждающего паспорт: |
выбор значения | сотрудники лаборатории (п.1) |
по алфавиту |
| 7 | Выберите сотрудников, ответственных за оформление паспорта: |
выбор одного или нескольких значений | сотрудники лаборатории (п.1) |
по алфавиту |
Атрибуты
В наборе данных OrganisationDataSet в таблице ATTRIBUTE_NAME используются атрибуты со следующими значениями NAME:
- Адрес
- Телефоны
В наборе данных MainDataSet в таблице ATTRIBUTE_NAME используются атрибуты со следующими значениями NAME:
- НД на отбор проб
- Дата и время отбора пробы
- Дата поставки пробы
- Полное наименование
- Код ОКПД 2
- Дата начала анализа
- Дата окончания анализа
В наборе данных ResultDataSet в таблице ATTRIBUTE_NAME используются атрибуты со следующими значениями NAME:
- Группа в паспорт качества
- Номер в паспорт качества
- НД на отбор проб
- Дата поставки пробы
- Дата и время отбора пробы
В наборе данных NoteDataSet в таблице ATTRIBUTE_NAME используются атрибуты со следующими значениями NAME:
- Дата поставки пробы
- Определен
- Группа в паспорт качества
- Номер в паспорт качества
- Норма при стандартных условиях
Внимание!
Описание атрибутов приведено в соответствии с базой данных ASTRA-PG13 на основе созданных пользователем полей.
В других базах этих полей может не быть либо их наименование может отличаться!!!
Отсутствующие в базе атрибуты не будут выводиться в документе. Для корректной работы документа актуализируйте атрибуты в соответствии с приведенным списком.
Поля, данные, выражения, элементы интерфейса и код
Информация об организации
| Поля | Интерфейс ... >> ...
и данные |
Код и комментарии |
|---|---|---|
| Наименование организации | Подразделения предприятия >> + >> Выбрать предприятие >> Редактировать >> Карточка подразделения >> Краткое наименование
|
=Fields!head_org.Value
|
| Адрес, телефоны, e-mail | Подразделения предприятия >> + >> Выбрать предприятие >> Редактировать >> Карточка подразделения >> Адрес, Телефоны, E-mail
|
=Fields!head_org_address.Value & vbLF & "тел, e-mail: " & ConcatFields("; ", Fields!head_org_tel.Value, Fields!head_org_mail.Value)
используются:
|
| Наименование лаборатории | Подразделения предприятия >> + >> Выбрать подразделение >> Редактировать >> Карточка подразделения >> Краткое наименование
|
=Fields!lab_name.Value
|
| Адрес лаборатории | Подразделения предприятия >> + >> Выбрать подразделение >> Редактировать >> Карточка подразделения >> Адрес
|
=Fields!lab_address.Value
|
Блок утверждения
| Поля | Интерфейс ... >> ...
и данные |
Код и комментарии |
|---|---|---|
| Должность | Персонал >> Выбрать запись >> Карточка сотрудника >> Должность
|
=First(Fields!position.Value)
|
| Лаборатория | Подразделения предприятия >> + >> Выбрать подразделение >> Редактировать >> Карточка подразделения >> Краткое наименование
|
=First(Fields!lab_name.Value)
|
| И.О. Фамилия | Персонал >> Выбрать запись >> Карточка сотрудника >> Фамилия; Имя; Отчество
|
=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
|
| Код ОКПД2 | Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Код ОКПД 2
|
="Код ОКПД 2 " & Fields!code_okpd2.Value
|
| Паспорт качества распространяется на объемы газа, поданного через газораспределительные станции: | Parameters!ReportParameterStation.Value
|
=IIF(Parameters!ReportParameterStation.Value = "-", "", Parameters!ReportParameterStation.Value)
|
| Дата (период) отбора проб | Лабораторные журналы >> Журнал регистрации проб и испытаний >> Выбрать пробу >> Редактировать >> Карточка пробы >> Информация >> Дата и время отбора пробы
|
=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
|
| НД на метод отбора | Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> НД на отбор проб
|
=First(Fields!sampling_norm_doc.Value)
|
| Место отбора проб | Лабораторные журналы >> Журнал регистрации проб и испытаний >> Выбрать пробу >> Редактировать >> Карточка пробы >> Источник >> Выбранный источник
|
=First(Fields!place_name.Value)
|
| Дата (период) испытаний | Лабораторные журналы >> Журнал регистрации проб и испытаний >> Выбрать пробу >> Редактировать >> Карточка пробы >> Информация >> Дата поставки пробы
|
=RangeDate(Fields!min_date_analysis.Value, Fields!max_date_analysis.Value)
|
Таблица результатов
| Поля | Интерфейс ... >> ...
и данные |
Код и комментарии |
|---|---|---|
| № | Fields!group_index.Value >> group_index / ResultDataSet >> SQL
|
=Fields!group_index.Value & "."
|
| Наименование показателя | Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Группа в паспорт качества, Наименование
|
=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
|
| Метод испытания | Методики анализа >> Выбрать методику >> Редактировать >> Карточка методики анализа >> Нормативный документ
|
=GetOrDash(Fields!norm_document.Value)
|
| Норма минимальная и максимальная (строка 1) | Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Номер в паспорт качества, Группа в паспорт качества
|
=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) | Вместо Нижний предел используется Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Нормы >> Верхний пределВместо |
=GetNorms(Fields!group_number.Value, Fields!max.Value, Fields!comment.Value, Fields!limit_scale.Value)
|
| Результаты испытаний | Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Группа в паспорт качества
|
=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 6, 7
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 11
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
|
Примечания
| Поля | Интерфейс ... >> ...
и данные |
Код и комментарии |
|---|---|---|
| 1. Значения и нормы показателей ... установлены при стандартном давлении 101,325 кПа и стандартной температуре 20,0 °С. Стандартная температура сгорания 25,0 °С. | Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Норма при стандартных условиях
|
="1. Значения и нормы показателей " & CollapseNumbers(LookupSet(True, Fields!standart_norm.Value, Fields!group_index.Value, "NoteDataSet")) & " установлены при стандартном давлении 101,325 кПа и стандартной температуре 20,0 °С. Стандартная температура сгорания 25,0 °С."
|
| 2. Нормы и значения показателей ... установлены при давлении в точке отбора пробы. | Методики анализа >> Выбрать методику >> Редактировать >> Карточка методики анализа >> Наименование по методике
|
="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. Температура газа в точке отбора пробы при определении показателей ... | Методики анализа >> Выбрать методику >> Редактировать >> Карточка методики анализа >> Наименование по методике
|
="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. Значения показателей ... определены потоковыми средствами измерений (среднеарифметическое значение за период поставки). | Лабораторные журналы >> Журнал регистрации проб и результатов >> Выбрать пробу >> Результаты >> Ввод результатов >> Определен
|
=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. Значения показателей ... определены ... | Лабораторные журналы >> Журнал регистрации проб и результатов >> Выбрать пробу >> Результаты >> Ввод результатов >> Определен
|
=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
|
| И.О. Фамилия | Персонал >> Выбрать запись >> Карточка сотрудника >> Фамилия; Имя; Отчество
|
=FormatFio(Fields!surname.Value, Fields!name.Value, Fields!patronymic.Value, 2)
|