hx9617的空间..原创-捕鱼app

学习.交流
专业源于专注
  
学习交流 文件下载 手册资料 交流qq群


文章分类
   ☉
   ☉
   ☉
   ☉
照片夹
手机版捕鱼的友情链接
游客:   注册 | 登录 | 论坛
 11  1/1   
# 1    发布于 2015-02-03 12:12

缘起湖北-ck同学的特殊需求,作为三群的城管,多少得为群众谋点福利。 
目标要求是审核后不用反审核也能再次选择需要打印的行,经过几番努力,终于做到了。 
但是有个bug,单据如果有多个模板的话不能在打印预览里面多次切换模板,否则打印的明细数据会随切换的次数减少,最终会导致没有明细数据可打印。 
 
要实现这个目标,需要用到单据脚本和打印模板脚本相配合用全局函数传递数据,利用事后备注来选择行是否需要打印。 
 
 
单据脚本: 
 
int init_test() 

  return 1; 
}; 
 
int func_user_menu_1() 

  return 1; 
}; 
 
int func_user_menu_2() 

  return 1; 
}; 
 
int func_user_menu_3() 

  return 1; 
}; 
 
int func_user_menu_4() 

  return 1; 
}; 
 
int create_voucher() 

  grid_set_col_picklist_dict('mg_item','checked_item_note','bool'); 
  return 1; 
}; 
 
int func_show() 

  return 1; 
}; 
 
int cell_change() 

  //change_col,change_col_id,change_row_id 
  return 1; 
}; 
 
int obj_change() 

  //change_obj 
  return 1; 
}; 
 
int init_row() 

  checked_item_note="是"; 
  grid_trigger_change('mg_item','checked_item_note',-1); 
  return 1; 
}; 
 
int adjust_row() 

  return 1; 
}; 
 
int func_before_print() 

//---------------检查:如果所有的行都设为不打印则弹出消息提示并拒绝打印-------------- 
  int c,id,r_num; 
  string r_note_info,v,global_v; 
 
  grid_seek("mg_item","res_id",""); // 将光标定位到空记录的行号 
  r_num=grid_cur_row("mg_item"); //获取有数据的记录行数后的第一个空行的行号 
  grid_seek_from("mg_item",0,"vr_item_ext_6","");//将光标定位到第一行 
  c=0;//初始化可打印的行的数字 
  for(id=0;id  { 
    r_note_info=grid_get_v('mg_item','checked_item_note',id); 
 
    if(r_note_info=='是') 
    { 
      c=c 1; 
    }; 
    if(r_note_info=='否') 
    { 
      v=id "," v; 
    }; 
  }; 
  user_para_set('global_v',v); 
  if(c==0)//如果没有可打印的行则弹出消息提示并拒绝打印 
  { 
    msg('没有可打印的行,请检查!'); 
    can_print=0; 
  }; 
  return 1; 
}; 
int func_before_save() 

  //can_save=1; 
  return 1; 
}; 
 
int func_before_check() 

  //can_check=1; 
  return 1; 
}; 
 
int func_after_save() 

  return 1; 
}; 
 
int func_after_check() 

  int c,id,r_num; 
  string r_note_info,v,global_v; 
 
  grid_seek("mg_item","res_id",""); // 将光标定位到空记录的行号 
  r_num=grid_cur_row("mg_item"); //获取有数据的记录行数后的第一个空行的行号 
  grid_seek_from("mg_item",0,"vr_item_ext_6","");//将光标定位到第一行 
  c=0;//初始化可打印的行的数字 
  for(id=2;id  { 
    grid_set_v('mg_item','checked_item_note',id-1,'是'); 
    grid_trigger_change('mg_item','checked_item_note',id-1); 
  };  
  return 1; 
}; 
 
int func_after_print() 

  return 1; 
}; 
 
int func_before_oper() 

  //oper_type=save,check,check_r,finish,finish_r,delete,giveup,ask_check,ask_check_r; 
  //can_oper=1; 
  return 1; 
}; 
 
int func_after_oper() 

  //oper_type=save,check,check_r,finish,finish_r,delete,giveup,ask_check,ask_check_r; 
  return 1; 
}; 
 
int main() 

  return 1; 
}; 
 
打印模板脚本: 
int main() 

  int a,i,wahaha; 
  string v; 
  str_lst_to_db(user_para_get('global_v'));//获取要删除的行数 
  a=db_row_count();//获得记录数 
  for(i=0;i  { 
    str_lst_to_db(user_para_get('global_v')); 
    db_go_row(i); 
    wahaha=db_res(0);//获得需要删除的行号 
    db_select_dbio("data"); 
    db_go_row(wahaha-1); 
    db_del_row();//删除不需要打印的行 
    db_temp();//这步非常重要 
  }; 
  return 1; 
}; 
 
 
脚本写得比较笨拙,有优化的地方烦请指教,谢谢。


于 2015-02-03 12:12 被 afoo 修改

官方认证第三方服务团队  蒋逸凡(常德-zen) qq:50636277
服务介绍: http://www.onlyit.cn/user_home?user_id=13498
# 2    发布于 2014-12-27 11:44

好。电子表单跟纸质表单的脚本配合。学习。



官方认证第三方服务团队  徐文标(福建-流浪) qq:340298101
服务介绍:http://www.onlyit.cn/onlyit_service.html
# 3    发布于 2015-01-14 11:38

楼主,后面的全计行打印出来后是不是错了

# 4    发布于 2015-01-14 19:57

全计行?



官方认证第三方服务团队  蒋逸凡(常德-zen) qq:50636277
服务介绍: http://www.onlyit.cn/user_home?user_id=13498
# 5    发布于 2015-01-15 09:17

合计行。。。。。。。。。。。。。

# 6    发布于 2015-01-15 09:19

看图。。。。。。。。。。。

# 7    发布于 2015-01-16 10:39

这个不是大问题,统计的话在模板里面重新设置一下就行了。



官方认证第三方服务团队  蒋逸凡(常德-zen) qq:50636277
服务介绍: http://www.onlyit.cn/user_home?user_id=13498
# 8    发布于 2015-02-02 13:18

非常实用的功能,楼主帮我解决了大问题了,太感谢了!功能强大

# 9    发布于 2020-12-20 15:31

这个不错,可以

# 10    发布于 2020-12-21 15:06

但是有个bug,单据如果有多个模板的话不能在打印预览里面多次切换模板,否则打印的明细数据会随切换的次数减少,最终会导致没有明细数据可打印。  
  
这个是不是可以考虑在单据脚本 打印前 或打印后 设置一个变量y。等打印模块脚本执行后 再设置n .打印模块脚本判断变量 为y时执行。



官方认证第三方服务团队  夏延明 qq:15932787
服务介绍: http://www.onlyit.cn/user_home?user_id=10304
# 11    发布于 2021-03-05 21:07

这个已经脚本大幅度简化了,用不着这么复杂。



官方认证第三方服务团队  蒋逸凡(常德-zen) qq:50636277
服务介绍: http://www.onlyit.cn/user_home?user_id=13498

 11  1/1   


登录后方可发贴



[ 电话: 0571-85462761 王先生 qq: 124520435 加入软件qq群 - - ]