针对MSHFlexGrid的一系列通用方法-项目中实践代码分享

时间:2022-12-16 16:36:45

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. &lbrack;git&rsqb;安装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. jvm

    -Xms128m表示JVM Heap(堆内存)最小尺寸128MB,初始分配-Xmx512m表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配. 说明:如果-Xmx不指定或者指定偏小,应用 ...

  2. bzoj 2761&colon; &lbrack;JLOI2011&rsqb;不重复数字

    #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #d ...

  3. ZOJ 3157 Weapon --计算几何&plus;树状数组

    题意:给一些直线,问这些直线在直线x=L,x=R之间有多少个交点. 讲解见此文:http://blog.sina.com.cn/s/blog_778e7c6e0100q64a.html 首先将直线分别 ...

  4. HDU 2364 &lpar;记忆化BFS搜索&rpar;

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2364 题目大意:走迷宫.从某个方向进入某点,优先走左或是右.如果左右都走不通,再考虑向前.绝对不能往 ...

  5. mysql 高可用方案漫谈(一) 转阿里云

    https://yq.aliyun.com/articles/2237?spm=5176.blog2238.yqblogcon1.7.e5fyEy#index_section

  6. &lbrack;Node&period;js&rsqb; Exporting Modules in Node

    In this lesson, you will learn the difference between the exports statement and module.exports. Two ...

  7. javascript 的点击复制事件

    function copy() { var text=document.getElementById("txtUser").value; if(copy2Clipboard(tex ...

  8. 如何从二维数组中的多个key中获取指定key的值?

    精华 LOVEME96 2016-10-21 10:40:19 浏览(1512) 回答(3) 赞(0) 新手求教:二维数组中一般会有多个key,如果我们要获得指定key的值,应该怎么做? 问题标签: ...

  9. P1742 最小圆覆盖(计算几何)

    体验过\(O(n^3)\)过\(10^5\)吗?快来体验一波当\(wys\)的快感吧\(QAQ\) 前置芝士1:二元一次方程组求解 设 \[\begin{cases}a1 * x + b1*y=c1\ ...

  10. 将 Desktop Central 与帮助台和 OS Deployer 集成

    将 Desktop Central 与帮助台和 OS Deployer 集成 Desktop Central 可以与以下应用程序集成: 帮助台 OS Deployer Asset Explorer 与 ...