简体   繁体   English

标注示例中的“确认(是/否)”对话框

[英]Confirm (yes/No) dialog box in Callout Adempiere

I'm trying to get the Confirm Dialog Box in Adempiere. 我正在尝试获取Adempiere中的“确认”对话框。 I have used 我用过

 JOptionPane.showConfirmDialog(null, msg,"", JOptionPane.YES_NO_OPTION); 
or 
ADialog.ask(WindowNo, null,msg)

instead of 
mTab.fireDataStatusEEvent ("NoQtyAvailable", "0", true); 

I getting the popup (yes /NO ) and working fine in Swing but it doesnt works with WEBUI. 我得到弹出窗口(是/ NO),并且在Swing中工作正常,但不适用于WEBUI。

My Code: 我的代码:

if (product.isStocked())
            {               
                if (available == null)
                    available = Env.ZERO;
                if (available.signum() == 0){
                    //mTab.fireDataStatusEEvent ("NoQtyAvailable", "0", false);                                         
                    int response = JOptionPane.showConfirmDialog(null, msg,
                            "", JOptionPane.YES_NO_OPTION);
                    if (response == JOptionPane.YES_OPTION) 
                        mTab.setValue("BC_Qty", mTab.getValue("QtyEntered"));
                    else
                        mTab.setValue("BC_Qty", Env.ZERO);
                }
            }

Buid ERROR: 错误:

Buildfile: E:\Adempiere360\svn\base\build.xml
init:
     [echo] =========== Build Base
makedir:
compile:
    [javac] E:\Adempiere360\svn\base\build.xml:56: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 1 source file to E:\Adempiere360\svn\base\build
    [javac] 
E:\Adempiere360\svn\base\src\org\compiere\model\CalloutOrder.java:27: package org.adempiere.webui.window does not exist
    [javac] import org.adempiere.webui.window.FDialog;
    [javac]                                  ^
    [javac] 
E:\Adempiere360\svn\base\src\org\compiere\model\CalloutOrder.java:827: warning: [deprecation] getQtyAvailable(int,int,int,java.lang.String) in org.compiere.model.MStorage has been deprecated
    [javac]                 BigDecimal available = MStorage.getQtyAvailable
    [javac]                                                ^
    [javac]
 E:\Adempiere360\svn\base\src\org\compiere\model\CalloutOrder.java:833: cannot find symbol
    [javac] symbol  : variable FDialog
    [javac] location: class org.compiere.model.CalloutOrder
    [javac]                     if(FDialog.ask(WindowNo, null, msg))
    [javac]                        ^
    [javac] 
E:\Adempiere360\svn\base\src\org\compiere\model\CalloutOrder.java:1309: warning: [deprecation] getQtyAvailable(int,int,int,java.lang.String) in org.compiere.model.MStorage has been deprecated
    [javac]                 BigDecimal available = MStorage.getQtyAvailable
    [javac]                                                ^
    [javac] 2 errors
    [javac] 2 warnings

BUILD FAILED
E:\Adempiere360\svn\base\build.xml:56: Compile failed; see the compiler error output for details.

Ay advice would be appreciated. 意见将不胜感激。

ADempiere will build the code in the following order ADempiere将按以下顺序构建代码

tools/build.xml
base/build.xml
extend/build.xml
client/build.xml
JasperReports/build.xml
serverRoot/build.xml
serverApps/build.xml
webStore/build.xml
webCM/build.xml
sqlj/build.xml
posterita/posterita/build.xml
zkwebui/build.xml
install/build.xml

The 'FDialog' class is defined in 'zkwebui' folder. “ FDialog”类在“ zkwebui”文件夹中定义。 You have used the FDialog class in CalloutOrder.java(import org.adempiere.webui.window.FDialog;). 您已经在CalloutOrder.java(import org.adempiere.webui.window.FDialog;)中使用了FDialog类。 So it(FDialog) is not visible while building the 'Base' folder. 因此,在构建“基础”文件夹时,它(FDialog)不可见。

You just remove the import org.adempiere.webui.window.FDialog; 您只需删除import org.adempiere.webui.window.FDialog; statemenet from the CalloutOrder.java class. CalloutOrder.java类中的statemenet。 It will refine your build and work properly in webUI. 它将优化您的构建并在webUI中正常工作。

You can find the build order details from here 您可以从此处找到构建订单的详细信息

I have edited your condition. 我已编辑您的条件。 Just replace your existing condition with this condition: 只需用以下条件替换您现有的条件:

if (product.isStocked())
{               
    if (available == null) {
        available = Env.ZERO;
    }

    if (available.signum() == 0) {
        //mTab.fireDataStatusEEvent ("NoQtyAvailable", "0", false);                                         
        boolean response = org.adempiere.webui.window.FDialog.ask(1,           
                           null,"message1","Message 2");
        if (response) {
            mTab.setValue("BC_Qty", mTab.getValue("QtyEntered"));
        } else {
            mTab.setValue("BC_Qty", Env.ZERO);
        }
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM