⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ucdictcrkfswh.cs

📁 基于C/S的医疗卫生管理系统
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using Oracle.DataAccess.Client;

using Sybase.DataWindow;

using Qeb.Control;
using Qeb.DBProxy;
using Qeb.Support;
using Qeb.Support.Common;

namespace Qeb.GY
{
    public partial class UCDictCrkFsWh : UCDictBase
    {
        public UCDictCrkFsWh()
        {
            InitializeComponent();

           
        }

        #region 根据出入库方式名称定位记录
        public override void FindInDw(string value)
        {
            if (value == null)
                value = "";

            int findRow = dwCrkFs.FindRow("crkfsmc like '" + value + "'", 1, dwCrkFs.RowCount);
            if (findRow > 0)
            {
                dwCrkFs.ScrollToRow(findRow);
                dwCrkFs.SetRow(findRow);
            }

        }
        #endregion

        #region 关闭
        private void btnClose_Click(object sender, EventArgs e)
        {
            ParentForm.Close();
        }
        #endregion

        #region 删除
        private void btnDelete_Click(object sender, EventArgs e)
        {
            int row = dwCrkFs.CurrentRow;
            if ( row == 0)
            {
                MessageBox.Show("请选择需要删除的入出库方式,再点击删除按钮!",MsgTitle.Prompt);
                return;
            }

            if (dwCrkFs.GetRowStatus(row,DataBuffer.Primary) ==  RowStatus.New || 
                dwCrkFs.GetRowStatus(row,DataBuffer.Primary) == RowStatus.NewAndModified )
            {
                dwCrkFs.DeleteRow(row);
                return;
            }

            if (!dwCrkFs.IsItemNull(row,"xtbz") && dwCrkFs.GetItemDecimal(row,"xtbz") == 1)
            {
                MessageBox.Show("系统内置的出入库方式不允许删除!",MsgTitle.Prompt);
                return;
            }
            
            string crkFsId = "";

            if (dwCrkFs.IsItemNull(row,"crkfsid"))
                return;
            else
                crkFsId = dwCrkFs.GetItemString(row,"crkfsid");

            DbProxyClient proxy = App.DbProxy;
            //检查出入库方式是否可删除
            try
            {               
                OracleCommand cmd = new OracleCommand();
                cmd.CommandText = "PKG_GY_YKF.Prc_CrkFsIdIsUsed";
                cmd.CommandType = CommandType.StoredProcedure;

                //出入库方式ID
                OracleParameter p_CrkFsId = new OracleParameter();
                p_CrkFsId.ParameterName = ":p_crkfsid";
                p_CrkFsId.Value = crkFsId;
                p_CrkFsId.DbType = DbType.String;
                p_CrkFsId.Direction = ParameterDirection.Input;

                //应用ID
                OracleParameter p_YyId = new OracleParameter();
                p_YyId.ParameterName = ":p_yyid";
                p_YyId.Value = App.yyId;
                p_YyId.DbType = DbType.String;
                p_YyId.Direction = ParameterDirection.Input;

                OracleParameter p_AppCode = new OracleParameter();
                p_AppCode.ParameterName = ":p_appcode";
                p_AppCode.DbType = DbType.Int32;
                p_AppCode.Direction = ParameterDirection.Output;

                OracleParameter p_OutBuffer = new OracleParameter();
                p_OutBuffer.ParameterName = ":p_outbuffer";
                p_OutBuffer.DbType = DbType.String;
                p_OutBuffer.Size = 600;
                p_OutBuffer.Direction = ParameterDirection.Output;

                cmd.Parameters.Add(p_CrkFsId);
                cmd.Parameters.Add(p_YyId);
                cmd.Parameters.Add(p_AppCode);
                cmd.Parameters.Add(p_OutBuffer);

                proxy.Clear();
                proxy.AddDbCommand(cmd);
                proxy.Update();

                if (p_AppCode.Value == null || p_AppCode.Value.ToString() != "1")
                {
                    //已被使用,不可删除
                    MessageBox.Show(p_OutBuffer.Value.ToString(),MsgTitle.Warning);
                    return;
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show("检查出入库方式是否可删除发生异常:" + ex.Message, MsgTitle.Error);
                return;
            }

            dwCrkFs.DeleteRow(row);
            this.m_IsModified = true;
            this.btnSave.Enabled = true;
        }
        #endregion

        #region 增加
        private void btnAdd_Click(object sender, EventArgs e)
        {
            int row = dwCrkFs.InsertRow(0);
            //设置默认值
            //应用ID
            dwCrkFs.SetItemString(row, "yyid", App.yyId);
            //打印行数
            dwCrkFs.SetItemDecimal(row, "dyhs", 10);
            //发票号码标志
            dwCrkFs.SetItemDecimal(row, "fphmbz", 0);
            //显示标志
            dwCrkFs.SetItemDecimal(row, "xsbz", 1);
            //系统标志
            dwCrkFs.SetItemDecimal(row, "xtbz", 0);

            dwCrkFs.SetRow(row);
            dwCrkFs.ScrollToRow(row);
            dwCrkFs.Focus();
            dwCrkFs.SetColumn("crkfsid");
            

        }
        #endregion

        #region 保存

        private bool CheckCrkFsXx()
        {
            if (!dwCrkFs.AcceptText())
                return false;

            //出入库方式名称
            if (dwCrkFs.IsItemNull(1, "crkfsid") || dwCrkFs.GetItemString(1, "crkfsid") == "")
            {
                MessageBox.Show("出入库方式ID不能为空,请输入!", MsgTitle.Prompt);
                dwCrkFs.Focus();
                dwCrkFs.SetColumn("crkfsid");
                return false;
            }

            //出入库方式名称
            if (dwCrkFs.IsItemNull(1, "crkfsmc") || dwCrkFs.GetItemString(1, "crkfsmc") == "")
            {
                MessageBox.Show("出入库方式名称不能为空,请输入!", MsgTitle.Prompt);
                dwCrkFs.Focus();
                dwCrkFs.SetColumn("crkfsmc");
                return false;
            }

            //出入库标志
            if (dwCrkFs.IsItemNull(1, "crkbz"))
            {
                MessageBox.Show("出入库标志没有选择,请选择!", MsgTitle.Prompt);
                dwCrkFs.Focus();
                dwCrkFs.SetColumn("crkbz");
                return false;
            }

            //库存方向
            if (dwCrkFs.IsItemNull(1, "kcfx"))
            {
                MessageBox.Show("库存方向没有选择,请选择!", MsgTitle.Prompt);
                dwCrkFs.Focus();
                dwCrkFs.SetColumn("kcfx");
                return false;
            }

            //出库方案
            if (dwCrkFs.IsItemNull(1, "ckfa"))
            {
                MessageBox.Show("出库方案没有选择,请选择!", MsgTitle.Prompt);
                dwCrkFs.Focus();
                dwCrkFs.SetColumn("ckfa");
                return false;
            }

            //单位部门
            if (dwCrkFs.IsItemNull(1, "dwbmbz"))
            {
                MessageBox.Show("单位部门没有选择,请选择!", MsgTitle.Prompt);
                dwCrkFs.Focus();
                dwCrkFs.SetColumn("dwbmbz");
                return false;
            }

            //核算方式
            if (dwCrkFs.IsItemNull(1, "djhsfs"))
            {
                MessageBox.Show("核算方式没有选择,请选择!", MsgTitle.Prompt);
                dwCrkFs.Focus();
                dwCrkFs.SetColumn("djhsfs");
                return false;
            }
            
            return true;            

        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (!dwCrkFs.AcceptText())
                return;

            //检查数据完整性
            if (!this.CheckCrkFsXx())
                return;


            try
            {
                DbProxyClient proxy = App.DbProxy;
                proxy.Clear();
                proxy.AddDataWindow(dwCrkFs);
                proxy.Update();
                SetEdit(false);
            }
            catch (Exception ex)
            {
                MessageBox.Show("保存出入库方式发生异常:" + ex.Message, MsgTitle.Error);
            }
        }
        #endregion

        /// <summary>
        /// 设置界面编辑状态
        /// </summary>
        /// <param name="edit"></param>
        private void SetEdit(bool edit)
        {
            if (edit)
            {
                //设为可以编辑
                btnAdd.Enabled = true;
                btnDelete.Enabled = true;

                try
                {
                    dwCrkFs.SetProperty("DataWindow.ReadOnly", "No");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("设置数据窗口只读属性发生异常:" + ex.Message);
                }
            }
            else
            {
                //清除修改提示状态
                m_IsModified = false;
                btnSave.Enabled = false;

                //设为不可编辑
                btnAdd.Enabled = false;
                btnDelete.Enabled = false;
                try
                {
                    dwCrkFs.SetProperty("DataWindow.ReadOnly", "Yes");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("设置数据窗口只读属性发生异常:" + ex.Message);
                }
            }
        }

        #region 检索
        private void RetrieveData()
        {
            SetEdit(false);

            DbProxyClient proxy = App.DbProxy;
            try
            {
                proxy.Clear();
                proxy.AddRetrieveParam("p_yyid", App.yyId);
                proxy.Retrieve(this.dwCrkFs);
            }
            catch(Exception ex)
            {
                MessageBox.Show("检索数据发生异常:"+ex.Message,MsgTitle.Error);
            }
        } 

        private void btnRefresh_Click(object sender, EventArgs e)
        {
            if (this.m_IsModified)
            {
                DialogResult result = MessageBox.Show(this, "数据已修改,是否需要保存?", MsgTitle.Prompt, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result == DialogResult.Yes)
                {
                    return;
                }
            }

            this.RetrieveData();     
        }
        #endregion

        #region DW事件处理

        private void dwCrkFs_ItemError(object sender, ItemErrorEventArgs e)
        {
            e.Action = ItemErrorAction.RejectWithNoMessage;
        }


        private void dwCrkFs_ItemChanged(object sender, Sybase.DataWindow.ItemChangedEventArgs e)
        {
            if (e.ColumnName == "crkfsid")
            {
                if (dwCrkFs.GetRowStatus(e.RowNumber,DataBuffer.Primary) == RowStatus.Modified)
                {
                    e.Action = ItemChangedAction.RejectAndAllowFocusChange;
                }

                if (e.Data == null || e.Data.Trim() == "")
                {
                    MessageBox.Show("出入库方式ID不允许为空!",MsgTitle.Warning);
                    e.Action = ItemChangedAction.Reject;
                }

                if (dwCrkFs.FindRepeatValue("crkfsid='" +e.Data + "'",e.RowNumber) > 0 )
                {
                    MessageBox.Show("出入库方式ID已被使用,请重新输入!", MsgTitle.Error);
                    e.Action = ItemChangedAction.Reject;
                    dwCrkFs.SetItemNull(e.RowNumber, "crkfsid");
                }
            }
        }

        private void dwCrkFs_EditChanged(object sender, EditChangedEventArgs e)
        {
            if (!m_IsModified)
            {
                m_IsModified = true;
                btnSave.Enabled = true;
            }
        }

        private void dwCrkFs_Click(object sender, EventArgs e)
        {
            if (this.btnAdd.Enabled && dwCrkFs.ObjectUnderMouse.Band.Type == BandType.Detail)
            {
                int row = dwCrkFs.ObjectUnderMouse.RowNumber;
                string name = dwCrkFs.ObjectUnderMouse.Gob.Name;


                if (row == 0)
                    return;

                if (!dwCrkFs.IsItemNull(row, "xtbz") && dwCrkFs.GetItemDecimal(row, "xtbz") == 1)
                    return;


                if (name == "xsbz" || name == "fphmbz")
                {
                    if (!m_IsModified)
                    {
                        m_IsModified = true;
                        btnSave.Enabled = true;
                    }
                }
            }
        }

        private void dwCrkFs_DropDown(object sender, EventArgs e)
        {
            if (dwCrkFs.CurrentRow == 0)
                return;

            if (!dwCrkFs.IsItemNull(dwCrkFs.CurrentRow, "xtbz") && dwCrkFs.GetItemDecimal(dwCrkFs.CurrentRow, "xtbz") == 1)
                return;

            if (!m_IsModified)
            {
                m_IsModified = true;
                btnSave.Enabled = true;
            }

            
        }

        private void dwCrkFs_ItemFocusChanged(object sender, ItemFocusChangedEventArgs e)
        {
            if (this.btnAdd.Enabled)
            {
                if (e.ColumnName == "crkfsmc")
                    dwCrkFs.SetIME(true);
                else
                    dwCrkFs.SetIME(false);
            }
        }
        #endregion                        

        private void UCDictCrkFsWh_Load(object sender, EventArgs e)
        {
            this.LookUpPromptText = "出入库方式名称";
            
            //初始化数据窗口
            dwCrkFs.LibraryList = PBL.GyPbl;
            dwCrkFs.DataWindowObject = GyDataObjects.d_Gy_CrkFsWh;
            this.dwCrkFs.InitUI();

            this.SetEdit(false);

            this.RetrieveData();
        }

        private void btnModify_Click(object sender, EventArgs e)
        {
            this.SetEdit(true);
        }

        private void btnPrint_Click(object sender, EventArgs e)
        {
            DwPrint.Preview(dwCrkFs);
        }

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -