2013-10-17 92 views
1

當前我正在使用使用水晶報表引擎的遺留應用程序。我必須以編程方式獲得數據庫字段的價值。正如我認爲,我需要得到下面的代碼工作正確的事件:在Crystal Reports中獲取數據庫字段的值

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

value總是在DownloadStarted/Finished事件處理程序空。我做錯了什麼,至少可能嗎?

+0

你是對的朋友,我嘗試它也和null.can你告訴我什麼是在你的心中,它返回? ?也許我可以幫助你 – Hamidreza

+0

真的不知道在這個時刻。我會嘗試一些查詢,幸運的是有可能得到它。但我想知道爲什麼有'價值'字段? – vmeln

回答

1

我認爲如果你想在程序中獲得你的表格字段的價值,最好的辦法是從報表中獲得字段名稱,然後直接連接到你的表格,並使用報表字段名稱作爲表格列名稱 i做它在C#中,我希望它可以幫助你在VB6太:

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

,然後添加你的數據庫,你的程序和使用的名字是這樣的:

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

唉,不能這樣做。我將在VB6中查看'DataTable'類,但在我看來,它會表現不同。 – vmeln

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

我有超過五十個報告,每個報告由來自數據庫的超過20個字段組成,它們有所不同。也有可能是'UNION's。手動添加公式有點尷尬,這不是正確的解決方案。 – vmeln

相關問題