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

Протокол испытаний (вода)

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

Общий вид

Page1

Page2

Параметры

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

Параметр Тип поля Данные Сортировка
1 Выберите лабораторию: выбор значения перечень лабораторий по алфавиту
2 Выберите год: выбор значения годы, в которых создавались протоколы по убыванию
3 Выберите месяц: выбор значения месяцы лет года из п.2, в которых создавались протоколы по возрастанию
4 Выберите номер акта отбора проб: выбор значения протоколы года из п.2 и месяца из п.3 по возрастанию
5 Укажите Ф.И.О. сотрудника, утверждающего протокол: выбор значения сотрудники лаборатории (п.1) по алфавиту
6 Укажите дату утверждения протокола: поле-календарь текущие дата и время (значение по умолчанию) -
7 Введите номер протокола: ввод текста 1 (значение по умолчанию) -
8 Выберите Ф.И.О. сотрудника, подготовившего протокол: выбор одного или нескольких значений сотрудники лаборатории (п.1) по алфавиту
9 Укажите количество экземпляров: ввод текста Протокол распечатан в одном экземпляре (значение по умолчанию) -
10 Выберите тип протокола: выбор значения Новый протокол (значение по умолчанию) -
11 Выберите номер протокола на замену: ввод текста пустое поле по умолчанию -

Внимание!

Для фильтров п.5 и п.8 используются составные поля в DataSet, образующиеся с помощью функции FormatFio():

Для фильтра п.4 используется составное поле в DataSet, образующееся с помощью следующей функции:

Public Function SetNumAndDate(num As String, minDate As Date, maxDate As Date) As String
	Dim result As String = num
    
	Dim hasMin As Boolean = (minDate <> DateTime.MinValue)
	Dim hasMax As Boolean = (maxDate <> DateTime.MinValue)

	If hasMin And Not hasMax Then
		result &= ", " & minDate.ToString("dd.MM.yyyy")
	ElseIf Not hasMin And hasMax Then
		result &= ", " & maxDate.ToString("dd.MM.yyyy")
	ElseIf hasMin And hasMax Then
		If minDate.Date = maxDate.Date Then
			result &= ", " & minDate.ToString("dd.MM.yyyy")
		Else
			result &= ", " & minDate.ToString("dd.MM.yyyy") & " - " & maxDate.ToString("dd.MM.yyyy")
		End If
	End If
        
	Return result.Trim()
End Function

Атрибуты

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

  • Полное наименование
  • Юридический адрес

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

  • Официальное наименование лаборатории
  • Место осуществления деятельности
  • Контактные данные
  • Аттестат аккредитации

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

  • Заказчик
  • Контактные данные заказчика
  • Юридический адрес заказчика
  • Фактический адрес заказчика
  • Основание для отбора проб
  • План отбора
  • Метод отбора проб
  • № акта
  • Дата, время отбора
  • Дата поступления пробы
  • Шифр пробы
  • Дата анализа

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

  • № акта
  • Дата, время отбора

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

  • Шифр пробы
  • № акта
  • Дата, время отбора

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

  • Шифр пробы
  • № акта
  • Дата, время отбора
  • Оборудование 1
  • Оборудование 2

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

  • № акта
  • Дата, время отбора
  • Отклонения, дополнения или исключения из МИ
  • Условия проведения исследований

Внимание!

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

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

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

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

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

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

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

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

Fields!full_name.Value >> full_name / HeadOrgInfoDataSet >> STRING_VALUE / COMPANY_LEVEL_ATTRIBUTE

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

Fields!short_name.Value >> short_name / HeadOrgInfoDataSet >> SHORT_NAME / COMPANY_LEVEL

="(" & First(Fields!short_name.Value) & ")"
Юридический адрес головной организации Подразделения предприятия >> Выбрать основное предприятие >> Редактировать >> Карточка подразделения >> Дополнительная информация >> Юридический адрес

Fields!registered_address.Value >> registered_address / HeadOrgInfoDataSet >> STRING_VALUE / COMPANY_LEVEL_ATTRIBUTE

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

Fields!official_name.Value >> official_name / OrgInfoDataSet >> STRING_VALUE / COMPANY_LEVEL_ATTRIBUTE

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

Fields!full_name.Value >> full_name / OrgInfoDataSet >> FULL_NAME / COMPANY_LEVEL

=First(Fields!full_name.Value)
Адрес места осуществления лабораторной деятельности Подразделения предприятия >> + >> Выбрать предприятие >> Редактировать >> Карточка подразделения >> Дополнительная информация >> Место осуществления деятельности

Fields!place_activity.Value, Fields!contacts.Value >> place_activity, contacts / OrgInfoDataSet >> STRING_VALUE / COMPANY_LEVEL_ATTRIBUTE

="Адрес места осуществления лабораторной деятельности: " & ConcatFields(vbLF, Fields!place_activity.Value, Fields!contacts.Value)
Сведения об аккредитации Подразделения предприятия >> + >> Выбрать предприятие >> Редактировать >> Карточка подразделения >> Дополнительная информация >> Аттестат аккредитации

Fields!attestat.Value >> attestat / OrgInfoDataSet >> STRING_VALUE / COMPANY_LEVEL_ATTRIBUTE

="Уникальный номер записи в реестре аккредитованных лиц Национальной системы аккредитации " & Fields!attestat.Value

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

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

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

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

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

=First(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!patronimyc.Value, 2)
Дата Parameters!ReportParameterDate.Value
=Format(Parameters!ReportParameterDate.Value, "dd.MM.yyyy")

Общие данные протокола исследований

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

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

Код и комментарии
Заголовок Parameters!ReportParameterProtocolNum.Value и Parameters!ReportParameterDate.Value
="ПРОТОКОЛ ИССЛЕДОВАНИЙ № " & Parameters!ReportParameterProtocolNum.Value & " от " & Parameters!ReportParameterDate.Value
1. Наименование объектов: Лабораторные журналы >> Выбрать лабораторию >> Вода. Регистрация и результаты >> Объекты анализа

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

Fields!ao_name.Value >> ao_name / AoDataSet >> NAME / ANALYSIS_OBJECT, STRING_VALUE / ANALYSIS_OBJECT_ATTRIBUTE

=GetOrDash(Fields!ao_name.Value)
2. Наименование и контактные данные заказчика: Лабораторные журналы >> Выбрать лабораторию >> Вода. Регистрация и результаты >> Объекты анализа >> Выбрать объект >> Редактировать >> Карточка пробы >> Информация >> Заказчик, Контактные данные заказчика

Fields!employer.Value, Fields!contacts.Value >> employer, contacts / MainDataSet >> STRING_VALUE / JOURNAL_RECORD_ATTRIBUTE

=ConcatFields(", ", Fields!employer.Value, Fields!contacts.Value)
3. Юридический адрес заказчика: Лабораторные журналы >> Выбрать лабораторию >> Вода. Регистрация и результаты >> Объекты анализа >> Выбрать объект >> Редактировать >> Карточка пробы >> Информация >> Юридический адрес заказчика

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

=GetOrDash(Fields!juridical_address.Value)
4. Фактический адрес места осуществления деятельности заказчика: Лабораторные журналы >> Выбрать лабораторию >> Вода. Регистрация и результаты >> Объекты анализа >> Выбрать объект >> Редактировать >> Карточка пробы >> Информация >> Фактический адрес заказчика

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

=GetOrDash(Fields!fact_address.Value)
5. Основание для отбора проб и проведения исследований: Лабораторные журналы >> Выбрать лабораторию >> Вода. Регистрация и результаты >> Объекты анализа >> Выбрать объект >> Редактировать >> Карточка пробы >> Информация >> Основание для отбора проб

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

=GetOrDash(Fields!basis.Value)
6. План отбора проб: Лабораторные журналы >> Выбрать лабораторию >> Вода. Регистрация и результаты >> Объекты анализа >> Выбрать объект >> Редактировать >> Карточка пробы >> Информация >> План отбора

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

=GetOrDash(Fields!plane.Value)
7. Места отбора проб: Лабораторные журналы >> Выбрать лабораторию >> Вода. Регистрация и результаты >> Объекты анализа >> Выбрать объект >> Редактировать >> Карточка пробы >> Источник >> Место отбора

Fields!ss_name.Value >> ss_name / SsDataSet >> SHORT_NAME / SAMPLE_SOURCE

=GetOrDash(Fields!ss_name.Value)
8. Методы отбора и консервации проб: Лабораторные журналы >> Выбрать лабораторию >> Вода. Регистрация и результаты >> Объекты анализа >> Выбрать объект >> Редактировать >> Карточка пробы >> Информация >> Метод отбора проб

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

=GetOrDash(Fields!method_sample.Value)
9. Регистрационный номер акта отбора проб, дата отбора: Лабораторные журналы >> Выбрать лабораторию >> Вода. Регистрация и результаты >> Объекты анализа >> Выбрать объект >> Редактировать >> Карточка пробы >> Информация >> № акта, Дата, время отбора

Fields!act_num.Value, Fields!min_date_selection.Value, Fields!max_date_selection.Value >> act_num, min_date_selection, max_date_selection / MainDataSet >> STRING_VALUE, DATE_VALUE / JOURNAL_RECORD_ATTRIBUTE

=SetNumAndDate(Fields!act_num.Value,  Fields!min_date_selection.Value, Fields!max_date_selection.Value)
10. Дата поступления проб в Химическую лабораторию: Лабораторные журналы >> Выбрать лабораторию >> Вода. Регистрация и результаты >> Объекты анализа >> Выбрать объект >> Редактировать >> Карточка пробы >> Информация >> Дата поступления пробы

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

=GetOrDash(Format(Fields!date_receipt.Value, "dd.MM.yyyy"))
11. Даты проведения исследований: Лабораторные журналы >> Выбрать лабораторию >> Вода. Регистрация и результаты >> Объекты анализа >> Выбрать объект >> Результаты >> Ввод результатов >> Дата анализа

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)
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

Результаты лабораторных исследований

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

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

Код и комментарии
Номер таблицы Номер GroupIndex() задается по группе. Группировка задана по полю Fields!code.Value
=12 + GroupIndex() & "."
Шифр пробы: Лабораторные журналы >> Выбрать лабораторию >> Вода. Регистрация и результаты >> Объекты анализа >> Выбрать объект >> Редактировать >> Карточка пробы >> Информация >> Шифр пробы

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

=Fields!code.Value
Точка отбора (объект): Лабораторные журналы >> Выбрать лабораторию >> Вода. Регистрация и результаты >> Объекты анализа >> Выбрать объект >> Редактировать >> Карточка пробы >> Источник >> Место отбора, Точка отбора

Fields!parent_ss_name.Value, Fields!child_ss_name.Value, Fields!ao_short_name.Value >> ss_name / ResultDataSet >> SHORT_NAME / SAMPLE_SOURCE, STRING_VALUE / ANALYSIS_OBJECT_ATTRIBUTE

=Fields!parent_ss_name.Value & ", " & Fields!child_ss_name.Value & " (" & Fields!ao_short_name.Value & ")"
№ п/п SQL
=Fields!row_index.Value
Определяемый показатель Объекты анализа >> Выбрать объект >> Редактировать >> Карточка объекта анализа >> Выбрать показатель >> Карточка показателя >> Наименование

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

Fields!met_ind_name.Value, Fields!ind_name.Value >> met_ind_name, ind_name / ResultDataSet >> INDICATOR_METHODOLOGY_NAME / METHODOLOGY_INDICATOR, NAME / INDICATOR

=IIF(Fields!met_ind_name.Value, Fields!met_ind_name.Value.Trim(), Fields!ind_name.Value.Trim())
Единица измерения Методики анализа >> Выбрать методику >> Редактировать >> Карточка методики анализа >> Единица измерения

Fields!unit.Value >> unit / ResultDataSet >> HTML_NAME / UNIT

="<style> body {font-family: 'Times New Roman', Times, serif; font-size: 10pt; line-height: 1.0; text-align: center; margin-top: 2px;} sup {vertical-align: 2pt; font-size: 8pt;} sub {vertical-align: -1pt; font-size: 8pt;} </style> <body> " & Fields!unit.Value &"</body>"
Результаты лабораторных исследований Лабораторные журналы >> Выбрать подразделение >> Выбрать запись Результаты >> Результат, Показатель точности

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

Fields!avg_result.Value, Fields!error.Value, Fields!min.Value, Fields!max.Value >> avg_result, error, min, max / ResultDataSet >> AVG_R, DC, RANGE_MIN, RANGE_MAX / JOURNAL_RESULT

=GetOrDash(GetResult(Fields!avg_result.Value, Fields!error.Value, Fields!min.Value, Fields!max.Value))
Public Function GetResult (avgR As Double, err As Double, min As Double, max As Double) As String
	If avgR >= min And avgR <= max Then
		Return avgR & " ± " & err
	ElseIf avgR <= min Then
		Return "менее " & min
	ElseIf avgR > max Then
		Return "более " & max
	Else 
		Return "-"
	End If
End Function
Применяемая методика измерений Методики анализа >> Выбрать методику >> Редактировать >> Карточка методики анализа >> Информация >> Нормативный документ

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

=GetOrDash(Fields!norm_doc.Value)

Средства измерений (СИ), испытательное оборудование (ИО), применяемые для проведения исследований

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

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

Код и комментарии
Номер таблицы Подсчет номера таблицы и нумерации раздела в строках в зависимости от количества таблиц (по сути - количества шифров проб Fields!code.Value) предыдущего раздела с результатами (ResultDataSet)
=12 + CountDistinct(Fields!code.Value, "ResultDataSet") & "."
№ п/п
=12 + CountDistinct(Fields!code.Value, "ResultDataSet") & "." & RowNumber()
Наименование Ресурсы >> Оборудование >> Выбор записи >> Редактировать >> Карточка оборудования >> Наименование

Fields!res_name.Value >> res_name / ResourcesDataSet >> NAME / RESOURCES

=Fields!res_name.Value
Модель Ресурсы >> Оборудование >> Выбор записи >> Редактировать >> Карточка оборудования >> Марка

Fields!res_mark.Value >> res_mark / ResourcesDataSet >> MARK / RESOURCES

=Fields!res_mark.Value
Вид Ресурсы >> Оборудование >> Выбор записи >> Редактировать >> Карточка оборудования >> Тип оборудования

Fields!res_service_type.Value >> res_service_type / ResourcesDataSet >> NAME / CATALOG_RECORD_TYPE

=IIF(Fields!res_service_type.Value = "Средство измерений", "СИ", "ИО")
Заводской номер Ресурсы >> Оборудование >> Выбор записи >> Редактировать >> Карточка оборудования >> Заводской номер

Fields!factory_number.Value >> factory_number / ResourcesDataSet >> FACTORY_NUMBER / RESOURCES

=Fields!factory_number.Value
Сведения о поверке СИ / аттестации ИО* Ресурсы >> Оборудование >> Выбор записи >> Редактировать >> Карточка оборудования >> Обслуживание >> Номер документа об обслуживании

Fields!res_service_doc.Value >> res_service_doc / ResourcesDataSet >> SERVICE_DOCUMENT / RESOURCE_SERVICE

=Fields!res_service_doc.Value
СИ поверено до / ИО аттестовано до Ресурсы >> Оборудование >> Выбор записи >> Редактировать >> Карточка оборудования >> Обслуживание >> Дата следующего обслуживания по плану

Fields!res_service_date.Value >> res_service_date / ResourcesDataSet >> NEXT_DATE / RESOURCE_SERVICE

=Fields!res_service_date.Value
Определяемые показатели SQL
=Fields!row_indices.Value

Дополнительная информация

Интерфейс ... >> ...

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

Код и комментарии
Лабораторные журналы >> Выбрать лабораторию >> Вода. Регистрация и результаты >> Объекты анализа >> Выбрать объект >> Редактировать >> Карточка пробы >> Информация >> Отклонения, дополнения или исключения из МИ

Fields!note_1.Value >> note_1 / NoteDataSet >> STRING_VALUE / JOURNAL_RECORD_ATTRIBUTE

=Fields!note_1.Value
Лабораторные журналы >> Выбрать лабораторию >> Вода. Регистрация и результаты >> Объекты анализа >> Выбрать объект >> Редактировать >> Карточка пробы >> Информация >> Условия проведения исследований

Fields!note_2.Value >> note_2 / NoteDataSet >> STRING_VALUE / JOURNAL_RECORD_ATTRIBUTE

=Fields!note_2.Value
Fields!count_result.Value, Fields!row_index.Value >> count_result, row_index / ResultDataSet >> VALUE / JRPARALLELVARS; SQL
="<style> body {font-family: 'Times New Roman', Times, serif; font-size: 10pt; line-height: 1; margin-top: 1.5pt; margin-bottom: 1.5pt;}</style> <body>" &ProcessingCountResult(LookupSet(1, Fields!count_result.Value, Fields!row_index.Value, "ResultDataSet"), LookupSet(2, Fields!count_result.Value, Fields!row_index.Value, "ResultDataSet")) & "</body>"
Parameters!ReportParameterNumEx.Value
=Parameters!ReportParameterNumEx.Value

Протокол подготовил

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

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

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

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)

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

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

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

Код и комментарии
Протокол исследований №... распечатан ... Parameters!ReportParameterProtocolNum.Value
="Протокол исследований № " & Parameters!ReportParameterProtocolNum.Value & " распечатан " & Now().ToString("dd.MM.yyyy")
Нумерация страниц Номер страницы Globals!PageNumber,
всего страниц Globals!TotalPages
="Страница " & (Globals!PageNumber + 1) & " из " & Globals!TotalPages