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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{D76D7128-4A96-11D3-BD95-D296DC2DD072}#1.0#0"; "VSOCX7.OCX"
  3. Begin VB.Form ZB_Frmkmyebtj 
  4.    BorderStyle     =   1  'Fixed Single
  5.    Caption         =   "科目发生额及余额表查询"
  6.    ClientHeight    =   3135
  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     =   3135
  16.    ScaleWidth      =   4665
  17.    StartUpPosition =   2  '屏幕中心
  18.    Begin VB.CommandButton QdCommand 
  19.       Caption         =   "确定(&O)"
  20.       Height          =   300
  21.       Left            =   1080
  22.       TabIndex        =   10
  23.       Top             =   2760
  24.       Width           =   1120
  25.    End
  26.    Begin VB.CommandButton QxCommand 
  27.       Caption         =   "取消(&C)"
  28.       Height          =   300
  29.       Left            =   2280
  30.       TabIndex        =   11
  31.       Top             =   2760
  32.       Width           =   1120
  33.    End
  34.    Begin VB.Frame Fra_MyReport 
  35.       Height          =   3045
  36.       Left            =   4680
  37.       TabIndex        =   22
  38.       Top             =   30
  39.       Width           =   3195
  40.       Begin VSFlex8Ctl.VSFlexGrid vsFlx_MyReport 
  41.          Height          =   2415
  42.          Left            =   60
  43.          TabIndex        =   13
  44.          Top             =   150
  45.          Width           =   3075
  46.          _ExtentX        =   5424
  47.          _ExtentY        =   4260
  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.       Begin VB.CommandButton Cmd_Delete 
  124.          Caption         =   "删除(&D)"
  125.          Height          =   300
  126.          Left            =   1890
  127.          TabIndex        =   15
  128.          Top             =   2640
  129.          Width           =   1120
  130.       End
  131.       Begin VB.CommandButton Cmd_Save 
  132.          Caption         =   "保存(&S)"
  133.          Height          =   300
  134.          Left            =   720
  135.          TabIndex        =   14
  136.          Top             =   2640
  137.          Width           =   1120
  138.       End
  139.    End
  140.    Begin VB.CommandButton Cmd_MyReport 
  141.       Caption         =   "我的报表>>"
  142.       Height          =   300
  143.       Left            =   3480
  144.       TabIndex        =   12
  145.       Top             =   2760
  146.       Width           =   1120
  147.    End
  148.    Begin VB.CheckBox UnloadCheck 
  149.       Caption         =   "卸载窗体"
  150.       Height          =   615
  151.       Left            =   8310
  152.       TabIndex        =   21
  153.       Top             =   720
  154.       Visible         =   0   'False
  155.       Width           =   825
  156.    End
  157.    Begin VB.Frame Fra_Query 
  158.       ForeColor       =   &H00FF0000&
  159.       Height          =   2625
  160.       Left            =   60
  161.       TabIndex        =   16
  162.       Top             =   30
  163.       Width           =   4545
  164.       Begin VB.CheckBox Chk_ClassSum 
  165.          Caption         =   "是否显示科目类别合计"
  166.          Height          =   195
  167.          Left            =   150
  168.          TabIndex        =   8
  169.          Top             =   2010
  170.          Value           =   1  'Checked
  171.          Width           =   2325
  172.       End
  173.       Begin VB.CheckBox Chk_NotOuputZero 
  174.          Caption         =   "科目各列数据均为零则不显示"
  175.          Height          =   225
  176.          Left            =   150
  177.          TabIndex        =   9
  178.          Top             =   2280
  179.          Width           =   2865
  180.       End
  181.       Begin VB.CommandButton Ydcommand1 
  182.          Height          =   300
  183.          Index           =   1
  184.          Left            =   4020
  185.          Picture         =   "帐簿_科目余额表查询条件.frx":1042
  186.          Style           =   1  'Graphical
  187.          TabIndex        =   24
  188.          Top             =   570
  189.          Visible         =   0   'False
  190.          Width           =   300
  191.       End
  192.       Begin VB.CommandButton Ydcommand1 
  193.          Height          =   300
  194.          Index           =   0
  195.          Left            =   2190
  196.          Picture         =   "帐簿_科目余额表查询条件.frx":13CC
  197.          Style           =   1  'Graphical
  198.          TabIndex        =   23
  199.          Top             =   570
  200.          Visible         =   0   'False
  201.          Width           =   300
  202.       End
  203.       Begin VB.TextBox LrText 
  204.          Height          =   300
  205.          Index           =   3
  206.          Left            =   1980
  207.          TabIndex        =   6
  208.          Text            =   "3"
  209.          Top             =   1290
  210.          Width           =   705
  211.       End
  212.       Begin VB.TextBox LrText 
  213.          Height          =   300
  214.          Index           =   2
  215.          Left            =   930
  216.          TabIndex        =   5
  217.          Text            =   "2"
  218.          Top             =   1290
  219.          Width           =   705
  220.       End
  221.       Begin VB.ComboBox Combo_Class 
  222.          Height          =   300
  223.          Left            =   960
  224.          Style           =   2  'Dropdown List
  225.          TabIndex        =   4
  226.          Top             =   930
  227.          Width           =   1725
  228.       End
  229.       Begin VB.ComboBox Combo_Kjqj 
  230.          ForeColor       =   &H00000000&
  231.          Height          =   300
  232.          Index           =   1
  233.          Left            =   2790
  234.          Style           =   2  'Dropdown List
  235.          TabIndex        =   1
  236.          Top             =   210
  237.          Width           =   1545
  238.       End
  239.       Begin VB.ComboBox Combo_Kjqj 
  240.          ForeColor       =   &H00000000&
  241.          Height          =   300
  242.          Index           =   0
  243.          Left            =   960
  244.          Style           =   2  'Dropdown List
  245.          TabIndex        =   0
  246.          Top             =   210
  247.          Width           =   1545
  248.       End
  249.       Begin VB.CheckBox Chk_NotBook 
  250.          Caption         =   "是否包含未记帐凭证"
  251.          Height          =   405
  252.          Left            =   150
  253.          TabIndex        =   7
  254.          Top             =   1620
  255.          Width           =   2145
  256.       End
  257.       Begin VB.TextBox LrText 
  258.          Height          =   300
  259.          Index           =   0
  260.          Left            =   960
  261.          TabIndex        =   2
  262.          Text            =   "0"
  263.          Top             =   570
  264.          Width           =   1245
  265.       End
  266.       Begin VB.TextBox LrText 
  267.          Height          =   300
  268.          Index           =   1
  269.          Left            =   2790
  270.          TabIndex        =   3
  271.          Text            =   "1"
  272.          Top             =   570
  273.          Width           =   1245
  274.       End
  275.       Begin VB.Image Image1 
  276.          Height          =   480
  277.          Left            =   3420
  278.          Picture         =   "帐簿_科目余额表查询条件.frx":1756
  279.          Top             =   1920
  280.          Width           =   480
  281.       End
  282.       Begin VB.Line Line1 
  283.          Index           =   2
  284.          X1              =   1680
  285.          X2              =   1920
  286.          Y1              =   1440
  287.          Y2              =   1440
  288.       End
  289.       Begin VB.Line Line1 
  290.          Index           =   0
  291.          X1              =   2520
  292.          X2              =   2760
  293.          Y1              =   720
  294.          Y2              =   720
  295.       End
  296.       Begin VB.Label Label1 
  297.          AutoSize        =   -1  'True
  298.          Caption         =   "科目级次:"
  299.          Height          =   180
  300.          Index           =   3
  301.          Left            =   150
  302.          TabIndex        =   20
  303.          Top             =   1350
  304.          Width           =   810
  305.       End
  306.       Begin VB.Line Line1 
  307.          Index           =   1
  308.          X1              =   2520
  309.          X2              =   2760
  310.          Y1              =   330
  311.          Y2              =   330
  312.       End
  313.       Begin VB.Label Label1 
  314.          AutoSize        =   -1  'True
  315.          Caption         =   "科目范围:"
  316.          Height          =   180
  317.          Index           =   0
  318.          Left            =   150
  319.          TabIndex        =   19
  320.          Top             =   630
  321.          Width           =   810
  322.       End
  323.       Begin VB.Label Label1 
  324.          AutoSize        =   -1  'True
  325.          Caption         =   "科目类型:"
  326.          Height          =   180
  327.          Index           =   1
  328.          Left            =   150
  329.          TabIndex        =   18
  330.          Top             =   990
  331.          Width           =   810
  332.       End
  333.       Begin VB.Label Label1 
  334.          AutoSize        =   -1  'True
  335.          Caption         =   "会计期间:"
  336.          Height          =   180
  337.          Index           =   2
  338.          Left            =   150
  339.          TabIndex        =   17
  340.          Top             =   270
  341.          Width           =   810
  342.       End
  343.    End
  344. End
  345. Attribute VB_Name = "ZB_Frmkmyebtj"
  346. Attribute VB_GlobalNameSpace = False
  347. Attribute VB_Creatable = False
  348. Attribute VB_PredeclaredId = True
  349. Attribute VB_Exposed = False
  350. '****************************************************************
  351. '*    模 块 名 称 :科目发生额及余额表查询条件
  352. '*    功 能 描 述 :
  353. '*    程序员姓名  : 张建忠
  354. '*    最后修改人  : 奚俊峰
  355. '*    最后修改时间:2001/12/30
  356. '*    备        注:程序中所有依实际情况自定义部分均用[>>  <<]括起
  357. '****************************************************************
  358. Dim Dbl_DefaultWidth As Double           '条件窗体默认宽度
  359. '以下为固定使用变量(网格)
  360. Dim Cxnrrec As New ADODB.Recordset       '显示查询内容动态集
  361. Dim Dyymctbl As New DY_Dyymsz            '打印页面窗体变量
  362. Dim GridCode As String                   '显示网格网格代码
  363. Dim GridInf() As Variant                 '整个网格设置信息
  364. Dim Tsxx As String                       '系统提示信息
  365. Dim Qslz As Long                         '网格隐藏(非操作显示)列数
  366. Dim Sjhgd As Double                      '网格数据行高度
  367. Dim GridBoolean() As Boolean             '网格列信息(布尔型)
  368. Dim GridStr()  As String                 '网格列信息(字符型)
  369. Dim GridInt() As Integer                 '网格列信息(整型)
  370. Dim Szzls As Integer                     '数组总列数(网格列数-1)
  371. Dim Lng_Dqwgh As Long                    '系统当前刚刚离开网格行
  372. '以下为固定使用变量(文本框)
  373. Dim Textvar() As Variant                 '存储变体型文本框信息
  374. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  375. Dim Textint() As Integer                 '存储整型文本框信息
  376. Dim Textstr() As String                  '存储字符型文本框信息
  377. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  378. Dim TextGroupCode As String              '文本框录入分组编码
  379. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  380. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  381. Dim CurTextIndex As Integer              '当前文本框索引值
  382. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  383. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  384. Private Sub Cmd_MyReport_Click()         '用户点击我的报表按钮
  385.     If Fra_MyReport.Visible Then
  386.         Fra_MyReport.Visible = False
  387.         Me.Width = Dbl_DefaultWidth
  388.     Else
  389.         Fra_MyReport.Visible = True
  390.         Me.Width = Fra_MyReport.Left + Fra_MyReport.Width + 100
  391.     End If
  392.     
  393.     '条件窗体居于屏幕中心
  394.     Me.Move (Screen.Width - Me.Width) / 2
  395.     
  396. End Sub
  397. Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移
  398.     Dim jdzygs As Integer                         '控件焦点转移个数
  399.     jdzygs = 30
  400.     Select Case KeyAscii
  401.     Case vbKeyReturn
  402.         If Kjjdzy(jdzygs) Then
  403.             KeyAscii = 0
  404.         End If
  405.     Case 39           '屏蔽"'"
  406.         KeyAscii = 0
  407.     End Select
  408. End Sub
  409. Private Sub Form_Load()
  410.     
  411.     '填充会计期间列表框(年度默认为用户选择年度)
  412.     Call Sub_FillPeriod(Combo_Kjqj(0), Xtyear, Xtmm)
  413.     Call Sub_FillPeriod(Combo_Kjqj(1), Xtyear, Xtmm)
  414.     
  415.     '科目类型
  416.     Call FillCombo(Combo_Class, "cwzz_kmlx", "", 1)
  417.     
  418.     '以下为文本框处理程序
  419.     
  420.     TextGroupCode = "Cwzz_kmyeb"
  421.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  422.     Call Wbkcsh
  423.     
  424.     '保存条件窗体默认宽度,隐藏我的报表栏
  425.     Dbl_DefaultWidth = Me.Width
  426.     Fra_MyReport.Visible = False
  427.     
  428.     '调 入 网 格
  429.     GridCode = "Cwzz_myreport"
  430.     
  431.     Call BzWgcsh(vsFlx_MyReport, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  432.     
  433.     Qslz = GridInf(1)
  434.     Sjhgd = GridInf(2)
  435.     Szzls = vsFlx_MyReport.Cols - 1
  436.     
  437.     '填 充 网 格
  438.     Call Cxnrtcwg
  439.     
  440. End Sub
  441. Private Sub Cxnrtcwg()                               '查 询 内 容 填 充 网 格
  442.     Dim Sqlstr As String
  443.     Dim Jsqte As Long
  444.     
  445.     vsFlx_MyReport.Redraw = False
  446.     
  447.     '查询连接串
  448.     Sqlstr = "SELECT Distinct QueryName FROM Cwzz_MyReport Where Czybm='" & Xtczybm & "' And QueryCode='" & TextGroupCode & "'"
  449.     Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  450.     With Cxnrrec
  451.         vsFlx_MyReport.Clear 1
  452.         vsFlx_MyReport.Rows = .RecordCount + vsFlx_MyReport.FixedRows
  453.         If .EOF And .BOF Then
  454.             vsFlx_MyReport.Redraw = True
  455.             Exit Sub
  456.         End If
  457.         Jsqte = vsFlx_MyReport.FixedRows
  458.         Do While Not .EOF
  459.             If Jsqte >= vsFlx_MyReport.Rows Then
  460.                 vsFlx_MyReport.AddItem ""
  461.             End If
  462.             
  463.             vsFlx_MyReport.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("QueryName"))
  464.             
  465.             vsFlx_MyReport.RowHeight(Jsqte) = Sjhgd
  466.             .MoveNext
  467.             Jsqte = Jsqte + 1
  468.         Loop
  469.     End With
  470.     
  471.     vsFlx_MyReport.Redraw = True
  472. End Sub
  473. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  474.     If UnloadCheck.Value <> 1 Then
  475.         Cancel = 1
  476.         Me.Hide
  477.     End If
  478. End Sub
  479. Private Sub QdCommand_Click()                                   '确 定
  480.     '录入条件有效性判断
  481.     If Not Lrtjyxxpd Then
  482.         Exit Sub
  483.     End If
  484.     Me.Hide
  485.     
  486.     '激活查询过程
  487.     ZB_FrmKmyebjg.Timer1.Enabled = True
  488.     
  489. End Sub
  490. Private Sub QxCommand_Click()                                    '取消
  491.     Me.Hide
  492. End Sub
  493. Private Function Lrtjyxxpd() As Boolean                          '用户录入条件有效性判断
  494.     Dim Jsqte As Integer
  495.     Lrtjyxxpd = False
  496.     
  497.     '对需要进行事后判断的文本框录入内容进行有效性判断 (固定不变)
  498.     For Jsqte = 0 To Max_Text_Index
  499.         If Textint(Jsqte, 9) = 0 Or Textint(Jsqte, 9) = 2 Then
  500.             If Not TextYxxpd(Jsqte) Then
  501.                 Exit Function
  502.             End If
  503.         End If
  504.     Next Jsqte
  505.     
  506.     '[>>以下为依据实际情况自定义部分
  507.     
  508.     '查询会计期间范围应由小到大
  509.     If Trim(Combo_Kjqj(0).Text) > Trim(Combo_Kjqj(1).Text) Then
  510.         Tsxx = "查询会计期间范围应由小到大!"
  511.         Call Xtxxts(Tsxx, 0, 4)
  512.         Combo_Kjqj(0).SetFocus
  513.         Exit Function
  514.     End If
  515.     
  516.     
  517.     '查询科目号范围应由小到大
  518.     If Trim(LrText(0).Text) > Trim(LrText(1).Text) And Trim(LrText(1).Text) <> "" Then
  519.         Tsxx = "查询科目范围应由小到大!"
  520.         Call Xtxxts(Tsxx, 0, 4)
  521.         LrText(0).SetFocus
  522.         Exit Function
  523.     End If
  524.     
  525.     '查询科目级次应为1-6,且级次范围应由小到大
  526.     If Not (Val(LrText(2).Text) >= 1 And Val(LrText(2).Text) <= 6) Then
  527.         Tsxx = "查询科目级次应在1-6之间!"
  528.         Call Xtxxts(Tsxx, 0, 4)
  529.         LrText(2).SetFocus
  530.         Exit Function
  531.     End If
  532.     
  533.     If Not (Val(LrText(3).Text) >= 1 And Val(LrText(3).Text) <= 6) Then
  534.         Tsxx = "查询科目级次应在1-6之间!"
  535.         Call Xtxxts(Tsxx, 0, 4)
  536.         LrText(3).SetFocus
  537.         Exit Function
  538.     End If
  539.     
  540.     If Val(LrText(2).Text) > Val(LrText(3).Text) Then
  541.         Tsxx = "查询科目级次范围应由小到大!"
  542.         Call Xtxxts(Tsxx, 0, 4)
  543.         LrText(2).SetFocus
  544.         Exit Function
  545.     End If
  546.     
  547.     '<<]以上为依据实际情况自定义部分
  548.     
  549.     Lrtjyxxpd = True
  550. End Function
  551. Private Sub vsFlx_MyReport_Click()                                          '显示用户点击查询报表
  552.     Dim Sqlstr As String
  553.     Dim Rec_MyReport As New ADODB.Recordset     '我的报表动态集
  554.     Dim Jsqte As Integer                        '临时动态计数器
  555.     
  556.     If vsFlx_MyReport.Row < vsFlx_MyReport.FixedRows Then
  557.         Exit Sub
  558.     End If
  559.     
  560.     '查询连接串
  561.     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"
  562.     Set Rec_MyReport = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  563.     
  564.     Jsqte = 1
  565.     
  566.     On Error Resume Next
  567.     
  568.     With Rec_MyReport
  569.         Do While Not .EOF
  570.             Select Case Jsqte
  571.             Case 1           '起始科目编码
  572.                 LrText(0).Text = Trim(.Fields("Value"))
  573.             Case 2           '终止科目编码
  574.                 LrText(1).Text = Trim(.Fields("Value"))
  575.             Case 3           '科目类型
  576.                 Combo_Class.Text = Trim(.Fields("Value"))
  577.             Case 4           '起始科目级次
  578.                 LrText(2).Text = Trim(.Fields("Value"))
  579.             Case 5           '终止科目级次
  580.                 LrText(3).Text = Trim(.Fields("Value"))
  581.             Case 6           '是否包含未记帐凭证
  582.                 Chk_NotBook.Value = Int(.Fields("Value"))
  583.             Case 7           '是否输出按科目类别合计
  584.                 Chk_ClassSum.Value = Int(.Fields("Value"))
  585.             Case 8           '科目各列数据均为零则不显示
  586.                 Chk_NotOuputZero.Value = Int(.Fields("Value"))
  587.             End Select
  588.             Jsqte = Jsqte + 1
  589.             .MoveNext
  590.         Loop
  591.     End With
  592. End Sub
  593. Private Sub Cmd_Delete_Click()                                              '删除当前报表查询条件
  594.     Dim Yhanswer As Integer
  595.     If vsFlx_MyReport.Row < vsFlx_MyReport.FixedRows Then
  596.         Exit Sub
  597.     End If
  598.     Tsxx = "请确认是否删除当前记录?"
  599.     Yhanswer = Xtxxts(Tsxx, 2, 2)
  600.     If Yhanswer = 2 Then
  601.         Exit Sub
  602.     End If
  603.     
  604.     '[以下需自定义部分
  605.     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))) & "'")
  606.     '以上为自定义部分]
  607.     
  608.     vsFlx_MyReport.RemoveItem vsFlx_MyReport.Row
  609.     
  610. End Sub
  611. Private Sub Cmd_Save_Click()                     '保存报表查询条件
  612.     Dim tCode As String
  613.     Dim tReturn As String
  614.     
  615.     tCode = Trim(vsFlx_MyReport.TextMatrix(vsFlx_MyReport.Row, Sydz("001", GridStr(), Szzls)))
  616.     
  617.     tReturn = InputBox("请输入我的报表名称:", "报表名称", tCode)
  618.     If Trim(tReturn) = "" Then Exit Sub
  619.     
  620.     SaveReport tReturn
  621. End Sub
  622. '************以下为文本框录入处理程序(固定不变部分)*************'
  623. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  624.     
  625.     '以下为依据实际情况自定义部分[
  626.     
  627.     '在此填写文本框录入事后处理程序
  628.     
  629.     ']以上为依据实际情况自定义部分
  630. End Sub
  631. Private Sub LrText_Change(Index As Integer)
  632.     
  633.     '屏蔽程序改变控制
  634.     If TextChangeLock Then
  635.         Exit Sub
  636.     End If
  637.     
  638.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  639.     
  640.     '限制字段录入长度
  641.     
  642.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  643.     Select Case Textint(Index, 1)
  644.     Case 8           '金额型
  645.         Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  646.     Case 9           '数量型
  647.         Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  648.     Case 10          '单价型
  649.         Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  650.     Case Else        '其他小数类型控制
  651.         If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  652.             Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  653.         End If
  654.     End Select
  655.     TextChangeLock = False '解锁
  656. End Sub
  657. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  658.     Call TextShow(Index)
  659.     CurTextIndex = Index
  660.     LrText(Index).SelStart = Len(LrText(Index))
  661. End Sub
  662. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  663.     Select Case KeyCode
  664.     Case vbKeyF2
  665.         Call Text_Help(Index)
  666.     End Select
  667. End Sub
  668. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  669.     Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  670. End Sub
  671. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点进行有效性判断及相应处理
  672.     If Textint(Index, 9) = 0 Or Textint(Index, 9) = 1 Then '事中判断
  673.         Call TextYxxpd(Index)
  674.     End If
  675. End Sub
  676. Private Sub Ydcommand1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)     '按钮提供帮助
  677.     Call Text_Help(Index)
  678. End Sub
  679. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  680.     If Not Textboolean(Index, 1) Then
  681.         Exit Sub
  682.     End If
  683.     TextValiJudgeLock(Index) = True
  684.     
  685.     '先进行有效性判断
  686.     If Not TextYxxpd(CurTextIndex) Then
  687.         Exit Sub
  688.     End If
  689.     
  690.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  691.     
  692.     If Len(Xtfhcs) <> 0 Then
  693.         If Textint(Index, 3) = 1 Then
  694.             LrText(Index).Text = Xtfhcsfz
  695.             LrText(Index).Tag = Xtfhcs
  696.         Else
  697.             LrText(Index).Text = Xtfhcs
  698.             LrText(Index).Tag = Xtfhcsfz
  699.         End If
  700.         
  701.     End If
  702.     TextValiJudgeLock(Index) = False
  703.     LrText(Index).SetFocus
  704. End Sub
  705. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  706.     
  707.     '填写文本框得到焦点,进行相应信息处理程序
  708.     
  709. End Sub
  710. Private Sub Wbkcsh()                          '录入文本框初始化
  711.     Dim Jsqte As Integer
  712.     
  713.     '最大录入文本框索引值
  714.     Max_Text_Index = Textvar(1)
  715.     
  716.     ReDim TextValiJudgeLock(Max_Text_Index)
  717.     For Jsqte = 0 To Max_Text_Index
  718.         
  719.         If Len(Trim(Textstr(Jsqte, 1))) <> 0 Then
  720.             If Textboolean(Jsqte, 1) Then
  721.                 If Jsqte <> 0 And Not Textboolean(Jsqte, 3) Then
  722.                     Load Ydcommand1(Jsqte)
  723.                 End If
  724.                 Ydcommand1(Jsqte).Visible = True
  725.                 Ydcommand1(Jsqte).Move LrText(Jsqte).Left + LrText(Jsqte).Width, LrText(Jsqte).Top
  726.             End If
  727.             TextChangeLock = True
  728.             LrText(Jsqte).Text = ""
  729.             LrText(Jsqte).Tag = ""
  730.             If Textint(Jsqte, 5) <> 0 Then
  731.                 LrText(Jsqte).MaxLength = Textint(Jsqte, 5)
  732.             End If
  733.             
  734.             '[>>科目级次范围默认为1-6
  735.             LrText(2).Text = 1
  736.             LrText(3).Text = 6
  737.             '[<<完毕
  738.             
  739.             TextChangeLock = False
  740.         End If
  741.         TextValiJudgeLock(Jsqte) = True
  742.     Next Jsqte
  743. End Sub
  744. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  745.     Dim Sqlstr As String
  746.     Dim Findrec As ADODB.Recordset
  747.     If TextValiJudgeLock(Index) Then    '文本框内容未曾改变不进行有效性判断
  748.         TextYxxpd = True
  749.         Exit Function
  750.     End If
  751.     If Trim(LrText(Index)) = "" Then
  752.         LrText(Index).Tag = ""
  753.         Call Wbklrwbcl(Index)
  754.         TextValiJudgeLock(Index) = True
  755.         TextYxxpd = True
  756.         Exit Function
  757.     End If
  758.     Select Case Textint(Index, 4)
  759.     Case 1      '编码型
  760.         Sqlstr = Trim(Textstr(Index, 5))
  761.         Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  762.         Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  763.         If Findrec.EOF Then
  764.             Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  765.             LrText(Index).SetFocus
  766.             Exit Function
  767.         Else
  768.             Select Case Textint(Index, 3)
  769.             Case 0
  770.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  771.                     LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  772.                 End If
  773.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  774.                     LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  775.                 End If
  776.             Case 1
  777.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  778.                     LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  779.                 End If
  780.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  781.                     LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  782.                 End If
  783.             End Select
  784.         End If
  785.     Case 2      '日期型
  786.         If IsDate(LrText(Index).Text) Then
  787.             LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  788.         Else
  789.             Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  790.             Call Xtxxts(Tsxx, 0, 1)
  791.             LrText(Index).SetFocus
  792.             Exit Function
  793.         End If
  794.     Case 3      '其他类型
  795.         
  796.     End Select
  797.     TextValiJudgeLock(Index) = True
  798.     TextYxxpd = True
  799. End Function
  800. Private Sub SaveReport(sReport As String)
  801.     Dim Rec_MyReport As New ADODB.Recordset     '我的报表动态集
  802.     Dim Yhanswer As Integer
  803.     Dim Jsqte As Integer                        '临时动态计数器
  804.     Dim Sqlstr As String
  805.     
  806.     Yhanswer = 0
  807.     
  808.     '查询连接串
  809.     Sqlstr = "SELECT Distinct QueryName FROM Cwzz_MyReport Where Czybm='" & Xtczybm & "' And QueryCode='" & TextGroupCode & "' And QueryName='" & Trim(sReport) & "'"
  810.     Set Rec_MyReport = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  811.     With Rec_MyReport
  812.         If Not .EOF Then
  813.             Tsxx = "已有此报表名称,是否覆盖?"
  814.             Yhanswer = Xtxxts(Tsxx, 2, 2)
  815.             If Yhanswer <> 1 Then
  816.                 Exit Sub
  817.             End If
  818.         End If
  819.         
  820.         On Error GoTo Swcwcl
  821.         Cw_DataEnvi.DataConnect.BeginTrans
  822.         
  823.         If Yhanswer = 1 Then
  824.             Sqlstr = "Delete FROM Cwzz_MyReport Where Czybm='" & Xtczybm & "' And QueryCode='" & TextGroupCode & "' And QueryName='" & Trim(sReport) & "'"
  825.             Cw_DataEnvi.DataConnect.Execute (Sqlstr)
  826.         End If
  827.         If .State = 1 Then .Close
  828.         .Open "Select * From Cwzz_MyReport Where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  829.         
  830.         For Jsqte = 1 To 8
  831.             .AddNew
  832.             .Fields("Czybm") = Xtczybm
  833.             .Fields("QueryCode") = TextGroupCode
  834.             .Fields("QueryName") = sReport
  835.             
  836.             Select Case Jsqte
  837.             Case 1
  838.                 .Fields("Value") = Trim(LrText(0).Text)
  839.             Case 2
  840.                 .Fields("Value") = Trim(LrText(1).Text)
  841.             Case 3
  842.                 .Fields("Value") = Combo_Class.Text
  843.             Case 4
  844.                 .Fields("Value") = Trim(LrText(2).Text)
  845.             Case 5
  846.                 .Fields("Value") = Trim(LrText(3).Text)
  847.             Case 6
  848.                 .Fields("Value") = Chk_NotBook.Value
  849.             Case 7
  850.                 .Fields("Value") = Chk_ClassSum.Value
  851.             Case 8
  852.                 .Fields("Value") = Chk_NotOuputZero.Value
  853.                 
  854.             End Select
  855.             
  856.             .Update
  857.         Next Jsqte
  858.     End With
  859.     
  860.     Cw_DataEnvi.DataConnect.CommitTrans
  861.     
  862.     '在网格中添加报表名称(非覆盖)
  863.     If Yhanswer <> 1 Then
  864.         With vsFlx_MyReport
  865.             .AddItem ""
  866.             .TextMatrix(.Rows - 1, 0) = Trim(sReport)
  867.         End With
  868.     End If
  869.     
  870.     Tsxx = "报表查询条件保存完毕!"
  871.     Call Xtxxts(Tsxx, 0, 4)
  872.     Exit Sub
  873.     
  874. Swcwcl:
  875.     Cw_DataEnvi.DataConnect.RollbackTrans
  876.     Tsxx = "存盘过程中出现未知错误,程序自动恢复保存前状态!"
  877.     Call Xtxxts(Tsxx, 0, 1)
  878.     Exit Sub
  879. End Sub