/// <summary> /// Дополнительное изделие. /// </summary> public AdditionalWare(ScriptClassBase CardScript, string WareName, string WarePassportID, string WareItemID, string TypeID, string TypeName) { this.CardScript = CardScript; this.WareName = WareName; this.WarePassportID = WarePassportID; this.WareItemID = WareItemID; this.TypeID = TypeID; this.TypeName = TypeName; }
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="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; }
/// <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; }
/// <summary> /// Заполнение файла "Извещение о непригодности" /// </summary> /// <param name="Document"> Редактируемый документ.</param> /// <param name="CardScript"> Скрипт карточки.</param> /// <param name="Context"> Объектный контекст.</param> /// <param name="DeviceCard"> Карточка прибора.</param> /// <param name="ClientName"> Название клиента.</param> /// <param name="VerificationDate"> Дата поверки.</param> /// <param name="AdditionalWaresList"> Перечень дополнительных изделий.</param> /// <param name="StartDateOfService"> Дата поступления на поверку.</param> /// <param name="PreviousVerifySerialNumber"> Серийный номер предыдущей поверки.</param> /// <param name="CausesOfUnfitness"> Серийный номер предыдущей поверки.</param> /// <returns></returns> public static void FillData(WordprocessingDocument Document, ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, string ClientName, DateTime VerificationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, string PreviousVerifySerialNumber, string CausesOfUnfitness) { // Формирование Извещения о непригодности Guid DeviceTypeID = DeviceCard.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid(); string DeviceTypeName = ApplicationCard.UniversalCard.GetItemName(DeviceTypeID); string DeviceNumber = DeviceCard.GetDeviceNumber(); // Данные для заполнения закладочных полей string FullDeviceType = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Полное название").ToString() + " " + DeviceTypeName + ","; string VerificationDateString = VerificationDate.ToLongDateString(); string VerificationMethods = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Методика поверки").ToString(); string RegNum = "ГР №" + ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Номер в Госреестре").ToString(); string AdditionalWares = (AdditionalWaresList.Count > 0 ? "c датчиками " : "") + AdditionalWaresList.Select(r => ApplicationCard.UniversalCard.GetItemName(r.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid()) + " " + r.GetDeviceNumber()).Aggregate(AdditionalWaresList.Count == 2 ? " и " : ", "); // Заполнение закладочный полей FillBookmarks(Document, FullDeviceType, RegNum, AdditionalWares, PreviousVerifySerialNumber, DeviceNumber, VerificationMethods, VerificationDateString, CausesOfUnfitness); 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="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); }
/// <summary> /// Инициализирует карточку по заданным данным. /// </summary> /// <param name="ClassBase">Скрипт карточки.</param> /// <param name="e">Событие открытия карточки</param> public ApplicationCard(ScriptClassBase ClassBase, CardActivatedEventArgs e) : base(ClassBase) { try { /* Получение рабочих объектов */ Table_Service = ICardControl.FindPropertyItem <ITableControl>(RefApplicationCard.Service.Alias); Table_AddComplete = ICardControl.FindPropertyItem <ITableControl>(RefApplicationCard.AddComplete.Alias); Grid_Service = ICardControl.GetGridView(RefApplicationCard.Service.Alias); Grid_AddComplete = ICardControl.GetGridView(RefApplicationCard.AddComplete.Alias); Control_Links = ICardControl.FindPropertyItem <LinksControlView>(RefApplicationCard.MainInfo.Links); /* Получение номера */ if (GetControlValue(RefApplicationCard.MainInfo.Number).ToGuid().IsEmpty()) { CurrentNumerator = CardScript.GetNumber(RefApplicationCard.NumberRuleName); CurrentNumerator.Number = Convert.ToInt32(CurrentNumerator.Number).ToString("00000"); SetControlValue(RefApplicationCard.MainInfo.Number, Context.GetObjectRef <BaseCardNumber>(CurrentNumerator).Id); WriteLog("Выдали номер: " + CurrentNumerator.Number); } else { CurrentNumerator = Context.GetObject <BaseCardNumber>(GetControlValue(RefApplicationCard.MainInfo.Number)); } /* Заполнение списка изменений */ RefreshChanges(); /* Значения по умолчанию */ if (e.ActivateFlags.HasFlag(ActivateFlags.New)) { SetControlValue(RefApplicationCard.MainInfo.Status, (Int32)RefApplicationCard.MainInfo.State.Registered); } if (GetControlValue(RefApplicationCard.MainInfo.Negotiator).ToGuid().IsEmpty()) { try { StaffEmployee Emp = Context.GetEmployeeByPosition("Начальник отдела настройки"); SetControlValue(RefApplicationCard.MainInfo.Negotiator, Context.GetObjectRef(Emp).Id); } catch { MyMessageBox.Show("Не удалось найти ответственного исполнителя!", "Предупржедение", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } /* Привязка методов */ CardScript.CardControl.CardClosed += CardControl_CardClosed; CardScript.CardControl.Saved += CardControl_Saved; CardScript.CardControl.Saving += CardControl_Saving; ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.ShowClientInfo].ItemClick += ShowClientInfo_ItemClick; ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.Calculation].ItemClick += Calculation_ItemClick; ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.PrintAcceptanceAct].ItemClick += PrintAcceptanceAct_ItemClick; ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.PrintDeliveryAct].ItemClick += PrintDeliveryAct_ItemClick; ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.Calibrate].ItemClick += Calibrate_ItemClick; ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.Revoke].ItemClick += Revoke_ItemClick; ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.CreateAccountCard].ItemClick += CreateAccountCard_ItemClick; ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.Marketing].ItemClick += Marketing_ItemClick; Grid_Service.AddDoubleClickHandler(new Service_DoubleClickDelegate(Service_DoubleClick)); AddTableHandler(RefApplicationCard.Service.Alias, "AddButtonClicked", "Service_AddButtonClicked"); AddTableHandler(RefApplicationCard.Service.Alias, "RemoveButtonClicked", "Service_RemoveButtonClicked"); /* Настройка */ Customize(); } catch (Exception Ex) { CallError(Ex); } }
/// <summary> /// Заполнение данных Протокола поверки. /// </summary> /// <param name="Protocol">Документ протокола поверки.</param> /// <param name="CardScript">Скрипт карточки.</param> /// <param name="Context">Объектный контекст.</param> /// <param name="DeviceCard">Карточка прибора.</param> /// <param name="VerificationDate">Дата проведения поверки.</param> /// <param name="ClientName">Наименование клиента.</param> /// <param name="AdditionalWaresList">Перечень доп. изделий.</param> /// <param name="StartDateOfService">Дата поступления на серивсное обслуживание.</param> /// <param name="IsPrimaryVerification">Флаг первичной поверки.</param> public static void FillData(WordprocessingDocument Protocol, ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, DateTime VerificationDate, string ClientName, List <CardData> AdditionalWaresList, DateTime StartDateOfService, bool IsPrimaryVerification) { // ====== Получение информации для заполнения закладочных полей в протоколе поверки ===== // // Идентификатор типа прибора определяется из карточки "Паспорта прибора" Guid DeviceTypeID = DeviceCard.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid(); // Тип поверки определяется из входных данных (если прибор новый или после ремонта, то тип поверки - "первичная", если прибор клиента после калибровки/поверки - то тип поверки - "периодическая") string VerificationType = IsPrimaryVerification ? "ПЕРВИЧНОЙ" : "ПЕРИОДИЧЕСКОЙ"; // Краткое название прибора определяется из универсального справочника типа "Приборы и комплектующие" string DeviceTypeName = ApplicationCard.UniversalCard.GetItemName(DeviceTypeID); // Полное официальное название прибора определяется из универсального справочника типа "Приборы и комплектующие" string DisplayDeviceTypeName = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Полное название").ToString() + " " + DeviceTypeName; // Перечень дополнительных изделий определяется из входного параметра AdditionalWaresList string AdditionalWares = (AdditionalWaresList.Count > 0 ? "c датчиками " : "") + AdditionalWaresList.Select(r => ApplicationCard.UniversalCard.GetItemName(r.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid()) + " № " + (r.GetDeviceNumber().Contains("/") == true ? r.GetDeviceNumber().Replace("/", " (") + " г)" : r.GetDeviceNumber())).Aggregate(AdditionalWaresList.Count == 2 ? " и " : ", "); // Заводской номер прибора определяется из карточки "Паспорта прибора" string DeviceNumber = DeviceCard.GetDeviceNumber() + " " + AdditionalWares; // Дата проведения поверки определяется из входного параметра VerificationDate string VerificationDateString = VerificationDate.ToLongDateString(); // ФИО текущего сотрудника определяется из справочника сотрудников (строка отображения) string StaffName = Context.GetCurrentEmployee().DisplayString; // ФИО руководителя отдела Метрологической лаборатории определяется из справочника сотрудников по должности string ManagerName = Context.GetEmployeeByPosition(SKB.Base.Ref.RefServiceCard.Roles.MetrologicalLabManager) != null?Context.GetEmployeeByPosition(SKB.Base.Ref.RefServiceCard.Roles.MetrologicalLabManager).DisplayString : ""; // Методика поверки определяется из универсального справочника типа "Пиборы и комплектующие" string VerificationMethods = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Методика поверки").ToString(); // Дата выпуска прибора определяется из карточки "Паспорта прибора" (если в истории прибора есть строка о поступлени прибора на калибровку, то берется дата поступления на калибровку, если нет - то берется год прибора). string DateOfIssue = DeviceCard.GetDeviceDateOfIssue(); // Перечень эталонов определяется из карточек "Оборудование" (отбираются все карточки "Оборудование", в которых указано, что данное оборудование является эталоном и используется для поверки текущего типа прибора). // Перечень эталонов разбивается на две части по количеству символов (для вставки в разные строки протокола поверки). string VerificationMeans = ""; string VerificationMeans2 = ""; CalibrationLib.GetListOfMeasures(CardScript.Session, DeviceTypeID, false, true, 4, out VerificationMeans, out VerificationMeans2); // Перечень вспомогательных средств поверки определяется из карточек "Оборудование" (отбираются все карточки "Оборудование", в которых указано, что данное оборудование является вспомогательным средством поверки и используется для поверки текущего типа прибора) // Перечень вспомогательных средств поверки разбивается на две части по количеству символов (для вставки в разные строки протокола поверки). string AuxiliaryMeshuring = ""; string AuxiliaryMeshuring2 = ""; CalibrationLib.GetListOfAuxiliaryMeasures(CardScript.Session, DeviceTypeID, false, true, 3, out AuxiliaryMeshuring, out AuxiliaryMeshuring2); // Значения влияющих факторов (температура, влажность, атмосферное давление) определяются из конструктора справочников, из узла "Журнал условий поверки". // Если прибор = МИКО-21, то значение атмосферного давления корректируется. // Определяются только в режиме авторматического заполнения протокола поверки. string Temperature; string Humidity; string AtmospherePressure; CalibrationLib.GetCalibrationConditions(CardScript.Session, Context, VerificationDate, out Temperature, out Humidity, out AtmospherePressure); if (DeviceTypeName == "МИКО-21") { AtmospherePressure = Math.Round(Convert.ToDouble(AtmospherePressure) / 7.501, 1).ToString(); } // ===== Заполнение закладочных полей ===== // FillBookmarks(Protocol, DeviceCard, VerificationType, VerificationDateString, DisplayDeviceTypeName, DeviceNumber, ClientName, DateOfIssue, VerificationMethods, VerificationMeans, VerificationMeans2, AuxiliaryMeshuring, AuxiliaryMeshuring2, Temperature, Humidity, AtmospherePressure, StaffName, ManagerName); // ===== Заполнение данных о метрологических характеристиках прибора ===== // // Определение режима заполнения протоколов поверки для текущего типа прибора int FormMode = (Int32)ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Формирование протокола поверки"); // Заполнение данных о метрологических характеристиках осуществляется только в автоматическом режиме заполнения протокола поверки // Если режим заполнения - автоматический, то добавляем таблицы с данными метрологических характеристик if (FormMode == 2) { // Получение объекта создателя таблиц TablesCreator Creator = new TablesCreator(); // Добавление таблиц метрологических характеристик прибора (информация о таблицах и их содержимом получается из объекта создателя таблиц) AddDeviceTables(Protocol, CardScript.Session, Creator, DeviceTypeName, DeviceCard, StartDateOfService); // Добавление таблиц с результатами испытаний датчиков if (AdditionalWaresList != null) { 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)) { AddSensorTables(Protocol, CardScript.Session, Creator, WareTypeName, Ware, StartDateOfService, DeviceTypeName); } } } } return; }
/// <summary> /// Заполнение данных протокола /// </summary> /// <param name="Protocol">Документ протокола.</param> /// <param name="CardScript">Скрипт карточки.</param> /// <param name="Context">Объектный контекст.</param> /// <param name="DeviceCard">Карточка прибора.</param> /// <param name="CalibrationDate">Дата калибровки.</param> /// <param name="AdditionalWaresList">Перечень доп. изделий.</param> /// <param name="StartDateOfService">Дата начала сервисного обслуживания.</param> public static void FillData(WordprocessingDocument Protocol, ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, 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 DisplayDeviceTypeName; if (CalibrationLib.AdditionalWaresList.Any(r => r == DeviceTypeName)) { DisplayDeviceTypeName = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Полное название").ToString(); } switch (DeviceTypeName) { case "ПКР-2М": DisplayDeviceTypeName = "ПКР-2"; break; case "ПКВ/У3.0-01": DisplayDeviceTypeName = "ПКВ/У3.0"; break; default: DisplayDeviceTypeName = DeviceTypeName; break; } string DeviceNumber = DeviceCard.GetDeviceNumber(); // Данные для заполнения закладочных полей string CalibrationDateString = CalibrationDate.ToLongDateString(); //string CalibrationMeans = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Средства калибровки").ToString(); string CalibrationMeans = CalibrationLib.GetListOfMeasures(CardScript.Session, DeviceTypeID, true, false) + "."; string FileName = CalibrationLib.MeasuringDataList.Any(r => r == DeviceTypeName) ? CalibrationLib.GetDocumentCard(CardScript.Session, DeviceCard, CalibrationLib.MeasuringDataCategoryID).Sections[CardFile.MainInfo.ID].FirstRow.GetString(CardFile.MainInfo.FileName) : ""; string StaffName = Context.GetCurrentEmployee().DisplayString; // Заполнение закладочный полей string Temperature; string Humidity; string AtmospherePressure; CalibrationLib.GetCalibrationConditions(CardScript.Session, Context, CalibrationDate, out Temperature, out Humidity, out AtmospherePressure); FillBookmarks(Protocol, DeviceCard, DisplayDeviceTypeName, DeviceNumber, CalibrationDateString, CalibrationMeans, StaffName, Temperature, Humidity, AtmospherePressure, FileName); /*TablesCreator Creator = new TablesCreator(); * * // Добавление таблиц с результатами испытаний датчиков * //Random RandomValue = new Random(); * if (AdditionalWaresList != null) * { * 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)) * { * AddSensorTables(Protocol, CardScript.Session, Creator, WareTypeName, Ware, StartDateOfService); * } * } * }*/ //** Заполнение данных о метрологических характеристиках **// TablesCreator Creator = new TablesCreator(); // Добавление таблиц метрологических характеристик прибора AddDeviceTables(Protocol, CardScript.Session, Creator, DeviceTypeName, DeviceCard, StartDateOfService); // Добавление таблиц с результатами испытаний датчиков if (AdditionalWaresList != null) { 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)) { AddSensorTables(Protocol, CardScript.Session, Creator, WareTypeName, Ware, StartDateOfService); } } } return; }
/// <summary> /// Заполнить данные свидетельства о поверке. /// </summary> /// <param name="Certificate"> Файл свидетельства о поверке.</param> /// <param name="CardScript">Скрипт.</param> /// <param name="Context">Объектный контекст.</param> /// <param name="DeviceCard">Карточка прибора.</param> /// <param name="ClientName">Название клиента.</param> /// <param name="VerificationDate">Дата поверки.</param> /// <param name="AdditionalWaresList">Перечень дополнительных изделий.</param> /// <param name="StartDateOfService">Дата поступления на поверку.</param> /// <param name="PreviousVerifySerialNumber">Дата поступления на поверку.</param> public static void FillData(WordprocessingDocument Certificate, ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, string ClientName, DateTime VerificationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, string PreviousVerifySerialNumber) { // Формирование сертификата Guid DeviceTypeID = DeviceCard.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid(); string DeviceTypeName = ApplicationCard.UniversalCard.GetItemName(DeviceTypeID); string DeviceNumber = DeviceCard.GetDeviceNumber(); DeviceNumber = DeviceNumber.Contains("/") == true?DeviceNumber.Replace("/", " (") + " г)" : DeviceNumber; // Данные для заполнения закладочных полей string FullDeviceType = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Полное название").ToString() + " " + DeviceTypeName + ","; string VerificationDateString = VerificationDate.ToLongDateString(); int VerificationInterval = CalibrationLib.GetVerificationInterval(ApplicationCard.UniversalCard, DeviceTypeID); string ValidUntil = VerificationDate.AddMonths(VerificationInterval).AddDays(-1).ToLongDateString(); string VerificationMethods = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Методика поверки").ToString(); string VerificationScope = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Объем поверки") == null ? "в полном объеме" : ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Объем поверки").ToString(); string Suitability = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Пригодность к применению") == null ? "" : " " + ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Пригодность к применению").ToString(); string RegNum = "ГР №" + ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Номер в Госреестре").ToString(); string AdditionalWares = (AdditionalWaresList.Count > 0 ? "c датчиками " : "-") + AdditionalWaresList.Select(r => ApplicationCard.UniversalCard.GetItemName(r.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid()) + " № " + (r.GetDeviceNumber().Contains("/") == true ? r.GetDeviceNumber().Replace("/", " (") + " г)" : r.GetDeviceNumber())).Aggregate(AdditionalWaresList.Count == 2 ? " и " : ", "); string VerificationMeans = CalibrationLib.GetListOfMeasures(CardScript.Session, DeviceTypeID, false, true); // ФИО текущего сотрудника определяется из справочника сотрудников (строка отображения) string StaffName = Context.GetCurrentEmployee().FirstName.Substring(0, 1) + "." + Context.GetCurrentEmployee().MiddleName.Substring(0, 1) + ". " + Context.GetCurrentEmployee().LastName; // ФИО руководителя отдела Метрологической лаборатории определяется из справочника сотрудников по должности StaffEmployee MetrologicalLabManagerEmployee = Context.GetEmployeeByPosition(SKB.Base.Ref.RefServiceCard.Roles.MetrologicalLabManager); string ManagerName = MetrologicalLabManagerEmployee != null?MetrologicalLabManagerEmployee.FirstName.Substring(0, 1) + "." + MetrologicalLabManagerEmployee.MiddleName.Substring(0, 1) + ". " + MetrologicalLabManagerEmployee.LastName : ""; // Условия поверки string TempPath = ""; WordprocessingDocument ParentDocument = CalibrationLib.GetDocument(CardScript.Session, DeviceCard, CalibrationLib.VerificationProtocolCategoryID, out TempPath); Table ParentTable = ParentDocument == null ? null : ParentDocument.GetTable("при следующих значениях влияющих факторов:"); List <string> Collection = new List <string>(); if (ParentTable != null) { for (int i = 1; i < ParentTable.Elements <TableRow>().Count(); i++) { Collection.Add(ParentTable.GetCellValue(i, 1) + ": " + ParentTable.GetCellValue(i, 2) + " " + ParentTable.GetCellValue(i, 3) + " "); } } string Factors = Collection.Count() > 0 ? Collection.Aggregate() : ""; string Factors2 = ""; if (Factors.Length > 27) { int i = Factors.Substring(0, 27).LastIndexOf(" "); if (i > 0) { Factors2 = Factors.Substring(i); Factors = Factors.Substring(0, i); } } // Заполнение закладочный полей FillBookmarks(Certificate, ValidUntil, FullDeviceType, RegNum, AdditionalWares, PreviousVerifySerialNumber, DeviceNumber, VerificationMethods, VerificationScope, Suitability, VerificationMeans, Factors, Factors2, VerificationDateString, StaffName, ManagerName); // Добавление дополнительных данных return; }
public static void FillData(WordprocessingDocument Certificate, ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, string ClientName, DateTime CalibrationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, DateTime StartDateOfCalibration) { // Формирование сертификата Guid DeviceTypeID = DeviceCard.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid(); string DeviceTypeName = ApplicationCard.UniversalCard.GetItemName(DeviceTypeID); string DeviceNumber = DeviceCard.GetDeviceNumber(); DeviceNumber = DeviceNumber.Contains("/") == true?DeviceNumber.Replace("/", " (") + " г)" : DeviceNumber; string DeviceNumber2; switch (DeviceTypeName) { case "ПКР-2М": DeviceNumber = "ПКР-2" + " № " + DeviceNumber; DeviceNumber2 = ""; break; case "ПКВ/У3.0-01": DeviceNumber = "ПКВ/У3.0" + " № " + DeviceNumber; DeviceNumber2 = ""; break; case "ТК-026": DeviceNumber = " № " + DeviceNumber; DeviceNumber2 = "(для ПКВ/М7)"; break; case "ТК-021": DeviceNumber = " № " + DeviceNumber; DeviceNumber2 = "(для ПКВ/У3)"; break; default: DeviceNumber = DeviceTypeName + " № " + DeviceNumber; DeviceNumber2 = ""; break; } // Данные для заполнения закладочных полей string FullDeviceType = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Полное название").ToString(); string ReceiptDateString = StartDateOfCalibration.ToLongDateString(); string CalibrationDateString = CalibrationDate.ToLongDateString(); string CalibrationMethods = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Методика поверки").ToString(); //string CalibrationMeans = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Средства калибровки").ToString(); string CalibrationMeans = CalibrationLib.GetListOfMeasures(CardScript.Session, DeviceTypeID, true, false) + "."; // Условия калибровки string Temperature; string Humidity; string AtmospherePressure; CalibrationLib.GetCalibrationConditions(CardScript.Session, Context, CalibrationDate, out Temperature, out Humidity, out AtmospherePressure); // Заполнение закладочный полей FillBookmarks(Certificate, FullDeviceType, DeviceNumber, DeviceNumber2, ReceiptDateString, ClientName, CalibrationDateString, CalibrationMethods, Temperature, Humidity, AtmospherePressure, CalibrationMeans); //** Заполнение данных о метрологических характеристиках **// // Добавление заголовка AddTitle(Certificate); // Добавление таблицы метрологических характеристик прибора TablesCreator Creator = new TablesCreator(); AddDeviceTables(Certificate, CardScript.Session, Creator, DeviceTypeName, DeviceCard, StartDateOfService); // Добавление таблиц метрологических характеристик датчиков if (AdditionalWaresList != null) { 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.GetDeviceNumber(); AddSensorTables(Certificate, CardScript.Session, Creator, WareTypeName, WareNumber, Ware, StartDateOfService); } } } // Добавление дополнительных данных AddAdditionalTables(Certificate, Creator, DeviceTypeName); return; }
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); } }
/// <summary> /// Инициализирует карточку по заданным данным. /// </summary> /// <param name="ClassBase">Скрипт карточки.</param> public MarketingFilesCard(ScriptClassBase ClassBase) : base(ClassBase) { try { /* Назначение прав */ NeedAssign = CardScript.CardControl.ActivateFlags.HasFlag(ActivateFlags.New) || CardScript.CardControl.ActivateFlags.HasFlag(ActivateFlags.NewFromTemplate); NeedSynchronize = false; Boolean Open = true; if (!NeedAssign) { if (CardScript.CardControl.ModeId == RefMarketingFilesCard.Modes.OpenFiles || CardScript.CardControl.ModeId.IsEmpty()) { if (MyHelper.OpenFolder(FolderPath).HasValue) { Open = false; CardScript.CardFrame.Close(); } } else if (CardScript.CardControl.ModeId == RefMarketingFilesCard.Modes.OpenCardAndFiles) { MyHelper.OpenFolder(FolderPath); } } if (Open) { /* Получение рабочих объектов */ _Control_Categories = ICardControl.FindPropertyItem <CollectionControlView>(RefMarketingFilesCard.Categories.Alias); _Button_Upload = ICardControl.FindPropertyItem <SimpleButton>(RefMarketingFilesCard.Buttons.Upload); _Edit_Files = ICardControl.FindPropertyItem <TextEdit>(RefMarketingFilesCard.MainInfo.Files); ArchiveTempPath = CardScript.Session.GetArchiveTempPath(); if (ICardControl.ContainsControl(RefMarketingFilesCard.EquipmentSorts.Alias)) { Control_EquipmentSorts = ICardControl.FindPropertyItem <CollectionControlView>(RefMarketingFilesCard.EquipmentSorts.Alias); } if (ICardControl.ContainsControl(RefMarketingFilesCard.EquipmentTypes.Alias)) { Control_EquipmentTypes = ICardControl.FindPropertyItem <CollectionControlView>(RefMarketingFilesCard.EquipmentTypes.Alias); } if (ICardControl.ContainsControl(RefMarketingFilesCard.Manufacturers.Alias)) { Control_Manufacturers = ICardControl.FindPropertyItem <CollectionControlView>(RefMarketingFilesCard.Manufacturers.Alias); } if (!Control_EquipmentSorts.IsNull() && !Control_EquipmentTypes.IsNull()) { Selector_EquipmentTypes = new SelectHelper(Context, SelectionType.BaseUniversalItem, Control_EquipmentTypes.TypeIds[0].NodeId, false, new List <String>() { Dynamic.CardBaseUniversalItem.EquipmentDirectory.ID + "\t" + Dynamic.CardBaseUniversalItem.EquipmentDirectory.Sort }, new List <String>() { Control_EquipmentSorts.SelectedItems.Select(item => item.ObjectId.ToUpper()).Aggregate("\t") }, false); } /* Привязка методов */ if (!IsReadOnly) { CardScript.CardControl.CardClosed -= CardControl_CardClosed; CardScript.CardControl.CardClosed += CardControl_CardClosed; CardScript.CardControl.Saved -= CardControl_Saved; CardScript.CardControl.Saved += CardControl_Saved; CardScript.CardControl.Saving -= CardControl_Saving; CardScript.CardControl.Saving += CardControl_Saving; _Button_Upload.Click -= Button_Upload_Click; _Button_Upload.Click += Button_Upload_Click; _Edit_Files.DoubleClick -= Edit_Files_DoubleClick; _Edit_Files.DoubleClick += Edit_Files_DoubleClick; if (!Control_EquipmentSorts.IsNull() && !Control_EquipmentTypes.IsNull()) { Control_EquipmentSorts.ValueChanged -= Control_EquipmentSorts_ValueChanged; Control_EquipmentSorts.ValueChanged += Control_EquipmentSorts_ValueChanged; Control_EquipmentTypes.CustomChoosingValue -= Control_EquipmentTypes_CustomChoosingValue; Control_EquipmentTypes.CustomChoosingValue += Control_EquipmentTypes_CustomChoosingValue; Control_EquipmentTypes.CustomizeTypeSearchQuery -= Control_EquipmentTypes_CustomizeTypeSearchQuery; Control_EquipmentTypes.CustomizeTypeSearchQuery += Control_EquipmentTypes_CustomizeTypeSearchQuery; } } Customize(); RefreshChanges(); } } catch (Exception Ex) { CallError(Ex); } }