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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{BEEECC20-4D5F-4F8B-BFDC-5D9B6FBDE09D}#1.0#0"; "vsflex8.ocx"
  3. Begin VB.Form XT_TybmczFrm 
  4.    BorderStyle     =   3  'Fixed Dialog
  5.    Caption         =   "通用编码参照表"
  6.    ClientHeight    =   6000
  7.    ClientLeft      =   2205
  8.    ClientTop       =   1545
  9.    ClientWidth     =   6435
  10.    Icon            =   "系统_通用编码参照.frx":0000
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    ScaleHeight     =   6000
  15.    ScaleWidth      =   6435
  16.    ShowInTaskbar   =   0   'False
  17.    Begin VB.CheckBox Chk_Blur 
  18.       Caption         =   "模糊定位"
  19.       Height          =   255
  20.       Left            =   5340
  21.       TabIndex        =   8
  22.       Top             =   180
  23.       Width           =   1035
  24.    End
  25.    Begin VB.Timer Timer1 
  26.       Interval        =   1
  27.       Left            =   120
  28.       Top             =   90
  29.    End
  30.    Begin VSFlex8Ctl.VSFlexGrid CzxsGrid 
  31.       Height          =   4905
  32.       Left            =   60
  33.       TabIndex        =   0
  34.       Top             =   540
  35.       Width           =   6315
  36.       _cx             =   5080
  37.       _cy             =   5080
  38.       Appearance      =   1
  39.       BorderStyle     =   1
  40.       Enabled         =   -1  'True
  41.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  42.          Name            =   "宋体"
  43.          Size            =   9
  44.          Charset         =   134
  45.          Weight          =   400
  46.          Underline       =   0   'False
  47.          Italic          =   0   'False
  48.          Strikethrough   =   0   'False
  49.       EndProperty
  50.       MousePointer    =   0
  51.       BackColor       =   -2147483643
  52.       ForeColor       =   -2147483640
  53.       BackColorFixed  =   -2147483633
  54.       ForeColorFixed  =   -2147483630
  55.       BackColorSel    =   -2147483635
  56.       ForeColorSel    =   -2147483634
  57.       BackColorBkg    =   -2147483636
  58.       BackColorAlternate=   -2147483643
  59.       GridColor       =   -2147483633
  60.       GridColorFixed  =   -2147483632
  61.       TreeColor       =   -2147483632
  62.       FloodColor      =   192
  63.       SheetBorder     =   -2147483642
  64.       FocusRect       =   0
  65.       HighLight       =   1
  66.       AllowSelection  =   -1  'True
  67.       AllowBigSelection=   -1  'True
  68.       AllowUserResizing=   0
  69.       SelectionMode   =   0
  70.       GridLines       =   1
  71.       GridLinesFixed  =   2
  72.       GridLineWidth   =   1
  73.       Rows            =   2
  74.       Cols            =   2
  75.       FixedRows       =   1
  76.       FixedCols       =   1
  77.       RowHeightMin    =   0
  78.       RowHeightMax    =   0
  79.       ColWidthMin     =   0
  80.       ColWidthMax     =   0
  81.       ExtendLastCol   =   0   'False
  82.       FormatString    =   ""
  83.       ScrollTrack     =   0   'False
  84.       ScrollBars      =   3
  85.       ScrollTips      =   0   'False
  86.       MergeCells      =   0
  87.       MergeCompare    =   0
  88.       AutoResize      =   -1  'True
  89.       AutoSizeMode    =   0
  90.       AutoSearch      =   0
  91.       AutoSearchDelay =   2
  92.       MultiTotals     =   -1  'True
  93.       SubtotalPosition=   1
  94.       OutlineBar      =   0
  95.       OutlineCol      =   0
  96.       Ellipsis        =   0
  97.       ExplorerBar     =   0
  98.       PicturesOver    =   0   'False
  99.       FillStyle       =   0
  100.       RightToLeft     =   0   'False
  101.       PictureType     =   0
  102.       TabBehavior     =   0
  103.       OwnerDraw       =   0
  104.       Editable        =   0
  105.       ShowComboButton =   1
  106.       WordWrap        =   0   'False
  107.       TextStyle       =   0
  108.       TextStyleFixed  =   0
  109.       OleDragMode     =   0
  110.       OleDropMode     =   0
  111.       DataMode        =   0
  112.       VirtualData     =   -1  'True
  113.       DataMember      =   ""
  114.       ComboSearch     =   3
  115.       AutoSizeMouse   =   -1  'True
  116.       FrozenRows      =   0
  117.       FrozenCols      =   0
  118.       AllowUserFreezing=   0
  119.       BackColorFrozen =   0
  120.       ForeColorFrozen =   0
  121.       WallPaperAlignment=   9
  122.       AccessibleName  =   ""
  123.       AccessibleDescription=   ""
  124.       AccessibleValue =   ""
  125.       AccessibleRole  =   24
  126.    End
  127.    Begin VB.CommandButton Gridsz 
  128.       Caption         =   "恢复默认格式"
  129.       Height          =   300
  130.       Index           =   1
  131.       Left            =   1410
  132.       TabIndex        =   7
  133.       Top             =   5580
  134.       Width           =   1335
  135.    End
  136.    Begin VB.CommandButton Gridsz 
  137.       Caption         =   "保存表格格式"
  138.       Height          =   300
  139.       Index           =   0
  140.       Left            =   30
  141.       TabIndex        =   6
  142.       Top             =   5580
  143.       Width           =   1335
  144.    End
  145.    Begin VB.TextBox CodeText 
  146.       Height          =   300
  147.       Left            =   1080
  148.       TabIndex        =   1
  149.       Top             =   150
  150.       Width           =   4035
  151.    End
  152.    Begin VB.CommandButton Bjcommand 
  153.       Caption         =   "编辑(&E)"
  154.       Height          =   300
  155.       Left            =   5250
  156.       TabIndex        =   4
  157.       Top             =   5580
  158.       Width           =   1120
  159.    End
  160.    Begin VB.CommandButton QxCommand 
  161.       Cancel          =   -1  'True
  162.       Caption         =   "取消(&C)"
  163.       Height          =   300
  164.       Left            =   4110
  165.       TabIndex        =   3
  166.       Top             =   5580
  167.       Width           =   1120
  168.    End
  169.    Begin VB.CommandButton QdCommand 
  170.       Caption         =   "确定(&O)"
  171.       Default         =   -1  'True
  172.       Height          =   300
  173.       Left            =   2970
  174.       TabIndex        =   2
  175.       Top             =   5580
  176.       Width           =   1120
  177.    End
  178.    Begin VB.Label Label1 
  179.       AutoSize        =   -1  'True
  180.       BackColor       =   &H00C0C0C0&
  181.       BackStyle       =   0  'Transparent
  182.       Caption         =   "编码或名称:"
  183.       Height          =   180
  184.       Index           =   0
  185.       Left            =   90
  186.       TabIndex        =   5
  187.       Top             =   210
  188.       Width           =   990
  189.    End
  190. End
  191. Attribute VB_Name = "XT_TybmczFrm"
  192. Attribute VB_GlobalNameSpace = False
  193. Attribute VB_Creatable = False
  194. Attribute VB_PredeclaredId = True
  195. Attribute VB_Exposed = False
  196. '******************************************************************
  197. '*    模 块 名 称 :打印基本模块
  198. '*    功 能 描 述 :
  199. '*    程序员姓名  : 张建忠
  200. '*    最后修改人  : 张建忠
  201. '*    最后修改时间: 2001/11/13
  202. '*    备        注:
  203. '*    Xtcdcs 用来传递用户输入内容; xtbmczdm 用来传递所选编码参照
  204. '*    xtfhcs 用来返回用户所选编码; xtfhcsfz 用来返回用户所选名称;
  205. '******************************************************************
  206. Dim Cznr As String                       '网格首次进入查找内容
  207. Dim Bmzdsyh As String                    '编码字段索引号
  208. Dim Mczdsyh As String                    '名称字段索引号
  209. Dim Sqlstr As String                     '查询语句
  210. Dim Bmczdmte As String                   '所选编码参照代码
  211. 'add by mp
  212. Public sParamater As String
  213. Public sParamater2 As String
  214. 'finish
  215. '以下为固定使用变量
  216. Dim Cxnrrec As New ADODB.Recordset       '显示查询内容动态集
  217. Dim GridCode As String                   '显示网格网格代码
  218. Dim GridInf() As Variant                 '整个网格设置信息
  219. Dim Tsxx As String                       '系统提示信息
  220. Dim Qslz As Long                         '网格隐藏(非操作显示)列数
  221. Dim Sjhgd As Double                      '网格数据行高度
  222. Dim GridBoolean() As Boolean             '网格列信息(布尔型)
  223. Dim GridStr()  As String                 '网格列信息(字符型)
  224. Dim GridInt() As Integer                 '网格列信息(整型)
  225. Dim Szzls As Integer                     '数组总列数(网格列数-1)
  226. Private Sub CodeText_Change()            '用户可模糊定位编码或名称信息
  227.   
  228.     Dim DwRow As Long
  229.     Dim Lng_BmCol As Long
  230.     Dim Lng_McCol As Long
  231.     
  232.     On Error Resume Next
  233.     Lng_BmCol = Sydz(Bmzdsyh, GridStr(), Szzls)
  234.     Lng_McCol = Sydz(Mczdsyh, GridStr(), Szzls)
  235.     Cznr = Trim(CodeText.Text)
  236.     With CzxsGrid
  237.   
  238.         '按编码定位(按前几位精确匹配定位)
  239.         For DwRow = .FixedRows To .Rows - 1
  240.             If Mid(.TextMatrix(DwRow, Lng_BmCol), 1, Len(Cznr)) = Cznr Then
  241.                 .Row = DwRow
  242.                 .Col = Lng_BmCol
  243.                 CzxsGrid.SetFocus
  244.                 SendKeys "{LEFT}", True
  245.                 CodeText.SetFocus
  246.                 .TopRow = DwRow
  247.                 Exit Sub
  248.             End If
  249.         Next DwRow
  250.         
  251.         '按名称定位(支持按前几位精确匹配定位和模糊匹配定位两种)
  252.         For DwRow = .FixedRows To .Rows - 1
  253.             If Chk_Blur.Value = 0 Then
  254.                 If Mid(.TextMatrix(DwRow, Lng_McCol), 1, Len(Cznr)) = Cznr Then
  255.                     .Row = DwRow
  256.                     .Col = Lng_BmCol
  257.                     CzxsGrid.SetFocus
  258.                     SendKeys "{LEFT}", True
  259.                     CodeText.SetFocus
  260.                     .TopRow = DwRow
  261.                     Exit Sub
  262.                 End If
  263.             Else
  264.                 If InStr(1, .TextMatrix(DwRow, Lng_McCol), Cznr) <> 0 Then
  265.                     .Row = DwRow
  266.                     .Col = Lng_BmCol
  267.                     CzxsGrid.SetFocus
  268.                     SendKeys "{LEFT}", True
  269.                     CodeText.SetFocus
  270.                     .TopRow = DwRow
  271.                     Exit Sub
  272.                 End If
  273.             End If
  274.         Next DwRow
  275.         
  276.         '按拼音码定位(支持按前几位精确匹配定位和模糊匹配定位两种)
  277.         For DwRow = .FixedRows To .Rows - 1
  278.             If Chk_Blur.Value = 0 Then
  279.                 If Mid(GetPY(.TextMatrix(DwRow, Lng_McCol)), 1, Len(Cznr)) = UCase(Cznr) Then
  280.                     .Row = DwRow
  281.                     .Col = Lng_BmCol
  282.                     CzxsGrid.SetFocus
  283.                     SendKeys "{LEFT}", True
  284.                     CodeText.SetFocus
  285.                     .TopRow = DwRow
  286.                     Exit Sub
  287.                 End If
  288.             Else
  289.                 If InStr(1, GetPY(.TextMatrix(DwRow, Lng_McCol)), UCase(Cznr)) <> 0 Then
  290.                     .Row = DwRow
  291.                     .Col = Lng_BmCol
  292.                     CzxsGrid.SetFocus
  293.                     SendKeys "{LEFT}", True
  294.                     CodeText.SetFocus
  295.                     .TopRow = DwRow
  296.                     Exit Sub
  297.                 End If
  298.             End If
  299.         Next DwRow
  300.     End With
  301. End Sub
  302. Private Sub CzxsGrid_GotFocus()
  303.     SendKeys "{LEFT}", True
  304. End Sub
  305. Private Sub Form_Load()
  306.   
  307.     On Error GoTo Cwcl
  308.   
  309.     '接收通用参照编码
  310.     Bmczdmte = Xtbmczdm
  311.     Xtbmczdm = ""
  312.     
  313.     '读入编码参照数据
  314.     Call Drbmczsx
  315.     
  316.     '调 入 网 格
  317.     Call Sub_ShowGrid(CzxsGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  318.     
  319.     Qslz = GridInf(1)
  320.     Sjhgd = GridInf(2)
  321.     Szzls = CzxsGrid.Cols - 1
  322.     Bmzd = GridStr(Sydz(Bmzdsyh, GridStr(), Szzls), 4)
  323.     Mczd = GridStr(Sydz(Mczdsyh, GridStr(), Szzls), 4)
  324.     
  325.     '填 充 网 格
  326.     
  327.     CzxsGrid.Redraw = False   '为了加快显示速度
  328.     Call bmtcwg
  329.     CzxsGrid.Redraw = True
  330.       
  331.     Exit Sub
  332.         
  333. Cwcl:
  334.       Tsxx = "此字段编码参照调入时出现错误!"
  335.       Call Xtxxts(Tsxx, 0, 4)
  336.       Unload Me
  337.       Exit Sub
  338.  
  339. End Sub
  340. Private Sub Timer1_Timer()
  341.    
  342.     Timer1.Enabled = False
  343.    
  344.     '填充定位文本框,同时定位
  345.     CodeText.Text = Trim(Xtcdcs)
  346.     
  347.     '首次让帮助网格得到焦点
  348.     CzxsGrid.SetFocus
  349. End Sub
  350. Private Sub bmtcwg()                                     '查询内容填充网格,并模糊定位用户录入信息
  351.     
  352.     Dim Coljsq As Long
  353.     Sqlstr = Replace(Sqlstr, "@", "'" & Trim(Xtcdcs) & "%'")
  354.     'add by mp
  355.     Sqlstr = Replace(Sqlstr, "#", "'" & Me.sParamater & "'")
  356.     Sqlstr = Replace(Sqlstr, "$", "'" & Me.sParamater2 & "'")
  357.     'finish
  358.     Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  359.     With Cxnrrec
  360.         If .EOF And .BOF Then
  361.             Exit Sub
  362.         Else
  363.             .MoveLast
  364.             CzxsGrid.Rows = CzxsGrid.FixedRows
  365.             CzxsGrid.Rows = .RecordCount + CzxsGrid.FixedRows
  366.             .MoveFirst
  367.         End If
  368.         jsqte = CzxsGrid.FixedRows
  369.         Do While Not .EOF
  370.             If jsqte >= CzxsGrid.Rows Then
  371.                 CzxsGrid.AddItem ""
  372.             End If
  373.             For Coljsq = Qslz To CzxsGrid.Cols - 1
  374.                 If GridBoolean(Coljsq, 6) Then
  375.                     If .Fields(GridStr(Coljsq, 4)) Then
  376.                         CzxsGrid.TextMatrix(jsqte, Sydz(GridStr(Coljsq, 1), GridStr(), Szzls)) = True
  377.                     End If
  378.                 Else
  379.                     CzxsGrid.TextMatrix(jsqte, Sydz(GridStr(Coljsq, 1), GridStr(), Szzls)) = Trim(.Fields(GridStr(Coljsq, 4)) & "")
  380.                 End If
  381.             Next Coljsq
  382.             CzxsGrid.RowHeight(jsqte) = Sjhgd
  383.             .MoveNext
  384.             jsqte = jsqte + 1
  385.         Loop
  386.     End With
  387. End Sub
  388. Private Sub CzxsGrid_click()                           '单击网格固定行某列按此列排序(字符型)
  389.     With CzxsGrid
  390.         If .MouseRow <= .FixedRows - 1 And .MouseCol >= 0 Then
  391.             .Col = .MouseCol
  392.             .Sort = flexSortStringAscending
  393.         End If
  394.     End With
  395. End Sub
  396. Private Sub CzxsGrid_DblClick()                        '用户双击网格返回当前选中编码
  397.     Call Fhxzbm
  398. End Sub
  399. Private Sub Form_Unload(Cancel As Integer)             '退出
  400.     Set Cxnrrec = Nothing
  401. End Sub
  402. Private Sub Gridsz_Click(Index As Integer)
  403.     
  404.     Select Case Index
  405.         Case 0                                   '保存表格格式
  406.             Call Bcwggs1(CzxsGrid, GridCode)
  407.         Case 1                                   '恢复默认格式
  408.             Call Hfmrgs1(CzxsGrid, GridCode)
  409.     End Select
  410. End Sub
  411. Private Sub QdCommand_Click()                          '确 定
  412.     Call Fhxzbm
  413. End Sub
  414. Private Sub QxCommand_Click()                          '取 消
  415.     
  416.     Xtfhcs = ""
  417.     Xtfhcsfz = ""
  418.     Unload Me
  419. End Sub
  420. Private Sub Bjcommand_Click()                          '调入编码编辑窗体
  421.     
  422.     Call Drbmbj(Bmczdmte)
  423.     Call bmtcwg
  424. End Sub
  425. Private Sub Fhxzbm()                                   '返回用户选中编码并退出
  426.   
  427.     With CzxsGrid
  428.         If .Row >= .FixedRows Then
  429.             Xtfhcs = Trim(.TextMatrix(.Row, Sydz(Bmzdsyh, GridStr(), Szzls)))
  430.             Xtfhcsfz = Trim(.TextMatrix(.Row, Sydz(Mczdsyh, GridStr(), Szzls)))
  431.         Else
  432.             Xtfhcs = ""
  433.             Xtfhcsfz = ""
  434.         End If
  435.     End With
  436.     Unload Me
  437. End Sub
  438. Private Sub Drbmczsx()                                 '读入编码参照表属性
  439.     
  440.     Dim Tyhelprec As New ADODB.Recordset                '帮助编码动态集
  441.     Sqlstr = "select * from xt_tyhelp where help_code='" + Bmczdmte + "'"
  442.     Set Tyhelprec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  443.     With Tyhelprec
  444.         If Not .EOF Then
  445.             GridCode = Trim(.Fields("grid_code"))
  446.             Sqlstr = Trim(.Fields("sql_string"))
  447.             Bmzdsyh = Trim(.Fields("code_field"))
  448.             Mczdsyh = Trim(.Fields("name_field"))
  449.             If .Fields("edit_enable") Then
  450.                 Bjcommand.Enabled = True
  451.             Else
  452.                 Bjcommand.Enabled = False
  453.             End If
  454.             Me.Caption = Trim(.Fields("help_name"))
  455.         End If
  456.     End With
  457. End Sub
  458. Private Sub Sub_ShowGrid(Xsgrid, Wgdmte As String, GridInf() As Variant, GridBoolean() As Boolean, GridInt() As Integer, GridStr() As String)           '标准网格初始化模块
  459.   
  460.     '过程参数为:生成网格对象名称(微软),网格参数编码,返回网格设置信息(返回整体信息)
  461.     '网格列属性(返回布尔型信息),网格列属性(返回整型信息),网格列属性(返回字符型信息)
  462.     
  463.     Dim wglbt() As String                      '网格显示列标题
  464.     Dim Wgxsls As Long                         '网格显示(主操作)列数
  465.     Dim gdls As Long                           '网格固定列数
  466.     Dim Gdhs As Long                           '网格固定行数(标题行数)
  467.     Dim Gdhgd As Double                        '网格固定行高度
  468.     Dim wglkd() As Double                      '每列默认字符个数
  469.     Dim wglzz() As Integer                     '网格列组织形式
  470.     Dim zdxsgs() As String                     '数值字段显示格式
  471.     Dim Sfhide() As Boolean                    '网格列是否隐藏
  472.     Dim Sfhxz As Boolean                       '网格列是否行选中
  473.     Dim Qslz As Long                           '网格隐藏(非操作显示)列数
  474.     Dim Sjhgd As Double                        '网格数据行高度
  475.     Dim Wglsfkydpx As Integer                  '网格列是否可移动及排序
  476.     Dim wgxsrec As New ADODB.Recordset         '网格显示动态集
  477.     
  478.     ReDim GridInf(1 To 7)                       '整个网格设置信息
  479.     Set wgxsrec = Cw_DataEnvi.DataConnect.Execute("SELECT * FROM xt_grid WHERE Grid_Code ='" + Wgdmte + "' ORDER BY ColId")
  480.     With wgxsrec
  481.         If .EOF And .BOF Then
  482.             Exit Sub
  483.         Else
  484.             .MoveFirst
  485.         End If
  486.      
  487.         Qslz = .Fields("BeginCol")                '网格隐藏(非操作显示)列数
  488.         Sjhgd = .Fields("DataRowHeight")          '网格数据行高度
  489.          
  490.         GridInf(1) = Qslz                         '起始列值
  491.         GridInf(2) = Sjhgd                        '数据行高度
  492.         GridInf(3) = .Fields("KeepDataRows")      '屏幕保持数据行数
  493.         GridInf(4) = .Fields("AssistantRows")     '辅助项网格行数(例如:合计行)
  494.         If .Fields("SaveHelpWidth_Flag") Then     '是否保留帮助宽度(字段提供帮助时,是否为按钮保留空间)
  495.             GridInf(5) = True
  496.         Else
  497.             GridInf(5) = False
  498.         End If
  499.         If .Fields("DeleteRowAsk_Flag") Then      '删除有效记录行是否提示
  500.             GridInf(6) = True
  501.         Else
  502.             GridInf(6) = False
  503.         End If
  504.         If .Fields("ShowSumGrid_Flag") Then       '是否显示合计网格
  505.             GridInf(7) = True
  506.         Else
  507.             GridInf(7) = False
  508.         End If
  509.            
  510.         Wgxsls = .RecordCount - 1                 '网格显示(主操作)列数(原.Fields("wgxsls"))
  511.         gdls = .Fields("FixCols")                 '网格固定列数
  512.         Gdhs = .Fields("FixRows")                 '网格固定行数(标题行数)
  513.         Gdhgd = .Fields("FixRowHeight")           '网格固定行高度
  514.         Wglsfkydpx = .Fields("explorerbar")       '网格列是否可移动及排序
  515.         
  516.         If .Fields("SelectRow_Flag") Then         '是否行选中
  517.             Sfhxz = True
  518.         End If
  519.         
  520.         ReDim wglbt(Gdhs - 1, Wgxsls + Qslz - 1)  '网格显示列标题
  521.         ReDim wglkd(Qslz + Wgxsls - 1)            '每列默认字符个数
  522.         ReDim zdxsgs(Qslz + Wgxsls - 1)           '数值字段标志
  523.         ReDim wglzz(Qslz + Wgxsls - 1)            '网格列组织形式
  524.         ReDim Sfhide(Qslz + Wgxsls - 1)           '网格列是否显示
  525.         ReDim GridBoolean(Qslz + Wgxsls - 1, 1 To 6)   '网格列属性(布尔型)
  526.         ReDim GridStr(Qslz + Wgxsls - 1, 1 To 20)      '网格列信息(字符型)
  527.         ReDim GridInt(Qslz + Wgxsls - 1, 1 To 7)       '网格列信息(整型)
  528.         
  529.         .MoveNext
  530.         jsqte = 0
  531.         Do While Not .EOF
  532.         
  533.             wglkd(Qslz + jsqte) = .Fields("ColWidth")                  '网格列宽度限制
  534.             If Not IsNull(.Fields("ColTitle1")) Then
  535.                 wglbt(0, Qslz + jsqte) = Trim(.Fields("ColTitle1"))    '网格列标题1
  536.             End If
  537.             If Not IsNull(.Fields("ColTitle2")) And Gdhs = 2 Then      '网格列标题2
  538.                 wglbt(1, Qslz + jsqte) = Trim(.Fields("ColTitle2"))
  539.             End If
  540.          
  541.             If .Fields("ColFormat") Then                               '字段显示格式(千分符)
  542.                 If .Fields("Text_Int_Length") <> 0 Then
  543.                     zdxsgs(Qslz + jsqte) = "#,##0." + String(.Fields("Text_deci_Length"), "0")
  544.                 Else
  545.                     zdxsgs(Qslz + jsqte) = "#,##0.00"
  546.                 End If
  547.                 Select Case .Fields("Text_Data_Type")
  548.                     Case 8, 11  '金额
  549.                         zdxsgs(Qslz + jsqte) = "#,##0." + String(Xtjexsws, "0")
  550.                     Case 9, 12  '数量
  551.                         zdxsgs(Qslz + jsqte) = "#,##0." + String(Xtslxsws, "0")
  552.                     Case 10     '单价
  553.                         zdxsgs(Qslz + jsqte) = "#,##0." + String(Xtdjxsws, "0")
  554.                 End Select
  555.             Else
  556.                 If .Fields("Text_Int_Length") <> 0 Then
  557.                     zdxsgs(Qslz + jsqte) = "##0." + String(.Fields("Text_deci_Length"), "0")
  558.                 End If
  559.             End If
  560.     
  561.             wglzz(Qslz + jsqte) = .Fields("ColAlignment")              '网格列组织形式
  562.             If .Fields("ColHidden") Then                               '网格列是否隐藏
  563.                 Sfhide(Qslz + jsqte) = True
  564.             End If
  565.             If .Fields("Edit_Flag") Then                               '网格列是否可编辑
  566.                 GridBoolean(Qslz + jsqte, 1) = True
  567.             End If
  568.             If .Fields("Help_Flag") Then                               '网格列是否提供帮助
  569.                 GridBoolean(Qslz + jsqte, 2) = True
  570.             End If
  571.             If .Fields("Combo_Flag") Then                              '网格列是否列表框录入
  572.                 GridBoolean(Qslz + jsqte, 3) = True
  573.             End If
  574.             If .Fields("ColSum_Flag") Then                             '网格列是否合计
  575.                 GridBoolean(Qslz + jsqte, 4) = True
  576.             End If
  577.             If .Fields("Zero_Empty_Flag") Then                         '网格内容为零是否清空
  578.                 GridBoolean(Qslz + jsqte, 5) = True
  579.             End If
  580.             If .Fields("BooleanFlag") Then                             '网格列是否为布尔型
  581.                 GridBoolean(Qslz + jsqte, 6) = True
  582.             End If
  583.         
  584.             If Not IsNull(.Fields("Text_Data_Type")) Then              '字段数据类型
  585.                 GridInt(Qslz + jsqte, 1) = .Fields("Text_Data_Type")
  586.             End If
  587.             If Not IsNull(.Fields("Text_Length")) Then                 '字段录入长度
  588.                 GridInt(Qslz + jsqte, 2) = .Fields("Text_Length")
  589.             End If
  590.             If Not IsNull(.Fields("Text_Int_Length")) Then             '字段整数位长度
  591.                 GridInt(Qslz + jsqte, 3) = .Fields("Text_Int_Length")
  592.             End If
  593.             If Not IsNull(.Fields("Text_Deci_Length")) Then            '字段小数位长度
  594.                 GridInt(Qslz + jsqte, 4) = .Fields("Text_Deci_Length")
  595.             End If
  596.             If Not IsNull(.Fields("NotAllowEmpty_Type")) Then          '字段不允许为空或为零
  597.                 GridInt(Qslz + jsqte, 5) = .Fields("NotAllowEmpty_Type")
  598.             End If
  599.             If Not IsNull(.Fields("Help_Type")) Then                   '帮助类型
  600.                 GridInt(Qslz + jsqte, 6) = .Fields("Help_Type")
  601.             End If
  602.             If Not IsNull(.Fields("HelpReturnValue")) Then             '帮助返回值(0-显示返回编码 1-显示返回名称)
  603.                 GridInt(Qslz + jsqte, 7) = .Fields("HelpReturnValue")
  604.             End If
  605.         
  606.             GridStr(Qslz + jsqte, 1) = Trim(.Fields("ColIndex") & "")    '网格列索引值
  607.         
  608.             GridStr(Qslz + jsqte, 2) = Trim(.Fields("EmptyMessage") & "") '字段为空提示信息
  609.         
  610.             GridStr(Qslz + jsqte, 3) = Trim(.Fields("Help_Code") & "")    '通用帮助编码
  611.         
  612.             GridStr(Qslz + jsqte, 4) = Trim(.Fields("FieldsName") & "")   '连接字段(通用帮助)
  613.         
  614.             GridStr(Qslz + jsqte, 5) = Trim(.Fields("Combo_Code") & "")   '列表框编码
  615.            
  616.             .MoveNext
  617.             jsqte = jsqte + 1
  618.         Loop
  619.     End With
  620.    
  621.     '网格列组织形式
  622.    
  623.     With Xsgrid
  624.         .BackColorFixed = &H8000000F                                     '固定行背景色 ('&H80000018)
  625.         .FixedRows = Gdhs                                                '固定行数
  626.         .Rows = Gdhs
  627.         .FixedCols = gdls                                                '固定列数
  628.         .Cols = Qslz + Wgxsls
  629.         .AllowUserResizing = flexResizeBoth
  630.         .SelectionMode = flexSelectionByRow
  631.         .WordWrap = True
  632.         
  633.         '填 充 网 格 标 题
  634.         For Rowjsq = 0 To .FixedRows - 1
  635.             .MergeRow(Rowjsq) = True
  636.             .RowHeight(Rowjsq) = Gdhgd
  637.             For Coljsq = Qslzte To .Cols - 1
  638.                 .TextMatrix(Rowjsq, Coljsq) = wglbt(Rowjsq, Coljsq)
  639.             Next Coljsq
  640.         Next Rowjsq
  641.         
  642.         '数 据 网 格 高 度
  643.         For Rowjsq = .FixedRows To .Rows - 1
  644.             .RowHeight(Rowjsq) = Sjhgd
  645.         Next Rowjsq
  646.      
  647.         '定 义 录 入 字 段 属 性
  648.         For Coljsq = 0 To .Cols - 1
  649.             .ColWidth(Coljsq) = wglkd(Coljsq)
  650.             .ColAlignment(Coljsq) = wglzz(Coljsq)
  651.             .FixedAlignment(Coljsq) = 4
  652.             If GridBoolean(Coljsq, 6) Then
  653.                 .ColDataType(Coljsq) = flexDTBoolean
  654.             End If
  655.         Next Coljsq
  656.     End With
  657. End Sub
  658. Private Sub Bcwggs1(Bcgsgrid, Wggsdm As String)             '保存网格格式(包括网格列宽,网格列顺序)
  659.     
  660.     '过程参数:保存格式网格对象,网格格式代码(网格参数)
  661.     
  662.     Dim Cxsjbrec As New ADODB.Recordset
  663.     Dim Qslzte As Integer
  664.     Dim Tsxx As String
  665.     Cw_DataEnvi.DataConnect.BeginTrans
  666.     
  667.     On Error GoTo Swcwcl
  668.     
  669.     If Cxsjbrec.State = 1 Then Cxsjbrec.Close
  670.     Cxsjbrec.Open "select * from xt_grid where Grid_Code='" + Trim(Wggsdm) + "' order by ColId", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  671.     With Cxsjbrec
  672.         If Not .EOF Then
  673.             Qslzte = .Fields("BeginCol")
  674.             .MoveNext
  675.         End If
  676.         Do While Not .EOF
  677.             For jsqte = Qslzte To Bcgsgrid.Cols - 1
  678.                 If Bcgsgrid.FixedRows = 1 Then
  679.                     If Trim(.Fields("ColTitle1")) = Trim(Bcgsgrid.TextMatrix(0, jsqte)) Then
  680.                         Exit For
  681.                     End If
  682.                 Else
  683.                     If Trim(.Fields("ColTitle1")) = Trim(Bcgsgrid.TextMatrix(0, jsqte)) And Trim(.Fields("ColTitle2")) = Trim(Bcgsgrid.TextMatrix(1, jsqte)) Then
  684.                         Exit For
  685.                     End If
  686.                 End If
  687.             Next jsqte
  688.             If jsqte <= Bcgsgrid.Cols - 1 Then
  689.                 .Fields("ColId") = jsqte - Qslzte + 1
  690.                 .Fields("ColWidth") = Bcgsgrid.ColWidth(jsqte)
  691.                 .Update
  692.             Else
  693.                 GoTo Swcwcl
  694.             End If
  695.             .MoveNext
  696.         Loop
  697.     End With
  698.     Cw_DataEnvi.DataConnect.CommitTrans
  699.     Tsxx = "表格格式保存完毕!"
  700.     Call Xtxxts(Tsxx, 0, 4)
  701.     Exit Sub
  702. Swcwcl:
  703.     Cw_DataEnvi.DataConnect.RollbackTrans
  704.     Tsxx = "存盘过程中出现未知错误,程序自动恢复保存前状态!"
  705.     Call Xtxxts(Tsxx, 0, 1)
  706.     Exit Sub
  707. End Sub
  708. Private Sub Hfmrgs1(Bcgsgrid, Wggsdm As String)             '恢复网格默认列宽
  709.   
  710.     '过程参数:保存格式网格对象,网格格式代码(网格参数)
  711.     Dim Cxsjbrec As New ADODB.Recordset   '查询数据表动态集
  712.     Dim Qslzte As Integer
  713.     Dim Tsxx As String
  714.     Cw_DataEnvi.DataConnect.BeginTrans
  715.     If Cxsjbrec.State = 1 Then Cxsjbrec.Close
  716.     Cxsjbrec.Open "select * from xt_grid where Grid_Code='" + Trim(Wggsdm) + "' order by ColId", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  717.     
  718.     On Error GoTo Swcwcl
  719.     
  720.     With Cxsjbrec
  721.         If Not .EOF Then
  722.             Qslzte = .Fields("BeginCol")
  723.             .MoveNext
  724.         End If
  725.         Do While Not .EOF
  726.             For jsqte = Qslzte To Bcgsgrid.Cols - 1
  727.                 If Bcgsgrid.FixedRows = 1 Then
  728.                     If Trim(.Fields("ColTitle1")) = Trim(Bcgsgrid.TextMatrix(0, jsqte)) Then
  729.                         Exit For
  730.                     End If
  731.                 Else
  732.                     If Trim(.Fields("ColTitle1")) = Trim(Bcgsgrid.TextMatrix(0, jsqte)) And Trim(.Fields("ColTitle2")) = Trim(Bcgsgrid.TextMatrix(1, jsqte)) Then
  733.                         Exit For
  734.                     End If
  735.                 End If
  736.             Next jsqte
  737.             If jsqte <= Bcgsgrid.Cols - 1 Then
  738.                 Bcgsgrid.ColWidth(jsqte) = .Fields("DefaultColWidth")
  739.                 .Fields("ColWidth") = .Fields("DefaultColWidth") + 0
  740.                 .Update
  741.             End If
  742.             .MoveNext
  743.         Loop
  744.     End With
  745.     Cw_DataEnvi.DataConnect.CommitTrans
  746.     Exit Sub
  747. Swcwcl:
  748.     Cw_DataEnvi.DataConnect.RollbackTrans
  749.     Tsxx = "恢复过程中出现未知错误,程序自动恢复保存前状态!"
  750.     Call Xtxxts(Tsxx, 0, 1)
  751.     Exit Sub
  752. End Sub