• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

DBF文件输出到WORD

发布: 2007-7-01 21:48 | 作者: admin | 来源: | 查看: 32次 | 进入软件测试论坛讨论

领测软件测试网

Private i As Integer
Private MacroName As String
Private WordApp As Word.Application
Private doc As Word.Document
Private se1 As Word.Selection
Private db As Database
Private rs As Recordset


Private Sub cmdAdd_Click()
  Dim sTmp As String
  sTmp = InputBox("输入要添加的新项目:")
  If Len(sTmp) = 0 Then Exit Sub
  lstItems.AddItem sTmp
End Sub

Private Sub cmdDelete_Click()
  If lstItems.ListIndex > -1 Then
    If MsgBox("删除 ´" & lstItems.Text & "´?", vbQuestion + vbYesNo) = vbYes Then
      lstItems.RemoveItem lstItems.ListIndex
    End If
  End If
End Sub

Private Sub cmdUp_Click()
  On Error Resume Next
  Dim nItem As Integer
 
  With lstItems
    If .ListIndex < 0 Then Exit Sub
    nItem = .ListIndex
    If nItem = 0 Then Exit Sub  ´不能将第一个项目向上移动
    ´向上移动项目
    .AddItem .Text, nItem - 1
    ´删除旧项目
    .RemoveItem nItem + 1
    ´选择刚刚移动的项目
    .Selected(nItem - 1) = True
  End With
End Sub

Private Sub cmdDown_Click()
  On Error Resume Next
  Dim nItem As Integer
 
  With lstItems
    If .ListIndex < 0 Then Exit Sub
    nItem = .ListIndex
    If nItem = .ListCount - 1 Then Exit Sub ´不能将最后的项目向下移动
    ´向下移动项目
    .AddItem .Text, nItem + 2
    ´删除旧的项目
    .RemoveItem nItem
    ´选择刚刚移动的项目
    .Selected(nItem + 1) = True
  End With
End Sub

Private Sub lstItems_DragDrop(Source As Control, X As Single, Y As Single)
  Dim i As Integer
  Dim nID As Integer
  Dim sTmp As String
 
  If Source.Name <> "lstItems" Then Exit Sub
  If lstItems.ListCount = 0 Then Exit Sub
 
  With lstItems
    i = (Y \ TextHeight("A")) + .TopIndex
    If i = .ListIndex Then
      ´将它放在它自己的上面
      Exit Sub
    End If
    If i > .ListCount - 1 Then i = .ListCount - 1
    nID = .ListIndex
    sTmp = .Text
    If (nID > -1) Then
      sTmp = .Text
      .RemoveItem nID
      .AddItem sTmp, i
      .ListIndex = .NewIndex
    End If
  End With
  SetListButtons
End Sub

Sub lstItems_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Button = vbLeftButton Then lstItems.Drag
End Sub

Private Sub lstItems_Click()
  SetListButtons
End Sub

Sub SetListButtons()
  Dim i As Integer
  i = lstItems.ListIndex
  ´设置移动按钮的状态
  cmdUp.Enabled = (i > 0)
  cmdDown.Enabled = ((i > -1) And (i < (lstItems.ListCount - 1)))
  cmdDelete.Enabled = (i > -1)
End Sub

Private Sub Command1_Click()

 With dlgCommonDialog
         Label4.Caption = .InitDir
        .DialogTitle = "打开dbf文件"
        .CancelError = False
        ´ToDo: 设置 common dialog 控件的标志和属性
        .Filter = "所有dbf文件 (*.dbf)|*.dbf"
        .ShowOpen
        If Len(.FileName) = 0 Then
            Exit Sub
        End If
        sfile = .FileName
        Label1.Caption = sfile
        Label2.Caption = .FileTitle
        Label3.Caption = Left(sfile, Len(sfile) - Len(.FileTitle) - 1)
        Data1.Caption = .FileTitle
    End With
´        Data1.Database = Label3.Caption
        Data1.DatabaseName = Label3.Caption
        Data1.RecordSource = Label2.Caption
´         On Error Resume Next
        
         Data1.Refresh
´        Form1.MSFlexGrid1.Refresh
        Form1.DBGrid1.Refresh
        Form1.Refresh
End Sub

Private Sub Command2_Click()
        End
End Sub

Private Sub Command3_Click()
 If Label2.Caption = "DbfFile:" Then
    Call Command1_Click
 End If
Set db = Data1.Database
Set rs = Data1.Recordset
Data1.Refresh

Set WordApp = New Word.Application
WordApp.Documents.Add
Set doc = WordApp.ActiveDocument
Set se1 = WordApp.Selection

      With doc.PageSetup
            .LineNumbering.Active = False
            .Orientation = wdOrientLandscape
            .TopMargin = CentimetersToPoints(2)
            .BottomMargin = CentimetersToPoints(2)
            .LeftMargin = CentimetersToPoints(2)
            .RightMargin = CentimetersToPoints(2)
            .Gutter = CentimetersToPoints(0)
            .HeaderDistance = CentimetersToPoints(1.5)
            .FooterDistance = CentimetersToPoints(1.75)
            .PageWidth = CentimetersToPoints(29.7)
            .PageHeight = CentimetersToPoints(21)
            .FirstPageTray = wdPrinterDefaultBin
            .OtherPagesTray = wdPrinterDefaultBin
            .SectionStart = wdSectionNewPage
            .OddAndEvenPagesHeaderFooter = False
            .DifferentFirstPageHeaderFooter = False
            .VerticalAlignment = wdAlignVerticalTop
            .SuppressEndnotes = False
            .MirrorMargins = False
            .TwoPagesOnOne = False
            .GutterPos = wdGutterPosLeft
            .LayoutMode = wdLayoutModeLineGrid
        End With
   
se1.TypeText Text:="20" & CStr(Date) & " " & CStr(Time())

´doc.Tables.Add Range:=se1.Range, numrows:=1, numcolumns:=List2.ListCount
 doc.Tables.Add Range:=se1.Range, numrows:=1, numcolumns:=rs.Fields.Count
      
For i = 0 To rs.Fields.Count - 1
Screen.MousePointer = 11
´se1.TypeText Text:=rs.Fields(i).Name
se1.TypeText Text:=rs.Fields(i).Name
se1.MoveRight unit:=12
Next

´se1.TypeText Text:="产品名称"
´se1.MoveRight unit:=12

Do Until rs.EOF
 For i = 0 To rs.Fields.Count - 1
 On Error Resume Next
 se1.TypeText Text:=rs.Fields(i).Value
´ se1.TypeText Text:=rs.Fields(rs.Fields(i)).Value
 se1.MoveRight unit:=12
 Next
´se1.TypeText Text:=rs!产品名称
´se1.MoveRight unit:=12

´se1.TypeText Text:=rs!中止
´se1.MoveRight unit:=12

rs.MoveNext
  
Loop
WordApp.Run MacroName:="AutoFitContent"
                 
     se1.InsertBreak
     se1.Delete Count:=rs.Fields.Count
   
   
    se1.Sections(1).Footers(1).PageNumbers.Add PageNumberAlignment:= _
    wdAlignPageNumberRight, FirstPage:=True
    
 WordApp.Visible = True
  
´ WordApp.Run MacroName:="InsertDateTime"
Set WordApp = Nothing
Screen.MousePointer = 1
´data1.Recordset.Fields()
End Sub

Private Sub exit_Click()
            Close
            End
End Sub

Private Sub open_Click()
           Call Command1_Click
End Sub


延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网