1

目前我正在开发使用水晶报表引擎的遗留应用程序。我必须以编程方式获取数据库字段的值。正如我所假设的,我需要适当的事件来让下一个代码工作:

Report.Database.Tables(1).Fields(1).Value

但是在事件处理程序value中总是空的。DownloadStarted/Finished我做错了什么,至少有可能吗?

4

2 回答 2

1

我认为,如果您想在程序中获取表字段的值,最好的方法是从报告中获取字段名称,然后直接连接到您的表并使用报告字段名称作为表列名称我在 c# i 中执行此操作希望它也可以在 vb6 中对您有所帮助:

string name = report2.Database.Tables[1].Fields[1].Name;
string[]  names = name.Split('.');

然后将您的数据库添加到您的程序并使用如下名称:

DataTable dt = new DataTable();
string[] value = dt.Columns[names[1]];
于 2013-10-20T13:47:49.280 回答
1

如果你只需要你的表格值,你可以使用我的最后一个答案,但如果你需要水晶报表中数据库字段的值,我的意思是公式字段之类的,这段代码可以帮助你:

CRAXDRT.FormulaFieldDefinitions definitions = report2.FormulaFields;
string formulaText = "IF " + report2.Database.Tables[1].Fields[3].Name 
    + " > 10 THEN" + report2.Database.Tables[1].Fields[2].Name;
definitions.Add("Test", formulaText);
report2.Sections[1].AddFieldObject(definitions[1], 0, 0);
于 2013-10-22T06:01:36.210 回答