Example #1
0
 //Установить текущую книгу активной, вызывается при смене книги или при открытии новой
 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;
 }