var s1,s2:string; i:integer; begin cmb1.clear; with adoquery do adoquery.Close; adoquery.SQL.Clear; adoquery.SQL.Add('Select * from hstable'); adoquery.Open; for i:=0 to 4 do begin s1:=adoquery.fieldbyname('ht002').AsString;// s2:=adoquery.fieldbyname('ht003').AsString;// delete(s2,5,100); cmb1.Items.Add(s1+' '+s2+' '+adoquery.fieldbyname('ht004').AsString); s1:=''; s2:=''; adoquery.Next; end; end;
以下测试通过~~var s1,s2:string; i,l:integer; begin l:=10;//combobox中第二列的长度; cmb1.clear; with adoquery do adoquery.Close; adoquery.SQL.Clear; adoquery.SQL.Add('Select * from hstable'); adoquery.Open; for i:=0 to 4 do begin s1:=adoquery.fieldbyname('ht002').AsString;// 第一列 s2:=adoquery.fieldbyname('ht003').AsString;// 第二列 if length(s2)<l then//如果小于预定的字段长度 begin repeat s2:=s2+' '; until length(s2)=l; end else begin delete(s2,11,100); end; cmb1.Items.Add(s1+' '+s2+' '+adoquery.fieldbyname('ht004').AsString); s1:=''; s2:=''; adoquery.Next; end; end;
s1,s2:string;
i:integer;
begin
cmb1.clear;
with adoquery do
adoquery.Close;
adoquery.SQL.Clear;
adoquery.SQL.Add('Select * from hstable');
adoquery.Open;
for i:=0 to 4 do
begin
s1:=adoquery.fieldbyname('ht002').AsString;//
s2:=adoquery.fieldbyname('ht003').AsString;//
delete(s2,5,100);
cmb1.Items.Add(s1+' '+s2+' '+adoquery.fieldbyname('ht004').AsString);
s1:='';
s2:='';
adoquery.Next;
end;
end;
我的三个字段的数据是这样的PART_CODE PART_NAME PART_MODEL
0101 蛋壳 500g
0102 旺旺仙贝 500g
0103 元朗蛋卷王1 454g
0104 元朗蛋卷王2 908g
0105 金得利瑞士糖 800g
0106 瑞士糖(扁盒) 450g
0107 德芙果仁巧克力 47g
0108 德芙牛奶巧克力 47g
0109 品客薯片(原味) 195g
0110 品客薯片(葱味) 190g
0201 娃哈哈AD钙奶1 4*200ml
0202 娃哈哈AD钙奶2 6*100ml
这是从数据库直接copy过来的内容,要求加入combobox后也是这样的对齐方式
固定三个字段的长度和位置,赋值时在指定位置填内容即可
配合stringgrid来做,所有数据在stringgrid里,通过判断combobox接收的key来显示和隐藏stringgrid
还有key的跳转.
s1,s2:string;
i,l:integer;
begin
l:=10;//combobox中第二列的长度;
cmb1.clear;
with adoquery do
adoquery.Close;
adoquery.SQL.Clear;
adoquery.SQL.Add('Select * from hstable');
adoquery.Open;
for i:=0 to 4 do
begin
s1:=adoquery.fieldbyname('ht002').AsString;// 第一列
s2:=adoquery.fieldbyname('ht003').AsString;// 第二列
if length(s2)<l then//如果小于预定的字段长度
begin
repeat
s2:=s2+' ';
until length(s2)=l;
end
else
begin
delete(s2,11,100);
end;
cmb1.Items.Add(s1+' '+s2+' '+adoquery.fieldbyname('ht004').AsString);
s1:='';
s2:='';
adoquery.Next;
end;
end;