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

企业管理

开发平台:

Visual Basic

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