引用數(shù)據(jù)源
在引用數(shù)據(jù)源列時,使用以下格式:
[DataSource.Column]
點(diǎn)擊復(fù)制
例如,源名稱與列名稱之間用句號隔開:
[Employees.FirstName]
點(diǎn)擊復(fù)制
如果使用關(guān)系引用數(shù)據(jù)源,源名稱可以是復(fù)合的。更多詳情,請參閱 "數(shù)據(jù) "部分。例如,可以這樣引用相關(guān)數(shù)據(jù)源列:
[Products.Categories.CategoryName]
點(diǎn)擊復(fù)制
讓我們看看下面這個在表達(dá)式中使用列的示例:
[Employees.FirstName] + " " + [Employees.LastName]
點(diǎn)擊復(fù)制
這里需要注意的是:每一列都有明確的數(shù)據(jù)類型,該類型在 "DataType(數(shù)據(jù)類型)"屬性中設(shè)置(如果事先在 "Data(數(shù)據(jù))"窗口中選擇了數(shù)據(jù)列,則可以在 "Properties(屬性)"窗口中看到)。表達(dá)式中如何使用列取決于列的類型。例如,在上述示例中,名和姓這兩列都是字符串類型,因此可以這樣使用。在下面的示例中,我們將嘗試使用數(shù)值類型的 "Employees.Age "列,這將導(dǎo)致錯誤:
[Employees.FirstName] + " " + [Employees.Age]
點(diǎn)擊復(fù)制
出現(xiàn)錯誤的原因是,字符串和數(shù)字不能混用。為此,您需要將數(shù)字轉(zhuǎn)換為字符串:
[Employees.FirstName] + " " + [Employees.Age].ToString()
點(diǎn)擊復(fù)制
在本例中,我們把 "Employees.Age "列當(dāng)作一個整數(shù)變量來引用。事實(shí)也是如此。我們知道,所有表達(dá)式都是經(jīng)過編譯的。從編譯器的角度來看,所有非標(biāo)準(zhǔn)的東西(如引用數(shù)據(jù)列)都會被轉(zhuǎn)換成另一種類型,而這種類型是編譯器可以理解的。因此,最后一個表達(dá)式將被轉(zhuǎn)換成下面的形式:
(string)(Report.GetColumnValue("Employees.FirstName")) + " " + (int)(Report.GetColumnValue("Employees.Age")).ToString()
點(diǎn)擊復(fù)制
[Employees.FirstName] --> (string)(Report.GetColumnValue("Employees.FirstName"))
[Employees.Age] --> (int)(Report.GetColumnValue("Employees.Age"))
也就是說,我們可以在表達(dá)式中將數(shù)據(jù)列當(dāng)作具有確定類型的變量來使用。例如,下面的表達(dá)式將返回雇員姓名的第一個符號:
[Employees.FirstName].Substring(0, 1)
點(diǎn)擊復(fù)制
如需下載fastreport最新試用版,請點(diǎn)產(chǎn)品名跳轉(zhuǎn)產(chǎn)品下載頁>>