lifesky2006 发表于 2015-1-17 10:39:00

关于fpspread列居中问题

fpspread7.0版本,如果不绑定数据库,则居中没有问题
如果绑定了数据库,即使设置了居中,也会重新按照绑定数据库的数据格式来自动调整列显示,导致居中失效,只能在.datasoure设置以后,再设置TypeHAlign属性
但是比如SQL数据库中有字段为bit类型,绑定后本来这一列应该是复选框样式


但是如果设置了居中后,格式就变了,变成了下面这样(似乎字段自动变成字符型了)



问题来了:
1.请问怎么能设置居中方式后格式不改变?
2.绑定数据库后,列宽有时候并不能适当调节。我使用的是 DAutoSizeCols=DAutoSizeColsMax,如果标题允许多行有时候标题行就变成两行了,并没有适应。怎么设置才能让列内容比标题宽时适应列宽,标题比列内容宽时适应标题?

比如我下面这个例子,里面其他的列宽都正常,就是“地热井深度”这一列死活不适应,宽度差一个字的宽度,导致最后一个字看不见了。
请帮忙看看是怎么回事,我发现好多次这样的问题了。


lifesky2006 发表于 2015-1-20 09:43:00

管理员大大进来帮忙啊,好长时间了帖子

iceman 发表于 2015-1-20 14:14:00

回复 2楼lifesky2006的帖子

从当前的测试结果看这是 Spread COM 7.0 的bug,Spread COM 8.0 不存在这个问题。
需要通过产品升级来解决,请下载测试:
http://www.gcpowertools.com.cn/downloads/trial/SpreadforActiveX/ss8_820.zip

lifesky2006 发表于 2015-1-23 11:21:00

是我说错版本了,我的就是8.0的,具体请看我帖子里的截图,7.0版本的是没有AppearanceStyle这个属性的,列标题没有那种黄色渐变色的

iceman 发表于 2015-1-23 11:58:00

回复 4楼lifesky2006的帖子

我在打开1#中demo时候提示以下警告:



使用 NotePad++查看工程文件引用也是 7.0



所以,请确认你使用的版本。

lifesky2006 发表于 2015-1-23 13:08:00

我例子中用的确实是7.0,我安装了两个版本,上面的截图是8.0的,这个例子我一着急用成7.0了
8.0以后可能不会出现少一个字,至少这个例子里好像是。但是他的这个宽度的确是不准确。
我使用m=fps.MaxTextColWidth(i)获取最小宽度,但是这个宽度显示中文的时候不准确
我只好让fps.colwidth(i)=m+100来让他手动增加一点
您可以试试绑定带有中文字符字段的数据库,就可以发现了,但并不是所有列都这样,也不是固定的列会这样,好像是他对中文的宽度判断的不是很准确。有时候宽度就小了。

iceman 发表于 2015-1-23 18:06:00

回复 6楼lifesky2006的帖子

很抱歉,我通过当前的这个 Demo 无法重现问题,有没有稳定的重现问题步骤可以提供给我们?

lifesky2006 发表于 2022-7-7 18:56:49

本帖最后由 lifesky2006 于 2022-7-7 18:59 编辑

iceman 发表于 2015-1-23 18:06
回复 6楼lifesky2006的帖子

很抱歉,我通过当前的这个 Demo 无法重现问题,有没有稳定的重现问题步骤可以 ...
其实不用demo 您只要测试一个数据库,将数据库的几个字段分别设置为文本,双精度浮点数,长整型就可以测试了,使用datasource绑定数据库后,再使用TypeHAlignCenter进行居中
会发现长整型的变成浮点型了,数据库我使用的access2003版本
我是fpspread8.0居中代码为
   
    fpsResult.ReDraw = False
    fpsResult.MaxCols = 7
    fpsResult.ColWidth(1) = 0
    For i = 2 To 7
      fpsResult.ColWidth(i) =300
    Next
    fpsResult.SetText 1, 0, "ID"
    fpsResult.SetText 2, 0, "通道号"
    fpsResult.SetText 3, 0, "任务名"
    fpsResult.SetText 4, 0, "闸门时间"
    fpsResult.SetText 5, 0, "结果"
    fpsResult.SetText 6, 0, "系数"
    fpsResult.SetText 7, 0, "读取时间"

    fpsResult.Col = -1
    fpsResult.TypeHAlign = TypeHAlignCenter
    fpsResult.ReDraw = True


Richard.Ma 发表于 2022-7-8 09:27:23

您好,非常抱歉,目前Com版产品已经停止更新,没有办法再提供技术支持
您可以参考产品文档中的相关介绍,看看是否可以解决问题
https://www.grapecity.com/spreadcom/docs/
页: [1]
查看完整版本: 关于fpspread列居中问题