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

企业管理

开发平台:

Visual Basic

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