• display method & edit method & cach display & sec


    当我们在使用一个表做显示或操作时,需要用到另一个表的数据或该表的数据必须经过处理才可以显示时,可以考虑使用edit/display方法。

    Display 方法:
    修饰符display所修的方法,其返回值将被作为一个不可以修改的值在form和report上显示。如果你希望这个值可以被编辑,就是要edit方法。

    <1>       Display方法的书写位置:
    Display修饰符可以被用于以下方法:

    (1)  Table下的方法

    (2)  Form下的方法

    (3)  Form data source下的方法

    (4)  Report下的方法

    (5)  Report design下的方法

    Table下的display方法可以在多个form和report上重用。 Display 方法会在form被重绘时执行。不要在display方法上写复杂并且耗时的技术或操作。

    被隐藏的tab页上的display方法不会被调用。并且,display方法可以被cach起来。

    <2>       创建display方法
    其格式如下:

    将display修饰符放在返回值的前边,并且display方法必须有返回值。如:

    display Amount amount()

    当display方法被写在form data source下时,必须将data source作为参数传递给该display方法。当display的返回值被显示在form的grid control上时,需要将该display方法写在数据源下。如下:

    display InventQty accumulated(InventBudgetInvent Budget)

    除此之外,display方法不需要参数。

    <3>       使用display方法
    当作form control和report control上使用display方法时,控件的数据类型和display方法返回值的类型必须一致。

    (1)  在form control上使用display

    a)    设置control的DataSource属性为该display方法做在的dataSource。如果该属性为空,则默认该display方法被定义在form下。

    b)    设置control的DataMethod属性为该display方法的方法名。

    同时也可以设置control的ExtendedDataType和ArrayIndex属性。如果ExtendedDataType被设置,则该control会继承该EDT的格式、帮助信息等等。

    如果该display方法返回一个array时,将ArrayIndex设置为0表示array的所有元素都会被显示在该control上。如果将ArrayIndex设置为一个非零正数n时,只有数组的第n个元素被显示。

    (2)  在report control 上使用display

    a)    设置control的Table属性为该display方法所属的table。如果该属性为空,默认该display方法是在report下被定义。

    b)    设置control的DataMethod属性为该display方法的方法名。

    可以参考:http://msdn.microsoft.com/en-us/library/aa595058(AX.10).aspx

    二.Caching display方法
           当display方法是在aos上做计算,或记录需要从服务器端传递到客户端时,可以通过cach来提高display方法的性能。

           当数据被从后台数据库获取到后,display方法的的数据会被赋值,当form data source 调用reread方法时,这些数据会被刷新。

           将一个display方法cach起来需要通过如下步骤:

    1)    定位到使用该display方法的form上

    2)    Override该display方法所在的data source的Init方法,在该init方法的super()之后,调用FormDataSource.cacheAddMethod方法。cacheAddMethod方法的第一个参数是要被cach的display方法的方法名,第二个参数(默认为true)标识在一条记录被写到数据库时是否更新该display方法。

    可以参考:http://msdn.microsoft.com/en-us/library/aa596691(AX.10).aspx

     三. Edit 方法
           被edit修饰符所修饰的方法,其返回值可以被显示在form上,同时用户可以编辑这个值。

           <1>       edit方法的书写位置:
    a)    Table下的方法

    b)    Form下的方法

    c)    Form data source下的方法

    Table下的edit方法可以在多个form下重用。

    当form在重绘时会调用edit方法,不要在edit方法中写复杂且耗时的操作。

    被隐藏的tab页上的edit方法不会被调用。

           <2> 创建edit方法
    a)    在table下创建edit方法时,其格式如下:

    edit FreeTxt txtDefault(boolean Set, FreeTxt Txt)

    将edit写在返回值的前边,第一个参数是boolean类型,用于表示用户是否在control中输入或添加了值,第二个参数被用于存放用户所输入的值,该参数的数据类型必须和control的数据类型一致。

    b)    在form下创建edit方法时,其格式如下:

    edit Amount settle(boolean set, CustTrans _CustTrans, Amount U)

    第一个参数是boolean类型,用于表示用户是否在control中输入或添加了值,第二个参数是该edit方法所在的data source,第三个参数用于存放用户所输入或编辑的值,该参数的数据类型必须和control的数据类型一致。

                  Edit方法也必须有返回值。

           <3>edit方法的使用:
    当作form control和report control上使用edit方法时,控件的数据类型和edit方法返回值的类型必须一致。

    (1)  在form control上使用edit

    c)    设置control的DataSource属性为该edit方法做在的dataSource。如果该属性为空,则默认该edit方法被定义在form下。

    d)    设置control的DataMethod属性为该edit方法的方法名。

    同时也可以设置control的ExtendedDataType和ArrayIndex属性。如果ExtendedDataType被设置,则该control会继承该EDT的格式、帮助信息等等。

    如果该edit方法返回一个array时,将ArrayIndex设置为0表示array的所有元素都会被显示在该control上。如果将ArrayIndex设置为一个非零正数n时,只有数组的第n个元素被显示。

           可以参考:http://msdn.microsoft.com/en-us/library/aa637541(AX.10).aspx

     四.数据的保密性
           内核会自动执行Record level security检查,但当时有display和edit方法时会绕过Record level security检查,而在display和edit方法中可以访问一下不在权限内的数据,如果直接将这些数据显示出来,就会失去数据的保密性。所以在使用display和edit方法时,需要显示的做安全检查(如果需要的话)。

           详细可参考:http://msdn.microsoft.com/en-us/library/aa879172(AX.10).aspx

  • 相关阅读:
    又联考了一场,感觉自己好菜啊,T1没写出来,后来花了一个早上调试。QAQ。最后发现是个-1还有取模没打。。。TAT。。。难受极了!!!
    又联考了一场,感觉自己好菜啊,T2推出了公式但是不会逆元QAQ,难受啊!!!不过都确实是一道逆元的好题撒!
    USACO 2006 November Gold Corn Fields
    SCOI 2005 互不侵犯
    PKU P2411 Mondriaan's Dream
    一道装呀(状压)DP
    继续写高精!noip2012国王游戏。。。
    上两道省选的高精吧!
    找丑数
    本地访问weblogic控制台无反应,关闭linux操作系统防火墙
  • 原文地址:https://www.cnblogs.com/Fandyx/p/2761606.html
Copyright © 2020-2023  润新知