private void FormFiltersParams_Load(object sender, EventArgs e) { _book = GeneralRep.ActiveBook; _linksForm = (FormPutLinks)_book.Forms[ReporterCommand.PutLinks]; MakeFiltersLists(); var sys = _book.SysPage; sys.GetControl(FilterOtm); sys.GetControl(RelationOtm); sys.GetControl(FilterFullCode); sys.GetControl(RelationFullCode); sys.GetControl(FilterCode); sys.GetControl(RelationCode); sys.GetControl(FilterSubCode); sys.GetControl(RelationSubCode); sys.GetControl(FilterName); sys.GetControl(RelationName); sys.GetControl(FilterComment); sys.GetControl(RelationComment); sys.GetControl(FilterTask); sys.GetControl(RelationTask); sys.GetControl(FilterUnits); sys.GetControl(RelationUnits); sys.GetControl(FilterDataType); sys.GetControl(RelationDataType); sys.GetControl(FilterSuperProcess); sys.GetControl(RelationSuperProcess); sys.GetControl(FilterCalcParamType); sys.GetControl(RelationCalcParamType); new ToolTip().SetToolTip(ButFilter, "Применить фильтр к списку параметров"); new ToolTip().SetToolTip(ButClearFilter, "Снять фильтр со списка параметров"); new ToolTip().SetToolTip(ButFind, "Поиск в списке параметров"); }
private void FormSaveReport_Load(object sender, EventArgs e) { _book = GeneralRep.ActiveBook; IntervalName.Text = _book.Interval.Name; PeriodBegin.Text = _book.Interval.Begin.ToString(); PeriodEnd.Text = _book.Interval.End.ToString(); }
private void FormFiltersIntervals_Load(object sender, EventArgs e) { _book = GeneralRep.ActiveBook; _intervalsForm = (FormIntervals)_book.Forms[ReporterCommand.Intervals]; var sys = _book.SysPage; sys.GetControl(FilterOtm, "FilterOtmIntervals"); sys.GetControl(RelationOtm, "RelationOtmIntervals"); sys.GetControl(FilterName, "FilterNameIntervals"); sys.GetControl(RelationName, "RelationNameIntervals"); sys.GetControl(FilterBegin1, "FilterBegin1Intervals"); sys.GetControl(RelationBegin1, "RelationBegin1Intervals"); sys.GetControl(FilterBegin2, "FilterBegin2Intervals"); sys.GetControl(RelationBegin2, "RelationBegin2Intervals"); sys.GetControl(FilterEnd1, "FilterEnd1Intervals"); sys.GetControl(RelationEnd1, "RelationEnd1Intervals"); sys.GetControl(FilterEnd2, "FilterEnd2Intervals"); sys.GetControl(RelationEnd2, "RelationEnd2Intervals"); sys.GetControl(FilterTimeChange1, "FilterTimeChange1Intervals"); sys.GetControl(RelationTimeChange1, "RelationTimeChange1Intervals"); sys.GetControl(FilterTimeChange2, "FilterTimeChange2Intervals"); sys.GetControl(RelationTimeChange2, "RelationTimeChange2Intervals"); FilterBegin1.ChangePickerValue(PickerBegin1); FilterBegin2.ChangePickerValue(PickerBegin2); FilterEnd1.ChangePickerValue(PickerEnd1); FilterEnd2.ChangePickerValue(PickerEnd2); FilterTimeChange1.ChangePickerValue(PickerTimeChange1); FilterTimeChange2.ChangePickerValue(PickerTimeChange2); new ToolTip().SetToolTip(ButFilter, "Применить фильтр к журналу отчетов"); new ToolTip().SetToolTip(ButClearFilter, "Снять фильтр с журнала отчетов"); new ToolTip().SetToolTip(ButFind, "Поиск в журнале отчетов"); }
//Инициализация, version - версия Excel public static void Initialize(Application application, string version) { try { if (_isInitialized) { return; } IsActivated = new DbVersion().ACheck("Excel") >= 1; if (!IsActivated) { return; } General.Initialize(); Application = application; CommonBook = new ReportBook("", null); CommonBook.OpenHistory(General.ReporterDir + @"ReporterHistory\" + version + "History.accdb", General.HistryTemplateFile); _isInitialized = true; } catch (Exception ex) { ex.MessageError("Ошибка при инициализации построителя отчетов"); } }
//Загрузка списка шаблонов в таблицу private void FormLinksTemplate_Load(object sender, EventArgs e) { try { _book = GeneralRep.ActiveBook; _book.SysPage.GetTemplatesList(Template); var items = LinkPropsPanel.CellLinkType.Items; items.Clear(); items.Add(LinkType.Combined.ToRussian()); items.Add(LinkType.CombinedList.ToRussian()); items.Add(LinkType.MomentsList.ToRussian()); items.Add(LinkType.Absolute.ToRussian()); items.Add(LinkType.AbsoluteEdit.ToRussian()); items.Add(LinkType.AbsoluteCombined.ToRussian()); items.Add(LinkType.AbsoluteList.ToRussian()); items.Add(LinkType.HandInput.ToRussian()); items.Add(LinkType.Result.ToRussian()); _template = Template.Text = _book.SysPage.GetValue("CurTemplate"); LoadTemplate(); } catch (Exception ex) { GeneralRep.ShowError("Ошибка при загрузке списка шаблонов", ex); } }
//Загрузка из рекордсета ReporterData public ReportProjectForData(ReportBook book, IRecordRead rec) : base(book, rec) { ProjectChangeTime = Different.MinDate; ArchiveChangeTime = Different.MinDate; DataChangeTime = Different.MinDate; LoadArchive(rec, book); }
private void FormIntervalsWin_Load(object sender, EventArgs e) { _book = GeneralRep.ActiveBook; UpdateIntervals(); new ToolTip().SetToolTip(butFilter, "Фильтрация и поиск в журнале отчетов"); new ToolTip().SetToolTip(butCheckAll, "Отметить все"); new ToolTip().SetToolTip(butUncheckAll, "Снять все отметки"); new ToolTip().SetToolTip(butLoadInterval, "Загрузить выбранный отчет из журнала"); new ToolTip().SetToolTip(butDeleteIntervals, "Удалить все отмеченные отчеты из журнала"); }
//Спрятать активную книгу со всеми формами private static void HideBook() { if (ActiveBook != null) { foreach (var f in ActiveBook.Forms.Values) { f.Hide(); } ActiveBook = null; } }
private void ButExport_Click(object sender, EventArgs e) { if (Template.Text.IsEmpty()) { Different.MessageError("Не указано имя шаблона"); return; } SaveTemplate(); var f = new DialogCommand(DialogType.OpenExcel) { DialogTitle = "Файл отчета для экспорта шаблона", ErrorMessage = "Указан недопустимый файл отчета" }.Run(); try { if (!f.IsEmpty()) { var t = _book.SysPage.GetTemplate(Template.Text); var p = _book.SysPage.GerTemplateGeneralProps(Template.Text); Workbook rbook = null; ReportBook book = null; bool notb = true; foreach (var b in GeneralRep.Books.Values) { try { if (b.Workbook.FullName == f) { notb = false; book = b; rbook = b.Workbook; } } catch { } } if (notb) { rbook = GeneralRep.Application.Workbooks.Open(f); book = GeneralRep.ActiveBook; } if (book.SysPage.TemplateX(Template.Text) == -1 || Different.MessageQuestion("В отчете " + book.Code + " уже есть шаблон " + Template.Text + ". Заменить?")) { book.SysPage.PutTemplate(Template.Text, p.ToPropertyString(), t); rbook.Save(); } if (notb) { rbook.Close(); } } } catch { Different.MessageError("Ошибка при экспорте шаблона в файл " + f); } }
//Загрузка из рекордсета ReporterData (recd) и файла данных отчета (rec) public ReportProject(ReportBook book, IRecordRead recd, IRecordRead rec) : base(book, recd) { IsUsed = rec.GetBool("IsUsed"); IsHandInput = rec.GetBool("IsHandInput"); if (IsUsed) { LoadArchive(recd, book); } if (IsHandInput) { GetHandInputFile(); } }
private void ButSetupReport_Click(object sender, EventArgs e) { try { Workbook wbook = GeneralRep.Application.Workbooks.Open(SelectedReportFile.Text); var code = new SysPage(wbook).GetValue("Report"); var book = new ReportBook(code, wbook); GeneralRep.Books.Add(code, book); book.RunCommandReporter(ReporterCommand.Setup); } catch { Different.MessageError("Указан недопустимый файл бланка отчета"); } }
//Загрузка из рекордсета ReporterData или файла данных отчета public ReportProjectBase(ReportBook book, IRecordRead rec) { Book = book; Code = rec.GetString("Project"); Code2 = rec.GetString("ProjectCode2"); Name = rec.GetString("ProjectName"); var prs = book.SysPage.GetProjects(); if (prs.ContainsKey(CodeFinal)) { CalcMode = prs[CodeFinal].CalcMode; } File = rec.GetString("ProjectFile"); if (!DbVersion.IsProject(File)) { File = null; } }
private void FormLiveReport_Load(object sender, EventArgs e) { _book = GeneralRep.ActiveBook; _book.FormingBook = _book.Workbook; var sys = _book.SysPage; using (_book.StartAtom("Открытие формы динамических отчетов")) { try { _book.AddEvent("Настройка внешнего вида"); PeriodLength.Text = sys.GetValue("LiveReportPeriodLength"); SourcesLate.Text = sys.GetValue("LiveReportSourcesLate"); FillPages.Text = sys.GetValue("LiveReportFillPages"); } catch (Exception ex) { GeneralRep.ShowError("Ошибка при открытии формы динамических отчетов", ex); } } }
private void FormVideo_Load(object sender, EventArgs e) { _book = GeneralRep.ActiveBook; _book.FormingBook = _book.Workbook; var sys = _book.SysPage; using (_book.StartAtom("Открытие формы видеомагнитофона")) { try { _book.AddEvent("Настройка внешнего вида"); VideoBegin.Text = sys.GetValue("VideoBegin"); VideoEnd.Text = sys.GetValue("VideoEnd"); PeriodLength.Text = sys.GetValue("VideoPeriodLength"); BetweenPeriods.Text = sys.GetValue("VideoBetweenPeriods"); FillPages.Text = sys.GetValue("VideoFillPages"); UpdateSourcesTime(); } catch (Exception ex) { GeneralRep.ShowError("Ошибка при открытии формы видеомагнитофона", ex); } } }
//Загрузка из файла данных отчета (recd) public ReportProjectForLinks(ReportBook book, IRecordRead rec) : base(book, rec) { IsUsed = false; IsHandInput = false; }
private void FormReportWin_Load(object sender, EventArgs e) { _book = GeneralRep.ActiveBook; var sys = _book.SysPage; using (_book.StartAtom("Открытие формы построения отчета")) { try { _book.AddEvent("Настройка внешнего вида"); panelPeriod.Visible = !_book.OnlyAbsolute; butSaveHandInput.Visible = _book.HandInputProjects.Count > 0; //Загрузка данных с SysPage IntervalName.Text = sys.GetValue("DefaultCalcName"); if (IntervalName.Text.IsEmpty()) { IntervalName.Text = sys.GetValue("CalcName"); } FillPages.Text = sys.GetValue("FillPages"); SaveToArchive.Checked = sys.GetBoolValue("SaveToArchive"); PeriodEnd.Enabled = PeriodEndPicker.Enabled = _book.DifferentLength != DifferentLength.Equals; string s = ""; int d = sys.GetIntValue("DayLength"); if (d != 0) { s += d + " сут "; } d = sys.GetIntValue("HourLength"); if (d != 0) { s += d + " час "; } d = sys.GetIntValue("MinuteLength"); if (d != 0) { s += d + " мин "; } PeriodLength.Text = s; butPreviousInterval.Enabled = butNextInterval.Enabled = s != ""; switch (_book.DefaultPeriod) { case "Previous": _book.SysPage.GetControl(PeriodBegin); _book.SysPage.GetControl(PeriodEnd); PeriodBegin.ChangePickerValue(PeriodBeginPicker); PeriodEnd.ChangePickerValue(PeriodEndPicker); break; case "Now": SetNowPeriod(); break; } UpdateSourcesTime(); } catch (Exception ex) { GeneralRep.ShowError("Ошибка при открытии формы построения отчетов", ex); } } }
//Установить текущую книгу активной, вызывается при смене книги или при открытии новой public static void ChangeActiveBook() { if (!IsActivated) { return; } try { if (!SysPage.IsInfoTask()) { HideBook(); } else { var wb = Application.ActiveWorkbook; var s = new SysPage(wb).GetValue("Report"); using (CommonBook.StartLog("Смена активной книги", "", s)) { try { if (IsOpening && !ProgrammOpening && !s.IsEmpty()) { try //Чтобы не вылазила загадочная ошибка { if (Books.ContainsKey(s) && Books[s].Workbook.FullName != wb.FullName) { Different.MessageError("Файл отчета с кодом " + s + " уже открыт"); } } catch { } } if (s.IsEmpty()) { ActiveBook = null; } else if (ActiveBook == null || ActiveBook.Code.ToLower() != s.ToLower()) { HideBook(); if (Books.ContainsKey(s)) { ActiveBook = Books[s]; foreach (var f in ActiveBook.Forms.Values) { f.Show(); } } else { ActiveBook = new ReportBook(s, wb); ActiveBook.OpenHistory(General.ReporterDir + @"ReporterHistory\" + s + "History.accdb", General.HistryTemplateFile); Books.Add(s, ActiveBook); ActiveBook.LoadSetup(); } } } catch (Exception ex) { CommonBook.AddError("Ошибка при открытии отчета", ex); throw; } } } } catch (Exception ex) { ex.MessageError("Ошибка при открытии отчета", "Системная ошибка построителя отчетов"); } IsOpening = false; ProgrammOpening = false; }
private void FormSetupWin_Load(object sender, EventArgs e) { _setupIsLoaded = false; _book = GeneralRep.ActiveBook; _book.AddEvent("Загрузка свойств отчета"); var sys = _book.SysPage; try { //Свойства отчета sys.GetControl(CodeReport, "Report"); sys.GetControl(NameReport, "ReportName"); sys.GetControl(DescriptionReport, "ReportDescription"); FileReport.Text = GeneralRep.Application.ActiveWorkbook.FullName; sys.GetControl(MonthLength); sys.GetControl(DayLength); sys.GetControl(HourLength); sys.GetControl(MinuteLength); sys.GetControl(DayStart); sys.GetControl(HourStart); sys.GetControl(MinuteStart); radioDifferent.Checked = sys.GetBoolValue("DifferentLength"); radioLess.Checked = sys.GetValue("DifferentLength") == "Less"; radioEquals.Checked = sys.GetValue("DifferentLength") == "Equals"; radioNow.Checked = sys.GetValue("DefaultPeriod") == "Now"; radioPrevious.Checked = sys.GetValue("DefaultPeriod") != "Now"; DifferentBegin.Checked = sys.GetBoolValue("DifferentBegin"); CalcName.Text = sys.GetValue("DefaultCalcName"); AllowProjectsRepetitions.Checked = sys.GetBoolValue("AllowProjectsRepetitions"); } catch (Exception ex) { GeneralRep.ShowError("Текущий файл не является файлом отчета InfoTask или был поврежден", ex); Close(); return; } _book.AddEvent("Загрузка настроек из ReporterData"); Providers.Rows.Clear(); try { if (CodeReport.Text != null) { using (var db = new DaoDb(General.ReporterFile)) { int rid = 0; using (var rec = new RecDao(db, "SELECT * FROM Reports WHERE Report = '" + CodeReport.Text + "'")) if (rec.HasRows()) { ThreadId.Text = rec.GetInt("ThreadId").ToString(); UseOneArchive.Checked = rec.GetBool("UseOneArchive"); ServerReport.Text = rec.GetString("ServerReport"); var dic = rec.GetString("FormInf").ToPropertyDicS(); FormToTemplate.Checked = dic["FormTo"] == "Template"; FormToDir.Checked = dic["FormTo"] == "Dir"; FormToFile.Checked = dic["FormTo"] == "File"; ResultDir.Text = dic["ResultDir"]; ResultFileName.Text = dic["ResultFileName"]; ResultFile.Text = dic["ResultFile"]; AddDateToName.Checked = dic.GetBool("AddDateToName"); DateNameFormat.Text = dic["DateNameFormat"]; AddBeginToName.Checked = dic.GetBool("AddBeginToName"); BeginNameFormat.Text = dic["BeginNameFormat"]; AddEndToName.Checked = dic.GetBool("AddEndToName"); EndNameFormat.Text = dic["EndNameFormat"]; AddCalcNameToName.Checked = dic.GetBool("AddCalcNameToName"); AddSheetToName.Checked = dic.GetBool("AddSheetToName"); SetFocusToFormed.Checked = dic.GetBool("SetFocusToFormed"); rid = rec.GetInt("ReportId"); _codes.Add("Report_Archive", rec.GetString("CodeArchive")); _infs.Add("Report_Archive", rec.GetString("InfArchive")); } SetFormingEnabled(); labelThreadId.Visible = ThreadId.Visible; //Список проектов using (var recr = new RecDao(db, "SELECT * FROM Projects WHERE ReportId =" + rid)) foreach (var pr in sys.GetProjects().Values) { int rn = Projects.Rows.Add(); var cells = Projects.Rows[rn].Cells; bool b = recr.FindFirst("Project", pr.Code); if (AllowProjectsRepetitions.Checked) { b = !pr.Code2.IsEmpty() ? recr.FindFirst("ProjectCode2", pr.Code2) : recr.FindFirst("(Project='" + pr.Code + "') AND ((ProjectCode2 = '') OR (ProjectCode2 Is Null))"); } if (b) { recr.GetToDataGrid("ProjectFile", cells); recr.GetToDataGrid("ProjectName", cells); if (AllowProjectsRepetitions.Checked) { recr.GetToDataGrid("ProjectCode2", cells); } cells["Project"] = new DataGridViewTextBoxCell(); if (!UseOneArchive.Checked && pr.CalcMode != CalcModeType.Internal) { var acode = recr.GetString("CodeArchive"); var ainf = recr.GetString("InfArchive"); _codes.Add(pr.CodeFinal + "_Archive", acode); _infs.Add(pr.CodeFinal + "_Archive", ainf); } } cells["Project"].Value = pr.Code; cells["ProjectCalcMode"].Value = pr.CalcMode.ToRussian(); if (AllowProjectsRepetitions.Checked) { cells["ProjectCode2"].Value = pr.Code2; } } } } } catch (Exception ex) { GeneralRep.ShowError("Неправильный файл ReporterData.accdb", ex); Close(); return; } _book.AddEvent("Загрузка настроек из ControllerData"); try { int tid; if (!int.TryParse(ThreadId.Text, out tid)) { tid = 0; } if (tid != 0) { using (var rect = new RecDao(General.ControllerFile, "SELECT * FROM Threads WHERE ThreadId = " + tid)) { IsImit.Checked = rect.GetBool("IsImit"); ImitMode.Text = rect.GetString("ImitMode"); using (var rec = new RecDao(rect.DaoDb, "SELECT * FROM Providers WHERE ThreadId=" + tid)) while (rec.Read()) { string type = rec.GetString("ProviderType"); if (type == "Источник" || type == "Приемник" || (type == "Архив" && !UseOneArchive.Checked) || (type == "Имитатор" && IsImit.Checked)) { string name = rec.GetString("ProviderName"); _codes.Add(name, rec.GetString("ProviderCode")); _infs.Add(name, rec.GetString("ProviderInf")); } } } } } catch (Exception ex) { GeneralRep.ShowError("Неправильный файл ControllerData.accdb", ex); } _setupIsLoaded = true; UpdateProvidersList(); }
private void FormPutLinks_Load(object sender, EventArgs e) { try { _book = GeneralRep.ActiveBook; _table = dataSet1.Tables[0]; new ToolTip().SetToolTip(ButDeleteLinks, "Удалить все ссылки из выделенной области листа"); new ToolTip().SetToolTip(ButUndo, "Отменить последнюю установку ссылок"); new ToolTip().SetToolTip(ButRedo, "Вернуть отмененную установку ссылок"); new ToolTip().SetToolTip(ButUpdate, "Обновить список параметров"); new ToolTip().SetToolTip(ButFilter, "Поиск и фильтрация списка параметров"); new ToolTip().SetToolTip(Template, "Текущий шаблон для установки ссылок"); new ToolTip().SetToolTip(ButSave, "Сохранить установленные ссылки и отчет"); new ToolTip().SetToolTip(ButLinkSave, "Добавить ссылку на ячейку для сохранения в журнал отчетов"); new ToolTip().SetToolTip(ButFindLinks, "Список всех ячеек со ссылками на выбранный параметр"); new ToolTip().SetToolTip(ButOtmLinks, "Установить ссылки на отмеченные параметры в соответствии с текущим шаблоном"); new ToolTip().SetToolTip(ButOtmTrue, "Отметить все"); new ToolTip().SetToolTip(ButOtmFalse, "Снять все отметки"); _book.SysPage.GetTemplatesList(Template); _book.CurTransactionNum = _book.CurTransactionNum;//Обновить доступность кнопок //Выпадающий список проектов Project.Items.Clear(); foreach (var p in _book.Projects.Values) { if (p.IsSystem) { Project.Items.Add(p.Code); } else if (!p.IsSave) { Project.Items.Add(p.CodeFinal + ": " + p.Name); } } if (Project.Items.Count > 1 && (string)Project.Items[0] == "Системные") { Project.Text = (string)Project.Items[1]; } else { Project.Text = (string)Project.Items[0]; } var menu = new ContextMenuStrip(); menu.Items.Add(LinkField.Code.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddCode; menu.Items.Add(LinkField.CodeParam.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddCodeParam; menu.Items.Add(LinkField.CodeSubParam.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddCodeSubParam; menu.Items.Add(LinkField.Name.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddName; menu.Items.Add(LinkField.SubName.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddSubName; menu.Items.Add(LinkField.Units.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddUnits; menu.Items.Add(LinkField.Task.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddTask; menu.Items.Add(LinkField.Comment.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddComment; menu.Items.Add(LinkField.SuperProcessType.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddSuperProcess; menu.Items.Add(LinkField.DataType.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddDataType; menu.Items.Add(LinkField.Min.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddMin; menu.Items.Add(LinkField.Max.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddMax; menu.Items.Add(new ToolStripSeparator()); menu.Items.Add("Ссылки по шаблону"); menu.Items[menu.Items.Count - 1].Click += AddTemplateLinks; menu.Items.Add(LinkField.Value.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddValueLink; menu.Items.Add(LinkField.Time.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddTimeLink; menu.Items.Add(LinkField.Nd.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddNdLink; menu.Items.Add(LinkField.Number.ToRussian()); menu.Items[menu.Items.Count - 1].Click += AddNumberLink; Params.ContextMenuStrip = menu; } catch (Exception ex) { GeneralRep.ShowError("Ошибка загрузки формы установки ссылок", ex); } try { Template.Text = _book.SysPage.GetValue("CurTemplate"); CellComment.Text = _book.SysPage.GetValue("CurCellComment"); NextCellShift.Text = _book.SysPage.GetValue("CurNextCellShift"); NextCellStep.Text = _book.SysPage.GetValue("CurNextCellStep"); NextCellStep.Enabled = NextCellShift.Text != "Нет"; } catch { } GeneralRep.Application.CommandBars.OnUpdate += OnShapeChange; GeneralRep.Application.SheetSelectionChange += OnSelectionChange; }