Adempiere-如何在同一窗口中设计/调用2 CreateLinesFrom按钮



在我的自定义中,我想在WEBUI的同一窗口/表中创建2CreateLineFrom表单。

通常我们在Zkwebui 中调用WCreateFromFactory中的WClass文件(通过给定tableID和类名来实现静态)

我的问题是如何在同一窗口中使用另一个"CreateLineFrom"表单?

如果您只通过配置更改还需要一个Create Line From按钮功能,那么您需要遵循以下要点

  1. 删除AD_FIELD表的AD_FIELD_COLUMN索引
  2. 窗口的字段选项卡、选项卡和字段窗口中再创建一条记录

例如:-字段名称为Crate Lines From2
AS列CrateFrom并保存记录
现在,通过使用字段序列选项卡,您可以对齐第二个Crate Lines From2按钮。

这件事你可以在不更改代码的情况下完成。


如果您准备更改代码,请修改AbstractADWindowPanel.java

actionButton方法中,您可以找到

    else if (col.equals("CreateFrom")) code 

只需按照以下更新此代码

 else if (col.equals("CreateFrom") || col.equals("newFieldName"))

现在,您可以在下面的表中添加您想要的列,并且列应该是newFieldName(您用java代码编写过的内容)C_Invoice、M_InOut、M_Movement、C_BankStatement。

在表格中显示字段的步骤:-

  1. 打开表格和列窗口并在任何表格上方进行选择
  2. 用newFieldName封装System元素并保存
  3. 输入数据库列名称和名称
  4. 选择长度为1
  5. 引用为按钮并保存记录
  6. 现在点击同步列按钮
  7. 现在打开任何相应的窗口,选项卡字段并选择选项卡选项卡
  8. 单击"创建字段"按钮,您将获得新创建的按钮
  9. 您可以使用fieldfield sequence选项卡对齐字段

让我知道为什么你需要在一个选项卡中有两个相同的字段,这与安全有关吗?如果是这样的话,我们就可以用非常简单的方法实现

在adempiere中,功能无法在同一窗口中创建2个CLF表单,因为hashmap存储了最后一个给定值即,当我执行它时,调用"WCreateFrom2UI.class"

private static HashMap<Integer, Class<? extends ICreateFrom>> registeredClasses = null;
static
{       
    s_registeredClasses.put(I_C_Order.Table_ID, WCreateFrom1UI.class);   
    s_registeredClasses.put(I_C_Order.Table_ID, WCreateFrom2UI.class);  
}

创建了名为"CreateFromIM"的新按钮,在AbstractADwindowPanel中添加了操作,并创建了新的类WCreateFromIMFactory,它是WCreateFromFactory 的副本

    if (col.equals("CreateFrom")  ) {
        ICreateFrom cf = WCreateFromFactory.create(curTab);
    } 
    else if (col.equals("CreateFromIM") )  
        ICreateFrom cf = WCreateFromIMFactory.createIM(curTab);
        } 

相关内容

  • 没有找到相关文章

最新更新