针对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数组那么多方法,为什么我要 ...
随机推荐
- Zabbix通过Nginx状态来监控网站并发量
一.开 启Nginx状态 一.安装Nginx 执行命令:yum install nginx 二.启动Nginx 执行命令:systemctl start nginx 三.配置Nginx开启Status ...
- JMX入门开发
什么是JMX?或者是JMX是做什么的?我的理解是:可以远程管理/编辑JAVA对象.如图: 上面的SchemaName属性就是可以动态修改的,那么是如何做到的哪?下面咱们逐步分析. 一.首先假设咱们有个 ...
- sqlalchemy 获取计数 count
from sqlalchemy import func message_count = self.db.query(func.count(Message.uid)).filter(Message.ui ...
- AndroidStudio不自己主动加入新创建的文件到VCS
从远程仓库下载了一份源代码,版本号控制是用的SVN.但发现了一个问题.改动和删除文件时,版本号管理都有记录. 可是假设我新建一个文件时.却发现没有自己主动关联到VCS,也不能手动加入到VCS中,这样我 ...
- ORACLE 定时运行存储过程经常使用时间间隔
君阁-笔记 1.建立存储过程.形如: create or replace procedure deleteTableProcedures is begin delete POST_DAY; del ...
- Cocos2d-X中的声音和音效
在玩游戏时都会有各种游戏音,如启动游戏时会有背景音,胜利或者失败会有一些音效.在Cocos2d-X中能够使用CocosDenshion实现各种声音 在使用CocosDenshion之前须要在程序中加入 ...
- SSM实战——秒杀系统之高并发优化
一:高并发点 高并发出现在秒杀详情页,主要可能出现高并发问题的地方有:秒杀地址暴露.执行秒杀操作. 二:静态资源访问(页面)优化——CDN CDN,内容分发网络.我们把静态的资源(html/css/j ...
- Hibernate学习笔记五:反向工程快速开发
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6768513.html 一:反向工程 Myeclipse提供由 数据库表 生成 java pojo 和 hib ...
- 在Ubuntu上安装pyenv 相关问题Common build problems
Requirements: Ubuntu/Debian: sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libb ...
- unique_ptr与std::move的使用
形参为unique_ptr u2,而后实参为std::move(unique_ptr u1),这样会将原本u1的内存传递给u2,避免了传递拷贝.例如: void fun(std::unique_ptr ...