我搜索了很多,發現RAS報告的工作解決方案,但沒有爲水晶。無論如何,如果有人最終在這裏尋找答案,這裏的工作。
無論何時必須連接報表上的多個字段,請勿使用TextObject
。請使用Formula
。公式字段不會投注部分ReportObjects
,而是ReportDocument.DataDefinition.FormulaFields
的一部分,Kind
是CrystalDecisions.Shared.FieldKind.FormulaField
,您將要檢查ValueType
,因此它是CrystalDecisions.Shared.FieldValueType.StringField
。
然後你可以操縱它們。
我確實需要,對報告的翻譯住所以這裏的公式解析方法:
try
{
var sFormula = formula.Text;
string pattern = "\"[\\w ]*\"";
Regex r = new Regex(pattern);
MatchCollection mc = r.Matches(sFormula);
foreach (Match m in mc)
{
var sValue =m.Value;
var sParsedValue = sValue.Substring(1, sValue.Length - 2);
if (sParsedValue.StartsWith("s"))
{
var stest = "\"" + CApplicationData.TranslateStringValue(sParsedValue) + "\"";
sFormula = sFormula.Replace(sValue, stest);
}
}
formula.Text = sFormula;
}
catch{}
這上面,你會發現我使用「S」作爲關鍵要知道這可能是一個值是翻譯,所以它不是強制性的。使用上述這個公式與西班牙語:
"sPage" + " " + totext(PageNumber) + " " + "sOf" + " " + totext(TotalPageCount)
將修改公式:的
"Página" + " " + totext(PageNumber) + " " + "de" + " " + totext(TotalPageCount)
給輸出:
Página 1 de 4
曾試圖這一點,但當實際的真實數據顯示那樣的時候就會出現問無論如何,我被要求修改的價值,即使在那些textobject,但只要你改變文本字段不再鏈接,並且當你生成報告任何文本對象與文本里面像:'「的值是:{data.quantity}」'如果您修改,則將「{data.quantity}」顯示爲文本 – Franck