📄 fypzdwh.cs
字号:
//增加节点
string flId = m_DsTemp_YpFl.GetItemString(1, "ypflid");
string flMc = "";
if (!m_DsTemp_YpFl.IsItemNull(1, "ypflmc"))
flMc = m_DsTemp_YpFl.GetItemString(1, "ypflmc");
TreeNode node = parentNode.Nodes.Add(flId, flMc);
if (node.Level == 1)
{
node.ImageKey = QTreeView.ImageKeyEnum.Level2_Close.ToString();
node.SelectedImageKey = QTreeView.ImageKeyEnum.Level2_Open.ToString();
}
else
{
node.ImageKey = QTreeView.ImageKeyEnum.Level3_Close.ToString();
node.SelectedImageKey = QTreeView.ImageKeyEnum.Level3_Open.ToString();
}
node.Tag = flId;
m_DsTemp_YpFl.RowsMove(1, 1, Sybase.DataWindow.DataBuffer.Primary, m_DsYpFl, 1, Sybase.DataWindow.DataBuffer.Primary);
}
catch (Exception ex)
{
this.btnAddYpFl.Enabled = false;
MessageBox.Show("增加药品分类成功,刷新界面发生异常,请退出重试!\r\n" + ex.Message);
}
}
#endregion
#region Form_Load
private void FYpZdWh_Load(object sender, EventArgs e)
{
this.Init();
}
#endregion
#region 关闭按钮
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
#endregion
#region 药品名称 查、增、删、改
#region 检索药品名称
private void RetrieveYpMc(string ypFlId)
{
try
{
DbProxyClient proxy = App.DbProxy;
proxy.Clear();
proxy.AddRetrieveParam("p_ypflid", ypFlId);
//药品分类已经用库房类型过滤过,根据分类ID检索时不需要再使用库房类型
//proxy.AddRetrieveParam("p_kflx", App.kfLx);
proxy.Retrieve(dwYpMc);
//排序
dwYpMc.SetSort("ypid,ypbmid");
dwYpMc.Sort();
}
catch (Exception ex)
{
AppError error = new AppError("药品字表维护:检索药品名称发生异常", this.GetType(), ex);
AppLog.Add(error);
MessageBox.Show("检索药品名称发生异常:" + ex.Message, MsgTitle.Error);
}
}
#endregion
#region 增加药品
private void AddYpMc(string ypFlId, string ypFlMc)
{
if (ypFlId == null || ypFlId.Trim() == "")
{
MessageBox.Show("参数错误,药品分类ID为空!", MsgTitle.Error);
return;
}
//取药品分类的药品类型
m_DsYpFl.SetFilter("");
m_DsYpFl.Filter();
string ypLx = "";
int row = m_DsYpFl.FindRow("ypflid='" + ypFlId + "'", 1, m_DsYpFl.RowCount);
if (row > 0)
{
if (!m_DsYpFl.IsItemNull(row, "yplx"))
ypLx = m_DsYpFl.GetItemString(row, "yplx");
}
if (ypLx.Trim() == "")
{
MessageBox.Show("没有取到药品分类的药品类型,无法新增药品!", MsgTitle.Error);
return;
}
FYpZdWh_YpMcWh fYpMcWh = new FYpZdWh_YpMcWh();
try
{
string ypId = "0"; //0表示新增
fYpMcWh.SetId(ypId, ypFlId, ypFlMc, ypLx);
DialogResult dResult = fYpMcWh.ShowDialog(this);
if (dResult == DialogResult.OK)
{
AddYpMcRecord(fYpMcWh.YpXx);
}
}
catch (Exception ex)
{
MessageBox.Show("调用药品名称维护窗口发生异常:" + ex.Message, MsgTitle.Error);
}
finally
{
fYpMcWh.Dispose();
tvYpFl.Focus();
}
}
private void AddYpMcRecord(YpMcWh_ReturnValue ypXx)
{
try
{
if (dwYpMc.RowCount == 0)
{
RetrieveYpMc(ypXx.ypFlId);
}
else
{
int row = dwYpMc.InsertRow();
//药品ID
dwYpMc.SetItemString(row, "ypid", ypXx.ypId);
//药品名称
dwYpMc.SetItemString(row, "ypmc", ypXx.ypMc);
//药品分类ID
dwYpMc.SetItemString(row, "ypflid", ypXx.ypFlId);
//标准编码
dwYpMc.SetItemString(row, "bzbm", ypXx.bzBm);
//药品类型
dwYpMc.SetItemString(row, "yplx", ypXx.ypLx);
//排序
dwYpMc.SetSort("ypid,ypbmid");
dwYpMc.Sort();
////定位到新增的记录
row = dwYpMc.FindRow("ypid='" + ypXx.ypId + "' and isnull(ypbmid)", 1, dwYpMc.RowCount);
if (row > 0)
{
dwYpMc.SetRow(row);
dwYpMc.ScrollToRow(row);
}
}
}
catch (Exception ex)
{
MessageBox.Show("药品名称已成功增加,刷新界面发生异常,请退出重试!\r\n" + ex.Message, MsgTitle.Error);
btnAddYpFl.Enabled = false;
}
}
#endregion
#region 修改药品名称
private void ModifyYpMc(string ypId,string ypFlId,string ypFlMc,string ypBmId)
{
FYpZdWh_YpMcWh fYpMcWh = new FYpZdWh_YpMcWh();
try
{
string ypLx = ""; //修改可不传值
fYpMcWh.SetId(ypId, ypFlId, ypFlMc, ypLx);
DialogResult dResult = fYpMcWh.ShowDialog(this);
if (dResult == DialogResult.OK)
{
RetrieveYpMc(ypFlId);
}
}
catch (Exception ex)
{
MessageBox.Show("调用药品名称维护窗口发生异常:" + ex.Message, MsgTitle.Error);
return;
}
finally
{
fYpMcWh.Dispose();
}
//定位到修改的行
string expression ="";
if (string.IsNullOrEmpty(ypBmId))
expression = "ypid='"+ypId+"' and (ypbmid='' or isnull(ypbmid))";
else
expression = "ypid='"+ypId+"' and ypbmid='"+ypBmId+"'";
int row = dwYpMc.FindRow(expression, 1, dwYpMc.RowCount);
if (row>0)
{
dwYpMc.ScrollToRow(row);
dwYpMc.SetRow(row);
}
}
#endregion
#region 删除药品名称
private void DelYpMc()
{
int row = dwYpMc.CurrentRow;
if (row == 0)
return;
string ypId = dwYpMc.GetItemString(row, "ypid");
DbProxyClient proxy = App.DbProxy;
//检查是否有未作废的别名
try
{
string sql = "SELECT COUNT(*) FROM GY_YPBMK WHERE YPID='"+ypId+"' AND NVL(ZFBZ,0)=0";
proxy.Clear();
string ret = proxy.ExecuteScalar(sql);
if (!string.IsNullOrEmpty(ret) && int.Parse(ret)>0)
{
MessageBox.Show("该药品还有未删除的别名,请先删除别名再删除主名!",MsgTitle.Prompt);
return;
}
}
catch(Exception ex)
{
MessageBox.Show("检查药品是否有未作废的别名时发生异常:"+ex.Message, MsgTitle.Error);
return;
}
//检查是否有未作废的规格
try
{
string sql = "SELECT COUNT(*) FROM GY_YPGGK WHERE YPID='" + ypId + "' AND NVL(ZFBZ,0)=0";
proxy.Clear();
string ret = proxy.ExecuteScalar(sql);
if (!string.IsNullOrEmpty(ret) && int.Parse(ret) > 0)
{
MessageBox.Show("该药品还有未删除的规格,请先删除规格再删除主名!", MsgTitle.Prompt);
return;
}
}
catch (Exception ex)
{
MessageBox.Show("检查药品是否有未作废的别名时发生异常:" + ex.Message, MsgTitle.Error);
return;
}
string ypMc = "";
if (!dwYpMc.IsItemNull(row,"ypmc"))
ypMc = dwYpMc.GetItemString(row, "ypmc");
DialogResult dResult = MessageBox.Show("您确定要删除药名【" + ypMc + "】吗?", MsgTitle.Prompt, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dResult == DialogResult.No)
return;
OracleCommand command = new OracleCommand();
command.CommandText = "UPDATE GY_YPMCK SET ZFBZ=1 WHERE YPID=:p_ypid";
command.CommandType = CommandType.Text;
OracleParameter p_YpId = new OracleParameter();
p_YpId.ParameterName = ":p_ypid";
p_YpId.DbType = DbType.String;
p_YpId.Value = ypId;
command.Parameters.Add(p_YpId);
try
{
proxy.Clear();
proxy.AddDbCommand(command,new VerifyInfo(VerifyModeEnum.AffectRows,LogicSymbolEnum.Equal,1));
proxy.Update();
}
catch(Exception ex)
{
MessageBox.Show("删除药品名称发生异常:"+ex.Message,MsgTitle.Error);
return;
}
string ypLx = "";
if (!dwYpMc.IsItemNull(row,"ypmc"))
ypLx= dwYpMc.GetItemString(row, "ypmc");
dwYpMc.DeleteRow(dwYpMc.CurrentRow);
RetrieveYpGg(ypId, ypLx);
}
#endregion
#endregion
#region 药品别名 增、删、改
#region 增加药品别名
private void btnAddOtherName_Click(object sender, EventArgs e)
{
AddYpBm();
}
private void AddYpBm()
{
int row = dwYpMc.CurrentRow;
if (row == 0)
return;
if (dwYpMc.IsItemNull(row, "ypid"))
return;
string ypId = dwYpMc.GetItemString(row, "ypid");
string ypmc = "";
if (!dwYpMc.IsItemNull(row, "ypmc"))
ypmc = dwYpMc.GetItemString(row, "ypmc");
FYpZdWh_YpBmWh fYpBmWh = null;
try
{
string ypBmId = "0"; //0表示新增
fYpBmWh = new FYpZdWh_YpBmWh();
fYpBmWh.SetId(ypBmId, ypId, ypmc);
DialogResult dResult = fYpBmWh.ShowDialog(this);
if (dResult == DialogResult.OK)
{
AddYpBmRecord(row, fYpBmWh.YpBmXx);
}
}
catch (Exception ex)
{
MessageBox.Show("调用药品别名维护窗口发生异常:" + ex.Message, MsgTitle.Error);
}
finally
{
if (fYpBmWh != null)
fYpBmWh.Dispose();
}
}
private void AddYpBmRecord(int ypRow, YpBmWh_ReturnValue ypBmXx)
{
try
{
if (dwYpMc.IsItemNull(ypRow, "ypbmid"))
{
//药品别名ID
dwYpMc.SetItemString(ypRow, "ypbmid", ypBmXx.ypBmId);
//药品别名名称
dwYpMc.SetItemString(ypRow, "ypbmmc", ypBmXx.ypBmMc);
return;
}
int row = dwYpMc.InsertRow(ypRow + 1);
//药品别名ID
dwYpMc.SetItemString(row, "ypbmid", ypBmXx.ypBmId);
//药品别名名称
dwYpMc.SetItemString(row, "ypbmmc", ypBmXx.ypBmMc);
//药品ID
dwYpMc.SetItemString(row, "ypid", dwYpMc.GetItemString(ypRow, "ypid"));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -