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

企业管理

开发平台:

Visual Basic

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