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

企业管理

开发平台:

Visual Basic

  1.       Left            =   0
  2.       TabIndex        =   122
  3.       Top             =   0
  4.       Width           =   9510
  5.       _ExtentX        =   16775
  6.       _ExtentY        =   979
  7.       ButtonWidth     =   820
  8.       ButtonHeight    =   926
  9.       AllowCustomize  =   0   'False
  10.       Appearance      =   1
  11.       Style           =   1
  12.       ImageList       =   "ImageList1"
  13.       _Version        =   393216
  14.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  15.          NumButtons      =   14
  16.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  17.             Caption         =   "新增"
  18.             Key             =   "zj"
  19.             ImageKey        =   "xz"
  20.          EndProperty
  21.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  22.             Caption         =   "修改"
  23.             Key             =   "xg"
  24.             ImageKey        =   "xg"
  25.          EndProperty
  26.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  27.             Caption         =   "删除"
  28.             Key             =   "sc"
  29.             ImageKey        =   "sc"
  30.          EndProperty
  31.          BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  32.             Style           =   4
  33.          EndProperty
  34.          BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  35.             Caption         =   "保存"
  36.             Key             =   "bc"
  37.             ImageKey        =   "bc"
  38.          EndProperty
  39.          BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  40.             Caption         =   "放弃"
  41.             Key             =   "fq"
  42.             ImageKey        =   "fq"
  43.          EndProperty
  44.          BeginProperty Button7 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  45.             Style           =   4
  46.          EndProperty
  47.          BeginProperty Button8 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  48.             Caption         =   "首张"
  49.             Key             =   "first"
  50.             ImageKey        =   "first"
  51.          EndProperty
  52.          BeginProperty Button9 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  53.             Caption         =   "上张"
  54.             Key             =   "prev"
  55.             ImageKey        =   "prev"
  56.          EndProperty
  57.          BeginProperty Button10 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  58.             Caption         =   "下张"
  59.             Key             =   "next"
  60.             ImageKey        =   "next"
  61.          EndProperty
  62.          BeginProperty Button11 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  63.             Caption         =   "末张"
  64.             Key             =   "last"
  65.             ImageKey        =   "last"
  66.          EndProperty
  67.          BeginProperty Button12 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  68.             Style           =   4
  69.          EndProperty
  70.          BeginProperty Button13 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  71.             Caption         =   "帮助"
  72.             Key             =   "bz"
  73.             ImageKey        =   "bz"
  74.          EndProperty
  75.          BeginProperty Button14 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  76.             Caption         =   "退出"
  77.             Key             =   "fh"
  78.             ImageKey        =   "tc"
  79.          EndProperty
  80.       EndProperty
  81.       BorderStyle     =   1
  82.    End
  83. End
  84. Attribute VB_Name = "Kpgl_jbcz"
  85. Attribute VB_GlobalNameSpace = False
  86. Attribute VB_Creatable = False
  87. Attribute VB_PredeclaredId = True
  88. Attribute VB_Exposed = False
  89. '******************************************************************
  90. '*    模 块 名 称 :资产卡片录入
  91. '*    功 能 描 述 :
  92. '*    程序员姓名  :徐衍民
  93. '*    最后修改人  :徐衍民
  94. '*    最后修改时间:2001/11/27
  95. '*    备        注:
  96. '******************************************************************
  97. Dim Tsxx As String                       '系统信息提示
  98. Dim rstemp As ADODB.Recordset            '打开数据集变量
  99. Dim MaxCode As String                    '最大值字符串变量
  100. Dim Ccur_bit As Boolean                  '币种本位币计算公式
  101. Public str_State As String               '文本框编辑状态
  102. Public str_CardNumber As String          '卡片编号
  103. Dim Str_RightEdit As String              '编辑(新增、修改、删除)权限索引
  104. '以下为固定使用变量(文本框)
  105. Dim Textvar() As Variant                 '存储变体型文本框信息
  106. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  107. Dim Textint() As Integer                 '存储整型文本框信息
  108. Dim Textstr() As String                  '存储字符型文本框信息
  109. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  110. Dim TextGroupCode As String              '文本框录入分组编码
  111. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  112. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  113. Dim CurTextIndex As Integer              '当前文本框索引值
  114. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  115. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  116. Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移
  117.     
  118.     Dim jdzygs As Integer                         '控件焦点转移个数
  119.     jdzygs = 52
  120.     Select Case KeyAscii
  121.         Case vbKeyReturn
  122.             If Kjjdzy(jdzygs) Then
  123.                 KeyAscii = 0
  124.             End If
  125.         Case 39           '屏蔽"'"
  126.             KeyAscii = 0
  127.     End Select
  128. End Sub
  129. Private Sub Form_Load()
  130.     
  131.     '以下为文本框处理程序
  132.     TextGroupCode = "Gdzc_CardJbcz"
  133.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  134.     Call Wbkcsh
  135.     
  136.     SSTab1.Tab = 0
  137.     
  138.     Me.AutoRedraw = False
  139.     
  140.     Num_text.Text = str_CardNumber
  141.     
  142.     SetToolState
  143.     
  144.     '编辑(新增、修改、删除)权限索引
  145.     Str_RightEdit = "Gdzc_Jbcz_Edit"
  146.     
  147. End Sub
  148. '*******************以下区域为编写自定义过程区域**********************
  149. '设置工具栏按钮状态
  150. Private Sub SetToolState()
  151.     If Me.AutoRedraw = False Then
  152.         If Trim(str_State) = "1" Then
  153.             SzToolbar.Buttons("xg").Enabled = False
  154.             SzToolbar.Buttons("sc").Enabled = False
  155.             SzToolbar.Buttons("bc").Enabled = True
  156.             SzToolbar.Buttons("fq").Enabled = True
  157.             SzToolbar.Buttons("first").Enabled = False
  158.             SzToolbar.Buttons("prev").Enabled = False
  159.             SzToolbar.Buttons("next").Enabled = False
  160.             SzToolbar.Buttons("last").Enabled = False
  161.             Call Open_Lock
  162.             Me.AutoRedraw = True
  163.         ElseIf Trim(str_State) = "2" Then
  164.             Call Card_Edit(Trim(Num_text.Text))
  165.             SzToolbar.Buttons("xg").Enabled = False
  166.             SzToolbar.Buttons("sc").Enabled = False
  167.             SzToolbar.Buttons("bc").Enabled = True
  168.             SzToolbar.Buttons("fq").Enabled = True
  169.             SzToolbar.Buttons("first").Enabled = False
  170.             SzToolbar.Buttons("prev").Enabled = False
  171.             SzToolbar.Buttons("next").Enabled = False
  172.             SzToolbar.Buttons("last").Enabled = False
  173.             Call Open_Lock
  174.             Call Txt_Lock
  175.         ElseIf Trim(str_State) = "4" Then
  176.             Call Card_Edit(Trim(Num_text.Text))
  177.             SzToolbar.Buttons("zj").Enabled = False
  178.             SzToolbar.Buttons("xg").Enabled = False
  179.             SzToolbar.Buttons("sc").Enabled = False
  180.             SzToolbar.Buttons("bc").Enabled = False
  181.             SzToolbar.Buttons("fq").Enabled = False
  182.             SzToolbar.Buttons("first").Enabled = True
  183.             SzToolbar.Buttons("prev").Enabled = True
  184.             SzToolbar.Buttons("next").Enabled = True
  185.             SzToolbar.Buttons("last").Enabled = True
  186.             Call Txt_Lock
  187.         Else
  188.             Call Card_Edit(Trim(Num_text.Text))
  189.             SzToolbar.Buttons("xg").Enabled = True
  190.             SzToolbar.Buttons("sc").Enabled = True
  191.             SzToolbar.Buttons("bc").Enabled = False
  192.             SzToolbar.Buttons("fq").Enabled = False
  193.             SzToolbar.Buttons("first").Enabled = True
  194.             SzToolbar.Buttons("prev").Enabled = True
  195.             SzToolbar.Buttons("next").Enabled = True
  196.             SzToolbar.Buttons("last").Enabled = True
  197.             Call Txt_Lock
  198.             Set rstemp = New ADODB.Recordset
  199.             rstemp.Open "select * from Gdzc_Card where CardCode='" & Trim(Lbl_Num.Caption) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  200.             If Not rstemp.EOF Then
  201.                 If rstemp!Year = Xtyear And rstemp!Period = Xtmm Then
  202.                     SzToolbar.Buttons("xg").Enabled = True
  203.                     SzToolbar.Buttons("sc").Enabled = True
  204.                 Else
  205.                     SzToolbar.Buttons("xg").Enabled = True
  206.                     SzToolbar.Buttons("sc").Enabled = False
  207.                 End If
  208.             End If
  209.             rstemp.Close
  210.             Set rstemp = Nothing
  211.             
  212.             Set rstemp = Cw_DataEnvi.DataConnect.Execute("select top 1 * from gy_kjrlb where gdzcjzbz='0'")
  213.             If Not rstemp.EOF Then
  214.                 If Val(rstemp!KjYear) <> Val(Xtyear) Or Val(rstemp!Period) <> Val(Xtmm) Then
  215.                     SzToolbar.Buttons("zj").Enabled = False
  216.                 Else
  217.                     SzToolbar.Buttons("zj").Enabled = True
  218.                 End If
  219.             End If
  220.             rstemp.Close
  221.             Set rstemp = Nothing
  222.             
  223.             Set rstemp = Cw_DataEnvi.DataConnect.Execute("select * from Gdzc_Card")
  224.             If rstemp.EOF Then
  225.                 SzToolbar.Buttons("xg").Enabled = False
  226.                 SzToolbar.Buttons("sc").Enabled = False
  227.             End If
  228.             rstemp.Close
  229.             Set rstemp = Nothing
  230.             Me.AutoRedraw = True
  231.         End If
  232.     End If
  233.     
  234. End Sub
  235. '卡片存盘
  236. Function Lrbc()                                   '保存
  237.     
  238.     Dim Depr_Str As String                        '折旧方法编号变量
  239.     Dim NumTemp As Integer                        '文本框Index变量
  240.     Dim str As String
  241.     Dim rs As ADODB.Recordset
  242.     
  243.     '取得折旧方法编号
  244.     Select Case Trim(Com_DeprMethod.Text)           '折旧方法
  245.         Case "不计提折旧"
  246.             Depr_Str = "01"
  247.         Case "平均年限法(依净资产计提折旧)"
  248.             Depr_Str = "02"
  249.         Case "平均年限法(依帐面原值计提折旧)"
  250.             Depr_Str = "03"
  251.         Case "工作量法"
  252.             Depr_Str = "04"
  253.         Case "固定折旧额折旧法"
  254.             Depr_Str = "05"
  255.         Case "年数总和法"
  256.             Depr_Str = "06"
  257.         Case "双倍余额法"
  258.             Depr_Str = "07"
  259.     End Select
  260.     
  261.     For NumTemp = 33 To 52                                   '自定义项
  262.         If LrText(NumTemp).Visible = True Then
  263.             LrText(NumTemp).Tag = Trim("zdy" & Val(NumTemp - 32))
  264.         End If
  265.     Next NumTemp
  266.    
  267.     If Trim(str_State) = "1" Then                      '新增
  268.         On Error GoTo Cwcl
  269.         Cw_DataEnvi.DataConnect.BeginTrans
  270.         '增加资产卡片(Gdzc_Card)表
  271.         Set rstemp = New ADODB.Recordset
  272.         With rstemp
  273.             .Open "select * from gdzc_card where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  274.             .AddNew
  275.             .Fields("CardCode") = Trim(Lbl_Num.Caption)              '卡片编号
  276.             .Fields("FACode") = Trim(LrText(13).Text)                '资产编号
  277.             .Fields("FAName") = Trim(LrText(2).Text)                 '固定资产名称
  278.             .Fields("FASortCode") = Trim(LrText(3).Tag)              '资产类别编号
  279.             .Fields("SpecificationMode") = Trim(LrText(16).Text)     '规格型号
  280.             .Fields("FAQuantity") = Val(LrText(14).Text)             '资产数量
  281.             .Fields("MeasureUnit") = Trim(LrText(4).Text)            '计量单位
  282.             .Fields("Year") = Val(Lbl_Year.Caption)                  '会计年度
  283.             .Fields("Period") = Val(Lbl_Period.Caption)              '会计期间
  284.             .Fields("DeptCode") = Trim(LrText(5).Tag)                '部门编号
  285.             If Trim(Com_Type.Text) = "新增固定资产" Then             '卡片类型(0-新增,1-原始)
  286.                 .Fields("CardType") = True
  287.                 .Fields("whetherNew") = True
  288.             Else
  289.                 .Fields("CardType") = False
  290.                 .Fields("whetherNew") = False
  291.             End If
  292.             .Fields("Opreator") = Trim(Lbl_Operator.Caption)         '操作员
  293.             .Fields("FAVariCode") = Trim(LrText(6).Tag)              '资产增加方式
  294.             .Fields("SetLocaNum") = Trim(LrText(18).Text)            '设备位号
  295.             .Fields("FAStateCode") = Trim(LrText(7).Tag)             '使用状况
  296.             .Fields("UseYears") = Val(LrText(15).Text)               '使用年限
  297.             .Fields("DeprMothes") = Val(LrText(25).Text)             '折旧月数
  298.             .Fields("Activities") = Val(LrText(30).Text)             '工作总量
  299.             .Fields("DeprMethod") = Depr_Str                         '折旧方法
  300.             .Fields("AcitvitiesSum") = Val(LrText(32).Text)          '累计工作量
  301.             If Trim(LrText(0).Text) <> "" Then .Fields("BeginUseDate") = Trim(LrText(0).Text)         '开始使用日期
  302.             .Fields("ForeignCurrCode") = Trim(LrText(12).Tag)        '货币编码
  303.             .Fields("ForeignValue") = CCur(Format(Val(LrText(21).Text), "##0.00"))         '外币金额
  304.             .Fields("AccRate") = Val(LrText(20).Text)                '记帐汇率
  305.             .Fields("FAValue") = CCur(Format(Val(LrText(22).Text), "##0.00"))              '资产原值
  306.             .Fields("DeprSum") = CCur(Format(Val(LrText(23).Text), "##0.00"))               '累计折旧
  307.             .Fields("FactValue") = CCur(Format(Val(Val(LrText(22).Text) - Val(LrText(23).Text)), "##0.00"))    '净资产
  308.             .Fields("DeprRate") = Val(LrText(27).Text)               '月折旧率
  309.             .Fields("DeprValue") = CCur(Format(Val(LrText(26).Text), "##0.00"))            '月折旧额
  310.             .Fields("SalRate") = Val(LrText(28).Text)                '净残值率
  311.             .Fields("SalValue") = CCur(Format(Val(LrText(29).Text), "##0.00"))              '净残值
  312.             .Fields("Product") = Trim(LrText(17).Text)               '生产商
  313.             .Fields("VouchClassCode") = Trim(LrText(11).Tag)         '凭证类别
  314.             If Trim(LrText(19).Text) <> "" Then .Fields("VouchNo") = Trim(LrText(19).Text)            '凭证号
  315.             If Trim(LrText(1).Text) <> "" Then .Fields("WriteDate") = CDate(LrText(1).Text)            '录入日期
  316.             .Fields("FACcode") = Trim(LrText(8).Tag)                 '固定资产折旧科目
  317.             .Fields("DeprCcode") = Trim(LrText(9).Tag)               '累计资产折旧科目
  318.             .Fields("DeprMoneyCcode") = Trim(LrText(10).Tag)         '折旧费用科目编码
  319.             For NumTemp = 33 To 52                                   '自定义项
  320.                 If LrText(NumTemp).Text <> "" And LrText(NumTemp).Visible = True Then
  321.                     .Fields(Trim(LrText(NumTemp).Tag)) = Trim(LrText(NumTemp).Text)
  322.                     Set rs = New ADODB.Recordset
  323.                     rs.Open "select * from gdzc_custom where fieldcode='" & Trim(LrText(NumTemp).Tag) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  324.                     If Not rs.EOF Then
  325.                         If rs.Fields("WhetherNull") = False Then rs.Fields("WhetherNull") = True
  326.                         rs.Update
  327.                     End If
  328.                     rs.Close
  329.                     Set rs = Nothing
  330.                 End If
  331.             Next NumTemp
  332.             .Update
  333.         End With
  334.         rstemp.Close
  335.         Set rstemp = Nothing
  336.         
  337.         '当用户选择的资产折旧方法是“工作量法”时,追加工作量表
  338.         If Trim(Com_DeprMethod.Text) = "工作量法" Then
  339.             Set rstemp = New ADODB.Recordset
  340.             With rstemp
  341.                 .Open "select * from Gdzc_jobquantity where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  342.                 .AddNew
  343.                 .Fields("CardCode") = Trim(Lbl_Num.Caption)          '卡片编号
  344.                 .Fields("Year") = Val(Lbl_Year.Caption)              '会计年度
  345.                 .Fields("Period") = Val(Lbl_Period.Caption)          '会计期间
  346.                 .Fields("ActivitiesStart") = Val(LrText(30).Text)    '工作总量
  347.                 .Fields("AcivitiesAEnd") = Val(LrText(30).Text)      '累计工作量
  348.                 .Fields("AcivitiesUnit") = Trim(LrText(31).Text)     '工作量单位
  349.                 .Update
  350.             End With
  351.             rstemp.Close
  352.             Set rstemp = Nothing
  353.         End If
  354.         
  355.         '追加会计明细表记录
  356.         Set rstemp = New ADODB.Recordset
  357.         With rstemp
  358.             .Open "select * from Gdzc_DetailedForm where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  359.             .AddNew
  360.             .Fields("cardcode") = Trim(Lbl_Num.Caption)        '卡片编号
  361.             .Fields("FASortCode") = Trim(LrText(3).Tag)        '资产类别编号
  362.             .Fields("Year") = Trim(Lbl_Year.Caption)           '会计年度
  363.             .Fields("Period") = Trim(Lbl_Period.Caption)       '会计期间
  364.             .Fields("MmMake") = True                           '录入期间标志
  365.             .Fields("FAValueEnd") = CCur(Format(Val(LrText(22).Text), "##0.00"))      '资产原值
  366.             .Fields("DeprsumEnd") = CCur(Format(Val(LrText(23).Text), "##0.00"))       '期末累计折旧
  367.             .Update
  368.         End With
  369.         rstemp.Close
  370.         Set rstemp = Nothing
  371.         
  372.         '追加或修改资产汇总表记录
  373.         Set rstemp = New ADODB.Recordset
  374.         str = "select * from Gdzc_Total where DeptCode='" & Trim(LrText(5).Tag) & "' and FASortCode='" & Trim(LrText(3).Tag) & "' and Year=" & Val(Lbl_Year.Caption) & " and Period=" & Trim(Lbl_Period.Caption)
  375.         rstemp.Open str, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  376.         With rstemp
  377.             If .EOF Then
  378.                 .AddNew
  379.                 .Fields("Deptcode") = Trim(LrText(5).Tag)           '部门编号
  380.                 .Fields("FASortCode") = Trim(LrText(3).Tag)        '资产类别编号
  381.                 .Fields("Year") = Val(Lbl_Year.Caption)             '会计年度
  382.                 .Fields("Period") = Val(Lbl_Period.Caption)         '会计期间
  383.                 .Fields("FAValueEndM") = CCur(Format(Val(LrText(22).Text), "##0.00"))      '月末原值
  384.                 .Fields("DeprSumEndM") = CCur(Format(Val(LrText(23).Text), "##0.00"))      '月末累计折旧
  385.                 .Fields("FAValueInM") = CCur(Format(Val(LrText(22).Text), "##0.00"))       '本期增加原值
  386.                 .Fields("DeprSumInM") = CCur(Format(Val(LrText(23).Text), "##0.00"))       '本期累计折旧增加
  387.             Else
  388.                 .Fields("FAValueEndM") = CCur(Format(Val(.Fields("FAValueEndM")) + Val(LrText(22).Text), "##0.00"))  '月末原值
  389.                 .Fields("DeprSumEndM") = CCur(Val(.Fields("DeprSumEndM")) + Val(LrText(23).Text))   '月末累计折旧
  390.                 .Fields("FAValueInM") = CCur(Val(.Fields("FAValueInM")) + Val(LrText(22).Text))     '本期增加原值
  391.                 .Fields("DeprSumInM") = CCur(Val(.Fields("DeprSumInM")) + Val(LrText(23).Text))     '本期累计折旧增减
  392.             End If
  393.             .Update
  394.         End With
  395.         rstemp.Close
  396.         Set rstemp = Nothing
  397.         
  398.         '追加资产变动单据表
  399.         Call Vari
  400.         Set rstemp = New ADODB.Recordset
  401.         With rstemp
  402.             .Open "Select * from Gdzc_Variation where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  403.             .AddNew
  404.             .Fields("VariVouCode") = MaxCode                 '变动单号
  405.             .Fields("CardCode") = Trim(Lbl_Num.Caption)      '卡片编号
  406.             .Fields("Year") = Trim(Lbl_Year.Caption)         '会计年度
  407.             .Fields("Period") = Trim(Lbl_Period.Caption)     '会计期间
  408.             .Fields("FAVariCode") = Trim(LrText(6).Tag)      '资产变动
  409.             .Fields("VouchClassCode") = Trim(LrText(11).Tag) '凭证类别
  410.             .Fields("VouchNo") = Val(LrText(19).Text)        '凭证号
  411.             .Fields("VariationReason") = Trim(Com_Type.Text) '资产变动原因
  412.             .Fields("DeptNew") = Trim(LrText(5).Tag)         '所属部门
  413.             .Fields("FAStateNew") = Trim(LrText(7).Tag)      '使用状况
  414.             .Fields("DeprMethNew") = Depr_Str                '折旧方法
  415.             .Fields("FASortNew") = Trim(LrText(3).Tag)       '资产类别编号
  416.             .Fields("FAValueNew") = CCur(Val(LrText(22).Text))    '资产原值
  417.             .Fields("SumDeprNew") = CCur(Val(LrText(23).Text))    '资产累计折旧
  418.             .Fields("ActivitiesNew") = Val(LrText(30).Text)  '工作总量
  419.             .Fields("SalValueNew") = CCur(Val(LrText(29).Text))   '净残值
  420.             .Fields("UseYearsNew") = Val(LrText(15).Text)    '使用年限
  421.             .Fields("FAQuantityNew") = Val(LrText(14).Text)  '资产数量
  422.             .Fields("Opreator") = Trim(Lbl_Operator.Caption) '操作员
  423.             .Fields("VariDate") = Xtrq
  424.             .Update
  425.         End With
  426.         rstemp.Close
  427.         Set rstemp = Nothing
  428.         
  429.         Cw_DataEnvi.DataConnect.CommitTrans
  430.         MsgBox "保存完毕!          ", vbOKOnly + vbInformation, "百利/ERP5.0-固定资产"
  431.         
  432.         Kpgl_CardList.Tj_YesNo = True
  433.         Call Zdbm
  434.         Call Txt_Clear
  435.         TextChangeLock = True
  436.         LrText(13).SetFocus
  437.         Exit Function
  438.     
  439.     ElseIf Trim(str_State) = "2" Then '修改
  440.         
  441.         Dim FAValue_Temp As Double              '修改原资产原值变量
  442.         Dim DeprSum_temp As Double              '修改原累计折旧变量
  443.         Dim Dept_Temp As String                 '部门编号
  444.         Dim Sort As String                      '资产类别
  445.         
  446.         On Error GoTo Cwcl
  447.         Cw_DataEnvi.DataConnect.BeginTrans
  448.         '修改资产卡片(Gdzc_Card)表
  449.         Set rstemp = New ADODB.Recordset
  450.         With rstemp
  451.             .Open "select * from gdzc_card where CardCode='" & Trim(Lbl_Num.Caption) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  452.             If Not .EOF Then
  453.                 FAValue_Temp = .Fields("FAValue")                                 '借助变量存储修改资产原值
  454.                 DeprSum_temp = .Fields("DeprSum")                                 '借助变量存储修改累计折旧
  455.                 Dept_Temp = .Fields("DeptCode")
  456.                 Sort = .Fields("FASortCode")
  457.                 .Fields("CardCode") = Trim(Lbl_Num.Caption)              '卡片编号
  458.                 .Fields("FACode") = Trim(LrText(13).Text)                '资产编号
  459.                 .Fields("FAName") = Trim(LrText(2).Text)                 '固定资产名称
  460.                 .Fields("FASortCode") = Trim(LrText(3).Tag)              '资产类别编号
  461.                 .Fields("SpecificationMode") = Trim(LrText(16).Text)     '规格型号
  462.                 .Fields("FAQuantity") = Val(LrText(14).Text)             '资产数量
  463.                 .Fields("MeasureUnit") = Trim(LrText(4).Text)            '计量单位
  464.                 .Fields("Year") = Val(Lbl_Year.Caption)                  '会计年度
  465.                 .Fields("Period") = Val(Lbl_Period.Caption)              '会计期间
  466.                 .Fields("DeptCode") = Trim(LrText(5).Tag)                '部门编号
  467.                 If Trim(Com_Type.Text) = "新增固定资产" Then             '卡片类型(0-新增,1-原始)
  468.                     .Fields("CardType") = True
  469.                     .Fields("whetherNew") = True
  470.                 Else
  471.                     .Fields("CardType") = False
  472.                     .Fields("whetherNew") = False
  473.                 End If
  474.                 .Fields("Opreator") = Trim(Lbl_Operator.Caption)         '操作员
  475.                 .Fields("FAVariCode") = Trim(LrText(6).Tag)              '资产增加方式
  476.                 .Fields("SetLocaNum") = Trim(LrText(18).Text)            '设备位号
  477.                 .Fields("FAStateCode") = Trim(LrText(7).Tag)             '使用状况
  478.                 .Fields("UseYears") = Val(LrText(15).Text)               '使用年限
  479.                 .Fields("DeprMothes") = Val(LrText(25).Text)             '折旧月数
  480.                 .Fields("Activities") = Val(LrText(30).Text)             '工作总量
  481.                 .Fields("DeprMethod") = Depr_Str                         '折旧方法
  482.                 .Fields("AcitvitiesSum") = Val(LrText(32).Text)          '累计工作量
  483.                 If Trim(LrText(0).Text) <> "" Then .Fields("BeginUseDate") = Trim(LrText(0).Text)         '开始使用日期
  484.                 .Fields("ForeignCurrCode") = Trim(LrText(12).Tag)        '货币编码
  485.                 .Fields("ForeignValue") = CCur(Format(Val(LrText(21).Text), "##0.00"))         '外币金额
  486.                 .Fields("AccRate") = Val(LrText(20).Text)                '记帐汇率
  487.                 .Fields("FAValue") = CCur(Format(Val(LrText(22).Text), "##0.00"))              '资产原值
  488.                 .Fields("DeprSum") = CCur(Format(Val(LrText(23).Text), "##0.00"))               '累计折旧
  489.                 .Fields("FactValue") = CCur(Format(Val(Val(LrText(22).Text) - Val(LrText(23).Text)), "##0.00"))     '净资产
  490.                 .Fields("DeprRate") = Val(LrText(27).Text)               '月折旧率
  491.                 .Fields("DeprValue") = CCur(Format(Val(LrText(26).Text), "##0.00"))            '月折旧额
  492.                 .Fields("SalRate") = Val(LrText(28).Text)                '净残值率
  493.                 .Fields("SalValue") = CCur(Format(Val(LrText(29).Text), "##0.00"))              '净残值
  494.                 .Fields("Product") = Trim(LrText(17).Text)               '生产商
  495.                 .Fields("VouchClassCode") = Trim(LrText(11).Tag)         '凭证类别
  496.                 .Fields("VouchNo") = Val(LrText(19).Text)               '凭证号
  497.                 .Fields("WriteDate") = Trim(LrText(1).Text)              '录入日期
  498.                 .Fields("FACcode") = Trim(LrText(8).Tag)                 '固定资产折旧科目
  499.                 .Fields("DeprCcode") = Trim(LrText(9).Tag)               '累计资产折旧科目
  500.                 .Fields("DeprMoneyCcode") = Trim(LrText(10).Tag)         '折旧费用科目编码
  501.                 For NumTemp = 33 To 52                                   '自定义项
  502.                     If LrText(NumTemp).Visible = True Then
  503.                         Set rs = New ADODB.Recordset
  504.                         rs.Open "select * from gdzc_custom where FieldCode='" & Trim(LrText(NumTemp).Tag) & "' and FieldState='1'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  505.                         If Not rs.EOF Then
  506.                             If rs!datatype = 2 Or rs!datatype = 3 Then
  507.                                 .Fields(Trim(LrText(NumTemp).Tag)) = Val(LrText(NumTemp).Text)
  508.                             ElseIf rs!datatype = 4 Then
  509.                                 .Fields(Trim(LrText(NumTemp).Tag)) = CCur(Val(Trim(LrText(NumTemp).Text)))
  510.                             ElseIf rs!datatype = 5 Then
  511.                                 If Trim(LrText(NumTemp).Text) = "" Then
  512.                                     .Fields(Trim(LrText(NumTemp).Tag)) = Null
  513.                                 Else
  514.                                     .Fields(Trim(LrText(NumTemp).Tag)) = Trim(LrText(NumTemp).Text & "")
  515.                                 End If
  516.                             Else
  517.                                 .Fields(Trim(LrText(NumTemp).Tag)) = Trim(LrText(NumTemp).Text & "")
  518.                             End If
  519.                         End If
  520.                         rs.Close
  521.                         Set rs = Nothing
  522.                         Set rs = New ADODB.Recordset
  523.                         rs.Open "select * from gdzc_custom where fieldcode='" & Trim(LrText(NumTemp).Tag) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  524.                         If Not rs.EOF Then
  525.                             If rs.Fields("WhetherNull") = False Then rs.Fields("WhetherNull") = True
  526.                             rs.Update
  527.                         End If
  528.                         rs.Close
  529.                         Set rs = Nothing
  530.                     End If
  531.                 Next NumTemp
  532.                 .Update
  533.             End If
  534.         End With
  535.         rstemp.Close
  536.         Set rstemp = Nothing
  537.         
  538.         '当用户选择的资产折旧方法是“工作量法”时,修改工作量表
  539.         If Trim(Com_DeprMethod.Text) = "工作量法" Then
  540.             Set rstemp = New ADODB.Recordset
  541.             With rstemp
  542.                 .Open "select * from Gdzc_jobquantity where CardCode='" & Trim(Lbl_Num.Caption) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  543.                 If Not .EOF Then
  544.                     .Fields("CardCode") = Trim(Lbl_Num.Caption)          '卡片编号
  545.                     .Fields("Year") = Val(Lbl_Year.Caption)              '会计年度
  546.                     .Fields("Period") = Val(Lbl_Period.Caption)          '会计期间
  547.                     .Fields("ActivitiesStart") = Val(LrText(30).Text)    '工作总量
  548.                     .Fields("AcivitiesAEnd") = Val(LrText(30).Text)      '累计工作量
  549.                     .Fields("AcivitiesUnit") = Trim(LrText(31).Text)     '工作量单位
  550.                     .Update
  551.                 End If
  552.             End With
  553.             rstemp.Close
  554.             Set rstemp = Nothing
  555.         End If
  556.         
  557.         '修改会计明细表记录
  558.         Set rstemp = New ADODB.Recordset
  559.         With rstemp
  560.             .Open "select * from Gdzc_DetailedForm where CardCode='" & Trim(Lbl_Num.Caption) & "' and year=" & Val(Lbl_Year.Caption) & " and period=" & Val(Lbl_Period.Caption), Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  561.             .Fields("cardcode") = Trim(Lbl_Num.Caption)        '卡片编号
  562.             .Fields("FASortCode") = Trim(LrText(3).Tag)        '资产类别编号
  563.             .Fields("Year") = Trim(Lbl_Year.Caption)           '会计年度
  564.             .Fields("Period") = Trim(Lbl_Period.Caption)       '会计期间
  565.             .Fields("MmMake") = True                           '录入期间标志
  566.             .Fields("FAValueEnd") = CCur(Format(Val(LrText(22).Text), "##0.00"))      '资产原值
  567.             .Fields("DeprSumEnd") = CCur(Format(Val(LrText(23).Text), "##0.00"))       '期末累计折旧
  568.             .Update
  569.         End With
  570.         rstemp.Close
  571.         Set rstemp = Nothing
  572.         
  573.         '修改资产汇总表记录
  574.         Set rstemp = New ADODB.Recordset
  575.         str = "select * from Gdzc_Total where DeptCode='" & Trim(Dept_Temp) & "' and FASortCode='" & Trim(Sort) & "' and Year=" & Val(Lbl_Year.Caption) & " and Period=" & Trim(Lbl_Period.Caption)
  576.         rstemp.Open str, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  577.         With rstemp
  578.             If Not .EOF Then
  579.                 If Val(.Fields("FAValueEndM")) - Val(FAValue_Temp) = 0 Then
  580.                     .Delete
  581.                     .Update
  582.                 Else
  583.                     .Fields("FAValueEndM") = CCur(Format(Val(.Fields("FAValueEndM")) - FAValue_Temp + Val(LrText(22).Text), "##0.00")) '月末原值
  584.                     .Fields("DeprSumEndM") = CCur(Val(.Fields("DeprSumEndM")) - DeprSum_temp + Val(LrText(23).Text)) '月末累计折旧
  585.                     .Fields("FAValueInM") = CCur(Val(.Fields("FAValueInM")) - FAValue_Temp + Val(LrText(22).Text))     '本期增加原值
  586.                     .Fields("DeprSumInM") = CCur(Val(.Fields("DeprSumInM")) - DeprSum_temp + Val(LrText(23).Text))      '本期累计折旧增加
  587.                     .Update
  588.                 End If
  589.             End If
  590.         End With
  591.         rstemp.Close
  592.         Set rstemp = Nothing
  593.         
  594.         '追加或修改资产汇总表记录
  595.         Set rstemp = New ADODB.Recordset
  596.         str = "select * from Gdzc_Total where DeptCode='" & Trim(LrText(5).Tag) & "' and FASortCode='" & Trim(LrText(3).Tag) & "' and Year=" & Val(Lbl_Year.Caption) & " and Period=" & Trim(Lbl_Period.Caption)
  597.         rstemp.Open str, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  598.         With rstemp
  599.             If .EOF Then
  600.                 .AddNew
  601.                 .Fields("Deptcode") = Trim(LrText(5).Tag)           '部门编号
  602.                 .Fields("FASortCode") = Trim(LrText(3).Tag)        '资产类别编号
  603.                 .Fields("Year") = Val(Lbl_Year.Caption)             '会计年度
  604.                 .Fields("Period") = Val(Lbl_Period.Caption)         '会计期间
  605.                 .Fields("FAValueEndM") = CCur(Format(Val(LrText(22).Text), "##0.00"))      '月末原值
  606.                 .Fields("DeprSumEndM") = CCur(Format(Val(LrText(23).Text), "##0.00"))      '月末累计折旧
  607.                 .Fields("FAValueInM") = CCur(Format(Val(LrText(22).Text), "##0.00"))       '本期增加原值
  608.                 .Fields("DeprSumInM") = CCur(Format(Val(LrText(23).Text), "##0.00"))       '本期累计折旧增加
  609.             Else
  610.                 .Fields("FAValueEndM") = CCur(Format(Val(.Fields("FAValueEndM")) + Val(LrText(22).Text), "##0.00"))  '月末原值
  611.                 .Fields("DeprSumEndM") = CCur(Val(.Fields("DeprSumEndM")) + Val(LrText(23).Text))   '月末累计折旧
  612.                 .Fields("FAValueInM") = CCur(Val(.Fields("FAValueInM")) + Val(LrText(22).Text))     '本期增加原值
  613.                 .Fields("DeprSumInM") = CCur(Val(.Fields("DeprSumInM")) + Val(LrText(23).Text))     '本期累计折旧增减
  614.             End If
  615.             .Update
  616.         End With
  617.         rstemp.Close
  618.         Set rstemp = Nothing
  619.        
  620.         '修改资产变动单据表
  621.         Call Vari
  622.         Set rstemp = New ADODB.Recordset
  623.         With rstemp
  624.             .Open "Select * from Gdzc_Variation where CardCode='" & Trim(Lbl_Num.Caption) & "' and year=" & Val(Lbl_Year.Caption) & " and Period=" & Val(Lbl_Period.Caption), Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  625.             If Not .EOF Then
  626.                 .Fields("CardCode") = Trim(Lbl_Num.Caption)      '卡片编号
  627.                 .Fields("Year") = Trim(Lbl_Year.Caption)         '会计年度
  628.                 .Fields("Period") = Trim(Lbl_Period.Caption)     '会计期间
  629.                 .Fields("FAVariCode") = Trim(LrText(6).Tag)      '资产变动
  630.                 .Fields("VouchClassCode") = Trim(LrText(11).Tag) '凭证类别
  631.                 If Trim(LrText(19).Text) <> "" Then .Fields("VouchNo") = Trim(LrText(19).Text)     '凭证号
  632.                 .Fields("VariationReason") = Trim(Com_Type.Text) '资产变动原因
  633.                 .Fields("DeptNew") = Trim(LrText(5).Tag)         '所属部门
  634.                 .Fields("FAStateNew") = Trim(LrText(7).Tag)      '使用状况
  635.                 .Fields("DeprMethNew") = Depr_Str                '折旧方法
  636.                 .Fields("FASortNew") = Trim(LrText(3).Tag)       '资产类别编号
  637.                 .Fields("FAValueNew") = CCur(Val(LrText(22).Text))    '资产原值
  638.                 .Fields("SumDeprNew") = CCur(Val(LrText(23).Text))    '资产累计折旧
  639.                 .Fields("ActivitiesNew") = Val(LrText(30).Text)  '工作总量
  640.                 .Fields("SalValueNew") = CCur(Val(LrText(29).Text))   '净残值
  641.                 .Fields("UseYearsNew") = Val(LrText(15).Text)    '使用年限
  642.                 .Fields("FAQuantityNew") = Val(LrText(14).Text)  '资产数量
  643.                 .Fields("Opreator") = Trim(Lbl_Operator.Caption) '操作员
  644.                 .Fields("VariDate") = Xtrq
  645.                 .Update
  646.             Else
  647.                 .AddNew
  648.                 .Fields("VariVouCode") = MaxCode                 '变动单号
  649.                 .Fields("CardCode") = Trim(Lbl_Num.Caption)      '卡片编号
  650.                 .Fields("Year") = Trim(Lbl_Year.Caption)         '会计年度
  651.                 .Fields("Period") = Trim(Lbl_Period.Caption)     '会计期间
  652.                 .Fields("FAVariCode") = Trim(LrText(6).Tag)      '资产变动
  653.                 .Fields("VouchClassCode") = Trim(LrText(11).Tag) '凭证类别
  654.                 If Trim(LrText(19).Text) <> "" Then .Fields("VouchNo") = Trim(LrText(19).Text)     '凭证号
  655.                 .Fields("VariationReason") = Trim(Com_Type.Text) '资产变动原因
  656.                 .Fields("DeptNew") = Trim(LrText(5).Tag)         '所属部门
  657.                 .Fields("FAStateNew") = Trim(LrText(7).Tag)      '使用状况
  658.                 .Fields("DeprMethNew") = Depr_Str                '折旧方法
  659.                 .Fields("FASortNew") = Trim(LrText(3).Tag)       '资产类别编号
  660.                 .Fields("FAValueNew") = CCur(Val(LrText(22).Text))    '资产原值
  661.                 .Fields("SumDeprNew") = CCur(Val(LrText(23).Text))    '资产累计折旧
  662.                 .Fields("ActivitiesNew") = Val(LrText(30).Text)  '工作总量
  663.                 .Fields("SalValueNew") = CCur(Val(LrText(29).Text))   '净残值
  664.                 .Fields("UseYearsNew") = Val(LrText(15).Text)    '使用年限
  665.                 .Fields("FAQuantityNew") = Val(LrText(14).Text)  '资产数量
  666.                 .Fields("Opreator") = Trim(Lbl_Operator.Caption) '操作员
  667.                 .Fields("VariDate") = Xtrq
  668.                 .Update
  669.             End If
  670.         End With
  671.         rstemp.Close
  672.         Set rstemp = Nothing
  673.         
  674.         Cw_DataEnvi.DataConnect.CommitTrans
  675.         MsgBox "保存完毕!          ", vbOKOnly + vbInformation, "百利/ERP5.0-固定资产"
  676.         Kpgl_CardList.Tj_YesNo = True
  677.         str_State = "3"
  678.         Me.AutoRedraw = False
  679.         SetToolState
  680.         Exit Function
  681.     Else
  682.         Exit Function
  683.     End If
  684. Cwcl:
  685.     Cw_DataEnvi.DataConnect.RollbackTrans
  686.     Tsxx = "您的输入有误导致存盘失败,请核对数据!"
  687.     Call Xtxxts(Tsxx, 0, 1)
  688.     Exit Function
  689.     
  690. End Function
  691. '卡片自动编号
  692. Function Zdbm()                                         '卡片自动编号
  693.     
  694.     Dim Max_Code As Double                              '最大值数值变量
  695.     
  696.     Set rstemp = New ADODB.Recordset
  697.     rstemp.Open "select max(CardCode) as Max_CardCode from Gdzc_card", Cw_DataEnvi.DataConnect, adOpenKeyset, adLockOptimistic
  698.     If Val(rstemp.Fields("Max_CardCode") & "") = 0 Then
  699.         Max_Code = 1
  700.     Else
  701.         Max_Code = Val(rstemp.Fields("Max_CardCode")) + 1
  702.     End If
  703.     rstemp.Close
  704.     Set rstemp = Nothing
  705.     
  706.     MaxCode = IIf(Max_Code < 10, "00000" & Max_Code, IIf(Max_Code < 100, "0000" & Max_Code, IIf(Max_Code < 1000, "000" & Max_Code, IIf(Max_Code < 10000, "00" & Max_Code, IIf(Max_Code < 100000, "0" & Max_Code, Max_Code)))))
  707.     Lbl_Num.Caption = MaxCode
  708. End Function
  709. '变动单自动编号
  710. Function Vari()
  711.     
  712.     Dim Max_Code As Double                              '最大值数值变量
  713.     
  714.     Set rstemp = New ADODB.Recordset
  715.     rstemp.Open "select max(VariVouCode) as Max_CardCode from Gdzc_Variation", Cw_DataEnvi.DataConnect, adOpenKeyset, adLockOptimistic
  716.     If Val(rstemp.Fields("Max_CardCode") & "") = 0 Then
  717.         Max_Code = 1
  718.     Else
  719.         Max_Code = Val(rstemp.Fields("Max_CardCode")) + 1
  720.     End If
  721.     rstemp.Close
  722.     Set rstemp = Nothing
  723.     
  724.     MaxCode = IIf(Max_Code < 10, "00000" & Max_Code, IIf(Max_Code < 100, "0000" & Max_Code, IIf(Max_Code < 1000, "000" & Max_Code, IIf(Max_Code < 10000, "00" & Max_Code, IIf(Max_Code < 100000, "0" & Max_Code, Max_Code)))))
  725. End Function
  726. '根据折旧方法的选择,决定工作总量、工作量单位和累计工作量文本框的Enable状态
  727. Private Sub Com_DeprMethod_Click()
  728.     
  729.     If str_State = "1" Or str_State = "2" Then
  730.         If Trim(Com_DeprMethod.Text) = "工作量法" Or Trim(Com_DeprMethod.Text) = "不计提折旧" Then
  731.             LrText(30).Enabled = True
  732.             LrText(31).Enabled = True
  733.             LrText(32).Enabled = True
  734.             LrText(26).Enabled = False
  735.             LrText(27).Enabled = False
  736.         Else
  737.             LrText(26).Enabled = True
  738.             LrText(27).Enabled = True
  739.             LrText(30).Enabled = False
  740.             LrText(31).Enabled = False
  741.             LrText(32).Enabled = False
  742.         End If
  743.     End If
  744.     
  745. End Sub
  746. '显示自定义项
  747. Function Define()
  748.     
  749.     Dim i As Integer
  750.     
  751.     Set rstemp = New ADODB.Recordset
  752.     rstemp.Open "select * from Gdzc_custom where FieldState='1'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  753.     i = 33
  754.     While Not rstemp.EOF
  755.         Lblzdy(i).Visible = True
  756.         LrText(i).Visible = True
  757.         Lblzdy(i).Caption = rstemp.Fields("FieldName") & ":"
  758.         LrText(i).Tag = rstemp.Fields("FieldCode")
  759.         Lblzdy(i).Left = LrText(i).Left - 25 - Lblzdy(i).Width
  760.         rstemp.MoveNext
  761.         i = i + 1
  762.     Wend
  763.     rstemp.Close
  764.     Set rstemp = Nothing
  765.     
  766. End Function
  767. '固定资产折旧算法
  768. Function DeprMethod()
  769.     
  770.     If Val(Lbl_FactValue.Caption) = 0 Or Val(LrText(15).Text) = 0 Then Exit Function
  771.     
  772.     Select Case Trim(Com_DeprMethod.Text)           '折旧方法
  773.         Case "平均年限法(依净资产计提折旧)"
  774.             '月折旧额=净资产÷剩余使用年限÷12
  775.             '月折旧率=月折旧额÷净资产
  776.             LrText(26).Text = Format(Val(Lbl_FactValue.Caption) / (Val(LrText(15).Text) - (Val(LrText(25).Text) / 12)), "##0.00") / 12 '月折旧额
  777.             LrText(27).Text = Format(Val(LrText(26).Text) / Val(Lbl_FactValue.Caption), "##0.000000")      '月折旧率
  778.         Case "平均年限法(依帐面原值计提折旧)"
  779.             '月折旧额=(资产记帐原值-预计净残值)÷预计使用年限÷12
  780.             '月折旧率=记帐原值×(1-残值率)×12÷使用年限
  781.             LrText(26).Text = Format(Val(LrText(22).Text) * (1 - Val(LrText(28).Text)) / Val(LrText(15).Text) / 12, "##0.00") '月折旧额
  782.             LrText(27).Text = Format(Val(LrText(26).Text) * (1 - Val(LrText(28).Text)) * 12 / Val(Lbl_FactValue.Caption), "##0.000000")                     '月折旧率
  783.         Case "工作量法"
  784.             '单位工作量折旧额=(记帐原值-预计净残值)÷工作总量
  785.             '月折旧额=该月工作总量×单位工作量折旧额
  786.             '注:计算方法在每月固定资产计提折旧时用,在这里将月折旧率和月折旧额文本框的Enable属性赋为False
  787.         Case "固定折旧额折旧法"
  788.             '月折旧额=记帐原值×月折旧率
  789.             LrText(26).Text = Format(Val(LrText(22).Text) * Val(LrText(27).Text), "##0.00")     '月折旧额
  790.         Case "年数总和法"
  791.             '年折旧率={(预计使用年限-已经使用年限)÷[预计使用年限×(1+预计使用年限)÷2]}×100%
  792.             '月折旧率=年折旧率÷12
  793.             '月折旧额=(记帐原值-净残值)×月折旧率
  794.             LrText(27).Text = Format(Val(Val(LrText(15).Text) - Val(Val(LrText(25).Text)  12)) / Val(Val(LrText(15).Text) * Val(1 + Val(LrText(15).Text)) / 2) / 12, "##0.000000")
  795.             LrText(26).Text = Format(Val(LrText(22).Text) * (1 - Val(LrText(28).Text)) * Val(LrText(27).Text), "##0.00") '月折旧额
  796.         Case "双倍余额法"
  797.             '年折旧率=(2÷预计使用年限)×100%
  798.             '年折旧额=年初固定资产净值×年折旧率
  799.             '月折旧额=年折旧额÷12
  800.             LrText(26).Text = Format(Val(Lbl_FactValue.Caption) * Val(Val(1 - Val(2 / Val(LrText(15).Text))) ^ Val(Val(LrText(15).Text)  12)) * Val(2 / Val(LrText(15).Text)) / 12, "##0.00") '月折旧额
  801.             LrText(27).Text = Format(Val(2 / Val(LrText(15).Text)) / 12, "##0.000000") '月折旧率
  802.     End Select
  803.     
  804. End Function
  805. '根据资产类别设置取得资产折旧方法、月折旧率、月折旧额和残值率
  806. Function From_Sort()
  807.     
  808.     Set rstemp = New ADODB.Recordset
  809.     rstemp.Open "select * from Gdzc_Sort where FASortCode='" & Trim(LrText(3).Tag) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  810.     If Not rstemp.EOF Then
  811.         LrText(15).Text = rstemp!Useyears
  812.         LrText(28).Text = Val(rstemp!SalvageRate) / 100
  813.         LrText(27).Text = Val(rstemp!DeprRate) / 100
  814.         Select Case rstemp!DeprMethod
  815.             Case "01"
  816.                 Com_DeprMethod.Text = "不计提折旧"
  817.             Case "02"
  818.                 Com_DeprMethod.Text = "平均年限法(依净资产计提折旧)"
  819.             Case "03"
  820.                 Com_DeprMethod.Text = "平均年限法(依帐面原值计提折旧)"
  821.             Case "04"
  822.                 Com_DeprMethod.Text = "工作量法"
  823.             Case "05"
  824.                 Com_DeprMethod.Text = "固定折旧额折旧法"
  825.             Case "06"
  826.                 Com_DeprMethod.Text = "年数总和法"
  827.             Case "07"
  828.                 Com_DeprMethod.Text = "双倍余额法"
  829.         End Select
  830.     Else
  831.         LrText(15).Text = ""
  832.         LrText(28).Text = ""
  833.         LrText(27).Text = ""
  834.         Com_DeprMethod.Text = "不计提折旧"
  835.     End If
  836.     rstemp.Close
  837.     Set rstemp = Nothing
  838.     
  839. End Function
  840. '根据用户选择的币种,取得汇率
  841. Function From_Ccur()
  842.     
  843.     Set rstemp = New ADODB.Recordset
  844.     rstemp.Open "select * from Gy_ForeignCurrency where ForeignCurrCode='" & Trim(LrText(12).Tag) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  845.     If Not rstemp.EOF Then
  846.         LrText(20).Text = rstemp!accrate
  847.         Ccur_bit = rstemp!ConVertFlag
  848.     Else
  849.         LrText(20).Text = ""
  850.     End If
  851.     rstemp.Close
  852.     Set rstemp = Nothing
  853.     
  854. End Function
  855. '为卡片修改赋值
  856. Function Card_Edit(str As String)
  857.     
  858.     Dim Sqlstr As String
  859.     Dim Custom_Num As Integer
  860.     Dim Fields_Num As Integer          '字段个数变量
  861.     
  862.     Set rstemp = New ADODB.Recordset
  863.     rstemp.Open "select * from Gdzc_Custom where FieldState=1", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  864.     If Not rstemp.EOF Then
  865.         Custom_Num = rstemp.RecordCount
  866.     End If
  867.     rstemp.Close
  868.     Set rstemp = Nothing
  869.     
  870.     Sqlstr = "SELECT Gdzc_Card.*, Gdzc_JobQuantity.AcivitiesUnit AS AcivitiesUnit, " _
  871.         & "Gdzc_Sort.FASortName AS FASortName,Cwzz_VouchClass.VouchClassName AS VouchClassName, " _
  872.         & "Gdzc_State.FAStateName AS FAStateName,Gy_Department.DeptName AS DeptName, " _
  873.         & "Gdzc_VariationMode.FAVariName AS FAVariName,Gy_ForeignCurrency.ForeignCurrName AS ForeignCurrName, " _
  874.         & "Cwzz_AccCode.Cname AS FACcode_Name,Cwzz_AccCode_1.Cname AS DeprCcode_Name, " _
  875.         & "Cwzz_AccCode_2.Cname AS DeprMoneyCcode_Name FROM Gdzc_Card LEFT OUTER JOIN " _
  876.         & "Gdzc_VariationMode ON Gdzc_Card.FAVariCode = Gdzc_VariationMode.FAVariCode LEFT OUTER JOIN " _
  877.         & "Gdzc_Sort ON Gdzc_Card.FASortCode = Gdzc_Sort.FASortCode LEFT OUTER JOIN Gy_Department ON " _
  878.         & "Gdzc_Card.DeptCode = Gy_Department.DeptCode LEFT OUTER JOIN " _
  879.         & "Gdzc_State ON Gdzc_Card.FAStateCode = Gdzc_State.FaStateCode LEFT OUTER JOIN " _
  880.         & "Gy_ForeignCurrency ON Gdzc_Card.ForeignCurrCode = Gy_ForeignCurrency.ForeignCurrCode LEFT OUTER JOIN " _
  881.         & "Cwzz_VouchClass ON Gdzc_Card.VouchClassCode = Cwzz_VouchClass.VouchClassCode LEFT OUTER JOIN " _
  882.         & "Gdzc_JobQuantity ON Gdzc_Card.CardCode = Gdzc_JobQuantity.CardCode LEFT OUTER JOIN " _
  883.         & "Cwzz_AccCode ON Gdzc_Card.FACcode = Cwzz_AccCode.Ccode LEFT OUTER JOIN Cwzz_AccCode Cwzz_AccCode_1 ON " _
  884.         & "Gdzc_Card.DeprCcode = Cwzz_AccCode_1.Ccode LEFT OUTER JOIN Cwzz_AccCode Cwzz_AccCode_2 ON " _
  885.         & "Gdzc_Card.DeprMoneyCcode = Cwzz_AccCode_2.Ccode"
  886.     Sqlstr = Sqlstr & " where Gdzc_Card.CardCode='" & Trim(str) & "'"
  887.     Set rstemp = New ADODB.Recordset
  888.     rstemp.Open Sqlstr, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  889.     With rstemp
  890.         If Not rstemp.EOF Then
  891.             LrText(0).Text = Trim(!BeginUsedate & "")               '开始使用日期
  892.             LrText(1).Text = Trim(!WriteDate & "")                  '记帐日期
  893.             LrText(2).Text = Trim(!FAName & "")                     '资产名称
  894.             LrText(3).Text = Trim(!FASortName & "")                 '资产类别名称
  895.             LrText(3).Tag = Trim(!FASortCode & "")                  '资产类别编号
  896.             LrText(4).Text = Trim(!Measureunit & "")                '计量单位
  897.             LrText(5).Text = Trim(!DeptName & "")                   '部门名称
  898.             LrText(5).Tag = Trim(!DeptCode & "")                    '部门编号
  899.             LrText(6).Text = Trim(!FAVariName & "")                 '增加方式名称
  900.             LrText(6).Tag = Trim(!FAVariCode & "")                  '增加方式编号
  901.             LrText(7).Text = Trim(!FAStateName & "")                '使用状况名称
  902.             LrText(7).Tag = Trim(!FAStateCode & "")                 '使用状况编号
  903.             LrText(8).Text = Trim(!FACcode_Name & "")               '资产科目名称
  904.             LrText(8).Tag = Trim(!FACcode & "")                     '资产科目编号
  905.             LrText(9).Text = Trim(!DeprCcode_Name & "")             '累计折旧名称
  906.             LrText(9).Tag = Trim(!DeprCcode & "")                   '累计折旧编号
  907.             LrText(10).Text = Trim(!DeprMoneyCcode_Name & "")       '折旧费用科目名称
  908.             LrText(10).Tag = Trim(!DeprMoneyCcode & "")             '折旧费用科目编号
  909.             LrText(11).Text = Trim(!VouchClassName & "")            '凭证类别名称
  910.             LrText(11).Tag = Trim(!VouchClassCode & "")             '凭证类别编号
  911.             LrText(12).Text = Trim(!ForeignCurrName & "")           '币种类别名称
  912.             LrText(12).Tag = !ForeignCurrCode                       '币种类别编号
  913.             LrText(13).Text = Trim(!FACode & "")                    '资产编号
  914.             LrText(14).Text = !FAQuantity                           '资产数量
  915.             LrText(15).Text = !Useyears                             '使用年限
  916.             LrText(16).Text = Trim(!SpecificationMode & "")         '规格型号
  917.             LrText(17).Text = Trim(!Product & "")                   '生产商
  918.             LrText(18).Text = Trim(!SetLocaNum & "")                '设备位号
  919.             LrText(19).Text = Trim(!VouchNo & "")                   '凭证号
  920.             LrText(20).Text = !accrate                              '记帐汇率
  921.             LrText(21).Text = !ForeignValue                         '外币金额
  922.             LrText(22).Text = !FAValue                              '资产原值
  923.             LrText(23).Text = !DeprSum                              '累计折旧
  924.             LrText(24).Text = !FAValue                              '本位币值
  925.             LrText(25).Text = !deprmothes                           '折旧月数
  926.             LrText(26).Text = !DeprValue                            '月折旧额
  927.             LrText(27).Text = !DeprRate                             '月折旧率
  928.             LrText(28).Text = !SalRate                              '残值率
  929.             LrText(29).Text = !SalValue                             '净残值
  930.             LrText(30).Text = !Activities                           '工作总量
  931.             LrText(31).Text = Trim(!AcivitiesUnit & "")             '工作量单位
  932.             LrText(32).Text = !AcitvitiesSum                        '累计工作量
  933.             Lbl_Num.Caption = !CardCode                             '卡片编号
  934.             Lbl_Year.Caption = !Year                                '会计年度
  935.             Lbl_Period.Caption = Format(!Period, "00")              '会计期间
  936.             Lbl_Operator.Caption = !Opreator                        '操作员
  937.             Lbl_FactValue.Caption = !FactValue                      '净资产
  938.             Select Case .Fields("DeprMethod")                       '      折旧方法                                          '折旧方法
  939.                 Case "01"
  940.                     Com_DeprMethod.Text = "不计提折旧"
  941.                 Case "02"
  942.                     Com_DeprMethod.Text = "平均年限法(依净资产计提折旧)"
  943.                 Case "03"
  944.                     Com_DeprMethod.Text = "平均年限法(依帐面原值计提折旧)"
  945.                 Case "04"
  946.                     Com_DeprMethod.Text = "工作量法"
  947.                 Case "05"
  948.                     Com_DeprMethod.Text = "固定折旧额折旧法"
  949.                 Case "06"
  950.                     Com_DeprMethod.Text = "年数总和法"
  951.                 Case "07"
  952.                     Com_DeprMethod.Text = "双倍余额法"
  953.             End Select
  954.             If !CardType = True Then
  955.                 Com_Type.Text = "新增固定资产"                      '卡片类型
  956.             Else
  957.                 Com_Type.Text = "原始卡片录入"
  958.             End If
  959.             
  960.             If Val(Custom_Num) > 0 Then
  961.                 For Fields_Num = 1 To Custom_Num                        '用户自定义属性
  962.                     If Trim(.Fields("zdy" & Val(Val(Fields_Num))) & " ") = "" Then
  963.                         LrText(Val(Fields_Num) + 32).Text = ""
  964.                     Else
  965.                         LrText(Val(Fields_Num) + 32).Text = Trim(.Fields("zdy" & Val(Val(Fields_Num))) & " ")
  966.                     End If
  967.                 Next Fields_Num
  968.             End If
  969.         End If
  970.     End With
  971.     rstemp.Close
  972.     Set rstemp = Nothing
  973.     
  974.     Me.AutoRedraw = True
  975.     
  976. End Function
  977. '录入完毕,清空录入文本框
  978. Function Txt_Clear()
  979.     Dim i As Integer                '文本框索引
  980.     
  981.     For i = 0 To LrText.count - 1
  982.         If Trim(str_State) = "1" Then
  983.             If i = 1 Then i = 2
  984.             If i = 3 Then i = 4
  985.             If i = 5 Then i = 8
  986.             If i = 12 Then i = 13
  987.             If i = 15 Then i = 16
  988.             If i = 20 Then i = 21
  989.         End If
  990.         If i = 12 Then i = 13
  991.         If i = 20 Then i = 21
  992.         LrText(i).Text = ""
  993.     Next
  994.     Lbl_FactValue.Caption = ""
  995.     LrText(14).Text = "1"
  996.     LrText(1).Text = Xtrq
  997.     
  998. End Function
  999. '移动记录指针函数
  1000. Function Recordset_Move(Rs_int As Integer)
  1001.     
  1002.     Dim Rs_Temp As ADODB.Recordset
  1003.     
  1004.     Set Rs_Temp = New ADODB.Recordset
  1005.     Rs_Temp.Open "select * from Gdzc_card order by CardCode", Cw_DataEnvi.DataConnect, adOpenKeyset, adLockOptimistic
  1006.     Rs_Temp.Find "cardcode='" & Trim(Num_text.Text) & "'"
  1007.     If Rs_Temp.EOF And Rs_Temp.BOF Then
  1008.        Tsxx = "没有需要操作的卡片!"
  1009.        Call Xtxxts(Tsxx, 0, 4)
  1010.        Exit Function
  1011.     Else
  1012.         With Rs_Temp
  1013.             Select Case Rs_int
  1014.                 Case 1
  1015.                     .MoveFirst
  1016.                     SzToolbar.Buttons("first").Enabled = False
  1017.                     SzToolbar.Buttons("prev").Enabled = False
  1018.                     SzToolbar.Buttons("next").Enabled = True
  1019.                     SzToolbar.Buttons("last").Enabled = True
  1020.                 Case 2
  1021.                     .MovePrevious
  1022.                     If .BOF And .RecordCount > 0 Then
  1023.                         .MoveFirst
  1024.                         SzToolbar.Buttons("first").Enabled = False
  1025.                         SzToolbar.Buttons("prev").Enabled = False
  1026.                         SzToolbar.Buttons("next").Enabled = True
  1027.                         SzToolbar.Buttons("last").Enabled = True
  1028.                     Else
  1029.                         SzToolbar.Buttons("first").Enabled = True
  1030.                         SzToolbar.Buttons("prev").Enabled = True
  1031.                         SzToolbar.Buttons("next").Enabled = True
  1032.                         SzToolbar.Buttons("last").Enabled = True
  1033.                     End If
  1034.                 Case 3
  1035.                     .MoveNext
  1036.                     If .EOF And .RecordCount > 0 Then
  1037.                         .MoveLast
  1038.                         SzToolbar.Buttons("first").Enabled = True
  1039.                         SzToolbar.Buttons("prev").Enabled = True
  1040.                         SzToolbar.Buttons("next").Enabled = False
  1041.                         SzToolbar.Buttons("last").Enabled = False
  1042.                     Else
  1043.                         SzToolbar.Buttons("first").Enabled = True
  1044.                         SzToolbar.Buttons("prev").Enabled = True
  1045.                         SzToolbar.Buttons("next").Enabled = True
  1046.                         SzToolbar.Buttons("last").Enabled = True
  1047.                     End If
  1048.                 Case 4
  1049.                     .MoveLast
  1050.                     SzToolbar.Buttons("first").Enabled = True
  1051.                     SzToolbar.Buttons("prev").Enabled = True
  1052.                     SzToolbar.Buttons("next").Enabled = False
  1053.                     SzToolbar.Buttons("last").Enabled = False
  1054.             End Select
  1055.         End With
  1056.         Call Card_Edit(Rs_Temp!CardCode)
  1057.         Num_text.Text = Rs_Temp!CardCode
  1058.     End If
  1059.     Rs_Temp.Close
  1060.     Set Rs_Temp = Nothing
  1061.     
  1062. End Function
  1063. '对文本框加锁
  1064. Function Txt_Lock()
  1065.     If Trim(str_State) = "3" Or Trim(str_State) = "4" Then
  1066.         For i = 0 To LrText.count - 1
  1067.             LrText(i).Enabled = False
  1068.         Next i
  1069.         Com_DeprMethod.Enabled = False
  1070.         Com_Type.Enabled = False
  1071.     ElseIf Trim(str_State) = "2" Then
  1072.         If Txt_Bit = False Then
  1073.             For i = 0 To LrText.count - 1
  1074.                 If i = 0 Then i = 1
  1075.                 If i = 4 Then i = 5
  1076.                 If i = 8 Then i = 12
  1077.                 If i = 16 Then i = 20
  1078.                 If i = 31 Then i = 32
  1079.                 Com_DeprMethod.Enabled = False
  1080.                 Com_Type.Enabled = False
  1081.                 LrText(i).Enabled = False
  1082.             Next i
  1083.         End If
  1084.     End If
  1085.     
  1086. End Function
  1087. '解锁
  1088. Function Open_Lock()
  1089.     For i = 0 To LrText.count - 1
  1090.         LrText(i).Enabled = True
  1091.     Next i
  1092.     
  1093.     If Trim(Com_DeprMethod.Text) = "工作量法" Then
  1094.         LrText(30).Enabled = True
  1095.         LrText(31).Enabled = True
  1096.         LrText(32).Enabled = True
  1097.     Else
  1098.         LrText(30).Enabled = False
  1099.         LrText(31).Enabled = False
  1100.         LrText(32).Enabled = False
  1101.     End If
  1102.     
  1103.     If Trim(Com_DeprMethod.Text) = "不计提折旧" Then
  1104.         LrText(26).Enabled = False
  1105.         LrText(27).Enabled = False
  1106.     Else
  1107.         LrText(26).Enabled = True
  1108.         LrText(27).Enabled = True
  1109.     End If
  1110.     
  1111.     Com_DeprMethod.Enabled = True
  1112.     Com_Type.Enabled = True
  1113.     
  1114. End Function
  1115. '卡片删除操作
  1116. Function Card_Del()
  1117.     Dim FAValue_Temp As Double              '修改原资产原值变量
  1118.     Dim DeprSum_temp As Double              '修改原累计折旧变量
  1119.     Dim DeptCode_temp As String             '部门编号
  1120.     Dim FASortCode_temp As String           '资产类别编号
  1121.     Dim str As String
  1122.     Dim rs As ADODB.Recordset
  1123.     
  1124.     '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  1125.     If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
  1126.         Exit Function
  1127.     End If
  1128.     
  1129.     Set rstemp = New ADODB.Recordset
  1130.     rstemp.Open "select * from Gdzc_Variation where FAVariCode='00501' and Cardcode='" & Trim(Lbl_Num.Caption) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1131.     If Not rstemp.EOF Then
  1132.         Tsxx = "该资产卡片已经计提折旧,不能删除!"
  1133.         Call Xtxxts(Tsxx, 0, 4)
  1134.         Exit Function
  1135.     End If
  1136.     rstemp.Close
  1137.     Set rstemp = Nothing
  1138.     
  1139.     Set rstemp = New ADODB.Recordset
  1140.     rstemp.Open "select * from gdzc_card where CardCode='" & Trim(Lbl_Num.Caption) & "' and year=" & CInt(Xtyear) & " and period=" & CInt(Xtmm), Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1141.     If rstemp.EOF Then
  1142.        Tsxx = "请操作本会计期间数据!"
  1143.        Call Xtxxts(Tsxx, 0, 4)
  1144.        Exit Function
  1145.     End If
  1146.     rstemp.Close
  1147.     Set rstemp = Nothing
  1148.     
  1149.     If MsgBox("真的要删除该记录吗?", vbOKCancel + vbDefaultButton2 + vbQuestion, "百利/ERP5.0-固定资产") = vbOK Then
  1150.         
  1151.         On Error GoTo Cwcl
  1152.         Cw_DataEnvi.DataConnect.BeginTrans
  1153.         '删除资产卡片
  1154.         Set rstemp = New ADODB.Recordset
  1155.         rstemp.Open "select * from Gdzc_Card where CardCode='" & Trim(Lbl_Num.Caption) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1156.         If Not rstemp.EOF Then
  1157.             FAValue_Temp = rstemp.Fields("FAValue")                                 '借助变量存储修改资产原值
  1158.             DeprSum_temp = rstemp.Fields("DeprSum")
  1159.             DeptCode_temp = rstemp.Fields("DeptCode")
  1160.             FASortCode_temp = rstemp.Fields("FASortCode")
  1161.             rstemp.Delete
  1162.             rstemp.Update
  1163.         Else
  1164.             Tsxx = "请操作本会计期间的记录!"
  1165.             Call Xtxxts(Tsxx, 0, 4)
  1166.             Exit Function
  1167.         End If
  1168.         rstemp.Close
  1169.         Set rstemp = Nothing
  1170.         
  1171.         '删除工作量表
  1172.         Set rstemp = New ADODB.Recordset
  1173.         With rstemp
  1174.             .Open "select * from Gdzc_jobquantity where CardCode='" & Trim(Lbl_Num.Caption) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1175.             If Not .EOF Then
  1176.                 .Delete
  1177.                 .Update
  1178.             End If
  1179.         End With
  1180.         rstemp.Close
  1181.         Set rstemp = Nothing
  1182.         
  1183.         '删除会计明细表记录
  1184.         Set rstemp = New ADODB.Recordset
  1185.         With rstemp
  1186.             .Open "select * from Gdzc_DetailedForm where CardCode='" & Trim(Lbl_Num.Caption) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1187.             .Delete
  1188.             .Update
  1189.         End With
  1190.         rstemp.Close
  1191.         Set rstemp = Nothing
  1192.         
  1193.         '修改资产汇总表记录
  1194.         Set rstemp = New ADODB.Recordset
  1195.         str = "select * from Gdzc_Total where DeptCode='" & DeptCode_temp & "' and FASortCode='" & FASortCode_temp & "'"
  1196.         rstemp.Open str, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1197.         With rstemp
  1198.             If Not .EOF Then
  1199.                 If Val(.Fields("FAValueEndM")) = Val(FAValue_Temp) Then
  1200.                     .Delete
  1201.                     .Update
  1202.                 Else
  1203.                     .Fields("FAValueEndM") = CCur(Format(Val(.Fields("FAValueEndM")) - FAValue_Temp, "##0.00"))       '月末原值
  1204.                     .Fields("DeprSumEndM") = CCur(Val(.Fields("DeprSumEndM")) - DeprSum_temp)  '月末累计折旧
  1205.                     .Fields("FAValueInM") = CCur(Val(.Fields("FAValueInM")) - FAValue_Temp)     '本期增加原值
  1206.                     .Fields("DeprSumInM") = CCur(Val(.Fields("DeprSumInM")) - DeprSum_temp)      '本期累计折旧增加
  1207.                     .Update
  1208.                 End If
  1209.             End If
  1210.         End With
  1211.         rstemp.Close
  1212.         Set rstemp = Nothing
  1213.         
  1214.         '删除资产变动单据表
  1215.         Set rstemp = New ADODB.Recordset
  1216.         With rstemp
  1217.             .Open "Select * from Gdzc_Variation where CardCode='" & Trim(Lbl_Num.Caption) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1218.             While Not .EOF
  1219.                 .Delete
  1220.                 .Update
  1221.                 .MoveNext
  1222.             Wend
  1223.         End With
  1224.         rstemp.Close
  1225.         Set rstemp = Nothing
  1226.         
  1227.         '判断并修改自定义属性表
  1228.         Set rstemp = New ADODB.Recordset
  1229.         rstemp.Open "select * from gdzc_Custom where FieldState='1'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1230.         While Not rstemp.EOF
  1231.             Set rs = New ADODB.Recordset
  1232.             rs.Open "select * from gdzc_card where " & Trim(rstemp!FieldCode) & "<>''", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1233.             If rs.EOF Then
  1234.                 rstemp!WhetherNull = False
  1235.                 rstemp.Update
  1236.             End If
  1237.             rs.Close
  1238.             Set rs = Nothing
  1239.             
  1240.             rstemp.MoveNext
  1241.         Wend
  1242.         rstemp.Close
  1243.         Set rstemp = Nothing
  1244.         
  1245.         Cw_DataEnvi.DataConnect.CommitTrans
  1246.                         
  1247.         Call Recordset_Move(1)
  1248.         Exit Function
  1249.     Else
  1250.         Exit Function
  1251.     End If
  1252. Cwcl:
  1253.     Cw_DataEnvi.DataConnect.RollbackTrans
  1254.     Tsxx = "删除出错,系统自动返回删除前状态!"
  1255.     Call Xtxxts(Tsxx, 0, 1)
  1256.     Exit Function
  1257.     
  1258. End Function
  1259. '是否允许修改
  1260. Function Txt_Bit() As Boolean
  1261.     
  1262.     Txt_Bit = False
  1263.     Set rstemp = New ADODB.Recordset
  1264.     rstemp.Open "select * from gdzc_card where CardCode='" & Trim(Lbl_Num.Caption) & "' and year=" & CInt(Xtyear) & " and period=" & CInt(Xtmm), Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1265.     If rstemp.EOF Then
  1266.        If Trim(str_State) <> "2" Then Exit Function
  1267.        Tsxx = "非本会计期间录入卡片只能修改部分数据!"
  1268.        Call Xtxxts(Tsxx, 0, 4)
  1269.        Exit Function
  1270.     Else
  1271.         Txt_Bit = True
  1272.     End If
  1273.     rstemp.Close
  1274.     
  1275.     Set rstemp = New ADODB.Recordset
  1276.     rstemp.Open "select * from Gdzc_Variation where FAVariCode='00501' and Cardcode='" & Trim(Lbl_Num.Caption) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1277.     If Not rstemp.EOF Then
  1278.         Tsxx = "该资产卡片已经计提折旧,只能修改部分数据!"
  1279.         Call Xtxxts(Tsxx, 0, 4)
  1280.         Txt_Bit = False
  1281.     End If
  1282.     rstemp.Close
  1283.     Set rstemp = Nothing
  1284.        
  1285. End Function
  1286. '本月是否已经进行计提折旧
  1287. Function If_Add() As Boolean
  1288.     If_Add = False
  1289.     
  1290.     Set rstemp = New ADODB.Recordset
  1291.     rstemp.Open "select * from Gdzc_card where DeprFlag='1'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1292.     If rstemp.EOF Then
  1293.         If_Add = True
  1294.     Else
  1295.         Tsxx = "固定资产已计提折旧,未执行月末结帐!"
  1296.         Call Xtxxts(Tsxx, 0, 4)
  1297.         Exit Function
  1298.     End If
  1299.     rstemp.Close
  1300.     Set rstemp = Nothing
  1301.     
  1302.     If_Add = True
  1303.     
  1304. End Function
  1305. '*******************以上区域为编写自定义过程区域**********************
  1306. '************以下为文本框录入处理程序(固定不变部分)*************'
  1307. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  1308.     '以下为依据实际情况自定义部分[
  1309.   
  1310.     '在此填写文本框录入事后处理程序
  1311.    
  1312.     ']以上为依据实际情况自定义部分
  1313. End Sub
  1314. Private Sub LrText_Change(Index As Integer)
  1315.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  1316.     
  1317.     '限制字段录入长度
  1318.           
  1319.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  1320.     Select Case Textint(Index, 1)
  1321.         Case 8, 11      '金额型
  1322.             Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  1323.         Case 9, 12      '数量型
  1324.             Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  1325.         Case 10          '单价型
  1326.             Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  1327.         Case Else        '其他小数类型控制
  1328.             If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  1329.                 Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  1330.             End If
  1331.     End Select
  1332.     TextChangeLock = False '解锁
  1333.     
  1334. End Sub
  1335. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  1336.     
  1337.     Call TextShow(Index)
  1338.     CurTextIndex = Index
  1339.     LrText(Index).SelStart = Len(LrText(Index))
  1340. End Sub
  1341. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  1342.     
  1343.     Select Case KeyCode
  1344.         Case vbKeyF2
  1345.             Call Text_Help(Index)
  1346.             
  1347.             '根据资产类别设置取得资产折旧方法、月折旧率、月折旧额和残值率
  1348.             If Index = 3 Then
  1349.                 Call From_Sort
  1350.             End If
  1351.             
  1352.             '根据用户选择的币种,取得汇率
  1353.             Call From_Ccur
  1354.     End Select
  1355. End Sub
  1356. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  1357.     Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  1358. End Sub
  1359. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点进行有效性判断及相应处理
  1360.     
  1361.     If Textint(Index, 9) = 0 Or Textint(Index, 9) = 1 Then '事中判断
  1362.         Call TextYxxpd(Index)
  1363.     End If
  1364.     
  1365.     '//用户自定义判断过程
  1366.     
  1367.     '根据用户输入的外币金额,自动计算取得资产原值、本位币值
  1368.     If Index = 20 Or Index = 21 Then
  1369.         If Trim(LrText(20).Text) <> "" And Trim(LrText(21).Text) <> "" And Trim(LrText(22).Text) = "" Then
  1370.             If Ccur_bit = False Then
  1371.                 LrText(24).Text = Format(Val(LrText(20).Text) * Val(LrText(21).Text), "##0.00")
  1372.                 LrText(22).Text = Format(Val(LrText(20).Text) * Val(LrText(21).Text), "##0.00")
  1373.             Else
  1374.                 LrText(24).Text = Format(Val(LrText(21).Text) / Val(LrText(20).Text), "##0.00")
  1375.                 LrText(22).Text = Format(Val(LrText(21).Text) / Val(LrText(20).Text), "##0.00")
  1376.             End If
  1377.         End If
  1378.     End If
  1379.     
  1380.     '根据资产折旧方法,以及修改折旧方法所需要的各录入数据,取得月折旧额和月折旧率
  1381.     If Index = 15 Or Index = 22 Or Index = 25 Or Index = 28 Then
  1382.         Call DeprMethod
  1383.     End If
  1384.     If Index = 27 And Trim(Com_DeprMethod.Text) = "固定折旧额折旧法" Then
  1385.         Call DeprMethod
  1386.     End If
  1387.     
  1388.     '取得净资产
  1389.     If Index = 22 Or Index = 23 Then
  1390.         Lbl_FactValue.Caption = Format(Val(LrText(22).Text) - Val(LrText(23).Text), "#0.00")
  1391.         If Trim(LrText(20).Text & "") <> "" And Trim(LrText(22).Text) <> "" And Trim(LrText(21).Text) = "" Then
  1392.             If Ccur_bit = False Then
  1393.                 LrText(21).Text = Format(Val(LrText(22).Text) / Val(LrText(20).Text), "##0.00")
  1394.             Else
  1395.                 LrText(21).Text = Format(Val(LrText(22).Text) * Val(LrText(20).Text), "##0.00")
  1396.             End If
  1397.         End If
  1398.     End If
  1399.     
  1400.     '取得净残值
  1401.     If Index = 22 Or Index = 28 Then
  1402.         LrText(29).Text = Format(Val(LrText(22).Text) * Val(LrText(28).Text), "##0.00")
  1403.     End If
  1404.     
  1405.     '//自定义判断结束
  1406.     
  1407.     '屏蔽程序改变控制
  1408.     If TextChangeLock Then
  1409.         Exit Sub
  1410.     End If
  1411.     
  1412. End Sub
  1413. Private Function Bclrsj() As Boolean                   '判断录入数据有效性,并保存数据
  1414.     
  1415.     Dim Jsqte As Integer
  1416.     
  1417.     '对文本框录入内容进行为零和为空判断(固定不变)
  1418.     For Jsqte = 0 To Max_Text_Index
  1419.         If Textint(Jsqte, 8) = 1 Then     '字段不能为空
  1420.             If Len(Trim(LrText(Jsqte).Text)) = 0 Then
  1421.                 Tsxx = Textstr(Jsqte, 7) & "不能为空!"
  1422.                 Call Xtxxts(Tsxx, 0, 1)
  1423.                 LrText(Jsqte).SetFocus
  1424.                 Bclrsj = False
  1425.                 Exit Function
  1426.             End If
  1427.         Else
  1428.             If Textint(Jsqte, 8) = 2 Then   '字段不能为零
  1429.                 If Val(Trim(LrText(Jsqte).Text)) = 0 Then
  1430.                     Tsxx = Textstr(Jsqte, 7) & "不能为零!"
  1431.                     Call Xtxxts(Tsxx, 0, 1)
  1432.                     LrText(Jsqte).SetFocus
  1433.                     Bclrsj = False
  1434.                     Exit Function
  1435.                 End If
  1436.             End If
  1437.         End If
  1438.     Next Jsqte
  1439.     
  1440.     '对需要进行事后判断的文本框录入内容进行有效性判断 (固定不变)
  1441.     For Jsqte = 0 To Max_Text_Index
  1442.         If Textint(Jsqte, 9) = 0 Or Textint(Jsqte, 9) = 2 Then
  1443.             If Not TextYxxpd(Jsqte) Then
  1444.                 Exit Function
  1445.             End If
  1446.         End If
  1447.     Next Jsqte
  1448.     
  1449.     '//以下为自定义判断过程
  1450.     
  1451.     '判断资产编号不能重复
  1452.     Set rstemp = New ADODB.Recordset
  1453.     If str_State = "1" Then
  1454.         rstemp.Open "select * from gdzc_card where FACode='" & Trim(LrText(13).Text) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1455.     Else
  1456.         rstemp.Open "select * from gdzc_card where FACode='" & Trim(LrText(13).Text) & "' and CardCode<>'" & Trim(Lbl_Num.Caption) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1457.     End If
  1458.     If Not rstemp.EOF Then
  1459.         Tsxx = "资产编号不能重复!"
  1460.         Call Xtxxts(Tsxx, 0, 4)
  1461.         LrText(13).Text = ""
  1462.         LrText(13).SetFocus
  1463.         Exit Function
  1464.     End If
  1465.     rstemp.Close
  1466.     Set rstemp = Nothing
  1467.     '累计折旧不能大于资产原值
  1468.     If Val(LrText(22).Text) - Val(LrText(23).Text) < 0 Then
  1469.         Tsxx = "累计折旧不能大于资产原值!"
  1470.         Call Xtxxts(Tsxx, 0, 4)
  1471.         LrText(23).SetFocus
  1472.         Exit Function
  1473.     End If
  1474.     
  1475.     '折旧月数不能大于使用年限×12
  1476.     If Val(Val(LrText(25).Text)) > Val(Val(LrText(15).Text) * 12) Then
  1477.         Tsxx = "折旧月数的年限不能大于使用年限!"
  1478.         Call Xtxxts(Tsxx, 0, 4)
  1479.         LrText(25).SetFocus
  1480.         Exit Function
  1481.     End If
  1482.     
  1483.     '当资产折旧方法为“工作量法”时,工作总量和工作量单位不能为空
  1484.     If Trim(Com_DeprMethod.Text) = "工作量法" Then
  1485.         If Trim(LrText(30).Text) = "" Then
  1486.             Tsxx = "工作总量不能为空!"
  1487.             Call Xtxxts(Tsxx, 0, 4)
  1488.             LrText(30).SetFocus
  1489.             Exit Function
  1490.         End If
  1491.         If Trim(LrText(31).Text) = "" Then
  1492.             Tsxx = "工作量单位不能为空!"
  1493.             Call Xtxxts(Tsxx, 0, 4)
  1494.             LrText(31).SetFocus
  1495.             Exit Function
  1496.         End If
  1497.     End If
  1498.     
  1499.     '当资产折旧方法为“固定折旧额法”时,月折旧额不能为空
  1500.     If Trim(Com_DeprMethod.Text) = "固定折旧额折旧法" Then
  1501.         If Trim(LrText(26).Text) = "" Then
  1502.             Tsxx = "月折旧额不能为空!"
  1503.             Call Xtxxts(Tsxx, 0, 4)
  1504.             LrText(26).SetFocus
  1505.             Exit Function
  1506.         End If
  1507.     End If
  1508.     
  1509.     '日期判断
  1510.     If Trim(LrText(0).Text) <> "" Then
  1511.         If Val(Year(LrText(0).Text)) > Val(Xtyear) Then
  1512.             Tsxx = "使用日期不能大于本会计年度!"
  1513.             Call Xtxxts(Tsxx, 0, 4)
  1514.             LrText(0).Text = ""
  1515.             LrText(0).SetFocus
  1516.             Exit Function
  1517.         End If
  1518.         If Val(Year(LrText(0).Text)) > Val(Xtyear) And Val(Month(LrText(0).Text)) > Val(Xtmm) Then
  1519.             Tsxx = "使用日期不能大于本会计期间!"
  1520.             Call Xtxxts(Tsxx, 0, 4)
  1521.             LrText(0).Text = ""
  1522.             LrText(0).SetFocus
  1523.             Exit Function
  1524.         End If
  1525.     End If
  1526.     
  1527.     '日期判断
  1528.     If Trim(LrText(1).Text) <> "" Then
  1529.         If Val(Year(LrText(1).Text)) > Val(Xtyear) Then
  1530.             Tsxx = "记帐日期不能大于本会计年度!"
  1531.             Call Xtxxts(Tsxx, 0, 4)
  1532.             LrText(1).Text = ""
  1533.             LrText(1).SetFocus
  1534.             Exit Function
  1535.         End If
  1536.         If Val(Year(LrText(1).Text)) > Val(Xtyear) And Val(Month(LrText(1).Text)) > Val(Xtmm) Then
  1537.             Tsxx = "记帐日期不能大于本会计期间!"
  1538.             Call Xtxxts(Tsxx, 0, 4)
  1539.             LrText(1).Text = ""
  1540.             LrText(1).SetFocus
  1541.             Exit Function
  1542.         End If
  1543.     End If
  1544.     '自定义判断
  1545.     Dim Define_int As Integer
  1546.     Dim Define_tmep As Double
  1547.     For Define_int = 33 To 52
  1548.         If LrText(Define_int).Visible = True Then
  1549.             If Trim(LrText(Define_int).Text & "") <> "" Then
  1550.                 Set rs = New ADODB.Recordset
  1551.                 rs.Open "select * from gdzc_custom where FieldCode='" & Trim(LrText(Define_int).Tag) & "' and FieldState='1'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1552.                 If Not rs.EOF Then
  1553.                     If rs!datatype = 3 Then
  1554.                         Define_tmep = IIf(rs!intlength < 1, 1, IIf(rs!intlength < 2, 10, IIf(rs!intlength < 3, 100, IIf(rs!intlength < 4, 1000, IIf(rs!intlength < 5, 10000, _
  1555.                                     IIf(rs!intlength < 6, 100000, IIf(rs!intlength < 7, 1000000, IIf(rs!intlength < 8, 10000000, IIf(rs!intlength < 9, 100000000, IIf(rs!intlength < 10, 1000000000, 100000000000#))))))))))
  1556.                         If Val(LrText(Define_int).Text) > Val(Define_tmep) Then
  1557.                             Tsxx = "您的输入值不能超过自定义最大值!"
  1558.                             Call Xtxxts(Tsxx, 0, 4)
  1559.                             LrText(Define_int).Text = ""
  1560.                             LrText(Define_int).SetFocus
  1561.                             Exit Function
  1562.                         End If
  1563.                     ElseIf rs!datatype = 5 Then
  1564.                         If Val(Year(Trim(LrText(Define_int).Text) & "")) > Val(Xtyear) Then
  1565.                             Tsxx = "日期不能大于本会计年度!"
  1566.                             Call Xtxxts(Tsxx, 0, 4)
  1567.                             LrText(Define_int).Text = ""
  1568.                             LrText(Define_int).SetFocus
  1569.                             Exit Function
  1570.                         End If
  1571.                         If Val(Year(Trim(LrText(Define_int).Text) & "")) > Val(Xtyear) And Val(Month(LrText(Define_int).Text)) > Val(Xtmm) Then
  1572.                             Tsxx = "日期不能大于本会计期间!"
  1573.                             Call Xtxxts(Tsxx, 0, 4)
  1574.                             LrText(Define_int).Text = ""
  1575.                             LrText(Define_int).SetFocus
  1576.                             Exit Function
  1577.                         End If
  1578.                     End If
  1579.                 End If
  1580.                 rs.Close
  1581.                 Set rs = Nothing
  1582.             End If
  1583.         End If
  1584.     Next Define_int
  1585.    
  1586.    '//以上为自定义判断过程
  1587.       
  1588.     '录入数据保存
  1589.     Call Lrbc
  1590.     
  1591.     
  1592.     '保存记录成功,函数返回真值
  1593.     Bclrsj = True
  1594.     Exit Function
  1595.     
  1596. End Function
  1597. Private Sub SzToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
  1598.     
  1599.     Select Case Button.Key
  1600.         Case "zj"                           '新增
  1601.             '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  1602.             If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
  1603.                 Exit Sub
  1604.             End If
  1605.             
  1606.             If If_Add = True Then
  1607.                 Call Txt_Clear
  1608.                 str_State = "1"
  1609.                 Call Zdbm
  1610.                 Me.AutoRedraw = False
  1611.                 SetToolState
  1612.                 LrText(13).SetFocus
  1613.             End If
  1614.         Case "xg"                           '修改
  1615.             '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  1616.             If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
  1617.                 Exit Sub
  1618.             End If
  1619.             If If_Add = True Then
  1620.                 str_State = "2"
  1621.                 Me.AutoRedraw = False
  1622.                 SetToolState
  1623.             End If
  1624.         Case "sc"                           '删除
  1625.             Call Card_Del
  1626.         Case "bc"                           '保存
  1627.             Call Bclrsj
  1628.         Case "fq"                           '放弃
  1629.             If str_State = "1" Then
  1630.                 Call Zdbm
  1631.                 Call Txt_Clear
  1632.                 Call Recordset_Move(1)
  1633.             End If
  1634.             str_State = "3"
  1635.             Me.AutoRedraw = False
  1636.             SetToolState
  1637.         Case "first"                        '首张
  1638.             Call Recordset_Move(1)
  1639.         Case "prev"                         '上张
  1640.             Call Recordset_Move(2)
  1641.         Case "next"                         '下张
  1642.             Call Recordset_Move(3)
  1643.         Case "last"                         '末张
  1644.             Call Recordset_Move(4)
  1645.         Case "fh"                           '退 出
  1646.             Unload Me
  1647.         Case "bz"
  1648.             SendKeys "{F1}"
  1649.     End Select
  1650.      
  1651. End Sub
  1652. Private Sub ydcommand_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)     '按钮提供帮助
  1653.     
  1654.     If LrText(Index).Enabled = False Then
  1655.         Exit Sub
  1656.     End If
  1657.     If Index = 12 Then
  1658.         If Trim(LrText(21).Text) <> "" And Trim(LrText(22).Text) <> "" Then
  1659.             Exit Sub
  1660.         End If
  1661.     End If
  1662.     
  1663.     Call Text_Help(Index)
  1664.     
  1665.     '根据资产类别设置取得资产折旧方法、月折旧率、月折旧额和残值率
  1666.     If Index = 3 Then
  1667.         Call From_Sort
  1668.     End If
  1669.     
  1670.     '根据用户选择的币种,取得汇率
  1671.     Call From_Ccur
  1672.     
  1673. End Sub
  1674. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  1675.     
  1676.     If Not Textboolean(Index, 1) Then
  1677.         Exit Sub
  1678.     End If
  1679.     TextValiJudgeLock(Index) = True
  1680.    
  1681.     '先进行有效性判断
  1682.     If Not TextYxxpd(CurTextIndex) Then
  1683.         Exit Sub
  1684.     End If
  1685.      
  1686.     '[>>调入参照窗体
  1687.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  1688.      '<<]
  1689.     If Len(Xtfhcs) <> 0 Then
  1690.         If Textint(Index, 3) = 1 Then
  1691.             LrText(Index).Text = Xtfhcsfz
  1692.             LrText(Index).Tag = Xtfhcs
  1693.         Else
  1694.             LrText(Index).Text = Xtfhcs
  1695.             LrText(Index).Tag = Xtfhcsfz
  1696.         End If
  1697.     End If
  1698.     TextValiJudgeLock(Index) = False
  1699.     LrText(Index).SetFocus
  1700.     
  1701. End Sub
  1702. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  1703.     '填写文本框得到焦点,进行相应信息处理程序
  1704.     If Index = 2 Then LrText(Index).MaxLength = 20
  1705.    
  1706. End Sub
  1707. Private Sub Wbkcsh()                          '录入文本框初始化
  1708.   
  1709.     Dim Jsqte As Integer
  1710.   
  1711.     '最大录入文本框索引值
  1712.     Max_Text_Index = Textvar(1)
  1713.     
  1714.     ReDim TextValiJudgeLock(Max_Text_Index)
  1715.     For Jsqte = 3 To Max_Text_Index
  1716.         If Len(Trim(Textstr(Jsqte, 1))) <> 0 Then
  1717.             If Textboolean(Jsqte, 1) Then
  1718.                 If Jsqte <> 0 And Not Textboolean(Jsqte, 3) Then
  1719.                     Load ydcommand(Jsqte)
  1720.                 End If
  1721.                 ydcommand(Jsqte).Visible = True
  1722.                 ydcommand(Jsqte).Picture = ydcommand(Jsqte - 1).Picture
  1723.                 ydcommand(Jsqte).Move LrText(Jsqte).Left + LrText(Jsqte).Width, LrText(Jsqte).Top
  1724.             End If
  1725.             TextChangeLock = True
  1726.             LrText(Jsqte).Text = ""
  1727.             LrText(Jsqte).Tag = ""
  1728.             If Textint(Jsqte, 5) <> 0 Then
  1729.                 LrText(Jsqte).MaxLength = Textint(Jsqte, 5)
  1730.             End If
  1731.             TextChangeLock = False
  1732.         End If
  1733.         TextValiJudgeLock(Jsqte) = True
  1734.     Next Jsqte
  1735.             
  1736.     '显示自定义项
  1737.     Call Define
  1738.         
  1739.     '卡片自动编号
  1740.     Call Zdbm
  1741.     
  1742.     '初始化时显示值
  1743.     LrText(14).Text = 1
  1744.     Lbl_Year.Caption = Xtyear                    '会计年度
  1745.     Lbl_Period.Caption = Format(Xtmm, "00")                   '会计期间
  1746.     Lbl_Operator.Caption = Xtczy                 '操作员姓名
  1747.     Com_DeprMethod.Text = Com_DeprMethod.List(0) '资产折旧方法默认值
  1748.     Com_Type.Text = "新增固定资产"               '卡片类型
  1749.     LrText(1).Text = Xtrq
  1750.     LrText(12).Text = XtSCurrName
  1751.     LrText(12).Tag = XtSCurrCode
  1752.     LrText(20).Text = "1"
  1753.     
  1754. End Sub
  1755. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  1756.     
  1757.     Dim Sqlstr As String
  1758.     Dim Findrec As ADODB.Recordset
  1759.     
  1760.     If TextValiJudgeLock(Index) Then    '文本框内容未曾改变不进行有效性判断
  1761.         TextYxxpd = True
  1762.         Exit Function
  1763.     End If
  1764.     If Trim(LrText(Index)) = "" Then
  1765.         LrText(Index).Tag = ""
  1766.         Call Wbklrwbcl(Index)
  1767.         TextValiJudgeLock(Index) = True
  1768.         TextYxxpd = True
  1769.         Exit Function
  1770.     End If
  1771.     Select Case Textint(Index, 4)
  1772.         Case 1      '编码型
  1773.             Sqlstr = Trim(Textstr(Index, 5))
  1774.             Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  1775.             Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1776.             If Findrec.EOF Then
  1777.                 Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  1778.                 LrText(Index).SetFocus
  1779.                 Exit Function
  1780.             Else
  1781.                 Select Case Textint(Index, 3)
  1782.                     Case 0
  1783.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  1784.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  1785.                         End If
  1786.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  1787.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  1788.                         End If
  1789.                     Case 1
  1790.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  1791.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  1792.                         End If
  1793.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  1794.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  1795.                         End If
  1796.                 End Select
  1797.             End If
  1798.         Case 2      '日期型
  1799.             If IsDate(LrText(Index).Text) Then
  1800.                 LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  1801.                 If Val(Mid(LrText(Index), 1, 4)) < 1900 Then
  1802.                     LrText(Index).Text = "1900" + Mid(LrText(Index), 5, 6)
  1803.                 End If
  1804.             Else
  1805.                 Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  1806.                 Call Xtxxts(Tsxx, 0, 1)
  1807.                 LrText(Index).SetFocus
  1808.                 Exit Function
  1809.             End If
  1810.         Case 3      '其他类型
  1811.     End Select
  1812.     TextValiJudgeLock(Index) = True
  1813.     TextYxxpd = True
  1814. End Function