★★UNIX定制FORM、MENU,访问informix的工具,欢迎大家使用!★★

牧牛人软件 2003-04-10 09:42:46
我在 Sco UNIX open server 下开发了一个能定制FORM、MENU,访问informix的工具,欢迎大家使用!请仔细阅读README。
下载地址:
http://snpack.fykj.com/wgh/wform.rar
http://www.ccrun.com/program/down.asp?id=10
http://www.csdn.net/cnshare/soft/16/16735.shtm



下面是该个工具的字符界面:

FORM生成器(mkform、netform)的使用

_.----..__.'
_ / -._
__ ``-._ ) | ||..\\\ .\ \`-
-'_ `-._ /( `-.\ / // |\
/-'' ``-._| \`-. .`. / | |\ \\ | | \
/_.---.__.| `_/``' `-..-'_/_/ /_/ |//\ \
_..--'/ /' -._ .'"(@ ` @`/-._ \ \
( ' /\ `-.` `(| _' ;`-. ` `_ `.
/ / ``-._ _.'| _ ` ,' '_.-` .'
/ /-------- ``'-~-' `;`~'`` . '
'._ \\ ` \\ / . '
```` --- .. -. \\ \\'
`\ \ \\ \\
`. | || . || ┏━━━━━选择━━━━━┓
\ . || .' `-|| ┃ V 全屏幕编辑_______(0)┃
\ `||' ;|| ┃ T 交易式演示程序___(1)┃
;|| '// ┃ M 菜单式演示程序___(2)┃
_; || // [ ]┃ D 显示系统配置_____(3)┃
/.``||..__.-; ┃ A 调整系统配置_____(3)┃
.'` ``-._|_|.-| ┃ S 清理FORM_________(5)┃
/ ; ┃ P 改变FORM参数路径_(6)┃
; ; ┃ L 登记注册_________(7)┃
; ; ┃ E 退出_____________(8)┃
; ,' ┗━━━━━━━━━━━━┛

...全文
82 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
IamDinosaur 2003-07-23
  • 打赏
  • 举报
回复
非常好!
能否提供For AIX Unix 4.3版本或源程序?
谢谢!
牧牛人软件 2003-04-20
  • 打赏
  • 举报
回复
good
牧牛人软件 2003-04-18
  • 打赏
  • 举报
回复
up
用户 昵称 2003-04-13
  • 打赏
  • 举报
回复
good
tingya 2003-04-12
  • 打赏
  • 举报
回复
不错,用的以后给你提意见.


http://vcprogram.6to23.com
牧牛人软件 2003-04-12
  • 打赏
  • 举报
回复


帐号:[14004] 部门: 电脑房 品名: 打印纸 借贷:[1] 金额:[ 450.00]

------------ 图 8.2 ------------


(五)修改数据:

[命令] g [交易号] 105 [连接交易] 0 [驱动方式] [索引项] 0
[序] [类型][长度][坐标][嵌入函数] [ 复 合 域 ]
0 C 4 1435 0 operate.no
1 c 8 1624 0 operate.name
2 f 1 1652 0 operate.level
3 i 0 0 0 A 业务管理
4 i 0 0 0 B 系统管理
5 i 0 0 0 C 操作员
6 d 8 1828 0 operate.date
7 c 1 1852 0 operate.stat
8 G 1 2135 0
9 t 0 0 0 修改后∶[ENTER]确认 [ESCAPE]取消
10 l 0 1428 0 柜员号
11 l 0 1616 0 1.姓名∶ 2.级别∶
12 l 0 1816 0 3.启用日期∶ 4.状态∶
13 l 0 2128 0 选 择
14 x 0 0 0 update operate set name=$C1, level=$C2,
15 - 0 0 0 stat=$C3, date=$D0 where no=$C0


注意∶
1.如你在使用update、delete、insert 进行库更新, 当操作失败时,你不要提示
可将操作字任意个字母写成大写,如∶Update, deleTe, insErt.


105 FORM: 是修改数据窗口
第0-7项∶ 是单项查询。
第 8 项∶ 类型 'G': 选项,当输入 1至4 即进入相关的域,进行修改, 修改完成后返回
本域(即第5项), 此时按回车就执行第13-14 SQL, 按[ESCAPE]就取消修改。

第 9 项∶ 类型 't': 提示
┏━━━━━━━━━━━━━━━━━━━━━┓
┃ 柜员号[0101] ┃
┃ ┃
┃ 1.姓名∶王光红 2.级别∶A ┃
┃ ┃
┃ 3.启用日期∶19980801 4.状态∶1 ┃
┃ ┃
┃ ┃
┃ 选 择[ ] ┃
┗━━━━━━━━━━━━━━━━━━━━━┛

修改后∶[ENTER]确认 [ESCAPE]取消
------------ 图 9.1 ------------
牧牛人软件 2003-04-12
  • 打赏
  • 举报
回复

(四)数据录入∶

[命令] g [交易号] 130 [连接交易] 29 [驱动方式] [索引项] 0
[序] [类型][长度][坐标][嵌入函数] [ 复 合 域 ]
0 A 5 2009 0
1 c 8 2022 0 unit.name
2 - 0 0 0 unit.code=$C0[1,2]
3 c 10 2036 0 goods.name
4 - 0 0 0 goods.code=$C0[3,5]
5 C 1 2052 0
6 B 0 0 0
7 i 0 0 0 [1,2]
8 M 10 2062 0
9 l 0 2003 0 帐号: 部门: 品名:
10 l 0 2043 0 借贷: 金额:
11 l 0 0 0 办公用品记明细帐
12 l 0 1940 0
13 l 0 2140 0
14 x 0 0 0 insert into detail(account, abst, flag,
15 - 0 0 0 amount, date) values
16 - 0 0 0 ($C0, $C1[1,6]$C2[1,8], $C3, $M0, today)
130 FORM是记帐输入窗口
第 0 项∶类型'A'字符型,只接受阿拉伯数字,有复制功能,一般用于输入帐号.?
复制功能介绍∶
如上次该域的值为 '12001',这次输入'35',那么原前三位不变,
后两位覆盖变成 '12035'.
第 1, 2 项∶根据帐号($C0)的前两位将表unit中name读出,如帐号为"12001",
则sql "select name from unit where code='12'"
第 3, 4 项∶根据帐号的第三至五位将表goods中name读出,如帐号为"12004"
则sql "select name from goods where code='004'"

例∶
在表unit中∶code='14', name='电脑部'.
在表goods中∶code='003', name='打印纸'.
当帐号输入'14003' (见图 8.2)
系统执行SQL:
select name from unit where code='14';
select name from goods where code='003';
第 14,16项∶
将数据插入detail表.
其中detail.abst的值为$C1[1,6]$C2[1,8],表示取unit.name的前六位和
goods.name的前八位作detail.abst的值。
detail.date是datetime型,today是SQL函数。

130 FORM运用了连接交易.
130 FORM的连接交易 29 FORM
29 FORM的连接交易 30 FORM
30 FORM的连接交易 31 FORM
形成交易链∶ 130->29->30->31->130
29 FORM画边框及标题(见图 8.1)
30 FORM的驱动方式'S',既屏幕滚动。当输入一条新的记录后,原窗口内的数据
向上移一行,新数据插入最后一行。
31 FORM的驱动方式'P',既打印。打印清单。


[命令] g [交易号] 29 [连接交易] 30 [驱动方式] [索引项] 0
[序] [类型][长度][坐标][嵌入函数] [ 复 合 域 ]
0 l 0 716 0 帐 号 部门 用品名称 借贷 金
1 l 0 756 0 额
2 l 0 1212 0
3 l 0 1270 0
29 FORM指定窗口的尺寸、标题。

[命令] g [交易号] 30 [连接交易] 31 [驱动方式] S [索引项] 0
[序] [类型][长度][坐标][嵌入函数] [ 复 合 域 ]
0 c 5 1216 0
1 c 8 1222 0
2 c 10 1232 0
3 c 1 1245 0
4 m 10 1248 0
5 l 0 940 0

30 FORM驱动方式: S是滚屏窗口。
第0-4项∶其数据类型必须数据输入相同(即于130FORM的类型同).
长度可小于原FORM的长度,如不需显示的项可将其长度、坐标置零。但不可省略。
第0项对应[帐号] 第1项对应[部门] 第2项对应[品名]
第3项对应[借贷] 第4项对应[金额]
指定窗口的尺寸、标题。

[命令] g [交易号] 31 [连接交易] 0 [驱动方式] P [索引项] 0
[序] [类型][长度][坐标][嵌入函数] [ 复 合 域 ]
0 c 5 1031 0
1 c 8 1225 0
2 c 10 1239 0
3 c 1 1425 0
4 m 10 1439 0
5 l 0 816 0 _______记 帐 清 单________
6 l 0 1025 0 帐号:
7 l 0 1219 0 部门: 品名:
8 l 0 1419 0 借贷: 金额:
31 FORM驱动方式: P打印
向打印设备输出。


┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 帐 号 部门 用品名称 标志 金 额 ┃
┃ 11002 人事部 钢笔 1 25.00 ┃
┃ 11003 人事部 笔记本 1 15.00 ┃
┃ 12003 公关部 笔记本 1 35.00 ┃
┃ 12004 公关部 打印纸 1 245.00 ┃
┃ 14004 电脑房 打印纸 1 450.00 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛
------------ 图 8.1 ------------


牧牛人软件 2003-04-12
  • 打赏
  • 举报
回复


2.交易号为120的FORM内容∶
[命令] g [交易号] 120 [连接交易] 0 [驱动方式] B [索引项] 3
[序] [类型][长度][坐标][嵌入函数] [ 复 合 域 ]
0 C 4 519 0 lsfile.ls_txcode
1 C 11 531 0 lsfile.ls_account[5,16]
2 C 3 550 0 lsfile.ls_bank
3 M 9 561 0 lsfile.ls_money
4 c 4 806 0 lsfile.ls_txcode
5 c 11 812 0 lsfile.ls_account[5,16]
6 c 3 826 0 lsfile.ls_bank
7 m 8 829 0 lsfile.ls_money
8 c 2 844 0 lsfile.ls_limit
9 m 7 847 0 lsfile.ls_interest
10 c 8 859 0 lsfile.ls_name
11 c 2 870 0 lsfile.ls_accflag
12 m 104 872 0 lsfile.ls_balance
13 c 30 8100 0 lsfile.ls_address
14 l 0 512 0 交易码 帐号 所号
15 l 0 556 0 金额
16 l 0 705 0 交易码 帐 号 所号 金 额 期
17 l 0 745 0 限 利 息 姓 名 性质 余 额
18 l 0 7100 0 地 址
19 l 0 1740 0

120 FORM是多项查询∶同时能显示若干项记录,多少根据窗口的长度来定。
序号<=索引项(3)的第 0,1、2、3项的字段
(ls_txcode, ls_account, ls_bank, ls_money)为查询条件。

[交易码]输入"63",其他域为空值。(见图 6.1)
系统执行SQL: select ls_txcode, ls_account[5,16], ls_bank, ls_money,
ls_limit, ls_interest, ls_name, ls_accflag,
ls_balance, ls_address
from lsfile
where ls_txcode matches "63*";
注∶ 字符串为空,数值为零都不被列入WHERE子句。
查询结果如图6.1所示。
与 120FORM不同, 104是多项单行显示,由于受屏幕宽度的限制,同时只能看到局部的信
息, 可通过按左右键来回显示信息。
按右移键'→',显示其他信息,如图6.2所示.?

多项单行显示的制作要点∶
1.要显示的数据其纵坐标都一样,并且是第一条信息的纵坐标。
本例中,第4-13项纵坐标都为8。
2.设定窗口长度。系统根据窗口的长度来确定显示多少记录。
本例中,第17项纵坐标为17,这样8至17行来显示记录。

浏览器的窗口坐标的特别规定∶
为了克服屏幕宽度的限制,使用户可查阅更多的信息,横坐标可大于80。
当坐标值大于2499∶ 后三位是横坐标,前面是纵坐标。
横坐标的最大值512.
例∶坐标值5150表示∶ 横坐标=150,纵坐标=5。



┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 交易码[63 ] 帐号[ ] 所号[ ] 金额[ 0.00] ┃
┃ ┃
┃交易码 帐 号 所号 金 额 期限 利 息 姓 名 性质 余 ┃
┃6301 43240016261 367 625.00 10 20.48 任军飞 10 6, ┃
┃6301 43240016261 367 5,000.00 04 163.83 来丽 10 6, ┃
┃6301 43240016262 367 1,250.00 20 40.96 范军清 10 6, ┃
┃6301 43240016266 367 9,625.00 06 315.37 俞艳娜 10 6, ┃
┃6302 46340010261 363 500.00 08 0.50 沈会宣 10 ┃
┃6302 46340010262 363 500.00 08 0.50 王张富 10 ┃
┃6301 43240016266 362 3,125.00 50 102.39 廖文 10 6, ┃
┃6301 43240016262 362 6,250.00 00 204.78 齐勤 10 6, ┃
┃6301 43440006262 364 6,250.00 00 204.78 王小海 10 3, ┃
┃6301 43240016265 362 625.00 05 20.48 陈胜 20 1,202, ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
------------ 图 6.1 ------------


┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ┃
┃ ┃
┃ 额 地 址 ┃
┃20,753.6800 沿朝3-40-2-401 ┃
┃20,453.6800 大山7-6-2-401 ┃
┃20,493.6800 大德7-6-2-202 ┃
┃20,693.6800 大学新村173-202 ┃
┃98,373.6800 建德5-2-602 ┃
┃98,453.6800 建德5-2-602 ┃
┃21,853.6800 河西路461 ┃
┃20,853.6800 望江路#2-602 ┃
┃65,223.6800 解放512 ┃
┃09,735.2800 朝5-78-402 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
------------ 图 6.2 ------------


牧牛人软件 2003-04-12
  • 打赏
  • 举报
回复


(三)关于浏览器的制作:
FROM的驱动方式∶B.

1.交易号为104的FORM内容∶
[命令] g [交易号] 104 [连接交易] 0 [驱动方式] B [索引项] 6
[序] [类型][长度][坐标][嵌入函数] [ 复 合 域 ]
0 F 1 629 0 operate.level
1 i 0 0 0 * 确省
2 t 0 0 0 查询所有的级别
3 i 0 0 0 A 业务管理
4 i 0 0 0 B 系统管理
5 i 0 0 0 C 操作员
6 C 4 648 0 operate.no
7 - 0 0 0 and no !='00' order by 1
8 c 4 923 0 operate.no
9 c 8 945 0 operate.name
10 c 1 1223 0 operate.level
11 c 1 1232 0 operate.stat
12 d 8 1243 0 operate.date
13 l 0 620 0 级别 操作员
14 l 0 820 0 操作号 姓 名
15 l 0 1120 0 级别 状态 起用日期
16 l 0 0 0 查阅操作员信息
17 l 0 558 0


根据以上参数生成浏览窗口(见图 5)。

104 FORM是单项查询∶同时只显示一项记录。

第 0项∶类型'F': 帮助项. 根据其附属项所提供的数据来选择。
长度表示数据的前几位。
本例的附属项是第7-10项, 复合域是提供的数据。
当程序执行到第 6项时, 就弹出菜单供你选择, 如图4.2所示.
第 2项∶类型't': 菜单提示。

索引项: 指定查询条件的字段数, 其值是对应于[序],序号小于等于该值的字段为查询
条件。

序号<=索引项的第 0,6项的字段(operate.level, operate.no)为查询条件。
当级别选择'A',操作员输入"01"(见图 5.1)

系统执行SQL: select no, name, level, stat, date
from operate
where level matches "A*"
and no matches "01*"
and no !='00'
order by 1;
查询结果如图5.1所示。
按下移键'↓',显示下一条信息,如图5.2所示.?
再按上移键'↑',返回显示上一条信息。

┏━━━━━<104> 查阅操作员信息━━━━┓
┃ ┏━━━选择━━┓ ┃
┃ 级别 [A]┃* 确省_____(0)┃ ] ┃
┃ ┃A 业务管理_(1)┃ ┃
┃ 操作号 ┃B 系统管理_(2)┃名 ┃
┃ ┃C 操作员___(3)┃ ┃
┃ ┗━━━━━━━┛ ┃
┃ 级别 状态 起用日期 ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━┛

------------ 图 5 ------------


┏━━━━━<104> 查阅操作员信息━━━━┓
┃ ┃
┃ 级别 [A] 操作员 [01 ] ┃
┃ ┃
┃ 操作号 姓 名 ┃
┃ 0101 王光红 ┃
┃ ┃
┃ 级别 状态 起用日期 ┃
┃ A 1 19980601 ┃
┗━━━━━━━━━━━━━━━━━━━┛
------------ 图 5.1 ------------




┏━━━━━<104> 查阅操作员信息━━━━┓
┃ ┃
┃ 级别 [A] 操作员 [01 ] ┃
┃ ┃
┃ 操作号 姓 名 ┃
┃ 0105 古飞 ┃
┃ ┃
┃ 级别 状态 起用日期 ┃
┃ A 1 19980606 ┃
┗━━━━━━━━━━━━━━━━━━━┛
------------ 图 5.2 ------------



牧牛人软件 2003-04-12
  • 打赏
  • 举报
回复
一。系统介简

(一)实现功能∶
用于UNIX上做画面、菜单、查询、输入、修改;可操作数据库。

(二)设计思路∶
将人机对话,可分为基本的输入与输出两大类,在此前提下,为了不同的需要把域分作
多种类型;对涉及数据库的域指明有关的表名、字段名,以进行数据库的读写。将这些
不同功能的域有机的组合在一个FORM中,来实现一个功能模块。将FORM编号,按一定的
结构以二进制的形式存入文件,在使用时,系统按编号读入FORM的数据,按步实现预定
的功能。

(三)软件环境∶
1.操作系统SCO UNIX OpenServer 5.0
2.编程语言 C、INFORMIX/ESQL。

(二)关于普通FORM的制作:

1.交易号为 100的FORM内容∶
[命令] g [交易号] 100 [连接交易] 0 [驱动方式] D [索引项] 1
[序] [类型][长度][坐标][嵌入函数] [ 复 合 域 ]
0 C 4 1240 0 operate.no
1 P 6 1440 0 operate.passwd
2 - 0 0 0 and stat !='9'
3 w 0 0 0 密码错 !!
4 c 8 1640 0 operate.name
5 l 0 1228 0 操作员:
6 l 0 1428 0 密 码:
7 l 0 1628 0 姓 名:
8 l 0 0 0 签 到
9 W 0 0 0

根据坐标及长度建立WINDOW (图 2) 所示∶

┏━━ <100> 签 到 ━━┓
┃操作员: [0101] ┃
┃ ┃
┃密 码: [******] ┃
┃ ┃
┃姓 名: 王光红 ┃
┗━━━━━━━━━━━┛
------------ 图 2 ------------


驱动方式∶ D 完成后将WINDOW删除.
索引项∶1 序号<=1的第 0,1项的字段( oper.no, oper.passwd)为查询条件。

第 0项∶类型'C',长度4,复合域说明有关的表及字段。
作用∶接受 4位长的字符串(操作员号)。

第 1项∶类型'P',长度6,复合域的前四位是坐标,以后是提示符号,
效果同第7、8项.
作用∶接受 6位长的字符串(密码),不回显。

第 2项∶类型'-',复合域说明where子句追加的条件。
作用∶使stat=9 的操作员不能签到。
SQL: select * from operate
where no='01' and stat !='9' and passwd='xxxxxxxx';

第 3项∶类型'w',复合域说明警告的信息。
作用∶向不符合条件的操作员发出警告(即前项的SQL不成功)。


第 4项∶类型'c',长度6,复合域说明有关的表及字段。
作用∶显示 8位长的字符串(姓名)。
SQL: select name from operate
where no='01' and stat !='9' and passwd='xxxxxxxx';


第 5-7项∶类型'l',复合域说明提示的符号。
作用∶在规定的坐标后显示标题。

第 8项∶类型'l',复合域说明提示的符号。
作用∶在FORM上方显示标题。

第 9项∶类型'W'.
作用∶等待直至收到发送键才继续。


2.交易号为102的FORM内容∶
[命令] g [交易号] 102 [连接交易] 0 [驱动方式] D [索引项] 1
[序] [类型][长度][坐标][嵌入函数] [ 复 合 域 ]
0 C 4 1240 0 operate.no
1 P 6 1440 0 operate.passwd
2 - 0 0 0 and stat !='9'
3 w 0 0 0 密码错 !!
4 c 8 1640 0 operate.name
5 P 6 1840 0 1828新密码:
6 l 0 1228 0 操作员:
7 l 0 1428 0 原密码:
8 l 0 1628 0 姓 名:
9 l 0 0 0 更改密码
10 x 0 0 0 update operate set passwd=$C3


┏━━<102> 更改密码━━┓
┃操作员: [0101] ┃
┃ ┃
┃原密码: [******] ┃
┃ ┃
┃姓 名: 王光红 ┃
┃ ┃
┃新密码: [******] ┃
┗━━━━━━━━━━━┛

------------ 图 3 ------------

第 10项∶类型'x',复合域说明SQL语句。
复合域中的$C3,$标志符,'C'字符类,3字符类内存序号。
$C3是第 5域的字符串(PASSWD).
第 0域的字符串(no) 是$C0。
第 1域的字符串(passwd) 是$C1。
第 4域的字符串(name) 是$C2。


23,224

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧