KB2715841 - PATAISYMAS: ataskaitų peržiūros programa 2010 nerodo DateTime parametro, kai paleidžiate ataskaitą SSRS 2012

Ši problema taikoma "Microsoft „SQL Server“ 2012" ataskaitų tarnyboms.

Požymiai

Apsvarstykite šį scenarijų:

  • Sukūrėte "Windows Forms" programą arba "Windows Presentation Foundation" (WPF) programą, pagrįstą "„Microsoft“ .NET Framework 4.0".
  • "Windows Forms" arba WPF programoje naudojate "„„Microsoft“ Report Viewer“ 2010" valdiklį, kad būtų rodoma "„Microsoft“ „SQL Server“ 2012" ataskaitų tarnybų (SSRS 2012) ataskaita, kuri veikia nuotoliniu režimu.
  • Ataskaitoje yra DateTime tipo parametras, turintis numatytąją reikšmę.
  • Paleidžiate programą operacinėje sistemoje, kurios regiono parametrai nustatyti kaip italų. Be to, ilgojo laiko formatas nustatytas kaip "HH:mm:ss".

Tokiu atveju galite susidurti su viena iš šių problemų:

  • DateTime tipo parametro numatytoji reikšmė raginimo srityje nerodoma.
  • Jei priskiriate reikšmę DateTime tipo parametrui ir atnaujinate ataskaitą, reikšmė prarandama po ataskaitos pateikimo ir nėra rodoma.

      

Priežastis

Ši problema kyla dėl 4.0 .NET Framework pakeitimo, kuris neleidžia programai ir SSRS 2012 naudoti teisingos informacijos, atsižvelgiant į regioninius operacinės sistemos parametrus. Programos, pagrįstos ".NET Framework 4.0", naudoja regiono parametrus, kuriuos pateikia "Windows". Tačiau SSRS 2012 yra sukurta ".NET Framework 3.5" 1 pakeitimų paketo (SP1) pagrindu. Todėl SSRS 2012 naudoja regiono parametrus, kurie yra įdėti į ".NET Framework 3.5 SP1".

Kai SSRS 2012 serveris vykdo ataskaitą naudodamas simbolį "." kaip laiko skyriklį, DateTime tipo parametras siunčiamas atgal klientui kaip eilutė. Ataskaitų peržiūros programos valdiklis iškviečia metodą DateTimeOffset.TryParse, kad patikrintų eilutę naudodamas simbolį ":" kaip laiko skyriklį. Todėl eilutė patikrinama kaip klaidinga ir nerodoma raginimo įvesti parametrą srityje.

Pastaba Ši problema kyla tik jei ilgojo laiko formatas nustatytas kaip "HH:mm:ss", numatytasis Italijos regiono parametrų parametras. Numatytasis Italijos regiono parametrų nustatymas priklauso nuo jūsų operacinės sistemos. Be to, galite konfigūruoti numatytuosius operacinės sistemos parametrus pakeisdami ilgojo laiko formatą.

Sprendimas

Kaupiamojo naujinimo informacija

2 kaupiamasis naujinimas, skirtas „SQL Server“ 2012 1 pakeitimų paketui (SP1)

                
Šios problemos pataisa pirmą kartą buvo išleista 2 kaupiamajame naujinime. Norėdami gauti daugiau informacijos apie tai, kaip gauti šį kaupiamąjį naujinimų paketą, skirtą "„SQL Server“ 2012 Service Pack 1", spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

2790947 2 kaupiamasis naujinimo paketas, skirtas "„SQL Server“ 2012" 1 pakeitimų paketuiPastaba, kadangi komponavimo versijos yra kaupiamosios, kiekviename naujame pataisos leidime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį „SQL Server“ 2012" 1 pakeitimų paketo pataisos leidimą. Rekomenduojame taikyti naujausią pataisos leidimą, kuriame yra ši karštoji pataisa. Norėdami gauti papildomos informacijos, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

2772858 „SQL Server“ 2012" komponavimo versijos, išleistos išleidus 2012 m. „SQL Server“ 1 pakeitimų paketą

Būsena

„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.

Sprendimo būdas

Norėdami išspręsti šią problemą, naudokite vieną iš toliau nurodytų sprendimo būdų:

  • Nustatykite taikomosios programos ir operacinės sistemos regiono parametrus, kad jie atitiktų kliento regiono parametrus.
  • Sukurkite eilutės įvesties lauką, kurį vartotojas užpildys tekstu. Tada ataskaitoje konvertuokite eilutę į datą.
  • Sukurkite paslėptą arba neraginantį parametrą, kuris bus užpildytas iš eilutės įvesties lauko, kai vykdote ataskaitą.
  • Sukurkite nematomą DateTime tipo parametrą ir DateTimePicker valdiklį už ataskaitų peržiūros programos valdiklio ribų. Spustelėkite Peržiūrėti ataskaitą, tada įdėkite eilutės reikšmę į DateTime tipo parametrą SubmittingParameterValues įvykių apdorojimo programoje.

      

Daugiau informacijos

"„„Microsoft“ Report Viewer“ SP1" perskirstomąjį paketą galima atsisiųsti iš šios "„Microsoft“" atsisiuntimo centro svetainės:

„„Microsoft“ Report Viewer“ SP1 perskirstomasis paketas Norėdami sužinoti daugiau apie DateTimeOffset.TryParseExact metodą ir DateTimeOffset.TryParse metodą, apsilankykite šiose MSDN svetainėse:

DateTimeOffset.TryParseExact metodas (eilutė, eilutė, IFormatProvider, DateTimeStyles, DateTimeOffset%)
        
         DateTimeOffset.TryParse metodas (eilutė, DateTimeOffset%)