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

企业管理

开发平台:

Visual Basic

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