Foxtable(狐表)用户栏目专家坐堂 → 有点复杂的计算过程如何实现


  共有3237人关注过本帖树形打印复制链接

主题:有点复杂的计算过程如何实现

帅哥哟,离线,有人找我吗?
有点色
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/10 20:54:00 [只看该作者]

 你还要输入 性别、年龄 才能计算的。

 回到顶部
帅哥哟,离线,有人找我吗?
yangjing
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:285 积分:2254 威望:0 精华:0 注册:2011/8/16 10:11:00
  发帖心情 Post By:2017/5/10 21:30:00 [只看该作者]

、谢谢您好,不好意思,上面计算过程还少了一个环节,就是还需要乘上“体重”,我早界面上忘记增加了,能麻烦您修改下代码吗


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170510212858.png
图片点击可在新窗口打开查看

还有就是当点击“生成图表”能根据“总热量”和“总时间”,分别生成百分比饼状图在界面的右边的框架里面吗,谢谢
[此贴子已经被作者于2017/5/10 21:32:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/10 21:44:00 [只看该作者]

先看懂代码,如果要加重量的条件,在原来的条件加上即可。

 

生成图表,参考 http://www.foxtable.com/webhelp/scr/0972.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
yangjing
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:285 积分:2254 威望:0 精华:0 注册:2011/8/16 10:11:00
  发帖心情 Post By:2017/5/10 21:51:00 [只看该作者]

谢谢,可以了,我限制下显示的长度值
加了这段代码
Forms("主窗体").Controls("TextBox11").FormatString = "#0.00"
为什么显示的还是不变呢?


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170510215147.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2017/5/10 21:52:31编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/11 1:56:00 [只看该作者]

计算的时候,直接修改计算的代码

 

http://www.foxtable.com/webhelp/scr/0361.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
yangjing
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:285 积分:2254 威望:0 精华:0 注册:2011/8/16 10:11:00
  发帖心情 Post By:2017/5/11 19:38:00 [只看该作者]

有点色版主您好,关于作图我按照帮助文档来弄,先把控件的数值写入一张临时表,但是请问我如何顺序写入第二条记录呢?

我建的临时表是这样的

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170511200247.png
图片点击可在新窗口打开查看


我的代码是这样的

Dim rn1 As Integer = val(e.Form.Controls("TextBox11").text)
Dim rn2 As Integer = val(e.Form.Controls("TextBox21").text)
Dim rn3 As Integer = val(e.Form.Controls("TextBox31").text)
Dim rn4 As Integer = val(e.Form.Controls("TextBox41").text)
Dim sj1 As Integer = val(e.Form.Controls("TextBox12").text)
Dim sj2 As Integer = val(e.Form.Controls("TextBox22").text)
Dim sj3 As Integer = val(e.Form.Controls("TextBox32").text)
Dim sj4 As Integer = val(e.Form.Controls("TextBox42").text)
Tables("作图用临时表").Current("项目") = "有氧运动"
Tables("作图用临时表").Current("总热能") = rn1
Tables("作图用临时表").Current("总时间") = sj1
Tables("作图用临时表").Current("项目") = "力量运动"
Tables("作图用临时表").Current("总热能") = rn2
Tables("作图用临时表").Current("总时间") = sj2
Tables("作图用临时表").Current("项目") = "柔韧运动"
Tables("作图用临时表").Current("总热能") = rn3
Tables("作图用临时表").Current("总时间") = sj3
Tables("作图用临时表").Current("项目") = "日常活动"
Tables("作图用临时表").Current("总热能") = rn4
Tables("作图用临时表").Current("总时间") = sj4
[此贴子已经被作者于2017/5/11 20:03:38编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/11 20:09:00 [只看该作者]

Dim rn1 As Integer = val(e.Form.Controls("TextBox11").text)
Dim rn2 As Integer = val(e.Form.Controls("TextBox21").text)
Dim rn3 As Integer = val(e.Form.Controls("TextBox31").text)
Dim rn4 As Integer = val(e.Form.Controls("TextBox41").text)
Dim sj1 As Integer = val(e.Form.Controls("TextBox12").text)
Dim sj2 As Integer = val(e.Form.Controls("TextBox22").text)
Dim sj3 As Integer = val(e.Form.Controls("TextBox32").text)
Dim sj4 As Integer = val(e.Form.Controls("TextBox42").text)
Dim t As Table = Tables("作图用临时表")
t.DataTable.DataRows.Clear
Dim nr1 As Row = t.AddNew
nr1("项目") = "有氧运动"
nr1("总热能") = rn1
nr1("总时间") = sj1
Dim nr2 As Row = t.AddNew
nr2("项目") = "力量运动"
nr2("总热能") = rn2
nr2("总时间") = sj2
Dim nr3 As Row = t.AddNew
nr3("项目") = "柔韧运动"
nr3("总热能") = rn3
nr3("总时间") = sj3
Dim nr4 As Row = t.AddNew
nr4("项目") = "日常活动"
nr4("总热能") = rn4
nr4("总时间") = sj4

 

 

 没必要写入表的,你不是可以直接给图表赋值?这样就不需要表这一步。


 回到顶部
帅哥哟,离线,有人找我吗?
yangjing
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:285 积分:2254 威望:0 精华:0 注册:2011/8/16 10:11:00
  发帖心情 Post By:2017/5/11 20:15:00 [只看该作者]

我尝试了直接赋值作图,但是好像不对,我给您看下代码
Dim rn1 As Integer = val(e.Form.Controls("TextBox11").text)
Dim rn2 As Integer = val(e.Form.Controls("TextBox21").text)
Dim rn3 As Integer = val(e.Form.Controls("TextBox31").text)
Dim rn4 As Integer = val(e.Form.Controls("TextBox41").text)

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart= Forms("主窗体").Controls("Chart1") ' 引用窗口中的图表
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
For Each r As Row In t.Rows
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 1 '一个系列只能包括一个值
    Series.Y(0) = r("rn1" "rn2"  "rn3" "rn4") '指定值
Next
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/11 20:34:00 [只看该作者]

参考代码

 

Dim rn1 As Double = val(e.Form.Controls("TextBox11").text)
Dim rn2 As Double = val(e.Form.Controls("TextBox21").text)
Dim rn3 As Double = val(e.Form.Controls("TextBox31").text)
Dim rn4 As Double = val(e.Form.Controls("TextBox41").text)


Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart= Forms("主窗体").Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)

Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = 1 '一个系列只能包括一个值
Series.Text = "11111"
Series.Y(0) = rn1
Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = 1 '一个系列只能包括一个值
Series.Text = "22222"
Series.Y(0) = rn2
Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = 1 '一个系列只能包括一个值
Series.Y(0) = rn3
Series.Text = "3333"
Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = 1 '一个系列只能包括一个值
Series.Y(0) = rn4
Series.Text = "4444"

Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)


 回到顶部
帅哥哟,离线,有人找我吗?
yangjing
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:285 积分:2254 威望:0 精华:0 注册:2011/8/16 10:11:00
  发帖心情 Post By:2017/5/11 20:45:00 [只看该作者]

谢谢您的指点,我想把右边的图示去掉,直接在饼状图上显示类别类别和百分比,您看代码加载后面可以吗?
Dim r As Row = t.Current
Dim sum As Double ="rn1” + "rn2" + "rn3" + "rn4"
Dim cs() As String = {"有氧运动","力量运动","柔韧运动","日常活动"}
For Each c As String In cs
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 1 '一个系列只能包括一个值
    Series.DataLabelText = c & "(" & Format(r(c)/sum, "0.00%") & ")"
    
    Series.Y(0) = r(c) '指定值
Next
[此贴子已经被作者于2017/5/11 20:46:10编辑过]

 回到顶部
总数 23 上一页 1 2 3 下一页