sql格式化工具_定义格式化搜索

格式化搜索是SAP强大的工具,可以极大提高用户的输入便捷,在10.0中,格搜又有了本质上的提高,支持多点触发,本文将手把手教你如何定义格式化搜索。

一、    概述:

SAP格式化搜索是指:帮助我们在操作过程中,自动输入预设内容到用户操作界面的功能。

在SAP中,任意输入的地方,都可以添加选择工具。选择工具分两种:系统自带的和用户自定义的,系统中自带的选择工具,指的是事先定义的主数据或单据,我们在调用的时候,按TAB键即可。

对于无法选择的输入框,我们也可以用格式化搜索的方式,添加我们想要的任意选择数据,来提高用户的输入便捷,这类选择,我们可以用快捷键shift+F2来进行调用,或者点击录入框上的放大镜图标来调用。

字段右侧的放大镜标志显示格式化搜索的存在,您可以在“查看--选择工具显示--用户定义的值”来查看。

二、    配置说明:

本文模拟场景:在销售订单行中录入物料编号时自动输入该物料的外文名称

1.     定义格式化搜索

  • 概述: 在查询管理器中定义取值SQL,最后在销售订单行的格子中关联这段取值SQL以达到录入物料编号时自动填外文名称的目的

  1. 增加字段

因为标准功能的销售订单行中目前没有外文名称的格子,所以首先要增加自定义字段,添加后销售订单行中将会多一个名为【外文名称】的格子

路径:主界面-工具-定制工具-用户自定义字段-营销单据-行-添加(增加自定义字段)

738cf3dc8a4c6e5a888730e6e3f19354.png

2、定义预设内容

通过在【查询管理器】中定义SQL (此处可以理解为Excel公式)来实现自动填写的目的

  1. 找到【外文名称】存放的位置

物料的外文名称存放在SAP物料主数据界面上,首先我们要知道它在SAP后台存在哪个位置,叫什么名字 方法如下:

4cbfa8c2255d1322fda39c9b25791ef5.png

  1. 找到物料主数据与销售订单界面的关联

销售订单行与物料数据关联是物料编码,那么界面上的物料编码怎么获得呢,参考下图:

fb775a6123619b2bfc32ce3cd36170ba.png

  1. 定义取值SQL

通过前面的步骤,找到了外文描述存放的位置和与销售订单的关联字段,接下来就可以在SQL中定义取值

路径:工具-查询-查询向导(U)-执行

2594ba414d7fdeee30459eef830c85c6.png

上图SQL代码中的$[$38.1.0]表示前述步骤中界面上的物料编号 格式相对固定

$[$Item.Column.0/Number/Currency/Date],按需求不同时改变其中的内容

0:表示取值为文本

Number:表示取数字

Currency:表示取值为货币

Date:表示取值为日期

2.     为字段关联格式化搜索

通过前面的步骤定义好了格式化搜索,接下来将此格搜与界面做一个关联,即可实现自动填写的目的

路径:主菜单-销售-销售订单

2225b2375090006d042fc699f6ab72fc.png

最终效果:

在销售订单中录入物料编号后,SAP将自动填写外文名称

3cf1e2de96997f7e0e48510526921920.png

3.     取消格式化搜索

取消格搜的方法如下图:

b2f0924afc55cb63141f76604ca13f73.png

可能碰到的问题

a)   本例中只能按【物料编号】变化时,自动填外文名称,如果希望多个触发字段建议升级到SAP 10.0版本及以上,新版本支持最多5个触发字段,但这5个字段必须同时在行表或主表中。

新版本增强后可以实现如:A=B+C*D ,且当更改B、C、D任意一个值时都可以自动刷新A,如下图: 

ab3a558128e66e4944618f416cd67dd2.png

b)      需要取得行中带有货币符号的金额进行计算时,虽然只需要数字,但是每次都会把货币符号带上,导致无法计算。

问题原因:参数0和number取得的结果值时不一样的,特别是带有货币符号的字段。

解决方法:以销售订单中不含税单价为例,若单价显示为“100RMB”,使用$[$38.14.0]时,得到的结果就是字符串形式的“100 RMB”。这是可以修改格式化搜索的参数为number,即“$[$38.14.number]”,就可以得到数值型“100”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了编写一个 Java 的 SQL 格式化工具,可以按照以下步骤进行: 1. 解析 SQL 语句,生成语法树。 可以使用开源的 SQL 解析器,例如 ANTLR 或 JavaCC,将 SQL 语句解析成语法树。语法树是一个树形结构,其中每个节点表示 SQL 语句的一部分,例如 SELECT 子句、FROM 子句等。通过遍历语法树,可以识别语句中的不同部分,例如关键字、表名、列名等。 2. 定义排版规则。 定义一组排版规则,例如缩进级别、换行符位置、关键字大小写等。这些规则可以根据个人喜好或标准规范进行定义。通常,可以将排版规则定义为 XML 文件或属性文件,以便灵活配置和管理。 3. 根据排版规则重新生成 SQL 语句。 在遍历语法树的过程中,根据排版规则对 SQL 语句进行重新排版。可以使用缩进符、换行符、空格等字符来格式化代码。例如,可以在 SELECT 子句中的每个列名之间添加逗号和空格,将 WHERE 子句中的逻辑运算符移到新一行等。 4. 输出格式化后的 SQL 语句。 将格式化后的 SQL 语句输出到控制台或文件中。 下面是一个简单的 Java SQL 格式化工具的示例代码: ```java public class SqlFormatter { private String inputSql; private String outputSql; public SqlFormatter(String inputSql) { this.inputSql = inputSql; } public String format() { // 解析 SQL 语句,生成语法树 SqlParser parser = new SqlParser(); SqlNode rootNode = parser.parse(inputSql); // 定义排版规则 SqlFormatterConfig config = new SqlFormatterConfig(); config.setIndentSize(4); config.setKeywordCase(SqlFormatterConfig.KeywordCase.UPPER); // 根据排版规则重新生成 SQL 语句 SqlFormatterVisitor visitor = new SqlFormatterVisitor(config); rootNode.accept(visitor); outputSql = visitor.getFormattedSql(); return outputSql; } } ``` 在这个示例中,`SqlFormatter` 类接受一个 SQL 语句作为输入,并将其格式化为一个新的 SQL 语句。`SqlParser` 类用于解析 SQL 语句,生成语法树。`SqlFormatterConfig` 类定义了排版规则,例如缩进大小和关键字大小写。`SqlFormatterVisitor` 类是一个遍历语法树的访问者,它根据排版规则对 SQL 语句进行重新排版。最后,`SqlFormatter` 类返回格式化后的 SQL 语句。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值