數(shù)據(jù)庫字段一般都是英文,不能直接展示給用戶,而應該顯示中文含義給用戶。需要漢化兩部分,一是設計用的字段漢化,二是表格區(qū)顯示內容的漢化。
1、 字段漢化
設計工具(PivotGridToolBoxEh1)中顯示字段中文含義,是通過數(shù)據(jù)集字段的DisplayLabel屬性實現(xiàn),只需要正確設置DisplayLabel即可。
一種方法運行期動態(tài)指定,是把字段名和中文含義保存在數(shù)據(jù)庫中,需要的時候動態(tài)從數(shù)據(jù)庫取。另一種方法是設計期靜態(tài)指定,是在設計期設置每個字段的中文含義。我的程序中采用的是第一種方法。先創(chuàng)建數(shù)據(jù)表格(DBGridEh),并設置每一列的標題。在數(shù)據(jù)打開之后按表格的標題設置數(shù)據(jù)集字段的DisplayLable。for I := 0 to DBGridEh1.FieldCount - 1 dobegin DBGridEh1.Columns[i].Field.DisplayLabel := DBGridEh1.Columns[i].Title.Caption;end;2、 表格漢化
顯示統(tǒng)計結果的表格PivotGridEh中老是顯示字段名,這樣對普通用戶使用很不方便。通過下面事件實現(xiàn)英文字段的漢化,顯示中文含義,做如下修改即可實現(xiàn)。
PRocedure TCustomPivotGridEh.BuildGridArrayRowsMeasures;for v := 0 to ActualValueFields.Count-1 do begin PivotCel := PivotGridArray[ip + ActualRowFlds.Count + v, ActualColFlds.Count + 1]; PivotCel.CelType := sctValuesColCaptionEh; PivotCel.Value := //ActualValueFields[v].PivotFieldName; //下面這句話,可以實現(xiàn)表格中字段名的中文漢化 PivotCel.Value := PivotDataSource.PivotFields.FindFieldByName(ActualValueFields[v].PivotFieldName).DisplayName;end;
備注:
這樣修改后,用控件本身的打印功能,也可以正常顯示漢化后的字段(按現(xiàn)在這樣修修改之前也找到的別的方法,雖然可以解決表格上顯示的問題,但是打印時還是英文,進而才找到現(xiàn)在的方案)。
打印代碼如下:
procedure TQueryFrm.BtnPrintClick(Sender: TObject);begin inherited; PivotGridEh1.PrintService.PageHeader.CenterText := self.Caption + '分組統(tǒng)計'; PivotGridEh1.PrintService.Preview;end;
新聞熱點
疑難解答