📄 +
字号:
Szzls = CxbbGrid.Cols - 1
'调 入 网 格 2
GridCode1 = "Xs_M_ReturnMoneyHX"
Call BzWgcsh(CxbbGrid1, GridCode1, GridInf1(), GridBoolean1(), GridInt1(), GridStr1())
Qslz1 = GridInf1(1)
Sjhgd1 = GridInf1(2)
Szzls1 = CxbbGrid1.Cols - 1
'对网格进行特殊设置
CxbbGrid.Editable = True
CxbbGrid1.Editable = True
Timer1.Enabled = True
With Xs_M_ReturnMoneyList.CxbbGrid
Custom.Tag = Trim(.TextMatrix(.Row, 1)) '客户编码
Custom.Text = Trim(.TextMatrix(.Row, Sydz("005", GridStr(), Szzls))) '部门名称
End With
End Sub
Private Sub Form_Unload(Cancel As Integer) '窗体卸载
'卸载条件窗体
Unload Me
End Sub
Private Sub SzToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
Case "qbxz" '全 选
Call Sub_SelectAll
Case "qbqx" '全 消
Call Sub_AbandonAll
Case "hx" '手工核销
Call Sub_SaveData
Case "sx" '刷 新
Call Timer1_Timer
Case "bz" '帮 助
Call F1bz
Case "fh" '退 出
Unload Me
End Select
End Sub
Private Sub Timer1_Timer()
Timer1.Enabled = False
Xt_Wait.Show
Xt_Wait.Refresh
'加快显示速度
CxbbGrid.Redraw = False
Call Sub_Query1 '发货单
Call Sub_Query2 '回款
CxbbGrid.Redraw = True
Xt_Wait.Hide
End Sub
Private Sub Sub_Query1() '生成查询结果(发货单)
Dim Rec_Query As New ADODB.Recordset '查询结果动态集
Dim Sqlstr As String '查询字符串
Dim Coljsq As Long '网格列计数器
Dim Jsqte As Integer '临时动态计数器
'以下为自定义部分[
Str_QueryCondi = " where (billtype=1 or consignflag=1 and (kdflag=0 or receiveflag=1)) and checker <>'' and settleallflag=0 and Cuscode='" & Xs_M_ReturnMoneyList.CustomCode & "'"
'生成应收款查询结果
Sqlstr = "SELECT * From xs_v_consignbill " & Str_QueryCondi & " ORDER BY makedate,consignbillmainid,consignbillsubid"
Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
With Rec_Query
CxbbGrid.Rows = CxbbGrid.FixedRows
CxbbGrid.Rows = CxbbGrid.FixedRows + .RecordCount + 1
Jsqte = CxbbGrid.FixedRows
Do While Not .EOF
If Jsqte >= CxbbGrid.Rows Then
CxbbGrid.AddItem ""
End If
CxbbGrid.TextMatrix(Jsqte, 0) = Trim(.Fields("consignbillmainid")) '发货单或退货单ID
CxbbGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = Jsqte - CxbbGrid.FixedRows + 1 '行值
CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = False '选中
CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = Format(.Fields("MakeDate"), "yyyy-mm-dd") '单据日期
CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = Trim(.Fields("consigncode") & "") '单据号
CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = Trim(.Fields("whname") & "") '货物名称
CxbbGrid.TextMatrix(Jsqte, 1) = Trim(.Fields("warecode") & "") '货物编码
CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = Val(.Fields("capitalwhole") & "") '金额
CxbbGrid.TextMatrix(Jsqte, Sydz("007", GridStr(), Szzls)) = Val(.Fields("capitalwhole") & "") - Val(.Fields("capreturnmoney") & "") '未核销金额
CxbbGrid.TextMatrix(Jsqte, Sydz("008", GridStr(), Szzls)) = "" '本次核销金额
CxbbGrid.TextMatrix(Jsqte, Sydz("009", GridStr(), Szzls)) = False '是否销尽
CxbbGrid.RowHeight(Jsqte) = Sjhgd
Jsqte = Jsqte + 1
.MoveNext
Loop
CxbbGrid.RowHeight(Jsqte) = Sjhgd
CxbbGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = "合计"
End With
']以上为用户自定义部分
End Sub
Private Sub Sub_Query2() '生成查询结果(回款)
Dim Rec_Query As New ADODB.Recordset '查询结果动态集
Dim Sqlstr As String '查询字符串
Dim Coljsq As Long '网格列计数器
Dim Jsqte As Integer '临时动态计数器
'以下为自定义部分[
Str_QueryCondi = " where checker <>'' and capitalremainmoney<>0 and Cuscode='" & Xs_M_ReturnMoneyList.CustomCode & "'"
'生成应收款查询结果
Sqlstr = "SELECT * From Xs_V_ReturnMoney " & Str_QueryCondi & " ORDER BY makerdate,ReturnMoneyId"
Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
With Rec_Query
CxbbGrid1.Rows = CxbbGrid1.FixedRows
CxbbGrid1.Rows = CxbbGrid1.FixedRows + .RecordCount + 1
Jsqte = CxbbGrid1.FixedRows
Do While Not .EOF
If Jsqte >= CxbbGrid1.Rows Then
CxbbGrid1.AddItem ""
End If
CxbbGrid1.TextMatrix(Jsqte, 0) = Trim(.Fields("ReturnMoneyId")) '发货单或退货单ID
CxbbGrid1.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = Jsqte - CxbbGrid1.FixedRows + 1 '行值
CxbbGrid1.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = False '选中
CxbbGrid1.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = Format(.Fields("MakerDate"), "yyyy-mm-dd") '单据日期
CxbbGrid1.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = Trim(.Fields("ReturnMoneyCode") & "") '单据号
CxbbGrid1.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = Val(.Fields("CapitalReturnMoney") & "") '金额
CxbbGrid1.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = Val(.Fields("CapitalRemainMoney") & "") '未核销金额
CxbbGrid1.TextMatrix(Jsqte, Sydz("007", GridStr(), Szzls)) = "" '本次核销金额
CxbbGrid1.RowHeight(Jsqte) = Sjhgd
Jsqte = Jsqte + 1
.MoveNext
Loop
CxbbGrid1.RowHeight(Jsqte) = Sjhgd
CxbbGrid1.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = "合计"
End With
']以上为用户自定义部分
End Sub
'输入本次核销金额(网格1)
Private Sub CxbbGrid_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)
With CxbbGrid
If Not GridBoolean(.Col, 1) Or .Row < .FixedRows Or .Row = .Rows - 1 Then
Cancel = True
End If
If GridInt(.Col, 2) <> 0 Then
CxbbGrid.EditMaxLength = GridInt(.Col, 2)
Else
CxbbGrid.EditMaxLength = 3000
End If
End With
End Sub
Private Sub CxbbGrid_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)
With CxbbGrid
If Col = Sydz("008", GridStr(), Szzls) And CxbbGrid.Cell(flexcpBackColor, Row, Col) <> Ydtext.BackColor Then
.TextMatrix(.Rows - 1, Col) = Val(.TextMatrix(.Rows - 1, Col)) - Val(.TextMatrix(.Row, Col))
.CellBackColor = Ydtext.BackColor
.EditText = ""
End If
End With
Call Sub_Lrxszxz(CxbbGrid, KeyAscii)
End Sub
Private Sub CxbbGrid_ChangeEdit()
With CxbbGrid
Select Case GridInt(.Col, 1)
Case 8
Call Sub_Sjgskz(CxbbGrid, Xtjezws - Xtjexsws - 1, Xtjexsws)
Case 9
Call Sub_Sjgskz(CxbbGrid, Xtslzws - Xtslxsws - 1, Xtslxsws)
Case 10
Call Sub_Sjgskz(CxbbGrid, Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
Case Else
If GridInt(.Col, 3) <> 0 Or GridInt(.Col, 4) <> 0 Then
Call Sub_Sjgskz(CxbbGrid, GridInt(.Col, 3), GridInt(.Col, 4))
End If
End Select
End With
End Sub
Private Sub CxbbGrid_AfterEdit(ByVal Row As Long, ByVal Col As Long) '事后判断用户录入有效性
With CxbbGrid
Select Case Col
Case Sydz("008", GridStr(), Szzls)
.CellBackColor = &H0
If Not Trim(.EditText) = "" Then
If Not IsNumeric(Trim(.TextMatrix(Row, Col))) Then
Tsxx = "数据格式有误!"
Call Xtxxts(Tsxx, 0, 4)
.TextMatrix(Row, Col) = ""
Exit Sub
End If
End If
If Val(.TextMatrix(Row, Sydz("007", GridStr(), Szzls))) < 0 Then
.TextMatrix(Row, Col) = -Abs(Val(.TextMatrix(Row, Col)))
Else
.TextMatrix(Row, Col) = Abs(Val(.TextMatrix(Row, Col)))
End If
.TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = True
If Abs(.TextMatrix(Row, Col)) >= Abs(.TextMatrix(Row, Sydz("007", GridStr(), Szzls))) Then
.TextMatrix(Row, Col) = Val(.TextMatrix(Row, Sydz("007", GridStr(), Szzls)))
.TextMatrix(Row, Sydz("009", GridStr(), Szzls)) = True
Else
.TextMatrix(Row, Sydz("009", GridStr(), Szzls)) = False
End If
If Val(.TextMatrix(Row, Col)) = 0 Then
.TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = False
.TextMatrix(Row, Sydz("009", GridStr(), Szzls)) = False
.TextMatrix(Row, Sydz("008", GridStr(), Szzls)) = ""
End If
.TextMatrix(.Rows - 1, Col) = Val(.TextMatrix(.Rows - 1, Col)) + Val(.TextMatrix(Row, Col))
Case Sydz("002", GridStr(), Szzls)
If Val(.TextMatrix(Row, Sydz("008", GridStr(), Szzls))) = 0 Then
.TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = False
Else
.TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = True
End If
.TextMatrix(.Rows - 1, Sydz("002", GridStr(), Szzls)) = False
Case Sydz("009", GridStr(), Szzls)
.TextMatrix(.Rows - 1, Sydz("009", GridStr(), Szzls)) = False
End Select
End With
End Sub
'输入本次核销金额(网格2)
Private Sub CxbbGrid1_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)
With CxbbGrid1
If Not GridBoolean1(.Col, 1) Or .Row < .FixedRows Or .Row = .Rows - 1 Then
Cancel = True
End If
If GridInt1(.Col, 2) <> 0 Then
CxbbGrid1.EditMaxLength = GridInt1(.Col, 2)
Else
CxbbGrid1.EditMaxLength = 3000
End If
End With
End Sub
Private Sub CxbbGrid1_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)
With CxbbGrid1
If Col = Sydz("007", GridStr(), Szzls) And .Cell(flexcpBackColor, Row, Col) <> Ydtext.BackColor Then
.TextMatrix(.Rows - 1, Col) = Val(.TextMatrix(.Rows - 1, Col)) - Val(.TextMatrix(.Row, Col))
.CellBackColor = Ydtext.BackColor
.EditText = ""
End If
End With
Call Sub_Lrxszxz(CxbbGrid1, KeyAscii)
End Sub
Private Sub CxbbGrid1_ChangeEdit()
With CxbbGrid1
Select Case GridInt1(.Col, 1)
Case 8
Call Sub_Sjgskz(CxbbGrid1, Xtjezws - Xtjexsws - 1, Xtjexsws)
Case 9
Call Sub_Sjgskz(CxbbGrid1, Xtslzws - Xtslxsws - 1, Xtslxsws)
Case 10
Call Sub_Sjgskz(CxbbGrid1, Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
Case Else
If GridInt1(.Col, 3) <> 0 Or GridInt1(.Col, 4) <> 0 Then
Call Sub_Sjgskz(CxbbGrid1, GridInt1(.Col, 3), GridInt1(.Col, 4))
End If
End Select
End With
End Sub
Private Sub CxbbGrid1_AfterEdit(ByVal Row As Long, ByVal Col As Long) '事后判断用户录入有效性
With CxbbGrid1
Select Case Col
Case Sydz("007", GridStr(), Szzls)
.CellBackColor = &H0
If Not Trim(.EditText) = "" Then
If Not IsNumeric(Trim(.TextMatrix(Row, Col))) Then
Tsxx = "数据格式有误!"
Call Xtxxts(Tsxx, 0, 4)
.TextMatrix(Row, Col) = ""
Exit Sub
End If
End If
If Val(.TextMatrix(Row, Sydz("006", GridStr(), Szzls))) < 0 Then
.TextMatrix(Row, Col) = -Abs(Val(.TextMatrix(Row, Col)))
Else
.TextMatrix(Row, Col) = Abs(Val(.TextMatrix(Row, Col)))
End If
.TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = True
If Abs(.TextMatrix(Row, Col)) >= Abs(.TextMatrix(Row, Sydz("006", GridStr(), Szzls))) Then
.TextMatrix(Row, Col) = Val(.TextMatrix(Row, Sydz("006", GridStr(), Szzls)))
End If
If Val(.TextMatrix(Row, Col)) = 0 Then
.TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = False
.TextMatrix(Row, Sydz("007", GridStr(), Szzls)) = ""
End If
.TextMatrix(.Rows - 1, Col) = Val(.TextMatrix(.Rows - 1, Col)) + Val(.TextMatrix(Row, Col))
Case Sydz("002", GridStr(), Szzls)
If Val(.TextMatrix(Row, Sydz("007", GridStr(), Szzls))) = 0 Then
.TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = False
Else
.TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = True
End If
.TextMatrix(.Rows - 1, Sydz("002", GridStr(), Szzls)) = False
End Select
End With
End Sub
'公用数值控制函数
Private Sub Sub_Lrxszxz(WglrGrid As VSFlexGrid, lrzfasc As Integer) '网格录入带有小数位及正负号数值字段
If Not ((Chr(lrzfasc) >= "0" And Chr(lrzfasc) <= "9") Or (Chr(lrzfasc) = "." And InStr(1, WglrGrid.EditText, ".") = 0) Or lrzfasc = vbKeyBack Or (Chr(lrzfasc) = "-" And WglrGrid.EditSelStart = 0)) Then
lrzfasc = 0
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -