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

📄 datarecordpanel.java

📁 医院化验单系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		String r = "";
		r = String.valueOf(aNumber);
		// System.out.println("1:"+r);//测试
		if (length == 2) {// 这里只用到这两种情况,如果还有更长字符串加工的需要还可以加

			if (r.length() == 1) {
				r = "0" + r;
				// System.out.println("2:"+r);//测试
			}
		} else if (length == 3) {
			if (r.length() == 1) {
				r = "00" + r;
				// System.out.println("3:"+r);//测试
			} else {// 两位
				r = "0" + r;
				// System.out.println("4:"+r);//测试
			}
		}
		return r;
	}

	public void setDefaultDate() {
		// comboBoxYear.removeAllItems();
		// comboBoxMonth.removeAllItems();
		// comboBoxDay.removeAllItems();
		for (int y = YEAR_START; y <= YEAR_END; y++) {
			year.addItem(String.valueOf(y));
		}
		for (int m = 1; m <= 12; m++) {
			if (m < 10) {
				month.addItem("0" + String.valueOf(m));
			} else {
				month.addItem(String.valueOf(m));
			}

		}
		for (int d = 1; d <= 31; d++) {
			if (d < 10) {
				day.addItem("0" + String.valueOf(d));
			} else {
				day.addItem(String.valueOf(d));
			}
		}
	}

	public List<Object> getDayList(int year, int month) {// 找到某年某月对应的天情况
		Calendar start;
		Calendar end;
		List<Object> dayList = new LinkedList<Object>();

		start = Calendar.getInstance();
		start.set(year, month - 1, 1);// 设置当前时间

		end = Calendar.getInstance();
		end.set(year, month - 1, 1);
		end.add(Calendar.MONTH, 1);// 以月为单位增加1,但是天数增加的有所不同
		while (start.before(end)) {
			int temp = start.get(Calendar.DAY_OF_MONTH);
			if (temp < 10) {
				dayList.add("0" + String.valueOf(temp));
			} else {
				dayList.add(String.valueOf(temp));
			}
			start.add(Calendar.DAY_OF_MONTH, 1);
		}

		// for(int i=0;i<dayList.size();i++){//测试
		// System.out.print(dayList.get(i)+" ");
		// }
		System.out.println();
		return dayList;
	}

	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if (e.getSource() == proNameList) {
			int rows = 0;
			String proName = (String) proNameList.getSelectedItem();
			rows = ProServiceFactory.getService().countRows(proName);
			// System.out.println(rows);//测试
			table.editCellAt(-1, -1); // 这里也用,否则会出现焦点处数据的遗留
			tableModel.delAllRows();// 清空上次生成的表
			tableModel.insertRows(rows);
			tableModel.displayPr(proName);
			setNumber();
		} else if (e.getSource() == year || e.getSource() == month) {
			dayList.clear();
			dayList = getDayList(year.getSelectedIndex() + YEAR_START, month
					.getSelectedIndex() + 1);
			day.removeAllItems();
			for (Object item : dayList) {
				day.addItem(item);
			}
			setNumber();
		} else if (e.getSource() == day) {
			setNumber();// 只要是影响编号生成的事件都要加这个函数
		} else if (e.getSource() == recordData) {
			table.editCellAt(-1, -1);
			if (name.getText().equals("") || age.getText().equals("")
					|| sample.getText().equals("")
					|| purpose.getText().equals("")
					|| clinic.getText().equals("") || proNameList == null
					|| provider.getText().equals("")) {// 如果缺少必要信息,禁止录入
				JOptionPane.showMessageDialog(this, "缺少必填信息,禁止录入!");
			} else {// 各数据齐全,可以录入
			// System.out.println(number.getText());
				OneRecord or = new OneRecord();// 这部分可以考虑放到一个函数中
				or.setNumber(number.getText());
				or.setName(name.getText());
				or.setSex((String) sex.getSelectedItem());
				or.setAge(Integer.parseInt(age.getText()));
				or.setSample(sample.getText());
				or.setDoctor((String) doctor.getSelectedItem());
				or.setPurpose(purpose.getText());
				or.setClinic(clinic.getText());

				or.setProName((String) proNameList.getSelectedItem());
				Vector<Vector> pvList = new Vector<Vector>();
				for (int i = 0; i < tableDataList.size(); i++) {
					Vector<Object> data = new Vector<Object>();
					data.add(tableDataList.elementAt(i).elementAt(0));
					data.add(tableDataList.elementAt(i).elementAt(1));
					pvList.add(data);
				}
				or.setPVList(pvList);

				or.setProvider(provider.getText());
				or
						.setDate(year.getSelectedItem() + "-"
								+ month.getSelectedItem() + "-"
								+ day.getSelectedItem());// 存入数据库的日期为YYYYMMDD的形式
				// 向base_message,pv插数据
				try {
					OneRecordServiceFactory.getService().insertOneRecord(or);
					JOptionPane.showMessageDialog(this, "录入成功,请记好化验单编号!");
					setNumber();// 点击录入之后也要产生新编号
				} catch (RuntimeException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
					JOptionPane.showMessageDialog(this, "数据有误!");
				}
			}
		}

	}

	private class TableDataModal extends AbstractTableModel {// 内部类

		/**
		 * 
		 */
		private static final long serialVersionUID = 1L;

		/**
		 * 获得表格的总列数
		 */
		public int getColumnCount() {
			return COLUMN_NAMES.length;
		}

		/**
		 * 获得表格的总行数
		 */
		public int getRowCount() {
			return countRows;
		}

		/**
		 * 获得可编辑的单元格
		 * 
		 * @param row
		 *            行
		 * @param column
		 *            列
		 */
		public boolean isCellEditable(int row, int column) {
			return column == 1;// 设定只对第二列能编辑,但是其他列仍能被选定
		}

		/**
		 * 获得表格指定单元格的值
		 * 
		 * @param row
		 *            行
		 * @param column
		 *            列
		 */
		public Object getValueAt(int row, int column) {// 此函数用于把值显示出来,如果没有的话,即使有值也不会显示
			Object value = null;

			// 如果指定单元格非空
			if (!tableDataList.isEmpty()) {
				value = tableDataList.elementAt(row).elementAt(column);
			}

			return value;
		}

		/**
		 * 获得指定列的列名
		 * 
		 * @param column
		 *            指定的列
		 */
		public String getColumnName(int column) {
			return COLUMN_NAMES[column];
		}

		@SuppressWarnings("unchecked")
		public void setValueAt(Object value, int row, int column) {// 由此函数,输入的值不会被自动清空
			tableDataList.elementAt(row).setElementAt(value, column);
			fireTableDataChanged();
		}

		/**
		 * 生成制定行数的表,用于录入数据
		 */
		public void insertRows(int rows) {
			for (int i = 0; i < rows; i++) {
				Vector<Object> data = new Vector<Object>();
				data.add("");// 定默认值为空
				data.add("");
				data.add("");
				tableDataList.add(data);// 先出数据
				fireTableRowsInserted(i, i);// 再出表格
				countRows++;
			}
			table.revalidate();

		}

		/**
		 * 删除所有行
		 */
		public void delAllRows() {
			tableDataList.clear();
			fireTableRowsDeleted(0, countRows - 1);
			countRows = 0;
		}

		public void createDefaultRowsTable() {
			int rows;// 欲生成的行数
			if (allProNames != null) {
				rows = ProServiceFactory.getService().countRows(allProNames[0]);
				insertRows(rows);
				displayPr(allProNames[0]);
			}
		}

		@SuppressWarnings("unchecked")
		public void displayPr(String proName) {
			PR pr = new PR();
			pr = PRServiceFactory.getService().findPpByName(proName);
			Vector<Vector> dataList = pr.getDataList();
			for (int i = 0; i < dataList.size(); i++) {
				tableDataList.elementAt(i).set(0,
						dataList.elementAt(i).elementAt(0));
				tableDataList.elementAt(i).set(2,
						dataList.elementAt(i).elementAt(1));
			}
		}
	}
}

⌨️ 快捷键说明

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