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

解决方案 »

  1.   

    用 switch 判断加载
    如: switch (code)
                {
                   case "":
                        rptDoc.Load(url);
                        BindRptData();
                        break;
                    case "":
                         rptDoc.Load(url);
                        BindRptData();
                        break;
                 }
      

  2.   

    我把查询结果显示在datagrid中,现在我要点击打印按钮 btnPrint, 把我查询的结果用水晶报表的形式显示出来以便打印,这个如何实现?在线等待!!看到有类似的帖子,那个楼主说用数据集解决这一问题,具体怎么弄啊,求高手指点一二
      

  3.   

    直接用printDocument1_PrintPage
    用swith 来控制哪个datatgridview的数据,然后for读取打印就行了。
      

  4.   

    前台列表页面:  <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;
    }}
      

  5.   

    网上搜一下  DataGridView打印有很多方案的,如:http://topic.csdn.net/u/20090918/22/1f963d5f-50e6-420b-ab1a-acc8ad68083f.html
      

  6.   

    呵呵,不会吧,
    http://download.csdn.net/detail/sgzhou12345/3723821
    这个是我制作的视频教程
      

  7.   

    额,6楼的是asp.net的啊,转换成VS2005的怎么弄 ?
      

  8.   


    vs2005?          是winform窗口程序吧?       基本是一样的用法。
      

  9.   

    别考虑水晶了,建议看看vs2010的RDLC报表
      

  10.   

    http://blog.csdn.net/happy09li/article/details/6931959