namespace Biz.Client.RP.RP01
{
    public partial class subForm_RP0111 : ControlBase
    {
        //调用服务器端方法的路径
        string serverCall_Str = "Biz.Server.RP.RP01.DLL#Biz.Server.RP.RP01.BF_RP0111#";
        
        //从数据库中获取RP_UPLOADFLAG的记录
        DataSet ds_BD_SYS = new DataSet();
        DataTable dt_BD_SYS = new DataTable();        public subForm_RP0111()
        {
            InitializeComponent();
        }        public void LoadAll()
        {
            string sSqL = "select t.ssysparm_code, t.ssysparm_vale, t.scorpcode from bd_sys t where t.ssysparm_code='RP_UPLOADFLAG' and t.scorpcode='" + UIP.FrameManager.GetGlobalVariable().CorpCode + "'";
            string[] arr = new string[1];
            arr[0] = sSqL;
            object[] args = new object[1];
            args[0] = arr;            ReturnObject retObj_GetRP_UpLoadFlag = this.UIP.FrameManager.ServerCall(serverCall_Str + "getDataSet",args);            ds_BD_SYS = retObj_GetRP_UpLoadFlag.ReturnValue as DataSet;
            dt_BD_SYS = ds_BD_SYS.Tables["bd_sys"];            //如果不存在RP_UPLOADFLAG的记录
            if (dt_BD_SYS.Rows.Count == 0)
            {
                //关闭预算开关
                setRPOpen(false);
                //关闭监管开关
                setJGOpen(false);
                //关闭决算开关
                setBGOpen(false);
            }
            //如果存在RP_UPLOADFLAG的记录
            else
            {
                //判断RP_UPLOADFLAG的记录是否为Y/N
                if (dt_BD_SYS.Rows[0]["ssysparm_vale"].ToString() == "Y"
                      || dt_BD_SYS.Rows[0]["ssysparm_vale"].ToString() == "N")
                {
                    //如果RP_UPLOADFLAG的记录为Y
                    if (dt_BD_SYS.Rows[0]["ssysparm_vale"].ToString() == "Y")
                    {
                        //打开预算开关
                        setRPOpen(true);
                        //关闭监管开关
                        setJGOpen(false);
                        //关闭决算开关
                        setBGOpen(false);
                        
                    }
                    //如果RP_UPLOADFLAG的记录为N
                    else
                    {
                        //关闭预算开关
                        setRPOpen(true);
                        //关闭监管开关
                        setJGOpen(false);
                        //关闭决算开关
                        setBGOpen(false);
                    }
                }
                //如果为标准格式数据(BG:Y/N;JG:Y/N;RP:Y/N)
                else
                {
                    if (dt_BD_SYS.Rows.Count > 0)
                    {
                        string flag = this.dt_BD_SYS.Rows[0]["ssysparm_vale"].ToString();
                        switch (flag)
                        {
                            case "RP:N;JG:N;BG:Y":
                                setRPOpen(false);
                                setJGOpen(false);
                                setBGOpen(true);
                                break;
                            case "RP:N;JG:N;BG:N":
                                setRPOpen(false);
                                setJGOpen(false);
                                setBGOpen(false);
                                break;
                            case "RP:N;JG:Y;BG:N":
                                setRPOpen(false);
                                setJGOpen(true);
                                setBGOpen(false);
                                break;
                            case "RP:N;JG:Y;BG:Y":                                
                                setRPOpen(false);
                                setJGOpen(true);
                                setBGOpen(true);
                                break;
                            case "RP:Y;JG:N;BG:N":
                                setRPOpen(true);
                                setJGOpen(false);
                                setBGOpen(false); 
                                break;
                            case "RP:Y;JG:N;BG:Y":
                                setRPOpen(true);
                                setJGOpen(false);
                                setBGOpen(true);
                                break;
                            case "RP:Y;JG:Y;BG:N":                                
                                setRPOpen(true);
                                setJGOpen(true);
                                setBGOpen(false);
                                break;
                            case "RP:Y;JG:Y;BG:Y":
                                setRPOpen(true); 
                                setJGOpen(true);
                                setBGOpen(true);
                                break;
                        }
                    }
                    else
                    {
                        //关闭预算开关
                        setRPOpen(false);
                        //关闭监管开关
                        setJGOpen(false);
                        //关闭决算开关
                        setBGOpen(false);
                    }
                }
            }
        }        /// <summary>
        /// 设置预算开关状态
        /// </summary>
        /// <param name="beOpen"></param>
        private void setRPOpen(bool beOpen)
        {
            if (beOpen == true)
            {
                this.yytRadioButton_RP_Open.Checked = true;               
            }
            else
            {             
                this.yytRadioButton_RP_Close.Checked = true;
            }
        }
        /// <summary>
        /// 获取预算开关状态
        /// </summary>
        /// <returns></returns>
        private bool getRPOpen()
        {
            if (this.yytRadioButton_RP_Open.Checked == true)
            {
                return true;
            }
            else if (this.yytRadioButton_RP_Close.Checked == true)
            {
                return false;
            }
            return false;
        }        /// <summary>
        /// 设置监管开关状态
        /// </summary>
        /// <param name="beOpen"></param>
        private void setJGOpen(bool beOpen)
        {
            if (beOpen == true)
            {
                this.yytRadioButton_JG_Open.Checked = true;               
            }
            else
            {              
                this.yytRadioButton_JG_Close.Checked = true;
            }
        }
        /// <summary>
        /// 获取监管开关状态
        /// </summary>
        /// <returns></returns>
        private bool getJGOpen()
        {
            if (this.yytRadioButton_JG_Open.Checked == true) 
            {
                return true;
            }
            else if (this.yytRadioButton_JG_Close.Checked == true)
            {
                return false;
            }
            return false;
        }        /// <summary>
        /// 设置决算开关状态
        /// </summary>
        /// <param name="beOpen"></param>
        private void setBGOpen(bool beOpen)
        {
            if (beOpen == true)
            {
                this.yytRadioButton_BG_Open.Checked = true;               
            }
            else
            {
                this.yytRadioButton_BG_Close.Checked = true;
            }
        }
        /// <summary>
        /// 获取决算开关状态
        /// </summary>
        /// <returns></returns>
        private bool getBGOpen()
        {
            if (this.yytRadioButton_BG_Open.Checked == true) 
            {
                return true;
            }
            else if (this.yytRadioButton_BG_Close.Checked == true)
            {
                return false;
            }
            return false;
        }        private string getAllOpenStatus()
        {
            //三个开关的状态
            string allOpenStatus ="";
            //预算开关状态
            string RPOpenStatus="";
            //决算开关状态
            string BGOpenStatus="";
            //监管开关状态
            string JGOpenStatus="";            if (getBGOpen() == true)
            {
                BGOpenStatus = "BG:Y";
            }
            if (getBGOpen() == false)
            {
                BGOpenStatus = "BG:N";
            }
            if (getJGOpen() == true)
            {
                JGOpenStatus = "JG:Y";
            }
            if (getJGOpen() == false)
            {
                JGOpenStatus = "JG:N";
            }
            if (getRPOpen() == true)
            {
                RPOpenStatus = "RP:Y";
            }
            if (getRPOpen() == false)
            {
                RPOpenStatus = "RP:N";
            }
               
            allOpenStatus=RPOpenStatus + ";" + JGOpenStatus + ";" + BGOpenStatus;
            return allOpenStatus; 
        }        private void btn_Save_Click(object sender, EventArgs e)
        {
            Datasave();
        }
        //退出
        private void btn_Exit_Click(object sender, EventArgs e)
        {           
            dt_BD_SYS.Rows[0]["ssysparm_vale"] = getAllOpenStatus();
           
            if (dt_BD_SYS.GetChanges() == null)
            {
                this.UIP.FrameManager.CloseSubForm();
            }
            else
            {
                DialogResult dr = this.UIP.FrameManager.ShowQuestion("!提示","数据已改变,是否要保存?", MessageBoxButtons.YesNo);
                if (dr == DialogResult.Yes)
                {
                    Datasave();
                }
                else
                {
                    this.UIP.FrameManager.CloseSubForm();
                }
            }
        }
 }
点击退出时,无论数据是否改变都出提示框为什么?