首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

DIALOG.setCellAttributes步骤

2012-11-23 
DIALOG.setCellAttributes方法TPTOP ERP GP 3.0 测试【DEMO源码下载:GP5.2——单身高亮显示demo.rar】########

DIALOG.setCellAttributes方法

TPTOP ERP GP 3.0 测试

【DEMO源码下载:GP5.2——单身高亮显示demo.rar】

###################################################################

# 说明:<此版本无显示单元格背景,显示整行背景>
#      1. 本程序展现:显示单元格内字体颜色
#      2. 主要应用了DIALOG.setCellAttributes方法

##################################################################

首先看测试效果:

DIALOG.setCellAttributes步骤

.per文件:

SCHEMA FORMONLYLAYOUT  VBOX    GROUP group02 (TEXT="NEW/w List")      TABLE        {         edit1      edit2      edit3       edit4             [edit1     |edit2     |edit3      |edit4     ]        [edit1     |edit2     |edit3      |edit4     ]        [edit1     |edit2     |edit3      |edit4     ]        [edit1     |edit2     |edit3      |edit4     ]        [edit1     |edit2     |edit3      |edit4     ]        [edit1     |edit2     |edit3      |edit4     ]        [edit1     |edit2     |edit3      |edit4     ]        [edit1     |edit2     |edit3      |edit4     ]        [edit1     |edit2     |edit3      |edit4     ]        [edit1     |edit2     |edit3      |edit4     ]        }      END --TABLE    END --GROUP    GROUP group03 (TEXT="W/O List")      TABLE        {         edit_1         edit_2                 [edit_1        |edit_2         ]        [edit_1        |edit_2         ]        [edit_1        |edit_2         ]        [edit_1        |edit_2         ]        [edit_1        |edit_2         ]        [edit_1        |edit_2         ]        [edit_1        |edit_2         ]        [edit_1        |edit_2         ]        [edit_1        |edit_2         ]        [edit_1        |edit_2         ]        }      END --TABLE    END --GROUP    GRID      {        ---------- Rows [cn2   ]-[cn3   ] ----------[btn1] [btn2]      }    END --GRID  END --VBOXEND --LAYOUTATTRIBUTES  BUTTON     btn1    : view, TEXT = 'View';  BUTTON     btn2    : head, TEXT = 'head';             edit1   = FORMONLY.edit1,NOENTRY;             edit2   = FORMONLY.edit2,NOENTRY;             edit3   = FORMONLY.edit3,NOENTRY;             edit4   = FORMONLY.edit4,NOENTRY;             edit_1  = FORMONLY.edit_1,NOENTRY;             edit_2  = FORMONLY.edit_2,NOENTRY;             cn2        = FORMONLY.cn2, NOENTRY ;             cn3        = FORMONLY.cn3, NOENTRY ;ENDINSTRUCTIONSSCREEN RECORD s_table1[10](edit1,edit2,edit3,edit4)SCREEN RECORD s_table2[10](edit_1,edit_2)END


.4gl文件

# Prog. Version..: '3.10.06-07.03.05(00003)'     ## Pattern name...: csfxdemo.4gl# Descriptions...: Set display attributes for cells# Date & Author..: 2012/11/13 BY FMX################################################################ 说明:<此版本无显示单元格背景,显示整行背景>#      1. 本程序展现:显示单元格内字体颜色 #      2. 主要应用了DIALOG.setCellAttributes方法##############################################################GLOBALS "../../config/top.global"DEFINE g_table1 DYNAMIC ARRAY OF RECORD  #单身数组           edit1  int,           edit2  STRING,           edit3  STRING,           edit4  STRING           END RECORDDEFINE g_table1_attr DYNAMIC ARRAY OF RECORD  #属性数组,名称与单身数组一致,类型定义为string           edit1  STRING,           edit2  STRING,           edit3  STRING,           edit4  STRING           END RECORDDEFINE g_table2 DYNAMIC ARRAY OF RECORD           edit_1  int,           edit_2  STRING           END RECORDMAIN   DEFINE l_ac  INTEGER      WHENEVER ERROR CALL cl_err_msg_log    LET g_prog="csfxdemo"   IF (NOT cl_user()) THEN      EXIT PROGRAM   END IF   IF (NOT cl_setup("CSF")) THEN      EXIT PROGRAM   END IF   OPEN WINDOW w1 WITH FORM "csf/42f/csfxdemo"          ATTRIBUTE (STYLE = g_win_style CLIPPED)           CALL cl_set_locale_frm_name("csfxdemo")          CALL cl_ui_init()   CALL b_fill()   CLOSE WINDOW w1END MAINFUNCTION b_fill()   DEFINE i INTEGER   CALL g_table1.clear()   CALL g_table2.clear()   CALL g_table1_attr.clear()   FOR i=1 TO 10      CALL g_table1.appendElement()      LET g_table1[i].edit1 = i      LET g_table1[i].edit2 = "测试 " || i      LET g_table1[i].edit3 = "DEMO " || i      LET g_table1[i].edit4 = "TIPTOP ERP GP3.0-- " || i            LET g_table2[i].edit_1 = i      LET g_table2[i].edit_2 = "TIPTOP ERP GP3.0-- " || i      CALL g_table1.appendElement()      IF i MOD 2 = 0 THEN         LET g_table1_attr[i].edit1 = "red"         LET g_table1_attr[i].edit2 = "blue reverse"         LET g_table1_attr[i].edit3 = "red"         LET g_table1_attr[i].edit4 = "blue reverse"      ELSE         LET g_table1_attr[i].edit1 = "green"         LET g_table1_attr[i].edit2 = "magenta reverse"         LET g_table1_attr[i].edit3 = "green"         LET g_table1_attr[i].edit4 = "magenta reverse"      END IF   END FOR   DISPLAY ARRAY g_table1 TO s_table1.*     BEFORE DISPLAY       CALL DIALOG.setCellAttributes(g_table1_attr)   END DISPLAY      DISPLAY ARRAY g_table2 TO s_table2.*END FUNCTION


上面测试只是GP3.0的效果,

对于GP5.20以上版本有一个DIALOG.setArrayAttributes方法 这个可以设置很多。

看一图:单身语法高亮显示

DIALOG.setCellAttributes步骤

4gl代码:

GLOBALS "../../config/top.global"DEFINE g_table1 DYNAMIC ARRAY OF RECORD  #单身数组           edit1  int,           edit2  STRING,           edit3  STRING,           edit4  STRING           END RECORDDEFINE g_table1_attr DYNAMIC ARRAY OF RECORD  #属性数组,名称与单身数组一致,类型定义为string           edit1  STRING,           edit2  STRING,           edit3  STRING,           edit4  STRING           END RECORDDEFINE g_table2 DYNAMIC ARRAY OF RECORD           edit_1  int,           edit_2  STRING           END RECORDMAIN   DEFINE l_ac  INTEGER      WHENEVER ERROR CALL cl_err_msg_log    LET g_prog="csfxdemo"   IF (NOT cl_user()) THEN      EXIT PROGRAM   END IF   IF (NOT cl_setup("CSF")) THEN      EXIT PROGRAM   END IF   OPEN WINDOW w1 WITH FORM "csf/42f/csfxdemo"          ATTRIBUTE (STYLE = g_win_style CLIPPED)           CALL cl_set_locale_frm_name("csfxdemo")          CALL cl_ui_init()      CALL b_fill()    DISPLAY ARRAY g_table1 TO s_table1.*      BEFORE DISPLAY        CALL DIALOG.setCellAttributes(g_table1_attr)    END DISPLAY    DISPLAY ARRAY g_table2 TO s_table2.*     DIALOG ATTRIBUTES(UNBUFFERED=TRUE)      DISPLAY ARRAY g_table1 TO s_table1.*          BEFORE DISPLAY              CALL DIALOG.setArrayAttributes("s_table1",g_table1_attr)    #参数:屏幕变量,属性数组      END DISPLAY            DISPLAY ARRAY g_table2 TO s_table2.*        END DISPLAY      ON ACTION CLOSE         EXIT DIALOG      ON ACTION exit         EXIT DIALOG   END DIALOG   CLOSE WINDOW w1END MAINFUNCTION b_fill()   DEFINE l_i  INTEGER   CALL g_table1.clear()   CALL g_table2.clear()   CALL g_table1_attr.clear()   FOR l_i = 1 TO 20      LET g_table1[l_i].edit1 = l_i      LET g_table1[l_i].edit2 = l_i      LET g_table1[l_i].edit3 = l_i      LET g_table1[l_i].edit4 = l_i            LET g_table2[l_i].edit_1 = l_i      LET g_table2[l_i].edit_2 = l_i   END FOR   LET g_table1[2].edit2 = "显示单元格内字体颜色"   LET g_table1[3].edit2 = "显示单元格背景"   LET g_table1[4].edit2 = "显示整行背景"   #假设条件设定 (实际应用可以放在上面循环中处理)   #显示单元格内字体颜色   LET g_table1_attr[2].edit1 = "red"       #显示单元格背景   LET g_table1_attr[3].edit1 = "red reverse"      #显示整行背景   LET g_table1_attr[4].edit1 = "yellow reverse"     LET g_table1_attr[4].edit2 = "yellow reverse"   LET g_table1_attr[4].edit3 = "yellow reverse"   LET g_table1_attr[4].edit4 = "yellow reverse"END FUNCTION


 

热点排行