前文:

SAP Adobe Form 教程一 简单示例

SAP Adobe Form 教程二 表

SAP Adobe Form 教程三 日期,时间,floating field

本文链接:https://www.cnblogs.com/hhelibeb/p/15503859.html

原文标题:SAP Adobe Interactive Form Tutorial. Part IV. Dynamically Hide and Display Fields using Javascript in Adobe Form Based on Conditions

条件(IF-ENDIF、CASE、WHILE 等)是常见的程序组成部分。

例如,客户的所有员工都必须在他们从办公室打印的表单签名中将时区打印为GMT–6。 因此,98% 的客户将使用 GMT–6 小时作为他们的时间,但会有2%的用户居住在另一个州,他们将时间作为 GMT–7小时。 所以对于那些特定的用户,你需要放置特殊的逻辑,让他们的签名显示 GMT – 7。这里你必须处理条件并根据条件打印值。

(译注:严格来说,逻辑处理和输出混合在一起是不合适的,但这里我们只关注实现的过程)

假设,在您的驱动程序中,您已经确定了员工所在的时区,并且根据他们的工作地点设置了标志 v_regular_employee = ‘X’ 或空白。

IF v_regular_employee = abap_true.
v_time_sign = 'GMT - 6'.
ELSEIF v_regular_employee = abap_false.
v_time_sign = 'GMT - 7'.
ENDIF.

我们的 Adobe Form需要根据条件值动态打印“GMT – 6”或“GMT – 7”。注意,我们将编写一个小的 Javascript 而不是 ABAP 代码。

PS:可能有很多方法可以实现上述场景。 为了清楚起见,我们保持简单。

本文假设读者已经看过前序教程,否则建议在此处暂停,回到之前的教程。读者至少需要了解Form, Interface, Context的概念。

事务代码:SFP。

创建interface,

添加importing参数IV_NAME和IV_FLAG,

检查、保存和激活。

接着回到SFP创建form,

拖放2个参数到context区域,

前往Layout,

前往Data View并且拖放字段IV_NAME。

选择字段IV_NAME并且前往Palettes->Script Editor.

可以看到下面屏幕,

前往Show选项,在下拉菜单中选择form: ready。

这里就可以写Javascript或者Form Calc代码了。

写下如下简单代码:

if($record.IV_FLAG.value != "X")
{
this.presence = "hidden";
}

检查,保存和激活。

下面是测试部分,

Case 1 : When IV_FLAG = ‘X’.

用F8执行form,输入参数,

再F8执行,预览,

因为当我们传递IV_FLAG=X时,隐藏元素的脚本没有被触发。因此元素不会隐藏。

Case 2 : When IV_FLAG = ‘ ’.

这次测试时让IV_FLAG为空,

可以看到结果,满足隐藏的条件,因此输出是空白的。

单独用驱动程序调用的话,代码如下,

 1 *&---------------------------------------------------------------------*
2 *======================================================================*
3 * YRAM_ADOBE_FORM_PROGRAM4 *
4 *======================================================================*
5 * Project : SAP Adobe Forms Tutorial *
6 * Author : Ramanjula Naidu DARURU (www.SAPYard.com) *
7 * Description : Dynamically Hiding & Displaying a field on the Adobe Form
8 * Layout based on Condition *
9 *======================================================================*
10 REPORT yram_adobe_form_program4.
11
12 *======================================================================*
13 * Selection Screen
14 *======================================================================*
15 PARAMETERS: p_name TYPE name1,
16 p_flag TYPE char1.
17
18 **&&~~ Data Objects
19 DATA: gv_fm_name TYPE rs38l_fnam, " FM Name
20 gs_fp_docparams TYPE sfpdocparams,
21 gs_fp_outputparams TYPE sfpoutputparams.
22
23 CONSTANTS : gv_form_name TYPE fpname VALUE 'YRAM_ADOBE_FORM4'.
24
25 *======================================================================*
26 * START of Calling the Form
27 *======================================================================*
28 *&---------------------------------------------------------------------*
29 **&&~~ Form Processing: Call Form - Open
30 *
31 CALL FUNCTION 'FP_JOB_OPEN'
32 CHANGING
33 ie_outputparams = gs_fp_outputparams
34 EXCEPTIONS
35 cancel = 1
36 usage_error = 2
37 system_error = 3
38 internal_error = 4
39 OTHERS = 5.
40 IF sy-subrc <> 0.
41 " Suitable Error Handling
42 ENDIF.
43 *&---------------------------------------------------------------------*
44 **&&~~ Get the Function module name based on Form Name
45 *
46 CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
47 EXPORTING
48 i_name = gv_form_name
49 IMPORTING
50 e_funcname = gv_fm_name.
51 IF sy-subrc <> 0.
52 " Suitable Error Handling
53 ENDIF.
54 *&---------------------------------------------------------------------*
55 **&&~~ Take the FM name by execuing the form - by using Pattern-
56 **&&~~ call that FM and replace the FM Name by gv_fm_name
57 **&&~~ Call the Generated FM
58 CALL FUNCTION gv_fm_name
59 EXPORTING
60 /1bcdwb/docparams = gs_fp_docparams
61 iv_name = p_name
62 iv_flag = p_flag
63 EXCEPTIONS
64 usage_error = 1
65 system_error = 2
66 internal_error = 3
67 OTHERS = 4.
68 IF sy-subrc <> 0.
69 * Implement suitable error handling here
70 ENDIF.
71 *&---------------------------------------------------------------------*
72
73 *&---------------------------------------------------------------------*
74 *&---- Close the spool job
75 CALL FUNCTION 'FP_JOB_CLOSE'
76 EXCEPTIONS
77 usage_error = 1
78 system_error = 2
79 internal_error = 3
80 OTHERS = 4.
81 IF sy-subrc <> 0.
82 * <error handling>
83 ENDIF.

YRAM_ADOBE_FORM_PROGRAM4

SAP Adobe Form 教程四 动态隐藏和显示字段的更多相关文章

  1. iOS UITableView动态隐藏或显示Item

    通过改变要隐藏的item的高度实现隐藏和显示item 1.创建UITableView #import "ViewController.h" @interface ViewContr ...

  2. SAP ABAP编程 Table Control动态隐藏列

    在SAP DIALOG设计中,有时候须要动态的隐藏某些列,以下是方法. ***数据定义 CONTROLS: table_control TYPE TABLEVIEW USING SCREEN 0100 ...

  3. JQuery动态隐藏和显示DIV

    <head> <script language="javascript"> function HideWeekMonth() { $("#tt1& ...

  4. react中如何实现一个按钮的动态隐藏和显示(有效和失效)

    初始准备工作 constructor(props) { super(props); /* * 构建导出数据的初始参数,结合用户下拉选择后动态设置参数值 * */ this.state = { btnS ...

  5. datagrid其中某列需要动态隐藏或显示的mvvm绑定方式,也可以用在其他表格类型控件上

    版权归原作者所有. 引用地址 [WPF] HOW TO BIND TO DATA WHEN THE DATACONTEXT IS NOT INHERITED MARCH 21, 2011 THOMAS ...

  6. 无废话ExtJs 入门教程四[表单:FormPanel]

    无废话ExtJs 入门教程四[表单:FormPanel] extjs技术交流,欢迎加群(201926085) 继上一节内容,我们在窗体里加了个表单.如下所示代码区的第28行位置,items:form. ...

  7. adobe form

    Call Adobe Form through ABAP Program 2015-04-24      0个评论    来源:ChampaignWolf的专栏   收藏    我要投稿 Scenar ...

  8. NGUI系列教程四(自定义Atlas,Font)

    今天我们来看一下怎么自定义NGUIAtlas,制作属于自己风格的UI.第一部分:自定义 Atlas1 . 首先我们要准备一些图标素材,也就是我们的UI素材,将其导入到unity工程中.2. 全选我们需 ...

  9. Nginx教程(四) Location配置与ReWrite语法

    Nginx教程(四) Location配置与ReWrite语法 1 Location语法规则 1.1 Location规则 语法规则: location [=|~|~*|^~] /uri/ {- } ...

  10. Quartz教程四:Trigger

    原文链接 | 译文链接 | 翻译:nkcoder 本系列教程由quartz-2.2.x官方文档翻译.整理而来,希望给同样对quartz感兴趣的朋友一些参考和帮助,有任何不当或错误之处,欢迎指正:有兴趣 ...

随机推荐

  1. 探寻UUID的起源与奥秘:从时间戳到唯一标识

    1. UUID起源与原理 UUID(Universally Unique Identifier)是一种唯一标识符,最初由Apollo计算机公司的软件工程师Roedy Green在1987年提出.其原理 ...

  2. Oracle与Java JDBC数据类型对照

    Oracle Database JDBC开发人员指南和参考 SQL Data Types JDBC Type Codes Standard Java Types Oracle Extension Ja ...

  3. archlinux xfce 设置fcitx5中文输入法详细教程

    1.安装fcitx5 sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-pinyin-zhwiki fcitx5-im 包含fcitx5的一些 ...

  4. python爬虫爬取科技报告数据,共计40余万条(来自国家科技报告服务系统)

    按学科分类[中图分类] 共计三十余万条科技报告数据 爬取的网址:https://www.nstrs.cn/kjbg/navigation !!! 如果要完整地跑起来代码,需要先看一下我的这篇博客,完成 ...

  5. ssh登录太慢了,每次都要20s

    背景 大家工作时,少不了ssh登录各个服务器,我这边手里也有很多服务器,有一些登录很快就进去了,有些要卡半天才能进去.之前以为是公司网络问题,每次也就忍了,这次突然不想忍了,决定定位一下. 我这边的服 ...

  6. #LCT,树状数组#CF1137F Matches Are Not a Child's Play

    题目 分析 考虑从删除序列末尾来看,最大值一定在末尾, 然后与次大值之间夹了整条路径的点,降序以此类推 实际上从小到大是每个点到最大点的路径被打通的过程,由此分成若干条实链. 删除序列的位置实际上是到 ...

  7. SQL DELETE 语句:删除表中记录的语法和示例,以及 SQL SELECT TOP、LIMIT、FETCH FIRST 或 ROWNUM 子句的使用

    SQL DELETE 语句 SQL DELETE 语句用于删除表中的现有记录. DELETE 语法 DELETE FROM 表名 WHERE 条件; 注意:在删除表中的记录时要小心!请注意DELETE ...

  8. k8s之emptyDir存储卷

    一.简介 emptyDir卷是最简单的卷,主要用于存储临时数据,当pod生命周期结束,emptyDir卷也就销毁. emptyDir卷应用场景一般是pod中多个容器共享数据,即在pod中定义一个emp ...

  9. web 报表工具如何自适应

    现在的报表用户已经不再将报表作为一个单纯的报表工具看待了,有时候也会当作页面工具来使用,这时为了页面显示工整美观,就需要报表能够自适应宽度.下面我们就基于润乾报表来讲一下是如何做到自适应展现报表. 产 ...

  10. 记一次 .NET某炉膛锅炉检测系统 崩溃分析

    一:背景 1. 讲故事 上个月有个朋友在微信上找到我,说他们的软件在客户那边隔几天就要崩溃一次,一直都没有找到原因,让我帮忙看下怎么回事,确实工控类的软件环境复杂难搞,朋友手上有一个崩溃的dump,刚 ...