C#药品采购
药品采购
效果
C#药品采购
实现
1.新建方法Display(),用来刷新datagridview:
public void Display(){if (trole.Text.Trim() == "工程师"){string sql = "select number,weishengyuan,caigoushijian,work,yaopin,jixing,guige,danwei,chandi,youxiaoriqi,danjia,shuliang,jine from Table_yaopincaigou where work = '工程师'";SqlDataAdapter dataAdaptergcs = new SqlDataAdapter(sql, DBHelper.conStr); //定义一个dataAdapterdataAdaptergcs.Fill(dataSet, "Table_yaopincaigou"); //填充数据集dataGridView1.DataSource = dataSet.Tables["Table_yaopincaigou"]; //填充数据进控件}if (trole.Text.Trim() == "卫生院药房"){string sql = "select number,weishengyuan,caigoushijian,work,yaopin,jixing,guige,danwei,chandi,youxiaoriqi,danjia,shuliang,jine from Table_yaopincaigou where weishengyuan = '" + tweishengyuan.Text + "'";SqlDataAdapter dataAdaptergcs = new SqlDataAdapter(sql, DBHelper.conStr); //定义一个dataAdapterdataAdaptergcs.Fill(dataSet, "Table_yaopincaigou"); //填充数据集dataGridView1.DataSource = dataSet.Tables["Table_yaopincaigou"]; //填充数据进控件}if (trole.Text.Trim() == "村医"){string sql = "select number,weishengyuan,caigoushijian,work,yaopin,jixing,guige,danwei,chandi,youxiaoriqi,danjia,shuliang,jine from Table_yaopincaigou where weishengyuan = '" + tweishengyuan.Text + "' and work = '" + twork.Text + "'";SqlDataAdapter dataAdaptergcs = new SqlDataAdapter(sql, DBHelper.conStr); //定义一个dataAdapterdataAdaptergcs.Fill(dataSet, "Table_yaopincaigou"); //填充数据集dataGridView1.DataSource = dataSet.Tables["Table_yaopincaigou"]; //填充数据进控件}}
1.药品查询:输入药品首字母,即可弹出相应药品。
(https://blog.csdn.net/weixin_44523029/article/details/107882835博客中演示的是医疗保险定点结算中的查询,效果一样)

2.药品拖拽:选择要采购的药品,拖入采购单中。
(https://blog.csdn.net/weixin_44523029/article/details/107565968博客中演示的是医疗保险定点结算中的拖拽,效果一样)

注意上图右下角的总计,拖入药品并输入数量,总计会相应显示,上面的博客链接中的第5点中的代码textBox7就是总计。
3.采购。
(1)首先有一个数量不准为0的验证(拖入的时候,默认是0):
for (int row = 0; row < dataGridView2.Rows.Count; row++){if (this.dataGridView2.Rows[row].Cells[9].Value.ToString() == "0"){MessageBox.Show("请输入数量!", "提示");return;}}
(2)然后有一个采购单不准为空的验证:
if (dataGridView2.Rows.Count == 0){MessageBox.Show("请选择药品!", "提示");return;}
(3)如果以上满足,开始采购。
①for循环读取每行药品数据:for (int i = 0; i < dataGridView2.Rows.Count; i++){}(以下②-⑤皆是在for循环下进行)
②新建string值=行中的数据,例:string sweishengyuan = this.dataGridView2.Rows[i].Cells[0].Value.ToString();//卫生院
③如果是卫生院进行采购,就直接进行sql语句update 表 set kucun = kucun + '" + Convert.ToInt32(sshuliang) + "' where ...限制条件(比如单位、药品名、规格、有效期什么的,用第②步中新建的值表示)库存更新,把新购入的数量加上去,然后用sql语句insert into 表 values (第②步中新建的值)把药品采购记录添加到历史采购表中。
如果是村医进行采购,将药品用sql语句insert添加到药品采购表中(这个药品采购表就是采购单,相当于一个临时表)
④拖入一个空的textBox,令这个textBox=总计,只有这个不为空,才能导出(为什么不直接用总计的那个textBox:因为拖入的时候总计那里直接是0,不为空)(https://blog.csdn.net/weixin_44523029/article/details/107735212导出可以看一下这个)
⑤然后刷新一个库存表,因为卫生院是直接库存增加的,所以这里刷新一下库存表:
dataSet.Tables["Table_yaopin"].Clear();Display();
⑥for循环外进行一个信息提示:MessageBox.Show("采购成功!", "提示");
(4)村医药品采购单录入完后,卫生院进行采购单确认。

①新建一个ArrayList:ArrayList arraylist = new ArrayList();
②新建int值=表中的行数,新建while循环:while (i >= 0){},只有存在药品时,while循环(以下④-⑤皆是while循环中)
③在while循环中,新建string值=列数据
④如果复选框选中了:if (Convert.ToInt32(dataGridView1.Rows[i].Cells["xuanze"].Value) == 1),则arraylist.Add(Convert.ToInt32(dataGridView1.Rows[i].Cells["xuanze"].Value));
如果卫生院没有某药品:首先用select查询一下,如果查不到,则先i- -,然后continue跳出循环,进行下一个药品。
如果存在库存不足的药品,则提示某药品库存不足,其他药品成功,也是i- -,continue跳出循环。
如果库存充足,村医库存更新update,卫生院库存减少update,订单传入历史采购表中insert,删除采购单中的本药品delete
⑤然后i- -。
⑥采购单药品复选框的验证:
if (arraylist.Count == 0){MessageBox.Show("请选择药品!","提示");return;}
⑦然后进行一个右下角总计的更新。
⑧更新采购单,信息提示MessageBox.Show("操作成功!","提示");,全选的复选框取消选择checkBox1.Checked = false;
⑨全选的一个设置,如果点击全选复选框,则datagridview中的复选框全部勾选;反之,全部取消勾选:
private void checkBox1_CheckedChanged(object sender, EventArgs e){if (this.checkBox1.Checked == true){for (int i = 0; i < this.dataGridView1.Rows.Count; i++){this.dataGridView1.Rows[i].Cells["xuanze"].Value = 1;}}else{for (int i = 0; i < this.dataGridView1.Rows.Count; i++){this.dataGridView1.Rows[i].Cells["xuanze"].Value = 0;}}}
4.完成。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
