DELPHI中利用LISTVIEW控件如何显示数据库中的列表

DELPHI中利用LISTVIEW控件如何显示数据库中的列表,第1张

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 数据库谢谢!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10092537.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存