研究、分享我学习零售业SAP的历程
------------打造中国第一个零售SAP博客
1,中英文
在我工作的版本中(250d),首先是遇到了中文问题:
a)中文登陆时,左面菜单还是英文,这个地解决方案在论坛里提到了,基本是个小bug
b)表单提交的乱码问题,这个应该是表单提交时默认的encode问题,我不知道现在的版本怎么样了,是不是已经解决了这个问题,不过我当时就在WFilter那个servletfilter里面加了几行代码,硬生生的把request.setCharacterEncoding("gb2312")了,方正我的用户除了英文就是中文,不会有别的了。
2, callout功能
没考察过现在的版本,不过这个功能的实现我做的还是挺容易的。callout是由MTab雷实现的,并且运行后的值也是放在MTab的object中的。所以我的实现仅仅是在有callout的field上,加一段javascript,让页面重新reload,提交到WWindow,提交后也只需要把叶面的value置到相应的mfield里,callout就会运行,当叶面重新回来就可以了。当然,如果你在callout里面放了些swing/awt程序,那就没办法了。
3,process
这个我的版本里除了一个空空的WProcess,什么都没给,基本上是自己实现的。
并且这个也是我现在回头看,实现的比较失败的一个。
整个实现方式是完全模仿swing界面的,当用户点击菜单上的按钮(或者菜单栏)时,调用一段javascript,探出一段模式对话框,提交给WProcess,然后由叶面参数获得相应的MField对象-〉生成VButton对象-〉生成WebDoc对象,显示该process的名称,帮组信息,返回用户。
用户点击ok-〉重新提交给WProcess-> 生成相应的MProcess, MPInstance, ProcessInfo对象-〉WebDoc对象,显示该process需要输入的参数->返回给用户
用户输入参数,重新提交给WProcess-〉执行该process,这个不难,我模仿ProcessCtrl写了一个WProcessCtrl,该调class调class,该调store procedure调procedure。
返回执行结果信息给用户
当然,按钮点下后,除了一般的这些,还有些稍微特殊一点,比如DocAction,这个我也是依葫芦画飘,模仿了写了一个,只不过awt的变成了ecs。
还有些hardcode的探出窗口,那就没办法了,一个一个移吧。

4,报表
这个,我们的项目中,没用到compiere自带的报表工具,所以也是还好。
我用的是JasperReports,我的报表集成本来就是sessionbean的,也好做,在前面process执行的时候,加了一条特殊路径,执行报表的。
JasperReports给了很多sample,有web的。一看是想用applet来实现,这样就可以有desktop客户端一样的功能,代码也是sample里现成的。不过项目组的成员强烈反对用applet。所以就直接返回给客户一个pdf了。
5,查询
这个,我只实现了简单的查询,(在desktop版本上,点search后,出现的窗口中有两块,一个是基本的查询,还有一个advance的)
这个可以模仿desktop版本相应的代码。

6,info窗口
这个就是productinfo, bpartnerinfo那些弹出窗口,我的版本里已有了WLookup地实现,就是所有的弹出窗口都能显示简单的name字段,然后你选中后,返回一个ID的主页面上。 而我所作的就是对于一些特殊的column,如M_Product_ID,在WLookup中,从定向到另一个servlet中,然后在那个servlet里面,用ecs照着ProductInfo窗口一模一样的画了一个。(用ecs做自己想要得界面,有时候还是蛮痛苦的)
7,form
这个前面已经提到,就是再AD_Form表中加了一个url字段,标示一个jsp的url。
然后用一个特定的jsp实现一个特定的form。 也就是一个功能要维护两套代码。
posted on 2007-06-16 13:37  会东  阅读(615)  评论(2编辑  收藏  举报