📄 costprice.cls
字号:
End Property
'GRD原列号属性
Public Property Let lngOldCol(ByVal vData As Long)
Let My.lngOldCol = vData
End Property
Public Property Get lngOldCol() As Long
lngOldCol = My.lngOldCol
End Property
'GRD原行号属性
Public Property Let lngOldRow(ByVal vData As Long)
Let My.lngOldRow = vData
End Property
Public Property Get lngOldRow() As Long
lngOldRow = My.lngOldRow
End Property
Public Property Get grdBorderWidth() As Integer
'当检索属性值时在参数右边使用。
'Syntax: Debug.Print X.grdBorderWidth
grdBorderWidth = intGrdBorderWidth
End Property
Public Property Set Form(ByVal vData As Form)
'当把对象赋值给属性时在 Set 语句左边使用。
'Syntax: Set x.GridName = Form1
ReDim Field(6) '表头输入控件的附加属性
ReDim ColProperty(21) 'GRID附加属性
ReDim arrItemProperty(1) As ItemProperty
lngCurDec = 2
Set frmName = vData
Set NewQ = New UnitCtrl
NewQ.SetWin frmName.QuanInput.hWnd
NewQ.font = frmName.font
#If conWan = 1 Then
' SetToolBar True
#End If
SetRight
frmName.GrdCol.Cols = 22
My.blnIsChanged = False
My.bytRegion = FcmdButton
My.bytIndex = 0
strCurDec = FormatString(gclsBase.NaturalCurDec)
strPriceDec = FormatString(gclsBase.PriceDec)
'设置窗体控件颜色
SetFormColor fccolor
ApplyFormColor frmName, fccolor
SeparateLineColor = fccolor.lngGridLineColor 'GRID列分隔线色
lngBackColor = GetSysColor(COLOR_BTNFACE)
Set clsRecord = New RecordClass
'给GRDCOL设HOOK
Set mclsSubClass = New SubClass32.SubClass
mclsSubClass.hWnd = frmName.GrdCol.hWnd
mclsSubClass.Messages(WM_PAINT) = True
mclsSubClass.Messages(WM_LBUTTONDOWN) = True
mclsSubClass.Messages(WM_LBUTTONUP) = True
Set mclsHook = New SubClass32.SubClass
mclsHook.hWnd = frmName.hWnd
mclsHook.Messages(WM_PAINT) = True
mclsHook.Messages(WM_KEYUP) = True
mclsHook.Messages(WM_GETMINMAXINFO) = True
mclsHook.Messages(WM_WINDOWPOSCHANGING) = True
Set HookHe = New Hook
HookHe.SetHookAll frmName.hWnd
' Set mclsPicHook = New SubClass32.SubClass
' mclsPicHook.hWnd = picInput.hWnd
' mclsPicHook.Messages(WM_PAINT) = True
My.intAccountYear = gclsBase.FYearOfDate(gclsBase.BaseDate) '会计年度
My.bytAccountPeriod = gclsBase.PeriodOfDate(gclsBase.BaseDate) '会计期间
My.blnCtrlBinding = True
My.blnRefresh = False
My.blnPasteRec = False
'设置GRID附加属性
' frmname.grdCol.RowHeight(0) = CLng(frmname.grdCol.RowHeight(0) / 2)
SetColProperty
'创建GRID列粘贴控键
Dim i As Integer
For i = 1 To frmName.GrdCol.Cols '- 1
Load frmName.lblTotal(i)
frmName.lblTotal(i).Caption = ""
frmName.lblTotal(i).ZOrder 0
' 应付单只有4列显示
' If i >= 4 Then
' Exit For
' End If
Next i
frmName.lblTotal(1).Caption = "合计"
' 创建Field控件(表头输入)
CreateField (6)
' GrdAndLabelInitial
ReDim strColRow(frmName.GrdCol.Cols - 1) As String '单据体行复制/粘贴存储区
frmName.refInput(0).BackColor = fccolor.lngBackColor
frmName.refInput(1).BackColor = fccolor.lngBackColor
NewQ.BackColor = fccolor.lngBackColor
setRefer 1
frmName.refInput(1).Appearance = 0
frmName.refInput(1).BorderStyle = 0
frmName.curInput.Move -32000, -32000
frmName.refInput(0).Move -32000, -32000
frmName.refInput(1).Move -32000, -32000
frmName.txtInput.Move -32000, -32000
frmName.dtmInput.Move -32000, -32000
frmName.QuanInput.Move -32000, -32000
#If conWan = 1 Then
SetToolBar True
#End If
End Property
Public Property Get Form() As Object
'当检索属性值时在参数右边使用。
'Syntax: Debug.Print X.GridName
Set Form = frmName
End Property
'确定滚动条的存在(待优化)
Public Sub ScrollBarExist(blnHscroll As Boolean, blnVscroll As Boolean)
Dim intTotalColsWidth As Long
intTotalColsWidth = lngSumOfColWidth()
If frmName.GrdCol.Rows <= 2 Then
'总行数小于2,必无垂直滚动条
blnVscroll = False
If intTotalColsWidth >= frmName.GrdCol.width - 2 * intGrdBorderWidth Then
blnHscroll = True
Else
blnHscroll = False
End If
GoTo EndProc
End If
If (Not frmName.GrdCol.RowIsVisible(frmName.GrdCol.Rows - 1)) Or (Not frmName.GrdCol.RowIsVisible(1)) Then
'第一行或最大行不可视(第0行为固定行),必有垂直滚动条
blnVscroll = True
If intTotalColsWidth >= frmName.GrdCol.width - 2 * intGrdBorderWidth - gclsEniv.VScrollWidth Then
blnHscroll = True
Else
blnHscroll = False
End If
GoTo EndProc
End If
If intTotalColsWidth >= frmName.GrdCol.width - 2 * intGrdBorderWidth Then
blnHscroll = True
If frmName.GrdCol.RowPos(frmName.GrdCol.Rows - 1) + frmName.GrdCol.RowHeight(frmName.GrdCol.Rows - 1) >= frmName.GrdCol.Height - 2 * intGrdBorderHeight - gclsEniv.HScrollHeight Then
blnVscroll = True
Else
blnVscroll = False
End If
GoTo EndProc
End If
If intTotalColsWidth < frmName.GrdCol.width - 2 * intGrdBorderWidth - gclsEniv.VScrollWidth Then
blnHscroll = False
If frmName.GrdCol.RowPos(frmName.GrdCol.Rows - 1) + frmName.GrdCol.RowHeight(frmName.GrdCol.Rows - 1) >= frmName.GrdCol.Height - 2 * intGrdBorderHeight Then
blnVscroll = True
Else
blnVscroll = False
End If
GoTo EndProc
End If
If intTotalColsWidth < frmName.GrdCol.width - 2 * intGrdBorderWidth _
And intTotalColsWidth > frmName.GrdCol.width - 2 * intGrdBorderWidth - gclsEniv.VScrollWidth Then
If frmName.GrdCol.RowPos(frmName.GrdCol.Rows - 1) + frmName.GrdCol.RowHeight(frmName.GrdCol.Rows - 1) >= frmName.GrdCol.Height - 2 * intGrdBorderHeight Then
blnVscroll = True
blnHscroll = True
Else
blnVscroll = False
blnHscroll = False
End If
End If
EndProc:
If frmName.GrdCol.ScrollBars = flexScrollBarNone Or _
frmName.GrdCol.ScrollBars = flexScrollBarVertical Then
blnHscroll = False
End If
If frmName.GrdCol.ScrollBars = flexScrollBarNone Or _
frmName.GrdCol.ScrollBars = flexScrollBarHorizontal Then
blnVscroll = False
End If
End Sub
'在GRID上的下一个增加行
Public Sub NextLineWithAdded()
Dim intNewRow As Integer
If frmName.GrdCol.Row < frmName.GrdCol.Rows - 1 Then
intNewRow = frmName.GrdCol.Row + 1
Else
frmName.GrdCol.Rows = frmName.GrdCol.Rows + 1
frmName.GrdCol.TextMatrix(frmName.GrdCol.Rows - 1, 0) = "0"
intNewRow = frmName.GrdCol.Row + 1
End If
If Not blnRowIsVisible(intNewRow) Then
frmName.GrdCol.TopRow = frmName.GrdCol.TopRow + 1
End If
frmName.GrdCol.Row = intNewRow
If frmName.GrdCol.col = 0 Then
frmName.GrdCol.col = 1
End If
End Sub
'在GRID上确定行是否可见
Public Function blnRowIsVisible(ByVal RowNo As Integer) As Boolean
'该行高度完全可视时为TRUE
Dim blnHscroll As Boolean, blnVscroll As Boolean
If frmName.GrdCol.Rows <= 1 Then
frmName.GrdCol.Rows = 2
End If
If RowNo > frmName.GrdCol.Rows - 1 Then
blnRowIsVisible = False
End If
If frmName.GrdCol.RowIsVisible(RowNo) = False Then
blnRowIsVisible = False
Exit Function
End If
Call ScrollBarExist(blnHscroll, blnVscroll) '判断是否滚动条
If blnHscroll Then
'下边有滚动水平条
If frmName.GrdCol.RowPos(RowNo) + frmName.GrdCol.RowHeight(RowNo) > frmName.GrdCol.Height - gclsEniv.HScrollHeight Then
blnRowIsVisible = False
Else
blnRowIsVisible = True
End If
Else
'下边无水平滚动条
If frmName.GrdCol.RowPos(RowNo) + frmName.GrdCol.RowHeight(RowNo) > frmName.GrdCol.Height Then
blnRowIsVisible = False
Else
blnRowIsVisible = True
End If
End If
End Function
'各列宽度之和
Public Function lngSumOfColWidth() As Long
Dim i As Integer, lngSum As Long
lngSum = 0
For i = 0 To frmName.GrdCol.Cols - 1
lngSum = lngSum + frmName.GrdCol.ColWidth(i)
Next i
lngSumOfColWidth = lngSum
End Function
Public Function dblTotalOfCol(ByVal intCol As Integer) As Double
'GRID列合计
Dim lngRow As Long
Dim dblTmp As Double
Dim lngRowBak As Long, lngColBak As Long
lngRowBak = frmName.GrdCol.Row
lngColBak = frmName.GrdCol.col
dblTmp = 0
For lngRow = 1 To frmName.GrdCol.Rows - 1
dblTmp = dblTmp + C2Dbl(strGrdCell(lngRow, intCol, False))
Next lngRow
dblTotalOfCol = dblTmp
frmName.GrdCol.Row = lngRowBak
frmName.GrdCol.col = lngColBak
End Function
'---------------------------------
'单据类型数组初始化
'---------------------------------
Private Sub InitReceiptArray()
ReceiptType(1).lngReceiptTypeID = 1
ReceiptType(1).strReceiptTypeName = "采购订单"
ReceiptType(1).lngReceiptID = 1
ReceiptType(2).lngReceiptTypeID = 2
ReceiptType(2).strReceiptTypeName = "商品采购"
ReceiptType(2).lngReceiptID = 2
ReceiptType(3).lngReceiptTypeID = 3
ReceiptType(3).strReceiptTypeName = "直运采购"
ReceiptType(3).lngReceiptID = 2
ReceiptType(4).lngReceiptTypeID = 4
ReceiptType(4).strReceiptTypeName = "受托入库"
ReceiptType(4).lngReceiptID = 2
ReceiptType(5).lngReceiptTypeID = 5
ReceiptType(5).strReceiptTypeName = "受托结算"
ReceiptType(5).lngReceiptID = 2
ReceiptType(6).lngReceiptTypeID = 6
ReceiptType(6).strReceiptTypeName = "加工入库"
ReceiptType(6).lngReceiptID = 2
ReceiptType(7).lngReceiptTypeID = 7
ReceiptType(7).strReceiptTypeName = "加工费用"
ReceiptType(7).lngReceiptID = 2
ReceiptType(8).lngReceiptTypeID = 8
ReceiptType(8).strReceiptTypeName = "采购发票"
ReceiptType(8).lngReceiptID = 2
ReceiptType(9).lngReceiptTypeID = 9
ReceiptType(9).strReceiptTypeName = "自制入库"
ReceiptType(9).lngReceiptID = 2
ReceiptType(10).lngReceiptTypeID = 10
ReceiptType(10).strReceiptTypeName = "盘盈入库"
ReceiptType(10).lngReceiptID = 2
ReceiptType(11).lngReceiptTypeID = 11
ReceiptType(11).strReceiptTypeName = "其他入库"
ReceiptType(11).lngReceiptID = 2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -