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

📄 frmbrcf.java

📁 这是我们做的医院管理系统的一个子部分,也就是关于处方发药的!(SWT组件)
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
package myprojects.FrmBRCF;
import org.eclipse.swt.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.custom.*;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.text.*;
import java.lang.*;
import myprojects.DB.*;

public class FrmBRCF  //生成病人处方类
{
	private  static DbCon DB=new DbCon();//与数据库连接
	private  static Shell shell;
	
	private  Combo cmbCFDH;		//处方单号
	private  Text txtKDKS;		//开单科室
	private  Combo cmbFYYF;		//发药药房
	private  Text txtBRXM;		//病人姓名
	private  Text txtBRXB;		//病人性别
	private  Text txtBRNL;		//病人年龄
	private  Text txtCFYS;		//处方医师
	private  Text txtCFRQ;		//处方日期
	private  Text txtHJJE;		//处方合计金额
	private  Text txtFYR;		//发药人
	private  Text txtFYRQ;		//发药日期
	private  Table table;		//--------------生成表格
	private  Combo cmbYM;		//药名
	private  Text txtDJ;		//单价
	private  Combo cmbJJDW;		//计价单位
	private  Text txtYFKC;		//药方库存
	private  Text txtSL;		//药品数量
	private  Text txtJE;		//小合计金额
	private  Text txtJX;		//药品剂型
	private  Text txtGG;		//药品规格
	private  Text txtCD;		//产地
	private  Text txtCJ;		//厂家
	private  Text txtBZ;		//备注
	private  Group group;		//创建一个group
	
	private Button btnCF;		//处方状态Ratio
	private Button btnFY;		//发药状态Ratio
	private Button btnSure;		//确定按钮
	private Button btnDel;		//删除按钮
	private Button btnCancel;	//取消按钮
	private Button btnSave;		//保存按钮
	private Button btnReturn;	//返回按钮
	private Label lblDisplay;	//用于显示操作结果的标签
	
	public int countNO=1;		//table增加记录的计数器
	public int userType=0;		//设置用户类型 1:医生;0:发药工作人员
	
	public static void main(String arg[])
    {
		Display display=new Display();
		shell=new Shell(display);		
		FrmBRCF objBRCF=new FrmBRCF();	//对象实例化
	
		shell=new Shell(display);		//初始化shell
		shell.setSize(600,450);
		shell.setVisible(true);
		shell.setText("病人处方数据登录!");
		shell.open();
		//用于检查与数据库连接情况
        if(!DB.getConnection())
        {
            MessageBox msBox = new MessageBox(shell,SWT.OK|SWT.ICON_ERROR);
            msBox.setText("错误");
            msBox.setMessage("数据库连接出错");
            msBox.open();
            return;
        }
        
		objBRCF.creatText();	//创建文本
		objBRCF.creatTable();	//创建表格
		objBRCF.creatGroup();	//创建组
		objBRCF.initData();
		while(!objBRCF.shell.isDisposed())
		{
			if(!display.readAndDispatch())
			{
				display.sleep();
			}
		}
		display.dispose();
	}
 	 /**
	* 函数名:creatText
	* 编写者:郭军,田文涛
	* 功  能:创建文体框!!
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/ 	
	public void creatText()
	{
		final Label lblCFDH=new Label(shell,SWT.NONE);
		lblCFDH.setText("处方单号");					//处方单号标签
		lblCFDH.setBounds(60,20,50,15);					//应用其布局
		cmbCFDH=new Combo(shell,SWT.BORDER);			//处方单号组合框
		cmbCFDH.setBounds(110,15,115,20);				//应用其布局
		
		final Label lblKDKS=new Label(shell,SWT.NONE);	
		lblKDKS.setText("开单科室");					//开单科室
		lblKDKS.setBounds(240,20,50,15);
		txtKDKS=new Text(shell,SWT.BORDER);
		txtKDKS.setBounds(290,15,100,20);
		//txtKDKS.setText(DB.getNowDate());
		
		final Label lblFYYF=new Label(shell,SWT.None);
		lblFYYF.setText("发药药房");					//发药药房
		lblFYYF.setBounds(420,20,50,15);
		cmbFYYF=new Combo(shell,SWT.BORDER);
		cmbFYYF.setBounds(470,15,100,20);
		
		final Label lblBRXM=new Label(shell,SWT.None);
		lblBRXM.setText("病人姓名");					//病人姓名
		lblBRXM.setBounds(60,45,50,15);
		txtBRXM=new Text(shell,SWT.BORDER);
		txtBRXM.setBounds(110,40,100,20);
		
		final Label lblBRXB=new Label(shell,SWT.None);
		lblBRXB.setText("病人性别");					//病人性别
		lblBRXB.setBounds(240,45,50,15);
		txtBRXB=new Text(shell,SWT.BORDER);
		txtBRXB.setBounds(290,40,100,20);
				
		final Label lblBRNL=new Label(shell,SWT.None);
		lblBRNL.setText("病人年龄");					//病人年龄
		lblBRNL.setBounds(420,45,50,15);
		txtBRNL=new Text(shell,SWT.BORDER);
		txtBRNL.setBounds(470,40,100,20);
		
		final Label lblCFYS=new Label(shell,SWT.None);
		lblCFYS.setText("处方医师");					//处方医师
		lblCFYS.setBounds(60,70,50,15);
		txtCFYS=new Text(shell,SWT.BORDER);
		txtCFYS.setBounds(110,65,100,20);
		
		final Label lblCFRQ=new Label(shell,SWT.None);
		lblCFRQ.setText("处方日期");					//处方日期
		lblCFRQ.setBounds(240,70,50,15);
		txtCFRQ=new Text(shell,SWT.BORDER);
		txtCFRQ.setBounds(290,65,100,20);
		
		final Label lblHJJE=new Label(shell,SWT.None);
		lblHJJE.setText("合计金额");					//合计金额
		lblHJJE.setBounds(420,70,50,15);
		txtHJJE=new Text(shell,SWT.BORDER);
		txtHJJE.setBounds(470,65,100,20);
		
		final Label lblFYR=new Label(shell,SWT.None);
		lblFYR.setText("发药人");						//发药人
		lblFYR.setBounds(60,95,50,15);
		txtFYR=new Text(shell,SWT.BORDER);
		txtFYR.setBounds(110,90,100,20);
		
		final Label lblFYRQ=new Label(shell,SWT.None);
		lblFYRQ.setText("发药日期");					//发药日期
		lblFYRQ.setBounds(240,95,50,15);
	    txtFYRQ=new Text(shell,SWT.BORDER);
	    txtFYRQ.setBounds(290,90,100,20);
		//初始化用户登录的类型:CF/FY
		btnCF=new Button(shell,SWT.RADIO);
		btnCF.setSelection(true);
		btnCF.setText("处方");
		btnCF.setBounds(10,70,50,15);
		
		btnFY=new Button(shell,SWT.RADIO);
		btnFY.setText("发药");
		btnFY.setBounds(10,95,50,15);
			//为处方单号增加选择监听
		cmbCFDH.addSelectionListener(new SelectionAdapter(){
			public void widgetSelected(SelectionEvent select)
			{
					//得到处方单号
				String strCF=cmbCFDH.getText();
				System.out.println("查看的病人处方号是:"+strCF);
					//清空表格及文本框中上次存在的数据!
				delTextCF();	
				table.removeAll();
					//调用得到病人处方函数
				getBRCF(strCF);	
					//设置相应控件的可用性
				disEnable();
					//调用得到处方药品的详细信息.
				getYPMX(strCF);
					//加载登录者的个人信息userID/YYYF到相应的文本框中
				txtFYR.setText(DB.getUserInfo("UserID"));
				cmbFYYF.setText(DB.getUserInfo("YYYF"));
					//得到当前时间
				txtFYRQ.setText(DB.getNowDate());
			}
		});
			//为病人姓名增加监听
		txtBRXM.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent eveXM)
			{
				if(eveXM.keyCode==13)		//如果按下回车键
				{
						//判定病人姓名是否在0到之间
					if(txtBRXM.getText().length()==0|txtBRXM.getText().length()>10)
					{	
						txtBRXM.setText("");
						showMessage("错误","病人姓名为空或超出范围!",SWT.ICON_ERROR);
					}
					else
					{
						txtBRXB.setFocus();	//焦距在病人性别上
					}
				}
			}
		});
			//为病人性别增加监听
		txtBRXB.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent eveXB)
			{
				if(eveXB.keyCode==13)		//如果按下回车键
				{
						//性别长度大于2报错
					if(txtBRXB.getText().length()>2)
					{
						txtBRXB.setText("");
						showMessage("错误","病人性别不符合约束!",SWT.ICON_ERROR);
					}
					else
					{	//如果输入0是性别为男反之其它为女
						if(txtBRXB.getText().equals("0"))
						{
							txtBRXB.setText("男");
						}
						else
						{
							txtBRXB.setText("女");
						}
						txtBRNL.setFocus();
					}
				}
			}
		});
			//为病人年龄增加监听
		txtBRNL.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent eveNL)
			{
				if(eveNL.keyCode==13)		//如果按下回车键
				{
						//检查年龄的合法性
					if(txtBRNL.getText().length()>2)
					{	
						txtBRNL.setText("");
						showMessage("错误","病人年龄不符合约束!",SWT.ICON_ERROR);
					}
					else
					{	
						//用户如果输入C表示成人,自动填在年龄框中
						if(txtBRNL.getText().equals("c"));
						{
							txtBRNL.setText("成");
						}
						cmbYM.setFocus();
					}
				}
			}
		});
	}
 	 /**
	* 函数名:creatTable
	* 编写者:郭军,田文涛
	* 功  能:创建表格
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/ 
	public void creatTable()
	{
		table =new Table(shell,SWT.BORDER|SWT.SINGLE|SWT.FULL_SELECTION);
		table.setHeaderVisible(true);
		table.setLinesVisible(true);
		//table.setItemCount(0);               //there needs data
		table.setBounds(10,120,565,140);
		table.setMenu(creatMenu());
		
		final TableColumn col1=new TableColumn(table,SWT.LEFT);
		col1.setText("药名");
		col1.setWidth(150);
		TableColumn col2=new TableColumn(table,SWT.LEFT);
		col2.setText("单价");
		col2.setWidth(50);
		TableColumn col3=new TableColumn(table,SWT.LEFT);
		col3.setText("计价单位");
		col3.setWidth(60);
		TableColumn col4=new TableColumn(table,SWT.LEFT);
		col4.setText("药房库存");
		col4.setWidth(60);
		TableColumn col5=new TableColumn(table,SWT.LEFT);
		col5.setText("数量");
		col5.setWidth(40);
		TableColumn col6=new TableColumn(table,SWT.LEFT);
		col6.setText("金额");
		col6.setWidth(40);
		TableColumn col7=new TableColumn(table,SWT.LEFT);
		col7.setText("剂型");
		col7.setWidth(50);
		TableColumn col8=new TableColumn(table,SWT.LEFT);
		col8.setText("规格");
		col8.setWidth(55);
		TableColumn col9=new TableColumn(table,SWT.LEFT);
		col9.setText("产地");
		col9.setWidth(40);
		TableColumn col10=new TableColumn(table,SWT.LEFT);
		col10.setText("厂家");
		col10.setWidth(60);
		TableColumn col11=new TableColumn(table,SWT.LEFT);
		col11.setText("备注");
		col11.setWidth(100);
			//表格增加双击监听
		table.addSelectionListener(new SelectionAdapter(){
			public void widgetDefaultSelected(SelectionEvent e)
			{
				TableItem itemSelect=table.getSelection()[0];
			//调用itemSelect自定义函数,将表格内容显示出来	
				editEntry(itemSelect);
				System.out.println("查看的列数为: "+itemSelect);
			}
		});
	}
 	 /**
	* 函数名:creatGroup
	* 编写者:郭军,田文涛
	* 功  能:创建一个group
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/ 
	public void creatGroup()
	{
			//创建一个Group,
		group = new Group(shell, SWT.NONE);
		group.setBounds(10, 260, 565, 120);
			//初始化为不可见
		group.setVisible(false);
			//药名
		Label lblYM = new Label(group, SWT.NONE);
		lblYM.setText("药名");
		lblYM.setBounds(10, 20, 30, 15);
		cmbYM=new Combo(group,SWT.BORDER);
		cmbYM.setBounds(60,15,130,20);
			//单价
		final Label lblDJ=new Label(group,SWT.NONE);
		lblDJ.setText("单价");
		lblDJ.setBounds(210,20,30,15);
		txtDJ=new Text(group,SWT.BORDER);
		txtDJ.setBounds(250,15,110,20);
			//计价单位
		final Label lblJJDW=new Label(group,SWT.None);
		lblJJDW.setText("计价单位");
		lblJJDW.setBounds(390,20,50,15);
		cmbJJDW=new Combo(group,SWT.BORDER);
		cmbJJDW.setBounds(440,15,110,20);
			//药方库存
		final Label lblYFKC = new Label(group, SWT.NONE);
		lblYFKC.setText("药房库存");
		lblYFKC.setBounds(10, 45, 50, 15);
		txtYFKC=new Text(group,SWT.BORDER);
		txtYFKC.setBounds(60,40,110,20);
			//数量
		final Label lblSL=new Label(group,SWT.NONE);
		lblSL.setText("数量");
		lblSL.setBounds(210,45,30,15);
		txtSL=new Text(group,SWT.BORDER);
		txtSL.setBounds(250,40,110,20);
			//金额
		final Label lblJE=new Label(group,SWT.None);
		lblJE.setText("金额");
		lblJE.setBounds(390,45,50,15);
		txtJE=new Text(group,SWT.BORDER);
		txtJE.setBounds(440,40,110,20);
			//剂型
		final Label lblJX = new Label(group, SWT.NONE);
		lblJX.setText("剂型");
		lblJX.setBounds(10, 70, 30, 15);
		txtJX=new Text(group,SWT.BORDER);
		txtJX.setBounds(60,65,110,20);
			//规格
		final Label lblGG=new Label(group,SWT.NONE);
		lblGG.setText("规格");
		lblGG.setBounds(210,70,30,15);
		txtGG=new Text(group,SWT.BORDER);
		txtGG.setBounds(250,65,110,20);
			//产地
		final Label lblCD=new Label(group,SWT.None);
		lblCD.setText("产地");
		lblCD.setBounds(390,70,50,15);
		txtCD=new Text(group,SWT.BORDER);
		txtCD.setBounds(440,65,110,20);
			//厂家
		final Label lblCJ = new Label(group, SWT.NONE);
		lblCJ.setText("厂家");
		lblCJ.setBounds(10, 95, 30, 15);
		txtCJ=new Text(group,SWT.BORDER);
		txtCJ.setBounds(60,90,110,20);
			//备注
		final Label lblBZ=new Label(group,SWT.NONE);
		lblBZ.setText("备注");
		lblBZ.setBounds(210,95,30,15);
		txtBZ=new Text(group,SWT.BORDER);
		txtBZ.setBounds(250,90,110,20);
			//初始化用示显示操作结果的标签
		lblDisplay =new Label(shell,SWT.NONE);

⌨️ 快捷键说明

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