当前位置:编程学习 > C#/ASP.NET >>

急!急!关于水晶报表和数据集的一点问题,希望大家指点一二

C#水晶报表怎么用啊具体?
我们这个项目里有十几个窗体,每个窗体里都有一个datagridview,然后里面的数据都需要用报表打印出来,通过点击“打印”按钮实现打印功能,
我不知道具体怎么做,需要每个窗体再加一个窗体来放水晶报表视图控件吗?是不是要做十几个水晶报表?还有那个数据集怎么弄啊?
我感觉很迷茫,希望大家指点一二 --------------------编程问答-------------------- 用 switch 判断加载
如:

 switch (code)
            {
               case "":
                    rptDoc.Load(url);
                    BindRptData();
                    break;
                case "":
                     rptDoc.Load(url);
                    BindRptData();
                    break;
             } --------------------编程问答-------------------- 仅仅只是为了打印嚒?若是如此不太需要水晶报表 --------------------编程问答-------------------- 我把查询结果显示在datagrid中,现在我要点击打印按钮 btnPrint, 把我查询的结果用水晶报表的形式显示出来以便打印,这个如何实现?在线等待!!

看到有类似的帖子,那个楼主说用数据集解决这一问题,具体怎么弄啊,求高手指点一二 --------------------编程问答-------------------- 直接用printDocument1_PrintPage
用swith 来控制哪个datatgridview的数据,然后for读取打印就行了。 --------------------编程问答-------------------- 具体怎么实现呢?那是不是就不能用水晶报表了?


求详细步骤和代码,我是纯小白 --------------------编程问答-------------------- 前台列表页面:

  <GridView ID="gvList" runat="server" DataKeyNames="bwaid" PageIndex="1"
            CssClass="gridview" Width="100%" AutoGenerateColumns="False" PageSize="16" RowDbClickUrl=""
            ShowHeader="True" ViewPageUrl="">
            <Columns>
                <asp:TemplateField HeaderText="打印材料名称" HeaderStyle-Width="90%">
                    <ItemTemplate>
                        <%# Eval("name") %>
                    </ItemTemplate>
                    <ItemStyle CssClass="dfGridViewTd"  />
                </asp:TemplateField>
                <asp:TemplateField HeaderText="打印">
                    <ItemTemplate>
                          <a href="javascript:void(0);" onclick="openPrint('<%# Eval("bwaid") %>','<%# Eval("code") %>')"> 打印</a>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </GridView>
        </td>
        </tr>
        </table>
        <script>
        var openPrint = function(bwaid,code) {
                openDialog("actionDialog", "打印材料", root + "Apps/TDFCJY/Print/PrintMaterial.aspx?bwaid=" + bwaid+"&code="+code, 1024, 900, true, 1);
            }
        </script>






报表绑定页:

 protected void Page_Load(object sender, EventArgs e)
        {
            LoadReportDocument(Request["bwaid"], Request["code"]);
        }
        private void LoadReportDocument(string bwaid, string code)
        {
            ReportDocument rptDoc = new ReportDocument();
            SetRpt(code,bwaid,ref rptDoc);
            
            cryViewerDYCL.ReportSource = rptDoc;

            cryViewerDYCL.RefreshReport();
        }

 private void SetRpt(string code,string bwaid, ref ReportDocument rptDoc)
        {
            switch (code)
            {
                case "00001":
                    rptDoc.Load(Server.MapPath("~/Apps/TDFCJY/CrystalRpt/补正资料通知书.rpt"));
                  DataTable dtJJCL = SjclmxBiz.findAll();
            dtJJCL.TableName = "Sjclmx"; //与数据专家中的数据库名称相同           
            rptDoc.SetDataSource(dtJJCL);
                    break;
}}





--------------------编程问答-------------------- 网上搜一下  DataGridView打印

有很多方案的,如:http://topic.csdn.net/u/20090918/22/1f963d5f-50e6-420b-ab1a-acc8ad68083f.html --------------------编程问答-------------------- 呵呵,不会吧,
http://download.csdn.net/detail/sgzhou12345/3723821
这个是我制作的视频教程 --------------------编程问答-------------------- 我是来随便接接份
--------------------编程问答-------------------- 额,6楼的是asp.net的啊,转换成VS2005的怎么弄 ?
--------------------编程问答--------------------
引用 10 楼 liulintingfeng 的回复:
额,6楼的是asp.net的啊,转换成VS2005的怎么弄 ?


vs2005?          是winform窗口程序吧?       基本是一样的用法。 --------------------编程问答-------------------- 别考虑水晶了,建议看看vs2010的RDLC报表 --------------------编程问答-------------------- http://blog.csdn.net/happy09li/article/details/6931959
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,