private void AlignData(Document doc) { var container = (Page)View.ContentContainers.Single(t => t.Name == "pageAlignData"); var document = (Document)View.Documents.Single(t => t.ControlName == "AlignData"); container.Parent = View.ActiveContentContainer; document.Caption = string.Format("Выверка данных {0}", ActiveForm); View.ActivateContainer(container); }
public bool CanCheck(Document doc) { return ActiveForm != null; }
private bool OpenFile(Document doc) { using (var openFileDialog = new OpenFileDialog()) { openFileDialog.Filter = "Microsoft Excel 2003 (*.xls)|*.xls|Microsoft Excel 2007-2013 (*.xlsx)|*.xlsx"; var result = openFileDialog.ShowDialog(this); if (result == DialogResult.OK) { var filename = openFileDialog.FileName; try { var fileContents = File.ReadAllBytes(filename); var documentFormat = DocumentFormat.OpenXml; if (filename.EndsWith(".xls")) documentFormat = DocumentFormat.Xls; using (var ms = new MemoryStream(fileContents, 0, fileContents.Length)) { this.spreadsheetControl.LoadDocument(ms, documentFormat); } } catch (Exception ex) { MessageBox.Show(ex.Message); return false; } } } return false; }
public async void Check(Document doc) { if (ActiveForm == null) { return; } if (!ActiveForm.check_file_id.HasValue) { this.ShowFlyoutMessageBox("Ошибка", string.Format("Для формы {0} не загружен файл с формулами.\nОбратитесь к администратору.", ActiveForm.name), FlyoutCommand.OK); return; } var checkdata = ActiveForm.check_file.contents; var encoding = Encoding.UTF8; var crc = FileUtility.GetCRC32AsHexString(checkdata); if (!crc.Equals(ActiveForm.check_file_md5)) { this.ShowFlyoutMessageBox("Ошибка", string.Format("Ошибка целостности данных в файле проверки для формы {0}.\nОбратитесь к Администратору.", ActiveForm.name), FlyoutCommand.OK); return; } ProgressDialog.ShowTop(this.ParentForm, description: "Проверка формы..."); var resultList = await FormulaUtility.GetCheckResultsAsync(checkdata, encoding, this.spreadsheetControl.Document); ProgressDialog.HideTop(); if (resultList.Count > 0) { spreadsheetControl.Tag = "Unchecked"; this.ShowFlyoutMessageBox("Информация", "Форма заполнена с ошибками." + (CheckExpressionParser.IsLastCheckFileHadErrors ? "\nФайл с формулами содержит ошибки, проверка выполнена частично." : string.Empty), FlyoutCommand.OK); var resultForm = new CheckResultSummaryForm(); resultForm.SetData(resultList); resultForm.Show(this); } else { if (CheckExpressionParser.IsLastCheckFileHadErrors) { this.ShowFlyoutMessageBox("Информация", "Файл с формулами содержит ошибки, проверка выполнена частично.\nОбратитесь к администратору.", FlyoutCommand.OK); } else { spreadsheetControl.Tag = "Checked"; var isBlocked = await ActiveForm.IsBlockedAsync(); var actions = isBlocked ? new [] { FlyoutCommand.OK } : new [] { FlyoutCommand.Yes, FlyoutCommand.No }; var msg = string.Format("Форма {0} не содержит ошибок." + (isBlocked ? "" : " Загрузить на сервер?"), ActiveForm.name); var continueToSave = this.ShowFlyoutMessageBox("Информация", msg, actions); if (continueToSave == DialogResult.Yes) { var formStatus = Status.OK; var now = await Repo.GetNowAsync(); if (now.Year == _selectedDate.Year) { var timeRemaining = await ActiveForm.TimeRemainingAsync(); if (timeRemaining == TimeSpan.Zero) { this.ShowFlyoutMessageBox("Информация", "Срок сдачи формы просрочен. Форма будет загружена с соответствующей пометкой.", FlyoutCommand.OK); formStatus = Status.Expired; } } ExecuteUpload(doc, ActiveForm, _selectedDate.Year, formStatus); } } } }
protected override bool CanSave(Document doc) { return ActiveForm != null; }
protected override async void Save(Document doc) { if (ActiveForm == null) { this.ShowFlyoutMessageBox("Ошибка", "Не выбрана форма для отправки", FlyoutCommand.OK); return; } if (this.spreadsheetControl.Document == null) { this.ShowFlyoutMessageBox("Информация", "Нечего отправлять", FlyoutCommand.OK); return; } if (spreadsheetControl.IsCellEditorActive) spreadsheetControl.CloseCellEditor(CellEditorEnterValueMode.Default); var continueToSave = this.ShowFlyoutMessageBox( "Подтверждение", String.Format("Будет загружена форма {0} из {1}. Продолжить загрузку на сервер?", ActiveForm.name, Source == FormSource.File ? "файла" : Source == FormSource.Template ? "шаблона" : "ниоткуда"), FlyoutCommand.Yes, FlyoutCommand.No); if (continueToSave == DialogResult.No) return; var formStatus = Status.OK; if (spreadsheetControl.Tag.ToString() != "Checked") { continueToSave = this.ShowFlyoutMessageBox( "Информация", "Форма заполнена с ошибками или не была проверена.\nПеред загрузкой на сервер необходимо, чтобы заполненная форма не содержала ошибок.\nПродолжить загрузку на сервер?", FlyoutCommand.Yes, FlyoutCommand.No); if (continueToSave == DialogResult.Yes) { formStatus = Status.WithErrors; } else { return; } } var now = await Repo.GetNowAsync(); if (now.Year == _selectedDate.Year) { var timeRemaining = await ActiveForm.TimeRemainingAsync(); if (timeRemaining == TimeSpan.Zero) { this.ShowFlyoutMessageBox("Информация", "Срок сдачи формы просрочен. Форма будет загружена с соответствующей пометкой.", FlyoutCommand.OK); formStatus = formStatus == Status.OK ? Status.Expired : Status.WithErrors | Status.Expired; } } ExecuteUpload(doc, ActiveForm, _selectedDate.Year, formStatus); }
private void ExecuteUpload(Document doc, form form, int year, Status status) { switch (doc.ControlName) { case "UploadSheetFromFile": case "UploadSheetFromTemplate": this.UploadNewFormData(form, year, status); break; case "FormData": case "FormData1": case "FormData2": this.UploadEduFormDataChanges(form, year, status); break; case "FormData3": case "FormData4": this.UploadMunitFormDataChanges(form, year, status); break; default: this.ShowFlyoutMessageBox("Информация", "Нечего отправлять.", FlyoutCommand.OK); break; } }
public void SaveLocal(Document doc) { using (var saveFileDialog = new SaveFileDialog()) { saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); saveFileDialog.FileName = string.Format("{0}-{1}-{2}.xlsx", Authentication.Credentials.Name, ActiveForm, DateTime.Now.ToString("yy-MM-dd")); saveFileDialog.Filter = "Excel 2007-2013 (*.xlsx)|*.xlsx"; if (saveFileDialog.ShowDialog(this) != DialogResult.OK) return; try { using (Stream fs = saveFileDialog.OpenFile()) { this.spreadsheetControl.SaveDocument(fs, DocumentFormat.OpenXml); this.ShowFlyoutMessageBox("Информация", "Файл сохранен.", FlyoutCommand.OK); this.IsLocalSaved = true; } } catch (Exception ex) { this.ShowFlyoutMessageBox("Ошибка", "Не удалось сохранить файл\n" + ex.Message, FlyoutCommand.OK); } } }