分享_自动列宽,暂时先这样处理吧_使用经验
学习.交流
专业源于专注
www. onlyit. cn   
学习交流 文件下载 手册资料 交流QQ群

    

 9  1/1   1  
作者
内容
mevmev  [个人空间]


注册  2017-03-15
发贴数  157
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#1»发布于2017-09-03 22:25

感谢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
状态  正常

级别  会员
#2»发布于2017-08-28 21:33

谢谢楼主分享,收藏备用。






官方认证第三方服务团队  蒋逸凡(常德-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
来自  天津
状态  正常

级别  会员
#3»发布于2017-10-01 10:57

谢谢楼主分享,收藏备用。好的东西大家分享,就是不太怎么知道去用!






做生活的智者

dragonzsp  [个人空间]
QQ名  十二个耳环(187199580)


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

级别  贵宾
#4»发布于2017-11-28 08:59

我给你优化下,你那个建表更新表有删除表,单机没啥问题,网络版多人同时操作会异常,而且效率也不高哈哈 
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
来自  
状态  正常

级别  会员
#5»发布于2018-01-03 22:29

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
状态  正常

级别  会员
#6»发布于2018-01-04 10:25

耳环大侠出手就是不一样,收藏了。






官方认证第三方服务团队  蒋逸凡(常德-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
来自  安徽
状态  正常

级别  会员
#7»发布于2018-05-07 08:45

好东西,收藏了






联系QQ:729208139    TEL:17775227617

wbjjzhu  [个人空间]


注册  2012-08-22
发贴数  102
精华数  0
原创贴  1
来自  
状态  正常

级别  会员
#8»发布于2018-07-08 12:55

收藏学习,谢谢分享!




ahhnztz  [个人空间]
QQ名  安徽-大志


注册  2012-12-14
发贴数  55
精华贴  1
原创贴  3
来自  安徽
状态  正常

级别  会员
#9»发布于2018-08-31 14:12

收藏,谢谢楼上的大侠们!!!






联系QQ:729208139    TEL:17775227617


 9  1/1   1  

登录后方可发贴


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