EFM中的正则表达式

2020-09-16 10:22发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的

我正在使用博客作为指南。 我使用的是"旧的" EFM样式,尽管就功能而言,我认为这没有什么不同。

我的文件遇到两个问题:

1)我似乎无法将日期格式化为可接受的格式。
2)我无法让EFM在找到匹配项后立即停止读取行。

我的结构为.csv,并具有以下格式:

"日期","时间","时区","描述","货币","总","费用","净额","余额"-等
 " 1/1/2018"," 00:11:46","欧洲/柏林"," Foo"," EUR"," 1,23","-0,01"," 1,22","  1.000,00"-等
 " 5/2/2018"," 02:52:01","欧洲/柏林"," Foo"," EUR"," 2,34","-0,02"," 2,32","  1.002,32"-等
 " 10/3/2018"," 08:51:34","欧洲/柏林"," Foo"," EUR","-2,34"," 0,02","-2,32",  " 1.000,00"-等等
 " 15/3/2018"," 03:18:41","欧洲/柏林"," Foo"," EUR"," 45,67","-1,23"," 44,44","  1.046,76"-等等。

我可以使用正则表达式过滤第一行:

(?<= \ n)。* 

这不是问题。


日期,我认为需要分段。 我可以使用以下正则表达式突出显示第一个字段,不带双引号,但1/1/2018似乎不是EFM的正确格式,必须为01/01/2018。

(?:(?<=(?:[^"] *"){1})([^"] +)

在所附的屏幕截图中,您可以看到这将第一行(1/1/2018)转换为18-/2-1/.

efm-preview.png

第二部分屏幕截图说明了问题的第二部分。 我的bankfile仅为正值和负值提供了一个字段。 我尝试将其拆分,因此可以通过创建两个都查找第11个双引号直到下一个双引号的字段来使用字段'DebitAmountLC'和'CreditAmountLC'。

(?<=(?:[^"] *"){11})([^"] *)

对字段"借方"进行过滤:引用" 11"(本身)必须大于或等于0

对于"贷方"字段:引用" 11"必须小于0。

结果是两个字段都输入了,并且只有负数,它填充了0作为借项(我希望它为空白)。 对于正(借方)值,它也会填充CreditAmountLC字段,从而忽略过滤器。

我希望这与EFM在找到与正则表达式的第一个匹配项后不再在行上停止有关(如在第一个匹配项后继续显示颜色的行所示)。

我们将非常感谢您提供任何有关如何获得正确金额的帮助。

(25.3 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的

我正在使用博客作为指南。 我使用的是"旧的" EFM样式,尽管就功能而言,我认为这没有什么不同。

我的文件遇到两个问题:

1)我似乎无法将日期格式化为可接受的格式。
2)我无法让EFM在找到匹配项后立即停止读取行。

我的结构为.csv,并具有以下格式:

"日期","时间","时区","描述","货币","总","费用","净额","余额"-等
 " 1/1/2018"," 00:11:46","欧洲/柏林"," Foo"," EUR"," 1,23","-0,01"," 1,22","  1.000,00"-等
 " 5/2/2018"," 02:52:01","欧洲/柏林"," Foo"," EUR"," 2,34","-0,02"," 2,32","  1.002,32"-等
 " 10/3/2018"," 08:51:34","欧洲/柏林"," Foo"," EUR","-2,34"," 0,02","-2,32",  " 1.000,00"-等等
 " 15/3/2018"," 03:18:41","欧洲/柏林"," Foo"," EUR"," 45,67","-1,23"," 44,44","  1.046,76"-等等。

我可以使用正则表达式过滤第一行:

(?<= \ n)。* 

这不是问题。


日期,我认为需要分段。 我可以使用以下正则表达式突出显示第一个字段,不带双引号,但1/1/2018似乎不是EFM的正确格式,必须为01/01/2018。

(?:(?<=(?:[^"] *"){1})([^"] +)

在所附的屏幕截图中,您可以看到这将第一行(1/1/2018)转换为18-/2-1/.

efm-preview.png

第二部分屏幕截图说明了问题的第二部分。 我的bankfile仅为正值和负值提供了一个字段。 我尝试将其拆分,因此可以通过创建两个都查找第11个双引号直到下一个双引号的字段来使用字段'DebitAmountLC'和'CreditAmountLC'。

(?<=(?:[^"] *"){11})([^"] *)

对字段"借方"进行过滤:引用" 11"(本身)必须大于或等于0

对于"贷方"字段:引用" 11"必须小于0。

结果是两个字段都输入了,并且只有负数,它填充了0作为借项(我希望它为空白)。 对于正(借方)值,它也会填充CreditAmountLC字段,从而忽略过滤器。

我希望这与EFM在找到与正则表达式的第一个匹配项后不再在行上停止有关(如在第一个匹配项后继续显示颜色的行所示)。

我们将非常感谢您提供任何有关如何获得正确金额的帮助。

(25.3 kB)
付费偷看设置
发送
3条回答
jovirus
1楼-- · 2020-09-16 10:51

Hurenkamp先生,

感谢您提出此问题。

当您指的是"老" EFM设计师时,请问您是否会遇到新设计师的情况? 如果您无法对其进行测试,您是否可以同意将您正在处理的临时文件发送给我们,以便我们进行检查? 调查可能会更容易。

先谢谢您,

Eva Kucbelova

SAP Business One解决方案管理

一只江湖小虾
2楼-- · 2020-09-16 10:46

Hurenkamp先生,

感谢您向我们提供文件,以便我们能够通过电子邮件提供工作解决方案。

我希望这将帮助您满足业务需求。

如果您有任何其他反馈或问题,请随时与我们联系。

亲切的问候

Eva Kucbelova

SAP Business One解决方案管理

nice_wp
3楼-- · 2020-09-16 10:39

亲爱的库伯洛娃夫人,

谢谢您的回复!

我试图在新设计器中重现模板,但是不幸的是,我无法使其进行正确的测试运行。 据我所知,新设计器的功能与旧设计器相同,但是我发现旧版本的用户界面要容易得多。

请在下面找到"旧"和"新"样式文件以及我正在使用的数据。 如果您可以看一下,我将不胜感激。

一周热门 更多>