一个数据窗口中数据保护的有关问题

求助一个数据窗口中数据保护的问题
我的数据窗口格式为

星期开始|星期终止|月份| |1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|  
  1 | 4 |2011-06|

上面的星期1-4表示周一到周四,后面的1-3-代表1号到31号,现在想实现的是,后面的字段中,根据前面的月份跟日子组合成一个日期,使用daynumber()函数判断是星期几,然后是周一到周四的字段才可以修改,否则不允许修改

现在的问题是,daynumber()函数的返回值是跟我们的习惯相差一天的,我们1-7表示周一到周日,而daynumber()的返回值中,周一是2,周日是1,周六是7,

我想在字段的protect属性写表达式,感觉有些写不出来,求助

星期开始|星期终止
  6 | 7
对应的daynumber()函数返回值是7,1

求助

------解决方案--------------------
现在的问题是,daynumber()函数的返回值是跟我们的习惯相差一天的,我们1-7表示周一到周日,而daynumber()的返回值中,周一是2,周日是1,周六是7,

我想在字段的protect属性写表达式,感觉有些写不出来,求助
------------------------------------------
如果只是这个问题的话,你可以用

if (daynumber(日期) = 1, 7, daynumber(日期) - 1) 这样的话就可以转为

周一:1
周二:2
周三:3
周四:4
周五:5
周六:6
周日:7

然后你再处理吧
------解决方案--------------------
假设1号到31号的列名分别为d1、d2、。。。,d31
星期开始、星期结束、月份的列名分别为ws、we、mm
则这么写modify
C# code
string ls_m
int i
for i = 1 to 31
    ls_m += " d" + string(i) + ".protect = ~"0~tif(isdate(mm + '-" + string(i, '00') + "'), if(if (daynumber(date(mm + '-" + string(i, '00') + "')) = 1, 7, daynumber(date(mm + '-" + string(i, '00') + "')) - 1) between ws and we, 0, 1), 1)~""
next
dw_1.modify(ls_m)

------解决方案--------------------
up!
------解决方案--------------------
探讨
回复yyoinge

请问,使用modify()函数能否对行实现protect属性?
我的理解是modify修改的列对应的所有行

------解决方案--------------------
楼上说的在理
------解决方案--------------------
yyoinge的代码已经包含的对行的控制,他用了between in

你试一下