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;

    }

  • 相关阅读:
    VScode中Python的交互式命令环境使用笔记
    jmeter beanshell判断响应的json串,参数的值是否正确;
    类和类的继承 实现关系;
    类与类依赖关系,实例;
    类与类包含关系,实例;
    java中有package的编译执行;java编译乱码;
    java 类与类之间的关系,方法重写与方法重载的区别
    beanshell sampler构造响应数据;
    Scanner类及其中方法的使用;
    java 构造方法 代码块 this
  • 原文地址:https://www.cnblogs.com/perock/p/2120827.html
Copyright © 2011-2022 走看看