private void addDataPanel() {
        int cid = MyFactory.getOwnerService().getIdByName4Query(jtfOwner.getText());
        Date f = null;
        String from = showDateFrom.getText();
        if (!from.equals("开始日期") && !"".equals(from)) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            try {
                f = sdf.parse(from);
            } catch (ParseException e) {
                log.error(e.getMessage());
            }
        }

        Date e = null;
        String end = showDateTo.getText();
        if (!end.equals("结束日期") && !"".equals(end)) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            try {
                e = sdf.parse(end);
            } catch (ParseException e1) {
                log.error(e1.getMessage());
            }
        }

        User user = MyFactory.getCurrentUser();
        int uid = -1;
        if (!MyFactory.getResourceService()
                .hasRight(MyFactory.getCurrentUser(), Resource.GET_OTHERS_DATA)) {
            uid = user.getId();
        }

        result = MyFactory.getInDetailService().getUnPaidOutDetail(cid, f, e, uid);
        String[] columnNames = new String[]{"货主", "货品", "日期", "应还款", "实际还款", "欠款"};
        MyPaidReportTableModel myPaidReportTableModel = new MyPaidReportTableModel(result, columnNames);
        JTable table = new JTable(myPaidReportTableModel);
        table.setAutoCreateRowSorter(true);
        TableColumnModel tableColumnModel = table.getColumnModel();
        MyTableCellRenderer renderer = new MyTableCellRenderer();
        for (int i = 0, length = tableColumnModel.getColumnCount(); i < length; i++) {
            TableColumn tableColumn = tableColumnModel.getColumn(i);
            tableColumn.setCellRenderer(renderer);
        }

        dataPanel = new JScrollPane(table);
        dataPanel.setViewportView(table);

        gridX = 0; // X1
        gridY = 1; // Y0
        gridWidth = 1; // 横占一个单元格
        gridHeight = 5; // 列占两个单元格
        weightX = 1.0; // 当窗口放大时，长度随之放大
        weightY = 1.0; // 当窗口放大时，高度随之放大
        anchor = GridBagConstraints.NORTH; // 当组件没有空间大时，使组件处在北部
        fill = GridBagConstraints.BOTH; // 当格子有剩余空间时，填充空间
        insert = new Insets(0, 0, 0, 10); // 组件彼此的间距
        iPadX = 0; // 组件内部填充空间，即给组件的最小宽度添加多大的空间
        iPadY = 0; // 组件内部填充空间，即给组件的最小高度添加多大的空间
        gbc = new GridBagConstraints(gridX, gridY, gridWidth, gridHeight, weightX, weightY, anchor,
                fill, insert, iPadX, iPadY);
        gbl.setConstraints(dataPanel, gbc);
        this.add(dataPanel);
    }