请指点cxgird的LookupComboBox怎么用

freeriver 2017-02-22 03:45:12
cxGrid新增一列cxGrid1DBTableView1Column1,Properties设为LookupComboBox,KeyFieldName 设置为品名,ListFieldNames设置为品名,单价
问题1:如何边输入品名,边根据品名模糊查找,并根据选中的品名自动填单价。
问题2:如果同品名有两个单价,cxGrid1老是只能选中第一条单价,无法选择第二条单价。

谢谢
...全文
681 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyhoo163 2017-03-23
  • 打赏
  • 举报
回复

你的代码应该显示:“品名”、“单价”。这里仅提供显示样式。
lyhoo163 2017-03-23
  • 打赏
  • 举报
回复
一、控件的使用
1、Form中增加ADOConnection(连接数据库)、ADOQuery(选择下拉显示的内容表)、DataSource三个控件。
设置相应参数,就其数据库的表。
2、Form加入cxLookupComboBox控件

二、设置cxLookupComboBox属性设置
(1)“Properties”属性,点击“ListSource”,改成DataSource1。
(2)“ListFieldNames”表示要显示的列的名,如果显示多列,列名中间用“;”分隔。此处,你可以设置“品名”、“单价”二个以上字段;
(3)“KeyFieldNames” 表示要返回的结果列。
3、设置显示的属性
点“ListColumns”,出现下面的内容。

右边框里面的三行,对应“ListFieldNames”里面的列名。
(1)“Caption”是下拉时显示的列标题文字。
(2)“HeaderAlignment”表示列标题字对齐方式。
(3)“Width”表示列宽。
tx每个显示的列,都要逐个设置。
都设定好后,运行,就是下面的效果了。

当然,你的代码应该显示:“品名”、“单价”。这里仅提供显示样式。
wu_min 2017-03-22
  • 打赏
  • 举报
回复
也在简单研究一下cxGrid...
pzx521521 2017-03-07
  • 打赏
  • 举报
回复
看这个官方demo \DevExpress VCL\ExpressQuantumGrid\Demos\Delphi\GridModeDemo\GridModeDemo
procedure TGridModeDemoMainForm.tvDataControllerFilterGetValueList(
Sender: TcxFilterCriteria; AItemIndex: Integer;
AValueList: TcxDataFilterValueList);
var
AColumn: TcxGridDBColumn;
ADataSet: TDataSet;
AProperties: TcxLookupComboBoxProperties;
AValue: Variant;
AIsLookupColumn: Boolean;
begin
ADataSet := TcxGridDBTableView(Grid.FocusedView).DataController.DataSet;
AColumn := TcxGridDBTableView(Grid.FocusedView).Columns[AItemIndex];
AIsLookupColumn := AColumn.PropertiesClass = TcxLookupComboBoxProperties;
with GridModeDemoDataDM do
try
Screen.Cursor := crHourGlass;
qryHelper.SQL.Clear;
qryHelper.SQL.Add(
'Select DISTINCT ' + AColumn.DataBinding.FieldName + ' From ' +
GetTableNameByDataSet(ADataSet));
qryHelper.SQL.Add(
GetSQLCondition(TcxGridDBTableView(Grid.FocusedView), False));
qryHelper.Open;
qryHelper.First;
while not qryHelper.Eof do
begin
AValue := qryHelper.Fields[0].Value;
if AIsLookupColumn then
begin
AProperties := TcxLookupComboBoxProperties(AColumn.GetProperties);
ADataSet := AProperties.ListSource.DataSet;
AValue := ADataSet.Lookup(
AProperties.KeyFieldNames,AValue, AProperties.ListFieldNames);
end;
if VarIsNull(AValue) then Exit;
AValueList.Add(fviValue, qryHelper.Fields[0].Value, AValue, False);
qryHelper.Next;
end;
qryHelper.Close;
finally
Screen.Cursor := crDefault;
end;
end;

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧