Esempio n. 1
0
        public TipStyles(SheetHelper helper)
        {
            Style template = InitialTemplateStyle(helper);

            _default = template;
            _warning = helper.NewStyle();
            _error   = helper.NewStyle();
            _correct = helper.NewStyle();
            _header  = helper.NewStyle();

            _warning.Copy(template);
            _error.Copy(template);
            _correct.Copy(template);
            _header.Copy(template);

            _warning.Pattern = BackgroundType.Solid;
            _error.Pattern   = BackgroundType.Solid;
            _correct.Pattern = BackgroundType.Solid;
            _header.Pattern  = BackgroundType.Solid;

            _warning.ForegroundColor = helper.MatchColor(Color.Yellow);
            _error.ForegroundColor   = helper.MatchColor(Color.Red);
            _correct.ForegroundColor = helper.MatchColor(Color.Teal);
            _header.ForegroundColor  = helper.MatchColor(Color.Blue);
        }
Esempio n. 2
0
        private void validator_AutoCorrect(string FieldName, string OldValue, string NewValue, IRowSource RowSource)
        {
            SheetHelper    sheet  = _sheetSource.Sheet;
            SheetRowSource source = _sheetSource;

            _comments.WriteCorrect(source.CurrentRowIndex, sheet.GetFieldIndex(FieldName), OldValue, NewValue);

            Console.WriteLine(string.Format("Correct:{0}", FieldName));
        }
Esempio n. 3
0
        public CellCommentManager Validate(SheetHelper sheet)
        {
            //int t1 = Environment.TickCount;
            _valid_factory.UpdateUnique = new UpdateUniqueRowValidator(_context, sheet);

            XmlElement xmlRule = _context.DataSource.GetValidateFieldRule();

            _validator.InitFromXMLNode(xmlRule);

            //Console.WriteLine("初始化 Validator時間:{0}", Environment.TickCount - t1);

            _validator.ErrorCaptured += new DocumentValidate.ErrorCapturedEventHandler(validator_ErrorCaptured);
            _validator.AutoCorrect   += new DocumentValidate.AutoCorrectEventHandler(validator_AutoCorrect);

            _sheetSource = new SheetRowSource(sheet, _context);
            int progress = 0, firstRow = sheet.FirstDataRowIndex, maxRow = sheet.MaxDataRowIndex;

            for (int rowIndex = firstRow; rowIndex <= maxRow; rowIndex++)
            {
                _sheetSource.BindRow(rowIndex);
                _validator.ValidateRow(_sheetSource);

                Application.DoEvents();

                //回報進度。
                if (((++progress) % ProgressStep) == 0)
                {
                    if (ProgressChanged != null)
                    {
                        int percentage = progress * 100 / (maxRow - firstRow);
                        ProgressUserState userState = new ProgressUserState();
                        ProgressChanged(this, new ProgressChangedEventArgs(percentage, userState));

                        if (userState.Cancel)
                        {
                            return(_comments);
                        }
                    }
                }
            }
            ProgressChanged(this, new ProgressChangedEventArgs(100, new ProgressUserState()));

            _validator.ErrorCaptured -= new DocumentValidate.ErrorCapturedEventHandler(validator_ErrorCaptured);
            _validator.AutoCorrect   -= new DocumentValidate.AutoCorrectEventHandler(validator_AutoCorrect);

            if (_context.CurrentMode == ImportMode.Update)
            {
                CellCommentManager comments = _valid_factory.UpdateUnique.CheckUpdateResult();
                _comments.MergeFrom(comments);
            }

            //foreach (CellComment each in _comments)
            //    Console.WriteLine(string.Format("{0}:{1} {2} Msg:{3}",
            //        each.RowIndex, each.ColumnIndex, each.BestComment, each.BestComment.Comment));

            return(_comments);
        }
Esempio n. 4
0
        private static Style InitialTemplateStyle(SheetHelper helper)
        {
            Style template = helper.NewStyle();

            template.Font.Color      = helper.MatchColor(Color.Black);
            template.ForegroundColor = helper.MatchColor(Color.White);

            return(template);
        }
Esempio n. 5
0
        private void validator_ErrorCaptured(string FieldName, string ErrorType, string Description, IRowSource RowSource)
        {
            SheetHelper    sheet  = _sheetSource.Sheet;
            SheetRowSource source = _sheetSource;

            if (FieldName == "<XmlContent>")
            {
                XmlElement errorInfo = DSXmlHelper.LoadXml(Description);
                foreach (XmlElement each in errorInfo.SelectNodes("Field"))
                {
                    string fieldName = each.GetAttribute("Name");
                    string message   = each.GetAttribute("Description");
                    WriteComment(ErrorType, source.CurrentRowIndex, sheet.GetFieldIndex(fieldName), message);
                }
            }
            else
            {
                WriteComment(ErrorType, source.CurrentRowIndex, sheet.GetFieldIndex(FieldName), Description);
            }
        }
Esempio n. 6
0
 public SheetRowSource(SheetHelper sheet, WizardContext context)
 {
     _sheet             = sheet;
     _context           = context;
     _current_row_index = -1;
 }
Esempio n. 7
0
        public CellCommentManager Validate(SheetHelper sheet)
        {
            //int t1 = Environment.TickCount;
            _valid_factory.UpdateUnique = new UpdateUniqueRowValidator(_context, sheet);

            // 2018/4/17 穎驊註解,因應客服#5944 反應,檢查匯入班級機制,發現其驗證規則為抓取Severice 回傳的xml
            // 經過與恩正、均泰、耀明的討論後,決定將舊的程式碼註解,將其設定存在程式碼中(JH_C_ImportValidatorRule),直接抓取使用,方便日後維護。
            //XmlElement xmlRule = _context.DataSource.GetValidateFieldRule();

            //2018/12/21 穎驊 完成高雄項目 [10-03][??] 局端夠查詢學校班級有調整”導師”的功能
            // 有載入高雄自動編班模組的 , 其匯入規則 載Local 的設定KH版本(班級名稱、班導師 不得空白)
            XmlElement xmlRule;

            IClassBaseInfoItemAPI item = FISCA.InteractionService.DiscoverAPI <IClassBaseInfoItemAPI>();

            if (item != null)
            {
                //讀取XML欄位描述
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(Properties.Resources.JH_C_ImportValidatorRule_KH);
                xmlRule = doc.DocumentElement;
            }
            else
            {
                //讀取XML欄位描述
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(Properties.Resources.JH_C_ImportValidatorRule);
                xmlRule = doc.DocumentElement;
            };

            _validator.InitFromXMLNode(xmlRule);

            //Console.WriteLine("初始化 Validator時間:{0}", Environment.TickCount - t1);

            _validator.ErrorCaptured += new DocumentValidate.ErrorCapturedEventHandler(validator_ErrorCaptured);
            _validator.AutoCorrect   += new DocumentValidate.AutoCorrectEventHandler(validator_AutoCorrect);

            _sheetSource = new SheetRowSource(sheet, _context);
            int progress = 0, firstRow = sheet.FirstDataRowIndex, maxRow = sheet.MaxDataRowIndex;

            for (int rowIndex = firstRow; rowIndex <= maxRow; rowIndex++)
            {
                _sheetSource.BindRow(rowIndex);
                _validator.ValidateRow(_sheetSource);

                Application.DoEvents();

                //回報進度。
                if (((++progress) % ProgressStep) == 0)
                {
                    if (ProgressChanged != null)
                    {
                        int percentage = progress * 100 / (maxRow - firstRow);
                        ProgressUserState userState = new ProgressUserState();
                        ProgressChanged(this, new ProgressChangedEventArgs(percentage, userState));

                        if (userState.Cancel)
                        {
                            return(_comments);
                        }
                    }
                }
            }
            ProgressChanged(this, new ProgressChangedEventArgs(100, new ProgressUserState()));

            _validator.ErrorCaptured -= new DocumentValidate.ErrorCapturedEventHandler(validator_ErrorCaptured);
            _validator.AutoCorrect   -= new DocumentValidate.AutoCorrectEventHandler(validator_AutoCorrect);

            if (_context.CurrentMode == ImportMode.Update)
            {
                CellCommentManager comments = _valid_factory.UpdateUnique.CheckUpdateResult();
                _comments.MergeFrom(comments);
            }

            //foreach (CellComment each in _comments)
            //    Console.WriteLine(string.Format("{0}:{1} {2} Msg:{3}",
            //        each.RowIndex, each.ColumnIndex, each.BestComment, each.BestComment.Comment));

            return(_comments);
        }