使用维度显示

在ax中有许多窗体都有维度显示功能,例如生产订单、销售订单等等…

下面介绍一下,如果在自己开发的窗体中使用维度显示功能。

维度显示,是调用了class  InventDimCtrl_Frm来完成的。

步骤:

  1. 声明InventDimCtrl_Frm 类 InventDimCtrl_Frm  inventDimCtrl_Frm;
  2. 在窗体中添加InventDim表作数据源,并且Join上主数据源
  3. 设置数据源InventDim数据源LinkType成InnerJoin
  4. 在Form中的Grid添加一个Group,并将InventDim中字段拖入此Group中。并设置Group的DataSource为InventDim
  5. 在Form 中添加方法 updateDesign(InventDimFormDesignUpdate mode) 代码如下:
    void updateDesign(InventDimFormDesignUpdate mode)
    {
        InventDimParm       inventDimParm;
        ;
  6.     switch (mode)
        {
            case InventDimFormDesignUpdate::Init        :
                if (!inventDimCtrl_Frm)
                    inventDimCtrl_Frm = new InventDimCtrl_Frm(element);
                inventDimCtrl_Frm.parmSkipOnHandLookUp(true);
                inventDimParm.initItemDimAllGrp();
                inventDimCtrl_Frm.parmDimParmVisibleGrid(inventDimParm);
            case InventDimFormDesignUpdate::Active,
                 InventDimFormDesignUpdate::FieldChange :
                inventDimParm.initDimActive(element.inventTable().DimGroupId);              inventDimCtrl_Frm.parmDimParmEnabled(inventDimParm);
                inventDimCtrl_Frm.formSetControls(true);
                break;

            default : throw error(strfmt("@SYS54195",funcname()));
        }
    }

  7. 在窗体Init中调用UpdateDesign方法。
  8. 在窗体中新建方法 inventDimSetupObject方法,代码如下:
    Object inventDimSetupObject()
    {
        return inventDimCtrl_Frm;
    }
  9. 覆盖数据源Prodtable方法 Active()方法,在此处Super()之后执行:
    element.updateDesign(InventDimFormDesignUpdate::Active);
  10. 覆盖数据源的ValidateWrite(),在Super之前执行:
    Prodtable.InventDimId = InventDim::FindOrCreate(inventDim).InventDimId;
  11. 在数据源ProdTable下的字段ItemID 覆盖方法Modified()写入代码:
    Super();
    element.UpdateDesign(InventDimFormDesignUpdate::FieldChange);
    InventDim.ClearNotSelectedDim(element.inventDimSetupObject().parmDimParmEnabled());
  12. 最后在Form 中添加剂menuButton设置MenuItem指向 InventDimParmFixed 数据源指向ProdTable;
posted @ 2012-03-06 15:44  perock  阅读(451)  评论(0编辑  收藏  举报