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

企业管理

开发平台:

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