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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form KF_FrmMateAccCxtj 
  3.    BorderStyle     =   3  'Fixed Dialog
  4.    Caption         =   "帐簿分析_材料台帐查询条件"
  5.    ClientHeight    =   2925
  6.    ClientLeft      =   45
  7.    ClientTop       =   330
  8.    ClientWidth     =   3990
  9.    Icon            =   "帐簿分析_材料台帐查询条件.frx":0000
  10.    KeyPreview      =   -1  'True
  11.    LinkTopic       =   "Form1"
  12.    LockControls    =   -1  'True
  13.    MaxButton       =   0   'False
  14.    MinButton       =   0   'False
  15.    ScaleHeight     =   2925
  16.    ScaleWidth      =   3990
  17.    ShowInTaskbar   =   0   'False
  18.    StartUpPosition =   1  '所有者中心
  19.    Begin VB.Frame Frame1 
  20.       Height          =   2445
  21.       Left            =   60
  22.       TabIndex        =   4
  23.       Top             =   0
  24.       Width           =   3855
  25.       Begin VB.TextBox LrText 
  26.          Height          =   300
  27.          Index           =   1
  28.          Left            =   960
  29.          TabIndex        =   20
  30.          Text            =   "1"
  31.          Top             =   960
  32.          Width           =   2475
  33.       End
  34.       Begin VB.CommandButton Ydcommand1 
  35.          Height          =   300
  36.          Index           =   1
  37.          Left            =   3420
  38.          Picture         =   "帐簿分析_材料台帐查询条件.frx":1042
  39.          Style           =   1  'Graphical
  40.          TabIndex        =   19
  41.          Top             =   960
  42.          Visible         =   0   'False
  43.          Width           =   300
  44.       End
  45.       Begin VB.CommandButton Ydcommand1 
  46.          Height          =   300
  47.          Index           =   3
  48.          Left            =   3420
  49.          Picture         =   "帐簿分析_材料台帐查询条件.frx":13CC
  50.          Style           =   1  'Graphical
  51.          TabIndex        =   18
  52.          Top             =   1680
  53.          Visible         =   0   'False
  54.          Width           =   300
  55.       End
  56.       Begin VB.CommandButton Ydcommand1 
  57.          Height          =   300
  58.          Index           =   2
  59.          Left            =   3420
  60.          Picture         =   "帐簿分析_材料台帐查询条件.frx":1756
  61.          Style           =   1  'Graphical
  62.          TabIndex        =   17
  63.          Top             =   1320
  64.          Visible         =   0   'False
  65.          Width           =   300
  66.       End
  67.       Begin VB.CommandButton Ydcommand1 
  68.          Height          =   300
  69.          Index           =   0
  70.          Left            =   3435
  71.          Picture         =   "帐簿分析_材料台帐查询条件.frx":1AE0
  72.          Style           =   1  'Graphical
  73.          TabIndex        =   16
  74.          Top             =   600
  75.          Visible         =   0   'False
  76.          Width           =   300
  77.       End
  78.       Begin VB.TextBox LrText 
  79.          BackColor       =   &H00FFFFFF&
  80.          Height          =   300
  81.          Index           =   3
  82.          Left            =   960
  83.          TabIndex        =   15
  84.          Text            =   "3"
  85.          Top             =   1680
  86.          Width           =   2475
  87.       End
  88.       Begin VB.TextBox LrText 
  89.          Height          =   300
  90.          Index           =   2
  91.          Left            =   960
  92.          TabIndex        =   14
  93.          Text            =   "2"
  94.          Top             =   1320
  95.          Width           =   2475
  96.       End
  97.       Begin VB.TextBox LrText 
  98.          Height          =   300
  99.          Index           =   0
  100.          Left            =   960
  101.          TabIndex        =   13
  102.          Text            =   "0"
  103.          Top             =   600
  104.          Width           =   2475
  105.       End
  106.       Begin VB.ComboBox Combo_Kjqj1 
  107.          ForeColor       =   &H80000007&
  108.          Height          =   300
  109.          Left            =   960
  110.          Style           =   2  'Dropdown List
  111.          TabIndex        =   12
  112.          Top             =   240
  113.          Width           =   1215
  114.       End
  115.       Begin VB.ComboBox Combo_Kjqj2 
  116.          ForeColor       =   &H80000007&
  117.          Height          =   300
  118.          Left            =   2520
  119.          Style           =   2  'Dropdown List
  120.          TabIndex        =   11
  121.          Top             =   240
  122.          Width           =   1215
  123.       End
  124.       Begin VB.Label Label1 
  125.          AutoSize        =   -1  'True
  126.          Caption         =   "货区:"
  127.          Height          =   180
  128.          Index           =   4
  129.          Left            =   150
  130.          TabIndex        =   21
  131.          Top             =   990
  132.          Width           =   450
  133.       End
  134.       Begin VB.Label Label1 
  135.          AutoSize        =   -1  'True
  136.          Caption         =   "会计期间:"
  137.          Height          =   180
  138.          Index           =   3
  139.          Left            =   150
  140.          TabIndex        =   10
  141.          Top             =   270
  142.          Width           =   810
  143.       End
  144.       Begin VB.Label Label3 
  145.          AutoSize        =   -1  'True
  146.          Caption         =   "物料名称:"
  147.          Height          =   195
  148.          Left            =   150
  149.          TabIndex        =   9
  150.          Top             =   2100
  151.          Width           =   765
  152.       End
  153.       Begin VB.Label Label1 
  154.          AutoSize        =   -1  'True
  155.          Caption         =   "仓库:"
  156.          Height          =   195
  157.          Index           =   0
  158.          Left            =   150
  159.          TabIndex        =   8
  160.          Top             =   630
  161.          Width           =   405
  162.       End
  163.       Begin VB.Label Label1 
  164.          AutoSize        =   -1  'True
  165.          Caption         =   "物料分类:"
  166.          Height          =   195
  167.          Index           =   1
  168.          Left            =   150
  169.          TabIndex        =   7
  170.          Top             =   1350
  171.          Width           =   765
  172.       End
  173.       Begin VB.Label Label1 
  174.          AutoSize        =   -1  'True
  175.          Caption         =   "物料编码:"
  176.          Height          =   195
  177.          Index           =   2
  178.          Left            =   150
  179.          TabIndex        =   6
  180.          Top             =   1710
  181.          Width           =   765
  182.       End
  183.       Begin VB.Label Label2 
  184.          BackColor       =   &H00FFFFFF&
  185.          BorderStyle     =   1  'Fixed Single
  186.          Height          =   300
  187.          Left            =   960
  188.          TabIndex        =   5
  189.          Top             =   2040
  190.          Width           =   2775
  191.       End
  192.       Begin VB.Line Line1 
  193.          X1              =   2250
  194.          X2              =   2430
  195.          Y1              =   360
  196.          Y2              =   360
  197.       End
  198.    End
  199.    Begin VB.CommandButton Cmd_Clear 
  200.       Caption         =   "全清"
  201.       Height          =   300
  202.       Left            =   60
  203.       TabIndex        =   2
  204.       Top             =   2550
  205.       Width           =   1120
  206.    End
  207.    Begin VB.CommandButton QxCommand 
  208.       Caption         =   "取消(&C)"
  209.       Height          =   300
  210.       Left            =   2795
  211.       TabIndex        =   1
  212.       Top             =   2550
  213.       Width           =   1120
  214.    End
  215.    Begin VB.CommandButton QdCommand 
  216.       Caption         =   "确定(&O)"
  217.       Height          =   300
  218.       Left            =   1620
  219.       TabIndex        =   0
  220.       Top             =   2550
  221.       Width           =   1120
  222.    End
  223.    Begin VB.CheckBox UnloadCheck 
  224.       Caption         =   "卸载窗体"
  225.       Height          =   615
  226.       Left            =   5160
  227.       TabIndex        =   3
  228.       Top             =   1110
  229.       Width           =   825
  230.    End
  231. End
  232. Attribute VB_Name = "KF_FrmMateAccCxtj"
  233. Attribute VB_GlobalNameSpace = False
  234. Attribute VB_Creatable = False
  235. Attribute VB_PredeclaredId = True
  236. Attribute VB_Exposed = False
  237. '******************************************************************
  238. '*    模 块 名 称 :材料台帐查询条件
  239. '*    功 能 描 述 :
  240. '*    程序员姓名  :张万成
  241. '*    最后修改人  :张万成
  242. '*    最后修改时间:2001/09/20
  243. '*    备        注:程序中所有依实际情况自定义部分均用[>>  <<]括起
  244. '******************************************************************
  245. Dim Tsxx As String                       '系统信息提示
  246. '以下为固定使用变量(文本框)
  247. Dim Textvar() As Variant                 '存储变体型文本框信息
  248. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  249. Dim Textint() As Integer                 '存储整型文本框信息
  250. Dim Textstr() As String                  '存储字符型文本框信息
  251. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  252. Dim TextGroupCode As String              '文本框录入分组编码
  253. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  254. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  255. Dim CurTextIndex As Integer              '当前文本框索引值
  256. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  257. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  258. Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移(Fixed)
  259.     Dim jdzygs As Integer                         '控件焦点转移个数
  260.     jdzygs = 30
  261.     Select Case KeyAscii
  262.         Case vbKeyReturn
  263.             If Kjjdzy(jdzygs) Then
  264.                 KeyAscii = 0
  265.             End If
  266.         Case 39           '屏蔽"'"
  267.             KeyAscii = 0
  268.     End Select
  269. End Sub
  270. Private Sub Form_Load()
  271.    
  272.     '以下为文本框处理程序(Fixed)
  273.     TextGroupCode = "KF_StockAccCxtj"
  274.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  275.     Call Wbkcsh
  276.    
  277.    Call Sub_FillPeriod(Combo_Kjqj2, Xtyear, Xtmm)
  278.    
  279.    Dim Rec_Kjqj As New Recordset
  280.    Set Rec_Kjqj = Cw_DataEnvi.DataConnect.Execute("select kjyear,period from Gy_kjrlb where kfjzbz=1 and kjyear=" & Xtyear)
  281.     With Rec_Kjqj
  282.          If Not .EOF Then
  283.           .MoveFirst
  284.             For i = 1 To .RecordCount
  285.              Combo_Kjqj1.AddItem Trim(.Fields("kjyear")) & "." & Mid(Trim(str(100 + .Fields("period"))), 2, 2)
  286.              .MoveNext
  287.             Next i
  288.             .MoveLast
  289.             If .Fields("period") <> 12 Then
  290.              Combo_Kjqj1.AddItem Trim(.Fields("kjyear")) & "." & Mid(Trim(str(100 + Val(.Fields("period") + 1))), 2, 2)
  291.             End If
  292.             .MoveFirst
  293.             Combo_Kjqj1.Text = Trim(.Fields("kjyear")) & "." & Mid(Trim(str(100 + .Fields("period"))), 2, 2)
  294.          Else
  295.             Combo_Kjqj1.AddItem Trim(Xtyear) & "." & "01"
  296.             Combo_Kjqj1.Text = Trim(Xtyear) & "." & "01"
  297.          End If
  298.          .Close
  299.     End With
  300.    Set Rec_Kjqj = Nothing
  301.    
  302. End Sub
  303. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)          '查询条件窗体卸载
  304.     '查询条件窗体卸载时判断是否因为结果窗体卸载,如是则卸载,否则隐藏
  305.     If UnloadCheck.Value <> 1 Then
  306.         Cancel = 1
  307.         Me.Hide
  308.     End If
  309.     
  310. End Sub
  311. Private Sub QdCommand_Click()                                   '确 定
  312.     '录入条件有效性判断(Fixed)
  313.     If Not Lrtjyxxpd Then
  314.         Exit Sub
  315.     End If
  316.     Me.Hide
  317.         
  318.     '[>>激活查询过程结果窗体
  319.     
  320.     KF_FrmMateAcc.Timer1.Enabled = True
  321.     KF_FrmMateAcc.SetFocus
  322.     
  323.     '<<]
  324. End Sub
  325. Private Sub QxCommand_Click()                                    '取消(Fixed)
  326.     Me.Hide
  327. End Sub
  328. Private Function Lrtjyxxpd() As Boolean                          '用户录入条件有效性判断
  329.     Dim jsqte As Integer
  330.     Lrtjyxxpd = False
  331.  
  332.     '对需要进行事后判断的文本框录入内容进行有效性判断 (Fixed)
  333.     For jsqte = 0 To Max_Text_Index
  334.         If Textint(jsqte, 9) = 0 Or Textint(jsqte, 9) = 2 Then
  335.             If Not TextYxxpd(jsqte) Then
  336.                 Exit Function
  337.             End If
  338.         End If
  339.     Next jsqte
  340.    
  341.     '[>>以下为依据实际情况自定义部分
  342.  
  343.     
  344.     '<<]以上为依据实际情况自定义部分
  345.  
  346.     Lrtjyxxpd = True
  347. End Function
  348. Private Sub Cmd_Clear_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)    '将用户输入条件全部清除(可选)
  349.     '清除文本框(Fixed)
  350.     For jsqte = 0 To Max_Text_Index
  351.         LrText(jsqte).Tag = ""
  352.         LrText(jsqte).Text = ""
  353.     Next jsqte
  354.   
  355.     '[>>
  356.     '此处可以写入其他清除条件程序
  357.     Label2 = ""
  358.     '<<]
  359.   
  360. End Sub
  361. '*************以下为文本框录入处理程序(固定不变部分)*************'
  362. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  363.   
  364.     '以下为依据实际情况自定义部分[
  365.     '在此填写文本框录入事后处理程序
  366.     ']以上为依据实际情况自定义部分
  367.   
  368. End Sub
  369. Private Sub LrText_Change(Index As Integer)
  370.    
  371.     '屏蔽程序改变控制
  372.     If TextChangeLock Then
  373.         Exit Sub
  374.     End If
  375.     
  376.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  377.     
  378.     '限制字段录入长度
  379.           
  380.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  381.         
  382.     Select Case Textint(Index, 1)
  383.         Case 8, 11      '金额型
  384.             Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  385.         Case 9, 12      '数量型
  386.             Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  387.         Case 10          '单价型
  388.             Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  389.         Case Else        '其他小数类型控制
  390.             If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  391.                 Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  392.             End If
  393.     End Select
  394.         
  395.     TextChangeLock = False '解锁
  396.     
  397.  Dim adoTemp As New ADODB.Recordset
  398.  If Index = 0 Then
  399.     Set adoTemp = Cw_DataEnvi.DataConnect.Execute("select whcode,whname from gy_warehouse where whcode='" & Trim(LrText(Index).Text) & "' or whname='" & Trim(LrText(Index).Text) & "'")
  400.         If Not adoTemp.EOF Then
  401.             LrText(Index).Tag = Trim(adoTemp.Fields("whcode"))
  402.         End If
  403.       LrText(1) = ""
  404.  End If
  405. End Sub
  406. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  407.     Call TextShow(Index)
  408.     CurTextIndex = Index
  409.     LrText(Index).SelStart = Len(LrText(Index))
  410. End Sub
  411. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  412.     
  413.     Select Case KeyCode
  414.         Case vbKeyF2
  415.             Call Text_Help(Index)
  416.     End Select
  417. End Sub
  418. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  419.     Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  420. End Sub
  421. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点
  422.     '显示相应信息但不能进行有效性判断
  423.   
  424. End Sub
  425. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  426.     If Not Textboolean(Index, 1) Then
  427.         Exit Sub
  428.     End If
  429.      
  430.     '调用帮助
  431.     If Textint(Index, 2) <> 1 Then
  432.         If Index = 0 Then
  433.             strHlpR = FunHlpR(Trim(Textstr(Index, 4)), "czybm", Xtczybm)
  434.         Else
  435.             strHlpR = FunHlpR(Trim(Textstr(Index, 4)), "whcode", Trim(LrText(0).Tag))
  436.         End If
  437.     End If
  438.         
  439.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  440.   
  441.     '根据设置选择显示编码和名称,并进行存储
  442.     If Len(Xtfhcs) <> 0 Then
  443.         If Textint(Index, 3) = 1 Then
  444.             LrText(Index).Text = Xtfhcsfz
  445.             LrText(Index).Tag = Xtfhcs
  446.         Else
  447.             LrText(Index).Text = Xtfhcs
  448.             LrText(Index).Tag = Xtfhcsfz
  449.         End If
  450.     End If
  451.     
  452.     If Index = 3 Then
  453.         Label2 = LrText(Index).Tag
  454.     End If
  455.    
  456.     LrText(Index).SetFocus
  457.   
  458. End Sub
  459. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  460.     '填写文本框得到焦点,进行相应信息处理程序
  461.    
  462. End Sub
  463. Private Sub Wbkcsh()                          '录入文本框初始化
  464.     
  465.     Dim jsqte As Integer
  466.   
  467.     '最大录入文本框索引值
  468.     Max_Text_Index = Textvar(1)
  469.   
  470.     ReDim TextValiJudgeLock(Max_Text_Index)
  471.     For jsqte = 0 To Max_Text_Index
  472.         If Len(Trim(Textstr(jsqte, 1))) <> 0 Then
  473.             If Textboolean(jsqte, 1) Then
  474.                 If jsqte <> 0 And Not Textboolean(jsqte, 3) Then
  475.                     Load Ydcommand1(jsqte)
  476.                 End If
  477.                 Ydcommand1(jsqte).Visible = True
  478.                 Ydcommand1(jsqte).Move LrText(jsqte).Left + LrText(jsqte).Width, LrText(jsqte).Top
  479.             End If
  480.             TextChangeLock = True
  481.             LrText(jsqte).Text = ""
  482.             LrText(jsqte).Tag = ""
  483.             If Textint(jsqte, 5) <> 0 Then
  484.                 LrText(jsqte).MaxLength = Textint(jsqte, 5)
  485.             End If
  486.             TextChangeLock = False
  487.         End If
  488.         TextValiJudgeLock(jsqte) = True
  489.     Next jsqte
  490. End Sub
  491. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  492.     
  493.     Dim Sqlstr As String
  494.     Dim Findrec As ADODB.Recordset
  495.   
  496.     '文本框内容未曾改变不进行有效性判断
  497.     If TextValiJudgeLock(Index) Then
  498.         TextYxxpd = True
  499.         Exit Function
  500.     End If
  501.   
  502.     '文本框内容为空认为有效,并清空其Tag值
  503.     If Trim(LrText(Index)) = "" Then
  504.         LrText(Index).Tag = ""
  505.         Call Wbklrwbcl(Index)
  506.         TextValiJudgeLock(Index) = True
  507.         TextYxxpd = True
  508.         Exit Function
  509.     End If
  510.   
  511.     '可在此加入不做有效性判断的理由
  512.   
  513.     Select Case Textint(Index, 4)
  514.         Case 1      '编码型
  515.             Sqlstr = Trim(Textstr(Index, 5))
  516.             If Index = 1 Then
  517.                 Sqlstr = Sqlstr + " and whcode='" & Trim(LrText(0).Tag) & "'"
  518.             ElseIf Index = 0 Then
  519.                 Sqlstr = Sqlstr + " and Czybm='" & Trim(Xtczybm) & "'"
  520.             End If
  521.             
  522.             Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  523.             Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  524.             If Findrec.EOF Then
  525.                 Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  526.                 LrText(Index).SetFocus
  527.                 Exit Function
  528.             Else
  529.                 Select Case Textint(Index, 3)
  530.                     Case 0
  531.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  532.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  533.                         End If
  534.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  535.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  536.                         End If
  537.                     Case 1
  538.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  539.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  540.                         End If
  541.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  542.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  543.                         End If
  544.                 End Select
  545.             End If
  546.             
  547.             If Index = 3 Then
  548.                 Label2 = LrText(Index).Tag
  549.             End If
  550.         Case 2      '日期型
  551.             If IsDate(LrText(Index).Text) Then
  552.                 LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  553.                 If Val(Mid(LrText(Index), 1, 4)) < 1900 Then
  554.                     LrText(Index).Text = "1900" + Mid(LrText(Index), 5, 6)
  555.                 End If
  556.             Else
  557.                 Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  558.                 Call Xtxxts(Tsxx, 0, 1)
  559.                 LrText(Index).SetFocus
  560.                 Exit Function
  561.             End If
  562.         Case 3      '其他类型
  563.     End Select
  564.     
  565.     '如果有效则加锁,用户不改变内容则不再进行有效性判断
  566.     TextValiJudgeLock(Index) = True
  567.     '调用文本框事后处理程序
  568.     Call Wbklrwbcl(Index)
  569.    
  570.     '有效性判断通过则返回True
  571.     TextYxxpd = True
  572.    
  573. End Function
  574. Private Sub Ydcommand1_Click(Index As Integer)
  575.      Call Text_Help(Index)
  576. End Sub