1、ListView控件的ViewStyle属性设置为vsReport
2、为ListView控件添加列名-->设置Columns属性
3、开始编程
procedure TForm1Button1Click(Sender: TObject);
var
tmpItem: TListItem;
begin
while not ADOQuery1Eof do
begin
tmpItem := ListView1ItemsAdd;
tmpItemCaption := ADOQuery1FieldByName('xx')AsString;
tmpItemSubItems[0] := ADOQuery1FieldByName('xx')AsString;
end;
end;
上面只是个范例,可以参考一下,实际使用中有很多不同的
用代码慢慢加吧!假设ListView上的列已经全部建立,按次序对应Query里的所有记录,而且所有的字段值都可以用QueryFields
AsString来表示就可以了,那么代码可以如下
nFieldIndex
:
Integer
;
nItem:
TListItem
;begin
queryFiest
;
while
not
queryEof
do
begin
nItem
ListViewItemsAdd
;
nItemCaption
queryFields
AsString
;
for
nFieldIndex
1
to
queryFieldsCount-1
do
nItemSubItemsAdd(queryFields
AsString)
;
end
;end
;
不用ADO 那就用RDO DAO也可
反正总要调用个数据库引擎 你才能使用里面的数据库
给你一段用ADO的代码 希望你能看懂
Dim r As New ADODBRecordset
Dim SQL As String
Dim itmx As ListItem
ListView1ListItemsClear
SQL = "SELECT 报告idd, 报告ID, 报告姓名, 报告性别, 报告年龄, 报告放入日期, "
SQL = SQL & " 报告结论, 报告结论日期, 报告明细reidd, 报告明细名称, 报告明细条码,"
SQL = SQL & "报告明细放入时间, 报告明细放入人员, 报告明细取出时间, 报告明细取出人员, 报告明细时间间隔, 报告明细结果, 报告明细说明, 报告明细位置 "
SQL = SQL & "FROM 报告, 报告明细 where 报告idd = 报告明细reidd "
SQL = SQL & " and 报告明细放入时间>=#" & Format(RQ1, "yyyy-MM-dd") & "# "
SQL = SQL & " and 报告明细放入时间<#" & Format(RQ2 + 1, "yyyy-MM-dd") & "# "
rOpen SQL, cn
Do While Not rEOF
Set itmx = ListView1ListItemsAdd
itmxText = Trim(r!idd & " ")
itmxSubItems(1) = Trim(r!id & " ")
itmxSubItems(2) = Trim(r!姓名 & " ")
itmxSubItems(3) = Trim(r!性别 & " ")
itmxSubItems(4) = Trim(r!年龄 & " ")
itmxSubItems(5) = Format(r!放入日期, "yyyy-MM-dd")
itmxSubItems(6) = Trim(r!名称 & " ")
itmxSubItems(7) = Trim(r!条码 & " ")
itmxSubItems(8) = Format(r!放入时间, "yyyy-MM-dd hh:mm:ss")
itmxSubItems(9) = Trim(r!放入人员 & " ")
itmxSubItems(10) = Format(r!取出时间, "yyyy-MM-dd hh:mm:ss")
itmxSubItems(11) = Trim(r!取出人员 & " ")
itmxSubItems(12) = Format(r!时间间隔 / 24, "00")
itmxSubItems(13) = Trim(r!结果 & " ") & Trim(r!说明 & " ")
itmxSubItems(14) = Trim(r!位置 & " ")
rMoveNext
Loop
rClose
(给你参考)
rsOpen SQL, conn, adOpenStatic, adLockOptimistic
For i = 1 To ListView1ListItemsCount
rsAddNew
rsFields("数据库的列名") = ListView1ListItems(i)SubItems(1)
'注释:ListItems(i)SubItems(1) 当i=1时,取第一行第2列的值
rsFields("数据库的列名") = ListView1ListItems(i)SubItems(2)
rsFields("数据库的列名") = ListView1ListItems(i)SubItems(3)
'(要获取多少数据这中间自己加)
rsFields("数据库的列名") = ListView1ListItems(i)SubItems(9)
rsFields("数据库的列名") = ListView1ListItems(i)SubItems(10)
rsUpdate
Next i
应该很清楚了吧,还有问题联系我
假设从数据库获取到的数据为list
自定义Adapter继承自BaseAdapter,重写getView方法,实例化列表项并且绑定数据就可以了
/ 新建一个类继承BaseAdapter,实现视图与数据的绑定/public class MyAdapter extends BaseAdapter {
private LayoutInflater mInflater;//得到一个LayoutInfalter对象用来导入布局
private List list;
/构造函数/
public MyAdapter(Context context,List list) {
thismInflater = LayoutInflaterfrom(context);
thislist = list;
}
@Override
publicint getCount() {
return listsize();//返回数组的长度
}
@Override
public Object getItem(int position) {
return listget(position);
}
@Override
publiclong getItemId(int position) {
return 0;
}
@Override
public View getView(finalint position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflaterinflate(Rlayoutitem,null);
holder = new ViewHolder();
/得到各个控件的对象/
holdertitle = (TextView) convertViewfindViewById(RidItemTitle);
holdertext = (TextView) convertViewfindViewById(RidItemText);
holderbt = (Button) convertViewfindViewById(RidItemButton);
convertViewsetTag(holder);//绑定ViewHolder对象
}
else{
holder = (ViewHolder)convertViewgetTag();//取出ViewHolder对象
}
holdertitlesetText(listget(position)getId()toString());
holdertextsetText(listget(position)getName()toString());
return convertView;
}
/存放控件/
class ViewHolder{
public TextView title;
public TextView text;
}
}
没有特别简单的办法。
一个办法是利用ListViewListItems集合遍历所有的数据,并输出至打印机。如:
Dim i, j
For i = 1 To ListView1ListItemsCount
PrinterPrint ListView1ListItems(i),
For j = 1 To ListView1ColumnHeadersCount - 1
PrinterPrint ListView1ListItems(i)SubItems(j),
Next
PrinterPrint
Next
另一个办法是遍历数据的同时,将数据输出到一个临时数据库文件,然后利用报表控件输出。
以上就是关于DELPHI中利用LISTVIEW控件如何显示数据库中的列表全部的内容,包括:DELPHI中利用LISTVIEW控件如何显示数据库中的列表、delphi 怎样用listview显示数据库中的记录、VB listview 如何显示SQL 数据库谢谢!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)