📄 datarecordpanel.java
字号:
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 + -