📄 fypzdwh_ypmcwh.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.YK
{
public partial class FYpZdWh_YpMcWh : Qeb.Control.FBase
{
//药品ID 0 表示新增
private string m_YpId = "";
//药品分类ID
private string m_YpFlId = "";
//药品分类名称
//private string m_YpFlMc = "";
//药品类型 (新增时需传入)
private string m_YpLx = "";
public FYpZdWh_YpMcWh()
{
InitializeComponent();
dwYpMc.LibraryList = PBL.YkPbl;
dwYpMc.DataWindowObject = YkDataObjects.D_Yk_YpMcWh;
}
internal void SetId(string ypId,string ypFlId,string ypFlMc,string ypLx)
{
if (string.IsNullOrEmpty(ypId))
throw new Exception("入参错误,药品ID不能为空");
if (string.IsNullOrEmpty(ypFlId))
throw new Exception("入参错误,药品分类ID不能为空");
m_YpId = ypId;
m_YpFlId = ypFlId;
//m_YpFlMc = ypFlMc;
m_YpLx = ypLx;
if (m_YpId =="0")
{
this.Text = "药品名称维护 新增";
}
else
{
this.Text = "药品名称维护 修改";
}
labelYpFlMc.Text = "分类名称:"+ypFlMc;
}
private void RetrieveYpMc()
{
try
{
DbProxyClient proxy = App.DbProxy;
proxy.Clear();
proxy.AddRetrieveParam("p_ypid", m_YpId);
proxy.Retrieve(dwYpMc);
}
catch(Exception ex)
{
MessageBox.Show("检索药品名称发生异常:"+ex.Message,MsgTitle.Error);
}
}
private string GetBzBm(string ypFlId)
{
string sql = "SELECT MAX(BZBM) FROM GY_YPMCK WHERE YPFLID='" + ypFlId + "'";
string bzBm = App.DbProxy.ExecuteScalar(sql);
if (string.IsNullOrEmpty(bzBm))
{
sql = "SELECT BZBM FROM GY_YPFL WHERE YPFLID='" + ypFlId + "'";
bzBm = App.DbProxy.ExecuteScalar(sql);
if (bzBm == null || bzBm.Trim()=="")
{
throw new Exception("取到的药品分类编码为空");
}
bzBm += "001";
}
else
{
int temp = int.Parse(bzBm.Substring(bzBm.Length - 3, 3)) + 1;
bzBm = bzBm.Substring(0,bzBm.Length-3)+temp.ToString().PadLeft(3,'0');
}
return bzBm;
}
private void FYpZdWh_YpMcWh_Load(object sender, EventArgs e)
{
if (m_YpId == "0")
{
int row = dwYpMc.InsertRow(0);
//药品分类ID
dwYpMc.SetItemString(row,"ypflid",m_YpFlId);
//急诊用药标志
dwYpMc.SetItemDecimal(row, "jzyybz", 0);
//控制药量标志
dwYpMc.SetItemDecimal(row, "kzylbz", 0);
//作废标志
dwYpMc.SetItemDecimal(row, "zfbz", 0);
//药品类型
dwYpMc.SetItemString(row, "yplx", m_YpLx);
//取标准编码
string bzBm = "";
try
{
bzBm = GetBzBm(m_YpFlId);
}
catch (System.Exception ex)
{
MessageBox.Show("生成药品的标准编码发生异常:"+ex.Message,MsgTitle.Error);
this.Close();
}
dwYpMc.SetItemString(row, "bzbm", bzBm);
}
else
{
RetrieveYpMc();
}
//设置药品类型下拉框的项目
string itemValue = YkGy.KfLx2DwDropDownItem(App.kfLx);
dwYpMc.SetProperty("yplx.Values", itemValue);
try
{
//价值分类
DataWindowChild dwcJzFl = dwYpMc.GetChild("jzflid");
DbProxyClient proxy = App.DbProxy;
proxy.Clear();
proxy.AddRetrieveParam("p_flid", GyDmDefine.DMFL_YPJZFL);
proxy.Retrieve(dwcJzFl);
//毒理分类
DataWindowChild dwcDlFl = dwYpMc.GetChild("dlflid");
proxy.Clear();
proxy.AddRetrieveParam("p_flid", GyDmDefine.DMFL_DLFL);
proxy.Retrieve(dwcDlFl);
}
catch(Exception ex)
{
MessageBox.Show("处理子数据窗口发生异常:" + ex.Message, MsgTitle.Error);
}
}
#region 关闭
private void btnClose_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
#endregion
private YpMcWh_ReturnValue m_YpXx;
internal YpMcWh_ReturnValue YpXx
{
get { return this.m_YpXx; }
}
#region 保存
private bool CheckYpMcXx()
{
if (!dwYpMc.AcceptText())
return false;
//药品名称
if (dwYpMc.IsItemNull(1, "ypmc") || dwYpMc.GetItemString(1, "ypmc") == "")
{
MessageBox.Show("药品名称不能为空,请输入!", MsgTitle.Prompt);
dwYpMc.Focus();
dwYpMc.SetColumn("ypmc");
return false;
}
//药品类型
if (dwYpMc.IsItemNull(1, "yplx") || dwYpMc.GetItemString(1, "yplx") == "")
{
MessageBox.Show("药品类型没有选择,请选择!", MsgTitle.Prompt);
dwYpMc.Focus();
dwYpMc.SetColumn("yplx");
return false;
}
//药品价值分类
if (dwYpMc.IsItemNull(1, "jzflid") || dwYpMc.GetItemString(1, "jzflid") == "")
{
MessageBox.Show("药品价值分类没有选择,请选择!", MsgTitle.Prompt);
dwYpMc.Focus();
dwYpMc.SetColumn("jzflid");
return false;
}
//药品毒理分类
if (dwYpMc.IsItemNull(1, "dlflid") || dwYpMc.GetItemString(1, "dlflid") == "")
{
MessageBox.Show("药品毒理分类没有选择,请选择!", MsgTitle.Prompt);
dwYpMc.Focus();
dwYpMc.SetColumn("dlflid");
return false;
}
return true;
}
private void btnSave_Click(object sender, EventArgs e)
{
if (!CheckYpMcXx())
return;
if (m_YpId == "0")
{
//设置主键
try
{
string ypId = Sequence.GetXhByName("SEQ_GY_YPMCK_YPID",6);
if (string.IsNullOrEmpty(ypId))
{
MessageBox.Show("取药品ID不成功,取到的值为空!", MsgTitle.Error);
return;
}
dwYpMc.SetItemString(1, "ypId", ypId);
}
catch (Exception ex)
{
MessageBox.Show("取药品ID发生异常:" + ex.Message, MsgTitle.Error);
return;
}
}
//设置返回值
try
{
//药品ID
if (!dwYpMc.IsItemNull(1, "ypid"))
m_YpXx.ypId = dwYpMc.GetItemString(1, "ypid");
//药品名称
if (!dwYpMc.IsItemNull(1, "ypmc"))
m_YpXx.ypMc = dwYpMc.GetItemString(1, "ypmc");
//药品分类ID
if (!dwYpMc.IsItemNull(1, "ypflid"))
m_YpXx.ypFlId = dwYpMc.GetItemString(1, "ypflid");
//标准编码
if (!dwYpMc.IsItemNull(1, "bzbm"))
m_YpXx.bzBm = dwYpMc.GetItemString(1, "bzbm");
//药品类型
if (!dwYpMc.IsItemNull(1, "yplx"))
m_YpXx.ypLx = dwYpMc.GetItemString(1, "yplx");
}
catch(Exception ex)
{
MessageBox.Show("设置药品返回信息发生异常:"+ex.Message,MsgTitle.Error);
return;
}
//保存
try
{
DbProxyClient proxy = App.DbProxy;
proxy.Clear();
proxy.AddDataWindow(dwYpMc);
if (m_YpId !="0")
{
proxy.AddDbCommand(GetAfterUpdateYpMcCommand(), new VerifyInfo(VerifyModeEnum.OutputPara, ":p_appcode", LogicSymbolEnum.Equal, 1));
}
proxy.Update();
this.DialogResult = DialogResult.OK;
this.Close();
}
catch(Exception ex)
{
MessageBox.Show("保存药品名称信息时发生异常:"+ex.Message, MsgTitle.Error);
}
}
private OracleCommand GetAfterUpdateYpMcCommand()
{
if (dwYpMc.IsItemNull(1, "ypid"))
throw new Exception("数据窗口中药品ID没有设置值。");
string ypId = dwYpMc.GetItemString(1, "ypid");
OracleCommand command = new OracleCommand();
command.CommandText = "PKG_GY_YPZD.Prc_AfterUpdateYpMcXx";
command.CommandType = CommandType.StoredProcedure;
//药品ID
OracleParameter p_YpId = new OracleParameter();
p_YpId.ParameterName = ":p_ypid";
p_YpId.Value = ypId;
p_YpId.DbType = DbType.String;
p_YpId.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;
command.Parameters.Add(p_YpId);
command.Parameters.Add(p_AppCode);
command.Parameters.Add(p_OutBuffer);
return command;
}
#endregion
#region DW事件处理
private void dwYpMc_ItemError(object sender, ItemErrorEventArgs e)
{
e.Action = ItemErrorAction.RejectWithNoMessage;
}
private void dwYpMc_ItemChanged(object sender, Sybase.DataWindow.ItemChangedEventArgs e)
{
if (e.ColumnName == "ypmc")
{
if (e.Data == null || e.Data.Trim() == "")
{
e.Action = ItemChangedAction.Reject;
dwYpMc.SetItemNull(e.RowNumber, "ypmc");
dwYpMc.SetItemNull(e.RowNumber, "srm1");
dwYpMc.SetItemNull(e.RowNumber, "srm2");
dwYpMc.SetItemNull(e.RowNumber, "srm3");
}
string srm1 = "";
string srm2 = "";
string srm3 = "";
string errMsg = StringHelper.GetSrm(e.Data, true, ref srm1, ref srm2, ref srm3);
if (errMsg =="")
{
dwYpMc.SetItemString(e.RowNumber, "srm1",srm1);
dwYpMc.SetItemString(e.RowNumber, "srm2", srm2);
dwYpMc.SetItemString(e.RowNumber, "srm3", srm3);
}
else
{
MessageBox.Show(errMsg, MsgTitle.Error);
}
}
}
private void dwYpMc_ItemFocusChanged(object sender, Sybase.DataWindow.ItemFocusChangedEventArgs e)
{
if (e.ColumnName == "ypmc")
dwYpMc.SetIME(true);
else
dwYpMc.SetIME(false);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -