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

企业管理

开发平台:

Visual Basic

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