Пример #1
0
        /// <summary>
        /// Список точек с расходом для программы 'Balans'
        /// </summary>
        private void BalanceExport()
        {
            if (HasData == false)
            {
                EmcosSiteWrapperApp.ShowWarning("Отсутствуют данные.");
                return;
            }
            Status        = State.Busy;
            DialogMessage = "Экспорт данных: Список точек с расходом для программы 'Balans'";

            var fileName = CreateNameForReport("ForBalance");
            var task     = new System.Threading.Tasks.Task(() =>
            {
                var be = new Export.ForBalanceExport(
                    new Export.ExportInfo
                {
                    Title       = "Данные для програмы Balance",
                    StartDate   = Session.Info.Period.StartDate,
                    EndDate     = Session.Info.Period.EndDate,
                    Substations = Substations
                });
                DispatcherExtensions.InUi(() =>
                {
                    if (be.Export(fileName) == false)
                    {
                        return;
                    }
                });
                System.Diagnostics.Process.Start(fileName);
            });

            task.ContinueWith((t) =>
            {
                Status = State.Ready;
            }, System.Threading.Tasks.TaskContinuationOptions.None);

            task.ContinueWith((s) =>
            {
                EmcosSiteWrapperApp.LogError("Экспорт для программы 'Balance' - ошибка");
                EmcosSiteWrapperApp.LogException(s.Exception);
                ShowDialogError("Произошла ошибка при формировании отчёта.\nОбратитесь к разработчику.");
            }, System.Threading.Tasks.TaskContinuationOptions.OnlyOnFaulted);

            task.Start(System.Threading.Tasks.TaskScheduler.Current);
        }
Пример #2
0
 public virtual bool Export(string outputFile)
 {
     CreateHeader();
     CreateBody();
     CreateFooter();
     ChangePageSettings();
     try
     {
         package.SaveAs(new System.IO.FileInfo(outputFile));
         return(true);
     }
     catch (Exception e)
     {
         EmcosSiteWrapperApp.ShowError(e, "Ошибка экспорта данных.\n{0}");
         EmcosSiteWrapperApp.LogException(e);
         return(false);
     }
 }
Пример #3
0
        /// <summary>
        /// Баланс подстанций
        /// </summary>
        private void ExportSubstationsBalance()
        {
            if (HasData == false)
            {
                EmcosSiteWrapperApp.ShowWarning("Отсутствуют данные.");
                return;
            }
            Status        = State.Busy;
            DialogMessage = "Экспорт данных: Баланс подстанций";

            var dialog = ShowDialogQuestion(
                String.Format("Скопировать файл отчёта в папку '{0}'?", Properties.Settings.Default.ReportBalancePSFolder),
                Title, TMPApplication.WpfDialogs.DialogMode.YesNo);
            var r = dialog.Result;

            var task = new System.Threading.Tasks.Task(() =>
            {
                var defaultFileName = CreateNameForReport("out");
                var sbe             = new Export.SubstationsBalanceExport(
                    new Export.ExportInfo
                {
                    Title       = "Отчёт по балансам подстанций",
                    StartDate   = Session.Info.Period.StartDate,
                    EndDate     = Session.Info.Period.EndDate,
                    Substations = Substations
                });
                DispatcherExtensions.InUi(() =>
                {
                    if (sbe.Export(defaultFileName) == false)
                    {
                        return;
                    }
                });

                if (r == TMPApplication.WpfDialogs.DialogResultState.Yes)
                {
                    if (System.IO.Directory.Exists(Properties.Settings.Default.ReportBalancePSFolder) == false)
                    {
                        try
                        {
                            System.IO.Directory.CreateDirectory(Properties.Settings.Default.ReportBalancePSFolder);
                        }
                        catch (System.IO.IOException ioe)
                        {
                            ShowDialogError(String.Format("Папка {0} не найдена. При попытке её создать произошла ошибка: {1}.\nФайл отчёта не скопирован.", Properties.Settings.Default.ReportBalancePSFolder, ioe.Message));
                        }
                    }
                    var filename = System.IO.Path.Combine(
                        Properties.Settings.Default.ReportBalancePSFolder,
                        String.Format(Properties.Settings.Default.ReportBalancePSFileNameTemplate, Session.Info.Period.StartDate) + ".xlsx");
                    System.IO.File.Copy(defaultFileName, filename, true);
                    System.Diagnostics.Process.Start(filename);
                }
                else
                {
                    System.Diagnostics.Process.Start(defaultFileName);
                }
            }, System.Threading.Tasks.TaskCreationOptions.AttachedToParent);

            task.ContinueWith((t) =>
            {
                Status = State.Ready;
            }, System.Threading.Tasks.TaskContinuationOptions.None);

            task.ContinueWith((s) =>
            {
                EmcosSiteWrapperApp.LogError("Экспорт балансов подстанций - ошибка");
                EmcosSiteWrapperApp.LogException(s.Exception);

                ShowDialogError("Произошла ошибка при формировании отчёта.\nОбратитесь к разработчику.");
            }, System.Threading.Tasks.TaskContinuationOptions.OnlyOnFaulted);
            task.Start(System.Threading.Tasks.TaskScheduler.Current);
        }