目前版本中的销售报表在销售折算数量时常常只能够显示销售数量而不能够显示出销售折算数量的正确值,在QQ群里,孟老师也确认了存在问题将在下次版本修正。目前的解决方案是:打开一次库存报表,然后再打开或者刷新销售报表。我用脚本重新写了下,可以得到正确的销售折算数量。主要是对报表集合数据进行重新整合,把报表中的销售数据去模取(就是取余数)和除以折算比例,然后将新的值重新写入到销售折算数量之列。 把以下的代码复制到报表脚本定义中。 int innumfactor() { string sqlrate,data1,data2,data3,data4,unitcol,ratedata,resid,droppos; int i,i1; i1=grid_row_num("MG");//获取有多少行; for(i=1;i<i1;i++) { resid=grid_get_v("MG",'res_id',i);//物资ID sqlrate='select rate from res_unit_type_ext where res_id="'+resid+'"'; db_run(sqlrate);//到res_unit_type_ext表中查询各个产品的折算比例 if(db_row_count()>0) { grid_set_v('MG','unitrate',i,db_res(0));//unitrate是一个扩展字段定义,这列可以隐藏,因为只是一个中间数值 ratedata=grid_get_v('MG','unitrate',i);//获取折算比例 }; unitcol=grid_get_v("MG","std_unit_type_name",i);//获取基本单位 data1=grid_get_v("MG",'in_num',i);//获取销售数量 data2=mod(data1,ratedata);//取得销售数量与折算比例的余数 data3=data1/ratedata; droppos=str_pos(data3,'.');//小数点在串data3中的位置 data3=str_get_sub(data3,0,droppos);//只取销售数量与折算比例的整数部分 if(data2==0)//当余数为0之时 { data4=data3+'箱';//结果就是销售数量与折算比例的整数部分 } else { if(data3<1) data4=data2+unitcol;//当销售总数没有整箱的时候; else data4=data3+'箱'+data2+unitcol;//将整数部分与余数部分重新整合 } grid_set_v("MG","in_num_factor",i,data4)//重新写入正确的折算数量 } return 1; } int load_over() { innumfactor(); return 1; } |