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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form Xs_B_PriceListQuery 
  3.    BorderStyle     =   3  'Fixed Dialog
  4.    Caption         =   "价格清单查询条件"
  5.    ClientHeight    =   1530
  6.    ClientLeft      =   45
  7.    ClientTop       =   330
  8.    ClientWidth     =   4230
  9.    Icon            =   "价格清单查询条件.frx":0000
  10.    KeyPreview      =   -1  'True
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    ScaleHeight     =   1530
  15.    ScaleWidth      =   4230
  16.    ShowInTaskbar   =   0   'False
  17.    StartUpPosition =   1  '所有者中心
  18.    Begin VB.CommandButton Cmd_Clear 
  19.       Caption         =   "全清"
  20.       Height          =   300
  21.       Left            =   1350
  22.       TabIndex        =   3
  23.       Top             =   1845
  24.       Visible         =   0   'False
  25.       Width           =   1120
  26.    End
  27.    Begin VB.Frame Frame1 
  28.       Height          =   975
  29.       Left            =   60
  30.       TabIndex        =   5
  31.       Top             =   45
  32.       Width           =   4125
  33.       Begin VB.CommandButton Ydcommand1 
  34.          Height          =   300
  35.          Index           =   0
  36.          Left            =   3660
  37.          Picture         =   "价格清单查询条件.frx":1042
  38.          Style           =   1  'Graphical
  39.          TabIndex        =   10
  40.          Top             =   210
  41.          Visible         =   0   'False
  42.          Width           =   300
  43.       End
  44.       Begin VB.CommandButton Ydcommand1 
  45.          Height          =   300
  46.          Index           =   1
  47.          Left            =   3660
  48.          Picture         =   "价格清单查询条件.frx":13CC
  49.          Style           =   1  'Graphical
  50.          TabIndex        =   9
  51.          Top             =   525
  52.          Visible         =   0   'False
  53.          Width           =   300
  54.       End
  55.       Begin VB.TextBox LrText 
  56.          Height          =   300
  57.          Index           =   1
  58.          Left            =   945
  59.          TabIndex        =   7
  60.          Text            =   "1"
  61.          Top             =   540
  62.          Width           =   2730
  63.       End
  64.       Begin VB.TextBox LrText 
  65.          Height          =   300
  66.          Index           =   0
  67.          Left            =   945
  68.          TabIndex        =   0
  69.          Text            =   "0"
  70.          Top             =   210
  71.          Width           =   2715
  72.       End
  73.       Begin VB.Label Label1 
  74.          Caption         =   "货物编码:"
  75.          Height          =   255
  76.          Index           =   0
  77.          Left            =   120
  78.          TabIndex        =   8
  79.          Top             =   570
  80.          Width           =   915
  81.       End
  82.       Begin VB.Label Label1 
  83.          Caption         =   "客户名称:"
  84.          Height          =   255
  85.          Index           =   2
  86.          Left            =   120
  87.          TabIndex        =   6
  88.          Top             =   240
  89.          Width           =   915
  90.       End
  91.    End
  92.    Begin VB.CommandButton QxCommand 
  93.       Caption         =   "取消(&C)"
  94.       Height          =   300
  95.       Left            =   3065
  96.       TabIndex        =   2
  97.       Top             =   1140
  98.       Width           =   1120
  99.    End
  100.    Begin VB.CommandButton QdCommand 
  101.       Caption         =   "确定(&O)"
  102.       Height          =   300
  103.       Left            =   1875
  104.       TabIndex        =   1
  105.       Top             =   1140
  106.       Width           =   1120
  107.    End
  108.    Begin VB.CheckBox UnloadCheck 
  109.       Caption         =   "卸载窗体"
  110.       Height          =   615
  111.       Left            =   6000
  112.       TabIndex        =   4
  113.       Top             =   240
  114.       Width           =   825
  115.    End
  116. End
  117. Attribute VB_Name = "Xs_B_PriceListQuery"
  118. Attribute VB_GlobalNameSpace = False
  119. Attribute VB_Creatable = False
  120. Attribute VB_PredeclaredId = True
  121. Attribute VB_Exposed = False
  122. '******************************************************************
  123. '*    模 块 名 称 :价格清单查询条件
  124. '*    功 能 描 述 :
  125. '*    程序员姓名  :李建伟
  126. '*    最后修改人  :李建伟
  127. '*    最后修改时间:2001/09/20
  128. '*    备        注:程序中所有依实际情况自定义部分均用[>>  <<]括起
  129. '******************************************************************
  130. Dim Tsxx As String                       '系统信息提示
  131. '以下为固定使用变量(文本框)
  132. Dim Textvar() As Variant                 '存储变体型文本框信息
  133. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  134. Dim Textint() As Integer                 '存储整型文本框信息
  135. Dim Textstr() As String                  '存储字符型文本框信息
  136. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  137. Dim TextGroupCode As String              '文本框录入分组编码
  138. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  139. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  140. Dim CurTextIndex As Integer              '当前文本框索引值
  141. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  142. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  143. Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移(Fixed)
  144.     Dim jdzygs As Integer                         '控件焦点转移个数
  145.     jdzygs = 30
  146.     Select Case KeyAscii
  147.         Case vbKeyReturn
  148.             If Kjjdzy(jdzygs) Then
  149.                 KeyAscii = 0
  150.             End If
  151.         Case 39           '屏蔽"'"
  152.             KeyAscii = 0
  153.     End Select
  154. End Sub
  155. Private Sub Form_Load()
  156.    
  157.     '以下为文本框处理程序(Fixed)
  158.     TextGroupCode = "Xs_B_PriceListQuery"
  159.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  160.     Call Wbkcsh
  161.    
  162.     '[>>初始化查询条件默认值
  163.     '<<]
  164.    
  165. End Sub
  166. Private Sub QdCommand_Click()                                   '确 定
  167.     '录入条件有效性判断(Fixed)
  168.     If Not Lrtjyxxpd Then
  169.         Exit Sub
  170.     End If
  171.     '[>>激活查询过程结果窗体
  172.     Me.Hide
  173.         
  174.     '[>>激活查询过程结果窗体
  175.     
  176.     XS_B_PriceList.Timer1.Enabled = True
  177.     XS_B_PriceList.SetFocus
  178.     '<<]
  179. End Sub
  180. Private Sub QxCommand_Click()                                    '取消(Fixed)
  181.     Unload Me
  182. End Sub
  183. Private Function Lrtjyxxpd() As Boolean                          '用户录入条件有效性判断
  184.     Dim jsqte As Integer
  185.     Lrtjyxxpd = False
  186.  
  187.     '对需要进行事后判断的文本框录入内容进行有效性判断 (Fixed)
  188.     For jsqte = 0 To Max_Text_Index
  189.         If Textint(jsqte, 9) = 0 Or Textint(jsqte, 9) = 2 Then
  190.             If Not TextYxxpd(jsqte) Then
  191.                 Exit Function
  192.             End If
  193.         End If
  194.     Next jsqte
  195.    
  196.     '[>>以下为依据实际情况自定义部分
  197.     '<<]以上为依据实际情况自定义部分
  198.  
  199.     Lrtjyxxpd = True
  200. End Function
  201. Private Sub Cmd_Clear_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)    '将用户输入条件全部清除(可选)
  202.     '清除文本框(Fixed)
  203.     For jsqte = 0 To Max_Text_Index
  204.         LrText(jsqte).Tag = ""
  205.         LrText(jsqte).Text = ""
  206.     Next jsqte
  207.   
  208.     '[>>
  209.     '此处可以写入其他清除条件程序
  210.     '<<]
  211.   
  212. End Sub
  213. '*************以下为文本框录入处理程序(固定不变部分)*************'
  214. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  215.   
  216.     '以下为依据实际情况自定义部分[
  217.     '在此填写文本框录入事后处理程序
  218.     ']以上为依据实际情况自定义部分
  219.   
  220. End Sub
  221. Private Sub LrText_Change(Index As Integer)
  222.    
  223.     '屏蔽程序改变控制
  224.     If TextChangeLock Then
  225.         Exit Sub
  226.     End If
  227.     
  228.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  229.     
  230.     '限制字段录入长度
  231.           
  232.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  233.     Call TextChangeLimit(LrText(Index), Textint(Index, 1))  '去掉无效字符
  234.     Select Case Textint(Index, 1)
  235.         Case 8, 11      '金额型
  236.             Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  237.         Case 9, 12      '数量型
  238.             Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  239.         Case 10          '单价型
  240.             Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  241.         Case Else        '其他小数类型控制
  242.             If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  243.                 Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  244.             End If
  245.     End Select
  246.         
  247.     TextChangeLock = False '解锁
  248. End Sub
  249. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  250.     Call TextShow(Index)
  251.     CurTextIndex = Index
  252.     LrText(Index).SelStart = Len(LrText(Index))
  253. End Sub
  254. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  255.     
  256.     Select Case KeyCode
  257.         Case vbKeyF2
  258.             Call Text_Help(Index)
  259.     End Select
  260. End Sub
  261. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  262.     Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  263. End Sub
  264. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点
  265.     '显示相应信息但不能进行有效性判断
  266.   
  267. End Sub
  268. Private Sub Ydcommand1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)     '按钮提供帮助
  269.     Call Text_Help(Index)
  270. End Sub
  271. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  272.     If Not Textboolean(Index, 1) Then
  273.         Exit Sub
  274.     End If
  275.      
  276.     '调用帮助
  277.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  278.   
  279.     '根据设置选择显示编码和名称,并进行存储
  280.     If Len(Xtfhcs) <> 0 Then
  281.         If Textint(Index, 3) = 1 Then
  282.             LrText(Index).Text = Xtfhcsfz
  283.             LrText(Index).Tag = Xtfhcs
  284.         Else
  285.             LrText(Index).Text = Xtfhcs
  286.             LrText(Index).Tag = Xtfhcsfz
  287.         End If
  288.     End If
  289.    
  290.     LrText(Index).SetFocus
  291. End Sub
  292. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  293.     '填写文本框得到焦点,进行相应信息处理程序
  294.    
  295. End Sub
  296. Private Sub Wbkcsh()                          '录入文本框初始化
  297.     
  298.     Dim jsqte As Integer
  299.   
  300.     '最大录入文本框索引值
  301.     Max_Text_Index = Textvar(1)
  302.   
  303.     ReDim TextValiJudgeLock(Max_Text_Index)
  304.     For jsqte = 0 To Max_Text_Index
  305.         If Len(Trim(Textstr(jsqte, 1))) <> 0 Then
  306.             If Textboolean(jsqte, 1) Then
  307.                 If jsqte <> 0 And Not Textboolean(jsqte, 3) Then
  308.                     Load Ydcommand1(jsqte)
  309.                 End If
  310.                 Ydcommand1(jsqte).Visible = True
  311.                 Ydcommand1(jsqte).Move LrText(jsqte).Left + LrText(jsqte).Width, LrText(jsqte).Top
  312.             End If
  313.             TextChangeLock = True
  314.             LrText(jsqte).Text = ""
  315.             LrText(jsqte).Tag = ""
  316.             If Textint(jsqte, 5) <> 0 Then
  317.                 LrText(jsqte).MaxLength = Textint(jsqte, 5)
  318.             End If
  319.             TextChangeLock = False
  320.         End If
  321.         TextValiJudgeLock(jsqte) = True
  322.     Next jsqte
  323. End Sub
  324. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  325.     
  326.     Dim Sqlstr As String
  327.     Dim Findrec As ADODB.Recordset
  328.   
  329.     '文本框内容未曾改变不进行有效性判断
  330.     If TextValiJudgeLock(Index) Then
  331.         TextYxxpd = True
  332.         Exit Function
  333.     End If
  334.   
  335.     '文本框内容为空认为有效,并清空其Tag值
  336.     If Trim(LrText(Index)) = "" Then
  337.         LrText(Index).Tag = ""
  338.         Call Wbklrwbcl(Index)
  339.         TextValiJudgeLock(Index) = True
  340.         TextYxxpd = True
  341.         Exit Function
  342.     End If
  343.   
  344.     '可在此加入不做有效性判断的理由
  345.   
  346.     Select Case Textint(Index, 4)
  347.         Case 1      '编码型
  348.             Sqlstr = Trim(Textstr(Index, 5))
  349.             Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  350.             Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  351.             If Findrec.EOF Then
  352.                 Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  353.                 LrText(Index).SetFocus
  354.                 Exit Function
  355.             Else
  356.                 Select Case Textint(Index, 3)
  357.                     Case 0
  358.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  359.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  360.                         End If
  361.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  362.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  363.                         End If
  364.                     Case 1
  365.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  366.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  367.                         End If
  368.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  369.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  370.                         End If
  371.                 End Select
  372.             End If
  373.         Case 2      '日期型
  374.             If IsDate(LrText(Index).Text) Then
  375.                 LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  376.                 If Val(Mid(LrText(Index), 1, 4)) < 1900 Then
  377.                     LrText(Index).Text = "1900" + Mid(LrText(Index), 5, 6)
  378.                 End If
  379.             Else
  380.                 Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  381.                 Call Xtxxts(Tsxx, 0, 1)
  382.                 LrText(Index).SetFocus
  383.                 Exit Function
  384.             End If
  385.         Case 3      '其他类型
  386.     End Select
  387.     
  388.     '如果有效则加锁,用户不改变内容则不再进行有效性判断
  389.     TextValiJudgeLock(Index) = True
  390.     '调用文本框事后处理程序
  391.     Call Wbklrwbcl(Index)
  392.    
  393.     '有效性判断通过则返回True
  394.     TextYxxpd = True
  395.    
  396. End Function