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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form Cg_FrmPerson 
  3.    BorderStyle     =   1  'Fixed Single
  4.    Caption         =   "采购员"
  5.    ClientHeight    =   1200
  6.    ClientLeft      =   45
  7.    ClientTop       =   330
  8.    ClientWidth     =   2805
  9.    Icon            =   "业务员.frx":0000
  10.    KeyPreview      =   -1  'True
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    ScaleHeight     =   1200
  15.    ScaleWidth      =   2805
  16.    StartUpPosition =   1  '所有者中心
  17.    Begin VB.Frame Frame1 
  18.       Height          =   705
  19.       Left            =   60
  20.       TabIndex        =   3
  21.       Top             =   30
  22.       Width           =   2685
  23.       Begin VB.TextBox lrText 
  24.          Height          =   300
  25.          Index           =   0
  26.          Left            =   795
  27.          TabIndex        =   0
  28.          Text            =   "0"
  29.          Top             =   240
  30.          Width           =   1485
  31.       End
  32.       Begin VB.CommandButton Ydcommand1 
  33.          Height          =   300
  34.          Index           =   0
  35.          Left            =   2280
  36.          Picture         =   "业务员.frx":1042
  37.          Style           =   1  'Graphical
  38.          TabIndex        =   4
  39.          Top             =   240
  40.          Width           =   300
  41.       End
  42.       Begin VB.Label Lab_FieldsName 
  43.          AutoSize        =   -1  'True
  44.          Caption         =   "采购员:"
  45.          Height          =   180
  46.          Index           =   0
  47.          Left            =   150
  48.          TabIndex        =   5
  49.          Top             =   300
  50.          Width           =   630
  51.       End
  52.    End
  53.    Begin VB.CommandButton Cmd_Cancel 
  54.       Caption         =   "取消(&C)"
  55.       Height          =   300
  56.       Left            =   1635
  57.       TabIndex        =   2
  58.       Top             =   825
  59.       Width           =   1120
  60.    End
  61.    Begin VB.CommandButton Cmd_OK 
  62.       Caption         =   "确定(&O)"
  63.       Height          =   300
  64.       Left            =   420
  65.       TabIndex        =   1
  66.       Top             =   825
  67.       Width           =   1120
  68.    End
  69. End
  70. Attribute VB_Name = "Cg_FrmPerson"
  71. Attribute VB_GlobalNameSpace = False
  72. Attribute VB_Creatable = False
  73. Attribute VB_PredeclaredId = True
  74. Attribute VB_Exposed = False
  75. '*******************************************************
  76. '*    模 块 名 称 :采购业务员选择
  77. '*    功 能 描 述 :
  78. '*    程序员姓名  : 李海祥
  79. '*    最后修改人  : 李海祥
  80. '*    最后修改时间:2001/08/22
  81. '*    备        注:经过自己测试
  82. '*******************************************************
  83.  
  84. Dim RecCustomer As New ADODB.Recordset   '往来单位表
  85. Dim RecTemp As Recordset                 '临时使用动态集
  86. Dim jdzygs As Integer                    '控件焦点转移个数
  87. Dim Lrzt As Integer                      '录入状态标志(0-非录入状态 1-增加 2-修改)
  88. Dim ReportTitle As String                '报表主标题
  89. Public str_PersonCode As String
  90. Public str_PersonName As String
  91. Dim Tsxx As String                       '系统提示信息
  92. '以下为固定使用变量(文本框)
  93. Dim Textvar() As Variant                 '存储变体型文本框信息
  94. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  95. Dim Textint() As Integer                 '存储整型文本框信息
  96. Dim Textstr() As String                  '存储字符型文本框信息
  97. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  98. Dim TextGroupCode As String              '文本框录入分组编码
  99. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  100. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  101. Dim CurTextIndex As Integer              '当前文本框索引值
  102. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  103. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  104. Private Sub Cmd_Cancel_Click()
  105.     Me.str_PersonCode = ""
  106.     Unload Me
  107. End Sub
  108. Private Sub Cmd_Clear_Click()
  109.     For i = 0 To Me.LrText.count - 1
  110.         Me.LrText(i).Text = ""
  111.         Me.LrText(i).Tag = ""
  112.     Next i
  113. End Sub
  114. Private Sub Cmd_OK_Click()
  115.     Dim jsqte As Integer
  116.     For jsqte = 0 To Max_Text_Index
  117.         If Textint(jsqte, 9) = 0 Or Textint(jsqte, 9) = 2 Then
  118.             If Not TextYxxpd(jsqte) Then
  119.                 Exit Sub
  120.             End If
  121.         End If
  122.     Next jsqte
  123.     Me.str_PersonCode = Trim(Me.LrText(0).Tag)
  124.     Me.str_PersonName = Trim(Me.LrText(0).Text)
  125.     Unload Me
  126. End Sub
  127. Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移
  128.     Select Case KeyAscii
  129.         Case 39           '屏蔽"'"
  130.         KeyAscii = 0
  131.     End Select
  132. End Sub
  133. Private Sub Form_Load()
  134.     Dim Str_CodeScheme As String
  135.   
  136.     TextGroupCode = "Cg_PlanExecMan"
  137.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  138.     Call Wbkcsh
  139.     '初始化各文本框对应字段名(通过文本框对应标签的 Tag 属性记录)
  140.     
  141. End Sub
  142. '************以下为文本框录入处理程序(固定不变部分)*************'
  143. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  144.   '以下为依据实际情况自定义部分[
  145.   
  146.       '在此填写文本框录入事后处理程序
  147.    
  148.   ']以上为依据实际情况自定义部分
  149. End Sub
  150. Private Sub LrText_Change(Index As Integer)
  151.    '屏蔽程序改变控制
  152.     If TextChangeLock Then
  153.         Exit Sub
  154.     End If
  155.     
  156.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  157.     
  158.     '限制字段录入长度
  159.           
  160.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  161.     Call TextChangeLimit(LrText(Index), Textint(Index, 1))  '去掉无效字符
  162.         Select Case Textint(Index, 1)
  163.             Case 8           '金额型
  164.                 Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  165.             Case 9           '数量型
  166.                 Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  167.             Case 10          '单价型
  168.                 Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  169.             Case Else        '其他小数类型控制
  170.                 If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  171.                     Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  172.                 End If
  173.         End Select
  174.      
  175.      TextChangeLock = False '解锁
  176. End Sub
  177. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  178.     Call TextShow(Index)
  179.     CurTextIndex = Index
  180.     LrText(Index).SelStart = Len(LrText(Index))
  181.    
  182.    
  183.    
  184. End Sub
  185. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  186.     Select Case KeyCode
  187.         Case vbKeyF2
  188.             Call Text_Help(Index)
  189.         Case 13
  190.             SendKeys "{Tab}"
  191.     End Select
  192. End Sub
  193. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  194.     Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  195. End Sub
  196. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点进行有效性判断及相应处理
  197.     If Textint(Index, 9) = 0 Or Textint(Index, 9) = 1 Then '事中判断
  198.         Call TextYxxpd(Index)
  199.     End If
  200. End Sub
  201. Private Sub LrText_Validate(Index As Integer, Cancel As Boolean)
  202.     If Trim(Me.LrText(0).Text) = "" Then
  203.         Me.LrText(0).Tag = ""
  204.     End If
  205. End Sub
  206. Private Sub Ydcommand1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)     '按钮提供帮助
  207.     Call Text_Help(Index)
  208. End Sub
  209. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  210.     If Not Textboolean(Index, 1) Then
  211.         Exit Sub
  212.     End If
  213.     TextValiJudgeLock(Index) = True
  214.    
  215.      '先进行有效性判断
  216.     If Not TextYxxpd(CurTextIndex) Then
  217.         Exit Sub
  218.     End If
  219.    
  220.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  221.     If Len(Xtfhcs) <> 0 Then
  222.         If Textint(Index, 3) = 1 Then
  223.             LrText(Index).Text = Xtfhcsfz
  224.             LrText(Index).Tag = Xtfhcs
  225.         Else
  226.             LrText(Index).Text = Xtfhcs
  227.             LrText(Index).Tag = Xtfhcsfz
  228.         End If
  229.        
  230.     End If
  231.     TextValiJudgeLock(Index) = False
  232.     LrText(Index).SetFocus
  233. End Sub
  234. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  235.    '填写文本框得到焦点,进行相应信息处理程序
  236.    
  237. End Sub
  238. Private Sub Wbkcsh()                          '录入文本框初始化
  239.     Dim jsqte As Integer
  240.       
  241.     '最大录入文本框索引值
  242.     Max_Text_Index = Textvar(1)
  243.       
  244.     ReDim TextValiJudgeLock(Max_Text_Index)
  245.     For jsqte = 0 To Max_Text_Index
  246.          
  247.         If Len(Trim(Textstr(jsqte, 1))) <> 0 Then
  248.             TextChangeLock = True
  249.                 LrText(jsqte).Text = ""
  250.                 LrText(jsqte).Tag = ""
  251.                 If Textint(jsqte, 5) <> 0 Then
  252.                     LrText(jsqte).MaxLength = Textint(jsqte, 5)
  253.                 End If
  254.             TextChangeLock = False
  255.         End If
  256.         TextValiJudgeLock(jsqte) = True
  257.     Next jsqte
  258. End Sub
  259. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  260.     Dim Sqlstr As String
  261.     Dim Findrec As ADODB.Recordset
  262.   
  263.     If TextValiJudgeLock(Index) Then    '文本框内容未曾改变不进行有效性判断
  264.         TextYxxpd = True
  265.         Exit Function
  266.     End If
  267.     If Trim(LrText(Index)) = "" Then
  268.         LrText(Index).Tag = ""
  269.         Call Wbklrwbcl(Index)
  270.         TextValiJudgeLock(Index) = True
  271.         TextYxxpd = True
  272.         Exit Function
  273.     End If
  274.         Select Case Textint(Index, 4)
  275.             Case 1      '编码型
  276.                 Sqlstr = Trim(Textstr(Index, 5))
  277.                 Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  278.     
  279.                 Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  280.                 If Findrec.EOF Then
  281.                     Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  282.                     LrText(Index).SetFocus
  283.                     Exit Function
  284.                 Else
  285.                 Select Case Textint(Index, 3)
  286.                     Case 0
  287.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  288.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  289.                         End If
  290.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  291.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  292.                         End If
  293.                     Case 1
  294.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  295.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  296.                         End If
  297.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  298.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  299.                         End If
  300.                 End Select
  301.             End If
  302.         Case 2      '日期型
  303.             If IsDate(LrText(Index).Text) Then
  304.                 LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  305.                 If S2N(Mid(LrText(Index), 1, 4)) < 1900 Then
  306.                     LrText(Index).Text = "1900" + Mid(LrText(Index), 5, 6)
  307.                 End If
  308.             Else
  309.                 Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  310.                 Call Xtxxts(Tsxx, 0, 1)
  311.                 LrText(Index).SetFocus
  312.                 Exit Function
  313.             End If
  314.         Case 3      '其他类型
  315.     End Select
  316.     TextValiJudgeLock(Index) = True
  317.     TextYxxpd = True
  318. End Function