2,748
社区成员




上述图表功能:图一根据每一款产品的检测效率生成曲线图表;第一次生成的时候没有问题,换另一款产品行生成的时候Y值数据不变。
代码如下:
*以下循环显示所有的記錄的数据
IF SQLEXEC(pnSql_handle,'select ROW_NUMBER() OVER(ORDER BY ID)vid,* from filter_test where lid=?find_allid','tempok4')>0
SELECT tempOk4
COUNT TO gl4
IF gl4>0
thisform.command1.Visible=.T.
thisform.command3.Visible=.t.
thisform.command4.Visible=.T.
#DEFINE CRLF CHR(13)+CHR(10)
#DEFINE TAB CHR(9)
km1=''
km2=''
lcData=''
IF SQLEXEC(pnSql_handle,'select particleD,Efficiency from filter_test where lid=?find_allid','临时表1')>0
SELECT 临时表1
COUNT TO plc
IF plc>0
GO top
SCAN
km1=km1+TAB+ALLTRIM(particleD)
km2=km2+TAB+ALLTRIM(STR(Efficiency,12,6))
ENDSCAN
*以下代码用于生成图表,如果没有生成测试明细则不需要生成
km1=km1+CRLF
km2=km2+CRLF
lcData ='Particle Diameter'+km1+"Efficiency"+km2
CREATE table grapth_source (grapth G) && 创建一个数据表
APPEND BLANK
APPEND GENERAL grapth CLASS "MSgraph.chart" DATA m.lcData && 将数据倒入MSgraph.chart以生成图表
THISFORM.Oleboundcontrol1.CONTROLSOURCE = "grapth"
THISFORM.OleBoundControl1.HasLegend = .F. && 图例说明
THISFORM.Oleboundcontrol1.ChartArea.Font.Size =12 && 设置图表字体
THISFORM.OleBoundControl1.Autoformat(4,5) && 二维曲线图
*THISFORM.OleBoundControl1.Plot.Axis(0)
*THISFORM.Oleboundcontrol1.CONTROLSOURCE = "grapth"
THISFORM.Oleboundcontrol1.Axes(2).HasMajorGridlines = .T. && 关闭主网格线
* thisform.oleboundcontrol1.Refresh
THISFORM.OleBoundControl1.HasTitle = .T.
THISFORM.OleBoundControl1.ChartTitle.Text =fiter_title+" TESTING EFFICIENCY"+CHR(13)+" PERCENTAGE GRAPH"
THISFORM.OleBoundControl1.PlotArea.Interior.Color =RGB(255,255,255) &&设置图标的底色为白色
THISFORM.OleBoundControl1.ChartTitle.Font.Bold = .T. && 字体为粗体
THISFORM.OleBoundControl1.ChartTitle.Font.Color = RGB(0,0,255) && 字体颜色
THISFORM.OleBoundControl1.Axes(1).TickLabels.Font.Size =7 && 字号/主坐标刻度
THISFORM.OleBoundControl1.Axes(2).TickLabels.Font.Size =7 && 字号/次坐标刻度
THISFORM.OleBoundControl1.Axes(1).TickLabels.Font.Name = 'Arail' && 字号/主坐标刻度
THISFORM.OleBoundControl1.Axes(2).TickLabels.Font.Name = 'Arail' && 字号/次坐标刻度
THISFORM.OleBoundControl1.ChartTitle.Font.Name = 'Arail'
THISFORM.OleBoundControl1.Axes(2).MaximumScale=100.00
THISFORM.Oleboundcontrol1.Axes(1).HasMajorGridlines = .F. &&Y轴线隐藏
ENDIF
thisform.oleboundcontrol1.Refresh &&新加
thisform.oleboundcontrol1.SetFocus
thisform.Refresh
thisform.command6.SetFocus
ENDIF
ELSE
MESSAGEBOX('对不起,没有检测数据,请先生成!',64,'系统信息')
prt_ok=1
return
ENDIF
ENDIF
怎样才能让Y轴的数据随着不同的检测效率变动而变动呢?请大家帮帮忙,谢谢!