⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmbrcf.java

📁 这是我们做的医院管理系统的一个子部分,也就是关于处方发药的!(SWT组件)
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
			catch(Exception eYP)
			{
				System.out.println("getYPXX 中SQL可能产生的错误是:  "+eYP.getMessage());
				eYP.getStackTrace();
			}
			txtSL.setFocus();
			btnSure.setEnabled(true);							//设置"确定"按键的可用性
		}
		
	}
 	 /**
	* 函数名:getYPMX
	* 编写者:郭军,田文涛
	* 功  能:得到处方所开药方相应的详细信息!
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/   
    public void getYPMX(String strCFMX)
    {
    	int i=0;												//设置一个记数号,返回一共多少条记录!
    	i=DB.getCFMX(strCFMX);
    	System.out.println("一共有 "+i+":条记录!");
    	System.out.println("-----------------------------------------------------------------------------");
    	txtHJJE.setText("0");									//初始化总价格值为0
    	if(i>0)
    	{
    		table.removeAll();									//删除表格中上次的数据
	    	try
			{		
				getDBMX();										//从数据库中得到药品详细信息(得到rstCF.next()以前的第一条记录,没有此调用,结果会少一行)
				while( DB.rstCF.next())
				{
					getDBMX();									//从数据库中得到药品详细信息(rstCF.next()以后的数据)
				}
		    }
			catch(Exception eMX)
			{
				System.out.println(eMX.getMessage());
			}
	
    	}
    }
    /**
	* 函数名:getDBMX
	* 编写者:郭军,田文涛
	* 功  能:从数据库中得到各字段的值,以便getYPMX调用,减少冗余
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/
    public void getDBMX()
    {
    	String[] lstMX=new String[9];
    	float fDJ=0;				//定义float类型的"单价"
    	float fCharge=0;			//定义float类型的总费用
    	int iSL=0;					//定义Int类型的"数量"
    	String strSL=null;			//定义String的"数量"用来接收中间值
    	String strDJ=null;			//定义String的"单价"用来接收中间值
		try
		{
			lstMX[0]=DB.rstCF.getString("YM");						//取出药名
			lstMX[1]=DB.rstCF.getString("YPDJ");					//取出药品单价
			lstMX[2]=DB.rstCF.getString("JJDW");					//取出计价单位
			lstMX[3]=DB.rstCF.getString("SL");						//取出数量
			lstMX[4]=DB.rstCF.getString("JX");						//取出剂型
			lstMX[5]=DB.rstCF.getString("GG");						//取出规格
			lstMX[6]=DB.rstCF.getString("CD");						//取出产地
			lstMX[7]=DB.rstCF.getString("CJ");						//取出厂家
			lstMX[8]=DB.rstCF.getString("BZ");						//取出备注
			
			strDJ=lstMX[1];											//接收String类型的单价
			strSL=lstMX[3];											//接收String类型的数量
			fDJ=Float.parseFloat(strDJ);							//转化为float类型
			iSL=Integer.parseInt(strSL);							//转化为float类型
			fCharge=iSL*fDJ;

			float fAll=Float.parseFloat(txtHJJE.getText())+fCharge;	//计算此单号的总金额并显示
			txtHJJE.setText(Float.toString(fAll));
			
			TableItem itemMX = new TableItem(table,SWT.None);		//将得到的结果和从数据库中取出的数据加入到表格中
			itemMX.setText(new String[] {lstMX[0],lstMX[1],lstMX[2],"",lstMX[3],Float.toString(fCharge),lstMX[4],lstMX[5],lstMX[6],lstMX[7],lstMX[8]});
		}
		catch(Exception eMX)
		{
			System.out.println(eMX.getMessage());
		}
	}
    /**
	* 函数名:addTableItem
	* 编写者:郭军,田文涛
	* 功  能:将数据加入到表格中,形成新的一行
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/ 
	public void addTableItem()
	{
		if(cmbYM.getText().length()==0|txtSL.getText().length()==0)	//判定药名,数量为空与否
		{
			showMessage("输入错误","所开药名和数量不能为空!",SWT.ICON_ERROR);
		}
		else
		{
			TableItem addItem=new TableItem(table,SWT.None);		//新定义一个表项
			addItem.setText(new String[]{cmbYM.getText(),txtDJ.getText(),cmbJJDW.getText(),txtYFKC.getText(),txtSL.getText(),txtJE.getText(),txtJX.getText(),txtGG.getText(),txtCD.getText(),txtCJ.getText(),txtBZ.getText()});
			countNO++;							//项目计数器加1
			delTextMX();
			btnSave.setVisible(true);			//设置"确定"按钮可用
			btnSave.setEnabled(true);			//设置"保存"按钮可用
			btnDel.setEnabled(true);			//设置"删除"按钮可用
		}

	}
	 /**
	* 函数名:loadData
	* 编写者:郭军,田文涛
	* 功  能:启动 FramBRCF 时加载数据及应用相关设置
	* 输入参数:无
	* 输出参数:
	* 备  注:
	*/	
	public void loadData()
	{
		cmbCFDH.removeAll();					//处方单号框清空
		cmbFYYF.removeAll();					//发药药房清空
		String strLB=DB.getUserInfo("UserLB");
		
				//医师显示的界面
		if (DB.getUserInfo("UserLB").equals("住院医师"))
		{
			userType=1;
			btnCF.setSelection(true);			//如果是住院医师,就置用户标记为1默认值为0
				
			group.setVisible(true);				//设置group可见
			cmbCFDH.setEnabled(false);			//设置组合框"处方单号"为不可用
			cmbCFDH.setText(createCFDH());		//调用creatCFDH函数,自动生成CFDH
			txtHJJE.setText("0");
			//cmbFYYF.setText(DB.getUserInfo("YYYF"));
			
			txtKDKS.setText(DB.getUserInfo("YYYF"));				//从数据库中取出用户所在的科室
			txtCFYS.setText(DB.getUserInfo("UserID"));				//从数据库中取出用户ID号
			txtCFRQ.setText(DB.getNowDate());						//取出当前日期
			disEnable();						//使相对应的控件不可用
			
			txtBRXM.setEditable(true);			//设置病人姓名可编辑
			txtBRXB.setEditable(true);			//设置病人性别可编辑
			txtBRNL.setEditable(true);			//设置病人年龄可编辑
			btnSure.setEnabled(false);			//设置"确定"按钮不可用
			btnDel.setEnabled(false);			//设置"删除"按钮不可用
			btnSave.setEnabled(false);			//设置"保存"按钮不可用
			btnCancel.setEnabled(false);		//设置"取消"按钮不可用
			txtDJ.setEnabled(false);			//设置单价不可编辑
			txtYFKC.setEnabled(false);			//设置处方库存不可编辑
			txtJE.setEnabled(false);			//设置金额不可编辑
			txtJX.setEnabled(false);			//设置剂型不可编辑
			txtGG.setEnabled(false);			//设置规格不可编辑
			txtCD.setEnabled(false);			//设置产地不可编辑
			txtCJ.setEnabled(false);			//设置厂家不可编辑
			btnFY.setEnabled(false);			//设置发药选项不可用
			btnCF.setEnabled(true);				//设置处方可用
			txtBRXM.setFocus();					//聚集于病人姓名
		}
				//发药人显示的界面
		else
		{
												//对相应的控件设置可用性
			disEnable();
			btnFY.setSelection(true);
			btnCF.setEnabled(false);
			btnFY.setSelection(true);
			
			group.setVisible(false);			//设置Group为不可见!
			
			delTextCF();						//清空文本框中上次的数据
				//加载登录者的个人信息(ID和所在部门)
			txtFYR.setText(DB.getUserInfo("UserID"));
			cmbFYYF.setText(DB.getUserInfo("YYYF"));
			txtFYRQ.setText(DB.getNowDate());	//显示日期
			getNotFY();							//显示没有发药的处方号
			table.removeAll();					//清空表格中的数据
			getBRCF(cmbCFDH.getText());			//得到处方详细信息
			getYPMX(cmbCFDH.getText());			//得到药品明细
			
		}
		String str=DB.getUserInfo("UserID");
		System.out.println("当前的用户是:   "+str);
	}
	/**
	* 函数名:showMessage
	* 编写者:郭军,田文涛
	* 功  能:加载数据及应用相关设置
	* 输入参数:标题,信息,报警类型
	* 输出参数:返回值
	* 备  注:
	*/
	private int showMessage(String title,String message,int flag)
	{
		int retFlag;							//定义一个返回值的接收变量
		MessageBox msgbox=new MessageBox(shell,flag);
		msgbox.setText(title);					//设置消息的桂标题
		msgbox.setMessage(message);				//设置消息的内容
		retFlag=msgbox.open();
		return retFlag;
	}
	/**
	 * 函数名:calculateTable
	 * 编写者:郭军,田文涛
	 * 功  能:计算表格中的单价与数量的乘积
	 * 输入参数:
	 * 输出参数:
	 * 备  注:
	 */
	private void calculateTable()
	{
		float price=0;							//定义float类型的变量用于接收单价
		float ret=0;							//定义float类型的变量用于接收总的价格
		int num=0;								//定义INT类型的变量用于接收数量
		price=Float.parseFloat(txtDJ.getText());
		if(txtSL.getText().length()==0)
		{
			showMessage("错误!","数量不能为空!!",SWT.OK|SWT.ICON_ERROR);
			txtSL.setFocus();					//聚集于药品数量
			btnSure.setEnabled(false);			//确定按钮不可用
		}
		else
		{
			num=Integer.parseInt(txtSL.getText());	//得到INT型的数量
			ret=price*num;							//计算总金额
			txtJE.setText(Float.toString(ret));		//在金额中显示
			btnSure.setEnabled(true);				//确定按钮可用
		}
	}
	/**
	 * 函数名:calculateAll
	 * 编写者:郭军,田文涛
	 * 功  能:计算处方中所有药品的价格总和
	 * 输入参数:
	 * 输出参数:
	 * 备  注:
	 */
	private void calculateAll()
	{
		float all=0;								//定义FLOAT类型的总金额
		float fTable=0;								//定义FLOAT类型的变量取出表格中的金额
		all=Float.parseFloat(txtHJJE.getText());	//取出处方单中的合计金额
		fTable=Float.parseFloat(txtJE.getText());	//取出表格中的合计金额
		all=all+fTable;								//相加
		txtHJJE.setText(Float.toString(all));		//显示在处方单中的合计金额中
	}
	/**`
	* 函数名:editEntry
	* 编写者:郭军,田文涛
	* 功  能:将表格中的数据显示到相应的文本框中
	* 输入参数:表格中的数据
	* 输出参数:
	* 备  注:
	*/
	private void editEntry(TableItem item)  
	{
		table.setVisible(true);						//设置表格可见
		cmbYM.setText(item.getText(0));				//显示药名
		txtDJ.setText(item.getText(1));				//显示单价
		cmbJJDW.setText(item.getText(2));			//显示计价单位
		txtYFKC.setText(item.getText(3));			//显示药房库存
		txtSL.setText(item.getText(4));				//显示数量
		txtJE.setText(item.getText(5));				//显示金额
		txtJX.setText(item.getText(6));				//显示剂型
		txtGG.setText(item.getText(7));				//显示规格
		txtCD.setText(item.getText(8));				//显示产地
		txtCJ.setText(item.getText(9));				//显示厂家
		txtBZ.setText(item.getText(10));			//显示备注
		cmbYM.setFocus();							//设置焦点在药名文本筐上
	}
	/**`
	 * 函数名:saveTable
	 * 编写者:郭军,田文涛
	 * 功  能:将表格中的数据保存在数据库中
	 * 输入参数:表格中的数据
	 * 输出参数:
	 * 备  注:
	 */
	private void saveTable()
	{
		TableItem[] itemSave = table.getItems();	//定义一个数组
		String[] lstTable=new String[5];			//初始化
		for (int i=0; i<table.getItemCount();i++)
		{
			lstTable[0]=cmbCFDH.getText();
			lstTable[1]=Integer.toString(i+1);		//取出编号
			lstTable[2]="000001";					//itemSave.getText();药品内码
			lstTable[3]=itemSave[i].getText(2);		//取出计价单位
			lstTable[4]=itemSave[i].getText(4);		//取出数量
			DB.saveTable(lstTable);					//传入lstTable,在数据库中保存数据
		}
	}
	/**`
	 * 函数名:removeTable
	 * 编写者:郭军,田文涛
	 * 功  能:将表格中的数据从表格中删除
	 * 输入参数:表格中的数据
	 * 输出参数:
	 * 备  注:
	 */
	private void removeTable()
	{
		int itemIndex=table.getSelectionIndex();	//获得所选择的表格中的行
		TableItem[] item=table.getItems();
		int countTable=table.getItemCount();		//得到表格中的列
		if(countTable==0)
		{
			btnSure.setEnabled(false);				//确定按钮不可用	
			btnDel.setEnabled(false);				//删除按钮不可用
			btnSave.setEnabled(false);				//保存按钮不可用
			btnCancel.setEnabled(false);			//取消按钮不可用
		}
		else
		{
			item[itemIndex].dispose();				//删除所选择的行
			System.out.println("删除的行数为: "+countTable);//打印消息
		}
	}
	/**
	* 函数名:disEnable
	* 编写者:郭军,田文涛
	* 功  能:设置文本元素为不可编辑
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/
	private void disEnable()
	{
		txtKDKS.setEditable(false);					//设置"开单科室"不可编辑
		cmbFYYF.setEnabled(false);  				//设置"发药药房"不可编辑
		txtBRXM.setEditable(false);  				//设置"病人姓名"不可编辑
		txtBRXB.setEditable(false);  				//设置"病人性别"不可编辑
		txtBRNL.setEditable(false);  				//设置"病人年龄"不可编辑
		txtCFYS.setEditable(false);  				//设置"发药医师"不可编辑
		txtCFRQ.setEditable(false);  				//设置"处方日期"不可编辑
		txtHJJE.setEditable(false);  				//设置"计价金额"不可编辑
		txtFYR.setEditable(false);  				//设置"发药人"不可编辑
		txtFYRQ.setEditable(false);  				//设置"发药日期"不可编辑
		
	}
	/**
	* 函数名:unDisplay
	* 编写者:郭军,田文涛
	* 功  能:设置group的可显示性
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/
	private void unDisplay()
	{
		group.setVisible(false);					//设置group不可见
	/*	cmbYM.setVisible(false);
		txtDJ.setVisible(false);
		cmbJJDW.setVisible(false);
		txtYFKC.setVisible(false);
		txtSL.setVisible(false);
		txtJE.setVisible(false);
		txtJX.setVisible(false);
		txtGG.setVisible(false);
		txtCD.setVisible(false);
		txtCJ.setVisible(false);
		txtBZ.setVisible(false);*/
	}
	/**
	* 函数名:delTextCF
	* 编写者:郭军,田文涛
	* 功  能:删除CF文本中以前的数据
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/
	private void delTextCF()
	{
	//	cmbCFDH.setText("");
		txtKDKS.setText("");						//清空 开单科室
		cmbFYYF.setText("");						//清空 发药药房
		txtBRXM.setText("");						//清空 病人姓名
		txtBRXB.setText("");						//清空 病人性别
		txtBRNL.setText("");						//清空 病人年龄
		txtCFYS.setText("");						//清空 处方医师
		txtCFRQ.setText("");						//清空 处方日期
		txtHJJE.setText("");						//清空 合计金额
		txtFYR.setText("");							//清空 发药人
		txtFYRQ.setText("");						//清空 发药日期
	}
	/**
	* 函数名:delTextMX
	* 编写者:郭军,田文涛
	* 功  能:删除group文本中以前的数据
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/
	private void delTextMX()
	{
		cmbYM.setText("");							//清空 药名
		txtDJ.setText("");							//清空 单价
		cmbJJDW.setText("");						//清空 计价单位
		txtYFKC.setText("");						//清空 药房库存
		txtSL.setText("");							//清空 数量
		txtJE.setText("");							//清空 金额
		txtJX.setText("");							//清空 剂型
		txtGG.setText("");							//清空 规格
		txtCD.setText("");							//清空 产地
		txtCJ.setText("");							//清空 厂家
		txtBZ.setText("");							//清空 备注
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -