public ColWhereSetPnl(final CalcColumnDialog calcColumnDialog) {
    this.calcColumnDialog = calcColumnDialog;

    // 数据源组合框
    dataSourceCbx = new MyFComboBox("数据源:", calcColumnDialog.getQuerySource());
    ((JComboBox) dataSourceCbx.getComponent(1)).addItemListener(new SelectItemListener());

    // 字段名
    FLabel fieldNameLbl = new FLabel();
    fieldNameLbl.setTitle("字段名:");
    // 升降序选择
    FLabel operateLbl = new FLabel();
    operateLbl.setText("操作:");
    // 条件值
    FLabel whereValueLbl = new FLabel();
    whereValueLbl.setText("值:");

    // 字段名称组合框
    cbxFieldName = new FComboBox();
    cbxFieldName.setTitleVisible(false);
    ((JComboBox) cbxFieldName.getComponent(1))
        .addItemListener(
            new ItemListener() {

              public void itemStateChanged(ItemEvent arg0) {
                if (cbxFieldName.getValue() == null) {
                  return;
                }

                String sFieldTyp = getFieldType();
                // 判断字段类型,如果是数值型包含和不包含不显示
                if (DefinePub.checkCharVal(sFieldTyp)) {
                  cbxCompare.setRefModel(CompareType.COMPARE_TYPE);
                } else {
                  cbxCompare.setRefModel(CompareType.COMPARE_TYPE_NUM);
                }
                cbxCompare.setSelectedIndex(-1);
                // 得到基础信息选择列的值,根据报表id和ename值
                if (!Common.isNullStr(dataSourceCbx.getValue().toString())
                    && !Common.isNullStr(cbxFieldName.getValue().toString())) {
                  String sFeildEname = cbxFieldName.getValue().toString();
                  sFeildEname = sFeildEname.substring(0, sFeildEname.indexOf(":"));

                  List lstInputValue = null;
                  try {
                    lstInputValue =
                        DefineReportI.getMethod()
                            .getBasSelectInputValue(
                                dataSourceCbx.getValue().toString(), sFeildEname);
                  } catch (Exception e) {
                    e.printStackTrace();
                    new MessageBox(
                            calcColumnDialog,
                            "错误信息:" + e.getMessage(),
                            MessageBox.ERROR,
                            MessageBox.BUTTON_OK)
                        .show();
                  }
                  cbxWhereValue.setEditable(true);
                  addRefValue(cbxWhereValue, lstInputValue, IDefineReport.CODE, IDefineReport.NAME);
                  cbxWhereValue.setSelectedIndex(-1);
                } else {
                  cbxWhereValue.removeAllItems();
                }
              }
            });

    // 比较类型
    cbxCompare = new FComboBox();
    cbxCompare.setTitleVisible(false);
    cbxCompare.setRefModel(CompareType.COMPARE_TYPE);
    cbxCompare.setSelectedIndex(-1);

    // 条件值
    // txtWhereValue = new FTextField(false);
    cbxWhereValue = new FComboBox();
    ((JComboBox) cbxWhereValue.getEditor()).setEditable(true);
    cbxWhereValue.setTitleVisible(false);

    // 定义条件面板
    FPanel orderPnl = new FPanel();
    orderPnl.setLayout(new RowPreferedLayout(5));

    FLabel flblEmpty = new FLabel();
    // 数据来源
    orderPnl.addControl(dataSourceCbx, new TableConstraints(1, 2, false, true));
    orderPnl.addControl(flblEmpty, new TableConstraints(1, 3, false, true));
    // Label
    orderPnl.addControl(fieldNameLbl, new TableConstraints(1, 2, false, true));
    orderPnl.addControl(operateLbl, new TableConstraints(1, 1, false, true));
    orderPnl.addControl(whereValueLbl, new TableConstraints(1, 2, false, true));
    // 编码框
    orderPnl.addControl(cbxFieldName, new TableConstraints(1, 2, false, true));
    orderPnl.addControl(cbxCompare, new TableConstraints(1, 1, false, true));
    orderPnl.add(cbxWhereValue, new TableConstraints(1, 2, false, true));

    // 定义条件类型
    frdoType = new FRadioGroup("", FRadioGroup.HORIZON);
    frdoType.setRefModel(JoinBefore.JOIN_BEFORE);
    frdoType.setTitleVisible(false);
    frdoType.setValue("and");

    // 增加、修改按钮
    FButton addBtn = new FButton("addBtn", "增加");
    addBtn.addActionListener(new AddActionListener());

    FButton modifyBtn = new FButton("addBtn", "修改");
    modifyBtn.addActionListener(new ModifyActionListener());
    // FFlowLayoutPanel editBtnPnl = new FFlowLayoutPanel();
    FPanel editBtnPnl = new FPanel();
    RowPreferedLayout rEditBtnLay = new RowPreferedLayout(2);
    rEditBtnLay.setColumnGap(1);
    rEditBtnLay.setColumnWidth(70);
    editBtnPnl.setLayout(rEditBtnLay);
    // editBtnPnl.setAlignment(FlowLayout.RIGHT);
    editBtnPnl.addControl(addBtn, new TableConstraints(1, 1, false, false));
    editBtnPnl.addControl(modifyBtn, new TableConstraints(1, 1, false, false));

    FLabel flbEmpty = new FLabel();
    FPanel fpnlEdit = new FPanel();
    RowPreferedLayout rEditLay = new RowPreferedLayout(4);
    rEditLay.setColumnWidth(140);
    fpnlEdit.setLayout(rEditLay);

    fpnlEdit.addControl(flbEmpty, new TableConstraints(1, 1, true, true));
    fpnlEdit.addControl(frdoType, new TableConstraints(1, 2, true, true));
    fpnlEdit.addControl(editBtnPnl, new TableConstraints(1, 1, true, false));

    // 定义条件树
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("过滤条件");
    DefaultTreeModel treeModel = new DefaultTreeModel(root);
    treWhere = new MyTree(treeModel);
    // 变换树节点,刷新显示框信息事件
    treWhere.addTreeSelectionListener(new WhereTreeSelectionListener());
    JScrollPane fpnltalRela = new JScrollPane(treWhere);

    // 过滤条件按钮面板
    FPanel btnPnl = new BtnPnl();

    JTabbedPane pnlWhere = new JTabbedPane();
    RowPreferedLayout rLay = new RowPreferedLayout(2);
    FPanel pnlCol = new FPanel();
    pnlCol.setLayout(rLay);
    rLay.setColumnWidth(70);
    rLay.setColumnGap(1);

    pnlCol.addControl(orderPnl, new TableConstraints(3, 2, false, true));
    pnlCol.addControl(fpnlEdit, new TableConstraints(1, 2, false, true));
    pnlCol.add(fpnltalRela, new TableConstraints(1, 1, true, true));
    pnlCol.addControl(btnPnl, new TableConstraints(1, 1, true, false));

    txtSql = new FTextArea();
    txtSql.setTitleVisible(false);
    txtSql.setEditable(false);

    FScrollPane spnlSql = new FScrollPane(txtSql);

    pnlWhere.add("列条件信息", pnlCol);
    pnlWhere.add("分栏设置条件", spnlSql);
    this.setLayout(new BorderLayout());
    this.add(pnlWhere, BorderLayout.CENTER);
  }
    public BtnPnl() {
      // 删除排序条件按钮
      FButton delBtn = new FButton("delBtn", "删除");
      delBtn.addActionListener(new DelActionListener());
      // 上移按钮
      FButton upBtn = new FButton("upBtn", "上移");
      upBtn.addActionListener(new UpActionListener());
      // 下移按钮
      FButton downBtn = new FButton("downBtn", "下移");
      downBtn.addActionListener(new DownActionListener());

      // 左括号按钮
      FButton lParenthesisBtn = new FButton("lParenthesisBtn", "左括号");
      lParenthesisBtn.addActionListener(new LParenthesisActionListener());
      // 右括号按钮
      FButton rParenthesisBtn = new FButton("rParenthesisBtn", "右括号");
      rParenthesisBtn.addActionListener(new RParenthesisActionListener());
      // 删括号按钮
      FButton delParenthesisBtn = new FButton("delParenthesisBtn", "删括号");
      delParenthesisBtn.addActionListener(new DelParenthesisActionListener());

      this.setLayout(new RowPreferedLayout(1));
      this.addControl(delBtn, new TableConstraints(1, 1, false, true));
      this.addControl(upBtn, new TableConstraints(1, 1, false, true));
      this.addControl(downBtn, new TableConstraints(1, 1, false, true));
      this.addControl(lParenthesisBtn, new TableConstraints(1, 1, false, true));
      this.addControl(rParenthesisBtn, new TableConstraints(1, 1, false, true));
      this.addControl(delParenthesisBtn, new TableConstraints(1, 1, false, true));
    }