目前我正在开发使用水晶报表引擎的遗留应用程序。我必须以编程方式获取数据库字段的值。正如我所假设的,我需要适当的事件来让下一个代码工作:
Report.Database.Tables(1).Fields(1).Value
但是在事件处理程序value
中总是空的。DownloadStarted/Finished
我做错了什么,至少有可能吗?
目前我正在开发使用水晶报表引擎的遗留应用程序。我必须以编程方式获取数据库字段的值。正如我所假设的,我需要适当的事件来让下一个代码工作:
Report.Database.Tables(1).Fields(1).Value
但是在事件处理程序value
中总是空的。DownloadStarted/Finished
我做错了什么,至少有可能吗?
我认为,如果您想在程序中获取表字段的值,最好的方法是从报告中获取字段名称,然后直接连接到您的表并使用报告字段名称作为表列名称我在 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]];
如果你只需要你的表格值,你可以使用我的最后一个答案,但如果你需要水晶报表中数据库字段的值,我的意思是公式字段之类的,这段代码可以帮助你:
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);