学习.交流
专业源于专注
www. myoit. cn   
学习交流 文件下载 手册资料 交流QQ群

    

 7  1/1   1  
作者
内容
fwj3861  [个人空间]


注册  2010-09-09
发贴数  144
精华贴  3
原创贴  6
来自  广东深圳
状态  正常

级别  会员
#1»发布于2022-05-06 15:35

在系统启用一个生产单据命名【生产排程】,用来给生管引用销售订单制定生产排产计划,为避免在星期天的列误录入排产数据,采用了最笨的方法添加自动锁定星期天列和非法日期列,避免误编辑录入排程数据 
思路: 
1. 添加2个编码和名称一致的自定义字典:年份和月份,年份添加2022和2023,月份添加01~12






        于 2022-05-06 15:35 被 fwj3861 修改




没有最好,只有更好!
广东-叶子

fwj3861  [个人空间]


注册  2010-09-09
发贴数  144
精华贴  3
原创贴  6
来自  广东深圳
状态  正常

级别  会员
#2»发布于2022-04-26 19:01

2. 添加2个字典型的表头附加扩展属性:nianfen(年份)和yuefen(月份) 
3. 添加31个明细扩展属性定义:rq01~rq31,用来录入1-31号的排程数据










没有最好,只有更好!
广东-叶子

fwj3861  [个人空间]


注册  2010-09-09
发贴数  144
精华贴  3
原创贴  6
来自  广东深圳
状态  正常

级别  会员
#3»发布于2022-04-26 19:04

4. 添加这段脚本,把它放在保存脚本里面运行,这样在保存单据的时候就会给当前星期天的列添加黄色背景色 
int xq7jc() 

//提取表头的年份和月份计算出当月的星期7的号数并将符合条件的列填充黄色背景 
string ny,nian,yue,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,mm; 
  nian = gui_get_val("ext_nianfen"); 
  yue = gui_get_val("ext_yuefen"); 
  ny = nian+yue 
   x1 = get_week_id(ny+'01') 
   x2 = get_week_id(ny+'02') 
   x3 = get_week_id(ny+'03') 
   x4 = get_week_id(ny+'04') 
   x5 = get_week_id(ny+'05') 
   x6 = get_week_id(ny+'06') 
   x7 = get_week_id(ny+'07') 
   x8 = get_week_id(ny+'08') 
   x9 = get_week_id(ny+'09') 
   x10 = get_week_id(ny+'10') 
   x11 = get_week_id(ny+'11') 
   x12 = get_week_id(ny+'12') 
   x13 = get_week_id(ny+'13') 
   x14 = get_week_id(ny+'14') 
   x15 = get_week_id(ny+'15') 
   x16 = get_week_id(ny+'16') 
   x17 = get_week_id(ny+'17') 
   x18 = get_week_id(ny+'18') 
   x19 = get_week_id(ny+'19') 
   x20 = get_week_id(ny+'20') 
   x21= get_week_id(ny+'21') 
   x22= get_week_id(ny+'22') 
   x23= get_week_id(ny+'23') 
   x24= get_week_id(ny+'24') 
   x25= get_week_id(ny+'25') 
   x26= get_week_id(ny+'26') 
   x27= get_week_id(ny+'27') 
   x28= get_week_id(ny+'28') 
   x29= get_week_id(ny+'29') 
   x30= get_week_id(ny+'30') 
   x31= get_week_id(ny+'31') 
 if(x1 == '7'){ 
  mm ="rq"+01; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x2 == '7'){ 
  mm ="rq"+02; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x3 == '7'){ 
  mm ="rq"+03; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x4 == '7'){ 
  mm ="rq"+04; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x5 == '7'){ 
  mm ="rq"+05; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x6 == '7'){ 
  mm ="rq"+06; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x7 == '7'){ 
  mm ="rq"+07; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x8 == '7'){ 
  mm ="rq"+08; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x9 == '7'){ 
  mm ="rq"+09; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x10 == '7'){ 
  mm ="rq"+10; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x11 == '7'){ 
  mm ="rq"+11; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x12 == '7'){ 
  mm ="rq"+12; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x13 == '7'){ 
  mm ="rq"+13; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x14 == '7'){ 
  mm ="rq"+14; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x15 == '7'){ 
  mm ="rq"+15; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x16 == '7'){ 
  mm ="rq"+16; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x17 == '7'){ 
  mm ="rq"+17; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x18 == '7'){ 
  mm ="rq"+18; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x19 == '7'){ 
  mm ="rq"+19; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x20 == '7'){ 
  mm ="rq"+20; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x21 == '7'){ 
  mm ="rq"+21; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x22 == '7'){ 
  mm ="rq"+22; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x23 == '7'){ 
  mm ="rq"+23; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x24 == '7'){ 
  mm ="rq"+24; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x25 == '7'){ 
  mm ="rq"+25; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x26 == '7'){ 
  mm ="rq"+26; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x27 == '7'){ 
  mm ="rq"+27; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x28 == '7'){ 
  mm ="rq"+28; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x29 == '7'){ 
  mm ="rq"+29; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x30 == '7'){ 
  mm ="rq"+30; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 if(x31 == '7'){ 
  mm ="rq"+31; 
    grid_set_col_bgcolor("MG_Item",mm,8454143);}; 
 
  return1; 
};










没有最好,只有更好!
广东-叶子

fwj3861  [个人空间]


注册  2010-09-09
发贴数  144
精华贴  3
原创贴  6
来自  广东深圳
状态  正常

级别  会员
#4»发布于2022-04-26 19:06

各位老师有更好实现方法,还望帮忙修正,谢谢!






没有最好,只有更好!
广东-叶子

dragonzsp  [个人空间]


注册  2011-03-25
发贴数  116
精华数  0
原创贴  4
来自  温州
状态  正常

级别  贵宾
#5»发布于2022-04-27 08:13

string ny,nian,yue,x,mm;  
int i; 
  nian = gui_get_val("ext_nianfen");  
  yue = gui_get_val("ext_yuefen");  
  ny = nian+yue  
  for(i=1;i<=31;i++){ 
  if(i<10){ 
  mm="rq"+"0"+i; 
    x=get_week_id(ny+"0"+i) ; 
  }else{ 
  mm="rq"+i; 
    x=get_week_id(ny+i) ; 
  } 
  if(x == '7'){  
    grid_set_col_bgcolor("MG_Item",mm,8454143); 
  };  
  }






耳环收费教程地址链接:http://www.onlyit.cn/topic_list_detail?subject_id=7&topic_id=102140&topic_page_id=1

fwj3861  [个人空间]


注册  2010-09-09
发贴数  144
精华贴  3
原创贴  6
来自  广东深圳
状态  正常

级别  会员
#6»发布于2022-04-27 09:12

非常感谢十二老师的修正! 
昨天就是不知道怎么实现列循环获取星期天的列,只能用最笨的方法先实现功能需求。






没有最好,只有更好!
广东-叶子

fwj3861  [个人空间]


注册  2010-09-09
发贴数  144
精华贴  3
原创贴  6
来自  广东深圳
状态  正常

级别  会员
#7»发布于2022-04-27 17:26

1. 添加新建单据时表头年份和月份提取当前年月为默认值并执行锁定星期天列脚本  xq7jc() 
2. 表头年份或月份变化后执行锁定星期天列脚本  xq7jc(),这样设置好后,保存脚本那里就不用执行这段脚本 
 
在int create_voucher()脚本之上单独加一段脚本int xq7()用来执行锁定星期天列不可编辑 
 
int xq7() 

string ny,nian,yue,x,mm,ymd,valid; 
int i; 
  nian = gui_get_val("ext_nianfen");//提取表头年份 
  yue = gui_get_val("ext_yuefen");//提取表头月份 
  ny = nian+yue //组合标准年月 
  for(i=1;i<=31;i++){ 
  if(i<10){ 
  mm="rq"+"0"+i; //合成列标识 
  ymd=nian+yue+'0'+i //生成标准日期 
    x=get_week_id(ny+"0"+i) ; //取标准日期对应的星期 
    valid = is_date_valid(ymd) //判断日期合法性 
  }else{ 
  mm="rq"+i; //合成列标识 
  ymd=nian+yue+i //生成标准日期 
    x=get_week_id(ny+i) ; //取标准日期对应的星期 
    valid = is_date_valid(ymd) //判断日期合法性 
  } 
  if(x == '7' && valid == '1'){ 
    grid_mark_readonly('MG_Item',mm);}; //锁定星期天列不可标记 
  if(x != '7' && valid == '1'){ 
    grid_mark_sum('MG_Item',mm) //列合计 
    grid_unmark_readonly('MG_Item',mm)}; //合法的非星期天列可读写 
  if(x != '' &&valid == '0'){ 
    grid_mark_readonly('MG_Item',mm);}; //锁定非法日期列不可编辑 
  } 
  return 1; 
}; 
 
int create_voucher() 

//默认当前日期为单据日期 
string d; 
  d = get_cur_date_std(); 
gui_set_val("DateTimePicker_Voucher_Date",d); 
 
//获取当前年份和月份,设为表头年和月的默认值后执行锁定星期天列脚本  xq7jc() 
string nf,yf; 
 nf = get_cur_year(); 
  yf  = str_get_sub(get_cur_month(),4,2); 
  gui_set_val("ext_nianfen",nf); 
  gui_set_val("ext_yuefen",yf); 
  xq7jc() 
  return 1; 
}; 
 
int func_show() 

  xq7jc()//在操作单据前后单时候也能刷新锁定列 
  return 1; 
}; 
 
int obj_change() 

//表头年份或月份发生变化时执行锁定星期天列脚本  xq7jc() 
  if(change_obj ==  "ext_nianfen"){ 
  xq7jc()}; 
  if(change_obj ==  "ext_yuefen"){ 
  xq7jc()}; 
  //change_obj 
  return 1; 
};


        于 2022-04-27 17:26 被 fwj3861 修改




没有最好,只有更好!
广东-叶子


 7  1/1   1  


登录后方可发贴


[ 电话: 0571-85462761 王先生 QQ: 124520435 加入软件QQ群 - 杭州 - 浙ICP备19051128号-1 网安 33010402003225 ]