设置表格每行的单元格的过滤条件都不同

来源:互联网 发布:自学java工作 知乎 编辑:程序博客网 时间:2024/06/11 09:53
    protected void kdtEntrys_editStopped(KDTEditEvent e) throws Exception    {    int rowIdx = e.getRowIndex();    int colIdx = e.getColIndex();    int editColIdx = kdtEntrys.getColumn("customer").getColumnIndex();    int voucherColIdx = kdtEntrys.getColumn("voucher").getColumnIndex();    int linkManColIdx = kdtEntrys.getColumn("linkMan").getColumnIndex();    if(colIdx==editColIdx)    {    CustomerInfo customerInfo = (CustomerInfo)kdtEntrys.getCell(rowIdx, colIdx).getValue();    if(customerInfo!=null)    {    //凭证号过滤    FilterInfo filter = new FilterInfo();    filter.getFilterItems().add(new FilterItemInfo("treeid.number", TransConstant.Bill_TYPE002, CompareType.EQUALS));    filter.getFilterItems().add(new FilterItemInfo("state", BillStorageEnum.ALREADY_USE_VALUE, CompareType.EQUALS));    filter.getFilterItems().add(new FilterItemInfo("customerId", customerInfo.getId().toString(), CompareType.EQUALS));    registerTableF7(kdtEntrys.getCell(rowIdx, voucherColIdx),"com.kingdee.eas.jc.deliver.consumption.app.BillStorageQuery",filter);        //联系人过滤    FilterInfo filter1 = new FilterInfo();    filter1.getFilterItems().add(new FilterItemInfo("customer.id", customerInfo.getId().toString(), CompareType.EQUALS));    registerTableF7(kdtEntrys.getCell(rowIdx, linkManColIdx),"com.kingdee.eas.jc.deliver.courseconduct.app.F7ContractPersonQuery",filter1);    }    }    }/** * 给单元格注册F7,并添加过滤条件 * @param cell * @param queryStr * @param filter */private void registerTableF7(ICell cell,String queryStr,FilterInfo filter){EntityViewInfo view = new EntityViewInfo();KDBizPromptBox bizPromptBox1 = new KDBizPromptBox();bizPromptBox1.setEditFormat("$number$");bizPromptBox1.setDisplayFormat("$name$");bizPromptBox1.setCommitFormat("$id$");bizPromptBox1.setQueryInfo(queryStr);view.setFilter(filter);bizPromptBox1.setEntityViewInfo(view);cell.setEditor(new KDTDefaultCellEditor(bizPromptBox1));}