gwt 前端报表打印组件

package com.appdev.bsf.common.client.report;

import com.appdev.bsf.common.client.resources.CommonResourcesGenerator;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.FormItemIcon;
import com.smartgwt.client.widgets.form.fields.SelectItem;
import com.smartgwt.client.widgets.form.fields.events.FormItemClickHandler;
import com.smartgwt.client.widgets.layout.HLayout;

/**
 *
 *  
 * @category 例子(事件里面相应代码)<br>
 *           DynamicForm form = event.getForm(); <br>
 *           String type = form.getValue("type").toString();//获取要导出报表的类型<br>
 *           OperatorDataSource dataSource
 *           =operatorListGrid.getOperatorDataSource();
 *           //获取当前对应显示ListGrid的DataSource<br>
 *           String criterias = dataSource.getCriterias().toString()
 *           .replace("{", "").replace("}", ""); //获取选择数据的条件<br>
 *           map,type,clsUrl这三个参数必须传 <br>
 *           Window.open(GWT.getModuleBaseURL() + "ReportServlet?map=" +
 *           criterias + "&type=" + type + "&clsUrl=" +
 *           Operator.class.getName(), "report", "sdfs");<br>
 *           //传参数的名字,Operator.class.getName()表示类路径
 */
public class GwtJasperReport extends HLayout {
    public GwtJasperReport(FormItemClickHandler formItemClickHandler) {
        setHeight(22);
        setWidth(180);

        ItemButton itemBtn = new ItemButton(formItemClickHandler);

        final DynamicForm df = new DynamicForm();
        df.setHeight(22);
        df.setWidth100();
        SelectItem item = new SelectItem("type", "报表类型");
        item.setWidth(125);
        item.setValueMap("PDF", "HTML", "Excel", "RTF");
        item.setDefaultValue("Excel");
        item.setIcons(itemBtn);
        df.setItems(item);

        addMember(df);
    }

    private class ItemButton extends FormItemIcon {
        public ItemButton(FormItemClickHandler clickHandler) {
            setSrc(CommonResourcesGenerator.generatorReportResource().export().getSafeUri().asString());
            setWidth(40);
            setHeight(22);
            setAttribute("hspace", 0);
            addFormItemClickHandler(clickHandler);
        }
    }
}

 

 

前端应用:

        GwtJasperReport report = new GwtJasperReport(new FormItemClickHandler() {

            @Override
            public void onFormItemClick(FormItemIconClickEvent event) {
                DynamicForm form = event.getForm();
                String type = form.getValue("type").toString();
                OperatorDataSource dataSource = operatorListGrid.getOperatorDataSource();
                String criterias = dataSource.getCriterias().toString().replace("{", "").replace("}", "");
                Window.open(GWT.getModuleBaseURL() + "ReportServlet?map=" + criterias + "&type=" + type
                        + "&clsUrl=" + Operator.class.getName(), "report", "sdfs");
            }
        });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值