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

📄 frmbrcf.java

📁 这是我们做的医院管理系统的一个子部分,也就是关于处方发药的!(SWT组件)
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		lblDisplay.setText("操作状态  ................");
		lblDisplay.setBounds(10,390,300,20);
			///初始化确定
		btnSure=new Button(group,SWT.None);
		btnSure.setText("确定");
		btnSure.setBounds(440,90,50,20);
			//初始化删除
		btnDel=new Button(group,SWT.None);
		btnDel.setText("删除");
		btnDel.setBounds(490,90,50,20);
			//初始化保存
		btnSave=new Button(shell,SWT.None);
		btnSave.setText("保存");
		btnSave.setBounds(400,390,50,20);		
			//初始化放弃
		btnCancel=new Button(shell,SWT.None);
		btnCancel.setText("放弃");
		btnCancel.setBounds(450,390,50,20);
			//初始化返回
		btnReturn=new Button(shell,SWT.None);
		btnReturn.setText("返回");
		btnReturn.setBounds(500,390,50,20);
		
			//对"删除"按钮设置监听
		btnDel.addSelectionListener(new SelectionAdapter(){
			public void widgetSelected(SelectionEvent eDel)
			{
				removeTable();		//清除表格中所选的行
				delTextMX();		//清除文本框中的内容
			}
		});
			//对"保存"按钮增加监听
		btnSave.addSelectionListener(new SelectionAdapter(){
			public void widgetSelected(SelectionEvent e)
			{
				switch(userType)	//根据用户类型来判断操作方向
				{
					case 1:			//1为保存处方,0为发药
						if(table.getItemCount()==0|txtBRXM.getText().length()==0)
						{
							showMessage("错误","此处方单号信息不完整!",SWT.ICON_ERROR);
						}
						else
						{
							int retChoise=showMessage("提示!","确定要保存此处方吗?",SWT.CANCEL|SWT.OK|SWT.ICON_INFORMATION);
							if(retChoise==32)		//如果是回车
							{
								insertBRCF();		//保存新增加的处方单号
								saveTable();		//在CFMX中插入Tabl项
								lblDisplay.setText("新增的处方单号为:"+cmbCFDH.getText()+"及药品明细提交成功!");
								showMessage("成功","此处方单号"+cmbCFDH.getText()+"保存成功!",SWT.OK|SWT.ICON_INFORMATION);
								delTextCF();		//删除文本框中上次内容!
								table.removeAll();	//删除表格中上次内容!
								cmbCFDH.setText(createCFDH());//自动生成下一个单号
								countNO=1;		  	//设置表格的行数为1
								txtHJJE.setText("0");//设置默认值为0
								txtBRXM.setFocus();
							}	
						}
					break;
					case 0:			//此为发药状态
						int retChoise=showMessage("提示!","确定要保存此次发药吗?",SWT.CANCEL|SWT.OK|SWT.ICON_INFORMATION);
						if(retChoise==32)			//如果是回车
						{
									//根据相应的处方单号更新CFD表,插入发药时间,发药人等信息
							DB.updateBRCF(cmbCFDH.getText(),txtFYR.getText());
							cmbCFDH.removeAll();	//清空处方单号组合框
							table.removeAll();		//清空表格中的内容
							getNotFY();				//得到还没有发药的处方单号
							lblDisplay.setText("处方单号为:"+cmbCFDH.getText()+"成功发药!");
									//如果没有没有发药的单号"保存"不可用
							if(cmbCFDH.getText().length()==0)
							btnSave.setEnabled(false);
						}
					break;
				}
			}
		});
			//对"确定"按钮增加监听
		btnSure.addSelectionListener(new SelectionAdapter(){
			public void widgetSelected(SelectionEvent e)
			{
				calculateAll();		//计算处方的总金额
				addTableItem();		//向表格中加内容
				cmbYM.setFocus();
				btnSave.setVisible(true);
				btnSave.setEnabled(true);
			}
		});
			//为"返回"按钮增加监听
		btnReturn.addSelectionListener(new SelectionAdapter(){
			public void widgetSelected(SelectionEvent e)
			{

			}
		});
			//为"药名"组合框增加回车监听!
		cmbYM.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent eve)
			{
				switch (eve.keyCode)
				{
					
					case SWT.CR:	//如果是回车,调用函数得到相应药品的详细信息
						getYPXX(cmbYM.getText());
					break;
				}
			}
		});
			//为"数量"增加按下键的监听
		txtSL.addModifyListener(new ModifyListener(){
			public void modifyText(ModifyEvent eve)
			{
				String lstSL=txtSL.getText();
				if(lstSL.equals(""))//数量为空就返回
					return;
				try
				{
					calculateTable();//计算单个药品的价格
				}
				catch(Exception ex)	//验证数量输入的合法性
				{
					showMessage("错误!","请输入0-9之间的数字!",SWT.OK|SWT.ICON_ERROR);
					txtSL.setText("");
					return;
				}
			}
		});
			//为"数量"增加监听
		txtSL.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent eveSL)
			{
				if(eveSL.keyCode==13) //当按下回车键
				{
					try
					{
						calculateTable();//计算单个药品的价格
						btnSure.setFocus();
					}
					catch(Exception ex)
					{
						showMessage("错误!","请输入0-9之间的数字!",SWT.OK|SWT.ICON_ERROR);
						txtSL.setText("");
						return;
					}
				}
			}
		});
	}
 	 /**
	* 函数名:nitData
	* 编写者:郭军,田文涛
	* 功  能:初始化页面相关所需要的信息!!
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/   
	public void initData()
	{
			//定义I来接收当前用户返回值!1:表示用户登录成功;-1:数据库查询失败;0:当前没有用户登录
		int i= DB.getCurentUser();
		if(i==1)
		{
			loadData();
			System.out.println("现在调用了 getCurentUser()方法,成功得到当前用户!");
		}
		else if(i==-1)
		  	showMessage("错误","数据库查询失败!",SWT.ICON_ERROR);
		if(i==0) 	
		 	showMessage("错误","当前没有用户登录!",SWT.ICON_ERROR);
	}
 	 /**
	* 函数名:getBRCF
	* 编写者:郭军,田文涛
	* 功  能:得到对应的病人处方信息
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/   
	public void getBRCF(String strCFDH)
	{
		try
		{
			int rtnCF=DB.getBRCF(strCFDH);
			if(rtnCF>0)
			{	
				txtBRXM.setText(DB.rstCF.getString("BRXM"));//将病人姓名加入
				txtBRXB.setText(DB.rstCF.getString("BRXB"));//将病人改名加入
				txtBRNL.setText(DB.rstCF.getString("BRNL"));//将病人年龄加入
				txtKDKS.setText(DB.rstCF.getString("KDKS"));//将医生开单科室加入
				txtCFRQ.setText(DB.rstCF.getString("CFRQ"));//处方日期加入
				txtCFYS.setText(DB.rstCF.getString("CFYS"));//处方医师加入
				txtFYRQ.setText(DB.rstCF.getString("FYSJ"));//处方时间加入
				cmbFYYF.setText(DB.rstCF.getString("FYYF"));//发药药房加入
				txtFYR.setText(DB.rstCF.getString("FYR"));	//发药人加入
				//txtHJJE.setText(DB.rstCF.getString("ZZSJ"));
		    }
		    else
		    {
		    	disEnable();	//设置相应控件不可用
		    	delTextCF();	//清空文本框中的内容
		    	showMessage("错误","数据库没有此处方单号!",SWT.ICON_ERROR);
		    	btnSave.setEnabled(false);
		    	btnCancel.setEnabled(false);
		    }
		}
		catch(Exception ex2)
		{
			System.err.println(ex2.getMessage());
		}
	}
 	 /**
	* 函数名:creatMenu
	* 编写者:郭军,田文涛
	* 功  能:创建快捷的右键菜单
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/ 
	private Menu creatMenu()
	{
		Menu rigthMenu=new Menu(shell);			//创建一个菜单
		rigthMenu.addMenuListener(new MenuAdapter(){
			public void menuShown(MenuEvent eMenu)
			{
				Menu menu=(Menu)eMenu.widget;
				MenuItem[] items=menu.getItems();
					//得到表格数据的条数!
				int count=table.getSelectionCount();
					//如果是医生就可用(新建)
				items[0].setEnabled(userType==1&&table.getItemCount()>=0);
					//如果是医生且所选表格行数不为0可用(编辑)
				items[2].setEnabled(userType==1&&count!=0);
					//如果是医生且所选表格行数不为0可用(删除)
				items[3].setEnabled(userType==1&&count!=0);
			}
		});
			//加入"增加"
		MenuItem addItem=new MenuItem(rigthMenu,SWT.CASCADE);
		addItem.setText("增加");
			//增加"增加"的动作	
		addItem.addSelectionListener(new SelectionAdapter(){
			public void widgetSelected(SelectionEvent eAdd)
			{
				cmbYM.setEnabled(true);			//药名组合框可用
				txtSL.setEnabled(true);			//数量文本框可用
				btnSure.setEnabled(true);		//"保存"按钮可用
				cmbYM.setFocus();
			}
		});
			//建立分隔线
		new MenuItem(rigthMenu,SWT.SEPARATOR);
			//加入"编辑"
		MenuItem itemEdit=new MenuItem(rigthMenu,SWT.CASCADE);
		itemEdit.setText("编辑");
			//增加"编辑"的动作	
		itemEdit.addSelectionListener(new SelectionAdapter(){
			public void widgetSelected(SelectionEvent eEdit)
			{
			//编辑所选的行的内容
				TableItem itemSelect=table.getSelection()[0];
				editEntry(itemSelect);
				System.out.println("查看的列数为: "+itemSelect);
			}
		});
			//加入"删除"
		MenuItem itemDel=new MenuItem(rigthMenu,SWT.CASCADE);
		itemDel.setText("删除");
			//增加"删除"的动作	
		itemDel.addSelectionListener(new SelectionAdapter(){
			public void widgetSelected(SelectionEvent eDel)
			{
				removeTable();					//删除所选的行
				delTextMX();					//清空文本框中的内容
			}
		});
		return rigthMenu;
	}	
 	 /**
	* 函数名:createCFDH
	* 编写者:郭军,田文涛
	* 功  能:得到还没有发药的处方号!
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/   
	public String createCFDH()
	{
			//申明返回变量
		String retDH=null;
			//申明返回中间变量
		long ret=0;
			//得到系统日期
		String strDate=DB.getNowDate();
			//生成处方单号日期的部分
		String string=strDate.substring(0,4);			//取出年
		string=string+strDate.substring(5,7);			//取出月
		string=string+strDate.substring(8,10);			//取出日
		string=string+DB.getUserInfo("UserID").trim();	//年月日+ID号
		String strDH=DB.getDH(string);					//得到返回的单号
		
		if(strDH.equals("Error"))
		{
			showMessage("错误","处方单号创建失败!",SWT.ICON_ERROR);
			retDH="Error";
		}	
		if(strDH.equals("none"))
		{
			ret =Long.parseLong(string+"001");			//转换为Long型
			retDH=Long.toString(ret);
		}
		else
		{
			ret=Long.parseLong(strDH)+1;				//相应最大的编号+1
			retDH=Long.toString(ret);
			System.out.println("返回的结果是:   " + retDH);
		}
		return retDH;
	}
 	/**
	* 函数名:getNotFY
	* 编写者:郭军,田文涛
	* 功  能:得到还没有发药的处方号!
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/   
	public void getNotFY()
	{
				//得到还没有发药的处方单号的条数
		int countDisFY=DB.disFY();
		try
		{
				//读出第一条记录!
			cmbCFDH.add(DB.rstCF.getString("CFDH"));
				//因为有next()语句,所以先打印出第一条记录
			System.out.println(DB.rstCF.getString("CFDH"));
				//读出其它项的记录!
			while(DB.rstCF.next())
			{
				//查询出未发处方单号并加入到处方单号中
				cmbCFDH.add(DB.rstCF.getString("CFDH"));
				System.out.println(DB.rstCF.getString("CFDH"));
			}
				//将第0条加入
			cmbCFDH.select(0);
		}
		catch(Exception eFY)
		{
			System.err.println(eFY.getMessage());
		}
	}
 	 /**
	* 函数名:insertBRCF
	* 编写者:郭军,田文涛
	* 功  能:插入病人的详细处方
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/   
	public void insertBRCF()
	{
		String[] lstBRCF=new String[8];
		lstBRCF[0]=cmbCFDH.getText();
		lstBRCF[1]=txtBRXM.getText();
		lstBRCF[2]=txtBRXB.getText();
		lstBRCF[3]=txtBRNL.getText();
		lstBRCF[4]=txtKDKS.getText();
		lstBRCF[5]=txtCFYS.getText();
	    lstBRCF[6]=txtCFRQ.getText();
		lstBRCF[7]=cmbFYYF.getText();
		DB.insertBRCF(lstBRCF);		//调用函数插入处方单号
    }
 	/**
	* 函数名:getYPXX(得到药品信息)
	* 编写者:郭军,田文涛
	* 功  能:得到还没有发药的处方号!
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/ 
	public void getYPXX(String YPNM)
	{
		float fCharge = 0;			//设置一种药一定数量后的返回价格
		float fDJ=0;	  			//中间变量
		int iSL=0;
		String strDJ=null;			//中间转换变量
		String strSL=null;
		String[] lstMX=new String[9];

		int iYP=DB.getYPXX(YPNM);	//通过药品内码查询出相对应的药品信息
		if(iYP == -1)				//返回值-1:SQL连接出错;0:没有所查询的药品
		{
			showMessage("查询错误","SQL连接出错!",SWT.ICON_ERROR);
		}
		if(iYP==0)
		{
			showMessage("查询错误","不能得到相应的药品信息,请重新输入!",SWT.ICON_ERROR);
		}
		else						//查询成功则取出相应的值
		{
			try
			{
			cmbYM.setText(DB.rstCF.getString("YM"));			//取出药名
			txtDJ.setText(DB.rstCF.getString("YPDJ"));			//取出药品单价
			cmbJJDW.setText(DB.rstCF.getString("JJDW"));		//取出计价单位
			//txtYFKC.setText(DB.rstCF.getString(""));
			txtJX.setText(DB.rstCF.getString("JX"));			//取出剂型
			txtGG.setText(DB.rstCF.getString("GG"));			//取出规格
			txtCD.setText(DB.rstCF.getString("CD"));			//取出产地
			txtCJ.setText(DB.rstCF.getString("CJ"));			//取出厂家
			txtBZ.setText(DB.rstCF.getString("BZ"));			//取出厂家
			}

⌨️ 快捷键说明

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