⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 基于UNIX系统的wForm v1.1软件的源代码。
💻 TXT
📖 第 1 页 / 共 4 页
字号:

			         前     言

    当前WINDODS 上的编程工具日新月异,推陈出新;然而因UNIX运用的局限性,其编程工
具十分贫乏。在UNIX上要做画面、菜单、查询、输入,编程者往往要从底层入手,重复劳动
,效率极低。笔者为了解决这个问题而尽点力,将本系统介绍给您,如您能读完本文,收获
一定不少。
                              
					 编者:王光红

                   EMAIL:       wgh166@hotmail.com
                                wghsoftware@hotmail.com

				软件的安装
(一)建立用户wform;按INFORMIX的要求设置环境变量
(二)将软件包wform.tar.Z 拷贝至硬盘∶tar x6v wform.tar.Z
(三)软件解压∶uncompress wform.tar; tar xfv wform.tar;
(四)建立演示数据库∶
                     cd /usr/wform;
			dbimport demo -lbuffered;
  		        dbimport test -lbuffered;


				一。系统介简

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

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

(三)软件环境∶
    1.操作系统SCO UNIX OpenServer 5.0、SCO UNIX OpenServer 3.0、SCO UNIX 3.0。
    2.编程语言 C、INFORMIX/ESQL。
    说明∶笔者的工作条件仅限于以上环境,如能提供其他的UNIX、SQL数据库(如ORACLE、
          SYBASE等), 系统只需略加修改。
       

				二。系统的文件与库

(一)集成开发器执行程序∶
    /usr/wform/bin/mkform        FORM的定制工具
    /usr/wform/bin/netform       FORM的定制工具(网络版)
    /usr/wform/bin/net_server    FORM的数据服务器

(二)配置文件∶
    FORM的配置文件的路径由环境变量CONFIGPATH指定,缺省为/usr/wform/etc/form.cfg
    文本文件
    它规定UNIX编辑器、FORM参数文件的路径;菜单的格式;存储变量的多少;
    特殊键的键值。

(三)FORM参数文件∶
    FORM参数文件的路径在配置文件中声明。
    二进制文件 
    存放Dialog结构FORM的数据,系统读此文件,按步执行。
    mkform(netform)的画面的参数文件是 /usr/wform/etc/form.bin.sys

(四)帮助信息文件:
    帮助信息文件的路径由环境变量MSGPATH指定,缺省为 /usr/wform/etc/form_msg.dat
    文本文件

(五)系统说明文件:
    系统说明文件 /usr/wform/etc/readme.frm

(六)程序库:
    /usr/wform/lib/libsetform.a 在SCO UNIX OpenServer 5.0上生成。
    /usr/wform/lib/libnetform.a 在SCO UNIX OpenServer 5.0上生成(网络版)。
(七)演示例程∶
   1.两个FORM参数文件∶
   /usr/wform/data/demo.form
   /usr/wform/data/test.form
   2.菜单式演示程序∶
   /usr/wform/menu/menu
   /usr/wform/menu/menu.ec
   /usr/wform/menu/print.c
   /usr/wform/menu/errhandle.c
   /usr/wform/menu/makefile
   /usr/wform/menu/mknet		链接libnetform.a的makefile	
   3.交易式演示程序∶
   /usr/wform/trade/trade
   /usr/wform/trade/trade.ec
   /usr/wform/trade/makefile
   /usr/wform/trade/mknet		链接libnetform.a的makefile
   4.两个数据库∶
   /usr/wform/demo.exp
   /usr/wform/test.exp

	说明:演示程序menu、trade使用的数据库是test,form参数文件是test.form。


				三。系统的基本概念及用途

(一)FORM的结构:

	typedef struct _item_st_ {
		char  flag;			//数据类型(或标志)
		char  len;			//数据长度
		char  seat_y;			//纵坐标
		short seat_x;			//横坐标
		char  fun;			//FORM中嵌入的函数指针编号
		char  field[41];		//复合域
		}Item;

	typedef struct tagOfDialog {
		unsigned  long form_id;		//交易号
		unsigned  long link_form;	//连接交易
		char  mode;			//驱动方式
		char  key;			//索引项
		short num;			//以下Item的个数
		Item  *f;			//FORM中域的结构
		}Dialog;


(二)基本概念及用途
	1.[交易号]  (Dialog.form_id)
	FORM的编号,以此为索引。

	2.[连接交易] (Dialog.link_form)
	FORM结束后调用的另一个FORM的交易号,此值=0,则不调用。

	3.[驱动方式] (Dialog.mode)
	以确定FORM的性质。
		M∶菜单
		P∶打印
		B∶浏览
		E∶结束清域
		D∶结束删除WINDOW
		S∶屏幕滚动
		C∶综合查询

	4.[索引项] (Dialog.key)
	指定查询条件的字段数, 其值是对应于[序],序号小于等于该值的字段为查询条
        件。 仅对查询类FORM有效。

	以下为FORM中域的结构(Dialog.f),域的数量可变。
	5.[类型] (Dialog.Item->flag)

标志符       用				途	数据类型    SQLDateType

(1) 输入输出项
 C、c       普通字符串                            char		char
  H          汉字				  char		char
  R          日期(对字符串进行日期合法性检查)     char		char
  A          帐号(对字符串有复制功能)             char		char
  P          密码(不回显)                         char		char
  G          选项				  char		char
  F          帮助项                               char		char
  D、d       日期(自1899.12.31起至今的天数)       long		char
  M、m       金额                                 double        money, float
  N、n       数值                                 long		intger, smallint

 	以上大写的字符是输入项、小写的字符是输出项。
	可在复合区指明表名和字段名, 形如table.field

 (2) 杂项
  t          提示
  f          菜单格式
  B          值域检查(对上一项值进行检查)
  b          数据库(指定远程数据库),形式database@host
  l          标题
  i          菜单条目
  x          执行 SQL语句
  -          连接符
  |          划线符
  #          画背景符
  W

       当无需指定表和字段时, 复合区前四位存入坐标, 后面的字符可作标题
       类型为 'l', 坐标=0, 则作表头用。

	6.[长度]
	对输出输出项而言是数据长度;对杂项'|','#'是代表颜色。
	字符串数据长度<=128。
	金额的长度 <=16∶长度是小数点前和小数点后位数总数,小数点后定为二位。
        例∶长度=14, 
        小数点前12位,小数点后2位。
	金额的长度 >=20∶
        个位是小数点后位数, 个位前是小数点前的位数。
        例∶长度=125, 
        小数点前12位,小数点后5位。
	金额的长度 >=17and<20非法.


	7.[坐标]
	对一般的FORM后二位是横坐标。前面是纵坐标;纵坐标<24。
	对于浏览器的坐标有特别规定:
	当坐标值大于2499∶ 后三位是横坐标,前面是纵坐标。
	横坐标的最大值512.
	例∶坐标值5150表示∶ 横坐标=150,纵坐标=5。

	8.[嵌入函数]
	FORM中嵌入的函数指针编号,当程序执行完该域后,调用一个特定的函数,函数
        指针须初始化符值。

	9.[复合域]
	是多用途的域,可用作写标题、SQL语句、数据库表名、字段名等。



				四。实例讲解

结合demo.from(注意不是test.form)的实例讲解FORM的用法。

(一)关于菜单制作:
    FROM的驱动方式∶M,域的类型均为∶i
    主菜单横向排列,子菜单纵向排列.
    主菜单的起始坐标由其第一项的坐标确定,如横坐标为零,主菜单在屏幕的中间。
    主菜单与子菜单的制作完全相同,函数SetMenu首先被调用的菜单即为主菜单,子菜单
    由SetMenu内部调用。
    主菜单与子菜单的关系由交易号的值确立,
    子菜单交易号值=主菜单交易号值 * 10 + x,(第 x项,x<=9).
    例∶
    如图1.1 所示∶
    主菜单的交易号是1 
    第一层菜单的第一项交易号是11
    第二层菜单的第二项交易号是112

                         主菜单[1]
 ┌─────────┬───┴────┬─────────┐
 │                  │                │                  │
 │                  │                │                  │
 │                  │                │                  │
 │                  │                │                  │
[10]                [11]              [12]                [13]
         ┌───┬─┴─┬───┐
         │      │      │      │
         │      │      │      │

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -