preview3.frm
来自「这个是我以前做的一个客户管理系统.包内已经含有源码和所用到的控件.代码是用VB写」· FRM 代码 · 共 1,949 行 · 第 1/5 页
FRM
1,949 行
VsPreview.FontSize = gFontSizeCon
VsPreview.FontBold = gbFontBoldCon
VsPreview.FontItalic = gbFontItalicCon
VsPreview.HdrFontSize = VsPreview.FontSize - 1
VsPreview.HdrFontBold = False
VsPreview.Footer = "|第 %d 页|"
mbBeginLine = True
'显示主标题
If mbSetMainTitle() = False Then mbPrintMuliVsf = False: Exit Function
'设置子标题
If mbSetMuliTitle() = False Then mbPrintMuliVsf = False: Exit Function
'设置列标题
If mbSetColumn() = False Then mbPrintMuliVsf = False: Exit Function
'列表内容
If mbListVsFlex() = False Then mbPrintMuliVsf = False: Exit Function
'设置尾注
If mbSetFootTitle = False Then mbPrintMuliVsf = False: Exit Function
VsPreview.EndDoc
Screen.MousePointer = vbDefault
mbPrintMuliVsf = True
Exit Function
ErrPrintMuliVsf:
Screen.MousePointer = vbDefault
mbPrintMuliVsf = True
gShowMsg "打印MuliVSF表格内容出错 frmPreview.mbPrintMulivsf"
End Function
Private Function mbPrintVsf() As Boolean
'***************************************
'向打印机输出VSFLEX表格中的内容
'
On Error GoTo ErrPrintVsf
mbBeginLine = False
Screen.MousePointer = vbHourglass
VsPreview.StartDoc
VsPreview.FontName = gFontNameCon
VsPreview.FontSize = gFontSizeCon
VsPreview.FontBold = gbFontBoldCon
VsPreview.FontItalic = gbFontItalicCon
VsPreview.HdrFontSize = VsPreview.FontSize - 1
VsPreview.HdrFontBold = False
VsPreview.Footer = "|第 %d 页|"
mbBeginLine = True
'显示主标题
If mbSetMainTitle() = False Then mbPrintVsf = False: Exit Function
'设置列标题
If mbSetColumn() = False Then mbPrintVsf = False: Exit Function
'列表内容
If mbListVsFlex() = False Then mbPrintVsf = False: Exit Function
VsPreview.EndDoc
Screen.MousePointer = vbDefault
mbPrintVsf = True
Exit Function
ErrPrintVsf:
Screen.MousePointer = vbDefault
mbPrintVsf = True
gShowMsg "打印VSF表格内容出错 frmPreview.mbPrint.vsf"
End Function
Private Function mbPrintSt() As Boolean
'**********************************************
'向打印机输出班级学生
Dim i As Integer
Dim Upper As Integer
Upper = UBound(gClassName)
mbBeginLine = False
Screen.MousePointer = vbHourglass
VsPreview.StartDoc
VsPreview.FontName = gFontNameCon
VsPreview.FontSize = gFontSizeCon
VsPreview.FontBold = gbFontBoldCon
VsPreview.FontItalic = gbFontItalicCon
VsPreview.HdrFontSize = VsPreview.FontSize - 1
VsPreview.HdrFontBold = False
VsPreview.Footer = "|第 %d 页|"
' VsPreview.FontName = "宋体"
'
' VsPreview.HdrFontSize = VsPreview.FontSize - 1
' VsPreview.HdrFontBold = False
' VsPreview.Footer = "|第 %d 页|"
mbBeginLine = True
'显示主标题
If mbSetClassTitle(0) = False Then mbPrintSt = False: Exit Function
'设置列标题
If mbSetColumn() = False Then mbPrintSt = False: Exit Function
'列表学生名单
If mbPreviewStudent(0) = False Then mbPrintSt = False: Exit Function
For i = 1 To Upper - 1
mbSetNextColumn = False
VsPreview.NewPage
'显示主标题
If mbSetClassTitle(i) = False Then mbPrintSt = False: Exit Function
'设置列标题
If mbSetColumn() = False Then mbPrintSt = False: Exit Function
'列表学生名单
If mbPreviewStudent(i) = False Then mbPrintSt = False: Exit Function
Next i
VsPreview.EndDoc
Screen.MousePointer = vbDefault
mbPrintSt = True
Exit Function
ErrPrintSt:
Screen.MousePointer = vbDefault
mbPrintSt = False
gShowMsg "打印学生信息出错 frmPreview.mbPrintSt"
End Function
'Private Function mbPreviewNextClass() As Boolean
''*****************************************************
''预览下一个班级数据
' Dim Upper As Integer
'
' Upper = UBound(gClassName)
' If Upper = mIndex Then
' mbPreviewNextClass = False
' Else
' mIndex = mIndex + 1
' mbSetNextColumn = False
' vspreview.NewPage
'
' '显示主标题
' If mbSetClassTitle(mIndex) = False Then mbPreviewNextClass = False: Exit Function
'
' '设置列标题
' If mbSetColumn() = False Then mbPreviewNextClass = False: Exit Function
'
' '列表学生名单
' If mbPreviewStudent(mIndex) = False Then mbPreviewNextClass = False: Exit Function
'
' End If
'
' mbPreviewNextClass = True
'
'End Function
Private Function mbNextPage(Y As Double) As Boolean
'*************************************************
'是否已经满一页
Dim iLeft As Double
iLeft = VsPreview.PageHeight - Y - VsPreview.MarginBottom - gRowHeight
If iLeft >= 0 Then
'还没有满一页
mbNextPage = False
Else
mbNextPage = True
End If
End Function
Private Function mbPreviewStudent(index As Integer) As Boolean
'********************************************************************]
'读取学生资料
Dim sSQL As String
Dim Rs As New ADODB.Recordset
Dim left As Double
Dim X As Double
Dim Y1 As Double
Dim Y As Double
Dim iSepLeft As Double
Dim iSepTop As Double
Dim OutText As String
Dim strOutText1 As String
Dim i As Integer
Dim iStart As Integer
Dim iLen As Integer
On Error GoTo ErrPreviewStudent
'********************************************
'计算字体高度
VsPreview.FontName = gFontNameCon
VsPreview.FontSize = gFontSizeCon
VsPreview.FontBold = gbFontBoldCon
VsPreview.FontUnderline = gbFontUnderCon
VsPreview.FontItalic = gbFontItalicCon
VsPreview.CalcText = "测试字高"
gRowHeight = VsPreview.TextHei * 2
mbSetNextColumn = True
'线条同字间距离
iSepLeft = gLeftCon
iSepTop = gTopCon
sSQL = "Select School_num,StName,BirthPlace,Sex,BirthDay,PostSchool,TotalMark,HomeAdd,OtherMemo from GxxNewSt S left join GxcClassXJ C on S.ClassCode = C.ClassCode where C.ClassName = '" & gClassName(index) & "' order by S.ClassCode ASC "
Screen.MousePointer = vbHourglass
Rs.Open sSQL, Cn, adOpenKeyset
Screen.MousePointer = vbDefault
left = VsPreview.CurrentX
mTop = VsPreview.CurrentY
Do While Rs.EOF = False
For i = 0 To gCols - 1
If mbNextPage(mTop) Then VsPreview.NewPage
Call mDrawRect(left, mTop, gColWidth(i + 1), gRowHeight)
X = left + iSepLeft
'计算该字的长度符串是否超出
If i = 4 Then
OutText = IIf(IsNull(Rs.Fields(i)), "", Format(Rs.Fields(i), "yyyy-mm-dd"))
Else
OutText = IIf(IsNull(Rs.Fields(i)), "", Rs.Fields(i))
End If
VsPreview.CalcText = OutText
If VsPreview.TextWid > gColWidth(i + 1) - iSepLeft * 2 Then
'若字符串长度大于列的宽度
iLen = Len(OutText)
For iStart = 1 To iLen
strOutText1 = Mid(OutText, 1, iLen - iStart)
VsPreview.CalcText = strOutText1
If VsPreview.TextWid <= gColWidth(i + 1) - iSepLeft * 2 Then Exit For
Next iStart
'计算文字距表格线的距离
iSepTop = (gRowHeight - VsPreview.TextHei * 2) / 2
Y1 = mTop + iSepTop
'分两部分输出
strOutText1 = Mid(OutText, 1, iLen - iStart)
Call mWriteText(X, Y1, strOutText1)
strOutText1 = Mid(OutText, iLen - iStart + 1, iStart)
Y1 = Y1 + VsPreview.TextHei
Call mWriteText(X, Y1, strOutText1)
Else
iSepTop = (gRowHeight - VsPreview.TextHei) / 2
Y = mTop + iSepTop + 30
'判断是否满一页
Call mWriteText(X, Y, OutText)
End If
left = left + gColWidth(i + 1)
Next i
Rs.MoveNext
left = VsPreview.Marginleft
mTop = mTop + gRowHeight
Loop
Rs.Close
mbPreviewStudent = True
Exit Function
ErrPreviewStudent:
Screen.MousePointer = vbDefault
mbPreviewStudent = False
gShowMsg "预览学生名单出错 frmPreview.mbPreviewStudent"
End Function
Private Function mbPrintStudent() As Boolean
'*************************************************
'打印学生班级名单
Dim sSQL As String
Dim Rs As New ADODB.Recordset
Dim iCount As Integer
Dim i As Integer
Dim TmpFmt As String
Dim TmpHead As String
Dim strBody As String
Dim tmpContent As String
Dim ClassName As String
Dim iRow As Integer
Dim Upper As Integer
Dim iCol As Integer
Dim ColWidth(1 To 50) As Integer
On Error GoTo ErrPrintStudent
'读取标题和列宽内容
If mbSetColumnData() = False Then mbPrintStudent = False: Exit Function
'读取班级信息
If mbSetClassData() = False Then mbPrintStudent = False: Exit Function
Timer1.Enabled = True
' mbBeginLine = False
' vspreview.StartDoc
' vspreview.FontName = "宋体"
' mbBeginLine = True
'
' For I = 0 To Upper - 1
'
' mbSetNextColumn = False
'
' vspreview.NewPage
'
' '设置主标题
' If mbSetClassTitle(I) = False Then mbPrintStudent = False: Exit Function
'
' '设置列标题
' If mbSetColumn() = False Then mbPrintStudent = False: Exit Function
'
' '列表学生名单
' If mbPreviewStudent(I) = False Then mbPrintStudent = False: Exit Function
'
' Next I
'
' vspreview.EndDoc
mbPrintStudent = True
Exit Function
ErrPrintStudent:
Screen.MousePointer = vbDefault
mbPrintStudent = False
mbBeginLine = False
mbEndLine = True
gShowMsg "打印学生名单出错: frmPreview.mbPrint"
End Function
''Private Function mbSetFirstPreview() As Boolean
''首次显示时——延迟显示数据
''
'' If VsPreview.PaperSize = pprUser Then
'' VsPreview.PageHeight = gMMtoTwip(268)
'' VsPreview.PageWidth = gMMtoTwip(194)
'' End If
''
'' If gDataSourceType = abSelect Then
'' mbSetFirstPreview = mbPrintStudent
'' ElseIf gDataSourceType = abVsf Then
'' mbSetFirstPreview = mbPrintVsfFirst
'' ElseIf gDataSourceType = abLvw Then
'' mbSetFirstPreview = mbPrintLvwFirst
'' ElseIf gDataSourceType = abDB Then
'' mbSetFirstPreview = mbPrintDBFirst
'' End If
''
''End Function
Private Function mbPrintMuliVsfFirst() As Boolean
'****************************************************
'
'首次打印MuliVsFlex表格
'
'**************************************************
If mbSetColumnData() = False Then mbPrintMuliVsfFirst = False: Exit Function
Timer1.Enabled = True
mbPrintMuliVsfFirst = True
End Function
Private Function mbPrintVsfFirst() As Boolean
'****************************************************
'
'首次打印VsFlex表格
'
'**************************************************
If mbSetColumnData() = False T
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?