• Compiere 技术总结(摘录)


    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。 也就是一个功能要维护两套代码。
  • 相关阅读:
    记录「十一月做题记录」
    题解「GMOJ6898 【2020.11.27提高组模拟】第二题」
    题解「CFGYM102331B Bitwise Xor」
    题解「Japan Alumni Group Summer Camp 2018 Day 2J AB Sort」
    题解「AGC048B Bracket Score」
    题解「中位数之中位数 median」
    记录「十月做题记录」
    测试「2020牛客NOIP赛前集训营-提高组(第五场)」
    测试「20201028测试总结」
    定时提醒助手
  • 原文地址:https://www.cnblogs.com/byfhd/p/785667.html
Copyright © 2020-2023  润新知