/// <summary> /// Создать новый подзаголовок /// </summary> /// <param name="NewRow"> Строка таблицы. </param> /// <returns></returns> private TableRow NewSubtitle(TablesRow NewRow) { UInt32 RowHeight = 284U; int LeftIndentation = -113; int RightIndentation = -113; JustificationValues JustificationValue = JustificationValues.Center; int FontSize = 11; TableRow tableRow = CalibrationLib.NewTableRow(RowHeight); int[] CellWidthValues = GetCellWidthValues(NewRow); TableCell TableCell1 = tableRow.AddTableCell(CellWidthValues[0], NewRow.Values[0], LeftIndentation, RightIndentation, JustificationValue, FontSize, NewRow.GridSpan[0]); TableCell1.SetBorders(BorderValues.Single, BorderValues.Single, BorderValues.Single, BorderValues.Single); TableCell TableCell2 = tableRow.AddTableCell(CellWidthValues[1], NewRow.Values[1], LeftIndentation, RightIndentation, JustificationValue, FontSize, NewRow.GridSpan[1]); TableCell2.SetBorders(BorderValues.Single, BorderValues.Single, BorderValues.Single, BorderValues.Single); TableCell TableCell3 = tableRow.AddTableCell(CellWidthValues[2], NewRow.Values[2], LeftIndentation, RightIndentation, JustificationValue, FontSize, NewRow.GridSpan[2]); TableCell3.SetBorders(BorderValues.Single, BorderValues.Single, BorderValues.Single, BorderValues.Single); TableCell TableCell4 = tableRow.AddTableCell(CellWidthValues[3], NewRow.Values[3], LeftIndentation, RightIndentation, JustificationValue, FontSize, NewRow.GridSpan[3]); TableCell4.SetBorders(BorderValues.Single, BorderValues.Single, BorderValues.Single, BorderValues.Single); return(tableRow); }
/// <summary> /// Добавить новую таблицу в документ /// </summary> /// <param name="Protocol">Документ протокола.</param> /// <param name="NewTable">Объект таблицы.</param> /// <param name="InsertElement">Объект документа, перед которым требуется вставить таблицу.</param> static void AddNewTable(WordprocessingDocument Protocol, Table NewTable, OpenXmlElement InsertElement) { InsertElement.InsertBeforeSelf(CalibrationLib.NewParagraph(-113, -133, JustificationValues.Left, 11)); InsertElement.InsertBeforeSelf((OpenXmlElement)NewTable); /*if (Protocol.MainDocumentPart.Document.Body.Elements<Table>().Count() > 0) * { * * List<OpenXmlElement> NewList = Protocol.MainDocumentPart.Document.Body.Elements().ToList(); * int Index = NewList.Count - 4; * NewList.Insert(Index, CalibrationLib.NewParagraph(-113, -133, JustificationValues.Left, 11)); * NewList.Insert(Index, (OpenXmlElement)NewTable); * Protocol.MainDocumentPart.Document.Body.RemoveAllChildren(); * foreach (OpenXmlElement Element in NewList) * { Protocol.MainDocumentPart.Document.Body.Append(Element); } * * * } * else * { * SdtBlock Block = Protocol.MainDocumentPart.Document.Body.Elements<SdtBlock>().First(); * SdtContentBlock ContentBlock = Block.Elements<SdtContentBlock>().First(); * List<OpenXmlElement> NewList = ContentBlock.Elements().ToList(); * int Index = NewList.Count - 4; * NewList.Insert(Index, CalibrationLib.NewParagraph(-113, -133, JustificationValues.Left, 11)); * NewList.Insert(Index, (OpenXmlElement)NewTable); * ContentBlock.RemoveAllChildren(); * foreach (OpenXmlElement Element in NewList) * { ContentBlock.Append(Element); } * }*/ }
/// <summary> /// Сформировать таблицу с данными измерений датчика. /// </summary> /// <param name="ParentDocument"> Родительский документ (из которого выгружаются данные). </param> /// <param name="SensorsNumber"> Заводской номер датчика. </param> /// <returns></returns> public Table GetSensorsTable(WordprocessingDocument ParentDocument, string SensorsNumber) { const int TableWidth = 9782; int[] ColumnsWidth = new int [] { 1277, 284, 1275, 5103, 1666, 177 }; Table table = CalibrationLib.NewTable(ColumnsWidth); List <TablesRow> TableRows = GetRows(ParentDocument, SensorsNumber); TableRow tableRow1 = CalibrationLib.NewTableRow((UInt32Value)198U); tableRow1.AddTableCell(ColumnsWidth[0], TableRows[0].Values[0], -113, -113, JustificationValues.Right, 8, 1, true, true); tableRow1.AddTableCell(ColumnsWidth[1], TableRows[0].Values[1], -113, -113, JustificationValues.Center, 8, 1, true, true); tableRow1.AddTableCell(ColumnsWidth[2], TableRows[0].Values[2], -113, -113, JustificationValues.Center, 8, 1, true, true).SetBorders(BorderValues.Nil, BorderValues.Nil, BorderValues.Single, BorderValues.Nil); tableRow1.AddTableCell(ColumnsWidth[3] + ColumnsWidth[4] + ColumnsWidth[5], TableRows[0].Values[3], -113, -113, JustificationValues.Left, 8, 3, true, true); TableRow tableRow2 = CalibrationLib.NewTableRow((UInt32Value)198U); tableRow2.AddTableCell(ColumnsWidth[0] + ColumnsWidth[1] + ColumnsWidth[2] + ColumnsWidth[3], TableRows[1].Values[0], -113, -113, JustificationValues.Left, 8, 4); tableRow2.AddTableCell(ColumnsWidth[4] + ColumnsWidth[5], TableRows[1].Values[1], -113, -113, JustificationValues.Center, 12, 2, false, true).SetBorders(BorderValues.Nil, BorderValues.Nil, BorderValues.Dotted, BorderValues.Nil); table.Append(tableRow1); table.Append(tableRow2); return(table); }
/// <summary> /// Сформировать таблицу с данными измерений датчика. /// </summary> /// <param name="ParentDocument"> Родительский документ (из которого выгружаются данные).</param> /// <param name="SensorsNumber"> Заводской номер прибора. </param> /// <returns></returns> public Table GetSensorsTable(WordprocessingDocument ParentDocument, string SensorsNumber) { Table table = CalibrationLib.NewTable(ColumnsWidth, 108); List <TablesRow> TableRows = GetRows(ParentDocument, SensorsNumber); int i = 0; foreach (TablesRow Row in TableRows) { i++; switch (Row.Type) { case TablesRow.RowsType.Title: table.Append(NewTitle(Row)); break; case TablesRow.RowsType.Subtitle: table.Append(NewSubtitle(Row)); break; case TablesRow.RowsType.Header: table.Append(NewHeader(Row)); break; case TablesRow.RowsType.SimpleRow: table.Append(NewSimpleRow(Row)); break; case TablesRow.RowsType.Result: table.Append(NewResult(Row)); break; } } return(table); }
static void AddDeviceTables(WordprocessingDocument Certificate, UserSession Session, TablesCreator Creator, string DeviceType, CardData DeviceCard, DateTime StartDateOfService) { //WordprocessingDocument CalibrationProtocol = GetDocument(Session, DeviceCard, StartDateOfService, CalibrationProtocolCategoryID); //XtraMessageBox.Show("DeviceType = " + DeviceType); IEnumerable <CertificateTableLook> TablesCollection = Creator.CertificateDeviceTablesCollection.Where(r => r.DeviceTypes.Any(s => s == DeviceType)); if (TablesCollection.Count() == 0) { XtraMessageBox.Show("Для прибра '" + DeviceType + "' не найден шаблон таблицы. Обратитесь к системному администратору."); } else { Dictionary <String, Table> TablesList = new Dictionary <String, Table>(); foreach (CertificateTableLook CurrentTable in TablesCollection) { WordprocessingDocument ParentDocument; string TempPath = ""; switch (CurrentTable.ParentDocumentCategory) { case CertificateTableLook.DocumentCategory.AcceptanceTestingProtocol: ParentDocument = CalibrationLib.GetDocument(Session, DeviceCard, CalibrationLib.AcceptanceTestingProtocolCategoryID, out TempPath); break; case CertificateTableLook.DocumentCategory.CalibrationProtocol: ParentDocument = CalibrationLib.GetDocument(Session, DeviceCard, CalibrationLib.CalibrationProtocolCategoryID, out TempPath); break; case CertificateTableLook.DocumentCategory.MeasuringData: ParentDocument = CalibrationLib.GetDocument(Session, DeviceCard, CalibrationLib.MeasuringDataCategoryID, out TempPath); break; default: ParentDocument = null; break; } if (TablesList.Any(r => r.Key == CurrentTable.TableName)) { CurrentTable.AdditionDeviceTable(ParentDocument, TablesList.First(r => r.Key == CurrentTable.TableName).Value); } else { TablesList.Add(CurrentTable.TableName, CurrentTable.GetDeviceTable(ParentDocument)); } //Certificate.MainDocumentPart.Document.Body.Append(CurrentTable.GetDeviceTable(ParentDocument)); //Certificate.MainDocumentPart.Document.Body.Append(CalibrationLib.NewParagraph(0, 0, JustificationValues.Left, 10)); if (ParentDocument != null) { ParentDocument.Close(); File.Delete(TempPath); } } foreach (KeyValuePair <String, Table> T in TablesList) { Certificate.MainDocumentPart.Document.Body.Append(T.Value); } } }
/// <summary> /// Дополнить таблицу с данными измерений прибора. /// </summary> /// <param name="ParentDocument"> Родительский документ (из которого выгружаются данные). </param> /// <returns></returns> public Table AdditionDeviceTable(WordprocessingDocument ParentDocument, Table CurrentTable) { int TableWidth = 9782; int ColumnsWidth = TableWidth / (ColumnsCount); int[] ColumnsWidthList = new int[ColumnsCount]; for (int i = 0; i < ColumnsWidthList.Length; i++) { if (i == 0) { ColumnsWidthList[i] = ColumnsWidth; } else { ColumnsWidthList[i] = ColumnsWidth; } } Table table = CalibrationLib.NewTable(ColumnsWidthList); foreach (TablesRow Row in GetRows(ParentDocument)) { if (Row.JoinToRow == 0) { switch (Row.Type) { case TablesRow.RowsType.Title: CurrentTable.Append(CreateTitle(Row, TableWidth)); break; case TablesRow.RowsType.Header: CurrentTable.Append(CreateHeader(Row, ColumnsWidthList)); break; case TablesRow.RowsType.Subtitle: CurrentTable.Append(CreateSubTitle(Row, TableWidth)); break; case TablesRow.RowsType.SimpleRow: CurrentTable.Append(CreateSimpleRow(Row, ColumnsWidthList)); break; case TablesRow.RowsType.Result: CurrentTable.Append(CreateResult(Row, TableWidth)); break; } } else { if (CurrentTable.Elements <TableRow>().Count() >= Row.JoinToRow) { TableRow CangingTableRow = CurrentTable.Elements <TableRow>().ElementAt(Row.JoinToRow - 1); ChangingRow(Row, CangingTableRow); } } } return(CurrentTable); }
static void AddTitle(WordprocessingDocument Certificate) { Paragraph paragraph = CalibrationLib.NewParagraph(-284, 141, JustificationValues.Center, 8); Run run = CalibrationLib.NewRun(14); run.Append(CalibrationLib.NewText("Действительные значения метрологических характеристик")); paragraph.Append(run); Certificate.MainDocumentPart.Document.Body.Append(paragraph); Certificate.MainDocumentPart.Document.Body.Append(CalibrationLib.NewParagraph(0, 0, JustificationValues.Center, 8)); }
static void FillBookmarks(WordprocessingDocument Certificate, string DeviceType, string DeviceNumber, string DeviceNumber2, string ReceiptDate, string ClientName, string CalibrationDate, string CalibrationMethods, string Temperature, string Humidity, string AtmospherePressure, string CalibrationMeans) { CalibrationLib.ChangeCellsWidth(Certificate.GetTable("СЕРТИФИКАТ О КАЛИБРОВКЕ №"), 3, 0, DeviceType.Length); Dictionary <String, BookmarkStart> BookmarkDic = new Dictionary <String, BookmarkStart>(); foreach (BookmarkStart Bookmark in Certificate.MainDocumentPart.RootElement.Descendants <BookmarkStart>()) { BookmarkDic[Bookmark.Name] = Bookmark; } /* Запись закладочных полей */ BookmarkDic["DeviceType"].WriteText(DeviceType); BookmarkDic["DeviceNumber"].WriteText(DeviceNumber); BookmarkDic["DeviceNumber2"].WriteText(DeviceNumber2); BookmarkDic["ReceiptDate"].WriteText(ReceiptDate); /*if (ClientName.Length > 55) * { * int Length1 = ClientName.Substring(0, 50).LastIndexOf(" "); * string Text1 = ClientName.Substring(0, Length1); * BookmarkDic["ClientName"].WriteText(Text1); * * ClientName = ClientName.Substring(Length1 + 1); * Paragraph paragraph = (Paragraph)BookmarkDic["ClientName"].Parent; * TableCell tableCell = (TableCell)paragraph.Parent; * TableRow tableRow = (TableRow)tableCell.Parent; * Table table = (Table)tableRow.Parent; * int RowIndex = table.Elements().ToList().IndexOf(tableRow); * * while (ClientName.Length > 90) * { * int LineLength = ClientName.Substring(0, 90).LastIndexOf(" "); * string Text = ClientName.Substring(0, LineLength); * ClientName = ClientName.Substring(LineLength + 1); * * table.InsertLineForClient(RowIndex + 1, Text); * RowIndex++; * } * table.InsertLineForClient(RowIndex + 1, ClientName); * } * else * { * BookmarkDic["ClientName"].WriteText(ClientName); * }*/ BookmarkDic["CalibrationDate"].WriteText(CalibrationDate); BookmarkDic["CalibrationMethods"].WriteText(CalibrationMethods); BookmarkDic["Temperature"].WriteText(Temperature); BookmarkDic["Humidity"].WriteText(Humidity); BookmarkDic["AtmospherePressure"].WriteText(AtmospherePressure); BookmarkDic["CalibrationMeans"].WriteText(CalibrationMeans); }
/// <summary> /// Создать шапку таблицы. /// </summary> /// <param name="NewRow"> Строка таблицы. </param> /// <param name="TableWidth"> Ширина столбца. </param> /// <returns></returns> internal TableRow CreateHeader(TablesRow NewRow, int[] ColumnsWidthList) { TableRow NewTableRow = CalibrationLib.NewTableRow((UInt32Value)284U); for (int i = 0; i < NewRow.ColumnsCount; i++) { TableCell NewTableCell = NewTableRow.AddTableCell(ColumnsWidthList[i], NewRow.Values[i], -113, -113, JustificationValues.Center, 12, NewRow.GridSpan[i], false, false, NewRow.VerticalMerge[i]); NewTableCell.SetBorders(BorderValues.Single, BorderValues.Single, BorderValues.Single, BorderValues.Single); } return(NewTableRow); }
/// <summary> /// Создать заголовок таблицы. /// </summary> /// <param name="NewRow"> Строка таблицы. </param> /// <param name="TableWidth"> Ширина столбца. </param> /// <returns></returns> internal TableRow CreateTitle(TablesRow NewRow, int TableWidth) { TableRow NewTableRow = CalibrationLib.NewTableRow((UInt32Value)284U); for (int i = 0; i < NewRow.ColumnsCount; i++) { TableCell NewTableCell = NewTableRow.AddTableCell(TableWidth / NewRow.ColumnsCount, NewRow.Values[i], -113, -113, JustificationValues.Left, 12, ColumnsCount, false, false); NewTableCell.SetBorders(BorderValues.Nil, BorderValues.Nil, BorderValues.Nil, BorderValues.Nil); } return(NewTableRow); }
/// <summary> /// Создать результирующую строку таблицы. /// </summary> /// <param name="NewRow"> Строка таблицы. </param> /// <param name="TableWidth"> Ширина столбца. </param> /// <returns></returns> internal TableRow CreateResult(TablesRow NewRow, int TableWidth) { TableRow NewTableRow = CalibrationLib.NewTableRow((UInt32Value)198U); for (int i = 0; i < NewRow.ColumnsCount; i++) { TableCell NewTableCell = NewTableRow.AddTableCell(TableWidth / NewRow.ColumnsCount, NewRow.Values[i], -113, -113, JustificationValues.Center, 8, NewRow.GridSpan[i], false, true, NewRow.VerticalMerge[i]); NewTableCell.SetBorders(BorderValues.Nil, BorderValues.Nil, BorderValues.Nil, BorderValues.Nil); } return(NewTableRow); }
/// <summary> /// Создать подзаголовок таблицы. /// </summary> /// <param name="NewRow"> Строка таблицы. </param> /// <param name="TableWidth"> Ширина столбца. </param> /// <returns></returns> internal TableRow CreateSubTitle(TablesRow NewRow, int TableWidth) { TableRow NewTableRow = CalibrationLib.NewTableRow((UInt32Value)198U); for (int i = 0; i < NewRow.ColumnsCount; i++) { TableCell NewTableCell = NewTableRow.AddTableCell(TableWidth / NewRow.ColumnsCount, NewRow.Values[0], -113, -113, JustificationValues.Center, 8, ColumnsCount, false, true); NewTableCell.SetBorders(BorderValues.Single, BorderValues.Single, BorderValues.Single, BorderValues.Single); } return(NewTableRow); }
/// <summary> /// Создать обычную строку таблицы. /// </summary> /// <param name="NewRow"> Строка таблицы. </param> /// <param name="TableWidth"> Ширина столбца. </param> /// <returns></returns> internal TableRow CreateSimpleRow(TablesRow NewRow, int[] ColumnsWidthList) { TableRow NewTableRow = CalibrationLib.NewTableRow((UInt32Value)198U); for (int i = 0; i < NewRow.ColumnsCount; i++) { bool Italic = i == 0 ? false : true; TableCell NewTableCell = NewTableRow.AddTableCell(ColumnsWidthList[i], NewRow.Values[i], -113, -113, JustificationValues.Center, 8, NewRow.GridSpan[i], false, Italic, NewRow.VerticalMerge[i]); NewTableCell.SetBorders(BorderValues.Single, BorderValues.Single, BorderValues.Single, BorderValues.Single); } return(NewTableRow); }
/// <summary> /// Сформировать таблицу с данными измерений прибора. /// </summary> /// <param name="ParentDocument"> Родительский документ (из которого выгружаются данные). </param> /// <returns></returns> public Table GetDeviceTable(WordprocessingDocument ParentDocument) { int TableWidth = 9782; //if (ColumnsWidthList) int ColumnsWidth = TableWidth / (ColumnsCount); int[] ColumnsWidthList = new int[ColumnsCount]; for (int i = 0; i < ColumnsWidthList.Length; i++) { if (i == 0) { ColumnsWidthList[i] = ColumnsWidth; } else { ColumnsWidthList[i] = ColumnsWidth; } } Table table = CalibrationLib.NewTable(ColumnsWidthList); foreach (TablesRow Row in GetRows(ParentDocument)) { switch (Row.Type) { case TablesRow.RowsType.Title: table.Append(CreateTitle(Row, TableWidth)); break; case TablesRow.RowsType.Header: table.Append(CreateHeader(Row, ColumnsWidthList)); break; case TablesRow.RowsType.Subtitle: table.Append(CreateSubTitle(Row, TableWidth)); break; case TablesRow.RowsType.SimpleRow: table.Append(CreateSimpleRow(Row, ColumnsWidthList)); break; case TablesRow.RowsType.Result: table.Append(CreateResult(Row, TableWidth)); break; } } return(table); }
/// <summary> /// Создать новую шапку таблицы. /// </summary> /// <param name="NewRow"> Строка таблицы. </param> /// <returns></returns> private TableRow NewHeader(TablesRow NewRow) { UInt32 RowHeight = 284U; int LeftIndentation = -113; int RightIndentation = -113; JustificationValues JustificationValue = JustificationValues.Left; int FontSize = 11; TableRow tableRow = CalibrationLib.NewTableRow(RowHeight); int[] CellWidthValues = GetCellWidthValues(NewRow); TableCell TableCell1 = tableRow.AddTableCell(CellWidthValues[0], NewRow.Values[0], LeftIndentation, RightIndentation, JustificationValue, FontSize, NewRow.GridSpan[0]); TableCell1.SetBorders(BorderValues.Nil, BorderValues.Nil, BorderValues.Nil, BorderValues.Nil); return(tableRow); }
/// <summary> /// Сформировать таблицу с данными измерений прибора. /// </summary> /// <param name="JsonData"> Данные в формате json.. </param> /// <returns></returns> public Table GetDeviceTable(RootObject JsonData) { int TableWidth = 10065; int ColumnsWidth = TableWidth / (ColumnsCount); int[] ColumnsWidthList = new int[ColumnsCount]; for (int i = 0; i < ColumnsWidthList.Length; i++) { if (i == 0) { ColumnsWidthList[i] = ColumnsWidth; } else { ColumnsWidthList[i] = ColumnsWidth; } } Table table = CalibrationLib.NewTable(ColumnsWidthList, 108); foreach (TablesRow Row in GetRows(JsonData)) { switch (Row.Type) { case TablesRow.RowsType.Title: table.Append(CreateTitle(Row, TableWidth)); break; case TablesRow.RowsType.Header: table.Append(CreateHeader(Row, ColumnsWidthList)); break; case TablesRow.RowsType.Subtitle: table.Append(CreateSubTitle(Row, TableWidth)); break; case TablesRow.RowsType.SimpleRow: table.Append(CreateSimpleRow(Row, ColumnsWidthList)); break; case TablesRow.RowsType.Result: table.Append(CreateResult(Row, TableWidth)); break; } } return(table); }
static void AddSensorTables(WordprocessingDocument Protocol, UserSession Session, TablesCreator Creator, string SensorType, CardData SensorCard, DateTime StartDateOfService, string DeviceTypeName) { string SensorNumber = SensorCard.GetDeviceNumber(); IEnumerable <VerificationProtocolTableLook> TablesCollection = Creator.VerificationProtokolSensorTablesCollection.Where(r => r.DeviceTypes.Any(s => s == SensorType)); if (TablesCollection.Count() == 0) { XtraMessageBox.Show("Для датчика '" + SensorType + "' не найден шаблон таблицы. Обратитесь к системному администратору."); } else { foreach (VerificationProtocolTableLook CurrentTable in TablesCollection) { WordprocessingDocument ParentDocument; string TempPath = ""; switch (CurrentTable.ParentDocumentCategory) { case VerificationProtocolTableLook.DocumentCategory.AcceptanceTestingProtocol: ParentDocument = CalibrationLib.GetDocument(Session, SensorCard, CalibrationLib.AcceptanceTestingProtocolCategoryID, out TempPath); break; case VerificationProtocolTableLook.DocumentCategory.CalibrationProtocol: ParentDocument = CalibrationLib.GetDocument(Session, SensorCard, CalibrationLib.CalibrationProtocolCategoryID, out TempPath); break; case VerificationProtocolTableLook.DocumentCategory.MeasuringData: ParentDocument = CalibrationLib.GetDocument(Session, SensorCard, CalibrationLib.MeasuringDataCategoryID, out TempPath); break; default: ParentDocument = null; break; } Table NewSensorTable = CurrentTable.GetSensorsTable(ParentDocument, SensorNumber, DeviceTypeName); AddNewTable(Protocol, NewSensorTable, Protocol.GetTable("Заключение:").ElementsBefore().Last()); if (ParentDocument != null) { ParentDocument.Close(); File.Delete(TempPath); } } } return; }
public static void ReFill(CardData FileCard, ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client, DateTime CalibrationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, DateTime StartDateOfCalibration) { string ClientName = Client.Equals(Guid.Empty) ? "СКБ ЭП" : Context.GetObject <PartnersCompany>(Client).Name; WordprocessingDocument Certificate = CalibrationLib.GetCalibrationCertificateTemplate(CardScript.Session); // Заполнение данных сертификата FillData(Certificate, CardScript, Context, DeviceCard, ClientName, CalibrationDate, AdditionalWaresList, StartDateOfService, StartDateOfCalibration); // Сохранение изменений Certificate.MainDocumentPart.Document.Save(); // Закрытие сертификата Certificate.Close(); // Замена файла в карточке сертификата CalibrationLib.RefreshFileCard(Context, CardScript, FileCard, CalibrationLib.TempFolder + "\\" + "Сертификат о калибровке.docx", CalibrationDate, DeviceCard, ClientName, "", true); return; }
/// <summary> /// Создать обычную строку /// </summary> /// <param name="NewRow"> Строка таблицы. </param> /// <returns></returns> private TableRow NewSimpleRow(TablesRow NewRow) { UInt32 RowHeight = 284U; int LeftIndentation = -113; int RightIndentation = -113; JustificationValues JustificationValue = JustificationValues.Center; int FontSize = 11; TableRow tableRow = CalibrationLib.NewTableRow(RowHeight); int[] CellWidthValues = GetCellWidthValues(NewRow); for (int i = 0; i < NewRow.Values.Count(); i++) { TableCell tableCell = tableRow.AddTableCell(CellWidthValues[i], NewRow.Values[i], LeftIndentation, RightIndentation, JustificationValue, FontSize, NewRow.GridSpan[i]); tableCell.SetBorders(BorderValues.Single, BorderValues.Single, BorderValues.Single, BorderValues.Single); } return(tableRow); }
static void InsertLineForClient(this Table table, int Index, string Text) { try { TableRow newTableRow = CalibrationLib.NewTableRow(); int CellWidth1 = 10065; TableCell TableCell1 = newTableRow.AddTableCell(CellWidth1, Text, -113, -113, JustificationValues.Left, 12, 12); TableCell1.SetBorders(BorderValues.Nil, BorderValues.Nil, BorderValues.Single, BorderValues.Nil); List <OpenXmlElement> NewList = table.Elements().ToList(); NewList.Insert(Index, newTableRow); table.RemoveAllChildren(); foreach (OpenXmlElement Element in NewList) { table.Append(Element); } } catch { } }
/// <summary> /// Обновление "Извещения о непригодности". /// </summary> /// <param name="FileCard"> Карточка файла, содержащая "Извещение о непригодности".</param> /// <param name="CardScript"> Скрипт карточки.</param> /// <param name="Context"> Объектный контекст.</param> /// <param name="DeviceCard"> Карточка паспорта прибора.</param> /// <param name="Client"> Наименование клиента.</param> /// <param name="VerificationDate"> Дата проведения поверки.</param> /// <param name="AdditionalWaresList"> Перечень дополнительных изделий.</param> /// <param name="StartDateOfService"> Дата передачи прибора на поверку.</param> /// <param name="CausesOfUnfitness"> Причина непригодности.</param> /// <returns></returns> public static void ReFill(CardData FileCard, ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client, DateTime VerificationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, string CausesOfUnfitness) { string ClientName = Client.Equals(Guid.Empty) ? "ООО \"СКБ ЭП\"" : Context.GetObject <PartnersCompany>(Client).Name; // Серия и номер знака предыдущей поверки string PreviousVerifySerialNumber = "отсутствует"; // Получаем последнее свидетельство о поверке CardData PreviousVerificationCertificate = CalibrationLib.GetDocumentCard(CardScript.Session, DeviceCard, CalibrationLib.VerificationCertificateCategoryID); if (PreviousVerificationCertificate != null) { if (PreviousVerificationCertificate.Id == FileCard.Id) { PreviousVerifySerialNumber = "отсутствует"; } else { try { if (PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber) != null) { String OldSerialNumber = PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber).ToString(); PreviousVerifySerialNumber = OldSerialNumber == "" ? PreviousVerifySerialNumber : OldSerialNumber; } } catch { PreviousVerifySerialNumber = "отсутствует"; } } } WordprocessingDocument Document = CalibrationLib.GetNoticeOfUnfitnessTemplate(CardScript.Session); // Заполнение данных Извещения FillData(Document, CardScript, Context, DeviceCard, ClientName, VerificationDate, AdditionalWaresList, StartDateOfService, PreviousVerifySerialNumber, CausesOfUnfitness); // Сохранение изменений Document.MainDocumentPart.Document.Save(); // Закрытие Извещения Document.Close(); // Замена файла в карточке Извещения CalibrationLib.RefreshFileCard(Context, CardScript, FileCard, CalibrationLib.TempFolder + "\\" + "Извещение о непригодности.docx", VerificationDate, DeviceCard, ClientName, "отсутствует", false, CalibrationLib.NoticeOfUnfitnessCategoryID); return; }
static void AddSensorTables(WordprocessingDocument Certificate, UserSession Session, TablesCreator Creator, string DeviceType, string DeviceNumber, CardData DeviceCard, DateTime StartDateOfService) { IEnumerable <CertificateTableLook> TablesCollection = Creator.CertificateSensorTablesCollection.Where(r => r.DeviceTypes.Any(s => s == DeviceType)); if (TablesCollection.Count() == 0) { XtraMessageBox.Show("Для датчика '" + DeviceType + "' не найден шаблон таблицы. Обратитесь к системному администратору."); } else { foreach (CertificateTableLook CurrentTable in TablesCollection) { WordprocessingDocument ParentDocument; string TempPath = ""; switch (CurrentTable.ParentDocumentCategory) { case CertificateTableLook.DocumentCategory.AcceptanceTestingProtocol: ParentDocument = CalibrationLib.GetDocument(Session, DeviceCard, CalibrationLib.AcceptanceTestingProtocolCategoryID, out TempPath); break; case CertificateTableLook.DocumentCategory.CalibrationProtocol: ParentDocument = CalibrationLib.GetDocument(Session, DeviceCard, CalibrationLib.CalibrationProtocolCategoryID, out TempPath); break; case CertificateTableLook.DocumentCategory.MeasuringData: ParentDocument = CalibrationLib.GetDocument(Session, DeviceCard, CalibrationLib.MeasuringDataCategoryID, out TempPath); break; default: ParentDocument = null; break; } Certificate.MainDocumentPart.Document.Body.Append(CurrentTable.GetSensorsTable(ParentDocument, DeviceNumber)); //Certificate.MainDocumentPart.Document.Body.Append(CalibrationLib.NewParagraph(0, 0, JustificationValues.Left, 10)); if (ParentDocument != null) { ParentDocument.Close(); File.Delete(TempPath); } } } }
/// <summary> /// Переформировать свидетельство о поверке. /// </summary> /// <param name="FileCard"> Карточка файла.</param> /// <param name="CardScript"> Скрипт.</param> /// <param name="Context"> Объектный контекст.</param> /// <param name="DeviceCard"> Карточка прибора.</param> /// <param name="Client"> Идентификатор клиента.</param> /// <param name="CalibrationDate"> Дата проведения поверки.</param> /// <param name="AdditionalWaresList"> Перечень дополнительных изделий.</param> /// <param name="StartDateOfService"> Дата передачи на поверку.</param> /// <param name="VerifySerialNumber"> Серийный номер поверки.</param> public static void ReFill(CardData FileCard, ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client, DateTime CalibrationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, string VerifySerialNumber) { string ClientName = Client.Equals(Guid.Empty) ? "ООО \"СКБ ЭП\"" : Context.GetObject <PartnersCompany>(Client).Name; string PreviousVerifySerialNumber = "-"; // Получаем последнее свидетельство о поверке CardData PreviousVerificationCertificate = CalibrationLib.GetDocumentCard(CardScript.Session, DeviceCard, CalibrationLib.VerificationCertificateCategoryID); if (PreviousVerificationCertificate != null) { if (PreviousVerificationCertificate.Id == FileCard.Id) { PreviousVerifySerialNumber = "-"; } else { try { if (PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber) != null) { String OldSerialNumber = PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber).ToString(); PreviousVerifySerialNumber = OldSerialNumber == "" ? PreviousVerifySerialNumber : OldSerialNumber; } } catch { PreviousVerifySerialNumber = "-"; } } } WordprocessingDocument Certificate = CalibrationLib.GetVerificationCertificateTemplate(CardScript.Session); // Заполнение данных сертификата FillData(Certificate, CardScript, Context, DeviceCard, ClientName, CalibrationDate, AdditionalWaresList, StartDateOfService, PreviousVerifySerialNumber); // Сохранение изменений Certificate.MainDocumentPart.Document.Save(); // Закрытие сертификата Certificate.Close(); // Замена файла в карточке сертификата CalibrationLib.RefreshFileCard(Context, CardScript, FileCard, CalibrationLib.TempFolder + "\\" + "Свидетельство о поверке.docx", CalibrationDate, DeviceCard, ClientName, VerifySerialNumber, false, CalibrationLib.VerificationCertificateCategoryID); return; }
public static void ReFill(CardData FileCard, ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client, DateTime CalibrationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService) { Guid DeviceTypeID = DeviceCard.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid(); string DeviceTypeName = ApplicationCard.UniversalCard.GetItemName(DeviceTypeID); string ClientName = Client.Equals(Guid.Empty) ? "СКБ ЭП" : Context.GetObject <PartnersCompany>(Client).Name; WordprocessingDocument Protocol = CalibrationLib.GetCalibrationProtocolTemplate(CardScript.Session, DeviceTypeName); // Заполнение данных протокола FillData(Protocol, CardScript, Context, DeviceCard, CalibrationDate, AdditionalWaresList, StartDateOfService); // Сохранение изменений Protocol.MainDocumentPart.Document.Save(); // Закрытие протокола Protocol.Close(); // Замена файла в карточке протокола CalibrationLib.RefreshFileCard(Context, CardScript, FileCard, CalibrationLib.TempFolder + "\\" + "Протокол калибровки " + DeviceTypeName.Replace("/", "-") + ".docm", CalibrationDate, DeviceCard, ClientName, "", true); return; }
/// <summary> /// Создание "Извещения о неригодности" /// </summary> /// <param name="CardScript"> Скрипт карточки.</param> /// <param name="Context"> Объектный контекст.</param> /// <param name="DeviceCard"> Карточка паспорта прибора.</param> /// <param name="Client"> Наименование клиента.</param> /// <param name="VerificationDate"> Дата проведения поверки.</param> /// <param name="AdditionalWaresList"> Перечень дополнительных изделий.</param> /// <param name="StartDateOfService"> Дата передачи прибора на поверку.</param> /// <param name="VerifySerialNumber"> Серийный номер поверки.</param> /// <param name="CausesOfUnfitness"> Причина непригодности.</param> /// <param name="IsNewDevice"> Новый прибор.</param> /// <returns></returns> public static CardData Create(ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client, DateTime VerificationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, string VerifySerialNumber, string CausesOfUnfitness, bool IsNewDevice = false) { string ClientName = Client.Equals(Guid.Empty) ? "ООО \"СКБ ЭП\"" : Context.GetObject <PartnersCompany>(Client).Name; // Серия и номер знака предыдущей поверки string PreviousVerifySerialNumber = "отсутствует"; // Получаем последнее свидетельство о поверке CardData PreviousVerificationCertificate = CalibrationLib.GetDocumentCard(CardScript.Session, DeviceCard, CalibrationLib.VerificationCertificateCategoryID); try { if (PreviousVerificationCertificate.Id != null) { if (PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber) != null) { String OldSerialNumber = PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber).ToString(); PreviousVerifySerialNumber = OldSerialNumber == "" ? PreviousVerifySerialNumber : OldSerialNumber; } } } catch { PreviousVerifySerialNumber = "отсутствует"; } WordprocessingDocument Document = CalibrationLib.GetNoticeOfUnfitnessTemplate(CardScript.Session); // Заполнение данных Извещения FillData(Document, CardScript, Context, DeviceCard, ClientName, VerificationDate, AdditionalWaresList, StartDateOfService, PreviousVerifySerialNumber, CausesOfUnfitness); // Сохранение изменений Document.MainDocumentPart.Document.Save(); // Закрытие Извещения Document.Close(); // Создание карточки Извещения CardData NewFileCard = CalibrationLib.NewFileCard(Context, CardScript.Session, CalibrationLib.NoticeOfUnfitnessCategoryID, CalibrationLib.TempFolder + "\\" + "Извещение о непригодности.docx", VerificationDate, DeviceCard, ClientName, VerifySerialNumber, false, IsNewDevice); // Прикрепление карточки Извещения к карточке паспорта прибора CalibrationLib.AttachFileToCard(CardScript.Session, DeviceCard, NewFileCard); return(NewFileCard); }
public static CardData Create(ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client, DateTime CalibrationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, DateTime StartDateOfCalibration, bool NewDevice = false) { string ClientName = Client.Equals(Guid.Empty) ? "СКБ ЭП" : Context.GetObject <PartnersCompany>(Client).Name; WordprocessingDocument Certificate = CalibrationLib.GetCalibrationCertificateTemplate(CardScript.Session); // Заполнение данных сертификата FillData(Certificate, CardScript, Context, DeviceCard, ClientName, CalibrationDate, AdditionalWaresList, StartDateOfService, StartDateOfCalibration); // Сохранение изменений Certificate.MainDocumentPart.Document.Save(); // Закрытие сертификата Certificate.Close(); // Создание карточки сертификата CardData NewFileCard = CalibrationLib.NewFileCard(Context, CardScript.Session, CalibrationLib.CalibrationCertificateCategoryID, CalibrationLib.TempFolder + "\\" + "Сертификат о калибровке.docx", CalibrationDate, DeviceCard, ClientName, "", true, NewDevice); // Прикрепление карточки сертификата к карточке паспорта прибора CalibrationLib.AttachFileToCard(CardScript.Session, DeviceCard, NewFileCard); return(NewFileCard); }
/// <summary> /// Создать новую результирующую строку. /// </summary> /// <param name="NewRow"> Строка таблицы. </param> /// <returns></returns> private TableRow NewResult(TablesRow NewRow) { UInt32 RowHeight = 284U; int LeftIndentation = -57; int RightIndentation = -57; int FontSize = 10; TableRow tableRow = CalibrationLib.NewTableRow(RowHeight); int[] CellWidthValues = GetCellWidthValues(NewRow); TableCell TableCell1 = tableRow.AddTableCell(CellWidthValues[0], NewRow.Values[0], LeftIndentation, RightIndentation, JustificationValues.Left, FontSize, NewRow.GridSpan[0]); TableCell1.SetBorders(BorderValues.Nil, BorderValues.Nil, BorderValues.Nil, BorderValues.Nil); TableCell TableCell2 = tableRow.AddTableCell(CellWidthValues[1], NewRow.Values[1], LeftIndentation, RightIndentation, JustificationValues.Center, FontSize, NewRow.GridSpan[1]); TableCell2.SetBorders(BorderValues.Nil, BorderValues.Nil, BorderValues.Single, BorderValues.Nil); TableCell TableCell3 = tableRow.AddTableCell(CellWidthValues[2], NewRow.Values[2], LeftIndentation, RightIndentation, JustificationValues.Left, FontSize, NewRow.GridSpan[2]); TableCell3.SetBorders(BorderValues.Nil, BorderValues.Nil, BorderValues.Nil, BorderValues.Nil); return(tableRow); }
/// <summary> /// Создать свидетельство о поверке. /// </summary> /// <param name="CardScript"> Скрипт.</param> /// <param name="Context"> Объектный контекст.</param> /// <param name="DeviceCard"> Карточка прибора.</param> /// <param name="Client"> Идентификатор клиента.</param> /// <param name="CalibrationDate"> Дата проведения поверки.</param> /// <param name="AdditionalWaresList"> Перечень дополнительных изделий.</param> /// <param name="StartDateOfService"> Дата передачи на поверку.</param> /// <param name="VerifySerialNumber"> Серийный номер поверки.</param> /// <param name="NewDevice"> Метка нового прибора.</param> /// <returns></returns> public static CardData Create(ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client, DateTime CalibrationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, string VerifySerialNumber, bool NewDevice = false) { string ClientName = Client.Equals(Guid.Empty) ? "ООО \"СКБ ЭП\"" : Context.GetObject <PartnersCompany>(Client).Name; string PreviousVerifySerialNumber = "-"; // Получаем последнее свидетельство о поверке CardData PreviousVerificationCertificate = CalibrationLib.GetDocumentCard(CardScript.Session, DeviceCard, CalibrationLib.VerificationCertificateCategoryID); if (PreviousVerificationCertificate != null) { try { if (PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber) != null) { String OldSerialNumber = PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber).ToString(); PreviousVerifySerialNumber = OldSerialNumber == "" ? PreviousVerifySerialNumber : OldSerialNumber; } } catch { PreviousVerifySerialNumber = "-"; } } WordprocessingDocument Certificate = CalibrationLib.GetVerificationCertificateTemplate(CardScript.Session); // Заполнение данных сертификата FillData(Certificate, CardScript, Context, DeviceCard, ClientName, CalibrationDate, AdditionalWaresList, StartDateOfService, PreviousVerifySerialNumber); // Сохранение изменений Certificate.MainDocumentPart.Document.Save(); // Закрытие сертификата Certificate.Close(); // Создание карточки сертификата CardData NewFileCard = CalibrationLib.NewFileCard(Context, CardScript.Session, CalibrationLib.VerificationCertificateCategoryID, CalibrationLib.TempFolder + "\\" + "Свидетельство о поверке.docx", CalibrationDate, DeviceCard, ClientName, VerifySerialNumber, false, NewDevice); // Прикрепление карточки сертификата к карточке паспорта прибора CalibrationLib.AttachFileToCard(CardScript.Session, DeviceCard, NewFileCard); return(NewFileCard); }
public static CardData Create(ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client, DateTime VerificationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, bool IsPrimaryVerification) { Guid DeviceTypeID = DeviceCard.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid(); string DeviceTypeName = ApplicationCard.UniversalCard.GetItemName(DeviceTypeID); string ClientName = Client.Equals(Guid.Empty) ? "ООО \"СКБ ЭП\"" : Context.GetObject <PartnersCompany>(Client).Name; WordprocessingDocument Protocol = CalibrationLib.GetVerificationProtocolTemplate(CardScript.Session, DeviceTypeName); // Заполнение данных протокола FillData(Protocol, CardScript, Context, DeviceCard, VerificationDate, ClientName, AdditionalWaresList, StartDateOfService, IsPrimaryVerification); // Сохранение изменений Protocol.MainDocumentPart.Document.Save(); // Закрытие сертификата Protocol.Close(); // Создание карточки протокола калибровки CardData ProtocolFileCard = CalibrationLib.NewFileCard(Context, CardScript.Session, CalibrationLib.VerificationProtocolCategoryID, CalibrationLib.TempFolder + "\\" + "Протокол поверки " + DeviceTypeName.Replace("/", "-") + ".docm", VerificationDate, DeviceCard, ClientName, "", false); // Прикрепление карточки протокола калировки к карточке паспорта прибора CalibrationLib.AttachFileToCard(CardScript.Session, DeviceCard, ProtocolFileCard); return(ProtocolFileCard); }
public static bool Verify(ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client, DateTime CalibrationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, bool IsNewDevice = false) { string ErrorText = ""; Guid DeviceTypeID = DeviceCard.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid(); string DeviceTypeName = ApplicationCard.UniversalCard.GetItemName(DeviceTypeID); string DeviceNumber = DeviceCard.GetDeviceNumber(); // Наличие в справочнике полного названия прибора if (ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Полное название") == null) { ErrorText = ErrorText + " - Не удалось определить полное название прибора.\n"; } // Наличие в справочнике методики поверки if (ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Методика поверки") == null) { ErrorText = ErrorText + " - Не удалось определить методику поверки для указанного прибора.\n"; } // Наличие в справочнике средств калибровки //if (ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Средства калибровки") == null) if (CalibrationLib.GetListOfMeasures(CardScript.Session, DeviceTypeID, true, false) == "-") { ErrorText = ErrorText + " - Не удалось определить средства калибровки для указанного прибора.\n"; } // Наличие сведений об условиях калибровки на указанную дату калибровки ErrorText = ErrorText + CalibrationLib.CheckCalibrationJournal(CardScript, Context, CalibrationDate); //** Проверка родительских документов **// TablesCreator Creator = new TablesCreator(); string DeviceErrorText = ""; // Проверка протокола калибровки прибора if (Creator.CertificateDeviceTablesCollection.Any(r => r.DeviceTypes.Any(s => s == DeviceTypeName) && r.ParentDocumentCategory == CertificateTableLook.DocumentCategory.CalibrationProtocol)) { DeviceErrorText = CalibrationLib.CheckDocument(CardScript.Session, DeviceCard, StartDateOfService, CalibrationLib.CalibrationProtocolCategoryID, IsNewDevice); if (DeviceErrorText != "") { ErrorText = ErrorText + " - Не удалось найти данные о калибровке для " + DeviceTypeName + " " + DeviceNumber + ":\n" + DeviceErrorText; } } // Проверка данных измерений для некоторых приборов //if (CalibrationLib.MeasuringDataList.Any(r => r == DeviceTypeName)) if (Creator.CertificateDeviceTablesCollection.Any(r => r.DeviceTypes.Any(s => s == DeviceTypeName) && r.ParentDocumentCategory == CertificateTableLook.DocumentCategory.MeasuringData)) { DeviceErrorText = CalibrationLib.CheckDocument(CardScript.Session, DeviceCard, StartDateOfService, CalibrationLib.MeasuringDataCategoryID, IsNewDevice); if (DeviceErrorText != "") { ErrorText = ErrorText + " - Не удалось найти данные измерений для " + DeviceTypeName + " " + DeviceNumber + ":\n" + DeviceErrorText; } } // Проверка протоколов приемосдаточных испытаний для датчиков if ((AdditionalWaresList != null) && (AdditionalWaresList.Count() > 0)) { foreach (CardData Ware in AdditionalWaresList) { Guid WareTypeID = Ware.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid(); string WareTypeName = ApplicationCard.UniversalCard.GetItemName(WareTypeID); if (CalibrationLib.SensorsList.Any(r => r == WareTypeName)) { string WareNumber = Ware.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Заводской номер прибора'").GetString(CardOrd.Properties.Value).ToString(); string WareYear = Ware.Sections[CardOrd.Properties.ID].FindRow("@Name = '/Год прибора'").GetString(CardOrd.Properties.Value).ToString(); WareNumber = WareNumber.Length == 4 ? WareNumber : WareNumber + "/" + WareYear; string SensorsErrorText = CalibrationLib.CheckDocument(CardScript.Session, Ware, StartDateOfService, CalibrationLib.AcceptanceTestingProtocolCategoryID, IsNewDevice); if (SensorsErrorText != "") { ErrorText = ErrorText + " - Не удалось найти данные о приемосдаточных испытаниях для " + WareTypeName + " " + WareNumber + ":\n" + SensorsErrorText; } } } } if (ErrorText == "") { return(true); } else { XtraMessageBox.Show("Не удалось сформировать 'Сертификат о калибровке'. Обнаружены следующие ошибки:\n\n" + ErrorText + "\nОбратитесь к администратору системы.", "", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return(false); } }