-
上传用户:zhpu1995
上传日期:2013-09-06
资源大小:61151k
文件大小:27k
源码类别:

企业管理

开发平台:

Visual Basic

  1. Attribute VB_Name = "XtsyModule"
  2. '系统私有模块用来放置一些子系统独有的过程与函数
  3. Public str_Code As String                               '存储列内容参数
  4. Public conAlart As Long                                 '高储低储预警
  5. Public conArea As Long                                  '货区管理
  6. Public conExceed As Long                                '超限额领料
  7. Public conForbid As Long                                '盘点冻结出入库
  8. Public conBatch As Long                                 '批次管理
  9. Public conQuan As Long                                  '保值期管理
  10. Public conAllow As Long                                 '允许负出库
  11. Public conHLJudge As Long                               '高储和低储判断标准
  12. Public strHlpR As String
  13. Public strM As String                                    '物料编码
  14. Public S1 As String
  15. Public PriceMode As String
  16. Public RBFlag As Integer                                 '红字兰字标识
  17. Const AreaString = "货区"
  18. Const BatchString = "批号"
  19. Const QuanString = "失效日期"
  20. Public Sub Drxtztcs()                                   '读入系统帐套参数
  21.    
  22.     Dim Ztcsbrec As New ADODB.Recordset
  23.     Dim RecTemp As New ADODB.Recordset
  24.     Dim Sqlstr As String
  25.   
  26.     With Ztcsbrec
  27.         '金额总位数
  28.         .Open "Select * From Gy_AccInformation Where SystemCode='Cwzz'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  29.         .MoveFirst
  30.         .Find "itemcode='cwjezws'"
  31.         If Not Ztcsbrec.EOF Then
  32.             Xtjezws = Val(Trim(Ztcsbrec.Fields("itemvalue")))
  33.         End If
  34.         
  35.         '数量总位数
  36.         .MoveFirst
  37.         .Find "itemcode='cwslzws'"
  38.         If Not Ztcsbrec.EOF Then
  39.             Xtslzws = Val(Trim(Ztcsbrec.Fields("itemvalue")))
  40.         End If
  41.    
  42.         '单价总位数
  43.         .MoveFirst
  44.         .Find "itemcode='cwdjzws'"
  45.         If Not Ztcsbrec.EOF Then
  46.             Xtdjzws = Val(Trim(Ztcsbrec.Fields("itemvalue")))
  47.         End If
  48.         
  49.         '金额小数位数
  50.         .MoveFirst
  51.         .Find "itemcode='cwjexsws'"
  52.         If Not Ztcsbrec.EOF Then
  53.             Xtjexsws = Val(Trim(Ztcsbrec.Fields("itemvalue")))
  54.         End If
  55.    
  56.         '数量小数位数
  57.         .MoveFirst
  58.         .Find "itemcode='cwslxsws'"
  59.         If Not Ztcsbrec.EOF Then
  60.             Xtslxsws = Val(Trim(Ztcsbrec.Fields("itemvalue")))
  61.         End If
  62.         
  63.         '单价小数位数
  64.         .MoveFirst
  65.         .Find "itemcode='cwdjxsws'"
  66.         If Not Ztcsbrec.EOF Then
  67.             Xtdjxsws = Val(Trim(Ztcsbrec.Fields("itemvalue")))
  68.         End If
  69.         .Close
  70.     End With
  71.   
  72. End Sub
  73. Public Sub getSysDef()
  74. '模块功能:得到系统设置信息
  75.     Dim adoRec As New ADODB.Recordset
  76.     Dim intNum As Integer
  77.     If adoRec.State = 1 Then adoRec.Close
  78.     Set adoRec = Cw_DataEnvi.DataConnect.Execute("select * from gy_accinformation where systemcode='kf'")
  79.     With adoRec
  80.         If Not .EOF Then
  81.             .MoveFirst
  82.             For intNum = 1 To .RecordCount
  83.                 Select Case Trim(.Fields("itemcode"))
  84.                     Case "KF_Area"
  85.                         conArea = Val(.Fields("itemvalue"))
  86.                     Case "KF_Batch"
  87.                         conBatch = Val(.Fields("itemvalue"))
  88.                     Case "KF_Quan"
  89.                         conQuan = Val(.Fields("itemvalue"))
  90.                     Case "KF_Exceed"
  91.                         conExceed = Val(.Fields("itemvalue"))
  92.                     Case "KF_Forbid"
  93.                         conForbid = Val(.Fields("itemvalue"))
  94.                     Case "KF_Alart"
  95.                         conAlart = Val(.Fields("itemvalue"))
  96.                     Case "KF_Allow"
  97.                         conAllow = Val(.Fields("itemvalue"))
  98.                     Case "KF_HLFlag"
  99.                         conHLJudge = Val(.Fields("itemvalue"))
  100.                 End Select
  101.                 .MoveNext
  102.             Next intNum
  103.         End If
  104.         .Close
  105.     End With
  106.     Set adoRec = Nothing
  107. End Sub
  108. Public Function Clrkdkfsc() As Boolean
  109. '模块功能:判断材料入库单是否由库存系统生成
  110.     Dim adoRec As New ADODB.Recordset
  111.     Dim intNum As Integer
  112.     If adoRec.State = 1 Then adoRec.Close
  113.     Set adoRec = Cw_DataEnvi.DataConnect.Execute("select * from gy_accinformation where systemcode='chhs' AND itemcode='Chhs_ClrkdKfsc'")
  114.     With adoRec
  115.         If Not .EOF Then
  116.             If Trim(.Fields("itemvalue")) = 1 Then
  117.                 Clrkdkfsc = True
  118.             Else
  119.                 Clrkdkfsc = False
  120.             End If
  121.         End If
  122.     End With
  123.     adoRec.Close
  124.     Set adoRec = Nothing
  125. End Function
  126. Public Function CheckRefTable(KeyValue As Variant, KeyName As String, RefTable As String, Optional KeyCon As String, Optional KeyConName As String) As Boolean
  127.  Dim adoReturn As New ADODB.Recordset
  128.  Dim str As String
  129.  Dim Status As Integer
  130.  
  131.   CheckRefTable = False
  132.   Status = 0
  133.     If KeyCon <> "" Then
  134.      Status = 1
  135.     End If
  136.         str = "KF_SP_CheckRefTable '" & Trim(KeyValue) & "','" & Trim(KeyName) & "','" & Trim(RefTable) & "','" & Trim(KeyCon) & "','" & Trim(KeyConName) & "'," & Val(Status)
  137.         Set adoReturn = Cw_DataEnvi.DataConnect.Execute(str)
  138.         If Not adoReturn.EOF Then
  139.          If adoReturn.Fields("f1") Then
  140.           CheckRefTable = True
  141.          Else
  142.           CheckRefTable = False
  143.          End If
  144.         End If
  145.         adoReturn.Close
  146.         Set adoReturn = Nothing
  147. End Function
  148. Public Function LrTextFHXZ(lrzfasc As Integer) As Boolean       '文本框录入非特殊符号限制
  149.     LrTextFHXZ = True
  150.     If (lrzfasc >= -23645 And lrzfasc <= -23643) Or lrzfasc = -23617 Or lrzfasc = -24150 Or (lrzfasc <= -24156 And lrzfasc >= -24158) Or lrzfasc = -23647 Or lrzfasc = -24147 Or lrzfasc = -23621 Or lrzfasc = -23636 Or lrzfasc = -23638 Or lrzfasc = 124 Or lrzfasc = 94 Or lrzfasc = 96 Or lrzfasc = 126 Or lrzfasc = 247 Or lrzfasc = 165 Or (lrzfasc <= 64 And lrzfasc >= 58) Or (lrzfasc >= 42 And lrzfasc <= 45) Or lrzfasc = 46 Or (lrzfasc >= 32 And lrzfasc <= 39) Then
  151.         LrTextFHXZ = False
  152.         lrzfasc = 0
  153.     End If
  154. End Function
  155. Public Sub ShowOrHideCol(WglrGrid As vsFlexGrid, strGridCode As String, GridStr() As String, Szzls As Integer)
  156. '函数功能:显示或隐藏相应列
  157.     
  158.     Dim adoRec As New ADODB.Recordset                   'ADO连接
  159.     Dim strColTitle As String                           '列标题
  160.     Dim strColIndex As String                           '列索引
  161.     Dim strSQL As String                                '查询连接字符串
  162.     
  163.     strSQL = "SELECT * FROM XT_Grid WHERE Grid_Code='" & strGridCode & "' AND ColHidden=1 ORDER BY ColIndex"
  164.     Set adoRec = Cw_DataEnvi.DataConnect.Execute(strSQL)
  165.     
  166.     With adoRec
  167.         If Not .EOF Then
  168.             .MoveFirst
  169.             Do While Not .EOF
  170.                 strColIndex = Trim(.Fields("ColIndex"))
  171.                 strColTitle = Trim(.Fields("ColTitle1"))
  172.                 If conArea = 1 And AreaString = strColTitle Then
  173.                     WglrGrid.ColHidden(Sydz(strColIndex, GridStr(), Szzls)) = False
  174.                 End If
  175.                 If conBatch = 1 And BatchString = strColTitle Then
  176.                     WglrGrid.ColHidden(Sydz(strColIndex, GridStr(), Szzls)) = False
  177.                 End If
  178.                 If conQuan = 1 And QuanString = strColTitle Then
  179.                     WglrGrid.ColHidden(Sydz(strColIndex, GridStr(), Szzls)) = False
  180.                 End If
  181.                 .MoveNext
  182.             Loop
  183.         End If
  184.     End With
  185.     
  186.     adoRec.Close
  187.     Set adoRec = Nothing
  188.     
  189. End Sub
  190. Public Function FunHlpR(str1 As String, str2 As String, str3 As String) As String
  191. '通用帮助函数     str1----帮助编码  str2---条件字段    str3----条件值
  192.  Dim adoTemp As New ADODB.Recordset
  193.     Set adoTemp = Cw_DataEnvi.DataConnect.Execute("KF_SP_Xthelp '" & Trim(str1) & "','" & Trim(str2) & "','" & Trim(str3) & "'")
  194.     If Not adoTemp.EOF Then
  195.         FunHlpR = Trim(adoTemp.Fields("r1"))
  196.     End If
  197. End Function
  198. Public Function HelpString(intCount As Integer, hlpCondition() As String, hlpValue() As String) As String
  199.     Dim tempJsq As Integer
  200.     
  201.     ReDim hlpCondition(0 To intCount - 1)
  202.     ReDim hlpValue(0 To intCount - 1)
  203.     
  204.     HelpString = HelpString & hlpCondition(0) & "='" & hlpValue(0) & "'"
  205.     If intCount > 1 Then
  206.         For tempJsq = 1 To intCount - 1
  207.             HelpString = HelpString & " and " & hlpCondition(tempJsq) & "='" & hlpValue(tempJsq) & "'"
  208.         Next tempJsq
  209.     End If
  210.     
  211. End Function
  212. Public Function CheckArea(strWhCode As String, strArea As String, AreaCode As String, AreaName As String) As Boolean
  213. '函数功能:进行货区管理时,用户输入货区的合法性检查,CheckArea=True时表示货区输入有误
  214.     
  215.     Dim adoRec As New ADODB.Recordset                   'ADO连接
  216.     Dim strSQL As String                                '查询连接字符串
  217.     
  218.     strSQL = "SELECT * FROM KF_MArea WHERE WhCode='" & strWhCode & "' and (MArea='" & strArea & "' OR MAreaName='" & strArea & "') and endflag=1"
  219.     Set adoRec = Cw_DataEnvi.DataConnect.Execute(strSQL)
  220.     
  221.     With adoRec
  222.         If .EOF Then
  223.             CheckArea = True
  224.         Else
  225.             CheckArea = False
  226.             AreaCode = .Fields("MArea")
  227.             AreaName = .Fields("MAreaName")
  228.         End If
  229.     End With
  230.     
  231.     adoRec.Close
  232.     Set adoRec = Nothing
  233. End Function
  234. Public Function CheckBillDate(LrText As TextBox, Kjyear As Integer, Period As Integer) As Boolean
  235. '函数功能:判断用户输入的制单日期是否已经结帐,CheckBillDate为True时,表示已经结帐
  236.     Dim RecTemp As New ADODB.Recordset
  237.     Dim Sqlstr As String
  238.     Dim Tsxx As String
  239.     
  240.     Sqlstr = "Select * FROM  Gy_Kjrlb Where Qsrq<='" & LrText & "' and zzrq>='" & LrText & "' and kjyear=" & Mid(LrText, 1, 4)
  241.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  242.     
  243.     With RecTemp
  244.         If Not .EOF Then
  245.             If .Fields("kfjzbz") Then
  246.                CheckBillDate = True
  247.                Tsxx = "所选会计期间已经结帐,不能再填制单据!"
  248.                Call Xtxxts(Tsxx, 0, 1)
  249.                LrText.SetFocus
  250.                Exit Function
  251.             Else
  252.                CheckBillDate = False
  253.                Kjyear = Val(.Fields("kjyear"))
  254.                Period = Val(.Fields("Period"))
  255.             End If
  256.         Else
  257.             CheckBillDate = True
  258.             Tsxx = "所选年度不正确!"
  259.             Call Xtxxts(Tsxx, 0, 1)
  260.             LrText.SetFocus
  261.             Exit Function
  262.         End If
  263.     End With
  264.     
  265.     RecTemp.Close
  266.     Set RecTemp = Nothing
  267. End Function
  268. Public Function CheckStartFinish() As Boolean
  269. '函数功能:判断初始化是否完成
  270.     Dim RecTemp As New ADODB.Recordset
  271.     Dim Sqlstr As String
  272.     Dim Tsxx As String
  273.     
  274.     Sqlstr = "Select * FROM  Gy_AccInformation Where systemcode='KF' and itemcode='KFInit'"
  275.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  276.     
  277.     With RecTemp
  278.         If CBool(.Fields("ItemValue")) = True Then
  279.             CheckStartFinish = True
  280.         Else
  281.             CheckStartFinish = False
  282.         End If
  283.     End With
  284.         
  285.     RecTemp.Close
  286.     Set RecTemp = Nothing
  287.         
  288. End Function
  289. Public Function KFHLJudge(Status As Integer, strWhCode As String, strMNum As String, strMArea As String, dblEndQuan As Double, InOutFlag As Integer, MainID As Long)
  290. '函数功能:库存高储和低储判断--Status=0(输入数量与物料表中的高储和低储值比较)   Status=1(输入数量与现存量表中的高储和低储值比较)
  291.     
  292.     Dim RecTemp As New ADODB.Recordset
  293.     Dim recADO As New ADODB.Recordset
  294.     Dim tempSQL As String
  295.     Dim tempQuan As Double
  296.     Dim Sqlstr As String
  297.     Dim Tsxx As String
  298.     Dim dblHigh As Double
  299.     Dim dblLow As Double
  300.     Dim dblNow As Double
  301.     '从收发记录主表中得到结果
  302.     If strMArea <> "" Then
  303.         tempSQL = "Select sum(AddupIssueQuan) as AddupIssueQuan from gy_inoutsub where inoutMainID=" & MainID & " and MNumber='" & Trim(strMNum) & "' and MArea='" & Trim(strMArea) & "'"
  304.     Else
  305.         tempSQL = "Select sum(AddupIssueQuan) as AddupIssueQuan FROM Gy_InOutsub WHERE inoutMainID=" & MainID & " and MNumber='" & Trim(strMNum) & "' and MArea IS NULL "
  306.     End If
  307.     If Status = 0 Then
  308.         Sqlstr = "Select HighStorage,LowStorage,NowStorage FROM  Gy_Material Where MNumber='" & Trim(strMNum) & " '"
  309.     Else
  310.         If strMArea <> "" Then
  311.             Sqlstr = "Select Max(HighQuan) AS HighQuan,MIN(LowQuan) AS LowQuan,SUM(EndQuan) AS EndQuan FROM  Kf_NowQuan Where MNumber='" & Trim(strMNum) & " ' and WhCode='" & Trim(strWhCode) & "' and MArea='" & Trim(strMArea) & "'"
  312.         Else
  313.             Sqlstr = "Select Max(HighQuan) AS HighQuan,MIN(LowQuan) AS LowQuan,SUM(EndQuan) AS EndQuan FROM  Kf_NowQuan Where MNumber='" & Trim(strMNum) & " ' and WhCode='" & Trim(strWhCode) & "' and MArea IS NULL"
  314.         End If
  315.     End If
  316.     '从收发记录表中查找符合条件的记录
  317.     Set recADO = Cw_DataEnvi.DataConnect.Execute(tempSQL)
  318.     With recADO
  319.         If Not .EOF Then
  320.             If Not IsNull(.Fields("AddupIssueQuan")) Then
  321.                 tempQuan = .Fields("AddupIssueQuan")
  322.             End If
  323.         End If
  324.     End With
  325.     recADO.Close
  326.     Set recADO = Nothing
  327.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  328.     
  329.     With RecTemp
  330.         If Not .EOF Then
  331.             If Status = 0 Then
  332.                 dblHigh = .Fields("HighStorage")
  333.                 dblLow = .Fields("LowStorage")
  334.                 dblNow = .Fields("NowStorage")
  335.             Else
  336.                 If IsNull(.Fields("HighQuan")) And IsNull(.Fields("LowQuan")) And IsNull(.Fields("EndQuan")) Then
  337.                     RecTemp.Close
  338.                     Set RecTemp = Nothing
  339.                     Exit Function
  340.                 Else
  341.                     dblHigh = .Fields("HighQuan")
  342.                     dblLow = .Fields("LowQuan")
  343.                     dblNow = .Fields("EndQuan")
  344.                 End If
  345.             End If
  346.         Else
  347.             RecTemp.Close
  348.             Set RecTemp = Nothing
  349.             Exit Function
  350.         End If
  351.     End With
  352.     
  353.     RecTemp.Close
  354.     Set RecTemp = Nothing
  355.     If InOutFlag = 1 Then
  356.         If dblHigh <> 0 Then
  357.             If dblNow + dblEndQuan > dblHigh Then
  358.                 Tsxx = "库存超储,请检查库存量!"
  359.                 Call Xtxxts(Tsxx, 0, 1)
  360.                 Exit Function
  361.             End If
  362.         End If
  363.         If dblLow <> 0 Then
  364.             If dblNow + dblEndQuan < dblLow Then
  365.                 Tsxx = "库存低储,请检查库存量!"
  366.                 Call Xtxxts(Tsxx, 0, 1)
  367.                 Exit Function
  368.             End If
  369.         End If
  370.     Else
  371.         If dblHigh <> 0 Then
  372.             If dblNow + tempQuan - dblEndQuan > dblHigh Then
  373.                 Tsxx = "库存超储,请检查库存量!"
  374.                 Call Xtxxts(Tsxx, 0, 1)
  375.                 Exit Function
  376.             End If
  377.         End If
  378.         If dblLow <> 0 Then
  379.             If dblNow + tempQuan - dblEndQuan < dblLow Then
  380.                 Tsxx = "库存低储,请检查库存量!"
  381.                 Call Xtxxts(Tsxx, 0, 1)
  382.                 Exit Function
  383.             End If
  384.         End If
  385.     End If
  386.     
  387. End Function
  388. Public Function BatchJudge(strWhCode As String, strMNum As String, strBatch As String, intCount As Integer, intFatherID() As Integer, intChildID() As Integer, IsQc() As Boolean, flag As Boolean) As Integer
  389. '函数功能:判断批次是否存在,如果存在其所对应的纪录
  390. '输入参数:strWhCode------仓库编码          strMNum---------物料编码            strBatch---------批号
  391. '          Flag ----------新增和删除标志(True表示删除)
  392. '返 回 值:BatchJudge=1---批号不存在        intCount--------符合条件的记录个数
  393. '          intFatherID()--符合条件的主表ID  intChildID------符合条件的子表ID
  394.     Dim RecTemp As New ADODB.Recordset
  395.     Dim Sqlstr As String
  396.     Dim tempJsq As Integer
  397.     If flag = True Then
  398.         Sqlstr = "Select * FROM  kf_V_Batch Where WhCode='" & Trim(strWhCode) & "' and MNumber='" & Trim(strMNum) & " '" & _
  399.             " and BatchNum='" & Trim(strBatch) & "' order by IsQc DESC"
  400.     Else
  401.         Sqlstr = "Select * FROM  kf_V_Batch Where WhCode='" & Trim(strWhCode) & "' and MNumber='" & Trim(strMNum) & " '" & _
  402.             " and BatchNum='" & Trim(strBatch) & "' and IsCk=0 order by IsQc,FatherTableNum"
  403.     End If
  404.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  405.     
  406.     With RecTemp
  407.         If Not .EOF Then
  408.             '对此相同批号的纪录求和
  409.             intCount = .RecordCount
  410.             ReDim intFatherID(1 To intCount)
  411.             ReDim intChildID(1 To intCount)
  412.             ReDim IsQc(1 To intCount)
  413.             For tempJsq = 1 To intCount
  414.                 IsQc(tempJsq) = CBool(.Fields("isqc"))
  415.                 intFatherID(tempJsq) = .Fields("FatherTableNum")
  416.                 intChildID(tempJsq) = .Fields("SubTableNum")
  417.             Next tempJsq
  418.             BatchJudge = 0
  419.         Else
  420.             '此批号不存在
  421.             BatchJudge = 1
  422.             Exit Function
  423.         End If
  424.     End With
  425.     
  426.     RecTemp.Close
  427.     Set RecTemp = Nothing
  428. End Function
  429. Public Function RestoreQuan(intCount As Integer, intFatherID() As Integer, intChildID() As Integer, IsQc() As Boolean, dblQuan As Double, flag As Boolean)
  430. '函数功能:当进行批次管理的物料进行出库操作时,回写此物料在采购入库单中相应批次的累计出库数量值(AddupIssueQuan)
  431. '输入参数:intCount-------回写记录的数量     intFatherID---------收发记录主表ID      intChildID--------收发记录子表ID
  432. '           IsQc  -------是否为期初数据(1--期初 0--入库)        dblQuan---------回写数量
  433. '           flag  -------增加删除标志(True---AddupIssueQuan减少  False---AddupIssueQuan增加)
  434. '编制说明:当同一种物料同一种批次同一个仓库的记录有一条以上时,如果出库的数量大于其中的一条,回写时应作相应判断
  435.     Dim RecTempADO As New ADODB.Recordset
  436.     Dim adoRec As New ADODB.Recordset
  437.     Dim Sqlstr As String
  438.     Dim jsq As Integer
  439.     Dim MinFID As Integer
  440.     Dim MinCID As Integer
  441.     Dim dblTotalQuan As Double
  442.     Dim dblIssue As Double
  443.     Dim dblTemp As Double
  444.     
  445.     For jsq = 1 To intCount
  446.         If IsQc(jsq) = False Then
  447.             Sqlstr = "select Quan,IssueQuan from kf_startsub where startMainid=" & intFatherID(jsq) & " and startsubid=" & intChildID(jsq)
  448.         Else
  449.             Sqlstr = "select FactReceiptQuan,AddupIssueQuan from gy_inoutsub where InOutMainid=" & intFatherID(jsq) & " and Inoutsubid=" & intChildID(jsq)
  450.         End If
  451.         
  452.         Set RecTempADO = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  453.         
  454.         With RecTempADO
  455.             If Not .EOF Then
  456.                 If IsQc(jsq) = False Then
  457.                     dblTotalQuan = .Fields("quan")
  458.                     dblIssue = .Fields("issuequan")
  459.                 Else
  460.                     dblTotalQuan = .Fields("FactReceiptQuan")
  461.                     dblIssue = .Fields("AddupIssueQuan")
  462.                 End If
  463.             Else
  464.                 '改记录已经被删除
  465.                 
  466.             End If
  467.         End With
  468.         RecTempADO.Close
  469.         Set RecTempADO = Nothing
  470.         
  471.         If flag = False Then
  472.             dblTemp = dblTotalQuan - dblIssue
  473.             If dblTemp < dblQuan Then
  474.                 If IsQc(jsq) = False Then
  475.                     Cw_DataEnvi.DataConnect.Execute ("Update kf_startsub set issuequan=issuequan+" & dblTemp & " where startMainid=" & intFatherID(jsq) & " and startsubid=" & intChildID(jsq))
  476.                 Else
  477.                     Cw_DataEnvi.DataConnect.Execute ("Update gy_inoutsub set AddupIssueQuan=AddupIssueQuan+" & dblTemp & " where InOutMainid=" & intFatherID(jsq) & " and InOutsubid=" & intChildID(jsq))
  478.                 End If
  479.             Else
  480.                 If IsQc(jsq) = False Then
  481.                     Cw_DataEnvi.DataConnect.Execute ("Update kf_startsub set issuequan=issuequan+" & dblQuan & " where startMainid=" & intFatherID(jsq) & " and startsubid=" & intChildID(jsq))
  482.                 Else
  483.                     Cw_DataEnvi.DataConnect.Execute ("Update gy_inoutsub set AddupIssueQuan=AddupIssueQuan+" & dblQuan & " where InOutMainid=" & intFatherID(jsq) & " and InOutsubid=" & intChildID(jsq))
  484.                 End If
  485.                 Exit For
  486.             End If
  487.         Else
  488.             If dblIssue < dblQuan Then
  489.                 If IsQc(jsq) = False Then
  490.                     Cw_DataEnvi.DataConnect.Execute ("Update kf_startsub set issuequan=issuequan-" & dblIssue & " where startMainid=" & intFatherID(jsq) & " and startsubid=" & intChildID(jsq))
  491.                 Else
  492.                     Cw_DataEnvi.DataConnect.Execute ("Update gy_inoutsub set AddupIssueQuan=AddupIssueQuan-" & dblIssue & " where InOutMainid=" & intFatherID(jsq) & " and InOutsubid=" & intChildID(jsq))
  493.                 End If
  494.             Else
  495.                 If IsQc(jsq) = False Then
  496.                     Cw_DataEnvi.DataConnect.Execute ("Update kf_startsub set issuequan=issuequan-" & dblQuan & " where startMainid=" & intFatherID(jsq) & " and startsubid=" & intChildID(jsq))
  497.                 Else
  498.                     Cw_DataEnvi.DataConnect.Execute ("Update gy_inoutsub set AddupIssueQuan=AddupIssueQuan-" & dblQuan & " where InOutMainid=" & intFatherID(jsq) & " and InOutsubid=" & intChildID(jsq))
  499.                 End If
  500.                 Exit For
  501.             End If
  502.         End If
  503.         
  504.     Next jsq
  505.     
  506.     
  507. End Function
  508. Public Function KFChangeCG(dblQuan As Double, strMnumber As String, intStatus As Integer) As Double
  509. '函数功能:将库存的数量转换成采购计量单位的数量--intStatus=0(采购到库存) intStatus=1(库存到采购)
  510.     Dim RecTemp As New ADODB.Recordset
  511.     Dim Sqlstr As String
  512.     Sqlstr = "Select PurInvCon1,PurInvCon2,MNumber FROM  Gy_Material Where MNumber='" & Trim(strMnumber) & " '"
  513.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  514.     With RecTemp
  515.         If Not .EOF Then
  516.             If intStatus = 1 Then
  517.                 KFChangeCG = dblQuan / (.Fields("PurInvCon1") / .Fields("PurInvCon2"))
  518.             Else
  519.                 KFChangeCG = dblQuan * (.Fields("PurInvCon1") / .Fields("PurInvCon2"))
  520.             End If
  521.         End If
  522.     End With
  523.     
  524.     RecTemp.Close
  525.     Set RecTemp = Nothing
  526.     
  527. End Function
  528. Public Function KFChangeXS(dblQuan As Double, strMnumber As String, intStatus As Integer) As Double
  529. '函数功能:将库存的数量转换成销售计量单位的数量--intStatus=0(销售到库存) intStatus=1(库存到销售)
  530.     Dim RecTemp As New ADODB.Recordset
  531.     Dim Sqlstr As String
  532.     Sqlstr = "Select SaleInvCon1,SaleInvCon2,MNumber FROM  Gy_Material Where MNumber='" & Trim(strMnumber) & " '"
  533.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  534.     With RecTemp
  535.         If Not .EOF Then
  536.             If intStatus = 1 Then
  537.                 KFChangeXS = dblQuan / (.Fields("SaleInvCon1") / .Fields("SaleInvCon2"))
  538.             Else
  539.                 KFChangeXS = dblQuan * (.Fields("SaleInvCon1") / .Fields("SaleInvCon2"))
  540.             End If
  541.         End If
  542.     End With
  543.     
  544.     RecTemp.Close
  545.     Set RecTemp = Nothing
  546.     
  547. End Function
  548. Public Function KFNowQuan(strWhCode As String, strMNum As String, strMArea As String, strBatch As String, dblEndQuan As Double, MainID As Long, dblNow As Double) As Integer
  549. '函数功能:现存量判断--KFNowQuan=0(输入批此)   Status=1(输入数量与现存量表中的高储和低储值比较)
  550. '输入参数:MainID---主表ID
  551.     
  552.     Dim RecTemp As New ADODB.Recordset
  553.     Dim recADO As New ADODB.Recordset
  554.     Dim tempSQL As String
  555.     Dim Sqlstr As String
  556.     Dim tempQuan As Double
  557.     If strMArea <> "" Then
  558.         Sqlstr = "Select SUM(EndQuan) AS EndQuan FROM  Kf_NowQuan Where MNumber='" & Trim(strMNum) & "' and WhCode='" & Trim(strWhCode) & "' and MArea='" & Trim(strMArea) & "' and BatchNum='" & Trim(strBatch) & "'"
  559.         tempSQL = "Select FactIssueQuan from gy_inoutsub where inoutMainID=" & MainID & " and MNumber='" & Trim(strMNum) & "' and MArea='" & Trim(strMArea) & "' and BatchNum='" & Trim(strBatch) & "'"
  560.     Else
  561.         Sqlstr = "Select SUM(EndQuan) AS EndQuan FROM  Kf_NowQuan Where MNumber='" & Trim(strMNum) & " ' and WhCode='" & Trim(strWhCode) & "' and MArea IS NULL and BatchNum='" & Trim(strBatch) & "'"
  562.         tempSQL = "Select FactIssueQuan FROM Gy_InOutsub WHERE inoutMainID=" & MainID & " and MNumber='" & Trim(strMNum) & "' and MArea IS NULL and BatchNum='" & Trim(strBatch) & "'"
  563.     End If
  564.     
  565.     Set recADO = Cw_DataEnvi.DataConnect.Execute(tempSQL)
  566.     With recADO
  567.         If Not .EOF Then
  568.             If Not IsNull(.Fields("FactIssueQuan")) Then
  569.                 tempQuan = .Fields("FactIssueQuan")
  570.             End If
  571.         End If
  572.     End With
  573.     recADO.Close
  574.     Set recADO = Nothing
  575.     
  576.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  577.     
  578.     With RecTemp
  579.         If Not .EOF Then
  580.             If IsNull(.Fields("EndQuan")) Then
  581.                 RecTemp.Close
  582.                 Set RecTemp = Nothing
  583.                 dblNow = 0
  584.                 KFNowQuan = 0
  585.                 Exit Function
  586.             Else
  587.                 dblNow = .Fields("EndQuan") + tempQuan
  588.                 If dblNow - dblEndQuan < 0 Then
  589.                     KFNowQuan = 0
  590.                 Else
  591.                     KFNowQuan = 1
  592.                 End If
  593.             End If
  594.         Else
  595.             RecTemp.Close
  596.             Set RecTemp = Nothing
  597.             dblNow = 0
  598.             KFNowQuan = 0
  599.             Exit Function
  600.         End If
  601.     End With
  602.     
  603.     RecTemp.Close
  604.     Set RecTemp = Nothing
  605.     
  606. End Function
  607. Public Function Fun_ClrkdKfsc() As Boolean  '材料入库单是否库存生成
  608.     Dim int_temp As Integer
  609.     Dim rst_temp As New ADODB.Recordset
  610.     Set rst_temp = Cw_DataEnvi.DataConnect.Execute("select * from Gy_AccInformation where ltrim(rtrim(ItemCode))='Chhs_ClrkdKfsc'")
  611.     If rst_temp.RecordCount <> 0 Then
  612.         If Trim("" & rst_temp.Fields("ItemValue")) = "1" Then
  613.             Fun_ClrkdKfsc = True
  614.         Else
  615.             Fun_ClrkdKfsc = False
  616.         End If
  617.     Else
  618.             Fun_ClrkdKfsc = False
  619.     End If
  620.     rst_temp.Close
  621.     Set rst_temp = Nothing
  622. End Function
  623. Public Function Judge_NowDate() As Boolean '登陆是否为当前会计期间
  624.     Dim Tsxx As String
  625.     Dim temp_recordset As ADODB.Recordset
  626.     Set temp_recordset = Cw_DataEnvi.DataConnect.Execute("SELECT TOP 1 Kjyear, Period FROM Gy_kjrlb WHERE (Kfjzbz = 0) ORDER BY Kjyear, Period")
  627.     If Not temp_recordset.EOF Then
  628.         If Xtmm <> temp_recordset.Fields("Period") Or Xtyear <> temp_recordset.Fields("Kjyear") Then
  629.             Tsxx = "登录日期不在当前会计期间(" & Trim("" & temp_recordset.Fields("Kjyear")) & "-" & Trim("" & temp_recordset.Fields("Period")) & ")!"
  630.              Call Xtxxts(Tsxx, 0, 4)
  631.              Judge_NowDate = False
  632.         Else
  633.              Judge_NowDate = True
  634.         End If
  635.     Else
  636.              Judge_NowDate = False
  637.     End If
  638.     temp_recordset.Close
  639.     Set temp_recordset = Nothing
  640. End Function
  641. Public Sub NowQuanManage()
  642.     
  643.     Dim YesNo As Integer
  644.     Dim Tsxx As String
  645.     
  646.     Tsxx = "是否整理现存量?"
  647.     YesNo = Xtxxts(Tsxx, 1, 2)
  648.     If YesNo <> 6 Then
  649.         Exit Sub
  650.     End If
  651.     
  652.     With XT_FrmWaitMess
  653.         .Show
  654.         .Label1.Caption = "正在整理现存量!"
  655.         .Refresh
  656.     End With
  657.     
  658.     Cw_DataEnvi.DataConnect.BeginTrans
  659.     Cw_DataEnvi.DataConnect.Execute ("KF_SP_ModiNowQuan")
  660.     Cw_DataEnvi.DataConnect.CommitTrans
  661.     Unload XT_FrmWaitMess
  662.     Tsxx = "现存量整理完毕!"
  663.     Call Xtxxts(Tsxx, 0, 4)
  664.     Exit Sub
  665. End Sub