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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{BEEECC20-4D5F-4F8B-BFDC-5D9B6FBDE09D}#1.0#0"; "vsflex8.ocx"
  3. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx"
  4. Begin VB.Form AutoTran_DefiExchange 
  5.    BorderStyle     =   1  'Fixed Single
  6.    Caption         =   "汇兑损益凭证"
  7.    ClientHeight    =   7275
  8.    ClientLeft      =   675
  9.    ClientTop       =   720
  10.    ClientWidth     =   10815
  11.    Icon            =   "自动转帐凭证_汇兑损益凭证定义.frx":0000
  12.    KeyPreview      =   -1  'True
  13.    LinkTopic       =   "Form4"
  14.    MaxButton       =   0   'False
  15.    MinButton       =   0   'False
  16.    ScaleHeight     =   7275
  17.    ScaleWidth      =   10815
  18.    Begin VB.PictureBox Pic_Title 
  19.       AutoRedraw      =   -1  'True
  20.       Height          =   1080
  21.       Left            =   0
  22.       Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":1042
  23.       ScaleHeight     =   1020
  24.       ScaleWidth      =   11835
  25.       TabIndex        =   9
  26.       Top             =   540
  27.       Width           =   11895
  28.       Begin VB.Label tsLabel 
  29.          AutoSize        =   -1  'True
  30.          BackStyle       =   0  'Transparent
  31.          Caption         =   "凭证类别:"
  32.          Height          =   180
  33.          Index           =   0
  34.          Left            =   690
  35.          TabIndex        =   20
  36.          Top             =   780
  37.          Width           =   810
  38.       End
  39.       Begin VB.Label Lab_Row 
  40.          Alignment       =   2  'Center
  41.          Appearance      =   0  'Flat
  42.          AutoSize        =   -1  'True
  43.          BackColor       =   &H80000005&
  44.          BackStyle       =   0  'Transparent
  45.          ForeColor       =   &H00000000&
  46.          Height          =   239
  47.          Left            =   9405
  48.          TabIndex        =   19
  49.          Top             =   777
  50.          Width           =   270
  51.       End
  52.       Begin VB.Label tsLabel 
  53.          AutoSize        =   -1  'True
  54.          BackStyle       =   0  'Transparent
  55.          Caption         =   "(第"
  56.          Height          =   239
  57.          Index           =   11
  58.          Left            =   9030
  59.          TabIndex        =   18
  60.          Top             =   777
  61.          Width           =   270
  62.       End
  63.       Begin VB.Label tsLabel 
  64.          AutoSize        =   -1  'True
  65.          BackStyle       =   0  'Transparent
  66.          Caption         =   "行)"
  67.          Height          =   239
  68.          Index           =   12
  69.          Left            =   9645
  70.          TabIndex        =   17
  71.          Top             =   777
  72.          Width           =   270
  73.       End
  74.       Begin VB.Label tsLabel 
  75.          AutoSize        =   -1  'True
  76.          BackStyle       =   0  'Transparent
  77.          Caption         =   "当前记录"
  78.          Height          =   239
  79.          Index           =   13
  80.          Left            =   8220
  81.          TabIndex        =   16
  82.          Top             =   777
  83.          Width           =   735
  84.       End
  85.       Begin VB.Label tsLabel 
  86.          AutoSize        =   -1  'True
  87.          BackColor       =   &H80000018&
  88.          BackStyle       =   0  'Transparent
  89.          Caption         =   "汇兑损益凭证"
  90.          BeginProperty Font 
  91.             Name            =   "宋体"
  92.             Size            =   12
  93.             Charset         =   134
  94.             Weight          =   700
  95.             Underline       =   0   'False
  96.             Italic          =   0   'False
  97.             Strikethrough   =   0   'False
  98.          EndProperty
  99.          ForeColor       =   &H00000000&
  100.          Height          =   240
  101.          Index           =   6
  102.          Left            =   555
  103.          TabIndex        =   15
  104.          Top             =   255
  105.          Width           =   1530
  106.       End
  107.       Begin VB.Label tsLabel 
  108.          AutoSize        =   -1  'True
  109.          BackStyle       =   0  'Transparent
  110.          Caption         =   "转帐名称:"
  111.          Height          =   180
  112.          Index           =   1
  113.          Left            =   4260
  114.          TabIndex        =   14
  115.          Top             =   780
  116.          Width           =   810
  117.       End
  118.       Begin VB.Label Lbl_AutoAccName 
  119.          AutoSize        =   -1  'True
  120.          BackStyle       =   0  'Transparent
  121.          Caption         =   "Lbl_AutoAccName"
  122.          Height          =   239
  123.          Left            =   5160
  124.          TabIndex        =   13
  125.          Top             =   777
  126.          Width           =   1575
  127.       End
  128.       Begin VB.Label Lbl_AutoAccCode 
  129.          Caption         =   "Lbl_AutoAccCode"
  130.          Height          =   239
  131.          Left            =   180
  132.          TabIndex        =   12
  133.          Top             =   90
  134.          Visible         =   0   'False
  135.          Width           =   1380
  136.       End
  137.       Begin VB.Label Lbl_AutoAccClassName 
  138.          AutoSize        =   -1  'True
  139.          BackStyle       =   0  'Transparent
  140.          Caption         =   "Lbl_AutoAccClassName"
  141.          Height          =   239
  142.          Left            =   1590
  143.          TabIndex        =   11
  144.          Top             =   777
  145.          Width           =   1830
  146.       End
  147.       Begin VB.Label Lbl_AutoAccClassCode 
  148.          Caption         =   "Lbl_AutoAccClassCode"
  149.          Height          =   239
  150.          Left            =   1695
  151.          TabIndex        =   10
  152.          Top             =   90
  153.          Visible         =   0   'False
  154.          Width           =   1980
  155.       End
  156.    End
  157.    Begin VB.CommandButton Yd_Help 
  158.       Height          =   299
  159.       Left            =   7381
  160.       Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":35106
  161.       Style           =   1  'Graphical
  162.       TabIndex        =   5
  163.       Top             =   588
  164.       Visible         =   0   'False
  165.       Width           =   300
  166.    End
  167.    Begin VB.CommandButton Ydcommand 
  168.       Height          =   299
  169.       Left            =   6888
  170.       Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":35490
  171.       Style           =   1  'Graphical
  172.       TabIndex        =   4
  173.       Top             =   549
  174.       Visible         =   0   'False
  175.       Width           =   300
  176.    End
  177.    Begin VB.ComboBox YdCombo 
  178.       Height          =   300
  179.       Left            =   8104
  180.       Style           =   2  'Dropdown List
  181.       TabIndex        =   3
  182.       Top             =   876
  183.       Visible         =   0   'False
  184.       Width           =   1142
  185.    End
  186.    Begin VB.TextBox Ydtext 
  187.       BackColor       =   &H00C0FFFF&
  188.       BorderStyle     =   0  'None
  189.       Height          =   302
  190.       Left            =   9589
  191.       MultiLine       =   -1  'True
  192.       TabIndex        =   2
  193.       Top             =   549
  194.       Visible         =   0   'False
  195.       Width           =   1172
  196.    End
  197.    Begin MSComctlLib.ImageList ImageList1 
  198.       Left            =   7080
  199.       Top             =   900
  200.       _ExtentX        =   1005
  201.       _ExtentY        =   1005
  202.       BackColor       =   -2147483643
  203.       ImageWidth      =   16
  204.       ImageHeight     =   16
  205.       MaskColor       =   12632256
  206.       _Version        =   393216
  207.       BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  208.          NumListImages   =   13
  209.          BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  210.             Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":3581A
  211.             Key             =   "sz"
  212.          EndProperty
  213.          BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  214.             Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":35BB4
  215.             Key             =   "dy"
  216.          EndProperty
  217.          BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  218.             Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":35F4E
  219.             Key             =   "yl"
  220.          EndProperty
  221.          BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  222.             Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":362E8
  223.             Key             =   "xg"
  224.          EndProperty
  225.          BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  226.             Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":36682
  227.             Key             =   "zh"
  228.          EndProperty
  229.          BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  230.             Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":36A1C
  231.             Key             =   "sh"
  232.          EndProperty
  233.          BeginProperty ListImage7 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  234.             Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":36DB6
  235.             Key             =   "bc"
  236.          EndProperty
  237.          BeginProperty ListImage8 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  238.             Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":37150
  239.             Key             =   "fq"
  240.          EndProperty
  241.          BeginProperty ListImage9 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  242.             Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":374EA
  243.             Key             =   "bz"
  244.          EndProperty
  245.          BeginProperty ListImage10 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  246.             Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":37884
  247.             Key             =   "tc"
  248.          EndProperty
  249.          BeginProperty ListImage11 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  250.             Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":37C1E
  251.             Key             =   "bcgs"
  252.          EndProperty
  253.          BeginProperty ListImage12 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  254.             Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":37FB8
  255.             Key             =   "mrlk"
  256.          EndProperty
  257.          BeginProperty ListImage13 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  258.             Picture         =   "自动转帐凭证_汇兑损益凭证定义.frx":38352
  259.             Key             =   "xsxm"
  260.          EndProperty
  261.       EndProperty
  262.    End
  263.    Begin VB.Timer Timer1 
  264.       Interval        =   1
  265.       Left            =   9840
  266.       Top             =   960
  267.    End
  268.    Begin VSFlex8Ctl.VSFlexGrid WglrGrid 
  269.       Height          =   5610
  270.       Left            =   0
  271.       TabIndex        =   6
  272.       Top             =   1680
  273.       Width           =   10830
  274.       _cx             =   5080
  275.       _cy             =   5080
  276.       Appearance      =   1
  277.       BorderStyle     =   1
  278.       Enabled         =   -1  'True
  279.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  280.          Name            =   "宋体"
  281.          Size            =   9
  282.          Charset         =   134
  283.          Weight          =   400
  284.          Underline       =   0   'False
  285.          Italic          =   0   'False
  286.          Strikethrough   =   0   'False
  287.       EndProperty
  288.       MousePointer    =   0
  289.       BackColor       =   -2147483643
  290.       ForeColor       =   -2147483640
  291.       BackColorFixed  =   -2147483633
  292.       ForeColorFixed  =   -2147483630
  293.       BackColorSel    =   -2147483635
  294.       ForeColorSel    =   -2147483634
  295.       BackColorBkg    =   -2147483632
  296.       BackColorAlternate=   -2147483643
  297.       GridColor       =   -2147483633
  298.       GridColorFixed  =   -2147483632
  299.       TreeColor       =   -2147483632
  300.       FloodColor      =   192
  301.       SheetBorder     =   -2147483642
  302.       FocusRect       =   1
  303.       HighLight       =   1
  304.       AllowSelection  =   -1  'True
  305.       AllowBigSelection=   -1  'True
  306.       AllowUserResizing=   0
  307.       SelectionMode   =   0
  308.       GridLines       =   1
  309.       GridLinesFixed  =   2
  310.       GridLineWidth   =   1
  311.       Rows            =   5000
  312.       Cols            =   10
  313.       FixedRows       =   1
  314.       FixedCols       =   0
  315.       RowHeightMin    =   0
  316.       RowHeightMax    =   0
  317.       ColWidthMin     =   0
  318.       ColWidthMax     =   0
  319.       ExtendLastCol   =   0   'False
  320.       FormatString    =   ""
  321.       ScrollTrack     =   0   'False
  322.       ScrollBars      =   3
  323.       ScrollTips      =   0   'False
  324.       MergeCells      =   0
  325.       MergeCompare    =   0
  326.       AutoResize      =   -1  'True
  327.       AutoSizeMode    =   0
  328.       AutoSearch      =   0
  329.       AutoSearchDelay =   2
  330.       MultiTotals     =   -1  'True
  331.       SubtotalPosition=   1
  332.       OutlineBar      =   0
  333.       OutlineCol      =   0
  334.       Ellipsis        =   0
  335.       ExplorerBar     =   0
  336.       PicturesOver    =   0   'False
  337.       FillStyle       =   0
  338.       RightToLeft     =   0   'False
  339.       PictureType     =   0
  340.       TabBehavior     =   0
  341.       OwnerDraw       =   0
  342.       Editable        =   0
  343.       ShowComboButton =   1
  344.       WordWrap        =   0   'False
  345.       TextStyle       =   0
  346.       TextStyleFixed  =   0
  347.       OleDragMode     =   0
  348.       OleDropMode     =   0
  349.       DataMode        =   0
  350.       VirtualData     =   -1  'True
  351.       DataMember      =   ""
  352.       ComboSearch     =   3
  353.       AutoSizeMouse   =   -1  'True
  354.       FrozenRows      =   0
  355.       FrozenCols      =   0
  356.       AllowUserFreezing=   0
  357.       BackColorFrozen =   0
  358.       ForeColorFrozen =   0
  359.       WallPaperAlignment=   9
  360.       AccessibleName  =   ""
  361.       AccessibleDescription=   ""
  362.       AccessibleValue =   ""
  363.       AccessibleRole  =   24
  364.    End
  365.    Begin MSComctlLib.Toolbar Tlb_Action 
  366.       Align           =   1  'Align Top
  367.       Height          =   555
  368.       Left            =   0
  369.       TabIndex        =   7
  370.       Top             =   0
  371.       Width           =   10815
  372.       _ExtentX        =   19076
  373.       _ExtentY        =   979
  374.       ButtonWidth     =   820
  375.       ButtonHeight    =   926
  376.       AllowCustomize  =   0   'False
  377.       Wrappable       =   0   'False
  378.       Appearance      =   1
  379.       Style           =   1
  380.       ImageList       =   "ImageList1"
  381.       _Version        =   393216
  382.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  383.          NumButtons      =   14
  384.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  385.             Caption         =   "设置"
  386.             Key             =   "ymsz"
  387.             Object.ToolTipText     =   "打印页面设置"
  388.             ImageIndex      =   1
  389.          EndProperty
  390.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  391.             Caption         =   "打印"
  392.             Key             =   "dy"
  393.             Object.ToolTipText     =   "打印当前单据或Ctrl+P"
  394.             ImageIndex      =   2
  395.          EndProperty
  396.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  397.             Caption         =   "预览"
  398.             Key             =   "yl"
  399.             ImageIndex      =   3
  400.          EndProperty
  401.          BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  402.             Style           =   3
  403.          EndProperty
  404.          BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  405.             Caption         =   "编辑"
  406.             Key             =   "xg"
  407.             Object.ToolTipText     =   "修改当前单据或F3"
  408.             ImageIndex      =   4
  409.          EndProperty
  410.          BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  411.             Key             =   "fgh0"
  412.             Style           =   3
  413.          EndProperty
  414.          BeginProperty Button7 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  415.             Caption         =   "增行"
  416.             Key             =   "zh"
  417.             Object.ToolTipText     =   "插入一行或Insert"
  418.             ImageIndex      =   5
  419.          EndProperty
  420.          BeginProperty Button8 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  421.             Caption         =   "删行"
  422.             Key             =   "sh"
  423.             Object.ToolTipText     =   "删除当前记录行或Delete"
  424.             ImageIndex      =   6
  425.          EndProperty
  426.          BeginProperty Button9 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  427.             Key             =   "fgh1"
  428.             Style           =   3
  429.          EndProperty
  430.          BeginProperty Button10 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  431.             Caption         =   "保存"
  432.             Key             =   "bc"
  433.             Object.ToolTipText     =   "保存单据或F6"
  434.             ImageIndex      =   7
  435.          EndProperty
  436.          BeginProperty Button11 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  437.             Caption         =   "放弃"
  438.             Key             =   "fq"
  439.             Object.ToolTipText     =   "放弃此次操作"
  440.             ImageIndex      =   8
  441.          EndProperty
  442.          BeginProperty Button12 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  443.             Key             =   "fgh2"
  444.             Style           =   3
  445.          EndProperty
  446.          BeginProperty Button13 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  447.             Caption         =   "帮助"
  448.             Key             =   "bz"
  449.             ImageIndex      =   9
  450.          EndProperty
  451.          BeginProperty Button14 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  452.             Caption         =   "退出"
  453.             Key             =   "fh"
  454.             ImageIndex      =   10
  455.          EndProperty
  456.       EndProperty
  457.       BorderStyle     =   1
  458.       Begin MSComctlLib.Toolbar GsToolbar 
  459.          Height          =   525
  460.          Left            =   9060
  461.          TabIndex        =   8
  462.          Top             =   -30
  463.          Width           =   1725
  464.          _ExtentX        =   3043
  465.          _ExtentY        =   926
  466.          ButtonWidth     =   1455
  467.          ButtonHeight    =   926
  468.          AllowCustomize  =   0   'False
  469.          Appearance      =   1
  470.          Style           =   1
  471.          ImageList       =   "ImageList1"
  472.          _Version        =   393216
  473.          BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  474.             NumButtons      =   2
  475.             BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  476.                Caption         =   "保存格式"
  477.                Key             =   "bcgs"
  478.                ImageIndex      =   11
  479.             EndProperty
  480.             BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  481.                Caption         =   "默认列宽"
  482.                Key             =   "hfmrgs"
  483.                ImageIndex      =   12
  484.             EndProperty
  485.          EndProperty
  486.       End
  487.    End
  488.    Begin VB.Label Lab_Pzclzt 
  489.       BackColor       =   &H0000FFFF&
  490.       Caption         =   "2"
  491.       ForeColor       =   &H00808080&
  492.       Height          =   288
  493.       Left            =   8964
  494.       TabIndex        =   1
  495.       Top             =   493
  496.       Visible         =   0   'False
  497.       Width           =   399
  498.    End
  499.    Begin VB.Label Lab_OperStatus 
  500.       BackColor       =   &H000080FF&
  501.       Caption         =   "1"
  502.       Height          =   315
  503.       Left            =   8638
  504.       TabIndex        =   0
  505.       Top             =   493
  506.       Visible         =   0   'False
  507.       Width           =   342
  508.    End
  509. End
  510. Attribute VB_Name = "AutoTran_DefiExchange"
  511. Attribute VB_GlobalNameSpace = False
  512. Attribute VB_Creatable = False
  513. Attribute VB_PredeclaredId = True
  514. Attribute VB_Exposed = False
  515. '*********************************************************************************************************
  516. '*    模 块 名 称 :汇兑损益凭证凭证编辑
  517. '*    功 能 描 述 :此功能模块主要完成模式转帐凭证的定义
  518. '*    程序员姓名  : 魏永生
  519. '*    最后修改人  : 魏永生
  520. '*    最后修改时间:2001/11/28
  521. '*    备        注:程序中所有依实际情况自定义部分均用[>>  <<]括起
  522. '*
  523. '*    1.每次调入外部功能窗体,均要加锁ChangeLock=True,窗体关闭后解锁ChangeLock=false
  524. '*
  525. '*    2.网格列存储内容注解
  526. '*
  527. '*    3.Lab_OperStatus 用此标签来标识单据录入状态(默认值为1) "1"-浏览 "2"-新增 "3"-修改
  528. '*
  529. '*    4.Lab_Pzclzt 用此标签来标识凭证处理状态(默认值为1) "1"-填制凭证 "2"-查询凭证列表 "3"-审核凭证
  530. '*
  531. '*    5.原则:只要单据能够存盘(无论修改或新增)则其必须接受完整性及有效性规则检查
  532. '*    6.其他注解
  533. '*      Bln_AssHelp(0) 个人编码
  534. '*      Bln_AssHelp(1) 部门编码
  535. '*      Bln_AssHelp(2) 项目编码
  536. '*      Bln_AssHelp(3) 客户编码
  537. '*      Bln_AssHelp(4) 供应商编码
  538. '*      索引对照
  539. '*      001摘要  002-转帐科目编码 003-转帐科目名称 004-转帐方向 005-转帐性质 007-结转金额
  540. '*      009-分配比例   010-辅助项目
  541. '*********************************************************************************************************
  542.  
  543.  '[以下为根据实际情况设置变量
  544.     Dim Rec_AutoTranItem As New ADODB.Recordset     '转帐项目动态集
  545.     Dim Int_AssCount As Integer                     '辅助核算项目总数
  546.     Dim Bln_AssShow() As Boolean                    '辅助核算项目是否显示
  547.     Dim Bln_AssHelp() As Boolean                    '辅助核算项目是否有帮助
  548.     Dim Str_Digest As String                        '最后录入的一条凭证分录的摘要内容
  549.     Dim Bln_BillChange As Boolean                   '标识单据是否发生改动
  550.     Dim Jsqte  As Long                              '临时计数器
  551.     Dim Sqlstr As String                            '临时的SQL字符串
  552.     Dim RecTemp As New ADODB.Recordset              '临时使用动态集
  553.     Dim Help_Bz_Col()  As Boolean                   '网格列不能编辑但是否需要帮助
  554.     Dim Str_Memo As String                          '辅助核算信息
  555.     Dim TranClassCode As String                     '转帐类别编码
  556.  ']
  557.  
  558.  '以下为固定使用变量(网格)
  559.     Dim Cxnrrec As New ADODB.Recordset              '显示查询内容动态集
  560.     Dim Dyymctbl As New DY_Dyymsz                   '打印页面窗体变量
  561.     Dim GridCode As String                          '显示网格网格代码
  562.     Dim GridInf() As Variant                        '整个网格设置信息
  563.     Dim ReportTitle As String                       '报表主标题
  564.     Dim Tsxx As String                              '系统提示信息
  565.     Dim Pmbcsjhs As Long                            '屏幕网格保持数据行数(大于等于1)
  566.     Dim Fzxwghs As Integer                          '辅助项网格行数(包括合计行)
  567.     Dim Sfxshjwg As Boolean                         '是否显示合计网格
  568.     Dim Qslz As Long                                '网格隐藏(非操作显示)列数
  569.     Dim Sjhgd As Double                             '网格数据行高度
  570.     Dim GridBoolean() As Boolean                    '网格列信息(布尔型)
  571.     Dim GridStr()  As String                        '网格列信息(字符型)
  572.     Dim GridInt() As Integer                        '网格列信息(整型)
  573.     Dim Sfblbzkd As Boolean                         '是否保留帮助宽度(字段提供帮助时,是否为按钮保留空间)
  574.     Dim Dqlrwgh As Long                             '当前录入数据网格行
  575.     Dim Dqlrwgl As Long                             '当前录入数据网格列
  576.     Dim Dqlkwgh As Long                             '刚刚离开网格行(不一定为录入行)
  577.     Dim Dqlkwgl As Long                             '刚刚离开网格列
  578.     Dim Dqtoprow As Long                            '当前录入状态时最上端可视行
  579.     Dim Dqleftcol As Long                           '当前录入状态时最左端可视列
  580.     Dim Zdlrqnr As String                           '字段录入修改前内容(用来判断内容是否修改)
  581.     Dim Wbkbhlock As Boolean                        '文本框改变值锁
  582.     Dim changelock As Boolean                       '网格行列改变控制锁(用来区别用户改变.程序改变)
  583.     Dim Gdtlock As Boolean                          '滚动条滚动控制(用来区别用户改变.程序改变)
  584.     Dim Yxxpdlock As Boolean                        '字段有效性判断锁(内容不修改不需进行字段有效性判断)
  585.     Dim Hyxxpdlock As Boolean                       '行有效性判断锁(字段内容不修改不需进行行有效性判断)
  586.     Dim Valilock As Boolean                         '文本框失去焦点是否进行有效性控制(TRUE 为锁定*限用网格录入)
  587.     Dim Shsfts As Boolean                           '删除记录行是否提示
  588.     Dim Szzls As Integer                            '网格信息数组最大下标值(网格列数-1)
  589. Private Sub Form_KeyPress(KeyAscii As Integer)       '控 制 焦 点 转 移
  590.     Dim jdzygs As Integer
  591.     jdzygs = 3
  592.     Select Case KeyAscii
  593.     Case vbKeyReturn
  594.         If Kjjdzy(jdzygs) Then
  595.             KeyAscii = 0
  596.         End If
  597.     Case 39           '屏蔽字符"'"
  598.         KeyAscii = 0
  599.     End Select
  600. End Sub
  601. Private Sub Form_Load()                              '窗 体 装 入
  602.     
  603.     '初始化各种锁值
  604.     TranClassCode = AutoTran_TranList.TranClassCode
  605.     changelock = False             '网格行列改变控制锁
  606.     Gdtlock = False                '滚动条滚动控制
  607.     Yxxpdlock = True               '字段有效性判断锁
  608.     Hyxxpdlock = True              '行有效性判断锁
  609.     Wbkbhlock = False              '文本框内容改变锁
  610.     
  611.     '[>>开始 设置辅助核算项目属性
  612.     Int_AssCount = 5
  613.     ReDim Bln_AssShow(Int_AssCount - 1)
  614.     ReDim Bln_AssHelp(Int_AssCount - 1)
  615.     Bln_AssHelp(0) = True         '个人
  616.     Bln_AssHelp(1) = True         '部门
  617.     Bln_AssHelp(2) = True         '项目
  618.     Bln_AssHelp(3) = True         '客户
  619.     Bln_AssHelp(4) = True         '供应
  620.     '完毕<<]
  621.     
  622.     
  623.     '报表主标题及报表编码
  624.     ReportTitle = "汇兑损益凭证"
  625.     XtReportCode = "Cwzz_AutoAccDefiMy"
  626.     Load Dyymctbl
  627.     
  628.     '调 入 网 格
  629.     GridCode = "Cwzz_AutoAccDefiExchange"          '网格属性编码
  630.     Call BzWgcsh(WglrGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  631.     
  632.     Qslz = GridInf(1)
  633.     Sjhgd = GridInf(2)
  634.     Pmbcsjhs = GridInf(3)
  635.     Fzxwghs = GridInf(4)
  636.     Sfblbzkd = GridInf(5)
  637.     Shsfts = GridInf(6)
  638.     Sfxshjwg = GridInf(7)
  639.     Szzls = WglrGrid.Cols - 1
  640.     For Jsqte = WglrGrid.FixedRows To WglrGrid.Rows - 1
  641.         WglrGrid.RowHeight(Jsqte) = Sjhgd
  642.     Next Jsqte
  643.     
  644.     '[
  645.     ReDim Help_Bz_Col(Szzls)
  646.     For Jsqte = 1 To Szzls
  647.         Help_Bz_Col(Jsqte) = False
  648.     Next Jsqte
  649.     Help_Bz_Col(Sydz("004", GridStr(), Szzls)) = True           '辅助信息列不能编辑但需要帮助
  650.     
  651.     ']
  652.     
  653.     '单据变动置为False
  654.     Bln_BillChange = False
  655.     
  656.     '装入会计科目编码帮助窗体(为加快参照速度)PZ_FrmKjkmcz
  657.     Load PZ_FrmKjkmcz
  658. End Sub
  659. Private Sub Form_Unload(Cancel As Integer)           '窗体卸载
  660.     '卸载打印页面窗体
  661.     Unload Dyymctbl
  662.     
  663.     '卸载会计科目编码参照窗体
  664.     PZ_FrmKjkmcz.UnloadCheck.Value = 1
  665.     Unload PZ_FrmKjkmcz
  666.     
  667.     '判断凭证是否发生变化
  668.     If Bln_BillChange Then
  669.         Xtfhcs = "1"
  670.     Else
  671.         Xtfhcs = "0"
  672.     End If
  673.     Set RecTemp = Nothing
  674. End Sub
  675. Private Sub WglrGrid_AfterUserResize(ByVal Row As Long, ByVal Col As Long)
  676.     With WglrGrid
  677.         If Help_Bz_Col(.Col) = True And Lab_OperStatus.Caption = 3 And Yd_Help.Visible = True Then
  678.             Call Yd_Help_Show
  679.         End If
  680.     End With
  681. End Sub
  682. Private Sub Yd_Help_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  683.     If Not Yd_Help.Visible Then
  684.         Exit Sub
  685.     End If
  686.     With WglrGrid
  687.         Call Yd_Help_content
  688.     End With
  689.     WglrGrid.SetFocus
  690. End Sub
  691. Private Sub Timer1_Timer()                           '根据不同凭证或单据状态处理不同的数据初始化
  692.     '关闭定时器
  693.     Timer1.Enabled = False
  694.     '调入数据初始化模块
  695.     Call Sjcsh(Trim(1))            '读入转帐编码转帐名称转帐凭证类别
  696. End Sub
  697. Private Sub Sjcsh(Str_Pzclzt As String)              '数据初始化模块(根据实际情况)
  698.     Select Case Str_Pzclzt
  699.     Case 1  '单据处于编辑状态
  700.         With AutoTran_TranList.CzxsGrid
  701.             Lbl_AutoAccCode.Caption = .Tag
  702.         End With
  703.         Sqlstr = "SELECT Cwzz_AutoTranMain.VouchClassCode, Cwzz_VouchClass.VouchClassName, " & _
  704.         " Cwzz_AutoTranMain.TranName , Cwzz_AutoTranMain.TranCode FROM Cwzz_AutoTranMain " & _
  705.         "left OUTER JOIN Cwzz_VouchClass ON " & _
  706.         "Cwzz_VouchClass.VouchClassCode = Cwzz_AutoTranMain.VouchClassCode where TranCode='" & Lbl_AutoAccCode.Caption & "' and TranClass='" & TranClassCode & "'"
  707.         Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  708.         Lbl_AutoAccName.Caption = Trim(RecTemp.Fields("TranName"))
  709.         Lbl_AutoAccClassCode.Caption = Trim(RecTemp.Fields("VouchClassCode"))
  710.         Lbl_AutoAccClassName.Caption = Trim(RecTemp.Fields("VouchClassName"))
  711.         RecTemp.Close
  712.         
  713.         '设置操作状态为浏览
  714.         Lab_OperStatus.Caption = "1"
  715.         
  716.         '设置工具条状态
  717.         Call Sub_OperStatus("11")
  718.         
  719.         '显示整张单据信息
  720.         Call Sub_ShowBill
  721.         Call Sub_AdjustGrid
  722.     Case 2  '单据处于浏览状态
  723.         
  724.     End Select
  725. End Sub
  726. Private Sub Sub_ShowBill()                                          '根据当前单据号显示整张单据内容
  727.     If RecTemp.State = 1 Then RecTemp.Close
  728.     Sqlstr = "SELECT m.*," & _
  729.     "u.PersonName," & _
  730.     "o.cname as cname," & _
  731.     "t.Suppliername,v.CusName," & _
  732.     "s.DeptName," & _
  733.     "q.ItemClassName," & _
  734.     "r.ItemName, r.QuantityFlag," & _
  735.     "o.EndFlag,o.BalanceOri " & _
  736.     "FROM Cwzz_AutoTranItem as m LEFT OUTER JOIN" & _
  737.     " Cwzz_AccCode as o ON m.Ccode = o.ccode LEFT OUTER JOIN " & _
  738.     "Cwzz_ItemClass as q ON m.ItemClassCode = q.ItemClassCode LEFT OUTER JOIN " & _
  739.     "Cwzz_Item as r ON m.ItemClassCode = r.ItemClassCode AND " & _
  740.     "m.ItemCode = r.ItemCode LEFT OUTER JOIN" & _
  741.     " Gy_Department as s ON m.DeptCode = s.DeptCode " & _
  742.     " LEFT OUTER JOIN Gy_supplier as t ON m.Suppliercode = t.Suppliercode " & _
  743.     " LEFT OUTER JOIN Gy_Person as u ON m.PersonCode = u.PersonCode" & _
  744.     " LEFT OUTER JOIN Gy_Customer as v ON m.CusCode = v.CusCode " & _
  745.     " where TranCode='" & Lbl_AutoAccCode.Caption & "' and tranclass='" & TranClassCode & "' Order by AutoTranId"
  746.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  747.     With RecTemp
  748.         WglrGrid.Clear 1
  749.         If .EOF Then
  750.             Exit Sub
  751.         Else
  752.             WglrGrid.Rows = .RecordCount + WglrGrid.FixedRows
  753.             
  754.             '[>>显示单据头
  755.             Jsqte = WglrGrid.FixedRows
  756.             Do While Not .EOF
  757.                 If Jsqte >= WglrGrid.Rows Then
  758.                     WglrGrid.AddItem ""
  759.                 End If
  760.                 
  761.                 '[>>显示单据分录
  762.                 WglrGrid.TextMatrix(Jsqte, 0) = "*"                                                              '行标识
  763.                 WglrGrid.TextMatrix(Jsqte, 1) = Trim(.Fields("PersonCode") & "")                                 '个人编码
  764.                 WglrGrid.TextMatrix(Jsqte, 2) = Trim(.Fields("PersonName") & "")                                 '个人名称
  765.                 WglrGrid.TextMatrix(Jsqte, 3) = Trim(.Fields("DeptCode") & "")                                   '部门编码
  766.                 WglrGrid.TextMatrix(Jsqte, 4) = Trim(.Fields("DeptName") & "")                                   '部门名称
  767.                 WglrGrid.TextMatrix(Jsqte, 5) = Trim(.Fields("CusCode") & "")                                    '客户编码
  768.                 WglrGrid.TextMatrix(Jsqte, 6) = Trim(.Fields("CusName") & "")                                    '客户名称
  769.                 WglrGrid.TextMatrix(Jsqte, 7) = Trim(.Fields("Suppliercode") & "")                              '供应商编码
  770.                 WglrGrid.TextMatrix(Jsqte, 8) = Trim(.Fields("Suppliername") & "")                              '供应商名称
  771.                 WglrGrid.TextMatrix(Jsqte, 9) = Trim(.Fields("ItemClassCode") & "")                              '项目类别编码
  772.                 WglrGrid.TextMatrix(Jsqte, 10) = Trim(.Fields("ItemClassName") & "")                             '项目类别名称
  773.                 WglrGrid.TextMatrix(Jsqte, 11) = Trim(.Fields("ItemCode") & "")                                  '项目编码
  774.                 WglrGrid.TextMatrix(Jsqte, 12) = Trim(.Fields("ItemName") & "")                                  '项目名称
  775.                 WglrGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("Digest") & "")         '摘 要
  776.                 WglrGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("Ccode"))               '科目编码
  777.                 WglrGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = Trim(.Fields("Cname") & "")          '科目名称
  778.                 WglrGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = Trim(.Fields("TranOri"))             '转帐方向
  779.                 Call Sub_ShowMemo(Jsqte)
  780.                 WglrGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = Str_Memo
  781.                 '<<]
  782.                 
  783.                 WglrGrid.RowHeight(Jsqte) = Sjhgd
  784.                 .MoveNext
  785.                 Jsqte = Jsqte + 1
  786.             Loop
  787.         End If
  788.     End With
  789.     RecTemp.Close
  790.     '调整网格,保持1录入行,提供屏幕保持行数.
  791.     Call Sub_AdjustGrid
  792.     
  793. End Sub
  794. Private Sub Tlb_Action_ButtonClick(ByVal Button As MSComctlLib.Button)             '用户点击工具条
  795.     
  796.     '屏蔽文本框,下拉组合框有效性判断,即在网格单元内录入数据时,点帮助信息等,不执行文本框等验证,即不执行YdText或YdCombo的LostFocus事件.
  797.     Valilock = True
  798.     
  799.     '屏蔽网格失去焦点产生的有效性判断
  800.     changelock = True
  801.     Select Case Button.Key
  802.     Case "ymsz"                                          '页面设置
  803.         Dyymctbl.Show 1
  804.     Case "yl"                                            '预 览
  805.         If Fun_Drfrmyxxpd Then Call bbyl(True)
  806.     Case "dy"                                            '打 印
  807.         If Fun_Drfrmyxxpd Then Call bbyl(False)
  808.     Case "xg"                                            '修 改
  809.         Call Sub_EditBill
  810.     Case "zh"                                            '增 行
  811.         Call zjlrfl
  812.     Case "sh"                                            '删 行
  813.         Call Scdqfl
  814.     Case "bc"                                            '保 存
  815.         If Fun_Drfrmyxxpd Then Call Sub_SaveBill
  816.     Case "fq"                                            '放 弃
  817.         Call Sub_AbandonBill
  818.     Case "bz"                                            '帮 助
  819.         Call F1bz
  820.     Case "fh"                                            '退 出
  821.         Unload Me
  822.     End Select
  823.     '解 锁
  824.     Valilock = False
  825.     changelock = False
  826. End Sub
  827. Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)        '支持热键操作,更确切地讲,是工具栏热键
  828.     If Shift = 2 Then   'Ctrl的位屏蔽值=2
  829.         Select Case UCase(Chr(KeyCode))
  830.         Case "P"                   'Ctrl+P 打印
  831.             If Tlb_Action.Buttons("dy").Enabled Then Call bbyl(False)
  832.         End Select
  833.     End If
  834.     Select Case KeyCode
  835.     Case vbKeyF3          '修改凭证
  836.         If Tlb_Action.Buttons("xg").Enabled Then
  837.             Call Sub_EditBill
  838.         End If
  839.     Case vbKeyF6          '保存凭证
  840.         If Tlb_Action.Buttons("bc").Enabled Then
  841.             Call Sub_SaveBill
  842.         End If
  843.     End Select
  844. End Sub
  845. Private Sub Sub_OperStatus(Str_Status As String)                 '工具条依据不同状态所进行的变化
  846.     With Tlb_Action
  847.         Select Case Str_Status
  848.         Case "10"   '浏览(系统进入、放弃新增单据、填制凭证时删除单据,凭证审核)
  849.             '工具条
  850.             .Buttons("dy").Enabled = True      '打印
  851.             .Buttons("yl").Enabled = True      '预览
  852.             .Buttons("xg").Enabled = False     '修改
  853.             .Buttons("zh").Enabled = False     '增行
  854.             .Buttons("sh").Enabled = False     '删行
  855.             .Buttons("cx").Enabled = True      '查询
  856.             .Buttons("bc").Enabled = False     '保存
  857.             .Buttons("fq").Enabled = False     '放弃
  858.         Case "11"   '浏览(放弃修改单据,查询单据)
  859.             '工具条
  860.             .Buttons("dy").Enabled = True      '打印
  861.             .Buttons("yl").Enabled = True      '预览
  862.             .Buttons("xg").Enabled = True      '修改
  863.             .Buttons("zh").Enabled = False     '增行
  864.             .Buttons("sh").Enabled = False     '删行
  865.             .Buttons("bc").Enabled = False     '保存
  866.             .Buttons("fq").Enabled = False     '放弃
  867.         Case "30"   '修改
  868.             '工具条
  869.             .Buttons("dy").Enabled = False      '打印
  870.             .Buttons("yl").Enabled = False      '预览
  871.             .Buttons("xg").Enabled = False      '修改
  872.             .Buttons("zh").Enabled = True       '增行
  873.             .Buttons("sh").Enabled = True       '删行
  874.             .Buttons("bc").Enabled = True       '保存
  875.             .Buttons("fq").Enabled = True       '放弃
  876.         End Select
  877.     End With
  878. End Sub
  879. Private Sub xswbk()                       '在当前选中单元显示文本框,列表框,帮助按钮(通用)
  880.     Dim Wbkpy As Integer, Wbkpy1 As Integer '文本框偏移量
  881.     
  882.     '如果单据操作状态为浏览状态则不能显示录入载体
  883.     If Trim(Lab_OperStatus.Caption) = "1" Then Exit Sub
  884.     
  885.     '显示文本框前返回有效行列(解决滚动条问题)
  886.     Call Xldqh
  887.     Call Xldql
  888.     
  889.     '隐藏文本框,帮助按钮,列表组合框  ?何用
  890.     Call Ycwbk
  891.     
  892.     With WglrGrid
  893.         Dqlrwgh = .Row
  894.         Dqlrwgl = .Col
  895.         If Not GridBoolean(.Col, 1) Or .Row < .FixedRows Then Exit Sub
  896.         Wbkpy = 30
  897.         Wbkpy1 = 15
  898.         If GridBoolean(.Col, 3) Then        '若是下拉列表录入
  899.             YdCombo.Left = .CellLeft + .Left + Wbkpy
  900.             YdCombo.Top = .CellTop + .Top + Wbkpy
  901.             YdCombo.Width = .CellWidth - Wbkpy1
  902.             Call Wbkcl                          '主要是在下拉列表框可用之前填充下拉列表框
  903.             YdCombo.Visible = True
  904.             YdCombo.SetFocus
  905.             Ydcommand.Visible = False
  906.             Ydtext.Visible = False
  907.             Yd_Help.Visible = False
  908.         Else
  909.             If GridBoolean(.Col, 2) Then        '是否提供帮助
  910.                 Ydcommand.Left = .Left + .CellLeft + .CellWidth - Ydcommand.Width + Wbkpy
  911.                 Ydcommand.Top = .Top + .CellTop + .CellHeight - Ydcommand.Height + Wbkpy
  912.                 Ydcommand.Visible = True
  913.             Else
  914.                 Ydcommand.Visible = False
  915.             End If
  916.             Ydtext.Left = .CellLeft + .Left + Wbkpy
  917.             Ydtext.Top = .CellTop + .Top + Wbkpy
  918.             If Ydcommand.Visible Then
  919.                 If Sfblbzkd Then
  920.                     Ydtext.Width = .CellWidth - Ydcommand.Width
  921.                 Else
  922.                     Ydtext.Width = .CellWidth - Wbkpy1
  923.                 End If
  924.             Else
  925.                 Ydtext.Width = .CellWidth - Wbkpy1
  926.             End If
  927.             Ydtext.Height = .CellHeight - Wbkpy1
  928.             If GridInt(.Col, 2) <> 0 Then
  929.                 Ydtext.MaxLength = GridInt(.Col, 2)
  930.             Else
  931.                 Ydtext.MaxLength = 3000
  932.             End If
  933.             ' 主要是Zdlrqnr = Trim(.Text)即将网格单元的内容赋予文本框,并且记录网格编辑之前的内容
  934.             '为是否对该单元的内容进行字段有效判断加锁Yxxpdlock = False
  935.             Call Wbkcl
  936.             Ydtext.Visible = True
  937.             Ydtext.SetFocus
  938.         End If
  939.         Dqtoprow = .TopRow
  940.         Dqleftcol = .LeftCol
  941.         
  942.         '重置锁值
  943.         Valilock = False
  944.         Wbkbhlock = False
  945.     End With
  946. End Sub
  947. Private Sub Lrsjhx()                                                   '文本框录入数据回写
  948.     With WglrGrid
  949.         If YdCombo.Visible Then .Text = Trim(YdCombo.Text)
  950.         If Ydtext.Visible Then .Text = Trim(Ydtext.Text)
  951.         
  952.         '(如果字段录入内容发生变化,则打开有效性判断锁)
  953.         If Zdlrqnr <> Trim(.Text) Then
  954.             Yxxpdlock = False
  955.             Hyxxpdlock = False
  956.         End If
  957.         '如果字段录入内容不为空则写数据行有效性标志
  958.         If Len(Trim(.Text)) <> 0 Then
  959.             Call Xyxhbz(.Row)
  960.         End If
  961.         '隐藏文本框,帮助按钮,列表组合框
  962.         Call Ycwbk
  963.     End With
  964. End Sub
  965. Private Sub Wbkcl()                                                 '文本框录入之前处理(根据实际情况)
  966.     Dim xswbrr As String
  967.     With WglrGrid
  968.         Zdlrqnr = Trim(.Text)
  969.         xswbrr = Trim(.Text)
  970.         If GridBoolean(.Col, 3) Then   '列表框录入
  971.             
  972.             '填充列表框程序
  973.             Call FillCombo(YdCombo, GridStr(.Col, 5), xswbrr, 0)
  974.         Else
  975.             Wbkbhlock = True
  976.             
  977.             '====以下为用户自定义
  978.             Ydtext.Text = xswbrr
  979.             '====以上为用户自定义
  980.             
  981.             Wbkbhlock = False
  982.             Ydtext.SelStart = Len(Ydtext.Text)
  983.         End If
  984.     End With
  985. End Sub
  986. Private Function sjzdyxxpd(Dqpdwgh As Long, Dqpdwgl As Long)        '录入数据字段有效性判断,同时进行字段录入事后处理
  987.     Dim Str_JudgeText As String  '临时有效性判断字段内容
  988.     Dim Coljsq As Long           '临时列计数器
  989.     
  990.     With WglrGrid
  991.         '非录入状态有效性为合法
  992.         If Yxxpdlock Or .Row < .FixedRows Then
  993.             sjzdyxxpd = True
  994.             Exit Function
  995.         End If
  996.         Str_JudgeText = Trim(.TextMatrix(Dqpdwgh, Dqpdwgl))
  997.     End With
  998.     Select Case GridStr(Dqpdwgl, 1)
  999.         '以下为自定义部分[
  1000.     Case "005"     '转帐性质
  1001.         If Len(Str_JudgeText) <> 0 Then
  1002.             If Str_JudgeText <> "转入" And Str_JudgeText <> "转出" Then
  1003.                 Tsxx = "转帐方向必须选择“转入”或“转出”"
  1004.                 GoTo Lrcwcl
  1005.             End If
  1006.         End If
  1007.     Case "001"          '凭证摘要(如用户录入编码正确,则自动调入摘要内容)
  1008.         If Len(Str_JudgeText) <> 0 Then
  1009.             Sqlstr = "SELECT * FROM Cwzz_Digest Where DigestCode='" & Str_JudgeText & "'"
  1010.             Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1011.             If Not RecTemp.EOF Then
  1012.                 WglrGrid.TextMatrix(Dqpdwgh, Sydz("001", GridStr(), Szzls)) = Trim(RecTemp.Fields("DigestText"))
  1013.             End If
  1014.             '保存最后录入的一条凭证分录的摘要内容
  1015.             Str_Digest = WglrGrid.TextMatrix(Dqpdwgh, Sydz("001", GridStr(), Szzls))
  1016.         End If
  1017.     Case "002"
  1018.         If Len(Str_JudgeText) <> 0 Then
  1019.             Sqlstr = "Select Cwzz_AccCode.* ,ItemClassName FROM  Cwzz_AccCode " & _
  1020.             " LEFT OUTER JOIN Cwzz_ItemClass ON Cwzz_AccCode.ItemClassCode = Cwzz_ItemClass.ItemClassCode " & _
  1021.             " Where Ccode='" & Str_JudgeText & "' OR AssCode='" & Str_JudgeText & "'"
  1022.             '可以建外键,为何?
  1023.             Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1024.             With RecTemp
  1025.                 If .EOF Then
  1026.                     Tsxx = "此科目不存在!"
  1027.                     GoTo Lrcwcl
  1028.                 Else
  1029.                     If Not .Fields("EndFlag") Then
  1030.                         Tsxx = "此科目非末级科目!"
  1031.                         GoTo Lrcwcl
  1032.                     End If
  1033.                     If .Fields("StopFlag") Then
  1034.                         Tsxx = "此科目已停用"
  1035.                         GoTo Lrcwcl
  1036.                     End If
  1037.                     '如果此科目存在且改变过则执行下列操作
  1038.                     '1.显示科目编码,改变科目名称
  1039.                     WglrGrid.TextMatrix(Dqpdwgh, Sydz("002", GridStr(), Szzls)) = Trim(RecTemp.Fields("Ccode"))
  1040.                     WglrGrid.TextMatrix(Dqpdwgh, Sydz("003", GridStr(), Szzls)) = Trim(RecTemp.Fields("Cname"))
  1041.                     '                        WglrGrid.TextMatrix(Dqpdwgh, 9) = Trim(rectemp.Fields("ItemClassCode") & "")
  1042.                     '                        WglrGrid.TextMatrix(Dqpdwgh, 10) = Trim(rectemp.Fields("ItemClassName") & "")
  1043.                     Call Sub_Drfzhsx(Dqpdwgh, Str_JudgeText)
  1044.                 End If
  1045.             End With
  1046.         Else
  1047.             For Jsqte = 1 To 12
  1048.                 WglrGrid.TextMatrix(Dqpdwgh, Jsqte) = ""
  1049.             Next Jsqte
  1050.             WglrGrid.TextMatrix(Dqpdwgh, Sydz("003", GridStr(), Szzls)) = ""
  1051.         End If
  1052.     End Select
  1053.     '字段录入正确后为零字段清空
  1054.     Call Qkwlzd(Dqpdwgh, Dqpdwgl)
  1055.     sjzdyxxpd = True
  1056.     Yxxpdlock = True
  1057.     Exit Function
  1058. Lrcwcl:    '录入错误处理
  1059.     With WglrGrid
  1060.         Call Xtxxts(Tsxx, 0, 1)
  1061.         changelock = True
  1062.         .Select Dqpdwgh, Dqpdwgl
  1063.         If GridBoolean(.Col, 1) = True Then
  1064.             changelock = False
  1065.             Call xswbk
  1066.             sjzdyxxpd = False
  1067.         Else
  1068.             If Help_Bz_Col(.Col) = True And Lab_OperStatus.Caption = 3 Then
  1069.                 Call Yd_Help_Show
  1070.             End If
  1071.         End If
  1072.     End With
  1073.     Exit Function
  1074. End Function
  1075. Private Function Sjhzyxxpd(ByVal Yxxpdh As Long) As Boolean                  '录入数据行有效性判断,同时进行行处理
  1076.     Dim Lrywlz As Long
  1077.     Dim RecTemp As New ADODB.Recordset     '临时使用动态集
  1078.     Dim Bln_AssVali As Boolean             '辅助核算错误
  1079.     Dim Bj As Boolean                       '辅助项有效性标志
  1080.     With WglrGrid
  1081.         
  1082.         '判断行是否为空和无效数据行清除
  1083.         If Yxxpdh > (.Rows - .FixedRows) Then Exit Function
  1084.         If .TextMatrix(Yxxpdh, 0) <> "*" Then
  1085.             Sjhzyxxpd = True
  1086.             Exit Function
  1087.         Else
  1088.             If pdhwk(Yxxpdh) And Yxxpdh + 1 <= .Rows - 1 Then
  1089.                 If .TextMatrix(Yxxpdh + 1, 0) <> "*" Then
  1090.                     changelock = True
  1091.                     .RemoveItem Yxxpdh
  1092.                     If .Rows < Pmbcsjhs + .FixedRows + Fzxwghs + 1 Then
  1093.                         .AddItem ""
  1094.                         .RowHeight(.Rows - 1) = Sjhgd
  1095.                     End If
  1096.                     changelock = False
  1097.                     Sjhzyxxpd = True
  1098.                     Exit Function
  1099.                 End If
  1100.             End If
  1101.         End If
  1102.         
  1103.         '行没有发生变化则不进行有效性判断
  1104.         If Hyxxpdlock Then
  1105.             Sjhzyxxpd = True
  1106.             Exit Function
  1107.         End If
  1108.         
  1109.         '以下为自定义部分[
  1110.         '1.放置行有效性判断程序
  1111.         
  1112.         '首先进行为空判断(固定不变)
  1113.         For Jsqte = Qslz To .Cols - 1
  1114.             If (GridInt(Jsqte, 5) = 1 And Len(Trim(.TextMatrix(Yxxpdh, Jsqte))) = 0) Or (GridInt(Jsqte, 5) = 2 And Val(Trim(.TextMatrix(Yxxpdh, Jsqte))) = 0) Then
  1115.                 Tsxx = GridStr(Jsqte, 2)
  1116.                 Lrywlz = Jsqte
  1117.                 GoTo Lrcwcl
  1118.                 Exit For
  1119.             End If
  1120.         Next Jsqte
  1121.         
  1122.         '判断辅助核算项目是否已填写,且有效
  1123.         If Trim(WglrGrid.TextMatrix(Yxxpdh, Sydz("002", GridStr(), Szzls))) <> "" Then
  1124.             Sqlstr = "Select * FROM Cwzz_AccCode Where Ccode='" & Trim(.TextMatrix(Yxxpdh, Sydz("002", GridStr(), Szzls))) & "'"
  1125.             Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1126.             Lrywlz = Sydz("002", GridStr(), Szzls)
  1127.             If Not RecTemp.EOF Then
  1128.                 '部门核算则部门不能为空,且有效
  1129.                 If RecTemp.Fields("DeptFlag") Then
  1130.                     If Len(Trim(WglrGrid.TextMatrix(Yxxpdh, 3))) = 0 Then
  1131.                         Tsxx = "该转帐科目需要部门核算,部门项不能为空"
  1132.                         Bln_AssVali = True
  1133.                         GoTo Lrcwcl
  1134.                     End If
  1135.                 Else
  1136.                     .TextMatrix(Yxxpdh, 3) = ""
  1137.                     .TextMatrix(Yxxpdh, 4) = ""
  1138.                 End If
  1139.                 '客户单位核算则往来单位不能为空,且有效
  1140.                 
  1141.                 If RecTemp.Fields("CusFlag") Then
  1142.                     If Len(Trim(WglrGrid.TextMatrix(Yxxpdh, 5))) = 0 Then
  1143.                         Tsxx = "该转帐科目需要客户单位核算,客户单位项不能为空"
  1144.                         Bln_AssVali = True
  1145.                         GoTo Lrcwcl
  1146.                     End If
  1147.                 Else
  1148.                     .TextMatrix(Yxxpdh, 5) = ""
  1149.                     .TextMatrix(Yxxpdh, 6) = ""
  1150.                 End If
  1151.                 '供应商单位核算则供应商单位不能为空
  1152.                 If RecTemp.Fields("SupplierFlag") Then
  1153.                     If Len(Trim(WglrGrid.TextMatrix(Yxxpdh, 7))) = 0 Then
  1154.                         Tsxx = "该转帐科目需要供应商单位核算,供应商单位项不能为空"
  1155.                         Bln_AssVali = True
  1156.                         GoTo Lrcwcl
  1157.                     End If
  1158.                 Else
  1159.                     .TextMatrix(Yxxpdh, 7) = ""
  1160.                     .TextMatrix(Yxxpdh, 8) = ""
  1161.                     
  1162.                 End If
  1163.                 
  1164.                 '个人往来核算则个人项不能为空
  1165.                 If RecTemp.Fields("PersonFlag") Then
  1166.                     If Len(Trim(WglrGrid.TextMatrix(Yxxpdh, 1))) = 0 Then
  1167.                         Tsxx = "该转帐科目需要个人往来核算,个人项不能为空"
  1168.                         Bln_AssVali = True
  1169.                         GoTo Lrcwcl
  1170.                     End If
  1171.                 Else
  1172.                     .TextMatrix(Yxxpdh, 1) = ""
  1173.                     .TextMatrix(Yxxpdh, 2) = ""
  1174.                 End If
  1175.                 
  1176.                 '项目核算则项目不能为空
  1177.                 If RecTemp.Fields("ItemFlag") Then
  1178.                     If Len(Trim(WglrGrid.TextMatrix(Yxxpdh, 11))) = 0 Then
  1179.                         Tsxx = "该转帐科目需要项目核算,核算项目不能为空"
  1180.                         Bln_AssVali = True
  1181.                         GoTo Lrcwcl
  1182.                     End If
  1183.                 Else
  1184.                     .TextMatrix(Yxxpdh, 11) = ""
  1185.                     .TextMatrix(Yxxpdh, 12) = ""
  1186.                     
  1187.                 End If
  1188.             End If
  1189.         End If
  1190.         '2.放置行处理程序
  1191.         
  1192.         '以上为自定义部分]
  1193.     End With
  1194.     Sjhzyxxpd = True
  1195.     Hyxxpdlock = True
  1196.     Exit Function
  1197. Lrcwcl:      '录入错误处理
  1198.     With WglrGrid
  1199.         Call Xtxxts(Tsxx, 0, 1)
  1200.         
  1201.         changelock = True
  1202.         .Select Yxxpdh, Lrywlz
  1203.         changelock = False
  1204.         
  1205.         '[>>如果辅助核算出现错误则调用辅助核算功能
  1206.         If Bln_AssVali Then
  1207.             Call Sub_Drfzhsx(Yxxpdh, Trim(.TextMatrix(Yxxpdh, Sydz("002", GridStr(), Szzls))))
  1208.             '解决鼠标点击取消造成的换行
  1209.             changelock = True
  1210.             .Select Yxxpdh, Lrywlz
  1211.             changelock = False
  1212.             '<<]
  1213.         Else
  1214.             Call xswbk
  1215.         End If
  1216.         Sjhzyxxpd = False
  1217.         Exit Function
  1218.     End With
  1219. End Function
  1220. Private Sub Yd_Help_content()          '点击辅助核算信息列
  1221.     
  1222.     '如果单据操作状态为浏览状态则不能显示录入载体
  1223.     If Trim(Lab_OperStatus.Caption) = "1" Then Exit Sub
  1224.     
  1225.     '当科目编码处于录入状态时不能调入辅助核算项目
  1226.     If Ydtext.Visible Then Exit Sub
  1227.     
  1228.     '当焦点处于非录入区域时也不能调入辅助核算项目
  1229.     If WglrGrid.Row < WglrGrid.FixedRows Then Exit Sub
  1230.     
  1231.     If Yd_Help.Visible = False Then Exit Sub
  1232.     
  1233.     '屏蔽文本框,下拉组合框有效性判断
  1234.     Valilock = True
  1235.     
  1236.     With WglrGrid
  1237.         If Trim(.TextMatrix(.Row, Sydz("002", GridStr(), Szzls))) = "" Then
  1238.             Tsxx = "请录入转帐科目!"
  1239.             Call Xtxxts(Tsxx, 0, 1)
  1240.         Else
  1241.             Call Sub_Drfzhsx(.Row, Trim(.TextMatrix(.Row, Sydz("002", GridStr(), Szzls))))
  1242.         End If
  1243.     End With
  1244.     Valilock = False
  1245. End Sub
  1246. Private Sub Sub_Drfzhsx(Dqpdwgh As Long, Str_JudgeText As String)   '判断科目是否有辅助核算,如有则调入辅助核算窗体
  1247.     '函数参数:当前判断网格行,判断科目
  1248.     
  1249.     Dim Coljsq As Long           '临时列计数器
  1250.     Dim jsq As Integer          '记录有效辅助信息个数
  1251.     '首先进行必要输入项目的判断
  1252.     If Len(Str_JudgeText) <> 0 Then
  1253.         
  1254.         Sqlstr = "Select Cwzz_AccCode.* ,ItemClassName FROM  Cwzz_AccCode " & _
  1255.         " LEFT OUTER JOIN Cwzz_ItemClass ON Cwzz_AccCode.ItemClassCode = Cwzz_ItemClass.ItemClassCode " & _
  1256.         " Where Ccode='" + Str_JudgeText + "' and EndFlag=1 and StopFlag=0"
  1257.         Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1258.         With RecTemp
  1259.             '判断科目进行哪些辅助核算
  1260.             '清空辅助核算标识
  1261.             For Jsqte = 0 To Int_AssCount - 1
  1262.                 Bln_AssShow(Jsqte) = False
  1263.             Next Jsqte
  1264.             If .EOF Then
  1265.                 WglrGrid.TextMatrix(Dqpdwgh, 1) = ""
  1266.                 WglrGrid.TextMatrix(Dqpdwgh, 2) = ""
  1267.                 WglrGrid.TextMatrix(Dqpdwgh, 3) = ""
  1268.                 WglrGrid.TextMatrix(Dqpdwgh, 4) = ""
  1269.                 WglrGrid.TextMatrix(Dqpdwgh, 5) = ""
  1270.                 WglrGrid.TextMatrix(Dqpdwgh, 6) = ""
  1271.                 WglrGrid.TextMatrix(Dqpdwgh, 7) = ""
  1272.                 WglrGrid.TextMatrix(Dqpdwgh, 8) = ""
  1273.                 WglrGrid.TextMatrix(Dqpdwgh, 9) = ""
  1274.                 WglrGrid.TextMatrix(Dqpdwgh, 10) = ""
  1275.                 WglrGrid.TextMatrix(Dqpdwgh, 11) = ""
  1276.                 WglrGrid.TextMatrix(Dqpdwgh, 12) = ""
  1277.                 Tsxx = "该转帐科目没有辅助核算信息"
  1278.                 Call Xtxxts(Tsxx, 0, 2)
  1279.             Else
  1280.                 
  1281.                 '个人核算
  1282.                 If RecTemp.Fields("PersonFlag") Then
  1283.                     Bln_AssShow(0) = True  '个人
  1284.                 Else
  1285.                     WglrGrid.TextMatrix(Dqpdwgh, 1) = ""
  1286.                     WglrGrid.TextMatrix(Dqpdwgh, 2) = ""
  1287.                 End If
  1288.                 
  1289.                 '部门核算
  1290.                 If RecTemp.Fields("DeptFlag") Then
  1291.                     Bln_AssShow(1) = True  '部门
  1292.                 Else
  1293.                     WglrGrid.TextMatrix(Dqpdwgh, 3) = ""
  1294.                     WglrGrid.TextMatrix(Dqpdwgh, 4) = ""
  1295.                 End If
  1296.                 
  1297.                 '客户核算
  1298.                 If RecTemp.Fields("CusFlag") Then
  1299.                     Bln_AssShow(3) = True                                                     '客户是否需要帮助的标志
  1300.                 Else
  1301.                     WglrGrid.TextMatrix(Dqpdwgh, 5) = ""
  1302.                     WglrGrid.TextMatrix(Dqpdwgh, 6) = ""
  1303.                 End If
  1304.                 '供应商核算
  1305.                 If RecTemp.Fields("SupplierFlag") Then
  1306.                     Bln_AssShow(4) = True                                                     '供应商是否需要帮助的标志
  1307.                 Else
  1308.                     WglrGrid.TextMatrix(Dqpdwgh, 7) = ""
  1309.                     WglrGrid.TextMatrix(Dqpdwgh, 8) = ""
  1310.                 End If
  1311.                 '项目核算
  1312.                 If RecTemp.Fields("ItemFlag") Then
  1313.                     If WglrGrid.TextMatrix(Dqpdwgh, 9) <> Trim(.Fields("ItemClassCode")) Then '项目类别编码与数据表中不符
  1314.                         WglrGrid.TextMatrix(Dqpdwgh, 9) = ""                                   '项目类别编码、名称、项目编码、名称均为空
  1315.                         WglrGrid.TextMatrix(Dqpdwgh, 10) = ""
  1316.                         WglrGrid.TextMatrix(Dqpdwgh, 11) = ""
  1317.                         WglrGrid.TextMatrix(Dqpdwgh, 12) = ""
  1318.                     Else
  1319.                         WglrGrid.TextMatrix(Dqpdwgh, 9) = Trim(.Fields("ItemClassCode")) '项目类别编码
  1320.                         WglrGrid.TextMatrix(Dqpdwgh, 10) = Trim(.Fields("ItemClassName")) '项目类别名称
  1321.                         Bln_AssShow(2) = True                                              '项目是否需要帮助的标志
  1322.                     End If
  1323.                 Else
  1324.                     WglrGrid.TextMatrix(Dqpdwgh, 9) = ""
  1325.                     WglrGrid.TextMatrix(Dqpdwgh, 10) = ""
  1326.                     WglrGrid.TextMatrix(Dqpdwgh, 11) = ""
  1327.                     WglrGrid.TextMatrix(Dqpdwgh, 12) = ""
  1328.                 End If
  1329.                 '是否存在帮助信息
  1330.                 jsq = 0
  1331.                 For Jsqte = 0 To Int_AssCount - 1
  1332.                     If Bln_AssShow(Jsqte) = True Then
  1333.                         jsq = jsq + 1
  1334.                     End If
  1335.                 Next Jsqte
  1336.                 If jsq <> 0 Then
  1337.                     '调入科目辅助核算项目
  1338.                     For Jsqte = 0 To Int_AssCount - 1
  1339.                         If Bln_AssShow(Jsqte) Then
  1340.                             PZ_FrmAss.lab_GridRow = Dqpdwgh
  1341.                             Call Kmfzhsx(Dqpdwgh)
  1342.                         End If
  1343.                     Next Jsqte
  1344.                 End If
  1345.             End If
  1346.             '重新显示辅助核算信息
  1347.             Call Sub_ShowMemo(WglrGrid.Row)
  1348.             WglrGrid.TextMatrix(Dqpdwgh, Sydz("005", GridStr(), Szzls)) = Str_Memo
  1349.             
  1350.         End With
  1351.     End If
  1352. End Sub
  1353. Private Sub Kmfzhsx(Lng_GridRow As Long)                  '调用科目辅助核算项
  1354.     '过程函数;Lng_gridrow当前网格调入辅助核算行
  1355.     Dim Kjqstop#, Kjqsleft#, Kjjg#, Ctzxgd#, Kjxsgs%
  1356.     Kjqstop = 300          '控件显示起始高度
  1357.     Kjqsleft = 300         '控件显示起始左边界
  1358.     Kjjg = 450             '控件显示间隔
  1359.     Kjxsgs = 0             '控件显示个数
  1360.     Ctzxgd = 1500          '窗体显示最小高度
  1361.     With AutoTran_AssCus          '辅助核算项目窗体
  1362.         For Jsqte = 0 To Int_AssCount - 1
  1363.             If Bln_AssShow(Jsqte) Then
  1364.                 .tsLabel(Jsqte).Visible = True
  1365.                 .tsLabel(Jsqte).Move Kjqsleft, Kjqstop + Kjxsgs * Kjjg
  1366.                 .LrText(Jsqte).Visible = True
  1367.                 .LrText(Jsqte).Move .tsLabel(Jsqte).Left + .tsLabel(Jsqte).Width + 50, .tsLabel(Jsqte).Top - 100
  1368.                 If Bln_AssHelp(Jsqte) Then
  1369.                     .Ydcommand1(Jsqte).Visible = True
  1370.                     .Ydcommand1(Jsqte).Move .LrText(Jsqte).Left + .LrText(Jsqte).Width, .LrText(Jsqte).Top, .Ydcommand1(Jsqte).Width, .LrText(Jsqte).Height
  1371.                 End If
  1372.                 Kjxsgs = Kjxsgs + 1
  1373.                 Select Case Jsqte
  1374.                 Case 0     '个人
  1375.                     .LrText(Jsqte).Tag = Trim(WglrGrid.TextMatrix(Lng_GridRow, 1))
  1376.                     .LrText(Jsqte).Text = Trim(WglrGrid.TextMatrix(Lng_GridRow, 2))
  1377.                 Case 1     '部门
  1378.                     .LrText(Jsqte).Tag = Trim(WglrGrid.TextMatrix(Lng_GridRow, 3))
  1379.                     .LrText(Jsqte).Text = Trim(WglrGrid.TextMatrix(Lng_GridRow, 4))
  1380.                 Case 3     '客户
  1381.                     .LrText(Jsqte).Tag = Trim(WglrGrid.TextMatrix(Lng_GridRow, 5))
  1382.                     .LrText(Jsqte).Text = Trim(WglrGrid.TextMatrix(Lng_GridRow, 6))
  1383.                 Case 4     '供应商
  1384.                     .LrText(Jsqte).Tag = Trim(WglrGrid.TextMatrix(Lng_GridRow, 7))
  1385.                     .LrText(Jsqte).Text = Trim(WglrGrid.TextMatrix(Lng_GridRow, 8))
  1386.                 Case 2     '项目
  1387.                     .Lab_ItemClass.Tag = Trim(WglrGrid.TextMatrix(Lng_GridRow, 9))
  1388.                     .Lab_ItemClass.Caption = "(" + Trim(WglrGrid.TextMatrix(Lng_GridRow, 10)) + ")"
  1389.                     .Lab_ItemClass.Move .LrText(Jsqte).Left + .LrText(Jsqte).Width + 400, .LrText(Jsqte).Top + 100
  1390.                     .LrText(Jsqte).Tag = Trim(WglrGrid.TextMatrix(Lng_GridRow, 11))
  1391.                     .LrText(Jsqte).Text = Trim(WglrGrid.TextMatrix(Lng_GridRow, 12))
  1392.                 End Select
  1393.             Else
  1394.                 .tsLabel(Jsqte).Visible = False
  1395.                 .LrText(Jsqte).Visible = False
  1396.                 If Bln_AssHelp(Jsqte) Then
  1397.                     .Ydcommand1(Jsqte).Visible = False
  1398.                 End If
  1399.             End If
  1400.         Next Jsqte
  1401.         If Kjqstop * 3 + Kjxsgs * Kjjg > Ctzxgd Then
  1402.             .Height = Kjqstop * 3 + Kjxsgs * Kjjg
  1403.         Else
  1404.             .Height = Ctzxgd
  1405.         End If
  1406.         '加锁
  1407.         changelock = True
  1408.         .Show 1
  1409.         changelock = False
  1410.     End With
  1411. End Sub
  1412. Private Sub Sub_ShowMemo(Lng_GridRow)                                    '显示网格备注项
  1413.     '函数参数:网格行
  1414.     
  1415.     Str_Memo = ""
  1416.     With WglrGrid
  1417.         If Len(Trim(.TextMatrix(Lng_GridRow, 1))) <> 0 Then
  1418.             Str_Memo = Str_Memo + Trim(.TextMatrix(Lng_GridRow, 2)) + Space(2)
  1419.         End If
  1420.         If Len(Trim(.TextMatrix(Lng_GridRow, 3))) <> 0 Then
  1421.             Str_Memo = Str_Memo + Trim(.TextMatrix(Lng_GridRow, 4)) + Space(2)
  1422.         End If
  1423.         If Len(Trim(.TextMatrix(Lng_GridRow, 5))) <> 0 Then
  1424.             Str_Memo = Str_Memo + Trim(.TextMatrix(Lng_GridRow, 6)) + Space(2)
  1425.         End If
  1426.         If Val(.TextMatrix(Lng_GridRow, 7)) <> 0 Then
  1427.             Str_Memo = Str_Memo + Trim(.TextMatrix(Lng_GridRow, 8)) + Space(2)
  1428.         End If
  1429.         
  1430.         If Len(Trim(.TextMatrix(Lng_GridRow, 11))) <> 0 Then
  1431.             Str_Memo = Str_Memo + Trim(.TextMatrix(Lng_GridRow, 12)) + Space(2)
  1432.         End If
  1433.         
  1434.         
  1435.     End With
  1436.     
  1437. End Sub
  1438. Private Sub Sub_EditBill()                                                '修改一张单据
  1439.     '判断当前凭证是否允许修改
  1440.     If Not Fun_AllowEdit Then
  1441.         Exit Sub
  1442.     End If
  1443.     
  1444.     '设置操作状态为修改
  1445.     Lab_OperStatus.Caption = "3"
  1446.     '设置工具条状态
  1447.     Call Sub_OperStatus("30")
  1448. End Sub
  1449. Private Sub Sub_AbandonBill()                                              '放弃对当前单据的操作
  1450.     
  1451.     '先关闭录入载体
  1452.     changelock = True
  1453.     Valilock = True
  1454.     Call Ycwbk
  1455.     changelock = False
  1456.     Valilock = False
  1457.     Yd_Help.Visible = False
  1458.     Select Case Trim(Lab_OperStatus.Caption)
  1459.     Case "3"         '修改状态
  1460.         '重新显示当前单据
  1461.         Call Sub_ShowBill
  1462.         '设置操作状态为浏览
  1463.         Lab_OperStatus = "1"
  1464.         Call Sub_OperStatus("11")
  1465.     End Select
  1466. End Sub
  1467. Private Function Fun_AllowEdit() As Boolean                      '判断当前定义是否允许编辑或删除
  1468.     Fun_AllowEdit = True
  1469. End Function
  1470. '===================以 下 程 序 为 通 用 部 分 ,一 般 不 需 更 改======================='
  1471. Private Sub Sub_AdjustGrid()
  1472.     '调 整 网 格
  1473.     With WglrGrid
  1474.         '加 1 保持一行录入行
  1475.         If .Rows < Pmbcsjhs + .FixedRows + Fzxwghs + 1 Then
  1476.             .Rows = Pmbcsjhs + .FixedRows + Fzxwghs + 1
  1477.             For Jsqte = .FixedRows To .Rows - 1
  1478.                 .RowHeight(Jsqte) = Sjhgd
  1479.             Next Jsqte
  1480.         Else
  1481.             '判断是否有辅助行和录入行,如没有则加行
  1482.             Do While .TextMatrix(.Rows - 1 - Fzxwghs, 0) = "*"
  1483.                 .AddItem ""
  1484.                 .RowHeight(.Rows - 1) = Sjhgd
  1485.             Loop
  1486.         End If
  1487.     End With
  1488. End Sub
  1489. Private Sub Lrzdbz()                                                      '录入字段帮助
  1490.     If Not Ydcommand.Visible Then
  1491.         Exit Sub
  1492.     End If
  1493.     Valilock = True         '为防止按ydText中帮助按纽时,引起ydText的LostFocus事件。
  1494.     With WglrGrid
  1495.         '[>>会计科目编码帮助单独处理
  1496.         Select Case .Col
  1497.         Case Sydz("002", GridStr(), Szzls)
  1498.             Xtcdcs = Trim(Ydtext.Text)
  1499.             PZ_FrmKjkmcz.Show 1
  1500.             If Len(Xtfhcs) <> 0 Then
  1501.                 Ydtext.Text = Xtfhcs
  1502.             End If
  1503.         Case Sydz("005", GridStr(), Szzls)
  1504.             AutoTran_AssCus.Show 1
  1505.         Case Else
  1506.             '处理通用部分
  1507.             changelock = True        '调入另外窗体必须加锁,为不必执行网格的离开焦点造成的RowColChange事件
  1508.             '?没有必要,因为,文本框和命令按纽之间转换焦点,不会执行RowColChange
  1509.             Call Drbmhelp(GridInt(.Col, 6), GridStr(.Col, 3), Trim(Ydtext.Text))
  1510.             changelock = False
  1511.             If Len(Xtfhcs) <> 0 Then
  1512.                 If GridInt(.Col, 7) = 0 Then
  1513.                     Ydtext.Text = Xtfhcs
  1514.                 Else
  1515.                     Ydtext.Text = Xtfhcsfz
  1516.                 End If
  1517.             End If
  1518.         End Select
  1519.         '[>>处理完毕
  1520.         Valilock = False
  1521.         If Ydtext.Visible Then
  1522.             Ydtext.SetFocus
  1523.         End If
  1524.     End With
  1525. End Sub
  1526. Private Sub Form_Resize()                                                '窗体大小发生变化时,重新显示文本框
  1527.     Call Cxxswbk
  1528. End Sub
  1529. Private Function Fun_Drfrmyxxpd() As Boolean                             '调入其它窗体或功能产生的有效性判断(包括数据回写)
  1530.     '因为点工具栏的按纽时文本框或网格均没有失去焦点事件发生,为保证该操作之前进行录入数据的有效性判断而设。
  1531.     Fun_Drfrmyxxpd = True
  1532.     With WglrGrid
  1533.         '如果当前网格处于编辑状态,则先进行数据回写再进行有效性判断
  1534.         If Yd_Help.Visible = True Then
  1535.             Yd_Help.Visible = False
  1536.         End If
  1537.         If Ydtext.Visible Or YdCombo.Visible Then
  1538.             Call Lrsjhx
  1539.             If Not sjzdyxxpd(Dqlrwgh, Dqlrwgl) Then
  1540.                 Fun_Drfrmyxxpd = False
  1541.                 Exit Function
  1542.             End If
  1543.         End If
  1544.         '进行行有效性判断
  1545.         If Not Sjhzyxxpd(.Row) Then
  1546.             Fun_Drfrmyxxpd = False
  1547.             Exit Function
  1548.         End If
  1549.     End With
  1550. End Function
  1551. Private Sub WglrGrid_EnterCell()                                    '显示当前数据行相关信息
  1552.     With WglrGrid
  1553.         If .Row >= .FixedRows Then
  1554.             Lab_Row = Trim(Str(.Row - .FixedRows + 1))
  1555.         End If
  1556.     End With
  1557. End Sub
  1558. Private Sub WglrGrid_GotFocus()                                     '网格得到焦点
  1559.     '网格得到焦点,如果当前选择行为非数据行
  1560.     '则调整当前焦点至有效数据行
  1561.     With WglrGrid
  1562.         If .Row < .FixedRows And .Rows > .FixedRows Then
  1563.             changelock = True
  1564.             .Select .FixedRows, .Col
  1565.             changelock = False
  1566.         End If
  1567.         If .Col < Qslz Then     '
  1568.             changelock = True
  1569.             .Select .Row, Qslz
  1570.             changelock = False
  1571.         End If
  1572.         If .Row >= .FixedRows And Help_Bz_Col(.Col) = True And Lab_OperStatus.Caption = 3 Then
  1573.             Call Yd_Help_Show
  1574.         End If
  1575.     End With
  1576. End Sub
  1577. Private Sub WglrGrid_KeyUp(KeyCode As Integer, Shift As Integer)
  1578.     '如果单据操作状态为浏览状态则不能显示录入载体
  1579.     If Trim(Lab_OperStatus.Caption) = "1" Then
  1580.         Exit Sub
  1581.     End If
  1582.     If Help_Bz_Col(WglrGrid.Col) = True And Lab_OperStatus.Caption = 3 Then
  1583.         Call Yd_Help_Show
  1584.     Else
  1585.         Yd_Help.Visible = False
  1586.     End If
  1587.     
  1588. End Sub
  1589. Private Sub WglrGrid_LostFocus()                                    '录入网格失去焦点
  1590.     '网格内部原因:网格单元内需要录入信息过程中,(程序控制)本单元内的文本框或下拉列表框显露并获得焦点时引发该事件发生;
  1591.     '网格外部原因:网格之外的控件获得焦点造成网格失去焦点,比如网格外的文本框。
  1592.     
  1593.     '用以屏蔽调用其它窗体时发生网格失去焦点事件
  1594.     If changelock Then
  1595.         Exit Sub
  1596.     End If
  1597.     '在每个单元输入均合法,但整行输入有可能不合法,在文本框不可编辑状态,这时网格外的某控件获得焦点时,网格失去焦点,必须人为引发RowColChange事件
  1598.     '故意引发网格RowcolChange事件
  1599.     With WglrGrid
  1600.         If Not (Ydtext.Visible Or YdCombo.Visible) Then
  1601.             .Select 0, 0
  1602.         End If
  1603.     End With
  1604. End Sub
  1605. Private Sub WglrGrid_AfterScroll(ByVal OldTopRow As Long, ByVal OldLeftCol As Long, ByVal NewTopRow As Long, ByVal NewLeftCol As Long)                                       '限制用户在录入过程中滚动鼠标
  1606.     If Gdtlock Then
  1607.         Exit Sub
  1608.     End If
  1609.     With WglrGrid
  1610.         If Ydtext.Visible Or YdCombo.Visible Or Yd_Help.Visible = True Then
  1611.             Gdtlock = True
  1612.             .TopRow = Dqtoprow
  1613.             .LeftCol = Dqleftcol
  1614.             Gdtlock = False
  1615.             Exit Sub
  1616.         End If
  1617.     End With
  1618. End Sub
  1619. Private Sub WglrGrid_LeaveCell()                                    '离开单元格
  1620.     If changelock Then
  1621.         Exit Sub
  1622.     End If
  1623.     '记录刚刚离开网格单元的行列值
  1624.     Dqlkwgh = WglrGrid.Row
  1625.     Dqlkwgl = WglrGrid.Col
  1626.     '判断是否需要录入数据回写
  1627.     If Help_Bz_Col(WglrGrid.Col) = True Then
  1628.         Yd_Help.Visible = False
  1629.     End If
  1630.     If Not (Ydtext.Visible Or YdCombo.Visible) Then
  1631.         Exit Sub
  1632.     End If
  1633.     Call Lrsjhx
  1634. End Sub
  1635. Private Sub WglrGrid_RowColChange()                                '网格录入行列发生变化时,进行有效性判断
  1636.     
  1637.     Valilock = True       '屏蔽文本框失去焦点进行有效性判断
  1638.     With WglrGrid
  1639.         If changelock Then
  1640.             Exit Sub
  1641.         End If
  1642.         If Not sjzdyxxpd(Dqlrwgh, Dqlrwgl) Then
  1643.             Exit Sub
  1644.         End If
  1645.         If .Row <> Dqlkwgh Then     '若刚刚进入行《》刚刚离开行,进行行有效性判断
  1646.             If Not Sjhzyxxpd(Dqlkwgh) Then
  1647.                 Exit Sub
  1648.             End If
  1649.         End If
  1650.     End With
  1651.     Call fhyxh      '返回有效行
  1652.     Call Xldql
  1653.     
  1654. End Sub
  1655. Private Sub WglrGrid_DblClick()          '鼠标双击网格显示文本框
  1656.     With WglrGrid
  1657.         If GridBoolean(.Col, 1) = True Then
  1658.             Call xswbk
  1659.         Else
  1660.             If Help_Bz_Col(.Col) = True And Lab_OperStatus.Caption = 3 Then
  1661.                 Call Yd_Help_Show
  1662.             End If
  1663.         End If
  1664.     End With
  1665. End Sub
  1666. Private Sub Ycwbk()                      '隐藏文本框,帮助按钮,列表组合框
  1667.     Valilock = True
  1668.     Ydtext.Visible = False
  1669.     YdCombo.Visible = False
  1670.     Ydcommand.Visible = False
  1671. End Sub
  1672. Private Sub YdCombo_KeyDown(KeyCode As Integer, Shift As Integer)        '列表框的光标移动
  1673.     With WglrGrid
  1674.         Select Case KeyCode
  1675.         Case vbKeyEscape                'ESC 键放弃录入
  1676.             Valilock = True
  1677.             .SetFocus
  1678.             Call Ycwbk
  1679.             Valilock = False
  1680.         Case vbKeyReturn                '回 车 键 =13
  1681.             KeyCode = 0
  1682.             .SetFocus
  1683.             Call Lrsjhx
  1684.             Rowjsq = .Row
  1685.             Coljsq = .Col + 1
  1686.             If Coljsq > .Cols - 1 Then
  1687.                 If Rowjsq < .Rows - 1 Then
  1688.                     Rowjsq = Rowjsq + 1
  1689.                 End If
  1690.                 Coljsq = Qslz
  1691.             End If
  1692.             Do While Rowjsq <= .Rows - 1
  1693.                 If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1) And Help_Bz_Col(Coljsq) = False) Then
  1694.                     Coljsq = Coljsq + 1
  1695.                     If Coljsq > .Cols - 1 Then
  1696.                         Rowjsq = Rowjsq + 1
  1697.                         Coljsq = Qslz
  1698.                     End If
  1699.                 Else
  1700.                     Exit Do
  1701.                 End If
  1702.             Loop
  1703.             .Select Rowjsq, Coljsq
  1704.         Case vbKeyLeft                  '左 箭 头 =37
  1705.             If .Col - 1 = Qslz Then
  1706.                 If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  1707.                     GoTo jzzx
  1708.                 End If
  1709.             End If
  1710.             If .Col > Qslz Then
  1711.                 KeyCode = 0
  1712.                 .SetFocus
  1713.                 Call Lrsjhx
  1714.                 Coljsq = .Col - 1
  1715.                 Do While Coljsq > Qslz
  1716.                     If Coljsq - 1 = Qslz Then
  1717.                         If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  1718.                             GoTo jzzx
  1719.                         End If
  1720.                     End If
  1721.                     If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1) And Help_Bz_Col(Coljsq) = False) Then
  1722.                         Coljsq = Coljsq - 1
  1723.                     Else
  1724.                         Exit Do
  1725.                     End If
  1726.                 Loop
  1727.                 .Select .Row, Coljsq
  1728.             End If
  1729.         Case vbKeyRight                 '右 箭 头 =39
  1730.             KeyCode = 0
  1731.             .SetFocus
  1732.             Call Lrsjhx
  1733.             Rowjsq = .Row
  1734.             Coljsq = .Col + 1
  1735.             If Coljsq > .Cols - 1 Then
  1736.                 If Rowjsq < .Rows - 1 Then
  1737.                     Rowjsq = Rowjsq + 1
  1738.                 End If
  1739.                 Coljsq = Qslz
  1740.             End If
  1741.             Do While Rowjsq <= .Rows - 1
  1742.                 If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1) And Help_Bz_Col(Coljsq) = False) Then
  1743.                     Coljsq = Coljsq + 1
  1744.                     If Coljsq > .Cols - 1 Then
  1745.                         Rowjsq = Rowjsq + 1
  1746.                         Coljsq = Qslz
  1747.                     End If
  1748.                 Else
  1749.                     Exit Do
  1750.                 End If
  1751.             Loop
  1752.             .Select Rowjsq, Coljsq
  1753.         Case Else
  1754.         End Select
  1755.     End With
  1756. jzzx:
  1757. End Sub
  1758. Private Sub YdCombo_LostFocus()                     '下拉列表框失去焦点
  1759.     With WglrGrid                                    '因为选中网格会先发生Rowcolchange事件置Valiock
  1760.         If Not Valilock Then                           '为TRUE
  1761.             Call Lrsjhx
  1762.             If Not Sjhzyxxpd(Dqlrwgh) Then
  1763.                 Exit Sub
  1764.             End If
  1765.         End If
  1766.     End With
  1767. End Sub
  1768. Private Sub Ydcommand_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  1769.     Call Lrzdbz
  1770. End Sub
  1771. Private Sub ydtext_KeyDown(KeyCode As Integer, Shift As Integer)    '录入文本框的焦点发生移动或特殊击键动作,回车、帮助、ESC键、上下左右箭头
  1772.     Dim Rowjsq As Long, Coljsq As Long
  1773.     With WglrGrid
  1774.         Select Case KeyCode
  1775.         Case vbKeyF2
  1776.             Call Lrzdbz
  1777.         Case vbKeyEscape                'ESC 键放弃录入
  1778.             Valilock = True
  1779.             Call Ycwbk
  1780.             .SetFocus
  1781.         Case vbKeyReturn                '回 车 键 =13
  1782.             KeyCode = 0
  1783.             .SetFocus
  1784.             Call Lrsjhx
  1785.             Rowjsq = .Row
  1786.             Coljsq = .Col + 1
  1787.             If Coljsq > .Cols - 1 Then
  1788.                 If Rowjsq < .Rows - 1 Then
  1789.                     Rowjsq = Rowjsq + 1
  1790.                 End If
  1791.                 Coljsq = Qslz
  1792.             End If
  1793.             Do While Rowjsq <= .Rows - 1
  1794.                 If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1) And Help_Bz_Col(Coljsq) = False) Then
  1795.                     Coljsq = Coljsq + 1
  1796.                     If Coljsq > .Cols - 1 Then
  1797.                         Rowjsq = Rowjsq + 1
  1798.                         Coljsq = Qslz
  1799.                     End If
  1800.                 Else
  1801.                     Exit Do
  1802.                 End If
  1803.             Loop
  1804.             .Select Rowjsq, Coljsq
  1805.         Case vbKeyUp                    '上 箭 头 =38
  1806.             KeyCode = 0
  1807.             .SetFocus
  1808.             Call Lrsjhx
  1809.             If .Row > .FixedRows Then
  1810.                 .Row = .Row - 1
  1811.             End If
  1812.         Case vbKeyDown                  '下 箭 头 =40
  1813.             KeyCode = 0
  1814.             .SetFocus
  1815.             Call Lrsjhx
  1816.             If .Row < .Rows - 1 Then
  1817.                 .Row = .Row + 1
  1818.             End If
  1819.         Case vbKeyLeft                  '左 箭 头 =37
  1820.             If .Col - 1 = Qslz Then
  1821.                 If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  1822.                     GoTo jzzx
  1823.                 End If
  1824.             End If
  1825.             If Ydtext.SelStart = 0 And .Col > Qslz Then
  1826.                 KeyCode = 0
  1827.                 .SetFocus
  1828.                 Call Lrsjhx
  1829.                 Coljsq = .Col - 1
  1830.                 Do While Coljsq > Qslz
  1831.                     If Coljsq - 1 = Qslz Then
  1832.                         If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  1833.                             GoTo jzzx
  1834.                         End If
  1835.                     End If
  1836.                     If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1) And Help_Bz_Col(Coljsq) = False) Then
  1837.                         Coljsq = Coljsq - 1
  1838.                     Else
  1839.                         Exit Do
  1840.                     End If
  1841.                 Loop
  1842.                 .Select .Row, Coljsq
  1843.             End If
  1844. jzzx:
  1845.         Case vbKeyRight                 '右 箭 头 =39
  1846.             wblong = Len(Ydtext.Text)
  1847.             If (Ydtext.SelStart = wblong Or Ydtext.SelLength = wblong) Then
  1848.                 KeyCode = 0
  1849.                 .SetFocus
  1850.                 Call Lrsjhx
  1851.                 Rowjsq = .Row
  1852.                 Coljsq = .Col + 1
  1853.                 If Coljsq > .Cols - 1 Then
  1854.                     If Rowjsq < .Rows - 1 Then
  1855.                         Rowjsq = Rowjsq + 1
  1856.                     End If
  1857.                     Coljsq = Qslz
  1858.                 End If
  1859.                 Do While Rowjsq <= .Rows - 1
  1860.                     If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1) And Help_Bz_Col(Coljsq) = False) Then
  1861.                         Coljsq = Coljsq + 1
  1862.                         If Coljsq > .Cols - 1 Then
  1863.                             Rowjsq = Rowjsq + 1
  1864.                             Coljsq = Qslz
  1865.                         End If
  1866.                     Else
  1867.                         Exit Do
  1868.                     End If
  1869.                 Loop
  1870.                 .Select Rowjsq, Coljsq
  1871.             End If
  1872.         Case Else
  1873.         End Select
  1874.     End With
  1875. End Sub
  1876. Private Sub ydtext_KeyPress(KeyAscii As Integer)         '录入字符事中控制
  1877.     Call InputFieldLimit(Ydtext, GridInt(WglrGrid.Col, 1), KeyAscii)    '参数:文本框控件,字段数据类型,输入字符
  1878.     If KeyAscii <> 0 Then
  1879.         Call Xyxhbz(Dqlrwgh)
  1880.     End If
  1881. End Sub
  1882. Private Sub ydtext_Change() '录入事中变化处理
  1883.     '防止程序改变但不进行处理
  1884.     If Wbkbhlock Then
  1885.         Exit Sub
  1886.     End If
  1887.     With WglrGrid
  1888.         '限制字段录入长度
  1889.         Wbkbhlock = True
  1890.         Select Case GridInt(.Col, 1)
  1891.         Case 8
  1892.             Call Sjgskz(Ydtext, Xtjezws - Xtjexsws - 1, Xtjexsws)
  1893.         Case 9
  1894.             Call Sjgskz(Ydtext, Xtslzws - Xtslxsws - 1, Xtslxsws)
  1895.         Case 10
  1896.             Call Sjgskz(Ydtext, Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  1897.         Case Else
  1898.             If GridInt(.Col, 3) <> 0 Or GridInt(.Col, 4) <> 0 Then
  1899.                 Call Sjgskz(Ydtext, GridInt(.Col, 3), GridInt(.Col, 4))
  1900.             End If
  1901.         End Select
  1902.         Wbkbhlock = False
  1903.     End With
  1904. End Sub
  1905. Private Sub ydtext_LostFocus()            '如果由于选中网格之外的控件而发生有效性判断(选中网格会先发生Rowcolchange事件置Valiock为TRUE)
  1906.     With WglrGrid
  1907.         If Valilock = False Then
  1908.             Call Lrsjhx
  1909.             If Not sjzdyxxpd(Dqlrwgh, Dqlrwgl) Then Exit Sub
  1910.             If Not Sjhzyxxpd(Dqlrwgh) Then
  1911.                 Exit Sub
  1912.             End If
  1913.         End If
  1914.     End With
  1915. End Sub
  1916. Private Sub WglrGrid_KeyDown(KeyCode As Integer, Shift As Integer)    '网格录入在录入状态下的增行,删行快捷键
  1917.     '如果单据操作状态为浏览状态则不能显示录入载体
  1918.     If Trim(Lab_OperStatus.Caption) = "1" Then
  1919.         Exit Sub
  1920.     End If
  1921.     Select Case KeyCode
  1922.     Case vbKeyDelete               '删行
  1923.         Call Scdqfl
  1924.     Case vbKeyInsert               '增行
  1925.         Call zjlrfl
  1926.     Case vbKeyF2
  1927.         If Help_Bz_Col(WglrGrid.Col) = True Then
  1928.             If GridStr(WglrGrid.Col, 1) = "010" Then
  1929.                 Call Yd_Help_content
  1930.             End If
  1931.         End If
  1932.     End Select
  1933. End Sub
  1934. Private Sub WglrGrid_KeyPress(KeyAscii As Integer)                     '网格接受键盘录入
  1935.     Dim Str_ChangeTe As String    '临时交换内容
  1936.     Dim Coljsq As Long            '临时列计数器
  1937.     Dim Int_SaveKey As Integer    '保存KeyAscii值
  1938.     
  1939.     '如果单据操作状态为浏览状态则不能显示录入载体
  1940.     If Trim(Lab_OperStatus.Caption) = "1" Then Exit Sub
  1941.     Int_SaveKey = KeyAscii
  1942.     With WglrGrid
  1943.         '屏 蔽 回 车 键,因为光标在网格单元内回两次车才能转移到下一单元,因此需要屏蔽一次回车键
  1944.         If KeyAscii = vbKeyReturn Then
  1945.             KeyAscii = 0
  1946.             Rowjsq = .Row
  1947.             Coljsq = .Col + 1
  1948.             If Coljsq > .Cols - 1 Then
  1949.                 If Rowjsq < .Rows - 1 Then
  1950.                     Rowjsq = Rowjsq + 1
  1951.                 End If
  1952.                 Coljsq = Qslz
  1953.             End If
  1954.             Do While Rowjsq <= .Rows - 1
  1955.                 
  1956.                 If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1) And Help_Bz_Col(Coljsq) = False) Then
  1957.                     Coljsq = Coljsq + 1
  1958.                     If Coljsq > .Cols - 1 Then
  1959.                         Rowjsq = Rowjsq + 1
  1960.                         Coljsq = Qslz
  1961.                     End If
  1962.                 Else
  1963.                     Exit Do
  1964.                 End If
  1965.             Loop
  1966.             .Select Rowjsq, Coljsq
  1967.             If Help_Bz_Col(.Col) = True And Lab_OperStatus.Caption = 3 Then
  1968.                 Call Yd_Help_Show
  1969.             Else
  1970.                 Yd_Help.Visible = False
  1971.             End If
  1972.             Exit Sub
  1973.         End If
  1974.         '接受用户录入
  1975.         Select Case KeyAscii
  1976.         Case 0 To 32          '显示录入载体
  1977.             If GridBoolean(.Col, 1) = True Then
  1978.                 Call xswbk
  1979.             Else
  1980.                 If Help_Bz_Col(.Col) = True Then
  1981.                     Call Sub_Drfzhsx(.Row, Trim(.TextMatrix(.Row, Sydz("002", GridStr(), Szzls))))
  1982.                 End If
  1983.             End If
  1984.         Case Else
  1985.             '防止非编辑字段SendKeys()出现死循环
  1986.             If Not GridBoolean(.Col, 1) Or .Row < .FixedRows Then Exit Sub  '该网格列不允许编辑时,退出.
  1987.             If GridBoolean(.Col, 3) Then '列表框录入
  1988.                 Call xswbk
  1989.             Else
  1990.                 Wbkbhlock = True
  1991.                 Ydtext.Text = ""
  1992.                 Wbkbhlock = False
  1993.                 Call InputFieldLimit(Ydtext, GridInt(WglrGrid.Col, 1), KeyAscii)  '?何用
  1994.                 If KeyAscii = 0 Then Exit Sub
  1995.                 '写有效行数据标志
  1996.                 Call Xyxhbz(.Row)
  1997.                 Call xswbk
  1998.                 Wbkbhlock = True
  1999.                 Ydtext.Text = ""
  2000.                 Wbkbhlock = False
  2001.                 Valilock = True
  2002.                 SendKeys Chr(KeyAscii), wait
  2003.                 DoEvents
  2004.                 Valilock = False
  2005.             End If
  2006.         End Select
  2007.     End With
  2008. End Sub
  2009. Private Sub zjlrfl()                                                    '增加录入分录
  2010.     With WglrGrid
  2011.         If Not (Ydtext.Visible Or YdCombo.Visible) Then
  2012.             If Not Fun_Drfrmyxxpd Then Exit Sub
  2013.         Else
  2014.             Exit Sub
  2015.         End If
  2016.         If .Row < .FixedRows Then Exit Sub
  2017.         .AddItem "", .Row
  2018.         .RowHeight(.Row) = Sjhgd
  2019.         If .Row <> .Rows - 1 Then
  2020.             If .TextMatrix(.Row + 1, 0) = "*" Then
  2021.                 .TextMatrix(.Row, 0) = "*"
  2022.             Else
  2023.                 .RemoveItem .Rows - 1
  2024.             End If
  2025.         End If
  2026.         Call Xldqh
  2027.         Call Xldql
  2028.         Hyxxpdlock = False
  2029.     End With
  2030. End Sub
  2031. Private Sub Scdqfl()                                                    '删除当前分录
  2032.     Dim Answer As Integer, Scqwghz As Long, Scqwglz As Long, Hjlzte As Long, Sflrzt As Boolean
  2033.     With WglrGrid
  2034.         Scqwghz = .Row
  2035.         Scqwglz = .Col
  2036.         If .TextMatrix(.Row, 0) = "*" Then
  2037.             '判断是否为录入状态
  2038.             If Ydtext.Visible Or YdCombo.Visible Then
  2039.                 Sflrzt = True
  2040.                 Validate = True
  2041.                 Call Lrsjhx
  2042.                 Validate = False
  2043.             End If
  2044.             If Yd_Help.Visible = True Then
  2045.                 Yd_Help.Visible = False
  2046.             End If
  2047.             Call Xldqh
  2048.             changelock = True
  2049.             .Select .Row, 0
  2050.             changelock = False
  2051.             If Shsfts Then
  2052.                 .Cell(flexcpBackColor, .Row, Qslz, .Row, .Cols - 1) = QBColor(12)
  2053.                 Tsxx = "请确认是否删除当前记录?"
  2054.                 Yhanswer = Xtxxts(Tsxx, 2, 2)
  2055.                 If Yhanswer = 2 Then
  2056.                     .Cell(flexcpBackColor, .Row, Qslz, .Row, .Cols - 1) = &H80000005
  2057.                     changelock = True
  2058.                     .Select Scqwghz, Scqwglz
  2059.                     changelock = False
  2060.                     '如为录入状态,则恢复录入
  2061.                     If Sflrzt Then
  2062.                         If GridBoolean(.Col, 1) = True Then
  2063.                             Call xswbk
  2064.                         Else
  2065.                             If Help_Bz_Col(.Col) = True And Lab_OperStatus.Caption = 3 Then
  2066.                                 Call Yd_Help_Show
  2067.                             End If
  2068.                         End If
  2069.                     End If
  2070.                     Exit Sub
  2071.                 End If
  2072.             End If
  2073.             .RemoveItem .Row
  2074.             If .Rows < Pmbcsjhs + .FixedRows + Fzxwghs + 1 Then
  2075.                 .AddItem ""
  2076.                 .RowHeight(.Rows - 1) = Sjhgd
  2077.             End If
  2078.             changelock = True
  2079.             .Select .Row, Scqwglz
  2080.             changelock = False
  2081.         End If
  2082.     End With
  2083. End Sub
  2084. Private Sub Qkwlzd(sjh As Long, Sjl As Long)                            '清空为零字段
  2085.     If Not GridBoolean(Sjl, 5) Then Exit Sub
  2086.     With WglrGrid
  2087.         If Val(Trim(.TextMatrix(sjh, Sjl))) = 0 Then .TextMatrix(sjh, Sjl) = ""
  2088.     End With
  2089. End Sub
  2090. Private Sub fhyxh()                                                     '返回录入数据有效行,同时让得到焦点网格可见
  2091.     With WglrGrid
  2092.         If .Row >= .FixedRows Then
  2093.             If .TextMatrix(.Row, 0) <> "*" Then     '点击网格空区域时执行此语句
  2094.                 For Rowjsq = .FixedRows To .Rows - 1        '为找到最后一数据行的下一行
  2095.                     If .TextMatrix(Rowjsq, 0) <> "*" Then
  2096.                         Exit For
  2097.                     End If
  2098.                 Next Rowjsq
  2099.                 If Rowjsq <= .Rows - 1 Then
  2100.                     changelock = True
  2101.                     .Select Rowjsq, .Col
  2102.                     changelock = False
  2103.                 Else
  2104.                     changelock = True
  2105.                     .Select .Rows - 1, .Col
  2106.                     changelock = False
  2107.                 End If
  2108.             End If
  2109.             Call Xldqh
  2110.         End If
  2111.     End With
  2112. End Sub
  2113. Private Sub Xldqh()                                                      '显露当前行
  2114.     Dim Toprowte As Long
  2115.     With WglrGrid
  2116.         Toprowte = 0
  2117.         Do While .CellTop + .RowHeight(.Row) + Fzxwghs * Sjhgd > .Height And .TopRow <> Toprowte
  2118.             Toprowte = .TopRow
  2119.             .TopRow = .TopRow + 1
  2120.         Loop
  2121.         Toprowte = 0
  2122.         Do While .CellTop < .FixedRows * .RowHeight(0) And .TopRow <> Toprowte
  2123.             Toprowte = .TopRow
  2124.             .TopRow = .TopRow - 1
  2125.         Loop
  2126.     End With
  2127. End Sub
  2128. Private Sub Xldql()                                                     '显露当前列
  2129.     Dim Leftcolte As Long
  2130.     With WglrGrid
  2131.         If .Col >= Qslz Then
  2132.             If .LeftCol > .Col Then
  2133.                 .LeftCol = .Col
  2134.             End If
  2135.             Leftcolte = 0
  2136.             Do While .CellLeft + .CellWidth > .Width And .LeftCol <> Leftcolte
  2137.                 Leftcolte = .LeftCol
  2138.                 .LeftCol = .LeftCol + 1
  2139.             Loop
  2140.         End If
  2141.     End With
  2142.     
  2143. End Sub
  2144. Private Function pdhwk(sjh As Long)                                     '判断网格行是否为空行(所有录入字段均为空*非录入字段除外)
  2145.     With WglrGrid
  2146.         For Coljsq = Qslz To .Cols - 1
  2147.             If Len(Trim(.TextMatrix(sjh, Coljsq))) <> 0 And GridBoolean(Coljsq, 1) Then
  2148.                 pdhwk = False
  2149.                 Exit Function
  2150.             End If
  2151.         Next Coljsq
  2152.         pdhwk = True
  2153.     End With
  2154. End Function
  2155. Private Sub Xyxhbz(sjh As Long)                                         '写行有效性标志,并判断是否增行
  2156.     With WglrGrid
  2157.         If .TextMatrix(sjh, 0) = "*" Then
  2158.             Exit Sub
  2159.         End If
  2160.         .TextMatrix(sjh, 0) = "*"
  2161.         If sjh >= .Rows - Fzxwghs - 1 Then
  2162.             .AddItem ""
  2163.             .RowHeight(.Rows - 1) = Sjhgd
  2164.         End If
  2165.     End With
  2166. End Sub
  2167. Private Sub GsToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)   '表格格式设置(通用)
  2168.     Yd_Help.Visible = False
  2169.     Select Case Button.Key
  2170.     Case "bcgs"                              '保存表格格式
  2171.         Call Bcwggs(WglrGrid, GridCode, GridStr)
  2172.     Case "hfmrgs"                            '恢复默认格式
  2173.         Call Hfmrgs(WglrGrid, GridCode, GridStr)
  2174.     End Select
  2175. End Sub
  2176. Private Sub bbyl(bbylte As Boolean)                                     '打印预览(通用)
  2177.     Dim Bbzbt$, Bbxbt() As String, bbxbtzzxs() As Integer, Bbxbtgs As Integer
  2178.     Dim Bbbwh() As String, Bbbwhzzxs() As Integer, Bbbwhgs As Integer
  2179.     Bbxbtgs = 1                                  '报 表 小 标 题 行 数
  2180.     Bbbwhgs = 1                                  '报 表 表 尾 行 数
  2181.     ReDim Bbxbt(1 To Bbxbtgs)
  2182.     ReDim bbxbtzzxs(1 To Bbxbtgs)
  2183.     If Bbbwhgs <> 0 Then
  2184.         ReDim Bbbwh(1 To Bbbwhgs)
  2185.         ReDim Bbbwhzzxs(1 To Bbbwhgs)
  2186.     End If
  2187.     Bbzbt = ReportTitle
  2188.     bbxbtzzxs(1) = 0                             '报表行组织形式(0-居左 1-居中 2-居右)
  2189.     Bbxbt(1) = "转帐名称:" + Lbl_AutoAccName              '报表行组织形式(0-居左 1-居中 2-居右)
  2190.     Call Scyxsjb(WglrGrid)                               '生成报表数据
  2191.     Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
  2192.     If Not bbylte Then
  2193.         Unload DY_Tybbyldy
  2194.     End If
  2195. End Sub
  2196. Private Function Sub_SaveBill() As Boolean                   '保 存 单 据
  2197.     Dim Recfind As New ADODB.Recordset     '有效性判断动态集
  2198.     Dim Rowjsq As Long           '网格行计数器
  2199.     Dim Coljsq As Long           '网格列计数器
  2200.     Dim Int_RowCount As Integer  '有效数据行计数器
  2201.     Dim Bln_AssVali As Boolean   '辅助核算错误标识
  2202.     Dim Lrywlz As Long           '录入有误列值
  2203.     Dim Bj As Boolean           '辅助项有效标志
  2204.     '下面将对所有有效数据行进行有效性判断
  2205.     Int_RowCount = 0
  2206.     With WglrGrid
  2207.         For Rowjsq = .FixedRows To .Rows
  2208.             
  2209.             '带*号者为有效数据行
  2210.             If .TextMatrix(Rowjsq, 0) <> "*" Then
  2211.                 Exit For
  2212.             Else
  2213.                 Int_RowCount = Int_RowCount + 1
  2214.             End If
  2215.             
  2216.             '2.[自定义判断(补丁)
  2217.             '首先进行为空判断(固定不变)
  2218.             For Jsqte = Qslz To .Cols - 1
  2219.                 If (GridInt(Jsqte, 5) = 1 And Len(Trim(.TextMatrix(Rowjsq, Jsqte))) = 0) Or (GridInt(Jsqte, 5) = 2 And Val(Trim(.TextMatrix(Yxxpdh, Jsqte))) = 0) Then
  2220.                     Tsxx = GridStr(Jsqte, 2)
  2221.                     Lrywlz = Jsqte
  2222.                     GoTo Lrcwcl
  2223.                     Exit For
  2224.                 End If
  2225.             Next Jsqte
  2226.             
  2227.             '判断辅助项目有效性
  2228.             If Trim(WglrGrid.TextMatrix(Rowjsq, Sydz("002", GridStr(), Szzls))) <> "" Then
  2229.                 Sqlstr = "Select * FROM Cwzz_AccCode Where Ccode='" & Trim(.TextMatrix(Rowjsq, Sydz("002", GridStr(), Szzls))) & "' "
  2230.                 Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  2231.                 Lrywlz = Sydz("002", GridStr(), Szzls)
  2232.                 If AssVali(Rowjsq, RecTemp) = False Then
  2233.                     Exit Function
  2234.                 End If
  2235.             End If
  2236.         Next Rowjsq
  2237.         If Int_RowCount = 0 Then
  2238.             Tsxx = "有效行数为零,不能存盘!"
  2239.             Call Xtxxts(Tsxx, 0, 1)
  2240.             Exit Function
  2241.         End If
  2242.     End With  '网格
  2243.     
  2244.     '如果以上有效性检查均顺利通过,则执行存盘动作
  2245.     
  2246.     On Error GoTo Swcwcl
  2247.     Cw_DataEnvi.DataConnect.BeginTrans
  2248.     
  2249.     '修改单据
  2250.     '1.删除原单据所有内容
  2251.     
  2252.     Cw_DataEnvi.DataConnect.Execute ("Delete Cwzz_AutoTranItem Where TranCode='" & Trim(Lbl_AutoAccCode.Caption) & "' and TranClass='" & TranClassCode & "'")
  2253.     If Rec_AutoTranItem.State = 1 Then Rec_AutoTranItem.Close
  2254.     Rec_AutoTranItem.Open "Select * From Cwzz_AutoTranItem Where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockPessimistic
  2255.     For Rowjsq = WglrGrid.FixedRows To WglrGrid.Rows
  2256.         If WglrGrid.TextMatrix(Rowjsq, 0) <> "*" Then
  2257.             Exit For
  2258.         End If
  2259.         With Rec_AutoTranItem
  2260.             .AddNew
  2261.             .Fields("TranClass") = TranClassCode
  2262.             .Fields("TranCode") = Trim(Lbl_AutoAccCode.Caption)                                         '转帐编号
  2263.             .Fields("Digest") = Trim(WglrGrid.TextMatrix(Rowjsq, Sydz("001", GridStr(), Szzls)))        '摘要
  2264.             .Fields("Ccode") = Trim(WglrGrid.TextMatrix(Rowjsq, Sydz("002", GridStr(), Szzls)))         '转帐科目
  2265.             .Fields("TranOri") = WglrGrid.TextMatrix(Rowjsq, Sydz("004", GridStr(), Szzls))             '转帐方向
  2266.             .Fields("PersonCode") = Trim(WglrGrid.TextMatrix(Rowjsq, 1))                             '职员编码
  2267.             .Fields("DeptCode") = Trim(WglrGrid.TextMatrix(Rowjsq, 3))                               '部门编码
  2268.             .Fields("CusCode") = Trim(WglrGrid.TextMatrix(Rowjsq, 5))                                '客户单位编码
  2269.             .Fields("Suppliercode") = Trim(WglrGrid.TextMatrix(Rowjsq, 7))                          '供应商编码
  2270.             .Fields("ItemClassCode") = Trim(WglrGrid.TextMatrix(Rowjsq, 9))                          '项目大类编码
  2271.             .Fields("ItemCode") = Trim(WglrGrid.TextMatrix(Rowjsq, 11))                              '项目编码
  2272.             .Update
  2273.         End With
  2274.     Next Rowjsq
  2275.     Cw_DataEnvi.DataConnect.CommitTrans
  2276.     Sub_SaveBill = True
  2277.     Tsxx = "保存完毕! "
  2278.     Call Xtxxts(Tsxx, 0, 4)
  2279.     
  2280.     '标识单据发生改动
  2281.     Bln_BillChange = True
  2282.     
  2283.     '设置操作状态为浏览
  2284.     Lab_OperStatus = "1"
  2285.     Call Sub_OperStatus("11")
  2286.     Exit Function
  2287.     
  2288. Swcwcl:
  2289.     Cw_DataEnvi.DataConnect.RollbackTrans
  2290.     Tsxx = "存盘过程中出现未知错误,程序自动恢复保存前状态!"
  2291.     Call Xtxxts(Tsxx, 0, 1)
  2292.     Exit Function
  2293.     
  2294. Lrcwcl:        '录入错误处理
  2295.     With WglrGrid
  2296.         Call Xtxxts("(第 " + Trim(Str(Int_RowCount)) + " 条记录)-" + Tsxx, 0, 1)
  2297.         changelock = True
  2298.         .Select Rowjsq, Lrywlz
  2299.         WglrGrid.SetFocus
  2300.         changelock = False
  2301.         Exit Function
  2302.     End With
  2303.     
  2304. End Function
  2305. '************以下为文本框录入处理程序(固定不变部分)*************'
  2306. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  2307.     
  2308.     '以下为依据实际情况自定义部分[
  2309.     
  2310.     '在此填写文本框录入事后处理程序
  2311.     
  2312.     ']以上为依据实际情况自定义部分
  2313. End Sub
  2314. Private Sub Cxxswbk()                                                  'Formresize中重新显示文本框,列表框,帮助按钮(通用)
  2315.     Dim Wbkpy As Integer, Wbkpy1 As Integer
  2316.     Wbkpy = 30
  2317.     Wbkpy1 = 15
  2318.     With WglrGrid
  2319.         If YdCombo.Visible Then
  2320.             YdCombo.Left = .CellLeft + .Left + Wbkpy
  2321.             YdCombo.Top = .CellTop + .Top + Wbkpy
  2322.             YdCombo.Width = .CellWidth - Wbkpy1
  2323.         End If
  2324.         If Ydcommand.Visible Then
  2325.             Ydcommand.Left = .Left + .CellLeft + .CellWidth - Ydcommand.Width + Wbkpy
  2326.             Ydcommand.Top = .Top + .CellTop + .CellHeight - Ydcommand.Height + Wbkpy
  2327.         End If
  2328.         If Ydtext.Visible Then
  2329.             If Ydcommand.Visible Then
  2330.                 If Sfblbzkd Then
  2331.                     Ydtext.Width = .CellWidth - Ydcommand.Width
  2332.                 Else
  2333.                     Ydtext.Width = .CellWidth - Wbkpy1
  2334.                 End If
  2335.             Else
  2336.                 Ydtext.Width = .CellWidth - Wbkpy1
  2337.             End If
  2338.             Ydtext.Left = .CellLeft + .Left + Wbkpy
  2339.             Ydtext.Top = .CellTop + .Top + Wbkpy
  2340.             Ydtext.Height = .CellHeight - Wbkpy1
  2341.         End If
  2342.     End With
  2343. End Sub
  2344. Private Sub Yd_Help_Show()
  2345.     Dim RecTemp As New ADODB.Recordset
  2346.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute("select * from cwzz_AccCode where Ccode='" & Trim(WglrGrid.TextMatrix(WglrGrid.Row, Sydz("002", GridStr(), Szzls))) & "'")
  2347.     If RecTemp.EOF = False Then
  2348.         If RecTemp.Fields("DeptFlag") = True Or RecTemp.Fields("PersonFlag") = True Or RecTemp.Fields("CusFlag") = True Or RecTemp.Fields("SupplierFlag") = True Or RecTemp.Fields("ItemFlag") = True Then
  2349.             With WglrGrid
  2350.                 Yd_Help.Visible = True
  2351.                 Yd_Help.Left = .Left + .CellLeft + .CellWidth - Yd_Help.Width
  2352.                 Yd_Help.Top = .Top + .CellTop + .CellHeight - Yd_Help.Height
  2353.             End With
  2354.         End If
  2355.     End If
  2356.     With WglrGrid               '记录下当前的顶行和列,以备在YD_HELP按纽可用时,滚动滚动条时保持屏幕网格不发生滚动
  2357.         Dqtoprow = .TopRow
  2358.         Dqleftcol = .LeftCol
  2359.     End With
  2360.     
  2361. End Sub
  2362. Private Function AssVali(Row As Long, rs As ADODB.Recordset) As Boolean
  2363.     Dim RsTemp As ADODB.Recordset     '临时数据表
  2364.     '部门核算则部门不能为空且有效
  2365.     AssVali = False
  2366.     With rs
  2367.         If .Fields("EndFlag") Then                 '末级标志时
  2368.             If rs.Fields("DeptFlag") Then
  2369.                 If Len(Trim(WglrGrid.TextMatrix(Row, 3))) = 0 Then
  2370.                     Tsxx = "需要部门核算,部门项不能为空!"
  2371.                     GoTo Lrcwcl
  2372.                 Else
  2373.                     Set RsTemp = Cw_DataEnvi.DataConnect.Execute("Select DeptCode FROM Gy_Department Where DeptCode='" & Trim(WglrGrid.TextMatrix(Row, 3)) & "'")
  2374.                     If RsTemp.EOF Then
  2375.                         Tsxx = "部门不存在!"
  2376.                         GoTo Lrcwcl
  2377.                     End If
  2378.                 End If
  2379.             Else
  2380.                 WglrGrid.TextMatrix(Row, 3) = ""
  2381.                 WglrGrid.TextMatrix(Row, 4) = ""
  2382.             End If
  2383.         Else
  2384.             WglrGrid.TextMatrix(Row, 3) = ""
  2385.             WglrGrid.TextMatrix(Row, 4) = ""
  2386.         End If
  2387.         
  2388.         
  2389.         '客户单位核算则往来单位不能为空
  2390.         If .Fields("EndFlag") Then                '末级标志时
  2391.             If RecTemp.Fields("CusFlag") Then
  2392.                 If Len(Trim(WglrGrid.TextMatrix(Row, 5))) = 0 Then
  2393.                     Tsxx = "需要客户单位核算,客户单位项不能为空!"
  2394.                     GoTo Lrcwcl
  2395.                 Else
  2396.                     Set RsTemp = Cw_DataEnvi.DataConnect.Execute("Select CusCode FROM Gy_Customer Where CusCode='" & Trim(WglrGrid.TextMatrix(Row, 5)) & "'")
  2397.                     If RsTemp.EOF Then
  2398.                         Tsxx = "客户单位不存在!"
  2399.                         GoTo Lrcwcl
  2400.                     End If
  2401.                 End If
  2402.             Else
  2403.                 WglrGrid.TextMatrix(Row, 5) = ""
  2404.                 WglrGrid.TextMatrix(Row, 6) = ""
  2405.             End If
  2406.         Else
  2407.             WglrGrid.TextMatrix(Row, 5) = ""
  2408.             WglrGrid.TextMatrix(Row, 6) = ""
  2409.         End If
  2410.         
  2411.         '供应商单位核算则供应商单位不能为空
  2412.         If .Fields("EndFlag") Then                '末级标志时
  2413.             If RecTemp.Fields("SupplierFlag") Then
  2414.                 If Len(Trim(WglrGrid.TextMatrix(Row, 7))) = 0 Then
  2415.                     Tsxx = "需要供应商核算,供应商单位项不能为空!"
  2416.                     GoTo Lrcwcl
  2417.                 Else
  2418.                     Set RsTemp = Cw_DataEnvi.DataConnect.Execute("Select Suppliercode FROM Gy_Supplier Where Suppliercode='" & Trim(WglrGrid.TextMatrix(Row, 7)) & "'")
  2419.                     If RsTemp.EOF Then
  2420.                         Tsxx = "供应商单位不存在!"
  2421.                         GoTo Lrcwcl
  2422.                     End If
  2423.                 End If
  2424.             Else
  2425.                 WglrGrid.TextMatrix(Row, 7) = ""
  2426.                 WglrGrid.TextMatrix(Row, 8) = ""
  2427.             End If
  2428.         Else
  2429.             WglrGrid.TextMatrix(Row, 7) = ""
  2430.             WglrGrid.TextMatrix(Row, 8) = ""
  2431.         End If
  2432.         
  2433.         '个人往来核算则个人项不能为空
  2434.         If .Fields("EndFlag") Then                '末级标志时
  2435.             If RecTemp.Fields("PersonFlag") Then
  2436.                 If Len(Trim(WglrGrid.TextMatrix(Row, 1))) = 0 Then
  2437.                     Tsxx = "需要个人往来核算,个人项不能为空!"
  2438.                     GoTo Lrcwcl
  2439.                 Else
  2440.                     Set RsTemp = Cw_DataEnvi.DataConnect.Execute("Select PersonCode FROM Gy_Person Where PersonCode='" & Trim(WglrGrid.TextMatrix(Row, 1)) & "'")
  2441.                     If RsTemp.EOF Then
  2442.                         Tsxx = "个人不存在!"
  2443.                         GoTo Lrcwcl
  2444.                     End If
  2445.                 End If
  2446.             Else
  2447.                 WglrGrid.TextMatrix(Row, 1) = ""
  2448.                 WglrGrid.TextMatrix(Row, 2) = ""
  2449.             End If
  2450.         Else
  2451.             WglrGrid.TextMatrix(Row, 1) = ""
  2452.             WglrGrid.TextMatrix(Row, 2) = ""
  2453.         End If
  2454.         
  2455.         '项目核算则项目不能为空
  2456.         If .Fields("EndFlag") Then                 '末级标志时
  2457.             If RecTemp.Fields("ItemFlag") Then
  2458.                 If Len(Trim(WglrGrid.TextMatrix(Row, 11))) = 0 Then
  2459.                     Tsxx = "需要项目核算,核算项目不能为空!"
  2460.                     GoTo Lrcwcl
  2461.                 Else
  2462.                     Set RsTemp = Cw_DataEnvi.DataConnect.Execute("Select ItemCode FROM Cwzz_Item Where ItemClassCode='" & Trim(WglrGrid.TextMatrix(Row, 9)) & "' " & _
  2463.                     "And ItemCode='" & Trim(WglrGrid.TextMatrix(Row, 11)) & "'")
  2464.                     
  2465.                     If RsTemp.EOF Then
  2466.                         Tsxx = "核算项目不存在!"
  2467.                         GoTo Lrcwcl
  2468.                     End If
  2469.                 End If
  2470.             Else
  2471.                 WglrGrid.TextMatrix(Row, 11) = ""
  2472.                 WglrGrid.TextMatrix(Row, 12) = ""
  2473.             End If
  2474.         Else
  2475.             WglrGrid.TextMatrix(Row, 11) = ""
  2476.             WglrGrid.TextMatrix(Row, 12) = ""
  2477.         End If
  2478.     End With
  2479.     rs.Close
  2480.     AssVali = True
  2481.     Exit Function
  2482. Lrcwcl:        '录入错误处理
  2483.     With WglrGrid
  2484.         Call Xtxxts("(第 " + Trim(Str(Row)) + " 条记录)-" + Tsxx, 0, 1)
  2485.         changelock = True
  2486.         .Select Row, Sydz("010", GridStr(), Szzls)
  2487.         WglrGrid.SetFocus
  2488.         changelock = False
  2489.         Exit Function
  2490.     End With
  2491. End Function