【问题标题】:ssrs Datasource CSV semi colon delimited giving long column namessrs 数据源 CSV 分号分隔,给出长列名
【发布时间】:2018-05-31 08:06:11
【问题描述】:

我有一个自动生成 csv 的工具,但使用分号;但是,当我在 SSRS 中运行查询时,它只为报告中的所有字段提供一列。当我用逗号更改分号时,它运行良好。
我想修改或更改 SSRS 中的设置以提供正确的格式。我运行查询,例如 csv 有 sample1;sample2;sample3;;;; a;b;c; , 输出给出 sample1;sample2;sample3;;;; a;b;c;

我尝试以这种方式更改reportingservices.config,但不起作用

 <Extension Name="Semicolon" Type="Microsoft.ReportingServices.Rendering.DataRenderer.CsvReport,Microsoft.ReportingServices.DataRendering">
                <OverrideNames>

    <Name Language="en-US">CSV (semicolon delimited)</Name>
                 <Name Language="en-EN">CSV (semicolon delimited)</Name>


                </OverrideNames>
                <Configuration>
                    <DeviceInfo>
             <FileExtension>csv</FileExtension>
                        <FieldDelimiter>;</FieldDelimiter>
<SuppressLineBreaks>True</SuppressLineBreaks>
                    </DeviceInfo>
                </Configuration>
            </Extension>   

我想要这种输出。

sample1 |  sample2 | sample3
     a          b         c

关于如何在 SSRS 中执行此操作的任何想法。

【问题讨论】:

  • 只是好奇..更改后您是否重新启动了 RS 服务?
  • 今天早上刚刚重新启动了服务,并且还在 SQL Server 协议上启用了 TCP/IP 协议。 Reporting Services 正在运行,但分号 csv 格式不正确
  • 这一切都非常令人困惑。您在什么中查看此文件?你在什么生成这个文件?
  • @尼克。我正在使用 SSRS 连接到 csv 并运行查询。它是一个分号 csv 文件,因为是一个自动生成它的工具,所以我不能每次工具运行时手动更改为逗号分隔文件。检查添加的屏幕截图
  • 我只是按照您在上面所做的评论。在为您的数据源设置 ODBC 时,您应该能够定义分隔符(定义格式)。除非我错了.. 有一段时间没必要这样做了!

标签: sql sql-server reporting-services


【解决方案1】:

我决定只编写一个批处理文件来立即替换分号 csv 由 .exe 应用程序生成。要替换的示例也在此链接中:Batch script to find and replace a string in text file without creating an extra output file for storing the modified file

@echo off
setlocal enabledelayedexpansion




::  rem   editing and replacing  a text file without redirecting the output to file 

@echo off 
    setlocal enableextensions disabledelayedexpansion

    set "search=%;"
    set "replace=%,"

    set "textFile=try2.csv"

    for /f "delims=" %%i in ('type "%textFile%" ^& break ^> "%textFile%" ') do (
        set "line=%%i"
        setlocal enabledelayedexpansion
        >>"%textFile%" echo(!line:%search%=%replace%!
        endlocal
    )
pause

【讨论】:

  • 您应该能够在 schema.ini 文件中定义自定义分隔符。 docs.microsoft.com/en-us/sql/odbc/microsoft/…
  • @尼克。这太有趣了。文件夹中的 schema.ini 在哪里。我现在读了这个页面!
  • 好的。我现在已经读过了。我必须创建 schema.ini 并定义我想要的。我应该使用 Format=Delimited(custom character) 作为 fomat 类型,因为这是分号
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-06
相关资源
最近更新 更多