作者 |
|
cathy [个人空间]
注册  2007-07-18 发贴数 222 精华数 0 原创贴 0 来自 状态 正常
级别 会员 |
|
|
请教一个小问题啊 在csp报表里,有没办法彻底清空当前检索出来的数据,即当前csp报表的检索结果集的内存空间。 因为,我尝试将MG清空后,再给MG设定行数,输入些数据,再添加xx行,发现前一次检索的结果数据出现在新加的行上了。 即前面的清空MG操作不是真的清空 |
|
|
|
|
dragonzsp [个人空间] QQ名 十二个耳环(187199580)
注册  2011-03-25 发贴数 183 精华数 0 原创贴 4 来自 温州 状态 正常
级别 贵宾 |
|
|
csp报表表格的赋值机制是系统自动根据你当前内存的数据对象内容,根据列名自动赋值的,所以你想让当前MG表的数据清空,只能对检索结果集对象操作: 1方法:创建一条返回结果集为空的sql语句,db_run下,比如sql="select * from emp where 1=2" 2方法,切换当前数据集区域,db_select_area,切换到空的数据集区域去 执行前自己测试下,2种方法返回的结果集的列名是否要和MG的列名保持一致 |
|
|
官方认证第三方服务团队 QQ:187199580
收费教程地址链接:http://www.onlyit.cn/topic_list_detail?subject_id=7&topic_id=102140&topic_page_id=1
手机收费版本地址链接:http://www.onlyit.cn/topic_list_detail?subject_id=3&topic_id=103479&topic_page_id=1
|
|
cathy [个人空间]
注册  2007-07-18 发贴数 222 精华数 0 原创贴 0 来自 状态 正常
级别 会员 |
|
|
第一个方法是无法清空数据的。 v测试脚本如下 int ad00(); { //执行sql方式进行当前脚本报表的数据清空 grid_set_opt("MG", "editing.on"); int a, b; string sql; sql = "select res_id,res_name from res where 1=2"; db_run(sql); grid_show_db("MG"); //当前无数据,似乎是隐藏了,执行下面的加行数,则前面的数据出现了。 //那就进行另外一种清空方式 b = grid_row_num("MG"); for (a = 1; a <= b; a++) { grid_clear_row("MG", a); } //再删除它 for (a = 1; a <= b; a++) { if (b > 1 && a > 1) { grid_del_row("MG", a); a--; b--; } } return 1; } int ad01(); { grid_add_row_num("MG", 100); return 1; } int main() { call_str("view_csp_rep.ds_001"); gui_create_speedbutton("Panel_Func", "ad0", 400, 2, 45, 25, "清空", "call_csp.test.ad00"); gui_create_speedbutton("Panel_Func", "ad1", 460, 2, 45, 25, "加行", "call_csp.test.ad01"); return 1; }; |
|
|
|
|
dragonzsp [个人空间] QQ名 十二个耳环(187199580)
注册  2011-03-25 发贴数 183 精华数 0 原创贴 4 来自 温州 状态 正常
级别 贵宾 |
|
|
我以为你说的是报表的int func_query()函数里面把直接把结果集清空,让MG不显示呢..... 你这种是MG表已经赋值情况下的表格行的增减,这种情况暂时好像只能遍历行做行数据清除,老孟的MG相关函数的设置行数grid_set_row_num如果是原始行数大于设定行数,函数内部只是做了一个最大行标记数据的更改,并没有对MG本身的数据对象的行对象集做清除工作,而grid_add_row_num内部也只是做了2部,1是对最大行标记数据的更改,2是对MG本身的数据对象遍历,如果数据对象的行对象集行数少于最大行数,就增加缺少的空白行数据到行对象集中.所以会造成冗余旧数据的显示. |
|
|
官方认证第三方服务团队 QQ:187199580
收费教程地址链接:http://www.onlyit.cn/topic_list_detail?subject_id=7&topic_id=102140&topic_page_id=1
手机收费版本地址链接:http://www.onlyit.cn/topic_list_detail?subject_id=3&topic_id=103479&topic_page_id=1
|
|
007 [个人空间]
注册  2021-01-14 发贴数 31 精华数 0 原创贴 0 来自 状态 正常
级别 会员 |
|
|
三楼,有遍历清过数据了。 b = grid_row_num("MG"); for (a = 1; a <= b; a++) { grid_clear_row("MG", a); } //再删除它 for (a = 1; a <= b; a++) { if (b > 1 && a > 1) { grid_del_row("MG", a); a--; b--; } 这代码测试确实清不干净,何解。 |
|
|
于 2021-03-21 21:06 被 007 修改
|
|
dragonzsp [个人空间] QQ名 十二个耳环(187199580)
注册  2011-03-25 发贴数 183 精华数 0 原创贴 4 来自 温州 状态 正常
级别 贵宾 |
|
|
sql = "select res_id,res_name from res where 1=2"; db_run(sql); grid_show_db("MG"); 这段要删除,因为这段执行后,相当于把MG的行数设定成1行了; int ad00(); { //执行sql方式进行当前脚本报表的数据清空 grid_set_opt("MG", "editing.on"); int a, b; string sql; //那就进行另外一种清空方式 b = grid_row_num("MG"); for (a = 1; a < b; a++) { grid_clear_row("MG", a); } grid_set_row_num("MG",2); return 1; } |
|
|
官方认证第三方服务团队 QQ:187199580
收费教程地址链接:http://www.onlyit.cn/topic_list_detail?subject_id=7&topic_id=102140&topic_page_id=1
手机收费版本地址链接:http://www.onlyit.cn/topic_list_detail?subject_id=3&topic_id=103479&topic_page_id=1
|
|
justin [个人空间]
注册  2021-02-24 发贴数 17 精华数 0 原创贴 0 来自 状态 正常
级别 会员 |
|
|
数量多的时候,这个遍历清除再删除,会导致程序卡死。 有没办法一个函数直接 清空指定 GRID 的内存区域数据(不是指 db_select_area 里的 30个区域) |
|
|
|
|
xwb514 [个人空间] QQ名 福建流浪(340298101)
注册  2010-03-19 发贴数 575 精华贴 7 原创贴 7 来自 状态 正常
级别 会员 |
|
|
回楼上,应当可以把这个GRID给删除再建一个GRID,也就是说把创建GRID的过程写个函数,当删除后再调用这个函数生成新的GRID,我想小服所要的功能也可以实现。 |
|
|
官方认证第三方服务团队 徐文标(福建-流浪) QQ:340298101 V&P :177-5046-4787
服务介绍:http://www.onlyit.cn/onlyit_service.html
|
|
dragonzsp [个人空间] QQ名 十二个耳环(187199580)
注册  2011-03-25 发贴数 183 精华数 0 原创贴 4 来自 温州 状态 正常
级别 贵宾 |
|
|
int ad00(); { //执行sql方式进行当前脚本报表的数据清空 grid_set_opt("MG", "editing.on"); grid_set_row_num("MG",2); grid_clear_row("MG", 1); return 1; } int ad01(); { int count,i; count= grid_row_num("MG"); grid_add_row_num("MG", 100); for(i=count;i<count+100;i++){ grid_clear_row("MG", i); } return 1; } 转换下思路呗,清空可以在增加行的逻辑代码中,这样就不会卡了 |
|
|
官方认证第三方服务团队 QQ:187199580
收费教程地址链接:http://www.onlyit.cn/topic_list_detail?subject_id=7&topic_id=102140&topic_page_id=1
手机收费版本地址链接:http://www.onlyit.cn/topic_list_detail?subject_id=3&topic_id=103479&topic_page_id=1
|
|
|