📄 fypzdwh_ypjgwh.cs
字号:
//药品价格ID
OracleParameter p_YpJgId = new OracleParameter();
p_YpJgId.ParameterName = ":p_ypjgid";
p_YpJgId.Value = ypJgId;
p_YpJgId.DbType = DbType.String;
p_YpJgId.Direction = ParameterDirection.Input;
//药品规格ID
OracleParameter p_YpGgId = new OracleParameter();
p_YpGgId.ParameterName = ":p_ypggid";
p_YpGgId.Value = ypGgId;
p_YpGgId.DbType = DbType.String;
p_YpGgId.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_YpJgId);
command.Parameters.Add(p_YpGgId);
command.Parameters.Add(p_AppCode);
command.Parameters.Add(p_OutBuffer);
return command;
}
private OracleCommand Prc_AfterInsertYpJgXxCommand()
{
if (dwYpJg.IsItemNull(1, "ypjgid"))
throw new Exception("数据窗口中药品价格ID没有设置值。");
string ypJgId = dwYpJg.GetItemString(1, "ypjgid");
OracleCommand command = new OracleCommand();
command.CommandText = "PKG_GY_YPZD.Prc_AfterInsertYpJgXx";
command.CommandType = CommandType.StoredProcedure;
//药品价格ID
OracleParameter p_YpJgId = new OracleParameter();
p_YpJgId.ParameterName = ":p_ypjgid";
p_YpJgId.Value = ypJgId;
p_YpJgId.DbType = DbType.String;
p_YpJgId.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_YpJgId);
command.Parameters.Add(p_AppCode);
command.Parameters.Add(p_OutBuffer);
return command;
}
private void FYpZdWh_YpJgWh_Load(object sender, EventArgs e)
{
if (m_YpJgId == "0")
{
int row = dwYpJg.InsertRow(0);
//作废标志
dwYpJg.SetItemDecimal(row, "zfbz", 0);
//购货标志
dwYpJg.SetItemDecimal(row, "ghbz", 0);
//查询标志
dwYpJg.SetItemDecimal(row, "cxbz", 1);
//停用标志
dwYpJg.SetItemDecimal(row, "tybz", 0);
//招标药品标志
dwYpJg.SetItemDecimal(row, "zbypbz", 0);
//GMP标志
dwYpJg.SetItemDecimal(row, "gmpbz", 0);
//招标进价
dwYpJg.SetItemDecimal(row, "zbjj", 0);
//平均进价
dwYpJg.SetItemDecimal(row, "pjjj", 0);
//批发价
dwYpJg.SetItemDecimal(row, "pfj", 0);
//零售价
dwYpJg.SetItemDecimal(row, "lsj", 0);
//规格ID
dwYpJg.SetItemString(row, "ypggid", m_YpGgId);
//大规格ID(小规格只有在药房拆分后才有)
dwYpJg.SetItemString(row, "dggid", m_YpGgId);
dwYpJg.SetItemString(row, "ypid", m_YpId);
}
else
{
try
{
DbProxyClient proxy = App.DbProxy;
proxy.Clear();
proxy.AddRetrieveParam("p_ypjgid", m_YpJgId);
proxy.Retrieve(dwYpJg);
}
catch (System.Exception ex)
{
MessageBox.Show("检索药品规格信息发生异常:" + ex.Message, MsgTitle.Error);
this.btnSave.Enabled = false;
}
try
{
dwYpJg.SetProperty("cdmc.protect", "1");
dwYpJg.SetProperty("pfj.protect", "1");
dwYpJg.SetProperty("lsj.protect", "1");
dwYpJg.SetProperty("zgpfj.protect", "1");
dwYpJg.SetProperty("zglsj.protect", "1");
dwYpJg.SetProperty("zbjj.protect", "1");
}
catch (Exception ex)
{
MessageBox.Show("设置数据窗编辑属性发生异常:" + ex.Message, MsgTitle.Error);
this.btnSave.Enabled = false;
}
}
}
private void dwYpJg_ItemError(object sender, Sybase.DataWindow.ItemErrorEventArgs e)
{
e.Action = Sybase.DataWindow.ItemErrorAction.RejectWithNoMessage;
}
private bool IsExistYpCdJg(string cdId,string ypGgId)
{
try
{
string sql = "SELECT COUNT(YPGGID) FROM GY_YPJGK WHERE YPGGID='"+ypGgId+"' AND CDID='"+cdId+"' AND ZFBZ=0";
DbProxyClient proxy = App.DbProxy;
proxy.Clear();
string ret =proxy.ExecuteScalar(sql);
if (string.IsNullOrEmpty(ret))
{
return false;
}
else
{
if (int.Parse(ret) >0)
{
MessageBox.Show("同规格同产地的药品已存在!", MsgTitle.Warning);
return true;
}
else
return false;
}
}
catch(Exception ex)
{
MessageBox.Show("检查规格产地是否存在时发生异常:"+ex.Message,MsgTitle.Error);
return false;
}
}
private void dwYpJg_ItemChanged(object sender, Sybase.DataWindow.ItemChangedEventArgs e)
{
if (e.ColumnName == "cdmc")
{
if (e.Data == null || e.Data.Trim() == "")
{
dwYpJg.SetItemNull(e.RowNumber, "cdid");
return;
}
FSelect fSelect = null;
try
{
fSelect = new FSelect();
fSelect.SetTitle("药品产地");
string sql = "SELECT CDID,CDMC,DECODE(CDLBID,1,'国产',2,'合资',3,'进口',4,'自制','其他') AS CDLBID FROM GY_YPCD WHERE " + App.mrSrm + " LIKE '" + e.Data + "%' AND ZFBZ=0";
fSelect.SetDataSource(sql, true);
fSelect.AddShowColumn("CDMC", "产地名称", 900);
fSelect.AddShowColumn("CDLBID", "产地类别", 500);
fSelect.AddMultiReturnColumn("CDID,CDMC");
DialogResult dResult = fSelect.ShowDialog(this);
if (dResult == DialogResult.OK)
{
string[] retValue = fSelect.ReturnValue;
if (IsExistYpCdJg(retValue[0],m_YpGgId))
{
e.Action = ItemChangedAction.Reject;
dwYpJg.SetItemNull(e.RowNumber, "cdid");
dwYpJg.SetItemNull(e.RowNumber, "cdmc");
return;
}
dwYpJg.SetItemString(e.RowNumber, "cdid", retValue[0]);
e.Action = ItemChangedAction.RejectAndAllowFocusChange;
dwYpJg.SetItemString(e.RowNumber, "cdmc", retValue[1]);
}
else
{
e.Action = ItemChangedAction.Reject;
dwYpJg.SetItemNull(e.RowNumber, "cdid");
dwYpJg.SetItemNull(e.RowNumber, "cdmc");
}
}
catch (Exception ex)
{
MessageBox.Show("取药品产地信息发生异常:" + ex.Message, MsgTitle.Error);
e.Action = ItemChangedAction.Reject;
dwYpJg.SetItemNull(e.RowNumber, "cdid");
dwYpJg.SetItemNull(e.RowNumber, "cdmc");
}
finally
{
if (fSelect != null)
fSelect.Dispose();
}
}
else if (e.ColumnName == "pfj" || e.ColumnName == "lsj" || e.ColumnName == "zglsj" || e.ColumnName == "zgpfj" || e.ColumnName == "zbjj")
{
if (string.IsNullOrEmpty(e.Data))
return;
else
if (decimal.Parse(e.Data) < 0)
{
MessageBox.Show("不允许输入负数!");
e.Action = ItemChangedAction.Reject;
}
}
else if (e.ColumnName == "zbypbz")
{
if (e.Data !="1")
{
dwYpJg.SetItemNull(e.RowNumber, "zbjj");
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -