• MAP平台如何去掉单据序时簿,并且打开时自动为新增?


    项目中有这样一需求:

    隐藏序时簿,并且双击菜单打开单据时自动为新增状态.

    解决方案一:

    1,系统维护--菜单管理--指标录入新增

    clip_image002

    2,去掉CommandString 后的View,改为zhibiaoluruxinz (表示点击树菜单时加载单据,而不是加载序时簿)

    clip_image004

    3,打开Config\Config_hf\Module\SCM\Bill\BillMeta.xml 文件

    在  BillMetaUIOptCollection 节点下添加 如下代码:

    <BillMetaUIOpt Key="New2" Caption="新增" Icon="AddNew" ShortCuts="Alt+N" ObjectCondition="TableType()=&quot;Bill&quot;" PreCondition="ReadOnly()" SubOptKeys="NewBill;ShowBill;EditBill" SubOptDataIdxes="0;0;0" />

    --PreCondition="ReadOnly()"  表示非编辑状态才可见

    4,修改指标录入单对应的XML文件,对最表单定义的地方加上EntryUIOptKey="New2"

    <BillMetaTable Key="zhibiaoluruxinz" Caption="指标录入新增" TableType="Bill" ID="79654" Version=".519" TableCount="2" MetaSubHookKey="" m_lGridCount="1" WithoutFilter="False" bTotal="False" sUIoptKey="New;Edit;Save;|;NewPrint;NewPrintDefault;NewPrintSelect;||;|;NewPrePrint;NewPrePrintDefault;NewPrePrintSelect;||;DeleteRow;FirstBill;PreBill;NextBill;LastBill;SendLink" PrintTemplate="" EntryUIOptKey="New2">

    5,关闭中间层,重新打开单据即可见到效果

    解决方案二:

    1, 解决方案一的第1 步

    2, 解决方案一的第2 步

    3, 修改指标录入单对应的XML文件,对最表单定义的地方加上EntryUIOptKey="NewViewBill"

    <BillMetaTable Key="zhibiaoluru2" Caption="指标录入2" TableType="Bill" ID="79657" Version=".519" TableCount="2" MetaSubHookKey="" m_lGridCount="1" WithoutFilter="False" bTotal="False" sUIoptKey="New;Edit;Save;|;NewPrint;NewPrintDefault;NewPrintSelect;||;|;NewPrePrint;NewPrePrintDefault;NewPrePrintSelect;||;DeleteRow;FirstBill;PreBill;NextBill;LastBill;SendLink" PrintTemplate="" EntryUIOptKey="NewViewBill">

    4,关闭中间层,重新打开单据即可见到效果

    方案一与方案二的区别:

    方案一是自定义了界面子操作,方案二是调用系统的子操作。

    参考文档:

    EntryUIOptKey,CloseUIOptKey属性讲解

    通常我们打开某张表单是会通过点击左边菜单,然后执行某个操作完成表单打开动作的,比如报表执行ViewReport界面操作,勾稽执行ViewHook界面操作,字典执行OpenDictionary界面操作,无序事簿单据执行NewViewBill操作,其他都执行ViewBill操作。如果我们打开某个表单对象的时候有特殊的操作,需要绕开这些默认的操作,或者需要执行一些公式,那么我们就可以给表单对象定义打开入口操作,在表单对象中有两个隐藏属性EntryUIOptKey,CloseUIOptKey,一个是打开单据的入口操作,一个关闭单据的执行的操作,比如<BillMetaTable Key="CostOut" Caption="出库成本计算" TableType="MultiBill" ID="79518" Version=".519" TableCount="1" MetaSubHookKey="" m_lGridCount="1" WithoutFilter="False" MetaTableKey="" DSN="" bTotal="False" sUIoptKey="AutoFit;UIClose" PrintTemplate="" EntryUIOptKey="ViewMultiBill">,这个地方EntryUIOptKey所指向的ViewMultiBill就是一个自己定义的界面操作,在BillMeta.xml是这样定义的<BillMetaUIOpt Key="ViewMultiBill" Caption="ViewMultiBill" SubOptKeys="DoEvaluateFormula(AddVariable(…));DoEvaluateFormula(SetTableFilter(…));LoadObject;ShowBill" SubOptDataIdxes="0;0;0;0;0"/>,这个地方我定义了一个打开多样式表单的操作,在做LoadObject;ShowBill(中间层取数->显示表单数据)之前,我做了DoEvaluateFormula(AddVariable(…));DoEvaluateFormula(SetTableFilter(…))这两件事情,一件是增加一个变量,一件是做了给表单设置过滤条件SetTableFilter,这样我在显示单据之前可以做一些我们所期望的事情。大家可以通过定义自己特殊的操作放在EntryUIOptKey属性中,让表单打开时按照自己的意图去执行。CloseUIOptKey也一样,在表单关闭时执行的界面操作,用的不多。

    EntryUIOptKey,CloseUIOptKey这两个属性在我们标准化产品中使用比较广泛,还有一些复杂的界面当中,因为我们在显示一张表单之前,需要做一些复杂的事情,比如在我们配置型登陆窗口中MultiBill_Login.xml文件中,入口是这么定义的<BillMetaTable Key="Login" Caption="登录" TableType="MultiBill" ID="79095" … sUIoptKey="" PrintTemplate="" EntryUIOptKey="_FormInitialize" CloseUIOptKey="_FormUnload">,这个地方的EntryUIOptKey和CloseUIOptKey属性所指向的界面操作_FormInitialize和_FormUnload,这两个界面操作在BillMeta.xml定义为

    <BillMetaUIOpt Key="_FormInitialize" RunAsExp="_FormInitialize()" SubOptDataIdxes="0" NeedRowCheck="False"/>

    <BillMetaUIOpt Key="_FormUnload" RunAsExp="_FormUnload()" SubOptDataIdxes="0" NeedRowCheck="False"/>,这个地方和我前面讲的又进一步了,这个地方用到了子操作的RunAsExp属性,意思就是后面不需要去定义一系列的子操作了,而是去执行_FormInitialize()宏公式,而这个公式可以写在公式宏里面,然后在宏里面定义自己需要执行的公式,这样定义的宏可以被多个地方使用,配置结构更清晰、简洁明了。我们可以在简单地去看下这部分宏定义

    <BillMetaExpFormulaCollection>

    <BillMetaExpFormula Key="_FormInitialize" Para="" Formula="ShowBill(true,true,false,false,true)+SetFormSizeByPixel(366,546)"/>

    <BillMetaExpFormula Key="_FormUnload" Para="" Formula="AddVariable({Login},False)+UIClose()"/>

    </BillMetaExpFormulaCollection>

    大家有兴趣的话可以看看MultiBill_Login.xml这个文件的配置,深刻了解一下EntryUIOptKey,CloseUIOptKey这两个表单对象的属性,以及单据中的宏定义等相关内容。

  • 相关阅读:
    jQuery插件之jquery editable plugin点击编辑文字插件
    firefox与ie的javascript兼容性编程汇编【转载】
    css前端制作 经验总结
    非常棒的jqChart图表插件
    WPF Image Source设置文件路径后 在编辑状态下显示图片,运行时不显示
    WPF RadioButton 绑定枚举
    WPF MVVM实现数据增删改查逻辑全流程详细解析demo
    bigNumber.js的简单使用
    PHP程序的“Missing argument 3”的错误提示解决方法
    PHP判断0和空的方法
  • 原文地址:https://www.cnblogs.com/yiwuya/p/3018896.html
Copyright © 2020-2023  润新知