我正在使用crystal report并在我的windowsform应用程序中将数据集绑定到它。 我的数据集是从ms-access数据库获取数据,它的查询工作很酷。 我没有为我的数据库或数据集或任何其他东西设置任何登录信息,仍然在报告加载时请求登录。 在登录页面中,服务器名称是我的数据集的名称,所有其他字段都是空的。 ms-access 2016 - visual-studio 2015 - crystal report 13.0.14
我的代码
ReportDocument cryRpt = new ReportDocument();
cryRpt.Load("D:/c#/AttendanceApp/AttendanceApp\\CrystalReport_Work.rpt");
crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.Refresh();
我的查询
SELECT p.Personal_FingerId, p.Personal_Name, p.Personal_Family, w.Work_Date, Format(MIN(CDate(w.Work_Time)), 'hh:nn') AS Time_Start, Format(MAX(CDate(w.Work_Time)), 'hh:nn') AS Time_Finish
FROM (Table_Personal p INNER JOIN
Table_WorkUser w ON p.Personal_FingerId = w.Personal_FingerId)
GROUP BY p.Personal_Name, p.Personal_Family, p.Personal_FingerId, w.Work_Date
ORDER BY w.Work_Date
答案 0 :(得分:0)
我暂时无法处理水晶报告,但我非常确定您必须单击WinForm中的Crystal Report Viewer对象并将属性更改为不需要登录。另外,在引用文件路径时使用以下约定:@" C:\ directory \ word.txt"为你的cryRpt.Load(@" D:\ c#\ AttendanceApp \ AttendanceApp \ CrystalReport_Work.rpt")。
答案 1 :(得分:0)
请尝试以下示例,确保设置数据源。
private void Form1_Load(object sender, EventArgs e)
{
CustomerReport crystalReport = new CustomerReport();
Customers dsCustomers = GetData();
crystalReport.SetDataSource(dsCustomers);
this.crystalReportViewer1.ReportSource = crystalReport;
this.crystalReportViewer1.RefreshReport();
}
private Customers GetData()
{
string constr = @"Data Source=.\Sql2005;Initial Catalog=Northwind;Integrated Security = true";
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("SELECT TOP 20 * FROM Customers"))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (Customers dsCustomers = new Customers())
{
sda.Fill(dsCustomers, "DataTable1");
return dsCustomers;
}
}
}
}
}