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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
  3. Begin VB.Form PZ_FrmPzcx 
  4.    Caption         =   "凭证查询定位"
  5.    ClientHeight    =   1950
  6.    ClientLeft      =   60
  7.    ClientTop       =   345
  8.    ClientWidth     =   3990
  9.    Icon            =   "凭证处理_凭证查询定位.frx":0000
  10.    KeyPreview      =   -1  'True
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    ScaleHeight     =   1950
  15.    ScaleWidth      =   3990
  16.    StartUpPosition =   1  '所有者中心
  17.    Begin VB.CommandButton Ydcommand1 
  18.       Height          =   300
  19.       Index           =   0
  20.       Left            =   1230
  21.       Picture         =   "凭证处理_凭证查询定位.frx":1042
  22.       Style           =   1  'Graphical
  23.       TabIndex        =   9
  24.       Top             =   1560
  25.       Visible         =   0   'False
  26.       Width           =   300
  27.    End
  28.    Begin VB.Frame Frame1 
  29.       Height          =   1395
  30.       Left            =   60
  31.       TabIndex        =   2
  32.       Top             =   60
  33.       Width           =   3855
  34.       Begin VB.ComboBox Combo_Kjqj 
  35.          Height          =   300
  36.          Left            =   1020
  37.          Style           =   2  'Dropdown List
  38.          TabIndex        =   4
  39.          Top             =   210
  40.          Width           =   2715
  41.       End
  42.       Begin VB.TextBox LrText 
  43.          Height          =   300
  44.          Index           =   0
  45.          Left            =   1020
  46.          TabIndex        =   3
  47.          Text            =   "0"
  48.          Top             =   960
  49.          Width           =   2715
  50.       End
  51.       Begin MSComctlLib.ImageCombo Imgebo_VouchClass 
  52.          Height          =   315
  53.          Left            =   1020
  54.          TabIndex        =   5
  55.          Top             =   570
  56.          Width           =   2715
  57.          _ExtentX        =   4789
  58.          _ExtentY        =   556
  59.          _Version        =   393216
  60.          ForeColor       =   -2147483640
  61.          BackColor       =   16777215
  62.       End
  63.       Begin VB.Label TsLabel 
  64.          Caption         =   "会计期间:"
  65.          Height          =   255
  66.          Index           =   9
  67.          Left            =   120
  68.          TabIndex        =   8
  69.          Top             =   240
  70.          Width           =   825
  71.       End
  72.       Begin VB.Label TsLabel 
  73.          Caption         =   "凭证类别:"
  74.          Height          =   225
  75.          Index           =   0
  76.          Left            =   120
  77.          TabIndex        =   7
  78.          Top             =   630
  79.          Width           =   825
  80.       End
  81.       Begin VB.Label TsLabel 
  82.          Caption         =   "凭证号:"
  83.          Height          =   225
  84.          Index           =   1
  85.          Left            =   120
  86.          TabIndex        =   6
  87.          Top             =   990
  88.          Width           =   765
  89.       End
  90.    End
  91.    Begin VB.CommandButton BcCommand 
  92.       Caption         =   "确定(&O)"
  93.       Height          =   300
  94.       Left            =   1590
  95.       TabIndex        =   0
  96.       Top             =   1560
  97.       Width           =   1120
  98.    End
  99.    Begin VB.CommandButton QxCommand 
  100.       Cancel          =   -1  'True
  101.       Caption         =   "取消(&C)"
  102.       Height          =   300
  103.       Left            =   2790
  104.       TabIndex        =   1
  105.       Top             =   1560
  106.       Width           =   1120
  107.    End
  108. End
  109. Attribute VB_Name = "PZ_FrmPzcx"
  110. Attribute VB_GlobalNameSpace = False
  111. Attribute VB_Creatable = False
  112. Attribute VB_PredeclaredId = True
  113. Attribute VB_Exposed = False
  114. '****************************************************************
  115. '*    模 块 名 称 :凭证查询定位
  116. '*    功 能 描 述 :
  117. '*    程序员姓名  : 张建忠
  118. '*    最后修改人  : 张建忠
  119. '*    最后修改时间:2000/09/25
  120. '*    备        注:
  121. '****************************************************************
  122. Dim jdzygs As Integer                    '控件焦点转移个数
  123. Dim Tsxx As String                       '系统提示信息
  124. '以下为固定使用变量(文本框)
  125. Dim Textvar() As Variant                 '存储变体型文本框信息
  126. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  127. Dim Textint() As Integer                 '存储整型文本框信息
  128. Dim Textstr() As String                  '存储字符型文本框信息
  129. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  130. Dim TextGroupCode As String              '文本框录入分组编码
  131. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  132. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  133. Dim CurTextIndex As Integer              '当前文本框索引值
  134. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  135. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  136. Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移
  137.     jdzygs = 4
  138.     Select Case KeyAscii
  139.     Case vbKeyReturn
  140.         If Kjjdzy(jdzygs) Then
  141.             KeyAscii = 0
  142.         End If
  143.     Case 39           '屏蔽"'"
  144.         KeyAscii = 0
  145.     End Select
  146. End Sub
  147. Private Sub Form_Load()
  148.     
  149.     '以下为文本框处理程序
  150.     
  151.     TextGroupCode = "Cwzz_pzcxdw"
  152.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  153.     Call Wbkcsh
  154.     
  155.     '填充会计期间列表框(年度默认为用户选择年度)
  156.     Call Sub_FillPeriod(Combo_Kjqj, Xtyear, Xtmm)
  157.     
  158.     '填充凭证类别列表
  159.     Call FillImageCombo(Imgebo_VouchClass, "Cwzz_AccVouchClass", 0)
  160.     
  161. End Sub
  162. Private Sub BcCommand_Click()                                                                       '确 定
  163.     Dim Jsqte As Integer         '临时使用计数器
  164.     Dim Int_Year As Integer      '用户选择会计年度
  165.     Dim Int_Period As Integer    '用户选择会计期间
  166.     Dim RecTemp As Recordset     '临时使用动态集
  167.     
  168.     For Jsqte = 0 To Max_Text_Index
  169.         If Textint(Jsqte, 8) = 1 Then     '字段不能为空
  170.             If Len(Trim(LrText(Jsqte).Text)) = 0 Then
  171.                 Tsxx = Textstr(Jsqte, 7) & "不能为空!"
  172.                 Call Xtxxts(Tsxx, 0, 1)
  173.                 LrText(Jsqte).SetFocus
  174.                 Bclrsj = False
  175.                 Exit Sub
  176.             End If
  177.         Else
  178.             If Textint(Jsqte, 8) = 2 Then   '字段不能为零
  179.                 If Val(Trim(LrText(Jsqte).Text)) = 0 Then
  180.                     Tsxx = Textstr(Jsqte, 7) & "不能为零!"
  181.                     Call Xtxxts(Tsxx, 0, 1)
  182.                     LrText(Jsqte).SetFocus
  183.                     Bclrsj = False
  184.                     Exit Sub
  185.                 End If
  186.             End If
  187.         End If
  188.     Next Jsqte
  189.     
  190.     '对需要进行事后判断的文本框录入内容进行有效性判断 (固定不变)
  191.     For Jsqte = 0 To Max_Text_Index
  192.         If Textint(Jsqte, 9) = 0 Or Textint(Jsqte, 9) = 2 Then
  193.             If Not TextYxxpd(Jsqte) Then
  194.                 Exit Sub
  195.             End If
  196.         End If
  197.     Next Jsqte
  198.     
  199.     '[>>计算会计期间
  200.     Int_Year = Val(Mid(Combo_Kjqj.Text, 1, 4))
  201.     Int_Period = Val(Mid(Combo_Kjqj.Text, 6, 2))
  202.     '<<]
  203.     
  204.     Sqlstr = "SELECT VouchID From Cwzz_AccVouchMain" & _
  205.     " Where Year=" & Int_Year & " and Period=" & Int_Period & " And VouchClassCode='" & Trim(GetComboKey(Imgebo_VouchClass, 0)) & "' And VouchNo=" & Val(LrText(0).Text)
  206.     
  207.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  208.     
  209.     With RecTemp
  210.         
  211.         If .EOF Then
  212.             Tsxx = "无此凭证!"
  213.             Call Xtxxts(Tsxx, 0, 4)
  214.             Exit Sub
  215.         Else
  216.             PZ_JzpzclFrm.Lab_VouchId = .Fields("VouchID")
  217.             Xtfhcs = "1"
  218.             Unload Me
  219.         End If
  220.         
  221.     End With
  222.     
  223. End Sub
  224. Private Sub QxCommand_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)       '取消
  225.     '避免执行Click程序
  226.     Bln_Cancel = True
  227.     
  228.     Call Cancel
  229.     
  230.     Unload Me
  231. End Sub
  232. Private Sub QxCommand_Click()                                                                         '取消
  233.     If Bln_Cancel Then
  234.         Bln_Cancel = False
  235.         Exit Sub
  236.     End If
  237.     
  238.     Call Cancel
  239.     
  240.     Unload Me
  241. End Sub
  242. Private Sub Cancel()                                                                                  '取消
  243.     '文本框加锁
  244.     For Jsqte = 0 To Max_Text_Index
  245.         TextValiJudgeLock(Jsqte) = True
  246.     Next Jsqte
  247.     Xtfhcs = "0"
  248. End Sub
  249.  
  250. '************以下为文本框录入处理程序(固定不变部分)*************'
  251. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  252.     
  253.     '以下为依据实际情况自定义部分[
  254.     
  255.     '在此填写文本框录入事后处理程序
  256.     
  257.     ']以上为依据实际情况自定义部分
  258. End Sub
  259. Private Sub LrText_Change(Index As Integer)
  260.     
  261.     '屏蔽程序改变控制
  262.     If TextChangeLock Then
  263.         Exit Sub
  264.     End If
  265.     
  266.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  267.     
  268.     '限制字段录入长度
  269.     
  270.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  271.     Select Case Textint(Index, 1)
  272.     Case 8           '金额型
  273.         Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  274.     Case 9           '数量型
  275.         Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  276.     Case 10          '单价型
  277.         Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  278.     Case Else        '其他小数类型控制
  279.         If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  280.             Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  281.         End If
  282.     End Select
  283.     TextChangeLock = False '解锁
  284. End Sub
  285. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  286.     Call TextShow(Index)
  287.     CurTextIndex = Index
  288.     LrText(Index).SelStart = Len(LrText(Index))
  289. End Sub
  290. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  291.     Select Case KeyCode
  292.     Case vbKeyF2
  293.         Call Text_Help(Index)
  294.     End Select
  295. End Sub
  296. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  297.     Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  298. End Sub
  299. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点进行有效性判断及相应处理
  300.     If Textint(Index, 9) = 0 Or Textint(Index, 9) = 1 Then '事中判断
  301.         Call TextYxxpd(Index)
  302.     End If
  303. End Sub
  304. Private Sub Ydcommand1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)     '按钮提供帮助
  305.     Call Text_Help(Index)
  306. End Sub
  307. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  308.     If Not Textboolean(Index, 1) Then
  309.         Exit Sub
  310.     End If
  311.     TextValiJudgeLock(Index) = True
  312.     
  313.     '先进行有效性判断
  314.     If Not TextYxxpd(CurTextIndex) Then
  315.         Exit Sub
  316.     End If
  317.     
  318.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  319.     If Len(Xtfhcs) <> 0 Then
  320.         If Textint(Index, 3) = 1 Then
  321.             LrText(Index).Text = Xtfhcsfz
  322.             LrText(Index).Tag = Xtfhcs
  323.         Else
  324.             LrText(Index).Text = Xtfhcs
  325.             LrText(Index).Tag = Xtfhcsfz
  326.         End If
  327.         
  328.     End If
  329.     TextValiJudgeLock(Index) = False
  330.     LrText(Index).SetFocus
  331. End Sub
  332. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  333.     
  334.     '填写文本框得到焦点,进行相应信息处理程序
  335.     
  336. End Sub
  337. Private Sub Wbkcsh()                          '录入文本框初始化
  338.     Dim Jsqte As Integer
  339.     
  340.     '最大录入文本框索引值
  341.     Max_Text_Index = Textvar(1)
  342.     
  343.     ReDim TextValiJudgeLock(Max_Text_Index)
  344.     For Jsqte = 0 To Max_Text_Index
  345.         
  346.         If Len(Trim(Textstr(Jsqte, 1))) <> 0 Then
  347.             If Textboolean(Jsqte, 1) Then
  348.                 If Jsqte <> 0 And Not Textboolean(Jsqte, 3) Then
  349.                     Load Ydcommand1(Jsqte)
  350.                 End If
  351.                 Ydcommand1(Jsqte).Visible = True
  352.                 Ydcommand1(Jsqte).Move LrText(Jsqte).Left + LrText(Jsqte).Width, LrText(Jsqte).Top
  353.             End If
  354.             TextChangeLock = True
  355.             LrText(Jsqte).Text = ""
  356.             LrText(Jsqte).Tag = ""
  357.             If Textint(Jsqte, 5) <> 0 Then
  358.                 LrText(Jsqte).MaxLength = Textint(Jsqte, 5)
  359.             End If
  360.             TextChangeLock = False
  361.         End If
  362.         TextValiJudgeLock(Jsqte) = True
  363.     Next Jsqte
  364. End Sub
  365. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  366.     Dim Sqlstr As String
  367.     Dim Findrec As ADODB.Recordset
  368.     If TextValiJudgeLock(Index) Then    '文本框内容未曾改变不进行有效性判断
  369.         TextYxxpd = True
  370.         Exit Function
  371.     End If
  372.     If Trim(LrText(Index)) = "" Then
  373.         LrText(Index).Tag = ""
  374.         Call Wbklrwbcl(Index)
  375.         TextValiJudgeLock(Index) = True
  376.         TextYxxpd = True
  377.         Exit Function
  378.     End If
  379.     Select Case Textint(Index, 4)
  380.     Case 1      '编码型
  381.         Sqlstr = Trim(Textstr(Index, 5))
  382.         Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  383.         Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  384.         If Findrec.EOF Then
  385.             Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  386.             LrText(Index).SetFocus
  387.             Exit Function
  388.         Else
  389.             Select Case Textint(Index, 3)
  390.             Case 0
  391.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  392.                     LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  393.                 End If
  394.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  395.                     LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  396.                 End If
  397.             Case 1
  398.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  399.                     LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  400.                 End If
  401.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  402.                     LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  403.                 End If
  404.             End Select
  405.         End If
  406.     Case 2      '日期型
  407.         If IsDate(LrText(Index).Text) Then
  408.             LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  409.         Else
  410.             Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  411.             Call Xtxxts(Tsxx, 0, 1)
  412.             LrText(Index).SetFocus
  413.             Exit Function
  414.         End If
  415.     Case 3      '其他类型
  416.     End Select
  417.     TextValiJudgeLock(Index) = True
  418.     TextYxxpd = True
  419. End Function