更改 db table 中的整数字段以在 cxgrid 上显示为字符串

Change integer field in db table to display as string on cxgrid

我有一个 delphi 表单,上面有一个 cxgrid,该网格连接到一个 query/datasource。

如果数据库中的一个字段 table 是一个整数,我是否可以在 cxgrid 列上将整数显示为字符串?

e.g. 1 = January
     2 = February
     3 = March

等等。

谢谢,

是的,有这种可能。

接下来将 TcxEditRepository 组件放到您的网格中。双击它,您应该会看到空的 window 和 "Add..." 按钮。单击它,然后从可用组件列表中 select ImageComboBox.

现在,您需要编辑此组合的 Items 属性。

填满所有行后转到您的视图(TcxGridDBTableViewTcxGridTableView)并选择包含整数值的列。此列有一个名为 RepositoryItem 的 属性。如果你做的一切都正确,你应该能够 select 你之前创建的存储库项目 (ImageComboBox)。 selecting 后,您的列应立即显示月份名称而不是数字。

其他方法是覆盖 cxGridOnGetDisplayText 事件。你可以这样做:

procedure TSomeForm.GetDisplayText(Sender: TcxCustomGridTableItem;
  ARecord: TcxCustomGridRecord; var AText: string);
var
    nVal : Integer;
begin
    nVal := ARecord.Values[Sender.Index];    
    case nVal of
    1: AText := "January";
    //and so on
    end;
end;