using gregn6Lib;
using System;
using System.Data;
using System.Windows.Forms;
namespace HL_FristAidPlatform_Print
{
///
/// GridppReport 的摘要说明。
///
public class GridppReportUtility
{
//public const string GetDatabaseConnectionString() = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\..\..\..\Data\Northwind.mdb";
//此函数用来注册Grid++Report,你必须在你的应用程序启动时调用此函数
//用你自己的序列号代替"AAAAAAA","AAAAAAA"是一个无效的序列号
public static void RegisterGridppReport()
{
GridppReport TempGridppReport = new GridppReport();
bool Succeeded = TempGridppReport.Register("AAAAAAA");
if ( !Succeeded )
System.Windows.Forms.MessageBox.Show("Register Grid++Report Failed, Grid++Report will run in trial mode.", "Register"
,System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Exclamation);
}
private struct MatchFieldPairType
{
public IGRField grField;
public int MatchColumnIndex;
}
///
/// 将 DataReader 的数据转储到 Grid++Report 的数据集中
///
///
///
public static void FillRecordToReport(IGridppReport Report, IDataReader dr)
{
MatchFieldPairType[] MatchFieldPairs = new MatchFieldPairType[Math.Min(Report.DetailGrid.Recordset.Fields.Count, dr.FieldCount)];
//根据字段名称与列名称进行匹配,建立DataReader字段与Grid++Report记录集的字段之间的对应关系
int MatchFieldCount = 0;
for (int i=0; i
/// 将 DataTable 的数据转储到 Grid++Report 的数据集中
///
///
///
public static void FillRecordToReport(IGridppReport Report, DataTable dt)
{
MatchFieldPairType[] MatchFieldPairs = new MatchFieldPairType[Math.Min(Report.DetailGrid.Recordset.Fields.Count, dt.Columns.Count)];
//根据字段名称与列名称进行匹配,建立DataReader字段与Grid++Report记录集的字段之间的对应关系
int MatchFieldCount = 0;
for (int i=0; i
/// 获取报表模板路径地址
///
///
public static string GetReportTemplatePath()
{
return GetSampleRootPath() + @"Reports\";
}
///
/// 获取报表数据源地址
///
///
public static string GetReportDataPath()
{
return GetSampleRootPath() + @"Data\";
}
///
/// 获取指定数据库
///
///
public static string GetReportDataPathFile()
{
return GetReportDataPath() + @"NorthWind.mdb";
}
///
/// 判断当前运行进程是不是64位程序
///
///
public static bool Is64bitProcess()
{
//IsWow64Process
//也可以直接用Environment.Is64BitProcess,不过需要DotNet4.0或以上版本。
return (IntPtr.Size == 8);
}
///
/// 获取数据库连接字符串
///
///
public static string GetDatabaseConnectionString()
{
//return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + GetReportDataPathFile();
//Grid++Report的64位程序通过OLE DB连接Access与32位程序使用完全不同的数据驱动程序,
//此数据驱动程序(AccessDatabaseEngine_X64.exe)没有跟随Windows系统自动安装,需要从
//微软官方网站下载并安装,
//下载地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=13255
//如果直接不能安装,要先将Ofiice卸载后再进行安装,驱动程序安装后,在重新安装Office。
return (Is64bitProcess()?
"Provider = Microsoft.ACE.OLEDB.12.0;"
: "Provider=Microsoft.Jet.OLEDB.4.0;")
+ "User ID=Admin;Data Source=" + GetReportDataPathFile();
} }
}