找回密码
 立即注册

QQ登录

只需一步,快速开始

frank.zhang

社区贡献组

83

主题

4000

帖子

6万

积分

社区贡献组

积分
69459

活字格认证微信认证勋章元老葡萄

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

23 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-5-18 09:32:00
沙发
您好,
我这边需要重现这个问题,麻烦您重新上传下最新的报表模板,以及您导出的word和excel。
由于我这边没有您拼这个字段的代码,麻烦请您一套附上,方便我们重现问题。
刚才跟您打电话,没有接通。如果我在这个帖子里面,表述的不清楚,随时联系。
回复 使用道具 举报
KinnSoft
高级会员   /  发表于:2015-5-18 15:54:00
板凳
1 我们在这张报表中有主表也有从表; 我们根据主表的数据,对从表的数据进行汇总: 如下是我们从表数据汇总的函数,请看。我们是用回车换行隔开了:
        create function [dbo].[fun_GetChargePayplacecd](@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')=@fmid  order by costprntno  )AS T        
                        
return @STR        
     end      

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

        预览:

         另存为pdf:  

         另存为word:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-5-18 16:55:00
地板
您好,
需要确定那几个换行是哪个控件里面出现的,增加Table控件的边框。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
KinnSoft
高级会员   /  发表于:2015-5-19 08:47:00
5#
你好,我今天没有带电话, 你的方案是解决什么问题?
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-5-19 11:03:00
6#
您好,
关于您的问题,我们分析如下:
1.如下图所示


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



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

3.您在
  1. ISNULL(@STR+CHAR(13)+char(10),'')+isnull(item1,'')
复制代码

从excel里面截取的字符串,字符串是空格隔开的。我们怀疑是excel自己做了转换。

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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
KinnSoft
高级会员   /  发表于:2015-5-19 16:11:00
7#
ISNULL(@STR+CHAR(13)+char(10),'')+isnull(item1,'')    :  这个绝对是回车换行,而不是空格隔开。
1. 第一个问题间隔非常大的, 你们有什么解决方案吗?
2. 我没办法给你们数据,你们不能远程看下吗?  你其他客户遇到问题, 他们难道都能给你数据吗?
3. 你说的导出Excel有问题, 但是我们保存到PDF, 或者word时, 这个数据就不会缩到一起了。
回复 使用道具 举报
KinnSoft
高级会员   /  发表于:2015-5-19 16:20:00
8#
回复 6楼frank.zhang的帖子

    2.  这个要怎么调整?
    请问你是否对比了pdf, excel 跟word以及预览版:
   你发回发现。 PDF版是准确的。
    但是预览时, 压线并且数据之间间隔偏大;
    Excel版的, 数据会黏在一起,不能自动根据回车换行转化;
    word版,线条没掉了。  请参照下
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-5-19 18:18:00
9#
您好,
这个问题,我仔细看了下您发的附件,确实如您所描述的。但是,excel,pdf是不同厂家的不同产品,它们的内部处理机制是不一样的。这个导出的问题,我的思路是改变模板,不让一个TextBox显示太多的内容,以达到简化的目的。
我这边想要一个能够重现问题的例子,因为,没有重现问题,我给您的只能是建议和猜测。我们找不到问题,就没有对策,更加谈不上解决。
回复 使用道具 举报
KinnSoft
高级会员   /  发表于:2015-5-19 18:29:00
10#
回复 6楼frank.zhang的帖子

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



     这次应该能重现问题了吧.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部