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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{D76D7128-4A96-11D3-BD95-D296DC2DD072}#1.0#0"; "VSOCX7.OCX"
  3. Begin VB.Form ZB_Frmzflztj 
  4.    BorderStyle     =   1  'Fixed Single
  5.    Caption         =   "总分类帐查询"
  6.    ClientHeight    =   2205
  7.    ClientLeft      =   45
  8.    ClientTop       =   330
  9.    ClientWidth     =   4665
  10.    Icon            =   "帐簿_总分类帐查询条件.frx":0000
  11.    KeyPreview      =   -1  'True
  12.    LinkTopic       =   "Form2"
  13.    MaxButton       =   0   'False
  14.    MinButton       =   0   'False
  15.    ScaleHeight     =   2205
  16.    ScaleWidth      =   4665
  17.    StartUpPosition =   2  '屏幕中心
  18.    Begin VB.Frame Fra_MyReport 
  19.       Height          =   2145
  20.       Left            =   4710
  21.       TabIndex        =   14
  22.       Top             =   0
  23.       Width           =   3195
  24.       Begin VB.CommandButton Cmd_Save 
  25.          Caption         =   "保存(&S)"
  26.          Height          =   300
  27.          Left            =   750
  28.          TabIndex        =   16
  29.          Top             =   1770
  30.          Width           =   1120
  31.       End
  32.       Begin VB.CommandButton Cmd_Delete 
  33.          Caption         =   "删除(&D)"
  34.          Height          =   300
  35.          Left            =   1980
  36.          TabIndex        =   15
  37.          Top             =   1770
  38.          Width           =   1120
  39.       End
  40.       Begin VSFlex8Ctl.VSFlexGrid vsFlx_MyReport 
  41.          Height          =   1515
  42.          Left            =   60
  43.          TabIndex        =   17
  44.          Top             =   180
  45.          Width           =   3075
  46.          _ExtentX        =   5424
  47.          _ExtentY        =   2672
  48.          Appearance      =   1
  49.          BorderStyle     =   1
  50.          Enabled         =   -1  'True
  51.          BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  52.             Name            =   "宋体"
  53.             Size            =   9
  54.             Charset         =   134
  55.             Weight          =   400
  56.             Underline       =   0   'False
  57.             Italic          =   0   'False
  58.             Strikethrough   =   0   'False
  59.          EndProperty
  60.          MousePointer    =   0
  61.          BackColor       =   -2147483643
  62.          ForeColor       =   -2147483640
  63.          BackColorFixed  =   -2147483633
  64.          ForeColorFixed  =   -2147483630
  65.          BackColorSel    =   -2147483635
  66.          ForeColorSel    =   -2147483634
  67.          BackColorBkg    =   -2147483636
  68.          BackColorAlternate=   -2147483643
  69.          GridColor       =   -2147483633
  70.          GridColorFixed  =   -2147483632
  71.          TreeColor       =   -2147483632
  72.          FloodColor      =   192
  73.          SheetBorder     =   -2147483642
  74.          FocusRect       =   1
  75.          HighLight       =   1
  76.          AllowSelection  =   -1  'True
  77.          AllowBigSelection=   -1  'True
  78.          AllowUserResizing=   0
  79.          SelectionMode   =   0
  80.          GridLines       =   1
  81.          GridLinesFixed  =   2
  82.          GridLineWidth   =   1
  83.          Rows            =   50
  84.          Cols            =   10
  85.          FixedRows       =   1
  86.          FixedCols       =   1
  87.          RowHeightMin    =   0
  88.          RowHeightMax    =   0
  89.          ColWidthMin     =   0
  90.          ColWidthMax     =   0
  91.          ExtendLastCol   =   0   'False
  92.          FormatString    =   ""
  93.          ScrollTrack     =   0   'False
  94.          ScrollBars      =   3
  95.          ScrollTips      =   0   'False
  96.          MergeCells      =   0
  97.          MergeCompare    =   0
  98.          AutoResize      =   -1  'True
  99.          AutoSizeMode    =   0
  100.          AutoSearch      =   0
  101.          MultiTotals     =   -1  'True
  102.          SubtotalPosition=   1
  103.          OutlineBar      =   0
  104.          OutlineCol      =   0
  105.          Ellipsis        =   0
  106.          ExplorerBar     =   0
  107.          PicturesOver    =   0   'False
  108.          FillStyle       =   0
  109.          RightToLeft     =   0   'False
  110.          PictureType     =   0
  111.          TabBehavior     =   0
  112.          OwnerDraw       =   0
  113.          Editable        =   0   'False
  114.          ShowComboButton =   -1  'True
  115.          WordWrap        =   0   'False
  116.          TextStyle       =   0
  117.          TextStyleFixed  =   0
  118.          OleDragMode     =   0
  119.          OleDropMode     =   0
  120.          DataMode        =   0
  121.          VirtualData     =   -1  'True
  122.       End
  123.    End
  124.    Begin VB.CommandButton QdCommand 
  125.       Caption         =   "确定(&O)"
  126.       Height          =   300
  127.       Left            =   1080
  128.       TabIndex        =   6
  129.       Top             =   1800
  130.       Width           =   1120
  131.    End
  132.    Begin VB.CommandButton QxCommand 
  133.       Caption         =   "取消(&C)"
  134.       Height          =   300
  135.       Left            =   2280
  136.       TabIndex        =   7
  137.       Top             =   1800
  138.       Width           =   1120
  139.    End
  140.    Begin VB.CommandButton Cmd_MyReport 
  141.       Caption         =   "我的报表>>"
  142.       Height          =   300
  143.       Left            =   3480
  144.       TabIndex        =   8
  145.       Top             =   1800
  146.       Width           =   1120
  147.    End
  148.    Begin VB.CheckBox UnloadCheck 
  149.       Caption         =   "卸载窗体"
  150.       Height          =   615
  151.       Left            =   8250
  152.       TabIndex        =   11
  153.       Top             =   720
  154.       Visible         =   0   'False
  155.       Width           =   825
  156.    End
  157.    Begin VB.Frame Fra_Query 
  158.       ForeColor       =   &H00FF0000&
  159.       Height          =   1665
  160.       Left            =   60
  161.       TabIndex        =   9
  162.       Top             =   30
  163.       Width           =   4545
  164.       Begin VB.TextBox LrText 
  165.          Height          =   300
  166.          Index           =   2
  167.          Left            =   1020
  168.          TabIndex        =   2
  169.          Text            =   "2"
  170.          Top             =   570
  171.          Width           =   1545
  172.       End
  173.       Begin VB.TextBox LrText 
  174.          Height          =   300
  175.          Index           =   3
  176.          Left            =   2850
  177.          TabIndex        =   3
  178.          Text            =   "3"
  179.          Top             =   570
  180.          Width           =   1545
  181.       End
  182.       Begin VB.CheckBox Chk_EndFlag 
  183.          Caption         =   "仅显示明细科目"
  184.          BeginProperty DataFormat 
  185.             Type            =   4
  186.             Format          =   "yyyy-MM-dd"
  187.             HaveTrueFalseNull=   0
  188.             FirstDayOfWeek  =   0
  189.             FirstWeekOfYear =   0
  190.             LCID            =   2052
  191.             SubFormatType   =   8
  192.          EndProperty
  193.          Height          =   225
  194.          Left            =   180
  195.          TabIndex        =   4
  196.          Top             =   990
  197.          Width           =   2445
  198.       End
  199.       Begin VB.CommandButton Ydcommand1 
  200.          Height          =   300
  201.          Index           =   1
  202.          Left            =   4080
  203.          Picture         =   "帐簿_总分类帐查询条件.frx":1042
  204.          Style           =   1  'Graphical
  205.          TabIndex        =   13
  206.          Top             =   210
  207.          Visible         =   0   'False
  208.          Width           =   300
  209.       End
  210.       Begin VB.CommandButton Ydcommand1 
  211.          Height          =   300
  212.          Index           =   0
  213.          Left            =   2250
  214.          Picture         =   "帐簿_总分类帐查询条件.frx":13CC
  215.          Style           =   1  'Graphical
  216.          TabIndex        =   12
  217.          Top             =   210
  218.          Visible         =   0   'False
  219.          Width           =   300
  220.       End
  221.       Begin VB.CheckBox Chk_NotBook 
  222.          Caption         =   "是否包含未记帐凭证"
  223.          Height          =   285
  224.          Left            =   180
  225.          TabIndex        =   5
  226.          Top             =   1260
  227.          Width           =   2145
  228.       End
  229.       Begin VB.TextBox LrText 
  230.          Height          =   300
  231.          Index           =   0
  232.          Left            =   1020
  233.          TabIndex        =   0
  234.          Text            =   "0"
  235.          Top             =   210
  236.          Width           =   1245
  237.       End
  238.       Begin VB.TextBox LrText 
  239.          Height          =   300
  240.          Index           =   1
  241.          Left            =   2850
  242.          TabIndex        =   1
  243.          Text            =   "1"
  244.          Top             =   210
  245.          Width           =   1245
  246.       End
  247.       Begin VB.Label Label1 
  248.          AutoSize        =   -1  'True
  249.          Caption         =   "科目级次:"
  250.          Height          =   180
  251.          Index           =   3
  252.          Left            =   180
  253.          TabIndex        =   18
  254.          Top             =   630
  255.          Width           =   810
  256.       End
  257.       Begin VB.Line Line1 
  258.          Index           =   2
  259.          X1              =   2580
  260.          X2              =   2820
  261.          Y1              =   720
  262.          Y2              =   720
  263.       End
  264.       Begin VB.Image Image1 
  265.          Height          =   480
  266.          Left            =   2880
  267.          Picture         =   "帐簿_总分类帐查询条件.frx":1756
  268.          Top             =   1020
  269.          Width           =   480
  270.       End
  271.       Begin VB.Line Line1 
  272.          Index           =   0
  273.          X1              =   2580
  274.          X2              =   2820
  275.          Y1              =   360
  276.          Y2              =   360
  277.       End
  278.       Begin VB.Label Label1 
  279.          AutoSize        =   -1  'True
  280.          Caption         =   "科目范围:"
  281.          Height          =   180
  282.          Index           =   0
  283.          Left            =   180
  284.          TabIndex        =   10
  285.          Top             =   270
  286.          Width           =   810
  287.       End
  288.    End
  289. End
  290. Attribute VB_Name = "ZB_Frmzflztj"
  291. Attribute VB_GlobalNameSpace = False
  292. Attribute VB_Creatable = False
  293. Attribute VB_PredeclaredId = True
  294. Attribute VB_Exposed = False
  295. '****************************************************************
  296. '*    模 块 名 称 :总分类帐查询条件
  297. '*    功 能 描 述 :
  298. '*    程序员姓名  :张建忠
  299. '*    最后修改人  : 奚俊峰
  300. '*    最后修改时间:2001/12/30
  301. '*    备        注:程序中所有依实际情况自定义部分均用[>>  <<]括起
  302. '****************************************************************
  303. Dim Dbl_DefaultWidth As Double           '条件窗体默认宽度
  304. '以下为固定使用变量(网格)
  305. Dim Cxnrrec As New ADODB.Recordset       '显示查询内容动态集
  306. Dim Dyymctbl As New DY_Dyymsz            '打印页面窗体变量
  307. Dim GridCode As String                   '显示网格网格代码
  308. Dim GridInf() As Variant                 '整个网格设置信息
  309. Dim Tsxx As String                       '系统提示信息
  310. Dim Qslz As Long                         '网格隐藏(非操作显示)列数
  311. Dim Sjhgd As Double                      '网格数据行高度
  312. Dim GridBoolean() As Boolean             '网格列信息(布尔型)
  313. Dim GridStr()  As String                 '网格列信息(字符型)
  314. Dim GridInt() As Integer                 '网格列信息(整型)
  315. Dim Szzls As Integer                     '数组总列数(网格列数-1)
  316. Dim Lng_Dqwgh As Long                    '系统当前刚刚离开网格行
  317. '以下为固定使用变量(文本框)
  318. Dim Textvar() As Variant                 '存储变体型文本框信息
  319. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  320. Dim Textint() As Integer                 '存储整型文本框信息
  321. Dim Textstr() As String                  '存储字符型文本框信息
  322. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  323. Dim TextGroupCode As String              '文本框录入分组编码
  324. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  325. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  326. Dim CurTextIndex As Integer              '当前文本框索引值
  327. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  328. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  329. Private Sub Cmd_MyReport_Click()         '用户点击我的报表按钮
  330.     If Fra_MyReport.Visible Then
  331.         Fra_MyReport.Visible = False
  332.         Me.Width = Dbl_DefaultWidth
  333.     Else
  334.         Fra_MyReport.Visible = True
  335.         Me.Width = Fra_MyReport.Left + Fra_MyReport.Width + 100
  336.     End If
  337.     
  338.     '条件窗体居于屏幕中心
  339.     Me.Move (Screen.Width - Me.Width) / 2
  340.     
  341. End Sub
  342. Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移
  343.     Dim jdzygs As Integer                         '控件焦点转移个数
  344.     jdzygs = 30
  345.     Select Case KeyAscii
  346.     Case vbKeyReturn
  347.         If Kjjdzy(jdzygs) Then
  348.             KeyAscii = 0
  349.         End If
  350.     Case 39           '屏蔽"'"
  351.         KeyAscii = 0
  352.     End Select
  353. End Sub
  354. Private Sub Form_Load()
  355.     
  356.     '以下为文本框处理程序
  357.     
  358.     TextGroupCode = "Cwzz_zflz"
  359.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  360.     Call Wbkcsh
  361.     
  362.     '保存条件窗体默认宽度,隐藏我的报表栏
  363.     Dbl_DefaultWidth = Me.Width
  364.     Fra_MyReport.Visible = False
  365.     
  366.     '调 入 网 格
  367.     GridCode = "Cwzz_myreport"
  368.     Call BzWgcsh(vsFlx_MyReport, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  369.     
  370.     Qslz = GridInf(1)
  371.     Sjhgd = GridInf(2)
  372.     Szzls = vsFlx_MyReport.Cols - 1
  373.     
  374.     '填 充 网 格
  375.     Call Cxnrtcwg
  376.     
  377.     '[>>科目级次范围默认为1-1
  378.     LrText(2).Text = 1
  379.     LrText(3).Text = 1
  380.     '[<<完毕
  381.     
  382. End Sub
  383. Private Sub Cxnrtcwg()                               '查 询 内 容 填 充 网 格
  384.     Dim Sqlstr As String
  385.     Dim Jsqte As Long
  386.     
  387.     vsFlx_MyReport.Redraw = False
  388.     
  389.     '查询连接串
  390.     Sqlstr = "SELECT Distinct QueryName FROM Cwzz_MyReport Where Czybm='" & Xtczybm & "' And QueryCode='" & TextGroupCode & "'"
  391.     Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  392.     With Cxnrrec
  393.         vsFlx_MyReport.Clear 1
  394.         vsFlx_MyReport.Rows = .RecordCount + vsFlx_MyReport.FixedRows
  395.         If .EOF And .BOF Then
  396.             vsFlx_MyReport.Redraw = True
  397.             Exit Sub
  398.         End If
  399.         Jsqte = vsFlx_MyReport.FixedRows
  400.         Do While Not .EOF
  401.             If Jsqte >= vsFlx_MyReport.Rows Then
  402.                 vsFlx_MyReport.AddItem ""
  403.             End If
  404.             
  405.             vsFlx_MyReport.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("QueryName"))
  406.             
  407.             vsFlx_MyReport.RowHeight(Jsqte) = Sjhgd
  408.             .MoveNext
  409.             Jsqte = Jsqte + 1
  410.         Loop
  411.     End With
  412.     
  413.     vsFlx_MyReport.Redraw = True
  414. End Sub
  415. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  416.     If UnloadCheck.Value <> 1 Then
  417.         Cancel = 1
  418.         Me.Hide
  419.     End If
  420. End Sub
  421. Private Sub QdCommand_Click()                                   '确 定
  422.     '录入条件有效性判断
  423.     If Not Lrtjyxxpd Then
  424.         Exit Sub
  425.     End If
  426.     Me.Hide
  427.     
  428.     '激活查询过程
  429.     ZB_Frmzflzjg.Timer1.Enabled = True
  430.     
  431. End Sub
  432. Private Sub QxCommand_Click()                                    '取消
  433.     Me.Hide
  434. End Sub
  435. Private Function Lrtjyxxpd() As Boolean                          '用户录入条件有效性判断
  436.     Dim Jsqte As Integer
  437.     Lrtjyxxpd = False
  438.     
  439.     '对需要进行事后判断的文本框录入内容进行有效性判断 (固定不变)
  440.     For Jsqte = 0 To Max_Text_Index
  441.         If Textint(Jsqte, 9) = 0 Or Textint(Jsqte, 9) = 2 Then
  442.             If Not TextYxxpd(Jsqte) Then
  443.                 Exit Function
  444.             End If
  445.         End If
  446.     Next Jsqte
  447.     
  448.     '[>>以下为依据实际情况自定义部分
  449.     
  450.     '查询科目号范围应由小到大
  451.     If Trim(LrText(0).Text) > Trim(LrText(1).Text) And Trim(LrText(1).Text) <> "" Then
  452.         Tsxx = "查询科目范围应由小到大!"
  453.         Call Xtxxts(Tsxx, 0, 4)
  454.         LrText(0).SetFocus
  455.         Exit Function
  456.     End If
  457.     
  458.     '查询科目级次应为1-6,且级次范围应由小到大
  459.     If Not (Val(LrText(2).Text) >= 1 And Val(LrText(2).Text) <= 6) Then
  460.         Tsxx = "查询科目级次应在1-6之间!"
  461.         Call Xtxxts(Tsxx, 0, 4)
  462.         LrText(2).SetFocus
  463.         Exit Function
  464.     End If
  465.     
  466.     If Not (Val(LrText(3).Text) >= 1 And Val(LrText(3).Text) <= 6) Then
  467.         Tsxx = "查询科目级次应在1-6之间!"
  468.         Call Xtxxts(Tsxx, 0, 4)
  469.         LrText(3).SetFocus
  470.         Exit Function
  471.     End If
  472.     
  473.     If Val(LrText(2).Text) > Val(LrText(3).Text) Then
  474.         Tsxx = "查询科目级次范围应由小到大!"
  475.         Call Xtxxts(Tsxx, 0, 4)
  476.         LrText(2).SetFocus
  477.         Exit Function
  478.     End If
  479.     
  480.     '<<]以上为依据实际情况自定义部分
  481.     
  482.     Lrtjyxxpd = True
  483. End Function
  484. Private Sub vsFlx_MyReport_Click()                                          '显示用户点击查询报表
  485.     Dim Sqlstr As String
  486.     Dim Rec_MyReport As New ADODB.Recordset     '我的报表动态集
  487.     Dim Jsqte As Integer                        '临时动态计数器
  488.     
  489.     If vsFlx_MyReport.Row < vsFlx_MyReport.FixedRows Then
  490.         Exit Sub
  491.     End If
  492.     
  493.     '查询连接串
  494.     Sqlstr = "SELECT Value FROM Cwzz_MyReport Where Czybm='" & Xtczybm & "' And QueryCode='" & TextGroupCode & "' And QueryName='" & Trim(vsFlx_MyReport.TextMatrix(vsFlx_MyReport.Row, Sydz("001", GridStr(), Szzls))) & "' Order By I_ID"
  495.     Set Rec_MyReport = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  496.     
  497.     Jsqte = 1
  498.     
  499.     On Error Resume Next
  500.     
  501.     With Rec_MyReport
  502.         Do While Not .EOF
  503.             Select Case Jsqte
  504.             Case 1           '起始科目编码
  505.                 LrText(0).Text = Trim(.Fields("Value"))
  506.             Case 2           '终止科目编码
  507.                 LrText(1).Text = Trim(.Fields("Value"))
  508.             Case 3           '起始科目级次
  509.                 LrText(2).Text = Trim(.Fields("Value"))
  510.             Case 4           '终止科目级次
  511.                 LrText(3).Text = Trim(.Fields("Value"))
  512.             Case 5           '仅限于明细科目
  513.                 Chk_EndFlag.Value = Int(.Fields("Value"))
  514.             Case 6           '是否包含未记帐凭证
  515.                 Chk_NotBook.Value = Int(.Fields("Value"))
  516.             End Select
  517.             Jsqte = Jsqte + 1
  518.             .MoveNext
  519.         Loop
  520.     End With
  521. End Sub
  522. Private Sub Cmd_Delete_Click()                                              '删除当前报表查询条件
  523.     Dim Yhanswer As Integer
  524.     If vsFlx_MyReport.Row < vsFlx_MyReport.FixedRows Then
  525.         Exit Sub
  526.     End If
  527.     Tsxx = "请确认是否删除当前记录?"
  528.     Yhanswer = Xtxxts(Tsxx, 2, 2)
  529.     If Yhanswer = 2 Then
  530.         Exit Sub
  531.     End If
  532.     
  533.     '[以下需自定义部分
  534.     Cw_DataEnvi.DataConnect.Execute ("Delete FROM Cwzz_MyReport Where Czybm='" & Xtczybm & "' And QueryCode='" & TextGroupCode & "' And QueryName='" & Trim(vsFlx_MyReport.TextMatrix(vsFlx_MyReport.Row, Sydz("001", GridStr(), Szzls))) & "'")
  535.     '以上为自定义部分]
  536.     
  537.     vsFlx_MyReport.RemoveItem vsFlx_MyReport.Row
  538.     
  539. End Sub
  540. Private Sub Cmd_Save_Click()   '保存报表查询条件
  541.     Dim tCode As String
  542.     Dim tReturn As String
  543.     
  544.     tCode = Trim(vsFlx_MyReport.TextMatrix(vsFlx_MyReport.Row, Sydz("001", GridStr(), Szzls)))
  545.     
  546.     tReturn = InputBox("请输入我的报表名称:", "报表名称", tCode)
  547.     If Trim(tReturn) = "" Then Exit Sub
  548.     
  549.     SaveReport tReturn
  550. End Sub
  551. '************以下为文本框录入处理程序(固定不变部分)*************'
  552. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  553.     
  554.     '以下为依据实际情况自定义部分[
  555.     
  556.     '在此填写文本框录入事后处理程序
  557.     
  558.     ']以上为依据实际情况自定义部分
  559. End Sub
  560. Private Sub LrText_Change(Index As Integer)
  561.     
  562.     '屏蔽程序改变控制
  563.     If TextChangeLock Then
  564.         Exit Sub
  565.     End If
  566.     
  567.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  568.     
  569.     '限制字段录入长度
  570.     
  571.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  572.     Select Case Textint(Index, 1)
  573.     Case 8           '金额型
  574.         Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  575.     Case 9           '数量型
  576.         Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  577.     Case 10          '单价型
  578.         Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  579.     Case Else        '其他小数类型控制
  580.         If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  581.             Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  582.         End If
  583.     End Select
  584.     TextChangeLock = False '解锁
  585. End Sub
  586. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  587.     Call TextShow(Index)
  588.     CurTextIndex = Index
  589.     LrText(Index).SelStart = Len(LrText(Index))
  590. End Sub
  591. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  592.     Select Case KeyCode
  593.     Case vbKeyF2
  594.         Call Text_Help(Index)
  595.     End Select
  596. End Sub
  597. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  598.     Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  599. End Sub
  600. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点进行有效性判断及相应处理
  601.     If Textint(Index, 9) = 0 Or Textint(Index, 9) = 1 Then '事中判断
  602.         Call TextYxxpd(Index)
  603.     End If
  604. End Sub
  605. Private Sub Ydcommand1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)     '按钮提供帮助
  606.     Call Text_Help(Index)
  607. End Sub
  608. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  609.     If Not Textboolean(Index, 1) Then
  610.         Exit Sub
  611.     End If
  612.     TextValiJudgeLock(Index) = True
  613.     
  614.     '先进行有效性判断
  615.     If Not TextYxxpd(CurTextIndex) Then
  616.         Exit Sub
  617.     End If
  618.     
  619.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  620.     
  621.     If Len(Xtfhcs) <> 0 Then
  622.         If Textint(Index, 3) = 1 Then
  623.             LrText(Index).Text = Xtfhcsfz
  624.             LrText(Index).Tag = Xtfhcs
  625.         Else
  626.             LrText(Index).Text = Xtfhcs
  627.             LrText(Index).Tag = Xtfhcsfz
  628.         End If
  629.         
  630.     End If
  631.     TextValiJudgeLock(Index) = False
  632.     LrText(Index).SetFocus
  633. End Sub
  634. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  635.     
  636.     '填写文本框得到焦点,进行相应信息处理程序
  637.     
  638. End Sub
  639. Private Sub Wbkcsh()                          '录入文本框初始化
  640.     Dim Jsqte As Integer
  641.     
  642.     '最大录入文本框索引值
  643.     Max_Text_Index = Textvar(1)
  644.     
  645.     ReDim TextValiJudgeLock(Max_Text_Index)
  646.     For Jsqte = 0 To Max_Text_Index
  647.         
  648.         If Len(Trim(Textstr(Jsqte, 1))) <> 0 Then
  649.             If Textboolean(Jsqte, 1) Then
  650.                 If Jsqte <> 0 And Not Textboolean(Jsqte, 3) Then
  651.                     Load Ydcommand1(Jsqte)
  652.                 End If
  653.                 Ydcommand1(Jsqte).Visible = True
  654.                 Ydcommand1(Jsqte).Move LrText(Jsqte).Left + LrText(Jsqte).Width, LrText(Jsqte).Top
  655.             End If
  656.             TextChangeLock = True
  657.             LrText(Jsqte).Text = ""
  658.             LrText(Jsqte).Tag = ""
  659.             If Textint(Jsqte, 5) <> 0 Then
  660.                 LrText(Jsqte).MaxLength = Textint(Jsqte, 5)
  661.             End If
  662.             
  663.             TextChangeLock = False
  664.         End If
  665.         TextValiJudgeLock(Jsqte) = True
  666.     Next Jsqte
  667. End Sub
  668. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  669.     Dim Sqlstr As String
  670.     Dim Findrec As ADODB.Recordset
  671.     If TextValiJudgeLock(Index) Then    '文本框内容未曾改变不进行有效性判断
  672.         TextYxxpd = True
  673.         Exit Function
  674.     End If
  675.     If Trim(LrText(Index)) = "" Then
  676.         LrText(Index).Tag = ""
  677.         Call Wbklrwbcl(Index)
  678.         TextValiJudgeLock(Index) = True
  679.         TextYxxpd = True
  680.         Exit Function
  681.     End If
  682.     Select Case Textint(Index, 4)
  683.     Case 1      '编码型
  684.         Sqlstr = Trim(Textstr(Index, 5))
  685.         Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  686.         Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  687.         If Findrec.EOF Then
  688.             Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  689.             LrText(Index).SetFocus
  690.             Exit Function
  691.         Else
  692.             Select Case Textint(Index, 3)
  693.             Case 0
  694.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  695.                     LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  696.                 End If
  697.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  698.                     LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  699.                 End If
  700.             Case 1
  701.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  702.                     LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  703.                 End If
  704.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  705.                     LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  706.                 End If
  707.             End Select
  708.         End If
  709.     Case 2      '日期型
  710.         If IsDate(LrText(Index).Text) Then
  711.             LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  712.         Else
  713.             Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  714.             Call Xtxxts(Tsxx, 0, 1)
  715.             LrText(Index).SetFocus
  716.             Exit Function
  717.         End If
  718.     Case 3      '其他类型
  719.         
  720.     End Select
  721.     TextValiJudgeLock(Index) = True
  722.     TextYxxpd = True
  723. End Function
  724. Private Sub SaveReport(sReport As String)
  725.     Dim Rec_MyReport As New ADODB.Recordset     '我的报表动态集
  726.     Dim Yhanswer As Integer
  727.     Dim Jsqte As Integer                        '临时动态计数器
  728.     Dim Sqlstr As String
  729.     
  730.     Yhanswer = 0
  731.     
  732.     '查询连接串
  733.     Sqlstr = "SELECT Distinct QueryName FROM Cwzz_MyReport Where Czybm='" & Xtczybm & "' And QueryCode='" & TextGroupCode & "' And QueryName='" & Trim(sReport) & "'"
  734.     Set Rec_MyReport = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  735.     With Rec_MyReport
  736.         If Not .EOF Then
  737.             Tsxx = "已有此报表名称,是否覆盖?"
  738.             Yhanswer = Xtxxts(Tsxx, 2, 2)
  739.             If Yhanswer <> 1 Then
  740.                 Exit Sub
  741.             End If
  742.         End If
  743.         
  744.         On Error GoTo Swcwcl
  745.         Cw_DataEnvi.DataConnect.BeginTrans
  746.         
  747.         If Yhanswer = 1 Then
  748.             Sqlstr = "Delete FROM Cwzz_MyReport Where Czybm='" & Xtczybm & "' And QueryCode='" & TextGroupCode & "' And QueryName='" & Trim(sReport) & "'"
  749.             Cw_DataEnvi.DataConnect.Execute (Sqlstr)
  750.         End If
  751.         If .State = 1 Then .Close
  752.         .Open "Select * From Cwzz_MyReport Where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  753.         
  754.         For Jsqte = 1 To 6
  755.             .AddNew
  756.             .Fields("Czybm") = Xtczybm
  757.             .Fields("QueryCode") = TextGroupCode
  758.             .Fields("QueryName") = sReport
  759.             
  760.             Select Case Jsqte
  761.             Case 1           '起始会计期间
  762.                 .Fields("Value") = Trim(LrText(0).Text)
  763.             Case 2           '终止会计期间
  764.                 .Fields("Value") = Trim(LrText(1).Text)
  765.             Case 3           '科目类型
  766.                 .Fields("Value") = Trim(LrText(2).Text)
  767.             Case 4
  768.                 .Fields("Value") = Trim(LrText(3).Text)
  769.             Case 5
  770.                 .Fields("Value") = Trim(Chk_EndFlag.Value)
  771.             Case 6           '是否包含未记帐凭证
  772.                 .Fields("Value") = Trim(Chk_NotBook.Value)
  773.             End Select
  774.             
  775.             .Update
  776.         Next Jsqte
  777.     End With
  778.     
  779.     Cw_DataEnvi.DataConnect.CommitTrans
  780.     
  781.     '在网格中添加报表名称(非覆盖)
  782.     If Yhanswer <> 1 Then
  783.         With vsFlx_MyReport
  784.             .AddItem ""
  785.             .TextMatrix(.Rows - 1, 0) = Trim(sReport)
  786.         End With
  787.     End If
  788.     
  789.     Tsxx = "报表查询条件保存完毕!"
  790.     Call Xtxxts(Tsxx, 0, 4)
  791.     Exit Sub
  792.     
  793. Swcwcl:
  794.     Cw_DataEnvi.DataConnect.RollbackTrans
  795.     Tsxx = "存盘过程中出现未知错误,程序自动恢复保存前状态!"
  796.     Call Xtxxts(Tsxx, 0, 1)
  797.     Exit Sub
  798. End Sub