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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
  3. Begin VB.Form XT_ItemHelp 
  4.    BorderStyle     =   3  'Fixed Dialog
  5.    Caption         =   "核算项目编码参照表"
  6.    ClientHeight    =   6015
  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     =   6015
  15.    ScaleWidth      =   6435
  16.    ShowInTaskbar   =   0   'False
  17.    StartUpPosition =   2  '屏幕中心
  18.    Begin VB.TextBox CodeText 
  19.       Height          =   300
  20.       Left            =   1020
  21.       TabIndex        =   1
  22.       Top             =   150
  23.       Width           =   5355
  24.    End
  25.    Begin VB.CommandButton QxCommand 
  26.       Cancel          =   -1  'True
  27.       Caption         =   "取消(&C)"
  28.       Height          =   300
  29.       Left            =   5220
  30.       TabIndex        =   3
  31.       Top             =   5580
  32.       Width           =   1120
  33.    End
  34.    Begin VB.CommandButton QdCommand 
  35.       Caption         =   "确定(&O)"
  36.       Default         =   -1  'True
  37.       Height          =   300
  38.       Left            =   4050
  39.       TabIndex        =   2
  40.       Top             =   5580
  41.       Width           =   1120
  42.    End
  43.    Begin MSFlexGridLib.MSFlexGrid CzxsGrid 
  44.       Height          =   4905
  45.       Left            =   90
  46.       TabIndex        =   0
  47.       Top             =   540
  48.       Width           =   6315
  49.       _ExtentX        =   11139
  50.       _ExtentY        =   8652
  51.       _Version        =   393216
  52.       FocusRect       =   0
  53.    End
  54.    Begin VB.Label Label1 
  55.       BackColor       =   &H00C0C0C0&
  56.       BackStyle       =   0  'Transparent
  57.       Caption         =   "编码或名称"
  58.       Height          =   255
  59.       Index           =   0
  60.       Left            =   90
  61.       TabIndex        =   4
  62.       Top             =   210
  63.       Width           =   975
  64.    End
  65. End
  66. Attribute VB_Name = "XT_ItemHelp"
  67. Attribute VB_GlobalNameSpace = False
  68. Attribute VB_Creatable = False
  69. Attribute VB_PredeclaredId = True
  70. Attribute VB_Exposed = False
  71. '**************************************************************************
  72. '*    模 块 名 称 :核算项目编码参照
  73. '*    功 能 描 述 :
  74. '*    程序员姓名  : 张建忠
  75. '*    最后修改人  : 张建忠
  76. '*    最后修改时间:2000/09/11
  77. '*    备        注:
  78. '*    使用说明: Xtcdcs 用来传递用户输入内容; xtbmczdm 用来传递所选编码参照
  79. '                xtfhcs 用来返回用户所选编码; xtfhcsfz 用来返回用户所选名称
  80. '**************************************************************************
  81. Dim Cznr As String                       '网格首次进入查找内容
  82. Dim Str_ClassCode As String              '项目分类编码
  83.  '以下为固定使用变量
  84. Dim Cxnrrec As New ADODB.Recordset       '显示查询内容动态集
  85. Dim GridCode As String                   '显示网格网格代码
  86. Dim GridInf() As Variant                 '整个网格设置信息
  87. Dim Tsxx As String                       '系统提示信息
  88. Dim Qslz As Long                         '网格隐藏(非操作显示)列数
  89. Dim Sjhgd As Double                      '网格数据行高度
  90. Dim GridBoolean() As Boolean             '网格列信息(布尔型)
  91. Dim GridStr()  As String                 '网格列信息(字符型)
  92. Dim GridInt() As Integer                 '网格列信息(整型)
  93. Dim Szzls As Integer                     '数组总列数(网格列数-1)
  94. Private Sub CodeText_Change()            '用户可模糊定位编码或名称信息
  95.   Dim DwRow As Long
  96.   Dim Lng_BmCol As Long
  97.   Dim Lng_McCol As Long
  98.   
  99.   On Error Resume Next
  100.   Lng_BmCol = Sydz("001", GridStr(), Szzls)
  101.   Lng_McCol = Sydz("002", GridStr(), Szzls)
  102.   Cznr = Trim(CodeText.Text)
  103.   With CzxsGrid
  104.     For DwRow = .FixedRows To .Rows - 1
  105.         If Mid(.TextMatrix(DwRow, Lng_BmCol), 1, Len(Cznr)) = Cznr Then
  106.            .Row = DwRow
  107.            .Col = Lng_BmCol
  108.            CzxsGrid.SetFocus
  109.            SendKeys "{LEFT}", True
  110.            CodeText.SetFocus
  111.            .TopRow = DwRow
  112.            Exit Sub
  113.         End If
  114.     Next DwRow
  115.     For DwRow = .FixedRows To .Rows - 1
  116.         If Mid(.TextMatrix(DwRow, Lng_McCol), 1, Len(Cznr)) = Cznr Then
  117.            .Row = DwRow
  118.            .Col = Lng_BmCol
  119.            CzxsGrid.SetFocus
  120.            SendKeys "{LEFT}", True
  121.            CodeText.SetFocus
  122.            .TopRow = DwRow
  123.            Exit Sub
  124.         End If
  125.     Next DwRow
  126.   End With
  127. End Sub
  128. Private Sub CzxsGrid_GotFocus()
  129.    SendKeys "{LEFT}", True
  130. End Sub
  131. Private Sub Form_Load()                             '调 入 窗 体
  132.     
  133.   '传递项目类别代码
  134.   
  135.   Str_ClassCode = Xtcdcsfz
  136.     
  137.   '调 入 网 格
  138.   GridCode = "cwzz_item"
  139.   
  140.   Call Sub_ShowGrid(CzxsGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  141.   
  142.   Qslz = GridInf(1)
  143.   Sjhgd = GridInf(2)
  144.   Szzls = CzxsGrid.Cols - 1
  145.   
  146.   '填 充 网 格
  147.    Call Cxnrtcwg
  148.    
  149.   CodeText.Text = Trim(Xtcdcs)
  150.    
  151.  End Sub
  152. Private Sub Cxnrtcwg()                               '查 询 内 容 填 充 网 格
  153.   Dim SqlStr As String
  154.   Dim Jsqte As Long
  155.   
  156.   '查询连接串
  157.   SqlStr = "SELECT * FROM Cwzz_Item Where ItemClassCode='" & Str_ClassCode & "'and EndFlag='1' order by ItemCode"
  158.   Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  159.   With Cxnrrec
  160.      CzxsGrid.Rows = .RecordCount + CzxsGrid.FixedRows
  161.      If .EOF And .BOF Then
  162.         Exit Sub
  163.      End If
  164.      Jsqte = CzxsGrid.FixedRows
  165.      Do While Not .EOF
  166.        If Jsqte >= CzxsGrid.Rows Then
  167.           CzxsGrid.AddItem ""
  168.        End If
  169.        
  170.         Call Jltcwg(Cxnrrec, Jsqte)
  171.               
  172.         CzxsGrid.RowHeight(Jsqte) = Sjhgd
  173.         .MoveNext
  174.         Jsqte = Jsqte + 1
  175.      Loop
  176.   End With
  177. End Sub
  178. Private Sub Jltcwg(Jlbrec As ADODB.Recordset, Rowjsq As Long)                                     '记录内容填充网格
  179.     Dim Str_Fzhs As String      '辅助核算
  180.     
  181.     '[以下为自定义部分
  182.      With Jlbrec
  183.         CzxsGrid.TextMatrix(Rowjsq, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("ItemCode"))
  184.         CzxsGrid.TextMatrix(Rowjsq, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("ItemName") & "")
  185.         If .Fields("QuantityFlag") Then
  186.            CzxsGrid.TextMatrix(Rowjsq, Sydz("003", GridStr(), Szzls)) = "√"
  187.         End If
  188.         CzxsGrid.TextMatrix(Rowjsq, Sydz("004", GridStr(), Szzls)) = Trim(.Fields("Measure") & "")
  189.      End With
  190.     '以上为自定义部分]
  191. End Sub
  192. Private Sub CzxsGrid_DblClick()                        '用户双击网格返回当前选中编码
  193.   Call Fhxzbm
  194. End Sub
  195. Private Sub Form_Unload(Cancel As Integer)             '退出
  196.    Set Cxnrrec = Nothing
  197. End Sub
  198. Private Sub QdCommand_Click()                          '确 定
  199.   Call Fhxzbm
  200. End Sub
  201. Private Sub QxCommand_Click()                          '取 消
  202.    Xtfhcs = ""
  203.    Xtfhcsfz = ""
  204.    Unload Me
  205. End Sub
  206. Private Sub Fhxzbm()                                   '返回用户选中编码并退出
  207.   With CzxsGrid
  208.    If .Row >= .FixedRows Then
  209.       Xtfhcs = Trim(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls)))
  210.       Xtfhcsfz = Trim(.TextMatrix(.Row, Sydz("002", GridStr(), Szzls)))
  211.    Else
  212.       Xtfhcs = ""
  213.       Xtfhcsfz = ""
  214.    End If
  215.   End With
  216.   Unload Me
  217. End Sub
  218. Private Sub Sub_ShowGrid(Xsgrid, Wgdmte As String, GridInf() As Variant, GridBoolean() As Boolean, GridInt() As Integer, GridStr() As String)           '标准网格初始化模块
  219.   
  220.   '过程参数为:生成网格对象名称(微软),网格参数编码,返回网格设置信息(返回整体信息)
  221.   '网格列属性(返回布尔型信息),网格列属性(返回整型信息),网格列属性(返回字符型信息)
  222.   
  223.   Dim wglbt() As String                      '网格显示列标题
  224.   Dim Wgxsls As Long                         '网格显示(主操作)列数
  225.   Dim gdls As Long                           '网格固定列数
  226.   Dim Gdhs As Long                           '网格固定行数(标题行数)
  227.   Dim Gdhgd As Double                        '网格固定行高度
  228.   Dim wglkd() As Double                      '每列默认字符个数
  229.   Dim wglzz() As Integer                     '网格列组织形式
  230.   Dim zdxsgs() As String                     '数值字段显示格式
  231.   Dim Sfhide() As Boolean                    '网格列是否隐藏
  232.   Dim Sfhxz As Boolean                       '网格列是否行选中
  233.   Dim Qslz As Long                           '网格隐藏(非操作显示)列数
  234.   Dim Sjhgd As Double                        '网格数据行高度
  235.   Dim Wglsfkydpx As Integer                  '网格列是否可移动及排序
  236.   Dim wgxsrec As New ADODB.Recordset         '网格显示动态集
  237.   
  238.   ReDim GridInf(1 To 7)                       '整个网格设置信息
  239.   Set wgxsrec = Cw_DataEnvi.DataConnect.Execute("SELECT * FROM xt_grid WHERE Grid_Code ='" + Wgdmte + "' ORDER BY ColId")
  240.   With wgxsrec
  241.    If .EOF And .BOF Then
  242.       Exit Sub
  243.    Else
  244.       .MoveFirst
  245.    End If
  246.    
  247.    Qslz = .Fields("BeginCol")                '网格隐藏(非操作显示)列数
  248.    Sjhgd = .Fields("DataRowHeight")          '网格数据行高度
  249.    
  250.    GridInf(1) = Qslz                         '起始列值
  251.    GridInf(2) = Sjhgd                        '数据行高度
  252.    GridInf(3) = .Fields("KeepDataRows")      '屏幕保持数据行数
  253.    GridInf(4) = .Fields("AssistantRows")     '辅助项网格行数(例如:合计行)
  254.    If .Fields("SaveHelpWidth_Flag") Then     '是否保留帮助宽度(字段提供帮助时,是否为按钮保留空间)
  255.       GridInf(5) = True
  256.    Else
  257.       GridInf(5) = False
  258.    End If
  259.    If .Fields("DeleteRowAsk_Flag") Then      '删除有效记录行是否提示
  260.       GridInf(6) = True
  261.    Else
  262.       GridInf(6) = False
  263.    End If
  264.    If .Fields("ShowSumGrid_Flag") Then       '是否显示合计网格
  265.       GridInf(7) = True
  266.    Else
  267.       GridInf(7) = False
  268.    End If
  269.       
  270.    Wgxsls = .RecordCount - 1                 '网格显示(主操作)列数(原.Fields("wgxsls"))
  271.    gdls = .Fields("FixCols")                 '网格固定列数
  272.    Gdhs = .Fields("FixRows")                 '网格固定行数(标题行数)
  273.    Gdhgd = .Fields("FixRowHeight")           '网格固定行高度
  274.    Wglsfkydpx = .Fields("explorerbar")       '网格列是否可移动及排序
  275.    
  276.    If .Fields("SelectRow_Flag") Then         '是否行选中
  277.       Sfhxz = True
  278.    End If
  279.    
  280.    ReDim wglbt(Gdhs - 1, Wgxsls + Qslz - 1)  '网格显示列标题
  281.    ReDim wglkd(Qslz + Wgxsls - 1)            '每列默认字符个数
  282.    ReDim zdxsgs(Qslz + Wgxsls - 1)           '数值字段标志
  283.    ReDim wglzz(Qslz + Wgxsls - 1)            '网格列组织形式
  284.    ReDim Sfhide(Qslz + Wgxsls - 1)           '网格列是否显示
  285.    ReDim GridBoolean(Qslz + Wgxsls - 1, 1 To 6)   '网格列属性(布尔型)
  286.    ReDim GridStr(Qslz + Wgxsls - 1, 1 To 20)      '网格列信息(字符型)
  287.    ReDim GridInt(Qslz + Wgxsls - 1, 1 To 7)       '网格列信息(整型)
  288.    
  289.    .MoveNext
  290.    Jsqte = 0
  291.    Do While Not .EOF
  292.  
  293.     wglkd(Qslz + Jsqte) = .Fields("ColWidth")                  '网格列宽度限制
  294.     If Not IsNull(.Fields("ColTitle1")) Then
  295.       wglbt(0, Qslz + Jsqte) = Trim(.Fields("ColTitle1"))      '网格列标题1
  296.     End If
  297.     If Not IsNull(.Fields("ColTitle2")) And Gdhs = 2 Then      '网格列标题2
  298.       wglbt(1, Qslz + Jsqte) = Trim(.Fields("ColTitle2"))
  299.     End If
  300.     
  301.     If .Fields("ColFormat") Then                               '字段显示格式(千分符)
  302.       If .Fields("Text_Int_Length") <> 0 Then
  303.          zdxsgs(Qslz + Jsqte) = "#,##0." + String(.Fields("Text_deci_Length"), "0")
  304.       Else
  305.          zdxsgs(Qslz + Jsqte) = "#,##0.00"
  306.       End If
  307.       Select Case .Fields("Text_Data_Type")
  308.          Case 8   '金额
  309.            zdxsgs(Qslz + Jsqte) = "#,##0." + String(Xtjexsws, "0")
  310.          Case 9   '数量
  311.            zdxsgs(Qslz + Jsqte) = "#,##0." + String(Xtslxsws, "0")
  312.          Case 10  '单价
  313.            zdxsgs(Qslz + Jsqte) = "#,##0." + String(Xtdjxsws, "0")
  314.       End Select
  315.     Else
  316.       If .Fields("Text_Int_Length") <> 0 Then
  317.          zdxsgs(Qslz + Jsqte) = "##0." + String(.Fields("Text_deci_Length"), "0")
  318.       End If
  319.     End If
  320.     
  321.     wglzz(Qslz + Jsqte) = .Fields("ColAlignment")              '网格列组织形式
  322.     If .Fields("ColHidden") Then                               '网格列是否隐藏
  323.        Sfhide(Qslz + Jsqte) = True
  324.     End If
  325.     If .Fields("Edit_Flag") Then                               '网格列是否可编辑
  326.        GridBoolean(Qslz + Jsqte, 1) = True
  327.     End If
  328.     If .Fields("Help_Flag") Then                               '网格列是否提供帮助
  329.        GridBoolean(Qslz + Jsqte, 2) = True
  330.     End If
  331.     If .Fields("Combo_Flag") Then                              '网格列是否列表框录入
  332.        GridBoolean(Qslz + Jsqte, 3) = True
  333.     End If
  334.     If .Fields("ColSum_Flag") Then                             '网格列是否合计
  335.        GridBoolean(Qslz + Jsqte, 4) = True
  336.     End If
  337.     If .Fields("Zero_Empty_Flag") Then                         '网格内容为零是否清空
  338.        GridBoolean(Qslz + Jsqte, 5) = True
  339.     End If
  340.     If .Fields("BooleanFlag") Then                             '网格列是否为布尔型
  341.        GridBoolean(Qslz + Jsqte, 6) = True
  342.     End If
  343.     If Not IsNull(.Fields("Text_Data_Type")) Then              '字段数据类型
  344.        GridInt(Qslz + Jsqte, 1) = .Fields("Text_Data_Type")
  345.     End If
  346.     If Not IsNull(.Fields("Text_Length")) Then                 '字段录入长度
  347.        GridInt(Qslz + Jsqte, 2) = .Fields("Text_Length")
  348.     End If
  349.     If Not IsNull(.Fields("Text_Int_Length")) Then             '字段整数位长度
  350.        GridInt(Qslz + Jsqte, 3) = .Fields("Text_Int_Length")
  351.     End If
  352.     If Not IsNull(.Fields("Text_Deci_Length")) Then            '字段小数位长度
  353.        GridInt(Qslz + Jsqte, 4) = .Fields("Text_Deci_Length")
  354.     End If
  355.     If Not IsNull(.Fields("NotAllowEmpty_Type")) Then          '字段不允许为空或为零
  356.        GridInt(Qslz + Jsqte, 5) = .Fields("NotAllowEmpty_Type")
  357.     End If
  358.     If Not IsNull(.Fields("Help_Type")) Then                   '帮助类型
  359.        GridInt(Qslz + Jsqte, 6) = .Fields("Help_Type")
  360.     End If
  361.     If Not IsNull(.Fields("HelpReturnValue")) Then             '帮助返回值(0-显示返回编码 1-显示返回名称)
  362.        GridInt(Qslz + Jsqte, 7) = .Fields("HelpReturnValue")
  363.     End If
  364.     GridStr(Qslz + Jsqte, 1) = Trim(.Fields("ColIndex") & "")    '网格列索引值
  365.     GridStr(Qslz + Jsqte, 2) = Trim(.Fields("EmptyMessage") & "") '字段为空提示信息
  366.     GridStr(Qslz + Jsqte, 3) = Trim(.Fields("Help_Code") & "")    '通用帮助编码
  367.     GridStr(Qslz + Jsqte, 4) = Trim(.Fields("FieldsName") & "")   '连接字段(通用帮助)
  368.     GridStr(Qslz + Jsqte, 5) = Trim(.Fields("Combo_Code") & "")   '列表框编码
  369.    
  370.     .MoveNext
  371.     Jsqte = Jsqte + 1
  372.    Loop
  373.     
  374.   End With
  375.    
  376.    '网格列组织形式
  377.    
  378.    With Xsgrid
  379.       .BackColorFixed = &H8000000F                                     '固定行背景色 ('&H80000018)
  380.       .FixedRows = Gdhs                                                '固定行数
  381.       .Rows = Gdhs
  382.       .FixedCols = gdls                                                '固定列数
  383.       .Cols = Qslz + Wgxsls
  384.       .AllowUserResizing = flexResizeBoth
  385.       .SelectionMode = flexSelectionByRow
  386.       .WordWrap = True
  387.      
  388.      '填 充 网 格 标 题
  389.      For Rowjsq = 0 To .FixedRows - 1
  390.         .MergeRow(Rowjsq) = True
  391.         .RowHeight(Rowjsq) = Gdhgd
  392.         For Coljsq = Qslzte To .Cols - 1
  393.            .TextMatrix(Rowjsq, Coljsq) = wglbt(Rowjsq, Coljsq)
  394.         Next Coljsq
  395.      Next Rowjsq
  396.      
  397.      '数 据 网 格 高 度
  398.      For Rowjsq = .FixedRows To .Rows - 1
  399.          .RowHeight(Rowjsq) = Sjhgd
  400.      Next Rowjsq
  401.      
  402.       '定 义 录 入 字 段 属 性
  403.      For Coljsq = 0 To .Cols - 1
  404.          .ColWidth(Coljsq) = wglkd(Coljsq)
  405.          .ColAlignment(Coljsq) = wglzz(Coljsq)
  406.          .FixedAlignment(Coljsq) = 4
  407.      Next Coljsq
  408.     
  409.   End With
  410. End Sub