读书人

动态设立单身栏位名

发布时间: 2012-10-15 09:45:24 作者: rapoo

动态设置单身栏位名

首先看图:三个月的日期分别显示到三个页签上,当前月份10月

动态设立单身栏位名

动态设立单身栏位名

动态设立单身栏位名

代码:

##定义全局数组变量,长度31,因一个月最多31天DEFINE g_month_day   ARRAY[31] OF VARCHAR(1000)DEFINE g_month_day2  ARRAY[31] OF VARCHAR(1000)DEFINE g_month_day3  ARRAY[31] OF VARCHAR(1000)###动态设置单身列名2011/12/08-------------------------------------------------------FUNCTION q131_set(p_year,p_month)DEFINE p_year      varchar(4),       p_month     varchar(2),       l_azn01     varchar(10),       l_days      DEC(5,0)       ##计算当月天数   SELECT max(azn01)-min(azn01)+1 INTO l_days FROM azn_file WHERE azn02=p_year and azn04=p_month##FOREACH 当月的每一天赋值给数组     DECLARE q131_cusr01  CURSOR FOR      select month(azn01)||'月'||day(azn01)||'日' from azn_file where azn02=p_year and azn04=p_monthLET g_i=1FOREACH q131_cusr01 INTO l_azn01      IF SQLCA.sqlcode THEN         CALL cl_err('Foreach:',SQLCA.sqlcode,1)         EXIT FOREACH      END IF      LET g_month_day[g_i]=l_azn01    LET g_i = g_i + 1END FOREACH##判断大小月份隐藏不需要的栏位IF l_days=28 THEN  CALL cl_set_comp_visible("d31,d30,d29",FALSE)ELSE IF l_days=29 THEN CALL cl_set_comp_visible("d31,d30",FALSE)ELSE IF l_days=30 THEN CALL cl_set_comp_visible("d31",FALSE)  END IF  END IF END IF ##设定字段的显示名称  CALL cl_set_comp_att_text("d01",g_month_day[1])  CALL cl_set_comp_att_text("d02",g_month_day[2])  CALL cl_set_comp_att_text("d03",g_month_day[3])  CALL cl_set_comp_att_text("d04",g_month_day[4])  CALL cl_set_comp_att_text("d05",g_month_day[5])  CALL cl_set_comp_att_text("d06",g_month_day[6])  CALL cl_set_comp_att_text("d07",g_month_day[7])  CALL cl_set_comp_att_text("d08",g_month_day[8])  CALL cl_set_comp_att_text("d09",g_month_day[9])  CALL cl_set_comp_att_text("d10",g_month_day[10])  CALL cl_set_comp_att_text("d11",g_month_day[11])  CALL cl_set_comp_att_text("d12",g_month_day[12])  CALL cl_set_comp_att_text("d13",g_month_day[13])  CALL cl_set_comp_att_text("d14",g_month_day[14])  CALL cl_set_comp_att_text("d15",g_month_day[15])  CALL cl_set_comp_att_text("d16",g_month_day[16])  CALL cl_set_comp_att_text("d17",g_month_day[17])  CALL cl_set_comp_att_text("d18",g_month_day[18])  CALL cl_set_comp_att_text("d19",g_month_day[19])  CALL cl_set_comp_att_text("d20",g_month_day[20])  CALL cl_set_comp_att_text("d21",g_month_day[21])  CALL cl_set_comp_att_text("d22",g_month_day[22])  CALL cl_set_comp_att_text("d23",g_month_day[23])  CALL cl_set_comp_att_text("d24",g_month_day[24])  CALL cl_set_comp_att_text("d25",g_month_day[25])  CALL cl_set_comp_att_text("d26",g_month_day[26])  CALL cl_set_comp_att_text("d27",g_month_day[27])  CALL cl_set_comp_att_text("d28",g_month_day[28])  CALL cl_set_comp_att_text("d29",g_month_day[29])  CALL cl_set_comp_att_text("d30",g_month_day[30])    CALL cl_set_comp_att_text("d31",g_month_day[31])  ##设定字段颜色   CALL cl_set_comp_font_color("d01,d02,d03,d04,d05,d06,d07,d08,d09,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31", "RED") CALL cl_set_comp_font_color("sum", "GREEN")      END FUNCTION                      ---------------------------------------------------#######前一月2011/12/09 by fmx-FUNCTION q131_set2(p_year,p_month)    DEFINE p_year      varchar(4),       p_month     varchar(2),       l_azn01     varchar(10),       l_days      DEC(5,0)SELECT year(add_months(last_day(g_today),-1)),month(add_months(last_day(g_today),-1)) INTO p_year,p_monthFROM DUAL    SELECT max(azn01)-min(azn01)+1 INTO l_days FROM azn_file WHERE azn02=p_year and azn04=p_month       DECLARE q131_cusr0b  CURSOR FOR      select month(azn01)||'月'||day(azn01)||'日' from azn_file where azn02=p_year and azn04=p_monthLET g_i=1FOREACH q131_cusr0b INTO l_azn01      IF SQLCA.sqlcode THEN         CALL cl_err('Foreach:',SQLCA.sqlcode,1)         EXIT FOREACH      END IF      LET g_month_day2[g_i]=l_azn01    LET g_i = g_i + 1END FOREACHIF l_days=28 THEN  CALL cl_set_comp_visible("d31b,d30b,d29b",FALSE)ELSE IF l_days=29 THEN CALL cl_set_comp_visible("d31b,d30b",FALSE)ELSE IF l_days=30 THEN CALL cl_set_comp_visible("d31b",FALSE)  END IF  END IF END IF   CALL cl_set_comp_att_text("d01b",g_month_day2[1])  CALL cl_set_comp_att_text("d02b",g_month_day2[2])  CALL cl_set_comp_att_text("d03b",g_month_day2[3])  CALL cl_set_comp_att_text("d04b",g_month_day2[4])  CALL cl_set_comp_att_text("d05b",g_month_day2[5])  CALL cl_set_comp_att_text("d06b",g_month_day2[6])  CALL cl_set_comp_att_text("d07b",g_month_day2[7])  CALL cl_set_comp_att_text("d08b",g_month_day2[8])  CALL cl_set_comp_att_text("d09b",g_month_day2[9])  CALL cl_set_comp_att_text("d10b",g_month_day2[10])  CALL cl_set_comp_att_text("d11b",g_month_day2[11])  CALL cl_set_comp_att_text("d12b",g_month_day2[12])  CALL cl_set_comp_att_text("d13b",g_month_day2[13])  CALL cl_set_comp_att_text("d14b",g_month_day2[14])  CALL cl_set_comp_att_text("d15b",g_month_day2[15])  CALL cl_set_comp_att_text("d16b",g_month_day2[16])  CALL cl_set_comp_att_text("d17b",g_month_day2[17])  CALL cl_set_comp_att_text("d18b",g_month_day2[18])  CALL cl_set_comp_att_text("d19b",g_month_day2[19])  CALL cl_set_comp_att_text("d20b",g_month_day2[20])  CALL cl_set_comp_att_text("d21b",g_month_day2[21])  CALL cl_set_comp_att_text("d22b",g_month_day2[22])  CALL cl_set_comp_att_text("d23b",g_month_day2[23])  CALL cl_set_comp_att_text("d24b",g_month_day2[24])  CALL cl_set_comp_att_text("d25b",g_month_day2[25])  CALL cl_set_comp_att_text("d26b",g_month_day2[26])  CALL cl_set_comp_att_text("d27b",g_month_day2[27])  CALL cl_set_comp_att_text("d28b",g_month_day2[28])  CALL cl_set_comp_att_text("d29b",g_month_day2[29])  CALL cl_set_comp_att_text("d30b",g_month_day2[30])    CALL cl_set_comp_att_text("d31b",g_month_day2[31])   CALL cl_set_comp_font_color("d01b,d02b,d03b,d04b,d05b,d06b,d07b,d08b,d09b,d10b,d11b,d12b,d13b,d14b,d15b,d16b,d17b,d18b,d19b,d20b,d21b,d22b,d23b,d24b,d25b,d26b,d27b,d28b,d29b,d30b,d31b", "RED") CALL cl_set_comp_font_color("sumb", "GREEN")      END FUNCTION #######后一月2011/12/09 by fmx-FUNCTION q131_set3(p_year,p_month)    DEFINE p_year      varchar(4),       p_month     varchar(2),       l_azn01     varchar(10),       l_days      DEC(5,0)##后一月的天数SELECT year(add_months(last_day(g_today),+1)),month(add_months(last_day(g_today),+1)) INTO p_year,p_monthFROM DUAL     SELECT max(azn01)-min(azn01)+1 INTO l_days FROM azn_file WHERE azn02=p_year and azn04=p_month       DECLARE q131_cusr0c  CURSOR FOR      select month(azn01)||'月'||day(azn01)||'日' from azn_file where azn02=p_year and azn04=p_monthLET g_i=1FOREACH q131_cusr0c INTO l_azn01      IF SQLCA.sqlcode THEN         CALL cl_err('Foreach:',SQLCA.sqlcode,1)         EXIT FOREACH      END IF      LET g_month_day3[g_i]=l_azn01    LET g_i = g_i + 1END FOREACHIF l_days=28 THEN  CALL cl_set_comp_visible("d31c,d30c,d29c",FALSE)ELSE IF l_days=29 THEN CALL cl_set_comp_visible("d31c,d30c",FALSE)ELSE IF l_days=30 THEN CALL cl_set_comp_visible("d31c",FALSE)  END IF  END IF END IF   CALL cl_set_comp_att_text("d01c",g_month_day3[1])  CALL cl_set_comp_att_text("d02c",g_month_day3[2])  CALL cl_set_comp_att_text("d03c",g_month_day3[3])  CALL cl_set_comp_att_text("d04c",g_month_day3[4])  CALL cl_set_comp_att_text("d05c",g_month_day3[5])  CALL cl_set_comp_att_text("d06c",g_month_day3[6])  CALL cl_set_comp_att_text("d07c",g_month_day3[7])  CALL cl_set_comp_att_text("d08c",g_month_day3[8])  CALL cl_set_comp_att_text("d09c",g_month_day3[9])  CALL cl_set_comp_att_text("d10c",g_month_day3[10])  CALL cl_set_comp_att_text("d11c",g_month_day3[11])  CALL cl_set_comp_att_text("d12c",g_month_day3[12])  CALL cl_set_comp_att_text("d13c",g_month_day3[13])  CALL cl_set_comp_att_text("d14c",g_month_day3[14])  CALL cl_set_comp_att_text("d15c",g_month_day3[15])  CALL cl_set_comp_att_text("d16c",g_month_day3[16])  CALL cl_set_comp_att_text("d17c",g_month_day3[17])  CALL cl_set_comp_att_text("d18c",g_month_day3[18])  CALL cl_set_comp_att_text("d19c",g_month_day3[19])  CALL cl_set_comp_att_text("d20c",g_month_day3[20])  CALL cl_set_comp_att_text("d21c",g_month_day3[21])  CALL cl_set_comp_att_text("d22c",g_month_day3[22])  CALL cl_set_comp_att_text("d23c",g_month_day3[23])  CALL cl_set_comp_att_text("d24c",g_month_day3[24])  CALL cl_set_comp_att_text("d25c",g_month_day3[25])  CALL cl_set_comp_att_text("d26c",g_month_day3[26])  CALL cl_set_comp_att_text("d27c",g_month_day3[27])  CALL cl_set_comp_att_text("d28c",g_month_day3[28])  CALL cl_set_comp_att_text("d29c",g_month_day3[29])  CALL cl_set_comp_att_text("d30c",g_month_day3[30])    CALL cl_set_comp_att_text("d31c",g_month_day3[31])   CALL cl_set_comp_font_color("d01c,d02c,d03c,d04c,d05c,d06c,d07c,d08c,d09c,d10c,d11c,d12c,d13c,d14c,d15c,d16c,d17c,d18c,d19c,d20c,d21c,d22c,d23c,d24c,d25c,d26c,d27c,d28c,d29c,d30c,d31c", "RED") CALL cl_set_comp_font_color("sumc", "GREEN")      END FUNCTION 


MAIN函数中调用即可:

####2011/12/08 by fmx    LET g_year=YEAR(g_today)    LET g_month=month(g_today)    CALL q131_set(g_year,g_month)    ##当月    CALL q131_set2(g_year,g_month)   ##前一月    CALL q131_set3(g_year,g_month)   ##后一月


读书人网 >编程

热点推荐