针对MSHFlexGrid的一系列通用方法-项目中实践代码分享
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的一系列通用方法-项目中实践代码分享的更多相关文章
- Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码
Roslyn 是微软为 C# 设计的一套分析器,它具有很强的扩展性.以至于我们只需要编写很少量的代码便能够分析我们的项目文件. 作为 Roslyn 入门篇文章,你将可以通过本文学习如何开始编写一个 R ...
- Hystrix在项目中实践
Hystrix在项目中实践 https://mp.weixin.qq.com/s/4Fg0COnWRB3rRWfxbJt7gA
- 动态调用WebService 通用方法Moss 中 传统开发中都可用。
WebService是啥大家都知道了,这里不做过多的解释.通常我们使用WebService的做法基本都是在我们的项目中添加Web引用的方式,首先找到WebService的地址,然后定义命名空间,这样会 ...
- 最新广商小助手 项目进展 OpenGL ES 3D在我项目中引用 代码太多只好选重要部分出来
package com.example.home; import java.io.IOException; import java.io.InputStream; import javax.micro ...
- 高质量代码优化!谈谈重构项目中if-else代码的几点建议
switch if - else只适合在3层之内使用 当条件判断较多时,可以首先考虑使用switch interface 当判断条件还可能动态增加时,可以考虑将switch进一步优化,引入接口inte ...
- [git]安装git-pylint-commit-hook提高python项目中的代码质量
什么是'git-pylint-commit-hook' 我在工作中,团队为了保证代码和提高代码的质量,要求每个项目都要求安装git-pylint-commit-hook,它是个钩子,会在你提交代码到本 ...
- 吐槽一下项目中的代码坏味道:滥用java常量
我们的项目中是否充斥着类似以下的代码呢?定义一个专门存放常量的java类(接口),非常多其它类依赖该常量类. public interface IConstant { int ZERO = 0; St ...
- 使用eslint将项目中的代码修改统一的缩进
背景 继承了组里师兄师姐写的项目的前端代码,但是是两个人写的,有两格缩进的,有四格缩进的,有字符串外用单引号的,有用双引号的. 于是搜索了一下,可以用eslint强制转化. eslint在github ...
- js数组高阶方法reduce经典用法代码分享
以下是个人在工作中收藏总结的一些关于javascript数组方法reduce的相关代码片段,后续遇到其他使用这个函数的场景,将会陆续添加,这里作为备忘. javascript数组那么多方法,为什么我要 ...
随机推荐
- .NET MVC中登陆授权过滤器的使用
1.写个类LoginAuthorityAttribute,继承自AuthorizeAttribute using System; using System.Collections.Generic; u ...
- C# FTP常规方法
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- TQ2440开发板挂载U盘出现乱码
解决方法:配置内核 make menuconfig File Systems ---> DOS/FAT/NT Filesystems ---> (utf8) D ...
- Springmvc之接受请求参数二
Springmvc之接受请求参数 准备工作 新建一个表单提交 请求地址: http://localhost:8080/ProjectName/user/login.do <form action ...
- NameNode重新格式化以后DataNode不能启动
最近重新格式化NameNode以后,发现几个DataNode都不能启动了. 这是因为dfs.name.dir路径下面有一个current/VERSION文件,里面有一个clusterID,重新格式化以 ...
- Grunt、Gulp和Webpack对比
1.Grunt处理Sass转换成CSS过程 2.Gulp处理Sass转换成CSS过程 3.Webpack执行原理 4.区别 (1)grunt和gulp都类似于webapck的中的scripts,属于任 ...
- Python学习笔记六:数据库操作
一:Python操作数据库的流程 二:开发环境准备 1:开发工具PyCharm 2:Python操作mysql的工具:需要安装Python-Mysql Connector,网址:https://sou ...
- Cas Server源码编译现场实例
最近公司有项目需要做单点登录,根据要求就写下这篇从github上下载的包到项目编译通过,再到修改原代码实现自己的特殊逻辑. 前提: java环境 tomcat环境 maven环境 MyEclipse开 ...
- OpenCV实现任意大小图片的合并(转)
OpenCV实现图像合并主要有两种方法 方法一:使用Mat.push_back方法将列数相同的图像加到最后一行 方法二: 主要思路是将图像拷贝到待合并图像的感兴趣区域 (1)新建一个要合并的图像(容器 ...
- 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 ...