vfp 图表的应用问题

cwh820915 2025-02-25 11:32:47

 

 上述图表功能:图一根据每一款产品的检测效率生成曲线图表;第一次生成的时候没有问题,换另一款产品行生成的时候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轴的数据随着不同的检测效率变动而变动呢?请大家帮帮忙,谢谢!

...全文
73 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,748

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧