close

Display Method 在AX/D365 的正確使用方法:

1. 需要放在Table(view) class 內.

2. 不能太過複雜,因為每次redraw都會用到

3. Display Method 在View 內時就需要static method

4. 因為static 不能用 this , 所以在input method 時加入本身的table / view 

5. 因為是 static method, 所以在form 時, 是要把整個class::methods 都加進去.

====================================================================

[ExtensionOf(viewstr(EcoResProductAttributeValue))]
final class EcoResProductAttributeValue_Extension
{

    public static Display str GetEcoResValueString(EcoResProductAttributeValue _ecoResProductAttributeValue)
    {
        str result;

        EcoResAttributeType _ecoResAttributeType = EcoResAttributeType::findByAttribute(_ecoResProductAttributeValue.Attribute);

        switch (_ecoResAttributeType.DataType)
        {
            case AttributeDataType::Currency:
                result = EcoResCurrencyValue::find(_ecoResProductAttributeValue.Value).getStringValue();
                break;

            case AttributeDataType::DateTime:
                result = EcoResDateTimeValue::find(_ecoResProductAttributeValue.Value).getStringValue();
                break;

            case AttributeDataType::Decimal:
                result = EcoResFloatValue::find(_ecoResProductAttributeValue.Value).getStringValue();
                break;

            case AttributeDataType::Integer:
                result = EcoResIntValue::find(_ecoResProductAttributeValue.Value).getStringValue();
                break;

            case AttributeDataType::Text:
                result = EcoResTextValue::find(_ecoResProductAttributeValue.Value).getStringValue();
                break;

            case AttributeDataType::TrueFalse:
                result = EcoResBooleanValue::find(_ecoResProductAttributeValue.Value).getStringValue();
                break;
            default:
                result = '';
                break;

        }

        return result;
    }

}

arrow
arrow

    lionlionchopper 發表在 痞客邦 留言(0) 人氣()