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

企业管理

开发平台:

Visual Basic

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