《ORACLE EBS 有图有真相 FSG报表实例讲解[1].doc》由会员分享,可在线阅读,更多相关《ORACLE EBS 有图有真相 FSG报表实例讲解[1].doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Oracle Gneneral LedgerFSG财务报表生成器学习手册White Paper作者:史鉴创立日期:2007-2-10更新日期:2021年4月14日文档标识:GL-FSG-WHITE-PAPER版本:1.0文档控制变更记录18日期作者版本变更索引2021-4-19J审阅姓名职务分发份数.姓名职位1234目 录文档控制2本手册简介4Oracle财务报表生成器5FSG报表设计技巧及步骤5功能介绍7优先级关系7输出格式类8行/列-显示选项8行-格式选项8行/列帐户分配-显示9列-例外选项9显示组和显示集10行顺序11取值逻辑类13内容集13改写段13行/列-余额控制14计算逻辑类15行
2、/列-百分比、行-行名15改写行/列计算15行/列-运算符16报表定义16临时报表16报表集17方案报表17结束语18本手册简介本手册的主要目的是通过FSG的深入介绍,使大家能够了解FSG报表生成器的一些高级功能,能够使用FSG报表设计较为复杂的财务报表,防止在可以使用标准功能开发的报表时,仍然让技术人员开发报表。本手册不包括FSG报表根本功能知识和局部细节问题,具体请参考HELP、UG。测试环境为系统。Oracle财务报表生成器Oracle EBS有两大类标准报:一种是用XML PUBLISH或REPORT BUILDER开发的报表;一种是使用FSG财务报表生成器配置的报表。前者主要是技术人
3、员参照MD060开发或EBS系统标准报表,后者为财务功能参谋按照业务需求,使用FSG工具生成的报表。判断是否可以使用FSG报表开发满足客户需求的标准:从帐户余额中获取。只要是直接从账户余额获取作为报表金额根底的,并进行较为简单在加工的,一般都可以通过FSG标准功能实现,而不需要通过技术人员另行开发。FSG报表设计技巧及步骤1首先书面草拟报表。在使用 FSG 定义报表之前,您应首先书面草拟报表,这有助于设计报表的格式和内容,从而节省以后的时间。 2定义逻辑科目表。如果在行集、列集和内容集中使用帐户范围和或父公司段值,那么可以大大减少报表的维护活动。 例如,假定某行是薪金费用总额,且为其分配了 5
4、500 到 5599 的帐户范围。如果在该范围中添加了新的薪金帐户段,系统会自动将新帐户纳入报表中。 3定义通用行集。您可以使用定义了最少选项的通用行集,以将报表的维护活动降至最低。例如,假定您需要生成所有部门的明细费用报表,而它们使用不同的费用帐户。此时,您可以使用一个行集来生成所有报表。您可以在定义行集时执行以下操作:l 将所有或大多数费用帐户纳入帐户分配中。l 为每个帐户分配撤消选定“显示零选项,这可以确保报表中不会出现余额为零的帐户。 4使用现有列集。在定义新的列集之前,您可以复查已定义的 FSG 标准列集和任何自定义列集,以查看其中是否存在符合报告需要的列集。您可以使用任何现有列集,
5、或复制现有列集并修改副本。 建议您使用两个通用列集,它们可用于管理任何组织。其中一个列集由定义为使用实际金额类型的多个列组成,可用于按期间月份、季度或年度连续报告。使用此类列集的报表对确定和分析趋势非常有用。 另一个通用列集由定义为实际、预算和差异金额类型的多个列组成。使用此类列集的报表对方案目标和控制业务非常有用。随 FSG 提供的标准列集包括这两种列集的多个版本。 5使用内容集。内容集是一个非常强大的 FSG 功能,您可以在单个报表运行中使用它来生成数以百计的类似报表。例如,您可以使用内容集,根据一个主报表定义来生成 50 份部门报表。通过改写现有报表的行集定义、更改帐户分配和或显示选项,
6、内容集可以发挥其强大的功能。 即内容集中定义的属性优先级高于行集或列集中已经定义的属性。6简化行集和内容集定义。充分利用“扩充和“两者这两种显示类型非常有用,假设无法从字面理解,那么建议自己测试,将报表运行出来看看。显示类型的优点,可以防止定义冗长的行集:l 扩充 - 依据单个行定义创立多个行。您可以在定义行时输入帐户段范围,并为其分配“扩充显示类型。FSG 会为此范围内的每个段值创立一个行。如果为此范围输入了父公司段值,FSG 会显示它的所有子值。l 两者 - 依据单个行定义创立明细行和合计行。7使用自动复制。用于复制现有行集、列集、内容集、行顺序、报表或报表集。例如,您可以执行以下操作:l
7、 复制标准列集,然后修改副本而不修改原始列集。如果直接修改标准列集,那么会无意中更改与标准列集定义相关的其它报表。l 复制与所需行集类似的现有行集,然后修改副本,而不必从头开始建立新的行集。 功能介绍FSG报表中除根本功能外,其他高级工具按照功能可以细分为三类:1、输出格式类包含内容主要有:行-格式选项,行-显示选项,行帐户-显示,列帐户-显示,列-显示选项,列-例外,显示组和显示集,行顺序,内容集显示选项;2、取值逻辑类内容集,改写段,行/列-余额控制3、计算逻辑类行/列-百分比,改写行/列计算,行/列-运算符4、报表定义临时报表,报表集,方案报表 优先级关系由于后面讲到的很多项选择项,行集
8、和列集都会存在相应的选项导致行定义和列定义发生冲突,如计算、显示样式、期间抵销和金额类型。FSG 会遵循一套优先规那么来处理所有这些行/列冲突,如下表列示:行集与列集改写汇总 选项 行优先于列 列优先于行 备注 金额类型 是 否 必须在行层或列层指定金额类型。在指定金额类型时,您还必须指定期间抵销和任何控制值。 抵销 是 否 控制值 是 否 必须在行层和列层分配相同的币种、预算或保存款类型 格式化 是 否 系数是 否 显示零 是 否 明细层是 否 改写行/列计算 否 是 只有为交叉行和列定义了计算的报表单元格中才存在冲突。 活动借记、贷记、求净额 否 是 帐户含帐户显示N/A N/A 报表使用
9、交叉帐户 汇总复选框N/A N/A 必须在行层和列层分配相同的汇总选项 币种 N/A N/A 必须为交叉的行和列分配相同的币种;否那么,会显示 0零而不显示金额。 更改符号 N/A N/A “是优先于“否 更改差异符号 N/A N/A “是优先于“否 输出格式类行/列-显示选项行-格式选项包含多个控制选项,具体都可以通过文档查询得出,其中仅有两点需要进行说明:1更改符号/红字冲销:仅更改报表输出时数字的格式。因为EBS在帐户余额在贷方的输出为负数,帐户余额在借方的输出为正数。举例:如损益表,由于一般情况下主营业务收入贷方有余额,直接输出为负值,因此需要使用更改符号使得报表输出为正数。但是该选项
10、仅仅控制帐户余额的显示格式,并不影响帐户余额在数据库中的存储,因此在定义销售毛利的计算逻辑时,仅需要将销售收入加上销售本钱即可,系统按照借方为正,贷方为负进行加减运算。由于一般销售收入大于销售本钱,即余额仍在借方,因此销售毛利的格式选项也选择“更改符号,那么系统输出的报表中销售毛利也将显示为正数。2显示行/列:仅更改报表输出时是否显示该行,并不影响该报表使用该行时的相关计算逻辑及计算结果。行-格式选项使用行集格式选项,您可以为报表行设置根本的格式,包括缩进、行间距、下划线字符和分页符。 缩进:由行定义生成的每个报表行,均会自报表左边距起缩进此空格数。 跳过的行数:FSG 在报表行上方和下方留出
11、的空行数。注:此格式适用于整个报表行,而不是由行定义生成的单个行。 下划线字符:您可以指定打印在报表行上方和下方的下划线字符。例如,如果行定义为合计上方所有行,您可以指定 FSG 在总额上方打印单虚下划线,在总额下方打印双虚下划线。 分页符:选定“之前或“之后复选框,以指明 FSG 是否应在打印行之前和或之后插入分页符。测试截图:行/列帐户分配-显示对于帐户分配中,有几个控制选项,以下将介绍两个:1帐户分配的显示类型可以将三种显示类型之一分配给帐户分配中的帐户段,并可以使用内容集改写这些显示类型。 E:扩充扩充段值范围并显示所有段值,同时依据单个行定义创立多个行。如果为此范围输入了母公司段值,
12、FSG 会显示它的所有子值。请勿选择汇总报表来显示报表中的所有子值。 注:在请求汇总余额时,您可以使用“FSG:扩充父值配置文件选项来控制父值的扩充。 T:合计合计范围内的段值并仅显示段值的总余额,同时限制报表中显示的行数。如果为范围输入了母公司段值,那么 FSG 会合计该母公司段的所有子值。 注:如果将帐户分配给列,您必须对每个段使用 T合计显示类型。如果将多个帐户范围分配给行并且要合计它们,那么还必须对每个段指定 T合计显示类型。请不要为一个包含非 T 显示类型的行输入多个帐户范围。即在定义T所包含的 子范围的时候,一定要把所有的子值都包括进去,如果存在游离于T的子值出现在帐户范围中,那么
13、可能会报错。原因:ORACLE是按照父子的层次关系进行合计和展开扩充范围的。如果存在空白,那么可能报错。B:两者兼有扩充范围并合计范围内的段值,同时显示所有段值以及段值的总余额。此选项允许同时显示明细行和合计行。如果为范围输入了母公司段值,那么 FSG 会合计该母公司段的所有子值。请勿选择汇总报表来显示报表中的所有子值。 补充说明:扩充范围:指将帐户范围中定义的帐户明细列示。2汇总复选框需要明细说明如果需报告指定范围内的帐户汇总余额,请选定“汇总复选框。注:在请求汇总余额时,您可以使用“FSG:扩充父值测试了很屡次,但仍然不清楚该配置文件以及汇总复选框的作用,以及该配置对应的业务,还请高手指点
14、。只是发现勾选汇总复选框后,报表帐户对应的值翻倍了配置文件选项来控制父值的扩充。 列-例外选项如果要突出显示报表中需要立即引起注意的信息,请定义列例外。例如,您可以定义一个例外,“标记报表中实际支出超过预算 $1,000 或更多的行。在请求报表时,您可以选择只显例如外。 可以选择条件、=、= 或 ,并输入常数来定义例外。您可以根据需要为例外输入多个条件。如果在此区域中为例外输入了多个条件,FSG 只会标记那些符合所有条件的金额。 要设置标记符合至少一个指定条件、但不要求符合全部条件的行,您需要定义与条件同样多的列,但只显示其中一个列。例如,如果要标记符合五个条件中一个或更多条件的金额,您必须定
15、义五个列。您可以为非显示列定义将其本身与显示列相加的计算。例如,如果显示列为 5,那么可以为列 6 至列 9 定义使用运算符“+及列顺序上下限为 5 的计算。然后为每个列分配一个例外标记和一个条件。补充说明:为列6至9使用运算符“+及列顺序上下线为5的计算目的是给列6至列9赋值,以作为例外条件的判断。显示组和显示集您可以使用显示集和显示组来生成忽略相关信息的报表变体,或者生成包含普通报表中没有的信息的报表变体。为此,您只需通知 FSG 显示或不显示哪些行或列。 注意,此处同显示行/列具有同样作用,仅针对报表的显示,并不影响报表原有计算逻辑和结果。显示组定义了行集中的行范围或列集中的列范围。您可
16、以将显示组分配给显示集,以控制要在报表中显示的行和列。 1、 要定义显示组,请执行以下操作:考虑到其他文档上没有,因此此处添加操作说明。(1) 定位至“显示组窗口。(2) 输入显示组的名称和说明。(3) 输入行集或列集的名称。要创立通用显示组,请将这些字段留空。 (4) 输入行或列显示范围的起始序号和终止序号。例如,如果指定一个行集,并选择 10 至 40 作为序号范围,那么显示组会影响 10 至 40 行。 (5) 保存您所做的工作。2、定义显示集,请执行以下操作:(1) 定位至“显示集窗口。(2) 输入显示集的名称和说明。(3) 输入要用显示集改写其行或列显示定义的行集或列集名称。 (4)
17、 输入每个显示组分配的序号。(5) 为每个显示组分配选择显示选项。如果选定“显示复选框,报表会显示与在所分配显示组中指定的行和或列范围相关的值。如果未选定“显示复选框,那么行和或列值不会显示出来。 注:即使选择不显示行和列值,行标题和或列标题也会在报表中显示。 行标题和列标题是通过行工程标题以及列标题控制的,与显示集无关。(6) 在“行组和“列组字段中输入显示组名称。如果需要,您可以同时输入行组和列组。 如果同时分配相应的行组和列组,那么系统将对行组和列组的交集局部进行显示调整。注:如果显示组没有包含在相关行集和列集中定义的所有行和或列,那么与没有使用显示集一样,未包括在显示组中的行和或列也会
18、显示在报表中。 7.可选输入显示组分配的说明。8.可选输入附加显示组分配。9. 保存您所做的工作。3、补充说明:1显示组:确定当前显示组对报表中行集或列集的影响范围,对与影响范围之外的行工程默认不做任何改动。2显示集分配到相应的报表上,如果没有分配,在运行报表之前也可以临时添加显示集。3显示集仅影响报表的显示,并不影响金额的计算。4、总结:显示组和显示集类似于报表头和行的概念,显示组可以分配到任何的显示集上。当然,如果显示组对应了行集/列集,那么该显示组仅针对该行/列集起作用。仅影响报表输出格式,不影响报表计算逻辑和计算结果。行顺序EBS中,帐户是由COA构成,即多段结构。如果在“帐户分配的显
19、示类型选择“E/B,那么系统将按照COA,将COA中定义的段全部列示。如果认为需要对列示的段先后排序调整默认按照COA的段顺序,以及对报表段值的显示排序重新定义,那么可以考虑使用行顺序。即可以使用行顺序来控制如何在报表中显示明细行。您可以执行以下操作:考虑到external training的gl文档中,仅介绍而无说明,因此此处在每个步骤处详细列出说明,帮助读者理解其中的原理。l 同时显示段值和帐户说明,或只显示段值。l 按列中显示的金额为明细行排序。l 按帐户段值或段值说明为明细行排序。l 重新排列帐户段的顺序以满足特殊报告的需要。例如,您可能希望产品段值显示在本钱中心值的前面。 l 取消特
20、殊帐户段的题头说明。前提条件:要按帐户段值或说明为明细行排序,相关行定义中的段的显示类型必须为“扩充或“两者。您也可以使用其显示类型设置为“行/扩充或“行/两者的内容集。 1、要创立新的行顺序,请执行以下操作:(1) 定位至“行顺序窗口。(2) 输入行顺序的名称和说明。(3) 可选输入“按列划分等级信息。(4) 可选输入“帐户显示信息。(5) 保存您所做的工作。 2、如果要按列按列划分等级信息中显示的金额为明细行排序,请执行以下操作:(1) 创立新的行顺序或查询现有行顺序。(2) 在“行顺序窗口中输入列的名称或序号,这些列的值将用于为明细行排序。 (3) 序号与排序列的序号对应,此排序列与列集
21、中按顺序显示的其它列相关,列集中最左边的列序号为 1。 例如,假定您定义了以以下集:列序号 1 2 3 位置 50 75 100 序号 10 20 30 是否显示? 是 否 是 如果要根据列 1 中的金额为明细行排序,那么输入序号 1。如果要根据列 3 中的金额为明细行排序,那么输入序号 2 因为未显示列 2。 注意:此处的序号为列从左到右的报表显示的顺序,而不是定义列集时手工输入的序号。(4) 选择划分等级的方法。您可以按升序或降序为金额排序。(5) 保存您所做的工作。3、要按帐户段值或段值说明帐户显示信息为明细行排序,执行操作如下:(1) 创立新的行顺序或查询现有行顺序。(2) 可选在“行
22、顺序窗口中输入“按列划分等级信息。(3) 输入用于为明细报表行排序的段序号。(4) 输入段名。4、选择“排序依据方法,以控制明细报表行的排序方法: 说明 - 按帐户段说明排序。 值 - 按帐户段值排序。注:如果输入“说明或“值作为排序依据方法,FSG 会忽略您在“依据列划分等级区域中输入的任何信息。 等级 - 按“按列划分等级信息排序。即按列排序时定义的排序规那么注:如果为段分配了“按等级排序方法,您还必须输入“按列划分等级信息。如果没有,FSG 会按帐户段值排序。此外,如果使用“按等级排序方法,那么排序段后面的所有段的显示类型均必须为“合计或“两者。否那么,FSG 无法推导为报表行排序所需的
23、总额。5、输入段的显示方法: 说明 - 将在报表上显示段说明。 值 - 在报表上显示段值。 值和说明 - 在报表上同时显示段值和说明。6、 输入帐户段的打印宽度。如果选择打印段说明,请确保有足够的打印宽度来打印此说明。 注:您还必须确保列集定义中报表左边有足够的空间,以容纳行顺序中指定的所有段的累计打印宽度。 即列集左边的宽度是一个总宽度,起总体范围限制作用。 7、要重新排列帐户段帐户显示信息的顺序,请执行以下操作:(1) 创立新的行顺序或查询现有行顺序。(2) 可选输入“按列划分等级信息。(3) 在“行顺序窗口中输入段的帐户显示信息,您需要在报表上打印此段时更改它的帐户序号,即为此段输入新的
24、序号。注:您无需为帐户结构中的每个段均输入一个新序号。在更改帐户段的序号时,FSG 会自动调整所有段的位置左边或右边。例如,如果帐户结构是公司 - 本钱中心 - 帐户 - 产品,并且为公司输入的新序号为 3,那么打印在报表上的帐户为本钱中心 - 帐户 - 公司 - 产品。 (4) 输入段名、排序依据方法、显示方法和打印宽度。 8、要取消特殊帐户段的题头说明,请执行以下操作:在输入“帐户显示信息时,将段的打印宽度设置为零。 取值逻辑类内容集通过为报表请求分配内容集,您可以在单个运行中生成数以百计的类似报表。内容集会控制如何区分这些类似的报表。例如,假定您的组织有 50 个部门,并且“部门是一个帐
25、户段;再假定您具有每周运行一次的差旅费 FSG 报表。通过将内容集与现有报表定义一起使用,您可以在一个报表请求中打印每个部门的差旅费报表,然后将报表分配给 50 个部门经理进行复查。内容集类似于行集,您可以通过改写现有报表的行集定义来发挥其成效。上一段讨论的细分报表变体,是通过内容集更改行集帐户分配和或显示选项来获得的。 具体操作请参见external training的gl局部文档改写段您可以使用改写段功能来生成“细分报表。举例:例如,假定您定义了一个会生成公司损益表的报表。现在,您需要创立相同报表的细分版本,此细分报表会 为每个部门显示损益表行项一个报表列对应一个部门。“部门是一个帐户段,
26、可具有以下某个值:0 1 = 销售、02 = 制造、03 = 财务、04 = 行政管理、05 = 公司。原始报表定义使用名为“损益表的行集和名为“公司 YTD - 实际的列集。要生成细分报表,您需要定义具有以下属性的新列集:l 使用“部门段作为“改写段。l 为每个部门纳入一个列定义。l 将部门段值指定为每个列定义的改写值。例如,“销售部门第一列的改写值将定义为“01。 l 可选定义汇总所有部门的列。完成之后,列集定义应为:列集名称:部门细分 销售列 制造列 财务列 行政管理列 公司列 序号 10 20 30 40 50 金额类型 YTD - 实际 YTD - 实际 YTD - 实际 YTD -
27、 实际 YTD - 实际 宽度 12 12 12 12 12 因子 个位 个位 个位 个位 个位 显示样式 999,999,999 999,999,999 999,999,999 999,999,999 999,999,999 改写值 01 02 03 04 05 列标题 销售- 制造- 财务- 行政管理- 公司- 表 1-13 使用段改写的列集定义实例第 1 页,共 1 页 补充说明:可定义改写段处:列,报表定义,报表运行。冲突优先原那么:越靠近报表运行,设置的优先级越高。交集:如果不同地方改写段设置不同,那么最终报表输出及取值按照改写段的交集取值。行/列-余额控制行/列-余额控制有金额类型
28、、币种、控制值及抵销四个字段。其中金额类型具有一般性,不作其解释。主要解释控制值和抵销。1、抵销:可通过此字段定义相出各个时段的报表,0为当前期间,-1为向前一个期间。补充说明:如果总账期间设置为13期间,因此如果想看上一年度同期数,那么抵销期应该为-13,而不是-12。2、控制值:针对外币、预算、保存金额类型的FSG报表,需要使用控制值标记,否那么无法针对以上三种金额类型取值。1外币报表举例:1要报告某个特定币种的折算帐户余额,请输入该币种。如果要报告以外币输入的金额而不是折算金额,请输入一个控制值编号。这样,在定义报表时,您就可以将币种和“输入币种类型分配给该控制值编号。 2定义报表时选择
29、控制值,进入控制值分配FORM界面。3分配控制值对应的币种及币种类型补充说明:如果控制值处分配的币种与定义列集的比重不一致,那么使用控制值处设置的币种,与列集对应的币种和报表运行时选择的比重无关,即控制值出定义的比重优先级最高。待定问题:1、控制值处的比重类型是什么?有什么作用?我没有测试出来计算逻辑类行/列-百分比、行-行名1、行名:在定义计算或使用其它表单时,您可以使用此名称来引用该行。该行名不会显示在任何报表中。 注:如果您方案在计算时使用行名,请确保行名在行集中是唯一的。 2、行/列-百分比:仅解释行-百分比,列-百分比原理类似。行-百分比为百分比列输入值。该值是您要用作百分比分母的行
30、的序号。例如,如果您要定义下面的这张报表,请在“行百分数字段中为每行输入销售总额行的序号 40。然后在列集中定义一个计算列,它会使用运算符 % 和列序号 10 来计算销售列的百分数。列10列 20 销售额 销售总额百分比行10100 10 行 20 400 40 行 30 500 50 行40合计1000 100 补充说明:1、对应报表需求:百分比计算是按照合计行的数值作为分母计算得出。2、列-百分比作用及报表应用同理。改写行/列计算如果报表中存在冲突计算,FSG 会使用列计算而非行计算,除非通知 FSG在行定义中改写任何冲突列计算。 可能出现的冲突计算如以下图举例说明:行/列-运算符可以定义
31、公式来计算行或列的金额。例如可以定义行计算,以将报表中此行以上的所有行相加;也可以定义列计算,以计算前面两个列之间的差额。 考前须知:由于总帐管理系统以负数存储贷项余额,以正数存储借项余额,因此您需要根据情况定义相应的计算。例如,如果要计算毛利行,请将销售本钱行与销售额行相加而不是相减。 具体运算符意义可使用HELP查询。报表定义临时报表可以在必要时定义临时财务报表以满足特殊报告的需要。临时报表是在运行财务报表时定义的一种报表,您不必为临时报表分配名称,总帐管理系统会自动按以下格式为特别报表命名:FSG-AD HOC-。补充说明:1、系统不会自动删除临时报表,因此有必要定期人工删除。在运行“删
32、除即席报表程序时,您可以指定 FSG 删除在指定天数内始终未运行的所有特别报表,以优化系统性能。2、如果您作为系统管理员运行此程序,FSG 会删除所有指定的特别报表,而不管是谁最后请求此报表。如果以用户责任运行此程序,那么 FSG 仅删除在您的责任下创立的指定特别报表。报表集将多个定义好的报表组合在一起,我们称之为“报表集;它可以一次性运行多个报表请求,打印多个报表,减少手工操作,提高效率。在运行报表集时,可以选择“单一报表集和“多个报表集两种。其中“多个报表集为同时运行多个报表集,而“单一报表集是仅运行一个报表集,但可以针对报表集中各报表输入不同的参数。其中:“应用可以将“期间和“币种应用在
33、报表集中所有报表上。方案报表此处摘自杜兴龙的“系统主要报表实现及FSG的应用与研究PPT,之前没有研究过。总帐管理系统中含有一个名为“程序 - 运行财务报表生成器的程序,我们可以使用该程序来运行FSG报表。相对“运行财务报表窗口而言,使用该程序运行 FSG 报表的主要优点是,我们可以方案报表在特定日期和特定时间运行。并可以指定提交报表请求的频率。一旦设置了方案报表运行,系统会自动处理相关报表而无需您执行其它操作。结束语以上是根据我在工程中使用的报表,以及自己的研究,并参考有关资料和同事的研究文档,总结出的文档,并在其中说了自己的理解,如有什么不正确的地方,还请各位高人能够及时指出,谢谢。 (4-Dec-96)2021年4月20日