当前位置:
文档之家› VB环境下MSChart控件的应用与研究
VB环境下MSChart控件的应用与研究
某个油田的区块做横坐标,井口数做纵坐
标而形成的“井口数统计图”为例,如图
1所示。
图1 井口数统计图
在此图中,由于区块过多,显示得不清楚,完全分不出哪个区块
对应的数值。解决这样的问
题,操作步骤为:
(1)将区块用编码表
示,如图2所示。
(2)用CommandButton
按钮,显示编码所表示的区
图2 井口数统计数据编码图
If Not IsNull(mRecordset1.Fields(1).Value) Then
js = js + mRecordset1.Fields(1).Value
End If
MRecordset1.Close
mRecordset_main.MoveNext
Wend
End With
(2)区块大于10个时的具体代码:
.RowLabel = ""
Else
.RowLabel = mRecordset_main!qk
'行显示的内容(油田区块)
End If
If Not IsNull(mRecordset1.Fields(0).Value) Then
k = k + mRecordset1.Fields(0).Value
End If
网络纵横
2008年第9期 146
VB环境下MSChart控件的应用与研究
李旭东
(山东胜利职业学院)
摘 要 在Visual Basic 6.0环境下,MSChart控件还有些不能实现的功能,如横坐标的内容显示不清楚,MSChart控件的宽度如何自 动调整以及调整后如何显示看不见的部分。本文主要针对以上问题,就如何改进及应用MSChart控件进行了探讨。
'行数 (总共有
多少行)
147
2 0 0 8年第9期
网络纵横
While Not mRecordset_main.EOF j=j+1 sql1 = "select count(jh),sum(sjjs) from p_cx_tj where qk='" & mRecordset_main!qk & "'" mRecordset1.Open sql1, mobjCnn .row = j if IsNull(mRecordset1.Fields(0).Value) Then .Data = 0 Else .Data = mRecordset1.Fields(0).Value '行数据值(总记录个数) End If .RowLabel = j if IsNull(mRecordset_main!qk) Then Mmsgbox = Mmsgbox & " " & j & " " & "" Else Mmsgbox = Mmsgbox & " " & j & " " & mRecordset_main!qk '行显示的内 容(区块) End If If Not IsNull(mRecordset1.Fields(0).Value) Then k = k + mRecordset1.Fields(0).Value End If If Not IsNull(mRecordset1.Fields(1).Value) Then js = js + mRecordset1.Fields(1).Value End If mRecordset1.Close mRecordset_main.MoveNext Wend End With 4.2 将MSChart控件与Hscroll控件绑定具体代码 Private Sub HScroll1_Change() Dim j As Long, isn As Integer
(收稿日期:2008·06·24)
(接119页)周期内(设其最小周期为N)实现相位与要求的脉冲完 全吻合。改进后的小数分频第K+1次脉冲相位差可以表示为:
将频率合成器的输出脉冲可能引起的最大时偏从原有F-NPLL结构的 一个基准时钟 降低到0.5 。这种电路具有结构简单、易于实现 和集成、非常适合ASIC设计等优点。
HScroll1.Visible = False
Else
MSChartTJ.Width = 280 * mRecordset_main.RecordCount
HScroll1.Visible = True
End If
With MSChartTJ
'井口数直方图
.RowCount = mRecordset_main.RecordCount
由(2)式 ̄(6)式的推导可知,改进的小数分频器的最大时偏
小于等于0.5 ,即相位差始终满足
,相位杂散获得很大
程度的减小。
3 结论
小数分频在不改变降低基准频率的情况下提高频率分辨力,解决 了转换速率和频率分辨率之间的矛盾,改进的小数分频进一步减小了 相位杂散,提高了小数分频的瞬时脉冲频率的精度。本文作者创新 点:采用以比较器和常数寄存器为主的电路结构改进的小数分频技术
5 结论
MSChart控件是一个比较复杂的技术。对VB中的控件而言,除了 前面自身内置的几个属性,一些功能也可以借助其它控件来辅助实 现。另外,在具体的编程过程中,可能还要根据自己具体的要求来做 某些此控件本身无法完成的事情。该方法已经成功应用于胜利企业版 IDDS软件中,取得了良好的效果。
参考文献
2005.4
(收稿日期:2008·07·09)
(接116页)分析产量下降的主要原因应是洗井造成地层污染。由于 距注水井只有150m左右,不宜实施水力压裂,2007年12月46日对该 井实施冲击波解堵,在机采参数不变的情况下,产液量达17.4m3/d, 产油量从0.7t/d上升到3.7t/d。该井自2007年12月实施冲击波解堵以 后,没有采取其它措施,已累计增油2199.7t。
'行数 (总共有
多少行)
While Not mRecordset_main.EOF
j=j+1
sql1 = "select count(jh),sum(sjjs) from p_cx_tj where qk='" &
mRecordset_main!qk & "'"
mRecordset1.Open sql1, mobjCnn
首先新建一个窗体,选择“工程”菜单中的“部件”,在弹出的 对话框中找到“Microsoft Chart Control 6.0(OLEDB)”,将其前面的 复选框选中点击“应用”,后“确定”,那么在“工具箱”中就显示 此控件了。这样就可以将MSChart控件放到窗体合适的位置了,同时 就可以对它做任意的操作了。
5 结论与认识
(1)冲击波解堵工艺现场应用成功率较高,为物理法解堵的首 选工艺。
(2)选井过程中,要找出油井产量下降的主要原因,如属于钻 井泥浆污染、油井结垢、洗井堵塞等机械杂质及有机垢造成的油水井 近井地带污染,其实施效果更好。
(3)选层过程中,要分析和考虑储集层的孔/渗/饱特性,同时要 充分利用油水井的动态监测资料,科学合理的选井选层,做到有的放 矢。
块即“区块与编码的对照表”,如图3所示。
图3 区块与编码的对照表
3 MSChart控件自动调整的实现方法
对应数据很多时,可以将MSChart控件本身的宽度改变。同时为 了能看到变宽后的内容还使用了Hscroll控件来控制,Hscroll控件是水 平滚动条,完全可以和MDI 窗体上的滚动条一样的使用。实现方法 操作步骤为:①将MSChart控件的宽度(Width)属性随数据改变;②将 MSChart控件与Hscroll控件绑定。
If mRecordset_main.RecordCount > 10 Then '防止行数多了时,显示不开
CommandJKS.Visible = True '按钮能用
If 280 * mRecordset_main.RecordCount < 10425 Then
MSChartTJ.Width = 10425
.row = j
If IsNull(mRecordset1.Fields(0).Value) Then
.Data = 0
Else
.Data = mRecordset1.Fields(0).Value
'行数据值(总记录个数)
End If
If IsNull(mRecordset_main!qk) Then
[1] Steven Holzner.VisualBasic 6技术内幕[M].北京:机械工业出版
社,1999
[2] 丁爱萍 . VisualBasic 程序设计 .西安:西安电子科技大学出版
社, 2004-06-01
[3] 高春艳等. Visual Basic开发技术大全 . 北京:人民邮电出版社,
4 经济效益分析
从2005年6月至2007年6月底,在GJ、MTZ、WZT等3个油田实施 冲击波解堵,共15井次,其中Z2-22、G6-55两口井基本无效,有效 12井次,措施有效率80%,累计增产76万元,投入产出比约为1:32.5,经 济效益十分显著。
isn = HScroll1.Max j = HScroll1.Value + MSChartTJ.Left MSChartTJ.Left = MSChartTJ.Left - j End Sub Private Sub HScroll1_Scroll() MSChartTJ.Left = 0 - HScroll1.Value End Sub 4.3 用CommandButton按钮,显示编码所表示的区块即“区块与编码 的对照表” 在给MSChart控件赋值时,已经将Mmsgbox做成一个字符串,并 且是Public类型的。具体代码如下: Private Sub CommandJKS_Click() MsgBox Mmsgbox, vbOKOnly, "区块与编号的对比" End Sub
的,直接显示区块真正的名称,不需要对区块进行编码表示。 设当前MSChart控件的name为MSChartTJ;用到的数据记录集为