急!急!关于水晶报表和数据集的一点问题,希望大家指点一二
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>
报表绑定页:
--------------------编程问答-------------------- 网上搜一下 DataGridView打印
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;
}}
有很多方案的,如:http://topic.csdn.net/u/20090918/22/1f963d5f-50e6-420b-ab1a-acc8ad68083f.html --------------------编程问答-------------------- 呵呵,不会吧,
http://download.csdn.net/detail/sgzhou12345/3723821
这个是我制作的视频教程 --------------------编程问答-------------------- 我是来随便接接份
--------------------编程问答-------------------- 额,6楼的是asp.net的啊,转换成VS2005的怎么弄 ?
--------------------编程问答--------------------
vs2005? 是winform窗口程序吧? 基本是一样的用法。 --------------------编程问答-------------------- 别考虑水晶了,建议看看vs2010的RDLC报表 --------------------编程问答-------------------- http://blog.csdn.net/happy09li/article/details/6931959
补充:.NET技术 , C#