本篇跟着 程序开发(2) ,接续往下讨论
INPUT依据RECORD的型态,可以有两种指令方式
INPUT a1,a2,a3 FROM formonly.s1, formonly.s2, formonly.s3
进行输入
DEFINE inp RECORD
a1 VARCHAR(10), a2 VARCHAR(10), a3 VARCHAR(10)
END RECORD
INPUT BY NAME inp.*
这样对於大量的栏位设定是较为简单的,从 table的创立到程序码的产生,就可以是一线式的快速完成。但缺点也显而易见,就是若输入的过程中想加入其他表格的栏位,可能需要从表单开始修改起,或是将INPUT BY NAME的星号展开。
INPUT 可以作为单行指令(在不附带任何控制区块的状况下),但作为单行指令时,後方应明确的加上『;』
INPUT控制区块,大抵与 MENU 是相同的。但是重点功能在做『输入』,因此具备下列协助输入的控制区块。
控制区块不用全部设立出来,有需要的在做就好。
以之前的 INPUT a1 FROM s1 为例:
在这些控制区块内,可以使用一些跳动的指令,例如:NEXT FIELD s2 (跳入s2) [当然也可使用 NEXT FIELD CURRENT/ PREVIOUS/ NEXT] 跳入指定栏位。
INPUT ARRAY 只有一种输入的指令:
INPUT ARRAY inp_array FROM s_array.*
INPUT ARRAY与 INPUT 相比,多出了行的处理。以下列出差异的部分:
除此之外,因为资料库中的资料处理方式比较方便的就是一笔、一笔的处理,所以这边为了搭配资料处理,也有下列控制区块:
从以上的讯息,对照资料库的处理方式,可以归纳下列几点
- 新增一行时,初始值得给予要写在 BEFORE INSERT
- 新增一行的 INSERT INTO指令要放在 AFTER INSERT
- 修改一行的 UPDATE 指令要放在 ON ROW CHANGE
- 删除一行的 DELETE 指令要放在 BEFORE DELETE
在INPUT / INPUT ARRAY体系中有一个属性称做缓冲。
缓冲模式的存在主要为了节省一些FGLRUN(DVM)与 client之间的传输量,避免过於密集的改变拖累画面的呈现效率,
但此情况常被开发人员在测试中误解为程序未生效。故有需要加以说明澄清。
利用 ATTRIBUTES区块进行调整
INPUT BY NAME p_site.* ATTRIBUTES(UNBUFFERED)
Genero FGL中还有一种 自带画面 的询问资料方式,PROMPT。依据输入模式的不同,也区分为 2 种输入指令
PROMPT "今天是什麽节日?" FOR answer
或
PROMPT "你喜欢哪一个英文字母?" FOR CHAR ans_1
从上面的范例,可以很明显看出,若只需要单字元的回答,可以增加CHAR 来做控制。
由於是简易的问题答询,因此控制区块如同 MENU 一般,仅有支援
若有输入资料预设值的异动需求时,同样支援 UNBUFFERED 进行缓冲区域的取消。
透过本章节的汇总,应该对於如何收取用户资料非常理解,若有相关问题可以在下方讨论区留言讨论。
>>: Day 21 「事有经重缓急」Clean Architecture 简易入门
我们设定好约束後,也来改变一下元件的外貌吧,这里将以UIButton为例来做个简单说明~此时点选元件...
美国联邦储备局最新公布的议息结果「鹰味浓郁」,但整体符合市场预期。美国的加息步伐在会议之前还未清晰,...
我们昨天建立完Project後,我们再仔细深入研究的话,会发现第二层的Test里面还有其他额外的四个...
TOGAF由国际标准权威组织The Open Group制定。The Open Group於1993...
nightwatch-html-reporter: https://github.com/jls/n...