📄
字号:
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'**********************************************************
'* 模 块 名 称 :计划价调整
'* 功 能 描 述 :调整存货的计划单价
'* 程序员姓名 :白凤英
'* 最后修改人 :白凤英
'* 最后修改时间:2001/12/11
'* 备 注:
'**********************************************************
Dim BillCode As String '单据设计编码(索引号)
Dim Rec_CodeSet As New ADODB.Recordset '编码设置表
Dim jdzygs As Integer '控件焦点转移个数
Dim Lrzt As Integer '录入状态标志(0-非录入状态 1-增加 2-修改)
Dim ReportTitle As String '报表主标题
Public Str_QueryCondi As String '单据组查询条件(接收查询条件)
Dim Str_RightEdit As String '编辑(新增、修改、删除)权限索引
'以下为固定使用变量(网格)
Dim Cxnrrec As New ADODB.Recordset '显示查询内容动态集
Dim Dyymctbl As New DY_Dyymsz '打印页面窗体变量
Dim GridCode As String '显示网格网格代码
Dim GridInf() As Variant '整个网格设置信息
Dim Tsxx As String '系统提示信息
Dim Qslz As Long '网格隐藏(非操作显示)列数
Dim Sjhgd As Double '网格数据行高度
Dim GridBoolean() As Boolean '网格列信息(布尔型)
Dim GridStr() As String '网格列信息(字符型)
Dim GridInt() As Integer '网格列信息(整型)
Dim Szzls As Integer '数组总列数(网格列数-1)
'以下为固定使用变量(文本框)
Dim Textvar() As Variant '存储变体型文本框信息
Dim Textboolean() As Boolean '存储布尔型文本框信息
Dim Textint() As Integer '存储整型文本框信息
Dim Textstr() As String '存储字符型文本框信息
Dim Max_Text_Index As Integer '最大录入文本框索引值
Dim TextGroupCode As String '文本框录入分组编码
Dim TextValiLock As Boolean '文本框失去焦点是否进行有效性控制判断
Dim TextValiJudgeLock() As Boolean '文本框录入有效性判断控制锁
Dim CurTextIndex As Integer '当前文本框索引值
Dim TextChangeLock As Boolean '文本框内容变换控制锁
Dim Bln_Cancel As Boolean '取消按钮信息传递
Private Sub Form_KeyPress(KeyAscii As Integer) '控 制 焦 点 转 移
jdzygs = 10
Select Case KeyAscii
Case vbKeyReturn
If Kjjdzy(jdzygs) Then
KeyAscii = 0
End If
Case 39 '屏蔽"'"
KeyAscii = 0
End Select
End Sub
Private Sub Form_Load()
'打印报表标题信息
ReportTitle = "计划价调整列表"
'调入打印页面设置窗体
XtReportCode = "Chhs_AdjustPlan"
Load Dyymctbl
BillCode = "1303"
'以下为文本框处理程序(读入文本框录入信息)
TextGroupCode = "Chhs_AdjustPlan"
Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())
Call Wbkcsh
'调入显示网格设置信息
GridCode = "Chhs_AdjustPlan"
Call BzWgcsh(XsGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
XsGridQslz = GridInf(1)
'调入列表网格设置信息
GridCode = "Chhs_AdjustPlanList"
Call BzWgcsh(CzxsGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
Qslz = GridInf(1)
Sjhgd = GridInf(2)
Szzls = CzxsGrid.Cols - 1
'设置查询条件
Str_QueryCondi = " kjyear=" & PGKjYear & " and period=" & PGNowmon
'填 充 网 格
Call Cxnrtcwg
If Xtcdcs = "1" Then
'初始化ToolBar,Tab卡状态
StTab.Tab = 0
StTab.TabEnabled(1) = False
Frame1.Enabled = False
'设置为非录入状态
Lrzt = 0
'调整工具条状态
Call Toolfbjzt
Else
'初始化ToolBar,Tab卡状态
StTab.Tab = 1
StTab.TabEnabled(0) = False
Frame1.Enabled = True
Lrzt = 2
Call Toolbjzt
Call Cshlrxx(Lrzt, Val(Xtcdcsfz))
LrText(0).Enabled = False
LrText(1).Enabled = False
LrText(2).Enabled = False
LrText(3).Enabled = False
LrText(4).Enabled = False
LrText(5).Enabled = False
GsToolbar.Visible = False
SzToolbar.Buttons("fq").Enabled = False
End If
'编辑(新增、修改、删除)权限索引
Str_RightEdit = "Chhs_PlanAdjustEdit"
End Sub
Private Sub Cxnrtcwg() '查询内容填充网格
Dim SqlStr As String '查询连接串
Dim Jsqte As Long '查询临时使用变量
'为加快显示速度,将网格刷新动作冻结
CzxsGrid.Redraw = False
'[>>查询连接串
SqlStr = "SELECT DISTINCT PlanAdjustMainId, BillDate, MNumber, MName, Model FROM Chhs_V_AdjustPlan a WHERE " & Str_QueryCondi & " order by a.Mnumber,a.billdate"
'<<]
Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(SqlStr)
With Cxnrrec
CzxsGrid.Rows = CzxsGrid.FixedRows
If .EOF And .BOF Then
CzxsGrid.Redraw = True
Exit Sub
End If
Jsqte = CzxsGrid.FixedRows
Do While Not .EOF
CzxsGrid.AddItem ""
Call Jltcwg(Cxnrrec, Jsqte) '调入填充网格子过程
CzxsGrid.RowHeight(Jsqte) = Sjhgd '设置网格高度
.MoveNext
Jsqte = Jsqte + 1
Loop
End With
'将网格刷新动作解冻
CzxsGrid.Redraw = True
End Sub
Private Sub Jltcwg(Jlbrec As ADODB.Recordset, Rowjsq As Long) '记录内容填充网格
'[>>以下为自定义部分
With Jlbrec
CzxsGrid.TextMatrix(Rowjsq, 0) = Trim(.Fields("PlanAdjustMainId") & "") '主表ID
CzxsGrid.TextMatrix(Rowjsq, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("Mnumber") & "") '存货编码
CzxsGrid.TextMatrix(Rowjsq, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("Mname") & "") '存货名称
CzxsGrid.TextMatrix(Rowjsq, Sydz("003", GridStr(), Szzls)) = Trim(.Fields("Model") & "") '规格型号
CzxsGrid.TextMatrix(Rowjsq, Sydz("004", GridStr(), Szzls)) = Format(Trim(.Fields("BillDate") & ""), "yyyy-mm-dd") '调整日期
End With
'以上为自定义部分<<]
End Sub
Private Sub Form_Unload(Cancel As Integer) '窗体卸载
Set Cxnrrec = Nothing
Set Rec_CodeSet = Nothing
Unload Dyymctbl
'用户退出时写上机日志
Security_Log "Chhs_AdjustPlan", Xtczybm, 2, False
End Sub
Private Function Sub_SaveBill() As Boolean '保 存 单 据
Dim Rectemp As New ADODB.Recordset '临时使用动态集
Dim Rec_VouchMain As New ADODB.Recordset '单据主表动态集
Dim Rec_VouchSub As New ADODB.Recordset '单据子表动态集
Dim Rec_List As New ADODB.Recordset '明细帐表动态集
Dim Rec_Mate As New ADODB.Recordset '总帐表动态集
Dim Rowjsq As Long '网格行计数器
Dim Coljsq As Long '网格列计数器
Dim Jsqte As Integer '临时计数器
Dim Lng_RowCount As Long '有效数据行计数器
Dim Lrywlz As Long '录入有误列值
Dim NewMainId As Integer '主表ID
Dim mPeriod As Integer '当前会计期间
Sub_SaveBill = False
'如果文本框处于编辑状态,则先进性文本框的有效性判断
If Not TextYxxpd(1) Then
Sub_SaveBill = False
Exit Function
End If
If Not TextYxxpd(4) Then
Sub_SaveBill = False
Exit Function
End If
'一.============先对单据内容进行有效性判断==============='
'先进行字段不能为空或不能为零有效性判断(Fixed)
For Jsqte = 0 To Max_Text_Index
If Textint(Jsqte, 8) = 1 Then '字段不能为空
If Len(Trim(LrText(Jsqte).Text)) = 0 Then
Tsxx = Textstr(Jsqte, 7) & "不能为空!"
Call Xtxxts(Tsxx, 0, 1)
LrText(Jsqte).SetFocus
Exit Function
End If
Else
If Textint(Jsqte, 8) = 2 Then '字段不能为零
If Val(Trim(LrText(Jsqte).Text)) = 0 Then
Tsxx = Textstr(Jsqte, 7) & "不能为零!"
Call Xtxxts(Tsxx, 0, 1)
LrText(Jsqte).SetFocus
Exit Function
End If
End If
End If
Next Jsqte
'对需要进行事后判断的文本框录入内容进行有效性判断 (Fixed)
For Jsqte = 0 To Max_Text_Index
If Textint(Jsqte, 9) = 0 Or Textint(Jsqte, 9) = 2 Then
If Not TextYxxpd(Jsqte) Then
Call TextShow(Jsqte)
Exit Function
End If
End If
Next Jsqte
'[>>
'可在此区域写入其他对单据表头内容的有效性判断.
'<<]
'[>>下面将对所有有效数据行进行有效性判断
Lng_RowCount = 0
With XsGrid
For Rowjsq = .FixedRows To .Rows - 1
'1.首先进行为空或为零判断(Fixed)
For Jsqte = Qslz To .Cols - 1
'字段不能为空
If GridInt(Jsqte, 5) = 1 Then
If Len(Trim(.TextMatrix(Rowjsq, Jsqte))) = 0 Then
Tsxx = GridStr(Jsqte, 2)
Lrywlz = Jsqte
GoTo Lrcwcl
Exit For
End If
End If
'字段不能为零
If GridInt(Jsqte, 5) = 2 Then
If Val(Trim(.TextMatrix(Rowjsq, Jsqte))) = 0 Then
Tsxx = GridStr(Jsqte, 2)
Lrywlz = Jsqte
GoTo Lrcwcl
Exit For
End If
End If
Next Jsqte
Next Rowjsq
'[>>
'此处可以定义整张单据不能通过有效性检查的理由
'<<]
End With '网格
'二.=============如果以上有效性检查均顺利通过,则执行存盘动作============'
mPeriod = PGNowmon
'对存盘进行事务处理(Fixed)
On Error GoTo Swcwcl
Cw_DataEnvi.DataConnect.BeginTrans
'判断单据状态以进行不同处理
'1.先对单据主表进行处理
'开始存盘
'打开单据主表动态集
If Rec_VouchMain.State = 1 Then Rec_VouchMain.Close
Rec_VouchMain.Open "Select * From Chhs_PlanAdjustMain Where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
With Rec_VouchMain
.AddNew
.Fields("PlanAdjustMainId") = CreatBillID(BillCode) 'Id号
.Fields("BillCode") = BillCode '单据编号
.Fields("BillDate") = CDate(LrText(0).Text) '日期
.Fields("Mnumber") = Trim(LrText(1).Text) '仓库
.Fields("AdjustBeforePrice") = Val(LrText(3).Text) '调整前计划单价
.Fields("AdjustAfterPrice") = Val(LrText(4).Text) '调整后计划单价
.Fields("Remark") = Trim(LrText(5).Text) '备注
.Fields("kjyear") = Xtyear
.Fields("period") = mPeriod
.Update
NewMainId = .Fields("PlanAdjustMainId")
End With
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -