vmeln
vmeln

Reputation: 1309

Getting value of database field in Crystal Reports

Currently I'm working on legacy application, that uses crystal report engine. I have to get value of database fields programmatically. As I've assumed, I need proper event for getting next code to work:

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

But the value is always empty in DownloadStarted/Finished event handlers. What I'm doing wrong and is it at least possible?

Upvotes: 1

Views: 3488

Answers (2)

Hamidreza
Hamidreza

Reputation: 3128

if you just need your tables values, you can use my last answer, but if you need value of database fields in crystal report, i mean something like formula field ,this code can help you:

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);

Upvotes: 2

Hamidreza
Hamidreza

Reputation: 3128

I think that if you want to get value of your table fields in program the best way is that you get the field name from report and then connect to your table directly and use report field names as the table columns name i do it in c# i hope it can help you in vb6 too:

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

and then add your database to your program and use names like this:

DataTable dt = new DataTable();
string[] value = dt.Columns[names[1]];

Upvotes: 2

Related Questions