值集定义总结精.docx

上传人:b****3 文档编号:10539027 上传时间:2023-05-26 格式:DOCX 页数:22 大小:945.50KB
下载 相关 举报
值集定义总结精.docx_第1页
第1页 / 共22页
值集定义总结精.docx_第2页
第2页 / 共22页
值集定义总结精.docx_第3页
第3页 / 共22页
值集定义总结精.docx_第4页
第4页 / 共22页
值集定义总结精.docx_第5页
第5页 / 共22页
值集定义总结精.docx_第6页
第6页 / 共22页
值集定义总结精.docx_第7页
第7页 / 共22页
值集定义总结精.docx_第8页
第8页 / 共22页
值集定义总结精.docx_第9页
第9页 / 共22页
值集定义总结精.docx_第10页
第10页 / 共22页
值集定义总结精.docx_第11页
第11页 / 共22页
值集定义总结精.docx_第12页
第12页 / 共22页
值集定义总结精.docx_第13页
第13页 / 共22页
值集定义总结精.docx_第14页
第14页 / 共22页
值集定义总结精.docx_第15页
第15页 / 共22页
值集定义总结精.docx_第16页
第16页 / 共22页
值集定义总结精.docx_第17页
第17页 / 共22页
值集定义总结精.docx_第18页
第18页 / 共22页
值集定义总结精.docx_第19页
第19页 / 共22页
值集定义总结精.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

值集定义总结精.docx

《值集定义总结精.docx》由会员分享,可在线阅读,更多相关《值集定义总结精.docx(22页珍藏版)》请在冰点文库上搜索。

值集定义总结精.docx

值集定义总结精

值集定义总结

最近看到有些同事在定义值集的时候,对某些设置还有些疑惑,在此我就针对个人现阶段理解的程度来总结下,不知能不能对大家有所帮助,有不对的地方还望指点。

一.从属值集的定义

1.弹性域中的从属值集的定义

在这里我们以资产模块的资产类别键弹性域为例,假如类别分为大类、小类。

小类的列表内容将依据大类变化。

即大类为小类的父集。

我们首先建立2个值集,第一个值集命名为:

UC_FAC_MAIN,注意选择验证类型为独立,创建结果如图1-1所示,

图1-1

第二个值集命名为:

UC_FAC_MINO,在这里注意和第一个值集创建的区别了(注意:

红色方框所标注的内容)。

我们选择验证类型为从属,此时右边的编辑按钮可用,点击后进行设置,主要有2项设置:

独立值集的设置(简单说就是为此值集选择父集)、从属默认值得设置(防止当用户没有在值集录入界面为对应的父集录入子集时,系统将默认带出在此设置的值)。

设置结果如图1-2所示:

图1-2

当定义完2个值集后,我们导航到菜单:

应用->验证->值,下为其录入列表值,首先为大类录入值,这很简单就是普通的录入。

结果如图1-3所示:

图1-3

接着为小类录入值,他的录入有点特别,我们可以把焦点停在表单上部分的独立值项上,运用键盘的上下箭头,来为不同的独立值(即父值)录入不同的对应子集,每一个初始的独立值带出来的是我们上面设置的系统默认值(即:

"不分明细")结果如图1-4、1-5所示,每一个值都有可以由用户设置启用或失效,对于层次结构、限定词主要在会计的科目中及一些汇总中用到。

图1-4

图1-5

2.普通项中的从属值集的定义(一般用于报表参数)

在这里我们假如有个报表,需要2个参数(为了举例方便,取了这2个参数,可能不符合实际。

帐套名称(cux_sob_id)、供应商名称(cux_vendor_id)并且第二个参数依据第一个参数来弹出列表值

(即当选完帐套参数后,供应商值集列表中显示本帐套下的所有未失效的供应商)。

这里我们还是定义2个值集,定义过程和上面例子的一样,只是在这里我们选择验证类型为表。

此时点击右边的编辑按钮进行设置,这里主要是设置用户所需要的显示字段、传值字段、以及定义值集范围即(WHERE条件、排序等)。

第一个参数他不附属与其他值集所以很简单,选择完表名、所需字段后保存即可,如图1-6、1-7所示:

图1-6

图1-7

接下来我创建第二个值集(cux_vendor_id)因为他要附属于第一个参数(cux_sob_id)所以我们在"出处/排序依据"处进行添加条件:

set_of_books_id=nvl(:

$FLEX$.cux_sob_id,set_of_books_id)或者

set_of_books_id=nvl(:

$FLEX$.cux_sob_id:

NULL,set_of_books_id)

这样两个值集就关联起来了。

我们仔细看上面的2个语句,差别在于第二个语句多了一个(:

NULL),他的作是当用户不选择他的父参数时,可以先选择他自己,反之,如果没有:

NULL则用户必须选择完其父参数(本例为帐套名称)才能选择自己(本例为供应商名称)。

设置结果如图1-8、1-9所示

图1-8

图1-9

运行报表时的效果如图1-10、1-11所示:

图1-10

图1-11

图中商业信息已屏蔽。

二.报表参数中调用键弹性域的定义

1.报表中调用间弹性域的定义

有时候我们的报表可能要调用系统的键弹性域作为值集给用户来选择(如会计科目、资产类别等),这里我们以我在项目上做的一个报表(UC_资产明细)为例,说明在报表参数中运用键弹性域。

我们知道一个键弹性域可以有多个结构,所以在调用一个键弹性域时除了要指明(APPL_SHORT_NAME、CODE)还要明确指出自己所需的那个结构,因此我们在定义并发程序时就应当额外创建一个隐藏的参数(P_CAT_SEG_NUM)来传递这个结构标识.而参数的值集我们在本例中为:

CUX_ASSET_CAT_STRUCT_NUM,他的具体值我们可以从资产的系统控制表(fa_system_controls)中得到。

SQL语句为:

selectcategory_flex_structurefromfa_system_controls

具体设置结果如图2-1、2-2所示

图2-1

图2-2

接下来我们为真正显示在界面的参数(资产类别P_CAT_SEG)定义值集。

定义过程和前面所讲的都基本相同,主要区别在于此值集的验证类型我们设置为特定,然后点右边的编辑按钮进行定义,需要注意的我已经用带色彩的框标记出来了,设置结果如图2-3、2-4所示。

具体语法参数的含义大家可以参考附录。

图2-3

图2-4

三.描述性弹性域上下文的应用(键弹性域与描述性弹性域互动关系定义)

1.描述性弹性域上下文的应用

在系统中描述性弹性域的显示结构是可以根据一个上下文字段来变化的,这样的设计会使应用层很灵活,进而在很多时候不用改动程序的基础上满足客户需求。

我是在资产工作台的新建资产表单上进行的测试,当我们选择完资产类别后,紧随其后的描述性弹性域就根据前面所选择的资产类别而弹出不同的结构。

下面我们来看下具体的定义过程:

(本例我们用键弹性域返回的值作为上下文关系)

我们首先在Form中定义键弹性域,和描述性弹性域。

代码如下:

从代码中可知在资产新增表单中,键弹性域的显示项为:

ATTRIBUTE_CATEGORY_CODE,

所以我们在系统中定义此描述性弹性域时,设置其参考段为ATTRIBUTE_CATEGORY_CODE

如图3-1所示:

图3-1

接下来定义此弹性域的全局数据元(GlobalDataElements),个人认为它就类似于一个键弹性域中的某一组合结构,在这里我们定义他由4个项组合(资产类别、网络属性、工程期别、使用状态)。

顾名思义(全局嘛)它的特点就是不管上下文内容是什么,这4个项都会显示。

在本例中的表现就是,不管用户选择何种资产类别,此描述性弹性域都会显示这4个项。

具体结果如图3-2、3-3

图3-2

图3-3

接下来我们就开始定义具体上下文内容所对应的弹性域结构,本例只列举了2个例子(测试1、测试2)以作说明。

我们想要达到的目的是:

当用户选择的资产类别为“管理用固定资产.电子计算机系统”时,描述性弹性域就增加一个说明项测试1

当用户选择的资产类别为“长期待摊费用.其他”时,描述性弹性域就增加一个说明项测试2

具体定义如图3-4、3-5所示:

图3-4

图3-5

这时我们可以在界面测试下我们所定义的结果了,如图3-6、3-7所示

图3-6

图3-7

注意以上定义都是在定义描述性弹性域表单中未选中上下文显示复选框的情况下。

下面我们看看当选中显示复选框时(如图3-8)的结果和注意事项:

当用户选择了显示复选框后,在引用弹性域的界面中点击弹性域项后,不管上下文段值是什么,他都会显示一个你在上图中定义的提示(附加信息),如果有多个上下文段他会有一个列表让用户选择,如果只有一个上下文段则直接显示在他的下面,结果如图3-8、3-9所示

图3-8

图3-9

这样就相当于强制使用了上下文关系,不管前面的键弹性域的资产类别选择了什么,描述性弹性域都会按客户强制的来存储。

(这也只是一个测试,实际中不会这样用得吧)。

现在来我们看看这样做后台表中怎么来存储的,他和其他正常录入的有什么不同。

蓝色为正常录入的结果,红色为强制的结果。

附录(SpecialValidationValueSets)

SpecialValidationEvents

Yourspecialvalideventsinclude:

Edit

Validate

Load

Insert/Update

Query

Edit/Edit

ListVal

ThelastfoureventsarepresentinOracleApplicationforcompatiblitywithfutureversion,andyoushouldnotusethem.

SpecialvalidationEditEvent:

Befiredwhenyouruser’scursorentersthesegmentinadataentrymode.YouusuallyusePOPIDforyoureditevent.

SpecialValidationLoadEvent:

Befiredafteraquerytopopulateyoursegment.YouusuallyuseLOADIDforyourloadevent.

SpecialValidationValidateEvent:

Befiredaftertheuser’scursorleavesthesegmentorclosethepop-upwindow,orwheneveradefaultvalueiscopiedintosegmentorreportparameter.YouusuallyuseVALIDforyourvalidateevent.

Attention:

YoumusthaveaValidateevent.

SyntaxforSpecialValidation

Syntax:

#FND{POPID|LOADID|VALID}

CODE=“flexfieldcode”

APPL_SHORT_NAME=“application_short_name”

VALIDATE=“{FULL|PARTIAL|NONE|QUERY}”

SEG=“block.concatenatedvaluesfieldname”

[BLOCK=“block_name”]

[FIELD=“field_name”]

[DERIVED=“:

block.field\nSegmentqualifer”]

[READ_ONLY=“{Y|N}”]

[DINSERT=“{Y|N}”]

[WINDOW=“{Y|N}”]

[ID=“block.uniqueIDfield”]

[REQUIRED=“{Y|N}”]

[DISPLAY=“{ALL|flexfieldqualifier|segmentnumber}”]

[UPDATE=“{ALL|flexfieldqualifier|segmentnumber}”]

[INSERT=“{ALL|flexfieldqualifier|segmentnumber}”]

[DATA_FIELD=“concatenatedhiddenIdsfield”]

[DESC=“block.concatenateddescriptionfieldname”]

[TITLE=“windowtitle”]

[VDATE=“date”]

[NAVIGATE=“{Y|N}”]

[AUTOPICK=“{Y|N}”]

[NUM=“:

structuredefiningfield”]

[COPY=“:

block.field\n{ALL|flexfieldqualifier}”]

[VRULE=“flexfieldqualifier\nsegmentqualifier\n

{I[nclude]|E[xclude]}\nAPPL=shortname;

NAME=MessageDictionarymessagename\n

validationvalue1\n…”]

[VALATT=“:

block.field\nflexfieldqualifier\nsegmentqualifier”]

[USEDBFLDS=“{Y|N}”]

[COLUMN=“{column1(n)|column1alias(n)},…”]

[WHERE=“whereclause”]

[SET=“setnumber”]

[ALLOWEDNULL=“{Y|N}”]

[QUERY_SECURITY=“{Y|N}”]

[QBE_IN=“{Y|N}”]

[LONGLIST=“{Y|N}”]

[NO_COMBMSG=“MESG_NAME”]

ParameterForSpecialValidation

CODE:

TheflexfieldcodeyouspecifywhenyousetupthisflexfieldusingtheRegisterKeyFlexfieldform.

APPL_SHORT_NAME:

TheapplicationshortnamewithWhichyourflexfieldisregistered.

VALIDATE:

UseFULLtovalidateallsegmentValuesandgenerateanewcodecombinationandDynamicallyinsertintothetable.

UsePARTIALtovalidateeachsegmentButnocreateanewcombination.UseNONEifyouwishnovalidation.

SEG:

Block.concatenatedvaluesfieldnameisadisplay,non-databaseformfieldthatcontainsyourconcatenatedsegmentvaluesplusdelimiters.

DERIVED:

UseDERIVEDtogetthederivedvalueofsegmentqualifierforacombinationthatsomeonetypesin.

READ_ONLY:

SpecifyYifyouwanttopreventanyupdatingofyourflexfield.

DINSERT:

TheDINSERTparameterturnsdynamicinsertsofforonforthisform.YoumustsettoNinaspecialvalidationvalueset.

WINDOW:

Specifywhetheryouwantyourusertotypeintoavisiblepop-upwindow.

ID:

Specifytheblock.fieldthatcontainstheuniqueIDforthisflexfield.

REQUIRED:

Specifywhetheryourusercanexittheflexfieldwindowwithoutenteringsegmentvalues.

DISPLAY:

Specifywhetheryouallowyourusertodisplaysegmentsthatspecifiedflexfieldqualifiersorspecifiedsegmentnumber.

UPDATEINSERT:

Determinewhetheryourusercanupdateorinsertsegmentsthatrepresentspecifieduniqueflexfieldqualifierorsegmentnumber.

DATA_FIELD:

TheconcatenatedhiddenIdsfieldisanon-displayformfieldthatcontainstheconcatenatedsegmenthiddenID.

DESC:

Isadisplayed,non-database,non-enteredfieldthatcontainsconcatenateddescriptionofyoursegmentvalues.

TITLE:

Thetitlethatappearsatthetopofpop-upwindow.

VDATE:

Dateisthevalidationdateagainstwhichthestartdateorenddateofindividualsegmentvaluesischecked.

NAVIDATE:

SpecifiedYifflexfieldsshouldautomaticallydeterminethenavigationoutoftheflexfieldpop-upwindow.

ATOPICK:

SpecifywhetherflexfieldpopsupaLOVwindowwhenuserentersaninvalidvalue.ThedefaultvalueisY.

NUM:

Thedefinitionnumberofyourflexfieldstructure.Thedefaultvalueis101

COPY:

Copiesanon-nullvaluefrom:

block.fieldintothesegmentrepresentingthespecifiedflexfieldqualifierorsegmentnumberbeforethefieldwindowpopsup.

VRULE:

UseVRULEtoputextrarestrictionsonwhatvaluesausercanenterinaflexfieldsegmentbasedonthevaluesofsegmentquaifer.

VALATT:

VALATTcopiesthesegmentqualifiervaluesofthesegmentrepresentingtheuniqueflexfieldqualifierinto:

block.fieldwhentheflexfieldwindowcloses.

USEDBFLDS:

SpecifyYifyourformisbasedonatablethathasforeignkeyreferencestotwoormoreflexfields.

COLUMN:

Displayothercolumnsfromthecombinationtableinadditiontothecurrentsegmentcolumn.

WHERE:

SpecifyaWHEREclausetocustomizewhichcodecombinationstodisplayinthecombination-levellistofvaluespop-upwindow.

SET:

Specifythe:

block.fieldthatholdsthesetidentifierforyourflexfield.

ALLOWNULLS:

DeterminewhetherNULLsshouldbeallowedintoanysegment.

QBE_IN:

ControlsthetypeofsubqueryOracleapplicationobjectlibraryusestoselectthedesiredrows.

LONGLIST:

SpecifywhetherallowLongListwiththisflexfield.

NO_COMBMSG:

Messagenamethatyouwishtodisplayyourownmessagewhenauserentersaninvalidcombination.

DefiningYourSpecialValidationFunction

Specialvalidationprovidesseveralargumentsyoucanusetopassvaluetofromyouruserexits:

:

!

ID

:

!

VALUE

:

!

MEANING

!

DIR

:

!

ID:

Youcanuse:

!

IDtopassdifferentinformationdependinguponthecircumstance.Forflexfieldroutines,:

!

IDcanpasseitheracombinationIDnumberofanentirecombinationofsegmentvalues,oritcanpassaconcatenatedstringoftheindividualflexfieldsegmentvalues.

:

!

VALUE:

Youuse:

!

VALUEtoaccesstheuser’sinput.:

!

VALUEreferstothedisplayedvaluesthatappearintheflexfieldwindowandintheconcatenatedvaluesfield.Ifyoudonotspecifyavaluefor:

!

ID,then:

!

VALUEispassedtoyourreportorstoredinyoursegmentcolumn.

:

!

MEANING:

Youuse:

!

MEANINGtopasstheconcatenateddescriptionsofyourflexfieldvalues.Thevaluedescriptionappearsasusualnexttotheflexfieldsegmentvalueandintheconcatenateddescriptionfield.Ifyouarewritingyourownfunction,youshouldcodeyouruserexittowritethevaluedescriptioninto:

!

MEANING.

!

DIR:

Use!

DIRfortheNAVIGATEargumentofkeyanddescriptiveflexfieldsroutines.!

DIRallowsthefl

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2