|
我做了个数据库,奇数页上半部分有一些别的数据,所以只能放下24行数据,偶数页就是完全的表格样式,可以放下32行数据,请问怎么设置?
就这样奇数页和偶数页都固定行数,循环使用。
不强制分页,预览的结果正常,但打印的结果不同,会出现错位,打印机不同,效果也是一样。
Option Compare Database
Dim sum1 As Currency
Dim sum11 As Currency
Dim sum111 As Currency
Dim sum2 As Currency
Dim lngA As Long
Dim row As Long
Dim RowsInPage As Integer
Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)
' RowsInPage = 25
' row = row + 1
' If row >= RowsInPage Then
' Me.PageBreak18.Visible = True
' row = -1
' Else
' Me.PageBreak18.Visible = False
' row = 7
' End If
End Sub
Private Sub 主体_Print(Cancel As Integer, PrintCount As Integer)
' sum1 = sum1 + Me.金额.Value
' sum11 = sum11 + Me.税额.Value
' sum111 = sum111 + Me.合计.Value
Dim lngRows As Long '设置第一页行数用
Dim lngRows2 As Long '设置第二页行数用
Dim lngRows3 As Long '设置第、二页总行数用
Dim intAllRows As Integer 'intAllRows 定义为包括空行,完整的行数。
Dim objCtl As Control
lngA = lngA + 1
lngRows = 24 '设置第一页行数为24
ingrows3 = 56
If intAllRows = 0 Then
If txtTotGrp Mod lngRows = 0 Then
intAllRows = txtTotGrp
Else
intAllRows = (Fix(txtTotGrp / lngRows) + 1) * lngRows
End If
End If
Debug.Print intAllRows
'====================================================================
'1
'2-4 设备三个变量
'5 设置 总行数 为24行
'
'当 intAllRows 为0时 这时没有值,所有为0
'执行 判断 数据表中的行 与 ingRows 求余=0
' 则 包含空行的总行数=数据表中的行
' 否则
' 包含空行的总行数=取 数据表中的行/ingRows的整数+1再*原本设置的行数
'
'
'====================================================================
Debug.Print intAllRows
If lngA <= txtTotGrp Then
For Each objCtl In Me.Section(0).Controls
If objCtl.ControlType = acTextBox Then
With objCtl
.Visible = True
End With
End If
Next objCtl
Else
If lngA = intAllRows + 1 Then lngA = 1
For Each objCtl In Me.Section(0).Controls
If objCtl.ControlType = acTextBox Then
With objCtl
.Visible = False
End With
End If
Next objCtl
'设置第一条记录要显示出来
If lngA = 1 Then
For Each objCtl In Me.Section(0).Controls
If objCtl.ControlType = acTextBox Then
With objCtl
.Visible = True
End With
End If
Next objCtl
End If
End If
'以下设定是否进入下一节
If txtTotGrp < intAllRows Then
If lngA < txtTotGrp Then
Me.NextRecord = True
ElseIf (lngA >= txtTotGrp And lngA < intAllRows) Then
Me.NextRecord = False
Else
Me.NextRecord = True
End If
Else
Me.NextRecord = True
End If
End Sub |
|