找回密码
 注册成为天翎用户
查看: 877|回复: 5

[已解决] 一些数据来自第三方数据库

[复制链接]
jqfang 发表于 2015-5-12 14:50:14 | 显示全部楼层 |阅读模式
本帖最后由 karrman 于 2015-5-28 10:38 编辑

要做一流程,表单中的PO信息来自第三方DB2。输入PO #, 对应PO的信息,像客户名,产品名,订单数量,价格等自动带出来。 请问在表单项,PO#, 客户名,价格等,怎样写script?
dataSource:本地MySql 名, Anaheim,
第三方DB2名: AS400      Test database, connect success!
PO order 在DB2 中表单名: POrderDetail, 该表单的列名, PO#, customer, product, item#, price.



karrman 发表于 2015-5-12 15:22:10 | 显示全部楼层
有两种方式实现,你可以通过视图选择框,带出字段PO、客户名,产品名,订单数量,价格,视图选择框放在PO字段旁边;
视图用sql实现
var sql ="select '"+getDomainid()+"' as domainid,PO as item_PO, customer as  item_customer, product as item_product, price as item_price from AS400.POrderDetail ";
sql;
或者是不用视图选择框的形式,输入PO,带出客户名,产品名,订单数量,价格
你在po的值脚本中,写如下脚本
var doc=getCurrentDocument();
var po=doc.getItemValueAsString("PO");
if(po!=null||po!=""){
    var sql="select '"+getDomainid()+"' as domainid,PO as item_PO, customer as  item_customer, product as item_product, price  as item_price from POrderDetail where  PO='"+PO+"' ";
          var datart=queryByDSName("AS400",sql);
          if(datart!=null){
                 for(var iterator = datart.iterator();iterator.hasNext();){  
                 var map1 = iterator.next();
                 var customer=map1.get("item_customer");
                 var product=map1.get("item_product");
                 var price=map1.get("item_price");
                  break;

          }
          doc.findItem("customer").setValue(customer);
          doc.findItem("product").setValue(product);
          doc.findItem("price").setValue( price);


}
}
po;
回复

使用道具 举报

 楼主| jqfang 发表于 2015-5-13 13:49:09 | 显示全部楼层
MyApps 表单上PO#, customer, product, price 的Text field名是什么? 和DB2的列名一样吗?
回复

使用道具 举报

karrman 发表于 2015-5-13 14:04:21 | 显示全部楼层
如果你表单的名字不一样,你就修改注释那4行就好,修改你表单字段的名称
var doc=getCurrentDocument();
//var po=doc.getItemValueAsString("PO");
if(po!=null||po!=""){
    var sql="select '"+getDomainid()+"' as domainid,PO as item_PO, customer as  item_customer, product as item_product, price  as item_price from POrderDetail where  PO='"+PO+"' ";
          var datart=queryByDSName("AS400",sql);
          if(datart!=null){
                 for(var iterator = datart.iterator();iterator.hasNext();){  
                 var map1 = iterator.next();
                 var customer=map1.get("item_customer");
                 var product=map1.get("item_product");
                 var price=map1.get("item_price");
                  break;

          }
//         doc.findItem("customer").setValue(customer);
   //       doc.findItem("product").setValue(product);
    //      doc.findItem("price").setValue( price);


}
}
回复

使用道具 举报

 楼主| jqfang 发表于 2015-5-26 11:19:44 | 显示全部楼层
谢谢Karman! 问题已经解决了。 请结贴。
回复

使用道具 举报

karrman 发表于 2015-5-28 10:38:37 | 显示全部楼层
感谢楼主反馈,可以结贴!
回复

使用道具 举报

本版积分规则

手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-14 07:57

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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