zoukankan      html  css  js  c++  java
  • Object的使用技巧

    当对象转换为object之后可以调用任一方法,而且编译器不会报错。这样有利全用args.caller()传递对象到目标后,在目标方利用object转换后调用caller中的方法

    boolean useConvertableLookup(Object caller)

    {

        InventMovement          inventMovement;

        InventTableModule       inventTableModule;

        PriceDiscTable          priceDiscTable;

        SuppItemTable           suppItemTable;

        fieldId                 itemIdField;

        ;

        if (!element.args() || !element.args().caller())

            return false;

        if (caller.name() == formstr(UnitConversion))

        {

            otherUnit = caller.otherUnit();

            selectedItemId = caller.selectedItemId();

            if (selectedItemId && !otherUnit)

                this.buildConversionConvertable();

            else

                this.buildConvertable();

            return true;

        }

        if (caller.name() == formstr(InventOnHandMovement)      ||

            caller.name() == formstr(InventOnHandItem)          ||

            caller.name() == formstr(InventOnHandReserve)       ||

            caller.name() == formstr(WMSPickingLinePick))

        {

            otherUnit = caller.otherUnit();

            selectedItemId = caller.selectedItemId();

            this.buildConvertable();

            return true;

        }

        if (element.args().dataset())

        {

            switch(element.args().dataset())

            {

                case tablenum(InventTableModule):

                    inventTableModule = element.args().record();

                    switch(inventTableModule.ModuleType)

                    {

                        case ModuleInventPurchSales::Invent:

                            return false;

                        default:

                            selectedItemId = inventTableModule.ItemId;

                            otherUnit = InventTable::find(selectedItemId).inventUnitId();

                            this.buildConvertable();

                            return true;

                    }

                case tablenum(PriceDiscTable):

                    priceDiscTable = element.args().record();

                    if (priceDiscTable.ItemCode != TableGroupAll::Table)

                        return false;

                    selectedItemId = priceDiscTable.ItemRelation;

                    if (!selectedItemId)

                        return false;

                    otherUnit = InventTable::find(selectedItemId).inventUnitId();

                    this.buildConvertable();

                    return true;

                case tablenum(SuppItemTable):

                    suppItemTable = element.args().record();

                    if (suppItemTable.ItemCode != TableGroupAll::Table)

                        return false;

                    selectedItemId = suppItemTable.ItemRelation;

                    if (!selectedItemId)

                        return false;

                    otherUnit = InventTable::find(selectedItemId).inventUnitId();

                    this.buildConvertable();

                    return true;

                default:

                    itemIdField = fieldname2id(element.args().dataset(),fieldstr(InventTable,ItemId));

                    if (itemIdField)

                    {

                        selectedItemId = element.args().record().(itemIdField);

                        if (!selectedItemId)

                            return false;

                        otherUnit = InventTable::find(selectedItemId).inventUnitId();

                        this.buildConvertable();

                        return true;

                    }

                    break;

            }

        }

        if (element.args().dataset())

        {

            inventMovement = InventMovement::constructNoThrow(element.args().record());

            if (inventMovement)

            {

                selectedItemId = inventMovement.itemId();

                otherUnit = InventTable::find(selectedItemId).inventUnitId();

                this.buildConvertable();

                return true;

            }

        }

        return false;

    }

  • 相关阅读:
    Oozie_02安装遇到错误【20161116】
    Oozie_01安装教程【20161116】
    hadoop2.x常用端口及定义方法
    谷歌浏览器怎么调试js 谷歌浏览器调试javascript教程
    找回密码(一)【实际项目】
    解决使用SecureCRT出现的Generic clipboard failure错误【自己亲身经历】
    [php]php总结(2)
    [php]php总结(1)
    [php]php时间格式化
    [hadoop]mapreduce原理简述
  • 原文地址:https://www.cnblogs.com/perock/p/2120827.html
Copyright © 2011-2022 走看看