打印本文 打印本文 关闭窗口 关闭窗口
UNIX系统下informix自制开发工具构思介绍
作者:武汉SEO闵涛  文章来源:敏韬网  点击数5686  更新时间:2009/4/22 23:21:56  文章录入:mintao  责任编辑:mintao
>

    1. 菜单的调用: int SetMenu(long id)
       id是主菜单的编号。
       返回值是反映程序执行到菜单第几层的第几项,祥见菜单制作.

    2. FORM的调用: int SetupForm(long id, short wincode)
       id是FORM的编号。
       wincode 是窗口的编号(0-9).
       如同时用多个窗口,窗口编号须不同,否则会覆盖。
       返回值:
  0 取消 (即按[ESCAPE]退出)
  1 正常 (即按[ENTER] 退出)
  >1 按热键或自定义键返回


                对某些特殊键和自定义键,即退出FORM,返回值如下∶

                键  名         返回码

                借方键  DEBIT 
                贷方键  CREDIT
                向前键  PREVIOES
                向后键  NEXT
                热键  HOTKEY
                发送键  FINISHKEY
                自定义键        键值+2000

    3. 其他函数∶
 (1) int MsgBox(char type, const char *fmt, .../* args */);
        用途∶信息提示。信息长度小于80在屏幕底线显示,否则在当前光标下组成BOX.
        type∶MSGERR(0) 错误 MSGPROM(1) 提示 MSGWAIT(2) 等待 MSGWARN(3) 警告
 用法同printf函数。

 (2) void SetFormPara(short mode, short para);
        用途∶设FORM参数。
        mode:
    宏          数值       作                    用
  WINFRAME 0   para:1 窗口画框  0 窗口无框  缺省值 0
  F_COLOR         1   设定前景色   缺省值COLOR_WHITE(白色)
  B_COLOR         2   设定背景色   缺省值COLOR_BLACK(黑色)
                                    具体色彩参数见 <tinfo.h>

  DISPLAYMODE 3   para:1 预显示原值
      0 不显示
                                         缺省值 0

  FIELDBOUND 4   para:1 对输入项划定界符 "[......]"
      0 不划
      缺省值 1
  DISPLAYBOLD 5   para:1 显示的字符为高亮
     缺省值 0
  ENTERDEFAULT 6   para:1 输入项只按[ENTER],复制成原值。
      缺省值 0
  LINETYPE 7   para:1 双线
      0 单线
      缺省值 1

  PATTERNFRONT 8   para:1 运行菜单时,输入的字符与菜单选项的
     第一个字符相同,能选中并自动回车。
             0 不能自动回车。
      缺省值 1
    
 (3) void TouchForm(short wincode)
        用途∶重显被覆盖的FORM.

        (4) int SqlMsg(short sqlcode)
        用途∶能提供错误信息,反映程序执行到何处(那个文件的那一行)。
       通常用于SQL执行错误返回。
       
 (5) void DelDlgwin(short wincode)
 用途∶删除FORM.

 (6) int SkipDomain(short step)
 用途∶跳过若干个域(step)。用于嵌入函数。

 (7) void Rfmtdate(date i_date,  char *fmt,  char *result)
 用途∶将INFORMIX中的date转成char.
 例∶
  1899.12.31至1999.12.4的天数是36132.
  Rfmtdate(36132, "mm-dd-yyyy", result);
  result="12-04-1998"
  Rfmtdate(36132, "mm-dd-yy", result);
  result="12-04-98"
  Rfmtdate(36132, "日期: YYYY年MM月DD日", result);
  result="日期: 一九九八年十二月四日".

 (8) void Rfmtdouble(double money, char *fmt, char *result)
 用途∶将double转成char.
 例∶
  double a=-9030236.035;
  Rfmtdate(a, "---,---,--9.999", result);
  result=" -9,030,236.035"

 (9) char *DoubleToStr(double money, const char *fmt);
 用途∶将double转成char返回(char *).

 (10) void PrintForm(short wincode, short lin, short col, char *fmt, ...);
 用途∶向FORM输送字符.

 (11) int RunFunction(int (*fun)(),  char *msg);
 用途∶运行函数fun时,在屏幕底显示信息msg,隔一秒钟跳动字符 '>'。 
 例∶
  见menu.ec的280行。
  RunFunction(DeleteDetail, "正在清理数据");
  如果函数DeleteDetail()不在menu.ec中,
  必须声明extern int DeleteDEtail();

 (12) int CallFunction(int (*fun)(),  char *msg);
 用途∶同RunFunction(),不跳动字符。 

 (13) char *PntName();
 用途∶获得打印输出的设备名。
       在主控台上得到"/dev/lp0",在终端上得到相应的终端号"/dev/tty???"  
 (14) void Draws(WINDOW *w, int b_y, int b_x, int e_y, int e_x)
 用途∶在指定的窗口画线。
       起点坐标(b_x, b_y)  终点坐标(e_x, e_y)  
       b_x=e_x  画垂直线。  
       b_y=e_y  画水平线。  
       b_x!=e_x b_y!=e_y  画矩形。

        (15) int FormPath(char *path);
 用途∶
              调用该函数设置FORM的参数的路径, 确省路径在配置文件中设定。
 (16) InsetFun(n, fun);
 用途∶
      函数指针初始化。
             n 是函数指针的编号,fun是函数名.
          


(三) 关于嵌入函数的使用:
 作用∶当FORM执行到某一域时调用的函数.
 我们通过menu.ec这个程序来说明嵌入函数的运用。

****注意∶以下是test.form中的 110号form.

 [命令]  g [交易号]      110  [连接交易]       0 [驱动方式] E [索引项]  0  
 [序] [类型][长度][坐标][嵌入函数]   [      复         合          域      ]
   0    C       3  1237      0    bank.exchno                              
   1    c      20  1337      0    bank.officename                          
   2    R       8  1537      1                                             
   3    t       0     0      0    日期须本日前一星期内                     
   4    A       7  1737      0                                             
   5    M      10  1937      0                                             
   6    B       0     0      0                           &

上一页  [1] [2] [3] [4] [5] [6] [7] [8]  下一页

打印本文 打印本文 关闭窗口 关闭窗口