(开发者:如需修改,请于文件目录中,使用word方式打开进行编辑保存)
参数从上往下,代表处理的先后顺序(注:参数之间的空格,只能有一个。“*”代表模糊)
主表:数据入库时根据该表是否是主表入库
附表:主表的一个补充,和主表的某个字段(数据库里的表的字段_映射后)的值进行合并
合并:和主表进行合并,合并的规则是,根据标准化后表的首行/列,相同的则合并进该行/列,不同的追加进主表的行/列
特殊处理:(以下配置参数的顺序,也代表了系统内部程序对参数的处理顺序)
*> 按顺序处理(注:在特殊处理处首行添加,程序就会按配置的顺序处理,就不会先进行配置的行删除操作,2020-04-22添加)
*> 定位表互斥 => 主_x|副_y
eg: 定位表互斥 => 主_101|副_91
注:在定位的时候,主、副不能同时定位到同一个表,如果同时定位到同一个表格了,将会移除“副”表的定位
(表格定位后立即处理)
*> 定位取表=>定位多表取最后一个
注:表格外定位时,在文件定位出现多个表相同情况,取文件最后一个表格数据(2025-02-27添加)
*> 首行值 => 参数1&参数2*&* | 参数1&参数2*&* (“|”分组)
注:首行必须存在参数1、包含参数2和*,否则将会被删除
(表格定位后立即处理) (对解析出的表的异常格式处理)
*> 赋值 => x行y列 = 参数
eg:赋值 => 首行5列 = 合计
对x行y列为空值 则赋值等于参数,支持“首” “尾”,比如 “5行首列”
注:若是对首行首列赋值,则首列的第二第三行必须有一个不为空,否则不执行该操作
*> 赋值 => x行_参数* = 空/参数
eg:赋值 => 首行_项目 = 空
*> 赋值 => y列_参数* = 空/参数
eg:赋值 => 首列_项目 = 项目合计
*> 赋值 => 参数(列标题1)_移动(列标题2)
eg:赋值 => 合计(关联交易项目名称)_移动(关联方名称) 在同一行中,行标题1列中出现参数,则把参数移动到行标题2列中
注:使用列标题的信息需要在别名替换中有相应的配置信息或者和列标题一致;对应的列标题中不能包含英文的括号“(”、“)”
*> 赋值 => 表字段_顺延
eg:赋值 => 关联交易项目名称_顺延 表字段所映射的那一列顺延(若空取上)
注意说明:
要顺延的科目,需要在别名替换中配置一条别名,别名=标准参数,即使它俩相同
如果文件表格的字段和数据字典的列名一致,那么就需要再别名中添加一条 原始字段 = 数据字典字段的一个别名,如果不添加,找不到对应的列,则无法完成顺延。
eg: 赋值 => 受托人_顺延
*> 赋值 => 表字段_逆延
eg:赋值 => 关联交易项目名称_逆延 表字段所映射的那一列顺延(若空取下)
*> 赋值 => X列Y行以上_参数* = 空/参数
赋值 => X列Y行以下_参数* = 空/参数
eg:赋值 => 首列4行以下_利息收入 = 利息收入2 (注:于2018-12-17 新增处理参数)
*> 赋值 => X列为空 = 空/参数
赋值 => X行为空 = 空/参数
eg:赋值 => 首列为空 = 其他 赋值 => 首行为空 = 其他 赋值 => 1列为空 = 其他 (注:于2018-12-21 新增处理参数)
*> 赋值_强制 => x行y列 = 参数
指定的行列对应的单元格内容是否为空,都进行赋值的处理,x,y可以设置负数,表示倒数第几行/列
eg:赋值_强制 =>首行3列 = 合计 将首行的第三列单元格的内容赋值成为合计的内容(注:于2019-09-11 新增处理参数)
eg:赋值_强制 =>-2行-2列 = 合计 将倒数第二行和倒数第二列单元格的内容赋值成为合计的内容(注:于2021-02-02 新增处理参数)
(表格定位后立即处理)
*> 赋值_取上 => 参数* (可模糊匹配)
eg: 赋值_取上 => 同上
如果出现同上的单元格,就是该单元格上一行同一列的内容,进行赋值替换;
(如上一行的内容是“银行间市场”,同上的单元格内容就会赋值为 “银行间市场”), 该赋值替换顺序由上往下执行;
(注:于2020-02-10 新增处理参数)
*> 删除行/列 => 参数1*|参数2*
注:这里的删除列/行 和关键字的删除行/列的区别在以,前者是在定位后立即对原始表格处理的,后者是在表格标准化之前处理。当同一个表被不同的关键字定位到后,就会有区别。 “|”或
*> 删除行 => 仅首列非空
注:在一行中,仅首列为非空,其余的均为空,则删除该行
*> 删除行(行以下全部) => 参数1|参数2*
注:参数所在的行(包含)以下行,全部移除
*> 删除行(行以上全部) => 参数1|参数2*
注:参数所在的行(包含)以上行,全部移除
*> 删除行(行以下全部)_保留关键字 => 参数1|参数2*
删除行(行以上全部)_保留关键字 => 参数1|参数2*
注:同 “删除行(行以下全部)”,但是保留该关键字所在行 (于2018-12-17 新增处理参数)
*> 删除行&列 => 参数 | 参数*
注:删除参数所在的行和列
*> 非空删除行/列 => 非空值_x
注:该行/列中,如果存在的非空值小于或等于x,则删除该行/列
(表格定位后立即处理)
*>
删除列(列之前全部)_保留关键字 => 参数1|参数2 * (保留关键字可选)
删除列(列之后全部)_保留关键字 => 参数1|参数2* (保留关键字可选
注:同 “删除行(行以下全部)”功能类似 进行之前列之后列的删除(于2020-02-14 新增处理参数)
*> 填充 => 首行填充
注:该配置只对表的首行进行填充,从第二列开始若空取左,不和“按行填充”、“按列填充”配合是用
*> 填充 => 首行独立
注:只针对表格 按行划分且行标题填充 的情况,首行从第二列开始,若当前为空,取左
*> 填充 => 倒数x,y,z列独立
注:针对表格 按行/列划分且行标题填充 的情况,尾列,若当前为空,取下
*> 填充 => 倒叙填充
注:只针对表格 按行划分且行标题填充 的情况,从尾列开始到第二列,若当前为空,取左,若左为空,取下
*> 填充 => 层数_x
注:告知该表的行/列标题需要填充x行/列
(对表格拆分后(若存在多表)填充处理时处理,结合“按行填充”和“按列填充”使用)
(表格定位后立即处理)
*> 填充 => 首列空值取上/下
注:填充 => 首列空值取上,行值为空,取上一行的值填充(第二行从上往下处理),填充 => 首列空值取下,行值为空,取下一行的值填充(倒数第二行从下往上处理)(在行合并后处理)
*> 行合并 => 参数1*|参数2*
eg: 行合并 => 非经常性|损益
注:针对定位后存在跨行显示数据的原始表 找出参数1所在的行和列,再根据参数所在的那一列,查找参数2,若参数2存在,则参数1和参数2所在的两行进行合并,参数1所在的行的列 + 参数2所在的行的列
“*”代表模糊匹配参数,否则精确匹配参数
*> 行合并 => 参数1%|参数2%
注: 于2019-04-24 添加“%”的行合并处理
一条行合并的规则,只能出现一种类型的*或者%; 两个不可同时存在, % 只能配置在参数的开头或者结尾,如果配置在参数内容的中间,当做正常字符处理。
eg: 行合并 => %资金信托|计划%
说明:匹配上一行 “资金信托”结尾的单元格 匹配下一行“计划”开头的单元格,如果上一行和下一行,同时满足,则进行合并;
eg: 行合并 =>占基金资|产净值比例(%)
说明:匹配上一行单元格内容 “占基金资”的单元格,与下一行单元格内容“产净值比例(%)”,内容完全匹配的情况,如果上一行和下一行,同时满足,则进行合并;
*> 行合并 => x行以下y列 参数1|参数2|空
规定了几行以下和第几列
*> 行合并 => x行以下 参数1|参数2|空
规定了几行以下(默认列为 第一列到最后一列)
*> 行合并 => y列 参数1|参数2|空 规定了第几列(默认行为 第二行及以下)
注:于2018-11-15日修改成下面方式,上面的方式丢弃掉。
*> 行合并|x行以下y列 => 参数1|参数2|空 规定了几行以下和第几列
*> 行合并|x行以下 => 参数1|参数2|空 规定了几行以下(默认列为 第一列到最后一列)
*> 行合并|y列 => 参数1|参数2|空 规定了第几列(默认行为 第二行及以下)
注:在x行y列,若出现为空的数据或等于参数,则无条件和上面的一行进行合并,范围仅限于空行和空行上面的一行,参数为完全匹配,x不允许为“尾”
(表格定位后立即处理,对解析出的表的异常格式处理)
*> 行合并 => 数字合并|数字合并
注:2021-10-9添加,出现数字分开两行披露的情况,需要进行行合并。两行数据合并后判断小数点位少于四位的则进行合并。eg:546,999,10 0.00 =>546,999,100.00
如果出现两行数据都是整数无小数点的,也是符合合并条件的,这种就会存在误判的情况(很难避免)
*> 行合并 => 日期合并|日期合并
注:2023-03-28添加,出现日期分开两行披露的情况,需要进行行合并。两行合并后判断符合正则日期格式 \d{4}年\d{1,2}\{1,2}日则进行合并。eg:2022年 12月31 =>2023年12月31日
*> 行合并_参数2任意列 => 参数1*|参数2*
注:2022-07-05添加 这种是出现标题在不同行,需要把标题合并在同一行,顺序从上往下合并,参数1和参数2都尽量取该行最左边的,因为匹配是从左往右的
例子:行合并_参数2任意列 =>本期增持股份数量*|期初持股数*
行合并_参数2任意列 =>期初持股数*|任职状态
行合并_参数2任意列 =>任职状态|姓名
*> x行以下 => 参数*|参数* 删除行/列
注:有几个参数,则相应的删除几行/列, “|”或,
如果只有一个参数,请用 x行以下 => 参数* 删除行/列
*> x行以下y列 => 括号内置空 (y列) 可有可无, y 可以是“首”、“尾”
注:目前的处理模式是只取最后的括号“(”之前的值,若后续出现特殊情况再完善 eg: 00(11)22 结果为 00
说明:
3行以下 => 附注* 删除列 这是删除3行以下出现附注*的列
3行以下 => 附注* 删除行 这是删除3行以下出现附注*的行
(表格定位后立即处理)
*> x行以上 => 参数*|参数* 删除行/列
注:有几个参数,则相应的删除几行/列, “|”或
如果只有一个参数,请用 x行以上 => 参数* 删除行/列
*> x行以上y列 => 括号内置空 (y列) 可有可无, y 可以是“首”、“尾”
说明:x行以上和x行以下 类似,删除指定行以上出现的字段的行、列
(表格定位后立即处理, 2020-02-05新增该特殊处理)
1、 新增特殊处理 (删除行列的时候要限制行 比如这个就可以配置为: x行以上 => 参数*|参数* 删除行/列)
(因业绩报表优先级高,先看了业绩报表的问题,所以今天没有按计划完成)
2 平衡报表反馈问题处理
3 业绩报告预测表可行性研究
*> 添加列 => 参数1*|参数2*
eg:添加列 =>税前*|税后*
注:若表头存在参数,则表添加一列,用参数填充,若参数代表模糊匹配,则去除“*”, “|”或
(表格定位后立即处理)
*> 首行首列 => 空格|参数1|参数2|*
注:三大报表使用。 该表的首行首列必须包含参数中的一个,否则将会删除行 首行首列的值必须为空格、或者包含参数1、包含参数2,以此类推,如果不满足,将会删除该行
(表格定位后立即处理,对解析出的表的异常格式处理)
*> 包含表 => 首行_参数(表ID = x)
eg:包含表 => 首列_公司(表ID = 91)
注:该配置只针对三大报表的子表,且表里同时存在合并和母公司两个表的数据(一般为大于2列的表) 参数为包含模式
(表格定位后立即处理)
*> 主子表ID映射 => 主_x|子_y
eg: 主子表ID映射=> 主_102|子_101
注:当子表定位了多个,同时主表也定位到了多个,此时用于对主子表(文件里的)作映射关系,以便在获取主表的关联标识时,明确
(表格定位后立即处理)
*> 列处理 => 跨列_(空行_x)_(非空大于_y)
eg:列处理 => 跨列
列处理 => 跨列_(空行_x)
列处理 => 跨列_(非空大于_y)
注:本来是应该在一列里披露,但是由于解析的原因,分在了相邻的多列里披露,需要合并列(该列的首行为空,则需要合并)
(空行_x) :x代表该列中,从第1行到第x行都为空才进行合并 参数为可选字段
(非空大于_y) :y代表要合并的一行,非空的数据必须大于y才进行合并,否则删除该行 参数为可选字段
注:该参数在存在“行填充”时,不适用。
(表格定位后立即处理,对解析出的表的异常格式处理)
*> 尾行值 => 非空数_x 数字_y 百分数_z
注:针对把表格外的数据,解析到了表格的尾部的特殊处理
从尾行往上,条件为非空数必须大于x 数字的数量必须大于y 百分数的数量必须大于z 才认为合理,否则将会删除该行
(表格定位后立即处理,对解析出的表的异常格式处理)
*> 数据划分模式 => 代码区间(xxxxx_xxxxxx) 行/列划分
注:当代码在设置的区间内时,修改数据的划分模式
eg: 数据划分模式 => 代码区间(0_600000) 行划分 数据划分模式 => 代码区间(600000_1000000) 列划分
(表格定位后立即处理)
*> 限定代码定位有效 => 代码区间(xxxxxx_xxxxxx)
eg:限定代码定位有效 => 代码区间(600000_1000000)
注:处理的文件代码在设置的区间值判断,判断定位是有有效,对某些特殊条进行过滤。
(表格定位后立即处理) 于2019-1-3新增特殊处理参数
*> 表格外/内参数 => 0000 参数X(名称X_Num)&x行/列 - 参数1(名称1)|X行/列 - 参数2(名称2) 新增行/列
注:1.表格外出现了参数(“别名替换以后的”),新增名称,但表格内X行/列出现了参数1,则新增名称1,以此类推。
2.新增行的/列的名称为“名称X”,即行头和列头为“名称X”。行/列里的具体值则是根据代码“0000”和参数“参数X”获取的对应值,不该改变
3.若代码不是数字或是等于零,则不需要转化,直接返回参数X
4.这里的参数X其实是标准的字符,若不同的公司披露的字段不一样,则需要在别名替换页面做别名替换,这里需要注意的是,虽然是在别名替换页面做的配置,但这里的并没有做任何别名替换的处理,
eg: 1> 别名替换参数 原始字段 => 参数X(标准字段)
2> 表格外参数 => 0000 参数X(名称X)&x行/列-参数1(名称1)|X行/列-参数2(名称2) 新增行/列 说明:此处是根据参数X找到了别名替换里的原始字段,再用原始字段去检查别个外的参数,如果包含,则新增“名称X”行/列
5.先判断表格外,再判断表格内
6.0000 等于 0,代表无需转化
7.名称X_Num中的 _Num可有可无,没有则代表需要根据 0000和参数X 进行转化,没有则不需要转化
eg: 表格外参数 => 0000 预付(会计科目_2) 新增列
如果表格中出现了预付的字段内容,则给表格新增列,表头的名称是“会计科目”,对应的单元格的值是“2”
(表格定位后立即处理)
*> *行中文日期替换 => 字段参数_参数1_参数2
eg: 首行中文日期替换 => 报表日期_同期_去年同期
注:根据该表的主表的字段参数对该表的*行进行中文日期替换, 若字段参数的值的“年”等于当前时间的年,则用参数1替换,否则参数2替换,目前只支持两个参数
(标准化时处理)
*> 三大报表 => f003 = 参数 空入库
eg: 三大报表 => f003 = 0
注:只有三大报表才可以配置该参数, “空入库”代表值为空也需要入库
(对文件里的表协议化后处理)
*> 无单位换算 => 参数*|参数*
注:对某个标题不进行单位换算(该配置只对三大报表起作用,如果附注表需要此功能,应该在字段映射页面设置量纲处理)
(字段映射时处理)
*> 文本删除 => 参数 | 参数*
注:该参数只能配合获取文本信息时使用,
(字段映射时处理)
*> 存在记录校验 => 参数待定
注:该配置针对现金表的子表做的特殊处理,之所以用该参数的配置体现,是为了防止关键字修改后内部代码失效或异常的情况
(主子表获取SEQ时处理)
*> 表追加处理 => 被追加101_加表102
注:把102直接追加到101表的后边,如果按列划分时,首列相同,追加列; 如果按行划分,首行相同,行追加
追加操作完成之后,将会把102表丢弃
(所有的表别名替换后处理)
*> 表格空格处理 => 去除表内空格
表格空格处理 => 保留一个空格
注:去除表内空格,只要是空格,就直接去除掉
保留一个空格,将多个空格的地方,只保留一个空格
(注:与2019-2-15添加该特殊处理参数)
*> 新增规则 =>f|列名_参数(首列包含字段)|
eg:新增规则=>f|披露方式_1(1年*个月*一年*3年*三年)
注:如果满足条件,并且不包含当前指定的列,则新增指定列 列值为当前配置的值
如果满足条件,并且包含当前指定的列,则修改当前列的值为设置的值“_1”中的1
*> 新增规则=>首行| 列名=参数*|参数*|参数*
eg: 新增规则=>首行|排放总量计量单位=t/a*|t*|kg*|吨/年*
注:判断首行的字段,是否包含t/a等关键字,如果包含,则新增一列,列名为 排放总量计量单位,该列的值就赋值为t/a。多个参数是循环查找的,只要匹配到一个就不再查找。
*> 指定列为空 => 字段1|字段2|字段3
字段1、字段2 等 均为数据库表字段名称
说明:如果一行数据满足配置的字段都为空,则过滤该条数据不入库
eg:(基金投资组合债券券种配置
指定列为空 => TOT_VAL|TOT_VAL_PROP|BUY_COST|BUY_COST_END_VAL_PROP
一个表的关键字配置内也可配置多条,与配置到一起效果一样)
指定列为空 => TOT_VAL|TOT_VAL_PROP
指定列为空 => BUY_COST|BUY_COST_END_VAL_PROP
注:配置字段为空,则过滤该字段为空的行(删除行) 如果配置多个,则多个同时为空,删除满足配置的行
如果配置了不是该表的字段,则默认当前关键字配置的该类规则不生效。
字段映射后处理。(注:于2019-03-26添加 特殊处理)
*> 指定列为空_含零 => 字段1|字段2|字段3
说明:除了列值为空,当指定列 =0,0.0, 0.00也要不入库
(注:于2020-03-06添加 特殊处理)
*> 指定列取正 => 字段1|字段2|字段3
说明:该列是负数的数据,取正入库,例:-560.50 ->560.50
(注:于2021-03-01添加 特殊处理)
*> 字段运算 => 值字段C=运算字段A(运算符)运算字段B(运算符)运算字段C……&运算符
注: 值字段C、运算字段A、运算字段B等 均为数据库表字段名称,且运算字段不能相同
一个表达式中仅支持一种运算符,仅支持简单的运算
eg: (公司股东户数) 字段运算 => TOT_HLD = STATE_HLD + LEG_HLD&+
字段相加的配置: 字段运算 => FUND_TOT_VOL=ORG_HLD_VOL+INDI_HLD_VOL+UNDEF_VOL&+
字段相减的配置: 字段运算 => FUND_TOT_VOL=ORG_HLD_VOL-INDI_HLD_VOL-UNDEF_VOL&-
注:值字段只能是一个 ,运算字段的个数 >=2(最好这样配置,但是加法可以配置单个运算字段) 运算符 +、-、* (除法暂时不支持)。
注意运算符要使用“&”符号连接,表示使用的运算符是什么。然后程序好分隔字段;
如果值字段本身不为空,那么不进行运算。
字段映射后处理。(注:于2019-04-11添加 特殊处理)
PS: 加法支持一个字段的赋值 如果 值字段为空,将指定的列的值进行赋值给指定的字段
需求说明:当指定列的单元格为空时,取另一个指定列的单元格内容补齐填充)
eg: 募集资金使用情况子表, “拟投入金额(INV_VOL)”为空时,需要用“补充说明(Remark)”填充;
对应配置: 字段运算 => INV_VOL = Remark&+
(注:于2019-11-08测试 ,加法,单个运算字段也适用)
*> 跨页表合并 => 表格1字段A|表格1字段B&表格2字段C|表格2字段D
表格1为定位表; 表格2为定位表后一页的表 表格1和表格2列数必须相同;
字段A、字段B等,包含 * 表示模糊匹配,不包含 * 表示全字匹配,字段可配置多个;
当配置的字段在对应的表格中全部都存在时,判断通过,则进行表格的合并;
(注意: 一个关键字定位,只能配置一条该规则,该规则仅能用PDF转出来的html文件解析有效,其他word、htm文件没有页码。)
表格定位后立即处理。(注:于2019-04-08添加 特殊处理)
*> 单元格函数 => 千分号修正
配置该条规则,将表格内有问题的数据,进行修正 -1.936,018.01 实际应该是 -1,936,018.01
*> 表格页码 => 条件页码数 (条件:大于、大于等于、小于、小于等于 四种)
eg: 表格页码 => 大于35 表格页码 => 大于等于35 当定位的表格大于指定的页码时,定位是无效的
表格页码 => 小于35 表格页码 => 小于等于35 当轻微的表格小于指定的野马式,定位是无效的
表格定位后立即处理。(注:于2020-02-14添加 特殊处理)
*** 特殊处理注释功能添加 ***
*> //
如果需要注释对应 配置的特殊处理的信息,直接在配置的那一条特殊处理上 添加 “//”即可。
eg: //指定列为空 => TOT_VAL|TOT_VAL_PROP
(注意:“//”后面不能含空格,添加了“//”的配置是不生效的配置,起注释的功能)
*> ############以下的配置不启用#############
该注释功能:针对 表格外定位、包含字段表格内定位、不包含字段 其他地方不适用
(注意: # 前后必须有一个,该配置下方的配置内容,为不生效的配置内容)
=== 特殊处理配置注意事项 ===
*> 配置的具体信息,不能和定义的规则名称一致。 如果使用相同规则名称的内容进行配置,文件解析可能会有不可预估的错误。
*> 文本
注:在表格外部定位添加。在当要定位的表是一个文本时,即只要文本信息,不存在表格定位。
*> 表格+文本 选框
注:默认不勾选只处理表格。勾选表示表格外部和内部都定位不到表格,后续还需要处理文本信息 。(2021-03-22添加)
*> 姓名
注:针对“董监事及高管薪酬持股子表”一类 需要姓名转化,根据文件代码获取相应的公司代码,再结合字段映射后获取的姓名的值到数据库中获取相应的映射的值,由于该配置需要的参数“公司代码”是变动的,固在内部自动处理
(对协议化数据进行映射时)
*> 表标题: 参数1|参数2
注:针对按行划分且存在行填充的表, 参数1|参数2 等于 字段_DB
(对协议化数据进行映射时,但在对数据协议化时赋值)
*> 表标题: 参数1@参数2
eg: 税前@税后
注:针对“董监事及高管薪酬持股子表”一类,存在新增的列,和特殊处理中的“添加列 => 参数1*|参数2*”配套使用。且新增的列为参数1或参数2,参数可有多个,用@隔开,但参数不能同时出现,只允许出现一个
(对协议化数据进行映射时)
*> 转化 select key, value from table where * / select value, key from table where *
注:这里是根据键值对的结构写SQL语句的,即一个参数 为要转化的值,另一个参数为要转化后的值。可以写多个sql语句,跨行分隔
*> 主表字段映射(关键字) => 字段名称 = 参数
eg:主表字段映射(中) => 截止日期 = 2016-6-31 关键字:中,年,季,招股,通用
eg:主表字段映射(通用) => 报表类型 = 2, 假设是中报,就处理(中)和(通用)的特殊处理
(对主表的字段进行映射时_主表不存在关键字定位,且每一个主表的数据,均需要单独的主表入库)
*> 起: 参数 | 参数*
止(表格):参数 | 参数*
&
起: 参数 | 参数*
止(表格):参数 | 参数*
注:一个“起 : 止(表格):”代表需要获取一段文本, “(表格)”参数可有可无,有的话,标识不但会获取参数之间文本内容,也会获取参数之间的表格内容, 文本之间的段落用“&”好分割,标识可以获取多个文本段落
注: 于2019-05-22添加 起 可以是:包含起、不包含起,没有该内容是默认包含的。 不包含起向后取;
止 可以是:包含止、不包含止 如果定位到了配置的信息,不包含止,向前取。
eg: 包含起:参数 | 参数*
包含止(表格):参数 | 参数*
&
包含起:参数 | 参数*
不包含止(表格):参数 | 参数*
&
不包含起:参数 | 参数*
不包含止(表格):参数 | 参数*
*> [文本转换]
一级定位=>参数1*|参数2*
一级偏移量=>n
结束一级定位=>参数1*|参数2*
二级定位=>参数1*|参数2*
二级偏移量=>m
结束二级定位=>参数1*|参数2*
文本相等=>值=关键字1|关键字2
文本相等=>值=关键字1|关键字2
文本包含=>值=关键字1|关键字2
文本包含=>值=关键字1|关键字2
(注:下面的只有一级定位时使用)
*> [文本转换]
一级定位=>参数1*|参数2*
一级偏移量=>n
结束一级定位=>参数1*|参数2*
文本相等=>值=关键字1|关键字2
文本相等=>值=关键字1|关键字2
文本包含=>值=关键字1|关键字2
文本包含=>值=关键字1|关键字2
注:
1. 从附件文本中,找到开始和结束定位,设置开始定位的偏移量(既开始定位往下第n行),如果开始定位和结束定位的相差行数少于n,则以实际的相差的行数做判断。
2. 如果只有一级定位,则不需要配置二级定位的内容
3. 文本相等,判断的文本内容和配置的参数相等,然后返回配置值
4. 文本包含,判断的文本内容包含配置的参数,然后返回配置值
eg:
[文本转换]
一级定位=>扶贫工作情况*|社会责任情况*
一级从定位开始偏移=>否
一级偏移量=>2
二级定位=>扶贫工作情况*|社会责任情况*
二级从定位开始偏移=>否
二级偏移量=>2
文本相等=>1=适用|是
文本相等=>2=不适用|否
文本包含=>1=√适用|√适用
文本包含=>2=√不适用|√不适用
(只有一级定位时使用)
[文本转换]
一级定位=>环境信息情况*|环境保护相关的情况*
一级偏移量=>3
结束一级定位=>其他重大事项的说明*|重大事项的说明*
文本相等=>1=适用|是
文本相等=>2=不适用|否
文本包含=>1=√适用|√是
文本包含=>2=√不适用|√否
文本包含=>2=√不适用|√否
*> 字段值长度 => 字段名_100
注:对映射后的字段的值做一个长度的限制,一般为文本字段过长
字段映射界面对应的“表字段(数据库_中文名)”的内容。
eg:字段值长度 => 补充说明_100 (Remark 数据库表字段说明:补充说明)
*> 项目序号 使用说明 (--注意: 配置2 与配置3 的区别,请详细阅读使用说明)
配置1(现有系统配置):“|”分隔,多个字段配置,与数据库中表说明字段统一。
eg:关联标识
--> 如果设置不为空,则根据设置的字段对应的值构造SQL,从数据库查询获取最大值,如果能获取到值,从最大值+1开始自增,如果没有取到最大值,则从1开始自增。
注:该配置可以双击对应的项目序号框,然后选择需要配置的字段即可;
配置2: 按字段分组=字段1,字段2_起始序号=value
和7.0类似, 强制自增的起始值,按字段分组=字段1,字段2 起始序号=100 字段可配置多个 value 是一个数值,正整数,Int类型。
eg:按字段分组=关联标识_起始序号=100
--> 只要配置的字段1、字段2等,存在不为空的字段,则从设置的起始序号开始,依次递增, 如果设置的字段均为空,该项目序号字段不赋值。
注: 1、该配置与对应的字段名称有关;
2、只和当前解析的表数据有关,不查询数据库中的数据;
配置3: 按字段值分组=字段1,字段2_起始序号=value
和配置2类似, 强制自增的起始值,按字段值分组=字段1,字段2 起始序号=100 字段可配置多个 value 是一个数值,正整数,Int类型。
eg:按字段值分组=统计方式,关联标识_起始序号=1
--> 获取对应配置的字段1、字段2的值,然后判断对应的值是否相同,相同的值,则从设置的起始序号开始,依次递增,如果值不相同,则对应的值也是从设置的起始序号开始递增,如果设置的字段均为空,该项目序号字段不赋值;
注: 1、该配置与对应的字段具体的值有关;
2、与对应表格解析出来的数据的值有关,不查询数据库中的数据。
*> 行划分:那么表头是第一行,其他行为表格真实数据
那么别名替换: 替换的是表头的单元格 (即第一行的信息)
那么单元格处理: 替换的是除表头之外的单元格 (除第一行外)
*> 列划分:那么表头是第一列,其他列为表格真实数据
那么别名替换: 替换的是表头的单元格 (即第一列的信息)
那么单元格处理: 替换的是除表头之外的单元格 (除第一列外)
//20200306 添加说明
*> 特殊表的内容 进行替换处理 按行划分->别名替换 按列划分 -> 单元格替换
说明:针对表格中和报表日期关联的信息,每次报告期都需要修改对应的 别名替换配置和单元格的配置
遂将有共同点的配置通用化处理,该处理是再别名替换之后处理。
行划分-别名替换的配置:
(OriginalField原始字段内容) Flag => xxxx年* = 报表日期年份 (StandardField标准字段值)数据库的字段名称
Eg : Flag => xxxx年* = 报表日期年份 本期金额
列划分-单元格替换的配置:
(Original原单元格的值) Flag => 本期金额* = 报表日期年份 (Standard替换后的值)xxxx-mm-dd
Eg: Flag => 本期金额* = 报表日期年份 xxxx-mm-dd
Flag => 上年度末* = 报表日期年份-1 xxxx-12-31
Flag => xxxx年* = 报表日期年份 xxxx-12-31
2021-06-22修改
注:xxxx年1月1日,xxxx.01.01,xxxx.1.1 程序会统一转成标准格式 xxxx年01月01日,用Flag => xxxx年01* = 报表日期年份
xxxx年12月31日,xxxx.12.31 程序会统一转成标准格式 xxxx年12月31日,用Flag => xxxx年12* = 报表日期年份 或 Flag => xxxx年12* = 报表日期年份-1
*> 时间值固定值:GETDATE()、GETDATE()+day、GETDATE()-day
对于表来说是固定值,但是其实是一个变动的时间。
如:发布日期。如果主表包含该字段,每天解析的时候,都需要修改这个字段的值为当天的时间,所以添加该功能。
注: 该字段对应的值 仅为日期值,没有时分秒的值。
eg: GETDATE(), GETDATE()+1, GETDATE()-2
1) 上市公司关联交易未结算金额表 STK_COM_RELA_NBALA
问题:会多删除表格内的数据 标题填充之后,别名替换删除了第二行和第三行的数据?
原因:边界问题,如果是边界的情况,且除了首列和尾列,还存在为空的情况,需要在特殊处理的时候,先把对应行的空列补齐,这样获取的边界就不会存在问题,就不会多删除行的数据了