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

📄 frmdlstageissuegoods.frm

📁 金算盘软件代码
💻 FRM
📖 第 1 页 / 共 4 页
字号:
'响应完全取消菜单
Private Sub chklist2_Click()
    BalenceAll (1)
End Sub


Private Sub BalenceAll(Index As Integer)
Dim intCount As Integer, k As Integer, i As Integer
Dim xx As Double, zql As Double
    i = intfixl
    k = intfixl
    '本循环找出本次收款及本次折扣所在的列
    While (msgGrid.TextMatrix(0, i) <> "结算金额")
          i = i + 1
    Wend
    While (msgGrid.TextMatrix(0, k) <> "结算数量")
          k = k + 1
    Wend
    ytextRow = 1
    If Index = 0 Then
    '响应完全结算菜单
       While ytextRow < msgGrid.Rows
               '打√情况
               msgGrid.TextMatrix(ytextRow, 1) = "√"
               xx = getnumber(ytextRow, 11) - getnumber(ytextRow, i)
               msgGrid.TextMatrix(ytextRow, i) = CStr(getnumber(ytextRow, i) + xx)
               hLb(i).Caption = CStr(CDbl(IIf(Len(hLb(i).Caption) = 0, "0", hLb(i).Caption)) + xx)
               msgGrid.TextMatrix(ytextRow, k) = msgGrid.TextMatrix(ytextRow, 12)
               ytextRow = ytextRow + 1
       Wend
     Else
        '响应完全取消菜单
       While ytextRow < msgGrid.Rows
'               If getnumber(ytextRow, 8) = 0 Then
                  msgGrid.TextMatrix(ytextRow, 1) = ""       '取消打√(核销)情况
'               Else
'                  msgGrid.TextMatrix(ytextRow, 1) = "√"
'               End If
'+ getnumber(ytextRow, 8)
               hLb(i).Caption = CStr(CDbl(hLb(i).Caption) - getnumber(ytextRow, i))
               msgGrid.TextMatrix(ytextRow, k) = ""
               'msgGrid.TextMatrix(ytextRow, 10)
               msgGrid.TextMatrix(ytextRow, i) = ""
               'msgGrid.TextMatrix(ytextRow, 8)
               ytextRow = ytextRow + 1
       Wend
      End If
           
End Sub
'不存盘返回
Private Sub CancelGrid()
    Unload Me
End Sub
'从对应视图取SQL语句并打开、初始化之
Private Sub GetList()
    Dim sqlselect As String, strSql As String, strSelect As String, str As String
    Dim strWhere As String, pbsql As String, strFrom As String
    Dim recRecordset As rdoResultset, intCount As Integer
    Dim q2 As QueryDef
'    On Error GoTo Err
    mclsGrid.ListSet.ViewId = intViewID
    '//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    '//    取本次结算金额、本次结算数量算法(连接对照表的方法):                                                                                     //
    '//       '首先:因为本次结算金额、本次结算数量是针对本次单据业务ID的;所以,可通过ItemActivity表的lngItemActivityID字段                          //
    '//   '和ItemActivityDetail表的lngItemActivityID字段将此二表连接起来;再通过ItemActivityDetail表的lngItemActivityDetailID字段                     //
    '//   '和StageToSale表的lngSaleActivityDetailID字段将此二表连接起来;这样一来表ItemActivity、ItemActivityDetail和StageToSale就被有机连接起来了。   //
    '//   '再用ItemActivity中的lngItemActivityID作为取本次结算金额、本次结算数量记录的条件。把单据中取过来的单据业务ID作为参数传给lngItemActivityID   //
    '//   '就得到了所有取本次结算金额、本次结算数量的记录(取StageToSale表的全部字段)。                                                              //
    '//       '然后:将上面生成的查询作为一个查询表(取别名StageToSale)再同表ItemActivityDetail连接回去就得到了我们需要的结果。连接方法是            //
    '//   '通过ItemActivityDetail表的lngItemActivityDetailID字段和StageToSale表的lngStageActivityDetailID字段将二表连接起来。                         //
    '//   '结束                                                                                                                                       //
    '//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    With msgGrid
        .Redraw = False
        .FixedCols = 0
    End With
    strWhere = ""
    str = ""
    strSql = ""
    strFrom = ""
    pbsql = ""
    With mclsGrid.ListSet
        strFrom = .FromOfSql
        pbsql = .SelectOfSql
        strWhere = .WhereOfSql
    End With
    str = " Where (((ItemActivity.lngCustomerID)=[CustomerID]) AND ((ItemActivity.lngCurrencyID)=[CurrencyID]) AND ((ItemActivity.lngActivityTypeID) In (16)) AND ([ItemActivityDetail ].[dblCurrAmount]+[dblCurrTaxAmount]-[ItemActivityDetail ].[dblCurrSettlementAmount]+Iif(IsNull([ItemActivityDetail].[dblCurrAmount]),0,[ItemActivityDetail].[dblCurrAmount]))<>0)"
    If Len(Trim(strWhere)) >= 1 Then str = str & "AND" & " ( " & strWhere & ")"
    If Len(Trim(strWorkID)) > 4 Then
       str = str & " OR ( ItemActivityDetail.lngOrderDetailID IN " & strWorkID & ")"
    End If
    strSql = strFrom & str
'    sqlselect = " Select ItemActivityDetail.lngActivityDetailID As 业务ID, iif((IIf(IsNull([StageToSale].[dblCurrAmount]),0,[StageToSale].[dblCurrAmount]))<>0,'√','') As 结算," _
              & " '' AS 行号,0 AS 优惠日2,0 AS 优惠日3,0 AS 折扣率1,0 AS 折扣率2,0 AS 折扣率3,(IIf(IsNull(StageToSale.dblCurrAmount),0,StageToSale.dblCurrAmount))  AS 原结算金额," _
              & " 0 AS 原结算折扣,iif(isnull([StageToSale].[dblQuantity]),' ',Trim(Str([StageToSale].[dblQuantity]\[ItemUnit].[dblFactor]))+'.'+String(Len(Trim(Str([ItemUnit].[dblFactor])))-Len(Trim(Str([StageToSale].[dblQuantity] Mod " _
              & " [ItemUnit].[dblFactor]))),'0')+Trim(Str([StageToSale].[dblQuantity] Mod [ItemUnit].[dblFactor]))) AS 原结算数量,([ItemActivityDetail ].[dblCurrAmount]+[dblCurrTaxAmount]-" _
              & " [ItemActivityDetail ].[dblCurrSettlementAmount]+Iif(IsNull([StageToSale].[dblCurrAmount]),0,[StageToSale].[dblCurrAmount])) AS 原未结金额,Trim(Str(([ItemActivityDetail].[dblQuantity]-" _
              & " [ItemActivityDetail].[dblSettlementQuantity]+Iif(IsNull([StageToSale].[dblQuantity]),0,[StageToSale].[dblQuantity]))\[ItemUnit].[dblFactor]))+'.'+String(Len(Trim(Str([ItemUnit].[dblFactor])))-" _
              & " Len(Trim(Str(([ItemActivityDetail].[dblQuantity]-[ItemActivityDetail].[dblSettlementQuantity]+Iif(IsNull([StageToSale].[dblQuantity]),0,[StageToSale].[dblQuantity])) Mod [ItemUnit].[dblFactor]))),'0')+ "
'    str = " Trim(Str(([ItemActivityDetail].[dblQuantity]-[ItemActivityDetail].[dblSettlementQuantity]+Iif(IsNull([StageToSale].[dblQuantity]),0,[StageToSale].[dblQuantity])) Mod [ItemUnit].[dblFactor])) AS 原未结数量," _
              & " ItemActivity.lngActivityTypeID AS 类型ID, ItemActivityDetail.strProduceDate As 15,ItemActivityDetail.strValidDate As 16,ItemActivityDetail.lngItemID As 17,ItemActivityDetail.lngUnitID As 18,100.00 As 19,dblCurrPrice*dblFactor As 20," _
              & " ItemActivityDetail.lngTaxID As 21,ItemActivityDetail.lngJobID As 22,ItemActivityDetail.lngCustomID0 As 23,ItemActivityDetail.lngCustomID1 As 24,ItemActivityDetail.lngCustomID2 As 25,ItemActivityDetail.lngCustomID3 As 26," _
              & " ItemActivityDetail.lngCustomID4 As 27,ItemActivityDetail.lngCustomID5 As 28,dblFactor As 29,(strItemCode & ' ' & strItemName & ' ' & strItemStyle) As 30,strUnitName As 31,strTaxName As 32,Item.lngPositionID As 33," _
              & " strPositionName As 34,strJobName As 35,Custom0.strCustomName As 36,Custom1.strCustomName As 37,Custom2.strCustomName As 38,Custom3.strCustomName As 39,Custom4.strCustomName As 40,Custom5.strCustomName As 41," _
              & " [ItemActivityDetail].[strProduceNum] As 42,ItemActivityDetail.intValidDay As 43,ItemActivityDetail.dblQuantity As 44,([ItemActivityDetail ].[dblCurrAmount]+[ItemActivityDetail].[dblCurrTaxAmount]) As 45," & pbsql
    sqlselect = " Select ItemActivityDetail.lngActivityDetailID As 业务ID, iif((IIf(IsNull([ItemActivityDetail].[dblCurrAmount]),0,[ItemActivityDetail].[dblCurrAmount]))<>0,'√','') As 结算," _
              & " '' AS 行号,0 AS 优惠日2,0 AS 优惠日3,0 AS 折扣率1,0 AS 折扣率2,0 AS 折扣率3,(IIf(IsNull(ItemActivityDetail.dblCurrAmount),0,ItemActivityDetail.dblCurrAmount))  AS 原结算金额," _
              & " 0 AS 原结算折扣,iif(isnull([ItemActivityDetail].[dblQuantity]),' ',Trim(Str([ItemActivityDetail].[dblQuantity]\[ItemUnit].[dblFactor]))+'.'+String(Len(Trim(Str([ItemUnit].[dblFactor])))-Len(Trim(Str([ItemActivityDetail].[dblQuantity] Mod " _
              & " [ItemUnit].[dblFactor]))),'0')+Trim(Str([ItemActivityDetail].[dblQuantity] Mod [ItemUnit].[dblFactor]))) AS 原结算数量,([ItemActivityDetail ].[dblCurrAmount]+[dblCurrTaxAmount]-" _
              & " [ItemActivityDetail ].[dblCurrSettlementAmount]+Iif(IsNull([ItemActivityDetail].[dblCurrAmount]),0,[ItemActivityDetail].[dblCurrAmount])) AS 原未结金额,Trim(Str(([ItemActivityDetail].[dblQuantity]-" _
              & " [ItemActivityDetail].[dblSettlementQuantity]+Iif(IsNull([ItemActivityDetail].[dblQuantity]),0,[ItemActivityDetail].[dblQuantity]))\[ItemUnit].[dblFactor]))+'.'+String(Len(Trim(Str([ItemUnit].[dblFactor])))-" _
              & " Len(Trim(Str(([ItemActivityDetail].[dblQuantity]-[ItemActivityDetail].[dblSettlementQuantity]+Iif(IsNull([ItemActivityDetail].[dblQuantity]),0,[ItemActivityDetail].[dblQuantity])) Mod [ItemUnit].[dblFactor]))),'0')+ "
     str = " Trim(Str(([ItemActivityDetail].[dblQuantity]-[ItemActivityDetail].[dblSettlementQuantity]+Iif(IsNull([ItemActivityDetail].[dblQuantity]),0,[ItemActivityDetail].[dblQuantity])) Mod [ItemUnit].[dblFactor])) AS 原未结数量," _
              & " ItemActivity.lngActivityTypeID AS 类型ID, ItemActivityDetail.strProduceDate As 15,ItemActivityDetail.strValidDate As 16,ItemActivityDetail.lngItemID As 17,ItemActivityDetail.lngUnitID As 18,100.00 As 19,dblCurrPrice*dblFactor As 20," _
              & " ItemActivityDetail.lngTaxID As 21,ItemActivityDetail.lngJobID As 22,ItemActivityDetail.lngCustomID0 As 23,ItemActivityDetail.lngCustomID1 As 24,ItemActivityDetail.lngCustomID2 As 25,ItemActivityDetail.lngCustomID3 As 26," _
              & " ItemActivityDetail.lngCustomID4 As 27,ItemActivityDetail.lngCustomID5 As 28,dblFactor As 29,(strItemCode & ' ' & strItemName & ' ' & strItemStyle) As 30,strUnitName As 31,strTaxName As 32,Item.lngPositionID As 33," _
              & " strPositionName As 34,strJobName As 35,Custom0.strCustomName As 36,Custom1.strCustomName As 37,Custom2.strCustomName As 38,Custom3.strCustomName As 39,Custom4.strCustomName As 40,Custom5.strCustomName As 41," _
              & " [ItemActivityDetail].[strProduceNum] As 42,ItemActivityDetail.intValidDay As 43,ItemActivityDetail.dblQuantity As 44,([ItemActivityDetail ].[dblCurrAmount]+[ItemActivityDetail].[dblCurrTaxAmount]) As 45," & pbsql
    sqlselect = sqlselect & str
    

    strSql = sqlselect & strSql
    Set q2 = gclsBase.BaseDB.CreateQueryDef("", strSql)
    q2.Parameters("DetailID") = DetailID
    q2.Parameters("CustomerID") = CustomerID
    q2.Parameters("CurrencyID") = CurrencyID
    Set recRecordset = q2.OpenRecordset(dbOpenSnapshot)
    'Set Datahl.Recordset = recRecordset
    '列表是否为空
    If recRecordset.RowCount = 0 Then
        msgGrid.HighLight = flexHighlightNever
'        ShowMsg me.hwnd, "该分期发出商品资料结算单无对应分期发出商品资料资料", MB_SYSTEMMODAL + MB_ICONEXCLAMATION, msgcaption
        isinit = False
    Else
        recRecordset.MoveLast
        recRecordset.MoveFirst
    End If
    Set Datahl.Recordset = recRecordset
    msgGrid.HighLight = flexHighlightAlways
    If isinit = True Then
       Set mlhls = recRecordset
       inittext
       isinit = False
    End If
    recRecordset.Close
    
    With msgGrid
        .SelectionMode = flexSelectionFree
        .FocusRect = flexFocusNone
        .ColWidth(0) = 0
        .ColWidth(1) = 488
'        .FixedCols = intfixl
        intCount = 2
        While intCount <= 44
              .ColWidth(intCount) = 0
              intCount = intCount + 1
        Wend
        .Redraw = True
   
    End With
Exit Sub
Err:
    ShowMsg Me.hwnd, "分期发出商品资料初始化失败", MB_SYSTEMMODAL + MB_ICONEXCLAMATION, "分期发出商品"
End Sub
'初始化各text框中数据
Private Sub inittext()
Dim intCount As Integer, dx As Double, dz As Double
Dim wjje As Double, yjje As Double, l As Integer, n As Integer
    Dim recRecordset As rdoResultset
    dx = 0
    dz = 0
    Set Datahl.Recordset = mlhls
    mlhls.MoveFirst
    For intCount = 1 To mlhls.RowCount
          wjje = C2Dbl(mlhls.rdoColumns("未结金额"))
          yjje = C2Dbl(IIf(IsNull(mlhls.rdoColumns("结算金额")), 0, mlhls.rdoColumns("结算金额")))
          dx = dx + wjje
          dz = dz + yjje
          mlhls.MoveNext
     Next intCount
     l = intfixl
     n = l
     While (msgGrid.TextMatrix(0, l) <> "结算金额")
            l = l + 1
     Wend
     While (msgGrid.TextMatrix(0, n) <> "未结金额")
            n = n + 1
     Wend
     hLb(n).Caption = CStr(dx)
     hLb(l).Caption = CStr(dz)
     hLb(l).Refresh
     hLb(n).Refresh
End Sub

'结算内容筛选
Private Sub FilterData()
Dim i As Integer
'If msgGrid.Rows > 1 Then
    i = 1
    strWorkID = ""
    Do While i < msgGrid.Rows
       If msgGrid.TextMatrix(i, 1) = "√" Then
          If Len(strWorkID) > 0 Then
              strWorkID = strWorkID & "," & CStr(getnumber(i, 0))
          Else
              strWorkID = CStr(getnumber(i, 0))
          End If
       End If
       i = i + 1
    Loop
    strWorkID = "( " & strWorkID & " )"
      If mclsGrid.ListSet.ListID < 1 Then
       mclsGrid.ListSet.SaveList
    End If
    Filter.ShowFilter mclsGrid.ListSet.ListID, 1
    If msgGrid.Rows > 1 Then
       If ShowMsg(Me.hwnd, "筛选操作后,你刚刚做的结算将被取消,需要先存盘吗", MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2 + MB_SYSTEMMODAL, "分期发出商品") = IDYES Then
          SaveData (0)
       End If
    End If
    mclsGrid.ListSet.SaveList
    mclsGrid.ColOfs = intfixl
    isinit = True
    GetList
    mclsGrid.SetupStyle
'End If
End Sub
'存盘
Private Sub SaveData(kkk As Integer)        '存盘
Dim i As Integer, j As Integer, temp As Double, strSql As String, GoodsID As Long, dblsl As Double
Dim l  As Integer, n As Integer, slh As String, intCount As Integer, k As Integer, dblje As Double
Dim blnColse As Boolean, ActID As Long, dblhl As Double
'On Error GoTo Err
    i = 1
    'MousePointer = vbHourglass
    l = intfixl
    n = intfixl
    GoodsID = 0
    If msgGrid.Rows > 1 Then
        msgGrid.col = 16
        msgGrid.ColSel = 16
        msgGrid.Row = 1
        msgGrid.RowSel = 1
        msgGrid.Sort = 3
    End If
    While (msgGrid.TextMatrix(0, l) <> "结算金额")
           l = l + 1
    Wend
    While (msgGrid.TextMatrix(0, n) <> "结算数量")
           n = n + 1
    Wend
    
    intCount = mfrmToFormname.grdCol.Rows
    If mfrmToFormname.grdCol.Rows < 2 Then
       mfrmToFormname.InsertARow
       'False
       intCount = intCount + 1
    End If
    j = 1

⌨️ 快捷键说明

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