Пример #1
0
        private bool SaveData()
        {
            if (IsDirty == false || ValidateValue() == false)
            {
                return(false);
            }

            this.fpSpread1.StopCellEditing();
            for (int i = 0; i < this.view.Count; i++)
            {
                this.view[i].EndEdit();
            }

            DataTable added    = table.GetChanges(DataRowState.Added);
            DataTable modified = table.GetChanges(DataRowState.Modified);
            DataTable deleted  = table.GetChanges(DataRowState.Deleted);

            if (added == null && deleted == null && modified == null)
            {
                IsDirty = false;
                MessageBox.Show("无变化!");
                return(true);
            }
            Neusoft.HISFC.BizLogic.Manager.SysModelFunctionManager funMgr = new Neusoft.HISFC.BizLogic.Manager.SysModelFunctionManager();

            Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();

            //Neusoft.FrameWork.Management.Transaction trans = new Neusoft.FrameWork.Management.Transaction(funMgr.Connection);

            bool saved = true;

            Neusoft.HISFC.Models.Admin.SysModelFunction errorFun = null;
            try
            {
                //trans.BeginTransaction();

                funMgr.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);

                if (deleted != null)
                {
                    deleted.RejectChanges();
                    ArrayList entities = GetEntityFromTable(deleted);
                    if (entities != null)
                    {
                        foreach (Neusoft.HISFC.Models.Admin.SysModelFunction fun in entities)
                        {
                            if (funMgr.DeleteSysModelFunction(fun) < 0)
                            {
                                saved = false;
                                break;
                            }
                        }
                    }
                }
                if (added != null && saved)
                {
                    //added.AcceptChanges();
                    ArrayList entities = GetEntityFromTable(added);
                    if (entities != null)
                    {
                        foreach (Neusoft.HISFC.Models.Admin.SysModelFunction fun in entities)
                        {
                            if (funMgr.InsertSysModelFunction(fun) < 0)
                            {
                                errorFun = fun;

                                saved = false;
                                break;
                            }
                        }
                    }
                }
                if (modified != null && saved)
                {
                    ArrayList entities = GetEntityFromTable(modified);
                    if (entities != null)
                    {
                        foreach (Neusoft.HISFC.Models.Admin.SysModelFunction fun in entities)
                        {
                            if (funMgr.UpdateSysModelFunction(fun) < 0)
                            {
                                errorFun = fun;
                                saved    = false;
                                break;
                            }
                        }
                    }
                }

                if (saved)
                {
                    Neusoft.FrameWork.Management.PublicTrans.Commit();
                }
            }
            catch
            {
                saved = false;
            }
            finally
            {
                if (!saved)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();

                    string error = string.Empty;

                    if (funMgr.DBErrCode == 1 && errorFun != null)
                    {
                        error = "系统模块\"" + modelCache[errorFun.SysCode].ToString() + "\"中窗口名称 \"" + errorFun.WinName + "\" 有重复!";
                    }
                    else
                    {
                        error = funMgr.Err;
                    }

                    SetCellType();
                    MessageBox.Show("数据保存失败!" + error, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    table.AcceptChanges(); //因为用的是DataView ,所以先得置标志位,去除掉已经删除的行
                    foreach (DataRow row in table.Rows)
                    {
                        row["状态"] = "old";
                    }
                    table.AcceptChanges();
                    IsDirty = false;
                    SetCellType();
                }
            }
            if (saved)
            {
                MessageBox.Show("数据保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                IsDirty = false;
                return(true);
            }
            else
            {
                IsDirty = true;
                return(false);
            }
        }
Пример #2
0
        public void Initialize()
        {
            comboBoxCellType1.Items = new string[] { "MDI", "Form", "FormDialog" };
            comboBoxCellType2.Items = new string[] { "Form", "Control", "Report" };

            TreeNode node = new TreeNode("系统模块列表");

            node.Tag = "";
            this.treeView.Nodes.Add(node);

            Neusoft.HISFC.BizLogic.Manager.SysModelManager modelMgr = new Neusoft.HISFC.BizLogic.Manager.SysModelManager();
            ArrayList modelList = modelMgr.LoadAll();

            foreach (Neusoft.HISFC.Models.Admin.SysModel model in modelList)
            {
                AddTreeNode(node, model);
            }

            node.ExpandAll();
            this.treeView.SelectedNode = node;

            #region 加载模块功能信息 --修改

            initDataSet();

            Neusoft.HISFC.BizLogic.Manager.SysModelFunctionManager funMgr = new Neusoft.HISFC.BizLogic.Manager.SysModelFunctionManager();
            ArrayList funList = funMgr.QuerySysModelFunction();
            foreach (Neusoft.HISFC.Models.Admin.SysModelFunction fun in funList)
            {
                table.Rows.Add(new object[] {
                    fun.SysCode,
                    fun.FunName,
                    fun.WinName,
                    fun.DllName,
                    fun.FormShowType,
                    fun.FormType,
                    fun.Memo,
                    fun.Param,
                    fun.TreeControl.DllName,
                    fun.TreeControl.WinName,
                    fun.TreeControl.Param,
                    fun.ID,
                    fun.SortID,
                    "old"
                });
            }

            view = table.DefaultView;

            view.RowFilter = "";

            this.fpSpread1_Sheet1.DataSource = view;
            this.table.AcceptChanges();
            this.fpSpread1_Sheet1.OperationMode = FarPoint.Win.Spread.OperationMode.RowMode;

            #endregion

            SetCellType();

            this.fpSpread1_Sheet1.DataAutoSizeColumns  = false;
            this.fpSpread1_Sheet1.Columns[2].Width     = 200;
            this.fpSpread1_Sheet1.Columns[2].BackColor = Color.MistyRose;
            this.fpSpread1_Sheet1.Columns[2].ForeColor = Color.Black;
            this.fpSpread1.ContextMenuStrip            = this.neuContextMenuStrip1;
        }