⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmstoragequery.frm

📁 通用书店管理系统
💻 FRM
📖 第 1 页 / 共 5 页
字号:
                                   "2\页总计\1\9\9\1\#,##0.00\2-1\1;1\总计\1\9\9\1\#,##0.00\2-1\2;" & _
                                   "2\页总计\1\10\10\1\#,##0.00\2-1\1;1\总计\1\10\10\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
Case "汇总"
    With p
        
        '标题
        .cqFirstTitle.Content = "库存汇总"
        .cqFirstTitle.FontSize = 18
        .cqFirstTitle.FontBold = True
        
        '表前叙述
                   
        .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.decRKTotalFactMoney, " & _
                   "A.decCKTotalFactMoney,A.decTotalSY, A.intTotalAmount/B.intTotalAmount*100 as decPercentAmount ," & _
                   "A.decTotalMoney/B.decTotalMoney*100 as decPercentMoney,A.decRKTotalFactMoney/B.decRKTotalFactMoney *100 as decRKPercentFactMoney," & _
                   "A.decCKTotalFactMoney/B.decCKTotalFactMoney *100 as decCKPercentFactMoney,A.decTotalSY/B.intTotalAmount*100 as decTotalSYPercent From " & _
                   "(select chrStorageName,chrProduceType,chrBookType, sum(IntAmount) as intTotalAmount,sum(decMoney) as decTotalMoney,sum(t1.DecZMY) as decRKTotalFactMoney," & _
                   "sum(t1.DecCKSY) as decCKTotalFactMoney,sum(decZSY) as decTotalSY From (SELECT T2.ChrStorageName, T3.ChrProduceType, T3.ChrBookType,  T1.IntAmount," & _
                   "T3.DecPrice* T1.IntAmount as decMoney,t1.DecZMY,t1.DecCKSY,t1.DecAPrice*t1.IntAmount as decZSY FROM (BookStorage T1 Left JOIN BookData T3 ON (T1.ChrBookName = T3.ChrBookName) " & _
                    "AND (T1.ChrBookNo = T3.ChrBookNo)) Left JOIN StorageSection T2 ON T1.ChrStorageNo = T2.ChrStorageNo) A Group by chrStorageName,chrProduceType,chrBookType,DecZMY,DecCKSY) A " & _
                    "Left Join (select chrStorageName,chrProduceType,sum(IntAmount) as intTotalAmount, sum(decMoney) as decTotalMoney,sum(t1.DecZMY) as decRKTotalFactMoney, sum(t1.DecCKSY) as decCKTotalFactMoney," & _
                    "sum(decZSY) as decTotalSY From (SELECT T2.ChrStorageName,T3.ChrProduceType, T3.ChrBookType, T1.IntAmount,  T3.DecPrice* T1.IntAmount as decMoney,  t1.DecZMY,t1.DecCKSY ,t1.DecAPrice*t1.IntAmount as decZSY " & _
                    "FROM (BookStorage T1 Left JOIN BookData T3 ON (T1.ChrBookName = T3.ChrBookName) AND (T1.ChrBookNo = T3.ChrBookNo)) Left JOIN StorageSection T2 ON T1.ChrStorageNo = T2.ChrStorageNo) A Group by chrStorageName,chrProduceType)B " & _
                    "on (A.chrStorageName=B.chrStorageName) and (A.chrProduceType=B.chrProduceType) order by A.intTotalAmount desc"
       
       Set rstmp = New ADODB.Recordset
       rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
       If rstmp.Recordcount > 0 Then
        arr = rstmp.GetRows
       End If
        
        '【Format属性】
            '宽度:整型
            '<   Align:左
            '^   Align:中
            '>   Align:右
            '=   以内容为准
            '+   纵向居中
            '_   纵向沉底
            '*   与文本Align保持一致
            '~   不自动换行
            '!   只画纵向线(保留)
        
        '【Header属性】
            '表格列头内容
        
        '【SpanCol属性】
            '有五个部分组成,中间用逗号隔开
            '第一部分:列索引,可一由“列头值”替代
            '第二部分:行索引,可以用MaxRow表示最大行,并进行运算,如:MaxRow-2;
            '                   也可以用实际的单元格值替换,比如:“合计”
            '第三部分:列偏差,由第一部分和第二部分可定位到“某个单元”,但实际要
            '                   合并的单元可能是“某个单元”的相邻单元,这时可使用偏差值
            '                  例如,想让“合计”行的“数量”列进行两列合并(假设“数量”列=“合计”所在列+2),
            '                  则可以在该部分填上2,如不需要,则填0
            '第四部分:合并列数,不包括自己,即合并一列则为1,合并两列则为2
            '第五部分:合并后内容的布局 0,左上;1,中上;2,右上;
            '                           3,左下;4,中下;5,右下;
            '                           6,左中;7,中中;8,右中;
            '                           9,上端;10,底端;11,中
        
        '【RowHeight属性】
            '强行指定行高,是一个整型,该值一旦设置,用户无法改变
        
        '【Subtotal属性】
            '合计信息,由以下几个部分组成,中间由逗号隔开,组之间用分号隔开
            '第一部分:列汇总类型:1,表示总计;2,表示页合计
            '第二部分:列汇总描述
            '第三部分:列汇总描述所在列索引
            '第四部分:汇总后数据所在位置
            '第五部分:列汇总所在列
            '第六部分:列汇总函数类型:1,表示求和;
            '第七部分:汇总数据格式
            '第八部分:汇总数据合并列;描述列合并数-汇总列合并数
            '第九部分:汇总数据所在行
            
            '例子:Subtotal=1\页小计\1\3\3\1\¥#,##0.00\1-1\1  --表示对第四列进行“求和”页合计,
        
'        Dim strHeaderFormat$, strHeader$
'        For C = 0 To tdbQuery(1).Columns.Count - 1
'            If C = tdbQuery(1).Columns.Count - 1 Then
'                strHeaderFormat = strHeaderFormat & "10"
'                strHeader = strHeader & tdbQuery(1).Columns(C).Caption
'            Else
'                strHeaderFormat = strHeaderFormat & "10|"
'                strHeader = strHeader & Trim(tdbQuery(1).Columns(C).Caption) & "|"
'            End If
'        Next C
        
        .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|>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\2-1\1;1\总计\1\5\5\1\#,##0\2-1\2;" & _
                                   "2\页总计\1\6\6\1\#,##0.00\2-1\1;1\总计\1\6\6\1\#,##0\2-1\2;" & _
                                   "2\页总计\1\7\7\1\#,##0.00\2-1\1;1\总计\1\7\7\1\#,##0.00\2-1\2;" & _
                                   "2\页总计\1\8\8\1\#,##0.00\2-1\1;1\总计\1\8\8\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
  Dim sqlstring As String
  Dim rstmp As ADODB.Recordset
  Dim rsNewTmp As ADODB.Recordset
  Dim strFoot As String
  
  Select Case Index
    Case 0
      Frame1(0).Visible = True
    Case 1
         '汇总
        sqlstring = "select A.chrStorageName,A.chrProduceType,A.chrBookType,A.intTotalAmount,A.decTotalMoney,A.decRKTotalFactMoney, " & _
                  "A.decCKTotalFactMoney,A.decTotalSY, A.intTotalAmount/B.intTotalAmount*100 as decPercentAmount ," & _
                  "A.decTotalMoney/B.decTotalMoney*100 as decPercentMoney,A.decRKTotalFactMoney/B.decRKTotalFactMoney *100 as decRKPercentFactMoney," & _
                  "A.decCKTotalFactMoney/B.decCKTotalFactMoney *100 as decCKPercentFactMoney,A.decTotalSY/B.intTotalAmount*100 as decTotalSYPercent From " & _
                  "(select chrStorageName,chrProduceType,chrBookType, sum(IntAmount) as intTotalAmount,sum(decMoney) as decTotalMoney,sum(t1.DecZMY) as decRKTotalFactMoney," & _
                  "sum(t1.DecCKSY) as decCKTotalFactMoney,sum(decZSY) as decTotalSY From (SELECT T2.ChrStorageName, T3.ChrProduceType, T3.ChrBookType,  T1.IntAmount," & _
                  "T3.DecPrice* T1.IntAmount as decMoney,t1.DecZMY,t1.DecCKSY,t1.DecAPrice*t1.IntAmount as decZSY FROM (BookStorage T1 Left JOIN BookData T3 ON (T1.ChrBookName = T3.ChrBookName) " & _
                   "AND (T1.ChrBookNo = T3.ChrBookNo)) Left JOIN StorageSection T2 ON T1.ChrStorageNo = T2.ChrStorageNo) A Group by chrStorageName,chrProduceType,chrBookType,DecZMY,DecCKSY) A " & _
                   "Left Join (select chrStorageName,chrProduceType,sum(IntAmount) as intTotalAmount, sum(decMoney) as decTotalMoney,sum(t1.DecZMY) as decRKTotalFactMoney, sum(t1.DecCKSY) as decCKTotalFactMoney," & _
                   "sum(decZSY) as decTotalSY From (SELECT T2.ChrStorageName,T3.ChrProduceType, T3.ChrBookType, T1.IntAmount,  T3.DecPrice* T1.IntAmount as decMoney,  t1.DecZMY,t1.DecCKSY ,t1.DecAPrice*t1.IntAmount as decZSY " & _
                   "FROM (BookStorage T1 Left JOIN BookData T3 ON (T1.ChrBookName = T3.ChrBookName) AND (T1.ChrBookNo = T3.ChrBookNo)) Left JOIN StorageSection T2 ON T1.ChrStorageNo = T2.ChrStorageNo) A Group by chrStorageName,chrProduceType)B " & _
                   "on (A.chrStorageName=B.chrStorageName) and (A.chrProduceType=B.chrProduceType)  order by A.intTotalAmount desc"
        Set rstmp = New ADODB.Recordset
        rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
        Set tdbQuery(1).DataSource = rstmp
        sqlstring = "select sum(A.intTotalAmount),sum(A.decTotalMoney),sum(A.decRKTotalFactMoney),sum( A.decCKTotalFactMoney),sum(A.decTotalSY) From (select chrStorageName,chrProduceType,chrBookType," & _
                    "sum(IntAmount) as intTotalAmount,sum(decMoney) as decTotalMoney,sum(t1.DecZMY) as decRKTotalFactMoney,sum(t1.DecCKSY) as decCKTotalFactMoney,sum(decZSY) as decTotalSY From " & _
                    "(SELECT T2.ChrStorageName, T3.ChrProduceType, T3.ChrBookType,  T1.IntAmount,T3.DecPrice* T1.IntAmount as decMoney,t1.DecZMY,t1.DecCKSY,t1.DecAPrice*t1.IntAmount as decZSY FROM " & _
                    "(BookStorage T1 Left JOIN BookData T3 ON (T1.ChrBookName = T3.ChrBookName) AND (T1.ChrBookNo = T3.ChrBookNo)) Left JOIN StorageSection T2 ON T1.ChrStorageNo= T2.ChrStorageNo) " & _
                    "A Group by chrStorageName,chrProduceType,chrBookType,DecZMY,DecCKSY) A Left Join (select chrStorageName,chrProduceType,sum(IntAmount) as intTotalAmount, sum(decMoney) as decTotalMoney," & _
                    "sum(t1.DecZMY) as decRKTotalFactMoney, sum(t1.DecCKSY) as decCKTotalFactMoney,sum(decZSY) as decTotalSY From (SELECT T2.ChrStorageName,T3.ChrProduceType, T3.ChrBookType, T1.IntAmount,  " & _
                    "T3.DecPrice* T1.IntAmount as decMoney,  t1.DecZMY,t1.DecCKSY ,t1.DecAPrice*t1.IntAmount as decZSY FROM (BookStorage T1 Left JOIN BookData T3 ON (T1.ChrBookName = T3.ChrBookName) AND " & _
                    "(T1.ChrBookNo = T3.ChrBookNo)) Left JOIN StorageSection T2 ON T1.ChrStorageNo = T2.ChrStorageNo) A Group by chrStorageName,chrProduceType)B on (A.chrStorageName=B.chrStorageName) and (A.chrProduceType=B.chrProduceType) "
        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") & _
                    "|" & Format(rsNewTmp.Fields(3), "#,##0.00") & "|" & Format(rsNewTmp.Fields(4), "#,##0.00") & "|||||"
        Else
          strFoot = "||||||||||||"
        End If
        
        Call SetGridheader("库区|制品类型|图书类型|库存数量|码洋|入库实洋|出库实洋|总实洋|库存数量%|码洋%|入库实洋%|出库实洋%|总实洋%", 1, "10|10|15|15|15|15|15|15|10|8|10|10|15", strFoot)
    Case 2
      Call g_CommonSelect("  库区号  |  库区  ", "select chrStorageNo,chrStorageName from StorageSection where chrStorageNo like  '%" & txtFields(0).Text & "%'", "0,1", , , , -1, arrQuery)
      If TypeName(arrQuery) = "Variant()" Then
      
              txtFields(0).Text = arrQuery(0, 1)
              a = arrQuery(0, 0)
      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)
   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -