INPUT指令

说明:
1. 当程序执行到INPUT指令时,会将控制权交给用户,让用户输入数据。
2. 用户输入完字段的数据,会将数据回传给程序中的变量接收。
3. 只要执行到INPUT的指令,程序会将每个字段Default为NULL。

  反之不需要将每个字段的值都变为NULL的话,需添加(WITHOUT DEFAULTS)

范例(cxrq005):

1、首先在MAIN函数前定义客制变量,用来接收用户数据;

#add-point:自定義模組變數-客製(Module Variable) name="global.variable_customerization"

TYPE type_g_input RECORD
xrsduc010 STRING,
xrsduc010_desc STRING,
xrsduc010_desc_1 STRING
END RECORD DEFINE g_input type_g_input #end add-point  

以上这些变量,均对应规格上的控件代号进行定义;

2、在cxrq005 _ui_dialog()函数中的DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)领域下自定义INPUT;

      DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)
#add-point:input段落 name="ui_dialog.input"
INPUT g_input.xrsduc010 FROM xrsduc010 ATTRIBUTES(WITHOUT DEFAULTS) ON ACTION controlp INFIELD xrsduc010
INITIALIZE g_qryparam.* TO NULL
LET g_qryparam.state = 'c' #c-多选,i-单选
LET g_qryparam.reqry = FALSE
LET g_qryparam.default1 = g_input.xrsduc010 #給予default值
LET g_qryparam.arg1 = g_site
CALL cq_pmab001_2() #呼叫開窗
DISPLAY g_qryparam.return1 TO xrsduc010 #將開窗取得的值回傳到變數
#DISPLAY g_qryparam.return2 TO xrsduc010_desc
#DISPLAY g_qryparam.return3 TO xrsduc010_desc_1 END INPUT
#end add-point  

如有多个控件的输入控制权需要交给用户来输入,依次在INPUT指令中输入接收数据的变量和控件代号即可。

CONSTRUCT指令

此指令可让用户在画面上输入查询条件(通称Query By Example;QBE),以取得用户的查询范围数据。用户的查询数据会组成一串WHERE指令(参下页批注),并置入设定好的变量中。若使用者未输入任何条件,即按下『确定』离开CONSTRUCT,系统也会自动于此变量中补入『1=1』

范例同上:

1、同上;

接收WHERE指令的变量最好使用STRING类型;

2、在cxrq005 _ui_dialog()函数中的DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)领域下自定义CONSTRUCT:

         #add-point:construct段落 name="ui_dialog.construct"
CONSTRUCT BY NAME g_input.xrsduc010 ON xrsduc010
ON ACTION controlp INFIELD xrsduc010
INITIALIZE g_qryparam.* TO NULL
LET g_qryparam.state = 'c'
LET g_qryparam.reqry = FALSE
LET g_qryparam.default1 = g_input.xrsduc010 #給予default值
LET g_qryparam.arg1 = g_site
CALL cq_pmab001_2() #呼叫開窗
DISPLAY g_qryparam.return1 TO xrsduc010 #將開窗取得的值回傳到變數
#DISPLAY g_qryparam.return2 TO xrsduc010_desc
#DISPLAY g_qryparam.return3 TO xrsduc010_desc_1 NEXT FIELD xrsduc010 END CONSTRUCT
#end add-point 

①域名和变量名称相同时: CONSTRUCT BY NAME char_variable ON column_list

反之:CONSTRUCT char_variable ON column_list FROM field_list

说明:
 char_variable为接取用户输入数据的字符串变量(建议以STRING格式变量接取)
 column_list为对应到表格(TABLE)的域名清单(逗号隔开)
 field_list为画面(WINDOW或是FORM)上的字段代码清单(逗号隔开)

注:INPUT的数据输入后,其值是分散于个变量中,若要以INPUT指令来接取用户所输入的查询条件,则必需以一连串复杂的字符串组合指令来组出查询指令所需要的WHERE条件。而CONSTRUCT的优点在:系统会自动判别用户输入条件并组合,后续只要将之与SELECT等指令组合即可,可降低设计的复杂度。

INPUT和CONSTRUCT指令——范例报表查询,作用让用户输入数据,自动生成SQL的WHERE条件,带开窗查询的更多相关文章

  1. Linq to sql 实现多条件的动态查询(方法一)

    /// <summary> /// Linq to sql 多字段动态查询 /// </summary> /// <returns></returns> ...

  2. 自动生成 Lambda查询和排序,从些查询列表so easy

    如下图查询页面,跟据不同条件动态生成lambda的Where条件和OrderBy,如果要增加或调整查询,只用改前台HTML即可,不用改后台代码 前台代码: <div style="pa ...

  3. SQL Server优化技巧——如何避免查询条件OR引起的性能问题

    之前写过一篇博客"SQL SERVER中关于OR会导致索引扫描或全表扫描的浅析",里面介绍了OR可能会引起全表扫描或索引扫描的各种案例,以及如何优化查询条件中含有OR的SQL语句的 ...

  4. SQL Server优化技巧——如何避免查询条件OR引起的性能问题

    原文:SQL Server优化技巧--如何避免查询条件OR引起的性能问题 之前写过一篇博客"SQL SERVER中关于OR会导致索引扫描或全表扫描的浅析",里面介绍了OR可能会引起 ...

  5. Linux指令范例速查手册

    linux命令繁多,命令就是AK的子弹,对上口径,百发百中! 无意发现一本介绍Linux命令的手册--->[Linux指令范例速查手册] 下载: https://pan.baidu.com/s/ ...

  6. SAP 查询分析器,查询报表自动生成,SQL查询测试实现说明(转)

    在日常的SAP开发和应用中,经常需要通过查询SAP数据表来处理日常业务,比如:数据对账.报表SQL测试.SAP查询功能开发等.通过开发SAP查询分析器,SAP实施和开发人员,可以在较短的时间内查询到需 ...

  7. NSPredicate用法总结(Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取)

    简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取. 定义(最常用到的方法): NSPredicate *ca = [NSPred ...

  8. 手机端input[type=date]的placeholder不起作用

    <div class="input clearfix"> <label class="fl">起始日期</label> &l ...

  9. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

随机推荐

  1. 1.3 JAVA规范以及基础语法(if条件和循环)

    一.规范以及运算符 1.命名规则 类名大驼峰规则方法名.变量名小驼峰原则常量大写.下划线分开见名释义.不与关键字冲突 关键字链接:https://www.runoob.com/java/java-ba ...

  2. 消息中间件RabbitMQ的使用

    原理场景 MQ在所有项目里面都很常见, 1.减少非紧急性任务对整个业务流程造成的延时: 2.减少高并发对系统所造成的性能上的影响: 举例几个场景: 1.给注册完成的用户派发优惠券.加积分.发消息等(派 ...

  3. PHPStorm2017去掉函数参数提示

    今天升级到 PHPStorm 2017.1 发现增加了好些新功能, 有个默认开启的参数名和类型提示功能, 虽然功能挺强大的, 不过我用不着, 还是关掉的好, 有同样需求的同学可以看看 例子比较特殊这么 ...

  4. mysql查询json字段

    一张test表里存了一个content字段是json类型的,查询该content里manualNo这个字段 select JSON_EXTRACT (test .content, '$.manualN ...

  5. jQuery.extend函数

    http://www.cnblogs.com/luckboy/archive/2009/06/25/1510870.html 1.扩展jQuery静态方法. 1$.extend({ 2test:fun ...

  6. Python-sympy科学计算与数据处理(数学表达式)

    数学表达式 from sympy import * 1/2+1/3 S(1)/2+1/S(3) Out[4]: 5/6 Rational(5,10) Out[5]: 1/2 x,y = symbols ...

  7. 转:SpringMVC 4.1 新特性(二)内容协商视图

    SpingMVC的内容协商支持三种方式: 使用后缀,如json.xml后缀和处理类型的关系可以自己定义 前面说的使用Accept头 在访问时request请求的参数,比如每次请求request都会加f ...

  8. Jenkins+Ansible+Gitlab自动化部署三剑客

    一.gitlab安装 环境:centos 7 x64 1.关闭防火墙 systemctl stop firewalld systemctl disable firewalld 2.禁用selinux ...

  9. 【C/C++开发】【Java开发】JNI的替代者—使用JNA访问Java外部功能接口

    JNI的替代者-使用JNA访问Java外部功能接口 1. JNA简单介绍 先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言( ...

  10. C学习笔记-预备知识

    计算机结构组成 CPU(中央处理器)(控制器+运算器) 存储器(内存+外存) 输出设备 输入设备 计算机系统组成 硬件系统 主机 中央处理器 运算器 控制器 内存储器 只读存储器 随机存储器 外部设备 ...