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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{D76D7128-4A96-11D3-BD95-D296DC2DD072}#1.0#0"; "VSOCX7.OCX"
  3. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx"
  4. Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
  5. Begin VB.Form Tax_FrmRate 
  6.    BackColor       =   &H00C0C0C0&
  7.    BorderStyle     =   1  'Fixed Single
  8.    Caption         =   "税率设置"
  9.    ClientHeight    =   6990
  10.    ClientLeft      =   675
  11.    ClientTop       =   720
  12.    ClientWidth     =   11400
  13.    BeginProperty Font 
  14.       Name            =   "宋体"
  15.       Size            =   9
  16.       Charset         =   134
  17.       Weight          =   400
  18.       Underline       =   0   'False
  19.       Italic          =   0   'False
  20.       Strikethrough   =   0   'False
  21.    EndProperty
  22.    HelpContextID   =   2212004
  23.    Icon            =   "基础设置_税率.frx":0000
  24.    KeyPreview      =   -1  'True
  25.    LinkTopic       =   "Form4"
  26.    MaxButton       =   0   'False
  27.    MinButton       =   0   'False
  28.    ScaleHeight     =   6990
  29.    ScaleWidth      =   11400
  30.    StartUpPosition =   1  '所有者中心
  31.    Begin VB.CommandButton Ydcommand 
  32.       BeginProperty Font 
  33.          Name            =   "宋体"
  34.          Size            =   9
  35.          Charset         =   134
  36.          Weight          =   400
  37.          Underline       =   0   'False
  38.          Italic          =   0   'False
  39.          Strikethrough   =   0   'False
  40.       EndProperty
  41.       Height          =   300
  42.       Left            =   11010
  43.       Picture         =   "基础设置_税率.frx":1042
  44.       Style           =   1  'Graphical
  45.       TabIndex        =   1
  46.       Top             =   2010
  47.       Visible         =   0   'False
  48.       Width           =   300
  49.    End
  50.    Begin VB.PictureBox Pic_Title 
  51.       BackColor       =   &H00FFFFFF&
  52.       BeginProperty Font 
  53.          Name            =   "宋体"
  54.          Size            =   9
  55.          Charset         =   134
  56.          Weight          =   400
  57.          Underline       =   0   'False
  58.          Italic          =   0   'False
  59.          Strikethrough   =   0   'False
  60.       EndProperty
  61.       Height          =   855
  62.       Left            =   0
  63.       Picture         =   "基础设置_税率.frx":13CC
  64.       ScaleHeight     =   795
  65.       ScaleWidth      =   11715
  66.       TabIndex        =   7
  67.       Top             =   570
  68.       Width           =   11775
  69.       Begin VB.TextBox lrtext 
  70.          BeginProperty Font 
  71.             Name            =   "宋体"
  72.             Size            =   9
  73.             Charset         =   134
  74.             Weight          =   400
  75.             Underline       =   0   'False
  76.             Italic          =   0   'False
  77.             Strikethrough   =   0   'False
  78.          EndProperty
  79.          Height          =   270
  80.          Index           =   1
  81.          Left            =   6150
  82.          TabIndex        =   14
  83.          Text            =   "Text2"
  84.          Top             =   270
  85.          Width           =   765
  86.       End
  87.       Begin VB.TextBox lrtext 
  88.          BeginProperty Font 
  89.             Name            =   "宋体"
  90.             Size            =   9
  91.             Charset         =   134
  92.             Weight          =   400
  93.             Underline       =   0   'False
  94.             Italic          =   0   'False
  95.             Strikethrough   =   0   'False
  96.          EndProperty
  97.          Height          =   270
  98.          Index           =   0
  99.          Left            =   3810
  100.          TabIndex        =   11
  101.          Text            =   "Text1"
  102.          Top             =   270
  103.          Width           =   675
  104.       End
  105.       Begin MSComctlLib.ImageList ImageList1 
  106.          Left            =   7950
  107.          Top             =   30
  108.          _ExtentX        =   1005
  109.          _ExtentY        =   1005
  110.          BackColor       =   -2147483643
  111.          ImageWidth      =   16
  112.          ImageHeight     =   16
  113.          MaskColor       =   12632256
  114.          _Version        =   393216
  115.          BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  116.             NumListImages   =   25
  117.             BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  118.                Picture         =   "基础设置_税率.frx":1E30C
  119.                Key             =   "sz"
  120.             EndProperty
  121.             BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  122.                Picture         =   "基础设置_税率.frx":1E6A6
  123.                Key             =   "dy"
  124.             EndProperty
  125.             BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  126.                Picture         =   "基础设置_税率.frx":1EA40
  127.                Key             =   "yl"
  128.             EndProperty
  129.             BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  130.                Picture         =   "基础设置_税率.frx":1EDDA
  131.                Key             =   "xg"
  132.             EndProperty
  133.             BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  134.                Picture         =   "基础设置_税率.frx":1F174
  135.                Key             =   "zh"
  136.             EndProperty
  137.             BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  138.                Picture         =   "基础设置_税率.frx":1F50E
  139.                Key             =   "sh"
  140.             EndProperty
  141.             BeginProperty ListImage7 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  142.                Picture         =   "基础设置_税率.frx":1F8A8
  143.                Key             =   "bc"
  144.             EndProperty
  145.             BeginProperty ListImage8 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  146.                Picture         =   "基础设置_税率.frx":1FC42
  147.                Key             =   "fq"
  148.             EndProperty
  149.             BeginProperty ListImage9 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  150.                Picture         =   "基础设置_税率.frx":1FFDC
  151.                Key             =   "bz"
  152.             EndProperty
  153.             BeginProperty ListImage10 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  154.                Picture         =   "基础设置_税率.frx":20376
  155.                Key             =   "tc"
  156.             EndProperty
  157.             BeginProperty ListImage11 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  158.                Picture         =   "基础设置_税率.frx":20710
  159.                Key             =   "bcgs"
  160.             EndProperty
  161.             BeginProperty ListImage12 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  162.                Picture         =   "基础设置_税率.frx":20AAA
  163.                Key             =   "mrlk"
  164.             EndProperty
  165.             BeginProperty ListImage13 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  166.                Picture         =   "基础设置_税率.frx":20E44
  167.                Key             =   "xsxm"
  168.             EndProperty
  169.             BeginProperty ListImage14 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  170.                Picture         =   "基础设置_税率.frx":211DE
  171.                Key             =   "first"
  172.             EndProperty
  173.             BeginProperty ListImage15 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  174.                Picture         =   "基础设置_税率.frx":21578
  175.                Key             =   "prev"
  176.             EndProperty
  177.             BeginProperty ListImage16 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  178.                Picture         =   "基础设置_税率.frx":21912
  179.                Key             =   "next"
  180.             EndProperty
  181.             BeginProperty ListImage17 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  182.                Picture         =   "基础设置_税率.frx":21CAC
  183.                Key             =   "last"
  184.             EndProperty
  185.             BeginProperty ListImage18 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  186.                Picture         =   "基础设置_税率.frx":22046
  187.                Key             =   "xx"
  188.             EndProperty
  189.             BeginProperty ListImage19 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  190.                Picture         =   "基础设置_税率.frx":223E0
  191.                Key             =   "define"
  192.             EndProperty
  193.             BeginProperty ListImage20 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  194.                Picture         =   "基础设置_税率.frx":2277A
  195.                Key             =   "exec"
  196.             EndProperty
  197.             BeginProperty ListImage21 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  198.                Picture         =   "基础设置_税率.frx":22B14
  199.                Key             =   "xz"
  200.             EndProperty
  201.             BeginProperty ListImage22 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  202.                Picture         =   "基础设置_税率.frx":22EAE
  203.                Key             =   "sc"
  204.             EndProperty
  205.             BeginProperty ListImage23 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  206.                Picture         =   "基础设置_税率.frx":23248
  207.                Key             =   "sx"
  208.             EndProperty
  209.             BeginProperty ListImage24 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  210.                Picture         =   "基础设置_税率.frx":235E2
  211.                Key             =   "cx"
  212.             EndProperty
  213.             BeginProperty ListImage25 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  214.                Picture         =   "基础设置_税率.frx":2397C
  215.                Key             =   "zd"
  216.             EndProperty
  217.          EndProperty
  218.       End
  219.       Begin MSComCtl2.UpDown UpDown1 
  220.          Height          =   270
  221.          Left            =   4470
  222.          TabIndex        =   12
  223.          Top             =   270
  224.          Width           =   240
  225.          _ExtentX        =   423
  226.          _ExtentY        =   476
  227.          _Version        =   393216
  228.          AutoBuddy       =   -1  'True
  229.          BuddyControl    =   "lrtext(0)"
  230.          BuddyDispid     =   196611
  231.          BuddyIndex      =   0
  232.          OrigLeft        =   4710
  233.          OrigTop         =   270
  234.          OrigRight       =   4950
  235.          OrigBottom      =   540
  236.          Increment       =   50
  237.          Max             =   999999
  238.          SyncBuddy       =   -1  'True
  239.          BuddyProperty   =   65547
  240.          Enabled         =   -1  'True
  241.       End
  242.       Begin MSComCtl2.UpDown UpDown2 
  243.          Height          =   270
  244.          Left            =   6900
  245.          TabIndex        =   15
  246.          Top             =   270
  247.          Width           =   240
  248.          _ExtentX        =   423
  249.          _ExtentY        =   476
  250.          _Version        =   393216
  251.          AutoBuddy       =   -1  'True
  252.          BuddyControl    =   "lrtext(1)"
  253.          BuddyDispid     =   196611
  254.          BuddyIndex      =   1
  255.          OrigLeft        =   7020
  256.          OrigTop         =   270
  257.          OrigRight       =   7260
  258.          OrigBottom      =   540
  259.          Increment       =   50
  260.          Max             =   999999
  261.          SyncBuddy       =   -1  'True
  262.          BuddyProperty   =   65547
  263.          Enabled         =   -1  'True
  264.       End
  265.       Begin VB.Label Label2 
  266.          AutoSize        =   -1  'True
  267.          BackStyle       =   0  'Transparent
  268.          Caption         =   "附加费用"
  269.          BeginProperty Font 
  270.             Name            =   "宋体"
  271.             Size            =   9
  272.             Charset         =   134
  273.             Weight          =   400
  274.             Underline       =   0   'False
  275.             Italic          =   0   'False
  276.             Strikethrough   =   0   'False
  277.          EndProperty
  278.          Height          =   180
  279.          Left            =   5370
  280.          TabIndex        =   13
  281.          Top             =   315
  282.          Width           =   720
  283.       End
  284.       Begin VB.Label Label1 
  285.          AutoSize        =   -1  'True
  286.          BackStyle       =   0  'Transparent
  287.          Caption         =   "扣税基数"
  288.          BeginProperty Font 
  289.             Name            =   "宋体"
  290.             Size            =   9
  291.             Charset         =   134
  292.             Weight          =   400
  293.             Underline       =   0   'False
  294.             Italic          =   0   'False
  295.             Strikethrough   =   0   'False
  296.          EndProperty
  297.          Height          =   180
  298.          Left            =   3030
  299.          TabIndex        =   10
  300.          Top             =   330
  301.          Width           =   720
  302.       End
  303.       Begin VB.Label Lab_TitleText 
  304.          BackStyle       =   0  'Transparent
  305.          BeginProperty Font 
  306.             Name            =   "宋体"
  307.             Size            =   9
  308.             Charset         =   134
  309.             Weight          =   400
  310.             Underline       =   0   'False
  311.             Italic          =   0   'False
  312.             Strikethrough   =   0   'False
  313.          EndProperty
  314.          ForeColor       =   &H00FF0000&
  315.          Height          =   225
  316.          Left            =   750
  317.          TabIndex        =   9
  318.          Top             =   690
  319.          Width           =   1455
  320.       End
  321.       Begin VB.Label tsLabel 
  322.          AutoSize        =   -1  'True
  323.          BackColor       =   &H80000018&
  324.          BackStyle       =   0  'Transparent
  325.          Caption         =   "税率表"
  326.          BeginProperty Font 
  327.             Name            =   "宋体"
  328.             Size            =   14.25
  329.             Charset         =   134
  330.             Weight          =   700
  331.             Underline       =   0   'False
  332.             Italic          =   0   'False
  333.             Strikethrough   =   0   'False
  334.          EndProperty
  335.          ForeColor       =   &H00000000&
  336.          Height          =   285
  337.          Index           =   4
  338.          Left            =   510
  339.          TabIndex        =   8
  340.          Top             =   180
  341.          Width           =   900
  342.       End
  343.    End
  344.    Begin VB.TextBox Ydtext 
  345.       BackColor       =   &H00C0FFFF&
  346.       BorderStyle     =   0  'None
  347.       BeginProperty Font 
  348.          Name            =   "宋体"
  349.          Size            =   9
  350.          Charset         =   134
  351.          Weight          =   400
  352.          Underline       =   0   'False
  353.          Italic          =   0   'False
  354.          Strikethrough   =   0   'False
  355.       EndProperty
  356.       Height          =   330
  357.       Left            =   9300
  358.       MultiLine       =   -1  'True
  359.       TabIndex        =   0
  360.       Top             =   1620
  361.       Visible         =   0   'False
  362.       Width           =   1185
  363.    End
  364.    Begin VB.ComboBox YdCombo 
  365.       BeginProperty Font 
  366.          Name            =   "宋体"
  367.          Size            =   9
  368.          Charset         =   134
  369.          Weight          =   400
  370.          Underline       =   0   'False
  371.          Italic          =   0   'False
  372.          Strikethrough   =   0   'False
  373.       EndProperty
  374.       Height          =   300
  375.       Left            =   9300
  376.       Style           =   2  'Dropdown List
  377.       TabIndex        =   3
  378.       Top             =   2010
  379.       Visible         =   0   'False
  380.       Width           =   1665
  381.    End
  382.    Begin VB.Timer Timer1 
  383.       Interval        =   1
  384.       Left            =   10530
  385.       Top             =   1560
  386.    End
  387.    Begin VSFlex8Ctl.VSFlexGrid WglrGrid 
  388.       Height          =   5835
  389.       Left            =   120
  390.       TabIndex        =   4
  391.       Top             =   1500
  392.       Width           =   8205
  393.       _ExtentX        =   14473
  394.       _ExtentY        =   10292
  395.       Appearance      =   1
  396.       BorderStyle     =   1
  397.       Enabled         =   -1  'True
  398.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  399.          Name            =   "宋体"
  400.          Size            =   9
  401.          Charset         =   134
  402.          Weight          =   400
  403.          Underline       =   0   'False
  404.          Italic          =   0   'False
  405.          Strikethrough   =   0   'False
  406.       EndProperty
  407.       MousePointer    =   0
  408.       BackColor       =   16777215
  409.       ForeColor       =   -2147483640
  410.       BackColorFixed  =   12632256
  411.       ForeColorFixed  =   -2147483630
  412.       BackColorSel    =   -2147483635
  413.       ForeColorSel    =   -2147483634
  414.       BackColorBkg    =   -2147483636
  415.       BackColorAlternate=   16777215
  416.       GridColor       =   -2147483633
  417.       GridColorFixed  =   -2147483632
  418.       TreeColor       =   -2147483632
  419.       FloodColor      =   192
  420.       SheetBorder     =   -2147483642
  421.       FocusRect       =   1
  422.       HighLight       =   1
  423.       AllowSelection  =   -1  'True
  424.       AllowBigSelection=   -1  'True
  425.       AllowUserResizing=   0
  426.       SelectionMode   =   0
  427.       GridLines       =   1
  428.       GridLinesFixed  =   2
  429.       GridLineWidth   =   1
  430.       Rows            =   50
  431.       Cols            =   10
  432.       FixedRows       =   1
  433.       FixedCols       =   1
  434.       RowHeightMin    =   0
  435.       RowHeightMax    =   0
  436.       ColWidthMin     =   0
  437.       ColWidthMax     =   0
  438.       ExtendLastCol   =   0   'False
  439.       FormatString    =   ""
  440.       ScrollTrack     =   0   'False
  441.       ScrollBars      =   3
  442.       ScrollTips      =   0   'False
  443.       MergeCells      =   0
  444.       MergeCompare    =   0
  445.       AutoResize      =   -1  'True
  446.       AutoSizeMode    =   0
  447.       AutoSearch      =   0
  448.       MultiTotals     =   -1  'True
  449.       SubtotalPosition=   1
  450.       OutlineBar      =   0
  451.       OutlineCol      =   0
  452.       Ellipsis        =   0
  453.       ExplorerBar     =   0
  454.       PicturesOver    =   0   'False
  455.       FillStyle       =   0
  456.       RightToLeft     =   0   'False
  457.       PictureType     =   0
  458.       TabBehavior     =   0
  459.       OwnerDraw       =   0
  460.       Editable        =   0   'False
  461.       ShowComboButton =   -1  'True
  462.       WordWrap        =   0   'False
  463.       TextStyle       =   0
  464.       TextStyleFixed  =   0
  465.       OleDragMode     =   0
  466.       OleDropMode     =   0
  467.       DataMode        =   0
  468.       VirtualData     =   -1  'True
  469.    End
  470.    Begin MSComctlLib.Toolbar Tlb_Action 
  471.       Align           =   1  'Align Top
  472.       Height          =   570
  473.       Left            =   0
  474.       TabIndex        =   2
  475.       Top             =   0
  476.       Width           =   11400
  477.       _ExtentX        =   20108
  478.       _ExtentY        =   1005
  479.       ButtonWidth     =   820
  480.       ButtonHeight    =   953
  481.       AllowCustomize  =   0   'False
  482.       Wrappable       =   0   'False
  483.       Appearance      =   1
  484.       Style           =   1
  485.       ImageList       =   "ImageList1"
  486.       _Version        =   393216
  487.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  488.          NumButtons      =   10
  489.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  490.             Caption         =   "设置"
  491.             Key             =   "ymsz"
  492.             Object.ToolTipText     =   "打印页面设置"
  493.             ImageKey        =   "sz"
  494.          EndProperty
  495.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  496.             Caption         =   "打印"
  497.             Key             =   "dy"
  498.             Object.ToolTipText     =   "打印当前单据或Ctrl+P"
  499.             ImageKey        =   "dy"
  500.          EndProperty
  501.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  502.             Caption         =   "预览"
  503.             Key             =   "yl"
  504.             ImageKey        =   "yl"
  505.          EndProperty
  506.          BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  507.             Style           =   3
  508.          EndProperty
  509.          BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  510.             Caption         =   "增行"
  511.             Key             =   "zh"
  512.             ImageKey        =   "zh"
  513.          EndProperty
  514.          BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  515.             Caption         =   "删除"
  516.             Key             =   "sh"
  517.             Object.ToolTipText     =   "删除当前记录行或Delete"
  518.             ImageKey        =   "sh"
  519.          EndProperty
  520.          BeginProperty Button7 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  521.             Caption         =   "保存"
  522.             Key             =   "bc"
  523.             ImageKey        =   "bc"
  524.          EndProperty
  525.          BeginProperty Button8 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  526.             Style           =   3
  527.          EndProperty
  528.          BeginProperty Button9 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  529.             Caption         =   "帮助"
  530.             Key             =   "bz"
  531.             ImageKey        =   "bz"
  532.          EndProperty
  533.          BeginProperty Button10 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  534.             Caption         =   "退出"
  535.             Key             =   "fh"
  536.             ImageKey        =   "tc"
  537.          EndProperty
  538.       EndProperty
  539.       BorderStyle     =   1
  540.       Begin MSComctlLib.Toolbar GsToolbar 
  541.          Height          =   540
  542.          Left            =   9720
  543.          TabIndex        =   6
  544.          Top             =   0
  545.          Width           =   1695
  546.          _ExtentX        =   2990
  547.          _ExtentY        =   953
  548.          ButtonWidth     =   1455
  549.          ButtonHeight    =   953
  550.          AllowCustomize  =   0   'False
  551.          Appearance      =   1
  552.          Style           =   1
  553.          ImageList       =   "ImageList1"
  554.          _Version        =   393216
  555.          BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  556.             NumButtons      =   2
  557.             BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  558.                Caption         =   "保存格式"
  559.                Key             =   "bcgs"
  560.                ImageKey        =   "bcgs"
  561.             EndProperty
  562.             BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  563.                Caption         =   "默认列宽"
  564.                Key             =   "hfmrgs"
  565.                ImageKey        =   "mrlk"
  566.             EndProperty
  567.          EndProperty
  568.       End
  569.    End
  570.    Begin VB.Label Lab_OperStatus 
  571.       BackColor       =   &H000080FF&
  572.       Caption         =   "1"
  573.       BeginProperty Font 
  574.          Name            =   "宋体"
  575.          Size            =   9
  576.          Charset         =   134
  577.          Weight          =   400
  578.          Underline       =   0   'False
  579.          Italic          =   0   'False
  580.          Strikethrough   =   0   'False
  581.       EndProperty
  582.       Height          =   345
  583.       Left            =   10980
  584.       TabIndex        =   5
  585.       Top             =   1590
  586.       Visible         =   0   'False
  587.       Width           =   345
  588.    End
  589. End
  590. Attribute VB_Name = "Tax_FrmRate"
  591. Attribute VB_GlobalNameSpace = False
  592. Attribute VB_Creatable = False
  593. Attribute VB_PredeclaredId = True
  594. Attribute VB_Exposed = False
  595. '*******************************************************
  596. '*    模 块 名 称 :税率表
  597. '*    功 能 描 述 :设置税率、计算速算扣除数
  598. '*    程序员姓名  : 田建秀
  599. '*    最后修改人  : 田建秀
  600. '*    最后修改时间:2001/12/11
  601. '*    备        注:经过自己测试
  602. '*******************************************************
  603.  '以下为自定义变量
  604.  
  605.  
  606. '其它固定使用变量
  607. Dim Tsxx As String                              '系统信息提示(Fixed)
  608. Dim ReportTitle As String                       '报表主标题(Fixed)
  609. Dim Rsc As New ADODB.Recordset
  610. Dim i As Long
  611. Dim Str_RightEdit As String              '编辑(新增、修改、删除)权限索引
  612. '以下为固定使用变量(网格)
  613. Dim Cxnrrec As New ADODB.Recordset              '显示查询内容动态集
  614. Dim Dyymctbl As New DY_Dyymsz                   '打印页面窗体变量
  615. Dim GridCode As String                          '显示网格网格代码
  616. Dim GridInf() As Variant                        '整个网格设置信息
  617. Dim Pmbcsjhs As Long                            '屏幕网格保持数据行数(大于等于1)
  618. Dim Fzxwghs As Integer                          '辅助项网格行数(包括合计行)
  619. Dim Sfxshjwg As Boolean                         '是否显示合计网格
  620. Dim Qslz As Long                                '网格隐藏(非操作显示)列数
  621. Dim Sjhgd As Double                             '网格数据行高度
  622. Dim GridBoolean() As Boolean                    '网格列信息(布尔型)
  623. Dim GridStr()  As String                        '网格列信息(字符型)
  624. Dim GridInt() As Integer                        '网格列信息(整型)
  625. Dim Sfblbzkd As Boolean                         '是否保留帮助宽度(字段提供帮助时,是否为按钮保留空间)
  626. Dim Dqlrwgh As Long                             '当前录入数据网格行
  627. Dim Dqlrwgl As Long                             '当前录入数据网格列
  628. Dim Dqlkwgh As Long                             '刚刚离开网格行(不一定为录入行)
  629. Dim Dqlkwgl As Long                             '刚刚离开网格列
  630. Dim Dqtoprow As Long                            '当前录入状态时最上端可视行
  631. Dim Dqleftcol As Long                           '当前录入状态时最左端可视列
  632. Dim Zdlrqnr As String                           '字段录入修改前内容(用来判断内容是否修改)
  633. Dim Wbkbhlock As Boolean                        '文本框改变值锁
  634. Dim Changelock As Boolean                       '网格行列改变控制锁(用来区别用户改变.程序改变)
  635. Dim Gdtlock As Boolean                          '滚动条滚动控制(用来区别用户改变.程序改变)
  636. Dim Yxxpdlock As Boolean                        '字段有效性判断锁(内容不修改不需进行字段有效性判断)
  637. Dim Hyxxpdlock As Boolean                       '行有效性判断锁(字段内容不修改不需进行行有效性判断)
  638. Dim Valilock As Boolean                         '文本框失去焦点是否进行有效性控制(TRUE 为锁定*限用网格录入)
  639. Dim Shsfts As Boolean                           '删除记录行是否提示
  640. Dim Szzls As Integer                            '网格信息数组最大下标值(网格列数-1)
  641.     
  642. '以下为固定使用变量(文本框)
  643. Dim Textvar() As Variant                 '存储变体型文本框信息
  644. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  645. Dim Textint() As Integer                 '存储整型文本框信息
  646. Dim Textstr() As String                  '存储字符型文本框信息
  647. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  648. Dim TextGroupCode As String              '文本框录入分组编码
  649. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  650. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  651. Dim CurTextIndex As Integer              '当前文本框索引值
  652. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  653. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  654. Private Sub Form_KeyPress(KeyAscii As Integer)      '控制焦点转移和限制录入字符"'"
  655.     
  656.     Select Case KeyAscii
  657.     Case 39           '屏蔽字符"'"
  658.         KeyAscii = 0
  659.     End Select
  660.     
  661. End Sub
  662. Private Sub Form_Load()                              '窗 体 装 入
  663.     
  664.     '初始化各种锁值(Fixed)
  665.     Changelock = False             '网格行列改变控制锁
  666.     Gdtlock = False                '滚动条滚动控制
  667.     Yxxpdlock = True               '字段有效性判断锁
  668.     Hyxxpdlock = True              '行有效性判断锁
  669.     Wbkbhlock = False              '文本框内容改变锁
  670.     
  671.     '报表主标题及报表编码(Fixed)
  672.     ReportTitle = "税 率 表"
  673.     XtReportCode = "PM_TaxRate"
  674.     Load Dyymctbl
  675.     
  676.     '调 入 网 格(Fixed)
  677.     GridCode = "PM_TaxRate"      '网格属性编码
  678.     Call BzWgcsh(WglrGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  679.     
  680.     Qslz = GridInf(1)
  681.     Sjhgd = GridInf(2)
  682.     Pmbcsjhs = GridInf(3)
  683.     Fzxwghs = GridInf(4)
  684.     Sfblbzkd = GridInf(5)
  685.     Shsfts = GridInf(6)
  686.     Sfxshjwg = GridInf(7)
  687.     Szzls = WglrGrid.Cols - 1
  688.     
  689.     '设置标题栏宽度、网格宽度高度(Fixed)
  690.     Pic_Title.Move 50, Pic_Title.Top, Me.Width - 150, Pic_Title.Height
  691.     WglrGrid.Move 50, Pic_Title.Top + Pic_Title.Height, Me.Width - 150
  692.     WglrGrid.Height = Me.Height - WglrGrid.Top - 380
  693.     
  694.     WglrGrid.TextMatrix(0, 0) = "有效性标志"
  695.     '生成查询结果
  696.     Call Sub_Query
  697.     
  698.     '设置状态为修改状态
  699.     Lab_OperStatus = "2"
  700.         
  701.     
  702.     If Rsc.State = 1 Then Rsc.Close
  703.     Set Rsc = Cw_DataEnvi.DataConnect.Execute("select * from gy_AccInformation where ItemCode='base'")
  704.     If Not Rsc.EOF Then
  705.        LrText(0) = Rsc!ItemValue
  706.     End If
  707.     
  708.     If Rsc.State = 1 Then Rsc.Close
  709.     Set Rsc = Cw_DataEnvi.DataConnect.Execute("select * from gy_AccInformation where ItemCode='Extra'")
  710.     If Not Rsc.EOF Then
  711.        LrText(1) = Rsc!ItemValue
  712.     End If
  713.     
  714.     '保存权限索引
  715.     Str_RightEdit = "Pm_TaxRate_edit"
  716. End Sub
  717. Private Sub Form_Unload(Cancel As Integer)           '窗体卸载
  718.     
  719.     '调入其它窗体或功能产生的有效性判断(包括数据回写)
  720.     If Not Fun_Drfrmyxxpd Then
  721.         Cancel = True
  722.         Exit Sub
  723.     End If
  724.     Set Rsc = Nothing
  725.     '卸载打印页面窗体
  726.     Unload Dyymctbl
  727.     
  728. End Sub
  729. Private Sub Sub_Query()                              '生成查询结果
  730.     
  731.     Dim Sqlstr As String                           '临时使用字符串
  732.     Dim RecTemp As New ADODB.Recordset             '临时使用动态集
  733.     Dim jsqte As Long                              '临时计数器
  734.     
  735.     '禁止网格刷新动作,为加快网格显示速度(Fixed)
  736.     WglrGrid.Redraw = False
  737.     
  738.     '查询字符串
  739.     Sqlstr = "select * from PM_taxrate order by taxGrade"
  740.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  741.     
  742.     With RecTemp
  743.         WglrGrid.Rows = WglrGrid.FixedRows
  744.         jsqte = WglrGrid.FixedRows
  745.         
  746.         Do While Not .EOF
  747.             
  748.             WglrGrid.AddItem ""
  749.             WglrGrid.TextMatrix(jsqte, 0) = "*"                                                                             '有效记录标识
  750.             WglrGrid.TextMatrix(jsqte, Sydz("001", GridStr(), Szzls)) = .Fields("TaxGrade")                  '级次
  751.             WglrGrid.TextMatrix(jsqte, Sydz("002", GridStr(), Szzls)) = .Fields("TaxLowLimit")               '级次下限
  752.             If .Fields("TaxUpLimit") <> 0 Then
  753.                 WglrGrid.TextMatrix(jsqte, Sydz("003", GridStr(), Szzls)) = .Fields("TaxUpLimit")            '级次上限
  754.             End If
  755.             WglrGrid.TextMatrix(jsqte, Sydz("004", GridStr(), Szzls)) = .Fields("TaxRate")                   '税率
  756.             WglrGrid.TextMatrix(jsqte, Sydz("005", GridStr(), Szzls)) = .Fields("QuickDeduct")               '速算扣除数
  757.            
  758.             '<<]
  759.             
  760.             WglrGrid.RowHeight(jsqte) = Sjhgd
  761.             .MoveNext
  762.             jsqte = jsqte + 1
  763.         Loop
  764.     End With
  765.     
  766.     '将网格刷新解禁(Fixed)
  767.     WglrGrid.Redraw = True
  768.     
  769.        
  770. End Sub
  771. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)
  772.     Call InputFieldLimit(LrText(Index), 4, KeyAscii)
  773.     If Len(Trim(LrText(Index))) >= 6 And KeyAscii <> 8 Then
  774.         KeyAscii = 0
  775.     End If
  776. End Sub
  777. Private Sub Tlb_Action_ButtonClick(ByVal Button As MSComctlLib.Button)             '用户点击工具条
  778.     
  779.     '屏蔽文本框,下拉组合框有效性判断
  780.     
  781.     Valilock = True
  782.     
  783.     '屏蔽网格失去焦点产生的有效性判断
  784.     
  785.     Changelock = True
  786.     
  787.     Select Case Button.Key
  788.     Case "ymsz"                                          '页面设置
  789.         Dyymctbl.Show 1
  790.     Case "yl"                                            '预 览
  791.         If Fun_Drfrmyxxpd Then
  792.             Call bbyl(True)
  793.         End If
  794.     Case "dy"                                            '打 印
  795.         If Fun_Drfrmyxxpd Then
  796.             Call bbyl(False)
  797.         End If
  798.     Case "zh"                                            '增 行
  799.         Call zjlrfl
  800.     Case "sh"                                            '删 行
  801.         Call Scdqfl
  802.     Case "bc"
  803.         Call Save_Data
  804.     Case "bz"                                            '帮 助
  805.         Call F1bz
  806.     Case "fh"                                            '退 出
  807.         Unload Me
  808.     End Select
  809.     
  810.     '解 锁
  811.     Valilock = False
  812.     Changelock = False
  813.     
  814. End Sub
  815. Private Sub Save_Data()
  816.     Dim jsqte As Long
  817.     '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  818.     If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
  819.         Exit Sub
  820.     End If
  821.             
  822.     '保存扣税基数、附加费用、税率表
  823.     If Ydtext.Visible Or YdCombo.Visible Then
  824.         Tsxx = "处于录入状态,不能保存"
  825.         Call Xtxxts(Tsxx, 0, 1)
  826.         Exit Sub
  827.     End If
  828.     
  829.       
  830.     If Val(Trim(LrText(0))) = 0 Then
  831.         Tsxx = "扣税基数不能为零!"
  832.         Call Xtxxts(Tsxx, 0, 1)
  833.         Exit Sub
  834.     End If
  835.     '判断数据有效性
  836.     With WglrGrid
  837.         For i = .FixedRows To .Rows - 1
  838.             If Trim(.TextMatrix(i, 4)) = "" Then
  839.                 Call Xtxxts("税率为空,不能保存!", 0, 1)
  840.                 .Select i, Sydz("004", GridStr(), Szzls)
  841.                 Exit Sub
  842.             End If
  843.         Next
  844.     End With
  845.     Sql = ""
  846.     With WglrGrid
  847.         For i = .FixedRows To .Rows - 1
  848.            If Trim(.TextMatrix(i, Sydz("003", GridStr(), Szzls))) <> "" Then
  849.                Sql = Sql & " insert Pm_TaxRate values(" & Val(.TextMatrix(i, Sydz("001", GridStr(), Szzls))) & "," & _
  850.                  Val(.TextMatrix(i, Sydz("002", GridStr(), Szzls))) & "," & _
  851.                  Val(.TextMatrix(i, Sydz("003", GridStr(), Szzls))) & "," & _
  852.                  Val(.TextMatrix(i, Sydz("004", GridStr(), Szzls))) & "," & _
  853.                  Val(.TextMatrix(i, Sydz("005", GridStr(), Szzls))) & ")"
  854.            Else
  855.                Sql = Sql & " insert Pm_TaxRate(taxGrade,taxLowLimit,TaxRate,QuickDeduct) values(" & Val(.TextMatrix(i, Sydz("001", GridStr(), Szzls))) & "," & _
  856.                  Val(.TextMatrix(i, Sydz("002", GridStr(), Szzls))) & "," & _
  857.                  Val(.TextMatrix(i, Sydz("004", GridStr(), Szzls))) & "," & _
  858.                  Val(.TextMatrix(i, Sydz("005", GridStr(), Szzls))) & ")"
  859.            End If
  860.         Next
  861.     End With
  862.     On Error GoTo Err1
  863.     Cw_DataEnvi.DataConnect.BeginTrans
  864.     Cw_DataEnvi.DataConnect.Execute "delete pm_TaxRate"
  865.     If Trim(Sql) <> "" Then
  866.         Cw_DataEnvi.DataConnect.Execute Sql
  867.     End If
  868.     
  869.     Sql = " update gy_AccInformation set ItemValue ='" & Val(Trim(LrText(0))) & "' where ltrim(rtrim(ItemCode))='Base'"
  870.     If Trim(LrText(1)) <> "" Then
  871.         Sql = Sql & " update gy_AccInformation set ItemValue ='" & Val(Trim(LrText(1))) & "' where ltrim(rtrim(ItemCode))='Extra'"
  872.     Else
  873.         Sql = Sql & " update gy_AccInformation set ItemValue ='0' where ltrim(rtrim(ItemCode))='Extra'"
  874.     End If
  875.     Cw_DataEnvi.DataConnect.Execute Sql
  876.     Cw_DataEnvi.DataConnect.CommitTrans
  877.     Call Xtxxts("保存成功!", 0, 4)
  878.     Exit Sub
  879. Err1:
  880.     Cw_DataEnvi.DataConnect.RollbackTrans
  881.     Call Xtxxts("保存不成功!", 0, 1)
  882. End Sub
  883. Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)        '支持热键操作
  884.     
  885.     If Shift = 2 Then
  886.         Select Case UCase(Chr(KeyCode))
  887.         Case "P"                   'Ctrl+P 打印
  888.             If Tlb_Action.Buttons("dy").Enabled Then
  889.                 Call bbyl(False)
  890.             End If
  891.         End Select
  892.     End If
  893.     
  894. End Sub
  895. Private Sub Wbkcl()                                                 '文本框录入之前处理(根据实际情况)
  896.     
  897.     Dim xswbrr As String
  898.     
  899.     With WglrGrid
  900.         Zdlrqnr = Trim(.Text)
  901.         xswbrr = Trim(.Text)
  902.         
  903.         If GridBoolean(.Col, 3) Then   '列表框录入
  904.             
  905.             '填充列表框程序
  906.             Call FillCombo(YdCombo, GridStr(.Col, 5), xswbrr, 0)
  907.         Else
  908.             Wbkbhlock = True
  909.             
  910.             '====以下为用户自定义
  911.             Ydtext.Text = xswbrr
  912.             '====以上为用户自定义
  913.             
  914.             Wbkbhlock = False
  915.             Ydtext.SelStart = Len(Ydtext.Text)
  916.         End If
  917.     End With
  918.     
  919. End Sub
  920. Private Function sjzdyxxpd(Dqpdwgh As Long, Dqpdwgl As Long) As Boolean       '录入数据字段有效性判断,同时进行字段录入事后处理
  921.     '函数参数:Dqpdwgh, Dqpdwgl 当前要判断网格单元所处行列值
  922.     
  923.     Dim Str_JudgeText As String                 '临时有效性判断字段内容(Fixed)
  924.     Dim Coljsq As Long                          '临时列计数器(Fixed)
  925.     Dim RecTemp As New ADODB.Recordset          '临时使用动态集(Fixed)
  926.     Dim Sqlstr As String                        '临时使用查询字符串(Fixed)
  927.     
  928.     With WglrGrid
  929.         
  930.         '非录入状态或非数据行则其有效性为合法(Fixed)
  931.         If Yxxpdlock Or .Row < .FixedRows Then
  932.             sjzdyxxpd = True
  933.             Exit Function
  934.         End If
  935.         
  936.         '取得当前要判断字段内容(Fixed)
  937.         Str_JudgeText = Trim(.TextMatrix(Dqpdwgh, Dqpdwgl))
  938.         
  939.         '根据不同字段进行相应的处理(依据其逻辑编号)
  940.         
  941.         Select Case GridStr(Dqpdwgl, 1)
  942.             
  943.             '[>>以下为自定义部分
  944.             
  945.         Case "003"
  946.             For i = Dqlrwgh To .Rows - 1   ' by tjx
  947.                 Str_JudgeText = Trim(.TextMatrix(i, Dqpdwgl))
  948.                 If Trim(Str_JudgeText) <> "" Then
  949.                     If Val(Trim(Str_JudgeText)) < Val(Trim(.TextMatrix(i, Dqpdwgl - 1))) Then
  950.                        Tsxx = "应纳税所得额上限不能小于同级的应纳税所得额下限!"
  951.                        Dqlrwgh = i
  952.                        GoTo Lrcwcl
  953.                     End If
  954.                      '本级的上限变化,下级的下限跟着变化
  955.                     If i <> .Rows - 1 Then
  956.                         .TextMatrix(i + 1, Sydz("002", GridStr(), Szzls)) = _
  957.                         .TextMatrix(i, Sydz("003", GridStr(), Szzls))
  958.                     End If
  959.                     
  960.                     If Trim(.TextMatrix(i, Dqpdwgl + 1)) <> "" Then
  961.                        Call CalDedu(i)
  962.                     End If
  963.                 Else
  964.                     If i < .Rows - 1 Then
  965.                        Tsxx = "有下级数据,上限不能为空!"
  966.                        Dqlrwgh = i
  967.                        GoTo Lrcwcl
  968.                     End If
  969.                 End If
  970.             Next
  971.          Case "004"
  972.              If Val(Str_JudgeText) <> 0 Then
  973.                  Call CalDedu(Dqpdwgh)       '计算速算扣除数
  974.              Else
  975.                  Tsxx = "税率不能为零!"
  976.                  GoTo Lrcwcl
  977.              End If
  978.             '<<以上为自定义部分]
  979.         End Select
  980.         
  981.         '字段录入正确后为零字段清空(Fixed)
  982.         Call Qkwlzd(Dqpdwgh, Dqpdwgl)
  983.         
  984.        
  985.         '字段有效性判断通过,将字段有效性判断加锁直至再次改变(Fixed)
  986.         sjzdyxxpd = True
  987.         Yxxpdlock = True
  988.         Exit Function
  989.     End With
  990.     
  991. Lrcwcl:    '录入错误处理(Fixed)
  992.     
  993.     With WglrGrid
  994.         '给出错误提示信息
  995.         Call Xtxxts(Tsxx, 0, 1)
  996.         
  997.         '返回网格错误位置(ChangeLock避免再次引发RowColChange有效性判断),装入录入载体
  998.         Changelock = True
  999.         .Select Dqpdwgh, Dqpdwgl
  1000.         Changelock = False
  1001.         Call xswbk
  1002.         
  1003.         '函数返回False
  1004.         sjzdyxxpd = False
  1005.         Exit Function
  1006.     End With
  1007.     
  1008. End Function
  1009. Private Sub CalDedu(Row As Long)
  1010.     '计算速算扣除数
  1011.     Dim i As Long
  1012.     Dim Dedu As Single
  1013.     With WglrGrid
  1014.         If .Rows = .FixedRows + 1 Then
  1015.             Exit Sub
  1016.         End If
  1017.         If Row = .FixedRows Then
  1018.             Dedu = 0
  1019.             Row = Row + 1
  1020.         Else
  1021.             Dedu = .TextMatrix(Row - 1, Sydz("005", GridStr(), Szzls))
  1022.         End If
  1023.         
  1024.         For i = Row To .Rows - 1
  1025.             Dedu = Dedu + Val(.TextMatrix(i, Sydz("002", GridStr(), Szzls))) * 0.01 _
  1026.                    * (Val(.TextMatrix(i, Sydz("004", GridStr(), Szzls))) _
  1027.                    - Val(.TextMatrix(i - 1, Sydz("004", GridStr(), Szzls))))
  1028.             .TextMatrix(i, Sydz("005", GridStr(), Szzls)) = Dedu
  1029.         Next
  1030.         
  1031.     End With
  1032. End Sub
  1033. Private Function Sjhzyxxpd(ByVal Yxxpdh As Long) As Boolean                  '录入数据行有效性判断,同时进行行处理
  1034.     
  1035.     Dim Lrywlz As Long                     '录入错误列值(Fixed)
  1036.     Dim RecTemp As New ADODB.Recordset     '临时使用动态集
  1037.     Dim Sqlstr As String                   '临时查询字符串
  1038.     
  1039.     With WglrGrid
  1040.         
  1041.         '判断行为空和无效数据行则清除当前行
  1042.         If .Rows <= .FixedRows Then Exit Function   ' 如果没有记录,则退出
  1043.         If .TextMatrix(Yxxpdh, 0) <> "*" Then
  1044.             Sjhzyxxpd = True
  1045.             Exit Function
  1046.         Else
  1047.             If pdhwk(Yxxpdh) And Yxxpdh + 1 <= .Rows - 1 Then
  1048.                 If .TextMatrix(Yxxpdh + 1, 0) <> "*" Then
  1049.                     Changelock = True
  1050.                     .RemoveItem Yxxpdh
  1051.                     
  1052.                     If .Rows < Pmbcsjhs + .FixedRows + Fzxwghs + 1 Then
  1053.                         .AddItem ""
  1054.                         .RowHeight(.Rows - 1) = Sjhgd
  1055.                     End If
  1056.                     
  1057.                     Changelock = False
  1058.                     Sjhzyxxpd = True
  1059.                     Exit Function
  1060.                 End If
  1061.             End If
  1062.         End If
  1063.         
  1064.         '行没有发生变化则不进行有效性判断
  1065.         If Hyxxpdlock Then
  1066.             Sjhzyxxpd = True
  1067.             Exit Function
  1068.         End If
  1069.         
  1070.         '以下为自定义部分[
  1071.         
  1072.         '1.1首先进行单个不能为空或不能为零判断(Fixed)
  1073.         For jsqte = Qslz To .Cols - 1
  1074.             
  1075.             '字段不能为空
  1076.             If GridInt(jsqte, 5) = 1 Then
  1077.                 If Len(Trim(.TextMatrix(Yxxpdh, jsqte))) = 0 Then
  1078.                     Tsxx = GridStr(jsqte, 2)
  1079.                     Lrywlz = jsqte
  1080.                     GoTo Lrcwcl
  1081.                     Exit For
  1082.                 End If
  1083.             End If
  1084.             
  1085.             '字段不能为零
  1086.             If GridInt(jsqte, 5) = 2 Then
  1087.                 If Val(Trim(.TextMatrix(Yxxpdh, jsqte))) = 0 Then
  1088.                     Tsxx = GridStr(jsqte, 2)
  1089.                     Lrywlz = jsqte
  1090.                     GoTo Lrcwcl
  1091.                     Exit For
  1092.                 End If
  1093.             End If
  1094.             
  1095.         Next jsqte
  1096.         
  1097.         
  1098.         '1.2进行其他有效性判断,编写格式同1.1
  1099.         
  1100.         '2.放置行处理程序(当数据行通过有效性判断)
  1101.         
  1102. '
  1103.     End With
  1104. '
  1105. '    '以上为自定义部分]
  1106. '
  1107.     Sjhzyxxpd = True
  1108.     Hyxxpdlock = True
  1109.     Exit Function
  1110.     
  1111. Lrcwcl:      '录入错误处理
  1112.     
  1113.     With WglrGrid
  1114.         Call Xtxxts(Tsxx, 0, 1)
  1115.         Changelock = True
  1116.         .Select Yxxpdh, Lrywlz
  1117.         Changelock = False
  1118.         Call xswbk
  1119.         
  1120.         Sjhzyxxpd = False
  1121.         Exit Function
  1122.     End With
  1123.     
  1124. End Function
  1125. '===================以 下 程 序 为 通 用 部 分 ,一 般 不 需 更 改(程序动作部分)======================='
  1126. Private Sub Sub_AdjustGrid()
  1127.     
  1128.     '调 整 网 格
  1129.     With WglrGrid
  1130.         '加 1 保持一行录入行
  1131.         If .Rows < Pmbcsjhs + .FixedRows + Fzxwghs + 1 Then
  1132.             .Rows = Pmbcsjhs + .FixedRows + Fzxwghs + 1
  1133.             For jsqte = .FixedRows To .Rows - 1
  1134.                 .RowHeight(jsqte) = Sjhgd
  1135.             Next jsqte
  1136.         End If
  1137.         
  1138.         '判断是否有辅助行和录入行,如没有则加行
  1139.         Do While .TextMatrix(.Rows - 1 - Fzxwghs, 0) = "*"
  1140.             .AddItem ""
  1141.             .RowHeight(.Rows - 1) = Sjhgd
  1142.         Loop
  1143.     
  1144.     End With
  1145.     
  1146. End Sub
  1147. Private Sub Lrzdbz()                                                      '录入字段帮助
  1148.     
  1149.     If Not Ydcommand.Visible Then
  1150.         Exit Sub
  1151.     End If
  1152.     
  1153.     With WglrGrid
  1154.         
  1155.         Valilock = True
  1156.         
  1157.         '处理通用部分
  1158.         Changelock = True        '调入另外窗体必须加锁
  1159.         Call Drbmhelp(GridInt(.Col, 6), GridStr(.Col, 3), Trim(Ydtext.Text))
  1160.         Changelock = False
  1161.         
  1162.         If Len(Xtfhcs) <> 0 Then
  1163.             If GridInt(.Col, 7) = 0 Then
  1164.                 Ydtext.Text = Xtfhcs
  1165.             Else
  1166.                 Ydtext.Text = Xtfhcsfz
  1167.             End If
  1168.         End If
  1169.         
  1170.         Valilock = False
  1171.         
  1172.         If Ydtext.Visible Then
  1173.             Ydtext.SetFocus
  1174.         End If
  1175.         
  1176.     End With
  1177.     
  1178. End Sub
  1179. Private Sub Form_Resize()                                                '窗体大小发生变化时,重新显示文本框
  1180.     
  1181.     Call Cxxswbk
  1182.     
  1183. End Sub
  1184. Private Function Fun_Drfrmyxxpd() As Boolean                             '调入其它窗体或功能产生的有效性判断(包括数据回写)
  1185.     
  1186.     Fun_Drfrmyxxpd = True
  1187.     
  1188.     With WglrGrid
  1189.         '如果当前网格处于编辑状态,则先进行数据回写再进行有效性判断
  1190.         
  1191.         If Ydtext.Visible Or YdCombo.Visible Then
  1192.             Call Lrsjhx
  1193.             If Not sjzdyxxpd(Dqlrwgh, Dqlrwgl) Then
  1194.                 Fun_Drfrmyxxpd = False
  1195.                 Exit Function
  1196.             End If
  1197.         End If
  1198.         
  1199.         '进行行有效性判断
  1200.         If Not Sjhzyxxpd(.Row) Then
  1201.             Fun_Drfrmyxxpd = False
  1202.             Exit Function
  1203.         End If
  1204.     End With
  1205.     
  1206. End Function
  1207. Private Sub WglrGrid_EnterCell()                                                 '显示当前数据行相关信息
  1208.     
  1209.     With WglrGrid
  1210.         If .Row >= .FixedRows Then
  1211.             '[>>
  1212.             '此处可以填写显示与此网格行相关信息
  1213.             '<<]
  1214.         End If
  1215.     End With
  1216.     
  1217. End Sub
  1218. Private Sub WglrGrid_GotFocus()                                     '网格得到焦点
  1219.     
  1220.     '网格得到焦点,如果当前选择行为非数据行
  1221.     '则调整当前焦点至有效数据行
  1222.     
  1223.     With WglrGrid
  1224.         If .Row < .FixedRows And .Rows > .FixedRows Then
  1225.             Changelock = True
  1226.             .Select .FixedRows, .Col
  1227.             Changelock = False
  1228.         End If
  1229.         If .Col < Qslz Then
  1230.             Changelock = True
  1231.             .Select .Row, Qslz
  1232.             Changelock = False
  1233.         End If
  1234.     End With
  1235.     
  1236. End Sub
  1237. Private Sub WglrGrid_LostFocus()                                    '录入网格失去焦点
  1238.     
  1239.     '用以屏蔽调用其它窗体时发生网格失去焦点事件
  1240.     If Changelock Then
  1241.         Exit Sub
  1242.     End If
  1243.     
  1244.     '引发网格RowcolChange事件
  1245.     With WglrGrid
  1246.         If Not (Ydtext.Visible Or YdCombo.Visible) Then
  1247.             .Select 0, 0
  1248.         End If
  1249.     End With
  1250.     
  1251. End Sub
  1252. Private Sub WglrGrid_AfterScroll(ByVal OldTopRow As Long, ByVal OldLeftCol As Long, ByVal NewTopRow As Long, ByVal NewLeftCol As Long)                                       '限制用户在录入过程中滚动鼠标
  1253.     
  1254.     If Gdtlock Then
  1255.         Exit Sub
  1256.     End If
  1257.     
  1258.     With WglrGrid
  1259.         If Ydtext.Visible Or YdCombo.Visible Then
  1260.             Gdtlock = True
  1261.             .TopRow = Dqtoprow
  1262.             .LeftCol = Dqleftcol
  1263.             Gdtlock = False
  1264.             Exit Sub
  1265.         End If
  1266.     End With
  1267.     
  1268. End Sub
  1269. Private Sub WglrGrid_LeaveCell()                                    '离开单元格
  1270.     
  1271.     If Changelock Then
  1272.         Exit Sub
  1273.     End If
  1274.     
  1275.     '记录刚刚离开网格单元的行列值
  1276.     Dqlkwgh = WglrGrid.Row
  1277.     Dqlkwgl = WglrGrid.Col
  1278.     
  1279.     '判断是否需要录入数据回写
  1280.     If Not (Ydtext.Visible Or YdCombo.Visible) Then
  1281.         Exit Sub
  1282.     End If
  1283.     
  1284.     Call Lrsjhx
  1285.     
  1286. End Sub
  1287. Private Sub WglrGrid_RowColChange()                                '网格录入行列发生变化时,进行有效性判断
  1288.     
  1289.     Valilock = True       '屏蔽文本框失去焦点进行有效性判断
  1290.     
  1291.     With WglrGrid
  1292.         If Changelock Then
  1293.             Exit Sub
  1294.         End If
  1295.         
  1296.         If Not sjzdyxxpd(Dqlrwgh, Dqlrwgl) Then
  1297.             Exit Sub
  1298.         End If
  1299.         If .Row <> Dqlkwgh Then
  1300.             If Not Sjhzyxxpd(Dqlkwgh) Then
  1301.                 Exit Sub
  1302.             End If
  1303.         End If
  1304.        
  1305.     End With
  1306.     
  1307.     Call fhyxh
  1308.     Call Xldql
  1309.     
  1310. End Sub
  1311. Private Sub WglrGrid_DblClick()          '鼠标双击网格显示文本框
  1312.     
  1313.     With WglrGrid
  1314.         If .Rows <> .FixedRows Then
  1315.             Call xswbk
  1316.         End If
  1317.     End With
  1318.     
  1319. End Sub
  1320. Private Sub Ycwbk()                      '隐藏文本框,帮助按钮,列表组合框
  1321.     
  1322.     Valilock = True
  1323.     Ydtext.Visible = False
  1324.     YdCombo.Visible = False
  1325.     Ydcommand.Visible = False
  1326.     
  1327. End Sub
  1328. Private Sub YdCombo_KeyDown(KeyCode As Integer, Shift As Integer)        '列表框移动
  1329.     With WglrGrid
  1330.         Select Case KeyCode
  1331.         Case vbKeyEscape                'ESC 键放弃录入
  1332.             Valilock = True
  1333.             .SetFocus
  1334.             Call Ycwbk
  1335.             Valilock = False
  1336.         Case vbKeyReturn                '回 车 键 =13
  1337.             KeyCode = 0
  1338.             .SetFocus
  1339.             Call Lrsjhx
  1340.             Rowjsq = .Row
  1341.             Coljsq = .Col + 1
  1342.             If Coljsq > .Cols - 1 Then
  1343.                 If Rowjsq < .Rows - 1 Then
  1344.                     Rowjsq = Rowjsq + 1
  1345.                 End If
  1346.                 Coljsq = Qslz
  1347.             End If
  1348.             Do While Rowjsq <= .Rows - 1
  1349.                 If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  1350.                     Coljsq = Coljsq + 1
  1351.                     If Coljsq > .Cols - 1 Then
  1352.                         Rowjsq = Rowjsq + 1
  1353.                         Coljsq = Qslz
  1354.                     End If
  1355.                 Else
  1356.                     Exit Do
  1357.                 End If
  1358.             Loop
  1359.             .Select Rowjsq, Coljsq
  1360.             
  1361.         Case vbKeyLeft                  '左 箭 头 =37
  1362.             If .Col - 1 = Qslz Then
  1363.                 If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  1364.                     GoTo jzzx
  1365.                 End If
  1366.             End If
  1367.             If .Col > Qslz Then
  1368.                 KeyCode = 0
  1369.                 .SetFocus
  1370.                 Call Lrsjhx
  1371.                 Coljsq = .Col - 1
  1372.                 Do While Coljsq > Qslz
  1373.                     If Coljsq - 1 = Qslz Then
  1374.                         If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  1375.                             GoTo jzzx
  1376.                         End If
  1377.                     End If
  1378.                     If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  1379.                         Coljsq = Coljsq - 1
  1380.                     Else
  1381.                         Exit Do
  1382.                     End If
  1383.                 Loop
  1384.                 .Select .Row, Coljsq
  1385.             End If
  1386.             
  1387.         Case vbKeyRight                 '右 箭 头 =39
  1388.             KeyCode = 0
  1389.             .SetFocus
  1390.             Call Lrsjhx
  1391.             Rowjsq = .Row
  1392.             Coljsq = .Col + 1
  1393.             If Coljsq > .Cols - 1 Then
  1394.                 If Rowjsq < .Rows - 1 Then
  1395.                     Rowjsq = Rowjsq + 1
  1396.                 End If
  1397.                 Coljsq = Qslz
  1398.             End If
  1399.             Do While Rowjsq <= .Rows - 1
  1400.                 If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  1401.                     Coljsq = Coljsq + 1
  1402.                     If Coljsq > .Cols - 1 Then
  1403.                         Rowjsq = Rowjsq + 1
  1404.                         Coljsq = Qslz
  1405.                     End If
  1406.                 Else
  1407.                     Exit Do
  1408.                 End If
  1409.             Loop
  1410.             .Select Rowjsq, Coljsq
  1411.         Case Else
  1412.             
  1413.         End Select
  1414.         
  1415. jzzx:
  1416.         
  1417.     End With
  1418.     
  1419. End Sub
  1420. Private Sub YdCombo_LostFocus()
  1421.     
  1422.     With WglrGrid                                    '因为选中网格会先发生Rowcolchange事件置Valiock
  1423.         If Not Valilock Then                           '为TRUE
  1424.             Call Lrsjhx
  1425.             If Not Sjhzyxxpd(Dqlrwgh) Then
  1426.                 Exit Sub
  1427.             End If
  1428.         End If
  1429.     End With
  1430. End Sub
  1431. Private Sub Ydcommand_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  1432.     
  1433.     Call Lrzdbz
  1434.     
  1435. End Sub
  1436. Private Sub ydtext_KeyDown(KeyCode As Integer, Shift As Integer)
  1437.     
  1438.     Dim Rowjsq As Long, Coljsq As Long
  1439.     
  1440.     With WglrGrid
  1441.         Select Case KeyCode
  1442.         Case vbKeyF2
  1443.             Call Lrzdbz
  1444.         Case vbKeyEscape                'ESC 键放弃录入
  1445.             Valilock = True
  1446.             Call Ycwbk
  1447.             .SetFocus
  1448.         Case vbKeyReturn                '回 车 键 =13
  1449.             KeyCode = 0
  1450.             .SetFocus
  1451.             Call Lrsjhx
  1452.             Rowjsq = .Row
  1453.             Coljsq = .Col + 1
  1454.             If Coljsq > .Cols - 1 Then
  1455.                 If Rowjsq < .Rows - 1 Then
  1456.                     Rowjsq = Rowjsq + 1
  1457.                 Else
  1458.                     Call zjlrfl
  1459.                     Rowjsq = Rowjsq + 1
  1460.                 End If
  1461.                 Coljsq = Sydz("003", GridStr(), Szzls)
  1462.             End If
  1463.             Do While Rowjsq < .Rows - 1
  1464.                 If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  1465.                     Coljsq = Coljsq + 1
  1466.                     If Coljsq > .Cols - 1 Then
  1467.                         Rowjsq = Rowjsq + 1
  1468.                         Coljsq = Sydz("003", GridStr(), Szzls)
  1469.                     End If
  1470.                 Else
  1471.                     Exit Do
  1472.                 End If
  1473.             Loop
  1474.             If Rowjsq <= .Rows - 1 Then
  1475.                 .Select Rowjsq, Coljsq
  1476.             End If
  1477.             
  1478.         Case vbKeyUp                    '上 箭 头 =38
  1479.             KeyCode = 0
  1480.             .SetFocus
  1481.             Call Lrsjhx
  1482.             If .Row > .FixedRows Then
  1483.                 .Row = .Row - 1
  1484.             End If
  1485.             
  1486.         Case vbKeyDown                  '下 箭 头 =40
  1487.             KeyCode = 0
  1488.             .SetFocus
  1489.             Call Lrsjhx
  1490.             If .Row < .Rows - 1 Then
  1491.                 .Row = .Row + 1
  1492.             End If
  1493.             
  1494.         Case vbKeyLeft                  '左 箭 头 =37
  1495.             If .Col - 1 = Qslz Then
  1496.                 If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  1497.                     GoTo jzzx
  1498.                 End If
  1499.             End If
  1500.             If Ydtext.SelStart = 0 And .Col > Qslz Then
  1501.                 KeyCode = 0
  1502.                 .SetFocus
  1503.                 Call Lrsjhx
  1504.                 Coljsq = .Col - 1
  1505.                 Do While Coljsq > Qslz
  1506.                     If Coljsq - 1 = Qslz Then
  1507.                         If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  1508.                             GoTo jzzx
  1509.                         End If
  1510.                     End If
  1511.                     If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  1512.                         Coljsq = Coljsq - 1
  1513.                     Else
  1514.                         Exit Do
  1515.                     End If
  1516.                 Loop
  1517.                 .Select .Row, Coljsq
  1518.             End If
  1519. jzzx:
  1520.             
  1521.         Case vbKeyRight                 '右 箭 头 =39
  1522.             wblong = Len(Ydtext.Text)
  1523.             If (Ydtext.SelStart = wblong Or Ydtext.SelLength = wblong) Then
  1524.                 KeyCode = 0
  1525.                 .SetFocus
  1526.                 Call Lrsjhx
  1527.                 Rowjsq = .Row
  1528.                 Coljsq = .Col + 1
  1529.                 If Coljsq > .Cols - 1 Then
  1530.                     If Rowjsq < .Rows - 1 Then
  1531.                         Rowjsq = Rowjsq + 1
  1532.                     Else
  1533.                         Call zjlrfl
  1534.                         Rowjsq = Rowjsq + 1
  1535.                     End If
  1536.                     Coljsq = Sydz("003", GridStr(), Szzls)
  1537.                 End If
  1538.                 Do While Rowjsq <= .Rows - 1
  1539.                     If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  1540.                         Coljsq = Coljsq + 1
  1541.                         If Coljsq > .Cols - 1 Then
  1542.                             Rowjsq = Rowjsq + 1
  1543.                             Coljsq = Sydz("003", GridStr(), Szzls)
  1544.                         End If
  1545.                     Else
  1546.                         Exit Do
  1547.                     End If
  1548.                 Loop
  1549.                 .Select Rowjsq, Coljsq
  1550.             End If
  1551.         Case Else
  1552.             
  1553.         End Select
  1554.     End With
  1555.     
  1556. End Sub
  1557. Private Sub ydtext_KeyPress(KeyAscii As Integer)         '录入字符事中控制
  1558.     
  1559.     Call InputFieldLimit(Ydtext, GridInt(WglrGrid.Col, 1), KeyAscii)
  1560.     
  1561.     If KeyAscii <> 0 Then
  1562.         Call Xyxhbz(Dqlrwgh)
  1563.     End If
  1564.     
  1565. End Sub
  1566. Private Sub ydtext_Change()                              '录入事中变化处理
  1567.     
  1568.     '防止程序改变但不进行处理
  1569.     
  1570.     If Wbkbhlock Then
  1571.         Exit Sub
  1572.     End If
  1573.     
  1574.     With WglrGrid
  1575.         
  1576.         '限制字段录入长度
  1577.         Wbkbhlock = True
  1578.         
  1579.         Call TextChangeLimit(Ydtext, GridInt(.Col, 1))  '去掉无效字符
  1580.          
  1581.         Select Case GridInt(.Col, 1)
  1582.         Case 8, 11   '金额型
  1583.             Call Sjgskz(Ydtext, Xtjezws - Xtjexsws - 1, Xtjexsws)
  1584.         Case 9, 12   '数量型
  1585.             Call Sjgskz(Ydtext, Xtslzws - Xtslxsws - 1, Xtslxsws)
  1586.         Case 10      '单价型
  1587.             Call Sjgskz(Ydtext, Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  1588.         Case Else    '其他类型
  1589.             If GridInt(.Col, 3) <> 0 Or GridInt(.Col, 4) <> 0 Then
  1590.                 Call Sjgskz(Ydtext, GridInt(.Col, 3), GridInt(.Col, 4))
  1591.             End If
  1592.         End Select
  1593.         Wbkbhlock = False
  1594.     End With
  1595.     
  1596. End Sub
  1597. Private Sub ydtext_LostFocus()            '如果由于选中网格之外的控件而发生有效性判断(选中网格会先发生Rowcolchange事件置Valiock为TRUE)
  1598.     
  1599.     With WglrGrid
  1600.         If Not Valilock Then
  1601.             Call Lrsjhx
  1602.             If Not sjzdyxxpd(Dqlrwgh, Dqlrwgl) Then
  1603.                 Exit Sub
  1604.             End If
  1605.             If Not Sjhzyxxpd(Dqlrwgh) Then
  1606.                 Exit Sub
  1607.             End If
  1608.         End If
  1609.     End With
  1610.     
  1611. End Sub
  1612. Private Sub xswbk()                       '在当前选中单元显示文本框,列表框,帮助按钮(通用)
  1613.     
  1614.     Dim Wbkpy As Integer, Wbkpy1 As Integer '文本框偏移量
  1615.     
  1616.     '当某种条件成立时禁止文本框激活使单据处于录入状态
  1617.     If Not Fun_AllowInput Then
  1618.         Exit Sub
  1619.     End If
  1620.     
  1621.     '显示文本框前返回有效行列(解决滚动条问题)
  1622.     Call Xldqh
  1623.     Call Xldql
  1624.     
  1625.     '隐藏文本框,帮助按钮,列表组合框
  1626.     Call Ycwbk
  1627.     
  1628.     With WglrGrid
  1629.         
  1630.         Dqlrwgh = .Row
  1631.         Dqlrwgl = .Col
  1632.         If Not GridBoolean(.Col, 1) Or .Row < .FixedRows Then
  1633.             Exit Sub
  1634.         End If
  1635.         
  1636.         Wbkpy = 30
  1637.         Wbkpy1 = 15
  1638.         
  1639.         On Error Resume Next
  1640.         
  1641.         If GridBoolean(.Col, 3) Then
  1642.             YdCombo.Left = .CellLeft + .Left + Wbkpy
  1643.             YdCombo.Top = .CellTop + .Top + Wbkpy
  1644.             YdCombo.Width = .CellWidth - Wbkpy1
  1645.             Call Wbkcl
  1646.             YdCombo.Visible = True
  1647.             YdCombo.SetFocus
  1648.             Ydcommand.Visible = False
  1649.             Ydtext.Visible = False
  1650.         Else
  1651.             If GridBoolean(.Col, 2) Then
  1652.                 Ydcommand.Left = .Left + .CellLeft + .CellWidth - Ydcommand.Width + Wbkpy
  1653.                 Ydcommand.Top = .Top + .CellTop + .CellHeight - Ydcommand.Height + Wbkpy
  1654.                 Ydcommand.Visible = True
  1655.             Else
  1656.                 Ydcommand.Visible = False
  1657.             End If
  1658.             
  1659.             Ydtext.Left = .CellLeft + .Left + Wbkpy
  1660.             Ydtext.Top = .CellTop + .Top + Wbkpy
  1661.             
  1662.             If Ydcommand.Visible Then
  1663.                 If Sfblbzkd Then
  1664.                     Ydtext.Width = .CellWidth - Ydcommand.Width
  1665.                 Else
  1666.                     Ydtext.Width = .CellWidth - Wbkpy1
  1667.                 End If
  1668.             Else
  1669.                 Ydtext.Width = .CellWidth - Wbkpy1
  1670.             End If
  1671.             
  1672.             Ydtext.Height = .CellHeight - Wbkpy1
  1673.             
  1674.             If GridInt(.Col, 2) <> 0 Then
  1675.                 Ydtext.MaxLength = GridInt(.Col, 2)
  1676.             Else
  1677.                 Ydtext.MaxLength = 3000
  1678.             End If
  1679.             
  1680.             Call Wbkcl
  1681.             
  1682.             Ydtext.Visible = True
  1683.             Ydtext.SetFocus
  1684.         End If
  1685.         
  1686.         Dqtoprow = .TopRow
  1687.         Dqleftcol = .LeftCol
  1688.         
  1689.         '重置锁值
  1690.         Valilock = False
  1691.         Wbkbhlock = False
  1692.         
  1693.     End With
  1694.     
  1695. End Sub
  1696. Private Function Fun_AllowInput() As Boolean                           '当某种条件成立时禁止文本框激活使单据处于录入状态
  1697.     
  1698.     '如果单据操作状态为浏览状态则不能显示录入载体(通用)
  1699.     If Trim(Lab_OperStatus.Caption) = "1" Then
  1700.         Exit Function
  1701.     End If
  1702.     
  1703.     '[>>
  1704.     
  1705.     '此处可以填写禁止文本框激活使单据处于录入状态的理由
  1706.     
  1707.     '<<]
  1708.     
  1709.     Fun_AllowInput = True
  1710.     
  1711. End Function
  1712. Private Sub Cxxswbk()                                                  'Formresize中重新显示文本框,列表框,帮助按钮(通用)
  1713.     
  1714.     Dim Wbkpy As Integer, Wbkpy1 As Integer
  1715.     
  1716.     Wbkpy = 30
  1717.     Wbkpy1 = 15
  1718.     
  1719.     With WglrGrid
  1720.         If YdCombo.Visible Then
  1721.             YdCombo.Left = .CellLeft + .Left + Wbkpy
  1722.             YdCombo.Top = .CellTop + .Top + Wbkpy
  1723.             YdCombo.Width = .CellWidth - Wbkpy1
  1724.         End If
  1725.         If Ydcommand.Visible Then
  1726.             Ydcommand.Left = .Left + .CellLeft + .CellWidth - Ydcommand.Width + Wbkpy
  1727.             Ydcommand.Top = .Top + .CellTop + .CellHeight - Ydcommand.Height + Wbkpy
  1728.         End If
  1729.         If Ydtext.Visible Then
  1730.             If Ydcommand.Visible Then
  1731.                 If Sfblbzkd Then
  1732.                     Ydtext.Width = .CellWidth - Ydcommand.Width
  1733.                 Else
  1734.                     Ydtext.Width = .CellWidth - Wbkpy1
  1735.                 End If
  1736.             Else
  1737.                 Ydtext.Width = .CellWidth - Wbkpy1
  1738.             End If
  1739.             
  1740.             Ydtext.Left = .CellLeft + .Left + Wbkpy
  1741.             Ydtext.Top = .CellTop + .Top + Wbkpy
  1742.             Ydtext.Height = .CellHeight - Wbkpy1
  1743.         End If
  1744.     End With
  1745.     
  1746. End Sub
  1747. Private Sub Lrsjhx()                                                   '文本框录入数据回写
  1748.     
  1749.     With WglrGrid
  1750.         If YdCombo.Visible Then
  1751.             .Text = Trim(YdCombo.Text)
  1752.         End If
  1753.         If Ydtext.Visible Then
  1754.             .Text = Trim(Ydtext.Text)
  1755.         End If
  1756.         
  1757.         '(如果字段录入内容发生变化,则打开有效性判断锁)
  1758.         If Zdlrqnr <> Trim(.Text) Then
  1759.             Yxxpdlock = False
  1760.             Hyxxpdlock = False
  1761.         End If
  1762.         
  1763.         '如果字段录入内容不为空则写数据行有效性标志
  1764.         
  1765.         If Len(Trim(.Text)) <> 0 Then
  1766.             Call Xyxhbz(.Row)
  1767.         End If
  1768.         
  1769.         '隐藏文本框,帮助按钮,列表组合框
  1770.         Call Ycwbk
  1771.     End With
  1772.     
  1773. End Sub
  1774. Private Sub WglrGrid_KeyDown(KeyCode As Integer, Shift As Integer)    '网格录入增行,删行快捷键
  1775.     
  1776.     '如果单据操作状态为浏览状态则不能显示录入载体
  1777.     If Trim(Lab_OperStatus.Caption) = "1" Then
  1778.         Exit Sub
  1779.     End If
  1780.     
  1781.     Select Case KeyCode
  1782.     Case vbKeyF2                   '按F2键参照
  1783.         Call xswbk
  1784.         Call Lrzdbz
  1785.     Case vbKeyDelete               '删行
  1786.         Call Scdqfl
  1787.     Case vbKeyInsert               '增行
  1788.         Call zjlrfl
  1789.     End Select
  1790.     
  1791. End Sub
  1792. Private Sub WglrGrid_KeyPress(KeyAscii As Integer)                             '网格接受键盘录入
  1793.     
  1794.     '当某种条件成立时禁止文本框激活使单据处于录入状态
  1795.     If Not Fun_AllowInput Then
  1796.         Exit Sub
  1797.     End If
  1798.     
  1799.     With WglrGrid
  1800.         
  1801.         '屏 蔽 回 车 键
  1802.         If KeyAscii = vbKeyReturn Then
  1803.             KeyAscii = 0
  1804.             Rowjsq = .Row
  1805.             Coljsq = .Col + 1
  1806.             If Coljsq > .Cols - 1 Then
  1807.                 If Rowjsq < .Rows - 1 Then
  1808.                     Rowjsq = Rowjsq + 1
  1809.                 Else
  1810.                     Call zjlrfl
  1811.                     Rowjsq = Rowjsq + 1
  1812.                 End If
  1813.                 Coljsq = Sydz("003", GridStr(), Szzls)
  1814.             End If
  1815.             Do While Rowjsq < .Rows - 1
  1816.                 If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  1817.                     Coljsq = Coljsq + 1
  1818.                     If Coljsq > .Cols - 1 Then
  1819.                         Rowjsq = Rowjsq + 1
  1820.                         Coljsq = Sydz("003", GridStr(), Szzls)
  1821.                     End If
  1822.                 Else
  1823.                     Exit Do
  1824.                 End If
  1825.             Loop
  1826.             
  1827.             If Rowjsq <= .Rows - 1 Then
  1828.                 .Select Rowjsq, Coljsq
  1829.             End If
  1830.             
  1831.             Exit Sub
  1832.         End If
  1833.         
  1834.         '接受用户录入
  1835.         Select Case KeyAscii
  1836.         Case 0 To 32             '用户输入KeyAscii为0-32的键 如空格
  1837.             
  1838.             '显示录入载体
  1839.             Call xswbk
  1840.             
  1841.         Case Else
  1842.             
  1843.             '防止非编辑字段SendKeys()出现死循环
  1844.             If Not GridBoolean(.Col, 1) Or .Row < .FixedRows Then
  1845.                 Exit Sub
  1846.             End If
  1847.             
  1848.             '如果此字段为列表框录入则调入相应列表框
  1849.             If GridBoolean(.Col, 3) Then
  1850.                 
  1851.                 '列表框录入
  1852.                 Call xswbk
  1853.             Else
  1854.                 
  1855.                 Ydtext.Text = ""
  1856.                 
  1857.                 '录入限制
  1858.                 Call InputFieldLimit(Ydtext, GridInt(WglrGrid.Col, 1), KeyAscii)
  1859.                 
  1860.                 If KeyAscii = 0 Then
  1861.                     Exit Sub
  1862.                 End If
  1863.                 
  1864.                 '如果录入字符有效则写有效行数据标志
  1865.                 Call Xyxhbz(.Row)
  1866.                 Call xswbk
  1867.                 Ydtext.Text = ""
  1868.                 Valilock = True
  1869.                 SendKeys Chr(KeyAscii), True
  1870.                 DoEvents
  1871.                 Valilock = False
  1872.             End If
  1873.         End Select
  1874.     End With
  1875.     
  1876. End Sub
  1877. Private Sub zjlrfl()                                                    '增加录入分录
  1878.     With WglrGrid
  1879.         
  1880.         '处于录入状态不能增行
  1881.         If Not (Ydtext.Visible Or YdCombo.Visible) Then
  1882.             If Not Fun_Drfrmyxxpd Then
  1883.                 Exit Sub
  1884.             End If
  1885.         Else
  1886.             Exit Sub
  1887.         End If
  1888.                
  1889.         If .Rows > .FixedRows Then
  1890.             '当应纳税所得额上限为空或税率为空时,不能增行。
  1891.             If Trim(.TextMatrix(.Rows - 1, Sydz("003", GridStr(), Szzls))) = "" Then
  1892.                 Call Xtxxts("应纳税所得额上限为空,不能增行!", 0, 1)
  1893.                 .Select .Rows - 1, Sydz("003", GridStr(), Szzls)
  1894.                 Exit Sub
  1895.             End If
  1896.             
  1897.             If Trim(.TextMatrix(.Rows - 1, Sydz("004", GridStr(), Szzls))) = "" Then
  1898.                 Call Xtxxts("税率为空,不能增行!", 0, 1)
  1899.                 .Select .Rows - 1, Sydz("004", GridStr(), Szzls)
  1900.                 Exit Sub
  1901.             End If
  1902.         End If
  1903.         .AddItem ""
  1904.         If .Rows > .FixedRows + 1 Then
  1905.             .Row = .Rows - 1
  1906.         End If
  1907.         
  1908.         .RowHeight(.Row) = Sjhgd
  1909.         .TextMatrix(.Row, 0) = "*"
  1910.         .TextMatrix(.Row, Sydz("001", GridStr(), Szzls)) = .Row
  1911.         If .Rows = .FixedRows + 1 Then
  1912.             .TextMatrix(.Row, Sydz("002", GridStr(), Szzls)) = "0.00"
  1913.             .TextMatrix(.Row, Sydz("005", GridStr(), Szzls)) = "0.00"
  1914.         Else
  1915.             .TextMatrix(.Row, Sydz("002", GridStr(), Szzls)) = _
  1916.             .TextMatrix(.Row - 1, Sydz("003", GridStr(), Szzls))
  1917.         End If
  1918.         
  1919.         If .Row <> .Rows - 1 Then
  1920.             If .TextMatrix(.Row + 1, 0) = "*" Then
  1921.                 .TextMatrix(.Row, 0) = "*"
  1922.             Else
  1923.                 .RemoveItem .Rows - 1
  1924.             End If
  1925.         End If
  1926.         Call Xldqh
  1927.         Call Xldql
  1928.         Hyxxpdlock = False
  1929.         .Select .Row, Sydz("003", GridStr(), Szzls)
  1930.     End With
  1931.     
  1932. End Sub
  1933. Private Sub Scdqfl()                                                    '删除当前分录
  1934.     
  1935.     Dim Answer As Integer, Scqwghz As Long, Scqwglz As Long, Hjlzte As Long, Sflrzt As Boolean '(Fixed)
  1936.     Dim Sqlstr As String   '临时使用连接字符串
  1937.     
  1938.     With WglrGrid
  1939.         If .Row <> .Rows - 1 Then
  1940.             Call Xtxxts("只能删除最后一级!", 0, 1)
  1941.             Exit Sub
  1942.         End If
  1943.         Scqwghz = .Row
  1944.         Scqwglz = .Col
  1945.         
  1946.         If .TextMatrix(.Row, 0) = "*" Then
  1947.             '判断是否为录入状态
  1948.             If Ydtext.Visible Or YdCombo.Visible Then
  1949.                 Sflrzt = True
  1950.                 Call Xtxxts("处于录入状态不能删除!", 0, 1)
  1951.                 Exit Sub
  1952.                 Validate = True
  1953.                 Call Lrsjhx
  1954.                 Validate = False
  1955.             End If
  1956.             
  1957.             Call Xldqh
  1958.             Changelock = True
  1959.             .Select .Row, 0
  1960.             Changelock = False
  1961.             If Shsfts Then
  1962.                 .Cell(flexcpBackColor, .Row, Qslz, .Row, .Cols - 1) = QBColor(12)
  1963.                 Tsxx = "请确认是否删除当前记录?"
  1964.                 Yhanswer = Xtxxts(Tsxx, 2, 2)
  1965.                 If Yhanswer = 2 Then
  1966.                     .Cell(flexcpBackColor, .Row, Qslz, .Row, .Cols - 1) = &H80000005
  1967.                     Changelock = True
  1968.                     .Select Scqwghz, Scqwglz
  1969.                     Changelock = False
  1970.                     
  1971.                     '如为录入状态,则恢复录入
  1972.                     If Sflrzt Then
  1973.                         Call Xtxxts("处于录入状态不能删除!", 0, 1)
  1974.                         Exit Sub
  1975.                     End If
  1976.                     Exit Sub
  1977.                 End If
  1978.             End If
  1979.             
  1980.             '[>>以下为自定义部分
  1981.             
  1982.            
  1983.             '<<以上为自定义部分]
  1984.             
  1985.             .RemoveItem .Row
  1986.                 
  1987.             Changelock = True
  1988.             .Select .Rows - 1, Scqwglz
  1989.             Changelock = False
  1990.         End If
  1991.         
  1992.     End With
  1993.     
  1994.     Exit Sub
  1995.     
  1996.     '[>>事务错误处理
  1997.     
  1998. Swcwcl:
  1999.     
  2000.     Tsxx = "删除过程中出现错误!"
  2001.     Call Xtxxts(Tsxx, 0, 1)
  2002.     Exit Sub
  2003.     '<<]
  2004. End Sub
  2005. Private Sub Qkwlzd(sjh As Long, Sjl As Long)                            '清空为零字段
  2006.     
  2007.     If Not GridBoolean(Sjl, 5) Then
  2008.         Exit Sub
  2009.     End If
  2010.     
  2011.     With WglrGrid
  2012.         If Val(Trim(.TextMatrix(sjh, Sjl))) = 0 Then
  2013.             .TextMatrix(sjh, Sjl) = ""
  2014.         End If
  2015.     End With
  2016.     
  2017. End Sub
  2018. Private Sub fhyxh()                                                     '返回录入数据有效行,同时让得到焦点网格可见
  2019.     
  2020.     With WglrGrid
  2021.         If .Row >= .FixedRows Then
  2022.             If .TextMatrix(.Row, 0) <> "*" Then
  2023.                 For Rowjsq = .FixedRows To .Rows - 1
  2024.                     If .TextMatrix(Rowjsq, 0) <> "*" Then
  2025.                         Exit For
  2026.                     End If
  2027.                 Next Rowjsq
  2028.                 If Rowjsq <= .Rows - 1 Then
  2029.                     Changelock = True
  2030.                     .Select Rowjsq, .Col
  2031.                     Changelock = False
  2032.                 Else
  2033.                     Changelock = True
  2034.                     .Select .Rows - 1, .Col
  2035.                     Changelock = False
  2036.                 End If
  2037.             End If
  2038.             Call Xldqh
  2039.         End If
  2040.     End With
  2041.     
  2042. End Sub
  2043. Private Sub Xldqh()                                                      '显露当前行
  2044.     
  2045. Dim Toprowte As Long
  2046.     With WglrGrid
  2047.         Toprowte = 0
  2048.         Do While .CellTop + .RowHeight(.Row) + Fzxwghs * Sjhgd > .Height And .TopRow <> Toprowte
  2049.             Toprowte = .TopRow
  2050.             .TopRow = .TopRow + 1
  2051.         Loop
  2052.         Toprowte = 0
  2053.         Do While .CellTop < .FixedRows * .RowHeight(0) And .TopRow <> Toprowte
  2054.             Toprowte = .TopRow
  2055.             If .TopRow > 1 Then
  2056.                 .TopRow = .TopRow - 1
  2057.             End If
  2058.         Loop
  2059.     End With
  2060.     
  2061. End Sub
  2062. Private Sub Xldql()                                                     '显露当前列
  2063.     
  2064.     Dim Leftcolte As Long
  2065.     
  2066.     With WglrGrid
  2067.         If .Col >= Qslz And .Col >= .FixedCols Then
  2068.             If .LeftCol > .Col Then
  2069.                 .LeftCol = .Col
  2070.             End If
  2071.             Leftcolte = 0
  2072.             Do While .CellLeft + .CellWidth > .Width And .LeftCol <> Leftcolte
  2073.                 Leftcolte = .LeftCol
  2074.                 .LeftCol = .LeftCol + 1
  2075.             Loop
  2076.         End If
  2077.     End With
  2078.     
  2079. End Sub
  2080. Private Function pdhwk(sjh As Long)                                     '判断网格行是否为空行(所有录入字段均为空*非录入字段除外)
  2081.     
  2082.     With WglrGrid
  2083.         For Coljsq = Qslz To .Cols - 1
  2084.             If Len(Trim(.TextMatrix(sjh, Coljsq))) <> 0 And GridBoolean(Coljsq, 1) Then
  2085.                 pdhwk = False
  2086.                 Exit Function
  2087.             End If
  2088.         Next Coljsq
  2089.         pdhwk = True
  2090.     End With
  2091.     
  2092. End Function
  2093. Private Sub Xyxhbz(sjh As Long)                                         '写行有效性标志,并判断是否增行
  2094.     
  2095.     With WglrGrid
  2096.         If .TextMatrix(sjh, 0) = "*" Then
  2097.             Exit Sub
  2098.         End If
  2099.         .TextMatrix(sjh, 0) = "*"
  2100.     End With
  2101.     
  2102. End Sub
  2103. Private Sub WglrGrid_BeforeMoveColumn(ByVal Col As Long, Position As Long)           '网格列发生移动时自动交换网格索引信息
  2104.     
  2105.     Call FnBln_RefreshArray(Col, Position, GridStr(), GridInf())
  2106.     
  2107. End Sub
  2108. Private Sub GsToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)   '表格格式设置(通用)
  2109.     
  2110.     Select Case Button.Key
  2111.     Case "bcgs"                                       '保存表格格式
  2112.         Call Bcwggs(WglrGrid, GridCode, GridStr())
  2113.     Case "hfmrgs"                                     '恢复默认格式
  2114.         Call Hfmrgs(WglrGrid, GridCode, GridStr())
  2115.     End Select
  2116.     
  2117. End Sub
  2118. Private Sub bbyl(bbylte As Boolean)                    '报表打印预览
  2119.     
  2120.     Dim Bbzbt$, Bbxbt() As String, bbxbtzzxs() As Integer, Bbxbtgs As Integer
  2121.     Dim Bbbwh() As String, Bbbwhzzxs() As Integer, Bbbwhgs As Integer
  2122.     Bbxbtgs = 1                                          '报 表 小 标 题 行 数
  2123.     Bbbwhgs = 0                                          '报 表 表 尾 行 数
  2124.     ReDim Bbxbt(1 To Bbxbtgs)
  2125.     ReDim bbxbtzzxs(1 To Bbxbtgs)
  2126.     
  2127.     If Bbbwhgs <> 0 Then
  2128.         ReDim Bbbwh(1 To Bbbwhgs)
  2129.         ReDim Bbbwhzzxs(1 To Bbbwhgs)
  2130.     End If
  2131.     
  2132.     Bbzbt = ReportTitle
  2133.     
  2134.     Call Scyxsjb(WglrGrid)                               '生成报表数据
  2135.     Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
  2136.     
  2137.     If Not bbylte Then
  2138.         Unload DY_Tybbyldy
  2139.     End If
  2140.     
  2141. End Sub