📄 clinicpriceconfirm.cs
字号:
this.da2.SelectCommand = this.sqlSelectCommand2;
this.da2.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] {
new System.Data.Common.DataTableMapping("Table", "v收费项目及药品", new System.Data.Common.DataColumnMapping[] {
new System.Data.Common.DataColumnMapping("编号", "编号"),
new System.Data.Common.DataColumnMapping("名称", "名称"),
new System.Data.Common.DataColumnMapping("规格", "规格"),
new System.Data.Common.DataColumnMapping("单位", "单位"),
new System.Data.Common.DataColumnMapping("单价", "单价"),
new System.Data.Common.DataColumnMapping("拼音码", "拼音码")})});
//
// sqlSelectCommand2
//
this.sqlSelectCommand2.CommandText = "SELECT 编号, 名称, 规格, 单位, 单价, 拼音码 FROM v收费项目及药品";
this.sqlSelectCommand2.Connection = this.sqlConnection1;
//
// ClinicPriceConfirm
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(904, 592);
this.Controls.Add(this.groupBox1);
this.Name = "ClinicPriceConfirm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "ClinicPriceConfirm";
this.Load += new System.EventHandler(this.ClinicPriceConfirm_Load);
this.groupBox1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGrid3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dataView1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dataSet21)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dataGrid2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
this.ResumeLayout(false);
}
#endregion
private void ClinicPriceConfirm_Load(object sender, System.EventArgs e)
{
da1.Fill(dataSet21);
da2.Fill(dataSet21);
this.DataGridStateControl();
newTable.RowChanged+=new DataRowChangeEventHandler(newTable_RowChanged);//每当表格中数据变化时,计算金额
}
private void DataGridStateControl()
{
newTable = new DataTable();
newTable.Columns.Add("编号",typeof(string));
newTable.Columns.Add("名称",typeof(string));
newTable.Columns.Add("规格",typeof(string));
newTable.Columns.Add("单位",typeof(string));
newTable.Columns.Add("单价",typeof(decimal));
newTable.Columns.Add("数量",typeof(int));
newTable.Columns.Add("金额",typeof(decimal),"单价*数量");
this.dataGrid1.DataSource = newTable;
DataGridTableStyle ts = new DataGridTableStyle();
DataGridTextBoxColumn aColumnTextColumn;
ts.AllowSorting = false;
ts.AlternatingBackColor = Color.LightGray;
ts.MappingName = newTable.TableName;
int numCols = newTable.Columns.Count;
for (int i = 0;i< numCols;i++)
{
aColumnTextColumn = new DataGridTextBoxColumn();
if( i==5 )
{
aColumnTextColumn.ReadOnly=false;
}
else
{
aColumnTextColumn.ReadOnly=true;
}
if (i == 0)
{
aColumnTextColumn.TextBox.DoubleClick+=new EventHandler(TextBox_DoubleClick);
}
if(i==0)
{
aColumnTextColumn.Width=130;
}
if ( i == 1 )
{
aColumnTextColumn.Width = 150;
}
aColumnTextColumn.MappingName = newTable.Columns[i].ColumnName;
aColumnTextColumn.HeaderText = newTable.Columns[i].ColumnName;
if(i==0)
{
aColumnTextColumn.HeaderText ="编号【双击输入拼音】";
}
aColumnTextColumn.NullText = "";
aColumnTextColumn.Format = "N";
ts.GridColumnStyles.Add(aColumnTextColumn);
}
dataGrid1.TableStyles.Add(ts);
}
private void cmb1_DropDown(object sender, System.EventArgs e)
{
this.clearInfo();
dataGrid2.Left=cmb1.Left;
dataGrid2.Top=cmb1.Bottom+2;
dataGrid2.Visible=true;
dataGrid2.Show();
dataGrid2.Focus();
}
private void dataGrid2_DoubleClick(object sender, System.EventArgs e)
{
int rowIndex=dataGrid2.CurrentCell.RowNumber;
cmb1.Text=dataGrid2[rowIndex,0].ToString().Trim();
txt1.Text=dataGrid2[rowIndex,2].ToString().Trim();
txt2.Text=dataGrid2[rowIndex,3].ToString().Trim();
txt3.Text=dataGrid2[rowIndex,4].ToString().Trim();
txt4.Text=dataGrid2[rowIndex,8].ToString().Trim();
dataGrid2.Visible=false;
}
private void TextBox_DoubleClick(object sender, EventArgs e)
{
string pym;
InputBox newfrm = new InputBox();
newfrm.label1.Text = "请输入药品或收费项目的拼音码:";
newfrm.Text="输入";
newfrm.Top=this.Top+this.Height/2;
newfrm.Left=this.Left+this.Width/2;
newfrm.ShowDialog();
pym = newfrm.result;
newfrm.Dispose();
dataView1.RowFilter="拼音码 like '%"+pym+"%'";
dataGrid3.Left=dataGrid1.Left+10;
dataGrid3.Top=(dataGrid1.CurrentCell.RowNumber+1)*17+20+dataGrid1.Top;
if(dataView1.Count!=0)
{
dataGrid3.Visible=true;
dataGrid3.Show();
dataGrid3.Focus();
}
}
private void dataGrid3_DoubleClick(object sender, System.EventArgs e)
{
int rowIndex=dataGrid3.CurrentCell.RowNumber;
DataRow aRow=newTable.NewRow();
aRow["编号"]=dataGrid3[rowIndex,0].ToString();
aRow["名称"]=dataGrid3[rowIndex,1].ToString();
aRow["规格"]=dataGrid3[rowIndex,2].ToString();
aRow["单位"]=dataGrid3[rowIndex,3].ToString();
aRow["单价"]=Convert.ToDecimal(dataGrid3[rowIndex,4]).ToString();
newTable.Rows.Add(aRow);
dataGrid3.Visible=false;
}
private void sumMoney()
{
decimal total=0;
foreach(DataRow aRow in newTable.Rows)
{
if(aRow["金额"].ToString().Trim()!="")
{
total+=Convert.ToDecimal(aRow["金额"]);
}
}
txt5.Text=total.ToString();
}
private void newTable_RowChanged(object sender, DataRowChangeEventArgs e)
{
this.sumMoney();
}
private void clearInfo()
{
newTable.Clear();
txt1.Clear();
txt2.Clear();
txt3.Clear();
txt4.Clear();
txt5.Clear();
cmb1.Text="";
}
private string CreateNewID(string sql)
{
string strConn="workstation id=localhost;Integrated Security=SSPI;database=hospitalms;";
SqlConnection cn=new SqlConnection(strConn);
cn.Open();
SqlCommand cmb=cn.CreateCommand();
cmb.CommandText=sql;
string result;
if(cmb.ExecuteScalar()!=System.DBNull.Value)
{
result=cmb.ExecuteScalar().ToString().Trim();
}
else
{
return(System.DateTime.Now.Year.ToString()+"0000001");
}
result=result.Substring(4,7);
int newID=Convert.ToInt32(result)+1;
int length=newID.ToString().Length;
string returnStr=System.DateTime.Now.Year.ToString();
switch(length)
{
case 1:
returnStr+="000000"+newID.ToString();
break;
case 2:
returnStr+="00000"+newID.ToString();
break;
case 3:
returnStr+="0000"+newID.ToString();
break;
case 4:
returnStr+="000"+newID.ToString();
break;
case 5:
returnStr+="00"+newID.ToString();
break;
case 6:
returnStr+="0"+newID.ToString();
break;
case 7:
returnStr+=newID.ToString();
break;
}
return(returnStr);
}
private void btnOK_Click(object sender, System.EventArgs e)
{
if(cmb1.Text=="")
{
MessageBox.Show("请先选择门诊号","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop);
return;
}
if(newTable.Rows.Count==0)
{
MessageBox.Show("请填写药品和收费项目明细表","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop);
return;
}
foreach(DataRow aRow in newTable.Rows)
{
if(aRow["金额"].ToString().Trim()=="")
{
MessageBox.Show("请填写药品或收费项目数量","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop);
return;
}
}
string strConn="workstation id=localhost;Integrated Security=SSPI;database=hospitalms;";
SqlConnection cn=new SqlConnection(strConn);
cn.Open();
SqlCommand cmd=cn.CreateCommand();
string newID=this.CreateNewID("select max(编号) 最大编号 from 门诊划价");
string insertStr="insert into 门诊划价([编号], [科室], [挂号编号], [医生], [划价时间],"
+"[是否收费], [划价金额], [是否发药]) values('"+newID+"','"+txt3.Text+"','"+cmb1.Text
+"','"+txt4.Text+"','"+System.DateTime.Now.ToString()+"','否',CAST('"+txt5.Text+"' as money)"
+",'否')";
try
{
cmd.CommandText=insertStr;
cmd.ExecuteNonQuery();
}
catch(Exception express)
{
MessageBox.Show(express.ToString(),"新增门诊挂号错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
return;
}
foreach(DataRow aRow in newTable.Rows)
{
insertStr="insert into 门诊划价明细([划价编号], [药品编号], [单价], [数量], [金额]) "
+"values('"+newID+"','"+aRow["编号"].ToString()+"','"+aRow["单价"].ToString()+"','"
+aRow["数量"].ToString()+"','"+aRow["金额"].ToString()+"')";
try
{
cmd.CommandText=insertStr;
cmd.ExecuteNonQuery();
}
catch(Exception express)
{
MessageBox.Show(express.ToString(),"新增门诊明细错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
return;
}
}
cmd.CommandText="update 门诊挂号 set 是否已划价='是' where 编号='"+cmb1.Text+"'";
cmd.ExecuteNonQuery();
this.clearInfo();
dataSet21.Clear();
da1.Fill(dataSet21);
da2.Fill(dataSet21);
}
private void btnCancel_Click(object sender, System.EventArgs e)
{
this.clearInfo();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -