'填充Listview的条目 Private Sub List_Input() Dim J As Integer Dim K As Integer Dim Litem As Object Dim strFont As String Dim strAlign As String Dim blnClm As Boolean '表头 lsvColumn.ColumnHeaders.Add 1, , "列名", 1600 lsvColumn.ColumnHeaders.Add 2, , "列宽", 1600 lsvColumn.ColumnHeaders.Add 3, , "字体", 1600 lsvColumn.ColumnHeaders.Add 4, , "对齐", 1600 lsvColumn.ColumnHeaders.Add 5, , "计算", 1600 '表体 If frmPrintReport.Visible Then txtLfHead.Text = rpt.strRppLfHead txtMdHead.Text = rpt.strRppMdHead txtRgHead.Text = rpt.strRppRgHead
txtTitle.Text = rpt.strRppTitle For K = 0 To frmReport.lstClm2.ListCount - 1 blnClm = False For I = 1 To rpt.ClsRptTbls.Count For J = 1 To rpt.ClsRptTbls(I).ClsRptFlds.Count If frmReport.lstClm2.ItemData(K) = rpt.ClsRptTbls(I).ClsRptFlds(J).Key Then blnClm = True Exit For End If Next If blnClm = True Then Exit For End If Next If blnClm Then Set Litem = lsvColumn.ListItems.Add(, , frmReport.lstClm2.List(K))
lsvColumn.ListItems(K + 1).Tag = frmReport.lstClm2.ItemData(K) '列宽 If rpt.ClsRptTbls(I).ClsRptFlds(J).strClpColumn <> "" Then Litem.ListSubItems.Add , , rpt.ClsRptTbls(I).ClsRptFlds(J).strClpColumn Else Litem.ListSubItems.Add , , "1in" End If '字体 Select Case rpt.ClsRptTbls(I).ClsRptFlds(J).intClpFont Case 0 strFont = "0——普 通" Case 1 strFont = "1——粗 体" Case 2 strFont = "2——斜 体" Case 3 strFont = "3——粗斜体" Case 4 strFont = "4——下划线" Case 5 strFont = "5——下划线粗体" Case 6 strFont = "6——下划线斜体" Case 7 strFont = "7——粗斜体下划线" End Select Litem.ListSubItems.Add , , strFont '对齐 Select Case rpt.ClsRptTbls(I).ClsRptFlds(J).intClpAlign Case 1 strAlign = "1——左对齐" Case 2 strAlign = "2——居 中" Case 3 strAlign = "3——右对齐" Case Else strAlign = "2——居 中" End Select Litem.ListSubItems.Add , , strAlign '计算 Litem.ListSubItems.Add , , rpt.ClsRptTbls(I).ClsRptFlds(J).intCalType Else Set Litem = frmReportSet.lsvColumn.ListItems.Add(, , frmReport.lstClm2.List(K)) lsvColumn.ListItems(K + 1).Tag = frmReport.lstClm2.ItemData(K) Litem.ListSubItems.Add , , "1in" Litem.ListSubItems.Add , , "0——普 通" Litem.ListSubItems.Add , , "2——居 中" Litem.ListSubItems.Add , , "0" End If Next Else For I = 0 To frmReport.lstClm2.ListCount - 1 Set Litem = frmReportSet.lsvColumn.ListItems.Add(, , frmReport.lstClm2.List(I)) lsvColumn.ListItems(I + 1).Tag = frmReport.lstClm2.ItemData(I) Litem.ListSubItems.Add , , "1in" Litem.ListSubItems.Add , , "0——普 通" Litem.ListSubItems.Add , , "2——居 中" Litem.ListSubItems.Add , , "0" Next End If End Sub
Dim CN As New ADODB.Connection Dim Rs As New ADODB.Recordset Dim temp As New ADODB.Recordset CN.ConnectionString = "Provider=sqloledb;Data Source=pmserver;Initial Catalog=Report;User Id=sa;Password=sa;" CN.Open Rs.CursorLocation = adUseClient Rs.Open "select * from table1", CN, adOpenDynamic, adLockBatchOptimistic Rs.MoveFirst Do While Not Rs.EOF Set Item = ListView1.ListItems.Add(, , Trim(Rs.Fields("lno")))
Private Sub List_Input()
Dim J As Integer
Dim K As Integer
Dim Litem As Object
Dim strFont As String
Dim strAlign As String
Dim blnClm As Boolean
'表头
lsvColumn.ColumnHeaders.Add 1, , "列名", 1600
lsvColumn.ColumnHeaders.Add 2, , "列宽", 1600
lsvColumn.ColumnHeaders.Add 3, , "字体", 1600
lsvColumn.ColumnHeaders.Add 4, , "对齐", 1600
lsvColumn.ColumnHeaders.Add 5, , "计算", 1600
'表体
If frmPrintReport.Visible Then
txtLfHead.Text = rpt.strRppLfHead
txtMdHead.Text = rpt.strRppMdHead
txtRgHead.Text = rpt.strRppRgHead
txtMdFoot.Text = rpt.strRppMdFoot
txtRgFoot.Text = rpt.strRppRgFoot
txtLfFoot.Text = rpt.strRppLfRoot
txtTitle.Text = rpt.strRppTitle
For K = 0 To frmReport.lstClm2.ListCount - 1
blnClm = False
For I = 1 To rpt.ClsRptTbls.Count
For J = 1 To rpt.ClsRptTbls(I).ClsRptFlds.Count
If frmReport.lstClm2.ItemData(K) = rpt.ClsRptTbls(I).ClsRptFlds(J).Key Then
blnClm = True
Exit For
End If
Next
If blnClm = True Then
Exit For
End If
Next
If blnClm Then
Set Litem = lsvColumn.ListItems.Add(, , frmReport.lstClm2.List(K))
lsvColumn.ListItems(K + 1).Tag = frmReport.lstClm2.ItemData(K)
'列宽
If rpt.ClsRptTbls(I).ClsRptFlds(J).strClpColumn <> "" Then
Litem.ListSubItems.Add , , rpt.ClsRptTbls(I).ClsRptFlds(J).strClpColumn
Else
Litem.ListSubItems.Add , , "1in"
End If
'字体
Select Case rpt.ClsRptTbls(I).ClsRptFlds(J).intClpFont
Case 0
strFont = "0——普 通"
Case 1
strFont = "1——粗 体"
Case 2
strFont = "2——斜 体"
Case 3
strFont = "3——粗斜体"
Case 4
strFont = "4——下划线"
Case 5
strFont = "5——下划线粗体"
Case 6
strFont = "6——下划线斜体"
Case 7
strFont = "7——粗斜体下划线"
End Select
Litem.ListSubItems.Add , , strFont
'对齐
Select Case rpt.ClsRptTbls(I).ClsRptFlds(J).intClpAlign
Case 1
strAlign = "1——左对齐"
Case 2
strAlign = "2——居 中"
Case 3
strAlign = "3——右对齐"
Case Else
strAlign = "2——居 中"
End Select
Litem.ListSubItems.Add , , strAlign
'计算
Litem.ListSubItems.Add , , rpt.ClsRptTbls(I).ClsRptFlds(J).intCalType
Else
Set Litem = frmReportSet.lsvColumn.ListItems.Add(, , frmReport.lstClm2.List(K))
lsvColumn.ListItems(K + 1).Tag = frmReport.lstClm2.ItemData(K)
Litem.ListSubItems.Add , , "1in"
Litem.ListSubItems.Add , , "0——普 通"
Litem.ListSubItems.Add , , "2——居 中"
Litem.ListSubItems.Add , , "0"
End If
Next
Else
For I = 0 To frmReport.lstClm2.ListCount - 1
Set Litem = frmReportSet.lsvColumn.ListItems.Add(, , frmReport.lstClm2.List(I))
lsvColumn.ListItems(I + 1).Tag = frmReport.lstClm2.ItemData(I)
Litem.ListSubItems.Add , , "1in"
Litem.ListSubItems.Add , , "0——普 通"
Litem.ListSubItems.Add , , "2——居 中"
Litem.ListSubItems.Add , , "0"
Next
End If
End Sub
Dim Item As ListItem
ListView1.View = lvwReport
ListView1.ColumnHeaders.Add , , "代码", ListView1.Width / 2
ListView1.ColumnHeaders.Add , , "真实值", ListView1.Width / 2
Dim CN As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim temp As New ADODB.Recordset
CN.ConnectionString = "Provider=sqloledb;Data Source=pmserver;Initial Catalog=Report;User Id=sa;Password=sa;"
CN.Open
Rs.CursorLocation = adUseClient
Rs.Open "select * from table1", CN, adOpenDynamic, adLockBatchOptimistic
Rs.MoveFirst
Do While Not Rs.EOF
Set Item = ListView1.ListItems.Add(, , Trim(Rs.Fields("lno")))
Item.ListSubItems.Add , , Trim(Rs.Fields("lname"))
Rs.MoveNext
Loop
Rs.Close
CN.Close
还有别的兄弟给个正确答案吗?