1.给MSHFlexGrid填充数据通用方法

  1. '自定义报表填充程序 fgrid
  2. Public Function ShowformfData(Resultset As ADODB.Recordset, ary As Variant, fg As MSHFlexGrid) As Variant
  3. Dim cl As field
  4. Static GridSetup As Boolean
  5. Dim MaxL As Long
  6. Dim Op As Long
  7. Dim rsl As ADODB.Recordset
  8. Dim rows, sl, field_value As Variant
  9. Dim i As Long
  10. Dim j, k As Long
  11.  
  12. 'On Error GoTo ShowDataEH
  13. Set rsl = Resultset
  14. '------------------------------------------
  15. 'ERP系统全部导入到SQL SERVER 中才可用下面两行代码
  16. '如果不连AS400 ,则直接用下面函数
  17. If rsl.EOF Then
  18. Exit Function
  19. End If
  20.  
  21. ShowMSHFlexGrid fg, rsl, ary
  22. Exit Function
  23. '
  24. fg.Clear
  25. fg.Cols =
  26. fg.rows =
  27. fg.ScrollTrack = True
  28. 'fg.ScrollTrack = False
  29. Op =
  30. fg.Enabled = True
  31. If rsl.EOF Then
  32. MsgBox ("没有满足条件的记录,请重新修改您的查询条件")
  33. fg.rows =
  34. fg.Enabled = False
  35. Exit Function
  36. Else
  37. fg.Visible = True
  38. For i = To rsl.Fields.count
  39. fg.Cols = fg.Cols +
  40. If i = Then
  41. fg.colwidth() =
  42. Else
  43.  
  44. fg.Col = Op
  45. If rsl.Fields(Op - ).DefinedSize > Then
  46. MaxL =
  47. Else
  48. MaxL = rsl.Fields(Op - ).ActualSize +
  49. End If
  50. If MaxL > Then MaxL =
  51. If MaxL < Then MaxL =
  52. fg.colwidth(fg.Col) = MaxL *
  53. Op = Op +
  54. End If
  55. fg.TextMatrix(, i) = ary(i)
  56. 'FG.TextMatrix(0, i) = rsl.Fields(i).Name
  57.  
  58. Next i
  59. 'Cols = fg.Cols + 1
  60. 'For I = 0 To rsl.Fields.Count
  61. 'fg.TextMatrix(0, I) = ary(I)
  62. 'Next I
  63. fg.rows =
  64. k =
  65. If Not (rsl.BOF And rsl.EOF) Then
  66. i =
  67. Do While Not rsl.EOF
  68.  
  69. For j = To rsl.Fields.count
  70. If j = Then
  71. fg.TextMatrix(fg.rows - , j) = k
  72. Else
  73.  
  74. If Not IsNull(rsl.Fields(j - ).Value) Then
  75. fg.TextMatrix(fg.rows - , j) = Trim(rsl.Fields(j - ).Value)
  76. End If
  77. If rsl.Fields(j - ).Type = adChar Then
  78. fg.ColAlignment(j) =
  79. End If
  80.  
  81. End If
  82. Next j
  83. fg.rows = fg.rows +
  84. fg.TopRow = fg.TopRow +
  85. fg.Refresh
  86.  
  87. rsl.MoveNext
  88. k = k +
  89. Loop
  90. fg.rows = fg.rows -
  91.  
  92. End If
  93.  
  94. End If
  95. If fg.rows > Then
  96. fg.TopRow =
  97. fg.Refresh
  98. End If
  99.  
  100. SetRowColor fg
  101. fg.FixedRows =
  102. fg.row =
  103. fg.Col =
  104.  
  105. 'b:
  106. Exit Function
  107.  
  108. 'ShowDataEH:
  109. ' MsgBox err & vbCrLf & Error$
  110. ' fg.Visible = False
  111. ' Resume b
  112.  
  113. End Function

2.更高效的方法获取是这样的,是今天在项目中必要要解决速度问题才弄出来的,而且即简单又快捷

  1. Dim rsConstitute As ADODB.Recordset
  2.  
  3. txtsql = "select SSFXDM,KCWPDM,XTDWDM,SSZJYL from tabv "
  4. Set rsConstitute = Query(txtsql, msgtext)
  5.  
  6. Set FGridCheck.DataSource = rsConstitute

3.针对MSHFlexGrid的一系列通用方法:

  1. Public Function fgclear(fg As MSHFlexGrid)
  2. '
  3. fg.Clear
  4. fg.rows =
  5. fg.Cols =
  6. fg.FixedRows =
  7. fg.FixedCols =
  8. fg.colwidth() =
  9. fg.colwidth() =
  10. fg.row =
  11. fg.Col =
  12. End Function
  13.  
  14. ' 设置MSHFlexGrid每列的颜色
  15. Public Function SetColColor(fg As MSHFlexGrid)
  16. '
  17. Dim i
  18. fg.FillStyle =
  19. For i = To fg.Cols -
  20. fg.Col = i
  21. If i Mod <> Then
  22. fg.row =
  23. fg.RowSel = fg.rows -
  24. fg.CellBackColor = &HC0FFFF
  25. End If
  26. Next i
  27.  
  28. fg.FillStyle =
  29. fg.row =
  30. fg.Col =
  31.  
  32. End Function
  33.  
  34. ' 设置MSHFlexGrid每列的颜色
  35. Public Function colw(fg As MSHFlexGrid) As String
  36. '
  37. Dim i
  38. Dim S
  39. S = ""
  40. For i = To fg.Cols -
  41. S = S & "fg.ColWidth(" & i & ")=" & fg.colwidth(i) & " '" & fg.TextMatrix(, i) & " " & Chr() & Chr()
  42. Next i
  43. colw = S
  44.  
  45. End Function
  1. Public Sub markfg1(ByRef fg As MSHFlexGrid, lb As Label, countlb As Label, delbutton As CommandButton)
  2. Dim r, c
  3. Dim markdgcount As Integer
  4. r = fg.row
  5. c = fg.Col
  6.  
  7. If r <> Then
  8. If InStr(fg.TextMatrix(r, ), "√") = Then
  9. fg.TextMatrix(r, ) = "√ " & fg.TextMatrix(r, )
  10. fg.Col =
  11. fg.CellAlignment =
  12.  
  13. For i = To fg.Cols -
  14. fg.Col = i
  15. fg.CellBackColor = &HFF& '红色 '蓝色&H8000000D
  16. Next
  17.  
  18. If countlb.Caption = "" Then
  19. markdgcount =
  20. Else
  21. markdgcount = CInt(countlb.Caption) +
  22. End If
  23. Else
  24. fg.TextMatrix(r, ) = Right(fg.TextMatrix(r, ), Len(fg.TextMatrix(r, )) - )
  25. If Trim(fg.TextMatrix(fg.row, )) = "N" Then
  26. If r Mod = Then
  27. For i = To fg.Cols -
  28. fg.Col = i
  29. fg.CellBackColor = &HE0E0E0
  30. Next
  31. Else
  32. For i = To fg.Cols -
  33. fg.Col = i
  34. fg.CellBackColor = &HFFFFFF
  35. Next
  36. End If
  37. Else
  38. For i = To fg.Cols -
  39. fg.Col = i
  40. fg.CellBackColor = &H80FF80
  41. Next
  42. End If
  43. If countlb.Caption = "" Then
  44. markdgcount =
  45. Else
  46. markdgcount = CInt(countlb.Caption) -
  47. End If
  48. End If
  49. If markdgcount <> Then
  50. countlb.Caption = markdgcount
  51. lb.Caption = "已选择了 " & CStr(countlb.Caption) & " 条记录!"
  52. delbutton.Enabled = True
  53. Else
  54. countlb.Caption = ""
  55. lb.Caption = ""
  56. delbutton.Enabled = False
  57. End If
  58. End If
  59. End Sub

作者:王春天 2013.11.14   地址:http://www.cnblogs.com/spring_wang/p/3423182.html

针对MSHFlexGrid的一系列通用方法-项目中实践代码分享的更多相关文章

  1. Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码

    Roslyn 是微软为 C# 设计的一套分析器,它具有很强的扩展性.以至于我们只需要编写很少量的代码便能够分析我们的项目文件. 作为 Roslyn 入门篇文章,你将可以通过本文学习如何开始编写一个 R ...

  2. Hystrix在项目中实践

    Hystrix在项目中实践 https://mp.weixin.qq.com/s/4Fg0COnWRB3rRWfxbJt7gA

  3. 动态调用WebService 通用方法Moss 中 传统开发中都可用。

    WebService是啥大家都知道了,这里不做过多的解释.通常我们使用WebService的做法基本都是在我们的项目中添加Web引用的方式,首先找到WebService的地址,然后定义命名空间,这样会 ...

  4. 最新广商小助手 项目进展 OpenGL ES 3D在我项目中引用 代码太多只好选重要部分出来

    package com.example.home; import java.io.IOException; import java.io.InputStream; import javax.micro ...

  5. 高质量代码优化!谈谈重构项目中if-else代码的几点建议

    switch if - else只适合在3层之内使用 当条件判断较多时,可以首先考虑使用switch interface 当判断条件还可能动态增加时,可以考虑将switch进一步优化,引入接口inte ...

  6. [git]安装git-pylint-commit-hook提高python项目中的代码质量

    什么是'git-pylint-commit-hook' 我在工作中,团队为了保证代码和提高代码的质量,要求每个项目都要求安装git-pylint-commit-hook,它是个钩子,会在你提交代码到本 ...

  7. 吐槽一下项目中的代码坏味道:滥用java常量

    我们的项目中是否充斥着类似以下的代码呢?定义一个专门存放常量的java类(接口),非常多其它类依赖该常量类. public interface IConstant { int ZERO = 0; St ...

  8. 使用eslint将项目中的代码修改统一的缩进

    背景 继承了组里师兄师姐写的项目的前端代码,但是是两个人写的,有两格缩进的,有四格缩进的,有字符串外用单引号的,有用双引号的. 于是搜索了一下,可以用eslint强制转化. eslint在github ...

  9. js数组高阶方法reduce经典用法代码分享

    以下是个人在工作中收藏总结的一些关于javascript数组方法reduce的相关代码片段,后续遇到其他使用这个函数的场景,将会陆续添加,这里作为备忘. javascript数组那么多方法,为什么我要 ...

随机推荐

  1. .NET MVC中登陆授权过滤器的使用

    1.写个类LoginAuthorityAttribute,继承自AuthorizeAttribute using System; using System.Collections.Generic; u ...

  2. C# FTP常规方法

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  3. TQ2440开发板挂载U盘出现乱码

    解决方法:配置内核 make menuconfig File Systems --->      DOS/FAT/NT Filesystems  --->         (utf8) D ...

  4. Springmvc之接受请求参数二

    Springmvc之接受请求参数 准备工作 新建一个表单提交 请求地址: http://localhost:8080/ProjectName/user/login.do <form action ...

  5. NameNode重新格式化以后DataNode不能启动

    最近重新格式化NameNode以后,发现几个DataNode都不能启动了. 这是因为dfs.name.dir路径下面有一个current/VERSION文件,里面有一个clusterID,重新格式化以 ...

  6. Grunt、Gulp和Webpack对比

    1.Grunt处理Sass转换成CSS过程 2.Gulp处理Sass转换成CSS过程 3.Webpack执行原理 4.区别 (1)grunt和gulp都类似于webapck的中的scripts,属于任 ...

  7. Python学习笔记六:数据库操作

    一:Python操作数据库的流程 二:开发环境准备 1:开发工具PyCharm 2:Python操作mysql的工具:需要安装Python-Mysql Connector,网址:https://sou ...

  8. Cas Server源码编译现场实例

    最近公司有项目需要做单点登录,根据要求就写下这篇从github上下载的包到项目编译通过,再到修改原代码实现自己的特殊逻辑. 前提: java环境 tomcat环境 maven环境 MyEclipse开 ...

  9. OpenCV实现任意大小图片的合并(转)

    OpenCV实现图像合并主要有两种方法 方法一:使用Mat.push_back方法将列数相同的图像加到最后一行 方法二: 主要思路是将图像拷贝到待合并图像的感兴趣区域 (1)新建一个要合并的图像(容器 ...

  10. Java之创建对象>3.Enforce the singleton property with a private constructor or an enum type

     1. 通过一个公开的字段来获取单例 // Singleton with public final field public class Elvis { public static final Elv ...