frmhistorystoragequery.frm
来自「通用书店管理系统」· FRM 代码 · 共 1,001 行 · 第 1/4 页
FRM
1,001 行
.cqSayingAboveTable.Content = "打印于:|" & Format(Date, "yyyy-MM-dd")
.cqSayingAboveTable.LayOut = "Body align=left cols=3 interwidth=50 |label align=left width=16|text align=left width=20"
sqlstring = "select A.chrStorageName,A.chrProduceType,A.chrBookType,A.intTotalAmount,A.decTotalMoney,A.decTotalFactMoney," & _
" A.intTotalAmount/B.intTotalAmount*100 as decPercentAmount ,A.decTotalMoney/B.decTotalMoney*100 as decPercentMoney," & _
"A.decTotalFactMoney/B.decTotalFactMoney *100 as decPercentFactMoney From (select chrStorageName,chrProduceType,chrBookType," & _
" sum(IntAmount) as intTotalAmount,sum(decMoney) as decTotalMoney,sum(decFactMoney) as decTotalFactMoney From " & _
"(SELECT T2.ChrStorageName, T3.ChrProduceType, T3.ChrBookType, T1.IntAmount, T3.DecPrice* T1.IntAmount as decMoney," & _
" T3.DecAgio*T3.decPrice*T1.IntAmount as decFactMoney FROM (PDResult T1 Left JOIN BookData T3 ON " & _
"(T1.ChrBookName = T3.ChrBookName) AND (T1.ChrBookNo = T3.ChrBookNo)) Left JOIN StorageSection T2 ON " & _
"T1.ChrStorageNo = T2.ChrStorageNo Where ChrPDDate=#" & strDate & "#)" & _
"A Group by chrStorageName,chrProduceType,chrBookType )A Left Join (select chrStorageName,chrProduceType,sum(IntAmount) as intTotalAmount," & _
" sum(decMoney) as decTotalMoney,sum(decFactMoney) as decTotalFactMoney From (SELECT T2.ChrStorageName," & _
"T3.ChrProduceType, T3.ChrBookType, T1.IntAmount, T3.DecPrice* T1.IntAmount as decMoney, T3.DecAgio*T3.decPrice*T1.IntAmount as decFactMoney" & _
" FROM (PDResult T1 Left JOIN BookData T3 ON (T1.ChrBookName = T3.ChrBookName) AND (T1.ChrBookNo = T3.ChrBookNo)) Left JOIN StorageSection T2" & _
" ON T1.ChrStorageNo = T2.ChrStorageNo Where ChrPDDate=#" & strDate & "#) A Group by chrStorageName,chrProduceType)B on " & _
"(A.chrStorageName=B.chrStorageName) and (A.chrProduceType=B.chrProduceType)"
Set rstmp = New ADODB.Recordset
rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
If rstmp.Recordcount > 0 Then
arr = rstmp.GetRows
End If
.cqTable.Content = arr
.cqTable.LayOut = " Format=^80|100|100|100;#,##0|100;#,##0.00|100;#,##0.00|100;#,##0.00|100;#,##0.00|100;#,##0.00" & _
" Header=库区|制品类型|图书类型|库存数量|码洋|实洋|库存数量%|码洋%|实洋%" & _
" Subtotal=2\页总计\1\4\4\1\#,##0\2-1\1;1\总计\1\4\4\1\#,##0\2-1\2;" & _
"2\页总计\1\5\5\1\#,##0.00\2-1\1;1\总计\1\5\5\1\#,##0.00\2-1\2;" & _
"2\页总计\1\6\6\1\#,##0.00\2-1\1;1\总计\1\6\6\1\#,##0.00\2-1\2"
'采用传句柄方式
'.cqTable.Hwnd = Me.grdDetail.Hwnd
End With
With frm
Set .PrintInfo = p
'设置重复打印部分
Call .setRepeat(cp_RepeatView_All)
'设置表格填充空行
'.blnEmptyRow = True
'设置表格最后行拉伸到满页
'.blnExtenLastCol = True
'设置表格自动调整列宽到满页
.blnColumnForPage = True
'设置汇总高度,视汇总行数而定
.SubTotal_Height = 600
'设置页高、页宽、行高及最大页数
'.MaxRowsPerPage = 10
'.Row_Height = 300
.TopHeader_Height = 1
.SubTotal_Height = 600
.ParagraphInterRate = 0.4
.PrintPaperSize = pprEnv9
'设置打印信息保存位置
.strPrintInfoName = "历史库存汇总|" & Me.Caption
.FormStart
.Show vbModal
End With
Exit Sub
End Select
err:
MsgBox "打印出错!"
End Sub
Private Sub cmdSearch_Click(Index As Integer)
Dim arrQuery
Dim i As Integer
Select Case Index
Case 0
Frame1(0).Visible = True
Case 2
Call g_CommonSelect(" 库区号 | 库区 ", "select chrStorageNo,chrStorageName from StorageSection where chrStorageNo like '%" & txtFields(1).Text & "%'", "0,1", , , , -1, arrQuery)
If TypeName(arrQuery) = "Variant()" Then
txtFields(0).Text = ""
For i = 0 To UBound(arrQuery)
txtFields(0).Text = txtFields(0).Text & "" & arrQuery(i, 0) & ","
Next
txtFields(0).Text = Mid(txtFields(0).Text, 1, Len(txtFields(0).Text) - 1)
End If
Case 3
Call g_CommonSelect(" 库区号 | 库区 ", "select chrBookTypeNo,chrBookType from BookType ", "0,1", , , , -1, arrQuery)
If TypeName(arrQuery) = "Variant()" Then
txtFields(1).Text = ""
For i = 0 To UBound(arrQuery)
txtFields(1).Text = txtFields(1).Text & "" & arrQuery(i, 1) & ","
Next
txtFields(1).Text = Mid(txtFields(1).Text, 1, Len(txtFields(1).Text) - 1)
End If
Case 4
Call g_CommonSelect(" 出版社编码 | 出版社 ", "select chrCompanyNo,ChrCompanyName from PublishingCompanyData where chrCompanyNo like'%" & txtFields(2).Text & "%'", "0,1", , , , -1, arrQuery)
If TypeName(arrQuery) = "Variant()" Then
txtFields(2).Text = arrQuery(0, 1)
a = arrQuery(0, 0)
End If
Case 5
Call g_CommonSelect(" 供货商编码 | 供货商名称 | 联系人 | 地址 ", "select chrClientNo,chrClientName,chrLinkman,chrAddress from ClientData where intFlag=0 and chrClientNo like '%" & txtFields(3).Text & "%'", "0,1", , , , -1, arrQuery)
If TypeName(arrQuery) = "Variant()" Then
txtFields(3).Text = arrQuery(0, 1)
a = arrQuery(0, 0)
End If
Case 6 '书号
Call g_CommonSelect(" 书号 | 书名 | 单价 | 折扣 | 供货商 | 出版社 | 出版日期 ", "select chrBookNo,chrBookName,DecPrice,DecAgio,ChrGHS,Chrbookconcern,DatPublishDate" & _
" from BookData where chrBookNo like '%" & txtFields(4).Text & "%'", "0,1", , , , -1, arrQuery)
If TypeName(arrQuery) = "Variant()" Then
txtFields(4).Text = arrQuery(0, 0)
txtFields(5).Text = arrQuery(0, 1)
End If
Case 7 '书名
Call g_CommonSelect(" 书号 | 书名 | 单价 | 折扣 | 供货商 | 出版社 | 出版日期 ", "select chrBookNo,chrBookName,DecPrice,DecAgio,ChrGHS,Chrbookconcern,DatPublishDate" & _
" from BookData where chrBookName like '%" & txtFields(5).Text & "%'", "0,1", , , , -1, arrQuery)
If TypeName(arrQuery) = "Variant()" Then
txtFields(4).Text = arrQuery(0, 0)
txtFields(5).Text = arrQuery(0, 1)
End If
End Select
End Sub
Private Sub Form_Activate()
SetToolBar ("0000X00X011X111")
End Sub
Private Sub Form_Load()
Dim sqlstring As String
Dim rstmp As New ADODB.Recordset
Dim rsNewTmp As New ADODB.Recordset
Dim strFoot As String
Frame1(0).Visible = True
' '明细
' sqlstring = "SELECT T2.ChrStorageName, T1.ChrBookNo, T1.ChrBookName, T1.IntAmount, T3.DecPrice* T1.IntAmount as decMoney, T3.DecAgio*T3.decPrice*T1.IntAmount as decFactMoney, T3.ChrProduceType," & _
' "T3.ChrBookType, T3.ChrAuthoer, T4.ChrCompanyName FROM ((PDResult T1 Left JOIN BookData T3 ON (T1.ChrBookName = T3.ChrBookName) AND (T1.ChrBookNo = T3.ChrBookNo)) Left JOIN " & _
' "StorageSection T2 ON T1.ChrStorageNo = T2.ChrStorageNo) left JOIN PublishingCompanyData T4 ON T3.chrbookconcern = T4.chrCompanyName Where ChrPDDate=#" & strDate & "#"
' Set rstmp = New ADODB.Recordset
' rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
' Set tdbQuery(0).DataSource = rstmp
'
' sqlstring = "SELECT sum(T1.intAmount),sum(T3.DecPrice* T1.IntAmount), sum(T3.DecAgio*T3.decPrice*T1.IntAmount) " & _
' "FROM ((PDResult T1 Left JOIN BookData T3 ON (T1.ChrBookName = T3.ChrBookName) AND (T1.ChrBookNo = T3.ChrBookNo)) Left JOIN " & _
' "StorageSection T2 ON T1.ChrStorageNo = T2.ChrStorageNo) left JOIN PublishingCompanyData T4 ON T3.chrbookconcern = T4.chrCompanyName Where ChrPDDate=#" & strDate & "#"
' Set rsNewTmp = New ADODB.Recordset
' rsNewTmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
'
' If Not rsNewTmp.EOF Then
' strFoot = "|||" & Format(rsNewTmp.Fields(0), "#,##0") & "| " & Format(rsNewTmp.Fields(1), "#,##0.00") & "| " & Format(rsNewTmp.Fields(2), "#,##0.00") & _
' "|||||"
' Else
' strFoot = "||||||||||||"
' End If
' Call SetGridheader("库区|书号|书名|数量|码洋|实洋|制品类型|图书类型|作者|出版社|供货商", 0, "7|15|25|15|15|15|10|13|8|15|15", strFoot)
'汇总
sqlstring = "select A.chrStorageName,A.chrProduceType,A.chrBookType,A.intTotalAmount,A.decTotalMoney,A.decTotalFactMoney," & _
" A.intTotalAmount/B.intTotalAmount*100 as decPercentAmount ,A.decTotalMoney/B.decTotalMoney*100 as decPercentMoney," & _
"A.decTotalFactMoney/B.decTotalFactMoney *100 as decPercentFactMoney From (select chrStorageName,chrProduceType,chrBookType," & _
" sum(IntAmount) as intTotalAmount,sum(decMoney) as decTotalMoney,sum(decFactMoney) as decTotalFactMoney From " & _
"(SELECT T2.ChrStorageName, T3.ChrProduceType, T3.ChrBookType, T1.IntAmount, T3.DecPrice* T1.IntAmount as decMoney," & _
" T3.DecAgio*T3.decPrice*T1.IntAmount as decFactMoney FROM (PDResult T1 Left JOIN BookData T3 ON " & _
"(T1.ChrBookName = T3.ChrBookName) AND (T1.ChrBookNo = T3.ChrBookNo)) Left JOIN StorageSection T2 ON " & _
"T1.ChrStorageNo = T2.ChrStorageNo Where ChrPDDate=#" & strDate & "#)" & _
"A Group by chrStorageName,chrProduceType,chrBookType )A Left Join (select chrStorageName,chrProduceType,sum(IntAmount) as intTotalAmount," & _
" sum(decMoney) as decTotalMoney,sum(decFactMoney) as decTotalFactMoney From (SELECT T2.ChrStorageName," & _
"T3.ChrProduceType, T3.ChrBookType, T1.IntAmount, T3.DecPrice* T1.IntAmount as decMoney, T3.DecAgio*T3.decPrice*T1.IntAmount as decFactMoney" & _
" FROM (PDResult T1 Left JOIN BookData T3 ON (T1.ChrBookName = T3.ChrBookName) AND (T1.ChrBookNo = T3.ChrBookNo)) Left JOIN StorageSection T2" & _
" ON T1.ChrStorageNo = T2.ChrStorageNo Where ChrPDDate=#" & strDate & "#) A Group by chrStorageName,chrProduceType)B on " & _
"(A.chrStorageName=B.chrStorageName) and (A.chrProduceType=B.chrProduceType)"
Set rstmp = New ADODB.Recordset
rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
Set tdbQuery(1).DataSource = rstmp
Call SetGridheader("库区|制品类型|图书类型|库存数量|码洋|实洋|库存数量%|码洋%|实洋%", 1, "8|10|15|15|15|15|8|8|8", "")
End Sub
Private Sub Form_Unload(Cancel As Integer)
SetToolBar ("0000X00X001X111")
End Sub
'设置TDBGRID的列头
Public Sub SetGridheader(ByVal strHeader As String, intNo As Integer, strColWidth As String, strFooter As String)
On Error Resume Next
Dim arrHeader() As String
Dim arrFooter() As String
Dim arrWidth() As String
Dim i As Integer
arrHeader = Split(strHeader, "|", -1, vbTextCompare)
arrWidth = Split(strColWidth, "|", -1, vbTextCompare)
arrFooter = Split(strFooter, "|", -1, vbTextCompare)
tdbQuery(intNo).FooterForeColor = vbBlue
For i = 0 To UBound(arrHeader)
tdbQuery(intNo).Columns(i).Caption = arrHeader(i)
tdbQuery(intNo).Columns(i).FooterText = arrFooter(i)
Select Case UCase(Mid(tdbQuery(intNo).Columns(i).DataField, 1, 3))
Case "CHR"
tdbQuery(intNo).Columns(i).Alignment = dbgCenter
Case "INT"
tdbQuery(intNo).Columns(i).Alignment = dbgRight
tdbQuery(intNo).Columns(i).NumberFormat = "#,##0"
tdbQuery(intNo).Columns(i).ForeColor = vbBlue
Case "DEC"
tdbQuery(intNo).Columns(i).Alignment = dbgRight
tdbQuery(intNo).Columns(i).NumberFormat = "#,##0.00"
tdbQuery(intNo).Columns(i).ForeColor = vbRed
Case "DAT"
tdbQuery(intNo).Columns(i).Alignment = dbgCenter
tdbQuery(intNo).Columns(i).NumberFormat = "yyyy-mm-dd"
tdbQuery(intNo).Columns(i).ForeColor = vbBlue
Case Else
End Select
'自定义宽度
tdbQuery(intNo).Columns(i).Width = CInt(arrWidth(i) * 100)
Next i
End Sub
Private Sub clearAll() '清除所有可填数据的位置
Dim i As Integer
For i = 0 To txtFields.UBound
Select Case i
Case 0, 1, 2, 4, 5, 6
txtFields(i).Text = ""
End Select
Next i
End Sub
Private Sub txtFields_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then
SendKeys "{TAB}"
Exit Sub
End If
End Sub
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?