我想对网格进行排序.我创建了一个内存表,并将其作为数据源链接到网格.我将数据从nxQuery对象插入到内存表中.对于排序,我必须将索引添加到内存表中.
这是创建事件形式的索引添加和插入部分
nxMemTable1.IndexDefs.Clear;
nxMemTable1.FieldDefs.Clear;
nxMemTable1.FieldDefs.Add('packpatientid', ftInteger, 0, False);
nxMemTable1.FieldDefs.Add('firstname', ftString, 10, False);
nxMemTable1.FieldDefs.Add('lastname', ftString, 10, False);
while not nxQuery1.EOF do
begin
nxMemTable1.Append;
nxMemTable1.FieldByName('packpatientid').AsInteger := nxQuery1packpatientid.AsInteger;
nxMemTable1.FieldByName('firstname').AsString := nxQuery1firstname.AsString;
nxMemTable1.FieldByName('lastname').AsString := nxQuery1lastname.AsString;
nxMemTable1.Post;
end;
Run Code Online (Sandbox Code Playgroud)
这是我试图对内存表进行排序的代码
procedure TForm1.Button2Click(Sender: TObject);
begin
nxMemTable1.IndexFieldNames := 'firstname';
end;
但这不起作用.当我点击按钮时,它显示"没有字段'名字'的索引'"
我正在尝试使用快速报告中的表达式过滤数据。当我在表达式中使用一个条件时,它工作正常。
<DSPatientProfileDetails."category"> = 'T-Short term'
Run Code Online (Sandbox Code Playgroud)
但我想要多个条件,就像 sql where 条件一样。这是我试过的。但它给出了错误。
<DSPatientProfileDetails."category"> = 'T-Short term' or <DSPatientProfileDetails."category"> = 'A-Antibiotics'