Ejemplo n.º 1
0
 //Записывает в текущую ячейку значение свойства выделенного параметра, field - имя поля
 //Транзакция создается из одной ячейки и добавляется в Transactions
 public void WriteValue(LinkField field, Transaction tlist)
 {
     try
     {
         if (!GeneralRep.CheckOneSheet(true))
         {
             return;
         }
         var v     = CurParam.GetField(field);
         var shape = _book.ActiveShape();
         if (shape == null)
         {
             Range cell = GeneralRep.Application.ActiveCell;
             var   t    = new TransactionCell(cell)
             {
                 NewValue = v,
                 Value    = v
             };
             tlist.AddCell(t);
         }
         else if (shape.Type == MsoShapeType.msoTextBox)
         {
             var t = new TransactionShape(shape)
             {
                 NewValue = v,
                 Value    = v
             };
             tlist.AddShape(t);
         }
     }
     catch {}
 }
Ejemplo n.º 2
0
 private void FormFiltersParams_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (_book.Forms.ContainsKey(ReporterCommand.FilterParams))
     {
         e.Cancel = true;
         Hide();
     }
     else
     {
         var sys = _book.SysPage;
         sys.PutControl(FilterOtm);
         sys.PutControl(RelationOtm);
         sys.PutControl(FilterFullCode);
         sys.PutControl(RelationFullCode);
         sys.PutControl(FilterCode);
         sys.PutControl(RelationCode);
         sys.PutControl(FilterSubCode);
         sys.PutControl(RelationSubCode);
         sys.PutControl(FilterName);
         sys.PutControl(RelationName);
         sys.PutControl(FilterComment);
         sys.PutControl(RelationComment);
         sys.PutControl(FilterTask);
         sys.PutControl(RelationTask);
         sys.PutControl(FilterUnits);
         sys.PutControl(RelationUnits);
         sys.PutControl(FilterDataType);
         sys.PutControl(RelationDataType);
         sys.PutControl(FilterSuperProcess);
         sys.PutControl(RelationSuperProcess);
         sys.PutControl(FilterCalcParamType);
         sys.PutControl(RelationCalcParamType);
         GeneralRep.CloseForm(ReporterCommand.FilterParams);
     }
 }
Ejemplo n.º 3
0
        //Загрузка списка шаблонов в таблицу
        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);
            }
        }
Ejemplo n.º 4
0
 private void FormFiltersIntervals_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (_book.Forms.ContainsKey(ReporterCommand.FilterIntervals))
     {
         e.Cancel = true;
         Hide();
     }
     else
     {
         var sys = _book.SysPage;
         sys.PutControl(FilterOtm, "FilterOtmIntrevals");
         sys.PutControl(RelationOtm, "RelationOtmIntervals");
         sys.PutControl(FilterName, "FilterNameIntervals");
         sys.PutControl(RelationName, "RelationNameIntervals");
         sys.PutControl(FilterBegin1, "FilterBegin1Intervals");
         sys.PutControl(RelationBegin1, "RelationBegin1Intervals");
         sys.PutControl(FilterBegin2, "FilterBegin2Intervals");
         sys.PutControl(RelationBegin2, "RelationBegin2Intervals");
         sys.PutControl(FilterEnd1, "FilterEnd1Intervals");
         sys.PutControl(RelationEnd1, "RelationEnd1Intervals");
         sys.PutControl(FilterEnd2, "FilterEnd2Intervals");
         sys.PutControl(RelationEnd2, "RelationEnd2Intervals");
         sys.PutControl(FilterTimeChange1, "FilterTimeChange1Intervals");
         sys.PutControl(RelationTimeChange1, "RelationTimeChange1Intervals");
         sys.PutControl(FilterTimeChange2, "FilterTimeChange2Intervals");
         sys.PutControl(RelationTimeChange2, "RelationTimeChange2Intervals");
         GeneralRep.CloseForm(ReporterCommand.FilterIntervals);
     }
 }
Ejemplo n.º 5
0
 //Удаляет ячейки в выделенном диапазоне
 public void DeleteLinks()
 {
     try
     {
         if (!GeneralRep.CheckOneSheet(true))
         {
             return;
         }
         var sh = ActiveShape();
         if (sh != null)
         {
             BeforeTransaction();
             var list = new Transaction();
             list.AddShape(new TransactionShape(sh)
             {
                 NewLink = null
             });
             sh.Title        = "";
             LastChangeLinks = DateTime.Now;
             AddTransaction(list);
         }
         else
         {
             Range range = GeneralRep.Application.ActiveWindow.RangeSelection;
             bool  many  = true;
             try { many = range.Cells.Count > 10000; }
             catch { }
             if (MessageReportQuestion((!many ? "" : "Выделенный фрагмент очень большой, отмена удаления будет невозможна. ") + "Удалить все ссылки в выделенном фрагменте?"))
             {
                 var list = new Transaction();
                 BeforeTransaction();
                 if (!many)
                 {
                     foreach (Range cell in range.Cells)
                     {
                         if (cell.Comment != null)
                         {
                             list.AddCell(new TransactionCell(cell)
                             {
                                 NewLink = null
                             });
                         }
                     }
                 }
                 range.ClearComments();
                 LastChangeLinks = DateTime.Now;
                 ClearReportDataFromMemory();
                 if (!many)
                 {
                     AddTransaction(list);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         AddError("Ошибка при удалении ссылок", ex);
     }
 }
Ejemplo n.º 6
0
 //Обновляет грид параметров по выбранному проекту учитывется состояние кнопки установки фильтра
 //updateItems - обновлять истночники списков для фильтров
 public void ApplyProject(bool updateItems)
 {
     IsApplyProject = true;
     try
     {
         LoadOtmToParams();
         _table.Rows.Clear();
         string pr = Project.Text;
         if (pr.IndexOf(':') >= 0)
         {
             pr = pr.Substring(0, pr.IndexOf(':'));
         }
         if (!_book.Projects.ContainsKey(pr))
         {
             CurProject = null;
         }
         else
         {
             CurProject = _book.Projects[pr];
             if (_filterForm != null && updateItems)
             {
                 _filterForm.MakeFiltersLists();
             }
             foreach (var par in CurProject.Params.Values)
             {
                 if (_filterForm == null || _filterForm.CheckParam(par))
                 {
                     var r = _table.NewRow();
                     r["ParamOtm"]           = par.Otm;
                     r["ParamTask"]          = par.GetField(LinkField.Task);
                     r["ParamCode"]          = par.GetField(LinkField.Code);
                     r["ParamName"]          = par.GetField(LinkField.Name);
                     r["ParamDataType"]      = par.GetField(LinkField.DataType);
                     r["ParamUnits"]         = par.GetField(LinkField.Units);
                     r["ParamSuperProcess"]  = par.GetField(LinkField.SuperProcessType);
                     r["ParamCalcParamType"] = par.GetField(LinkField.CalcParamType);
                     r["ParamMin"]           = par.GetField(LinkField.Min);
                     r["ParamMax"]           = par.GetField(LinkField.Max);
                     r["ParamComment"]       = par.GetField(LinkField.Comment);
                     _table.Rows.Add(r);
                 }
             }
             Params.Update();
             if (Params.Rows.Count > 0)
             {
                 Params.Rows[0].Cells[4].Selected = true;
                 ApplyParam();
             }
             Params.Columns[2].Visible = Params.Columns[3].Visible = !CurProject.IsSystem;
         }
     }
     catch (Exception ex)
     {
         GeneralRep.ShowError("Ошибка при обновлении списка параметров", ex);
     }
     IsApplyProject = false;
 }
Ejemplo n.º 7
0
 private void OpenReportGroup()
 {
     if (GroupReports.SelectedItems.Count > 0 && !GeneralRep.CommonBook.Forms.ContainsKey(ReporterCommand.GroupReportEdit))
     {
         var item = GroupReports.SelectedItems[0];
         var f    = (FormGroupReportEdit)GeneralRep.RunReporterCommand(ReporterCommand.GroupReportEdit);
         f.LoadGroup((int)item.Tag);
     }
 }
Ejemplo n.º 8
0
 private void FormGroupReportWin_FormClosed(object sender, FormClosedEventArgs e)
 {
     using (var sys = new SysTabl(General.ReporterFile))
     {
         sys.PutSubValue("FormGroupReports", "BeginPeriod", BeginPeriod.Text);
         sys.PutSubValue("FormGroupReports", "EndPeriod", EndPeriod.Text);
     }
     GeneralRep.CloseForm(ReporterCommand.GroupReports);
 }
Ejemplo n.º 9
0
 private void butLoadInterval_Click(object sender, EventArgs e)
 {
     try
     {
         if (Intervals.Rows.Count == 0)
         {
             return;
         }
         if (!GeneralRep.CheckOneSheet(false))
         {
             return;
         }
         GeneralRep.Application.Visible = false;
         _book.IsReportForming          = true;
         var row   = Intervals.Rows[Intervals.SelectedCells[0].RowIndex];
         var beg   = row.Get("PeriodBegin").ToDateTime();
         var en    = row.Get("PeriodEnd").ToDateTime();
         var cname = row.Get("IntervalName");
         _book.Interval = new ArchiveInterval(IntervalType.Single, beg, en, cname);
         using (_book.StartAtom("Заполнение отчета из журнала", true, beg + " - " + en + " " + cname))
         {
             try
             {
                 _book.AddEvent("Загрузка интервала", beg + " - " + en + " " + cname);
                 using (_book.Start(10, 40))
                     _book.ReadReportProject();
                 using (_book.Start(40))
                 {
                     _book.FormingBook = _book.Workbook;
                     _book.FillReport("Все листы");
                 }
                 if (_book.Forms.ContainsKey(ReporterCommand.Report))
                 {
                     var f = (FormReport)_book.Forms[ReporterCommand.Report];
                     f.PeriodBegin.Text  = beg.ToString();
                     f.PeriodEnd.Text    = en.ToString();
                     f.IntervalName.Text = cname;
                 }
             }
             catch (Exception ex)
             {
                 _book.AddError("Ошибка заполнения отчета", ex);
             }
             _book.ShowError();
         }
         Different.MessageInfo("Отчет загружен из журнала.\nОтчет: " + _book.Code + ", " + _book.Name + "\nПериод: " + beg.ToString() + " - " + en.ToString());
     }
     catch (Exception ex)
     {
         GeneralRep.ShowError("Ошибка заполнения отчета", ex);
     }
     GeneralRep.Application.Visible = true;
     _book.Workbook.Activate();
     _book.IsReportForming = false;
 }
Ejemplo n.º 10
0
 private void Template_SelectedIndexChanged(object sender, EventArgs e)
 {
     try
     {
         _book.SysPage.PutValue("CurTemplate", Template.Text);
         _book.LoadCurTemplate();
     }
     catch (Exception ex)
     {
         GeneralRep.ShowError("Ошибка при выборе шаблона", ex);
     }
 }
Ejemplo n.º 11
0
 private void TemplateGrid_SelectionChanged(object sender, EventArgs e)
 {
     try
     {
         SaveParam();
         LoadParam();
     }
     catch (Exception ex)
     {
         GeneralRep.ShowError("Ошибка при выборе параметра для шаблона", ex);
     }
 }
Ejemplo n.º 12
0
 private void butOK_Click(object sender, EventArgs e)
 {
     try
     {
         if (CodeReport.Text.IsEmpty())
         {
             Different.MessageError("Не указан код отчета");
             return;
         }
         if (FileReport.Text.IsEmpty() || (new FileInfo(FileReport.Text).Extension != ".xlsx"))
         {
             Different.MessageError("Указан недопустимый файл отчета");
             return;
         }
         using (var rec = new ReaderAdo(General.ReporterFile, "SELECT Report FROM Reports WHERE Report='" + CodeReport.Text + "'"))
             if (rec.HasRows() && !Different.MessageQuestion("Отчет с кодом " + CodeReport.Text + " уже существует. Заменить на новый?"))
             {
                 return;
             }
         var fnew = new FileInfo(FileReport.Text);
         if (fnew.Exists && !Different.MessageQuestion("Файл " + FileReport.Text + " уже существует. Заменить на новый?"))
         {
             return;
         }
         try
         {
             new FileInfo(General.ReporterDir + "ReportTemplate.xlsx").CopyTo(FileReport.Text, true);
             GeneralRep.Application.Workbooks.Open(FileReport.Text);
             var sys = new SysPage(GeneralRep.Application.ActiveWorkbook);
             sys.PutValue("Report", CodeReport.Text);
             sys.PutValue("ReportName", NameReport.Text);
             sys.PutValue("ReportDescription", DescriptionReport.Text);
             sys.PutValue("DifferentLength", "True");
             sys.PutValue("SaveToArchive", "True");
             GeneralRep.Application.ActiveWorkbook.Save();
         }
         catch (Exception ex)
         {
             ex.MessageError("Ошибка создания файла, возможно файл уже существует");
         }
         Close();
         GeneralRep.ChangeActiveBook();
         var f = GeneralRep.RunReporterCommand(ReporterCommand.Setup);
         ((TabControl)f.Controls["tabMain"]).SelectTab("tabReport");
     }
     catch (Exception ex)
     {
         GeneralRep.ShowError("Ошибка при создании отчета", ex);
     }
 }
Ejemplo n.º 13
0
 private void ButAdd_Click(object sender, EventArgs e)
 {
     using (var rec = new RecDao(General.ReporterFile, "GroupReports"))
     {
         rec.AddNew();
         rec.Put("GroupCode", "NewGroupReport");
         GroupReports.SelectedItems.Clear();
         var item = EditItem(rec);
         item.Selected = true;
         rec.Update();
         var f = (FormGroupReportEdit)GeneralRep.RunReporterCommand(ReporterCommand.GroupReportEdit);
         f.LoadGroup((int)item.Tag);
     }
 }
Ejemplo n.º 14
0
 //Вызываетя при закрытии формы
 private void CloseSaving()
 {
     try
     {
         _book.SysPage.PutControl(PeriodBegin);
         _book.SysPage.PutControl(PeriodEnd);
         _book.SysPage.PutValue("CalcName", IntervalName.Text);
         _book.SysPage.PutValue("FillPages", FillPages.Text);
         _book.SysPage.PutValue("SaveToArchive", SaveToArchive.Checked);
         _book.CloseForm(ReporterCommand.Report);
     }
     catch (Exception ex)
     {
         GeneralRep.ShowError("Ошибка при закрытия формы построения отчетов", ex);
     }
 }
Ejemplo n.º 15
0
 //Добавляет ссылку типа Сохранение
 //tlist - список операций текущей транзакции, если не задан то транзакция создается из одной ячейки и добавляется в Transactions
 public void AddLinkSave(Transaction tlist = null, Range cell = null)
 {
     try
     {
         if (!GeneralRep.CheckOneSheet(true))
         {
             return;
         }
         string res = "Project=Сохранение;Field=" + LinkField.Value.ToEnglish() + ";AllowEdit=True;";
         res += "LinkType=" + LinkType.Save.ToEnglish() + ";";
         res += "CellComment=" + CellComment.Text + ";";
         string scode = GetSaveCode();
         res += "Code=" + scode + ";SaveCode=" + scode;
         AddCellLink(res, tlist, cell);
     }
     catch { }
 }
Ejemplo n.º 16
0
 private void butDelete_Click(object sender, EventArgs e)
 {
     if (Different.MessageQuestion("Вы действительно хотите удалить шаблон " + Template.Text + "?", "Удаление"))
     {
         try
         {
             _book.SysPage.DeleteTemplate(Template.Text);
             _book.SysPage.GetTemplatesList(Template);
             _book.CurLinkTemplate.Clear();
             _template = Template.Text = null;
             _cells    = null;
             UpdateTemplateInBook(null);
         }
         catch (Exception ex)
         {
             GeneralRep.ShowError("Ошибка при удалении шаблона", ex);
         }
     }
 }
Ejemplo n.º 17
0
        private void butFormReport_Click(object sender, EventArgs e)
        {
            if (!GeneralRep.CheckOneSheet(false))
            {
                return;
            }
            var d = DateTime.Now;
            var t = new TimeInterval(Different.MinDate.AddYears(1), d.AddMilliseconds(-d.Millisecond));

            if (!_book.OnlyAbsolute)
            {
                t = _book.CheckPeriodTime(PeriodBegin.Text, PeriodEnd.Text);
                if (t == null)
                {
                    return;
                }
            }
            var fill = FillPages.Text;
            var save = SaveToArchive.Checked;

            _book.IsReportForming          = true;
            _book.Interval                 = new ArchiveInterval(IntervalType.Single, t.Begin, t.End, IntervalName.Text);
            GeneralRep.Application.Visible = false;
            SetCalcMode(true);
            if (_book.ThreadId == 0)
            {
                FormingReport(fill, save);
            }
            else
            {
                if (!_book.PrepareController())
                {
                    Different.MessageError("Ошибка запуска расчета");
                }
                _task = new Thread(() => FormingReport(fill, save))
                {
                    Priority = ThreadPriority.AboveNormal
                };
                _task.Start();
            }
        }
Ejemplo n.º 18
0
        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);
                }
            }
        }
Ejemplo n.º 19
0
 private void ButFindLinks_Click(object sender, EventArgs e)
 {
     try
     {
         if (CurParam != null)
         {
             var f = (FormFindLinks)GeneralRep.RunReporterCommand(ReporterCommand.FindLinks);
             f.Project.Text   = CurProject.Code;
             f.Code.Text      = CurParam.FullCode;
             f.FirstName.Text = CurParam.ArchiveParam.FirstParam.Name;
             if (CurParam.ArchiveParam.LastParam != null)
             {
                 f.LastName.Text = CurParam.ArchiveParam.LastParam.Name;
             }
             f.Find();
         }
     }
     catch (Exception ex)
     {
         GeneralRep.ShowError("Ошибка при поиске ссылок на выбранный параметр", ex);
     }
 }
Ejemplo n.º 20
0
        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);
                }
            }
        }
Ejemplo n.º 21
0
 private void butOtmLinks_Click(object sender, EventArgs e)
 {
     if (!GeneralRep.CheckOneSheet(true))
     {
         return;
     }
     if (_book.ActiveShape() != null)
     {
         return;
     }
     if (CurProject != null)
     {
         var tlist = new Transaction();
         _book.BeforeTransaction();
         foreach (DataGridViewRow row in Params.Rows)
         {
             if (row.GetBool("Otm"))
             {
                 AddLinksTemplate(CurProject.Params[row.Get("Code")], tlist);
             }
         }
         _book.AddTransaction(tlist);
     }
 }
Ejemplo n.º 22
0
        //Открывает новую заданную форму
        public Form RunCommandReporter(ReporterCommand c)
        {
            if (Forms.ContainsKey(c) && Forms[c] != null)
            {
                var fm = Forms[c];
                if (!fm.Visible)
                {
                    fm.Show();
                }
                if (fm.WindowState == FormWindowState.Minimized)
                {
                    fm.WindowState = FormWindowState.Normal;
                }
                fm.Focus();
                return(fm);
            }
            if (!c.OneForAllBooks() && IsReportForming)
            {
                return(null);
            }
            if (c.NeedCheckReport() && !SysPage.IsInfoTask())
            {
                MessageReportError("Да запуска команды необходимо открыть отчет InfoTask");
                return(null);
            }

            Form f = null;

            using (StartAtom(c))
            {
                try
                {
                    AddEvent("Закрытие лишних форм");
                    var less  = new Dictionary <ReporterCommand, Form>();
                    var great = new Dictionary <ReporterCommand, Form>();
                    foreach (var k in Forms)
                    {
                        if (c.Greater(k.Key))
                        {
                            less.Add(k.Key, k.Value);
                        }
                        if (c.Less(k.Key))
                        {
                            great.Add(k.Key, k.Value);
                        }
                    }
                    var cForms = GeneralRep.CommonBook.Forms;
                    foreach (var k in cForms)
                    {
                        if (c.Less(k.Key))
                        {
                            great.Add(k.Key, k.Value);
                        }
                    }

                    if (great.Count > 0)
                    {
                        string smess = "";
                        foreach (var g in great)
                        {
                            smess += (smess != "" ? "," : "") + " Форма " + g.Key.ToFormName();
                        }
                        smess = "Команда не может быть выполнена, пока открыты:" + smess + ". Закрыть формы?";
                        if (!MessageReportQuestion(smess))
                        {
                            return(null);
                        }
                    }

                    foreach (var k in less)
                    {
                        k.Value.Close();
                        if (Forms.ContainsKey(k.Key))
                        {
                            Forms.Remove(k.Key);
                        }
                        if (cForms.ContainsKey(k.Key))
                        {
                            cForms.Remove(k.Key);
                        }
                    }
                    foreach (var k in great)
                    {
                        GeneralRep.CloseForm(k.Key, true);
                    }

                    if (c == ReporterCommand.PutLinks || c == ReporterCommand.ShapeLibrary || c == ReporterCommand.Report || c == ReporterCommand.LiveReport || c == ReporterCommand.Intervals || c == ReporterCommand.AbsoluteEdit || c == ReporterCommand.LinksList)
                    {
                        UpdateDataFile(false);
                    }

                    System.Windows.Forms.Application.EnableVisualStyles();
                    switch (c)
                    {
                    case ReporterCommand.GroupReports:
                        f = new FormGroupReports();
                        break;

                    case ReporterCommand.GroupReportEdit:
                        f = new FormGroupReportEdit();
                        break;

                    case ReporterCommand.Create:
                        f = new FormCreate();
                        break;

                    case ReporterCommand.Setup:
                        f = new FormSetup();
                        break;

                    case ReporterCommand.CopyServerReport:
                        CopyServerReport();
                        break;

                    case ReporterCommand.PutLinks:
                        using (Start()) LoadCurTemplate();
                        LastChangeLinks = DateTime.Now;
                        f = new FormPutLinks();
                        break;

                    case ReporterCommand.FilterParams:
                        f = new FormFiltersParams();
                        break;

                    case ReporterCommand.LinkProperties:
                        f = new FormLinkProperties();
                        break;

                    case ReporterCommand.FindLinks:
                        f = new FormFindLinks();
                        break;

                    case ReporterCommand.LinksTemplate:
                        f = new FormLinksTemplate();
                        break;

                    case ReporterCommand.DeleteLinks:
                        DeleteLinks();
                        LastChangeLinks = DateTime.Now;
                        break;

                    case ReporterCommand.ClearCells:
                        Forms.Add(ReporterCommand.ClearCells, null);
                        UsedFileToMemory();
                        ClearAllCells();
                        Forms.Remove(ReporterCommand.ClearCells);
                        break;

                    case ReporterCommand.ShapeLibrary:
                        f = new FormShapeLibrary();
                        break;

                    case ReporterCommand.Report:
                        UsedFileToMemory();
                        PrepareController();
                        f = new FormReport();
                        break;

                    case ReporterCommand.LiveReport:
                        UsedFileToMemory();
                        PrepareController();
                        f = new FormLiveReport();
                        break;

                    case ReporterCommand.Video:
                        UsedFileToMemory();
                        PrepareController();
                        f = new FormVideo();
                        break;

                    case ReporterCommand.ArchivesRanges:
                        f = new FormArchivesRanges();
                        break;

                    case ReporterCommand.Intervals:
                        UsedFileToMemory();
                        if (FormInf == null || FormToDir || FormToFile)
                        {
                            MessageReportError("Сохранение в журнал возможно только при формировании отчета непосредственно в бланк отчета (задается в настройках)");
                        }
                        else
                        {
                            PrepareArchive();
                            f = new FormIntervals();
                        }
                        break;

                    case ReporterCommand.FilterIntervals:
                        f = new FormFiltersIntervals();
                        break;

                    case ReporterCommand.SaveReport:
                        if (CanSaveReport())
                        {
                            f = new FormSaveReport();
                        }
                        break;

                    case ReporterCommand.AbsoluteEdit:
                        UsedFileToMemory();
                        AddEvent("Чтение абсолютных значений из архива");
                        foreach (var project in UsedProjects.Values)
                        {
                            project.AbsoluteEditValues = project.Archive.ReadAbsoluteEdit(project.Code, false);
                        }
                        f = new FormAbsoluteEdit();
                        break;

                    case ReporterCommand.Update:
                        UpdateDataFile(true);
                        if (!Command.IsError)
                        {
                            MessageReport("Ссылки были обновлены");
                        }
                        break;

                    case ReporterCommand.LinksList:
                        f = new FormLinksList();
                        break;

                    case ReporterCommand.AppInfo:
                        f = new FormAppInfo();
                        break;
                    }
                    if (f != null)
                    {
                        if (!c.OneForAllBooks())
                        {
                            f.Text += " (" + Code + ")";
                        }
                        Forms.Add(c, f);
                        f.Show();
                    }
                }
                catch (Exception ex)
                {
                    AddError("Ошибка при открытии формы", ex, c.ToString());
                }
                if (Command != null && Command.IsError)
                {
                    foreach (var ff in Forms)
                    {
                        if (ff.Key != ReporterCommand.LinkProperties && ff.Value != null && ff.Value.Visible)
                        {
                            ff.Value.Activate();
                            break;
                        }
                    }
                    ShowError();
                }
            }
            return(f);
        }
Ejemplo n.º 23
0
 private void FormAppInfo_FormClosing(object sender, FormClosingEventArgs e)
 {
     GeneralRep.CloseForm(ReporterCommand.AppInfo);
 }
Ejemplo n.º 24
0
 private void FormGroupReportEdit_FormClosing(object sender, FormClosingEventArgs e)
 {
     GeneralRep.CloseForm(ReporterCommand.GroupReportEdit);
 }
Ejemplo n.º 25
0
 private void FormAbsoluteEdit_FormClosed(object sender, FormClosedEventArgs e)
 {
     GeneralRep.CloseForm(ReporterCommand.AbsoluteEdit);
     GeneralRep.Application.SheetSelectionChange -= OnSelectionChange;
 }
Ejemplo n.º 26
0
 private void FormSetupWin_FormClosed(object sender, FormClosedEventArgs e)
 {
     GeneralRep.CloseForm(ReporterCommand.Setup);
 }
Ejemplo n.º 27
0
 private void Projects_CellContentClick(object sender, DataGridViewCellEventArgs e)
 {
     try //Нажатие кнопки обзор
     {
         if (e.ColumnIndex == 5 && e.RowIndex >= 0)
         {
             try
             {
                 string t        = "Файл проекта ";
                 var    isNewRow = Projects.Rows[e.RowIndex].IsNewRow;
                 try { if (!isNewRow)
                       {
                           t += Projects.Rows[e.RowIndex].Get("Project");
                       }
                 }
                 catch { }
                 var d = new DialogCommand(DialogType.OpenFile)
                 {
                     DialogTitle = t, ErrorMessage = "Указан недопустимый файл проекта"
                 };
                 d.FileTables = new[] { "CalcParams", "CalcSubParams", "GraficsList", "SignalsInUse", "Providers" };
                 string file = d.Run(Projects.Rows[e.RowIndex].Get("ProjectFile"));
                 if (file.IsEmpty())
                 {
                     return;
                 }
                 if (isNewRow)
                 {
                     Projects.Rows.Add();
                 }
                 var cells = Projects.Rows[e.RowIndex].Cells;
                 cells["ProjectFile"].Value = file;
                 cells["Project"]           = new DataGridViewTextBoxCell();
                 using (var syst = new SysTabl(file))
                 {
                     string s = syst.SubValue("ProjectInfo", "Project");
                     if (s != null)
                     {
                         cells["Project"].Value = s;
                     }
                     else
                     {
                         cells["Project"].Value = DBNull.Value;
                     }
                     s = syst.SubValue("ProjectInfo", "ProjectName");
                     if (s != null)
                     {
                         cells["ProjectName"].Value = s;
                     }
                     else
                     {
                         cells["ProjectName"].Value = DBNull.Value;
                     }
                 }
                 UpdateProvidersList();
             }
             catch (Exception ex)
             {
                 GeneralRep.ShowError("Указан недопустимый файл проекта", ex);
             }
         }
     }
     catch {}
 }
Ejemplo n.º 28
0
        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();
        }
Ejemplo n.º 29
0
        private void butOK_Click(object sender, EventArgs e)
        {
            using (_book.StartAtom("Сохранение настроек"))
            {
                _book.AddEvent("Сохранение настроек отчета");
                if (CodeReport.Text.IsEmpty())
                {
                    Different.MessageError("Код отчета должен быть заполнен");
                    return;
                }
                int  res;
                bool er = (!MonthLength.Text.IsEmpty() && (!int.TryParse(MonthLength.Text, out res) || res < 0));
                er |= (!DayLength.Text.IsEmpty() && (!int.TryParse(DayLength.Text, out res) || res < 0));
                er |= (!HourLength.Text.IsEmpty() && (!int.TryParse(HourLength.Text, out res) || res < 0));
                er |= (!MinuteLength.Text.IsEmpty() && (!int.TryParse(MinuteLength.Text, out res) || res < 0));
                er |= (!DayStart.Text.IsEmpty() && (!int.TryParse(DayStart.Text, out res) || res < 0));
                er |= (!HourStart.Text.IsEmpty() && (!int.TryParse(HourStart.Text, out res) || res < 0));
                er |= (!MinuteLength.Text.IsEmpty() && (!int.TryParse(MinuteLength.Text, out res) || res < 0));
                if (er)
                {
                    Different.MessageError("Указана недопустимая длительность или начало интеравала");
                    return;
                }

                var  sys        = _book.SysPage;
                bool isInternal = false;
                try
                {
                    sys.PutValue("Report", CodeReport.Text);
                    sys.PutValue("ReportName", NameReport.Text);
                    sys.PutValue("ReportDescription", DescriptionReport.Text);
                    sys.PutControl(MonthLength);
                    sys.PutControl(DayLength);
                    sys.PutControl(HourLength);
                    sys.PutControl(MinuteLength);
                    sys.PutControl(DayStart);
                    sys.PutControl(HourStart);
                    sys.PutControl(MinuteStart);
                    sys.PutValue("DifferentLength", radioDifferent.Checked ? "True" : (radioLess.Checked ? "Less" : "Equals"));
                    if (radioNow.Checked)
                    {
                        sys.PutValue("DefaultPeriod", "Now");
                    }
                    if (radioPrevious.Checked)
                    {
                        sys.PutValue("DefaultPeriod", "Previous");
                    }
                    sys.PutValue("DifferentBegin", DifferentBegin.Checked);
                    sys.PutValue("DefaultCalcName", CalcName.Text);
                    sys.PutValue("AllowProjectsRepetitions", AllowProjectsRepetitions.Checked);

                    var list = new List <ReportProjectSetup>();
                    foreach (DataGridViewRow r in Projects.Rows)
                    {
                        if (!r.IsNewRow)
                        {
                            try
                            {
                                var cmode = r.Get("ProjectCalcMode").ToCalcModeType();
                                isInternal |= cmode == CalcModeType.Internal;
                                list.Add(new ReportProjectSetup(r.Get("Project"), AllowProjectsRepetitions.Checked ? r.Get("ProjectCode2") : null, cmode));
                            }
                            catch { }
                        }
                    }
                    sys.PutProjects(list);
                }
                catch (Exception ex)
                {
                    GeneralRep.ShowError("Текущий файл не является файлом отчета InfoTask или был поврежден", ex);
                }

                try { tabMain.Select(); } catch {}
                _codes.Clear();
                _infs.Clear();
                foreach (DataGridViewRow row in Providers.Rows)
                {
                    string name = row.Get("ProviderName");
                    _codes.Add(name, row.Get("ProviderCode"));
                    _infs.Add(name, row.Get("ProviderInf"));
                }

                int tid;
                if (!int.TryParse(ThreadId.Text, out tid))
                {
                    tid = 0;
                }
                if (isInternal)
                {
                    try
                    {
                        _book.AddEvent("Сохранение настроек в ControllerData");
                        using (var db = new DaoDb(General.ControllerFile))
                        {
                            using (var rec = new RecDao(db, "SELECT * FROM Threads WHERE ThreadId=" + tid))
                            {
                                if (!rec.HasRows())
                                {
                                    rec.AddNew();
                                }
                                rec.Put("ApplicationType", "Excel");
                                rec.Put("IsImit", IsImit.Checked);
                                rec.Put("ImitMode", ImitMode.Text);
                                tid = rec.GetInt("ThreadId");
                            }
                            db.Execute("DELETE * FROM Providers WHERE ThreadId=" + tid);
                            db.Execute("DELETE * FROM Projects WHERE ThreadId=" + tid);
                            using (var rec = new RecDao(db, "Projects"))
                                using (var recc = new RecDao(db, "Providers"))
                                {
                                    foreach (DataGridViewRow row in Projects.Rows)
                                    {
                                        if (!row.IsNewRow && row.Get("ProjectCalcMode").ToCalcModeType() == CalcModeType.Internal)
                                        {
                                            rec.AddNew();
                                            rec.Put("ThreadId", tid);
                                            rec.PutFromDataGrid("Project", row);
                                            rec.PutFromDataGrid("ProjectFile", row);
                                        }
                                    }
                                    foreach (DataGridViewRow row in Providers.Rows)
                                    {
                                        if (row.Get("TypeProvider") != "Архив" || row.Get("ProviderName") == "CalcArchive" || (row.Get("ProviderName") == "Report_Archive" && UseOneArchive.Checked))
                                        {
                                            recc.AddNew();
                                            recc.Put("ThreadId", tid);
                                            recc.PutFromDataGrid("ProviderType", row, "TypeProvider");
                                            recc.PutFromDataGrid("ProviderCode", row);
                                            if (row.Get("ProviderName") != "Report_Archive")
                                            {
                                                recc.PutFromDataGrid("ProviderName", row);
                                            }
                                            else
                                            {
                                                recc.Put("ProviderName", "CalcArchive");
                                            }
                                            recc.PutFromDataGrid("ProviderInf", row);
                                            recc.Update();
                                        }
                                    }
                                }
                        }
                    }
                    catch (Exception ex)
                    {
                        GeneralRep.ShowError("Неправильный файл ControllerData.accdb", ex);
                        return;
                    }
                }

                _book.AddEvent("Сохранение настроек в ReporterData");
                try //Настройки отчета в ReporterData
                {
                    using (var db = new DaoDb(General.ReporterFile))
                    {
                        using (var rec = new RecDao(db, "SELECT * FROM Reports WHERE Report = '" + CodeReport.Text + "'"))
                        {
                            if (!rec.HasRows())
                            {
                                rec.AddNew();
                            }
                            rec.Put("Report", CodeReport.Text);
                            rec.Put("ReportName", NameReport.Text);
                            rec.Put("ReportDescription", DescriptionReport.Text);
                            rec.Put("ReportFile", GeneralRep.Application.ActiveWorkbook.FullName);
                            rec.Put("ThreadId", isInternal ? tid : 0);
                            rec.Put("UseOneArchive", UseOneArchive.Checked);
                            rec.Put("CodeArchive", _codes["Report_Archive"]);
                            rec.Put("InfArchive", _infs["Report_Archive"]);
                            string s = "FormTo=" + (FormToTemplate.Checked ? "Template" : (FormToDir.Checked ? "Dir" : "File")) + ";";
                            s += "ResultDir=" + ResultDir.Text + ";";
                            s += "ResultFileName=" + ResultFileName.Text + ";";
                            s += "ResultFile=" + ResultFile.Text + ";";

                            s += "AddDateToName=" + (AddDateToName.Checked ? "True" : "False") + ";";
                            var df = DateNameFormat.Text;
                            if (AddDateToName.Checked && (df.Contains(":") || df.Contains(@"\") || df.Contains(@"/") || df.Contains("[") || df.Contains("]") || df.Contains("*")))
                            {
                                Different.MessageError(@"Указан недопустимый формат даты для имени файла или листа. Имя не должно содержать символов / \ : * [ ]");
                                return;
                            }
                            s += "DateNameFormat=" + df + ";";

                            s += "AddBeginToName=" + (AddBeginToName.Checked ? "True" : "False") + ";";
                            df = BeginNameFormat.Text;
                            if (AddBeginToName.Checked && (df.Contains(":") || df.Contains(@"\") || df.Contains(@"/") || df.Contains("[") || df.Contains("]") || df.Contains("*")))
                            {
                                Different.MessageError(@"Указан недопустимый формат даты для имени файла или листа. Имя не должно содержать символов / \ : * [ ]");
                                return;
                            }
                            s += "BeginNameFormat=" + df + ";";

                            s += "AddEndToName=" + (AddEndToName.Checked ? "True" : "False") + ";";
                            df = EndNameFormat.Text;
                            if (AddEndToName.Checked && (df.Contains(":") || df.Contains(@"\") || df.Contains(@"/") || df.Contains("[") || df.Contains("]") || df.Contains("*")))
                            {
                                Different.MessageError(@"Указан недопустимый формат даты для имени файла или листа. Имя не должно содержать символов / \ : * [ ]");
                                return;
                            }
                            s += "EndNameFormat=" + df + ";";

                            s += "AddCalcNameToName=" + (AddCalcNameToName.Checked ? "True" : "False") + ";";
                            s += "AddSheetToName=" + (AddSheetToName.Checked ? "True" : "False") + ";";
                            s += "SetFocusToFormed=" + (SetFocusToFormed.Checked ? "True" : "False") + ";";
                            rec.Put("FormInf", s);
                            rec.Put("ServerReport", ServerReport.Text);
                            if (!ServerReport.Text.IsEmpty())
                            {
                                var file = new FileInfo(ServerReport.Text);
                                if (!file.Exists || file.Extension != ".xlsx")
                                {
                                    Different.MessageError("Указанный файл контрольного экземпляра не существует или не является файлом Excel, " + ServerReport.Text);
                                }
                                else if (ServerReport.Text == _book.Workbook.FullName)
                                {
                                    Different.MessageError("Файл контрольного бланка расчета не должен совпадать с файлом бланка отчета, " + ServerReport.Text);
                                }
                            }

                            int rid = rec.GetInt("ReportId");
                            rec.Update();
                            db.Execute("DELETE * FROM Projects WHERE ReportId=" + rid);
                            using (var recp = new RecDao(db, "Projects"))
                                foreach (DataGridViewRow r  in Projects.Rows)
                                {
                                    if (!r.IsNewRow)
                                    {
                                        recp.AddNew();
                                        recp.Put("ReportId", rid);
                                        recp.PutFromDataGrid("Project", r);
                                        if (AllowProjectsRepetitions.Checked)
                                        {
                                            recp.PutFromDataGrid("ProjectCode2", r);
                                        }
                                        recp.PutFromDataGrid("ProjectName", r);
                                        recp.PutFromDataGrid("ProjectFile", r);
                                        if (UseOneArchive.Checked)
                                        {
                                            recp.Put("CodeArchive", _codes["Report_Archive"]);
                                            recp.Put("InfArchive", _infs["Report_Archive"]);
                                        }
                                        else if (r.Get("ProjectCalcMode").ToCalcModeType() == CalcModeType.Internal)
                                        {
                                            recp.Put("CodeArchive", _codes["CalcArchive"]);
                                            recp.Put("InfArchive", _infs["CalcArchive"]);
                                        }
                                        else
                                        {
                                            var proj = r.Get("Project");
                                            if (AllowProjectsRepetitions.Checked && !r.Get("ProjectCode2").IsEmpty())
                                            {
                                                proj = r.Get("ProjectCode2");
                                            }
                                            proj += "_Archive";
                                            recp.Put("CodeArchive", _codes[proj]);
                                            recp.Put("InfArchive", _infs[proj]);
                                        }
                                    }
                                }
                        }
                    }
                }
                catch (Exception ex)
                {
                    GeneralRep.ShowError("Неправильный файл ReporterData.accdb", ex);
                }

                _book.ClearReportDataFromMemory();
                CheckProviders();
                Close();
            }
        }
Ejemplo n.º 30
0
 private void ButOk_Click(object sender, EventArgs e)
 {
     _book.Interval.Name = IntervalName.Text;
     _book.SaveReport();
     GeneralRep.CloseForm(ReporterCommand.SaveReport, true);
 }