Exemple #1
0
        public void FormulSwith(ModelZg modelZg, string databasepath, ModelImnsOtdel otdel, CalendarModel calendar, Status status, OtdelFormul formul, Loading Load)
        {
            SeathZg seathzg = new SeathZg();

            if (!formul.IsValidation())
            {
            }
            else
            {
                switch (formul.SelectfFormul.Index)
                {
                case 1:
                    if (!otdel.IsValidation() || !calendar.IsValidation())
                    {
                        break;
                    }
                    {
                        seathzg.SeathZgOtdel(databasepath, modelZg, Formula.GenerateFormula(formul.SelectfFormul.Formula, otdel.SelectOtdel.OtdelDepartament,
                                                                                            calendar.Stardatetime, calendar.EndDateTime), Load); break;
                    }

                case 2:
                    if (!otdel.IsValidation() || !calendar.IsValidation() || !status.IsValidation())
                    {
                        break;
                    }
                    {
                        seathzg.SeathZgOtdel(databasepath, modelZg, Formula.GenerateFormula(formul.SelectfFormul.Formula, otdel.SelectOtdel.OtdelDepartament,
                                                                                            calendar.Stardatetime, calendar.EndDateTime, status.Selectstatus.StatusZg), Load); break;
                    }
                }
            }
        }
Exemple #2
0
 /// <summary>
 /// Наша модель глобальных страниц можно добавлять
 /// </summary>
 public ZgDialogModel(string zg)
 {
     ZgOtdel = new[]
     {
         new LinkCommutator("Полная выборка на отдел",
                            new Dialogs.Local.Zg.Local.Zg.ZgOtdel(),
                            new[]
         {
             Link.Pageses <Dialogs.Local.Zg.Local.Zg.ZgOtdel>()
         }),
         new LinkCommutator("Выборка на пользователя", new Dialogs.Local.Zg.Local.Zg.ZgUsers(), new[]
         {
             Link.Pageses <Dialogs.Local.Zg.Local.Zg.ZgUsers>()
         })
     };
     Zg = zg;
     //CalendarModel
     Sheme        = LoadOtdUser();
     FormulsOtdel = Lotuslib.LoadingModel.LoadingFormuls.Formuls();
     Status       = Lotuslib.LoadingModel.LoadStatus.Status();
     ShemeZg      = new ModelZg();
     GetChange    = new DelegateCommand(() => Dispatcher.CurrentDispatcher.Invoke(() => FormulaSwithFormul.FormulSwith(ShemeZg, Zg, Sheme, ((CalendarDataContext)Calendar.DataContext).Calendar, Status, FormulsOtdel, Load)));
     Calendar     = new CalendarView();
     Load         = new Loading("", 0);
 }
Exemple #3
0
        /// <summary>
        /// Тестовая функция выгрузки в Excel
        /// </summary>
        /// <param name="model"></param>
        public void ExportToExcel(ModelZg model)
        {
            var i          = 1;
            var workbook1  = new XLWorkbook();
            var worksheet1 = workbook1.Worksheets.Add("Отчет Lotus");

            foreach (var zn in model.ShemeDbZg.ToList())
            {
                worksheet1.Cell($"A{i}").Value = zn.NameFio;
                worksheet1.Cell($"B{i}").Value = zn.Num;
                worksheet1.Cell($"C{i}").Value = zn.Status;
                worksheet1.Cell($"D{i}").Value = zn.Datareg;
                worksheet1.Cell($"E{i}").Value = zn.InCardRespOutNum;
                i++;
            }
            workbook1.SaveAs("C:\\Отчет.xlsx");
        }
Exemple #4
0
        /// <summary>
        /// Очень сложный метод т.к ObservableCollection нельзя обновить из другого потока потомучто он привязан к UI потоку.
        /// Поэтому пришлось создавать метод UpdateOn() который отвяжет его от потока UI
        /// После этого мы можем манипулировать ObservableCollection
        /// Такая функция появилась только в Net 4.5
        /// </summary>
        /// <param name="databasepath">Путь кбазе в Lotus</param>
        /// <param name="shemezg">Наша модель отражения элементов для манипуляции </param>
        /// <param name="formula">Заранее сгенерированая формула поиска ЗГ</param>
        public async void SeathZgOtdel(string databasepath, ModelZg shemezg, string formula, Loading Load)
        {
            try
            {
                shemezg.ShemeDbZg.Clear();
                shemezg.UpdateOn();
                await Task.Run(() =>
                {
                    var db         = ConectDb.ConectDb.Databaseconect(ConectionString.ConectionString.Pass, ConectionString.ConectionString.ServerLocal, databasepath, false);
                    Load.Text      = "Приступили к поиску ждите";
                    var col        = db.Search(formula, null, 0);
                    var count      = col.Count;
                    var docum      = col.GetFirstDocument();
                    var i          = 1;
                    var workbook1  = new XLWorkbook();
                    var worksheet1 = workbook1.Worksheets.Add("Отчет Lotus");
                    while (docum != null)
                    {
                        Load.Text            = "Обработано " + i + " из " + count;
                        var NamePerson       = docum.GetItemValue(LotusItem.DbZgItem.NamePerson)[0].ToString();
                        var NumZg            = docum.GetItemValue(LotusItem.DbZgItem.NumZg)[0].ToString();
                        var StatusZg         = docum.GetItemValue(LotusItem.DbZgItem.StatusZg)[0].ToString();
                        var DataregZg        = docum.GetItemValue(LotusItem.DbZgItem.DataregZg)[0].ToString();
                        var InCardRespOutNum = docum.GetItemValue(LotusItem.DbZgItem.InCardRespOutNum)[0].ToString();
                        var IoInn            = docum.GetItemValue(LotusItem.DbZgItem.IoInn)[0].ToString();
                        var DepartamentZg    = docum.GetItemValue(LotusItem.DbZgItem.DepartamentZg)[0].ToString();
                        var Incardrespoutnum = docum.GetItemValue(LotusItem.DbZgItem.InCardRespOutNum)[0].ToString();
                        var Incardrespdi     = docum.GetItemValue(LotusItem.DbZgItem.InCardRespDi)[0].ToString();
                        var Extofiledate     = docum.GetItemValue(LotusItem.DbZgItem.ExToFileDate)[0].ToString();

                        worksheet1.Cell($"A{i}").Value = NamePerson;
                        worksheet1.Cell($"B{i}").Value = NumZg;
                        worksheet1.Cell($"C{i}").Value = StatusZg;
                        worksheet1.Cell($"D{i}").Value = DataregZg;
                        worksheet1.Cell($"E{i}").Value = InCardRespOutNum;
                        worksheet1.Cell($"F{i}").Value = IoInn;
                        lock (shemezg._lock)
                        {
                            shemezg.ShemeDbZg.Add(new ModelZg()
                            {
                                Incardrespoutnum = Incardrespoutnum,
                                DepartamentZg    = DepartamentZg,
                                StatusZg         = StatusZg,
                                DataregZg        = DataregZg,
                                NumZg            = NumZg,
                                Namefio          = NamePerson,
                                Incardrespdi     = Incardrespdi,
                                Extofiledate     = Extofiledate
                            });
                        }
                        i++;
                        docum = col.GetNextDocument(docum);
                    }
                    workbook1.SaveAs("D:\\Отчет.xlsx");
                    shemezg.UpdateOff();
                });
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
Exemple #5
0
        /// <summary>
        /// Очень сложный метод т.к ObservableCollection нельзя обновить из другого потока потомучто он привязан к UI потоку.
        /// Поэтому пришлось создавать метод UpdateOn() который отвяжет его от потока UI
        /// После этого мы можем манипулировать ObservableCollection
        /// Такая функция появилась только в Net 4.5
        /// </summary>
        /// <param name="databasepath">Путь кбазе в Lotus</param>
        /// <param name="shemezg">Наша модель отражения элементов для манипуляции </param>
        /// <param name="formula">Заранее сгенерированая формула поиска ЗГ</param>
        public void SeathZgOtdel(string databasepath, ModelZg shemezg, string formula, Loading Load)
        {
            try
            {
                shemezg.ShemeDbZg.Clear();
                shemezg.UpdateOn();
                Task.Run(() =>
                {
                    //var db = ConectDb.ConectDb.Databaseconect(ConectionString.ConectionString.Pass,
                    //ConectionString.ConectionString.ServerLocal, databasepath, false);
                    var db = ConectDb.ConectDb.Databaseconect(ConectionString.ConectionString.Pass,
                                                              ConectionString.ConectionString.ServerLocal, "IFNS\\Комутатор_архивов\\Arhiv2018\\2017\\ZG_Arhiv_2017.nsf", false);

                    // var col = db.Search(formula, null, 0);
                    var col        = db.Search("Select @All", null, 0);
                    var count      = col.Count;
                    var docum      = col.GetFirstDocument();
                    var i          = 1;
                    var workbook1  = new XLWorkbook();
                    var worksheet1 = workbook1.Worksheets.Add("Отчет Lotus");
                    while (docum != null)
                    {
                        Load.Text = "Обработано " + i + " из " + count;
                        //var docum1 = docum;
                        //Task.Run(async () =>
                        //{
                        //    await Task.Run(() =>
                        //    {
                        var a  = docum.GetItemValue(LotusItem.DbZgItem.NamePerson)[0].ToString();
                        var a1 = docum.GetItemValue(LotusItem.DbZgItem.NumZg)[0].ToString();
                        var a2 = docum.GetItemValue(LotusItem.DbZgItem.StatusZg)[0].ToString();
                        var a3 = docum.GetItemValue(LotusItem.DbZgItem.DataregZg)[0].ToString();
                        var a4 = docum.GetItemValue(LotusItem.DbZgItem.InCardRespOutNum)[0].ToString();
                        var a5 = docum.GetItemValue(LotusItem.DbZgItem.IoInn)[0].ToString();
                        worksheet1.Cell($"A{i}").Value = a;
                        worksheet1.Cell($"B{i}").Value = a1;
                        worksheet1.Cell($"C{i}").Value = a2;
                        worksheet1.Cell($"D{i}").Value = a3;
                        worksheet1.Cell($"E{i}").Value = a4;
                        worksheet1.Cell($"F{i}").Value = a5;
                        i++;
                        //lock (shemezg._lock)
                        //shemezg.ShemeDbZg.Add(new ModelZg
                        //{
                        //    StatusZg = docum1.GetItemValue(LotusItem.DbZgItem.StatusZg)[0],
                        //    Num = docum1.GetItemValue(LotusItem.DbZgItem.NumZg)[0],
                        //    Datareg = docum1.GetItemValue(LotusItem.DbZgItem.DataregZg)[0],
                        //    DepartamentZg = docum1.GetItemValue(LotusItem.DbZgItem.DepartamentZg)[0],
                        //    Incardrespoutnum = docum1.GetItemValue(LotusItem.DbZgItem.InCardRespOutNum)[0],
                        //    Incardrespdi =Convert.ToString(docum1.GetItemValue(LotusItem.DbZgItem.InCardRespDi)[0]),
                        //    Extofiledate =Convert.ToString(docum1.GetItemValue(LotusItem.DbZgItem.ExToFileDate)[0]),
                        //    NameFio = docum1.GetItemValue(LotusItem.DbZgItem.NamePerson)[0]
                        //});
                        //    });
                        //});
                        docum = col.GetNextDocument(docum);
                    }
                    workbook1.SaveAs("C:\\Отчет.xlsx");
                    // ExportToExcel(shemezg);
                    shemezg.UpdateOff();
                });
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }