Пример #1
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            var      sp         = System.DateTime.Now.Subtract(_BeginDate);
            int      totalHouse = System.Convert.ToInt32(sp.TotalHours);
            TimeSpan nsp        = new TimeSpan(totalHouse, sp.Minutes, sp.Seconds);

            barStaticItemTime.Caption = string.Format("累计在线时间: {0}", nsp.ToString());

            if (this.ActiveMdiChild != null)
            {
                setAllButtonEnabled(true);
                MB.WinBase.IFace.IViewGridForm gridViewForm = this.ActiveMdiChild as MB.WinBase.IFace.IViewGridForm;
                if (gridViewForm != null)
                {
                    bool existsUnSave = gridViewForm.ExistsUnSaveData();
                    bButSave.Enabled          = existsUnSave && checkExistsRejectCommand(bButSave);
                    bButAddNew.Enabled        = !existsUnSave && checkExistsRejectCommand(bButAddNew);
                    bButDelete.Enabled        = !existsUnSave && checkExistsRejectCommand(bButDelete);
                    bButFilter.Enabled        = !existsUnSave && checkExistsRejectCommand(bButFilter);
                    bButAdvanceFilter.Enabled = !existsUnSave && checkExistsRejectCommand(bButAdvanceFilter);
                    bButRefresh.Enabled       = !existsUnSave && checkExistsRejectCommand(bButRefresh);
                    bButOpen.Enabled          = !existsUnSave && checkExistsRejectCommand(bButOpen);
                    bButImport.Enabled        = !existsUnSave && checkExistsRejectCommand(bButImport);
                }
            }
            else
            {
                setAllButtonEnabled(false);
            }
        }
Пример #2
0
        /// <summary>
        ///  数据导入处理相关
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <typeparam name="TChannel"></typeparam>
        /// <param name="viewForm"></param>
        /// <param name="importDataInfo"></param>
        /// <param name="hasImportData"></param>
        /// <returns></returns>
        public static bool DataImport <T, TChannel>(MB.WinBase.IFace.IViewGridForm viewForm,
                                                    int mainDocDataType, MB.WinClientDefault.DataImport.DataImportInfo importDataInfo,
                                                    out System.Collections.IList hasImportData) where TChannel : class, IDisposable
        {
            DataRow[] drs = importDataInfo.ImportData.Tables[0].Select();
            MB.WinBase.UIDataInputValidated dataValidated = new MB.WinBase.UIDataInputValidated();
            List <T> lstData    = new List <T>();
            Type     entityType = typeof(T);

            string[] logicKeys    = MB.WinBase.LayoutXmlConfigHelper.Instance.GetLogicKeys(viewForm.ClientRuleObject.ClientLayoutAttribute.UIXmlConfigFile);
            var      colPropertys = viewForm.ClientRuleObject.UIRuleXmlConfigInfo.GetDefaultColumns();
            string   errMsg       = string.Empty;

            using (TChannel client = MB.WcfClient.WcfClientFactory.CreateWcfClient <TChannel>(viewForm.ClientRuleObject)) {//   MB.Util.MyNetworkCredential.CreateWcfClientWithCredential<TChannel>()) {
                object val = MB.WcfServiceLocator.WcfClientHelper.Instance.InvokeServerMethod(client, "GetCreateNewEntityIds", mainDocDataType, drs.Length);
                int    id  = MB.Util.MyConvert.Instance.ToInt(val);
                foreach (DataRow dr in drs)
                {
                    //在导入之前先进行数据的检验
                    bool check = dataValidated.DataRowValidated(colPropertys, dr, ref errMsg);
                    if (!check)
                    {
                        throw new MB.Util.APPException(errMsg, MB.Util.APPMessageType.DisplayToUser);
                    }
                    T newInfo = (T)MB.Util.DllFactory.Instance.CreateInstance(entityType);

                    MB.Util.MyReflection.Instance.FillModelObject(newInfo, dr);

                    MB.Util.MyReflection.Instance.InvokePropertyForSet(newInfo, MB.BaseFrame.SOD.OBJECT_PROPERTY_ID, id++);
                    MB.Util.MyReflection.Instance.InvokePropertyForSet(newInfo, MB.WinBase.UIDataEditHelper.ENTITY_STATE_PROPERTY, MB.Util.Model.EntityState.New);

                    //导入时,需要进行逻辑主键的检验, (特别说明: 如果性能上存在问题,可以考虑批量检验的方式)
                    if (logicKeys != null && logicKeys.Length > 0)
                    {
                        object[] checkPars = new object[] { mainDocDataType, newInfo, logicKeys };
                        bool     b         = (bool)MB.WcfServiceLocator.WcfClientHelper.Instance.InvokeServerMethod(client, "CheckValueIsExists", checkPars);
                        if (b)
                        {
                            string desc    = MB.WinBase.ShareLib.Instance.GetPropertyDescription(logicKeys, colPropertys);
                            string valDesc = MB.WinBase.ShareLib.Instance.GetMultiEntityValueDescription(logicKeys, newInfo);
                            string msg     = "需要存储的对象属性(" + desc + ") 的值(" + valDesc + ") 在库中已经存在,本次导入不成功";
                            throw new MB.Util.APPException(msg, MB.Util.APPMessageType.DisplayToUser);
                        }
                    }

                    lstData.Add(newInfo);

                    object[] pars = new object[] { mainDocDataType, newInfo, false, null };
                    object   re   = MB.WcfServiceLocator.WcfClientHelper.Instance.InvokeServerMethod(client, "AddToCache", pars);
                }
                MB.WcfServiceLocator.WcfClientHelper.Instance.InvokeServerMethod(client, "Flush");
            }

            hasImportData = lstData;
            return(true);
        }
Пример #3
0
        /// <summary>
        /// 显示数据导入对话框。
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="clientRule"></param>
        /// <param name="bindingSource"></param>
        public void ShowDataImportDialog(MB.WinBase.IFace.IViewGridForm viewGridForm,
                                         MB.WinBase.Binding.BindingSourceEx bindingSource)
        {
            _ViewGridForm  = viewGridForm;
            _ClientRule    = viewGridForm.ClientRuleObject as MB.WinBase.IFace.IClientRule;
            _BindingSource = bindingSource;

            IDocDataImportProvider importProvider = _ClientRule as IDocDataImportProvider;

            if (importProvider == null)
            {
                MB.Util.TraceEx.Write(string.Format("业务类 {0} 还没有实现相应的数据导入接口 {1}",
                                                    _ClientRule.GetType().FullName, "IDocDataImportProvider"), MB.Util.APPMessageType.SysErrInfo);
                throw new MB.Util.APPException("当前模块尚未提供数据导入的功能", APPMessageType.DisplayToUser);
            }
            var importInfo = DefaultDataImportDialog.ShowDataImport(_ViewGridForm as Form, _ClientRule, _ClientRule.ClientLayoutAttribute.UIXmlConfigFile, true);

            if (importInfo == null)
            {
                return;
            }

            IList hasImportEntity;
            bool  b = importProvider.DataImport(_ViewGridForm, importInfo, out hasImportEntity);

            if (!b)
            {
                return;
            }

            DialogResult re = MB.WinBase.MessageBoxEx.Question("数据导入成功,是否需要从数据库中重新刷新数据?");

            if (re == DialogResult.Yes)
            {
                _ViewGridForm.Refresh();
            }
            else
            {
                if (hasImportEntity == null && hasImportEntity.Count == 0)
                {
                    return;
                }

                foreach (object entity in hasImportEntity)
                {
                    _BindingSource.Add(entity);
                }
            }
        }
Пример #4
0
        private void trvMainFunction_DoubleClick(object sender, EventArgs e)
        {
            try {
                using (MB.WinBase.WaitCursor cursor = new MB.WinBase.WaitCursor(this)) {
                    TreeViewHitTestInfo hitInfo = trvMainFunction.HitTest(_CurrentMovePoint);
                    if (hitInfo == null || hitInfo.Node == null)
                    {
                        return;
                    }

                    trvMainFunction.SelectedNode = hitInfo.Node;

                    ModuleTreeNodeInfo nodeInfo = hitInfo.Node.Tag as ModuleTreeNodeInfo;
                    OnBeforeDoubleClickTreeNode(new MdiMainFunctionTreeEventArgs(trvMainFunction.SelectedNode, nodeInfo));

                    if (nodeInfo == null || nodeInfo.Commands == null || nodeInfo.Commands.Count == 0)
                    {
                        return;
                    }

                    //判断是否已经打开
                    foreach (Form f in this.MdiChildren)
                    {
                        MB.WinBase.IFace.IViewGridForm iView = f as MB.WinBase.IFace.IViewGridForm;
                        if (iView == null)
                        {
                            continue;
                        }
                        if (iView.ClientRuleObject.ModuleTreeNodeInfo.Equals(nodeInfo))
                        {
                            (iView as Form).BringToFront();
                            return;
                        }
                    }

                    UICreateHelper.Instance.ShowViewGridForm(this, nodeInfo);

                    // _MenuManager.RefreshToolsButtonItem(nodeInfo);
                }
            }
            catch (Exception ex) {
                MB.WinBase.ApplicationExceptionTerminate.DefaultInstance.ExceptionTerminate(ex);
            }
        }
Пример #5
0
        /// <summary>
        ///  模块发表评语
        /// </summary>
        /// <param name="viewGridForm"></param>
        public ucBfModuleComment(MB.WinBase.IFace.IViewGridForm viewGridForm)
        {
            InitializeComponent();


            cobCommentType.Items.Add(MB.WinClientDefault.Properties.Resources.BfModlueComment_COMMENT_TYPE1);
            cobCommentType.Items.Add(MB.WinClientDefault.Properties.Resources.BfModlueComment_COMMENT_TYPE2);
            cobCommentType.Items.Add(MB.WinClientDefault.Properties.Resources.BfModlueComment_COMMENT_TYPE3);
            cobCommentType.Items.Add(MB.WinClientDefault.Properties.Resources.BfModlueComment_COMMENT_TYPE4);
            cobCommentType.Items.Add(MB.WinClientDefault.Properties.Resources.BfModlueComment_COMMENT_TYPE5);
            cobCommentType.SelectedIndex = 0;

            _ViewGridForm = viewGridForm;

            _LstComments   = new List <MB.Util.Model.BfModuleCommentInfo>();
            _CommentHelper = new MB.WinClientDefault.Common.BfModuleCommentHelper();
            _CommentClient = _CommentHelper.CreateCommentClient();

            this.Load        += new EventHandler(ucBfModuleComment_Load);
            tButClear.Enabled = string.Compare(ADMINISTRATOR_USER, MB.WinBase.AppEnvironmentSetting.Instance.CurrentLoginUserInfo.USER_ID, true) == 0;;
        }