frank.zhang 发表于 2015-5-18 09:29:00

数据之间多出一个换行

word 导出整体是OK的,但是你发现没有,哪些线条都没掉了, 我们的模板里是有这些线条的;Excel也是对的,但是就是有些信息, 如费用名称,金额,我们用”回车换行“隔开了,但是导出到Excel时,黏在一起了,我们不得不去调整。
      1. 导出word时,要显示线条出来
      2. 导出Excel时,根据回车换行自动换行显示;
   第一个问题: 我们改了代码,更糟糕, 不是到你们有没有兼容的方法。

frank.zhang 发表于 2015-5-18 09:32:00

您好,
我这边需要重现这个问题,麻烦您重新上传下最新的报表模板,以及您导出的word和excel。
由于我这边没有您拼这个字段的代码,麻烦请您一套附上,方便我们重现问题。
刚才跟您打电话,没有接通。如果我在这个帖子里面,表述的不清楚,随时联系。

KinnSoft 发表于 2015-5-18 15:54:00

1 我们在这张报表中有主表也有从表; 我们根据主表的数据,对从表的数据进行汇总: 如下是我们从表数据汇总的函数,请看。我们是用回车换行隔开了:
      create function .(@keyid nvarchar(4000),@cd nchar(1),@ioid nchar(1)=1, @fmid nchar(1)='N')      
      returns nvarchar(4000) as      
begin         
   DECLARE @STR varchar(8000)      
   SELECT @STR=ISNULL(@STR+CHAR(13)+char(10),'')+isnull(item1,'')          -----用回车换行隔开了每个从表的数据
            FROM (SELECT top 100 percent CAST(case when @cd='T' then f_costitem.Payplacecd else f_costitem.Payplace end as varchar(8000)) as item1,costprntno      
                  FROM f_costitem left join ia_document on f_costitem.dockeyid=ia_document.keyid      
                        left join f_costsetting on f_costsetting.costcd=f_costitem.costcd and ia_document.orgcd=f_costsetting.orgcd      
                WHERE f_costitem.dockeyid =@keyid and ioid=case when @ioid=0 then ioid else @ioid end
                                                and isnull(f_costitem.fmid,'N')=@fmidorder by costprntno)AS T      
                        
return @STR      
   end      

       2.   数据模板, 你看, 我们另存为pdf是OK的,但是另存为Excel有问题: 数据显示还是有问题; 另存为Word时, 线条会没掉
      模板 与导出Excel:

      预览:

         另存为pdf:

         另存为word:

frank.zhang 发表于 2015-5-18 16:55:00

您好,
需要确定那几个换行是哪个控件里面出现的,增加Table控件的边框。


KinnSoft 发表于 2015-5-19 08:47:00

你好,我今天没有带电话, 你的方案是解决什么问题?

frank.zhang 发表于 2015-5-19 11:03:00

您好,
关于您的问题,我们分析如下:
1.如下图所示


这个问题中,从导出的excel可以看到,这个是一个单元格的数据。由于模板设计时,这个是一个textBox导出的。没有办法控制到单元格内部数据的显示。



2.预览是压线的问题
这个问题,还是需要通过修改报表模板来解决。

3.您在ISNULL(@STR+CHAR(13)+char(10),'')+isnull(item1,'')
从excel里面截取的字符串,字符串是空格隔开的。我们怀疑是excel自己做了转换。

我还是您建议修改报表模板。您这边的环境,数据库,代码我这边都没有,所有没有办法重现问题。

建议您想办法给我一个能够重现这个问题的例子。我们只有重现这个问题,才能解决问题。

KinnSoft 发表于 2015-5-19 16:11:00

ISNULL(@STR+CHAR(13)+char(10),'')+isnull(item1,'')    :这个绝对是回车换行,而不是空格隔开。
1. 第一个问题间隔非常大的, 你们有什么解决方案吗?
2. 我没办法给你们数据,你们不能远程看下吗?你其他客户遇到问题, 他们难道都能给你数据吗?
3. 你说的导出Excel有问题, 但是我们保存到PDF, 或者word时, 这个数据就不会缩到一起了。

KinnSoft 发表于 2015-5-19 16:20:00

回复 6楼frank.zhang的帖子

    2.这个要怎么调整?
    请问你是否对比了pdf, excel 跟word以及预览版:
   你发回发现。 PDF版是准确的。
    但是预览时, 压线并且数据之间间隔偏大;
    Excel版的, 数据会黏在一起,不能自动根据回车换行转化;
    word版,线条没掉了。请参照下

frank.zhang 发表于 2015-5-19 18:18:00

您好,
这个问题,我仔细看了下您发的附件,确实如您所描述的。但是,excel,pdf是不同厂家的不同产品,它们的内部处理机制是不一样的。这个导出的问题,我的思路是改变模板,不让一个TextBox显示太多的内容,以达到简化的目的。
我这边想要一个能够重现问题的例子,因为,没有重现问题,我给您的只能是建议和猜测。我们找不到问题,就没有对策,更加谈不上解决。

KinnSoft 发表于 2015-5-19 18:29:00

回复 6楼frank.zhang的帖子

         我把数据截取下来了, 请看附件---里面有数据库
      



   这次应该能重现问题了吧.
页: [1] 2 3
查看完整版本: 数据之间多出一个换行