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. 牛券Cow Coupons

    USACO12FEB 久违的奶牛题. 题意: FJ准备买一些新奶牛,市场上有 $ N $ 头奶牛 $ (1 \leq N \leq 50000) $ ,第i头奶牛价格为 $ P_i (1 \leq P ...

  2. CSS高级学习-1

    优先级 权值 标签权值为1,类权值为10,ID权值最高为100. p{color:red;} /*权值为1*/ p span{color:green;} /*权值为1+1=2*/ .warning{c ...

  3. 论一种基于JS技术的WEB前端动态生成框图的方法

    前言 HTML是一种标记语言,由HTML的标签元素和文本编写的文档可被浏览器描述为一幅网页.通常情况下网页的实现是由HTML.CSS和Javascript三者结合完成的,HTML负责网页的结构,CSS ...

  4. 02 Anaconda的介绍,安装记以及使用

    目录 〇.序 Python是一种面向对象的解释型计算机程序设计语言,其使用,具有跨平台的特点,可以在Linux.macOS以及Windows系统中搭建环境并使用,其编写的代码在不同平台上运行时,几乎不 ...

  5. 使用UltraISO制作linux系统安装u盘启动盘

    1.首先打开UltraISO软件,尽量下载最新版的,小编曾用某个旧版的UltraISO,制作的安装盘,不能不能识别磁盘,安装失败! 2.点击工具栏中的第二个打开镜像文件工具,如图红色方框标志按钮,然后 ...

  6. Qt控制台输出QString

    有时候想在控制台输出我们想要的QString变量. 1.qDebug可以实现在控制台终端打印,但我们还是想使用C++中的std::cout<<variable This function ...

  7. LC 802. Find Eventual Safe States

    In a directed graph, we start at some node and every turn, walk along a directed edge of the graph.  ...

  8. 014-数据结构-树形结构-基数树、Patricia树、默克尔树、梅克尔帕特里夏树( Merkle Patricia Tree, MPT)

    一.基数树 Radix树,即基数树,也称压缩前缀树,是一种提供key-value存储查找的数据结构.与Trie不同的是,它对Trie树进行了空间优化,只有一个子节点的中间节点将被压缩.同样的,Radi ...

  9. Java并发包concurrent——ConcurrentHashMap

    转: Java并发包concurrent——ConcurrentHashMap 2018年07月19日 20:43:23 Bill_Xiang_ 阅读数 16390更多 所属专栏: Java Conc ...

  10. pip安装django出错 Could not install packages due to an EnvironmentError: [Errno 13]

    pip install django 下载安装Django报错, 按照提示的建议改为 pip install --user django 安装完成