`
skyHuang
  • 浏览: 100553 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

系统应用基础概述之值集与查找代码(Value Set and Lookup Code)

阅读更多

日常工作中,用户在表单的字段(包括弹性域字段)中输入数据的方式无外乎两种:一种是直接手工键入,例如订单中的数量(数值)或文字说明(字符)等等;另一种就是所谓“LOV”(List of Value),用户只能从某个预先定义的“来源单据”做选择输入(用户如手工输入,系统可能自动针对来源单据进行校验以确定输入值是否允许)。

表单字段的“LOV”输入实际占了系统输入操作的大部分情况,之所以如此的重要原因是业务实践与系统实现的“标准化”需要。例如“人力资源管理部”这个官方正式名称,在人们的日常工作与交流中,可能被简化为“人力资源部、人事部、HR”等等,大家都知道它们是一回事,一般不会引起误解。但对于系统来说就完全不同了,细微的差别在系统中都是两个不同的对象,所以说LOV实际上也是系统实现“数据共享与集成”的基础。

表单字段LOV的来源单据值种类,有些可能比较复杂,例如象“物料、供应商、客户”等等,这些字段的值被从来源单据带过来时,系统可能还会带过来其它若干相关重要信息到表单的其它相关字段上去。而有些可能就比较简单,例如属于通用基础数据范畴的“单位UOM、币别Currency以及日期Date”等。还有些虽然也比较简单,但通常需要用户预先做好定义,例如企业的“部门名称列表”等,这些LOV在系统中通常称之为“值集”(Value Set)。

在系统中定义一个完整的“值集”需要两个相互独立又相互关联的阶段,首先是定义“值集名”,系统中可以定义若干个不同用途的值集名,对于每一个值集(名),在定义界面可以对其相关属性(如“验证类型:无、独立、从属、表”等)做出相应规定,以使其符合实际工作的需要。如图21所示为“部门名称”的“值集名”定义(或查找)界面:



 

其次,就是为已经定义好的“值集名”赋予具体的值(验证类型为“无”的除外),以组成系统可用的LOV。如下图22所示,其中,有些值之间还可以根据需要定义形成某种“层次结构”,“父子值”之间具有“汇总与被汇总”的关系。



 

验证类型为“从属”或“表”的值集定义比较特殊,前者需先定义所从属的“独立”值集。后者则是将某个系统内的“应用表”作为自己的LOV来源(如“定义供应商”表单维护的供应商名称表),值集定义时,需规定使用哪些表,并定义 WHERE 子句来限制值集要使用的值。

使用值集LOV的表单字段的值几乎都有一个共同的特性是,一般不直接参与业务流程的构建,或不直接影响业务流程的运行。然而系统表单的某些字段是需要承担“流程构建”工作的,这些表单字段有些需要手工输入,有些则可能是系统流程运行时自动赋值或在不同流程阶段自动改写(例如,表单状态“未完成、已保存、已批准、已拒绝”等等),有些值在表单中通常“可见”,有些则可能是在特殊情况下才可见。

    上述这些表单的特殊字段(域)的LOV,一般是由系统在所谓“查找代码”(Lookup Code)功能中定义的。ORACLE在系统层面于一个统一的界面(Form)中按模块、按引用字段进行全部Lookup Code定义。如图23所示库存相关表单中使用到的物料的“需求类型”定义:



 

Lookup Code系统的定义分为三种情况(访问级别),一种是“系统级”,属于ORACLE预定义且不允许用户添加。这种情况下的“代码值”(Code)基本都属于系统的应用程序中需要引用到的,影响或决定着系统业务流程的运行;二种是“用户级”,属于非系统预定义而由用户自己添加,这种情况下的代码值一般不被应用程序所引用,其作用与前述值集LOV值大体相同;三种是“可扩展级”,属于ORACLE预定义但允许用户添加。这种情况下的系统预定义值与“系统级”的定义值作用基本相同,而用户添加的部分,其作用则与“用户级”基本相同。

  • 大小: 125.4 KB
  • 大小: 123.5 KB
  • 大小: 115.2 KB
分享到:
评论

相关推荐

    微软内部资料-SQL性能优化3

    A set of transactions can run concurrently if their outputs are disjoint from the union of one another’s input and output sets. For example, if T1 writes some object that is in T2’s input or output ...

    CE中文版-启点CE过NP中文.exe

    Memoryrecords with auto assembler scripts can now execute their code asynchronous (rightclick and set "Execute asynchronous") Kernelmode memory reading/writing is safer now Added an option to filter ...

    CheatEngine71.zip

    hexview: doubleclicking a non-byte value now shows in the type you set added sorting to the found code dialog added filtering to the changed addresses window the debugger settings won't lock from ...

    EHLib 6.3.171〖D7~XE5〗

    If gioShowRowselCheckboxesEh value is in the DBGridEh.IndicatorOptions property then it is allowed to selected several records quickly by pressing and dragging the pressed mouse. + In DBGridEh.Pas A...

    2009 达内Unix学习笔记

    $ 取环境变量的值。 | 管道。把前一命令的输出作为后一命令的输入,把几个命令连接起来。 |经常跟tee连用,tee 把内容保存到文档并显示出来。 三、通用后接命令符 -a 所有(all)。 -e 所有(every),比a更...

    微软内部资料-SQL性能优化5

    Each index row in node pages contains an index key (or set of keys for a composite index) and a pointer to a page at the next level for which the first key value is the same as the key value in the ...

    stdafx.h代码

    stdafx.h的代码// This is a part of the Microsoft Foundation Classes C++ library. // Copyright (C) 1992-1998 Microsoft Corporation // All rights reserved. // // This source code is only intended as a ...

    python3.6.5参考手册 chm

    PEP 471 - os.scandir() function – a better and faster directory iterator PEP 475: Retry system calls failing with EINTR PEP 479: Change StopIteration handling inside generators PEP 485: A function...

    EhLib 8.0 Build 8.0.023 Pro Edition FullSource for D7-XE8

    Create new folder where source code and binary files will be kept (For example, C:\RAD_Studio_XE2\Components\EhLib). Hereinafter this folder will be call as "EhLib folder". Create new subfolder Lib ...

    TMS Pack for FireMonkey2.3.0.1

    Fixed : Issue with scrolling and selecting value in iOS in TTMSFMXSpinner Fixed : Issue with escape key not cancelling edit mode in TTMSFMXGrid v1.6.0.1 Fixed : Issue with double databinding ...

    LeetCode最全代码

    # [LeetCode](https://leetcode.com/problemset/algorithms/) ![Language](https://img.shields.io/badge/language-Python%20%2F%20C++%2011-orange.svg) [![License]...

    EhLib 6.3 Build 6.3.176 Russian version. Full source included.

    EhLib 6.3 Build 6.3.176 Russian version....Create new folder where source code and binary files will be kept (For example, C:\RAD_Studio_XE2\Components\EhLib). Hereinafter this folder will be call as...

    ehlib_vcl_src_9_3.26

    Allows to hold KeyValue and Text as not affecting to each other values. Take effect when KeyField, ListField, ListSource, DataField and DataSource properties is empty. Drop down list can: Show ...

    EhLib 9.1.024

    Allows to hold KeyValue and Text as not affecting to each other values. Take effect when KeyField, ListField, ListSource, DataField and DataSource properties is empty. Drop down list can: Show ...

    kgb档案压缩console版+源码

    as the digits of x are read, the set of possible y satisfying (1) is restricted to an increasingly narrow lexicographical range containing y. All of the strings in this range will share a growing ...

    C# 语言规格说明(English Edition第五版)

    建议作为平时学习阅读之用 目录: Table of Contents 1. Introduction 1 1.1 Hello world 1 1.2 Program structure 2 1.3 Types and variables 4 1.4 Expressions 6 1.5 Statements 8 1.6 Classes and objects 12 ...

    网上图书销售数据库+ASP

    '-------------------------------------------------------------------- ' Microsoft ADO ' ...' ' ' ' ADO constants include file for VBScript ' '------------------------------------------------------------...

    CISCO 技术大集合

    and when using older software and some boot images. Enter enable password: pass 4.设置虚拟终端访问时的密码: Enter virtual terminal password: cisco 5.询问是否要设置路由器支持的各种网络协议: ...

    au3反编译源码

    'Lookup Passwordhash' Copies current password hash to clipboard and launches http://md5cracker.de to find the password of this hash. I notice that site don't loads properly when the Firefox addin...

Global site tag (gtag.js) - Google Analytics