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

'自定义报表填充程序 fgrid
Public Function ShowformfData(Resultset As ADODB.Recordset, ary As Variant, fg As MSHFlexGrid) As Variant
Dim cl As field
Static GridSetup As Boolean
Dim MaxL As Long
Dim Op As Long
Dim rsl As ADODB.Recordset
Dim rows, sl, field_value As Variant
Dim i As Long
Dim j, k As Long 'On Error GoTo ShowDataEH
Set rsl = Resultset
'------------------------------------------
'等ERP系统全部导入到SQL SERVER 中才可用下面两行代码
'如果不连AS400 ,则直接用下面函数
If rsl.EOF Then
Exit Function
End If ShowMSHFlexGrid fg, rsl, ary
Exit Function
'
fg.Clear
fg.Cols =
fg.rows =
fg.ScrollTrack = True
'fg.ScrollTrack = False
Op =
fg.Enabled = True
If rsl.EOF Then
MsgBox ("没有满足条件的记录,请重新修改您的查询条件")
fg.rows =
fg.Enabled = False
Exit Function
Else
fg.Visible = True
For i = To rsl.Fields.count
fg.Cols = fg.Cols +
If i = Then
fg.colwidth() =
Else fg.Col = Op
If rsl.Fields(Op - ).DefinedSize > Then
MaxL =
Else
MaxL = rsl.Fields(Op - ).ActualSize +
End If
If MaxL > Then MaxL =
If MaxL < Then MaxL =
fg.colwidth(fg.Col) = MaxL *
Op = Op +
End If
fg.TextMatrix(, i) = ary(i)
'FG.TextMatrix(0, i) = rsl.Fields(i).Name Next i
'Cols = fg.Cols + 1
'For I = 0 To rsl.Fields.Count
'fg.TextMatrix(0, I) = ary(I)
'Next I
fg.rows =
k =
If Not (rsl.BOF And rsl.EOF) Then
i =
Do While Not rsl.EOF For j = To rsl.Fields.count
If j = Then
fg.TextMatrix(fg.rows - , j) = k
Else If Not IsNull(rsl.Fields(j - ).Value) Then
fg.TextMatrix(fg.rows - , j) = Trim(rsl.Fields(j - ).Value)
End If
If rsl.Fields(j - ).Type = adChar Then
fg.ColAlignment(j) =
End If End If
Next j
fg.rows = fg.rows +
fg.TopRow = fg.TopRow +
fg.Refresh rsl.MoveNext
k = k +
Loop
fg.rows = fg.rows - End If End If
If fg.rows > Then
fg.TopRow =
fg.Refresh
End If SetRowColor fg
fg.FixedRows =
fg.row =
fg.Col = 'b:
Exit Function 'ShowDataEH:
' MsgBox err & vbCrLf & Error$
' fg.Visible = False
' Resume b End Function

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

Dim rsConstitute As ADODB.Recordset

txtsql = "select SSFXDM,KCWPDM,XTDWDM,SSZJYL from tabv "
Set rsConstitute = Query(txtsql, msgtext) Set FGridCheck.DataSource = rsConstitute

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

Public Function fgclear(fg As MSHFlexGrid)
'
fg.Clear
fg.rows =
fg.Cols =
fg.FixedRows =
fg.FixedCols =
fg.colwidth() =
fg.colwidth() =
fg.row =
fg.Col =
End Function ' 设置MSHFlexGrid每列的颜色
Public Function SetColColor(fg As MSHFlexGrid)
'
Dim i
fg.FillStyle =
For i = To fg.Cols -
fg.Col = i
If i Mod <> Then
fg.row =
fg.RowSel = fg.rows -
fg.CellBackColor = &HC0FFFF
End If
Next i fg.FillStyle =
fg.row =
fg.Col = End Function ' 设置MSHFlexGrid每列的颜色
Public Function colw(fg As MSHFlexGrid) As String
'
Dim i
Dim S
S = ""
For i = To fg.Cols -
S = S & "fg.ColWidth(" & i & ")=" & fg.colwidth(i) & " '" & fg.TextMatrix(, i) & " " & Chr() & Chr()
Next i
colw = S End Function
Public Sub markfg1(ByRef fg As MSHFlexGrid, lb As Label, countlb As Label, delbutton As CommandButton)
Dim r, c
Dim markdgcount As Integer
r = fg.row
c = fg.Col If r <> Then
If InStr(fg.TextMatrix(r, ), "√") = Then
fg.TextMatrix(r, ) = "√ " & fg.TextMatrix(r, )
fg.Col =
fg.CellAlignment = For i = To fg.Cols -
fg.Col = i
fg.CellBackColor = &HFF& '红色 '蓝色&H8000000D
Next If countlb.Caption = "" Then
markdgcount =
Else
markdgcount = CInt(countlb.Caption) +
End If
Else
fg.TextMatrix(r, ) = Right(fg.TextMatrix(r, ), Len(fg.TextMatrix(r, )) - )
If Trim(fg.TextMatrix(fg.row, )) = "N" Then
If r Mod = Then
For i = To fg.Cols -
fg.Col = i
fg.CellBackColor = &HE0E0E0
Next
Else
For i = To fg.Cols -
fg.Col = i
fg.CellBackColor = &HFFFFFF
Next
End If
Else
For i = To fg.Cols -
fg.Col = i
fg.CellBackColor = &H80FF80
Next
End If
If countlb.Caption = "" Then
markdgcount =
Else
markdgcount = CInt(countlb.Caption) -
End If
End If
If markdgcount <> Then
countlb.Caption = markdgcount
lb.Caption = "已选择了 " & CStr(countlb.Caption) & " 条记录!"
delbutton.Enabled = True
Else
countlb.Caption = ""
lb.Caption = ""
delbutton.Enabled = False
End If
End If
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. loadrunner -27778 https连接问题

    Error -27778: SSL protocol error when attempting to read with host "×××.*****"

  2. Webwork【03】核心类 ServletDispatcher 的初始化

    1. Webwork 与 Xwork 搭建环境需要的的jar 为:webwork-core-1.0.jar,xwork-1.0.jar,搭建webwork 需要xwork 的jar呢?原因是这样的,W ...

  3. 关于Android中50M+的文本入库处理细节

    好久没有写技术文章,明早4点还要爬起来赶飞机,感觉这个坑有必要记录一下,以慰藉一下自己脆弱的灵魂.周一和周二忙了2天的样子才解决这个问题,中间填了不少的坑,反正已经夜深了,慢慢地记录一点. 场景:项目 ...

  4. V-rep学习笔记:串口操作

    VREP Regular API提供了串口操作的相关函数,可以对串口进行打开.关闭和读写: 下面使用一款淘宝上常见的AHRS(Attitude and heading reference system ...

  5. LVM逻辑卷管理测试——创建逻辑卷

    虚拟机里再添加两块硬盘,如下所示: 启动系统后,我们可以看到新添加的两块硬盘为/dev/sdb和/dev/sdc.每个2GB. [root@lxjtest ~]# fdisk -l Disk /dev ...

  6. Spark的 运行模式详解

    Spark的运行模式是多种多样的,那么在这篇博客中谈一下Spark的运行模式 一:Spark On Local 此种模式下,我们只需要在安装Spark时不进行hadoop和Yarn的环境配置,只要将S ...

  7. 主成分分析PCA

    PCA(Principal Component Analysis)不仅仅是对高维数据进行降维,更重要的是经过降维去除了噪声,发现了数据中的模式. PCA把原先的n个特征用数目更少的m个特征取代,新特征 ...

  8. Win7 64bit下值得推荐的免费看图软件

    自从更换到Win7 64bit后, 用了十多年的AcdSee3.x不能再正常工作了. 找到了两个替代品: Faststone Image Viewer 和 XnView Faststone Image ...

  9. Region使用全解

    代码地址如下:http://www.demodashi.com/demo/14799.html 前言 Region,即为区域,它表示的是canvas图层上的某一块封闭的区域.很多时候,我们会利用Reg ...

  10. TL Cop

    第一讲 研发技术型人才的特点 一.为何要重视技术与研发技术管理 1.中国技术型企业近十年的发展路线图以及经验教训 2.技术还是营销:中国企业的痛 3.名家论技术与研发技术管理 二.研发技术人才的特点 ...