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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{D76D7128-4A96-11D3-BD95-D296DC2DD072}#1.0#0"; "VSOCX7.OCX"
  3. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx"
  4. Begin VB.Form Rep_DIYSalary_Frm 
  5.    BackColor       =   &H8000000A&
  6.    Caption         =   "自定义报表"
  7.    ClientHeight    =   8595
  8.    ClientLeft      =   315
  9.    ClientTop       =   390
  10.    ClientWidth     =   11820
  11.    HelpContextID   =   5001
  12.    Icon            =   "报表_自定义报表.frx":0000
  13.    KeyPreview      =   -1  'True
  14.    LinkTopic       =   "Form1"
  15.    MDIChild        =   -1  'True
  16.    ScaleHeight     =   8595
  17.    ScaleWidth      =   11820
  18.    WindowState     =   2  'Maximized
  19.    Begin MSComctlLib.ProgressBar PB_Proc 
  20.       Height          =   330
  21.       Left            =   3795
  22.       TabIndex        =   5
  23.       Top             =   3735
  24.       Visible         =   0   'False
  25.       Width           =   4440
  26.       _ExtentX        =   7832
  27.       _ExtentY        =   582
  28.       _Version        =   393216
  29.       Appearance      =   1
  30.       Scrolling       =   1
  31.    End
  32.    Begin VB.PictureBox Pic_Title 
  33.       BackColor       =   &H00FFFFFF&
  34.       Height          =   1065
  35.       Left            =   -75
  36.       Picture         =   "报表_自定义报表.frx":1042
  37.       ScaleHeight     =   1005
  38.       ScaleWidth      =   11790
  39.       TabIndex        =   3
  40.       Top             =   585
  41.       Width           =   11850
  42.       Begin VB.Label Lab_Period 
  43.          AutoSize        =   -1  'True
  44.          BackStyle       =   0  'Transparent
  45.          Caption         =   "会计期间:"
  46.          Height          =   180
  47.          Left            =   1095
  48.          TabIndex        =   6
  49.          Top             =   735
  50.          Width           =   810
  51.       End
  52.       Begin VB.Label Lab_Title 
  53.          AutoSize        =   -1  'True
  54.          BackColor       =   &H80000018&
  55.          BackStyle       =   0  'Transparent
  56.          Caption         =   "自定义报表"
  57.          BeginProperty Font 
  58.             Name            =   "宋体"
  59.             Size            =   12
  60.             Charset         =   134
  61.             Weight          =   700
  62.             Underline       =   0   'False
  63.             Italic          =   0   'False
  64.             Strikethrough   =   0   'False
  65.          EndProperty
  66.          ForeColor       =   &H00000000&
  67.          Height          =   240
  68.          Left            =   510
  69.          TabIndex        =   4
  70.          Top             =   240
  71.          Width           =   1275
  72.       End
  73.    End
  74.    Begin MSComctlLib.Toolbar GsToolbar 
  75.       Height          =   540
  76.       Left            =   10095
  77.       TabIndex        =   1
  78.       Top             =   30
  79.       Width           =   1725
  80.       _ExtentX        =   3043
  81.       _ExtentY        =   953
  82.       ButtonWidth     =   1455
  83.       ButtonHeight    =   953
  84.       Appearance      =   1
  85.       Style           =   1
  86.       ImageList       =   "ImageList1"
  87.       _Version        =   393216
  88.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  89.          NumButtons      =   3
  90.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  91.             Caption         =   "保存格式"
  92.             Key             =   "bcgs"
  93.             ImageKey        =   "bcgs"
  94.          EndProperty
  95.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  96.             Object.Visible         =   0   'False
  97.             Caption         =   "默认列宽"
  98.             Key             =   "hfmrgs"
  99.             ImageKey        =   "mrlk"
  100.          EndProperty
  101.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  102.             Caption         =   "显示项目"
  103.             Key             =   "szxsxm"
  104.             ImageKey        =   "xsxm"
  105.          EndProperty
  106.       EndProperty
  107.    End
  108.    Begin VB.Timer Timer1 
  109.       Enabled         =   0   'False
  110.       Interval        =   1
  111.       Left            =   7620
  112.       Top             =   90
  113.    End
  114.    Begin VSFlex8Ctl.VSFlexGrid CxbbGrid 
  115.       Height          =   7350
  116.       Left            =   60
  117.       TabIndex        =   0
  118.       Top             =   1710
  119.       Width           =   11775
  120.       _ExtentX        =   20770
  121.       _ExtentY        =   12965
  122.       Appearance      =   1
  123.       BorderStyle     =   1
  124.       Enabled         =   -1  'True
  125.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  126.          Name            =   "宋体"
  127.          Size            =   9
  128.          Charset         =   134
  129.          Weight          =   400
  130.          Underline       =   0   'False
  131.          Italic          =   0   'False
  132.          Strikethrough   =   0   'False
  133.       EndProperty
  134.       MousePointer    =   0
  135.       BackColor       =   16777215
  136.       ForeColor       =   -2147483640
  137.       BackColorFixed  =   13826538
  138.       ForeColorFixed  =   -2147483630
  139.       BackColorSel    =   -2147483635
  140.       ForeColorSel    =   -2147483634
  141.       BackColorBkg    =   -2147483636
  142.       BackColorAlternate=   16777215
  143.       GridColor       =   -2147483633
  144.       GridColorFixed  =   -2147483632
  145.       TreeColor       =   -2147483632
  146.       FloodColor      =   192
  147.       SheetBorder     =   -2147483642
  148.       FocusRect       =   1
  149.       HighLight       =   1
  150.       AllowSelection  =   -1  'True
  151.       AllowBigSelection=   -1  'True
  152.       AllowUserResizing=   0
  153.       SelectionMode   =   0
  154.       GridLines       =   1
  155.       GridLinesFixed  =   2
  156.       GridLineWidth   =   1
  157.       Rows            =   50
  158.       Cols            =   10
  159.       FixedRows       =   1
  160.       FixedCols       =   1
  161.       RowHeightMin    =   0
  162.       RowHeightMax    =   0
  163.       ColWidthMin     =   0
  164.       ColWidthMax     =   0
  165.       ExtendLastCol   =   0   'False
  166.       FormatString    =   ""
  167.       ScrollTrack     =   0   'False
  168.       ScrollBars      =   3
  169.       ScrollTips      =   0   'False
  170.       MergeCells      =   0
  171.       MergeCompare    =   0
  172.       AutoResize      =   -1  'True
  173.       AutoSizeMode    =   0
  174.       AutoSearch      =   0
  175.       MultiTotals     =   -1  'True
  176.       SubtotalPosition=   1
  177.       OutlineBar      =   0
  178.       OutlineCol      =   0
  179.       Ellipsis        =   0
  180.       ExplorerBar     =   0
  181.       PicturesOver    =   0   'False
  182.       FillStyle       =   0
  183.       RightToLeft     =   0   'False
  184.       PictureType     =   0
  185.       TabBehavior     =   0
  186.       OwnerDraw       =   0
  187.       Editable        =   0   'False
  188.       ShowComboButton =   -1  'True
  189.       WordWrap        =   0   'False
  190.       TextStyle       =   0
  191.       TextStyleFixed  =   0
  192.       OleDragMode     =   0
  193.       OleDropMode     =   0
  194.       DataMode        =   0
  195.       VirtualData     =   -1  'True
  196.    End
  197.    Begin MSComctlLib.Toolbar SzToolbar 
  198.       Align           =   1  'Align Top
  199.       Height          =   570
  200.       Left            =   0
  201.       TabIndex        =   2
  202.       Top             =   0
  203.       Width           =   11820
  204.       _ExtentX        =   20849
  205.       _ExtentY        =   1005
  206.       ButtonWidth     =   820
  207.       ButtonHeight    =   953
  208.       AllowCustomize  =   0   'False
  209.       Appearance      =   1
  210.       Style           =   1
  211.       ImageList       =   "ImageList1"
  212.       _Version        =   393216
  213.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  214.          NumButtons      =   13
  215.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  216.             Caption         =   "设置"
  217.             Key             =   "ymsz"
  218.             Object.ToolTipText     =   "设置打印参数"
  219.             ImageKey        =   "sz"
  220.          EndProperty
  221.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  222.             Caption         =   "打印"
  223.             Key             =   "dy"
  224.             Object.ToolTipText     =   "打印当前数据"
  225.             ImageKey        =   "dy"
  226.          EndProperty
  227.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  228.             Caption         =   "预览"
  229.             Key             =   "yl"
  230.             Object.ToolTipText     =   "显示当前数据的打印模式"
  231.             ImageKey        =   "yl"
  232.          EndProperty
  233.          BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  234.             Style           =   3
  235.          EndProperty
  236.          BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  237.             Caption         =   "查询"
  238.             Key             =   "cx"
  239.             Object.ToolTipText     =   "以某种条件取得数据"
  240.             ImageKey        =   "cx"
  241.          EndProperty
  242.          BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  243.             Caption         =   "定位"
  244.             Key             =   "Locate"
  245.             Object.ToolTipText     =   "根据工号或姓名定位人员"
  246.             ImageKey        =   "Locate"
  247.          EndProperty
  248.          BeginProperty Button7 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  249.             Caption         =   "刷新"
  250.             Key             =   "Refresh"
  251.             Object.ToolTipText     =   "以当前条件重新取得数据"
  252.             ImageKey        =   "sx"
  253.          EndProperty
  254.          BeginProperty Button8 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  255.             Style           =   3
  256.          EndProperty
  257.          BeginProperty Button9 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  258.             Caption         =   "明细"
  259.             Key             =   "Detail"
  260.             Object.ToolTipText     =   "显示每个人员的信息"
  261.             ImageKey        =   "Detail"
  262.             Style           =   1
  263.             Value           =   1
  264.          EndProperty
  265.          BeginProperty Button10 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  266.             Caption         =   "合计"
  267.             Key             =   "Total"
  268.             Object.ToolTipText     =   "显示合计信息"
  269.             ImageKey        =   "Total"
  270.             Style           =   1
  271.             Value           =   1
  272.          EndProperty
  273.          BeginProperty Button11 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  274.             Style           =   3
  275.          EndProperty
  276.          BeginProperty Button12 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  277.             Caption         =   "帮助"
  278.             Key             =   "bz"
  279.             Object.ToolTipText     =   "显示帮助信息"
  280.             ImageKey        =   "bz"
  281.          EndProperty
  282.          BeginProperty Button13 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  283.             Caption         =   "退出"
  284.             Key             =   "fh"
  285.             Object.ToolTipText     =   "退出本报表"
  286.             ImageKey        =   "tc"
  287.          EndProperty
  288.       EndProperty
  289.       BorderStyle     =   1
  290.       Begin MSComctlLib.ImageList ImageList1 
  291.          Left            =   5280
  292.          Top             =   0
  293.          _ExtentX        =   1005
  294.          _ExtentY        =   1005
  295.          BackColor       =   -2147483643
  296.          ImageWidth      =   16
  297.          ImageHeight     =   16
  298.          MaskColor       =   12632256
  299.          _Version        =   393216
  300.          BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  301.             NumListImages   =   35
  302.             BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  303.                Picture         =   "报表_自定义报表.frx":35106
  304.                Key             =   "sz"
  305.             EndProperty
  306.             BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  307.                Picture         =   "报表_自定义报表.frx":354A0
  308.                Key             =   "dy"
  309.             EndProperty
  310.             BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  311.                Picture         =   "报表_自定义报表.frx":3583A
  312.                Key             =   "yl"
  313.             EndProperty
  314.             BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  315.                Picture         =   "报表_自定义报表.frx":35BD4
  316.                Key             =   "xg"
  317.             EndProperty
  318.             BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  319.                Picture         =   "报表_自定义报表.frx":35F6E
  320.                Key             =   "zh"
  321.             EndProperty
  322.             BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  323.                Picture         =   "报表_自定义报表.frx":36308
  324.                Key             =   "sh"
  325.             EndProperty
  326.             BeginProperty ListImage7 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  327.                Picture         =   "报表_自定义报表.frx":366A2
  328.                Key             =   "bc"
  329.             EndProperty
  330.             BeginProperty ListImage8 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  331.                Picture         =   "报表_自定义报表.frx":36A3C
  332.                Key             =   "fq"
  333.             EndProperty
  334.             BeginProperty ListImage9 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  335.                Picture         =   "报表_自定义报表.frx":36DD6
  336.                Key             =   "bz"
  337.             EndProperty
  338.             BeginProperty ListImage10 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  339.                Picture         =   "报表_自定义报表.frx":37170
  340.                Key             =   "tc"
  341.             EndProperty
  342.             BeginProperty ListImage11 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  343.                Picture         =   "报表_自定义报表.frx":3750A
  344.                Key             =   "bcgs"
  345.             EndProperty
  346.             BeginProperty ListImage12 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  347.                Picture         =   "报表_自定义报表.frx":378A4
  348.                Key             =   "mrlk"
  349.             EndProperty
  350.             BeginProperty ListImage13 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  351.                Picture         =   "报表_自定义报表.frx":37C3E
  352.                Key             =   "xsxm"
  353.             EndProperty
  354.             BeginProperty ListImage14 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  355.                Picture         =   "报表_自定义报表.frx":37FD8
  356.                Key             =   "first"
  357.             EndProperty
  358.             BeginProperty ListImage15 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  359.                Picture         =   "报表_自定义报表.frx":38372
  360.                Key             =   "prev"
  361.             EndProperty
  362.             BeginProperty ListImage16 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  363.                Picture         =   "报表_自定义报表.frx":3870C
  364.                Key             =   "next"
  365.             EndProperty
  366.             BeginProperty ListImage17 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  367.                Picture         =   "报表_自定义报表.frx":38AA6
  368.                Key             =   "last"
  369.             EndProperty
  370.             BeginProperty ListImage18 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  371.                Picture         =   "报表_自定义报表.frx":38E40
  372.                Key             =   "xx"
  373.             EndProperty
  374.             BeginProperty ListImage19 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  375.                Picture         =   "报表_自定义报表.frx":391DA
  376.                Key             =   "define"
  377.             EndProperty
  378.             BeginProperty ListImage20 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  379.                Picture         =   "报表_自定义报表.frx":39574
  380.                Key             =   "exec"
  381.             EndProperty
  382.             BeginProperty ListImage21 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  383.                Picture         =   "报表_自定义报表.frx":3990E
  384.                Key             =   "xz"
  385.             EndProperty
  386.             BeginProperty ListImage22 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  387.                Picture         =   "报表_自定义报表.frx":39CA8
  388.                Key             =   "sc"
  389.             EndProperty
  390.             BeginProperty ListImage23 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  391.                Picture         =   "报表_自定义报表.frx":3A042
  392.                Key             =   "sx"
  393.             EndProperty
  394.             BeginProperty ListImage24 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  395.                Picture         =   "报表_自定义报表.frx":3A3DC
  396.                Key             =   "cx"
  397.             EndProperty
  398.             BeginProperty ListImage25 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  399.                Picture         =   "报表_自定义报表.frx":3A776
  400.                Key             =   "zd"
  401.             EndProperty
  402.             BeginProperty ListImage26 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  403.                Picture         =   "报表_自定义报表.frx":3AB10
  404.                Key             =   "dz"
  405.             EndProperty
  406.             BeginProperty ListImage27 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  407.                Picture         =   "报表_自定义报表.frx":3AEAA
  408.                Key             =   "ph"
  409.             EndProperty
  410.             BeginProperty ListImage28 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  411.                Picture         =   "报表_自定义报表.frx":3B244
  412.                Key             =   "fz"
  413.             EndProperty
  414.             BeginProperty ListImage29 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  415.                Picture         =   "报表_自定义报表.frx":3B5DE
  416.                Key             =   "Locate"
  417.             EndProperty
  418.             BeginProperty ListImage30 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  419.                Picture         =   "报表_自定义报表.frx":3B978
  420.                Key             =   "hf"
  421.             EndProperty
  422.             BeginProperty ListImage31 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  423.                Picture         =   "报表_自定义报表.frx":3BD12
  424.                Key             =   "pz"
  425.             EndProperty
  426.             BeginProperty ListImage32 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  427.                Picture         =   "报表_自定义报表.frx":3C0AC
  428.                Key             =   "check"
  429.             EndProperty
  430.             BeginProperty ListImage33 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  431.                Picture         =   "报表_自定义报表.frx":3C446
  432.                Key             =   "Sum"
  433.             EndProperty
  434.             BeginProperty ListImage34 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  435.                Picture         =   "报表_自定义报表.frx":3C7E0
  436.                Key             =   "Total"
  437.             EndProperty
  438.             BeginProperty ListImage35 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  439.                Picture         =   "报表_自定义报表.frx":3CB7A
  440.                Key             =   "Detail"
  441.             EndProperty
  442.          EndProperty
  443.       End
  444.    End
  445. End
  446. Attribute VB_Name = "Rep_DIYSalary_Frm"
  447. Attribute VB_GlobalNameSpace = False
  448. Attribute VB_Creatable = False
  449. Attribute VB_PredeclaredId = True
  450. Attribute VB_Exposed = False
  451. '**************************************************************************
  452. '*    模 块 名 称 :自定义报表
  453. '*    功 能 描 述 :
  454. '*    程序员姓名  :苗鹏
  455. '*    最后修改人  :苗鹏
  456. '*    最后修改时间:2002/01/01
  457. '*    备        注:
  458. '**************************************************************************
  459. Dim ReportTitle As String                '报表主标题
  460. Public sSqlWhere As String
  461. Public sSqlFrom As String
  462. Public sPTableName As String
  463. Public sRCode As String
  464. Public sPmSort As String
  465. Public sGroupField As String
  466. Public iDeptBeginLevel As Integer
  467. Public iDeptEndLevel As Integer
  468. Dim sFieldValue() As New CFieldValue
  469. Dim iSumEndCol As Integer
  470. Dim iBeginCol As Integer
  471. Dim sData() As String
  472. '以下为固定使用变量
  473. Dim Dyymctbl As New DY_Dyymsz            '打印页面窗体变量
  474. Dim GridCode As String                   '显示网格网格代码
  475. Dim GridInf() As Variant                 '整个网格设置信息
  476. Dim Tsxx As String                       '系统提示信息
  477. Dim Qslz As Long                         '网格隐藏(非操作显示)列数
  478. Dim Sjhgd As Double                      '网格数据行高度
  479. Dim Sfxshjwg As Boolean                  '是否显示合计网格
  480. Dim GridBoolean() As Boolean             '网格列信息(布尔型)
  481. Dim GridStr()  As String                 '网格列信息(字符型)
  482. Dim GridInt() As Integer                 '网格列信息(整型)
  483. Dim Szzls As Integer                     '数组总列数(网格列数-1)
  484. Private Sub CxbbGrid_AfterMoveColumn(ByVal Col As Long, Position As Long)
  485.     On Error Resume Next
  486.     Dim i As Integer
  487.     With Me.CxbbGrid
  488.         ReDim sFieldValue(.Cols - 1)
  489.         For i = 0 To .Cols - 1
  490.             sFieldValue(i).FieldName = Trim(.TextMatrix(1, i))
  491.         Next i
  492.     End With
  493. End Sub
  494. Private Sub Form_Resize()                '根据窗体大小来调整网格,标题栏大小(Fixed)
  495.     On Error Resume Next
  496.     With CxbbGrid
  497.         .Width = Me.Width - 160
  498.         .Height = Me.Height - .Top - 400
  499.     End With
  500.     With Pic_Title
  501.         .Width = Me.Width - 160
  502.     End With
  503.     
  504.     GsToolbar.Left = Me.Width - GsToolbar.Width - 140
  505.     With Me.PB_Proc
  506.         .Left = (Me.Width - .Width) / 2
  507.         .Top = Me.Height / 2
  508.     End With
  509.     
  510. End Sub
  511. Private Sub Form_Load()                                                   '窗体装入
  512.     On Error GoTo ErrCtrl
  513.     '调入打印页面设置窗体
  514.     Dim rs As New ADODB.Recordset
  515.     Dim s As String
  516.     s = "SELECT * FROM PM_ReportSort WHERE RCode='" & Me.sRCode & "'"
  517.     Set rs = Cw_DataEnvi.DataConnect.Execute(s)
  518.     With rs
  519.         If Not .EOF() Then
  520.             ReportTitle = Trim(!RTitle & "")
  521.             XtReportCode = Trim(!RPrintParama & "")
  522.         End If
  523.     End With
  524.     Load Dyymctbl
  525.     Me.Caption = ReportTitle
  526.     Me.Lab_Title = ReportTitle
  527.     '调整标题栏及网格、格式工具条位置(Fixed)
  528.     Pic_Title.Left = 40
  529.     Pic_Title.Top = SzToolbar.Top + SzToolbar.Height - 10
  530.     CxbbGrid.Left = Pic_Title.Left
  531.     CxbbGrid.Top = Pic_Title.Top + Pic_Title.Height + 20
  532.     
  533.     '调 入 网 格(Fixed)
  534.     GridCode = "Pm_RepSalary"
  535.     Call BzWgcsh(CxbbGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  536.     Me.CxbbGrid.RowHidden(0) = True
  537.     Me.CxbbGrid.RowHidden(1) = True
  538.     Me.CxbbGrid.RowHidden(2) = True
  539.     Qslz = GridInf(1)
  540.     Sjhgd = GridInf(2)
  541.     Sfxshjwg = GridInf(7)
  542.     Szzls = CxbbGrid.Cols - 1
  543.     iBeginCol = Val(GridInf(1))
  544.     Exit Sub
  545. ErrCtrl:
  546.     MsgBox "初始化错误!", vbOKOnly + vbCritical
  547.     Set Dyymctbl = Nothing
  548.     Unload Me
  549. End Sub
  550. Private Sub Form_Unload(Cancel As Integer)                                  '窗体卸载
  551.     '卸载打印页面设置窗体
  552.     Dim gnsy As String
  553.     Unload Dyymctbl
  554.     Set Dyymctbl = Nothing
  555.     Select Case sRCode
  556.         Case "001"
  557.             gnsy = "Pm_SalarySignal"
  558.         Case "002"
  559.             gnsy = "Pm_RepSalaryPay"
  560.         Case "003"
  561.             gnsy = "Pm_RepSalarySum"
  562.     End Select
  563.     Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  564. End Sub
  565. Private Function SaveGridFormat() As Boolean '保存网格格式
  566.     On Error GoTo ErrCtrl
  567.     
  568.     Dim i As Integer
  569.     Dim s As String
  570.     Dim sTable As String
  571.     Dim sField As String
  572.     Dim bBeginTrans As Boolean
  573.     
  574.     '循环读取列名并拼成Sql语句
  575.     With Me.CxbbGrid
  576.         For i = IIf(iSumEndCol = -1, 0, iSumEndCol) To .Cols - 1
  577.             If GetTableField(Trim(.TextMatrix(1, i)), sTable, sField, ".") = 1 Then
  578.                 s = s & " UPDATE PM_ReportItem SET FieldOrder=" & i - iSumEndCol & " ,FieldWidth=" & .ColWidth(i) & " ,FieldIsShow=" & IIf(.ColHidden(i), 0, 1) _
  579.                     & " WHERE TableName='" & sTable & "' AND FieldName='" & sField & "' AND RCode='" & Me.sRCode & "' AND PmSort='" & Me.sPmSort & "' " & Chr(10)
  580.             End If
  581.         Next i
  582.         If Trim(s) <> "" Then
  583.             Cw_DataEnvi.DataConnect.BeginTrans
  584.                 bBeginTrans = True
  585.                 Cw_DataEnvi.DataConnect.Execute (s)
  586.             Cw_DataEnvi.DataConnect.CommitTrans
  587.             bBeginTrans = False
  588.             SaveGridFormat = True
  589.             MsgBox "格式保存成功!", vnokonly + vbInformation
  590.         End If
  591.     End With
  592.     Exit Function
  593.     
  594. ErrCtrl:
  595.     If bBeginTrans = True Then
  596.         Cw_DataEnvi.DataConnect.RollbackTrans
  597.     End If
  598.     MsgBox "保存格式失败!", vbOKOnly + vbCritical
  599. End Function
  600. Private Sub CxbbGrid_BeforeMoveColumn(ByVal Col As Long, Position As Long)           '网格列发生移动时自动交换网格索引信息
  601.     '分组汇总列不允许移动
  602.     If Col <= iSumEndCol Then
  603.         Position = Col
  604.         Exit Sub
  605.     End If
  606.     '不允许列超过分组汇总列
  607.     If Position <= iSumEndCol Then
  608.         Position = iSumEndCol + 1
  609.         Exit Sub
  610.     End If
  611.     
  612. End Sub
  613. Private Sub GsToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)                '网格格式调整(Fixed)
  614.     
  615.     Select Case Button.Key
  616.     Case "bcgs"                                          '保存表格格式
  617.         SaveGridFormat
  618.     Case "hfmrgs"                                        '恢复默认格式
  619.         Call Hfmrgs(CxbbGrid, GridCode, GridStr())
  620.     Case "szxsxm"                                        '设置显示项目
  621.         Dim frm As New Salary_ShowItem_Frm
  622.         Set frm.vs = Me.CxbbGrid
  623.         frm.iBeginCol = iSumEndCol + 1
  624.         frm.Show 1
  625.         Set frm = Nothing
  626.     End Select
  627.     
  628. End Sub
  629. Private Sub SzToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
  630.     On Error Resume Next
  631.     
  632.     Dim frm As Form
  633.     
  634.     Select Case Button.Key
  635.     Case "ymsz"                                          '页面设置
  636.         Dyymctbl.Show 1
  637.     Case "yl"                                            '预 览
  638.         PrintGrid Me.CxbbGrid, iBeginCol, iSumEndCol, Me.sRCode, Dyymctbl, Me.Lab_Period.Caption, False
  639.     Case "dy"                                            '打 印
  640.         PrintGrid Me.CxbbGrid, iBeginCol, iSumEndCol, Me.sRCode, Dyymctbl, Me.Lab_Period.Caption, True
  641.     Case "cx"                                            '查 询
  642.         Select Case UCase(Me.sPTableName)
  643.             Case UCase("PM_AttendRecord")
  644.                 Set frm = New Query_RepAttend_Frm
  645.             Case UCase("PM_PayRoll")
  646.                 Set frm = New Query_RepSalary_Frm
  647.         End Select
  648.         With frm
  649.             .sPTableName = Me.sPTableName
  650.             Set .frmParent = Me
  651.             .sRCode = Me.sRCode
  652.             .Show 1
  653.         End With
  654.         
  655.     Case "Locate"       '定位
  656.         Set frm = New Locate_Frm
  657.         With frm
  658.             Set .frm = Me
  659.             .Show 1
  660.         End With
  661.     Case "Refresh"      '刷新数据
  662.         ShowRecord sSqlWhere, sSqlFrom
  663.     Case "Detail"       '明细
  664.         Call InitDetail
  665.     Case "Total"        '汇总
  666.         Call InitTotal
  667.     Case "bz"                                            '帮 助
  668.         Call F1bz
  669.     Case "fh"                                            '退 出
  670.         Unload Me
  671.     End Select
  672.     
  673.     Set frm = Nothing
  674. End Sub
  675. Public Function Locate(sPerson As String) As Integer '根据工号或姓名定位人员,成功返回1,没有找到返回0,错误返回-1
  676.     On Error GoTo ErrCtrl
  677.     
  678.     Dim i As Long, j As Long
  679.     Dim iCol(1) As Integer
  680.     Dim bFound As Boolean
  681.     
  682.     sPerson = UCase(Trim(sPerson))
  683.     With Me.CxbbGrid
  684.         If .Rows = .FixedRows Then
  685.             Exit Function
  686.         End If
  687.         
  688.         If GetCol(sFieldValue, iCol(0), iCol(1), Val(GridInf(1))) <> 1 Then
  689.             MsgBox "无法找到工号和姓名列,定位失败!", vbOKOnly + vbCritical
  690.             GoTo ErrCtrl
  691.         End If
  692.         bFound = False
  693.         For j = 0 To 1
  694.             If iCol(j) >= 0 And bFound = False Then
  695.                  '从当前行的下一行找到末尾
  696.                 For i = .Row + 1 To .Rows - 1
  697.                     If UCase(Trim(.TextMatrix(i, iCol(j)))) = sPerson Then
  698.                         bFound = True
  699.                         .Row = i
  700.                         .TopRow = i
  701.                         Exit For
  702.                     End If
  703.                 Next i
  704.                 '如果没有找到,从数据开始行找到当前行
  705.                 If bFound = False Then
  706.                     For i = .FixedRows To .Row
  707.                         If UCase(Trim(.TextMatrix(i, iCol(j)))) = sPerson Then
  708.                             bFound = True
  709.                             .Row = i
  710.                             .TopRow = i
  711.                             Exit For
  712.                         End If
  713.                     Next i
  714.                 End If
  715.             End If
  716.         Next j
  717.         
  718.         If bFound = False Then
  719.             Locate = 0
  720.         Else
  721.             Locate = 1
  722.         End If
  723.         
  724.     End With
  725.     Exit Function
  726. ErrCtrl:
  727.     Locate = -1
  728. End Function
  729. Private Sub InitDetail() '显示或隐藏明细列
  730.     On Error Resume Next
  731.     
  732.     Dim i As Integer
  733.     Dim j As Integer
  734.     Dim s As String
  735.     
  736.     '显示和隐藏非 小计和合计 列
  737.     With Me.CxbbGrid
  738.         .Redraw = False
  739.         For j = Qslz To IIf(iSumEndCol = -1, 0, iSumEndCol)
  740.             If Me.SzToolbar.Buttons("Detail").Value = tbrUnpressed Then
  741.                 For i = .FixedRows To .Rows - 2
  742.                     If Len(Trim(.TextMatrix(i, j))) >= 3 Then
  743.                         s = Right(Trim(.TextMatrix(i, j)), 3)
  744.                     Else
  745.                         s = .TextMatrix(i, j)
  746.                     End If
  747.                     If s <> "小计:" And s <> "合计:" Then
  748.                         .RowHidden(i) = True
  749.                     End If
  750.                 Next i
  751.             Else
  752.                 For i = .FixedRows To .Rows - 2
  753.                     If Len(Trim(.TextMatrix(i, j))) >= 3 Then
  754.                         s = Right(Trim(.TextMatrix(i, j)), 3)
  755.                     Else
  756.                         s = .TextMatrix(i, j)
  757.                     End If
  758.                     If s <> "小计:" And s <> "合计:" Then
  759.                         .RowHidden(i) = False
  760.                     End If
  761.                 Next i
  762.             End If
  763.         Next j
  764.         .Redraw = True
  765.     End With
  766. End Sub
  767. Private Sub InitTotal() '显示或隐藏合计列
  768.     On Error Resume Next
  769.     
  770.     Dim i As Integer
  771.     Dim j As Integer
  772.     Dim s As String
  773.     
  774.     '显示和隐藏小计和合计列
  775.     With Me.CxbbGrid
  776.         .Redraw = False
  777.         For j = Qslz To IIf(iSumEndCol = -1, 0, iSumEndCol)
  778.             If .FixedRows = .Rows Then Exit Sub
  779.             If Me.SzToolbar.Buttons("Total").Value = tbrUnpressed Then
  780.                 For i = .FixedRows To .Rows - 1
  781.                     If Len(Trim(.TextMatrix(i, j))) >= 3 Then
  782.                         s = Right(Trim(.TextMatrix(i, j)), 3)
  783.                     Else
  784.                         s = ""
  785.                     End If
  786.                     If s = "小计:" Or s = "合计:" Then
  787.                         .RowHidden(i) = True
  788.                     End If
  789.                 Next i
  790.             Else
  791.                 For i = .FixedRows To .Rows - 1
  792.                     If Len(Trim(.TextMatrix(i, j))) >= 3 Then
  793.                         s = Right(Trim(.TextMatrix(i, j)), 3)
  794.                     Else
  795.                         s = ""
  796.                     End If
  797.                     If s = "小计:" Or s = "合计:" Then
  798.                         .RowHidden(i) = False
  799.                     End If
  800.               Next i
  801.             End If
  802.         Next j
  803.         .Redraw = True
  804.     End With
  805. End Sub
  806. Public Function ShowRecord(sWhere As String, sFrom As String)                                    '生成查询结果(Define)
  807.     On Error GoTo ErrCtrl
  808.     
  809.     Dim rs As New ADODB.Recordset
  810.     Dim s As String
  811.     Dim sTable As String
  812.     Dim sField As String
  813.     Dim sSql As String
  814.     Dim i As Long
  815.     
  816.     
  817.     If Trim(sWhere) = "" Or Trim(sFrom) = "" Then
  818.         GoTo ErrCtrl
  819.     End If
  820.     Me.MousePointer = 11
  821.     sExec = " SELECT 1 "
  822.     
  823.     ReDim sFieldValue(0)
  824.     sFieldValue(0).FieldName = ""
  825.     If Trim(Me.sGroupField) = "" Then '没有分组字段
  826.         s = "SELECT rtrim(a.TableName) AS TableName " & Chr(10) _
  827.             & ",rtrim(a.FieldName) AS FieldName " & Chr(10) _
  828.             & ",rtrim(a.FieldWidth) AS FieldWidth " & Chr(10) _
  829.             & ",rtrim(b.FieldLength) AS FieldLength " & Chr(10) _
  830.             & ",rtrim(b.FieldDotL) AS FieldDotL " & Chr(10) _
  831.             & ",rtrim(a.FieldIsShow) AS FieldIsShow " & Chr(10) _
  832.             & ",rtrim(b.FieldType) AS FieldType " & Chr(10) _
  833.             & ",rtrim(b.ChName) AS FieldNameC " & Chr(10) _
  834.             & ",rtrim(b.CorTable) AS CorTable " & Chr(10) _
  835.             & ",rtrim(b.IndexCode) AS IndexCode " & Chr(10) _
  836.             & ",rtrim(b.IndexName) AS IndexName " & Chr(10) _
  837.             & "FROM PM_ReportItem a INNER JOIN Rs_Items b ON a.FieldName =b.FieldName " & Chr(10) _
  838.             & "WHERE a.RCode='" & Me.sRCode & "' AND a.PmSort='" & Me.sPmSort & "' " & Chr(10) _
  839.             & "ORDER BY a.FieldOrder "
  840.             iSumEndCol = Qslz - 1
  841.     Else    '有分组字段
  842.         If GetTableField(Me.sGroupField, sTable, sField, ".") <> 1 Then
  843.             MsgBox "分组汇总项目错误!", vbOKOnly + vbCritical
  844.             Exit Function
  845.         End If
  846.         If UCase(sField) = UCase("DeptCode") Then '如果分组字段是部门,要进行分级
  847.             s = "SELECT max(CodeLevel) AS MaxLevel FROM Gy_Department WHERE RsPmFlag=1"
  848.             Set rs = Cw_DataEnvi.DataConnect.Execute(s)
  849.             If Not rs.EOF() Then
  850.                 For i = rs.Fields("MaxLevel") To Me.iDeptBeginLevel Step -1
  851.                     sExec = sExec & ",DeptLevel" & i & "=(SELECT b.DeptName FROM GY_Department b " _
  852.                         & " WHERE " & Me.sGroupField & " like  rtrim(b.deptcode)+'%' AND b.CodeLevel= " & i & ")" & Chr(10)
  853.                 Next i
  854.                 
  855.                 iSumEndCol = Qslz + (Me.iDeptEndLevel - Me.iDeptBeginLevel)
  856.                 rs.Close
  857.                 s = "SELECT FieldWidth FROM PM_ReportItem WHERE FieldName='" & sField & "' AND TableName='" & sTable & "' AND RCode='" & sRCode & "'AND PmSort='" & Me.sPmSort & "' " & Chr(10)
  858.                 Set rs = Cw_DataEnvi.DataConnect.Execute(s)
  859.                 If Not rs.EOF() Then
  860.                     For i = Me.iDeptBeginLevel To Me.iDeptEndLevel
  861.                         If sFieldValue(0).FieldName <> "" Then
  862.                             ReDim Preserve sFieldValue(UBound(sFieldValue) + 1)
  863.                         End If
  864.                         sFieldValue(UBound(sFieldValue)).FieldName = Me.sGroupField
  865.                         sFieldValue(UBound(sFieldValue)).FieldNameC = i & "级部门"
  866.                         sFieldValue(UBound(sFieldValue)).FieldValueName = "DeptLevel" & i
  867.                         sFieldValue(UBound(sFieldValue)).FieldType = DATA_STRING
  868.                         sFieldValue(UBound(sFieldValue)).FieldWidth = rs!FieldWidth
  869.                         sFieldValue(UBound(sFieldValue)).FieldIsShow = 1
  870.                     Next i
  871.                 End If
  872.                 rs.Close
  873.                 Set rs = Nothing
  874.             Else
  875.                 MsgBox "不存在部门!", vbOKOnly + vbCritical
  876.                 Exit Function
  877.             End If
  878.             
  879.         Else '其他分组字段
  880.             s = "SELECT rtrim(a.TableName) AS TableName " & Chr(10) _
  881.                 & ",rtrim(a.FieldName) AS FieldName " & Chr(10) _
  882.                 & ",rtrim(a.FieldWidth) AS FieldWidth " & Chr(10) _
  883.                 & ",rtrim(a.FieldIsShow) AS FieldIsShow " & Chr(10) _
  884.                 & ",rtrim(b.ChName) AS FieldNameC " & Chr(10) _
  885.                 & ",rtrim(b.FieldType) AS FieldType " & Chr(10) _
  886.                 & ",rtrim(b.FieldLength) AS FieldLength " & Chr(10) _
  887.                 & ",rtrim(b.FieldDotL) AS FieldDotL " & Chr(10) _
  888.                 & ",rtrim(b.CorTable) AS CorTable " & Chr(10) _
  889.                 & ",rtrim(b.IndexCode) AS IndexCode " & Chr(10) _
  890.                 & ",rtrim(b.IndexName) AS IndexName " & Chr(10) _
  891.                 & "FROM PM_ReportItem a INNER JOIN Rs_Items b ON a.FieldName =b.FieldName " & Chr(10) _
  892.                 & "WHERE a.RCode='" & Me.sRCode & "' AND rtrim(a.TableName)+'.'+rtrim(a.FieldName)='" & Me.sGroupField & "' AND a.PmSort='" & Me.sPmSort & "' " & Chr(10) _
  893.                 & "ORDER BY a.FieldOrder "
  894.             Set rs = Cw_DataEnvi.DataConnect.Execute(s)
  895.             With rs
  896.                 sFieldValue(UBound(sFieldValue)).FieldName = Me.sGroupField
  897.                 sFieldValue(UBound(sFieldValue)).FieldType = !FieldType
  898.                 sFieldValue(UBound(sFieldValue)).FieldNameC = Trim(!FieldNameC & "")
  899.                 sFieldValue(UBound(sFieldValue)).FieldWidth = !FieldWidth
  900.                 sFieldValue(UBound(sFieldValue)).FieldIsShow = !FieldIsShow
  901.                 sFieldValue(UBound(sFieldValue)).FieldLengthInt = !FieldLength - !FieldDotL
  902.                 sFieldValue(UBound(sFieldValue)).FieldLengthFra = !FieldDotL
  903.                 If Trim(!CorTable & "") <> "" Then
  904.                     sFieldValue(UBound(sFieldValue)).FieldValueName = Replace(Me.sGroupField, ".", "#") & "#N"
  905.                     sExec = sExec & ", " & sFieldValue(UBound(sFieldValue)).FieldValueName & " =" _
  906.                  & "(SELECT " & Trim(!IndexName) & " FROM " & Trim(!CorTable) & " a WHERE a." & Trim(!IndexCode) & "=" & Trim(!TableName) & "." & Trim(!FieldName) & ")" & Chr(10)
  907.                 Else
  908.                     sFieldValue(UBound(sFieldValue)).FieldValueName = Replace(Me.sGroupField, ".", "#")
  909.                     sExec = sExec & ", " & sFieldValue(UBound(sFieldValue)).FieldName & " AS " & sFieldValue(UBound(sFieldValue)).FieldValueName & Chr(10)
  910.                 End If
  911.             End With
  912.             rs.Close
  913.             iSumEndCol = Qslz
  914.         End If
  915.         s = "SELECT rtrim(a.TableName) AS TableName " & Chr(10) _
  916.             & ",rtrim(a.FieldName) AS FieldName " & Chr(10) _
  917.             & ",rtrim(a.FieldWidth) AS FieldWidth " & Chr(10) _
  918.             & ",rtrim(a.FieldIsShow) AS FieldIsShow " & Chr(10) _
  919.             & ",rtrim(b.FieldType) AS FieldType " & Chr(10) _
  920.             & ",rtrim(b.FieldLength) AS FieldLength " & Chr(10) _
  921.             & ",rtrim(b.FieldDotL) AS FieldDotL " & Chr(10) _
  922.             & ",rtrim(b.ChName) AS FieldNameC " & Chr(10) _
  923.             & ",rtrim(b.CorTable) AS CorTable " & Chr(10) _
  924.             & ",rtrim(b.IndexCode) AS IndexCode " & Chr(10) _
  925.             & ",rtrim(b.IndexName) AS IndexName " & Chr(10) _
  926.             & "FROM PM_ReportItem a INNER JOIN Rs_Items b ON a.FieldName =b.FieldName " & Chr(10) _
  927.             & "WHERE a.RCode='" & Me.sRCode & "' AND rtrim(a.TableName)+'.'+rtrim(a.FieldName)<>'" & Me.sGroupField & "' AND a.PmSort='" & Me.sPmSort & "' " & Chr(10) _
  928.             & "ORDER BY a.FieldOrder "
  929.     End If
  930.     '填充报表的其他字段信息
  931.     Set rs = Cw_DataEnvi.DataConnect.Execute(s)
  932.     With rs
  933.         Do While Not .EOF()
  934.             If sFieldValue(0).FieldName <> "" Then
  935.                 ReDim Preserve sFieldValue(UBound(sFieldValue) + 1)
  936.             End If
  937.             sFieldValue(UBound(sFieldValue)).FieldNameC = Trim(!FieldNameC)
  938.             sFieldValue(UBound(sFieldValue)).FieldType = Trim(!FieldType)
  939.             sFieldValue(UBound(sFieldValue)).FieldName = Trim(!TableName) & "." & Trim(!FieldName)
  940.             sFieldValue(UBound(sFieldValue)).FieldWidth = !FieldWidth
  941.             sFieldValue(UBound(sFieldValue)).FieldIsShow = !FieldIsShow
  942.             sFieldValue(UBound(sFieldValue)).FieldLengthInt = !FieldLength - !FieldDotL
  943.             sFieldValue(UBound(sFieldValue)).FieldLengthFra = !FieldDotL
  944.             If Trim(!CorTable) <> "" Then
  945.                 sFieldValue(UBound(sFieldValue)).FieldValueName = Trim(!TableName) & "#" & Trim(!FieldName) & "#N"
  946.                 sExec = sExec & ", " & sFieldValue(UBound(sFieldValue)).FieldValueName & " =" _
  947.                  & "(SELECT " & Trim(!IndexName) & " FROM " & Trim(!CorTable) & " a WHERE a." & Trim(!IndexCode) & "=" & Trim(!TableName) & "." & Trim(!FieldName) & ")" & Chr(10)
  948.             Else
  949.                 sFieldValue(UBound(sFieldValue)).FieldValueName = Trim(!TableName) & "#" & Trim(!FieldName)
  950.                 sExec = sExec & ", " & sFieldValue(UBound(sFieldValue)).FieldName & " AS " & sFieldValue(UBound(sFieldValue)).FieldValueName
  951.             End If
  952.             
  953.             .MoveNext
  954.         Loop
  955.         .Close
  956.     End With
  957.    
  958.     With Me.CxbbGrid
  959.         '初始化网格
  960.         .Redraw = False
  961.         .Cols = UBound(sFieldValue) + 1 + Qslz
  962.         .Rows = .FixedRows
  963.         For i = Qslz To .Cols - 1
  964.             .TextMatrix(0, i) = sFieldValue(i - Qslz).FieldType
  965.             .TextMatrix(1, i) = sFieldValue(i - Qslz).FieldName
  966.             .TextMatrix(2, i) = sFieldValue(i - Qslz).FieldValueName
  967.             .TextMatrix(3, i) = sFieldValue(i - Qslz).FieldNameC
  968.             .ColWidth(i) = sFieldValue(i - Qslz).FieldWidth
  969.             .ColHidden(i) = IIf(sFieldValue(i - Qslz).FieldIsShow, False, True)
  970.             Select Case Val(.TextMatrix(0, i))
  971.                 Case DATA_NUMERIC
  972.                     .ColAlignment(i) = flexAlignRightCenter
  973.                     .ColFormat(i) = IIf(sFieldValue(i - Qslz).FieldLengthFra = 0, "#,##0", "#,##0." & String(sFieldValue(i - Qslz).FieldLengthFra, "0"))
  974.                 Case DATA_DATE
  975.                     .ColAlignment(i) = flexAlignRightCenter
  976.                     .ColFormat(i) = "yyyy-mm-dd"
  977.                 Case Else
  978.                     .ColAlignment(i) = flexAlignLeftCenter
  979.                     .ColFormat(i) = ""
  980.             End Select
  981.             .FixedAlignment(i) = flexAlignCenterCenter
  982.             .MergeCol(i) = False
  983.         Next i
  984.         
  985.         For i = 0 To Qslz
  986.             .ColFormat(i) = ""
  987.         Next i
  988.         .MergeCells = flexMergeFree
  989.         For i = 0 To iSumEndCol
  990.             .MergeCol(i) = True
  991.         Next i
  992.         '可执行Sql语句
  993.          If Trim(Me.sGroupField) <> "" Then
  994.             If Len(Me.sGroupField) > 5 Then
  995.                 If UCase(Mid(Me.sGroupField, Len(Me.sGroupField) - 4, 5)) = UCase("EmpNo") Then
  996.                     sExec = sExec & Me.sSqlFrom & Me.sSqlWhere & " ORDER BY " & Me.sGroupField
  997.                 Else
  998.                     sExec = sExec & Me.sSqlFrom & Me.sSqlWhere & " ORDER BY " & Me.sGroupField & ",PM_PayRoll.EmpNo "
  999.                 End If
  1000.             Else
  1001.                 sExec = sExec & Me.sSqlFrom & Me.sSqlWhere & " ORDER BY " & Me.sGroupField & ",PM_PayRoll.EmpNo "
  1002.             End If
  1003.         Else
  1004.             sExec = sExec & Me.sSqlFrom & Me.sSqlWhere & " ORDER BY PM_PayRoll.DeptCode,PM_PayRoll.EmpNo "
  1005.         End If
  1006.         Set rs = Cw_DataEnvi.DataConnect.Execute(sExec)
  1007.         .Rows = .FixedRows + rs.RecordCount
  1008.         '初始化进度条
  1009.         Me.PB_Proc.Min = .FixedRows
  1010.         Me.PB_Proc.Max = .Rows + 1
  1011.         Me.PB_Proc.Value = Me.PB_Proc.Min
  1012.         Me.PB_Proc.Visible = True
  1013.         '填充数据
  1014.         For i = .FixedRows To .Rows - 1
  1015.             .RowHeight(i) = Sjhgd
  1016.             Me.PB_Proc.Value = i
  1017.             For j = Qslz To .Cols - 1
  1018.                 
  1019.                 If .TextMatrix(0, j) = DATA_NUMERIC Then
  1020.                     .TextMatrix(i, j) = Val(Trim(rs.Fields(Trim(.TextMatrix(2, j))) & ""))
  1021.                     If Val(.TextMatrix(i, j)) = 0 Then
  1022.                         .TextMatrix(i, j) = ""
  1023.                     End If
  1024.                 Else
  1025.                     .TextMatrix(i, j) = Trim(rs.Fields(Trim(.TextMatrix(2, j))) & "")
  1026.                 End If
  1027.             Next j
  1028.             rs.MoveNext
  1029.         Next i
  1030.         rs.Close
  1031.         
  1032.         Me.PB_Proc.Visible = False
  1033.         
  1034.         '计算合计
  1035.         .SubtotalPosition = flexSTBelow
  1036.         For i = Qslz To iSumEndCol
  1037.             For j = iSumEndCol + 1 To .Cols - 1
  1038.                 If .TextMatrix(0, j) = DATA_NUMERIC Then
  1039.                     .Subtotal flexSTSum, i, j, , &HF7F3EC, , , "小计:"
  1040.                 End If
  1041.             Next j
  1042.         Next i
  1043.         For j = iSumEndCol + 1 To .Cols - 1
  1044.             If .TextMatrix(0, j) = DATA_NUMERIC Then
  1045.                 .Subtotal flexSTSum, -1, j, , &HF7F3EC, , , "合计:"
  1046.             End If
  1047.         Next j
  1048.         '填充合计信息
  1049.         If iSumEndCol < .Cols Then
  1050.             For i = .FixedRows To .Rows - 1
  1051.                 For j = iBeginCol To iSumEndCol
  1052.                     If .TextMatrix(i, j) = "小计:" Then
  1053.                         If i > 1 Then .TextMatrix(i, j) = .TextMatrix(i - 1, j) & .TextMatrix(i, j)
  1054.                     End If
  1055.                 Next j
  1056.             Next i
  1057.         End If
  1058.         If Me.sRCode = "001" Then '工资签名表
  1059.             .Cols = .Cols + 1
  1060.             .ColWidth(.Cols - 1) = 1000
  1061.             .TextMatrix(.FixedRows - 1, .Cols - 1) = "签名"
  1062.         End If
  1063.         .Redraw = True
  1064.     End With
  1065.     Set rs = Nothing
  1066.     Me.MousePointer = 0
  1067.     Exit Function
  1068.     
  1069. ErrCtrl:
  1070.     If rs.State = 1 Then
  1071.         rs.Close
  1072.     End If
  1073.     Set rs = Nothing
  1074.     Me.PB_Proc.Visible = False
  1075.     Me.CxbbGrid.Redraw = True
  1076.     Me.MousePointer = 0
  1077.     
  1078. End Function
  1079. Private Sub bbyl(bbylte As Boolean)                    '报表打印预览
  1080.     
  1081.     Dim Bbzbt$, Bbxbt() As String, bbxbtzzxs() As Integer, Bbxbtgs As Integer
  1082.     Dim Bbbwh() As String, Bbbwhzzxs() As Integer, Bbbwhgs As Integer
  1083.     Bbxbtgs = 1                                         '报 表 小 标 题 行 数
  1084.     Bbbwhgs = 0                                          '报 表 表 尾 行 数
  1085.     ReDim Bbxbt(1 To Bbxbtgs)
  1086.     ReDim bbxbtzzxs(1 To Bbxbtgs)
  1087.     If Bbbwhgs <> 0 Then
  1088.         ReDim Bbbwh(1 To Bbbwhgs)
  1089.         ReDim Bbbwhzzxs(1 To Bbbwhgs)
  1090.     End If
  1091.     Bbzbt = ReportTitle
  1092.     
  1093.     bbxbtzzxs(1) = 0                                     '报表行组织形式(0-居左 1-居中 2-居右)
  1094.     Call Scyxsjb(CxbbGrid)                               '生成报表数据
  1095.     Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
  1096.     If Not bbylte Then
  1097.         Unload DY_Tybbyldy
  1098.     End If
  1099.     
  1100. End Sub