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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx"
  3. Begin VB.Form YS_FrmItemBudgetC 
  4.    BorderStyle     =   3  'Fixed Dialog
  5.    Caption         =   "项目预算条件"
  6.    ClientHeight    =   1830
  7.    ClientLeft      =   45
  8.    ClientTop       =   330
  9.    ClientWidth     =   4500
  10.    HelpContextID   =   411004002
  11.    Icon            =   "预算设置_项目预算条件.frx":0000
  12.    KeyPreview      =   -1  'True
  13.    LinkTopic       =   "Form1"
  14.    MaxButton       =   0   'False
  15.    MinButton       =   0   'False
  16.    ScaleHeight     =   1830
  17.    ScaleWidth      =   4500
  18.    ShowInTaskbar   =   0   'False
  19.    StartUpPosition =   2  '屏幕中心
  20.    Begin VB.CommandButton Command2 
  21.       Caption         =   "取消(&C)"
  22.       Height          =   300
  23.       Left            =   3305
  24.       TabIndex        =   9
  25.       Top             =   1470
  26.       Width           =   1120
  27.    End
  28.    Begin VB.CommandButton Command1 
  29.       Caption         =   "确定(&O)"
  30.       Height          =   300
  31.       Left            =   2105
  32.       TabIndex        =   8
  33.       Top             =   1470
  34.       Width           =   1120
  35.    End
  36.    Begin VB.Frame Frame1 
  37.       Height          =   1395
  38.       Left            =   60
  39.       TabIndex        =   3
  40.       Top             =   0
  41.       Width           =   4365
  42.       Begin VB.TextBox LrText 
  43.          Height          =   300
  44.          Index           =   0
  45.          Left            =   1020
  46.          TabIndex        =   1
  47.          Text            =   "0"
  48.          Top             =   600
  49.          Width           =   2895
  50.       End
  51.       Begin VB.CommandButton Ydcommand1 
  52.          Height          =   300
  53.          Index           =   0
  54.          Left            =   3945
  55.          Picture         =   "预算设置_项目预算条件.frx":1042
  56.          Style           =   1  'Graphical
  57.          TabIndex        =   5
  58.          Top             =   600
  59.          Visible         =   0   'False
  60.          Width           =   300
  61.       End
  62.       Begin VB.ComboBox Cbo_AccountYear 
  63.          Height          =   300
  64.          Left            =   1020
  65.          Style           =   2  'Dropdown List
  66.          TabIndex        =   2
  67.          Top             =   967
  68.          Width           =   3225
  69.       End
  70.       Begin MSComctlLib.ImageCombo Imgebo_ItemClass 
  71.          Height          =   315
  72.          Left            =   1020
  73.          TabIndex        =   0
  74.          Top             =   210
  75.          Width           =   3225
  76.          _ExtentX        =   5689
  77.          _ExtentY        =   556
  78.          _Version        =   393216
  79.          ForeColor       =   -2147483640
  80.          BackColor       =   -2147483643
  81.          Locked          =   -1  'True
  82.       End
  83.       Begin VB.Label Label1 
  84.          AutoSize        =   -1  'True
  85.          Caption         =   "项目:"
  86.          Height          =   180
  87.          Index           =   1
  88.          Left            =   135
  89.          TabIndex        =   7
  90.          Top             =   660
  91.          Width           =   450
  92.       End
  93.       Begin VB.Label Label1 
  94.          AutoSize        =   -1  'True
  95.          Caption         =   "项目大类:"
  96.          Height          =   180
  97.          Index           =   12
  98.          Left            =   135
  99.          TabIndex        =   6
  100.          Top             =   300
  101.          Width           =   810
  102.       End
  103.       Begin VB.Label Label1 
  104.          AutoSize        =   -1  'True
  105.          Caption         =   "会计年度:"
  106.          Height          =   195
  107.          Index           =   0
  108.          Left            =   135
  109.          TabIndex        =   4
  110.          Top             =   1020
  111.          Width           =   765
  112.       End
  113.    End
  114. End
  115. Attribute VB_Name = "YS_FrmItemBudgetC"
  116. Attribute VB_GlobalNameSpace = False
  117. Attribute VB_Creatable = False
  118. Attribute VB_PredeclaredId = True
  119. Attribute VB_Exposed = False
  120. '*************************************************************
  121. '*    模 块 名 称 :项目预算表选择
  122. '*    功 能 描 述 :
  123. '*    程序员姓名  :魏永生
  124. '*    最后修改人  :
  125. '*    最后修改时间:2002/01/21
  126. '*    备        注:
  127. '*************************************************************
  128. Dim Tsxx As String                       '系统信息提示
  129. Dim AccountYear As Integer               '会计年度
  130. '以下为固定使用变量(文本框)
  131. Dim Textvar() As Variant                 '存储变体型文本框信息
  132. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  133. Dim Textint() As Integer                 '存储整型文本框信息
  134. Dim Textstr() As String                  '存储字符型文本框信息
  135. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  136. Dim TextGroupCode As String              '文本框录入分组编码
  137. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  138. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  139. Dim CurTextIndex As Integer              '当前文本框索引值
  140. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  141. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  142. Private Sub Form_KeyPress(KeyAscii As Integer)       '控 制 焦 点 转 移
  143.     Dim jdzygs As Integer                            '控件焦点转移个数
  144.     jdzygs = 30
  145.     Select Case KeyAscii
  146.     Case vbKeyReturn
  147.         If Kjjdzy(jdzygs) Then
  148.             KeyAscii = 0
  149.         End If
  150.     Case 39                              '屏蔽"'"
  151.         KeyAscii = 0
  152.     End Select
  153. End Sub
  154. Private Sub Form_Load()
  155.     Dim temRs As New ADODB.Recordset
  156.     Dim strSql As String
  157.     Dim i As Integer
  158.     
  159.     '添加会计年度
  160.     strSql = "SELECT DISTINCT kjyear FROM gy_kjrlb"
  161.     Set temRs = Cw_DataEnvi.DataConnect.Execute(strSql)
  162.     
  163.     Int_OriYear = Year(Now)
  164.     
  165.     For i = Int_OriYear + 2 To Int_OriYear - temRs.RecordCount + 1 Step -1
  166.         Cbo_AccountYear.AddItem Str(i)
  167.     Next i
  168.     Cbo_AccountYear.ListIndex = 2
  169.     
  170.     If temRs.State = adStateOpen Then temRs.Close
  171.     Set temRs = Nothing
  172.     
  173.     '填充项目分类列表
  174.     Call FillImageCombo(Imgebo_ItemClass, "Cwzz_ItemClass", 0)
  175.     If Imgebo_ItemClass.ComboItems.count > 0 Then
  176.         Imgebo_ItemClass.ComboItems.Item(1).Selected = True
  177.     End If
  178.     
  179.     
  180.     '以下为文本框处理程序
  181.     TextGroupCode = "cwfx_ItemBudgetC"
  182.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  183.     Call Wbkcsh
  184.     
  185.     'Call Textwx(LrText(0))
  186.     Ydcommand1(0).Enabled = True
  187.     
  188.     
  189. End Sub
  190. Private Sub Imgebo_ItemClass_Click()                                            '用户点击项目分类列表
  191.     Call Textyx(lrText(0))
  192.     lrText(0).Text = ""
  193.     Ydcommand1(0).Enabled = True
  194. End Sub
  195. '会计年度选择
  196. Private Sub Command1_Click()
  197.     
  198.     If Not Lrtjyxxpd Then
  199.         Exit Sub
  200.     End If
  201.     If Imgebo_ItemClass.ComboItems.count = 0 Then
  202.         Exit Sub
  203.     End If
  204.     If Imgebo_ItemClass.ComboItems.count = 0 Then
  205.         Exit Sub
  206.     End If
  207.     
  208.     Str_ItemClassCode = GetComboKey(Imgebo_ItemClass, 0)
  209.     Str_ItemClassName = Imgebo_ItemClass.Text
  210.     Str_ItemCode = lrText(0).Tag
  211.     Str_ItemName = lrText(0).Text
  212.     
  213.     Int_OriYear = Val(Cbo_AccountYear.Text)
  214.     
  215.     Load YS_FrmItemBudget
  216.     YS_FrmItemBudget.Show
  217. End Sub
  218. '退出
  219. Private Sub Command2_Click()
  220.     Unload Me
  221. End Sub
  222. Private Function Lrtjyxxpd() As Boolean                          '用户录入条件有效性判断
  223.     Dim Jsqte As Integer
  224.     Lrtjyxxpd = False
  225.     
  226.     If Trim(lrText(0).Text) = "" Then
  227.         Tsxx = "查询项目不能为空!"
  228.         Call Xtxxts(Tsxx, 0, 1)
  229.         Imgebo_ItemClass.SetFocus
  230.         Exit Function
  231.     End If
  232.     
  233.     '对需要进行事后判断的文本框录入内容进行有效性判断 (固定不变)
  234.     For Jsqte = 0 To Max_Text_Index
  235.         If Textint(Jsqte, 9) = 0 Or Textint(Jsqte, 9) = 2 Then
  236.             If Not TextYxxpd(Jsqte) Then
  237.                 Exit Function
  238.             End If
  239.         End If
  240.     Next Jsqte
  241.     
  242.     '[>>以下为依据实际情况自定义部分
  243.     
  244.     
  245.     '<<]以上为依据实际情况自定义部分
  246.     
  247.     Lrtjyxxpd = True
  248. End Function
  249. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  250.     
  251.     '以下为依据实际情况自定义部分[
  252.     
  253.     '在此填写文本框录入事后处理程序
  254.     
  255.     ']以上为依据实际情况自定义部分
  256. End Sub
  257. Private Sub LrText_Change(Index As Integer)
  258.     
  259.     '屏蔽程序改变控制
  260.     If TextChangeLock Then
  261.         Exit Sub
  262.     End If
  263.     
  264.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  265.     
  266.     '限制字段录入长度
  267.     
  268.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  269.     Select Case Textint(Index, 1)
  270.     Case 8           '金额型
  271.         Call Sjgskz(lrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  272.     Case 9           '数量型
  273.         Call Sjgskz(lrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  274.     Case 10          '单价型
  275.         Call Sjgskz(lrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  276.     Case Else        '其他小数类型控制
  277.         If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  278.             Call Sjgskz(lrText(Index), Textint(Index, 6), Textint(Index, 7))
  279.         End If
  280.     End Select
  281.     TextChangeLock = False '解锁
  282. End Sub
  283. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  284.     Call TextShow(Index)
  285.     CurTextIndex = Index
  286.     lrText(Index).SelStart = Len(lrText(Index))
  287. End Sub
  288. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  289.     Select Case KeyCode
  290.     Case vbKeyF2
  291.         Call Text_Help(Index)
  292.     End Select
  293. End Sub
  294. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  295.     Call InputFieldLimit(lrText(Index), Textint(Index, 1), KeyAscii)
  296. End Sub
  297. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点进行有效性判断及相应处理
  298.     If Textint(Index, 9) = 0 Or Textint(Index, 9) = 1 Then '事中判断
  299.         Call TextYxxpd(Index)
  300.     End If
  301. End Sub
  302. Private Sub Ydcommand1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)     '按钮提供帮助
  303.     If Imgebo_ItemClass.ComboItems.count = 0 Then
  304.         Exit Sub
  305.     End If
  306.     Call Text_Help(Index)
  307. End Sub
  308. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  309.     If Not Textboolean(Index, 1) Then
  310.         Exit Sub
  311.     End If
  312.     TextValiJudgeLock(Index) = True
  313.     
  314.     '先进行有效性判断
  315.     If Not TextYxxpd(CurTextIndex) Then
  316.         Exit Sub
  317.     End If
  318.     If Index = 0 Then        '核算项目特殊处理
  319.         Xtcdcs = Trim(lrText(Index).Text)
  320.         Xtcdcsfz = GetComboKey(Imgebo_ItemClass, 0)
  321.         XT_ItemHelp.Show 1
  322.     Else
  323.         Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(lrText(Index).Text))
  324.     End If
  325.     
  326.     If Len(Xtfhcs) <> 0 Then
  327.         If Textint(Index, 3) = 1 Then
  328.             lrText(Index).Text = Xtfhcsfz
  329.             lrText(Index).Tag = Xtfhcs
  330.         Else
  331.             lrText(Index).Text = Xtfhcs
  332.             lrText(Index).Tag = Xtfhcsfz
  333.         End If
  334.         
  335.     End If
  336.     TextValiJudgeLock(Index) = False
  337.     lrText(Index).SetFocus
  338. End Sub
  339. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  340.     
  341.     '填写文本框得到焦点,进行相应信息处理程序
  342.     
  343. End Sub
  344. Private Sub Wbkcsh()                          '录入文本框初始化
  345.     Dim Jsqte As Integer
  346.     
  347.     '最大录入文本框索引值
  348.     Max_Text_Index = Textvar(1)
  349.     
  350.     ReDim TextValiJudgeLock(Max_Text_Index)
  351.     For Jsqte = 0 To Max_Text_Index
  352.         
  353.         If Len(Trim(Textstr(Jsqte, 1))) <> 0 Then
  354.             If Textboolean(Jsqte, 1) Then
  355.                 If Jsqte <> 0 And Not Textboolean(Jsqte, 3) Then
  356.                     Load Ydcommand1(Jsqte)
  357.                 End If
  358.                 Ydcommand1(Jsqte).Visible = True
  359.                 Ydcommand1(Jsqte).Move lrText(Jsqte).Left + lrText(Jsqte).Width, lrText(Jsqte).Top
  360.             End If
  361.             TextChangeLock = True
  362.             lrText(Jsqte).Text = ""
  363.             lrText(Jsqte).Tag = ""
  364.             If Textint(Jsqte, 5) <> 0 Then
  365.                 lrText(Jsqte).MaxLength = Textint(Jsqte, 5)
  366.             End If
  367.             
  368.             TextChangeLock = False
  369.         End If
  370.         TextValiJudgeLock(Jsqte) = True
  371.     Next Jsqte
  372. End Sub
  373. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  374.     Dim SqlStr As String
  375.     Dim Findrec As ADODB.Recordset
  376.     If TextValiJudgeLock(Index) Then    '文本框内容未曾改变不进行有效性判断
  377.         TextYxxpd = True
  378.         Exit Function
  379.     End If
  380.     If Trim(lrText(Index)) = "" Then
  381.         lrText(Index).Tag = ""
  382.         Call Wbklrwbcl(Index)
  383.         TextValiJudgeLock(Index) = True
  384.         TextYxxpd = True
  385.         Exit Function
  386.     End If
  387.     Select Case Textint(Index, 4)
  388.     Case 1      '编码型
  389.         SqlStr = Trim(Textstr(Index, 5))
  390.         SqlStr = Replace(SqlStr, "@", "'" + Trim(lrText(Index).Text) + "'")
  391.         Set Findrec = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  392.         If Findrec.EOF Then
  393.             Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  394.             lrText(Index).SetFocus
  395.             Exit Function
  396.         Else
  397.             Select Case Textint(Index, 3)
  398.             Case 0
  399.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  400.                     lrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  401.                 End If
  402.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  403.                     lrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  404.                 End If
  405.             Case 1
  406.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  407.                     lrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  408.                 End If
  409.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  410.                     lrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  411.                 End If
  412.             End Select
  413.         End If
  414.     Case 2      '日期型
  415.         If IsDate(lrText(Index).Text) Then
  416.             lrText(Index).Text = Format(lrText(Index).Text, "yyyy-mm-dd")
  417.         Else
  418.             Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  419.             Call Xtxxts(Tsxx, 0, 1)
  420.             lrText(Index).SetFocus
  421.             Exit Function
  422.         End If
  423.     Case 3      '其他类型
  424.         '[>>开始
  425.         Select Case Index
  426.         Case 0                  '项目
  427.             SqlStr = "select * from Cwzz_item where ItemClassCode='" & GetComboKey(Imgebo_ItemClass, 0) & "' and (ItemCode='" & Trim(lrText(0).Text) & "' or ItemName='" & Trim(lrText(0).Text) & "')"
  428.             Set Findrec = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  429.             If Findrec.EOF Then
  430.                 Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  431.                 lrText(Index).SetFocus
  432.                 Exit Function
  433.             Else
  434.                 Select Case Textint(Index, 3)
  435.                 Case 0
  436.                     If Len(Trim(Textstr(Index, 2))) <> 0 Then
  437.                         lrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  438.                     End If
  439.                     If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  440.                         lrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  441.                     End If
  442.                 Case 1
  443.                     If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  444.                         lrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  445.                     End If
  446.                     If Len(Trim(Textstr(Index, 2))) <> 0 Then
  447.                         lrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  448.                     End If
  449.                 End Select
  450.             End If
  451.         End Select
  452.         '完毕<<]
  453.     End Select
  454.     TextValiJudgeLock(Index) = True
  455.     TextYxxpd = True
  456. End Function