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

企业管理

开发平台:

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. Object = "{BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0"; "TABCTL32.OCX"
  5. Begin VB.Form AutoTran_TranList 
  6.    BorderStyle     =   1  'Fixed Single
  7.    Caption         =   "自动转帐凭证列表"
  8.    ClientHeight    =   6285
  9.    ClientLeft      =   45
  10.    ClientTop       =   330
  11.    ClientWidth     =   8475
  12.    Icon            =   "自动转帐凭证_转帐列表.frx":0000
  13.    KeyPreview      =   -1  'True
  14.    LinkTopic       =   "Form4"
  15.    MaxButton       =   0   'False
  16.    MinButton       =   0   'False
  17.    ScaleHeight     =   6285
  18.    ScaleWidth      =   8475
  19.    StartUpPosition =   3  '窗口缺省
  20.    Begin VB.Timer Timer1 
  21.       Interval        =   1
  22.       Left            =   3570
  23.       Top             =   570
  24.    End
  25.    Begin MSComctlLib.Toolbar GsToolbar 
  26.       Height          =   525
  27.       Left            =   6000
  28.       TabIndex        =   0
  29.       Top             =   0
  30.       Width           =   2475
  31.       _ExtentX        =   4366
  32.       _ExtentY        =   926
  33.       ButtonWidth     =   1455
  34.       ButtonHeight    =   926
  35.       AllowCustomize  =   0   'False
  36.       Appearance      =   1
  37.       Style           =   1
  38.       ImageList       =   "ImageList1"
  39.       _Version        =   393216
  40.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  41.          NumButtons      =   3
  42.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  43.             Caption         =   "保存格式"
  44.             Key             =   "bcgs"
  45.             ImageKey        =   "bcgs"
  46.          EndProperty
  47.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  48.             Caption         =   "默认列宽"
  49.             Key             =   "hfmrgs"
  50.             ImageKey        =   "mrlk"
  51.          EndProperty
  52.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  53.             Caption         =   "显示项目"
  54.             Key             =   "szxsxm"
  55.             ImageKey        =   "xsxm"
  56.          EndProperty
  57.       EndProperty
  58.    End
  59.    Begin MSComctlLib.Toolbar SzToolbar 
  60.       Align           =   1  'Align Top
  61.       Height          =   555
  62.       Left            =   0
  63.       TabIndex        =   8
  64.       Top             =   0
  65.       Width           =   8475
  66.       _ExtentX        =   14949
  67.       _ExtentY        =   979
  68.       ButtonWidth     =   820
  69.       ButtonHeight    =   926
  70.       AllowCustomize  =   0   'False
  71.       Appearance      =   1
  72.       Style           =   1
  73.       ImageList       =   "ImageList1"
  74.       _Version        =   393216
  75.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  76.          NumButtons      =   13
  77.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  78.             Caption         =   "设置"
  79.             Key             =   "ymsz"
  80.             ImageKey        =   "sz"
  81.             BeginProperty ButtonMenus {66833FEC-8583-11D1-B16A-00C0F0283628} 
  82.                NumButtonMenus  =   1
  83.                BeginProperty ButtonMenu1 {66833FEE-8583-11D1-B16A-00C0F0283628} 
  84.                EndProperty
  85.             EndProperty
  86.          EndProperty
  87.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  88.             Caption         =   "打印"
  89.             Key             =   "dy"
  90.             ImageKey        =   "dy"
  91.          EndProperty
  92.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  93.             Caption         =   "预览"
  94.             Key             =   "yl"
  95.             ImageKey        =   "yl"
  96.          EndProperty
  97.          BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  98.             Style           =   3
  99.          EndProperty
  100.          BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  101.             Caption         =   "新增"
  102.             Key             =   "zj"
  103.             ImageKey        =   "xz"
  104.          EndProperty
  105.          BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  106.             Caption         =   "修改"
  107.             Key             =   "xg"
  108.             ImageKey        =   "xg"
  109.          EndProperty
  110.          BeginProperty Button7 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  111.             Caption         =   "删除"
  112.             Key             =   "sc"
  113.             ImageKey        =   "sc"
  114.          EndProperty
  115.          BeginProperty Button8 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  116.             Style           =   3
  117.          EndProperty
  118.          BeginProperty Button9 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  119.             Caption         =   "定义"
  120.             Key             =   "define"
  121.             ImageKey        =   "define"
  122.          EndProperty
  123.          BeginProperty Button10 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  124.             Caption         =   "执行"
  125.             Key             =   "run"
  126.             ImageKey        =   "exec"
  127.          EndProperty
  128.          BeginProperty Button11 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  129.             Style           =   3
  130.          EndProperty
  131.          BeginProperty Button12 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  132.             Caption         =   "帮助"
  133.             Key             =   "bz"
  134.             ImageKey        =   "bz"
  135.          EndProperty
  136.          BeginProperty Button13 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  137.             Caption         =   "退出"
  138.             Key             =   "fh"
  139.             ImageKey        =   "tc"
  140.          EndProperty
  141.       EndProperty
  142.       BorderStyle     =   1
  143.    End
  144.    Begin TabDlg.SSTab StTab 
  145.       Height          =   5655
  146.       Left            =   90
  147.       TabIndex        =   1
  148.       Top             =   600
  149.       Width           =   8325
  150.       _ExtentX        =   14684
  151.       _ExtentY        =   9975
  152.       _Version        =   393216
  153.       Style           =   1
  154.       Tabs            =   2
  155.       TabHeight       =   556
  156.       TabCaption(0)   =   "列表视图"
  157.       TabPicture(0)   =   "自动转帐凭证_转帐列表.frx":1042
  158.       Tab(0).ControlEnabled=   -1  'True
  159.       Tab(0).Control(0)=   "TsLabel(9)"
  160.       Tab(0).Control(0).Enabled=   0   'False
  161.       Tab(0).Control(1)=   "ImageList1"
  162.       Tab(0).Control(1).Enabled=   0   'False
  163.       Tab(0).Control(2)=   "CzxsGrid"
  164.       Tab(0).Control(2).Enabled=   0   'False
  165.       Tab(0).Control(3)=   "Combo_Kjqj"
  166.       Tab(0).Control(3).Enabled=   0   'False
  167.       Tab(0).Control(4)=   "Chk_Vouch"
  168.       Tab(0).Control(4).Enabled=   0   'False
  169.       Tab(0).ControlCount=   5
  170.       TabCaption(1)   =   "单张视图"
  171.       TabPicture(1)   =   "自动转帐凭证_转帐列表.frx":105E
  172.       Tab(1).ControlEnabled=   0   'False
  173.       Tab(1).Control(0)=   "Frame1"
  174.       Tab(1).ControlCount=   1
  175.       Begin VB.CheckBox Chk_Vouch 
  176.          Caption         =   "是否包含未记帐凭证"
  177.          ForeColor       =   &H00000000&
  178.          Height          =   255
  179.          Left            =   330
  180.          TabIndex        =   15
  181.          Top             =   5190
  182.          Value           =   1  'Checked
  183.          Width           =   2025
  184.       End
  185.       Begin VB.ComboBox Combo_Kjqj 
  186.          Height          =   300
  187.          Left            =   4770
  188.          Style           =   2  'Dropdown List
  189.          TabIndex        =   14
  190.          Top             =   5160
  191.          Visible         =   0   'False
  192.          Width           =   1545
  193.       End
  194.       Begin VB.Frame Frame1 
  195.          Height          =   5235
  196.          Left            =   -74880
  197.          TabIndex        =   9
  198.          Top             =   360
  199.          Width           =   8055
  200.          Begin MSComctlLib.ImageCombo ImgCmbClass 
  201.             Height          =   315
  202.             Left            =   1260
  203.             TabIndex        =   4
  204.             Top             =   1140
  205.             Width           =   2085
  206.             _ExtentX        =   3678
  207.             _ExtentY        =   556
  208.             _Version        =   393216
  209.             ForeColor       =   -2147483640
  210.             BackColor       =   -2147483643
  211.             Text            =   "ImgCmbClass"
  212.          End
  213.          Begin VB.TextBox LrText 
  214.             Height          =   300
  215.             Index           =   0
  216.             Left            =   1260
  217.             TabIndex        =   2
  218.             Text            =   "0"
  219.             Top             =   300
  220.             Width           =   2055
  221.          End
  222.          Begin VB.TextBox LrText 
  223.             Height          =   300
  224.             Index           =   1
  225.             Left            =   1260
  226.             TabIndex        =   3
  227.             Text            =   "1"
  228.             Top             =   720
  229.             Width           =   2055
  230.          End
  231.          Begin VB.CommandButton Ydcommand1 
  232.             Height          =   300
  233.             Index           =   0
  234.             Left            =   5220
  235.             Picture         =   "自动转帐凭证_转帐列表.frx":107A
  236.             Style           =   1  'Graphical
  237.             TabIndex        =   11
  238.             Top             =   1290
  239.             Visible         =   0   'False
  240.             Width           =   300
  241.          End
  242.          Begin VB.CommandButton QxCommand 
  243.             Cancel          =   -1  'True
  244.             Caption         =   "取消(&C)"
  245.             Height          =   300
  246.             Left            =   2220
  247.             TabIndex        =   6
  248.             Top             =   1650
  249.             Width           =   1120
  250.          End
  251.          Begin VB.CommandButton BcCommand 
  252.             Caption         =   "保存(&S)"
  253.             Height          =   300
  254.             Left            =   990
  255.             TabIndex        =   5
  256.             Top             =   1650
  257.             Width           =   1120
  258.          End
  259.          Begin VB.Label TsLabel 
  260.             AutoSize        =   -1  'True
  261.             BackStyle       =   0  'Transparent
  262.             Caption         =   "转帐编码:"
  263.             Height          =   180
  264.             Index           =   0
  265.             Left            =   435
  266.             TabIndex        =   7
  267.             Top             =   360
  268.             Width           =   810
  269.          End
  270.          Begin VB.Label TsLabel 
  271.             AutoSize        =   -1  'True
  272.             BackStyle       =   0  'Transparent
  273.             Caption         =   "转帐名称:"
  274.             Height          =   180
  275.             Index           =   1
  276.             Left            =   435
  277.             TabIndex        =   12
  278.             Top             =   780
  279.             Width           =   810
  280.          End
  281.          Begin VB.Label TsLabel 
  282.             AutoSize        =   -1  'True
  283.             BackStyle       =   0  'Transparent
  284.             Caption         =   "凭证类别:"
  285.             Height          =   180
  286.             Index           =   2
  287.             Left            =   435
  288.             TabIndex        =   10
  289.             Top             =   1200
  290.             Width           =   810
  291.          End
  292.       End
  293.       Begin VSFlex8Ctl.VSFlexGrid CzxsGrid 
  294.          Height          =   4515
  295.          Left            =   120
  296.          TabIndex        =   13
  297.          Top             =   480
  298.          Width           =   8055
  299.          _cx             =   5080
  300.          _cy             =   5080
  301.          Appearance      =   1
  302.          BorderStyle     =   1
  303.          Enabled         =   -1  'True
  304.          BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  305.             Name            =   "宋体"
  306.             Size            =   9
  307.             Charset         =   134
  308.             Weight          =   400
  309.             Underline       =   0   'False
  310.             Italic          =   0   'False
  311.             Strikethrough   =   0   'False
  312.          EndProperty
  313.          MousePointer    =   0
  314.          BackColor       =   16777215
  315.          ForeColor       =   -2147483640
  316.          BackColorFixed  =   -2147483624
  317.          ForeColorFixed  =   -2147483630
  318.          BackColorSel    =   -2147483635
  319.          ForeColorSel    =   -2147483634
  320.          BackColorBkg    =   8421504
  321.          BackColorAlternate=   16777215
  322.          GridColor       =   -2147483633
  323.          GridColorFixed  =   -2147483632
  324.          TreeColor       =   -2147483632
  325.          FloodColor      =   192
  326.          SheetBorder     =   -2147483642
  327.          FocusRect       =   1
  328.          HighLight       =   1
  329.          AllowSelection  =   -1  'True
  330.          AllowBigSelection=   -1  'True
  331.          AllowUserResizing=   0
  332.          SelectionMode   =   0
  333.          GridLines       =   1
  334.          GridLinesFixed  =   2
  335.          GridLineWidth   =   1
  336.          Rows            =   200
  337.          Cols            =   10
  338.          FixedRows       =   1
  339.          FixedCols       =   0
  340.          RowHeightMin    =   0
  341.          RowHeightMax    =   0
  342.          ColWidthMin     =   0
  343.          ColWidthMax     =   0
  344.          ExtendLastCol   =   0   'False
  345.          FormatString    =   ""
  346.          ScrollTrack     =   0   'False
  347.          ScrollBars      =   3
  348.          ScrollTips      =   0   'False
  349.          MergeCells      =   0
  350.          MergeCompare    =   0
  351.          AutoResize      =   -1  'True
  352.          AutoSizeMode    =   0
  353.          AutoSearch      =   0
  354.          AutoSearchDelay =   2
  355.          MultiTotals     =   -1  'True
  356.          SubtotalPosition=   1
  357.          OutlineBar      =   0
  358.          OutlineCol      =   0
  359.          Ellipsis        =   0
  360.          ExplorerBar     =   0
  361.          PicturesOver    =   0   'False
  362.          FillStyle       =   0
  363.          RightToLeft     =   0   'False
  364.          PictureType     =   0
  365.          TabBehavior     =   0
  366.          OwnerDraw       =   0
  367.          Editable        =   0
  368.          ShowComboButton =   1
  369.          WordWrap        =   0   'False
  370.          TextStyle       =   0
  371.          TextStyleFixed  =   0
  372.          OleDragMode     =   0
  373.          OleDropMode     =   0
  374.          DataMode        =   0
  375.          VirtualData     =   -1  'True
  376.          DataMember      =   ""
  377.          ComboSearch     =   3
  378.          AutoSizeMouse   =   -1  'True
  379.          FrozenRows      =   0
  380.          FrozenCols      =   0
  381.          AllowUserFreezing=   0
  382.          BackColorFrozen =   0
  383.          ForeColorFrozen =   0
  384.          WallPaperAlignment=   9
  385.          AccessibleName  =   ""
  386.          AccessibleDescription=   ""
  387.          AccessibleValue =   ""
  388.          AccessibleRole  =   24
  389.       End
  390.       Begin MSComctlLib.ImageList ImageList1 
  391.          Left            =   5160
  392.          Top             =   0
  393.          _ExtentX        =   1005
  394.          _ExtentY        =   1005
  395.          BackColor       =   -2147483643
  396.          ImageWidth      =   16
  397.          ImageHeight     =   16
  398.          MaskColor       =   12632256
  399.          _Version        =   393216
  400.          BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  401.             NumListImages   =   22
  402.             BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  403.                Picture         =   "自动转帐凭证_转帐列表.frx":1404
  404.                Key             =   "sz"
  405.             EndProperty
  406.             BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  407.                Picture         =   "自动转帐凭证_转帐列表.frx":179E
  408.                Key             =   "dy"
  409.             EndProperty
  410.             BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  411.                Picture         =   "自动转帐凭证_转帐列表.frx":1B38
  412.                Key             =   "yl"
  413.             EndProperty
  414.             BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  415.                Picture         =   "自动转帐凭证_转帐列表.frx":1ED2
  416.                Key             =   "xg"
  417.             EndProperty
  418.             BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  419.                Picture         =   "自动转帐凭证_转帐列表.frx":226C
  420.                Key             =   "zh"
  421.             EndProperty
  422.             BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  423.                Picture         =   "自动转帐凭证_转帐列表.frx":2606
  424.                Key             =   "sh"
  425.             EndProperty
  426.             BeginProperty ListImage7 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  427.                Picture         =   "自动转帐凭证_转帐列表.frx":29A0
  428.                Key             =   "bc"
  429.             EndProperty
  430.             BeginProperty ListImage8 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  431.                Picture         =   "自动转帐凭证_转帐列表.frx":2D3A
  432.                Key             =   "fq"
  433.             EndProperty
  434.             BeginProperty ListImage9 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  435.                Picture         =   "自动转帐凭证_转帐列表.frx":30D4
  436.                Key             =   "bz"
  437.             EndProperty
  438.             BeginProperty ListImage10 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  439.                Picture         =   "自动转帐凭证_转帐列表.frx":346E
  440.                Key             =   "tc"
  441.             EndProperty
  442.             BeginProperty ListImage11 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  443.                Picture         =   "自动转帐凭证_转帐列表.frx":3808
  444.                Key             =   "bcgs"
  445.             EndProperty
  446.             BeginProperty ListImage12 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  447.                Picture         =   "自动转帐凭证_转帐列表.frx":3BA2
  448.                Key             =   "mrlk"
  449.             EndProperty
  450.             BeginProperty ListImage13 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  451.                Picture         =   "自动转帐凭证_转帐列表.frx":3F3C
  452.                Key             =   "xsxm"
  453.             EndProperty
  454.             BeginProperty ListImage14 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  455.                Picture         =   "自动转帐凭证_转帐列表.frx":42D6
  456.                Key             =   "first"
  457.             EndProperty
  458.             BeginProperty ListImage15 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  459.                Picture         =   "自动转帐凭证_转帐列表.frx":4670
  460.                Key             =   "prev"
  461.             EndProperty
  462.             BeginProperty ListImage16 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  463.                Picture         =   "自动转帐凭证_转帐列表.frx":4A0A
  464.                Key             =   "next"
  465.             EndProperty
  466.             BeginProperty ListImage17 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  467.                Picture         =   "自动转帐凭证_转帐列表.frx":4DA4
  468.                Key             =   "last"
  469.             EndProperty
  470.             BeginProperty ListImage18 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  471.                Picture         =   "自动转帐凭证_转帐列表.frx":513E
  472.                Key             =   "xx"
  473.             EndProperty
  474.             BeginProperty ListImage19 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  475.                Picture         =   "自动转帐凭证_转帐列表.frx":54D8
  476.                Key             =   "define"
  477.             EndProperty
  478.             BeginProperty ListImage20 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  479.                Picture         =   "自动转帐凭证_转帐列表.frx":5872
  480.                Key             =   "exec"
  481.             EndProperty
  482.             BeginProperty ListImage21 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  483.                Picture         =   "自动转帐凭证_转帐列表.frx":5C0C
  484.                Key             =   "xz"
  485.             EndProperty
  486.             BeginProperty ListImage22 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  487.                Picture         =   "自动转帐凭证_转帐列表.frx":5FA6
  488.                Key             =   "sc"
  489.             EndProperty
  490.          EndProperty
  491.       End
  492.       Begin VB.Label TsLabel 
  493.          Caption         =   "会计期间:"
  494.          Height          =   195
  495.          Index           =   9
  496.          Left            =   3900
  497.          TabIndex        =   16
  498.          Top             =   5220
  499.          Visible         =   0   'False
  500.          Width           =   825
  501.       End
  502.    End
  503. End
  504. Attribute VB_Name = "AutoTran_TranList"
  505. Attribute VB_GlobalNameSpace = False
  506. Attribute VB_Creatable = False
  507. Attribute VB_PredeclaredId = True
  508. Attribute VB_Exposed = False
  509. '*******************************************************
  510. '*    模 块 名 称 :自动转帐列表
  511. '*    功 能 描 述 :所有通过定义转帐关系能进行自动转帐的目录清单及执行转帐过程
  512. '*    程序员姓名  : 姜冬梅
  513. '*    最后修改人  : 魏永生
  514. '*    最早完成时间:2001/04/30
  515. '*    最近修改时间:2001/12/29
  516. '*    备        注:经过自己测试
  517. '*******************************************************
  518. '修改]
  519. Dim Rec_AutoTranMain As New ADODB.Recordset            '转帐过程主表中
  520. Dim Rec_AutoTranItem As New ADODB.Recordset            '转帐过程辅表
  521. Dim RecTemp As New ADODB.Recordset                     '临时数据表
  522. Dim Sqlstr As String                                   '查询字符串
  523. Dim Jsqte As Long                                      '临时计数器
  524. '
  525. Dim Je As Double                                       '取金额
  526. Dim Jhj As Double                                      '借合计金额
  527. Dim Dhj As Double                                      '贷合计金额
  528. Dim Sl As Double                                       '取数量
  529. Dim Jhjsl As Double                                    '借合计数量
  530. Dim Dhjsl As Double                                    '贷合计数量
  531. Dim ItemSl As Double                                   '取数量
  532. Dim JhjItemSl As Double                                '借合计数量
  533. Dim DhjItemSl As Double                                '贷合计数量
  534. Dim OperationNum    As Integer                          '本次转帐操作批号
  535. Dim Jsq_Eff  As Integer                                 '本批有效转帐过程总数
  536. Dim TranJsq As Integer                                  '本批选择的转帐过程个数计数器
  537. Dim TranNum() As String                                 '转帐过程数组
  538. Dim TranVouchClass() As String                          '转帐凭证类别数组
  539. Dim Bln_DeleteFlag As Boolean                           '转帐后是否删除临时表
  540. Dim Int_Year As Integer                                 '会计年份
  541. Dim Int_Period As Integer                               '会计期间
  542. Dim jdzygs As Integer                       '控件焦点转移个数
  543. Dim Lrzt As Integer                         '录入状态标志(0-非录入状态 1-增加 2-修改)
  544. Dim ReportTitle As String                   '报表主标题
  545. Public TranClassCode As String              '转帐类型编码
  546.   
  547. '以下为固定使用变量(网格)
  548. Dim Cxnrrec As New ADODB.Recordset       '显示查询内容动态集
  549. Dim Dyymctbl As New DY_Dyymsz            '打印页面窗体变量
  550. Dim GridCode As String                   '显示网格网格代码
  551. Dim GridInf() As Variant                 '整个网格设置信息
  552. Dim Tsxx As String                       '系统提示信息
  553. Dim Qslz As Long                         '网格隐藏(非操作显示)列数
  554. Dim Sjhgd As Double                      '网格数据行高度
  555. Dim GridBoolean() As Boolean             '网格列信息(布尔型)
  556. Dim GridStr()  As String                 '网格列信息(字符型)
  557. Dim GridInt() As Integer                 '网格列信息(整型)
  558. Dim Szzls As Integer                     '数组总列数(网格列数-1)
  559. '以下为固定使用变量(文本框)
  560. Dim Textvar() As Variant                 '存储变体型文本框信息
  561. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  562. Dim Textint() As Integer                 '存储整型文本框信息
  563. Dim Textstr() As String                  '存储字符型文本框信息
  564. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  565. Dim TextGroupCode As String              '文本框录入分组编码
  566. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  567. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁,=True时光标离开不需要马上进行判断
  568. '=False时,即允许马上进行有效性验证。
  569. Dim CurTextIndex As Integer              '当前文本框索引值
  570. Dim TextChangeLock As Boolean            '文本框内容变换控制锁.=True时屏蔽LrText.Change事件,=False时则执行。
  571.  '=True时,关闭Change事件,当新增记录填充网格、取消操作、按帮助按纽时均需关闭CHANGE事件。
  572. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  573. Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移
  574.     
  575.     jdzygs = 6
  576.     Select Case KeyAscii
  577.     Case vbKeyReturn
  578.         If Kjjdzy(jdzygs) Then
  579.             KeyAscii = 0
  580.         End If
  581.     Case 39           '屏蔽"'"
  582.         KeyAscii = 0
  583.     End Select
  584.     
  585. End Sub
  586. Private Sub Form_Load()
  587.     
  588.     '确定转帐过程编码
  589.     Call SeleTranBm
  590.     
  591.     '窗体的Caption
  592.     Me.Caption = ReportTitle
  593.     Me.Left = (Screen.Width - Me.Width) / 2
  594.     Me.Top = (Screen.Height - Me.Height) / 2
  595.     
  596.     '报表主标题及报表编码
  597.     ReportTitle = "转帐凭证列表"
  598.     XtReportCode = "cwzz_AutoAccList"
  599.     Load Dyymctbl
  600.     
  601.     '以下为文本框处理程序
  602.     TextGroupCode = "cwzz_AutoAccL"
  603.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  604.     Call Wbkcsh
  605.     
  606.     '调 入 网 格
  607.     GridCode = "cwzz_AutoAccList"          '网格属性编码
  608.     Call BzWgcsh(CzxsGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  609.     Qslz = GridInf(1)
  610.     Sjhgd = GridInf(2)
  611.     Szzls = CzxsGrid.Cols - 1
  612.     
  613.     '填 充 网 格
  614.     Call Cxnrtcwg
  615.     
  616.     '初始化toolbar,tab卡状态
  617.     StTab.Tab = 0
  618.     StTab.TabEnabled(1) = False
  619.     Frame1.Enabled = False
  620.     Lrzt = 0            '初始为非编辑状态
  621.     
  622.     '[自定义
  623.     
  624.     Chk_Vouch.Value = vbChecked
  625.     
  626.     '填充凭证类型下拉框
  627.     Call FillImageCombo(ImgCmbClass, "Cwzz_AccVouchClass", 2)
  628.     
  629.     '填充会计期间列表框(年度默认为用户选择年度)
  630.     Call Sub_FillPeriod(Combo_Kjqj, Xtyear, Xtmm)
  631.     
  632.     '自定义]
  633. End Sub
  634. Private Sub Cxnrtcwg()                               '查询内容填充网格
  635.     
  636.     Sqlstr = "SELECT Cwzz_VouchClass.VouchClassName AS VouchClassName, Cwzz_AutoTranMain.TranClass, " & _
  637.     "Cwzz_AutoTranMain.TranCode, Cwzz_AutoTranMain.TranName," & _
  638.     "Cwzz_AutoTranMain.VouchClassCode, Cwzz_AutoTranMain.EndTranDate," & _
  639.     "Cwzz_AutoTranMain.Bill FROM Cwzz_AutoTranMain LEFT OUTER JOIN " & _
  640.     "Cwzz_VouchClass ON " & _
  641.     "Cwzz_AutoTranMain.VouchClassCode = Cwzz_VouchClass.VouchClassCode " & _
  642.     "Where Cwzz_AutoTranMain.TranClass='" & TranClassCode & "' ORDER BY Cwzz_AutoTranMain.TranCode"
  643.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  644.     With RecTemp
  645.         CzxsGrid.Clear 1
  646.         CzxsGrid.Rows = .RecordCount + CzxsGrid.FixedRows
  647.         If .EOF And .BOF Then
  648.             Exit Sub
  649.         End If
  650.         Jsqte = CzxsGrid.FixedRows
  651.         Do While Not .EOF
  652.             If Jsqte >= CzxsGrid.Rows Then
  653.                 CzxsGrid.AddItem ""
  654.             End If
  655.             Call Jltcwg(RecTemp, Jsqte)
  656.             CzxsGrid.RowHeight(Jsqte) = Sjhgd
  657.             .MoveNext
  658.             Jsqte = Jsqte + 1
  659.         Loop
  660.     End With
  661.     
  662. End Sub
  663. Private Sub Jltcwg(Jlbrec As ADODB.Recordset, Rowjsq As Long)                                     '记录内容填充网格
  664.     
  665.     With Jlbrec
  666.         CzxsGrid.TextMatrix(Rowjsq, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("TranCode"))
  667.         CzxsGrid.TextMatrix(Rowjsq, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("TranName"))
  668.         CzxsGrid.TextMatrix(Rowjsq, Sydz("003", GridStr(), Szzls)) = Trim(Trim(.Fields("VouchClassCode")) & " " & Trim(.Fields("VouchClassName")))
  669.         CzxsGrid.TextMatrix(Rowjsq, Sydz("004", GridStr(), Szzls)) = Trim(.Fields("Bill") & "")
  670.         CzxsGrid.TextMatrix(Rowjsq, Sydz("005", GridStr(), Szzls)) = IIf(Trim(.Fields("EndTranDate") & "") = "", "", Format(Trim(.Fields("EndTranDate") & ""), "yyyy-mm-dd"))
  671.     End With
  672.     
  673. End Sub
  674. Private Sub Wbkcsh()                          '录入文本框初始化
  675.     
  676.     Dim Jsqte As Integer
  677.     '最大录入文本框索引值
  678.     Max_Text_Index = Textvar(1)
  679.     ReDim TextValiJudgeLock(Max_Text_Index)
  680.     For Jsqte = 0 To Max_Text_Index
  681.         If Len(Trim(Textstr(Jsqte, 1))) <> 0 Then   '如果文本框索引值不为0,即不是“编码”文本框
  682.             If Textboolean(Jsqte, 1) Then   '如果该文本框处需要提供帮助
  683.                 If Jsqte <> 0 And Not Textboolean(Jsqte, 3) Then    '
  684.                     Load Ydcommand1(Jsqte)
  685.                 End If
  686.                 Ydcommand1(Jsqte).Visible = True
  687.                 Ydcommand1(Jsqte).Move LrText(Jsqte).Left + LrText(Jsqte).Width, LrText(Jsqte).Top
  688.             End If
  689.             TextChangeLock = True
  690.             LrText(Jsqte).Text = ""
  691.             LrText(Jsqte).Tag = ""
  692.             If Textint(Jsqte, 5) <> 0 Then   '如果字段录入长度不等于0
  693.                 LrText(Jsqte).MaxLength = Textint(Jsqte, 5)  '该文本框的最大录入长度赋值给文本框的MaxLength
  694.             End If
  695.             TextChangeLock = False
  696.         End If
  697.         TextValiJudgeLock(Jsqte) = True
  698.     Next Jsqte
  699.     
  700. End Sub
  701. Private Sub Form_Unload(Cancel As Integer)             '窗体卸载
  702.     
  703.     TranClassCode = ""
  704.     Set Cxnrrec = Nothing
  705.     Unload Dyymctbl
  706.     Set Rec_AutoTranMain = Nothing
  707.     Set Rec_AutoTranItem = Nothing
  708.     Set RecTemp = Nothing
  709.     
  710. End Sub
  711. Private Function Bclrsj() As Boolean                   '判断录入数据有效性,并保存数据
  712.     
  713.     Dim Jsqte As Integer
  714.     For Jsqte = 0 To Max_Text_Index
  715.         If Textint(Jsqte, 8) = 1 Then     '如果字段不能为空
  716.             If Len(Trim(LrText(Jsqte).Text)) = 0 Then
  717.                 Tsxx = Textstr(Jsqte, 7) & "不能为空!"
  718.                 Call Xtxxts(Tsxx, 0, 1)
  719.                 LrText(Jsqte).SetFocus
  720.                 Bclrsj = False
  721.                 Exit Function
  722.             End If
  723.         Else
  724.             If Textint(Jsqte, 8) = 2 Then   '如果字段不能为零
  725.                 If Val(Trim(LrText(Jsqte).Text)) = 0 Then
  726.                     Tsxx = Textstr(Jsqte, 7) & "不能为零!"
  727.                     Call Xtxxts(Tsxx, 0, 1)
  728.                     LrText(Jsqte).SetFocus
  729.                     Bclrsj = False
  730.                     Exit Function
  731.                 End If
  732.             End If
  733.         End If
  734.     Next Jsqte
  735.     
  736.     If ImgCmbClass.Text = "" Then
  737.         Tsxx = tsLabel(2).Caption & "不能为空!"
  738.         Call Xtxxts(Tsxx, 0, 1)
  739.         ImgCmbClass.SetFocus
  740.         Bclrsj = False
  741.         Exit Function
  742.     Else
  743.         Set RecTemp = Cw_DataEnvi.DataConnect.Execute("Select * from Cwzz_VouchClass Where VouchClassCode='" & Trim(GetComboKey(ImgCmbClass, 0)) & "'")
  744.     End If
  745.     
  746.     '对需要进行事后判断的文本框录入内容进行有效性判断 (固定不变)
  747.     For Jsqte = 0 To Max_Text_Index
  748.         If Textint(Jsqte, 9) = 0 Or Textint(Jsqte, 9) = 2 Then   '需要进行有效性判断的字段存盘之前再进行判断。
  749.             If Not TextYxxpd(Jsqte) Then
  750.                 Exit Function
  751.             End If
  752.         End If
  753.     Next Jsqte
  754.     
  755.     On Error GoTo Swcwcl
  756.     If Lrzt = 1 Then  '增 加一个新编码时
  757.         With Rec_AutoTranMain
  758.             If .State = 1 Then .Close
  759.             .Open "SELECT * FROM Cwzz_AutoTranMain WHERE TranCode= '" + Trim(LrText(0).Text) + "' and TranClass='" & TranClassCode & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  760.             If Not .EOF Then
  761.                 Tsxx = "转帐编码重复!"
  762.                 Call Xtxxts(Tsxx, 0, 1)
  763.                 LrText(0).SetFocus
  764.                 Bclrsj = False
  765.                 Exit Function
  766.             End If
  767.             If .State = 1 Then .Close
  768.             .Open "SELECT * FROM Cwzz_AutoTranMain WHERE TranName= '" + Trim(LrText(1).Text) + "' and TranClass='" & TranClassCode & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  769.             If Not .EOF Then
  770.                 Tsxx = "转帐名称重复!"
  771.                 Call Xtxxts(Tsxx, 0, 1)
  772.                 LrText(1).SetFocus
  773.                 Bclrsj = False
  774.                 Exit Function
  775.             End If
  776.             .AddNew
  777.             .Fields("TranClass") = TranClassCode
  778.             .Fields("TranCode") = Trim(LrText(0).Text)
  779.             .Fields("TranName") = Trim(LrText(1).Text)
  780.             .Fields("VouchClassCode") = Trim(GetComboKey(ImgCmbClass, 0))
  781.             .Update
  782.         End With
  783.         Sqlstr = "SELECT cwzz_VouchClass.VouchClassCode,cwzz_VouchClass.VouchClassName, Cwzz_AutoTranMain.TranName, " & _
  784.         "Cwzz_AutoTranMain.TranCode, Cwzz_AutoTranMain.VouchClassCode," & _
  785.         "Cwzz_AutoTranMain.EndTranDate , Cwzz_AutoTranMain.Bill FROM Cwzz_AutoTranMain LEFT OUTER JOIN " & _
  786.         "Cwzz_VouchClass ON " & _
  787.         "Cwzz_AutoTranMain.VouchClassCode = Cwzz_VouchClass.VouchClassCode WHERE trancode = '" & Trim(LrText(0)) & "' and TranClass='" & TranClassCode & "'" & _
  788.         "ORDER BY Cwzz_AutoTranMain.TranCode"
  789.         Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  790.         With CzxsGrid
  791.             .AddItem ""
  792.             .RowHeight(.Rows - 1) = Sjhgd
  793.             .Select .Rows - 1, Qslz
  794.             Call Jltcwg(RecTemp, .Rows - 1)
  795.         End With
  796.         
  797.         Tsxx = "保存成功!"
  798.         Call Xtxxts(Tsxx, 0, 4)
  799.         Call Cshlrxx(1)
  800.         LrText(0).SetFocus
  801.     Else  '修改转帐名称或转帐类型时 修改编辑状态
  802.         With Rec_AutoTranMain
  803.             If .State = 1 Then .Close
  804.             .Open "SELECT * FROM Cwzz_AutoTranMain WHERE TranName= '" + Trim(LrText(1).Text) + "' and TranCode<>'" & Trim(LrText(0).Text) & "' and TranClass='" & TranClassCode & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  805.             If Not .EOF Then
  806.                 Tsxx = "转帐名称重复!"
  807.                 Call Xtxxts(Tsxx, 0, 1)
  808.                 LrText(1).SetFocus
  809.                 Bclrsj = False
  810.                 Exit Function
  811.             End If
  812.             If .State = 1 Then .Close
  813.             .Open "SELECT * FROM Cwzz_AutoTranMain WHERE TranCode= '" + LrText(0).Text + "' and TranClass='" & TranClassCode & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  814.             If Not .EOF Then
  815.                 .Fields("TranName") = Trim(LrText(1).Text)
  816.                 .Fields("VouchClassCode") = Trim(GetComboKey(ImgCmbClass, 0))
  817.             End If
  818.             .Update
  819.             .Close
  820.         End With
  821.         Sqlstr = "SELECT Cwzz_VouchClass.VouchClassName, Cwzz_AutoTranMain.TranName," & _
  822.         "Cwzz_AutoTranMain.TranCode,Cwzz_AutoTranMain.VouchClassCode, Cwzz_AutoTranMain.EndTranDate," & _
  823.         "Cwzz_AutoTranMain.Bill    FROM Cwzz_AutoTranMain LEFT OUTER JOIN " & _
  824.         "Cwzz_VouchClass ON  Cwzz_AutoTranMain.VouchClassCode = Cwzz_VouchClass.VouchClassCode  WHERE trancode = '" & Trim(LrText(0)) & "' and TranClass='" & TranClassCode & "'"
  825.         Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  826.         If Not RecTemp.EOF Then
  827.             Call Jltcwg(RecTemp, CzxsGrid.Row)
  828.         End If
  829.     End If
  830.     Bclrsj = True
  831.     Exit Function
  832.     
  833. Swcwcl:
  834.     Tsxx = "存盘过程中出现错误,请退出后重新进入!"
  835.     Call Xtxxts(Tsxx, 0, 1)
  836.     Exit Function
  837.     
  838. End Function
  839. Private Sub Cshlrxx(lrztxx As Integer)              '初始化录入字段信息
  840.     
  841.     TextChangeLock = True       '关闭Chang事件
  842.     If lrztxx = 1 Then              '新增状态
  843.         For Jsqte = 0 To Max_Text_Index
  844.             If Len(Trim(Textstr(Jsqte, 1))) <> 0 Then  '文本框索引值
  845.                 TextChangeLock = True
  846.                 LrText(Jsqte).Text = ""
  847.                 LrText(Jsqte).Tag = ""
  848.                 TextChangeLock = False
  849.             End If
  850.             TextValiJudgeLock(Jsqte) = True
  851.         Next Jsqte
  852.         ImgCmbClass.Text = ""
  853.     Else                            '其他状态,修改、非编辑
  854.         With CzxsGrid
  855.             LrText(0).Text = Trim(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls)))
  856.             LrText(1).Text = Trim(.TextMatrix(.Row, Sydz("002", GridStr(), Szzls)))
  857.             ImgCmbClass.Text = Trim(.TextMatrix(.Row, Sydz("003", GridStr(), Szzls)))
  858.         End With
  859.     End If
  860.     TextChangeLock = False
  861.     
  862. End Sub
  863. Private Sub Scdqjl()                 '删 除 当 前 记 录
  864.     
  865.     Dim Yhanswer As Integer
  866.     If CzxsGrid.Row < CzxsGrid.FixedRows Then
  867.         Exit Sub
  868.     End If
  869.     Tsxx = "请确认是否删除当前记录?"
  870.     Yhanswer = Xtxxts(Tsxx, 2, 2)
  871.     If Yhanswer = 2 Then
  872.         Exit Sub
  873.     End If
  874.     On Error GoTo Cwcl
  875.     
  876.     Cw_DataEnvi.DataConnect.BeginTrans
  877.     Cw_DataEnvi.DataConnect.Execute "delete Cwzz_AutoTranItem where TranCode= '" + Trim(CzxsGrid.TextMatrix(CzxsGrid.Row, Sydz("001", GridStr(), Szzls))) + "' and TranClass='" & TranClassCode & "'"
  878.     Cw_DataEnvi.DataConnect.Execute "delete Cwzz_AutoTranMain where TranCode = '" + Trim(CzxsGrid.TextMatrix(CzxsGrid.Row, Sydz("001", GridStr(), Szzls))) + "' and TranClass='" & TranClassCode & "'"
  879.     Cw_DataEnvi.DataConnect.CommitTrans
  880.     
  881.     CzxsGrid.RemoveItem CzxsGrid.Row
  882.     Exit Sub
  883.     
  884. Cwcl:
  885.     If Err.Number = -2147217900 Then
  886.         Tsxx = "该编码已经被使用,不能删除!"
  887.         Call Xtxxts(Tsxx, 0, 1)
  888.         Exit Sub
  889.     Else
  890.         Tsxx = "出现未知情况,该编码不能被删除!"
  891.         Call Xtxxts(Tsxx, 0, 1)
  892.         Exit Sub
  893.     End If
  894.     
  895. End Sub
  896. Public Sub Define()             '定义转帐关系
  897.     
  898.     Dim gnsybm As String      '功能索引编码
  899.     Dim gnsymc As String      '功能索引名称
  900.     If CzxsGrid.Rows = CzxsGrid.FixedRows Then
  901.         Tsxx = "请首先新增转帐过程!"
  902.         Call Xtxxts(Tsxx, 0, 4)
  903.         Exit Sub
  904.     End If
  905.     If Trim(CzxsGrid.TextMatrix(CzxsGrid.Row, Sydz("001", GridStr(), Szzls))) = "" Then
  906.         Tsxx = "请选择转帐过程!"
  907.         Call Xtxxts(Tsxx, 0, 4)
  908.         Exit Sub
  909.     Else
  910.         '为转帐定义窗体传递该转帐过程参数
  911.         CzxsGrid.Tag = CzxsGrid.TextMatrix(CzxsGrid.Row, Sydz("001", GridStr(), Szzls))
  912.         Sqlstr = "Select * From Xt_xtgnb where gnmc='" & Xt_Control.tvTreeView.SelectedItem.Text & "'"
  913.         Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  914.         gnsybm = Trim(RecTemp.Fields("gnsy") & "")
  915.         gnsymc = Trim(RecTemp.Fields("gnmc") & "")
  916.         Select Case gnsybm
  917.         Case "Cwzz_UserDefineTran"                                 '"自定义转帐凭证"
  918.             AutoTran_DefiMy.HelpContextID = AutoTran_TranList.HelpContextID
  919.             AutoTran_DefiMy.Show 1
  920.         Case "Cwzz_ProfitTran"                                     '"期间损益结转"
  921.             AutoTran_DefiSy.HelpContextID = AutoTran_TranList.HelpContextID
  922.             AutoTran_DefiSy.Show 1
  923.         Case "Cwzz_ModelTran"                                      '"模式结转凭证"
  924.             AutoTran_DefiCus.HelpContextID = AutoTran_TranList.HelpContextID
  925.             AutoTran_DefiCus.Show 1
  926.         Case "Cwzz_ExchangeTran"                                   '"汇兑损益凭证"
  927.             AutoTran_DefiExchange.HelpContextID = AutoTran_TranList.HelpContextID
  928.             AutoTran_DefiExchange.Show 1
  929.         End Select
  930.     End If
  931.     
  932. End Sub
  933. Private Sub Run1()                                          '执行自定义转帐程序
  934.     
  935.     Dim Tj_Main As String                                   '总帐取数公式
  936.     Dim Tj_List As String                                   '明细帐取数公式
  937.     Dim Tj_Ass As String                                    '辅助帐取数公式
  938.     
  939.     Dim jsq As Integer                                      '临时计数器
  940.     Dim I As Integer
  941.     Dim Str_Formula As String                               '公式串
  942.     Dim DestTranOri As String                               '对方汇总数的借贷方向
  943.     Dim lng_OperationNum As Long
  944.     Bln_DeleteFlag = True
  945.     
  946.     If Tran_Pd = False Then
  947.         Exit Sub
  948.     End If
  949.     
  950.     On Error GoTo Err1
  951.     Cw_DataEnvi.DataConnect.BeginTrans
  952.     
  953.     TranCount = TranJsq          '记录生成凭证的个数
  954.     VoidStr = ""         '记录没有数值的空凭证序号
  955.     
  956.     '对转帐列表网格内选中的TranJsq个转帐过程依次生成凭证,写到临时凭证数据表中
  957.     For jsq = 1 To TranJsq
  958.         
  959.         '写临时凭证主表
  960.         lng_OperationNum = CreatBillID("0102")
  961.         Call Save_TempPz_Main(TranVouchClass(jsq), TranNum(jsq), OperationNum, lng_OperationNum)
  962.         
  963.         '对方汇总数的借贷方向
  964.         Sqlstr = "Select ccode,TranOri,FormulaString from Cwzz_AutoTranItem where Trancode='" & TranNum(jsq) & "' and TranClass='" & TranClassCode & "' and FormulaString like '%对方汇总数%' Order by AutoTranId"
  965.         Set Rec_AutoTranItem = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  966.         If Rec_AutoTranItem.EOF = False Then
  967.             DestTranOri = Rec_AutoTranItem.Fields("tranori")
  968.         End If
  969.         
  970.         Jhj = 0
  971.         Dhj = 0   '对方汇总金额
  972.         Jhjsl = 0
  973.         Dhjsl = 0
  974.         JhjItemSl = 0
  975.         DhjItemSl = 0
  976.         I = 0
  977.         hjje = 0      '合计金额
  978.         '按转帐定义关系,取每笔转帐数据,写入临时数据辅表中
  979.         Sqlstr = "select * from Cwzz_AutoTranItem where Trancode='" & TranNum(jsq) & "' and TranClass='" & TranClassCode & "' and FormulaString not like '%对方汇总数%' ORDER BY AutoTranId"
  980.         Set Rec_AutoTranItem = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  981.         Do While Rec_AutoTranItem.EOF = False
  982.             
  983.             Str_Formula = Trim(Rec_AutoTranItem.Fields("FormulaString"))
  984.             Str_Formula = Fn_Replace(Str_Formula, Chk_Vouch.Value)
  985.             
  986.             Sqlstr = "select " & Str_Formula & " as ReturnValue"
  987.             Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  988.             If RecTemp.EOF = False Then
  989.                 Je = IIf(IsNull(RecTemp.Fields("ReturnValue")), 0, RecTemp.Fields("ReturnValue"))
  990.                 If Rec_AutoTranItem.Fields("tranori") <> DestTranOri Then
  991.                     Dhj = Dhj + Je * IIf(Rec_AutoTranItem.Fields("tranori") = DestTranOri, -1, 1)
  992.                 End If
  993.                 
  994.                 '写临时凭证辅表
  995.                 If Je <> 0 Then
  996.                     Call Save_TempPz_Ass(lng_OperationNum, I, Trim(Rec_AutoTranItem.Fields("Digest")), Trim(Rec_AutoTranItem.Fields("Ccode")), Trim(Rec_AutoTranItem.Fields("DeptCode") & ""), Trim(Rec_AutoTranItem.Fields("PersonCode") & ""), Trim(Rec_AutoTranItem.Fields("CusCode") & ""), Trim(Rec_AutoTranItem.Fields("Suppliercode") & ""), Trim(Rec_AutoTranItem.Fields("ItemCode") & ""), Trim(Rec_AutoTranItem.Fields("TranOri")))
  997.                 End If
  998.             End If
  999.             Rec_AutoTranItem.MoveNext
  1000.             I = I + 1
  1001.             hjje = hjje + Je
  1002.         Loop
  1003.         
  1004.         '对方汇总
  1005.         Sqlstr = "Select ccode,TranOri,FormulaString from Cwzz_AutoTranItem where Trancode='" & TranNum(jsq) & "' and TranClass='" & TranClassCode & "' and FormulaString like '%对方汇总数%' Order by AutoTranId"
  1006.         Set Rec_AutoTranItem = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1007.         If Rec_AutoTranItem.EOF = False Then
  1008.             DestTranOri = Rec_AutoTranItem.Fields("tranori")
  1009.         End If
  1010.         
  1011.         '找到数据来源为对方汇总数的转帐关系
  1012.         Sqlstr = "select * from Cwzz_AutoTranItem where Trancode='" & TranNum(jsq) & "' and TranClass='" & TranClassCode & "' and FormulaString like '%对方汇总数%' ORDER BY AutoTranId"
  1013.         Set Rec_AutoTranItem = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1014.         Do While Rec_AutoTranItem.EOF = False
  1015.             
  1016.             Str_Formula = Trim(Rec_AutoTranItem.Fields("FormulaString"))
  1017.             Str_Formula = Replace(Str_Formula, "对方汇总数", Str(Dhj))
  1018.             
  1019.             Sqlstr = "select " & Str_Formula & " as ReturnValue"
  1020.             Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1021.             If RecTemp.EOF = False Then
  1022.                 Je = RecTemp.Fields("ReturnValue")
  1023.             End If
  1024.             Call Save_TempPz_Ass(lng_OperationNum, I, Trim(Rec_AutoTranItem.Fields("Digest")), Trim(Rec_AutoTranItem.Fields("Ccode")), Trim(Rec_AutoTranItem.Fields("DeptCode") & ""), Trim(Rec_AutoTranItem.Fields("PersonCode") & ""), Trim(Rec_AutoTranItem.Fields("CusCode") & ""), Trim(Rec_AutoTranItem.Fields("Suppliercode") & ""), Trim(Rec_AutoTranItem.Fields("ItemCode") & ""), Trim(Rec_AutoTranItem.Fields("TranOri")))
  1025.             Rec_AutoTranItem.MoveNext
  1026.             I = I + 1
  1027.         Loop
  1028.         
  1029.         If hjje = 0 Then              '合计金额
  1030.             '删除空凭证主从表
  1031.             Sqlstr = "Delete From Cwzz_AccVouchSubTemp Where VouchId=" & lng_OperationNum
  1032.             Cw_DataEnvi.DataConnect.Execute Sqlstr
  1033.             Sqlstr = "Delete From Cwzz_AccVouchMainTemp Where VouchId=" & lng_OperationNum
  1034.             Cw_DataEnvi.DataConnect.Execute Sqlstr
  1035.             VoidStr = VoidStr + Str(jsq) + " "
  1036.             TranCount = TranCount - 1
  1037.         End If
  1038.         
  1039.     Next jsq
  1040.     
  1041.     Cw_DataEnvi.DataConnect.CommitTrans
  1042.     
  1043.     '没有有效凭证生成,即金额、数量均为0
  1044.     If Len(VoidStr) <> 0 Then
  1045.         Tsxx = "第" & VoidStr & "张凭证没有发生额,不需要结转!"
  1046.         Call Xtxxts(Tsxx, 0, 4)
  1047.     End If
  1048.     
  1049.     If TranCount > 0 Then       '记录生成凭证的个数
  1050.         '记录此次转帐的批号,做为凭证窗体调用的参数
  1051.         AutoTran_PzFrm.OperationNumPz = OperationNum
  1052.         AutoTran_PzFrm.vouchsourcePz = "自动转帐"
  1053.         '调入凭证制作窗体
  1054.         AutoTran_PzFrm.Show 1
  1055.         
  1056.         
  1057.         '为在转帐过程列表的网格中重新显示制单日期和操作员,防止虽转完,但无痕迹
  1058.         Call Write_Date
  1059.         Call Clean
  1060.     End If
  1061.     Call Cxnrtcwg
  1062.     Exit Sub
  1063. Err1:
  1064.     Cw_DataEnvi.DataConnect.RollbackTrans
  1065.     Tsxx = "转帐过程中出现未知错误,程序自动恢复保存前状态!"
  1066.     Call Xtxxts(Tsxx, 0, 1)
  1067.     Exit Sub
  1068.     
  1069. End Sub
  1070. Private Sub Run3()                                          '执行汇兑损益程序
  1071.     
  1072.     Dim Tj_Main As String                                   '总帐取数公式
  1073.     Dim Tj_List As String                                   '明细帐取数公式
  1074.     Dim Tj_Ass As String                                    '辅助帐取数公式
  1075.     
  1076.     Dim jsq As Integer                                      '临时计数器
  1077.     Dim I As Integer
  1078.     Dim Str_Formula As String                               '公式串
  1079.     Dim DestTranOri As String                               '对方汇总数的借贷方向
  1080.     Dim Str_ForeignCode As String                           '外币编码
  1081.     Dim Dec_AdjustRate As Double                            '汇率
  1082.     Dim lng_OperationNum As Long
  1083.     Bln_DeleteFlag = True
  1084.     
  1085.     If Tran_Pd = False Then
  1086.         Exit Sub
  1087.     End If
  1088.     
  1089.     On Error GoTo Err1
  1090.     Cw_DataEnvi.DataConnect.BeginTrans
  1091.     
  1092.     TranCount = TranJsq          '记录生成凭证的个数
  1093.     VoidStr = ""         '记录没有数值的空凭证序号
  1094.     
  1095.     '对转帐列表网格内选中的TranJsq个转帐过程依次生成凭证,写到临时凭证数据表中
  1096.     For jsq = 1 To TranJsq
  1097.         
  1098.         '写临时凭证主表
  1099.         
  1100.         lng_OperationNum = CreatBillID("0102")
  1101.         Call Save_TempPz_Main(TranVouchClass(jsq), TranNum(jsq), OperationNum, lng_OperationNum)
  1102.         
  1103.         '对方汇总数的借贷方向
  1104.         Sqlstr = "Select ccode,TranOri from Cwzz_V_AutoItemAccCode where Trancode='" & TranNum(jsq) & "' and TranClass='" & TranClassCode & "' and ForeignFlag=0 Order by AutoTranId"
  1105.         Set Rec_AutoTranItem = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1106.         If Not Rec_AutoTranItem.EOF Then
  1107.             DestTranOri = Rec_AutoTranItem.Fields("tranori")
  1108.         End If
  1109.         
  1110.         Jhj = 0
  1111.         Dhj = 0   '对方汇总金额
  1112.         Jhjsl = 0
  1113.         Dhjsl = 0
  1114.         JhjItemSl = 0
  1115.         DhjItemSl = 0
  1116.         I = 0
  1117.         hjje = 0      '合计金额
  1118.         '按转帐定义关系,取每笔转帐数据,写入临时数据辅表中
  1119.         Sqlstr = "select * from Cwzz_V_AutoItemAccCode where Trancode='" & TranNum(jsq) & "' and TranClass='" & TranClassCode & "' and ForeignFlag=1 ORDER BY AutoTranId"
  1120.         Set Rec_AutoTranItem = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1121.         Do While Rec_AutoTranItem.EOF = False
  1122.             
  1123.             Str_Formula = Trim(Rec_AutoTranItem.Fields("ccode"))
  1124.             Str_ForeignCode = Trim(Rec_AutoTranItem.Fields("ForeigncurrCode"))
  1125.             
  1126.             If RecTemp.State = 1 Then RecTemp.Close
  1127.             Sqlstr = "select AdjustRate from Gy_ForeignCurrency where ForeignCurrCode='" & Str_ForeignCode & "'"
  1128.             Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1129.             If RecTemp.EOF = False Then
  1130.                 Dec_AdjustRate = RecTemp.Fields("AdjustRate")
  1131.             End If
  1132.             
  1133.             If RecTemp.State = 1 Then RecTemp.Close
  1134.             Sqlstr = "select ccode,qmye,qmwb from Cwzz_AccSum where ccode='" & Str_Formula & "' and year=" & Xtyear & " and period=" & Xtmm
  1135.             Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1136.             If RecTemp.EOF = False Then
  1137.                 Je = RecTemp.Fields("qmwb") * Dec_AdjustRate - RecTemp.Fields("qmye")
  1138.                 Je = Je * IIf(Rec_AutoTranItem.Fields("tranori") = Rec_AutoTranItem.Fields("BalanceOri"), 1, -1)
  1139.                 Dhj = Dhj + Je * IIf(Rec_AutoTranItem.Fields("tranori") = DestTranOri, -1, 1)
  1140.                 
  1141.                 '写临时凭证辅表
  1142.                 If Je <> 0 Then
  1143.                     Call Save_TempPz_Ass(lng_OperationNum, I, Trim(Rec_AutoTranItem.Fields("Digest")), Trim(Rec_AutoTranItem.Fields("Ccode")), Trim(Rec_AutoTranItem.Fields("DeptCode") & ""), Trim(Rec_AutoTranItem.Fields("PersonCode") & ""), Trim(Rec_AutoTranItem.Fields("CusCode") & ""), Trim(Rec_AutoTranItem.Fields("Suppliercode") & ""), Trim(Rec_AutoTranItem.Fields("ItemCode") & ""), Trim(Rec_AutoTranItem.Fields("TranOri")))
  1144.                 End If
  1145.             End If
  1146.             Rec_AutoTranItem.MoveNext
  1147.             I = I + 1
  1148.             hjje = hjje + Je
  1149.         Loop
  1150.         
  1151.         '对方汇总
  1152.         Sqlstr = "Select ccode,TranOri from Cwzz_V_AutoItemAccCode where Trancode='" & TranNum(jsq) & "' and TranClass='" & TranClassCode & "' and ForeignFlag=0 Order by AutoTranId"
  1153.         Set Rec_AutoTranItem = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1154.         If Rec_AutoTranItem.EOF = False Then
  1155.             DestTranOri = Rec_AutoTranItem.Fields("tranori")
  1156.         End If
  1157.         
  1158.         '找到数据来源为对方汇总数的转帐关系
  1159.         Sqlstr = "select * from Cwzz_V_AutoItemAccCode where Trancode='" & TranNum(jsq) & "' and TranClass='" & TranClassCode & "' and ForeignFlag=0 ORDER BY AutoTranId"
  1160.         Set Rec_AutoTranItem = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1161.         Do While Rec_AutoTranItem.EOF = False
  1162.             
  1163.             Je = Dhj
  1164.             Call Save_TempPz_Ass(lng_OperationNum, I, Trim(Rec_AutoTranItem.Fields("Digest")), Trim(Rec_AutoTranItem.Fields("Ccode")), Trim(Rec_AutoTranItem.Fields("DeptCode") & ""), Trim(Rec_AutoTranItem.Fields("PersonCode") & ""), Trim(Rec_AutoTranItem.Fields("CusCode") & ""), Trim(Rec_AutoTranItem.Fields("Suppliercode") & ""), Trim(Rec_AutoTranItem.Fields("ItemCode") & ""), Trim(Rec_AutoTranItem.Fields("TranOri")))
  1165.             Rec_AutoTranItem.MoveNext
  1166.         Loop
  1167.         If Dhj = 0 Then
  1168.             '删除空凭证主从表
  1169.             Cw_DataEnvi.DataConnect.Execute "Delete From Cwzz_AccVouchSubTemp Where VouchId=lng_OperationNum"
  1170.             Cw_DataEnvi.DataConnect.Execute "Delete From Cwzz_AccVouchMainTemp Where VouchId=lng_OperationNum"
  1171.         End If
  1172.         
  1173.         If hjje = 0 Then              '合计金额
  1174.             '删除空凭证主从表
  1175.             Sqlstr = "Delete From Cwzz_AccVouchSubTemp Where VouchId=" & lng_OperationNum
  1176.             Cw_DataEnvi.DataConnect.Execute Sqlstr
  1177.             Sqlstr = "Delete From Cwzz_AccVouchMainTemp Where VouchId=" & lng_OperationNum
  1178.             Cw_DataEnvi.DataConnect.Execute Sqlstr
  1179.             VoidStr = VoidStr + Str(jsq) + " "
  1180.             TranCount = TranCount - 1
  1181.         End If
  1182.         
  1183.     Next jsq
  1184.     
  1185.     Cw_DataEnvi.DataConnect.CommitTrans
  1186.     
  1187.     '没有有效凭证生成,即金额、数量均为0
  1188.     If Len(VoidStr) <> 0 Then
  1189.         Tsxx = "第" & VoidStr & "张凭证没有发生额,不需要结转!"
  1190.         Call Xtxxts(Tsxx, 0, 4)
  1191.     End If
  1192.     
  1193.     If TranCount > 0 Then       '记录生成凭证的个数
  1194.         '记录此次转帐的批号,做为凭证窗体调用的参数
  1195.         
  1196.         AutoTran_PzFrm.OperationNumPz = OperationNum
  1197.         AutoTran_PzFrm.vouchsourcePz = "自动转帐"
  1198.         '调入凭证制作窗体
  1199.         AutoTran_PzFrm.Show 1
  1200.         
  1201.         
  1202.         '为在转帐过程列表的网格中重新显示制单日期和操作员,防止虽转完,但无痕迹
  1203.         Call Write_Date
  1204.         Call Clean
  1205.     End If
  1206.     Call Cxnrtcwg
  1207.     Exit Sub
  1208.     
  1209. Err1:
  1210.     Cw_DataEnvi.DataConnect.RollbackTrans
  1211.     Tsxx = "转帐过程中出现未知错误,程序自动恢复保存前状态!"
  1212.     Call Xtxxts(Tsxx, 0, 1)
  1213.     Exit Sub
  1214.     
  1215. End Sub
  1216. Public Sub Balance(TjMain As String, TjList As String, TjAss As String) '期末余额子过程
  1217.     
  1218.     Je = 0
  1219.     Sl = 0
  1220.     ItemSl = 0
  1221.     
  1222.     '[从科目总帐或辅助帐取年初余额
  1223.     If TjAss = "" Then
  1224.         Sqlstr = "select * from  Cwzz_AccSum  where " & TjMain & " and Year='" & Int_Year & "' and period='" & Xtmm & " '"                          '从科目总帐取月初余额"
  1225.     Else
  1226.         Sqlstr = "select * from Cwzz_AccSumAssi  where " & TjMain & "and " & TjAss & " and Year='" & Int_Year & "'   and period='" & Xtmm & " '"    '从辅助总帐取年初余额
  1227.     End If
  1228.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1229.     
  1230.     '余额赋初值
  1231.     If RecTemp.EOF = False Then
  1232.         Je = Trim(RecTemp.Fields("qcye") & "") '改为本月期初余额(bsj 2001-10-16)
  1233.         Sl = Trim(RecTemp.Fields("qcsl") & "") '改为本月期初余额(bsj 2001-10-16)
  1234.         
  1235.         If TjAss <> "" Then
  1236.             ItemSl = Trim(RecTemp.Fields("YcItemsl") & "")
  1237.         End If
  1238.     End If
  1239.     '[从科目总帐或辅助帐取年初余额
  1240.     
  1241.     
  1242.     '[从凭证明细取累计借方贷方发生额计算期末余额
  1243.     Sqlstr = "SELECT ccode,Debi_Je=Sum(Jfje),Debi_Sl=Sum(Jfsl),Debi_Itemsl=sum(Itemjfsl),Lender_Je=Sum(Dfje),Lender_Sl=Sum(dfsl)," & _
  1244.     "Lender_Itemsl=sum(ItemDfsl) FROM Cwzz_V_AccVouch "
  1245.     
  1246.     If TjAss = "" Then                                  '无辅助项目核算
  1247.         Sqlstr = Sqlstr + " where " & TjList & ""
  1248.     Else
  1249.         Sqlstr = Sqlstr + " Where " & TjList & " and " & TjAss & ""
  1250.     End If
  1251.     
  1252.     '若不包含未记帐凭证,再增加一个限制
  1253.     If Chk_Vouch.Value = 0 Then
  1254.         Sqlstr = Sqlstr & " and BookFlag='1' "
  1255.     End If
  1256.     
  1257.     Sqlstr = Sqlstr + " and Year='" & Int_Year & "'  and Period='" & Int_Period & "' group by ccode " '(取本月数 bsj 2001-10-16)
  1258.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1259.     
  1260.     '计算期末余额
  1261.     If RecTemp.EOF = False Then
  1262.         Do While RecTemp.EOF = False
  1263.             Je = Je + Val(RecTemp.Fields("Debi_je") & "") - Val(RecTemp.Fields("Lender_je") & "")
  1264.             Sl = Sl + Val(RecTemp.Fields("Debi_sl") & "") - Val(RecTemp.Fields("Lender_sl") & "")
  1265.             If TjAss <> "" Then
  1266.                 ItemSl = ItemSl + Val(RecTemp.Fields("Debi_Itemsl") & "") - Val(RecTemp.Fields("Lender_Itemsl") & "")
  1267.             End If
  1268.             RecTemp.MoveNext
  1269.         Loop
  1270.     End If
  1271.     ']从凭证明细取累计借方贷方发生额计算期末余额
  1272.     
  1273. End Sub
  1274. Public Sub Debi(TjList As String, TjAss As String)       ''从凭证明细帐求本期借方发生额
  1275.     'TjList为计算明细帐发生额的条件,TjAss 有辅助项目核算的条件
  1276.     Je = 0
  1277.     Sl = 0
  1278.     ItemSl = 0
  1279.     
  1280.     Sqlstr = "SELECT Debi_Je=Sum(Jfje),Debi_Sl=Sum(Jfsl),Debi_Itemsl=sum(Itemjfsl) " & _
  1281.     "FROM Cwzz_V_AccVouch "
  1282.     If TjAss = "" Then
  1283.         Sqlstr = Sqlstr + "where " & TjList & " "
  1284.     Else
  1285.         Sqlstr = Sqlstr + "where " & TjList & " and " & TjAss & " "
  1286.     End If
  1287.     If Chk_Vouch.Value = 0 Then         '不包含未记帐凭证
  1288.         Sqlstr = Sqlstr & " and BookFlag='1'"
  1289.     End If
  1290.     Sqlstr = Sqlstr + " and Year='" & Int_Year & "'  and Period='" & Int_Period & "' Group by Ccode"
  1291.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1292.     If RecTemp.EOF = False Then
  1293.         Do While RecTemp.EOF = False
  1294.             Je = Je + Val(RecTemp.Fields("Debi_Je") & "")
  1295.             Sl = Sl + Val(RecTemp.Fields("Debi_Sl") & "")
  1296.             ItemSl = ItemSl + Val(RecTemp.Fields("Debi_ItemSl") & "")
  1297.             RecTemp.MoveNext
  1298.         Loop
  1299.     End If
  1300. End Sub
  1301. Public Sub Lender(TjList As String, TjAss As String)        ''从凭证明细帐求本期贷方发生额
  1302.     'TjList为计算明细帐发生额的条件,TjAss 有辅助项目核算的条件
  1303.     Je = 0
  1304.     Sl = 0
  1305.     ItemSl = 0
  1306.     
  1307.     Sqlstr = "SELECT Lender_Je=Sum(Dfje),Lender_Sl=Sum(Dfsl),Lender_ItemSl=sum(ItemDfsl) " & _
  1308.     "FROM Cwzz_V_AccVouch "
  1309.     If TjAss = "" Then
  1310.         Sqlstr = Sqlstr + "where " & TjList & " "
  1311.     Else
  1312.         Sqlstr = Sqlstr + "where " & TjList & " and " & TjAss & " "
  1313.     End If
  1314.     If Chk_Vouch.Value = 0 Then         '不包含未记帐凭证
  1315.         Sqlstr = Sqlstr & " and BookFlag='1'"
  1316.     End If
  1317.     Sqlstr = Sqlstr + " and Year='" & Int_Year & "'  and Period='" & Int_Period & "' Group by Ccode"
  1318.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1319.     If RecTemp.EOF = False Then
  1320.         Do While RecTemp.EOF = False
  1321.             Je = Je + Val(RecTemp.Fields("Lender_Je") & "")
  1322.             Sl = Sl + Val(RecTemp.Fields("Lender_Sl") & "")
  1323.             ItemSl = ItemSl + Val(RecTemp.Fields("Lender_ItemSl") & "")
  1324.             RecTemp.MoveNext
  1325.         Loop
  1326.     End If
  1327. End Sub
  1328. Public Sub Balance_Sy(TjMain As String, TjList As String, TjAss As String) '期间损益结转,以明细帐为循环体求总帐中不符合条件的科目期末余额
  1329.     'TjMain为取年初余额的条件,TjList为计算明细帐发生额的条件,TjAss 有辅助项目核算的条件
  1330.     'Je表示期末余额,Sl表示期末余数量
  1331.     Je = 0
  1332.     Sl = 0
  1333.     ItemSl = 0
  1334.     
  1335.     '[从凭证明细取累计借方、贷方发生额等
  1336.     Sqlstr = "SELECT ccode,Debi_Je=Sum(Jfje),Debi_Sl=Sum(Jfsl),Lender_Je=Sum(Dfje),Lender_Sl=Sum(dfsl) FROM Cwzz_V_AccVouch "
  1337.     
  1338.     If TjAss = "" Then         '无辅助项目核算时
  1339.         Sqlstr = Sqlstr + "Where " & TjList & " "
  1340.     Else
  1341.         Sqlstr = Sqlstr + "Where " & TjList & " and " & TjAss & " "
  1342.     End If
  1343.     
  1344.     '若不包含未记帐凭证,再增加一个限制
  1345.     If Chk_Vouch.Value = 0 Then
  1346.         Sqlstr = Sqlstr & " and BookFlag='1'"
  1347.     End If
  1348.     Sqlstr = Sqlstr + " and Year='" & Int_Year & "'  and Period<='" & Int_Period & "' group by ccode "
  1349.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1350.     
  1351.     '计算期末余额
  1352.     If RecTemp.EOF = False Then
  1353.         Je = Je + Val(RecTemp.Fields("Debi_je") & "") - Val(RecTemp.Fields("Lender_je") & "")
  1354.         Sl = Sl + Val(RecTemp.Fields("Debi_sl") & "") - Val(RecTemp.Fields("Lender_sl") & "")
  1355.     End If
  1356.     
  1357.     '再搜索总帐中是否存在该辅助条件的记录,若存在则不参与计算,因为在上面的明细帐汇总时已经计算过,需要剔除掉.
  1358.     If TjAss = "" Then
  1359.         Sqlstr = "SELECT * from  Cwzz_AccSum  where " & TjMain & " and Year='" & Int_Year & "' and period=1 " '从科目总帐取年初余额"
  1360.         Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1361.     Else
  1362.         Sqlstr = "select * from Cwzz_AccSumAssi  where " & TjMain & "and " & TjAss & " and Year='" & Int_Year & "' and period=1"    '从辅助总帐取年初余额
  1363.         Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1364.     End If
  1365.     If RecTemp.EOF = False Then
  1366.         Je = 0
  1367.         Sl = 0
  1368.     End If
  1369. End Sub
  1370. Private Sub Save_TempPz_Main(TranVouchClass1 As String, TranNo As String, OperationNum1 As Integer, VouchIdTemp_Id As Long) '将有效数据写入临时凭证主表。(先写辅表再写主表,为了防止在主表中写入没有发生额的空凭证记录)
  1371.     Dim Rec_VouchMainTemp As New ADODB.Recordset           '临时凭证主表记录集
  1372.     
  1373.     '打开临时凭证主表,用于存放有效凭证的凭证号等信息
  1374.     If Rec_VouchMainTemp.State = 1 Then Rec_VouchMainTemp.Close
  1375.     Rec_VouchMainTemp.Open "select * from Cwzz_AccVouchMainTemp Where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1376.     With Rec_VouchMainTemp
  1377.         .AddNew
  1378.         .Fields("VouchId") = VouchIdTemp_Id              '转帐过程序号
  1379.         .Fields("Year") = Int_Year                           '取选中的年份
  1380.         .Fields("period") = Int_Period                       '取选中的会计期间
  1381.         .Fields("Ddate") = Xtrq                              '取系统日期
  1382.         .Fields("VouchClassCode") = TranVouchClass1          '所转转帐过程的凭证类别
  1383.         .Fields("Doc") = 0
  1384.         .Fields("Bill") = Xtczy
  1385.         .Fields("VouchSource") = "自动转帐"                  '凭证来源
  1386.         .Fields("OperationClass") = ""                       '业务类型
  1387.         .Fields("BillType") = ""
  1388.         .Fields("BillNo") = TranNo                           '存放转帐过程编码
  1389.         .Fields("OperationNo") = OperationNum1               '存放批号
  1390.         .Fields("DeleteFlag") = IIf(Bln_DeleteFlag, 1, 0)
  1391.         
  1392.         .Update
  1393.     End With
  1394. End Sub
  1395. Private Function Tran_Pd() As Boolean            '转帐之前的判断
  1396.     Dim jsq As Long             '临时计数器
  1397.     '提示已转过的凭证是否再转一次
  1398.     With CzxsGrid
  1399.         For jsq = .FixedRows To .Rows - 1
  1400.             If .TextMatrix(jsq, Sydz("006", GridStr(), Szzls)) = "√" Then
  1401.                 If .TextMatrix(jsq, Sydz("005", GridStr(), Szzls)) <> "" Then
  1402.                     Tsxx = "第" & CzxsGrid.TextMatrix(jsq, Sydz("001", GridStr(), Szzls)) & "号已转过凭证,再转一次吗?"
  1403.                     If Xtxxts(Tsxx, 1, 4) = 7 Then
  1404.                         .TextMatrix(jsq, Sydz("006", GridStr(), Szzls)) = ""
  1405.                     End If
  1406.                 End If
  1407.             End If
  1408.         Next jsq
  1409.     End With
  1410.     
  1411.     '判断选择的转帐过程共几个,保存在TranJsq中。将每个转帐过程编号赋值到TranNum()数组中,
  1412.     ReDim TranNum(1)                            '转帐过程数组附初值
  1413.     TranJsq = 0
  1414.     With CzxsGrid
  1415.         For jsq = .FixedRows To .Rows - 1
  1416.             If .TextMatrix(jsq, Sydz("006", GridStr(), Szzls)) = "√" Then
  1417.                 If TranJsq = 0 Then
  1418.                     TranNum(1) = .TextMatrix(jsq, Sydz("001", GridStr(), Szzls))
  1419.                 End If
  1420.                 If TranJsq > 0 Then
  1421.                     ReDim Preserve TranNum(UBound(TranNum) + 1)
  1422.                     TranNum(TranJsq + 1) = .TextMatrix(jsq, Sydz("001", GridStr(), Szzls))
  1423.                 End If
  1424.                 TranJsq = TranJsq + 1
  1425.             End If
  1426.         Next jsq
  1427.     End With
  1428.     If TranJsq = 0 Then
  1429.         Tsxx = "没有选择转帐过程!"
  1430.         Call Xtxxts(Tsxx, 0, 4)
  1431.         Tran_Pd = False
  1432.         Exit Function
  1433.     End If
  1434.     Jsq_Eff = TranJsq               '假设选择的转帐过程全部有效
  1435.     
  1436.     '将每个转帐过程的凭证类别放到数组TranVouchClass中
  1437.     ReDim TranVouchClass(1)
  1438.     For jsq = 1 To TranJsq
  1439.         Sqlstr = "SELECT * FROM Cwzz_AutoTranMain where TranCode='" & TranNum(jsq) & "'and tranclass='" & TranClassCode & "'"
  1440.         Set Rec_AutoTranMain = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1441.         If jsq > 1 Then
  1442.             ReDim Preserve TranVouchClass(UBound(TranVouchClass) + 1)
  1443.         End If
  1444.         TranVouchClass(jsq) = Trim(Rec_AutoTranMain.Fields("VouchClassCode") & "")
  1445.     Next jsq
  1446.     
  1447.     '取操作批号OperationNum,需唯一。
  1448.     OperationNum = CreatBillID("0102")
  1449.     RecTemp.Close
  1450.     Tran_Pd = True
  1451. End Function
  1452. Private Sub SeleTranBm()   '报表主标题及报表编码    '定义转帐类型
  1453.     Dim gnsybm As String      '功能索引编码
  1454.     Dim gnsymc As String      '功能索引名称
  1455.     
  1456.     If TranClassCode <> "" Then Exit Sub
  1457.     Sqlstr = "Select * From Xt_xtgnb where gnmc='" & Xt_Control.tvTreeView.SelectedItem.Text & "'"
  1458.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1459.     gnsybm = Trim(RecTemp.Fields("gnsy") & "")
  1460.     gnsymc = Trim(RecTemp.Fields("gnmc") & "")
  1461.     
  1462.     Select Case gnsybm
  1463.     Case "Cwzz_UserDefineTran"                                        '"自定义转帐凭证"
  1464.         ReportTitle = gnsymc & "列表"
  1465.         TranClassCode = "01"
  1466.     Case "Cwzz_ProfitTran"                                        '"期间损益结转"
  1467.         ReportTitle = gnsymc & "列表"
  1468.         TranClassCode = "04"
  1469.     Case "Cwzz_ModelTran"                                       '"模式结转凭证"
  1470.         ReportTitle = gnsymc & "列表"
  1471.         TranClassCode = "05"
  1472.     Case "Cwzz_ExchangeTran"
  1473.         ReportTitle = gnsymc & "列表"
  1474.         TranClassCode = "03"
  1475.         
  1476.     End Select
  1477.     XtReportCode = ReportTitle
  1478. End Sub
  1479. Private Sub Write_Date()    '写转帐日期
  1480.     Dim RecTran As ADODB.Recordset
  1481.     Set RecTran = Cw_DataEnvi.DataConnect.Execute("Select * from Cwzz_AccVouchMainTemp where OperationNo='" & OperationNum & "' and VouchNo is not null and VouchNo<>'' ")
  1482.     If RecTran.EOF = False Then
  1483.         Do While RecTran.EOF = False
  1484.             If RecTemp.State = 1 Then RecTemp.Close
  1485.             RecTemp.Open "select * from Cwzz_AutoTranMain where TranCode='" & Trim(RecTran.Fields("BillNo")) & "' and TranClass='" & TranClassCode & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1486.             RecTemp.Fields("EndTranDate") = Xtrq
  1487.             RecTemp.Fields("Bill") = Xtczy
  1488.             RecTemp.Update
  1489.             RecTemp.Close
  1490.             RecTran.MoveNext
  1491.         Loop
  1492.     End If
  1493. End Sub
  1494. Private Sub Clean()               '删除临时数据表数据
  1495.     If Bln_DeleteFlag = True Then
  1496.         If RecTemp.State = 1 Then RecTemp.Close
  1497.         '删除临时凭证主从表
  1498.         Cw_DataEnvi.DataConnect.Execute "Delete From Cwzz_AccVouchSubTemp Where VouchId in (select VouchId from Cwzz_AccVouchMainTemp where OperationNo='" & OperationNum & "')"
  1499.         Cw_DataEnvi.DataConnect.Execute "Delete From Cwzz_AccVouchMainTemp Where OperationNo='" & OperationNum & "'"
  1500.     End If
  1501. End Sub
  1502. Private Sub Run5()    '执行模式转帐程序
  1503.     
  1504.     Dim jsq As Integer                                      '临时计数器
  1505.     Dim serialno As Integer
  1506.     Dim lng_OperationNum As Long
  1507.     Bln_DeleteFlag = True
  1508.     
  1509.     If Tran_Pd = False Then
  1510.         Exit Sub
  1511.     End If
  1512.     
  1513.     On Error GoTo Err1
  1514.     Cw_DataEnvi.DataConnect.BeginTrans
  1515.     
  1516.     TranCount = TranJsq          '记录生成凭证的个数
  1517.     VoidStr = ""         '记录没有数值的空凭证序号
  1518.     
  1519.     '对转帐列表网格内选中的TranJsq个转帐过程依次生成凭证,写到临时凭证数据表中
  1520.     For jsq = 1 To TranJsq
  1521.         
  1522.         '定位转帐定义辅表,找到转帐编码为TranNum(jsq)的转帐关系
  1523.         Sqlstr = "select * from Cwzz_AutoTranItem where Trancode='" & TranNum(jsq) & "' and TranClass='" & TranClassCode & "' Order by AutoTranId "
  1524.         Set Rec_AutoTranItem = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1525.         If Rec_AutoTranItem.EOF = True Then
  1526.             Jsq_Eff = Jsq_Eff - 1
  1527.         Else
  1528.             Jhj = 0
  1529.             Dhj = 0
  1530.             hjje = 0      '合计金额
  1531.             '写临时凭证主表
  1532.             lng_OperationNum = CreatBillID("0102")
  1533.             Call Save_TempPz_Main(TranVouchClass(jsq), TranNum(jsq), OperationNum, lng_OperationNum)
  1534.             
  1535.             '按转帐定义关系,取每笔转帐数据,写入临时数据辅表中
  1536.             serialno = 1
  1537.             Do While Rec_AutoTranItem.EOF = False
  1538.                 Je = Round(Rec_AutoTranItem.Fields("Constant") * Rec_AutoTranItem.Fields("DistriProp") / 100, Xtjexsws)
  1539.                 '写临时凭证辅表
  1540.                 Call Save_TempPz_Ass(lng_OperationNum, serialno, Rec_AutoTranItem.Fields("Digest"), Rec_AutoTranItem.Fields("Ccode"), Trim(Rec_AutoTranItem.Fields("DeptCode") & ""), Trim(Rec_AutoTranItem.Fields("PersonCode") & ""), Trim(Rec_AutoTranItem.Fields("CusCode") & ""), Trim(Rec_AutoTranItem.Fields("Suppliercode") & ""), Trim(Rec_AutoTranItem.Fields("ItemCode") & ""), Trim(Rec_AutoTranItem.Fields("TranOri")))
  1541.                 Rec_AutoTranItem.MoveNext
  1542.                 serialno = serialno + 1
  1543.                 hjje = hjje + Je
  1544.             Loop
  1545.             
  1546.         End If
  1547.         
  1548.         If hjje = 0 Then              '合计金额
  1549.             '删除空凭证主从表
  1550.             Sqlstr = "Delete From Cwzz_AccVouchSubTemp Where VouchId=" & lng_OperationNum
  1551.             Cw_DataEnvi.DataConnect.Execute Sqlstr
  1552.             Sqlstr = "Delete From Cwzz_AccVouchMainTemp Where VouchId=" & lng_OperationNum
  1553.             Cw_DataEnvi.DataConnect.Execute Sqlstr
  1554.             VoidStr = VoidStr + Str(jsq) + " "
  1555.             TranCount = TranCount - 1
  1556.         End If
  1557.         
  1558.     Next jsq
  1559.     
  1560.     Cw_DataEnvi.DataConnect.CommitTrans
  1561.     
  1562.     '没有有效凭证生成,即金额、数量均为0
  1563.     If Len(VoidStr) <> 0 Then
  1564.         Tsxx = "第" & VoidStr & "张凭证没有发生额,不需要结转!"
  1565.         Call Xtxxts(Tsxx, 0, 4)
  1566.     End If
  1567.     
  1568.     If TranCount > 0 Then       '记录生成凭证的个数
  1569.         '记录此次转帐的批号,做为凭证窗体调用的参数
  1570.         AutoTran_PzFrm.OperationNumPz = OperationNum
  1571.         AutoTran_PzFrm.vouchsourcePz = "自动转帐"
  1572.         
  1573.         '调入凭证制作窗体
  1574.         AutoTran_PzFrm.Show 1
  1575.         
  1576.         
  1577.         '为在转帐过程列表的网格中重新显示制单日期和操作员,防止虽转完,但无痕迹
  1578.         Call Write_Date
  1579.         Call Clean
  1580.     End If
  1581.     Call Cxnrtcwg
  1582.     Exit Sub
  1583.     
  1584. Err1:
  1585.     Cw_DataEnvi.DataConnect.RollbackTrans
  1586.     Tsxx = "转帐过程中出现未知错误,程序自动恢复保存前状态!"
  1587.     Call Xtxxts(Tsxx, 0, 1)
  1588.     Exit Sub
  1589.     
  1590. End Sub
  1591. Private Sub Save_TempPz_Ass(VouchIdTemp_Id As Long, serialnum As Integer, Str_Digest As String, Str_Kmh As String, Str_Dept As String, Str_Per As String, Str_Cus As String, Str_Sup As String, Str_Item As String, str_TranOri As String) '写临时凭证辅表
  1592.     'VouchIdTemp_Id临时凭证主表、辅表对应关系Id号
  1593.     Dim Rec_VouchTemp As New ADODB.Recordset            '临时凭证辅表记录集
  1594.     
  1595.     '打开临时凭证辅表,用于存放转帐凭证内容
  1596.     Rec_VouchTemp.Open "select * from Cwzz_AccVouchsubTemp where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1597.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute("Select * from Cwzz_AccCode where Ccode='" & Str_Kmh & "'")
  1598.     With Rec_VouchTemp
  1599.         .AddNew
  1600.         
  1601.         '[公共信息
  1602.         If str_TranOri = "贷" Then                               '若记入借方
  1603.             .Fields("Dfje") = Je                                 '贷方金额
  1604.             .Fields("Jfje") = 0
  1605.             .Fields("Jfsl") = 0
  1606.         Else
  1607.             .Fields("Jfje") = Je                                 '借方金额
  1608.             .Fields("Dfje") = 0
  1609.             .Fields("Dfsl") = 0
  1610.         End If
  1611.         .Fields("Digest") = Str_Digest                           '摘要
  1612.         .Fields("Ccode") = Str_Kmh                               '转帐科目号
  1613.         .Fields("VouchId") = VouchIdTemp_Id                  '与主表的对应ID
  1614.         .Fields("serialID") = serialnum                  '序号ID
  1615.         
  1616.         ']公共信息
  1617.         
  1618.         If RecTemp.EOF = True Then
  1619.             Exit Sub
  1620.         End If
  1621.         
  1622.         '[数量信息
  1623.         If RecTemp.Fields("QuantityFlag") = True Then
  1624.             If str_TranOri = "贷" Then
  1625.                 .Fields("Dfsl") = Sl                          '贷方数量
  1626.                 .Fields("Jfsl") = 0
  1627.             Else
  1628.                 .Fields("Dfsl") = 0
  1629.                 .Fields("Jfsl") = Sl
  1630.             End If
  1631.         Else
  1632.             .Fields("Jfsl") = 0
  1633.             .Fields("Dfsl") = 0
  1634.         End If
  1635.         ']数量信息
  1636.         
  1637.         
  1638.         '[项目信息
  1639.         If RecTemp.Fields("ItemFlag") = True Then
  1640.             If str_TranOri = "贷" Then
  1641.                 .Fields("ItemDfsl") = ItemSl
  1642.                 .Fields("ItemJfsl") = 0
  1643.             Else
  1644.                 .Fields("ItemDfsl") = 0
  1645.                 .Fields("ItemJfsl") = ItemSl
  1646.             End If
  1647.             .Fields("ItemClassCode") = RecTemp.Fields("ItemClassCode")
  1648.             .Fields("ItemCode") = Str_Item
  1649.         Else
  1650.             .Fields("ItemJfsl") = 0
  1651.             .Fields("ItemDfsl") = 0
  1652.         End If
  1653.         ']项目信息
  1654.         
  1655.         '[辅助信息
  1656.         If RecTemp.Fields("PersonFlag") = True Then
  1657.             .Fields("PersonCode") = Str_Per                              '个人
  1658.         End If
  1659.         If RecTemp.Fields("DeptFlag") = True Then
  1660.             .Fields("DeptCode") = Str_Dept                           '部门
  1661.         End If
  1662.         If RecTemp.Fields("CusFlag") = True Then
  1663.             .Fields("CusCode") = Str_Cus                                  '客户
  1664.         End If
  1665.         If RecTemp.Fields("SupplierFlag") = True Then
  1666.             .Fields("Suppliercode") = Str_Sup                           '供应商
  1667.         End If
  1668.         ']辅助信息
  1669.         
  1670.         
  1671.         '[币别信息
  1672.         .Fields("AccRate") = 1
  1673.         .Fields("ForeignCurrCode") = XtSCurrCode
  1674.         If str_TranOri = "贷" Then                               '若记入借方
  1675.             .Fields("WbDfje") = Je
  1676.             .Fields("WbJfje") = 0
  1677.         Else
  1678.             .Fields("WbJfje") = Je
  1679.             .Fields("WbDfje") = 0
  1680.         End If
  1681.         ']币别信息
  1682.         
  1683.         '[银行结算信息
  1684.         .Fields("SScode") = ""
  1685.         .Fields("BillNo") = ""
  1686.         .Fields("TranPerson") = ""
  1687.         ']银行结算信息
  1688.         
  1689.         .Update
  1690.     End With
  1691. End Sub
  1692. Private Sub Run4()      '期间损益结转、管理费用差额结转
  1693.     
  1694.     Dim Tj_Main As String                                   '总帐取数公式
  1695.     Dim Tj_List As String                                   '明细帐取数公式
  1696.     Dim Tj_Ass As String                                    '辅助帐取数公式
  1697.     
  1698.     Dim jsq As Integer                                      '临时计数器
  1699.     Dim I As Integer                                        '凭证序列号
  1700.     
  1701.     Dim Rec_AccCcode As New ADODB.Recordset                 '会计科目记录集
  1702.     Dim Rec_AccAss As New ADODB.Recordset                   '总辅助帐
  1703.     Dim Rec_AccList As New ADODB.Recordset                  '明细帐
  1704.     Dim RecAssType As ADODB.Recordset                       '判断转帐科目有几种辅助核算时用
  1705.     Dim lng_OperationNum As Long
  1706.     Bln_DeleteFlag = True
  1707.     
  1708.     If Tran_Pd = False Then
  1709.         Exit Sub
  1710.     End If
  1711.     
  1712.     On Error GoTo Err1
  1713.     Cw_DataEnvi.DataConnect.BeginTrans
  1714.     
  1715.     TranCount = TranJsq          '记录生成凭证的个数
  1716.     VoidStr = ""         '记录没有数值的空凭证序号
  1717.     
  1718.     '对转帐列表网格内选中的TranJsq个转帐过程依次生成凭证,写到临时凭证数据表中
  1719.     For jsq = 1 To TranJsq
  1720.         
  1721.         'VouchIdTemp=jsq + OperationNum 为了确保VouchIdTemp每次生成时唯一
  1722.         '借方或贷方有有效数据时,写临时凭证主表,否则有效转帐过程-1
  1723.         
  1724.         lng_OperationNum = CreatBillID("0102")
  1725.         Call Save_TempPz_Main(TranVouchClass(jsq), TranNum(jsq), OperationNum, lng_OperationNum)
  1726.         
  1727.         '定位转帐定义辅表,找到转帐编码为TranNum(jsq)的转帐关系(把对方汇总数除外)
  1728.         Sqlstr = "select * from Cwzz_AutoTranItem where Trancode='" & TranNum(jsq) & "' and TranClass='" & TranClassCode & "' and FormulaCode<>'05' order by AutoTranId"
  1729.         Set Rec_AutoTranItem = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1730.         I = 1
  1731.         If Rec_AutoTranItem.EOF = False Then
  1732.             Jhj = 0
  1733.             Dhj = 0
  1734.             Jhjsl = 0
  1735.             Dhjsl = 0
  1736.             hjje = 0      '合计金额
  1737.             Do While Rec_AutoTranItem.EOF = False                           '转帐关系定义数据记录集
  1738.                 Tj_Main = "Ccode='" & Trim(Rec_AutoTranItem.Fields("GetCcode") & "") & "'"
  1739.                 Tj_List = Tj_Main
  1740.                 
  1741.                 Sqlstr = "Select * from Cwzz_AccCode Where " & Tj_Main & ""
  1742.                 Set RecAssType = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1743.                 If RecAssType.EOF = False Then                           '转帐科目是否存在
  1744.                     If RecAssType.Fields("stopflag") <> True Then         '若该科目没有停用
  1745.                         '若该科目不参与任何辅助核算
  1746.                         If Trim(RecAssType.Fields("DeptFlag") & "") <> True And Trim(RecAssType.Fields("PersonFlag") & "") <> True And Trim(RecAssType.Fields("CusFlag") & "") <> True And Trim(RecAssType.Fields("SupplierFlag") & "") <> True And Trim(RecAssType.Fields("ItemFlag") & "") <> True Then
  1747.                             TjAss = ""
  1748.                             Call Balance(Tj_Main, Tj_List, Tj_Ass)
  1749.                             If Rec_AutoTranItem.Fields("TranOri") = "借" Then
  1750.                                 Je = -Je
  1751.                                 Sl = -Sl
  1752.                                 ItemSl = -ItemSl
  1753.                             End If
  1754.                             If Je <> 0 Or SJ <> 0 Or ItemSl <> 0 Then
  1755.                                 If Rec_AutoTranItem.Fields("TranOri") = "借" Then
  1756.                                     Jhj = Jhj + Je
  1757.                                 Else
  1758.                                     Dhj = Dhj + Je
  1759.                                 End If
  1760.                                 Call Save_TempPz_Ass(lng_OperationNum, I, Rec_AutoTranItem.Fields("Digest"), Rec_AutoTranItem.Fields("Ccode"), "", "", "", "", "", Rec_AutoTranItem.Fields("TranOri"))
  1761.                                 I = I + 1
  1762.                             End If
  1763.                         Else
  1764.                             If Chk_Vouch.Value = 1 Then   '包含未记帐凭证
  1765.                                 Sqlstr = " SELECT DeptCode, PersonCode, CusCode, Suppliercode, ItemClassCode, ItemCode,b.Qmye , b.Qmsl, b.QmItemSl From " & _
  1766.                                 "(SELECT DeptCode, PersonCode, CusCode, Suppliercode, ItemClassCode,ItemCode, Qmye = SUM(YcyeHj + Jfljjehj - Dfljjehj),Qmsl = SUM(Ycslhj + Jfljslhj - Dfljslhj),QmItemSl = Sum(YcItemslHj + JfljItemslhj - DfljItemslhj) From " & _
  1767.                                 "((SELECT DeptCode, PersonCode, CusCode, Suppliercode, ItemClassCode,ItemCode, YcyeHj = SUM(Ycye), Ycslhj = SUM(Ycsl),YcItemSlHj = SUM(YcItemSl), JfljjeHj = 0, Dfljjehj = 0, Jfljslhj = 0,Dfljslhj = 0, JfljItemslhj = 0, DfljItemslhj = 0 From Cwzz_AccSumAssi " & _
  1768.                                 " WHERE " & Tj_Main & " AND Year ='" & Int_Year & "' AND Period = 1 GROUP BY DeptCode, PersonCode, CusCode, Suppliercode,ItemClassCode, ItemCode) Union All " & _
  1769.                                 "(SELECT DeptCode, PersonCode, CusCode, Suppliercode, ItemClassCode,ItemCode, YcyeHJ = 0, Ycslhj = 0, YcItemslHj = 0, JfljjeHj = SUM(Jfje),Dfljjehj = SUM(Dfje), Jfljslhj = SUM(Jfsl), Dfljslhj = SUM(Dfsl),JfljItemslhj = SUM(ItemJfsl), DfljItemslhj = SUM(ItemDfsl) From Cwzz_V_AccVouch " & _
  1770.                                 " WHERE " & Tj_Main & " AND Year ='" & Int_Year & "' AND Period <='" & Int_Period & "' GROUP BY DeptCode, PersonCode, CusCode, Suppliercode, ItemClassCode,ItemCode)) a GROUP BY DeptCode, PersonCode, CusCode, Suppliercode, ItemClassCode, ItemCode) b ORDER BY DeptCode, PersonCode, CusCode, Suppliercode, ItemClassCode, ItemCode "
  1771.                             Else
  1772.                                 Sqlstr = "Select DeptCode,PersonCode,CusCode,Suppliercode,ItemClassCode,ItemCode,Qmye,Qmsl,QmItemSl From  Cwzz_AccSumAssi Where " & Tj_Main & " And Year='" & Int_Year & "' And Period='" & Int_Period & "' order by DeptCode,PersonCode,CusCode,Suppliercode,ItemClassCode,ItemCode"
  1773.                             End If
  1774.                             Set Rec_AccAss = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1775.                             If Rec_AccAss.EOF = False Then
  1776.                                 Do While Rec_AccAss.EOF = False
  1777.                                     aa = Trim(Rec_AccAss.Fields("DeptCode") & "")
  1778.                                     '计算该科目下的所有部门个人等的期末余额
  1779.                                     Je = Rec_AccAss.Fields("Qmye")
  1780.                                     Sl = Rec_AccAss.Fields("Qmsl")
  1781.                                     ItemSl = Rec_AccAss.Fields("QmItemSl")
  1782.                                     
  1783.                                     If Rec_AutoTranItem.Fields("TranOri") = "借" Then
  1784.                                         Je = -Je
  1785.                                         Sl = -Sl
  1786.                                         ItemSl = -ItemSl
  1787.                                     End If
  1788.                                     '[写临时凭证,并计算借、贷方合计
  1789.                                     If Je <> 0 Or Sl <> 0 Or ItemSl <> 0 Then
  1790.                                         If Rec_AutoTranItem.Fields("TranOri") = "借" Then
  1791.                                             Jhj = Jhj + Je
  1792.                                             Jhjsl = Jhjsl + Sl
  1793.                                         Else
  1794.                                             Dhj = Dhj + Je
  1795.                                             Dhjsl = Dhjsl + Sl
  1796.                                         End If
  1797.                                         Call Save_TempPz_Ass(lng_OperationNum, I, Rec_AutoTranItem.Fields("Digest"), Rec_AutoTranItem.Fields("Ccode"), Trim(Rec_AccAss.Fields("DeptCode") & ""), Trim(Rec_AccAss.Fields("PersonCode") & ""), Trim(Rec_AccAss.Fields("CusCode") & ""), Trim(Rec_AccAss.Fields("Suppliercode") & ""), Trim(Rec_AccAss.Fields("ItemCode") & ""), Rec_AutoTranItem.Fields("TranOri"))
  1798.                                         I = I + 1
  1799.                                     End If
  1800.                                     Rec_AccAss.MoveNext
  1801.                                 Loop
  1802.                             End If      '总辅助帐计算后记录集不为空
  1803.                         End If          '有无辅助核算
  1804.                     End If              '科目没有停用
  1805.                 End If                  '转帐科目是否存在
  1806.                 Rec_AutoTranItem.MoveNext
  1807.                 hjje = hjje + Je
  1808.             Loop
  1809.             
  1810.             '[“对方汇总数”的转帐关系
  1811.             Sqlstr = "select * from Cwzz_AutoTranItem where Trancode='" & TranNum(jsq) & "' and TranClass='" & TranClassCode & "' and FormulaCode='05'"
  1812.             Set Rec_AutoTranItem = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1813.             If Rec_AutoTranItem.EOF = False And Abs(Jhj - Dhj) > 0.001 Then
  1814.                 Je = Jhj - Dhj
  1815.                 If Rec_AutoTranItem.Fields("TranOri") = "借" Then
  1816.                     Je = -Je
  1817.                 End If
  1818.                 Sl = 0
  1819.                 ItemSl = 0
  1820.                 Call Save_TempPz_Ass(lng_OperationNum, I, Rec_AutoTranItem.Fields("Digest"), Rec_AutoTranItem.Fields("Ccode"), Trim(Rec_AutoTranItem.Fields("DeptCode") & ""), Trim(Rec_AutoTranItem.Fields("PersonCode") & ""), Trim(Rec_AutoTranItem.Fields("CusCode") & ""), Trim(Rec_AutoTranItem.Fields("Suppliercode") & ""), Trim(Rec_AutoTranItem.Fields("ItemCode") & ""), Rec_AutoTranItem.Fields("TranOri"))
  1821.                 I = I + 1
  1822.             End If
  1823.             ']“对方汇总数”的转帐关系
  1824.             
  1825.         End If
  1826.         
  1827.         If hjje = 0 Then              '合计金额
  1828.             '删除空凭证主从表
  1829.             Sqlstr = "Delete From Cwzz_AccVouchSubTemp Where VouchId=" & lng_OperationNum
  1830.             Cw_DataEnvi.DataConnect.Execute Sqlstr
  1831.             Sqlstr = "Delete From Cwzz_AccVouchMainTemp Where VouchId=" & lng_OperationNum
  1832.             Cw_DataEnvi.DataConnect.Execute Sqlstr
  1833.             VoidStr = VoidStr + Str(jsq) + " "
  1834.             TranCount = TranCount - 1
  1835.         End If
  1836.     Next jsq
  1837.     Cw_DataEnvi.DataConnect.CommitTrans
  1838.     
  1839.     '没有有效凭证生成,即金额、数量均为0
  1840.     If Len(VoidStr) <> 0 Then
  1841.         Tsxx = "第" & VoidStr & "张凭证没有发生额或余额,不需要结转!"
  1842.         Call Xtxxts(Tsxx, 0, 4)
  1843.     End If
  1844.     
  1845.     If TranCount > 0 Then       '记录生成凭证的个数
  1846.         '记录此次转帐的批号,做为凭证窗体调用的参数
  1847.         AutoTran_PzFrm.OperationNumPz = OperationNum
  1848.         AutoTran_PzFrm.vouchsourcePz = "自动转帐"
  1849.         
  1850.         '调入凭证制作窗体
  1851.         AutoTran_PzFrm.Show 1
  1852.         
  1853.         
  1854.         '为在转帐过程列表的网格中重新显示制单日期和操作员,防止虽转完,但无痕迹
  1855.         Call Write_Date
  1856.         Call Clean
  1857.     End If
  1858.     Call Cxnrtcwg
  1859.     Exit Sub
  1860.     
  1861. Err1:
  1862.     Cw_DataEnvi.DataConnect.RollbackTrans
  1863.     Tsxx = "转帐过程中出现未知错误,程序自动恢复保存前状态!"
  1864.     Call Xtxxts(Tsxx, 0, 1)
  1865.     Exit Sub
  1866.     
  1867. End Sub
  1868. '******************以下为基本处理程序(固定不变)************************'
  1869. Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)        '支持热键操作
  1870.     If Shift = 2 Then
  1871.         Select Case UCase(Chr(KeyCode))
  1872.         Case "P"                   'Ctrl+P 打印
  1873.             Call bbyl(False)
  1874.         Case "I"                   'Ctrl+I 增加
  1875.             Call Toolbjzt
  1876.             Lrzt = 1
  1877.             Call Cshlrxx(Lrzt)
  1878.             LrText(0).SetFocus
  1879.             LrText(0).Locked = False
  1880.         Case "D"                   'Ctrl+D 删除
  1881.             Call Scdqjl
  1882.         End Select
  1883.     End If
  1884. End Sub
  1885. Private Sub SzToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
  1886.     Select Case Button.Key
  1887.     Case "ymsz"                                          '页面设置
  1888.         Dyymctbl.Show 1
  1889.     Case "yl"                                            '预 览
  1890.         Call bbyl(True)
  1891.     Case "dy"                                            '打 印
  1892.         Call bbyl(False)
  1893.     Case "zj"                                            '增 加
  1894.         Call Toolbjzt
  1895.         Lrzt = 1
  1896.         Call Cshlrxx(Lrzt)
  1897.         LrText(0).SetFocus
  1898.         LrText(0).Locked = False
  1899.     Case "xg"                                            '修 改
  1900.         Call Xgdqjl
  1901.     Case "sc"                                            '删 除
  1902.         Call Scdqjl
  1903.     Case "fq"                                            '取 消
  1904.         Call Toolfbjzt
  1905.     Case "sx"                                            '刷 新
  1906.         Call Cxnrtcwg
  1907.     Case "bz"                                            '帮 助
  1908.         Call F1bz
  1909.     Case "fh"                                            '退 出
  1910.         Unload Me
  1911.         '[自定义
  1912.     Case "run"
  1913.         '[>>计算会计期间
  1914.         Int_Year = Val(Mid(Combo_Kjqj.Text, 1, 4))
  1915.         Int_Period = Val(Mid(Combo_Kjqj.Text, 6, 2))
  1916.         '<<]
  1917.         Select Case TranClassCode
  1918.         Case "01"                           '执行自定义转帐凭证
  1919.             Call Run1
  1920.         Case "04"                           '执行期间损益
  1921.             Call Run4
  1922.         Case "05"                           '模式转帐凭证
  1923.             Call Run5
  1924.         Case "03"                           '汇兑损益凭证
  1925.             Call Run3
  1926.         End Select
  1927.     Case "define"                                '定义转帐凭证
  1928.         Call Define
  1929.         '自定义]
  1930.     End Select
  1931. End Sub
  1932. Private Sub CzxsGrid_DblClick()                            '修改当前编码记录
  1933.     With CzxsGrid
  1934.         If .Row < .FixedRows Then
  1935.             Exit Sub
  1936.         End If
  1937.         If GridStr(.Col, 1) <> "006" Then
  1938.             Call Xgdqjl
  1939.         Else
  1940.             If .TextMatrix(.Row, Sydz("006", GridStr(), Szzls)) = "√" Then
  1941.                 .TextMatrix(.Row, Sydz("006", GridStr(), Szzls)) = ""
  1942.             Else
  1943.                 .TextMatrix(.Row, Sydz("006", GridStr(), Szzls)) = "√"
  1944.             End If
  1945.         End If
  1946.     End With
  1947. End Sub
  1948. Private Sub Xgdqjl()                                       '修改当前编码记录
  1949.     If CzxsGrid.Row < CzxsGrid.FixedRows Then
  1950.         Exit Sub
  1951.     End If
  1952.     Call Toolbjzt
  1953.     Lrzt = 2
  1954.     Call Cshlrxx(Lrzt)
  1955.     LrText(1).SetFocus
  1956.     LrText(0).Locked = True
  1957. End Sub
  1958. Private Sub Toolbjzt()                                     'Toolbar状态(编辑状态)
  1959.     StTab.TabEnabled(1) = True
  1960.     StTab.Tab = 1
  1961.     Frame1.Enabled = True
  1962.     StTab.TabEnabled(0) = False
  1963.     CzxsGrid.Enabled = False
  1964.     With SzToolbar
  1965.         .Buttons("ymsz").Enabled = False
  1966.         .Buttons("dy").Enabled = False
  1967.         .Buttons("yl").Enabled = False
  1968.         .Buttons("zj").Enabled = False
  1969.         .Buttons("xg").Enabled = False
  1970.         .Buttons("sc").Enabled = False
  1971.         '[自定义
  1972.         .Buttons("define").Enabled = False
  1973.         .Buttons("run").Enabled = False
  1974.         '自定义]
  1975.     End With
  1976.     '[自定义
  1977.     With GsToolbar
  1978.         .Buttons("bcgs").Enabled = False
  1979.         .Buttons("hfmrgs").Enabled = False
  1980.         .Buttons("szxsxm").Enabled = False
  1981.     End With
  1982.     '自定义]
  1983. End Sub
  1984. Private Sub Toolfbjzt()                                    'Toolbar状态(非编辑状态)
  1985.     StTab.TabEnabled(0) = True
  1986.     StTab.Tab = 0
  1987.     CzxsGrid.Enabled = True
  1988.     Frame1.Enabled = False
  1989.     StTab.TabEnabled(1) = False
  1990.     Lrzt = 0
  1991.     With SzToolbar
  1992.         .Buttons("ymsz").Enabled = True
  1993.         .Buttons("dy").Enabled = True
  1994.         .Buttons("yl").Enabled = True
  1995.         .Buttons("zj").Enabled = True
  1996.         .Buttons("xg").Enabled = True
  1997.         .Buttons("sc").Enabled = True
  1998.         '[自定义
  1999.         .Buttons("define").Enabled = True
  2000.         .Buttons("run").Enabled = True
  2001.         '自定义]
  2002.     End With
  2003.     '[自定义
  2004.     With GsToolbar
  2005.         .Buttons("bcgs").Enabled = True
  2006.         .Buttons("hfmrgs").Enabled = True
  2007.         .Buttons("szxsxm").Enabled = True
  2008.     End With
  2009.     '自定义]
  2010. End Sub
  2011. Private Sub BcCommand_Click()                                           '保 存
  2012.     If Not Bclrsj Then
  2013.         Exit Sub
  2014.     End If
  2015.     If Lrzt = 2 Then   '修改编辑状态
  2016.         Call Toolfbjzt
  2017.     End If
  2018. End Sub
  2019. Private Sub QxCommand_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)       '取消
  2020.     '避免执行Click程序
  2021.     Bln_Cancel = True
  2022.     Call Cancel
  2023. End Sub
  2024. Private Sub QxCommand_Click()                                                                         '取消
  2025.     If Bln_Cancel Then
  2026.         Bln_Cancel = False
  2027.         Exit Sub
  2028.     End If
  2029.     Call Cancel
  2030. End Sub
  2031. Private Sub Cancel()                                                                                  '取消
  2032.     '文本框加锁
  2033.     For Jsqte = 0 To Max_Text_Index
  2034.         TextValiJudgeLock(Jsqte) = True  '光标离开不必进行有效性判断
  2035.     Next Jsqte
  2036.     Call Toolfbjzt
  2037. End Sub
  2038. Private Sub GsToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)   '表格格式设置(通用)
  2039.     Select Case Button.Key
  2040.     Case "bcgs"                              '保存表格格式
  2041.         Call Bcwggs(CzxsGrid, GridCode, GridStr())
  2042.     Case "hfmrgs"                            '恢复默认格式
  2043.         Call Hfmrgs(CzxsGrid, GridCode, GridStr())
  2044.     Case "szxsxm"                            '设置显示项目
  2045.         Call Szxsxm(CzxsGrid, GridCode)
  2046.     End Select
  2047. End Sub
  2048. Private Sub bbyl(bbylte As Boolean)                    '报表打印预览
  2049.     Dim Bbzbt$, Bbxbt() As String, bbxbtzzxs() As Integer, Bbxbtgs As Integer
  2050.     Dim Bbbwh() As String, Bbbwhzzxs() As Integer, Bbbwhgs As Integer
  2051.     Bbxbtgs = 1                                          '报 表 小 标 题 行 数
  2052.     Bbbwhgs = 0                                          '报 表 表 尾 行 数
  2053.     ReDim Bbxbt(1 To Bbxbtgs)
  2054.     ReDim bbxbtzzxs(1 To Bbxbtgs)
  2055.     If Bbbwhgs <> 0 Then
  2056.         ReDim Bbbwh(1 To Bbbwhgs)
  2057.         ReDim Bbbwhzzxs(1 To Bbbwhgs)
  2058.     End If
  2059.     Bbzbt = ReportTitle
  2060.     Bbxbt(1) = " "
  2061.     bbxbtzzxs(1) = 0                                     '报表行组织形式(0-居左 1-居中 2-居右)
  2062.     Call Scyxsjb(CzxsGrid)                               '生成报表数据
  2063.     Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
  2064.     If Not bbylte Then
  2065.         Unload DY_Tybbyldy
  2066.     End If
  2067. End Sub
  2068. '************以下为文本框录入处理程序(固定不变部分)*************'
  2069. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  2070.     
  2071.     '以下为依据实际情况自定义部分[
  2072.     
  2073.     '在此填写文本框录入事后处理程序
  2074.     SendKeys "vbtab"
  2075.     ']以上为依据实际情况自定义部分
  2076. End Sub
  2077. Private Sub LrText_Change(Index As Integer)
  2078.     
  2079.     '屏蔽程序改变控制
  2080.     If TextChangeLock Then
  2081.         Exit Sub
  2082.     End If
  2083.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  2084.     '限制字段录入长度
  2085.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  2086.     Select Case Textint(Index, 1)  '文本框索引值
  2087.     Case 8           '金额型
  2088.         Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  2089.     Case 9           '数量型
  2090.         Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  2091.     Case 10          '单价型
  2092.         Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  2093.     Case Else        '其他小数类型控制
  2094.         If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then  '字段小数位个数、整数位个数。
  2095.             Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  2096.         End If
  2097.     End Select
  2098.     TextChangeLock = False '解锁
  2099. End Sub
  2100. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  2101.     Call TextShow(Index)
  2102.     CurTextIndex = Index
  2103.     LrText(Index).SelStart = Len(LrText(Index))
  2104. End Sub
  2105. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  2106.     Select Case KeyCode
  2107.     Case vbKeyF2
  2108.         Call Text_Help(Index)
  2109.     End Select
  2110. End Sub
  2111. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  2112.     Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  2113. End Sub
  2114. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点进行有效性判断及相应处理
  2115.     If Textint(Index, 9) = 0 Or Textint(Index, 9) = 1 Then '事中判断
  2116.         Call TextYxxpd(Index)
  2117.     End If
  2118. End Sub
  2119. Private Sub Ydcommand1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)     '按钮提供帮助
  2120.     Call Text_Help(Index)
  2121. End Sub
  2122. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  2123.     If Not Textboolean(Index, 1) Then
  2124.         Exit Sub
  2125.     End If
  2126.     TextValiJudgeLock(Index) = True   '按帮助按纽时,不进行有效性判断
  2127.     
  2128.     '先进行有效性判断
  2129.     If Not TextYxxpd(CurTextIndex) Then
  2130.         Exit Sub
  2131.     End If
  2132.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))  '帮助类型,帮助编码(HelpCode),文本框录入内容
  2133.     If Len(Xtfhcs) <> 0 Then
  2134.         If Textint(Index, 3) = 1 Then   '如果返回显示名称
  2135.             LrText(Index).Text = Xtfhcsfz
  2136.             LrText(Index).Tag = Xtfhcs
  2137.         Else                            '如果返回显示编码
  2138.             LrText(Index).Text = Xtfhcs
  2139.             LrText(Index).Tag = Xtfhcsfz
  2140.         End If
  2141.     End If
  2142.     TextValiJudgeLock(Index) = False
  2143.     LrText(Index).SetFocus
  2144. End Sub
  2145. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  2146.     
  2147.     '填写文本框得到焦点,进行相应信息处理程序
  2148.     '可以填写帮助按纽显示并调整位置。
  2149. End Sub
  2150. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断,数据的正确性
  2151.     '可以补充自定义限制
  2152.     If TextValiJudgeLock(Index) Then    '=True文本框内容不需进行有效性判断时,退出
  2153.         TextYxxpd = True
  2154.         Exit Function
  2155.     End If
  2156.     If Trim(LrText(Index)) = "" Then
  2157.         LrText(Index).Tag = ""
  2158.         Call Wbklrwbcl(Index)
  2159.         TextValiJudgeLock(Index) = True  '文本框内容不需进行有效性判断时,退出
  2160.         TextYxxpd = True
  2161.         Exit Function
  2162.     End If
  2163.     Select Case Textint(Index, 4)
  2164.     Case 1      '编码型
  2165.         Sqlstr = Trim(Textstr(Index, 5)) '有效性判断依据有内容时
  2166.         Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  2167.         Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  2168.         If RecTemp.EOF Then
  2169.             Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  2170.             LrText(Index).SetFocus
  2171.             Exit Function
  2172.         Else
  2173.             Select Case Textint(Index, 3) '显示编码还是显示名称
  2174.             Case 0 '显示编码
  2175.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  2176.                     LrText(Index).Text = Trim(RecTemp.Fields(Trim(Textstr(Index, 2))))
  2177.                 End If
  2178.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  2179.                     LrText(Index).Tag = Trim(RecTemp.Fields(Trim(Textstr(Index, 3))))
  2180.                 End If
  2181.             Case 1 '显示名称
  2182.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  2183.                     LrText(Index).Text = Trim(RecTemp.Fields(Trim(Textstr(Index, 3))))
  2184.                 End If
  2185.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  2186.                     LrText(Index).Tag = Trim(RecTemp.Fields(Trim(Textstr(Index, 2))))
  2187.                 End If
  2188.             End Select
  2189.         End If
  2190.     Case 2      '日期型
  2191.         If IsDate(LrText(Index).Text) Then
  2192.             LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  2193.         Else
  2194.             Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  2195.             Call Xtxxts(Tsxx, 0, 1)
  2196.             LrText(Index).SetFocus
  2197.             Exit Function
  2198.         End If
  2199.     Case 3      '其他类型
  2200.     End Select
  2201.     TextValiJudgeLock(Index) = True
  2202.     TextYxxpd = True
  2203. End Function