Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103401838
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-03-20 21:35:27


本章讲述如何编译和如何在4GL程序中使用FORM。 

三、编辑、编译和使用FORM
1、编辑
      可以使用Informix提供的i4gl工具或用isql工具直接生成.per文件,但是这种方式格式单调、不友好。最好用vi直接编辑.per文件。注意.per文件的格式。
$ vi formtest.per

database formonly
screen
{
 
     +----------------------------+
     |   用户  :[f001]           |
     |                            |
     |   密码  :[f002  ]         |
     |                            |
     |   日期  :[f003      ]     |
     +----------------------------+
}
attributes
f001=formonly.f_userid type char, picture = "AA##", reverse, autonext;
f002=formonly.f_passwd type char, picture = "XXXXXX", invisible, virefy, autonext;
f003=formonly.f_workdate type date, format = "yyyy/mm/dd", noentry;

保存。
2、编译
      可以用i4gl和isql编译,但是我的i4gl启动时coredump,所以我用form4gl直接编译.per文件。
$ form4gl [ -s ] formtest.per 或
$ form4gl [ -s ] formtest
      如果有错误或警告,将产生formtest.err文件。可能出现一大堆错误,但不用害怕,因为这一大堆错误提示可能就是文件开始处的小毛病造成的,并且提示都是汉字的,还有错误代码可用finderr查找。
$ finderr errcode
如果无错,就可产生formtest.frm文件了。
有时编译通过,可是在运行时提示诸如“找不到屏幕域”等提示,这时要修改程序或FORM,注意二者的结合。
3、使用
      生成了.frm文件,就可在程序中打开和显示它了。基本流程如下:
###定义程序变量
    DEFINE f_userid CHAR(4),
           f_passwd CHAR(6)
    DEFINE f_workdate DATE
    LET f_workdate = CURRENT
    ......
###使用FORM
    OPEN FORM frm_login FROM "formtest"
    DISPLAY FORM frm_login
    ......
###输入数据
    INPUT f_userid, f_passwd BY NAME
          ......
          ......
          ON KEY (ACCEPT)
             EXIT INPUT
    END INPUT
    DISPLAY BY NAME f_workdate
      基本上是在程序中控制哪些域是否输入及输入的次序等方面,至于输入的格式和界面样式要在FORM中设定。
      最后编译程序:
$ c4gl -o formtest.4ge formtest.4gl
      运行它:
$ formtest.4ge
      你就能看到你希望的界面了,坐在屏幕前享受一下自己的劳动成果吧!
阅读(742) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~