2015-09-02 78 views
1

我們正在報告嚮導中的「導出到Excel」功能中遇到問題。我們使用OOB報告嚮導(不是SSRS)創建了一個簡單的報告,其中包含像CreatedOn這樣的幾個DateTime字段。 CRM &報表查看器中顯示的DateTime值與預期的登錄用戶的時區(UTC + 8)相關。但是,在將報告導出爲ex​​cel後,它顯示了延遲8小時(UTC)的時間。即使將其導出到Excel後,我們也期待這些DateTime值與CRM中的值相同。在CRM 2011中導出報告後的時間差異

這是CRM的錯誤嗎?任何人都可以幫助解決這個問題嗎?

感謝,

數據不匹配截圖: enter image description here

報告XML:

 <ReportParameters> 
    <ReportParameter Name="CRM_FullName"> 
     <DataType>String</DataType> 
     <Nullable>true</Nullable> 
     <AllowBlank>true</AllowBlank> 
     <Prompt>CRM_FullName</Prompt> 
     <Hidden>true</Hidden> 
     <DefaultValue> 
     <Values> 
      <Value>administrator</Value> 
     </Values> 
     </DefaultValue> 
    </ReportParameter> 
    <ReportParameter Name="CRM_UserTimeZoneName"> 
     <DataType>String</DataType> 
     <DefaultValue> 
     <Values> 
      <Value></Value> 
     </Values> 
     </DefaultValue> 
     <AllowBlank>true</AllowBlank> 
     <Prompt>CRM_UserTimeZoneName</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_UILanguageId"> 
     <DataType>Integer</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>18441</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_UILanguageId</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_CurrencyDecimalPrecision"> 
     <DataType>Integer</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>2</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_CurrencyDecimalPrecision</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_CurrencySymbol"> 
     <DataType>String</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>$</Value> 
     </Values> 
     </DefaultValue> 
     <AllowBlank>true</AllowBlank> 
     <Prompt>CRM_CurrencySymbol</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_CurrencyPositivePattern"> 
     <DataType>Integer</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>0</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_CurrencyPositivePattern</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_CurrencyNegativePattern"> 
     <DataType>Integer</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>0</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_CurrencyNegativePattern</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_NumberDecimalDigits"> 
     <DataType>Integer</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>2</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_NumberDecimalDigits</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_NumberDecimalSeparator"> 
     <DataType>String</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>.</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_NumberDecimalSeparator</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_NumberNegativePattern"> 
     <DataType>Integer</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>1</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_NumberNegativePattern</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_NumberGroupSizes"> 
     <DataType>String</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>3</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_NumberGroupSizes</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_NumberGroupSeparator"> 
     <DataType>String</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>,</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_NumberGroupSeparator</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_CalendarTypeCode"> 
     <DataType>Integer</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>0</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_CalendarTypeCode</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_DateSeparator"> 
     <DataType>String</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>/</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_DateSeparator</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_TimeSeparator"> 
     <DataType>String</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>:</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_TimeSeparator</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_AMDesignator"> 
     <DataType>String</DataType> 
     <Nullable>true</Nullable> 
     <AllowBlank>true</AllowBlank> 
     <DefaultValue> 
     <Values> 
      <Value>AM</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_AMDesignator</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_PMDesignator"> 
     <DataType>String</DataType> 
     <Nullable>true</Nullable> 
     <AllowBlank>true</AllowBlank> 
     <DefaultValue> 
     <Values> 
      <Value>PM</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_PMDesignator</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_ShortDatePattern"> 
     <DataType>String</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>d/M/yyyy</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_ShortDatePattern</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_LongDatePattern"> 
     <DataType>String</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>dddd, d MMMM, yyyy</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_LongDatePattern</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_ShortTimePattern"> 
     <DataType>String</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>h:mm tt</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_ShortTimePattern</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_MonthDayPattern"> 
     <DataType>String</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>dd MMMM</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_MonthDayPattern</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_YearStartWeekCode"> 
     <DataType>Integer</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>0</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_YearStartWeekCode</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_WeekStartDayCode"> 
     <DataType>Integer</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>0</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_WeekStartDayCode</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_FilterText"> 
     <DataType>String</DataType> 
     <Nullable>true</Nullable> 
     <AllowBlank>true</AllowBlank> 
     <Prompt>CRM_FilterText</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_FilteredIncident"> 
     <DataType>String</DataType> 
     <DefaultValue> 
     <Values> 
      <Value>&lt;fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false"&gt;&lt;entity name="incident"&gt;&lt;all-attributes /&gt;&lt;filter type="and"&gt;&lt;condition attribute="modifiedon" operator="last-x-days" value="60" /&gt;&lt;/filter&gt;&lt;/entity&gt;&lt;/fetch&gt;</Value> 
     </Values> 
     </DefaultValue> 
     <Prompt>CRM_FilteredIncident</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    <ReportParameter Name="CRM_URL"> 
     <DataType>String</DataType> 
     <Nullable>true</Nullable> 
     <AllowBlank>true</AllowBlank> 
     <Prompt>CRM_URL</Prompt> 
     <Hidden>true</Hidden> 
    </ReportParameter> 
    </ReportParameters> 
    <DataSources> 
    <DataSource Name="CRM"> 
     <ConnectionProperties> 
     <DataProvider>MSCRMFETCH</DataProvider> 
     <ConnectString>http://serverName:5555/;orgName</ConnectString> 
     <IntegratedSecurity>true</IntegratedSecurity> 
     </ConnectionProperties> 
    </DataSource> 
    </DataSources> 
    <DataSets> 
    <DataSet Name="DSMain"> 
     <Query> 
     <CommandText>&lt;fetch distinct="false" no-lock="false" mapping="logical"&gt;&lt;entity name="incident" enableprefiltering="1" prefilterparametername="CRM_FilteredIncident"&gt;&lt;attribute name="title" alias="title" /&gt;&lt;attribute name="createdon" alias="createdon" /&gt;&lt;attribute name="new_datereceived" alias="new_datereceived" /&gt;&lt;attribute name="new_dateclosed" alias="new_dateclosed" /&gt;&lt;attribute name="incidentid" /&gt;&lt;/entity&gt;&lt;/fetch&gt;</CommandText> 
     <DataSourceName>CRM</DataSourceName> 
     <QueryParameters> 
      <QueryParameter Name="CRM_FilteredIncident"> 
      <Value>=Parameters!CRM_FilteredIncident.Value</Value> 
      </QueryParameter> 
     </QueryParameters> 
     </Query> 
     <Fields> 
     <Field Name="title"> 
      <DataField>title</DataField> 
     </Field> 
     <Field Name="createdon"> 
      <DataField>createdon</DataField> 
     </Field> 
     <Field Name="createdonValue"> 
      <DataField>createdonValue</DataField> 
     </Field> 
     <Field Name="new_datereceived"> 
      <DataField>new_datereceived</DataField> 
     </Field> 
     <Field Name="new_datereceivedValue"> 
      <DataField>new_datereceivedValue</DataField> 
     </Field> 
     <Field Name="new_dateclosed"> 
      <DataField>new_dateclosed</DataField> 
     </Field> 
     <Field Name="new_dateclosedValue"> 
      <DataField>new_dateclosedValue</DataField> 
     </Field> 
     <Field Name="incidentid"> 
      <DataField>incidentid</DataField> 
     </Field> 
     </Fields> 
    </DataSet> 
    </DataSets> 
    <CodeModules> 
    <CodeModule>Microsoft.Crm.Reporting.RdlHelper, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</CodeModule> 
    </CodeModules> 
    <CustomProperties> 
    <CustomProperty> 
     <Name>Custom</Name> 
     <Value>&lt;MSCRM xmlns="mscrm"&gt;&amp;lt;ReportFilter&amp;gt;&amp;lt;ReportEntity paramname="CRM_FilteredIncident" donotconvert="1"&amp;gt;&amp;lt;fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false"&amp;gt;&amp;lt;entity name="incident"&amp;gt;&amp;lt;all-attributes /&amp;gt;&amp;lt;filter type="and"&amp;gt;&amp;lt;condition attribute="modifiedon" operator="last-x-days" value="60" /&amp;gt;&amp;lt;/filter&amp;gt;&amp;lt;/entity&amp;gt;&amp;lt;/fetch&amp;gt;&amp;lt;/ReportEntity&amp;gt;&amp;lt;/ReportFilter&amp;gt;&lt;/MSCRM&gt;</Value> 
    </CustomProperty> 
    </CustomProperties> 
+0

也許你的報告有Excel特定的邏輯嗎?用一個全新的報告進行測試,該報告僅輸出DateTime值並查看會發生什麼。如果從Filtered View中選擇該值,它應該在執行用戶的時區中。 – pkr298

+0

是的,我嘗試了一個非常簡單的報告,只添加了CreatedOn字段。它在UR8中工作正常,但在UR18中沒有。我的報告不包含任何Excel特定的邏輯。這是使用OOB報告嚮導構建的簡單報告。 –

+0

你可以在這裏發佈簡化的報告文件嗎? – pkr298

回答

0

CRM顯示從UTC換算任何時區的個人選項中列出的時間。 Excel沒有關於你的時區的概念,所以它需要在數據庫中列出的任何內容,而不用轉換它。

奇怪的是,當你通過先進的查找和導出到excel來做同樣的事情時,它確實保持時區對齊(它在任何你所列的時區出口)。我認爲這個錯誤是報告與視圖之間的出口到excel之間存在不一致(或者它們本身的行爲可能被認爲是正確的)。

只是FYI,Shane_Yo是正確的,這個報告正在sql db中的FilteredIncident視圖中,如報告xml末尾的「Custom Properties」值節點中所示。