cxGrid新增一列cxGrid1DBTableView1Column1,Properties设为LookupComboBox,KeyFieldName 设置为品名,ListFieldNames设置为品名,单价
问题1:如何边输入品名,边根据品名模糊查找,并根据选中的品名自动填单价。
问题2:如果同品名有两个单价,cxGrid1老是只能选中第一条单价,无法选择第二条单价。谢谢
问题1:如何边输入品名,边根据品名模糊查找,并根据选中的品名自动填单价。
问题2:如果同品名有两个单价,cxGrid1老是只能选中第一条单价,无法选择第二条单价。谢谢
解决方案 »
- 三层中关于Access数据库一个奇怪的现象,不知道大家有没有碰到过
- 本人刚建一QQ群《数字人生》,希望给大家提供一个各种编程语言交流的平台!欢迎大家加入!!!
- 武汉招Delphi程序员
- 南京企业纳贤 --有意愿请跟帖,留下qq 或手机号码以便联系
- 我的scktsrvr.exe在NT server上運行怎么會報錯?
- 一个简单的SQL问题!
- 我下载了一个fastreport,怎样添加此控件?
- from.OnKeyDown(),事件怎么没有相应???奇怪,大家帮我看看
- SQL問題請教
- 小菜问题请教?TBorderStyle是何类型?
- 求Delphi 运行 [Exec Error] The command "PATH 错误解决方案
- 大神,如何提取一个包里面的每个帧后面的数据,有两个包
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;
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每个显示的列,都要逐个设置。
都设定好后,运行,就是下面的效果了。 当然,你的代码应该显示:“品名”、“单价”。这里仅提供显示样式。