前台代码如下:
    <form id="form1" runat="server">
    <ext:ResourceManager ID="ResourceManager1" runat="server">
    </ext:ResourceManager>
    <ext:Hidden ID="hd_StorageId" runat="server" />
    <ext:Hidden ID="hd_StorageName" runat="server" />
    <ext:Viewport ID="Viewport1" runat="server" Layout="border">
        <Items>
            <ext:Panel ID="Panel1" runat="server" Height="100" Region="North" Border="false"
                LabelWidth="60" Title="搜索条件" Layout="ColumnLayout" ButtonAlign="Center">
                <Items>
                    <ext:ColumnLayout ID="ColumnLayout1" runat="server">
                        <Columns>
                            <ext:LayoutColumn ColumnWidth="0.333">
                                <ext:Panel runat="server" Width="233" Border="false">
                                    <Items>
                                        <ext:HBoxLayout runat="server" Align="Middle" Pack="Center">
                                            <BoxItems>
                                                <ext:BoxItem>
                                                    <ext:DropDownField ID="DDLStorage" runat="server" FieldLabel="仓库" Editable="false"
                                                        DataIndex="StorageName" Width="230" EmptyText="该项不能为空">
                                                        <Component>
                                                            <ext:Panel ID="Panel3" runat="server" Height="180" Layout="column" AutoScroll="true"
                                                                Frame="true" Width="144">
                                                                <Items>
                                                                    <ext:TreePanel ID="TreePanelOrg1" runat="server" Border="false" Width="230" Height="130"
                                                                        Cls='cls' AutoScroll="true">
                                                                        <Listeners>
                                                                            <DblClick Handler="selectStorage(node) " />
                                                                        </Listeners>
                                                                    </ext:TreePanel>
                                                                </Items>
                                                                <BottomBar>
                                                                    <ext:StatusBar ID="StatusBar3" runat="server">
                                                                        <Items>
                                                                            <ext:Label ID="Label3" Text="双击选择仓库" LabelAlign="Left" LabelStyle="font-size:12px"
                                                                                Icon="Help" runat="server">
                                                                            </ext:Label>
                                                                        </Items>
                                                                    </ext:StatusBar>
                                                                </BottomBar>
                                                            </ext:Panel>
                                                        </Component>
                                                    </ext:DropDownField>
                                                </ext:BoxItem>
                                            </BoxItems>
                                        </ext:HBoxLayout>
                                    </Items>
                                </ext:Panel>
                            </ext:LayoutColumn>
                            <ext:LayoutColumn ColumnWidth="0.333">
                                <ext:Panel runat="server" Width="233" Border="false">
                                    <Items>
                                        <ext:HBoxLayout runat="server" Align="Middle" Pack="Center">
                                            <BoxItems>
                                                <ext:BoxItem>
                                                    <ext:DateField ID="txtStartTime" runat="server" Width="230" FieldLabel="开始日期">
                                                    </ext:DateField>
                                                </ext:BoxItem>
                                            </BoxItems>
                                        </ext:HBoxLayout>
                                    </Items>
                                </ext:Panel>
                            </ext:LayoutColumn>
                            <ext:LayoutColumn ColumnWidth="0.333">
                                <ext:Panel runat="server" Width="233" Border="false">
                                    <Items>
                                        <ext:HBoxLayout runat="server" Align="Middle" Pack="Center">
                                            <BoxItems>
                                                <ext:BoxItem>
                                                    <ext:DateField ID="txtEndTime" runat="server" Width="230" FieldLabel="结束日期">
                                                    </ext:DateField>
                                                </ext:BoxItem>
                                            </BoxItems>
                                        </ext:HBoxLayout>
                                    </Items>
                                </ext:Panel>
                            </ext:LayoutColumn>
                        </Columns>
                    </ext:ColumnLayout>
                </Items>
                <Buttons>
                    <ext:Button ID="BtnSave" runat="server" Icon="Accept" Text="查询">
                        <Listeners>
                            <Click Handler="search();" />
                        </Listeners>
                    </ext:Button>
                    <ext:Button ID="BtnCancel" runat="server" Icon="Cancel" Text="重置">
                        <Listeners>
                            <Click Handler="resetSearch();" />
                        </Listeners>
                    </ext:Button>
                </Buttons>
            </ext:Panel>
            <ext:Panel ID="Panel2" runat="server" Region="Center" Border="false" Title="结果"
                AutoHeight="true" >
                <Content>
                    <div style="width: 100%; height: 100%;">
                        <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt"
                            Width="100%" Height="100%" InteractiveDeviceInfos="(集合)" WaitMessageFont-Names="Verdana"
                            WaitMessageFont-Size="14pt" AsyncRendering="true">
                            <LocalReport ReportPath="OutInReport.rdlc">
                            </LocalReport>
                        </rsweb:ReportViewer>
                        <asp:ScriptManager ID="ScriptManager1" runat="server">
                        </asp:ScriptManager>
                    </div>
                </Content>
            </ext:Panel>
        </Items>
    </ext:Viewport>
    </form>
ReportViewer1的刷新是用的Ext的ajax的方式
 function search() {
            if (hd_StorageId.getValue() && txtStartTime.getValue() && txtEndTime.getValue()) {
                Ext.net.DirectMethods.searchReport(hd_StorageId.getValue(), txtStartTime.getValue(), txtEndTime.getValue(), {
                    success: function (result) {
                        resetSearch();
                    }
                    //                    failure: function (errorMsg) {
                    //                        Ext.net.Notification.show({
                    //                            iconCls: 'icon-information',
                    //                            pinEvent: 'click',
                    //                            html: errorMsg,
                    //                            title: '提示'
                    //                        });
                    //                    }
                });
            } else {
                Ext.net.Notification.show({
                    iconCls: 'icon-information',
                    pinEvent: 'click',
                    html: '请同时选择仓库、起始时间、结束时间',
                    title: '提示'
                });
            }
        }
Ext.netrdlc

解决方案 »

  1.   

    后台方法:
       [DirectMethod]
            public void searchReport(int storageId, DateTime starttime, DateTime endtime)
            {
                #region 公共数据
                DataTable commonTable = toCommonData();            #endregion
                //所有的现存产品库存记录
                IList list = ManagerFactory.productReserveSrv.AllProductReserveRec(storageId);
                DataTable listDT = toProdReseDT(list);
                //从当前时间到查询终止时间段内 包括当前时间,不包括查询终止时间
                IList listSec = ManagerFactory.productReserveSrv.OutInRec(storageId, endtime.AddDays(1), DateTime.Now);
                DataTable listSecDT = toOutInRecDetailDT(listSec);
                //查询时间段内的出入库情况,包括两头时间点
                IList listFir = ManagerFactory.productReserveSrv.OutInRec(storageId, starttime, endtime);
                DataTable listFirDT = toOutInRecDetailDT(listFir);            foreach (DataRow dr in listDT.Rows)
                {
                    //从当前时间到查询终止时间段内
                    foreach (DataRow drSec in listSecDT.Rows)
                    {
                        if (dr["ProductCode"].ToString() == drSec["ProductCode"].ToString() && dr["ProductBatch"].ToString() == drSec["ProductBatch"].ToString())//产品编号、批次相同
                        {
                            //objSec 4:卖 5:入
                            dr["EndQuantity"] = Convert.ToDecimal(dr["EndQuantity"]) + Convert.ToDecimal(drSec["RealQuantity"]) - Convert.ToDecimal(drSec["StorQuantity"]);
                        }
                    }
                    //时间段内的出入库情况
                    foreach (DataRow drFir in listFirDT.Rows)
                    {
                        if (dr["ProductCode"].ToString() == drFir["ProductCode"].ToString() && dr["ProductBatch"].ToString() == drFir["ProductBatch"].ToString())//产品编号、批次相同
                        {
                            dr["RealQuantity"] = drFir["RealQuantity"];
                            dr["StorQuantity"] = drFir["StorQuantity"];
                            //objSec 4:卖 5:入
                            dr["StartQuantity"] = Convert.ToDecimal(dr["EndQuantity"]) + Convert.ToDecimal(drFir["RealQuantity"]) - Convert.ToDecimal(drFir["StorQuantity"]);
                        }
                    }
                }            this.ReportViewer1.Reset();
                this.ReportViewer1.ProcessingMode = ProcessingMode.Local;
                string strPath = Server.MapPath("~/") + "/View/Msec/StorageStockReport/OutInReport.rdlc";
                this.ReportViewer1.LocalReport.ReportPath = strPath;            //设置导出文件名
                this.ReportViewer1.LocalReport.DisplayName = "出入库报表";            this.ReportViewer1.LocalReport.DataSources.Clear();
                this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", listDT));
                this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet2", commonTable));
                this.ReportViewer1.LocalReport.Refresh();
            }
    其中的listDT,commonTable都是有数据的,但是就是前台ReportViewer1的并没有刷新.而且奇怪的是,我把searchReport()放在page_load里面执行,便可以显示出数据。
    我想,原因是不是这个:我ajax方式取到数据,也重新绑定了数据,但是页面并没有回发,所以造成ReportViewer1没有显示出数据。如果是这个原因的话,各位有什么号办法能解决一下?
      

  2.   

    自从用了一遍Ext.Net以后
    对这个东西就敬而远之了
    虽然他看起来很厉害
      

  3.   

    奶奶的,我的ReportViewer在Ext.Panel内就是显示不出来!