【发布时间】:2014-07-25 16:28:28
【问题描述】:
我有一个 DBGrid,当我在运行时分配 SQLQuery 时,它链接到客户端数据集 DBGrid 自动分配没有列。我需要的是当 DBGrid 自动分配列时,我需要设置这些列之一来分配选择列表。 谁能帮我? 以下过程在显示事件的表单中调用。该表单包含 DataSource、ClientDataSet、SQLViewQuery (TSQLQuery)、DatasetProvider 和 DBGridDetails (TDBGrid)。
procedure TViewDetailsForm.ViewPendingAndReturnCheques;
var I : Integer;
slPickList:TStringList;
begin
slPickList := TStringList.Create;
slPickList.Add('Pending');
slPickList.Add('Returned');
slPickList.Add('Passed');
SQL := 'SELECT a.CHEQUE_NO, a.BANK, a.CHEQUE_DATE, a.AMOUNT,a.STATUS FROM CHEQUES a';
//refreshisng the DBGrid
SQLViewQuery.SQL.Clear;
SQLViewQuery.SQL.Add(SQL);
ClientDataSet.Active := false;
ClientDataSet.Active := true;
DBGridDetails.Columns[0].Width := _Block;
DBGridDetails.Columns[1].Width := _Block;
DBGridDetails.Columns[2].Width := _Block;
DBGridDetails.Columns[3].Width := _Block;
DBGridDetails.Columns[4].Width := _Block;
for I := 0 to DBGridDetails.Columns.Count - 1 do
begin
if DBGridDetails.Columns[I].FieldName = 'STATUS' then
begin
DBGridDetails.Columns[i].ButtonStyle := cbsAuto;
DBGridDetails.Columns[I].PickList := slPickList;
end;
end;
Show;
end;
【问题讨论】:
-
你见过
this tutorial吗? -
“但不起作用”没有帮助。如果您尝试过某些东西,edit 您的问题包括您尝试过的内容,并解释它是如何不起作用的。您还需要定义“选择列表”。它是硬编码值列表(“选择 A、选择 B、选择 C”),还是来自另一个表的值列表?
-
我添加了我的代码 _Block = 70 (Const)