作者 |
|
mevmev [个人空间]
注册  2017-03-15 发贴数 157 精华数 0 原创贴 0 来自 状态 正常
级别 会员 |
|
|
感谢afoo提供的示例代码与思路 int autofit() { int row,col,a,b,c,d; string grid,dw; string sql; grid=user_para_get("iGrid"); dw=user_para_get("iDW"); row=grid_find(grid,dw,""); col=grid_col_num(grid); sql="if exists (select 1 from sysobjects where name='t_max_col' and type='u')"; sql=sql+" delete from t_max_col else create table t_max_col(id int,val int)"; db_run(sql); for(d=1;d<=col;d++) { for(a=0;a<row;a++) { b=strlen(grid_get_v(grid,grid_get_col_name(grid,d),a)); sql="insert into t_max_col(id,val) values("+a+","+b+") "; db_run(sql); } c=to_int(db_res(db_run("select max(val)*8.5 from t_max_col"))); grid_set_col_width(grid,grid_get_col_name(grid,d),c); //dbg("列号:"+d+",列名:"+grid_get_col_name(grid,d)+",列宽:"+c); db_run_query_thr("delete from t_max_col select 0"); } db_run_query_thr("drop table t_max_col select 0"); return 1; } |
|
|
于 2017-09-03 22:25 被 mevmev 修改
|
|
afoo [个人空间] QQ名 常德-ZEN
注册  2010-04-08 发贴数 207 精华贴 6 原创贴 6 来自 常德-ZEN 状态 正常
级别 会员 |
|
|
|
|
官方认证第三方服务团队 蒋逸凡(常德-ZEN) QQ:50636277 微信FrankBZE
服务介绍: http://www.onlyit.cn/user_show_topic?user_id=13498&topic_id=79894&topic_page_id=1
|
|
怡奥快乐 [个人空间] QQ名 怡奥快乐
注册  2017-02-11 发贴数 18 精华数 0 原创贴 0 来自 天津 状态 正常
级别 会员 |
|
|
谢谢楼主分享,收藏备用。好的东西大家分享,就是不太怎么知道去用! |
|
|
做生活的智者
|
|
dragonzsp [个人空间] QQ名 十二个耳环(187199580)
注册  2011-03-25 发贴数 183 精华数 0 原创贴 4 来自 温州 状态 正常
级别 贵宾 |
|
|
我给你优化下,你那个建表更新表有删除表,单机没啥问题,网络版多人同时操作会异常,而且效率也不高哈哈 int autofit () { int row,col,max,i,m,colw,rowlength,maxrow; string grid,content,colname; string sql; //获取设定的操作表格对象名称 grid=user_para_get("iGrid"); //获取表格列数 col=grid_col_num(grid); //获取表格行数 row=grid_row_num(grid); maxrow=row-1; //开始遍历列 for(i=0;i<col;i++) { //设定max初始化为0 max=0; //获取当前列宽 colname=grid_get_col_name(grid,i); colw=grid_set_col_width(grid,colname); if(colw==0) { //如果列宽为0,说明本列是隐藏的,直接跳过 continue; } //开始遍历行,获取每行的字符长度,并取得最大值 rowlength=0; for(m=0;m<row;m++) { //首先判断是否到最大行 if(m>maxrow) { break; } //其次获取到该行文本 content=grid_get_v_ext(grid,i,m); if(content=="") { //如果该行没有文本,做进一步判断是否该表格下面已经没有数据了 if(i==0) { //如果是第0列该行没有数据,说明下面已经没有数据了 //第0列一般是序号,软件设置增加行才会有序号 //更改最大行数 maxrow=m; break; } else { //否则直接跳过本行 } } else { //获取内容字节长度 rowlength=strlen(content); //获取最大列宽 if(rowlength>max) { max=rowlength; } } } if(max>0) { //设定该列列宽,列宽=字符长度*固定系数,自己设置 grid_set_col_width(grid,colname,max*9); } } } |
|
|
于 2017-11-28 08:59 被 dragonzsp 修改
官方认证第三方服务团队 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
|
|
htc [个人空间]
注册  2017-12-30 发贴数 538 精华数 0 原创贴 0 来自 状态 正常
级别 会员 |
|
|
int autofit() { string mygrid; mygrid = user_para_get("iGrid"); int a, b, c, d, f, e, v; e = 0; f = 0; b = grid_col_num(mygrid); c = grid_row_num(mygrid); for (d = 1; d <= b; d++) { if (grid_get_col_width(mygrid, grid_get_col_name(mygrid, d)) == 0) {continue;} else { for (a = 0; a <= c; a++) { f = strlen(grid_get_v(mygrid, grid_get_col_name(mygrid, d), a)); if (f >= e) {e = f;} } grid_set_col_width(mygrid, grid_get_col_name(mygrid, d), e * 9); e = 0; } } return 1; } |
|
|
|
|
afoo [个人空间] QQ名 常德-ZEN
注册  2010-04-08 发贴数 207 精华贴 6 原创贴 6 来自 常德-ZEN 状态 正常
级别 会员 |
|
|
|
|
官方认证第三方服务团队 蒋逸凡(常德-ZEN) QQ:50636277 微信FrankBZE
服务介绍: http://www.onlyit.cn/user_show_topic?user_id=13498&topic_id=79894&topic_page_id=1
|
|
ahhnztz [个人空间] QQ名 安徽-大志
注册  2012-12-14 发贴数 55 精华贴 1 原创贴 3 来自 安徽 状态 正常
级别 会员 |
|
|
|
|
联系QQ:729208139 TEL:17775227617
|
|
wbjjzhu [个人空间]
注册  2012-08-22 发贴数 102 精华数 0 原创贴 1 来自 状态 正常
级别 会员 |
|
ahhnztz [个人空间] QQ名 安徽-大志
注册  2012-12-14 发贴数 55 精华贴 1 原创贴 3 来自 安徽 状态 正常
级别 会员 |
|
|
|
|
联系QQ:729208139 TEL:17775227617
|
|
|