frmbook.frm

来自「通用书店管理系统」· FRM 代码 · 共 1,441 行 · 第 1/5 页

FRM
1,441
字号
            If c = tdbBook.Columns.Count - 1 Then
                strHeaderFormat = strHeaderFormat & "10"
                strHeader = strHeader & tdbBook.Columns(c).Caption
            Else
                strHeaderFormat = strHeaderFormat & "10|"
                strHeader = strHeader & Trim(tdbBook.Columns(c).Caption) & "|"
            End If
        Next c
        
        .cqTable.Content = arr
        .cqTable.LayOut = " Format=" & strHeaderFormat & "" & _
                          " Header=" & strHeader & ""
        
        '采用传句柄方式
        '.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
err:
    MsgBox "打印出错!"
End Sub
Private Sub cmdExit_Click()
  Frame1.Visible = False
End Sub

Private Sub cmdOK_Click()
    Dim intNo As Integer
    Dim sqlstring As String
    Dim rstmp As New ADODB.Recordset
    Dim strQuery(4) As String
   
    
   
    On Error Resume Next
    If chkFields(0).Value = 1 Then '书号
       strQuery(0) = " chrBookNo like '%" & txtFields(0) & "%' and "
    End If
    
    If chkFields(1).Value = 1 Then '书名
       strQuery(1) = " chrBookName like '%" & txtFields(1) & "%' and "
    End If
    '图书类别
    If chkFields(2).Value = 1 Then
       strQuery(2) = " chrBookType like '%" & cmbFields(0) & "%' and "
    End If
    
    '制品类型
    strQuery(3) = " ChrProduceType like '%" & cmbFields(1) & "%' "
    
    
    sqlstring = "SELECT BookData.ChrBookNo, BookData.ChrBookName, " _
        & "BookData.ChrProduceType, BookData.ChrBookType, " _
        & "BookData.ChrAuthoer, BookData.Chrbookconcern, ChrCompanyName, " _
        & "format(BookData.DatPublishDate,'yyyy-mm-dd'), BookData.ChrDegree, " _
        & "BookData.ChrFormat, BookData.ChrBindMode, BookData.DecAgio, " _
        & "BookData.DecPrice, BookData.ChrGHS, ClientData.chrClientName," _
        & "BookData.ChrRemark" _
        & " FROM (BookData LEFT JOIN PublishingCompanyData " _
        & "ON BookData.Chrbookconcern=PublishingCompanyData.chrCompanyNo) " _
        & "LEFT JOIN ClientData ON BookData.ChrGHS=ClientData.chrClientNO where " & strQuery(0) & strQuery(1) & strQuery(2) & strQuery(3)
    
    Set rstmp = New ADODB.Recordset
    rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
    If rstmp.Recordcount = 0 Then
       MsgBox "没有满足该查询条件的图书记录!", vbInformation
    Else
       If chkFields(2).Value <> 1 Then
          Call ShowExpRecord(rstmp, 1)
       Else
          Call ShowExpRecord(rstmp, 0)
       End If
       
    End If
    
'    If rstmp.Recordcount = 0 Then
'       MsgBox "没有满足该查询条件的图书记录!", vbInformation
'    ElseIf rstmp.Recordcount = 1 Then
'       If chkFields(2).Value <> 1 Then
'          Call ShowRecord(rstmp.Fields("ChrProduceType"), 1)
'       Else
'          Call ShowRecord(rstmp.Fields("chrBookType"), 0)
'       End If
'       intNo = X.Find(0, 0, rstmp.Fields("chrBookNo").Value)
'       If intNo <> 0 Then
'         tdbBook.Bookmark = intNo
'       End If
'    Else
'        If chkFields(2).Value <> 1 Then
'          Call ShowRecord(rstmp.Fields("ChrProduceType"), 1)
'       Else
'          Call ShowRecord(rstmp.Fields("chrBookType"), 0)
'       End If
'       intNo = X.Find(0, 0, rstmp.Fields("chrBookNo").Value)
'       If intNo <> 0 Then
'         tdbBook.Bookmark = intNo
'       End If
'    End If
   Call clearAlltxtFields
    Frame1.Visible = False
End Sub

Public Sub CmdSave_Click()
    On Error GoTo SaveErr
    Dim i As Integer
    Dim sqlstring As String
    Dim rsNewTmp As New ADODB.Recordset
    Dim strNull
    
    strNull = Null
    
    Select Case intFormState
      Case modadd
          cN.BeginTrans
          tdbBook.Update
          For i = 0 To X.UpperBound(1)
              If IsVacancy(X(i, 6)) Then '判断出版日期是否为空
                sqlstring = "Insert into BookData " _
                         & " (ChrBookNo,ChrBookName,chrProduceType,chrBookType,chrAuthoer,chrBookConcern,chrDegree,chrFormat,chrBindMode,decAgio,decPrice,chrGHS,chrRemark) values" _
                         & "('" & X(i, 0) & "','" & X(i, 1) & "','" & X(i, 2) & "','" & X(i, 3) & "','" & X(i, 4) & "','" & X(i, 5) & "','" & _
                         IIf(IsVacancy(X(i, 7)), strNull, X(i, 7)) & "','" & IIf(IsVacancy(X(i, 8)), strNull, X(i, 8)) & "','" & IIf(IsVacancy(X(i, 9)), strNull, X(i, 9)) & "'," & X(i, 10) & _
                         "," & X(i, 11) & ",'" & X(i, 12) & "','" & IIf(IsVacancy(X(i, 13)), strNull, X(i, 13)) & "')"
              Else
                sqlstring = "Insert into BookData " _
                           & " (ChrBookNo,ChrBookName,chrProduceType,chrBookType,chrAuthoer,chrBookConcern,datPublishDate,chrDegree,chrFormat,chrBindMode,decAgio,decPrice,chrGHS,chrRemark) values" _
                           & "('" & X(i, 0) & "','" & X(i, 1) & "','" & X(i, 2) & "','" & X(i, 3) & "','" & X(i, 4) & "','" & X(i, 5) & "',#" & IIf(IsVacancy(X(i, 6)), strNull, X(i, 6)) & "#,'" & _
                           IIf(IsVacancy(X(i, 7)), strNull, X(i, 7)) & "','" & IIf(IsVacancy(X(i, 8)), strNull, X(i, 8)) & "','" & IIf(IsVacancy(X(i, 9)), strNull, X(i, 9)) & "'," & X(i, 10) & _
                           "," & X(i, 11) & ",'" & X(i, 12) & "','" & IIf(IsVacancy(X(i, 13)), strNull, X(i, 13)) & "')"
              End If
              cN.Execute (sqlstring)
          Next i
          cN.CommitTrans
      Case modEdit
          
          cN.BeginTrans
          tdbBook.Update
          For i = 0 To X.UpperBound(1)
              If IsVacancy(X(i, 6)) Then '判断出版日期是否为空
                sqlstring = "update BookData " _
                          & " set chrProduceType='" & X(i, 2) & "',chrBookType='" & X(i, 3) & "',chrAuthoer='" & X(i, 4) & "',chrBookConcern='" & X(i, 5) & "',datPublishDate=" & IIf(IsNull(strNull), "1900-01-01", strNull) & _
                          ",chrDegree='" & IIf(IsVacancy(X(i, 7)), strNull, X(i, 7)) & "',chrFormat='" & IIf(IsVacancy(X(i, 8)), strNull, X(i, 8)) & "',chrBindMode='" & IIf(IsVacancy(X(i, 9)), strNull, X(i, 9)) & _
                          "',decAgio=" & Format(X(i, 10), "0.00") & ",decPrice=" & CDbl(X(i, 11)) & ",chrGHS='" & X(i, 12) & _
                          "',chrRemark='" & IIf(IsVacancy(X(i, 13)), strNull, X(i, 13)) & "' where chrBookNo='" & X(i, 0) & "' and chrBookName='" & X(i, 1) & "'"
              Else
                sqlstring = "update BookData " _
                            & " set chrProduceType='" & X(i, 2) & "',chrBookType='" & X(i, 3) & "',chrAuthoer='" & X(i, 4) & "',chrBookConcern='" & X(i, 5) & "',datPublishDate=#" & IIf(IsVacancy(X(i, 6)), strNull, X(i, 6)) & _
                            "#,chrDegree='" & IIf(IsVacancy(X(i, 7)), strNull, X(i, 7)) & "',chrFormat='" & IIf(IsVacancy(X(i, 8)), strNull, X(i, 8)) & "',chrBindMode='" & IIf(IsVacancy(X(i, 9)), strNull, X(i, 9)) & _
                            "',decAgio=" & Format(X(i, 10), "0.00") & ",decPrice=" & CDbl(X(i, 11)) & ",chrGHS='" & X(i, 12) & _
                            "',chrRemark='" & IIf(IsVacancy(X(i, 13)), strNull, X(i, 13)) & "' where chrBookNo='" & X(i, 0) & "' and chrBookName='" & X(i, 1) & "'"
              End If
              cN.Execute (sqlstring)
          Next i
          cN.CommitTrans
      Case Else
        Exit Sub
    End Select
    
    Select Case strParent '判断是否是根目录保存
      Case "图书", "文具", "光盘", "音像" '根目录
        If ShowRecord(strParent, 1) Then
           setFormState (ModNormal)
        End If
      Case Else  '子目录
        If ShowRecord(strParent, 0) Then
           setFormState (ModNormal)
        End If
    End Select
    
    blnIsModified = False
    Exit Sub
SaveErr:
    cN.RollbackTrans
    MsgBox "保存记录出错:" & err.Description, vbInformation
End Sub

Private Sub cmdSearch_Click(Index As Integer)
  Dim arrQuery
  Dim i As Integer
  
  Select Case Index
    Case 0 '书号
        Call g_CommonSelect("  书号  |  书名  |  单价  |  折扣  |  供货商  |  出版社  |  出版日期  ", "select chrBookNo,chrBookName,DecPrice,DecAgio,ChrGHS,Chrbookconcern,DatPublishDate" & _
                               " from BookData where chrBookNo like '%" & txtFields(0).Text & "%'", "0,1", , , , -1, arrQuery)
        If TypeName(arrQuery) = "Variant()" Then
              txtFields(0).Text = arrQuery(0, 0)
             
        End If
    Case 1 '书名
        Call g_CommonSelect("  书号  |  书名  |  单价  |  折扣  |  供货商  |  出版社  |  出版日期  ", "select chrBookNo,chrBookName,DecPrice,DecAgio,ChrGHS,Chrbookconcern,DatPublishDate" & _
                               " from BookData where chrBookName like '%" & txtFields(1).Text & "%'", "0,1", , , , -1, arrQuery)
        If TypeName(arrQuery) = "Variant()" Then
              txtFields(1).Text = arrQuery(0, 1)
              
        End If
  End Select
End Sub

Public Sub cmdUndo_Click()
    '询问是否放弃当前内容
    If blnIsModified Then
        If MsgBox("当前修改的内容会丢失。确认要取消吗?", vbOKCancel, "询问") <> vbOK Then Exit Sub
    End If
    clearAll
    setFormState (ModNormal)
    blnIsModified = False
    
End Sub


Private Sub Form_Activate()
  SetToolBar ("1100X11X111X111X1")
End Sub

Private Sub Form_Load()
  Dim File As Node
  Dim Recordcount As Integer
  Dim strNo As String
  Dim sqlstring As String
  Dim rstmp As New ADODB.Recordset
    
  On Error Resume Next

   '制品类型
   sqlstring = "select * from ProduceType order by ChrProduceNo"
   Set rstmp = New ADODB.Recordset
   rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
   cmbFields(1).Text = "图书"
   Do While Not rstmp.EOF
      cmbFields(1).AddItem rstmp.Fields("ChrProduceType")
      rstmp.MoveNext
   Loop
   
   '图书分类
   sqlstring = "select * from BookType order by ChrBookType"
   Set rstmp = New ADODB.Recordset
   rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
   cmbFields(0).Text = "保险"
   Do While Not rstmp.EOF
      cmbFields(0).AddItem rstmp.Fields("ChrBookType")
      rstmp.MoveNext
   Loop
   
  tvwFile.Style = 7 ' Style 1.
  tvwFile.LineStyle = tvwRootLines 'Linestyle 1.
     
  '从制品类型表中查询数据生成树型视图
  sqlstring = "select * from ProduceType order by ChrProduceNo "
  Set rstmp = New ADODB.Recordset
  rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
     
  Do While Not rstmp.EOF
     Select Case rstmp.Fields("chrProduceType").Value
        Case "图书"
           Set File = tvwFile.Nodes.Add(, , "r" & rstmp.Fields("ChrProduceNo"), rstmp.Fields("chrProduceType"), 6, 6)
           File.ForeColor = vbRed
           strNo = rstmp.Fields("ChrProduceNo")
        Case "音像"
           Set File = tvwFile.Nodes.Add(, , "r" & rstmp.Fields("ChrProduceNo"), rstmp.Fields("chrProduceType"), 3, 3)
        Case "光盘"
           Set File = tvwFile.Nodes.Add(, , "r" & rstmp.Fields("ChrProduceNo"), rstmp.Fields("chrProduceType"), 2, 2)
       

⌨️ 快捷键说明

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