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