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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx"
  3. Begin VB.Form JC_FrmFormulaGen 
  4.    BorderStyle     =   1  'Fixed Single
  5.    Caption         =   "公式定义"
  6.    ClientHeight    =   5790
  7.    ClientLeft      =   45
  8.    ClientTop       =   330
  9.    ClientWidth     =   8280
  10.    Icon            =   "基础设置_公式定义.frx":0000
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    ScaleHeight     =   5790
  15.    ScaleWidth      =   8280
  16.    StartUpPosition =   2  '屏幕中心
  17.    Begin VB.Frame Frame1 
  18.       Height          =   5775
  19.       Left            =   0
  20.       TabIndex        =   0
  21.       Top             =   0
  22.       Width           =   8265
  23.       Begin VB.TextBox txtDescribe 
  24.          Height          =   1605
  25.          Left            =   120
  26.          Locked          =   -1  'True
  27.          MultiLine       =   -1  'True
  28.          ScrollBars      =   2  'Vertical
  29.          TabIndex        =   13
  30.          Top             =   420
  31.          Width           =   3495
  32.       End
  33.       Begin VB.Frame Frame2 
  34.          Caption         =   "公式参照"
  35.          Height          =   3165
  36.          Left            =   60
  37.          TabIndex        =   5
  38.          Top             =   2070
  39.          Width           =   8115
  40.          Begin VB.OptionButton Opt_List 
  41.             Caption         =   "核算对象"
  42.             Height          =   180
  43.             Index           =   3
  44.             Left            =   7020
  45.             TabIndex        =   14
  46.             Top             =   240
  47.             Width           =   1035
  48.          End
  49.          Begin VB.ListBox lstFunction 
  50.             Height          =   2580
  51.             Left            =   90
  52.             TabIndex        =   11
  53.             Top             =   480
  54.             Width           =   3465
  55.          End
  56.          Begin VB.OptionButton Opt_List 
  57.             Caption         =   "会计科目"
  58.             Height          =   180
  59.             Index           =   1
  60.             Left            =   4740
  61.             TabIndex        =   9
  62.             Top             =   240
  63.             Width           =   1035
  64.          End
  65.          Begin VB.OptionButton Opt_List 
  66.             Caption         =   "来源部门"
  67.             Height          =   180
  68.             Index           =   2
  69.             Left            =   5880
  70.             TabIndex        =   8
  71.             Top             =   240
  72.             Width           =   1035
  73.          End
  74.          Begin VB.OptionButton Opt_List 
  75.             Caption         =   "物料编码"
  76.             Height          =   180
  77.             Index           =   0
  78.             Left            =   3600
  79.             TabIndex        =   7
  80.             Top             =   240
  81.             Value           =   -1  'True
  82.             Width           =   1035
  83.          End
  84.          Begin MSComctlLib.TreeView Tree_List 
  85.             Height          =   2580
  86.             Left            =   3600
  87.             TabIndex        =   6
  88.             Top             =   480
  89.             Width           =   4425
  90.             _ExtentX        =   7805
  91.             _ExtentY        =   4551
  92.             _Version        =   393217
  93.             Style           =   7
  94.             Appearance      =   1
  95.          End
  96.          Begin VB.Label Label2 
  97.             AutoSize        =   -1  'True
  98.             Caption         =   "函数名称:"
  99.             Height          =   180
  100.             Left            =   90
  101.             TabIndex        =   10
  102.             Top             =   240
  103.             Width           =   810
  104.          End
  105.       End
  106.       Begin VB.TextBox txtFormula 
  107.          Height          =   1605
  108.          Left            =   3660
  109.          MultiLine       =   -1  'True
  110.          ScrollBars      =   2  'Vertical
  111.          TabIndex        =   3
  112.          Top             =   420
  113.          Width           =   4515
  114.       End
  115.       Begin VB.CommandButton CancelButton 
  116.          Caption         =   "取消"
  117.          Height          =   375
  118.          Left            =   6900
  119.          TabIndex        =   2
  120.          Top             =   5310
  121.          Width           =   1275
  122.       End
  123.       Begin VB.CommandButton OKButton 
  124.          Caption         =   "公式确认"
  125.          Height          =   375
  126.          Left            =   5460
  127.          TabIndex        =   1
  128.          Top             =   5310
  129.          Width           =   1275
  130.       End
  131.       Begin VB.Label Lab_NonceItem 
  132.          AutoSize        =   -1  'True
  133.          ForeColor       =   &H000000FF&
  134.          Height          =   180
  135.          Left            =   2010
  136.          TabIndex        =   16
  137.          Top             =   5407
  138.          Width           =   90
  139.       End
  140.       Begin VB.Label Lab_NonceCenter 
  141.          AutoSize        =   -1  'True
  142.          ForeColor       =   &H000000FF&
  143.          Height          =   180
  144.          Left            =   180
  145.          TabIndex        =   15
  146.          Top             =   5400
  147.          Width           =   90
  148.       End
  149.       Begin VB.Label Label3 
  150.          Caption         =   "函数说明:"
  151.          Height          =   195
  152.          Left            =   120
  153.          TabIndex        =   12
  154.          Top             =   180
  155.          Width           =   735
  156.       End
  157.       Begin VB.Label Label1 
  158.          AutoSize        =   -1  'True
  159.          Caption         =   "公式内容:"
  160.          Height          =   180
  161.          Left            =   3660
  162.          TabIndex        =   4
  163.          Top             =   180
  164.          Width           =   810
  165.       End
  166.    End
  167. End
  168. Attribute VB_Name = "JC_FrmFormulaGen"
  169. Attribute VB_GlobalNameSpace = False
  170. Attribute VB_Creatable = False
  171. Attribute VB_PredeclaredId = True
  172. Attribute VB_Exposed = False
  173. '*********************************************************************************************************
  174. '*    模 块 名 称 :公式定义
  175. '*    功 能 描 述 :公式定义
  176. '*    程序员姓名  :xjl
  177. '*    最后修改人  :xjl
  178. '*    最后修改时间:2002/1/22
  179. '*    备        注:程序中所有依实际情况自定义部分均用[>>  <<]括起
  180. '*********************************************************************************************************
  181. Option Explicit
  182. Dim str_Describe() As String
  183. Dim str_ConSult_List() As String
  184. Private Sub CancelButton_Click()
  185.     Unload Me
  186. End Sub
  187. Private Sub Form_Load()
  188.     txtFormula.Text = Glo_FormulaString
  189.     FillListBox
  190.     Call ConSult_List(0)
  191.     '显示成本中心,成本项目
  192.     Lab_NonceCenter = "成本中心:《" + Glo_NonceCenter + "》"
  193.     Lab_NonceItem = "成本项目:《" + Glo_NonceItem + "》"
  194.     Lab_NonceItem.Left = Lab_NonceCenter.Left + Lab_NonceCenter.Width + 50
  195. End Sub
  196. Private Sub lstFunction_Click()
  197.     txtDescribe.Text = str_Describe(lstFunction.ListIndex)
  198. End Sub
  199. Private Sub lstFunction_DblClick()
  200.     txtFormula.SelText = lstFunction.Text
  201. End Sub
  202. Private Sub OKButton_Click()
  203.     Dim Tsxx As String
  204.     If Trim(txtFormula.Text) = "" Then
  205.         txtFormula.Text = "0"
  206.     End If
  207.     '公式检验
  208.     If CheckFormula = False Then
  209.         Tsxx = "公式语法有误,请重新输入!"
  210.         txtFormula.SetFocus
  211.         Call Xtxxts(Tsxx, 0, 1)
  212.         Exit Sub
  213.     End If
  214.     Glo_FormulaString = txtFormula.Text
  215.     Unload Me
  216. End Sub
  217. Function FillListBox() As String   '填充列表框并定位
  218.     '函数参数:列表框,列表框分组编码,定位内容,填充类型(0-无空记录  1-有空记录(1个空格) )
  219.     Dim Lbknrrec As ADODB.Recordset
  220.     Dim int_Count As Integer
  221.     '填充列表框内容
  222.     Set Lbknrrec = Cw_DataEnvi.DataConnect.Execute("select * from cwzz_UserDefineFn")
  223.     ReDim str_Describe(Lbknrrec.RecordCount - 1) As String
  224.     Do While Not Lbknrrec.EOF
  225.         lstFunction.AddItem Trim(Lbknrrec("fnalias") & "")
  226.         str_Describe(int_Count) = Trim(Lbknrrec("fncomment") & "")
  227.         int_Count = int_Count + 1
  228.         Lbknrrec.MoveNext
  229.     Loop
  230.     '定位列表框内容
  231.     lstFunction.ListIndex = 0
  232. End Function
  233. '物料,科目,部门参照,成本对象
  234. Sub ConSult_List(Index As Integer)
  235.     Dim RecTemp As ADODB.Recordset
  236.     Dim Description  As String
  237.     Dim SQLStr As String
  238.     Select Case Index
  239.         Case 0
  240.             SQLStr = "Select MNumber As A,MName As B,'1' As CodeLevel From kf_V_invsort where InvSortcode like '01'"
  241.             Description = "物料编码"
  242.         Case 1
  243.             SQLStr = "Select Ccode AS A,Cname AS B,CodeLevel From Cwzz_AccCode Order By CCode"
  244.             Description = "科目编码"
  245.         Case 2
  246.             SQLStr = "Select DeptCode As A,DeptName AS B,CodeLevel From Gy_Department Order By DeptCode"
  247.             Description = "来源部门"
  248.         Case 3
  249.             SQLStr = "Select ObjectCode As A,ObjectName As B,'1' As CodeLevel From Cb_CostObject Order By ObjectCode"
  250.             Description = "核算对象"
  251.     End Select
  252.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(SQLStr)
  253.     Call fill_tv(Tree_List, RecTemp, "A", "B", True, Description)
  254. End Sub
  255. Private Sub Opt_List_Click(Index As Integer)
  256.     Call ConSult_List(Index)
  257. End Sub
  258. '---------------------------------------------
  259. '填充TREEVIEW
  260. Public Sub fill_tv(tv As TreeView, flbm As ADODB.Recordset, field1 As String, field2 As String, bmjc_bz As Boolean, tree_name As String)
  261.     Dim Title_Bar As String
  262.     Title_Bar = "成本核算管理系统"
  263.     Dim fllb, lsbl(), lsbl1(), remlayer, nodX, tem, count
  264.     On Error GoTo ERRORCL
  265.     tv.Nodes.Clear
  266.     flbm.Requery
  267.     If flbm.EOF Then
  268.         Set nodX = tv.Nodes.Add(, 4, "r", tree_name)
  269.         Exit Sub
  270.     Else
  271.         Set nodX = tv.Nodes.Add(, 4, "r", tree_name)
  272.     End If
  273.     flbm.MoveFirst
  274.     count = 1
  275.     If bmjc_bz Then
  276.         Do While Not flbm.EOF
  277.             fllb = "(" + Trim(flbm.Fields(field1)) + ")" + Trim(flbm.Fields(field2))
  278.             remlayer = flbm.Fields("codelevel")
  279.             tem = Trim(flbm.Fields(field1))
  280.             Select Case remlayer
  281.                 Case 1
  282.                     ReDim Preserve lsbl(remlayer)
  283.                     ReDim Preserve lsbl1(remlayer)
  284.                     lsbl(remlayer) = "p" & tem
  285.                     Set nodX = tv.Nodes.Add("r", 4, lsbl(remlayer), fllb)
  286.                     tv.Nodes(count).Expanded = True
  287.                 Case 2
  288.                     ReDim Preserve lsbl1(remlayer)
  289.                     ReDim Preserve lsbl1(remlayer)
  290.                     lsbl1(remlayer) = "p" & tem
  291.                     Set nodX = tv.Nodes.Add(lsbl(remlayer - 1), tvwChild, lsbl1(remlayer), fllb)
  292.                 Case 3
  293.                     ReDim Preserve lsbl(remlayer)
  294.                     ReDim Preserve lsbl1(remlayer)
  295.                     lsbl(remlayer) = lsbl1(remlayer - 1)
  296.                     lsbl1(remlayer) = "p" & tem
  297.                     Set nodX = tv.Nodes.Add(lsbl(remlayer), tvwChild, lsbl1(remlayer), fllb)
  298.                 Case Else
  299.                     ReDim Preserve lsbl(remlayer)
  300.                     ReDim Preserve lsbl1(remlayer)
  301.                     lsbl(remlayer) = lsbl1(remlayer - 1)
  302.                     lsbl1(remlayer) = "p" & tem
  303.                     Set nodX = tv.Nodes.Add(lsbl(remlayer), tvwChild, lsbl1(remlayer), fllb)
  304.             End Select
  305.             count = count + 1
  306.             flbm.MoveNext
  307.         Loop
  308.     Else
  309.         Do While Not flbm.EOF
  310.             fllb = "(" + Trim(flbm.Fields(field1)) + ")" + Trim(flbm.Fields(field2))
  311.             tem = Trim(flbm.Fields("flbm"))
  312.             lsbl(remlayer) = "p" & tem
  313.             Set nodX = tv.Nodes.Add(, 4, lsbl(remlayer), fllb)
  314.             flbm.MoveNext
  315.         Loop
  316.     End If
  317.     Exit Sub
  318. ERRORCL:
  319.     MsgBox "程序出现错误", vbExclamation, Title_Bar
  320.     Exit Sub
  321. End Sub
  322. ''双击事件
  323. Private Sub Tree_List_DblClick()
  324.     txtFormula.SelText = Mid(Tree_List.SelectedItem.Key, 2, Len(Tree_List.SelectedItem.Key) - 1)
  325. End Sub
  326. '公式检验
  327. Function CheckFormula() As Boolean
  328.     Dim Str_Formula As String
  329.     Dim Cxnrrec As New ADODB.Recordset
  330.     Dim SQLStr
  331.     On Error GoTo Err:
  332.     '公式
  333.     Str_Formula = Trim(txtFormula.Text)
  334.     Str_Formula = Fn_Replace(Str_Formula, 0)
  335.     '替换年月
  336.     Str_Formula = Replace(Str_Formula, "本年", Xtyear)
  337.     Str_Formula = Replace(Str_Formula, "本月", Xtmm)
  338.     SQLStr = "Select " & Str_Formula & " As ReturnValue"
  339.     
  340.     Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(SQLStr)
  341.     CheckFormula = True
  342.     Exit Function
  343. Err:
  344.     CheckFormula = False
  345. End Function