📄 frmnoteprint.frm
字号:
VERSION 5.00
Object = "{F0D2F211-CCB0-11D0-A316-00AA00688B10}#1.0#0"; "MSDATLST.OCX"
Object = "{C932BA88-4374-101B-A56C-00AA003668DC}#1.1#0"; "MSMASK32.OCX"
Begin VB.Form frmNotePrint
BorderStyle = 1 'Fixed Single
Caption = "水费发票打印"
ClientHeight = 3255
ClientLeft = 45
ClientTop = 330
ClientWidth = 7125
Icon = "frmNotePrint.frx":0000
LinkTopic = "Form1"
MaxButton = 0 'False
MDIChild = -1 'True
MinButton = 0 'False
ScaleHeight = 3255
ScaleWidth = 7125
Begin VB.CommandButton cmdCB
Caption = "打印"
Height = 390
Left = 165
TabIndex = 6
Top = 2715
Width = 1095
End
Begin VB.Frame Frame1
Caption = "用户"
ForeColor = &H00800000&
Height = 1575
Left = 135
TabIndex = 15
Top = 810
Width = 6825
Begin VB.TextBox txtUName
Enabled = 0 'False
Height = 345
Left = 3840
TabIndex = 16
Top = 1050
Width = 2865
End
Begin VB.TextBox txtUID
Enabled = 0 'False
Height = 345
Left = 1215
TabIndex = 5
Top = 1050
Width = 1365
End
Begin VB.CheckBox chkPQ
Height = 210
Index = 0
Left = 225
TabIndex = 8
Top = 735
Width = 225
End
Begin VB.CheckBox chkPQ
Enabled = 0 'False
Height = 210
Index = 1
Left = 2970
TabIndex = 9
Top = 735
Width = 225
End
Begin VB.CheckBox chkUser
Height = 225
Left = 225
TabIndex = 10
Top = 1110
Width = 240
End
Begin VB.CheckBox chkChargeType
Height = 210
Left = 225
TabIndex = 7
Top = 270
Width = 225
End
Begin MSDataListLib.DataCombo cboP
Height = 330
Left = 1215
TabIndex = 3
Top = 675
Width = 1365
_ExtentX = 2408
_ExtentY = 582
_Version = 393216
Enabled = 0 'False
Style = 2
Text = ""
End
Begin MSDataListLib.DataCombo cboQ
Height = 330
Left = 3840
TabIndex = 4
Top = 675
Width = 1380
_ExtentX = 2434
_ExtentY = 582
_Version = 393216
Enabled = 0 'False
Style = 2
Text = ""
End
Begin MSDataListLib.DataCombo cboChargeType
Height = 330
Left = 1770
TabIndex = 2
Top = 195
Width = 3420
_ExtentX = 6033
_ExtentY = 582
_Version = 393216
Enabled = 0 'False
Style = 2
Text = ""
End
Begin VB.Line Line2
BorderColor = &H80000005&
Index = 0
X1 = 90
X2 = 6705
Y1 = 600
Y2 = 600
End
Begin VB.Line Line2
BorderColor = &H80000003&
Index = 1
X1 = 90
X2 = 6705
Y1 = 585
Y2 = 585
End
Begin VB.Label Label4
Caption = "用户缴费类型:"
Height = 210
Left = 495
TabIndex = 21
Top = 285
Width = 1350
End
Begin VB.Label lblUserName
Caption = "用户名:"
Height = 195
Left = 3090
TabIndex = 20
Top = 1125
Width = 735
End
Begin VB.Label lblPID
Caption = "片区:"
Height = 195
Left = 495
TabIndex = 19
Top = 750
Width = 555
End
Begin VB.Label lblQID
Caption = "小区:"
Height = 195
Left = 3255
TabIndex = 18
Top = 735
Width = 555
End
Begin VB.Label lblUserID
Caption = "用户号:"
Height = 195
Left = 495
TabIndex = 17
Top = 1140
Width = 1470
End
End
Begin VB.Frame Frame2
Caption = "时段"
ForeColor = &H00800000&
Height = 645
Left = 150
TabIndex = 11
Top = 120
Width = 6810
Begin VB.ComboBox cboMonth
Height = 300
ItemData = "frmNotePrint.frx":0442
Left = 2820
List = "frmNotePrint.frx":0444
Style = 2 'Dropdown List
TabIndex = 1
Top = 210
Width = 990
End
Begin MSMask.MaskEdBox txtYear
Height = 300
Left = 1635
TabIndex = 0
Top = 210
Width = 885
_ExtentX = 1561
_ExtentY = 529
_Version = 393216
MaxLength = 4
Mask = "9999"
PromptChar = " "
End
Begin VB.Label Label5
Caption = "水费时段:"
Height = 210
Left = 360
TabIndex = 14
Top = 255
Width = 975
End
Begin VB.Label Label7
Caption = "年"
Height = 210
Left = 2565
TabIndex = 13
Top = 270
Width = 225
End
Begin VB.Label Label8
Caption = "月份"
Height = 210
Left = 3855
TabIndex = 12
Top = 285
Width = 405
End
End
Begin VB.Line Line1
BorderColor = &H80000003&
Index = 1
X1 = 90
X2 = 7035
Y1 = 2580
Y2 = 2580
End
Begin VB.Line Line1
BorderColor = &H80000005&
Index = 0
X1 = 90
X2 = 7020
Y1 = 2595
Y2 = 2595
End
End
Attribute VB_Name = "frmNotePrint"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Public strReturnYear As String '返回值-用水时段年
Public strReturnMonth As String '返回值-用水时段月
Public strReturnChargeTypeID As String '返回值-用户交费类型号
Public strReturnChargeTypeName As String '返回值-用户交费类型名
Public strReturnPID As String '返回值-片号
Public strReturnQID As String '返回值-区号
Public strReturnPName As String '返回值-片名
Public strReturnQName As String '返回值-区名
Public strReturnUID As String '返回值-用户号
Dim adoPRS As ADODB.Recordset
Dim adoQRS As ADODB.Recordset
Dim adoChargeTypeRS As ADODB.Recordset
Dim adoWaterRateRS As ADODB.Recordset '计费记录集(用户所选择的要打印的用户计费记录)
Dim strCurJFYm As String '当前要打印发票(已经计过费)的计费年月
Private Sub cboMonth_Change()
If Val(Me.txtYear.Text) = Year(Date) And Me.cboMonth.ListIndex > Month(Date) - 1 Then
Warning "月份不能大于当前月份!!!"
Me.cboMonth.SetFocus
Exit Sub
End If
End Sub
Private Sub chkChargeType_Click()
If Me.chkChargeType.value = 0 Then
Call ClearChargeType
Me.cboChargeType.Enabled = False
Else
Call FillChargeType
Me.cboChargeType.Enabled = True
Me.cboChargeType.SetFocus
Me.chkUser.value = 0
End If
End Sub
Private Sub cmdCB_Click()
Dim strSQL As String
Dim bytReturmFlag As Byte
Dim strYm As String
Dim lngNumberOfRecord As Long
Dim lngCurRecord As Long
'时段
strReturnYear = Trim(Me.txtYear.Text)
strReturnMonth = Me.cboMonth.Text
strYm = strReturnYear & strReturnMonth
lngNumberOfRecord = gConnect.Execute("select count(*) from WaterRate where Ym='" & strYm & "'").Fields(0).value
If lngNumberOfRecord = 0 Then
Warning "该月尚未计费!!!"
Exit Sub
End If
'生成查询条件
strSQL = "select WaterRate.No,WaterRate.Ym,WaterRate.PID,WaterRate.QID,WaterRate.UID,WaterRate.UName,WaterRate.LinkAddr,WaterRate.UTypeID,WaterRate.ChargeTypeID,WaterRate.Price,WaterRate.PmWaterRead,WaterRate.CmWaterRead,WaterRate.WaterRevise,WaterRate.PmOwe,WaterRate.CmOwe,WaterRate.WaterRates,WaterRate.FineRule,WaterRate.Status,WaterRate.IID,WaterRate.CmWaterRead-WaterRate.PmWaterRead+WaterRate.WaterRevise as TmpWaterRevise from WaterRate where WaterRate.Ym='" & strYm & "' and rtrim(WaterRate.IID)='' and WaterRate.WaterRates>0"
'用户
If Me.chkChargeType.value = 1 And Trim(Me.cboChargeType.Text) <> "" Then
strReturnChargeTypeID = Me.cboChargeType.BoundText
strReturnChargeTypeName = Trim(Me.cboChargeType.Text)
strSQL = strSQL & " and WaterRate.ChargeTypeID='" & strReturnChargeTypeID & "' "
End If
If Me.chkPQ(0).value = 1 And Trim(Me.cboP.Text) <> "" Then
strReturnPID = Me.cboP.BoundText
strReturnPName = Trim(Me.cboP.Text)
strSQL = strSQL & " and WaterRate.PID='" & strReturnPID & "' "
End If
If Me.chkPQ(1).value = 1 And Trim(Me.cboQ.Text) <> "" Then
strReturnQID = Me.cboQ.BoundText
strReturnQName = Trim(Me.cboQ.Text)
strSQL = strSQL & " and WaterRate.QID='" & strReturnQID & "' "
End If
If Me.chkUser.value = 1 And Trim(Me.txtUID.Text) <> "" Then
strReturnUID = Trim(Me.txtUID.Text)
strSQL = strSQL & " and WaterRate.UID='" & strReturnUID & "' "
End If
strSQL = strSQL & " order by WaterRate.UID"
'生成记录集
On Error GoTo errHandleOpen
adoWaterRateRS.Close
adoWaterRateRS.Open strSQL
On Error GoTo 0
If adoWaterRateRS.EOF And adoWaterRateRS.BOF Then
Warning "没有符合条件的计费记录!!!"
Exit Sub
End If
Do While True
bytReturmFlag = MsgBox("注意:请仔细检查用户交费类型选项是否正确,确保无误后再打印。" & Chr(13) & Chr(13) & "请准备好打印机(联机),装好打印纸,按'确定'开始打印所选择的用户发票...", vbOKCancel + vbInformation, "提示信息")
If bytReturmFlag = vbCancel Then Exit Sub
Select Case DetectPrinterState()
Case Ready '准备好
Exit Do
Case Offline '不在线
Warning "打印机没有联机!"
Case NoPaper '缺纸
Warning "打印机缺纸!"
Case AnotherState '其它状态
Warning "打印机出现故障,请检查!"
End Select
Loop
Call PlanBeging(adoWaterRateRS.RecordCount, 0)
adoWaterRateRS.MoveFirst
lngCurRecord = 1
Do While Not adoWaterRateRS.EOF
Call PlanStep(adoWaterRateRS!Uid, lngCurRecord)
'更新相关表(1:发票表,2:计费表)
If UpdateTable() = False Then Exit Sub
'实际打印过程
Printer.PaperSize = 129
Printer.ScaleMode = vbMillimeters
Printer.CurrentY = 5
Printer.CurrentX = 80
Printer.Print (adoWaterRateRS!IID)
Printer.CurrentY = 10
Printer.CurrentX = 5
Printer.Print (adoWaterRateRS!Ym)
Printer.CurrentY = 10
Printer.CurrentX = 25
Printer.Print (adoWaterRateRS!Uid)
Printer.CurrentY = 10
Printer.CurrentX = 70
Printer.Print (adoWaterRateRS!PID)
Printer.CurrentY = 10
Printer.CurrentX = 85
Printer.Print (adoWaterRateRS!QID)
Printer.CurrentY = 16
Printer.CurrentX = 20
Printer.Print (adoWaterRateRS!UName)
Printer.CurrentY = 22
Printer.CurrentX = 20
Printer.Print (adoWaterRateRS!LinkAddr)
Printer.CurrentY = 28
Printer.CurrentX = 20
Printer.Print (Format(adoWaterRateRS!PmWaterRead, "0.00"))
Printer.CurrentY = 28
Printer.CurrentX = 45
Printer.Print (Format(adoWaterRateRS!CmWaterRead, "0.00"))
Printer.CurrentY = 28
Printer.CurrentX = 70
Printer.Print (Format(adoWaterRateRS!TmpWaterRevise, "0.00"))
Printer.CurrentY = 34
Printer.CurrentX = 20
Printer.Print (Format(adoWaterRateRS!PmOwe, "0.00"))
Printer.CurrentY = 34
Printer.CurrentX = 45
Printer.Print (Format(adoWaterRateRS!CmOwe, "0.00"))
Printer.CurrentY = 40
Printer.CurrentX = 30
Printer.Print (Format(adoWaterRateRS!Price, "0.00"))
Printer.CurrentY = 40
Printer.CurrentX = 50
Printer.Print (Format(adoWaterRateRS!TmpWaterRevise, "0.00"))
Printer.CurrentY = 40
Printer.CurrentX = 70
Printer.Print (Format(adoWaterRateRS!WaterRates, "0.00"))
Printer.CurrentY = 46
Printer.CurrentX = 70
Printer.Print (Format(adoWaterRateRS!WaterRates, "0.00"))
Printer.CurrentY = 52
Printer.CurrentX = 30
Printer.Print (Format(adoWaterRateRS!WaterRevise, "0.00"))
Printer.CurrentY = 52
Printer.CurrentX = 70
Printer.Print (Date)
Printer.EndDoc
adoWaterRateRS.MoveNext
lngCurRecord = lngCurRecord + 1
Loop
' Set rptWaterrateInvoice.DataSource = adoWaterRateRS
' rptWaterrateInvoice.Show
Call PlanEnd
Exit Sub
errHandleOpen:
Warning "计费记录查询失败!" & Chr(13) & Err.Description
On Error GoTo 0
End Sub
Private Sub Form_Load()
MoveToCenter gMainFormRefer, Me
Me.Show
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -