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

企业管理

开发平台:

Visual Basic

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