起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8176|回复: 20

[结贴] 现在有一个新做的界面,牵扯到一个多表的判断和计算...

[复制链接]

107

主题

475

帖子

1078

积分

金牌会员

Rank: 6Rank: 6

积分
1078
QQ
发表于 2014-4-22 19:08:49 | 显示全部楼层 |阅读模式
版本: X5.2.7 小版本号: 2644
数据库: Oracle 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 7 浏览器: Chrome
本帖最后由 tianshan80 于 2014-4-22 19:10 编辑

界面有3个bizdata,JSZB,HTJSTK,JCZJB,其中,JSZB为dataMaster,根据向导中的单表列表详细界面生成界面,然后添加的HTJSTK和JCZJB两个BIZDATA,下面是三个表要用到的数据举例:
JCZJB:
QYPHHTIDJYXMBH(检验项目编号)JYXMMC(检验项目名称)JYZ(检验值%)
201404140001
11231
2008
水份
5
201404140001
11231
2009
49

HTJSTKB:
HTIDJYXMBH(检验项目编号)JYXMMC(检验项目名称)TZFH(调整符号)HTJYZ(合同规定值%)KKJJ(扣款基价)TZFD(调整幅度)
11231
2008
水份1(升)
4
15
1
11231
2009
2(降)
50
60
2

JSZB:
QYPHHTIDWLMCSL(数量)JLKK(质量扣款)
201404140001
11231
镍铁
25.12
要实现的功能是:在界面中选择QYPH201404140001后,首先用JCJZB中该QYOH的质检信息逐条去找HTJSTKB中相同HTID和JYXMBH的信息对应,然后根据TZFH(调整符号)进行判断:
IF TZFH=2 && JYZ<HTJYZ        JLKK=(HTJYZ - JYZ) * KKJJ / TZFD
IF TZFH=2 && JYZ >=HTJYZ    JLKK=0
IF TZFH=1 && JYZ>HTJYZ        JLKK=(JYZ-HTJYZ) * KKJJ / TZFD
IF TZFH=1 && JYZ <=HTJYZ    JLKK=0
最后算出的JLKK的和是最终结果放到JSZB中的JLKK中,如上图的数据,计算结果应该是水份JYZ>HTJYZ,扣款(5-4)*15/1=15,镍JYZ<HTJYZ,扣款(50-49)*60/2=30,最终扣款为45,则ZLKK=45这个判断如何实现?主要是如何取值和将质检信息逐条对应,对应后的判断我会写,请解答的详细些,基础太差,太简单了理解不了啊。
现在也没法悬赏,要不我就悬赏了。。。。。这个对我来说难度好大,解决了基本上现在做的程序的难点就全解决了。请起步的大神和论坛里的大神都帮帮忙啊。


38

主题

829

帖子

1656

积分

金牌会员

过客

Rank: 6Rank: 6

积分
1656
QQ
发表于 2014-4-22 19:18:42 | 显示全部楼层
我的想法是,只要数据进入数据库这个操作就简单了。反正页面有个保存,相应的grid也有保存,填完单子保存之后,来进行这个数据的判断没然后计算出来,setvalue.

评分

参与人数 1 +2 收起 理由
jishuang + 2 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

107

主题

475

帖子

1078

积分

金牌会员

Rank: 6Rank: 6

积分
1078
QQ
 楼主| 发表于 2014-4-22 20:35:59 | 显示全部楼层
怎么把数据获取过来呢?。。。。求代码
回复 支持 反对

使用道具 举报

38

主题

829

帖子

1656

积分

金牌会员

过客

Rank: 6Rank: 6

积分
1656
QQ
发表于 2014-4-22 20:57:51 | 显示全部楼层
本帖最后由 daniel007 于 2014-4-22 20:59 编辑

流转时就会自动保存。使用getValue获取值进行比对然后计算出你想要的值,把这个值,setValue到相应要写的地方就行。如果要用语句操作数据库的数据就必须先保存数据,等数据写入数据库之后,使用SQl来对语句进行操作JAVA,这个随你选择。
回复 支持 反对

使用道具 举报

107

主题

475

帖子

1078

积分

金牌会员

Rank: 6Rank: 6

积分
1078
QQ
 楼主| 发表于 2014-4-23 07:50:43 | 显示全部楼层
现在数据就在数据库里了,怎么写代码让系统自动过滤出同QYPH,HTID,JYXMBH的数据进行对比计算啊?就是这里不会,要让它们自动对比啊
回复 支持 反对

使用道具 举报

17

主题

355

帖子

772

积分

高级会员

Rank: 4

积分
772
QQ
发表于 2014-4-23 09:19:11 | 显示全部楼层
这样的逻辑关系应该放到数据库去解决,搞清楚几个表的关系,之后写一个视图来解决
oracle数据库可以解决这样的问题。
换一种思路去解决也许会更好的!!!多表关系可联系我帮你写,qq31319025

评分

参与人数 1 +4 收起 理由
jishuang + 4 赞一个!

查看全部评分

一步一步走向那迦南地......
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2014-4-23 10:00:20 | 显示全部楼层
tianshan80 发表于 2014-4-23 07:50
现在数据就在数据库里了,怎么写代码让系统自动过滤出同QYPH,HTID,JYXMBH的数据进行对比计算啊?就是这里不 ...

可以自己调用action,把选择的QYPH201404140001后,把需要做条件的信息用做参数,传过去,然后自己写sql,用传过来的参数做条件查询过滤JCJZB和HTJSTKB中的数据,然后自己写判断进行计算,把计算的值再返回
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

107

主题

475

帖子

1078

积分

金牌会员

Rank: 6Rank: 6

积分
1078
QQ
 楼主| 发表于 2014-4-23 20:15:17 | 显示全部楼层
做了一个视图来取数,然后在界面上加了个GRID显示出来,如图所示,下面3行数据是用GRID显示的视图的数据, QQ图片20140423200853.jpg
现在要实现将下面三行数据各自计算出ZLKK,然后三行ZLKK之和写到罚款那个位置的INPUT组件中(id: iptFKJE)应该怎么写代码?具体每一行的计算代码我写好了测试可以单独计算,怎么实现三行自动分别计算出来,可以加个按钮来实现也行。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2014-4-24 09:03:17 | 显示全部楼层
如果要加个按钮实现,那就遍历data,每行去计算,参考http://bbs.justep.com/forum.php? ... 2&pid=164960999
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

107

主题

475

帖子

1078

积分

金牌会员

Rank: 6Rank: 6

积分
1078
QQ
 楼主| 发表于 2014-4-24 11:03:19 | 显示全部楼层
   var d = justep.xbl('bizData1');        
        for ( var i = 0; i < d.getCount(); i++) {
                var rowid = d.getID(i);
                var JYZ = d.getValue('JYZ',rowid);
                var HTJYZ = d.getValue('HTJYZ',rowid);   
                var ZLKK = JYZ - HTJYZ;       
        d.setValue("ZLKK", rowid);       
        }

加了按钮写的代码如上,点击以后,只有第一行的ZLKK出了结果,结果也不对,代码应该怎么改啊?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-18 12:41 , Processed in 0.085521 second(s), 33 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表