Aspnetcore: Asp.Net рдХреЛрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ (SSRS)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдЬреВрди 2016  ┬╖  269рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dotnet/aspnetcore

рдореИрдВ ASP.NET рдХреЛрд░ рдРрдк рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ SSRS рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрддрд╛ред "Microsoft.Reporting.WebForm" рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред ASP.NET рдХреЛрд░ рдореЗрдВ рд╡реЗрдм рдкрд░ SSRS рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдХреНрдпрд╛ рд╣реИ

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд▓рдЧрднрдЧ 2 рд╡рд░реНрд╖ред рдХреЛрд░ 2.0 рд░рд┐рд▓реАрдЬ рд╣реЛ рдЧрдИ рд╣реИред SSRS рдЯреАрдо, рдЬрд╛рдЧреЛред

рд╕рднреА 269 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреЛрд░ рдЕрднреА рднреА рдЖрд░рд╕реА (рдорд╣реАрдиреЗ рдХреЗ рдЕрдВрдд рддрдХ рдЖрд░рдЯреАрдПрдо) рдореЗрдВ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЕрдЧрд▓реЗ 6 рдорд╣реАрдиреЛрдВ рдХреЗ рднреАрддрд░ рдПрдХ рдПрд╕рдПрд╕рдЖрд░рдПрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рдЯреАрдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реВрдВред

рдореИрдВ рдпрд╛ рддреЛ рдХреБрдЫ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдУрд░ рд╕реЗ рдЙрди рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░реВрдВрдЧрд╛ рдпрд╛ рдЙрди рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЛ рдкреВрд░реНрд╡-рдЙрддреНрдкрдиреНрди рдХрд░реВрдВрдЧрд╛ред

рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рдФрд░ "рдПрдХреАрдХреГрдд" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдкреИрдХреЗрдЬ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

https://github.com/ilich/MvcReportViewer

Https://github.com/ilich/MvcReportViewer/issues/121 рдореБрджреНрджреЗ рдХреА рдирдЬрд╝рд░ рд╕реЗ, рд╡реЗ рдЗрд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдм рддрдХ рдХреЛрдИ рд╕рдлрд▓рддрд╛ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИред

рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдкрд┐рдЫрд▓реА рд╕рднреА рдШреЛрд╖рдгрд╛рдУрдВ рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдбреЙрдЯрдиреЗрдЯ рдФрд░ рдПрдПрд╕рдкреА.рдиреЗрдЯ рдХреЛрд░ рдкрд╣рд▓ рдЪреБрдк рдХреНрдпреЛрдВ рд╣реИрдВред рдЬреИрд╕реЗ рдХреА
[рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИ рдФрд░ рд╡реЗ html рдФрд░ рдкреНрд░рд┐рдВрдЯ рд╕реАрдПрд╕рдПрд╕ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯ рд╕рдХрддреЗ рд╣реИрдВ]
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо ssrs rdlc рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ erp рдХреЗ рд╕рд╛рде рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ css рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреНрд░реЙрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдореЗрдВ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
рджреВрд╕рд░реА рдУрд░, рдкрд┐рдЫрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреЗ microsoft рдиреЗ ssrs 2016 рдХреЛ рд╢реБрджреНрдз html5 рд╡реНрдпреВрдЕрд░ рдХреЗ рд╕рд╛рде рд░рд┐рд▓реАрдЬрд╝ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рд╕рдХреНрд░рд┐рдпрдг рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ [рдЬреЛ рдХрд┐ рдЧреИрд░-рдпрд╛рдиреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ ssrs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдерд╛]
ssrs 2016 рдХреЗ рд╡реНрдпреВрдЕрд░ asp.net core Eco рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВ
рд▓реЗрдХрд┐рди asp.net рдХреЛрд░ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмрдпрд╛рди рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдпрд╣ рд╕рдм System.Drawing рджреНрд╡рд╛рд░рд╛ рдЕрд╡рд░реБрджреНрдз рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рддрдХ рднреА itextsharp рдиреЗ рдХреЛрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд░рд┐рд▓реАрдЬрд╝ рдирд╣реАрдВ рдХреА рдереАред
рдпрджрд┐ рдпрд╣ System.Drawing рд╣реИ, рддреЛ рдХрдо рд╕реЗ рдХрдо рд╡рд┐рдВрдбреЛрдЬрд╝ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди [linux рдФрд░ OSX] рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдВрдбреЛ рдХреЗ рдкреВрд░реНрдг рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡рд░реНрддрдорд╛рди рд╡рд┐рдВрдбреЛрдЬрд╝ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдЧреЛрдж рд▓реЗрдиреЗ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛ рд╕рдХреЗред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдкреЛрд╕реНрдЯ рдЯреАрдо рдХреЛ asp.net рдХреЛрд░ рдХреЗ рднреАрддрд░ ssrs рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдЧреА

рдкрд┐рдЫрд▓реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдП рдЧрдП MvcReportViewer рдХреЗ рд▓рд┐рдП рд╕рдореНрдорд╛рди рдХреЗ рд╕рд╛рде (рдпрд╣ рд╡реЗрдмрдлреЙрд░реНрдо рд╡реНрдпреВрдЕрд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рдЖрд╡рд░рдг рд╣реИ) рдФрд░ рдЗрд╕рдиреЗ mvc1 рдореЗрдВ mvc5 рдореЗрдВ mvc рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрдЕрд░ рдХреА рдХрдореА рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдореЗрдВ рдЕрддреАрдд рдореЗрдВ mvc рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдорджрдж рдХреА (рдзрдиреНрдпрд╡рд╛рдж ilich рдЗрддрдирд╛], рдореБрдЭреЗ рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ рдПрдХ рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдХреНрдпреЛрдВрдХрд┐ ssrs рдПрдХ рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рдереА рдФрд░ рд▓реЛрдЧ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░реА-рдХреЛрд░ mvc рдореЗрдВ рдХрд╛рдлреА рд░рдЦрддреЗ рдереЗред

рдХреГрдкрдпрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕,
рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░реЗрдВред
рдпрд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЯреАрдо рдХреЛ рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@ ddddddddeee22211 рдпрд╣ рдПрдХ V1 рд╣реИред

рдЖрдк рд╢реБрд░реВ рдореЗрдВ SSRS рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдЬ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред SSRS рдХрд╛ рд╕рдорд░реНрдерди рд╕рдВрднрд╡рддрдГ SSRS рдЯреАрдо рд╕реЗ рд╣реЛрдЧрд╛ рди рдХрд┐ .NET рдЯреАрдо рд╕реЗред рдЪреВрдВрдХрд┐ рд╣рдо рдЕрднреА рддрдХ рдЖрд░рд╕реА рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рд╡реА 1 рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реВрдВред

рдпрджрд┐ рдЖрдкрдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдореИрдВ рд╡реЗрдмрдлреЙрд░реНрдо рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ? рд╣рд╛рдБред рдпреЗ рдкреБрд░рд╛рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХреНрд╕-рдкреНрд▓реЗрдЯ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЪрд╛рд░реНрдЯрд┐рд╕реНрдЯ рдХреА рддрд░рд╣ рдХреБрдЫ

рдЖрдкрдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд▓реЗрдХрд┐рди рдХреБрдЫ рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕реЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рди рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдмрд╛рд░ рдЬрдм рд╡реЗ рдПрдХ рдРрдк рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд░рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдп рдкрдХрдбрд╝ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХрд╛рд░реНрдп рджреИрдирд┐рдХ рджрд┐рдирдЪрд░реНрдпрд╛ рдХреЗ рдХрд╛рд░реНрдп рдмрди рдЬрд╛рддреЗ рд╣реИрдВред рдХреБрдЫ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдмреАрдЖрдИ (рдмрд┐рдЬрдиреЗрд╕ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕) рдЯреАрдо рдХреЛ рд░рд┐рдкреЛрд░реНрдЯреНрд╕ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ ssrs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди asp.net рдХреЛрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИред

рдореЗрд░реА рдкреЛрд╕реНрдЯ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп asp.net core Eco system рдХреЗ рднреАрддрд░ ssrs рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдордЭрдирд╛ рдерд╛ред рдпрд╛ рдпрджрд┐ рдЗрд╕реЗ mvc1 рд╕реЗ mvc5 рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред ssrs рдЯреАрдо Microsoft рдХреЗ рднреАрддрд░ рд╣реИ рдФрд░ asp.net рдХреЛрд░ рдЯреАрдо рдЙрдирдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреА рд╣реИред
рдЬрдм рдореИрдВрдиреЗ ssrs 2016 рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯ рдХреЛ рджреЗрдЦрд╛ рддреЛ рдкрд┐рдЫрд▓реЗ рд╣рдлреНрддреЗ рдкрд╛рдЧрд▓ рд╣реЛ рдЧрдпрд╛ рдерд╛ред рджреВрд╕рд░реА рдУрд░ рдЬрдм рдЖрдк asp.net core рдХреЗ рднреАрддрд░ azure рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рд╕рдорд░реНрдерди рджреЗрдЦрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ рдХрд┐ рдЕрдЧрд░ рд╣рдо ssrs рдХреА рдорд╛рдВрдЧ рдирд╣реАрдВ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдкрд┐рдЫрд▓реЗ mvc 5 рдХреА рддрд░рд╣ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╡реЗрдмрдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреА рд╕рд▓рд╛рд╣ рдореБрдЦреНрдп рдкрд╣рд▓ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдХрдо рд╕реЗ рдХрдо рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдХрд╣рдиреЗ рдХрд╛ рдХреЛрдИ рд╡рдХреНрддрд╡реНрдп рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рдирд╣реАрдВ, рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░рдгрдиреАрддрд┐рдХ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВред

рдЪреИрдЯрд┐рд╕реНрдЯ рдЯрд┐рдк рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдХрд░реВрдБрдЧрд╛ рдФрд░ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдореЗрд░реА рдмрд╛рдд рд╕рдордЭ рдЧрдП рд╣реЛрдВрдЧреЗред

@ ddddddddeee22211 рдЖрд╣ ... рддреЛ рдореИрдВ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ред

рдЕрднреА, ASP.NET рдШрдЯрдХреЛрдВ рдХреЛ ASP.NET рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ WebForms рдкрд░ рд╣реИред

рдпрджрд┐ рдЖрдк рдЙрдирдХреА рд░рдгрдиреАрддрд┐рдХ рд╕реНрдерд┐рддрд┐ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдпрджрд┐ рд╡реЗ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗ, рддреЛ рд╣рдореЗрдВ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдордПрд╕ рдХрд░реНрдордЪрд╛рд░реА рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рд╣реЛрдЧреАред

рд╢рд╛рдпрдж рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ / cc @coolcsh ? рд╡рд╣ рдпрд╣рд╛рдБ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╕реНрдерд┐рддрд┐ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

SSRS рдЯреАрдо рдореЗрдВ рд╣рдо ASP.NET WebForms рдХреА рд╕реАрдорд╛рдУрдВ рд╕реЗ рдЕрд╡рдЧрдд рд╣реИрдВ рдФрд░ рд╣рдо рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрдЕрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдирдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪ рдФрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдзрдиреНрдпрд╡рд╛рдж

@jtarquino

рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдЖрджрдореА!

рд╣рдо MVC рдХреЗ рдмрд╛рдж рд╕реЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред :рдЬреАрдн рдЪрд┐рдврд╝рд╛рдирд╛ рдЖрдВрдЦ рдорд╛рд░рдирд╛:

рдЙрд╕рдиреЗ рдореЗрд░рд╛ рджрд┐рди рд╢рд╛рдирджрд╛рд░ рдмрдирд╛ рджрд┐рдпрд╛ред [~ рдЦреБрд╢ рдЕрдВрдд ~]
рдзрдиреНрдпрд╡рд╛рдж @jtarquino , @MaximRouiller рд╕рднреА рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдПред

@jtarquino
рд╡рд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ :-)

рдХреНрдпрд╛ рдЖрдк рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрдЕрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП "рдирдП рд╡рд┐рдХрд▓реНрдк" рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдкреЛрдЬрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ?
(рдХреНрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд░реЛрдбрдореИрдк / рдпреЛрдЬрдирд╛ рд╣реИ?)

рдмреАрдЖрд░ред
рдмреЛрдП

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдордп рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордпрд░реЗрдЦрд╛ рдирд╣реАрдВ рд╣реИ

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХрдВрд╕реЛрд▓ рдкрд░ рдПрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдХрдорд╛рдВрдб рд╡рд┐рдВрдбреЛ рдореЗрдВ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдЯрд╛рдЗрдк рдХрд░реЗрдВред

PM> рдЗрдВрд╕реНрдЯреЙрд▓-рдкреИрдХреЗрдЬ ReportViewerForMvc
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рд╡реЗрдм-рд░реВрдкреЛрдВ рдкрд░ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рд╡реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рд▓рдЧрддреЗ рд╣реИрдВред

untitled

@bethwellagat
рдлрд┐рд░ рд╕реЗ рдЖрдЧ рддреНрд░реБрдЯрд┐ " рдирд┐рд░реНрднрд░рддрд╛ ReportViewerForMvc рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред NETCoreapp "
рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ:
ASP.NET рдХреЛрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ

рдЗрд╕ рдкрд░ @jtarquino рдкрд┐рдВрдЧред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рд╣реИ: https://github.com/aspnet/Mvc/issues/5332

@jtarquino BTW рдЕрдЧрд░ рдЖрдк рдореЗрд░реА рдЯреАрдо рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдИрдореЗрд▓ рдХрд░реЗрдВ рдФрд░ рд╣рдо рдЪреИрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдУрд╣реНрд╣реНрд╣ рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИ! рдЧреЗрдВрдж рд▓реБрдврд╝рдХ рд░рд╣реА рд╣реИ! ЁЯША

рд╣реЗ рд╕рдм рд▓реЛрдЧ, рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА ReportExecutionService.asmx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрдЕрд░ рдХрдВрдЯреНрд░реЛрд▓ рдХрд╛ рдПрдХ рдХрд╕реНрдЯрдо рдкреЛрд░реНрдЯ рд▓рд┐рдЦрдирд╛ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ SSRS рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореИрдВ ASP.NET MVC рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рдЗрд╕реЗ .NetCore & MVC рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ рдФрд░ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдк рд▓реЛрдЧ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ: https://github.com/alanjuden/MvcReportViewer

рдПрд▓рди

рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдПрдПрд╕рдкреА рдиреЗрдЯрдХреЛрд░ рдПрдорд╡реАрд╕реА рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрдЕрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреАрди рдорд╣реАрдиреЗ рд╣реЛ рдЧрдП рд╣реИрдВред рдореИрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдПрд▓рди рдЬреВрдбреЗрди рдиреЗ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ WinForms рд╕реЗ netcore рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреНрдпрд╛ рдХреЛрдИ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ Microsoft рдкреНрд░рдердо рд╢реНрд░реЗрдгреА SSRS ReportViewer рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдХреНрдпрд╛ рдЙрдиреНрд╣реЛрдВрдиреЗ SSRS рдХреЛ рдЙрд╕реА рдХреЛрдард░реА рдореЗрдВ рд░рдЦрд╛ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ Visual FoxPro рдбрд╛рд▓рд╛ рдерд╛?

рдХрд┐рд╕реА рднреА рдкреНрд░рдЧрддрд┐ рдПрдордПрд╕? рдЕрдм рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЯреЗрд▓реЗрд░рд┐рдХ рд░рд┐рдкреЛрд░реНрдЯреНрд╕ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП SSRS рдмреИрдХреЗрдВрдб рдЬреИрд╕реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рд╢рд╛рдпрдж рдЬреИрд╕рд╛ рдХрд┐ ddddddddeee22211 рдиреЗ рд▓рд┐рдЦрд╛ рд╣реИ, SSRS 2016 рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА HTML5 рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрдВрдЬрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд╖рдорддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ?

рдЕрд░реЗ @ рдИрд▓реЛрдиред

рд╕рд┐рддрдВрдмрд░ рд╕реЗ рдХреЛрдИ рдЦрдмрд░? рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдЖрдк рд▓реЛрдЧ рдЕрдм 1.0 (рдмрдзрд╛рдИ!) рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рджрдмрд╛рд╡ рдереЛрдбрд╝рд╛ рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреБрдЫ рднреА рдЖрдк рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

/ cc @jtarquino

рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬреЛ рдореИрдВ рдЕрднреА рддрдХ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ рд╣реА рдореЗрд░реЗ рдкрд╛рд╕ .NET рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдЦрдмрд░ рд╣реИ рдЖрдк рдкрд╣рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рд╣реЛрдВрдЧреЗред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдмрддрд╛рдпрд╛ рд╣рдордиреЗ ASP.NET Webforms рдФрд░ Winforms рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рдирдЧреЗрдЯ рдЬрд╛рд░реА рдХрд┐рдпрд╛

рдореИрдВ рдЯреАрдо рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ рд╕рдВрдХреЗрдд рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ ... рдпрд╣ рдПрдХ рдкреНрд░рдореБрдЦ рдореБрджреНрджрд╛ рд╣реИред рдореИрдВ рдПрд▓рдирдЬреБрдбреЗрди рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ" рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ... рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдХреЛрд░ 1 рдорд╣реАрдиреЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдЕрдм рдЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдХреБрдЫ рд╢рдмреНрдж рд░рдЦрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рд╣рдореЗрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд╕рдордп рдкрд░ рд╢рдмреНрдж рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреБрдЫ рд╣реЛрдЧрд╛ред рдпрд╣ рдореБрджреНрджрд╛ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ mvc рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХреЗрдЧрд╛ред рдПрдХ рдиреЛрдЯред рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ ssrs рд╕рд░реНрд╡рд░ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╡рд░реНрддрдорд╛рди рд░рд┐рдкреЛрд░реНрдЯрд╡реНрдпреВрдЕрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ (рд░рд┐рдкреЛрд░реНрдЯрд╡реЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдорд╡реАрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП ssrs рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рдорд╛рдирдХ рд▓реЙрдЧрд┐рди рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ)

Sql рд╕рд░реНрд╡рд░ 2017 рдЕрдм рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдкреНрд░реАрд╡реНрдпреВ 2 рд╣реИ
рддрдерд╛
.net рдорд╛рдирдХ 2.0 рд░рд┐рд▓реАрдЬ рдирд╡реАрдирддрдо рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рдХрд░реАрдм рд╣реИ
рдФрд░ рдЕрднреА рднреА рджреЗрд╢реА asp.net рдХреЛрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛ рджрд░реНрд╢рдХ рдкрд░ рдХреЛрдИ рд╢рдмреНрдж рдирд╣реАрдВ рд╣реИ
рдХреГрдкрдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЯреАрдо рдХреЛ рдорд╛рд╕реНрдЯрд░рдкреАрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдРрд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрд╡рдЧрдд рдХрд░рд╛рдПрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рд░ рдбреЗрд╡рд▓рдкрд░ рд╕рдкрдиреЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реИред

@jtarquino : SSRS рдХреЗ рд▓рд┐рдП рдПрдХ рдордВрдЪ рдпрд╛ uservoice рд╣реИ?
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ SSRS рдЯреАрдо рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╣рд╛рдБ рдордВрдЪ рд╣реИ
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/home?forum=sqlreportingservices
рднреА рдЖрдк рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
https://blogs.msdn.microsoft.com/sqlrsteamblog/

рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ SSRS рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдирдП рдРрдк рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдЖрдВрд╕реВ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рд╡реЗрдм рдкреНрд░рдкрддреНрд░ рдирд┐рдпрдВрддреНрд░рдг рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
рдореИрдВ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдПрдХ рдХреЛрдгреАрдп 2 рджреГрд╢реНрдп рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ "рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рдФрд░ "рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ" рдЬреИрд╕реЗ рд╡реЗрдм рдлрд╝реЙрд░реНрдо рдирд┐рдпрдВрддреНрд░рдг рдХрд░рддреЗ рд╣реИрдВред

рдирдорд╕реНрддреЗ,

рд╣рдо рдЕрдкрдиреА рдХреБрдЫ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдЖрджрд┐ рдХреЛ asp.net core рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдХреБрдЫ рдореЗрдВ SSRS рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрдЕрд░ рдХрдВрдЯреНрд░реЛрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИред рдХреНрдпрд╛ .net рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рджрд░реНрд╢рдХ рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рд╣реИ?

рдзрдиреНрдпрд╡рд╛рдж
рдЯрд┐рдо

рдпрджрд┐ рдЖрдк рдкреВрд░реНрдг .NET 4.x рдФрд░ рди рд╣реА .NET рдХреЛрд░ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ ASP.NET рдХреЛрд░ рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ # 2022 рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВред
ASP.NET Core 2 Full .NET 4.x рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛

@ikourfalnред рдмрд▓реНрдХрд┐ рдПрдХ рдореВрдЯ рдкреЙрдЗрдВрдЯ рдЗрд╕ рдЪрд░рдг рдХреЛ рджреЗрдЦрдХрд░ рд╣реИ рдХрд┐ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП asp.net рдХреЛрд░ рдореЗрдВ рдХреЛрдИ рд░рд┐рдкреЛрд░реНрдЯрд╡реНрдпреВрдЕрд░ рдирд╣реАрдВ рд╣реИред Asp.net core 2 рдХреЗ рд╕рд╛рде-рд╕рд╛рде .net standard 2 рдореЗрдВ рдЖрдЧрд╛рдореА рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде .net standard 2 рдХрдореНрдкреИрдЯрд┐рдмрд┐рд▓рд┐рдЯреА рд╢рдореНрд╕ рдХреЗ рд╕рд╛рде .net рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ Microsoft рд╡рд░реНрддрдорд╛рди asp.net core рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдкреЛрд░реНрдЯрд╡реНрдпреВ рд▓рд┐рдЦреЗрдЧрд╛ред 1.1ред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВрдиреЗ SSRS рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдиреЗ рдФрд░ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧрдбрд╝рдмрдбрд╝реА рд╣реИ, рдЖрдк рдПрдХ рдирдП рдирд┐рдпрдо / рд▓реЙрдЧрд┐рди рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рддрдм рдЬрдм рдЖрдк CORS рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдПрдХ рд╡реЗрдм рдРрдк SSRS рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХреЗ рд░рд┐рдкреЛрд░реНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЙрд╕ рдкреВрд░реЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП рдЕрдм рдореИрдВ рдПрдХ рд╡реЗрдм рдлреЙрд░реНрдо рд╡реЗрдм рдРрдк рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдореИрдВ OpenId Connect рд╕рдкреЛрд░реНрдЯ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдЪрдордХрджрд╛рд░ рдирдП рдХреЛрдгреАрдп рдРрдк рдФрд░ рдореЗрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдмреАрдЪ SSO рдХрд╛рдо рдХрд░ рд╕рдХреВрдВ

рддрдм рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рдХреЛ рдЖрдЗрдлреНрд░реЗрдо рд╣реИрдХрд░реА рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдВред

рдХрд╛рд╢ Microsoft рдирдП рд╡реЗрдм рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП ssrs рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ред

рд╡рд┐рдЪрд╛рд░ рдХреА рдПрдХ рдФрд░ рдкрдВрдХреНрддрд┐: рдПрд╕рдПрд╕рдЖрд░рдПрд╕ рдХреЗрдкреАрдЖрдИ рдФрд░ рдореЛрдмрд╛рдЗрд▓ рд░рд┐рдкреЛрд░реНрдЯ: рдХреНрдпрд╛ рд╡реЗрдм рдРрдк рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ ??

@alanjuden rdlc рд░рд┐рдкреЛрд░реНрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рднреА рдореМрдХрд╛? рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджрд░реНрдж рд╣реИред

@IonRobu , рдореИрдВ рдкрд╛рдЧрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдБ ... рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╣ рдкрд╛рдЧрд▓ рдирд╣реАрдВ рд╣реВрдБ! : рдкреА

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рд░рд┐рдкреЛрд░реНрдЯ рджрд░реНрд╢рдХ рдХреЗ рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдХреЛ рдмрдирд╛рдпрд╛ рд╣реИред рдореИрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдФрд░ SSRS API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореБрдЭреЗ рд░рд┐рдкреЛрд░реНрдЯ рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ SSRS рдкрд░ рдирд┐рд░реНрднрд░ рд╣реВрдВред рддреЛ рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рдмреИрдХрдПрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ред рдореИрдВрдиреЗ рдЕрдкрдиреЗ MvcReportViewer рдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ ASP.NET WebForms рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рджрд░реНрдж рдХреЗ рдЖрд╕рдкрд╛рд╕ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ред

рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рдпрд╛ RDLC рдЬрд┐рд╕реЗ "рдХреНрд▓рд╛рдЗрдВрдЯ рд░рд┐рдкреЛрд░реНрдЯ" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рд╛рдВ рд╕рд╣реА рд╣реИред
рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВ:

рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХрд╛ рдмреИрдХ рдПрдВрдб рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдлреНрд░рдВрдЯ рдПрдВрдб рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реЗ рдХрд╛рд░реНрдп рднрд╛рд░ рд▓реЗрддрд╛ рд╣реИред
рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рднреБрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬреЛ рдЖрдкрдХреЗ рдкреНрд░реЛрдбрдХреНрд╢рдВрд╕ sql рд╕рд░реНрд╡рд░ рд╕реЗ рдХрд╛рдо рдХрд╛ рдмреЛрдЭ рдЙрдард╛ рд╕рдХрддрд╛ рд╣реИред
рдЬрдЯрд┐рд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рд╢реЗрдбреНрдпреВрд▓ рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдРрд╕реЗ рд╕рдордп рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╣реЛрдВ рдФрд░
рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЙрд╕ рдкреВрд░реНрд╡ рд╕рдВрдХрд▓рд┐рдд рд╕реНрдиреИрдкрд╢реЙрдЯ рд╕реЗ рдкрд░реЛрд╕рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
SSRS sql рд╕рд░реНрд╡рд░ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рднреА рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдлрд╝рд╛рдЗрд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ
SSRS рд╕рд░реНрд╡рд░ рднреА рдПрдХ рдХреЗрдВрджреНрд░реАрдп рдмрд┐рдВрджреБ рдмрди рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рд▓реЗрдЦрдХ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд░реНрд╡рд░ рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
SSRS рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдИрдореЗрд▓рд┐рдВрдЧ рд╕реЗрдЯрдЕрдк рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЖрдк рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рдФрд░ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдбреАрдПрдл, рд╢рдмреНрдж рдпрд╛ рдПрдХреНрд╕реЗрд▓ рдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдИрдореЗрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдХреЗрд▓рд┐рдВрдЧ рднреА, рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдзрд┐рдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдлрд┐рд░ рдЖрдкрдХреЛ рд╕рднреА рд╡реЗрдм рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ rdlc рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╣рд╛рдВ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдХреБрдЫ рд░рд┐рдкреЛрд░реНрдЯреЗрдВ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рд▓рд╛рдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк rdlc рдХреЗ рд╕рд╛рде рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдПрдХ рдмрдбрд╝реА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реА рд░рд┐рдкреЛрд░реНрдЯ рдкрд░реЛрд╕рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, SSRS рд╕рд░реНрд╡рд░ рдХреЗ рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рд▓рд╛рдн рд╣реИрдВред
рдпрд╣ рднреА рдХрд╣рд╛ рдХрд┐ рдПрд╕рдПрд╕рдЖрд░рдПрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ, рдЖрдк рдХрд┐рд╕реА рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рд╡реЗрдм рдлреЙрд░реНрдо рдпрд╛ рдПрдорд╡реАрд╕реА рджрд░реНрд╢рдХ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯ рдкреАрдбреАрдПрдл рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдкреАрдЖрдИ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдкреНрд░рдмрдВрдзрди рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЕрдиреБрдорддрд┐рдпрд╛рдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рд╕реВрдЪреАрдмрджреНрдз рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди рдореИрдВ рдЕрдкрдиреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдРрдк рдХреЛ рдЙрди рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП рди рдХреЗрд╡рд▓ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдУрд╡рд░рд╣реЗрдб рдкрд░ рд▓рд╛рднреЛрдВ рдкрд░ рдПрдХ рдЕрдЪреНрдЫреА рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

@figuerres
рдЧреНрд░рд╛рд╣рдХ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдП рдЧрдП рд╕реЗ рдЕрд▓рдЧ рд╕рдВрджрд░реНрдн рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдХрдИ рдХреНрд▓рд╛рдЗрдВрдЯ рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпреЛрдЧреНрдп рдХрд░реНрдордЪрд╛рд░реА рдирд╣реАрдВ рд╣реИрдВ
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд░рд┐рдкреЛрд░реНрдЯ (60+) рдХреЗ рд╕рд╛рде рдПрдХ рдЙрддреНрдкрд╛рдж рдЬрд╣рд╛рдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдУрд╡рд░рд╣реЗрдб рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ
рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрдХрдиреАрдХреА рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд┐рдП рдмрд┐рдирд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЪрд╛рд▓рд╛рди рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЯреИрдм рдореЗрдВ рдХрдИ рд╕рд╣реА рдЪрд╛рд▓рд╛рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рджрд░реНрд╢рдХ рджреНрд╡рд╛рд░рд╛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рд░рд▓ рд░рд┐рдкреЛрд░реНрдЯ рджрд░реНрд╢рдХ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрдирд╛ рдЖрд╕рд╛рди рд╣реИ
рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЕрдирдЧрд┐рдирдд рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рдЧрдП рдФрд░ рдЕрдм рд╡реЗ рдЕрдкрдиреЗ рд╕рд╣реА рдЙрдкрдпреЛрдЧ рдореЗрдВ рдмреЗрдХрд╛рд░ рд╣реЛ рдЧрдП рд╣реИрдВ

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ Microsoft рдЯреАрдо рд╣рдорд╛рд░реЗ рджрд░реНрдж рдХреЛ рд╕рдордЭреЗрдЧреА

рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЬреЛ рдХрд╣рд╛ рд╣реИ рд╡рд╣ рд╕рдм рдореБрдЭреЗ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд╛рдБ рдХреНрд▓рд╛рдЗрдВрдЯ рд░рд┐рдкреЛрд░реНрдЯреНрд╕ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ, рдореИрдВ рд╕рд░реНрд╡рд░ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛, рдпрд╣ рджреЗрдЦрдиреЗ рд▓рд╛рдпрдХ рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХрд╛ рдорд╛рдЗрд▓реЗрдЬ рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡рд╣ рд╕рдмред

рдЖрдЬ рд╢реБрджреНрдз рдорд╛рдирджрдВрдб 2 рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдПрдкреАрдЖрдИ рд╕рддрд╣ рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдпрд╣ asp.net рдХреЛрд░ рдХреЗ рд▓рд┐рдП ssrs рджрд░реНрд╢рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ srss рдЯреАрдо рдХреЗ рдПрдХ рд╢рдмреНрдж рдХреЗ рд▓рд┐рдП рдПрдХ рдореМрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдореЗрд░реА рдХрдВрдкрдиреА рдкреАрдбреАрдПрдл рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЖрд░рдбреАрдПрд▓рд╕реА рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд░реНрдпрд╛рдд рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред .Net рдХреЛрд░ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдореВрд▓ рд░реВрдк рд╕реЗ .net рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдЕрд╡рд░реЛрдзрдХ рд╣реИ рдФрд░ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЬреИрд╕реЗ рдбреЙрдХ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдбрд░ рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░реЗрдЧрд╛

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрднреА рднреА рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
рдпрджрд┐ рдЬрд╛рд╡рд╛ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдЖрдк рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЧреНрд░рд╣рдг BIRT рдпрд╛ JasperReports рдПрдореНрдмреЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рджреЛ рдореЗрдВ рд╕реЗ, рдЬреИрд╕реНрдкрд░рд░рдкреЛрд░реНрдЯреНрд╕ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ SSRS рд╡рд┐рдХрд▓реНрдк рд╣реИ (рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА / рдкрд┐рдХреНрд╕реЗрд▓-рдкрд░рд┐рдкреВрд░реНрдг)ред
рдЗрд╕рдореЗрдВ рдПрдХ рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рдФрд░ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕рд░реНрд╡рд░ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА JDBC рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рдФрд░ рдХреИрд╕рдВрдбреНрд░рд╛ рдпрд╛ рдЕрдкрд╛рдЪреЗ рд╕реНрдкрд╛рд░реНрдХ (рд╕реНрдкрд╛рд░реНрдХрдХреНрдпреВрдПрд╕) рдЬреИрд╕реЗ рдмрд┐рдЧрдбрд╛рдЯрд╛ рднреА рд╣реИрдВред

рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдХреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡реЗрдм рдпрд╛ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рдмреНрд░рд╛рдЙрдЬрд╝рд░, рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕, рдпрд╛ рдИрдореЗрд▓ рдЗрдирдмреЙрдХреНрд╕ рдореЗрдВ рдорд┐рд╢рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рддрд░рд┐рдд рдХрд░рдХреЗ рдЙрджреНрдпрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЗрдВрджреНрд░реАрдп рд╕реВрдЪрдирд╛ рдХреЗрдВрджреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдкреЛрдВ рдХреА рдПрдХ рдХрд┐рд╕реНрдо рдореЗрдВред

рдЖрдк рд▓реЙрдиреНрдЪ 4j рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ BIRT / рдЬреИрд╕реНрдкрд░ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдХреЗ рдЬрд╛рд╡рд╛ рд░рдирдЯрд╛рдЗрдо рдХреА рдПрдХ рд╕реНрд╡-рдирд┐рд╣рд┐рдд рддреИрдирд╛рддреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@jququino .Net рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдЪреНрдЫреА рдЦрдмрд░?

рдореИрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ рдХреБрдЫ 15 рдорд╣реАрдиреЗ рдмрд╛рдж рдЗрд╕реЗ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдмрд╣реБрдд рдирд┐рд░рд╛рд╢ред

рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ SSRS, ReportName рдФрд░ Params рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдмрд┐рдВрджреБ, DIV рдпрд╛ рдХреБрдЫ рдореЗрдВ рдЦреБрд▓рд╛ рд╣реИред рд╣рдордиреЗ рд╕реАрдзреЗ SQL рдкрд░ SSRS рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрд╛рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд░рд▓ Core2.0 MVC рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдПред

рдХреЛрдИ рд╕реБрдЭрд╛рд╡?

@cgountanis , рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
https://github.com/aspnet/Home/issues/1528#issuecomment -259169426

@cgountanis
рдХреНрдпрд╛ рдЖрдкрдХреЛ рд╡реЗрдм рдкреЛрд░реНрдЯрд▓ рд╢реЛ рдЬреИрд╕реА рд░рд┐рдкреЛрд░реНрдЯ рдпрд╛ рдкреВрд░реНрдг рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдПрдХ рдкреАрдбреАрдПрдл рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ??

рдореИрдВ рдЖрдкрдХреЛ рдХреБрдЫ рд╢реБрд░реБрдЖрдд рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдХреЛрдгреАрдп рдРрдк рд╕реЗ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ

рдпрд╣реА рдореИрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдкреГрд╖реНрда рдХреЗ рдмрдбрд╝реЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдирд╛, рдЗрд╕реЗ рдЫреЛрдЯрд╛ рдирд╣реАрдВ рдмрдирд╛рдирд╛ред


<strong i="7">@model</strong> string

@{
    ViewData["Title"] = "View Report";
}

<style>
    body {
        overflow-x: hidden;
    }
</style>

@{
    var src = "http://192.168.0.1/ReportServer/Pages/ReportViewer.aspx?/";
    src += ViewData["argument"];
}

<iframe style="overflow:hidden; overflow-x:hidden; overflow-y:hidden; border:none; width:100%; height: 1250px;" src=@src></iframe>

рдПрдХ рдмрд╛рдд рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЙрдирдореЗрдВ рд╕реЗ рдЖрдк рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдФрд░ рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рдЖрджрд┐ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... рдФрд░ рдЙрд╕ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреЛрд░реНрдЯрд▓ / рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдиреВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЖрдкрдХрд╛ рдРрдкред
рд╣рдордиреЗ рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд┐рдВрдбреЛрдЬрд╝ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдмрдирд╛рдпрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЙрди рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИрдВ,
рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рднреВрдорд┐рдХрд╛ рдХреА рдореИрдкрд┐рдВрдЧ рдХрд░реЗрдВред

рдЬрдм рд╣рдо рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд░рд┐рдкреЛрд░реНрдЯ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ, рдЙрд╕ рддрд░рд╣ рдХрд╛ рдмреЗрдХрд╛рд░ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо "рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛" рдЦреЛ рджреЗрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рд▓реЙрдЧ рдирд╣реАрдВ рдХрд░рддреЗред
рд▓реЗрдХрд┐рди рд░рд┐рдкреЛрд░реНрдЯ рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕рд░реНрд╡рд░ рдЦрд╛рддреЛрдВ рдкрд░ рд╕рд░реНрд╡рд░ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдпрджрд┐ рд╡реЗ рдЗрд╕реЗ рдПрдХ jwt рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЯреЛрдХрди рдЪреАрдЬреЛрдВ рд╕реЗ рднреВрдорд┐рдХрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

рд╣рдо рд╡реЗрдм рдлрд╝реЙрд░реНрдо рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдХреЛрдгреАрдп рдРрдк рджреГрд╢реНрдп рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ iframe рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рднреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рджреГрд╢реНрдп рд╣реИрдХ рдХреЗ рдкреАрдЫреЗ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИред

@ ctrl-brk рдореИрдВ рдХреЛрд░ 2.0 рдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЖ рд░рд╣рд╛ рд╣реВрдВ, рд╢рд╛рдпрдж рдореИрдВ рдХреБрдЫ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред https://github.com/alanjuden/MvcReportViewer/issues/43

@steelwil рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХрд╕реНрдЯрдо рдиреЗрдЯрд╡рд░реНрдХ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@figuerres рд╣рдо рдПрдХ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ SSRS рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ,

рд╕рдмрдХреЛ рд╢реБрдХреНрд░реАрдпрд╛!

рдЖрдЦрд┐рд░рдХрд╛рд░ рд╡реЗ рдЗрд╕ рдЕрдзрд┐рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ NUGET рдЬрд╛рд░реА рдХрд░реЗрдВрдЧреЗ?

@cgountanis "рд╡реЗ" SQL рд╕рд░реНрд╡рд░ рдЯреАрдо рд╣реИ, ASP.NET рдХреЛрд░ рдЯреАрдо рдирд╣реАрдВ рд╣реИред рдЙрд╕рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдЯреАрдо рд╣реИред

@giddev рдпрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рд╢реНрди рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЬрд┐рд╕ рдЕрдиреНрдп рдЯреАрдо рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднреА рднреА Microsoft рдкрд░ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдкрд╛рд╕ рд╕рдХреНрд░рд┐рдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╣реИрдВ рдЬреЛ рдЕрднреА рднреА рдЯреАрдо рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдПрд╕рдПрд╕рдЖрд░рдПрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдФрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЧрд░реНрд╡ рд╣реИред ASP.Net рдХреЛрд░ 1 рдпрд╛ 2 рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯред рдХреНрдпрд╛ рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рдХрд╛рд╢рд┐рдд рд░реЛрдбрдореИрдк рд╣реИ? рдХреНрдпрд╛ ASP.Net рдХреЛрд░ рдпреЛрдЬрдирд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдпрд╛ SSRS рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ POWER BI рд╕рд╛рдорд╛рди рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдореБрдЭреЗ рдРрд╕реЗ рд╕рдВрдХреЗрдд рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧреЗ рд╣реИрдВ рдХрд┐ SSRS рдЙрд╕реА рдЪреВрд╣реЗ рдХреЗ рдЫреЗрдж рдХреА рдУрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдЬреЛ Microsoft Visual FoxPro рдореЗрдВ рдЧрд┐рд░рд╛ рдерд╛ред

@wqwalter рдХреБрдЫ рдРрд╕рд╛ рд╣реА .....
рдореБрдЭреЗ рдпрд╣ рдзрд╛рд░рдгрд╛ рдорд┐рд▓реА рдХрд┐ Microsoft рдХреЗ рдкрд╛рд╕ рдХрдИ рдЯреАрдореЛрдВ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирдХреНрд╢реЗ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рди рдХрд┐ рдХрдИ рд▓реЛрдЧ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдХреЗ рдмреАрдЪ рд╡рд┐рддрд░рдг рдФрд░ рд╕рдВрдЪрд╛рд░ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯ рд╣реИред
рдпрд╣ рдмрд┐рд▓реНрд▓реА рдкрд╛рд▓рдиреЗ рдХреА рддрд░рд╣ рд╣реИ, рд╡реЗ рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ ...ред

рдЕрдЧрд░ рдпрд╣ рдЧрд▓рдд рд╣реИ - рддреЛ рдпрд╣ рдареАрдХ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рд╡реЗ SSRS рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХрд╛ рднрд╛рд░реА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрд░рд┐рд╕реНрдЯрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдЕрд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИред

@cgountanis
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ Microsoft рдХреА рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдкрд╕рдВрдж рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЙрдирдореЗрдВ рд╕реЗ 20 рд╡рд░реНрд╖реЛрдВ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рдЙрди рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦрд╛ рд╣реИ рдЬреЛ рдореЗрд░реА рд╕рдордЭ рдХреЛ рдЦрд░рд╛рдм рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдерд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдкреАрд╕реА, рдЬрд┐рд╕реЗ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рдЧреНрд░рд╣рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рджреНрд╡рд╛рд░рд╛ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдмреЗрдЪрд╛ рдЧрдпрд╛, рдлрд┐рд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдХрд░ рджрд┐рдпрд╛, рдлрд┐рд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдорд╛рд░ рджрд┐рдпрд╛ред
рдпрд╣ рдЙрд╕ рддрд░рд╣ рдХреЗ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ ...ред

рдореИрдВрдиреЗ рдмрд┐рдЬрд▓реА рдмреАрдЖрдИ рдФрд░ рдХреБрдЫ рдЧрдкрд╢рдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордп рдореЗрдВ рдирдпрд╛ рдПрд╕рдПрд╕рдЖрд░рдПрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИ рдпрд╛ рд╕рд┐рд░реНрдл рдЧрдкрд╢рдк рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣ рдПрдЬрд╝реНрдпреЛрд░ рдЖрдзрд╛рд░рд┐рдд рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рдореЙрдбрд▓ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдЧрд╛ред

SSRS рд╡реЗрдм рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрдпрд╛рд░ - OpenID рдХрдиреЗрдХреНрдЯ рдЕрдзрд┐рдорд╛рдирддрдГ - рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ред рдпрджрд┐ SSRS ASP.NET рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдПрдХ nuget рдерд╛ рддреЛ рдпрд╣ рдПрдХ рдФрд░ рдХрджрдо рд╣реЛрдЧрд╛ред рд░рд┐рдкреЛрд░реНрдЯ рд╕рдордп-рдирд┐рд░реНрдзрд╛рд░рдг рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ - рд╢рд╛рдпрдж рдПрдХ рдирдореВрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ SSRS API рдкрд░ рджрд┐рдП рдЧрдП рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдареАрдХ рд╣реЛрдЧрд╛ред

@Morgma
рдорд╛рдирд╛!
OIDC рдореИрдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣реА рдлрд┐рдЯ рд╣реЛрдЧрд╛ред
рднреВрдорд┐рдХрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдЕрдкрдиреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рднреВрдорд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рднреВрдорд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореИрдкрд┐рдВрдЧ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░ рд╕рдХреЗрдВред

рдЕрднреА рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдРрд╕рд╛ рдРрдк рд╣реИ рдЬреЛ OIDC рдХреЛ рдПрдХ рдХреЛрдгреАрдп 4/5 рдлреНрд░рдВрдЯ рдПрдВрдб рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╡реЗрдм рдлреЙрд░реНрдо рд░рд┐рдкреЛрд░реНрдЯ рдкреЗрдЬ рдХреЛ рдПрдХ iFrame рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬрд╝ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдореИрдВ рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░ рд╕рдХреВрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░рд┐рдкреЛрд░реНрдЯ рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ kluge рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдЖрджрд░реНрд╢ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рднреА рдПрдХ рдкреНрд░рдореБрдЦ рдореБрджреНрджрд╛ рд╣реИ рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рд╣рдордиреЗ рдЕрднреА рднреА рдЗрд╕ рдкрд░ Microsoft рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИред рдЗрд╕рдХреА рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╣рдореЗрдВ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЧреИрд░-Microsoft рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕рдордп рд░реЗрдЦрд╛ рд╣реЛрддреА рд╣реИ рддреЛ рд╣рдо рдПрдХ рд╕реВрдЪрд┐рдд рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдБ, рдореИрдВ рд╕реАрдзреЗ рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ReportServer / ReportExecution2005.asmx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдиреАрдЪреЗ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реВрдБред рдорд╣рд╛рди рддрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм IIS рдХреЛ рдЕрдЬреАрдм рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рддрд╣рдд рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдирд┐рд░рд╛рд╢рд╛ рд╣реБрдИ рд╣реИред

System.ServiceModel.Security.MessageSecurityException: The HTTP request is unauthorized with client authentication scheme 'Basic'. The authentication header received from the server was ''

рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд░ рдЧрд╛рдпрдм рд╣реИ, рд╣реЗрдбрд░ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП http рдЕрдиреБрд░реЛрдз рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ?

IIS рдХреЗ рддрд╣рдд рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рддрдХ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореЗрд░реА рд╡рд┐рдХрд╛рд╕ рдорд╢реАрди рдПрдХ рд╣реА рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рд╕реЗ рдмрд╛рдд рдХрд░ рд░рд╣реА рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдФрд░ IIs рдХреЗ рд╕рд╛рде рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рд╡рд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред рд╕реЛрдЪреЗрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд╣ рд░рд╣рд╛ рд╣реИ рд╕рд░реНрд╡рд░ рдХрд┐рд╕реА рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рд╕рдм рдХреБрдЫ рднреЗрдЬ рд░рд╣рд╛ рд╣реВрдВред

рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ IIS рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЗ рддрд╣рдд рдЪрд▓рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдбрдмрд▓ рд╣реЙрдк рд╕рдВрднрд╡рддрдГ рдареАрдХ рд╣реИред рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ IIS рд╕рд░реНрд╡рд░ рдкрд░ рдХреЗрд░реНрдмреЗрд░рд╕ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ рдФрд░ рднрд▓реЗ рд╣реА рдЖрдкрдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдиреЗ рдЖрдкрдХреА рд░рд┐рдкреЛрд░реНрдЯ рдкрд░ рдХрд╛рдо рди рдХрд░ рджрд┐рдпрд╛ рд╣реЛ рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдЕрдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓ рд░рд╣реА рд╣реИред

рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрддреНрддрд░: рдЖрдк рдХреЗрд░реНрдмрд░реЛрд╕ рд╕реЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ IIS рдРрдк рдкреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЦрд╛рддреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдбреЛрдореЗрди рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

https://blogs.msdn.microsoft.com/chiranth/2014/04/17/setting-up-kerberos-authentication-for-a-website-in-iis/

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╣реА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдлреЙрд▓реЛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред IIS рдкрд░ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЛрд░, рдпрд╣ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк IIS рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдХрд┐рд╕ рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдмрд╕ рдПрд╕рдПрдВрдбрдЬреА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдРрдкрдкреВрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╢рд╛рд╕рдХ рдмрдирд╛рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЬрд╛рдУ рдЖрдВрдХрдбрд╝рд╛ ... рдпрд╣ рдХреЛрдИ рднреА IIS рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдмреЗрдирд╛рдореА рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рдХреНрд╖рдо рд╣реИред рдХреЛрдИ рдЗрд╕реЗ рд╕рдордЭрд╛рдП? рдХреНрдпрд╛ рдХреЛрд░ рдкрд░ рдбрдмреНрд▓реНрдпреВрд╕реАрдПрдл рдХреЗ рд▓рд┐рдП рдПрдХ рджрд╛рдпрд┐рддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдХреНрдпрд╛ рджреЗрддрд╛ рд╣реИ? рдореИрдВрдиреЗ рдорд╛рдирд╛ ... рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рд▓реЗрдХрд░ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВред

@cgountanis рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░рд╢реНрди рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ?

@jtarquino рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ .net рдХреЛрд░ рдЖрдзрд╛рд░рд┐рдд рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрдЕрд░ рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдорд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ? рдореИрдВ рдХрдо рд╕реЗ рдХрдо рдЯрд╛рдЗрдорд▓рд╛рдЗрди рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрддрд╛рдм рд╣реВрдВред рдХреНрдпрд╛ рд╣рдо 6 рдорд╣реАрдиреЗ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ? 12 рдорд╣реАрдиреЗ? рд╣рдо рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реА рд╕рднреА рд╡рд░реНрддрдорд╛рди SSRS рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдХреЗ рдирд┐рд░реНрдгрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдкрд░ рдХреЛрдИ рд╕рдордпрд░реЗрдЦрд╛ рдирд╣реАрдВ рд╣реИред

@ExcaliburVT рдпрд╣ рд╣рдорд╛рд░реЗ рдмреИрдХрд▓реЙрдЧ рдореЗрдВ рд╣реИ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдордпрд░реЗрдЦрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореИрдВ рдЗрд╕ рд╕рдордп рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

@jtarquino рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдФрд░ рд╕рднреА рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ Microsoft рдХреЛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЧреНрд░рд╛рд╣рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рдбрд┐рд▓реАрд╡рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдо рдЧреНрд░рд╛рд╣рдХ рд╣реИрдВред

рдпрд╣ рд╡рд╣ рдХреНрд╖реЗрддреНрд░ рд╣реИ рдЬрд╣рд╛рдВ Microsoft рдХрд╛ рдкреНрд░рд╡рд╛рд╕ рдЗрддрдирд╛ рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рд╣рдо рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╕рд╣реА рдЙрддреНрддрд░ рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдХрдм рддрдХ рд╡рд╛рдкрд╕ рдЖрддреЗ рд░рд╣реЗрдВрдЧреЗ?

рдЗрд╕ рддрд░рд╣ рдХреА рдмрд╛рдд рдХрдИ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рд╣реЛ рд░рд╣реА рд╣реИ, рди рдХрд┐ рдХреЗрд╡рд▓ рдЗрд╕ рдПрдХ рдореЗрдВред рдореБрдЭреЗ рдЕрдкрдиреЗ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ SQL рд╕рд░реНрд╡рд░ рдФрд░ SSRS рдХреА рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рджреЗрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рдХреНрдпреЛрдВ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рд╣рдореЗрдВ рд╡реЗ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдорд┐рд▓реЗрдВ рдЬреЛ рд╣рдореЗрдВ рд╡реНрдпрд╡рд╕рд╛рдп рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣рд┐рдП?

@jququino рдореБрдЭреЗ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╕рдЪрдореБрдЪ рдУрд░реЗрдХрд▓ рдкрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдореЛрджрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 3 рдорд╣реАрдиреЗ рдХреА рд▓рдбрд╝рд╛рдИ рд▓рдбрд╝ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реЗ рдкреНрд░рдореБрдЦ рд╡рд┐рдХреНрд░рдп рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдореИрдВ .Net рдХреЛрд░ рдбреНрд░рд╛рдЗрд╡рд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдУрд░реЗрдХрд▓ рдХреЛ рдХреЛрд╕ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдШреЛрд╖рд┐рдд рд░рд┐рд▓реАрдЬ рдХреА рддрд╛рд░реАрдЦ рдереАред SSRS рдЖрдкрдХрд╛ рдЕрдкрдирд╛ рдЙрддреНрдкрд╛рдж рд╣реИ рдФрд░ рдЖрдк рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рддрд┐рдерд┐ рдХреЗ рдмрд┐рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреЛ рдкреАрдврд╝рд┐рдпреЛрдВ рдХреЗ рдкреАрдЫреЗ рд╣реИрдВред

рдирдИ VS2017 WCF рдХрдиреЗрдХреНрдЯрд░ рд╕реЗрд╡рд╛ (рдХреЛрд░ 2) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрдкрдХреЛ рдкреАрдбреАрдПрдл, рд╡рд░реНрдб, рдПрдХреНрд╕реЗрд▓, рд╕реАрдПрд╕рд╡реА рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ ... рдпрджрд┐ рдЖрдк рдЗрд╕ рджрд░реНрд╢рдХ NUGET рдкреИрдХреЗрдЬ рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рд╕реА рднреА рдорджрдж рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рд╣рд╛рдБ, рдЖрдкрдХреЛ SSRS рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ ReportExecution2005.asmx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЬреЛ рднреА рд╡реЗ рдмрдирд╛рдПрдВрдЧреЗред рд╣рдордиреЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рджрд░реНрд╢рдХ рдкрд╣рд▓реВ рдХреЛ рдбрдВрдк рдХрд░рдиреЗ рдФрд░ рд╕реАрдзреЗ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдХреЗрд╡рд▓ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛ AppPool рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдеред

рд╡реИрд╕реЗ рдореИрдВ рдПрдХ рд╡реЗрдм рдПрдкреАрдЖрдИ рд╕реЗ рдПрдХ рдкреАрдбреАрдПрдл рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдХрд┐рд╕реА рднреА wcf рдмрд┐рдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред
рд╕рд┐рд░реНрдл рд╕рд╛рдмреБрди / asmx рдХреЙрд▓ рдФрд░ http рдХреЙрд▓ред
рдЙрдиреНрд╣реЗрдВ рдХрд░рдиреЗ рдореЗрдВ рдореИрдВ рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ w / o рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред
рдореЗрд░рд╛ рдХреЛрдб asp.net 4.6 / рд╡реЗрдм рдПрдкреАрдЖрдИ 2 рд╣реИ
рдпрджрд┐ рдЖрдк рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдХрд░реВрдБ рддреЛ рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреЛрдб рдКрдкрд░ рдПрдХ рдЧреАрдердм рдкрд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ реирежрезрем рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЬреЛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЙрд╕рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреБрд░рд╛рдиреЗ ssrs рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

SSRS (RDLC рдбрд┐рдЬрд╛рдЗрдирд░) рдХреЗ рд╕рд╛рде рдХреЛрд░ 2 рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирдпрд╛?

@figuerres рдпрджрд┐ рдЖрдкрдиреЗ рд▓рд┐рдВрдХ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

@apondu
рдЕрдЧрд▓реЗ рд╣рдлреНрддреЗ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВрдЧреЗ, рддрдм рддрдХ рдСрдлрд┐рд╕ рдореЗрдВ рдирд╣реАрдВред рдЕрдм рддрдХ рдХрд┐рд╕реА рдиреЗ рдХреЛрдб рдирд╣реАрдВ рдорд╛рдВрдЧрд╛ред

рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ https://feedback.azure.com/forums/908035-sql-server/suggestions/33241936-develop-a-ssrs-reportviewer-for-asp-net-core рдкрд░ рд╡реЛрдЯ

рдореИрдВ рдПрдХ рдЗрдВрдЯреНрд░рд╛рдиреЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди Angular5 / .NetCore2 MVC5 (MS рд╕реЗ рд╡рд░реНрддрдорд╛рди RC рд╕реНрдЯреИрдХ) рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╣рдо SSRS 2012 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдордмреЗрдб рд░рд┐рдкреЛрд░реНрдЯ рд╕рджрд╕реНрдпрддрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдВрдбреЛрдЬрд╝ рдЦрд╛рддреЗ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдирд╣реАрдВ рд╣реИрдВред

@figuerres рд╢рд╛рдпрдж рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ?

рдЖрдк SSRS рдФрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкреВрд░реЗ рджрд┐рди рдкреАрдбреАрдПрдл рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд╣реИред

@cgountanis рдЗрд╕ рддрд░рд╣ рдХреА рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдкрдиреЗ рдореБрдЭреЗ рдпрд╣ рдмрддрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХреА рдХрд┐ рдЬрдм рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддреЛ рдореИрдВ рд╡рд░реНрдгрдирд╛рддреНрдордХ / рд╕рдЯреАрдХ рдирд╣реАрдВ рдерд╛ред рдореИрдВрдиреЗ рдЕрдкрдиреА рдореВрд▓ рдЯрд┐рдкреНрдкрдгреА рдХреЛ "рдЯрд╛рдЗрдордмреЗрдб рд░рд┐рдкреЛрд░реНрдЯ рд╕рджрд╕реНрдпрддрд╛рдПрдБ рдмрдирд╛рдиреЗ" рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рд╣реИ

рд╣рдореНрдо рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВрдиреЗ рдРрд╕рд╛ рдХреБрдЫ рдХрд┐рдпрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рдЕрдиреБрд╕реВрдЪреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕реАрдзреЗ рд░рд┐рдкреЛрд░реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рдерд╛ (рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдФрд░ рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рджрд╕реНрдпрддрд╛ рд╕реЗрд╡рд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ)ред

@ExcaliburVT рдореИрдВрдиреЗ SOAP API рдФрд░ рдПрдХ рдмрдбрд╝реЗ SP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрдм рддрдХ DB рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреА рдЬрд╛ рд╕рдХреЗ, рдФрд░ рд╕реАрдзреЗ DB рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдХрд░ рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рдЧрд┐рд░рд╛рд╡рдЯ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред

рдЯрд╛рдЗрдордмреЗрдб рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдЫ рдХрд░рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдЖрдкрдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

@figuerres рд╕рдордп рдЖрдзрд╛рд░рд┐рдд, рдЖрд╡рд░реНрддреА рдЕрдиреБрд╕реВрдЪреА рдкрд░ рдЕрд░реНрде рдЬреИрд╕реЗ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдмреБрдзрд╡рд╛рд░ рдХреЛ рд╕реБрдмрд╣ 8 рдмрдЬреЗред

рд╣рд╛рдБ, рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ рдХрд┐ SQL 2012 рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ред рдпрджрд┐ рдореБрдЭреЗ рд╕рд╣реА рдпрд╛рдж рд╣реИ рддреЛ рдЖрдкрдХреЛ рд╕реНрдХреАрдорд╛ рдпрд╛ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕рджрд╕реНрдпрддрд╛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рдореИрдВ рд╕рдХреНрд╖рдо рдерд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╡рд┐рддрд░рдг рд╕рдореВрд╣ рдХреЛ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдПред

рдареАрдХ рд╣реИ рддреЛ рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рдкреЛрд░реНрдЯрд▓ рдПрдХ рдпреЛрдЬрдирд╛рдмрджреНрдз рд╕реНрдХреИрдбреНрдпреВрд▓ рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдЙрд╕ рд╕рдордп рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реЗрдЬ рд╕рдХрддрд╛ рд╣реИред
рдЬрдм рдпрд╣ рдЪрд▓рддрд╛ рд╣реИ рддреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдХреЛ рднреА рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЖрдк рд╕рд┐рд░реНрдл рдкреЛрд░реНрдЯрд▓ рд╕реЗ рд╕рджрд╕реНрдпрддрд╛ рдмрдирд╛рддреЗ рд╣реИрдВред

рддреБрдо рднреА рд╕рд╛рдмреБрди рдПрдкреАрдЖрдИ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХреЗ рд╕рдЯреАрдХ рд╕реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВред

рд╕рд╛рдмреБрдирдкреАрдЖрдИ рд╕реЗ рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореБрдЭреЗ рдЕрдзрд┐рдХ рд╕рдВрджрд░реНрдн рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред

рдореИрдВ рдПрдХ webapp рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдБ рдЬреЛ SSRS рд╕реЛрдкрдПрдкреАрдЖрдИ рдФрд░ "ssrsReportWebAdmin" рдЬреИрд╕реЗ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЕрднреА "ssrsReportWebAdmin" рдореЗрдВ рд╕рднреА рд╕реБрд░рдХреНрд╖рд╛ рднреВрдорд┐рдХрд╛рдПрдБ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдмрдВрдзрдХ рднреВрдорд┐рдХрд╛ рд╡рд╣ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рдмрдирд╛рдиреЗ рдФрд░ рд╕реЛрдкрдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЬрдорд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдмрдПрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

CreateSubscriptionAsync рдХреЙрд▓ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдЕрдиреБрдорддрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "ssrsReportWebAdmin" рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рднреВрдорд┐рдХрд╛рдПрдБ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ ?? рджрд┐рд▓рдЪрд╕реНрдк ....

рдореИрдВрдиреЗ SSRS рдХреЛ рдЬреЛ рдкрдврд╝рд╛ рд╣реИ рд╡рд╣ рд╕реЗрдЯрдЕрдк рд╣реИ рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рд╡рд╣реА рд╡реНрдпрдХреНрддрд┐ рдорд╛рдирдХ (рдЖрд╡рд░реНрддреА, рд╕рдордп рдЖрдзрд╛рд░рд┐рдд) рд╕рджрд╕реНрдпрддрд╛ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕реНрд╡рдпрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИред Datadriven рд╕рджрд╕реНрдпрддрд╛рдПрдБ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдмрдВрдзрдХ рднреВрдорд┐рдХрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реЗрдЯрдЕрдк рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред

рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдмрдВрдзрдХ рджреЗрдЦреЗрдВ - рд╕рднреА рд╕рджрд╕реНрдпрддрд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ
https://technet.microsoft.com/en-us/library/ms159693 (v = sql.105) .aspx

рд╣реЗрдбрд░ рдХреЗ рддрд╣рдд рдкрд╣рд▓рд╛ рд╡рд╛рдХреНрдп рджреЗрдЦреЗрдВ "рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛рдПрдБ рджреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИрдВ ..."
https://docs.microsoft.com/en-us/sql/reporting-services/subscriptions/subscriptions-and-delivery-reporting-services#bkmk_standard_and_datadriven

@figuerres @ExcaliburVT
рдореИрдВ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдмрдВрдзрдХ SSRS рднреВрдорд┐рдХрд╛ рдХреЗ рд╕рд╛рде AD рдЦрд╛рддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдИрдореЗрд▓ рдФрд░ рдлрд╛рдЗрд▓рд╢реЗрдпрд░ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╕рджрд╕реНрдпрддрд╛рдПрдБ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдореИрдВ рдЬрд┐рди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рдЙрдирд╕реЗ рдореИрдВ рд╢реБрдХреНрд░рд╡рд╛рд░ рдХреЛ рдЦрд╛рд▓реА / рд╡рд┐рдХреГрдд рдорд┐рд▓рд╛рдирдбреЗрдЯрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдерд╛ред

рд▓рдЧрднрдЧ 2 рд╡рд░реНрд╖ред рдХреЛрд░ 2.0 рд░рд┐рд▓реАрдЬ рд╣реЛ рдЧрдИ рд╣реИред SSRS рдЯреАрдо, рдЬрд╛рдЧреЛред

@ codehippie1 рдЗрддрдирд╛ рдХрдареЛрд░

рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рдЧреБрдлрд╛ рдореЗрдВ рдПрдХ рдордЬрд╛рдХ рдерд╛ред рдХрд┐рд╕реА рднреА рдЕрдкрд░рд╛рдз рдХрд╛ рдорддрд▓рдм рдЬреЛ рднреА рд╣реЛред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЬреЛрдХреНрд╕, ReportViewerForMVC рдХреЗ рдкрд╛рд╕ 2014 рдХреА рд╢реБрд░реБрдЖрдд (https://www.nuget.org/packages/ReportViewerForMvc) рд╕реЗ рдлреИрд▓реЗ 72,799 рдбрд╛рдЙрдирд▓реЛрдб рд╣реИрдВред SSRS рдЯреАрдо рдиреЗ рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП ASP.NET MVC рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЕрдм ASP.NET рдХреЛрд░ рдХреЛ 2 рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдирджреЗрдЦрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЕрд╢рд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдХреА рдмрд╛рдд рдХрд░реЗрдВ рддреЛ 72,799 рдмрд╛рд░ рдмрд╣реБрдд рдХреБрдЫ рд╣реБрдЖ рд╣реИред

рдореИрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рд╕рдорд░реНрдерд┐рдд рдкреАрдбреАрдПрдл рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реВрдВрдЧрд╛, рдЗрди рджрд┐рдиреЛрдВ рджрд░реНрд╢рдХ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╣реИрдВ, рд╡реИрд╕рд╛ рд╣реА рд╣реЛред

@cgountanis : HTML рдЯреЗрдореНрдкрд▓реЗрдЯ (рд╕рд╣реА рдХрд╛рдЧрдЬрд╝ рдХрд╛ рдЖрдХрд╛рд░ - html-only, рдЖрдзрд╛рд░ 64 рдХреЗ рд░реВрдк рдореЗрдВ рдЫрд╡рд┐рдпрд╛рдВ, рдЗрдирд▓рд╛рдЗрди-рд╢реИрд▓реА) рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░реНрд╕ рдореЗрдВ рднрд░реЗрдВ, рдФрд░ utf8 рдХреЛ HTML-рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ред Wkhtmltopdf рдХреЗ StandardInput рдХреЛ рдкрд╛рда рднреЗрдЬреЗрдВ - wkhtmltopdf рдХреЗ StandardOutput рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдФрд░ рдлрд┐рд░, рдЖрдкрдХреЗ рдкрд╛рд╕ SSRS рд╕реЗ рдХреБрдЫ рдмреЗрд╣рддрд░ рд╣реИред

@cgountanis рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреГрд╖реНрда рд╢реАрд░реНрд╖ рд▓реЗрдЦреЛрдВ / рдкрд╛рдж рд▓реЗрдЦреЛрдВ рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд▓рд╛рдЗрди рд╡рд┐рд░рд╛рдо рдХреЗ рд╕рд╛рде рдкрд┐рдХреНрд╕реЗрд▓ рд╕рд╣реА рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред

рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рдЬреЛ рдПрд╕реНрдкрдиреЗрдЯ рдХреЛрд░ рдкрд░ рдПрдордПрд╕ рдЖрд░рдбреАрдПрд▓рд╕реА рд╕реНрдерд╛рдиреАрдп рд░рд┐рдкреЛрд░реНрдЯ рджрд░реНрд╢рдХ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдореЗрд░реЗ рджрд░реНрдж рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ; рдореИрдВрдиреЗ mozilla рд╕реЗ pdfJs рдФрд░ ViewerJs рдХреА рдорджрдж рд╕реЗ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ - MSJ RDLC рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрдЕрд░ рдХреЗ рд╕рд╛рде

рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА рдХрд┐ рдПрд╕реНрдкрдиреЗрдЯ рдХреЛрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдХреЛрдгреАрдп 2 рдпрд╛ рдЙрд╕рд╕реЗ рдКрдкрд░, рдЖрд░рдПрдХреНрд╕рдЬреЗ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдХреЗ рд╕рд╛рде) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдмрд╕ рджреЛрдиреЛрдВ рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред

PDF.js рдФрд░ view.html рдХреЛ рдХреЛрдгреАрдп 2 рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПред (рдПрдордПрд╕ рд▓реЛрдХрд▓ RDLC рд░рд┐рдкреЛрд░реНрдЯ рджрд░реНрд╢рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рдПрд╕реНрдкрдиреЗрдЯ рдХреЛрд░ / рд╡реЗрдмрдкреАрдЖрдИ / mvc рдмреИрдХрдПрдВрдб рд░рд┐рдкреЛрд░реНрдЯ рдЬрдирд░реЗрд╢рди рдХреЗ рд╕рд╛рде)

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ, рдЖрдк рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХреЛрдгреАрдп 2 рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рдорд╛рди рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ рд╕реАрдзреЗ SSRS рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

@cgountanis рдкреВрд░реНрд╡ рдкреЛрд╕реНрдЯ RDLC рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХреЛрдИ рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рд╣реИ, рд╡реЗрдм рд╕рд░реНрд╡рд░ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред

Microsoft рд╕реЗ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЕрдкрдбреЗрдЯ ...

https://blogs.msdn.microsoft.com/sqlrsteamblog/2018/04/02/microsoft-acquires-report-rendering-technology-from-forerunner-software/

рд╣рдореЗрдВ рдпрд╣ рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реБрдП рдкреНрд░рд╕рдиреНрдирддрд╛ рд╣реЛ рд░рд╣реА рд╣реИ рдХрд┐ рд╣рдордиреЗ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдЕрдкрдиреЗ рдирд┐рд╡реЗрд╢ рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Forerunner Software https://forerunnersw.com/ рд╕реЗ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓реА рд╣реИред рдЗрд╕ рддрдХрдиреАрдХ рдореЗрдВ рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛рдУрдВ (* .rdl) рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ, рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░рджрд╛рдпреА UI рд╡рд┐рдЬреЗрдЯреНрд╕, рдФрд░ рдЕрдиреНрдп рдРрдкреНрд╕ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯреНрд╕ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрд╕рдбреАрдХреЗ - рд╣рдорд╛рд░реЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкрд░ рдХреНрдпрд╛ рд╣рд╛рд╕рд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдПрдХ рд╡рд╕реАрдпрддрдирд╛рдорд╛ рд╣рдорд╛рд░рд╛ рдЦреБрд▓рд╛ рдордВрдЪред

рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХрдИ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдордиреЗ рдЖрдкрд╕реЗ рд╕реБрдиреА рд╣реИ:

  • рдЖрдк рдХреНрд▓рд╛рдЙрдб рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░-рдП-рдП-рд╕рд░реНрд╡рд┐рд╕ (рд╕рд╛рд╕) рдпрд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рдП-рдП-рд╕рд░реНрд╡рд┐рд╕ (рдкрд╛рдПрд╕) рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдПрд╕рдПрд╕рдЖрд░рдПрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдЪрд▓рд╛ рд╕рдХреЗред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рд╣рдорд╛рд░реЗ рд╕реНрдкреНрд░рд┐рдВрдЧ '18 рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯреНрд╕ https://aka.ms/businessappsreleasenotes рдореЗрдВ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛ , рд╣рдо рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдкрд╛рд╡рд░ рдмреАрдЖрд░ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛ рдореЗрдВ SSRS рд░рд┐рдкреЛрд░реНрдЯ рд▓рд╛рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╣ рд╕рдВрднрд╡ рдХрд░реЛред
  • рдЖрдк рдЕрдкрдиреЗ рдлрд╝реЛрди рдкрд░ SSRS рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╢рд╛рдпрдж рдкреЙрд╡рд░ рдмреАрдЖрдИ рдРрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рддрдХрдиреАрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рдиреЛрдВ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреЗ, рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рднреАрддрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╕рдВрднрд╡рддрдГ рд░рд┐рдкреЛрд░реНрдЯ рд╕рд╛рдордЧреНрд░реА рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░, рдЕрдзрд┐рдХ рдЙрддреНрддрд░рджрд╛рдпреА UI рджреЗрдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧреАред
  • рдЖрдкрдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрдЕрд░ рдирд┐рдпрдВрддреНрд░рдг рдкрд╕рдВрдж рд╣реИ ... рд▓реЗрдХрд┐рди рдпрд╣ ASP.NET рд╡реЗрдм рдлрд╝реЙрд░реНрдо рдирд┐рдпрдВрддреНрд░рдг рд╣реИред рдЖрдкрдХреЛ рдХреБрдЫ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЖрдк рдЕрдкрдиреЗ ASP.NET Core / MVC рдРрдк рдпрд╛ рдЧреИрд░-ASP.NET рдРрдк рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде, рд╣рдо рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб / рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдЖрдзрд╛рд░рд┐рдд рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрдЕрд░ рджреЗрдиреЗ рдХреА рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк рдХрд┐рд╕реА рднреА рдЖрдзреБрдирд┐рдХ рдРрдк рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпреЗ рдмрдбрд╝реЗ рдЙрдкрдХреНрд░рдо рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп-рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдиреЗ рд╡рд╛рд▓реЗ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдмрдиреЗ рд░рд╣реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╣рдореЗрд╢рд╛ рдЖрдкрдХреА рдкреНрд░рдЧрддрд┐ рдХреЛ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрд▓реНрджреА рдФрд░ рдЕрдХреНрд╕рд░ рд╕реБрдирддреЗ рд╣реИрдВред

рд╕рд╛рджрд░

рдкреЙрд▓


рдкреНрд░реЗрд╖рдХ: рдбреЗрдиреА рдлрд┐рдЧреЗрд░реВ [рд╕реВрдЪрдирд╛рдПрдВ@github.com]
рдкреНрд░реЗрд╖рд┐рдд: рд╢реБрдХреНрд░рд╡рд╛рд░, 23 рдорд╛рд░реНрдЪ 2018 2:19 рдкреВрд░реНрд╡рд╛рд╣реНрди
To: рдПрд╕реНрдкрдиреЗрдЯ / рд╣реЛрдо
Cc: рдкреЙрд▓ рд╢реЗрд▓реНрдбрди; рдЯрд┐рдкреНрдкрдгреА
рд╡рд┐рд╖рдп: Re: [aspnet / Home] Asp.Net рдХреЛрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ (SSRS) (# резрелреи [)

@cgountanis https://github.com/cgountanis рдкреВрд░реНрд╡ рдкреЛрд╕реНрдЯ RDLC рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХреЛрдИ рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рд╣реИ, рд╡реЗрдм рд╕рд░реНрд╡рд░ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub https://github.com/aspnet/Home/issues/1528#issuecomment-375408680 рдкрд░ https://github.com/notifications/unscribe-auth/AEHciZa6- рдкрд░ рдореНрдпреВрдЯ

рд╣реЗ рднрдЧрд╡рд╛рди, рдпрд╣ jQuery рдмрдХрд╡рд╛рд╕ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВред
Bloatwareред
рдФрд░ рди рдХреЗрд╡рд▓ рдмреНрд▓реЛрдЯрд╡реЗрдпрд░, рдмрд▓реНрдХрд┐ рдзреАрдореА рдЧрддрд┐ рд╕реЗ www.www ...

рдпрджрд┐ рдЖрдкрдХреЛ рдмреНрд▓реЛрдЯрд╡реЗрдпрд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ jQuery UI рдХрд╛ рдЕрднрд╛рд╡ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЬреЛ рд▓реЛрдЧ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЕрднреА рднреА рдЗрд╕реЗ рдбреЗрдЯрдкрд┐рдХрд░ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдордп рдкрд╛рдПрдВрдЧреЗред

рдУрд╣ рд░реБрдХреЛ, рдореИрдВрдиреЗ рдЕрднреА рджреЗрдЦрд╛

jQuery-ui-1.10.3.forerunner.js

рдореЗрд░рд╛ рдмреБрд░рд╛, рдХрднреА рдмреБрд░рд╛ рдирд╣реАрдВред
рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЖрджрд░реНрд╢ рдЙрджрд╛рд╣рд░рдг рд╣реИред
рд╣рдо рдмреЗрд╢рдХ рд╕рд┐рд░реНрдл jQuery-UI рдирд╣реАрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рднреА рд░реЛрд▓ рдХрд░рддреЗ рд╣реИрдВред

рднрдЧрд╡рд╛рди, рдпрд╣ рдмрдХрд╡рд╛рд╕ рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдлреЛрди рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ - рдмрд╕ рд╣рдореЗрдВ рдЬрд┐рд╕ рдЪреАрдЬрд╝ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ - рдареАрдХ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ CrApple iPads рдФрд░ рдЯрдЪрд╕реНрдХреНрд░реАрди рдХреЗ рдмрд╛рдж ...
рдФрд░ рдореИрдВ рдЕрднреА рднреА SSRS рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА-рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╛ рдСрд░реНрдЯ-рдХреБрдХреА-рд╢реЗрдпрд░рд┐рдВрдЧ (рдорд▓реНрдЯреА-рдЯреЗрдиреЗрдВрдЯ рд╡рд░реНрдЪреБрдЕрд▓ рдирд╛рдо рдЖрдзрд╛рд░рд┐рдд рд╣реЛрд╕реНрдЯрд┐рдВрдЧ - рд╕рд┐рдВрдЧрд▓ рдбреЛрдореЗрди рдорд▓реНрдЯреА-рд╡рд░реНрдЪреБрдЕрд▓-рдбрд╛рдпрд░реЗрдХреНрдЯреНрд░реА рдЖрдЗрдлреНрд░реЗрдо рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рдЬреЛ рдСрд╡рд░-рдХреБрдХреА рдХреЛ рдУрд╡рд░рд╡реЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдПрдХ рдФрд░ рдЖрднрд╛рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛)ред рдпрд╛ рдЕрдЧрд░ рдпрд╣ (SSRS 2016+ рдореЗрдВ) IE рдФрд░ рдХреНрд░реЛрдо рдкрд░ рддрд╛рд▓рд┐рдХрд╛-рд╕реАрдорд╛рдУрдВ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛, рдФрд░ рд╕рдВрднрд╡рддрдГ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ред
рдпрд╛ рд╕рд┐рд░реНрдл рдХреНрд╡реЗрд░реА-рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╕реНрдХреГрддрд┐ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреИрд░рд╛рдореАрдЯрд░-рд╢реАрд░реНрд╖рдХ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдмрд╕ рдЙрд╕ рддрд╛рд░реАрдЦ рдХреЛ рд╕реНрд╡рдпрдВ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдордПрд╕ рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА рд╕рд╣реА рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ ...

рдпрд╣ рдмреНрд▓реЛрдЯрд╡реЗрдпрд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ:

<link href = "~/Forerunner/Common/css/Forerunner-all.css" rel="stylesheet" />
<link href = "~/Forerunner/Lib/jQuery/css/jquery-ui-1.10.3.forerunner.css" rel="stylesheet" />
<link href = "~/Custom/Mobilizer.css" rel="stylesheet" />

<script type = "text/javascript" src="~/Forerunner/Lib/jQuery/js/jquery-1.11.0.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/Misc/js/jquery.hammer.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/Misc/js/json2.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/Misc/js/scroll-startstop.events.jquery.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/Misc/js/jquery.lazyload.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/jsTree/jstree.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/misc/js/jquery.FRmaphilight.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/Misc/js/moment.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Bundles/forerunner.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Bundles/forerunner-tools.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Bundles/forerunner-widgets.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/jQuery/js/jquery.form.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/jQuery/js/jquery.watermark.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/jQuery/js/jquery.validate1.11.1.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/jQuery/js/jquery-ui-1.10.3.forerunner.js"></script>
<link href = "~/Forerunner/Common/css/Forerunner-all.css" rel="stylesheet" />
<link href = "~/Forerunner/Lib/jQuery/css/jquery-ui-1.10.3.forerunner.css" rel="stylesheet" />
<link href = "~/Custom/Mobilizer.css" rel="stylesheet" />

<script type = "text/javascript" src="~/Forerunner/Lib/jQuery/js/jquery-1.11.0.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/Misc/js/jquery.hammer.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/Misc/js/json2.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/Misc/js/scroll-startstop.events.jquery.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/Misc/js/jquery.lazyload.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/jsTree/jstree.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/misc/js/jquery.FRmaphilight.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/Misc/js/moment.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Bundles/forerunner.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Bundles/forerunner-tools.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Bundles/forerunner-widgets.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/jQuery/js/jquery.form.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/jQuery/js/jquery.watermark.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/jQuery/js/jquery.validate1.11.1.min.js"></script>
<script type = "text/javascript" src="~/Forerunner/Lib/jQuery/js/jquery-ui-1.10.3.forerunner.js"></script>

рдХреИрд╕рд╛ рд░рд╣реЗрдЧрд╛:

<link href = "~/css/CustomerX/3kb_styles.sass" rel="stylesheet" />
<script charset="utf-8" type = "text/javascript" src="~/Scripts/4kb_scripts_with_async.ts.js" async="async"></script>

рдпрд╛ рдЗрд╕рд╕реЗ рднреА рдмреЗрд╣рддрд░

<script async="async"  charset="utf-8" src="js/loader.js?v=1"
data-js="[ 'js/HtmlToolsAsync', 'js/mainAsync' ]"
data-js-ie-edge="['js/polyfills/es6-promise-2.0.0.min', 'js/polyfills/classList']" 
data-css="['css/{@customer}/styles']" data-css-ie-edge="['css/fixes_for_crappy_browsers_only']"></script>

рдмреЛрдирд╕ рдЕрдВрдХ рдпрджрд┐ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдХреНрд╕-рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди / рд╕реБрдзрд╛рд░ рдкреНрд░рднрд╛рд╡реА рд╣реЛрддреЗ рд╣реИрдВред рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдмреЛрдирд╕ рдЕрдВрдХ рдЕрдЧрд░ рдпрд╣ рдПрдХ рд╕рдВрд╕реНрдХреГрддрд┐-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдпреВрдирд┐рдХреНрд╕-рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдбреЗрдЯрд╛рдЗрдо рдорд╛рди рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдФрд░ рджрд┐рдирд╛рдВрдХ> 2030 рдпрд╛ 9999 рдХреЗ рд▓рд┐рдП рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╛ UTF8 рд╡рд░реНрдгреЛрдВ рдкрд░ред рдЕрдм рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрджрд╛рдПрдВ-рдмрд╛рдПрдВ рднрд╛рд╖рд╛ рд╕рдорд░реНрдерди рдХреА рдмрд╛рдд рд╣реИ - рд╣рдо рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реАрдорд╛ рдХреЛ рдмрд╣реБрдд рджреВрд░ рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╡реЗ рдЙрд╕рд╕реЗ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдЕрд╕рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдпреВрд░реЛрдкреАрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдЕрдВрдЧреНрд░реЗрдЬреА, рдЬрд░реНрдорди, рдлреНрд░реЗрдВрдЪ рдФрд░ рдЗрддрд╛рд▓рд╡реА) рддреЛ рд╡реЗ рдкрд╣рд▓реЗ рд╣реА рдореЗрд░реА рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкрд╛рд░ рдХрд░ рдЬрд╛рдПрдВрдЧреЗред

рдкреНрд░рд┐рдп Microsoft, рд╢рд╛рдпрдж рдореИрдВ рдпрд╣ рднреА рдкрд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рд╕реА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд╕рднреА рдлрд╝реАрд▓реНрдбреНрд╕ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рд▓рд┐рдП, рдореИрдВ рдмрд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ-рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ - рдмрд┐рдирд╛ рдореЗрд░реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рднрд╛рд╖рд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ (рдпрд╛ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ - рдпрд╣ рдЖрдкрдХреА рдЕрдВрддрд┐рдо рдЙрдкрд▓рдмреНрдзрд┐ рд╣реИ - рдПрдХ рдЕрд╡рд┐рд╕реНрдорд░рдгреАрдп [рдмрд╣реБрдд рдирдХрд╛рд░рд╛рддреНрдордХ] рдЕрдиреБрднрд╡ рдЬреЛ рдореИрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ 8 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж)ред
рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ - рд╢рд╛рдпрдж рдХрднреА-рдХрднреА рдПрдХ рдЕрдВрдЧреНрд░реЗрдЬреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреА рдореМрдЬреВрдж рд╣реЛ рдЬреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реЛ рдЬреЛ рдЧреИрд░-рдЕрдВрдЧреНрд░реЗрдЬреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдЗрд╕рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореИрдВ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рднрд╛рд╖рд╛ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рди рдХрд┐ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдПрдЬреЗрдВрдЯ рднрд╛рд╖рд╛-рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХрдо рд╕реЗ рдХрдо рдЗрд╕ рд╕рдордп рд▓реЗ рд╕рдХреЗрдВред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рдмрдХрд╡рд╛рд╕ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдкрд╣рд▓реЗ рд╣реА рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рд╡реИрд╕реЗ, SSRS рдХреЗ рд╡рд░реНрддрдорд╛рди рдЕрд╡рддрд╛рд░ рдореЗрдВ рд╕рдВрд╕реНрдХреГрддрд┐ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

& in_language = IETF-language-tag рдХреЗ рд╕рд╛рде рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ

\ machinename \ Reporting Services \ ReportServer \ Pages \ ReportViewer.aspx


<script type="text/C#" runat="server">

protected override void InitializeCulture()
{
    string language = System.Web.HttpContext.Current.Request.QueryString["in_language"];

    if (string.IsNullOrEmpty(language))
        language = "";

    switch (language.ToLowerInvariant())
    {
        case "de":
            language = "de-CH";
            break;
        case "fr":
            language = "fr-CH";
            break;
        case "it":
            language = "it-CH";
            break;
        case "en":
            language = "en-US";
            break;
        default:
            language = "";
            break;
    }

    // System.Web.HttpContext.Current.Response.Write(language);
    if (!String.IsNullOrEmpty(language))
    {
        System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(language);
        System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(language);
    }

    base.InitializeCulture();
}
</script>

рдлрд┐рд░ http рдЕрдиреБрд░реЛрдз рдореЗрдВ рднрд╛рд╖рд╛ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, (SSRS рдореЗрдВ HTTP HTTP рдореЙрдбреНрдпреВрд▓)
(рдФрд░ P3P рдиреАрддрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдлреЙрд░реНрдо-рд▓реЙрдЧрд┐рди-рдкреЛрд╕реНрдЯ рддрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдбреЛрдореЗрди рдкрд░ iframe рдкрд░ рд╣реЛрддрд╛ рд╣реИ)ред

рдХреНрдпрд╛ рдЖрдк рдпрд╣ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреГрдкрдпрд╛ (DISPLAY) рднрд╛рд╖рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдкреЗрд╢рдХрд╢ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рдирд╣реАрдВ рддреЛрдбрд╝реЗрдВрдЧреЗ?
рдЖрдкрдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░ rs:ParameterLanguage рдХреЗрд╡рд▓ URL рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВред рдФрд░ рдпрд╣ рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ рдпрджрд┐ рдЖрдкрдиреЗ рдпреВрдирд┐рдХреНрд╕-рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк (рдпреВрдЯреАрд╕реА) рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд┐рд░реНрдл рдбреЗрдЯрд╛рдЗрдо рдкрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реАрд░реЛрдЧрд┐рди рд╣реЗрдбрд░ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рд╣реЗрдбрд░ рд╕реЗ рдЕрдиреБрдорддрд┐ (iframe ReportServer рд╕реЗ рдЕрд▓рдЧ рдбреЛрдореЗрди рдкрд░ рд╣реИ)ред рд╡реИрд╕реЗ, HTTP рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЕрдиреБрд░реЛрдз рднрд╛рд╖рд╛ рд╕реЗрдЯ рдХрд░рдирд╛ SSRS 2016 рдХреЗ рд╕рд╛рде рдЖрд╡рд╢реНрдпрдХ рднрд╛рд╖рд╛ рдореЗрдВ рдбреЗрдЯрдкрд┐рдХрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ - рдЕрдиреНрдпрдерд╛ рдЕрдЧрд░ рдпрд╣ рдПрди-рдпреВрдПрд╕ рдбреЗрдЯрдкрд┐рдХрд░ рд╣реИ рддреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдорд╣рд╛рди, рд╣реИ рдирд╛?

рдХреИрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: & rs: рднрд╛рд╖рд╛ = IETF / IANA рднрд╛рд╖рд╛ рдЯреИрдЧ?


namespace libRequestLanguageChanger
{


    public class RequestLanguageChanger : System.Web.IHttpModule
    {


        void System.Web.IHttpModule.Dispose()
        {
            // throw new NotImplementedException();
        }


        void System.Web.IHttpModule.Init(System.Web.HttpApplication context)
        {
            // https://stackoverflow.com/questions/441421/httpmodule-event-execution-order
            context.BeginRequest += new System.EventHandler(context_BeginRequest);
            context.EndRequest += new System.EventHandler(context_EndRequest);
        }


        void context_BeginRequest(object sender, System.EventArgs e)
        {
            System.Web.HttpApplication application = sender as System.Web.HttpApplication;
            System.Web.HttpContext context = application.Context;

            if (context.Request != null)
            {
                // string language = context.Request.Headers["Accept-Language"];
                string language = null;
                // string url = context.Request.RawUrl;
                // string referrer = null;


                if (context.Request.UrlReferrer != null)
                {
                    // referrer = context.Request.UrlReferrer.OriginalString;

                    string queryString = context.Request.UrlReferrer.Query;
                    System.Collections.Specialized.NameValueCollection queryStrings = System.Web.HttpUtility.ParseQueryString(queryString);
                    language = queryStrings["in_language"];
                }

                if (context.Request.QueryString["in_language"] != null)
                    language = context.Request.QueryString["in_language"];

                if (!string.IsNullOrEmpty(language))
                {
                    language = language.ToLowerInvariant();

                    switch (language)
                    {
                        case "de":
                            language = "de-CH";
                            break;
                        case "fr":
                            language = "fr-CH";
                            break;
                        case "it":
                            language = "it-CH";
                            break;
                        case "en":
                            language = "en-US";
                            break;
                        default:
                            language = "";
                            break;
                    }

                } // End if (!string.IsNullOrEmpty(language)) 

                // SQL.Log(url, referrer, language);


                // Simulate Browser-Language = language 
                if (!string.IsNullOrEmpty(language))
                {
                    // context.Request.Headers["Accept-Language"] = language;

                    System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo(language);
                    System.Threading.Thread.CurrentThread.CurrentCulture = culture;
                    System.Threading.Thread.CurrentThread.CurrentUICulture = culture;

                    for (int i = 0; i < context.Request.UserLanguages.Length; ++i)
                    {
                        // context.Request.UserLanguages[i] = "en-US";
                        context.Request.UserLanguages[i] = language;
                    }

                } // End if (!string.IsNullOrEmpty(language)) 

            } // End if (context.Request != null) 


        } // End Sub context_BeginRequest 



        // https://stackoverflow.com/questions/31870789/check-whether-browser-is-chrome-or-edge
        public class BrowserInfo
        {

            public System.Web.HttpBrowserCapabilities Browser { get; set; }
            public string Name { get; set; }
            public string Version { get; set; }
            public string Platform { get; set; }
            public bool IsMobileDevice { get; set; }
            public string MobileBrand { get; set; }
            public string MobileModel { get; set; }


            public BrowserInfo(System.Web.HttpRequest request)
        {
            if (request.Browser != null)
            {
                if (request.UserAgent.Contains("Edge")
                    && request.Browser.Browser != "Edge")
                {
                    this.Name = "Edge";
                }
                else
                {
                    this.Name = request.Browser.Browser;
                    this.Version = request.Browser.MajorVersion.ToString();
                }
                this.Browser = request.Browser;
                this.Platform = request.Browser.Platform;
                this.IsMobileDevice = request.Browser.IsMobileDevice;
                if (IsMobileDevice)
                {
                    this.Name = request.Browser.Browser;
                }
            }
        }


    }


    void context_EndRequest(object sender, System.EventArgs e)
    {
        if (System.Web.HttpContext.Current != null && System.Web.HttpContext.Current.Response != null)
        {
            System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;

            try
            {
                // response.Headers["P3P"] = "CP=\\\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\\\"":
                // response.Headers.Set("P3P", "CP=\\\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\\\"");
                // response.AddHeader("P3P", "CP=\\\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\\\"");
                response.AppendHeader("P3P", "CP=\\\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\\\"");

                // response.AppendHeader("X-Frame-Options", "DENY");
                // response.AppendHeader("X-Frame-Options", "SAMEORIGIN");
                // response.AppendHeader("X-Frame-Options", "AllowAll");

                if (System.Web.HttpContext.Current.Request.UrlReferrer != null)
                {
                    // "X-Frame-Options": "ALLOW-FROM " Not recognized in Chrome 
                    string host = System.Web.HttpContext.Current.Request.UrlReferrer.Scheme + System.Uri.SchemeDelimiter
                        + System.Web.HttpContext.Current.Request.UrlReferrer.Authority
                        ;

                    string selfAuth = System.Web.HttpContext.Current.Request.Url.Authority;
                    string refAuth = System.Web.HttpContext.Current.Request.UrlReferrer.Authority;

                    // SQL.Log(System.Web.HttpContext.Current.Request.RawUrl, System.Web.HttpContext.Current.Request.UrlReferrer.OriginalString, refAuth);

                    if (IsHostAllowed(refAuth))
                    {
                        BrowserInfo bi = new BrowserInfo(System.Web.HttpContext.Current.Request);

                        // bi.Name = Firefox
                        // bi.Name = InternetExplorer
                        // bi.Name = Chrome

                        // Chrome wants entire path... 
                        if (!System.StringComparer.OrdinalIgnoreCase.Equals(bi.Name, "Chrome"))
                            response.AppendHeader("X-Frame-Options", "ALLOW-FROM " + host);

                        // unsafe-eval: invalid JSON https://github.com/keen/keen-js/issues/394
                        // unsafe-inline: styles
                        // data: url(data:image/png:...)

                        // https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet
                        // https://www.ietf.org/rfc/rfc7034.txt
                        // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
                        // https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP

                        // https://stackoverflow.com/questions/10205192/x-frame-options-allow-from-multiple-domains
                        // https://content-security-policy.com/
                        // http://rehansaeed.com/content-security-policy-for-asp-net-mvc/

                        // This is for Chrome:
                        // response.AppendHeader("Content-Security-Policy", "default-src 'self' 'unsafe-inline' 'unsafe-eval' data: *.msecnd.net vortex.data.microsoft.com " + selfAuth + " " + refAuth);


                        System.Collections.Generic.List < string > ls = new System.Collections.Generic.List<string>();
                        ls.Add("default-src");
                        ls.Add("'self'");
                        ls.Add("'unsafe-inline'");
                        ls.Add("'unsafe-eval'");
                        ls.Add("data:");

                        // http://az416426.vo.msecnd.net/scripts/a/ai.0.js

                        // ls.Add("*.msecnd.net");
                        // ls.Add("vortex.data.microsoft.com");

                        ls.Add(selfAuth);
                        ls.Add(refAuth);

                        string contentSecurityPolicy = string.Join(" ", ls.ToArray());
                        response.AppendHeader("Content-Security-Policy", contentSecurityPolicy);
                    }
                    else
                    {
                        response.AppendHeader("X-Frame-Options", "SAMEORIGIN");
                    }

                }
                else
                    response.AppendHeader("X-Frame-Options", "SAMEORIGIN");
            }
            catch (System.Exception ex)
            {
                // WTF ? 
                System.Console.WriteLine(ex.Message); // Suppress warning
            }

        } // End if (System.Web.HttpContext.Current != null && System.Web.HttpContext.Current.Response != null)

    } // End Using context_EndRequest


        private static string[] s_allowedHosts = new string[]
    {
        "localhost:49533"
            , "localhost:52257"
            , "www.companyX.com"
            , "companyX.com"
            , "vmcompany1"
            , "vmcompany2"
            , "vmbank1"
            , "vmbank2"
    };


        public static bool IsHostAllowed(string host)
    {
        return Contains(s_allowedHosts, host);
    } // End Function IsHostAllowed 


        public static bool Contains(string[] allowed, string current)
    {
        for (int i = 0; i < allowed.Length; ++i)
        {
            if (System.StringComparer.OrdinalIgnoreCase.Equals(allowed[i], current))
                return true;
        } // Next i 

        return false;
    } // End Function Contains 


} // End Class RequestLanguageChanger 


} // End Namespcae libRequestLanguageChanger 

Microsoft рдХреГрдкрдпрд╛ рдЙрд╕ рдлреНрд░рдВрдЯ рд░рдирд░ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ!
рдореЙрдбрд░реНрди рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рд╡реЗрдм рдРрдкреНрд╕ j рдХреНрд╡реЗрд░реА рд╕реЗ es рдореЛрдбреНрдпреВрд▓ рдФрд░ рдРрд╕реЗ рджреВрд░ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред
рд╣рдореЗрдВ j рдХреНрд╡реЗрд░реА рдХреЛрдб рдХреЗ рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рдЧреНрд░рд╛рд╣рдХ рдХреЛ j рдХреНрд╡реЗрд░реА рдХреЗ рдвреЗрд░ рдХреЗ рдмрдЬрд╛рдп PDF рдпрд╛ рд╡рд░реНрддрдорд╛рди asp.net рдирд┐рдпрдВрддреНрд░рдг рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдПрдХ рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдВ рдЬреЛ рдХреЛрдгреАрдп 2-6 рдФрд░ рдиреЛрдб рдФрд░ рдЕрдиреНрдп рд╡реЗрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдЦреЗрд▓рддрд╛ рд╣реИред
SSRS рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рддреЗ рд░рд╣реЗрдВ, рдЗрд╕рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВред рдмрд╕ рдЕрджреНрдпрддрди рд╡реЗрдм рд╕реЗрд╡рд╛ рдПрдкреАрдЖрдИ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди?

рдареАрдХ рд╣реИ, рд╣рдо рдореВрд▓ рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдо рд╕рднреА рдХреА рдЬрд░реВрд░рдд рд╣реЛрдЧреАред
рд╣рдореЗрдВ рдЬрд┐рд╕ рдЪреАрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд╣ рдПрдХ REST / JSON-рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ
http: //localhost/ReportServer/ReportExecution2005.asmx
(рдпрджрд┐ рд╣рдо / рдХреЛрдИ рднреА url рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддреЛ рджреБрдЦ рдирд╣реАрдВ рд╣реЛрдЧрд╛)
рдПрдХ nuget рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ - рдПрдХ рдЬреЛ рд▓рд┐рдирдХреНрд╕ / рдореИрдХ рдкрд░ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдХреЗрд╡рд▓ рдЙрди рдЪреАрдЬрд╝реЛрдВ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬреЛ .NET рдХреЛрдб рдХреЛ .NET Core / NetStandard рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рд╡рд┐рдВрдбреЛрдЬрд╝ dlls рдХреЗ рд╕рднреА рдкрд┐рдирд╡реЛрдХ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рдлрд┐рд░, рд╡реЗрдм-рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ PAGED html рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реЗрдВ (рдЬреЛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрдореА рд╣реИ - рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ asp.net-рд╕реМрдВрдкрдиреЗрд╡рд╛рд▓рд╛-рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд╣реИ), рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб-рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред

рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЪрдпрди рд╣рдо рдЕрдкрдиреЗ рдЖрдк рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - XmlDocument рдХреЗ рд╕рд╛рде RDL рдХреЛ рдкрдврд╝рдирд╛ред
(рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╕реНрдкрд╖реНрдЯ, рд╡рд┐рдХрд▓реНрдк рд╕рдЦреНрдд рдмрдВрдж, рд╡рд┐рдХрд▓реНрдк VB- рдХреЛрдб рдХреЗ рд╕рд╛рде рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛)
рд╡рд░реНрддрдорд╛рди ASP.NET рдирд┐рдпрдВрддреНрд░рдг рдХреА рддрд░рд╣, рд╕рднреА ASP.NET-WebForms рд╕рд╛рдорд╛рди рдХреЗ рдмрд┐рдирд╛ред

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдПрдХ-рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛, рдХрдВрдкрдиреА рд╕реЗ рдХрдВрдкрдиреА, рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рджреВрд╕рд░реЗ рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрдЧреАред
рдХреБрдЫ jQuery рдХреА рддрд░рд╣ред рдХреБрдЫ рд▓рд╛рдЗрдХ рдПрдВрдЧреБрд▓рд░ред рдХреБрдЫ рд▓рд╛рдЗрдХ рд╡реАрдпреВред рдХреБрдЫ рд▓рд╛рдЗрдХ рд░рд┐рдПрдХреНрдЯред рдХреБрдЫ рдПрдирдкреАрдПрдо рдХреЗ рд╕рд╛рде NodeJS рдХреА рддрд░рд╣, рдХреБрдЫ рдмреЛрд╡рд░ рдХреА рддрд░рд╣, рдХреБрдЫ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддрд░рд╣, рдХреБрдЫ рдмрд╛рдмреЗрд▓ рдХреА рддрд░рд╣, рдХреБрдЫ рдлреНрд▓реЛ, рддреЛ рдХреБрдЫ рдбреЗрдЯ рдХреЗ рд▓рд┐рдП jQuery-UI рдХрд╛ рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЙрди рд╕рднреА рдЪреМрдЦрдЯреЛрдВ рд╕реЗ рдирдлрд░рдд рд╣реИ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ jquery-ui) рдПрдХ рдлрд▓рдлреВрд▓ рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдХреЗ рд╕рд╛рде, рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдХреНрд╖рдорддрд╛рдПрдВ, рдмреНрд▓реЛрдЯ, рдЧреИрд░-рдкреНрд░рддрд┐рд░реВрдкрддрд╛ рдФрд░ рдЬреЛ рдХреБрдЫ рднреА рд╕реАрдЦрдиреЗ рдХреА рдЕрд╡рд╕реНрдерд╛, рдЬреЛ рднреА рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдзреНрдпрд╛рди рджреЗрдВ: рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рддрд╛рддреНрдкрд░реНрдп рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реВрдВ), рдФрд░ рдПрдХ рдЯреВрдЯреЗ рд╣реБрдП рдкреИрдХреЗрдЬ-рдореИрдиреЗрдЬрд░ рдЬреИрд╕реЗ npm / bower, рдЬрд┐рд╕рдореЗрдВ рд╣рдореЗрд╢рд╛ рд╣рд░ рдмрд╛рд░ рдирдИ рдЦреБрд╢рд┐рдпрд╛рдБ рдкреИрджрд╛ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдкреНрд░рд┐рдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рд┐рд░реНрдл рд╡реЗрдирд┐рд▓рд╛рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ (рдИрд╕реАрдПрдордП-рдореЙрдбреНрдпреВрд▓реНрд╕ рдФрд░ рдПрд╕рд┐рдВрдХреНрд╕ рдХреЗ рд╕рд╛рде - рдмреЗрдмрд▓ рдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЯреНрд░рд╛рдВрд╕рдкреНрд▓реЗрдб - рдФрд░ рдЬреЛ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд░ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИред

рдЕрдм рдмреЗрд╢рдХ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЕрд╕рд╣рдордд рд╣реЛрдВрдЧреЗ - рдФрд░ рдЖрдкрдХреЛ рдЕрд╕рд╣рдордд рд╣реЛрдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрд╕рд╣рдордд рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реИрдВред рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - jquery-ui рдХреЗ рд╕рд╛рде рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЗрдореИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рддреЛ рдореБрдЭреЗ рдЙрд╕ рд╕рдбрд╝рдХ рдкрд░ рдордЬрдмреВрд░ рди рдХрд░реЗрдВред рдореБрдЭреЗ jquery / рдХреЛрдгреАрдп / vue / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ / bower / npm рдпрд╛ рдЙрд╕ рдмреНрд▓реЛрдЯ рдФрд░ рдЕрд╕рдВрдмрджреНрдзрддрд╛ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ / рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред

рдЕрдм, рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдпрджрд┐ рдЖрдк рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреЛ рдХреЛрдИ рднреА рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕ рд╕реЗрд╡рд░ рдореЗрдВ (рдЬреИрд╕реЗ рдХрд┐ рдЖрд░рдбреАрдПрд▓рд╕реА рдХреЗ рд╡рд┐рдкрд░реАрдд) рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡рд░реНрддрдорд╛рди рд░рд┐рдкреЛрд░реНрдЯрдХрд░реНрддрд╛-рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдмрдХреБрдЫ рд╣реВрдВред ред рдмрд╕ рдЕрдЧрд░ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ "рдирд┐рдпрдВрддреНрд░рдг" рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдХрд░реЗрдВред рдФрд░ ECMA рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЛрдб рдЬреИрд╕реА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдЬреЛ рд▓реЛрдЧ рдиреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡реЗ рдиреЛрдб / npm рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ, рдФрд░ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИред

рдПрдХ рд╕рд┐рдбреЗрдиреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ, рдпрджрд┐ REST / JSON- рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдбреЗрдЯрд╛ рдХреЛ рдЬреЛрдВрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрд╡рд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рддреЛ рд░реЗрдВрдбрд░ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддрд░рд╣, рд╣рдореЗрдВ RDL рдлрд╝рд╛рдЗрд▓ рдкрдврд╝рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдВрдпреБрдХреНрдд рд░рд╛рд╖реНрдЯреНрд░ рдЬрдЯрд┐рд▓ рдЬреЗрдПрд╕ рд╣реЛрдЧрд╛ред рдкреБрд╕реНрддрдХрд╛рд▓рдпред рд╡реАрдмреА-рдХреЛрдб рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдЕрдиреБрдордд рд╣реИ, рд╡реИрд╕реЗ рднреА рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдкрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛ред

рдпрд╛ рдПрдХ рдФрд░ рд╡рд┐рдЪрд╛рд░ рдкрд░, рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╕реЗрд╡рд╛ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ JSON рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ-рдорд╛рдиреЛрдВ рдХреЛ рднреА рдкрдврд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рддрдм рд╣рдо рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП SQL рдбреЗрдЯрд╛ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдЗрдХрд╛рдИ-рдкрд░реАрдХреНрд╖рдг рднреА рдХрд░ рд╕рдХрддреЗ рдереЗ!
(рдпреВрдирд┐рдЯ-рдкрд░реАрдХреНрд╖рдг рд░рд┐рдкреЛрд░реНрдЯ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрд╕рдВрднрд╡ рд╣реИ)

рд╕реНрд╡рд░реВрдкрдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рддрдм рдЯреНрд░рд┐рдХ (SASS рдкреНрд▓реАрдЬ) рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдЧреАред рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд / рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧ-рд╕рд┐рд╕реНрдЯрдо рдЙрд╕ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред ┬и

рд▓реЗрдХрд┐рди рдореВрд▓ рд░реВрдк рд╕реЗ, рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрд╣реБ-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд░рд┐рдкреЛрд░реНрдЯ-рд░реЗрдВрдбрд░рд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдЖрдЬ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдореМрдЬреВрджрд╛ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдЙрдкрд▓рдмреНрдз рдереЗ, рддреЛ рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдпрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдп рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ Microsoft рдХреЛ рдПрдХ рдкреИрд╕рд╛ рднреА рдЦрд░реНрдЪ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред

рдХреНрдпрд╛ Alanjuden MvcReportViewer SSRS 2017 рдФрд░ рдХреЛрд░ 2 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдореИрдВ SSRS 2017 рдФрд░ рдХреЛрд░ 2 рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ

рдирд╣реАрдВ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рд┐рд░рджрд░реНрдж рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВред рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рд╕реАрдзреЗ рд░рд┐рдкреЛрд░реНрдЯреЗрдХреНрд╕рдХреНрдпреВрдЯрд┐рд╢рди 200 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреАрдбреАрдПрдл рдХреЛ рд╕реАрдзреЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рд╣реИ, рдЗрдореНрд╣реЛред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдлреЛрди рдФрд░ рдЯреИрдмрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкреБрд░рд╛рдиреЗ рджрд░реНрд╢рдХ рдХреЛ рдПрдХ рдЙрддреНрддрд░рджрд╛рдпреА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдПрдХ рджрд░реНрдж рд╣реИред

@Menbisht , рдореБрдЭреЗ рдЗрд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреБрд▓ рд╕реЗ рд╕реНрд░реЛрдд рд╕реЗ рдмрдирд╛рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕реЗ рдХреЛрд░ 2 рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЕрднреА рддрдХ 2017 рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред

рдореИрдВ SSRS 2017 рдФрд░ рдХреЛрд░ 2 рдХреЗ рд╕рд╛рде SQL Server 2017 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдЕрдЧрд░ рдореИрдВ alanjuden.MvcReportViewer.NetCore рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рддреЛ рдХреНрдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ

@Mahbbisht , рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдереЛрдбрд╝реА рджреЗрд░ рдореЗрдВ рдЦрд╛рди рдкрд░ рдмрд╣реБрдд рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд╣реБрдЖ ... рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдк рдЕрднреА рднреА рдПрдХ рд╕рдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рд╣рдореЗрд╢рд╛ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛ рдЖрдкреА рдХреЛ рд╣реБрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдЬреЛ рдХрд┐ SSRS рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрдк рдЬреЛ рдЪрд╛рд╣реЗрдВ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдбрд╛рд▓ рджреЗрдВред

@ рдореЗрдирдмрд┐рд╢реНрдЯ : рдпрд╣рд╛рдВ рдПрдХ .NET рдХреЛрд░ рдирдЧреЗрдЯ рдкреИрдХреЗрдЬ рд╣реИ:
https://www.nuget.org/packages/AspNetCore.ReportViewer/
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреЛрдИ рд╕реНрд░реЛрдд рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдпрд╣ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдпрд╣рд╛рдБ (рдпрд╣ рд╕рдВрдХрд▓рди) рд╡рд┐рдШрдЯрд┐рдд рдХрд░

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ .NET рдХреЛрд░ рдХреЗ рд▓рд┐рдП ReportExecution2005 рдФрд░ ReportService2010-WSDL рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВред
рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рджрд░реНрд╢рдХ рдХреЛ рд▓рд┐рдЦрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрд╕рдПрд╕рдЖрд░рдПрд╕ рдХреЗ рд╕рд╛рде рдПрд╕рдХреНрдпреВрдПрд▓-рд╕рд░реНрд╡рд░ рдХреЗ рдЪрд▓ рд░рд╣реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдПрдХреНрд╕реЗрд╕ рд╣реИред
рдЕрдЧрд░ рдореБрдЭреЗ рд╕рд╣реА рдпрд╛рдж рд╣реИ, рддреЛ рдЖрдкрдХреЛ html рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕рдЗрдирдлреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ рдЖрдкрдХреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ - рдЬреЛ рдХрд┐ рдореИрдВ (рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ) рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@alanjuden : рдЖрдкрдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ SQL-Server рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ ReportingServices рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЖрдк рдмрд╕ рдПрдХ iframe / ReportServer рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдереЛрдбрд╝рд╛ рдХрд╕реНрдЯрдо-рдкреНрд░рдорд╛рдгреАрдХрд░рдг + W3C- рд╣реИрдбрд░ рдФрд░ рднрд╛рд╖рд╛-рд╕реНрдерд╛рдиреАрдп DLL рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХрд╛рдо рдХреА рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

рдЙрд╕ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐
рдП) рдПрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдПрд╕рдПрд╕рдЖрд░рдПрд╕ рдХрд╛ рдПрдХ рд╣реА рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рд╕рднреА рд╕рдВрдЪрдпреА-рдЕрдкрдбреЗрдЯ / рд╕рд░реНрд╡рд┐рд╕рдкреИрдХ рдХреЗ рд╕рд╛рде - рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрд╕рдПрд╕рдЖрд░рдПрд╕ -2008 рдЖрд░ рд╕реЗ рд▓реЗрдХрд░ 2016 рддрдХ),
рдФрд░ рдмреА) рдХрд┐ SSRS- рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдореЗрдВ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИред рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдмреЗрдХрд╛рд░ рд╣реИ рдХрд┐ рдХреЛрдИ рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрд╡рд░ рдирд┐рдпрдВрддреНрд░рдг рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЧреИрд░-рд╡рд┐рдВрдбреЛрдЬрд╝ рдкреАрд╕реА (рд▓рд┐рдирдХреНрд╕, рдореИрдХ) рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд░реНрдЯ рдпрд╛ рдЬреИрд╕реНрдкрд░ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдХреЗ рд╕рд╛рде .NET рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ - рдЬреЛ рдХрд┐ xcopy-рддреИрдирд╛рддреА рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ - рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ 2-3 рд░рд┐рдкреЛрд░реНрдЯ рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ рдУрд╡рд░рд╣реЗрдб, рдФрд░ рдкреВрд░реЗ рдЬрд╛рд╡рд╛ рдЬреЗрд╡реАрдПрдо рдФрд░ рдмрд░реНрдЯ / рдЬреИрд╕реНрдкрд░ рдмреНрд▓реЛрдЯрд╡реЗрдпрд░, рдЬрд┐рд╕рдореЗрдВ рдЯреЙрдордХреИрдЯ рдФрд░ / рдпрд╛ рдРрд╕реА рдЕрдиреНрдп рдмрдХрд╡рд╛рд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдФрд░ C) рдХрд┐ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛ рдПрдХреАрдХреГрдд рд╡рд┐рдВрдбреЛрдЬрд╝ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рд╡рд┐рдВрдбреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрдВрдЯреНрд░рд╛рдиреЗрдЯ рдХреЗ рдмрд╛рд╣рд░ рдХрд╕реНрдЯрдо-рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ-рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рд╕рдВрд╢реЛрдзрди-рдПрдХреНрд╕реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЗ рд╕рдВрд╢реЛрдзрди рдЕрдиреНрдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рддреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕рдордЭрджрд╛рд░-рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдПрдХ рдирдпрд╛ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ SSRS / SQL- рд╕рд░реНрд╡рд░ (рдЬрд┐рд╕рдореЗрдВ рдкреИрд╕рд╛ рдЦрд░реНрдЪ рд╣реЛрддрд╛ рд╣реИ)ред
рдпрд╣ рднреА рдбреА) рдХрд┐ ReportingService рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, ViewViewer.aspx, C рджреЗрдЦреЗрдВ)
рдФрд░ рдпрд╣ рднреА рдИ) рдХрд┐ SSRS <2016 рд░реЗрдВрдбрд░реНрд╕ quirks-html рдХрд╛ рдХреЛрдИ рднреА рд╕рдВрд╕реНрдХрд░рдг (рдФрд░ рдЬрдмрдХрд┐ 2016+ рдмреЗрд╣рддрд░ рд╣реИ, рдпрд╣ рдЙрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХрджрдо рд╕рд╣реА рд╣реИ, btw)
рд╣рд╛рд▓рд╛рдБрдХрд┐, 2008 рд╕реЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдЕрднреА рднреА 2018 рдХреЗ рдЖрд╕-рдкрд╛рд╕ рд╣реИрдВ, 2016 рдХреЗ рдиреАрдЪреЗ рдХреБрдЫ рднреА рд╣реЛрдиреЗ рдореЗрдВ 5 рд╕реЗ 10 рд╕рд╛рд▓ рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕ рд╕рдордп рддрдХ, SSRS 2016 рд╡реИрд╕реЗ рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреБрд░рд╛рдирд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ Microsoft рдЕрднреА рднреА рдЖрд╕рдкрд╛рд╕ рд╣реИ, рддреЛ рд╡рд╣ рд╣реИред

рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдбреЙрдХрдЯрд░ - рд╕реМрднрд╛рдЧреНрдп рд╕реЗред рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдмрдХрд╡рд╛рд╕ рд╣реИред

рдФрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдереЛрдбрд╝рд╛ рдХрд╕реНрдЯрдо-рдкреНрд░рдорд╛рдгреАрдХрд░рдг + W3C- рд╣реЗрдбрд░ рдФрд░ рднрд╛рд╖рд╛-рд╕реНрдерд╛рдиреАрдп DLL рдЬреЛрдбрд╝реЗрдВред

@ststeiger рдореБрдЦреНрдп рд╕рд╛рдЗрдЯ рдФрд░ W3C рд╣реЗрдбрд░ рд╕реЗ iframe рдСрдЯреЗрдВрдЯрд┐рдлрд┐рдХреЗрд╢рди рдореЗрдВ SSRS рджрд░реНрд╢рдХ

@adopilot : рдпрд╣рд╛рдБ рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рддрд░реАрдХрд╛ рд╣реИ:

SSRS рдореЗрдВ рдХрд╕реНрдЯрдо рдЖрдбреЗрдВрдЯрд┐рдХреЗрд╢рди рдЬреЛрдбрд╝реЗрдВ

https://github.com/Microsoft/Reporting-Services/tree/master/CustomSecuritySample

(рдЖрдкрдХреЛ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рдкреНрд░рддрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗред
рдЖрдк SSRS рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдкреНрд░рдкрддреНрд░-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ!
рдЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рдХрд╛рд░ рджреЗрдВред
)

SSRS рдореЗрдВ рдПрдХ

рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ReportServer рдХреЗ рд▓реЙрдЧрдСрди рдкреГрд╖реНрда рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ, рдФрд░ рд▓реЙрдЧрд┐рди_cookie рд╕реЗрдЯ рдХрд░реЗрдВ, рдлрд┐рд░ рдЙрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

Page_Load рдореЗрдВ рдХрдХреНрд╖рд╛ рдореЗрдВ рдХреЛрдб FormsAuthentication_RS2012ред рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдлреЙрд░реНрдо FormAuthentication_RS2012

рдбреЗрдЯрд╛ рдкреАрдЬреАрдкреА / рдЖрд░рдПрд╕рдП-рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдПрдХ рдпреВрдирд┐рдХреНрд╕-рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЗ рд╕рд╛рде рдкреЛрд╕реНрдЯ рдХрд░реЗрдВ (рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рджреЛрдмрд╛рд░рд╛ рдирд╣реАрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рдЖрдкрдХреЗ рдкреНрд░рдкрддреНрд░реЛрдВ рдореЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдкреГрд╖реНрда_ рд▓реЛрдб рдореЗрдВ рдлреЙрд░реНрдо-рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди_рдЖрд░рдПрд╕ реирежреи рдореЗрдВ рдкреЛрд╕реНрдЯ-рдбреЗрдЯрд╛ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдВред

(рдЖрдк рдХреЛ FormAAententication_RS2012 рдХреЛрдб рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдирд┐рдЬреА рдХреБрдВрдЬреА рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╣рд╛рд░реНрдб-рдХреЛрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВ)


<%@ Page Language="C#" AutoEventWireup="true" Inherits="FormsAuthentication_RS2012.LogOn, FormsAuthentication_RS2012" %>

<!DOCTYPE html PUBliC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" /> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>SSRS Login</title>

    <style type="text/css" media="all">

        html, body
        {
            width: 100%;
            height: 100%;
            margin: 0px;
            padding: 0px;
            overflow: auto;
        }


        .divLayout 
        {
            float: left;
            height: 100%;
            background-color: #d4d4d4;
        }


        .spnTitle 
        {
            color: #0060a6;
            font-size: 45px;
            margin: 0;
            font-weight: normal;
            padding-top: 10%;
        }


        .spnLogin 
        {
            font-family: '?Segoe', 'Segoe UI', Segoe, Arial, sans-serif;
            font-size: 26px;
            vertical-align: middle;
            padding-left: 10px;
        }


        .btnLogin 
        {
            border: none;
            width: 204px;
            height: 64px;
            background-color: #d4d4d4;
            vertical-align: middle;
            text-align: center;
            color: #525252;
        }


        .btnLogin:hover
        {
            color: #FFFFFF;   
        }


        .btnLogin:hover .spnLoginSymbol 
        {
            /* http://stackoverflow.com/questions/7217244/style-child-element-when-hover-on-parent */
            background-image: url('<%=FormsAuthentication_RS2012.LogonHelper.GetPageName() %>?image=whiteForward_37x36.png');
        }


        .spnLoginSymbol
        {
            display: inline-block;
            width: 37px;
            height: 36px;
            background-image: url('<%=FormsAuthentication_RS2012.LogonHelper.GetPageName() %>?image=82Forward_37x36.png');
            background-repeat: no-repeat;
            background-size: 100% auto;
            vertical-align: middle;

            color: #525252;
        }


        .spnLoginSymbol:hover
        {
            background-image: url('whiteForward_37x36.png');
        }


        .lblCaption 
        {
            font-family: 'тШ║Segoe', "Segoe UI", Segoe, Arial, sans-serif;
            font-size: .9em;
            display: block;
        }


        input[type=text]
        {
            border: 2px solid rgb(187, 187, 187);
            <asp:Literal Id="litUserNameStyle" runat="server" />
        }


        input[type=password] 
        {
            border: 2px solid rgb(187, 187, 187);
            <asp:Literal Id="litPWStyle" runat="server" />
        }


        input[type=text]:hover, input[type=password]:hover 
        {
            border: 2px solid rgb(237, 206, 0);
        }


        .CorLink
        {
            color: #BF0A1E; 
        }


        .CorLink:hover
        {
            color: rgb(103, 12, 12);
        }

    </style>

</head>
<body>

    <div style="position: absolute; top: 0px; width: 100%; height: 1.5cm; line-height: 1.5cm; vertical-align: middle; text-transform: uppercase; font-weight: bold; background-color: #000000; color: #FFFFFF; text-align: center; font-size: 13px; font-family: 'тШ║Segoe', 'Segoe UI', Segoe, Arial, sans-serif; ">
        <asp:Literal Id="litAuthentication" Text="Forms-Authentication" runat="server" />
    </div>


    <div class="divLayout" style="background-color: #0060A6; width: 30%; text-align: center;">
        <img src="<%=FormsAuthentication_RS2012.LogonHelper.GetPageName() %>?image=mydb3.png" style="margin-top: 40%; margin-left: -50px;" alt="logo" />

        <!-- 

        <img src="accountsicon.png" style="margin-top: 30%;" alt="logo" />
        <img src="mydb3.png" style="margin-top: 30%;" alt="logo" />
        <img src="reportsicon.png" style="margin-top: 30%; width: 20%;" alt="logo" />

        <img src="hap-logo-128.png" style="margin-top: 30%;" alt="logo" />
        -->
    </div>

    <div class="divLayout" style="background-color: #F3F3F3; width: 70%;">





        <div class="greenBorder" style="display: table; width: 100%; height: 100%; #position: relative; overflow: hidden;">

            <div style=" #position: absolute; #top: 50%;display: table-cell; vertical-align: middle;">
                <div style=" #position: relative; #top: -50%">


                    <div style="display: table; margin-right: auto; margin-left: auto;padding-left: 1cm; padding-right: 1cm;">
                        <!--
                        <b>TEST environment</b>
                        -->

                        <span class="spnTitle">
                            SQL Server Reporting Services 2012
                        </span>

                        <div style="display: block; height: 30px;"></div>

                          <form id="form1" target="_self" method="post" runat="server">

                            <div>
                                <label for="txtUserName" class="lblCaption"><asp:Literal Id="litlblUserName" runat="server" />:</label>
                                <input id="txtUserName" name="txtUserName" type="text" style="width: 300px;" />
                            </div>


                            <div>
                                <label for="txtPassword" class="lblCaption"><asp:Literal Id="litlblPassword" runat="server" />: </label>
                                <input id="txtPassword" name="txtPassword" type="password" style="width:300px;" />
                            </div>

                            <div style="display: block; height: 30px; clear: both;"></div>


                            <button type="submit" class="btnLogin" style="">
                                <!--
                                <img src="82Forward_37x36.png" alt="arrow" style="vertical-align: middle; margin-top: 0px;" />
                                -->
                                <span class="spnLoginSymbol"></span>
                                <span class="spnLogin">Login</span>
                            </button>

                        </form>

                    </div>

                </div>
            </div>
        </div>



    </div>
    <!-- End divLayout -->


    <div style="position: absolute; bottom: 0px; width: 100%; height: 1.5cm; line-height: 1.5cm; vertical-align: middle; background-color: #000000; color: #FFFFFF; text-align: center; font-family: 'тШ║Segoe', "Segoe UI", Segoe, Arial, sans-serif; font-size: 13px;">
        Copyright &copy; 2013 

        <a href="http://www.cor-management.ch" target="_blank" class="CorLink" onclick="$('html, body').animate({ scrollTop: 0 }); return false;">
            COR Managementsysteme GmbH
        </a>

    </div>

</body>
</html>

</body>
</html>

ReportViewer.aspx рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ


<script type="text/C#" runat="server">

    protected override void InitializeCulture()
    {
        string sprache = System.Web.HttpContext.Current.Request.QueryString["in_sprache"];

        if(string.IsNullOrEmpty(sprache))
            sprache = "";

        switch(sprache.ToLowerInvariant())
        {
            case "de":
                sprache = "de-CH";
                break;
            case "fr":
                sprache = "fr-CH";
                break;
            case "it":
                sprache = "it-CH";
                break;
            case "en":
                sprache = "en-US";
                break;
            default:
                sprache = "";
                break;
        }

        // System.Web.HttpContext.Current.Response.Write(sprache);
        if(!String.IsNullOrEmpty(sprache))
        {
            System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(sprache);
            System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(sprache);
        }

        base.InitializeCulture();
    }

</script>

рдкреИрд░рд╛рдореАрдЯрд░-рдЕрдиреБрд╡рд╛рдж рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ reportviewer.aspx рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
(
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЬрд░реНрдорди / рдлреНрд░реЗрдВрдЪ / рдЗрддрд╛рд▓рд╡реА / рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ
)
рдЬрд░реНрдорди рдкрд░ рд╡рд┐рднрд╛рдЬрд┐рдд / рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ (рдЖрдк рдЕрдВрдЧреНрд░реЗрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ)
рд░рд┐рдкреЛрд░реНрдЯ-url рдореЗрдВ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ in_language (in_sprache) рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд╕рдордЭ рдЧрдП рд╣реИрдВ, рддреЛ рдЖрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВред


function initLanguage()
{
    var language = null;
    var StyleSheetSet = null;
    var BrowserLanguage = <%= System.Web.HttpContext.Current.Request.UserLanguages != null ? "\"" + System.Convert.ToString(System.Web.HttpContext.Current.Request.UserLanguages[0]) + "\"" : "null" %>;

    if(BrowserLanguage == null)
        BrowserLanguage = window.navigator.userLanguage || window.navigator.language;

    if(BrowserLanguage != null)
        BrowserLanguage = BrowserLanguage.substr(0,2).toLowerCase();



    var dictParameters = getUrlVars(this.location.href);

    if (dictParameters != null && dictParameters.contains("rc:Stylesheet"))
        StyleSheetSet = true;

    if (dictParameters != null && dictParameters.contains("in_sprache"))
        language = dictParameters["in_sprache"];

    if(language == null)
        language = BrowserLanguage;

    if(language == null)
        language = "de";

    language = language.toLowerCase();

    return language;
} // End function initLanguage


function TranslateParameterPrompts(iLanguageIndex)
{
    var eles = document.getElementsByTagName("table");
    var strParamTableId = "ParametersGridReportViewerControl";
    var tblParameters = null;
    var ParamLabels = null;


    for(var j = 0; j < eles.length; ++j)
    {
        // console.log(eles[j]);

        if(eles[j] != null && eles[j].id != null)
        {
            if(eles[j].id.slice(0, strParamTableId.length) == strParamTableId) // if startswith str
            {
                // console.log(eles[j].id);
                tblParameters = eles[j];
                break;
            }
            // else console.log(eles[j].id);
        } // End if(eles[j] != null && eles[j].id != null)

    } // Next j


    if(tblParameters != null)
        ParamLabels = tblParameters.getElementsByTagName("span");

    // var ParamLabels = document.querySelectorAll("table[id^='ParametersGridReportViewerControl'] span");
    if(ParamLabels != null)
    {
        for(var i = 0; i < ParamLabels.length; ++i)
        {
            var strText = ParamLabels[i].innerHTML;

            if (strText != null && strText.indexOf('/') != -1 && strText.indexOf('<input') == -1 ) 
            {
                strText = strText.split('/');
                if (iLanguageIndex < strText.length)
                    strText = strText[iLanguageIndex];
                else 
                { 
                    if(strText.length > 0)
                        strText = strText[0];
                }

                ParamLabels[i].innerHTML = strText;
            } // End if (strText != null && strText.indexOf('/') != -1) 

        } // Next i

    } // End if(ParamLabels != null)

}


function fixReportingServices(container)
{
    var language = initLanguage();

    switch (language)
    {
        case "fr":
            iLanguageIndex = 1;
            break;
        case "it":
            iLanguageIndex = 2;
            break;
        case "en":
            iLanguageIndex = 3;
            break;
        default: // "DE" 
            iLanguageIndex = 0;
    } // End Switch

    TranslateParameterPrompts(iLanguageIndex);
}


// needed when AsyncEnabled=true. 
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function () { fixReportingServices('rpt-container'); });

  </script>

рдЕрдм, рдХреБрдЫ рд╡реЗрдм-рдкреЗрдЬ рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ifrmSSRS_Login рдирд╛рдордХ рдПрдХ iframe рдмрдирд╛рдПрдВ (рдпрд╛ рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ) рдФрд░ рд▓рд┐рдВрдХ-рдХреНрд▓рд┐рдХ рдкрд░ рдПрдХ рдлреЙрд░реНрдо-рдкреЛрд╕реНрдЯ рдХрд░реЗрдВ:

var data = 
{
    "issued" : datetime 
   ,"databaseName" : "foo" // name of SSRS-user 
   ,parameters : [{ "name":"forms_userid", value: 123},{ "name": "parameter1", "value": "uid1,uid2,uid3" }]
}


var valueToPost = rsa(data, public_key)

post this value with JavaScript to the cross-domain SSRS-url 



    _postSSRS: function(o){
        this._Trace('_postSSRS');

        try{
            if(!!o.SSRS_Link){
                var tF = document.body.appendChild(document.createElement('form'));
                tF.setAttribute('id', 'frm_' + Date.now());
                tF.setAttribute('method', 'post');
                tF.setAttribute('action', o.SSRS_Link + 'logon.aspx');
                tF.setAttribute('style', 'display: none;');
                tF.setAttribute('target', 'ifrmSSRS_Login');

                var HttpPostVariables = {
                     'data': o.SSRS_Data 
                    ,'SSO': 'FMS'
                };

                for(var k in HttpPostVariables){
                    var tH = tF.appendChild(document.createElement('input'));
                    tH.setAttribute('name', k);
                    tH.setAttribute('value', HttpPostVariables[k])
                };

                tF.submit()
            }
        }
        catch(err){this._Log(err, '_postSSRS')}
    },

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдк SSRS рдХреЗ рд╕рд╛рде рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╛рд╣рдХ (рдбреЗрдЯрд╛рдмреЗрд╕-рдирд╛рдо) рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ (рдбреЗрдЯрд╛рдмреЗрд╕-рдирд╛рдо рджреНрд╡рд╛рд░рд╛ ssrs рдкрд░ рдЕрдиреБрдорддрд┐) рджреЗрдЦрддреЗ рд╣реИрдВред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ uids рдХреЛ рд▓реЛрдЕрд░рдХреЗрд╕ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ SSRS рд╕рд╣реА рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ / рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдЧрдВрджреЗ рдЯреБрдХрдбрд╝реЗ рдХреА рддрд░рд╣ рдлрдЯ рдЬрд╛рддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ:
SSRS рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдФрд░ рд╢рд╛рдпрдж рдкреЗрдЬ-рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝-рдХрд▓реНрдЪрд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреЛрдб рдПрдХ рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдореЗрдВ рдЬрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдЧрд░ http-рдореЙрдбреНрдпреВрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдПрдЬреЗрдВрдЯ рднрд╛рд╖рд╛ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдореБрдЭреЗ рдХреЗрд╡рд▓ рдЙрд╕ рдкреГрд╖реНрда рдХреЛ рд╕рд╛рдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ) -рд╕рдВрд░рдЪрдирд╛-рд╕рдВрд╕реНрдХреГрддрд┐ SSRS рдбреЗрдЯрдкрд┐рдХрд░ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ)ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд▓реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рдерд╛ред рдПрдХ рдРрд╕реЗ рдЪрд░рд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдХрднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ ┬г рдпрд╛ youред

P3P рд╣реЗрдбрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЗрд╕рд▓рд┐рдП IE 11 рдиреЙрди-рд╡рд┐рдВрдбреЛрдЬ -10 рдХрдВрдкреНрдЯреБрдЕрд░реНрд╕ рдкрд░ рдСрдХреНрдЯрд╛-рдХреБрдХреА рдХреЛ рдордирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ ssrs рдХреНрд░реЙрд╕-рдбреЛрдореЗрди iframe рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ, рдпрд╣ IE рджреНрд╡рд╛рд░рд╛ 3rd рдкрд╛рд░реНрдЯреА рдХреБрдХреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, SSRS 2016+ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛, рдЖрдкрдХреЛ рд╕реАрдорд╛-рдЪреМрдбрд╝рд╛рдИ, рдКрдБрдЪрд╛рдИ, рдорд╛рд░реНрдЬрд┐рди, рдкреНрд░рд┐рдВрдЯ-рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдФрд░ рдЕрдиреНрдп рд╕рднреА "рд░реЛрдорд╛рдВрдЪрдХ IE8- рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдорд╛рди" рдЖрджрд┐ рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдореЛрдбрдирд╛ рд╣реЛрдЧрд╛ред

рдЬреИрд╕рд╛ рдХрд┐ рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдирд╛рдо рдХрд╣рддрд╛ рд╣реИ, рдпрд╣ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдбрдХреНрд╢рди рд╕рд░реНрд╡рд░ (SSRS 2012) рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрд╣ рд╕рднреА рдмрджрд╕реВрд░рдд SSRS 2005 рдХреЗ рдЕрдВрдХ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖред

рдЕрдкрдиреА рдиреЗрд╡рд┐рдЧреЗрд╢рди рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХрд┐рд╕реА рдлрд╝реАрд▓реНрдб рдореЗрдВ рд▓рд┐рдВрдХ рд╕рд╣реЗрдЬреЗрдВ, рдЬреИрд╕реЗ T_Navigation рдореЗрдВ рдлрд╝реАрд▓реНрдб NA_Link
'{} @Report Budget_SNB рдФрд░ in_user = {@ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛} & in_sprache = {@ рднрд╛рд╖рд╛} рдФрд░ рдЖрд░ рд╕реА: рд╕реНрдЯрд╛рдЗрд▓ рд╢реАрдЯ = COR_RS2012_v7'
рдмреЗрд╕рд▓рд┐рдВрдХ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ (рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд╛рд▓реА рдкреГрд╖реНрдарднреВрдорд┐ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдХреЗ рдЕрдкрдиреЗ рд╕рдВрд╢реЛрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ssrs рдмрддрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)

SELECT 
    REPLACE(
    REPLACE( 
    REPLACE(NA_Link, '{@report}', @reportServerBaseUrl) 
    , '{@user}', @user_id)
    , '{@language}', @user_language)
FROM T_Navigation 

рдФрд░ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ .NET-рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдЕрдЧрд░ рдЙрд╕реЗ рдПрдХ рдХреЙрд▓рди рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдк рдореЛрдиреЛ-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ url-рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрд┐рдВрдЧ рдХреЛрдб рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ / рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЗрд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ (рдирд┐рдЬреА / рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ) рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХреЛрдИ рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЖрдИрдбреА рдХрд╛ рдЕрдиреБрдорд╛рди рди рд▓рдЧрд╛ рд╕рдХреЗред рд▓реЗрдХрд┐рди рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ md5-hash рдЪрд╛рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@ststeiger @all
AspNetCore.ReportViewer рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ AspNetCore.Reporting
рдЬрд┐рд╕рдореЗрдВ LocalReport рдФрд░ ServerReport

@ amh1979 : рдЕрдЪреНрдЫрд╛ рдХрд╛рдо - рдореИрдВ рдЗрд╕ рдкрд░ рдПрдХ рдирдЬрд╝рд░
рдореИрдВ рдЗрд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ AspNetCore.ReportingServices.dll рд╕реЗ рд▓реЗ рд░рд╣рд╛ рд╣реВрдБ WindowsBase рдФрд░ pinvoke advapi32.dll / kernel32.dll / ReportingServicesServiceред

PS: рд╕рд╣реА рдЕрдВрдЧреНрд░реЗрдЬреА рд╣реИ "AspNetCore.ReportViewer> рдХреЛ <AspNetCore.Reporting" рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рди рдХрд┐ "рдЗрд╕рдХреЗ рдмрдЬрд╛рдп", рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ;)
рдпрд╛ рдЖрдк рдпрд╣ рднреА рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ "рджреНрд╡рд╛рд░рд╛ рд╕реБрдкрд░рд╕рд╛рдЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ", рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рд░рд╣реЗ рд╢рдмреНрдж / рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ;)

@ amh1979 : рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдореБрдЭреЗ рдХреБрдЫ рдХрд╛рдо рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ 4.7.1 рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИред
рдореИрдВ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ, MainStream рдкрд░рд┐рдгрд╛рдо / html рдФрд░ рджреНрд╡рд┐рддреАрдпрдХStream CSS рд╣реИред
рд▓реЗрдХрд┐рди рдЙрдардХрд░ рдЪрд▓ рджрд┐рдпрд╛ред
рдХрд┐ HTML рдкреГрд╖реНрдард╛рдВрдХрд┐рдд рд╣реИ рдЕрдЪреНрдЫрд╛ рднреА рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ: рдХреНрдпрд╛ рд╣рд░ рдкреГрд╖реНрда рдХреЗ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рднреА рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдпрд╛ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА HTML рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

@ALL : рдЬрдм рдпрд╣ рдкреВрд░реНрдг .net рдХреЗ рддрд╣рдд рдЪрд▓рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рддрд╣рдд .NET рдХреЛрд░ рдХреЗ рддрд╣рдд рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
System.Drawing.Color ToKnownColor, IsSystemColor рдФрд░ рдореМрдЬреВрдж рдирд╣реАрдВ KnownColor рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ред
рддрдп рд╣реИ рдХрд┐, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рд╢рд┐рдХрд╛рдпрдд рд╣реИ рдХрд┐ рд╡рд┐рдзрд╛рдирд╕рднрд╛ System.Drawing.Graphics рдХреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ ...

рдХреНрдпрд╛ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ .NET рдХреЛрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреВрд░реНрдг рдлреБрд▓ .net рдЕрд╕реЗрдВрдмрд▓реА рдЪрд▓рд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рднреА рд╣реИ?

@ststeiger рдореИрдВ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЗрди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдФрд░ рддрдп рдХрд░реЗрдЧрд╛ред

@ amh1979 :

рдЖрдк рдЗрд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддрдм рддрдХ рдЖрдк рдЦреЛрдЬ рдФрд░ рдХреА рдЬрдЧрд╣ рдЕрдЧрд░ System.Array.Empty<T> рдХреЗ рд╕рд╛рде ArrayExtension.Empty<T> рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛ рд░рд╣реА .NET 4.0 рдХреЗ рд╕рд╛рде рдХреЗ рд░рд╛рд╕реНрддреЗ рд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВ 90% рд╣реИ, рддреЛ рдЖрдкред

    internal static class ArrayExtension
    {

        public static T[] Empty<T>()
        {
            return new T[0];
        }

    }

@ amh1979 :

рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ

System.Drawing.Color c; 
c.IsKnownColor
c.IsSystemColor 
c.ToKnownColor()
System.Drawing.KnownColor enum

рдЬреЛ .NET рдХреЛрд░ рдХреЗ System.Drawing.Common рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ System.Drawing.KnownColor.cs рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реИ
(рдпрд╣ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рдХрд╛рд░рдг рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди System.Drawing.Color рдХреЗ рдЖрдВрддрд░рд┐рдХ рдореВрд▓реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВред рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реНрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП #ifs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдкрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧреБрдгреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЙрд▓ рдХрд░реЗрдВред рд╢реБрджреНрдз рд░реВрдкрд░реЗрдЦрд╛ ... )


namespace AspNetCore.Reporting.Helpers
{

    // System.Drawing.KnownColor.cs replacement 
    internal class ReportColor
    {


        private static System.Collections.Generic.Dictionary<System.Drawing.Color
                    , AspNetCore.Reporting.Helpers.AllKnownColors> SetupKnownColorDictionary()
        {
            System.Collections.Generic.Dictionary<System.Drawing.Color
                , AspNetCore.Reporting.Helpers.AllKnownColors>
                dict = new System.Collections.Generic.Dictionary
                <System.Drawing.Color, AspNetCore.Reporting.Helpers.AllKnownColors>();

            dict.Add(System.Drawing.Color.FromArgb(255, 180, 180, 180), AllKnownColors.ActiveBorder);
            dict.Add(System.Drawing.Color.FromArgb(255, 153, 180, 209), AllKnownColors.ActiveCaption);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 0, 0), AllKnownColors.ActiveCaptionText);
            dict.Add(System.Drawing.Color.FromArgb(255, 171, 171, 171), AllKnownColors.AppWorkspace);
            dict.Add(System.Drawing.Color.FromArgb(255, 240, 240, 240), AllKnownColors.Control);
            dict.Add(System.Drawing.Color.FromArgb(255, 160, 160, 160), AllKnownColors.ControlDark);
            dict.Add(System.Drawing.Color.FromArgb(255, 105, 105, 105), AllKnownColors.ControlDarkDark);
            dict.Add(System.Drawing.Color.FromArgb(255, 227, 227, 227), AllKnownColors.ControlLight);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 255, 255), AllKnownColors.ControlLightLight);
            dict.Add(System.Drawing.Color.FromArgb(255, 109, 109, 109), AllKnownColors.GrayText);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 120, 215), AllKnownColors.Highlight);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 102, 204), AllKnownColors.HotTrack);
            dict.Add(System.Drawing.Color.FromArgb(255, 244, 247, 252), AllKnownColors.InactiveBorder);
            dict.Add(System.Drawing.Color.FromArgb(255, 191, 205, 219), AllKnownColors.InactiveCaption);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 255, 225), AllKnownColors.Info);
            dict.Add(System.Drawing.Color.FromArgb(255, 200, 200, 200), AllKnownColors.ScrollBar);
            dict.Add(System.Drawing.Color.FromArgb(255, 100, 100, 100), AllKnownColors.WindowFrame);
            dict.Add(System.Drawing.Color.FromArgb(0, 255, 255, 255), AllKnownColors.Transparent);
            dict.Add(System.Drawing.Color.FromArgb(255, 240, 248, 255), AllKnownColors.AliceBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 250, 235, 215), AllKnownColors.AntiqueWhite);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 255, 255), AllKnownColors.Aqua);
            dict.Add(System.Drawing.Color.FromArgb(255, 127, 255, 212), AllKnownColors.Aquamarine);
            dict.Add(System.Drawing.Color.FromArgb(255, 240, 255, 255), AllKnownColors.Azure);
            dict.Add(System.Drawing.Color.FromArgb(255, 245, 245, 220), AllKnownColors.Beige);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 228, 196), AllKnownColors.Bisque);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 235, 205), AllKnownColors.BlanchedAlmond);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 0, 255), AllKnownColors.Blue);
            dict.Add(System.Drawing.Color.FromArgb(255, 138, 43, 226), AllKnownColors.BlueViolet);
            dict.Add(System.Drawing.Color.FromArgb(255, 165, 42, 42), AllKnownColors.Brown);
            dict.Add(System.Drawing.Color.FromArgb(255, 222, 184, 135), AllKnownColors.BurlyWood);
            dict.Add(System.Drawing.Color.FromArgb(255, 95, 158, 160), AllKnownColors.CadetBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 127, 255, 0), AllKnownColors.Chartreuse);
            dict.Add(System.Drawing.Color.FromArgb(255, 210, 105, 30), AllKnownColors.Chocolate);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 127, 80), AllKnownColors.Coral);
            dict.Add(System.Drawing.Color.FromArgb(255, 100, 149, 237), AllKnownColors.CornflowerBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 248, 220), AllKnownColors.Cornsilk);
            dict.Add(System.Drawing.Color.FromArgb(255, 220, 20, 60), AllKnownColors.Crimson);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 0, 139), AllKnownColors.DarkBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 139, 139), AllKnownColors.DarkCyan);
            dict.Add(System.Drawing.Color.FromArgb(255, 184, 134, 11), AllKnownColors.DarkGoldenrod);
            dict.Add(System.Drawing.Color.FromArgb(255, 169, 169, 169), AllKnownColors.DarkGray);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 100, 0), AllKnownColors.DarkGreen);
            dict.Add(System.Drawing.Color.FromArgb(255, 189, 183, 107), AllKnownColors.DarkKhaki);
            dict.Add(System.Drawing.Color.FromArgb(255, 139, 0, 139), AllKnownColors.DarkMagenta);
            dict.Add(System.Drawing.Color.FromArgb(255, 85, 107, 47), AllKnownColors.DarkOliveGreen);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 140, 0), AllKnownColors.DarkOrange);
            dict.Add(System.Drawing.Color.FromArgb(255, 153, 50, 204), AllKnownColors.DarkOrchid);
            dict.Add(System.Drawing.Color.FromArgb(255, 139, 0, 0), AllKnownColors.DarkRed);
            dict.Add(System.Drawing.Color.FromArgb(255, 233, 150, 122), AllKnownColors.DarkSalmon);
            dict.Add(System.Drawing.Color.FromArgb(255, 143, 188, 139), AllKnownColors.DarkSeaGreen);
            dict.Add(System.Drawing.Color.FromArgb(255, 72, 61, 139), AllKnownColors.DarkSlateBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 47, 79, 79), AllKnownColors.DarkSlateGray);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 206, 209), AllKnownColors.DarkTurquoise);
            dict.Add(System.Drawing.Color.FromArgb(255, 148, 0, 211), AllKnownColors.DarkViolet);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 20, 147), AllKnownColors.DeepPink);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 191, 255), AllKnownColors.DeepSkyBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 30, 144, 255), AllKnownColors.DodgerBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 178, 34, 34), AllKnownColors.Firebrick);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 250, 240), AllKnownColors.FloralWhite);
            dict.Add(System.Drawing.Color.FromArgb(255, 34, 139, 34), AllKnownColors.ForestGreen);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 0, 255), AllKnownColors.Fuchsia);
            dict.Add(System.Drawing.Color.FromArgb(255, 220, 220, 220), AllKnownColors.Gainsboro);
            dict.Add(System.Drawing.Color.FromArgb(255, 248, 248, 255), AllKnownColors.GhostWhite);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 215, 0), AllKnownColors.Gold);
            dict.Add(System.Drawing.Color.FromArgb(255, 218, 165, 32), AllKnownColors.Goldenrod);
            dict.Add(System.Drawing.Color.FromArgb(255, 128, 128, 128), AllKnownColors.Gray);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 128, 0), AllKnownColors.Green);
            dict.Add(System.Drawing.Color.FromArgb(255, 173, 255, 47), AllKnownColors.GreenYellow);
            dict.Add(System.Drawing.Color.FromArgb(255, 240, 255, 240), AllKnownColors.Honeydew);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 105, 180), AllKnownColors.HotPink);
            dict.Add(System.Drawing.Color.FromArgb(255, 205, 92, 92), AllKnownColors.IndianRed);
            dict.Add(System.Drawing.Color.FromArgb(255, 75, 0, 130), AllKnownColors.Indigo);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 255, 240), AllKnownColors.Ivory);
            dict.Add(System.Drawing.Color.FromArgb(255, 240, 230, 140), AllKnownColors.Khaki);
            dict.Add(System.Drawing.Color.FromArgb(255, 230, 230, 250), AllKnownColors.Lavender);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 240, 245), AllKnownColors.LavenderBlush);
            dict.Add(System.Drawing.Color.FromArgb(255, 124, 252, 0), AllKnownColors.LawnGreen);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 250, 205), AllKnownColors.LemonChiffon);
            dict.Add(System.Drawing.Color.FromArgb(255, 173, 216, 230), AllKnownColors.LightBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 240, 128, 128), AllKnownColors.LightCoral);
            dict.Add(System.Drawing.Color.FromArgb(255, 224, 255, 255), AllKnownColors.LightCyan);
            dict.Add(System.Drawing.Color.FromArgb(255, 250, 250, 210), AllKnownColors.LightGoldenrodYellow);
            dict.Add(System.Drawing.Color.FromArgb(255, 211, 211, 211), AllKnownColors.LightGray);
            dict.Add(System.Drawing.Color.FromArgb(255, 144, 238, 144), AllKnownColors.LightGreen);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 182, 193), AllKnownColors.LightPink);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 160, 122), AllKnownColors.LightSalmon);
            dict.Add(System.Drawing.Color.FromArgb(255, 32, 178, 170), AllKnownColors.LightSeaGreen);
            dict.Add(System.Drawing.Color.FromArgb(255, 135, 206, 250), AllKnownColors.LightSkyBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 119, 136, 153), AllKnownColors.LightSlateGray);
            dict.Add(System.Drawing.Color.FromArgb(255, 176, 196, 222), AllKnownColors.LightSteelBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 255, 224), AllKnownColors.LightYellow);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 255, 0), AllKnownColors.Lime);
            dict.Add(System.Drawing.Color.FromArgb(255, 50, 205, 50), AllKnownColors.LimeGreen);
            dict.Add(System.Drawing.Color.FromArgb(255, 250, 240, 230), AllKnownColors.Linen);
            dict.Add(System.Drawing.Color.FromArgb(255, 128, 0, 0), AllKnownColors.Maroon);
            dict.Add(System.Drawing.Color.FromArgb(255, 102, 205, 170), AllKnownColors.MediumAquamarine);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 0, 205), AllKnownColors.MediumBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 186, 85, 211), AllKnownColors.MediumOrchid);
            dict.Add(System.Drawing.Color.FromArgb(255, 147, 112, 219), AllKnownColors.MediumPurple);
            dict.Add(System.Drawing.Color.FromArgb(255, 60, 179, 113), AllKnownColors.MediumSeaGreen);
            dict.Add(System.Drawing.Color.FromArgb(255, 123, 104, 238), AllKnownColors.MediumSlateBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 250, 154), AllKnownColors.MediumSpringGreen);
            dict.Add(System.Drawing.Color.FromArgb(255, 72, 209, 204), AllKnownColors.MediumTurquoise);
            dict.Add(System.Drawing.Color.FromArgb(255, 199, 21, 133), AllKnownColors.MediumVioletRed);
            dict.Add(System.Drawing.Color.FromArgb(255, 25, 25, 112), AllKnownColors.MidnightBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 245, 255, 250), AllKnownColors.MintCream);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 228, 225), AllKnownColors.MistyRose);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 228, 181), AllKnownColors.Moccasin);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 222, 173), AllKnownColors.NavajoWhite);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 0, 128), AllKnownColors.Navy);
            dict.Add(System.Drawing.Color.FromArgb(255, 253, 245, 230), AllKnownColors.OldLace);
            dict.Add(System.Drawing.Color.FromArgb(255, 128, 128, 0), AllKnownColors.Olive);
            dict.Add(System.Drawing.Color.FromArgb(255, 107, 142, 35), AllKnownColors.OliveDrab);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 165, 0), AllKnownColors.Orange);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 69, 0), AllKnownColors.OrangeRed);
            dict.Add(System.Drawing.Color.FromArgb(255, 218, 112, 214), AllKnownColors.Orchid);
            dict.Add(System.Drawing.Color.FromArgb(255, 238, 232, 170), AllKnownColors.PaleGoldenrod);
            dict.Add(System.Drawing.Color.FromArgb(255, 152, 251, 152), AllKnownColors.PaleGreen);
            dict.Add(System.Drawing.Color.FromArgb(255, 175, 238, 238), AllKnownColors.PaleTurquoise);
            dict.Add(System.Drawing.Color.FromArgb(255, 219, 112, 147), AllKnownColors.PaleVioletRed);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 239, 213), AllKnownColors.PapayaWhip);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 218, 185), AllKnownColors.PeachPuff);
            dict.Add(System.Drawing.Color.FromArgb(255, 205, 133, 63), AllKnownColors.Peru);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 192, 203), AllKnownColors.Pink);
            dict.Add(System.Drawing.Color.FromArgb(255, 221, 160, 221), AllKnownColors.Plum);
            dict.Add(System.Drawing.Color.FromArgb(255, 176, 224, 230), AllKnownColors.PowderBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 128, 0, 128), AllKnownColors.Purple);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 0, 0), AllKnownColors.Red);
            dict.Add(System.Drawing.Color.FromArgb(255, 188, 143, 143), AllKnownColors.RosyBrown);
            dict.Add(System.Drawing.Color.FromArgb(255, 65, 105, 225), AllKnownColors.RoyalBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 139, 69, 19), AllKnownColors.SaddleBrown);
            dict.Add(System.Drawing.Color.FromArgb(255, 250, 128, 114), AllKnownColors.Salmon);
            dict.Add(System.Drawing.Color.FromArgb(255, 244, 164, 96), AllKnownColors.SandyBrown);
            dict.Add(System.Drawing.Color.FromArgb(255, 46, 139, 87), AllKnownColors.SeaGreen);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 245, 238), AllKnownColors.SeaShell);
            dict.Add(System.Drawing.Color.FromArgb(255, 160, 82, 45), AllKnownColors.Sienna);
            dict.Add(System.Drawing.Color.FromArgb(255, 192, 192, 192), AllKnownColors.Silver);
            dict.Add(System.Drawing.Color.FromArgb(255, 135, 206, 235), AllKnownColors.SkyBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 106, 90, 205), AllKnownColors.SlateBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 112, 128, 144), AllKnownColors.SlateGray);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 250, 250), AllKnownColors.Snow);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 255, 127), AllKnownColors.SpringGreen);
            dict.Add(System.Drawing.Color.FromArgb(255, 70, 130, 180), AllKnownColors.SteelBlue);
            dict.Add(System.Drawing.Color.FromArgb(255, 210, 180, 140), AllKnownColors.Tan);
            dict.Add(System.Drawing.Color.FromArgb(255, 0, 128, 128), AllKnownColors.Teal);
            dict.Add(System.Drawing.Color.FromArgb(255, 216, 191, 216), AllKnownColors.Thistle);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 99, 71), AllKnownColors.Tomato);
            dict.Add(System.Drawing.Color.FromArgb(255, 64, 224, 208), AllKnownColors.Turquoise);
            dict.Add(System.Drawing.Color.FromArgb(255, 238, 130, 238), AllKnownColors.Violet);
            dict.Add(System.Drawing.Color.FromArgb(255, 245, 222, 179), AllKnownColors.Wheat);
            dict.Add(System.Drawing.Color.FromArgb(255, 245, 245, 245), AllKnownColors.WhiteSmoke);
            dict.Add(System.Drawing.Color.FromArgb(255, 255, 255, 0), AllKnownColors.Yellow);
            dict.Add(System.Drawing.Color.FromArgb(255, 154, 205, 50), AllKnownColors.YellowGreen);
            dict.Add(System.Drawing.Color.FromArgb(255, 185, 209, 234), AllKnownColors.GradientActiveCaption);
            dict.Add(System.Drawing.Color.FromArgb(255, 215, 228, 242), AllKnownColors.GradientInactiveCaption);

            return dict;
        } // End Function SetupKnownColorDictionary 


        private static System.Collections.Generic.HashSet<System.Drawing.Color> SetupSystemColorHashMap()
        {
            System.Collections.Generic.HashSet<System.Drawing.Color> hash =
                new System.Collections.Generic.HashSet<System.Drawing.Color>(
                    new System.Drawing.Color[] {
                        System.Drawing.Color.FromArgb(255, 180, 180, 180),
                        System.Drawing.Color.FromArgb(255, 153, 180, 209),
                        System.Drawing.Color.FromArgb(255, 0, 0, 0),
                        System.Drawing.Color.FromArgb(255, 171, 171, 171),
                        System.Drawing.Color.FromArgb(255, 240, 240, 240),
                        System.Drawing.Color.FromArgb(255, 160, 160, 160),
                        System.Drawing.Color.FromArgb(255, 105, 105, 105),
                        System.Drawing.Color.FromArgb(255, 227, 227, 227),
                        System.Drawing.Color.FromArgb(255, 255, 255, 255),
                        System.Drawing.Color.FromArgb(255, 109, 109, 109),
                        System.Drawing.Color.FromArgb(255, 0, 120, 215),
                        System.Drawing.Color.FromArgb(255, 0, 102, 204),
                        System.Drawing.Color.FromArgb(255, 244, 247, 252),
                        System.Drawing.Color.FromArgb(255, 191, 205, 219),
                        System.Drawing.Color.FromArgb(255, 255, 255, 225),
                        System.Drawing.Color.FromArgb(255, 200, 200, 200),
                        System.Drawing.Color.FromArgb(255, 100, 100, 100),
                        System.Drawing.Color.FromArgb(255, 185, 209, 234),
                        System.Drawing.Color.FromArgb(255, 215, 228, 242)
                    }
            );

            return hash;
        } // End Function SetupSystemColorHashMap 


        private static System.Collections.Generic.HashSet<string> SetupKnownColorHashMap()
        {
            System.Collections.Generic.HashSet<string> map =
                new System.Collections.Generic.HashSet<string>(new string[] {
 "ActiveBorder"
,"ActiveCaption"
,"ActiveCaptionText"
,"AppWorkspace"
,"Control"
,"ControlDark"
,"ControlDarkDark"
,"ControlLight"
,"ControlLightLight"
,"ControlText"
,"Desktop"
,"GrayText"
,"Highlight"
,"HighlightText"
,"HotTrack"
,"InactiveBorder"
,"InactiveCaption"
,"InactiveCaptionText"
,"Info"
,"InfoText"
,"Menu"
,"MenuText"
,"ScrollBar"
,"Window"
,"WindowFrame"
,"WindowText"
,"Transparent"
,"AliceBlue"
,"AntiqueWhite"
,"Aqua"
,"Aquamarine"
,"Azure"
,"Beige"
,"Bisque"
,"Black"
,"BlanchedAlmond"
,"Blue"
,"BlueViolet"
,"Brown"
,"BurlyWood"
,"CadetBlue"
,"Chartreuse"
,"Chocolate"
,"Coral"
,"CornflowerBlue"
,"Cornsilk"
,"Crimson"
,"Cyan"
,"DarkBlue"
,"DarkCyan"
,"DarkGoldenrod"
,"DarkGray"
,"DarkGreen"
,"DarkKhaki"
,"DarkMagenta"
,"DarkOliveGreen"
,"DarkOrange"
,"DarkOrchid"
,"DarkRed"
,"DarkSalmon"
,"DarkSeaGreen"
,"DarkSlateBlue"
,"DarkSlateGray"
,"DarkTurquoise"
,"DarkViolet"
,"DeepPink"
,"DeepSkyBlue"
,"DimGray"
,"DodgerBlue"
,"Firebrick"
,"FloralWhite"
,"ForestGreen"
,"Fuchsia"
,"Gainsboro"
,"GhostWhite"
,"Gold"
,"Goldenrod"
,"Gray"
,"Green"
,"GreenYellow"
,"Honeydew"
,"HotPink"
,"IndianRed"
,"Indigo"
,"Ivory"
,"Khaki"
,"Lavender"
,"LavenderBlush"
,"LawnGreen"
,"LemonChiffon"
,"LightBlue"
,"LightCoral"
,"LightCyan"
,"LightGoldenrodYellow"
,"LightGray"
,"LightGrey"
,"LightGreen"
,"LightPink"
,"LightSalmon"
,"LightSeaGreen"
,"LightSkyBlue"
,"LightSlateGray"
,"LightSteelBlue"
,"LightYellow"
,"Lime"
,"LimeGreen"
,"Linen"
,"Magenta"
,"Maroon"
,"MediumAquamarine"
,"MediumBlue"
,"MediumOrchid"
,"MediumPurple"
,"MediumSeaGreen"
,"MediumSlateBlue"
,"MediumSpringGreen"
,"MediumTurquoise"
,"MediumVioletRed"
,"MidnightBlue"
,"MintCream"
,"MistyRose"
,"Moccasin"
,"NavajoWhite"
,"Navy"
,"OldLace"
,"Olive"
,"OliveDrab"
,"Orange"
,"OrangeRed"
,"Orchid"
,"PaleGoldenrod"
,"PaleGreen"
,"PaleTurquoise"
,"PaleVioletRed"
,"PapayaWhip"
,"PeachPuff"
,"Peru"
,"Pink"
,"Plum"
,"PowderBlue"
,"Purple"
,"Red"
,"RosyBrown"
,"RoyalBlue"
,"SaddleBrown"
,"Salmon"
,"SandyBrown"
,"SeaGreen"
,"SeaShell"
,"Sienna"
,"Silver"
,"SkyBlue"
,"SlateBlue"
,"SlateGray"
,"Snow"
,"SpringGreen"
,"SteelBlue"
,"Tan"
,"Teal"
,"Thistle"
,"Tomato"
,"Turquoise"
,"Violet"
,"Wheat"
,"White"
,"WhiteSmoke"
,"Yellow"
,"YellowGreen"
,"ButtonFace"
,"ButtonHighlight"
,"ButtonShadow"
,"GradientActiveCaption"
,"GradientInactiveCaption"
,"MenuBar"
,"MenuHighlight"

}, System.StringComparer.OrdinalIgnoreCase);

            return map;
        } // End Function SetupKnownColorHashMap 


        private static System.Collections.Generic.HashSet<string> m_knownColors = SetupKnownColorHashMap();
        private static System.Collections.Generic.HashSet<System.Drawing.Color> m_systemColors = SetupSystemColorHashMap();

        private static System.Collections.Generic.Dictionary<System.Drawing.Color
                , AspNetCore.Reporting.Helpers.AllKnownColors> m_knownColorDictionary = SetupKnownColorDictionary();


        // System.Drawing.Color c; c.IsKnownColor
        public static bool IsKnownColor(string color)
        {
            return m_knownColors.Contains(color);
        } // End Function IsKnownColor


        // System.Drawing.Color c; c.ToKnownColor()
        // AspNetCore.Reporting.Helpers.ReportColor.ToKnownColor(c);
        public static AspNetCore.Reporting.Helpers.AllKnownColors ToKnownColor(System.Drawing.Color c)
        {
            //System.Drawing.KnownColor knownColor = c.ToKnownColor();
            if (m_knownColorDictionary.ContainsKey(c))
                return m_knownColorDictionary[c];

            return AspNetCore.Reporting.Helpers.AllKnownColors.Unknown;
        } // End Function ToKnownColor 


        // System.Drawing.Color c; c.IsSystemColor 

        /// <include file='doc\Color.uex' path='docs/doc[@for="Color.IsSystemColor"]/*' />
        /// <devdoc>
        ///     Determines if this color is a system color.
        /// </devdoc>
        public static bool IsSystemColor(System.Drawing.Color color)
        {
            if (m_systemColors.Contains(color))
                return true;

            // return color.IsKnownColor;
            // return IsKnownColor && ((((KnownColor)knownColor) <= KnownColor.WindowText) || (((KnownColor)knownColor) > KnownColor.YellowGreen));
            return false;
        } // End Function IsSystemColor 


    } // End Class ReportColor 



    // https://raw.githubusercontent.com/mono/sysdrawing-coregraphics/master/System.Drawing/KnownColor.cs
    public enum AllKnownColors
    {
        Unknown = 0,

        ActiveBorder = 1,
        ActiveCaption = 2,
        ActiveCaptionText = 3,
        AppWorkspace = 4,
        Control = 5,
        ControlDark = 6,
        ControlDarkDark = 7,
        ControlLight = 8,
        ControlLightLight = 9,
        ControlText = 10,
        Desktop = 11,
        GrayText = 12,
        Highlight = 13,
        HighlightText = 14,
        HotTrack = 15,
        InactiveBorder = 16,
        InactiveCaption = 17,
        InactiveCaptionText = 18,
        Info = 19,
        InfoText = 20,
        Menu = 21,
        MenuText = 22,
        ScrollBar = 23,
        Window = 24,
        WindowFrame = 25,
        WindowText = 26,
        Transparent = 27,
        AliceBlue = 28,
        AntiqueWhite = 29,
        Aqua = 30,
        Aquamarine = 31,
        Azure = 32,
        Beige = 33,
        Bisque = 34,
        Black = 35,
        BlanchedAlmond = 36,
        Blue = 37,
        BlueViolet = 38,
        Brown = 39,
        BurlyWood = 40,
        CadetBlue = 41,
        Chartreuse = 42,
        Chocolate = 43,
        Coral = 44,
        CornflowerBlue = 45,
        Cornsilk = 46,
        Crimson = 47,
        Cyan = 48,
        DarkBlue = 49,
        DarkCyan = 50,
        DarkGoldenrod = 51,
        DarkGray = 52,
        DarkGreen = 53,
        DarkKhaki = 54,
        DarkMagenta = 55,
        DarkOliveGreen = 56,
        DarkOrange = 57,
        DarkOrchid = 58,
        DarkRed = 59,
        DarkSalmon = 60,
        DarkSeaGreen = 61,
        DarkSlateBlue = 62,
        DarkSlateGray = 63,
        DarkTurquoise = 64,
        DarkViolet = 65,
        DeepPink = 66,
        DeepSkyBlue = 67,
        DimGray = 68,
        DodgerBlue = 69,
        Firebrick = 70,
        FloralWhite = 71,
        ForestGreen = 72,
        Fuchsia = 73,
        Gainsboro = 74,
        GhostWhite = 75,
        Gold = 76,
        Goldenrod = 77,
        Gray = 78,
        Green = 79,
        GreenYellow = 80,
        Honeydew = 81,
        HotPink = 82,
        IndianRed = 83,
        Indigo = 84,
        Ivory = 85,
        Khaki = 86,
        Lavender = 87,
        LavenderBlush = 88,
        LawnGreen = 89,
        LemonChiffon = 90,
        LightBlue = 91,
        LightCoral = 92,
        LightCyan = 93,
        LightGoldenrodYellow = 94,
        LightGray = 95,
        LightGreen = 96,
        LightPink = 97,
        LightSalmon = 98,
        LightSeaGreen = 99,
        LightSkyBlue = 100,
        LightSlateGray = 101,
        LightSteelBlue = 102,
        LightYellow = 103,
        Lime = 104,
        LimeGreen = 105,
        Linen = 106,
        Magenta = 107,
        Maroon = 108,
        MediumAquamarine = 109,
        MediumBlue = 110,
        MediumOrchid = 111,
        MediumPurple = 112,
        MediumSeaGreen = 113,
        MediumSlateBlue = 114,
        MediumSpringGreen = 115,
        MediumTurquoise = 116,
        MediumVioletRed = 117,
        MidnightBlue = 118,
        MintCream = 119,
        MistyRose = 120,
        Moccasin = 121,
        NavajoWhite = 122,
        Navy = 123,
        OldLace = 124,
        Olive = 125,
        OliveDrab = 126,
        Orange = 127,
        OrangeRed = 128,
        Orchid = 129,
        PaleGoldenrod = 130,
        PaleGreen = 131,
        PaleTurquoise = 132,
        PaleVioletRed = 133,
        PapayaWhip = 134,
        PeachPuff = 135,
        Peru = 136,
        Pink = 137,
        Plum = 138,
        PowderBlue = 139,
        Purple = 140,
        Red = 141,
        RosyBrown = 142,
        RoyalBlue = 143,
        SaddleBrown = 144,
        Salmon = 145,
        SandyBrown = 146,
        SeaGreen = 147,
        SeaShell = 148,
        Sienna = 149,
        Silver = 150,
        SkyBlue = 151,
        SlateBlue = 152,
        SlateGray = 153,
        Snow = 154,
        SpringGreen = 155,
        SteelBlue = 156,
        Tan = 157,
        Teal = 158,
        Thistle = 159,
        Tomato = 160,
        Turquoise = 161,
        Violet = 162,
        Wheat = 163,
        White = 164,
        WhiteSmoke = 165,
        Yellow = 166,
        YellowGreen = 167,
        ButtonFace = 168,
        ButtonHighlight = 169,
        ButtonShadow = 170,
        GradientActiveCaption = 171,
        GradientInactiveCaption = 172,
        MenuBar = 173,
        MenuHighlight = 174
    } // End enum AllKnownColors 


}

рдореИрдВ рдЗрд╕реЗ NetStandard 2.0 рдХреЗ рддрд╣рдд рд╕рдВрдХрд▓рди рд╣реИ

рдХреИрд╕реЗ:
System.CoreFX.Forms рд▓реЗрдВ рдФрд░ рдЗрд╕реЗ NetStandard 2.0 рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВред рдлрд┐рд░ System.Drawing.Common рдФрд░ System.Reflection.Emit рдЬреЛрдбрд╝реЗрдВред

AspNetCore.ReportingServices рд▓реЗрдВ рдФрд░ рдЬреЛрдбрд╝реЗрдВ

Microsoft.Win32.Registry
System.CodeDom
System.ComponentModel
System.ComponentModel.TypeConverter
System.Configuration.ConfigurationManager
System.Data.Common
System.Data.SqlClient
System.Drawing.Common 
System.IO.Packaging
System.Runtime.Serialization.Primitives
System.Security.Permissions

System.CoreFX.Forms (NetStandard) рдХрд╛ рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝реЗрдВ

рдореЛрдиреЛ / рдХреЛрд░рдлрд╝реЗрдХреНрд╕ рд╕реЗ рдирд┐рдореНрди рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

AssemblyRef.cs (corefx System.Drawing)
ColorConverter.cs (corefx System.Drawing)
ColorConverterCommon.cs (corefx System.Drawing)
ColorTable.cs (corefx System.Drawing)
FontConverter.cs (mono System.Drawing.FontConverter.cs)
ImageFormatConverter.cs (mono System.Drawing.ImageFormatConverter.cs)
PaintValueEventArgs.cs (corefx System.Drawing.Design)
PointConverter.cs (corefx System.Drawing.Design)
SizeConverter.cs (corefx System.Drawing.Design)
UITypeEditor.cs  (corefx System.Drawing.Design "Primitives")
UITypeEditorEditStyle.cs  (corefx System.Drawing.Design "Primitives")

рдФрд░ System.Web рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг-рд╡рд░реНрдЧ рдЬреЛрдбрд╝реЗрдВ


namespace System.Web
{

    public class HttpRequest
    {
        public System.Collections.Specialized.NameValueCollection Headers { get; set; }
    }

    public class HttpResponse
    {
        public string ContentType { get; set; }
        public int StatusCode { get; set; }
    }

    public class HttpContext
    {
        // public HttpRequest Request;
        // public HttpRequest Response;

        public HttpRequest Request { get; set; }
        public HttpResponse Response { get; set; }


        public static HttpContext Current;
    }
}

рдФрд░ рдирдИ netstandard 2.0 рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдХреЛрдб рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред

рдЕрдм рдЗрд╕рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓реАрдЗрдиреНрдлреЛ рдЬреЛрдбрд╝реЗрдВ

[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("AspNetCore.Reporting, PublicKey=00240000048000009400000006020000002400005253413100040000010001003736e45ce2a56cd06bc9ab2e7eeeeffd2533eaafbc1abc68561da0f512412bf1c7d2bd0c4422565a4f35818a205b4d54af1d0fef14fb8d7249bc37913e53a3313c2f26ca838849c5ef766082ed02db74e6459e77840dfe5eb01574aa0722876b2a9f714c5d03fbcea6e88345ccf55a87d57d9653a5913a826008b1d3ac557aab", AllInternalsVisible = true)]
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("AspNetCore.Reporting", AllInternalsVisible = true)]

рдФрд░ рдЕрдм рдпрд╣ NetStandard 2.0 рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЕрд░реЗ @ рд╕рдм рдЕрджреНрднреБрдд рдЦрдмрд░:

рдореИрдВ рдЗрд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ .NET рдХреЛрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБ!
100% NetStandard, 0% NetFramework

Html, Pdf, Excel, Excel2007 +, Word, Word2007 + рдФрд░ tiff рд╕рднреА рдиреЗ varchars, ints, tinyint2, рдмрд┐рдЯреНрд╕ рдФрд░ рдХрдВрдкреНрдпреВрдЯреЗрдб рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде 57 рдкреЗрдЬ рдХреА рдЯреЗрдмреБрд▓рд░ рд░рд┐рдкреЛрд░реНрдЯ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред
RDL рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдЖрдЙрдЯрдкреБрдЯ рдлреЙрд░реНрдореЗрдЯ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдереЛрдбрд╝реЗ рдордЬрд╝реЗрджрд╛рд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИред
рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрдВрддрддрдГ рдкрд╛ рд▓реЗрдВрдЧреЗ, рд╣рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ?

AspNetCore.Reporting.LocalReport lr = new AspNetCore.Reporting.LocalReport(fn);
lr.AddDataSource("DataSet1", dt);

var rr = lr.Execute(AspNetCore.Reporting.RenderType.WordOpenXml, 1, null, "");

// var rr = lr.Execute(AspNetCore.Reporting.RenderType.Rpl, 1, null, ""); // Kaboom 
// var rr = lr.Execute(AspNetCore.Reporting.RenderType.Html, 2, null, "");
// var rr = lr.Execute(AspNetCore.Reporting.RenderType.Pdf, 1, null, "");
// var rr = lr.Execute(AspNetCore.Reporting.RenderType.Excel, 1, null, "");
// var rr = lr.Execute(AspNetCore.Reporting.RenderType.ExcelOpenXml, 1, null, "");
// var rr = lr.Execute(AspNetCore.Reporting.RenderType.Word, 1, null, "");
// var rr = lr.Execute(AspNetCore.Reporting.RenderType.WordOpenXml, 1, null, "");

System.Console.WriteLine(rr.TotalPages);

// System.IO.File.WriteAllBytes(@"d:\foo.htm", rr.MainStream);
// System.IO.File.WriteAllBytes(@"d:\foo.css", rr.SecondaryStream);
// System.IO.File.WriteAllBytes(@"d:\foo.pdf", rr.MainStream);
// System.IO.File.WriteAllBytes(@"d:\foo.xls", rr.MainStream);
// System.IO.File.WriteAllBytes(@"d:\foo.xlsx", rr.MainStream);
// System.IO.File.WriteAllBytes(@"d:\foo.doc", rr.MainStream);
// System.IO.File.WriteAllBytes(@"d:\foo.docx", rr.MainStream);
// System.IO.File.WriteAllBytes(@"d:\foo.tiff", rr.MainStream);

// System.IO.File.WriteAllBytes(@"d:\foo.rpl", rr.MainStream); // BOOM 

рдФрд░ рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИ:
WindowsBase (рдЙрд░реНрдл WPF) рдХреЗрд╡рд▓ System.IO.Packaging рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ .NET рдХреЛрд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред
рдЕрдм рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдкрд┐рдирд╡реЛрдХ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд▓рд┐рдирдХреНрд╕ / рдореИрдХ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдзрд╛ рдирд╣реАрдВ рд╣реИ!

рдЕрдм рдХреЛрдИ рдЬрд▓реНрджреА рд╕реЗ рдПрдХ рд╡реЗрдм-рдЖрдзрд╛рд░рд┐рдд рдЖрд░рдбреАрдПрд▓ рд╕рдВрдкрд╛рджрдХ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ!
рддрдм рд╣рдо "рдЧрддрд┐рд╢реАрд▓" (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЬрдирд┐рдд) рд░рд┐рдкреЛрд░реНрдЯ рднреА рдХрд░ рд╕рдХрддреЗ рдереЗред
Linux рдХреЗ рд▓рд┐рдП PostgreSQL-ReportingServices рдЖ рд░рд╣рд╛ рд╣реИ;)
(рдареАрдХ рд╣реИ, рдРрд╕реА рдЪреАрдЬрд╝ рдкрд░ рдбреИрдореЛрдХрд▓реНрд╕ рдХреА рдХрд╛рдиреВрдиреА рддрд▓рд╡рд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ рдЪреАрди рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ "рдЕрдзрд┐рдХ рдЖрд░рд╛рдо" рдмреМрджреНрдзрд┐рдХ рд╕рдВрдкрджрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИрдВ ...) :)

рдареАрдХ рд╣реИ, рд╢рд╛рдпрдж рдпрд╣ рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реИред
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп Oracle / SAP рдХреЗ рд▓рд┐рдП Microsoft рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ!
рдпрд╛ рдХреИрд╕рдВрдбреНрд░рд╛ / рд╕реНрдкрд╛рд░реНрдХ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛рдПрдБ: рдореБрд╕реНрдХрд░рд╛рд╣рдЯ:

@ amh1979 :
рдХреНрдпрд╛ рд╡рд╣рд╛рдВ рдХреЛрдИ рдкрд╛рд╡рд░рдкреЙрдЗрдВрдЯ-рд░реЗрдВрдбрд░рд░ рдирд╣реАрдВ рд╣реИ?
рдХреНрдпрд╛ рдЖрдкрдиреЗ рд░рд┐рдкреЛрд░реНрдЯрд╡реНрдпреВрдЕрд░ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЗрд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдерд╛? (SSRS 2017)
рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдЬрд┐рд╕реЗ рдореИрдВ рдирдЧреЗрдЯ рдкрд░ рдЬрд╛рдирддрд╛ рд╣реВрдВ:
https://www.nuget.org/packages/Microsoft.ReportingServices.ReportViewerControl.WebForms
(140.1000.523, 10 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ)
https://www.nuget.org/packages/Microsoft.ReportingServices.ReportViewerControl.WinForms
(140.1000.523)
https://www.nuget.org/packages/Microsoft.SqlServer.Types
(14.0.314.76)

рдпрд╣рд╛рдБ NetStandard рдХреЗ рд▓рд┐рдП CoreFX WinForms рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ:
https://github.com/ststeiger/System.CoreFX.Forms

рдЕрдВрддрд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд NetCore рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝рд╛ рд╣реИ, рдФрд░ System.CoreFX.Forms рдХреЛ System.NetStandard.Forms рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдПрдореНрдмреЗрдбреЗрдб рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдИ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдлрд╝рд╛рдЗрд▓реЗрдВ рдпрд╣рд╛рдБ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВ:

AssemblyRef.cs
ColorConverter.cs
ColorConverterCommon.cs
ColorTable.cs
FontConverter.cs
ImageFormatConverter.cs
PaintValueEventArgs.cs
PointConverter.cs
SizeConverter.cs
UITypeEditor.cs
UITypeEditorEditStyle.cs

@ amh1979 :
рдЖрд╣, рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ Microsoft.eportViewer.Common.dll рдореЗрдВ рдирд╣реАрдВ рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИ:
Microsoft.ReportingServices.PowerPointRendering.dll
рдФрд░ CSV / XML / Atom рдХреЗ рд▓рд┐рдП:
Microsoft.ReportingServices.DataRendering.dll

C: \ Program Files \ Microsoft SQL Server рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛ \ SSRS \ ReportServer \ bin

@ALL : рд▓реЗрдбреАрдЬ, HTML- рд░реЗрдВрдбрд░рд░ рд▓рд┐рдирдХреНрд╕ рдкрд░ .NET рдХреЛрд░ / рдиреЗрдЯрд╕реНрдЯреНрд░реАрдо 2.0 рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ!
рдФрд░ рдЗрд╕рд▓рд┐рдП WordOpenXML рдФрд░ ExcelOpenXML рд░реЗрдВрдбрд░рд░ рд╣реИ!
(рдХреЗрд╡рд▓ рдЪрд┐рддреНрд░реЛрдВ / рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ - рдкрд╛рда рдФрд░ рдХреЛрдб рдХреЗрд╡рд▓)

рдкреАрдбреАрдПрдл-рд░реЗрдВрдбрд░рд░ рдореЗрдВ рдлреЙрдиреНрдЯ-рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдкрд┐рдирд╡реЛрдХ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред
(рд╡рд░реНрдб / рдПрдХреНрд╕реЗрд▓ -2003 рд░реЗрдВрдбрд░рд░ рдкрд┐рдирд╡реЛрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред)
рдпрджрд┐ рдЖрдк Aspose Cell / Words eval рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк xlsx рдХреЛ xls, рдФрд░ docx рдХреЛ doc рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдк рд╢рдмреНрдж-рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкреАрдбреАрдПрдл рднреА рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
soffice --headless --convert-to pdf filename.docx
(рдпрд╛ рдлрд┐рд░, рдПрд╕реЗрдкреНрдЯ рдПрд╡рд▓ рдХреЗ рд╕рд╛рде)
рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдХрд░, PPTX рд░реЗрдВрдбрд░рд░ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рднреА, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдм рдХрд░рддрд╛ рд╣реИ TIFF рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЪрд┐рддреНрд░ рд▓реЗ рд░рд╣рд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ tiff рдкреГрд╖реНрда рдХреА рдЫрд╡рд┐ рдХреЛ jpg / png рдХреЗ рд░реВрдк рдореЗрдВ pptx рд╕реНрд▓рд╛рдЗрдб рдкрд░ рд░рдЦрддрд╛ рд╣реИред
рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЫрд╡рд┐-рд░реЗрдВрдбрд░рд░ рд╕рдмрд╕реЗ рдХрдард┐рди рдХрд╛рдо рд╣реИред
рдпрд╛ рдЖрдк wttmltoX рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ HTML рдкреГрд╖реНрда рдХреЛ рдПрдХ рдЫрд╡рд┐ / рдкреАрдбреАрдПрдл рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рдкрдХреНрд╖ рдкрд░ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ред

рдЧрдЬрдм рдХрд╛ !

HTML for report

@ALL : рдПрдЯрдо / рд╕реАрдПрд╕рд╡реА / рдПрдХреНрд╕рдПрдордПрд▓ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рддреЛ NULL- рд░реЗрдВрдбрд░рд░ рд╣реИред
рд▓рд┐рдирдХреНрд╕ рдкрд░ рднреАред

PowerPoint рд░реЗрдВрдбрд░ рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдкрд┐рдирд╡реЛрдХ

рдордЬреЗрджрд╛рд░ рддрдереНрдп: рд╡рд╣рд╛рдБ рдПрдХ JSON-рд░реЗрдВрдбрд░рд░ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐ рдмрдХрд╡рд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИрд╢реЗрдпрд░рдбреИрдЯрд╕реЗрдЯреЗрдмрд▓рд╣реИрдВрдбрд▓рд░ рдорд╛рдорд▓рд╛, рдЬреЛ рднреА рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ

ParseDeviceInfo(deviceInfo);

if (!useSharedDataSetTableHandler)
{
    throw new ReportRenderingException(StringResources.rrJsonRenderOutputNotSupported);
}

рдЦрддрд░реЗ рд╕реЗ рдХреЛрдИ рднреА рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ JSON-рд░реЗрдВрдбрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ?

@ amh1979 рдореИрдВрдиреЗ рд╕рд░реНрд╡рд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЬреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗ рд╣реИрдВ, рд╡реЗ рд▓реЛрдбрд░рдкреЛрд░реНрдЯ рдореЗрдВ рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝реЗ рдирд╣реАрдВ рд╣реИрдВред рдХреНрдпрд╛ рдХреЛрдИ рдореМрдХрд╛ рд╣реИ рдЬреЛ рдЖрдк рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдкрдХреЗ рдЕрдЧрд▓реЗ рдмрд┐рд▓реНрдб рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рдП?

рд╣рд╛рдп @ststeiger рдФрд░ @ amh1979 , рдЗрд╕ рдкрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо, рдХреНрдпрд╛ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИрдВ? рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдорд▓реНрдЯреА рд╡реИрд▓реНрдпреВ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдореИрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП nuget рдкреИрдХреЗрдЬ рд╡рд┐рд╡рд░рдг (http://www.amhx.org/) рд╕реЗ рдЬреБрдбрд╝реА рд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд░рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдордп рдирд┐рдХрд╛рд▓рддрд╛ рд░рд╣рддрд╛ рд╣реИред

@DavidHayesCoding :
рдпрд╣рд╛рдБ AspNetCore.Reporting.LocalReport рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдЯреЗрд╕реНрдЯ-рдХреЛрдб рд╣реИ, рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ:
рдзреНрдпрд╛рди рджреЗрдВ:
рд░реЗрдВрдбрд░-рдЯрд╛рдЗрдк Rpl, RGDI, Atom, Xml, Json, Csv, null, pptx
рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ am1919 рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред
(рд╡реЗ SSRS рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрд╡рд░ рдкреБрдирд░реНрд╡рд┐рддрд░рдг рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВ)

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ, рдХрд┐ рд╕рд╛рдЭрд╛ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд (* .rds) рдХреЛ * .rdl рдХреЗ рд╕рдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ LocalReport.Execute рдкрд░ рдПрдХ рд╢реВрдиреНрдп-рд╕рдВрджрд░реНрдн рдЕрдкрд╡рд╛рдж рдорд┐рд▓реЗрдЧрд╛ред

рдЖрдЧреЗ рдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП:
https://github.com/icsharpcode/ILSpy/releases/tag/v4.0-beta2
(рдиреЛрдЯ: рдЙрдЪрд┐рдд рдХреЛрдб рдореЗрдВ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЦрддреНрдо рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;

namespace NetCoreReporting
{


    public class Program
    {


        public static void Main(string[] args)
        {
            System.Data.SqlClient.SqlConnectionStringBuilder csb = new System.Data.SqlClient.SqlConnectionStringBuilder();
            csb.InitialCatalog = "TestDB";

            if ("COMPANY_NAME".Equals(System.Environment.UserDomainName, System.StringComparison.InvariantCultureIgnoreCase))
                csb.DataSource = System.Environment.MachineName + @"\SQLEXPRESS";
            else
                csb.DataSource = System.Environment.MachineName;

            if(System.Environment.OSVersion.Platform == System.PlatformID.Unix)
                csb.IntegratedSecurity = false;
            else
                csb.IntegratedSecurity = true;

            if (!csb.IntegratedSecurity)
            {
                csb.UserID = TestPlotly.SecretManager.GetSecret<string>("DefaultDbUser");
                csb.Password = TestPlotly.SecretManager.GetSecret<string>("DefaultDbPassword");
            }



            string sql = "SELECT * FROM T_Sites";
            // sql = "SELECT * FROM T_Users";

            System.Data.DataTable dt = new System.Data.DataTable();

            using (System.Data.Common.DbDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(sql, csb.ConnectionString))
            {
                da.Fill(dt);
            }

            string fn = "wwwroot/Report1.rdl";
            fn = "wwwroot/Report2.rdl";

            AspNetCore.Reporting.LocalReport lr = new AspNetCore.Reporting.LocalReport(fn);


            System.Collections.Generic.Dictionary<string, string> parameters = 
                new System.Collections.Generic.Dictionary<string, string>();

            // parameters.Add("in_logo", "base64");

            lr.AddDataSource("DataSet1", dt); // DataSet1 is the name of the DataSet in the report




            // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Html, 1, null, "");

            // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Rpl, 1, null, ""); // Kaboom 
            // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Html, 2, null, "");
            // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Pdf, 1, null, "");
            // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Excel, 1, null, "");
            // var rr = lr.Execute(AspNetCore.Reporting.RenderType.ExcelOpenXml, 1, null, "");
            // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Word, 1, null, "");
            // var rr = lr.Execute(AspNetCore.Reporting.RenderType.WordOpenXml, 1, null, "");
            // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Atom, 1, null, "");
            // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Xml, 1, null, "");
            // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Json, 1, null, "");// KABOOM 
            // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Csv, 1, null, "");

            var rr = lr.Execute(AspNetCore.Reporting.RenderType.Pptx, 1, parameters, "");

            System.Console.WriteLine(rr.TotalPages);


            string dir = @"d:\";
            if (System.Environment.OSVersion.Platform == System.PlatformID.Unix)
                dir = "/opt/";

            // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.htm"), rr.MainStream);
            // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.css"), rr.SecondaryStream);
            // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.pdf"), rr.MainStream);
            // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.xls"), rr.MainStream);
            // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.xlsx"), rr.MainStream);
            // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.doc"), rr.MainStream);
            // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.docx"), rr.MainStream);
            // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.tiff"), rr.MainStream);

            // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.atom.xml"), rr.MainStream);
            // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.xml"), rr.MainStream);
            // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.json"), rr.MainStream);
            // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.csv"), rr.MainStream);

            // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.rpl"), rr.MainStream); // BOOM 
            // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.htm"), rr.MainStream);
            System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.pptx"), rr.MainStream);

            BuildWebHost(args).Run();
        }


        public static IWebHost BuildWebHost(string[] args)
        { 
            return WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .Build();
        }


    }


}

@ALL : рдХреЛрдИ рднреА рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ?
рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЛ:
https://stackoverflow.com/questions/52093440/how-to-call-wine-dll-functions-from-c

рдХреНрдпрд╛ рдореИрдВ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдб рдФрд░ рд▓рдВрдмрд╛рдИ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдкрдЪрдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реИ?

рдореИрдВ рдмрд╣реБрдд рд╕реА рдЧрддрд┐рд╡рд┐рдзрд┐, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рднреА рд╕рдордЭрджрд╛рд░ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ (рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ) рд╢рд╛рдирджрд╛рд░ рдШрдЯрдирд╛рдХреНрд░рдо рд░рд╣рд╛ рд╣реИред

рдХреНрдпрд╛ рдореИрдВ рдпрд╣рд╛рдВ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд╛рдл рд╕реБрдерд░рд╛ рд░рдЦрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЕрдиреНрдп рд░реЗрдкреЛ / рдЙрдкрдпреБрдХреНрдд рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдХреНрдпрд╛ рдХреЛрдИ рд╕рд╛рджрд╛ рдФрд░ рд╕рд░рд▓ рд╕реНрдерд┐рддрд┐ рдЕрдкрдбреЗрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдпрд╣рд╛рдВ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

@kierenj рдХреА рддрд░рд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдкреЛрд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдб рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдПрдХ рдЧрд┐рддреБрдм рд░рдЦреЛ рдФрд░ рдлрд┐рд░ рдПрдХ рд▓рд┐рдВрдХ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рд░реЗрдкреЛ рдХреЗ рдкреНрд░рд╢рдВрд╕рдХ рдХреБрдЫ рд╢рд╛рдЦрд╛рдПрдВ рдЖрджрд┐ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ ...

@kierenj @figuerres : рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реЛ

iiiред рд╡рд┐рддрд░рдг рдкреНрд░рддрд┐рдмрдВрдзред рддреБрдо рд╢рд╛рдпрдж рдирд╣реАрдВ
тАв рд╡рд┐рддрд░рдг рдордВрдЪ рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдВ;
тАв рдХреЛрдб рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдпрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд░реВрдк рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; рдпрд╛
тАв рджреВрд╕рд░реЛрдВ рдХреЛ рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИред

@ststeiger
рдФрд░ рдЖрдк рдПрдХ рд╢рд╛рдЦрд╛ рдмрдирд╛рдиреЗ рдФрд░ рдЙрд╕ рд╢рд╛рдЦрд╛ рдореЗрдВ рдХреЛрдб рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдкреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдлрд┐рд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдпрд╣ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЖрджрд┐ ...

@ рдПрдлрд┐рдЧреБрдПрд░реЗрд╕ : рдореИрдВрдиреЗ рд░реЗрдкреЛ рдХреЛ рдЧрд┐рдЯрд▓реИрдм рдкрд░ рдмрдирд╛рдпрд╛, рдЬрд╣рд╛рдВ рдПрдХ рдирд┐рдЬреА рднрдВрдбрд╛рд░ рдореБрдлреНрдд рд╣реИред

@MaximRouiller :
рдореЗрд░реЗ рдкрд╛рд╕ ASP.NET рдХреЛрд░ рдХреЗ рддрд╣рдд рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ ReportViewer (рд╕реНрдерд╛рдиреАрдп рд░рд┐рдкреЛрд░реНрдЯ) рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдЧрд╛ред
рдЗрд╕рдХрд╛ рд▓рдЧрднрдЧ 75% рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП Microsoft рдиреЗ SQL-Server рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИред
рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдореИрдХрдУрдПрд╕ рдХреЗ рддрд╣рдд рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╡рд╛рд▓реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐ ReportViewer рдХрд╛ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдХреЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣реИ
https://www.nuget.org/packages/AspNetCore.Reporting
рдЬреЛ рдХреЛрдб рд╕реЗ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдиреЗ рд▓рдЧрддрд╛ рд╣реИ
https://www.nuget.org/packages/Microsoft.ReportingServices.ReportViewerControl.WebForms
рдЬреЛ рдЗрд╕ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИ
http://go.microsoft.com/fwlink/?LinkId=826162

рдпрд╣ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ
тАв рд╡рд┐рддрд░рдг рдордВрдЪ рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдВ;
тАв рдХреЛрдб рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдпрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд░реВрдк рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; рдпрд╛
тАв рджреВрд╕рд░реЛрдВ рдХреЛ рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИред
тАв рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдореЗрдВ рдХрд┐рд╕реА рднреА рддрдХрдиреАрдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдирд╛;
тАв - рдХреЛрдИ рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ <

рдореИрдВ (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ) рдХреЛрдб рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдХрд┐рд╕реА рднреА рд╕рдВрднрд╡ рд╢реЗрд╖ рдХреАрдбрд╝реЗ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП .NET рдХреЛрд░ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ, рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рдЬреАрдердм рдкрд░ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рдЙрд╕ рдХреЛрдб рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ ReportViewerControl.WebForms рдХреЗ рд╡рд░реНрддрдорд╛рди рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рдПрдХрддрд░рдлрд╛ рдРрд╕рд╛ рдХрджрдо рдирд╣реАрдВ рдЙрдард╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЛ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ / рдЕрдВрддрд┐рдо-рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, .NET рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрд╡рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдХрдо рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬрдм рдкрд░рд┐рдгрд╛рдо рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ - рдпрд╣ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ Microsoft рдиреЗ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП SQL-Server рдЬрд╛рд░реА рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рдордп рдореЗрдВ, SSRS рдХреЛ рд╡реИрд╕реЗ рднреА рдкрд╛рд▓рди рдХрд░реЗрдВред

рдФрд░ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ ASP.NET-Core WebForms рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, ReportViewer-WebForms рд╕реЗ ReportViewer-NetCore рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╡реИрд╕реЗ рднреА рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рдЖрдк рд╡рд┐рд╡реЗрдХрдкреВрд░реНрд╡рдХ рдЙрди рд╢рдХреНрддрд┐рдпреЛрдВ рд╕реЗ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╡реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЛ рд╣рд░реА рд░реЛрд╢рдиреА рджреЗрддреЗ рд╣реИрдВ - рдЬреЛ рд╕рдВрдпреЛрдЧрд╡рд╢ THEM рд╕рдордп рдФрд░ рд╢реНрд░рдорд╢рдХреНрддрд┐ рдХреЛ рднреА рдмрдЪрд╛рдПрдЧрд╛, рдФрд░ .NET-Core / рдХреЗ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░рдХреГрддрд┐ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░реЗрдЧрд╛ред NetStandard 2.0ред

.NET-Core рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ 2 рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╡реНрдпрд╛рдкрдХ рдФрд░ рджреВрд░ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рдордп рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрдзрд╛рд░рд╛ рдЬрд╛рдПред
рдпрджрд┐ рд╣рдо рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕рднреА рддреЗрдЬреА рд╕реЗ рдФрд░ рдмреЗрд╣рддрд░ рд╣реЛрдВрдЧреЗред

http://go.microsoft.com/fwlink/?LinkId=826162
рдореИрдВ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВред
рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореИрдВ NuGet рд╕реЗ рд╕рдВрдХреБрд▓ рдХреЛ рдЕрд╕реВрдЪреАрдмрджреНрдз рдХрд░реВрдБрдЧрд╛ред

@ALL : Greate news: XLS / DOC рдХреЗ рд▓рд┐рдП COM-InterOP- рдХреЙрд▓ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ OpenMcdf рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ред
XLS / DOC-Renderer рдЗрд╕рд▓рд┐рдП рдЕрдм рд▓рд┐рдирдХреНрд╕ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рджреЛрдиреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЕрдм рд▓рд┐рдирдХреНрд╕ рдкрд░ 85% рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо PDFWriter рдХреЗ рд▓рд┐рдП 3 WinAPI- рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рд╣реИрдВ, рдФрд░ ImageRenderer / рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП 13 WinAPI- рдХреЙрд▓ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ PdfWriter рд╣реА рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рдп @ststeiger рдореИрдВ

рдЕрднреА рддрдХ рдирд╣реАрдВ - рдпрд╣ GDI + рдФрд░ usp10.dll рдХреЗ рд▓рд┐рдП рдХрдИ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдлрд╝реЙрдиреНрдЯ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ GDI + рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рдЖрд╕-рдкрд╛рд╕ рд╕реЗ рдЧреБрдЬрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдХреЛрдИ рд╕рд░рд▓ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореЛрдиреЛ рд▓рд┐рдмрдЧрдбрд╝реА + рдиреЗ рдЪреАрдЬреЛрдВ рдХреЛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рд╣реИ (рдЕрдЪреНрдЫреЗ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП)ред

рдореИрдВ рд╢рд░рд╛рдм рдХреЗ C рд╕реНрд░реЛрдд рдХреЛ рдкрдврд╝рдХрд░ C # рдореЗрдВ GetFontData рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЯреНрд░реВ рдЯрд╛рдЗрдк рдлрд╝реЙрдиреНрдЯ рдЬрд╛рдирдХрд╛рд░реА (рд╡рд╛рдЗрди рдлреНрд░реАрдЯрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ) рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП freetype рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
SixLabors.Fonts рдФрд░ LayoutFarm рдЕрднреА рддрдХ рд╡рд╣рд╛рдБ рдирд╣реАрдВ рд╣реИрдВ (рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЬрд┐рди рджреНрд╡рд╛рд░рд╛)ред
рдпрд╣рд╛рдБ:
https://gist.github.com/ststeiger/273341aebd29009f2b272b822b69563f

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдЯреЗрдХреНрд╕реНрдЯ-рдорд╛рдкреЛрдВ рдХреЛ рдлрд╝реНрд░реАрдЯрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛

рдЕрдм рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ GDI рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИрдВрдбрд▓ рдХреЛ рдХрд╕реНрдЯрдо рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЙрд╕ рд╡рд░реНрдЧ рдореЗрдВ рддрдм рдлрд╝реЙрдиреНрдЯ / рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ / рдлрд╝реНрд░реАрдЯрд╛рдЗрдк-рдлреЗрд╕ / рд╣реИрдВрдбрд▓ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд░реЗрдВрдбрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЬрдм рдРрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдкреЗрдкрд░-рдЯреВ-рд╡рд░реНрд▓реНрдб рдФрд░ рджреБрдирд┐рдпрд╛-рджрд░-рдкреЗрдкрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╢рд░рд╛рдм рдХреЛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреЗрдкрд░-рдЯреВ-рд╡рд░реНрд▓реНрдб рдФрд░ рд╡рд░реНрд▓реНрдб-рдЯреВ-рдкреЗрдкрд░ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА System.Drawing.Graphics рдореЗрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдПрдХ рдмрд╛рд░ .NET Framwork 1.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдЕрднреА рднреА рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ .NET рдлреЙрдиреНрдЯ рдФрд░ рдлреНрд░реАрдЯрд╛рдЗрдк рдлреЙрдВрдЯ рдХреЗ рдмреАрдЪ рдореИрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрд░реЗ рджреЛрд╕реНрддреЛрдВ @ALL рдФрд░ @ststeiger
рдХрд╛ рд╕рдВрдмрдВрдз:

@ALL : Greate news: XLS / DOC рдХреЗ рд▓рд┐рдП COM-InterOP- рдХреЙрд▓ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ OpenMcdf рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ред
XLS / DOC-Renderer рдЗрд╕рд▓рд┐рдП рдЕрдм рд▓рд┐рдирдХреНрд╕ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рджреЛрдиреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЕрдм рд▓рд┐рдирдХреНрд╕ рдкрд░ 85% рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдХрд╛рд░реНрдпрд╛рд▓рдп рдУрдкрди рдПрдХреНрд╕рдПрдордПрд▓

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирдП XML doc рд╕рд╛рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛, рдлрд┐рд░ OLE рдХреА рдХрд┐рд╕реА рднреА рд░реВрдк рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдХреЛрдИ рдЕрднреА рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреБрд░рд╛рдиреЗ рдСрдлрд┐рд╕ рдРрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рддреЛ рдмреИрдХ рдХрдВрдкреНрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдСрдлрд┐рд╕ рдУрдкрди XML рд▓рдЧрднрдЧ 2002-2006 рдХреЗ рдЖрд╕рдкрд╛рд╕ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ 10 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╢рдмреНрдж рдпрд╛ рдПрдХреНрд╕реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐ dxx рдФрд░ xlsx рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкрд╛рдПрдЧрд╛ред
рдмрд╕ рдЙрд╕ рдкрд░ рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ ...

рдмрд╕ рдЗрд╕рд▓рд┐рдП рд╣рдо рд╣рдореЗрдВ рдЧрд▓рдд рди рд╕рдордЭреЗрдВ:
рдмреЗрд╢рдХ OpenXml рдПрдХреНрд╕реЗрд▓ рд░реЗрдВрдбрд░рд░ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рд╕рд┐рд░реНрдл рдХрд╣ рд░рд╣рд╛ рд╣реВрдБ XLS / DOC рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдХрд░рдирд╛ рд╣реИред
рдЕрдм рдЬреИрд╕рд╛ рдХрд┐ XLS / DOC рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВ, рдпрд╛ рдЬрд┐рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рдФрд░ рд╕рд╡рд╛рд▓ рд╣реИред рдЕрднреА рднреА рдХреБрдЫ рдкреБрд░рд╛рдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ XLSX рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП UBS рдЕрднреА рднреА COBOL рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреНрдп рд╣реИрдВред
рддреЛ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ XLS рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрдВ, рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВред

@RaymondHuy :
рдЕрдЧрд░ Azure рдиреЗ GDI + рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рддреЛ System.Drawing.Common рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдлреНрд░реЗрдорд╡рд░реНрдХ-рдмрд╛рд╣рд░реА DllImport рдХреЙрд▓ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ?

рд╣рдореНрдо, рдмрд╕ рдЗрд╕реЗ googledред
рд╕рд┐рд╕реНрдЯрдо рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред Azure Cloud Service (рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рд┐рд░реНрдл рдПрдХ VM) рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рд▓реЗрдХрд┐рди Azure рд╡реЗрдм рдРрдк (рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рд╛рдЭрд╛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ?) рдореЗрдВ рдирд╣реАрдВред
рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдПрдХ рдмрд╛рд░ рдЬрдм рдпрд╣ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдХреБрдЫ рднреА рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╕рд┐рдХреНрд╕рд▓реИрдмрд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ред рдмрд╛рдж рдореЗрдВ, рдЗрд╕реЗ рдПрдЬрд╝реНрдпреЛрд░ рд╡реЗрдм рдРрдк рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдпрд╣ рд▓рд╛рдЧрдд рд╕рдордп рдФрд░ рдкреНрд░рдпрд╛рд╕ рд╣реИред
@RaymondHuy :
рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ FreeType (SharpFont рдЖрд╡рд░рдг) Azure рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
https://github.com/Robmaister/SharpFont

рдзреНрдпрд╛рди рджреЗрдВ:
X64-Windows рдкрд░, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде FT_Long рдФрд░ FT_ULong рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреНрд▓реЙрдЬрд╝ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

#if WINDOWS
    using FT_Long = System.Int32;
    using FT_ULong = System.UInt32;    
#else // Linux, MacOS
    using FT_Long = System.IntPtr;
    using FT_ULong = System.UIntPtr;
#endif

рдХреНрдпреЛрдВрдХрд┐ рдкреИрдЪ freetype dlls x64- рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣рд╛рдБ рд╣реИ рдХрд┐ рдореИрдВ рдХреИрд╕реЗ рдХрд┐рдпрд╛:
https://gist.github.com/ststeiger/9e2eb98e29a3c987aca739045af1d2ce

(рдиреЛрдЯ: рдмрд┐рд▓реНрдб-рдСрдкреНрд╢рдВрд╕ рдореЗрдВ рд╡рд┐рдиреНрдбреЛрдЬрд╝ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ)

рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдХреЗ рд╕рд╛рде:

SharpFont.Native.Init();

SharpFont.Library lib = new SharpFont.Library();

string font = @"C:\Windows\Fonts\tahoma.ttf";
if(System.Environment.OSVersion.Platform == System.PlatformID.Unix)
    font = "/usr/share/wine/fonts/tahoma.ttf";

SharpFont.Face fontFace = new SharpFont.Face(lib, font);


float size = 12;
if (fontFace!= null)
    // fontFace.SetCharSize(0, size, 0, 96);
    fontFace.SetCharSize(size, size, 96, 96);

System.Console.WriteLine(fontFace.Size.Metrics.Ascender.ToDouble());

fontFace.Size.Metrics.Ascender рдПрдХ рдЕрдкрд╡рд╛рдж рдХрд╛ рдЙрддреНрдкрд╛рджрди рдЕрдЧрд░ рдЕрдЧрд░ WINDOWS рд╕реБрдзрд╛рд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдЬрдм рдореИрдВ .rdlc рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рддреЛ рдореБрдЭреЗ рдЕрдкрд╡рд╛рдж рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ
AspNetCore.ReportingServices.RdlExpressions.ExpressionHostObjectModel.DataRegionExprHost (TMemberType, TCellType рдХреА) in localreport.Execute ()
рдХреГрдкрдпрд╛ рдореЗрд░реА рдорджрдж рдХрд░реЗрдВ

        string sql = "SELECT * FROM employee";
        // sql = "SELECT * FROM T_Users";

        System.Data.DataTable dt = new System.Data.DataTable();

        using (System.Data.Common.DbDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(sql, csb.ConnectionString))
        {
            da.Fill(dt);
        }

        string fn = "wwwroot/Report1.rdl";
        fn = "wwwroot/InOutTab31.rdlc";

        AspNetCore.Reporting.LocalReport lr = new AspNetCore.Reporting.LocalReport(fn);


        System.Collections.Generic.Dictionary<string, string> parameters =
            new System.Collections.Generic.Dictionary<string, string>();
        parameters["TEN_ID"]="45";
        parameters["START_DATE"]="2018";
        parameters["END_DATE"]= "2018";

        // parameters.Add("in_logo", "base64");

        lr.AddDataSource("DsDayStatusTab31", dt); // DataSet1 is the name of the DataSet in the report




        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Html, 1, null, "");

        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Rpl, 1, null, ""); // Kaboom 
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Html, 2, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Pdf, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Excel, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.ExcelOpenXml, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Word, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.WordOpenXml, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Atom, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Xml, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Json, 1, null, "");// KABOOM 
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Csv, 1, null, "");

        var rr = lr.Execute(AspNetCore.Reporting.RenderType.Excel, 1, parameters, "");

        System.Console.WriteLine(rr.TotalPages);


        string dir = @"d:\";
        if (System.Environment.OSVersion.Platform == System.PlatformID.Unix)
            dir = "/opt/";

        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.htm"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.css"), rr.SecondaryStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.pdf"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.xls"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.xlsx"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.doc"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.docx"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.tiff"), rr.MainStream);

        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.atom.xml"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.xml"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.json"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.csv"), rr.MainStream);

        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.rpl"), rr.MainStream); // BOOM 
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.htm"), rr.MainStream);
        System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.pptx"), rr.MainStream);

        BuildWebHost(args).Run();

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдПрдореНрдмреЗрдбреЗрдб VB рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рд╡реИрд╕реЗ рднреА рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред

Microsoft.VisualBasic1 \ VBCodeGenerator.cs рдореЗрдВ
UseShellExecute рдХреЛ рдЭреВрдареЗ рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(cmd)
{
    WorkingDirectory = currentDir,
    RedirectStandardOutput = true,
    RedirectStandardInput = true,
    UseShellExecute = false  // <== or else it can't redirect output
};

рдФрд░ FromFileBatch рдХреЛ netstandard рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рд░реЛрд╕рд▓рд┐рди рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдХреЛрдбрдбреЙрдо рдкреНрд░рджрд╛рддрд╛ netstandard рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдпрджрд┐ VB- рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдкрд╡рд╛рдж рдЕрдкрд╡рд╛рдж рд╣реИрдВ, рдЬреИрд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ)


        protected override System.CodeDom.Compiler.CompilerResults FromFileBatch(System.CodeDom.Compiler.CompilerParameters options, string[] fileNames)
        {

#if NETSTANDARD2_0
            return NetStandardFromFileBatch(options, fileNames);
#else
            return OldFromFileBatch(options, fileNames);
#endif
        }




#if NETSTANDARD2_0         



        protected System.CodeDom.Compiler.CompilerResults NetStandardFromFileBatch(System.CodeDom.Compiler.CompilerParameters options, string[] fileNames)
        {
            //// C:\Program Files\dotnet\sdk\2.0.0\Roslyn

            //string sysver = System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion();
            //System.Console.WriteLine(sysver);


            //string pf64 = System.Environment.ExpandEnvironmentVariables("%ProgramW6432%");
            //string pf32 = System.Environment.ExpandEnvironmentVariables("%ProgramFiles(x86)%");
            //string pf = pf32;

            //if (System.IntPtr.Size * 8 == 64)
            //    pf = pf64;

            //// compilerDirectory = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles);
            ////compilerDirectory = System.IO.Path.Combine(compilerDirectory, "dotnet", "sdk", "2.0.0", "Roslyn");
            //compilerDirectory = System.IO.Path.Combine(pf32, "MSBuild", "14.0", "Bin");
            //if (System.IntPtr.Size * 8 == 64)
            //    compilerDirectory = System.IO.Path.Combine(compilerDirectory, "amd64");

            string assemblyName = System.IO.Path.GetFileNameWithoutExtension(options.OutputAssembly);

            Microsoft.CodeAnalysis.SyntaxTree[] syntaxTrees = new Microsoft.CodeAnalysis.SyntaxTree[fileNames.Length];

            for (int i = 0; i < fileNames.Length; ++i)
            {
                string fileContent = System.IO.File.ReadAllText(fileNames[i], System.Text.Encoding.UTF8);

                Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions op = null;

                // ERR_EncodinglessSyntaxTree = 37236 - Encoding must be specified... 
                syntaxTrees[i] = Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxTree.ParseText(
                    fileContent, op, fileNames[i], System.Text.Encoding.UTF8
                );

            }

            Microsoft.CodeAnalysis.MetadataReference[] references =
                new Microsoft.CodeAnalysis.MetadataReference[options.ReferencedAssemblies.Count];

            for (int i = 0; i < references.Length; ++i)
            {
                references[i] = Microsoft.CodeAnalysis.MetadataReference.CreateFromFile(
                    options.ReferencedAssemblies[i]
                );
            }



            Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions co =
                new Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions
            (
                Microsoft.CodeAnalysis.OutputKind.DynamicallyLinkedLibrary
            );

            co.WithOptionStrict(Microsoft.CodeAnalysis.VisualBasic.OptionStrict.Off);
            co.WithOptionExplicit(false);
            co.WithOptionInfer(true);

            Microsoft.CodeAnalysis.Compilation compilation = Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation.Create(
                assemblyName,
                syntaxTrees,
                references,
                co
            );


            System.CodeDom.Compiler.CompilerResults compilerResults = new System.CodeDom.Compiler.CompilerResults(options.TempFiles);

            compilerResults.NativeCompilerReturnValue = -1;

            // using (var dllStream = new System.IO.MemoryStream())
            using (System.IO.FileStream dllStream = System.IO.File.Create(options.OutputAssembly))
            {
                using (System.IO.MemoryStream pdbStream = new System.IO.MemoryStream())
                {
                    Microsoft.CodeAnalysis.Emit.EmitResult emitResult = compilation.Emit(dllStream, pdbStream);
                    if (!emitResult.Success)
                    {

                        foreach (Microsoft.CodeAnalysis.Diagnostic diagnostic in emitResult.Diagnostics)
                        {
                            // options.TreatWarningsAsErrors
                            if (diagnostic.IsWarningAsError || diagnostic.Severity == Microsoft.CodeAnalysis.DiagnosticSeverity.Error)
                            {
                                string errorNumber = diagnostic.Id;
                                string errorMessage = diagnostic.GetMessage();

                                string message = $"{errorNumber}: {errorMessage};";
                                string fileName = diagnostic.Location.SourceTree.FilePath;

                                Microsoft.CodeAnalysis.FileLinePositionSpan lineSpan = diagnostic.Location.GetLineSpan();
                                string codeInQuestion = lineSpan.Path;
                                int line = lineSpan.StartLinePosition.Line;
                                int col = lineSpan.StartLinePosition.Character;

                                compilerResults.Errors.Add(
                                    new System.CodeDom.Compiler.CompilerError(fileName, line, col, errorNumber, errorMessage)
                                );
                            } // End if 

                        } // Next diagnostic 

                        // emitResult.Diagnostics
                        // CheckCompilationResult(emitResult);
                    }
                    else
                    {
                        compilerResults.PathToAssembly = options.OutputAssembly;
                        compilerResults.NativeCompilerReturnValue = 0;
                    }
                }
            }

            // compilerResults.CompiledAssembly = System.Reflection.Assembly.Load(array3, null);

            return compilerResults;
        }
#endif

рд╡рд╣рд╛рдБ рдореЗрдВ RoslynCodeDomProviders рд╣реИрдВ https://github.com/aspnet/RoslynCodeDomProvider , рд▓реЗрдХрд┐рди рд╡реЗ рд╡реИрд╕реЗ рднреА рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рд░реЛрд╕рд▓рд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдФрд░ "C: \ WINDOWS \ Microsoft.NET \ Framework" рдХреЗ рд╕рд╛рде рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд╛ рд╕рдВрдХрд▓рди\\ vbc.exe "рд╡реИрд╕реЗ рднреА рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдЕрдм рдореБрдЭреЗ рдкреВрд░рд╛ HTML4, HTML5 рдФрд░ MHTML- рд░реЗрдВрдбрд░рд░ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрд╛ред
рд╕рд┐рд░реНрдл рдкрдЧрд▓реА рд╣реА рдирд╣реАрдВред

рдирдорд╕реНрддреЗ рдореИрдВ [https://www.nuget.org/packages/AspNetCore.Reporting] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рд╕реНрдерд╛рдиреАрдп IIS рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ рдЗрд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕рд░реНрд╡рд░ 2012 R2 рдореЗрдВ рддреИрдирд╛рдд рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЖрддреА рд╣реИред

рддреНрд░реБрдЯрд┐ рд▓реЙрдЧред

рд╡рд┐рдлрд▓: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware [1]
рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЕрдЦрдВрдб рдЕрдкрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рд╣реБрдЖ рд╣реИред
AspNetCore.Reporting.LocalProcessingException: рд╕реНрдерд╛рдиреАрдп рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реБрдИред рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ 'D: \ Apps \ BillingApproval \ ReportFiles \ ReleaseProcess.rdl' рдЕрдорд╛рдиреНрдп рд╣реИред
рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддреНрд░реБрдЯрд┐ рд╣реБрдИред рдореВрд▓ рд╕рдВрдХрд▓рдХ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп: -1073741819'. ---> AspNetCore.Reporting.DefinitionInvalidException: The definition of the report 'D:\Apps\BillingApproval\ReportFiles\ReleaseProcess.rdl' is invalid. An unexpected error occurred while compiling expressions. Native compiler return value: -1073741819 тАЩред ---> AspNetCore.ReportingServices.ReportProcessing.ReportPublishingException: рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддреНрд░реБрдЯрд┐ рд╣реБрдИред рдореВрд▓ рд╕рдВрдХрд▓рдХ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп: -1073741819'. at AspNetCore.ReportingServices.ReportPublishing.ReportPublishing.InternalCreateIntermediateFormat(Stream definitionStream, String& description, String& language, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash) at AspNetCore.ReportingServices.ReportPublishing.ReportPublishing.CreateIntermediateFormat(Byte[] definition, String& description, String& language, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash) at AspNetCore.ReportingServices.ReportProcessing.ReportProcessing.CompileOdpReport(PublishingContext reportPublishingContext, PublishingErrorContext errorContext, String& reportDescription, String& reportLanguage, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash) at AspNetCore.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext) at AspNetCore.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ControlSnapshot& snapshot) --- End of inner exception stack trace --- at AspNetCore.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ControlSnapshot& snapshot) at AspNetCore.Reporting.LocalService.GetCompiledReport(PreviewItemContext itemContext, Boolean rebuild, ControlSnapshot& snapshot) at AspNetCore.Reporting.LocalService.CompileReport() at AspNetCore.Reporting.LocalService.AspNetCore.Reporting.ILocalProcessingHost.CompileReport() at AspNetCore.Reporting.InternalLocalReport.EnsureExecutionSession() --- End of inner exception stack trace --- at AspNetCore.Reporting.InternalLocalReport.EnsureExecutionSession() at AspNetCore.Reporting.InternalLocalReport.SetParameters(IEnumerable 1 рдкреИрд░рд╛рдореАрдЯрд░)
AspNetCore.Reporting.Report.SetParameters (ReportParameter рдкреИрд░рд╛рдореАрдЯрд░)
AspNetCore.Reporting.LocalReport.Execute (RenderType renderType, Int32 pageIndex, Dictionary 2 parameters, String findString) at BA.UI.WebV2.Extension.AspNetCoreReportingExtension.ExecuteToMemoryStreamResult(LocalReport localreport, RenderType rendertype, Int32 index, Dictionary 2 рдкреИрд░рд╛рдореАрдЯрд░, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рд░реНрдЪрд╕реНрдЯреЛрд░рд┐рдВрдЧ) рдореЗрдВ D: \ Projects рдХрд╛ рдЕрдиреБрдореЛрджрди / Main \ BA.UI.WebV2 \ Extension \ AspNetCoreReportingExtension: рд▓рд╛рдЗрди 27
BA.UI.WebV2.Controllers.ReportsController.ReleaseProcessToPDF (DateTime, DateTime рд╕реЗ) рдореЗрдВ D: \ Projects \ Approval \ Main \ BA.UI.WebV2 / рдирд┐рдпрдВрддреНрд░рдХреЛрдВ \ ReportController.cs: рд▓рд╛рдЗрди 65
lambda_method (рдмрдВрдж рд╣реЛрдиреЗ, рд╡рд╕реНрддреБ, рд╡рд╕реНрддреБ []) рдкрд░
Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.SyncActionResultExecutor.Execute (IActionResultTypeMapper рдореИрдкрд░, ObjectMethodExecutor рдирд┐рд╖реНрдкрд╛рджрдХ, рдСрдмреНрдЬреЗрдХреНрдЯ рдирд┐рдпрдВрддреНрд░рдХ, рдСрдмреНрдЬреЗрдХреНрдЯ [] рддрд░реНрдХ])
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync () рдкрд░
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync () рдкрд░
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow (ActionExecutedContext рд╕рдВрджрд░реНрдн) рдкрд░
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next рдкрд░ (рд░рд╛рдЬреНрдп рдФрд░ рдЕрдЧрд▓рд╛, рд╕реНрдХреЛрдк рдФрд░ рдЧреБрдВрдЬрд╛рдЗрд╢, рд╡рд╕реНрддреБ рдФрд░ рд░рд╛рдЬреНрдп, рдмреВрд▓рд┐рдпрди рдФрд░ isCompleted)
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync () рдкрд░
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter рдкрд░)
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow (ResourceExecutedContext) рдкрд░
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next рдкрд░ (рд░рд╛рдЬреНрдп рдФрд░ рдЕрдЧрд▓рд╛, рд╕реНрдХреЛрдк рдФрд░ рд╕реНрдХреЛрдк, рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд░рд╛рдЬреНрдп, рдмреВрд▓рд┐рдпрди рдФрд░ isCompleted)
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync () рдкрд░
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync () рдкрд░
Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke (HttpContext httpContext) рдкрд░
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke (HttpContext) рдкрд░]
Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke (HttpContext рд╕рдВрджрд░реНрдн) рдкрд░
Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMieldware.Invoke (HttpContext рд╕рдВрджрд░реНрдн) рдкрд░

@jfmjason : рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм
рдЪреВрдВрдХрд┐ рдЖрдк .NET 4.0 рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде .NET рдХреЛрд░ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ RoslynCompilers рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ System.CodeDom рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред рдореЗрд░реЗ рдКрдкрд░ NetStandardFromFileBatch рдареАрдХ рдЙрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ (рдФрд░ рдЕрдЧрд░ рдиреЗрдЯрдлреНрд░реЗрдорд╡рд░реНрдХ 4 рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди рдХрд░рддрд╛ рд╣реИ рддреЛ рдХреЛрдбрдбреЙрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ)ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ .NET рдХреЛрд░ рдореЗрдВ VB рд░рдирдЯрд╛рдЗрдо рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╕реАрдорд┐рдд рд╣реИред
рдЕрд╕рд▓ рдореЗрдВ, .NET рдХреЛрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ VB.NET рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк Microsoft рдореЗрдВ рдореВрд▓ VB рд╕рд╛рдорд╛рди рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ 50 рдпрд╛ рддреЛ VB рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕, рдЬреИрд╕реЗ рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯ, рдЯреНрд░рд┐рдо, AscW, ChrW, LCase, рд▓реЗрди, рдорд┐рдб, Microsoft рдореЗрдВред VisualBasic.Strings - .NET Core 2.0 рдЙрдирдореЗрдВ рд╕реЗ рдареАрдХ 2 рд╣реИрдВ, AscW рдФрд░ ChrW ...

рдпрджрд┐ рдЖрдк рдЬреАрдердм рдкрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрд░реЛрдд рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЕрднреА, рд╡реЗ рд╡рд╣рд╛рдВ рд╣реИрдВ - рд▓реЗрдХрд┐рди рд╕рднреА рд╕реНрдЯрдмреНрд╕ рд╣реИрдВ рдЬреЛ рдЕрд╢рдХреНрдд рд╣реИрдВред
https://github.com/dotnet/corefx/blob/master/src/Microsoft.VisualBasic/ref/Microsoft.VisualBasic.cs

рддреЛ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╡реАрдмреА рдХреЛрдб рдХреЛ рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ - .NET рдХреЛрд░ рдФрд░ рдиреЗрдЯрдлреНрд░реЗрдорд╡рд░реНрдХ рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рддреЛ @ALL : рдпрд╣рд╛рдБ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ:
рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдб рдмрд┐рдирд╛ рд╕рдВрд╢реЛрдзрди рдХреЗ .NET рдХреЛрд░ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ Microsoft.VisualBasic.cs рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ-рдлрд╝рдВрдХреНрд╢рдВрд╕ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред
рдпрд╛ рд╡реАрдмреА-рд░рдирдЯрд╛рдЗрдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдорд╛рди рдХреЛ рд╣рдЯрд╛ рджреЗрдВ, рдФрд░ рд╕реА # рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рд╕рджрд╕реНрдп рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдЬреИрд╕реЗ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВред рд▓реЗрди рдХреЗ рдмрдЬрд╛рдп, рдЗрдВрдбреЗрдХреНрд╕рдСрдл рдЗрдирд╕реНрдЯреНрд░ рдХреЗ рдмрдЬрд╛рдп, рдорд┐рдб рдХреЗ рдмрдЬрд╛рдп рд╕рдмрдЯреНрд░рд╛рдВрдЧ, "рдмреАрдПрд▓рдП"ред рдЯреЙрд▓реЗрд╡рд░ () рдПрд▓рд╕реАрдПрд╕ рдХреЗ рдмрдЬрд╛рдпред ("рдмреАрдПрд▓рдП") рдЖрджрд┐ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, VB- рдХреЛрдб рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рди рдХреЗрд╡рд▓ .NET рдХреЛрд░ рдореЗрдВ, рдЕрд╢рдХреНрдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реИрдВ?
рддреЛ рдбрдмрд▓ рдХреЗ рдмрдЬрд╛рдп System.Nullable (рдбрдмрд▓ рдХрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ?, рдпрджрд┐ рдЖрдкрдХреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рд░рд┐рдЯрд░реНрди рдорд╛рди рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

NuGets:
Microsoft.CodeAnalysis.Common, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.VisualBasic

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕рдВрджрд░реНрдн ExprHostCompiler.cs рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
(AspNetCore.ReportingServices.RdlExpressions \ ExprHostCompiler.cs)

   private static System.Reflection.Assembly GetNetStdAssembly()
        {
            System.Reflection.Assembly nsAssembly = null;

            System.Reflection.AssemblyName[] asms = typeof(Microsoft.VisualBasic.Constants).Assembly.GetReferencedAssemblies();


            foreach (System.Reflection.AssemblyName asm in asms)
            {
                if (asm.FullName.StartsWith("netstandard,", System.StringComparison.OrdinalIgnoreCase))
                {
                    nsAssembly = System.Reflection.Assembly.Load(asm.FullName);
                    break;
                }
            }

            return nsAssembly;


            //System.Reflection.Assembly[] asms = System.AppDomain.CurrentDomain.GetAssemblies();
            //
            //foreach (System.Reflection.Assembly asm in asms)
            //{
            //    if (asm.FullName.StartsWith("netstandard,", System.StringComparison.OrdinalIgnoreCase))
            //    {
            //        nsAssembly = asm;
            //        break;
            //    }
            //}

            // return nsAssembly;
        }



        private byte[] InternalCompile(System.AppDomain compilationTempAppDomain, bool refusePermissions)
        {
            if (m_builder.HasExpressions)
            {
                System.CodeDom.Compiler.CompilerParameters compilerParameters = new System.CodeDom.Compiler.CompilerParameters();
                compilerParameters.OutputAssembly = System.IO.Path.Combine(System.IO.Path.GetTempPath(), m_expressionHostAssemblyHolder.ExprHostAssemblyName, "ExpressionHost.dll");
                compilerParameters.TempFiles = new System.CodeDom.Compiler.TempFileCollection(System.IO.Path.GetDirectoryName(compilerParameters.OutputAssembly));
                compilerParameters.GenerateExecutable = false;
                compilerParameters.GenerateInMemory = false;
                compilerParameters.IncludeDebugInformation = false;

                compilerParameters.ReferencedAssemblies.Add(typeof(AspNetCore.Reporting.InternalLocalReport).Assembly.Location);

                // Real reportServer
                // compilerParameters.ReferencedAssemblies.Add("System.dll");
                // compilerParameters.ReferencedAssemblies.Add(typeof(AspNetCore.ReportingServices.RdlExpressions.ExpressionHostObjectModel.ReportObjectModelProxy).Assembly.Location);
                // compilerParameters.ReferencedAssemblies.Add(typeof(Microsoft.SqlServer.Types.SqlGeography).Assembly.Location);

#if NETSTANDARD2_0

                // Assemblies: mscorlib.dll, netstandard.dll, System.Threading.Thread.dll
                // System.Threading.Thread.dll, not netstandard.dll ...
                //// compilerParameters.ReferencedAssemblies.Add(typeof(System.LocalDataStoreSlot).Assembly.Location);

                // compilerParameters.ReferencedAssemblies.Add(System.Linq.Enumerable.FirstOrDefault(System.Linq.Enumerable.Where(System.AppDomain.CurrentDomain.GetAssemblies(), (System.Reflection.Assembly t) => t.FullName.Contains("netstandard,"))).Location);

                // netstandard.dll
                compilerParameters.ReferencedAssemblies.Add(GetNetStdAssembly().Location);

                // System.Private.CoreLib.dll
                compilerParameters.ReferencedAssemblies.Add(typeof(System.MarshalByRefObject).Assembly.Location);

                // System.Runtime.dll
                compilerParameters.ReferencedAssemblies.Add(typeof(System.IO.FileAttributes).Assembly.Location);

                // Microsoft.VisualBasic.dll
                compilerParameters.ReferencedAssemblies.Add(typeof(Microsoft.VisualBasic.Constants).Assembly.Location);

                //compilerParameters.ReferencedAssemblies.Add(typeof(string).Assembly.Location);
                //compilerParameters.ReferencedAssemblies.Add(typeof(System.Uri).Assembly.Location);

                //compilerParameters.ReferencedAssemblies.Add(typeof(System.Drawing.RectangleF).Assembly.Location);
                //compilerParameters.ReferencedAssemblies.Add(typeof(System.Drawing.Graphics).Assembly.Location);

                //compilerParameters.ReferencedAssemblies.Add(typeof(System.Data.Common.DbCommand).Assembly.Location);
                //compilerParameters.ReferencedAssemblies.Add(typeof(System.Data.SqlClient.SqlCommand).Assembly.Location);

                //// compilerParameters.ReferencedAssemblies.Add(typeof(System.LocalDataStoreSlot).Assembly.Location);
#else

                // mscorlib
                compilerParameters.ReferencedAssemblies.Add(typeof(string).Assembly.Location); 

                // System.Core
                // Already contains reference to System.Core
                // compilerParameters.ReferencedAssemblies.Add(typeof(System.IO.Pipes.PipeSecurity).Assembly.Location);

                // Microsoft.CSharp
                // compilerParameters.ReferencedAssemblies.Add(typeof(Microsoft.CSharp.RuntimeBinder.RuntimeBinderException).Assembly.Location); 

                // Microsoft.VisualBasic.Constants
                compilerParameters.ReferencedAssemblies.Add(typeof(Microsoft.VisualBasic.Constants).Assembly.Location); 

                // System
                // Already contains reference to System
                // compilerParameters.ReferencedAssemblies.Add(typeof(System.Uri).Assembly.Location); 
                // Already contains reference to System.Drawing
                // compilerParameters.ReferencedAssemblies.Add(typeof(System.Drawing.Graphics).Assembly.Location);
                // Already contains reference to System.Data 
                // compilerParameters.ReferencedAssemblies.Add(typeof(System.Data.DataTable).Assembly.Location);
#endif

                compilerParameters.CompilerOptions += m_langParser.GetCompilerArguments();

@ amh1979 : рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕реЗ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпреВрдЕрд░ рдХреЗ рдкреГрд╖реНрдард╛рдВрдХрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдкреГрд╖реНрдардмрджреНрдз HTML рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореЗрдВ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЪрд┐рддреНрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ?
рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдореИрдВрдиреЗ ReportServer рд╕реЗ html4 рдФрд░ 5 рдкреВрд░реНрдг рд░реЗрдВрдбрд░рд░ рд▓рд┐рдпрд╛, рддреЛ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛ рдХреЗ рдПрдХ axd рдпрд╛ ashx рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕реМрдВрдк рджрд┐рдпрд╛ рдЧрдпрд╛ред рд╡реЗ рд╣рд╛рд▓рд╛рдВрдХрд┐ MHT рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдПред

рдЙрдиреНрд╣реЗрдВ рд╕рдВрднрд╡рддрдГ url рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ("рдбреЗрдЯрд╛: рдЫрд╡рд┐ / png; рдЖрдзрд╛рд░ 64, SOME_BASE64_IMAGE"); рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рддрд╛рдХрд┐ рд╡реЗ HTML рдореЗрдВ рдЗрдирд▓рд╛рдЗрди рд╣реЛрдВред
рдпрд╣ рдХрд╣рдирд╛ рд╣реИ, рдЕрдЧрд░ рд╡реЗ рдПрдХ рдЧреИрд░-рдмрд╛рд╣рд░реА рд▓рд┐рдВрдХ рдкрд░ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред
рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рджрд░реНрд╢рдХ рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

@ststeiger

рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рд╕реНрдерд╛рдиреАрдп рдЖрдИрдЖрдИрдПрд╕ рдореЗрдВ рдЕрдкрдиреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди (.net core 2.1) рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдкрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░реЗ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред
рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рд╕реНрдерд╛рдиреАрдп рд╡реЗрдм-рд╕рд░реНрд╡рд░ рдПрдХреАрдХреГрдд рдореЛрдб рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЪрд▓рддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рд▓реЙрдЬрд┐рдХ рдкрде, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреВрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рдЕрд╕реЗрдВрдмрд▓реА рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдЖрджрд┐ рдХреЛ рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд░реНрд╡рд┐рд╕рдкреИрдХреНрд╕, рдХрдореНрдпреБрд▓реЗрдЯрд┐рд╡рдбреЗрдЯреНрд╕ рдФрд░ рдЕрдиреНрдп рд░реЛрдорд╛рдВрдЪрдХ "рд╕реБрд╡рд┐рдзрд╛рдПрдБ"ред

рдПрдХ рдЫреЛрдЯрд╛ рдкрд░реАрдХреНрд╖рдг рдЖрд╡реЗрджрди рдХрд┐рдпрд╛ред
Win10 рдХреЗ рддрд╣рдд System.Drawing.Common рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
Ubuntu 16.04 рдкрд░ рдЪрд▓рдиреЗ рд╕реЗ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред
AspNetCore.Reporting.LocalProcessingException: рд╕реНрдерд╛рдиреАрдп рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реБрдИред рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ '/opt/testReportViewer/bin/Debug/netcoreapp2.1/Reports/Report1.rdlc' рдЕрдорд╛рдиреНрдп рд╣реИред
рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддреНрд░реБрдЯрд┐ рд╣реБрдИред
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА 'рдХрд░реНрдиреЗрд▓ 32.dll' рдпрд╛ рдЙрд╕рдХреА рдХрд┐рд╕реА рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдеред рд▓реЛрдбрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдирд┐рджрд╛рди рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, LD_DEBUG рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: libkernel32.dll: рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд╣реАрдВ рдЦреЛрд▓ рд╕рдХрддреЗ: рдРрд╕реА рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ ---> AspNetCore.Reporting.DefinitionInvalidException: рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ '/ рдСрдкреНрдЯ / testReportViewer' рдирд╣реАрдВ рд╣реИред /bin/Debug/netcoreapp2.1/Reports/Report1.rdlc 'рдЕрдорд╛рдиреНрдп рд╣реИред
рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддреНрд░реБрдЯрд┐ рд╣реБрдИред
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА 'рдХрд░реНрдиреЗрд▓ 32.dll' рдпрд╛ рдЙрд╕рдХреА рдХрд┐рд╕реА рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдеред рд▓реЛрдбрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдирд┐рджрд╛рди рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, LD_DEBUG рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: libkernel32.dll: рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд╣реАрдВ рдЦреЛрд▓ рд╕рдХрддрд╛: рдРрд╕реА рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ ---> AspNetCore.ReportingServices.ReportProcessing.eportProcessingException: рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддреНрд░реБрдЯрд┐ рдЖрдИред
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА 'рдХрд░реНрдиреЗрд▓ 32.dll' рдпрд╛ рдЙрд╕рдХреА рдХрд┐рд╕реА рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдеред рд▓реЛрдбрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдирд┐рджрд╛рди рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, LD_DEBUG рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: libkernel32.dll: рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд╣реАрдВ рдЦреЛрд▓ рд╕рдХрддрд╛: рдРрд╕реА рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ ---> System.DllNotFoundException: рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА 'рдХрд░реНрдиреЗрд▓ 32.dll' рдпрд╛ рдПрдХ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдЗрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗред рд▓реЛрдбрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдирд┐рджрд╛рди рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, LD_DEBUG рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: libkernel32.dll: рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд╣реАрдВ рдЦреЛрд▓ рд╕рдХрддреЗ: рдРрд╕реА рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╣реАрдВ
AspNetCore.ReportingServices.ReportPublishing.ReportPublishing.InternalCreateIntermediateFormat рдкрд░ (рд╕реНрдЯреНрд░реАрдо definitionStream, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рд╡рд┐рд╡рд░рдг, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рднрд╛рд╖рд╛, ParameterInfoCollection рдФрд░ рдорд╛рдирдХреЛрдВ, DataSourceInfoCollection рдФрд░ datasources, DataSetInfoCollection рдФрд░ sharedDataSetReferences, UserLocationFlags рдФрд░ userReferenceLocation, ArrayList рдФрд░ dataSetsName, рдмреВрд▓рд┐рдпрди рдФрд░ hasExternalImages, рдмреВрд▓рд┐рдпрди рдФрд░ hasHyperlinks, рдмрд╛рдЗрдЯ [] рдФрд░ dataSetsHash)
AspNetCore.ReportingServices.ReportPublishing.ReportPublishing.CreateIntermediateFormat (рдмрд╛рдЗрдЯ [] рдкрд░рд┐рднрд╛рд╖рд╛, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рд╡рд┐рд╡рд░рдг, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рднрд╛рд╖рд╛, ParameterInfoCollection рдФрд░ рдорд╛рдирдХреЛрдВ, DataSourceInfoCollection рдФрд░ datasources, DataSetInfoCollection рдФрд░ sharedDataSetReferences, UserLocationFlags рдФрд░ userReferenceLocation, ArrayList рдФрд░ dataSetsName, рдмреВрд▓рд┐рдпрди рдФрд░ hasExternalImages, рдмреВрд▓рд┐рдпрди рдФрд░ hasHyperlinks, рдмрд╛рдЗрдЯ [] рдФрд░ dataSetsHash) рдкрд░
AspNetCore.ReportingServices.ReportProcessing.ReportProcessing.CompileOdpReport (PublishingContext reportPublishingContext, PublishingErrorContext errorContext, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ reportDescription, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ reportLanguage, ParameterInfoCollection рдФрд░ рдорд╛рдирдХреЛрдВ, DataSourceInfoCollection рдФрд░ datasources, DataSetInfoCollection рдФрд░ sharedDataSetReferences, UserLocationFlags рдФрд░ userReferenceLocation, ArrayList рдФрд░ dataSetsName, рдмреВрд▓рд┐рдпрди рдФрд░ hasExternalImages, рдмреВрд▓рд┐рдпрди рдФрд░ hasHyperlinks, рдмрд╛рдЗрдЯ [] рдФрд░ dataSetsHash) рдкрд░
AspNetCore.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat (PublishingContext reportPublishingContext)
--- рдЖрдВрддрд░рд┐рдХ рдЕрдкрд╡рд╛рдж рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдХрд╛ рдЕрдВрдд ---
AspNetCore.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat (PublishingContext reportPublishingContext)
AspNetCore.Reporting.ReportCompiler.CompileReport (ICatalogItemContext рд╕рдВрджрд░реНрдн, рдмрд╛рдЗрдЯ [] рд░рд┐рдкреЛрд░реНрдЯрдбрд┐рдлрд┐рд╢рди, рдмреВрд▓рд┐рдпрди рдЬреЗрдирд░реЗрд╢рди рдПрдХреНрд╕рдкреНрд░реЗрд╢рдирд╣реЙрд╕реНрдЯрд╡рд░реНрде рд░реАрдлрд┐рд╢рд┐рдпрдВрд╕, рдХрдВрдЯреНрд░реЛрд▓рд╕реНрдирд╛рдкрд╢реЙрдЯ рдФрд░ рд╕реНрдиреИрдкрд╢реЙрдЯ)
--- рдЖрдВрддрд░рд┐рдХ рдЕрдкрд╡рд╛рдж рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдХрд╛ рдЕрдВрдд ---
AspNetCore.Reporting.ReportCompiler.CompileReport (ICatalogItemContext рд╕рдВрджрд░реНрдн, рдмрд╛рдЗрдЯ [] ReportDefinition, рдмреВрд▓рд┐рдпрди рдЬрдирди рдПрдХреНрд╕рдкреНрд░реЗрд╢рдирд╣реЙрд╕реНрдЯрд╡рд┐рдерд░рд╛рдЗрдЯрд░реНрд╕, ControlSnapshot рдФрд░ рд╕реНрдиреИрдкрд╢реЙрдЯ)
AspNetCore.Reporting.LocalService.GetCompiledReport (PreviewItemContext рдЖрдЗрдЯрдо рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ, рдмреВрд▓рд┐рдпрди рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг, рдХрдВрдЯреНрд░реЛрд▓рд╕реНрдирд╛рдкрд╢реЙрдЯ рдФрд░ рд╕реНрдиреИрдкрд╢реЙрдЯ)
AspNetCore.Reporting.LocalService.CompileReport () рдкрд░
AspNetCore.Reporting.LocalService.AspNetCore.Reporting.ILocalProcessingHost.CompileReport () рдкрд░
AspNetCore.Reporting.InternalLocalReport.EnsureExecutionSession () рдкрд░
--- рдЖрдВрддрд░рд┐рдХ рдЕрдкрд╡рд╛рдж рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдХрд╛ рдЕрдВрдд ---

@ AspNetCore.Reporting рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░ рдХреЛрдИ рдЦрдмрд░? рдореИрдВ рджрд┐рдиреЛрдВ рд╕реЗ .NET рдХреЛрд░ рдкрд░ RDL рдлрд╝рд╛рдЗрд▓ рд╕реЗ PDF рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓рд╛, рд╡рд╣ рдерд╛ AspNetCore.Reporting, рдЬреЛ рдореБрдЭреЗ рдмрд╛рдж рдореЗрдВ рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рд╕рдВрд╢реЛрдзрдиреЛрдВ рдФрд░ рдпрд╣рд╛рдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╣реА рдЖрдХрд░реНрд╖рдХ рд╣реИрдВ , рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╕рдмрдкреНрд░реЛрд░реНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХрд╛рдлреА рдкрд░реЗрд╢рд╛рдирд┐рдпрд╛рдБ рдЭреЗрд▓ рд░рд╣рд╛ рд╣реВрдБ рдФрд░ рдореИрдВ AspNetCore рдХреЛ рдбреАрдмрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдмрд┐рдирд╛ рд╕реЛрд░реНрд╕ рдХреЗ, рдЬреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣реИ :) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддреЗ рд╣реБрдП ... рдореБрдЭреЗ рдЖрдкрдХреА рдЙрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рд▓рд╛рдкрддрд╛ рдмрд┐рдЯреНрд╕ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА ( рдФрд░ рдЕрдВрдд рдореЗрдВ рдпрд╣ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ ...)

@OkunevPY : рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдореГрддрд┐-рдкреНрд░рдмрдВрдзрди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛-рд╕реНрд░реЛрдд рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдкрд░, рдореИрдВрдиреЗ рдмрд╕ рдЙрд╕ рдСрдл-рд╕реНрдЯреЛрд░ рдбреЗрдЯрд╛ рдХреЛ рдЕрдирдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ред рддрдм рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред рдЖрдкрдХреЛ рдпрд╣ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрдЕрд░-рдХреЛрдб рдореЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред рдЙрддреНрдкрд╛рджрди-рдЧреНрд░реЗрдб рдХреЛрдб рдХреЛ рдПрдХ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ / рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ - рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд┐рд░реНрдл рдкрд╣рд▓реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реВрдВрдЧрд╛;

@zillemarco;
рдкреАрдбреАрдПрдл-рдирд┐рд░реНрдорд╛рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рднреА (рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдХреЛрдИ рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк рдЙрд╕ рд░рд┐рд╡рд░реНрд╕-рдЗрдВрдЬреАрдирд┐рдпрд░ dll рдХреЗ рд╕рд╛рде рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЖрдк рдХреБрдЫ рдЕрд╡реИрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдкрдХреЛ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХ рдЙрддреНрдкрдиреНрди рдкреАрдбреАрдПрдл рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ HTML рд╕реЗ wkHtmlToPdf рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
рдпрд╣рд╛рдВ .NET-Core рд╕рдВрд╕реНрдХрд░рдг рд╣реИ:
https://github.com/ststeiger/libWkHtml2X
рдХреЗрд╡рд▓ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (wkhtmltopdf.exe, wkhtmltoimage.exe рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ-рд╕реНрдЯреНрд░реАрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)
libWkHtmlToX.ProcessManager(opts)
рдХреНрдпреЛрдВрдХрд┐ wkhtmltox.dll рдорд▓реНрдЯреА-рдереНрд░реЗрдбрд┐рдВрдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдореЗрд░рд╛ C # рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдЧрдлреНрд░реА рдирд╣реАрдВ рд╣реИред

рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг (рдХрдиреНрд╡рд░реНрдЯрд░ред Celerik.com рдХреЛ C # рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП):

  • рдПрд╕рд╡реАрдЬреА рд╕реЗ рдкреАрдбреАрдПрдл:
Dim pngBytes As Byte() = Nothing
Dim paper_maxWidth As Double = 1024 ' pixel
Dim paper_maxHeight As Double = 768 ' pixel
Dim svgInfo As cSvgInfo = Portal_Convert.wkHtmlHelper.SvgToPaperSize(svg, paper_maxWidth, paper_maxHeight, False)

Dim opts As New libWkHtmlToX.WkHtmlToImageCommandLineOptions()
opts.ExecutableDirectory = Portal_Convert.wkHtmlHelper.GetWkHtmlToXPath()

opts.DisableSmartWidth = True
opts.ScreenWidth = System.Math.Ceiling(svgInfo.NewWidth)
opts.ScreenHeight = System.Math.Ceiling(svgInfo.NewHeight)

' svgInfo.HTML = System.IO.File.ReadAllText(System.Web.Hosting.HostingEnvironment.MapPath("~/External/1506414857353.svg"), System.Text.Encoding.UTF8)

Using p As New libWkHtmlToX.ProcessManager(opts)
    p.Start()
    p.WriteStandardInput(svgInfo.HTML)
    pngBytes = p.ReadOutputStream()

    Dim b As Boolean = p.WaitForExit(5000)
End Using ' p 
  • HTML рд╕реЗ PDF:
        Dim opts As New libWkHtmlToX.WkHtmlToPdfCommandLineOptions()
        opts.ExecutableDirectory = Portal_Convert.wkHtmlHelper.GetWkHtmlToXPath()

        ' Dim measure As String = value.Replace(Number.ToString(), "")

        'Dim dblWidth As Double = Double.Parse(System.Text.RegularExpressions.Regex.Match(width, "[\d.]+").Value)
        'Dim dblHeight As Double = Double.Parse(System.Text.RegularExpressions.Regex.Match(height, "[\d.]+").Value)

        'If dblHeight > dblWidth Then
        '    opts.Orientation = libWkHtmlToX.Orientation_t.Portrait
        'Else
        '    opts.Orientation = libWkHtmlToX.Orientation_t.Landscape
        '    Dim x As String = width
        '    width = height
        '    height = x
        'End If

        opts.Width = width
        opts.Height = height
        opts.DisableSmartShrinking = True

        ' dpi is not working in wkhtmltopdf version 0.12.4
        ' opts.DPI = 300
        ' zoom setting with value 96/300 = 0.32
        ' opts.ZoomFactor = 96.0 / opts.DPI
        ' opts.ZoomFactor = 1.0 - 96.0 / opts.DPI
        ' opts.ZoomFactor = (1.0 / opts.DPI) / (1.0 / 96.0)
        opts.DPI = 96

        Dim pdfBytes As Byte() = Nothing

        Using p As New libWkHtmlToX.ProcessManager(opts)
            p.Start()
            p.WriteStandardInput(html)
            pdfBytes = p.ReadOutputStream()

            Dim b As Boolean = p.WaitForExit(5000)
        End Using ' p 

        Return pdfBytes

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк .NET-Core рдХреЗ рд▓рд┐рдП PdfSharp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
https://github.com/ststeiger/PdfSharpCore

рдореИрдВрдиреЗ NetStandard рдХреЛ рдкреВрд░реНрдг рдкреАрдбреАрдПрдл-рдкреБрд╕реНрддрдХрд╛рд▓рдп рднреА рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
https://github.com/ststeiger/PdfSharpNetStandard
(рдпрджрд┐ рдЖрдкрдХреЛ рдПрдЬрд╝реНрдпреЛрд░-рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ PdfSharpNetStandard рд▓реЗрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ)

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд▓рд┐рдирдХреНрд╕ рдкрд░ ReportViewer-PDF рдХрд╛ рд╕рдВрдмрдВрдз рд╣реИ:
рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд┐рдирд╡реЛрдХ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рд▓рд┐рдирдХреНрд╕ рд╡рд┐рдВрдбреЛрдЬ-рдПрдкреАрдЖрдИ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рд╢рд░рд╛рдм рдХреЗ рд╕рднреА рдбреАрдПрд▓-рдХреЙрд▓ рдХреЛ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ)ред

рдореИрдВрдиреЗ рдХреЗрд╡рд▓ GetFontData рдХреЛ рдЕрднреА рддрдХ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг (рдлрд╝реЙрдиреНрдЯ-рдПрдореНрдмреЗрдбрд┐рдВрдЧ) рд╣реИред
рдпрджрд┐ рдЖрдк рдореБрдЭреЗ рдЕрдкрдирд╛ рдЧреАрддрд╛рд▓рд╛рдм (рд╣рдм рдирд╣реАрдВ) рдЦрд╛рддрд╛-рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд░реАрдб-рдРрдХреНрд╕реЗрд╕ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВред

@ststeiger рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдРрдк рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рдЧреИрд░рдХрд╛рдиреВрдиреА рд╣реЛрдЧрд╛ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд░рдЦрддрд╛, рд▓реЗрдХрд┐рди рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдореИрдВ рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рд╕рдмрд░рдкреЛрд░реНрдЯ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░реЗрдВ (рдореИрдВрдиреЗ рдкреБрдирд░реНрдЬреАрд╡рди рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмреБрд░рд╛ рд╕рдкрдирд╛ рд╣реИ)ред рдпрджрд┐ рдЖрдк рдореБрдЭреЗ рд░реЗрдкреЛ рддрдХ рдкрд╣реБрдБрдЪ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдЖрдПрдЧрд╛ :) рдореЗрд░рд╛ рдЧреАрддрд╛рд▓рд╛рдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо zillemarco рд╣реИ (рдареАрдХ рд╡реИрд╕реЗ рд╣реА рдЬреИрд╕реЗ рдпрд╣рд╛рдБ github рдкрд░ рд╣реИ)

@ рдЬрд╝рд┐рд▓реНрдорд╛рд░реНрдХреЛ : рдЖрдкрдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
рдЖрдкрдХреЛ gitlab рд╕реЗ рдПрдХ рдИрдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рдВрднрд╡рддрдГ рд░реЗрдкреЛ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рдеред

Resharper рдХреЗ рдмрдЬрд╛рдп ILSpy 4.0 рдмреАрдЯрд╛ 2 рдЖрдЬрд╝рдорд╛рдПрдВ:
https://github.com/icsharpcode/ILSpy/releases

рдпрджрд┐ рдЖрдкрдХреЛ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЕрдВрджрд░ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд░рд╛рдЗрдбрд░ рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрд╡-рдбрд┐рдХрдВрдкрд╛рдЗрд▓ рдФрд░ рдбреАрдмрдЧ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдИрдПрдкреА рдореБрдлреНрдд рд╣реИ:
https://www.jetbrains.com/rider/eap/

@ststeiger рдХреЛ рдИрдореЗрд▓ рдорд┐рд▓рд╛ рдзрдиреНрдпрд╡рд╛рдж :) рдЯрд┐рдк рдХреЗ рд▓рд┐рдП рднреА рдзрдиреНрдпрд╡рд╛рдж!

@ststeiger рдЖрдк рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕реЗрд╕ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ AspNetCore.Reporting for okunevpy?

@OkunevPY : рдЖрдкрдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдореЗрд▓ рджреЗрдЦреЗрдВ

@ststeiger рдзрдиреНрдпрд╡рд╛рджред

        string sql = "SELECT * FROM employee";
        // sql = "SELECT * FROM T_Users";

        System.Data.DataTable dt = new System.Data.DataTable();

        using (System.Data.Common.DbDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(sql, csb.ConnectionString))
        {
            da.Fill(dt);
        }

        string fn = "wwwroot/Report1.rdl";
        fn = "wwwroot/InOutTab31.rdlc";

        AspNetCore.Reporting.LocalReport lr = new AspNetCore.Reporting.LocalReport(fn);


        System.Collections.Generic.Dictionary<string, string> parameters =
            new System.Collections.Generic.Dictionary<string, string>();
        parameters["TEN_ID"]="45";
        parameters["START_DATE"]="2018";
        parameters["END_DATE"]= "2018";

        // parameters.Add("in_logo", "base64");

        lr.AddDataSource("DsDayStatusTab31", dt); // DataSet1 is the name of the DataSet in the report




        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Html, 1, null, "");

        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Rpl, 1, null, ""); // Kaboom 
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Html, 2, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Pdf, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Excel, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.ExcelOpenXml, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Word, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.WordOpenXml, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Atom, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Xml, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Json, 1, null, "");// KABOOM 
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Csv, 1, null, "");

        var rr = lr.Execute(AspNetCore.Reporting.RenderType.Excel, 1, parameters, "");

        System.Console.WriteLine(rr.TotalPages);


        string dir = @"d:\";
        if (System.Environment.OSVersion.Platform == System.PlatformID.Unix)
            dir = "/opt/";

        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.htm"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.css"), rr.SecondaryStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.pdf"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.xls"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.xlsx"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.doc"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.docx"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.tiff"), rr.MainStream);

        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.atom.xml"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.xml"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.json"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.csv"), rr.MainStream);

        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.rpl"), rr.MainStream); // BOOM 
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.htm"), rr.MainStream);
        System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.pptx"), rr.MainStream);

        BuildWebHost(args).Run();

AspNetCore.Reporting.LocalProcessingException: 'рд╕реНрдерд╛рдиреАрдп рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реБрдИред рдХреЛрдИ рдбреЗрдЯрд╛ 1252 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдХрд╕реНрдЯрдо рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ редegisterProvide рд╡рд┐рдзрд┐ред'

@Jhonnybmx : рдПрдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реИ, рдЬрд┐рд╕реЗ google.com рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рдЖрдк рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдорд╛рдзрд╛рди рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрддрд╛ рд╣реИ ...

https://stackoverflow.com/questions/49215791/vs-code-c-sharp-system-notsupportedexception-no-data-is-available-for-encodin

System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);

рдирдорд╕реНрддреЗ, рдореИрдВ PDF рдХреЗ рд▓рд┐рдП rdlc рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП .NET рдХреЛрд░ рдкрд░ LocalReport рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рд╣реВрдВред
рдореЗрд░реЗ рд▓рд┐рдП Windows рдХреЗрд╡рд▓ рд╕рдВрд╕реНрдХрд░рдг рдЕрднреА рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИред

рдореИрдВ NuGet рдкреИрдХреЗрдЬ AspNetCore.ReportingServices рдореЗрдВ @ amh1979 рджреНрд╡рд╛рд░рд╛ рдЖрдпрд╛ рдерд╛, рдЬреЛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реА рдЬрд░реВрд░рдд рд╣реИред
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ InternalLocalReport рд╡рд░реНрдЧ рдЖрдВрддрд░рд┐рдХ рд╣реИ рдФрд░ рдореБрдЭреЗ eq рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ API (рдЬреИрд╕реЗ рдореВрд▓ MS LocalReport рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред SubreportProcessing рдИрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, LoadSubreportDefinition () рдпрд╛ GetParameters () рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред

рдпреЗ рддрд░реАрдХреЗ AspNetCore.Reporting.LocalReport class (AspNetCore.Reporting NuGet рдореЗрдВ) рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЕрд╕реЗрдВрдмрд▓реА AspNetCore.ReportingServices.dll рдиреЗ AspNetCore.Reporting.dll рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП InternalsVoubleTo рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред
рдХреНрдпрд╛ рдореИрдВ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ https://github.com/amh1979/Reporting/tree/master/AspNetCore.Reporting рдореЗрдВ Reporting.pfx рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЗ рд╕рд╛рде рд╣реИ (рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдореЗрд░рд╛ рдкрд╛рд╕рд╡рд░реНрдб рдирд╣реАрдВ рд╣реИ)ред

рдХреГрдкрдпрд╛ рдХреНрдпрд╛ рдЖрдк рдореЗрд░реЗ рд╕рд╣рд╛рдпрддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИ? рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЙрдкрд╛рдп рд╣реИ?

@ststeiger рдЖрдк рдореБрдЭреЗ GitLab рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА AspNetCore рддрдХ рдкрд╣реБрдБрдЪ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░рд╛ GitLab рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╣реЛрд▓рд╛рдЬрд╛рди рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж

рдЗрд╕ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд AspNetCore.ReportingServices
http://go.microsoft.com/fwlink/?LinkId=826162
рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ

рдХреНрдпрд╛ рдХреЛрдИ рдХреГрдкрдпрд╛ рдЗрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ / рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди / рд╕реБрд░рд╛рдЧ рдпрд╛ рд╕рдВрдХреЗрдд рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдЖрдкрдХрд╛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

@ststeiger рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ AspNetCore.Reporting рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рдЗрд╕реЗ рдкреАрдбреАрдПрдл рдХреЗ рд╕рд╛рде рд▓рд┐рдирдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@ рдвреЛрдХрд╛ , @skivsoft :
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рдкрд░ рдерд╛ - рд╕рд┐рдВрдЧрд╛рдкреБрд░ рдФрд░ рдерд╛рдИрд▓реИрдВрдб рдХреА рдПрдХ рдЕрдЪреНрдЫреА рдпрд╛рддреНрд░рд╛ рдереАред
рдкрд╣реБрдБрдЪ рджреА рдЧрдИ рд╣реИ, рдЖрдкрдХреЛ gitlab рдХреЛ рджрд┐рдП рдЧрдП рдкрддреЗ рдкрд░ рдПрдХ рдИрдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

@azharuddinsayed :

рдЬрдм рдореИрдВ .rdlc рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рддреЛ рдореБрдЭреЗ рдЕрдкрд╡рд╛рдж рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ
AspNetCore.ReportingServices.RdlExpressions.ExpressionHostObjectModel.DataRegionExprHost (TMemberType, TCellType рдХреА) in localreport.Execute ()
рдХреГрдкрдпрд╛ рдореЗрд░реА рдорджрдж рдХрд░реЗрдВ

рдореИрдВ рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ:


ReportingServices/AspNetCore.ReportingServices.RdlExpressions.ExpressionHostObjectModel/CustomCodeProxyBase.cs

internal AspNetCore.ReportingServices.RdlExpressions.ExpressionHostObjectModel.IReportObjectModelProxyForCustomCode Report => m_reportObjectModel;
==>
internal protected AspNetCore.ReportingServices.RdlExpressions.ExpressionHostObjectModel.IReportObjectModelProxyForCustomCode Report => m_reportObjectModel;



internal CustomCodeProxyBase(AspNetCore.ReportingServices.RdlExpressions.ExpressionHostObjectModel.IReportObjectModelProxyForCustomCode reportObjectModel)
==> 
internal protected CustomCodeProxyBase(AspNetCore.ReportingServices.RdlExpressions.ExpressionHostObjectModel.IReportObjectModelProxyForCustomCode reportObjectModel)

рддрдерд╛

ReportingServices/AspNetCore.ReportingServices.RdlExpressions.ExpressionHostObjectModel/IReportObjectModelProxyForCustomCode.cs
internal interface IReportObjectModelProxyForCustomCode
==> 
public interface IReportObjectModelProxyForCustomCode

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реБрдзрд╛рд░
AnyWebReporting \ ReportingServices \ Microsoft.VisualBasic1 \ VBCodeGenerator.cs

System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo("cmd.exe", "/c " + cmd)
==>
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo("cmd.exe", "/c \"" + cmd + "\"")

рдлрд┐рд░ рдХрд╕реНрдЯрдо рдХреЛрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВред
рдЧреБрд░реБ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

@ststeiger рдкрд╣реБрдБрдЪ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдкреАрдбреАрдПрдл рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ? рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд┐рдирд╡реЛрдХ рд╣реИрдВред

@skivoft : рдХреЛрдИ рднреА, рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИред
рдЖрдкрдХреЛ рд╕рднреА рдкрд┐рдирд╡реЙрдЪ рдХреЛ рдПрдХ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ рдмрд╣реБрдд рдХрд╛рдо рдХреА рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЛ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХ рдкреАрдбреАрдПрдл рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк PdfSharpCore рдпрд╛ PdfSharpNetStandard рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
https://github.com/ststeiger/PdfSharpCore
https://github.com/ststeiger/PdfSharpNetStandard
рдореИрдВ рд▓рд┐рдирдХреНрд╕ рдкрд░ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
PdfSharpNetStandard рдЕрдзрд┐рдХ рдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди GDI + / libGDIplus рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ PdfSharpCore System.Drawing рд╕реЗ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИред

@ststeiger рд░реЗрдкреЛ рдХреА рдкрд╣реБрдБрдЪ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ рдЕрдкрдиреЗ .NET рдХреЛрд░ 2.2 рд╡рд┐рдВрдбреЛрдЬрд╝ рдРрдк рдореЗрдВ рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ (рдкреАрдбреАрдПрдл рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд░рд╣рд╛ рдерд╛)ред
рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдкрдХреЗ ReportViewer_NetStandard рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкрд░ рдмрдирд╛рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ LocalReports рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ InternalLocalReport рдХреЛ LocalReport рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рдХрдХреНрд╖рд╛ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд░ рджрд┐рдпрд╛ (рдореБрдЭреЗ рдореВрд▓ LocalReport API рддрдХ рдкрд╣реБрдБрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА)ред

рдореЗрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рддрдп рдХреАрдВ:
рдХреБрдЫ рджреГрд╢реНрдп рдореВрд▓ рднрд╛рд╡:
IIf - рдореИрдВ рдЖрдпрд╛рдд Microsoft.VisualBasic.Interaction рдХреЛ _ExprHostBuilder_ рдореЗрдВ netcoreapp2.2 рдЬрд╣рд╛рдВ _Microsoft.VisualBasic.dll_ рдореЗрдВ Microsoft.VisualBasic.Interaction рд╡рд░реНрдЧ рдЖрдВрддрд░рд┐рдХ рдФрд░ Microsoft.VisualBasic1 рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ Microsoft.VisualBasic.Interaction рд╡рд░реНрдЧ рдЬреЛрдбрд╝рд╛ рдореЗрдВ рдмрджрд▓рд╛ рдЧрдпрд╛ рдХрд╣рд╛,ред

рд╕реНрд╡рд░реВрдк - рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ Microsoft.VisualBasic.StringsEx рдореЗрдВ _ExprHostBuilder_, рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╡рд░реНрдЧ Microsoft.VisualBasic.StringsEx to Microsoft.VisualBasic1 (рдХреНрдпреЛрдВрдХрд┐ рдореВрд▓ рд╡рд░реНрдЧ Microsoft .VisualBasic.Strings рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рд╛рд░реВрдк рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд┐рдирд╛)

System.Environment.NewLine - рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ System.Runtime.Extensions.dll рдореЗрдВ _ExprHostCompiler_ред

рдпрд╣ рдХреЛрдб рдореЗрдВ рдпреЗ рдмрджрд▓рд╛рд╡ рд╣реИрдВ:

In AspNetCore.ReportingServices.RdlExpressions\ExprHostBuilder.cs:
AspNetCore.ReportingServices.RdlExpressions.ExprHostBuilder.GetExprHost(AspNetCore.ReportingServices.ReportIntermediateFormat.ProcessingIntermediateFormatVersion version, bool refusePermissions)
+                codeNamespace.Imports.Add(new System.CodeDom.CodeNamespaceImport("Microsoft.VisualBasic.StringsEx"));
+                codeNamespace.Imports.Add(new System.CodeDom.CodeNamespaceImport("Microsoft.VisualBasic.Interaction"));

In AspNetCore.ReportingServices.ReportProcessing\ExprHostBuilder.cs:
AspNetCore.ReportingServices.ReportProcessing.ExprHostBuilder.GetExprHost(AspNetCore.ReportingServices.ReportProcessing.IntermediateFormatVersion version, bool refusePermissions)
+                codeNamespace.Imports.Add(new System.CodeDom.CodeNamespaceImport("Microsoft.VisualBasic.StringsEx"));
+                codeNamespace.Imports.Add(new System.CodeDom.CodeNamespaceImport("Microsoft.VisualBasic.Interaction"));

In AspNetCore.ReportingServices.RdlExpressions\ExprHostCompiler.cs:
AspNetCore.ReportingServices.RdlExpressions.ExprHostCompiler.InternalCompile(System.AppDomain compilationTempAppDomain, bool refusePermissions)
+                // System.Runtime.Extensions.dll
+                compilerParameters.ReferencedAssemblies.Add(typeof(System.Environment).Assembly.Location);

Added file Microsoft.VisualBasic1\Interaction.cs:
using Microsoft.VisualBasic.CompilerServices;

namespace Microsoft.VisualBasic
{
    /// <summary>The <see langword="Interaction" /> module contains procedures used to interact with objects, applications, and systems. </summary>
    [StandardModule]
    public sealed class Interaction
    {
        public static T IIf<T>(bool condition, T truePart, T falsePart)
        {
            return !condition ? falsePart : truePart;
        }
    }
}






Added file Microsoft.VisualBasic1\StringsEx.cs in (StringsEx.zip)
Added file Microsoft.VisualBasic1\UtilsEx.cs in (StringsEx.zip)
Added file Microsoft.VisualBasic1\Information.cs in (StringsEx.zip)
Added file Microsoft.VisualBasic1\Symbols.cs in (StringsEx.zip)
Added file Microsoft.VisualBasic1\ExceptionUtils.cs in (StringsEx.zip)

StringsEx.zip

рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рд╕рдм -рдкреЛрд░реНрдЯреНрд╕ рдХреЛ рдареАрдХ рдХрд░реЗрдВ:
рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рд╕рдмрд░рдкреЛрд░реНрдЯ рддрддреНрд╡ рдореБрдЦреНрдп рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рд╕рдмрдкреНрд░рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП ReportRuntime.LoadExprHostAssembly рдореЗрдВ рддреНрд░реБрдЯрд┐ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рдЬрд╣рд╛рдВ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди Host.dll рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЛ рдирд╛рдо рд╕реЗ рдХреИрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рднреА рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рд╕рдм -рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдирд╛рдо рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рд╣реИ "_Expression.ost_"ред рдореИрдВрдиреЗ рдпрд╣ рдХреИрдЪрд┐рдВрдЧ рд╣рдЯрд╛ рджреАред
рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди:

In AspNetCore.ReportingServices.RdlExpressions\ReportRuntime.cs:
-                private static readonly System.Collections.Hashtable ExpressionHosts = new System.Collections.Hashtable();

AspNetCore.ReportingServices.RdlExpressions.ReportRuntime.LoadExprHostIntoCurrentAppDomain(byte[] exprHostBytes, string exprHostAssemblyName, System.Security.Policy.Evidence evidence, bool includeParameters, bool parametersOnly, AspNetCore.ReportingServices.ReportProcessing.OnDemandReportObjectModel.OnDemandObjectModel objectModel, System.Collections.Generic.List<string> codeModules)
-                System.Reflection.Assembly assembly = LoadExprHostAssembly(exprHostBytes, exprHostAssemblyName, evidence);
+                System.Reflection.Assembly assembly = LoadExprHostAssembly(exprHostBytes);

            private static System.Reflection.Assembly LoadExprHostAssembly(byte[] exprHostBytes)
            {
                try
                {
                    new System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityPermissionFlag.ControlEvidence).Assert();
                    return System.Reflection.Assembly.Load(exprHostBytes);
                }
                finally
                {
                    System.Security.CodeAccessPermission.RevertAssert();
                }
            }

рдХреГрдкрдпрд╛ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рддреЛ рдЖрдк рдЙрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рднреА рд░реЗрдкреЛ рдмрдирд╛рддреЗ рд╣реИрдВред

рдзрдиреНрдпрд╡рд╛рджред

@ рдвреЛрд▓рди : рдЕрдЧрд░ рдореИрдВ System.String рдХреЛ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдорд┐рд▓рддрд╛ рд╣реИ:
Ambigous call to Replace - cannot resolve call
рдФрд░ рдЕрдЧрд░ рдореИрдВ Microsoft.VisualBasic.Interaction рд╡рд░реНрдЧ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ:
ambigous call to Microsoft.VisualBasic.Interaction
рдЬрдм рдореИрдВ рдЗрд╕реЗ рдиреЗрдЯрдХреЛрд░ рдпрд╛ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ 4 рдореЗрдВ рдЪрд▓рд╛рддрд╛ рд╣реВрдВред
рд╢рд╛рдпрдж рдпрд╣ рдХреЗрд╡рд▓ .NET рдХреЛрд░ 2.2 рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдпрд╣ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╢рд┐рдВрдЧ рд╣реИ, рддреЛ рдпрд╣ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИред
рдЙрд╕ рдмрджрд▓рд╛рд╡ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред
рдореИрдВрдиреЗ рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдХреЛ #ifdef false (рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп) рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рдерд╛ред

@ststeiger рдореИрдВрдиреЗ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рд╕рдВрдкрд╛рджрд┐рдд рдХреА, System.String рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЧрд▓рдд рдерд╛, рдореИрдВрдиреЗ рдЕрдм Microsoft.VisualBasic.StringsEx рдХреЛ рдкреНрд░рд╛рд░реВрдк рдФрд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдЙрд╕рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред

рд╣рд╛рдБ Microsoft.VisualBasic.Interaction .NET .NET 2.2 рдореЗрдВ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Microsoft рдореЗрдВ Microsoft.VisualBasic.Interaction рд╡рд░реНрдЧ рд╣реИред .NETCoreApp v2.2 рдЖрдВрддрд░рд┐рдХ рдХреЗ рд▓рд┐рдП Microsoft.VisualBasic.dll, Microsoft рдореЗрдВред .NETCoreApp v2.09 рдХреЗ рд▓рд┐рдП
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдмреЗрд╣рддрд░ рд╣рд▓ рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди .NET рдХреЛрд░ 3.0 рдХреЗ рд╕рд╛рде рдпрд╣ рд╢рд╛рдпрдж рд╡реИрд╕реЗ рднреА рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред

@ рдвреЛрд▓рди : рдЗрддрдиреЗ рд▓рдВрдмреЗ, рдЪрд▓реЛ 3.0 рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ
рдореИрдВрдиреЗ InternalLocalReport рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд┐рдпрд╛ред
рдЕрдм рдЗрд╕рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ-рдиреЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЬреАрдм рдирд╛рдо;)

@holajan : Microsoft.VisualBasic.StringsEx рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рдЕрдм рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
.NET 4 рдХреЗ рд▓рд┐рдП IReadOnlyDictionary рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╡рд╣ рднреА рдорд╛рдореВрд▓реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд░реВрдк рдореЗрдВред
рдХреНрдпрд╛ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@ststeiger рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред
рдореБрдЭреЗ Microsoft рдореЗрдВ #if рдЕрд╕рддреНрдп рдХреЛ # рд╕рд╣реА рд╕рдЪ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП IIf рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП
рдЕрдиреНрдпрдерд╛ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
thanx

@ рдвреЛрд▓рди : рдареАрдХ рд╣реИ, рдЬреИрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╢рд╛рдпрдж рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдПрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕рднреА рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ: https://feedback.azure.com/forums/908035-sql-server/suggestions/33241936-develop-a-ssrs-reportviewerer-for-asp-net рдХреЛрд░

2019/03 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╢реАрд░реНрд╖ 7 рд╡рд╛рдВрдЯреЗрдб рд╕реЗ рдЗрд╕рдХрд╛ 7 рд╡рд╛рдВ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдлрд╝реАрдЪрд░: https://feedback.azure.com/forums/908035-sql-server?category_id=325159

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: 2019/05 рддрдХ рд╢реАрд░реНрд╖ рд╕реЗ рдЗрд╕рдХреА 5 рд╡реАрдВ

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: 2019/07 рдХреЗ рд░реВрдк рдореЗрдВ рдКрдкрд░ рд╕реЗ рдЗрд╕рдХреА 4 рдереА

        string sql = "SELECT * FROM employee";
        // sql = "SELECT * FROM T_Users";

        System.Data.DataTable dt = new System.Data.DataTable();

        using (System.Data.Common.DbDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(sql, csb.ConnectionString))
        {
            da.Fill(dt);
        }

        string fn = "wwwroot/Report1.rdl";
        fn = "wwwroot/InOutTab31.rdlc";

        AspNetCore.Reporting.LocalReport lr = new AspNetCore.Reporting.LocalReport(fn);


        System.Collections.Generic.Dictionary<string, string> parameters =
            new System.Collections.Generic.Dictionary<string, string>();
        parameters["TEN_ID"]="45";
        parameters["START_DATE"]="2018";
        parameters["END_DATE"]= "2018";

        // parameters.Add("in_logo", "base64");

        lr.AddDataSource("DsDayStatusTab31", dt); // DataSet1 is the name of the DataSet in the report




        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Html, 1, null, "");

        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Rpl, 1, null, ""); // Kaboom 
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Html, 2, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Pdf, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Excel, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.ExcelOpenXml, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Word, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.WordOpenXml, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Atom, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Xml, 1, null, "");
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Json, 1, null, "");// KABOOM 
        // var rr = lr.Execute(AspNetCore.Reporting.RenderType.Csv, 1, null, "");

        var rr = lr.Execute(AspNetCore.Reporting.RenderType.Excel, 1, parameters, "");

        System.Console.WriteLine(rr.TotalPages);


        string dir = @"d:\";
        if (System.Environment.OSVersion.Platform == System.PlatformID.Unix)
            dir = "/opt/";

        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.htm"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.css"), rr.SecondaryStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.pdf"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.xls"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.xlsx"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.doc"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.docx"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.tiff"), rr.MainStream);

        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.atom.xml"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.xml"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.json"), rr.MainStream);
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.csv"), rr.MainStream);

        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.rpl"), rr.MainStream); // BOOM 
        // System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.htm"), rr.MainStream);
        System.IO.File.WriteAllBytes(System.IO.Path.Combine(dir, "foo.pptx"), rr.MainStream);

        BuildWebHost(args).Run();

AspNetCore.Reporting.LocalProcessingException: 'рд╕реНрдерд╛рдиреАрдп рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реБрдИред рдХреЛрдИ рдбреЗрдЯрд╛ 1252 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдХрд╕реНрдЯрдо рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ редegisterProvide рд╡рд┐рдзрд┐ред'

рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
System.Text.Encoding.RegisterProvider (System.Text.CodePagesEncodingProvider.Instance);
рдпрд╣ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИ

рдирдорд╕реНрддреЗ,

рдореИрдВрдиреЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Html рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рд╕реЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

.rdl рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЪрд╛рд░реНрдЯ рд╣реИ

рдореИрдВрдиреЗ рдПрдЪрдЯреАрдПрдордПрд▓ рдХрд╛ рд╕реНрдХреНрд░реАрди рд╢реЙрдЯ рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рд╣реИ

рдпрджрд┐ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдЕрддреНрдпрдзрд┐рдХ рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВред

рдзрдиреНрдпрд╡рд╛рдж

рдкреНрд▓реИрдЯрдлреЙрд░реНрдо: ASP.NET рдХреЛрд░

public string _reportPath = @ ".. \ _ RenderReportAPI \ employeeChart.rdl";

string mimtype = "";
int extension = 1;

       LocalReport localReport = new LocalReport(_reportPath);

    _dataSourceName = "DataSet1";
    _dataSourceList = Employee.GetEmployees();                                   
    localReport.AddDataSource(_dataSourceName, _dataSourceList);



    System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
    var result = localReport.Execute(RenderType.Html, extension, null, findString: mimtype);

Chart_html

@chinturathod : "рд░рд┐рдкреЛрд░реНрдЯ рдЪрд╛рд░реНрдЯ" рдХрд╛ URL рдХреНрдпрд╛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ?
Html-рд░реЗрдВрдбрд░рд░ рдореЗрдВ CSS рдХреЗ рд▓рд┐рдП рд╕реЗрдХрдВрдбрд░реА рдЖрдЙрдЯрдкреБрдЯрд╕реНрдЯреНрд░реАрдо рд╣реИред
рдХреНрдпрд╛ рдЗрд╕рдореЗрдВ рдмреЗрд╕ 64-рдПрдиреНрдХреЛрдбреЗрдб рдЫрд╡рд┐ рд╣реИ? рдпрд╛ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЫрд╡рд┐ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдбрд╝реА рд╣реИ?

@ststeiger
рд╣рд╛рдп рдиреАрдЪреЗ HTML рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ
HTML:

\"Report
19-03-2019 12:08:25







рд╕реАрдПрд╕рдПрд╕:

# #rsoReportDiv .A97993c8d452f40d4910a317776d607f616xBc {
рдмреЙрд░реНрдбрд░: 1pt рдХреЛрдИ рдирд╣реАрдВ рдХрд╛рд▓рд╛;
рдкреГрд╖реНрдарднреВрдорд┐- рд░рдВрдЧ: рдкрд╛рд░рджрд░реНрд╢реА;
}

rsoReportDiv .A97993c8d452f40d4910a317776d607f616xB {

border:1pt none Black;
background-color:Transparent;

}

rsoReportDiv .A97993c8d452f40d4910a317776d602f5 {

word-wrap:break-word;
word-break:break-word;
white-space:pre-wrap;
min-width:139.70mm;
overflow:hidden;
width:139.70mm;
border:1pt none Black;
background-color:Transparent;
font-style:normal;
font-family:'Segoe UI Light';
font-size:28pt;
font-weight:400;
text-decoration:none;
unicode-bidi:normal;
color:Black;
vertical-align:top;
text-align:left;

}

rsoReportDiv .A97993c8d452f40d4910a317776d607f614 {

border:1pt none #d3d3d3;
background-color:White;

}

rsoReportDiv .A97993c8d452f40d4910a317776d607f65c {

border:1pt none Black;
background-color:Transparent;

}

rsoReportDiv .A97993c8d452f40d4910a317776d602f4 {

min-width:152.40mm;
min-height:65.14mm;
width:152.40mm;
border:1pt none Black;
background-color:Transparent;

}

rsoReportDiv .A97993c8d452f40d4910a317776d602f49 {

word-wrap:break-word;
word-break:break-word;
white-space:pre-wrap;
padding-left:2pt;
padding-top:2pt;
padding-right:2pt;
padding-bottom:2pt;
border:1pt none Black;
background-color:Transparent;
font-style:normal;
font-family:'Segoe UI';
font-size:10pt;
font-weight:400;
text-decoration:none;
unicode-bidi:normal;
color:Black;
vertical-align:top;
text-align:right;

}

rsoReportDiv .rsr1 {

height:100%;
width:100%

}

rsoReportDiv .rsr2 {

height:100%;
width:100%;
overflow:hidden

}

rsoReportDiv .rsr3 {

height:100%

}

rsoReportDiv .rsr4 {

border-style:none

}

rsoReportDiv .rsr5 {

border-left-style:none

}

rsoReportDiv .rsr6 {

border-right-style:none

}

rsoReportDiv .rsr7 {

border-top-style:none

}

rsoReportDiv .rsr8 {

border-bottom-style:none

}

rsoReportDiv .rsr10 {

border-collapse:collapse

}

rsoReportDiv .rsr9 {

border-collapse:collapse;
table-layout:fixed

}

rsoReportDiv .rsr11 {

width:100%;
overflow-x:hidden

}

rsoReportDiv .rsr12 {

position:absolute;
display:none;
background-color:white;
border:1px solid black;

}

rsoReportDiv .rsr13 {

text-decoration:none;
color:black;
cursor:pointer;

}

rsoReportDiv .rsr14 {

font-size:0pt

}

rsoReportDiv .rsr15 {

direction:RTL;
unicode-bidi:embed

}

rsoReportDiv .rsr16 {

margin-top:0pt;
margin-bottom:0pt

}

rsoReportDiv .rsr17 {

height:100%;
width:100%;
display:inline-table

}

rsoReportDiv .rsr18 {

height:100%;
display:inline-table

}

rsoReportDiv * {

 box-sizing: border-box;

}

рдЪрд╛рд░реНрдЯ рддрддреНрд╡ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ
Report chart
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИ

рдзрдиреНрдпрд╡рд╛рдж..

@ststeiger

рд╣рд╛рдп рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

@ рдЕрдЪрд┐рдВрддреБрд░рдереЛрдбрд╝ :
рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ wftml2X рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рд╕реНрд╡рд┐рд╕рдЖрд░ рд░рд┐рдкреЛрд░реНрдЯ рдкрд░ рд╕реАрдИрдПрдл-рдкреАрдбреАрдПрдл рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рд╕рдкреНрддрд╛рд╣ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рд╕рдордп рд╣реЛрдЧрд╛, рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрджред

рдХреНрдпрд╛ AspNetCore.ReportingServices рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (рдирд┐рдЬреА рдпрд╛ рдЕрдиреНрдпрдерд╛) рд╣реИ рдЬрд┐рд╕реЗ рдореБрдЭреЗ рдПрдХреНрд╕реЗрд╕ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛ рд╕рдХрддреА рд╣реИ?

@ рдХреНрд▓рд┐рдВрдЯрдм : рдореБрдЭреЗ рдЖрдкрдХреЗ git LAB рдЕрдХрд╛рдЙрдВрдЯрдирд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ рдПрдХреНрд╕реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдлрд┐рд░ рдЖрдкрдХреЛ рд░реЗрдкреЛ рдПрдХреНрд╕реЗрд╕ рд╡рд╛рд▓реЗ git lab рдЦрд╛рддреЗ рдХреЗ рдИрдореЗрд▓ рдкрддреЗ рдкрд░ рдПрдХ рдИ-рдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред

рд╣реЗ рд╕реНрдЯреАрдлрди, рдореЗрд░рд╛ gitLab c_l_i_n_t рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рд╢реБрдХреНрд░ рдкрд░, 26 рдЕрдкреНрд░реИрд▓, 2019 рдХреЛ рджреЛрдкрд╣рд░ 12:18 рдмрдЬреЗ рд╕реНрдЯреАрдлрди рд╕реНрдЯрд╛рдЗрдЧрд░ рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@clintb https://github.com/clintb : рдореБрдЭреЗ рдЖрдкрдХреЗ git LAB рдЕрдХрд╛рдЙрдВрдЯрдирд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП
рдореИрдВ рдЖрдкрдХреЛ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдлрд┐рд░ рдЖрдкрдХреЛ git lab рдХреЗ рдИрдореЗрд▓ рдкрддреЗ рдкрд░ рдПрдХ рдИ-рдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛
рд░реЗрдкреЛ рдПрдХреНрд╕реЗрд╕ рд╡рд╛рд▓реЗ рдЦрд╛рддреЗред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/aspnet/AspNetCore/issues/1528#issuecomment-487133308 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ABURO5ILQUEGMZARNW2HNALPSM2M5ANCNFSM4CFRN7MQ
ред

@ рдХреНрд▓рд┐рдВрдЯрдм : рдЖрдкрдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред

рд╣рд╛рдп @ststeiger , рдпрджрд┐ рдЖрдк рдХрд░реЗрдВрдЧреЗ, рддреЛ рдХреГрдкрдпрд╛ рд▓реЙрдЯрдЯреНрд░реАрдЬрд╝ рдХреЛ рд░реЗрдкреЛ рдПрдХреНрд╕реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рдЖрдкрдХреЗ рдХрд╛рдо рдФрд░ рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@lotsatrees : рдЖрдкрдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж рд╕реНрдЯреАрдлрди, рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рдПрдХ рдЕрдЪреНрдЫреА рдмреАрдпрд░ рдЦрд░реАрджрдиреЗ рдХреА рдЦреБрд╢реА рд╣реИред

рд╣рд╛рдп @ststeiger , рдореЗрд░рд╛ gitlab edgardoreyes рд╣реИред рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

@ststeiger
рдореЗрд░рд╛ рдЧрд┐рддрд▓рдм рдЗрдмрдлрд▓реНрд▓рди рд╣реИ
рдзрдиреНрдпрд╡рд╛рдж

@ikourfaln , @edgardoreyes : рдЖрдкрдиреЗ рджреЛ рдЬреЛрдбрд╝реЗ; рдЖрдкрдХреЛ рдЙрд╕ рдореЗрд▓ рдЦрд╛рддреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдИрдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ gitlab рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рд╣реИред

@ststeiger , рдХреНрдпрд╛ рдпрд╣ рдЦреБрдж рдХреЛ рдЬреЛрдбрд╝рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ (рдЧреАрддрд╛рд▓рд╛рдм рдкрд░ рдорд┐рд╣рд┐рд░рдЬреА)?

рдзрдиреНрдпрд╡рд╛рдж!!

@ рдорд┐рд╣рд┐рд░рдЬреА : рд╣реЛ рдЧрдпрд╛ред

рдзрдиреНрдпрд╡рд╛рдж!!!

рдХреНрдпреЛрдВ рди рдХреЗрд╡рд▓ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдФрд░ рдЬреЛ рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ?
рдЖрдкрдХреЗ ASP.NET рдХреЛрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗрд╡рд╛ рдХреЗ URL рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЙрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛?

@ststeiger рдХреНрдпрд╛ рдореБрдЭреЗ рднреА рдПрдХреНрд╕реЗрд╕ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ? (рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯрдбрд┐рд╕реИрд╕реНрдЯрд░ рдкрд░ рдЧрд┐рдЯрд▓реИрдм) рдЕрдЧреНрд░рд┐рдо рдзрдиреНрдпрд╡рд╛рдж

@ConstantDisaster : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
@mshwf : рдирд╣реАрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣реА рд╡рд╣ рд╣реИ рдЬреЛ рдореИрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ - рдЗрд╕рд▓рд┐рдП рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрд┐рд╕реА рднреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рд╣рдореЗрд╢рд╛ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ - рдХреБрдЫ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЖрдИрдЯреА рд╡рд┐рднрд╛рдЧ рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИрдВ - рдкреНрд▓рд╕ рд╣рдореЗрд╢рд╛ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рд╕рд░реНрд╡рд┐рд╕ рдкреИрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдирд╡реАрдирддрдо рдПрд╕рдХреНрдпреВрдПрд▓-рд╕рд░реНрд╡рд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд░рд┐рдкреЛрд░реНрдЯрд╡реНрдпреВрдЕрд░ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯрд╕реЗрд╡рд░ рдХреЗ рдмреАрдЪ рдЕрд╕рдВрдЧрддрддрд╛ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ sysadmin рднреА рдХреБрдЫ рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд▓рд╕реА рд╣реИрдВ, рдЖрджрд┐)ред рдмрд╕ рд╕рдордп рдХреА рдХрдореА рд╣реИ, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЙрддреНрддрд░-рдкрд╢реНрдЪрд┐рдореА рдпреВрд░реЛрдк рдореЗрдВ рдЧрд░реНрдорд┐рдпреЛрдВ рдХреА рдкрд╣рд▓реА рдзреВрдк рдХреЗ рджрд┐рди рд╣реИрдВ, рдФрд░ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдпрд╛рдж рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред

@ststeiger рдХреНрдпрд╛ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ? (рдореИрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реИ!)
рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ GitLab рд░реЗрдкреЛ (mshwf) рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдзрдиреНрдпрд╡рд╛рдж

рдХреГрдкрдпрд╛ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ, рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ Microsoft рд╣рдорд╛рд░реА рдмрд╛рдд рд╕реБрдиреЗрдВрдЧреЗ!

рдЕрд░реЗ @ststeiger рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рднреА рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ?
рдореЗрд░рд╛ gitlab рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо k3flo рд╣реИ
рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж
рд╡рд┐рд▓реЗрди рдбрдВрдХ ЁЯШК

@ststeiger рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рддреЛ рдореИрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реВрдВ? рдПрдХ рдПрд╕реНрдк рдиреЗрдЯ рдХреЛрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ? рдпрд╣ рдлрд┐рд░ рд╕реЗ рдПрдХ рдзрдиреНрдпрд╡рд╛рдж рдпрд╛ рдХреБрдЫ рдФрд░ рдерд╛, рдзрдиреНрдпрд╡рд╛рджред

@ConstantDisaster : AnyWebReporting\Any_TestCode\TestReport.cs "
рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рдкреАрдбреАрдПрдл рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реИред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:
1) рд░рд┐рдкреЛрд░реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдмрдирд╛рдПрдВ:

System.Collections.Generic.Dictionary<string, string> parameters =
                new System.Collections.Generic.Dictionary<string, string>();

2) рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ, рдЬреИрд╕реЗ

parameters.Add("in_language", "DE");
parameters.Add("in_something_uid", "9A892D4B-B4E3-4804-AAB6-97EAB37B7849");

3) рдПрдХ рдирдпрд╛ LocalReport рдЖрдзрд╛рд░рд┐рдд рдФрд░ рд▓реЛрдб рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдПрдВ

string fn = "/full/path/to/SomeReport.rdl";
AspNetCore.Reporting.LocalReport lr = new AspNetCore.Reporting.LocalReport(fn);

рдлрд┐рд░, рд╕рднреА рдбреЗрдЯрд╛рд╕реЗрдЯ рдЬреЛ рдХреЗрд╡рд▓ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдХреЗ рд▓рд┐рдП рдЖрдк рдПрдХ рдЦрд╛рд▓реА рдбреЗрдЯреЗрдмрд▓ (NULL рдирд╣реАрдВ) рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
lr.AddDataSource("SEL_Standort", new System.Data.DataTable());

рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рдХреНрд╡реЗрд░реА рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдЯрд╛рдЯреЗрдмрд▓ рднрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдбреЗрдЯрд╛рд╕реЗрдЯ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:

lr.AddDataSource("DATA_Schluesselbestandeskontrolle", dt);

рдлрд┐рд░, рдЖрдк рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рдХрд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдбреНрд░рд╛рдЗрд╡ d:

var rr = lr.Execute(AspNetCore.Reporting.RenderType.Pdf, 1, parameters, "");
System.IO.File.WriteAllBytes(System.IO.Path.Combine(@"d:\", "Bestandeskontrolle.pdf"), rr.MainStream);

рдореИрдВрдиреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг HTML рдкреГрд╖реНрда рдЬреЛрдбрд╝рд╛ рд╣реИ рдЬреЛ рдХрд┐ рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрдЕрд░ 2014 рдФрд░ 2017 рдХреЗ рд░рд┐рдкреЛрд░реНрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдирдХрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдореИрдВрдиреЗ рдПрдХ рдбреНрд░рд╛рдлреНрдЯ-рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдерд╛ред рдпрджрд┐ рдЖрдк рдлрд┐рд░ рд╕реЗ рдкрдХрдбрд╝ рд╕реЗ рд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЗрд╕рдореЗрдВ рдкрд╛рдПрдВрдЧреЗ:

AnyWebReporting\AnyWebReporting\wwwroot
AnyWebReporting/AnyWebReporting/wwwroot/index.htm
AnyWebReporting/AnyWebReporting/wwwroot/index2014.htm
AnyWebReporting/AnyWebReporting/wwwroot/logon.htm

рдФрд░ рдмрд╕ред
рдпрджрд┐ рдЖрдкрдХреЛ рд╡реЗрдм рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд Enum рдХреЛ lr.Execute (RenderType.HTML5_0 рдпрд╛ HTML4_0 рдпрд╛ MHTML) рдореЗрдВ рдкрд╛рд╕ рдХрд░рдХреЗ html рдХреЛ рд░реЗрдВрдбрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рд╣реА рдкреЗрдЬ рдирдВрдмрд░ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо (HTML) рдореЗрдирд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд╣реИ, рдФрд░ CSS рд╕реЗрдХреЗрдВрдбрд░реАрд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, JavaScript рджреНрд╡рд╛рд░рд╛ index.htm рдХреА рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрд╡рд░ рдХреЛ lr.Execute рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реБрдП, рдЖрдкрдХреЛ рдлрд┐рд▓рд╣рд╛рд▓ рдЦреБрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмрд╕ рдЕрднреА рддрдХ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░реЛрдВ рдУрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЕрднреА рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдбреАрдПрдл рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@ k3flo @mshwf : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

@mshwf :

@ststeiger рдХреНрдпрд╛ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ? (рдореИрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реИ!)

рдореЗрд░реА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдЕрдиреНрдпрдерд╛ рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ред
рд╢рд╛рдпрдж рд╣рдо .NET рдХреЛрд░ 3.1 рд░рд┐рд▓реАрдЬрд╝ (LTS) рдХреЗ рдмрд╛рдж рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреБрдЫ рджреЗрдЦреЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рддрдм рд╕рдбрд╝рдХ .NET .NET рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХреЗрд╡рд▓-Windows ReportViewer рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрдЧреАред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рддрд░рд╣ рдХреА рдмрд╛рдд рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЙрддрдиреА рд╣реА рдмрдбрд╝реА рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рд╡реЗ рд╕рднреА System.Drawing (рдФрд░ WinAPI GDI +) рдХреЛрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рд▓реЗрдВрдЧреЗ, рдФрд░ рдЗрд╕реЗ рдареАрдХ рд╕реЗ рдХрд░реЗрдВрдЧреЗ, рдРрд╕рд╛ рдХрд╣рдирд╛ рд╣реИред рдкрд╛рд░ рдордВрдЪред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ (рдХрдл) рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рджреБрдЦреА рдирд╣реАрдВ рд╣реИрдВред

рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ VB- рдХреЛрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ .NET рдХреЛрд░ (<3) рдореЗрдВ VB рд╕рдорд░реНрдерди рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╕рдВрджрд┐рдЧреНрдз - рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд░реВрдк рдореЗрдВред рдпрд╣ (= рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) .NET рдХреЛрд░ 3 рджреНрд╡рд╛рд░рд╛ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдпрджрд┐ рд╡реЗ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрдЕрд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдХрдо рд╕реЗ рдХрдо рдПрд▓рдЯреАрдПрд╕ рд░рд┐рд▓реАрдЬ рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗред

@mshwf :
рдЖрдкрдХреЛ рдЗрд╕ рдкреВрд░реЗ рд╕реВрддреНрд░ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЖрдкрдХреЛ рдмрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЬрд┐рдк-рдХреНрд▓реЛрди рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЙрджрд╛рд╣рд░рдг рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦрдирд╛ рд╣реИ (рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐)ред

рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЧрд┐рдЯрд▓реИрдм рдкрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?
dcga

@dcga : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

рдирдорд╕реНрддреЗ, рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЕрдкрдиреЗ рдЧрд┐рдЯрд▓реИрдм рдкрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ ASP.net рдХреЛрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЕрдм рд░рд┐рдкреЛрд░реНрдЯ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@ ericyu67 : рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ gitlab рдЦрд╛рддрд╛ рдирд╛рдо ericyu рд╣реИ? рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдкрдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред

рдпрд╣ рд╕рд╣реА рд╣реИ, рдзрдиреНрдпрд╡рд╛рджред

@ststeiger рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдХреГрдкрдпрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?
rodrigorrl

@rodrigorrl : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

@ststeiger рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдХреГрдкрдпрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?

@ рдЦрд░реАрджрд╛рд░реЛрдВ : рдХрд┐рдпрд╛ рдЧрдпрд╛ред

@ststeiger рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?

@acofalc : @ aco.mit рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛

рдирдорд╕реНрддреЗ, @ststeiger рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЬреЛрдбрд╝реЗрдВ: oblin228, рдзрдиреНрдпрд╡рд╛рджред

рдЗрд╕ рдкрд░ рдХреЛрдИ рднреА рд╕рдорд╛рдЪрд╛рд░? рдореИрдВ ASP.NET рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рд╡рд╛рдкрд╕ рд╡реЗрдмрдлреЙрд░реНрдо рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдордирд╛ рдХрд░рддрд╛ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдФрд░ рдореИрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ url рдлрд╝реАрдб рдХрд░рддрд╛ рд╣реВрдВред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ ...

@ рднреВрдд : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

@jfcaldeira : рдЬрдм рддрдХ рдЖрдк рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдЧрд┐рдЯрд▓реИрдм рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдХрдо рд╕реЗ рдХрдо (рдПрдЪрдЯреАрдПрдордПрд▓-рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЦреБрд▓реА рд╕рдорд╕реНрдпрд╛) рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЪрд▓рд╛рдПрдБ, рдФрд░ рдЗрд╕реЗ рддрдм рддрдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдЖрдк рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд░реВрдк рдореЗрдВ рдкреАрдбреАрдПрдл, рдЯреАрдЖрдИрдПрдлрдПрдл рдпрд╛ рдкрд╛рд╡рд░рдкреЙрдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ (рд╢рдмреНрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ), рд▓реЗрдХрд┐рди рдПрдХреНрд╕реЗрд▓, рдПрдЪрдЯреАрдПрдордПрд▓, рдПрдХреНрд╕рдПрдордПрд▓, рдФрд░ рдЬреЛрдВрд╕ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, (рдореЗрдВ рднреА) рдореЗрд░рд╛ 1-рд░рд┐рдкреЛрд░реНрдЯ рдкрд░реАрдХреНрд╖рдг - рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдкреВрд░реНрдг рд╕реБрд╡рд┐рдзрд╛-рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдХреБрдЫ рднреА рд╡рд┐рд╕реНрдлреЛрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)ред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ SSRS рдкрд░ рд╡рд┐рдВрдбреЛрдЬ-рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣реИ, рддреЛ рдЖрдк рдХрд╕реНрдЯрдо-рд╕реБрд░рдХреНрд╖рд╛ (akaред SSRS рдлреЙрд░реНрдо рдкреНрд░рдорд╛рдгреАрдХрд░рдг) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдЙрд╕рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ:
https://www.codeproject.com/Articles/675943/SSRS-2012-Forms-Authentication
https://github.com/ststeiger/SSRS-Localizer
https://github.com/ststeiger/CustomHttpHeaders
https://github.com/microsoft/Reporting-Services/tree/master/CustomSecuritySample

SSRS- рджрд╛рддрд╛-рдХреБрдХреА рдХреЗ рд▓рд┐рдП IE рдХреЗ рд╕рдордЧреНрд░ рдбреЛрдореЗрди рдореЗрдВ рдмрдиреЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдлреЙрд░реНрдо-рдкреЛрд╕реНрдЯ рдХреЗ рд╕рд╛рде рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ P3P- рдиреАрддрд┐ (http рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ SSRS) рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ... (рдиреЛрдЯ: рдпрджрд┐ рдЖрдк рдЖрднрд╛рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ SSRS рдкрд░ 2 рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВ, рддреЛ Application1 рд╕реЗ рдПрд╕рдПрд╕-рдХреБрдХреА [рдЬреЛ SSRS- рдбреЛрдореЗрди рдкрд░ рд╣реИ] рдЖрд╡реЗрджрди 2 рдХреА рдУрд░-рдХреБрдХреА рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджреЗрдЧрд╛, рдЬреЛ SSRS- рдбреЛрдореЗрди рдкрд░ рднреА рд╣реИ)

@ рднреВрдд : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

@jfcaldeira : рдЬрдм рддрдХ рдЖрдк рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдЧрд┐рдЯрд▓реИрдм рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдХрдо рд╕реЗ рдХрдо (рдПрдЪрдЯреАрдПрдордПрд▓-рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЦреБрд▓реА рд╕рдорд╕реНрдпрд╛) рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЪрд▓рд╛рдПрдБ, рдФрд░ рдЗрд╕реЗ рддрдм рддрдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдЖрдк рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд░реВрдк рдореЗрдВ рдкреАрдбреАрдПрдл, рдЯреАрдЖрдИрдПрдлрдПрдл рдпрд╛ рдкрд╛рд╡рд░рдкреЙрдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ (рд╢рдмреНрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ), рд▓реЗрдХрд┐рди рдПрдХреНрд╕реЗрд▓, рдПрдЪрдЯреАрдПрдордПрд▓, рдПрдХреНрд╕рдПрдордПрд▓, рдФрд░ рдЬреЛрдВрд╕ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, (рдореЗрдВ рднреА) рдореЗрд░рд╛ 1-рд░рд┐рдкреЛрд░реНрдЯ рдкрд░реАрдХреНрд╖рдг - рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдкреВрд░реНрдг рд╕реБрд╡рд┐рдзрд╛-рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдХреБрдЫ рднреА рд╡рд┐рд╕реНрдлреЛрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)ред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ SSRS рдкрд░ рд╡рд┐рдВрдбреЛрдЬ-рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣реИ, рддреЛ рдЖрдк рдХрд╕реНрдЯрдо-рд╕реБрд░рдХреНрд╖рд╛ (akaред SSRS рдлреЙрд░реНрдо рдкреНрд░рдорд╛рдгреАрдХрд░рдг) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдЙрд╕рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ:
https://www.codeproject.com/Articles/675943/SSRS-2012-Forms-Authentication
https://github.com/ststeiger/SSRS-Localizer
https://github.com/ststeiger/CustomHttpHeaders
https://github.com/microsoft/Reporting-Services/tree/master/CustomSecuritySample

SSRS- рджрд╛рддрд╛-рдХреБрдХреА рдХреЗ рд▓рд┐рдП IE рдХреЗ рд╕рдордЧреНрд░ рдбреЛрдореЗрди рдореЗрдВ рдмрдиреЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдлреЙрд░реНрдо-рдкреЛрд╕реНрдЯ рдХреЗ рд╕рд╛рде рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ P3P- рдиреАрддрд┐ (http рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ SSRS) рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ... (рдиреЛрдЯ: рдпрджрд┐ рдЖрдк рдЖрднрд╛рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ SSRS рдкрд░ 2 рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВ, рддреЛ Application1 рд╕реЗ рдПрд╕рдПрд╕-рдХреБрдХреА [рдЬреЛ SSRS- рдбреЛрдореЗрди рдкрд░ рд╣реИ] рдЖрд╡реЗрджрди 2 рдХреА рдУрд░-рдХреБрдХреА рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджреЗрдЧрд╛, рдЬреЛ SSRS- рдбреЛрдореЗрди рдкрд░ рднреА рд╣реИ)

рдирдорд╕реНрдХрд╛рд░, рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдЧреАрддрд╛рд▓рд╛рдм рдкрд░ рдЗрд╕ рд░рд┐рдкреЛрд░реНрдЯрд╡реЙрдпрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдВрдХрд░ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдФрд░ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ ASP.NET рдХреЛрд░ рдореЗрдВ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рдХреБрдХреА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгрд┐рдд рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдПрдВрдХрд░ рдХреЗ href рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпрдХреНрд╖ URL рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рднреА рдкреНрд░рд╛рд░реВрдк рдХреЗ рд░реВрдк рдореЗрдВ рдкреАрдбреАрдПрдл рдЪреБрдиреЗрдВред рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рди рдорд╛рдВрдЧрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдВрдд-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджреЛ рдмрд╛рд░ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЦрд╛рддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рдПрдХ рдиреАрдЪреЗ рд╣реИред

рд╣рд╛рдп, @ststeiger - рдореЗрд░реЗ gitlab arunputhran рд╣реИред рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдХреГрдкрдпрд╛ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ "рд╕рднреА рдореБрдЭреЗ gitlab рдХреЗ рд▓рд┐рдП рдкрд╣реБрдБрдЪ" рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рджрдлрди рдХрд░ рджрд┐рдпрд╛ред

рдЗрд╕ рдереНрд░реЗрдб рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЛ .NET рдХреЛрд░ SSRS рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕реЗ рдпрд╣рд╛рдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рд╣реИ: https://feedback.azure.com/forums/908035-sql-server/suggestions/33241936-develop-a.srs-reportviewer-for -asp рд╢реБрджреНрдз рдХреЛрд░

рд╢реАрд░реНрд╖ рд╕реЗ 7 рд╡рд╛рдВ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдФрд░ рдпрд╣ рд╢реАрд░реНрд╖ рд╕реЗ 4 рд╡реЗрдВ рд╕реНрдерд╛рди рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ рд╣реИ, рд╕рдмрд╕реЗ рдЕрдиреБрд░реЛрдз SQL рд╕рд░реНрд╡рд░ рд╕реБрд╡рд┐рдзрд╛ (https://feedback.azure.com/forums/908035-sql-server?category_id=325159)

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЗ рдХрд╛рд░рдг рдЗрд╕рдХрд╛ рд╕реНрдерд╛рди рдЕрдм рддреАрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рд╣реИ

рдпрдХреАрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рднреА рдорджрдж рдХрд░рддрд╛ рд╣реИ ...

@arunputhrankyc : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

@ k290 : рдирд╛рд╣, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, SQL рд╕рд░реНрд╡рд░ рдкреНрд░рдмрдВрдзрди рд╕реНрдЯреВрдбрд┐рдпреЛ 2017 рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд╛рд░реНрдХ рдереАрдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ: рдЪреАрдЦ:: man_facepalming:: woman_facepalming:
рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрднреА рддрдХ SQL-ops-studio / AzureDataStudio рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЙрд╕ рднрд╛рд╡рдирд╛ рдореЗрдВ, рдХрд┐рд╕реА рдХреЛ рдЙрд╕ рдЗрдЪреНрдЫрд╛ рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдордЬрд╛рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдлреНрд▓реИрдЯ рдбрд┐рдЬрд╛рдЗрди рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ, рдпрд╣ рдЕрднреА 1 рдЕрдкреНрд░реИрд▓ рдирд╣реАрдВ рд╣реИ: рдкрд▓рдХ:

рд╡реИрд╕реЗ рдореИрдВ рдПрдХ рд╡реЗрдм рдПрдкреАрдЖрдИ рд╕реЗ рдПрдХ рдкреАрдбреАрдПрдл рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдХрд┐рд╕реА рднреА wcf рдмрд┐рдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред
рд╕рд┐рд░реНрдл рд╕рд╛рдмреБрди / asmx рдХреЙрд▓ рдФрд░ http рдХреЙрд▓ред
рдЙрдиреНрд╣реЗрдВ рдХрд░рдиреЗ рдореЗрдВ рдореИрдВ рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ w / o рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред
рдореЗрд░рд╛ рдХреЛрдб asp.net 4.6 / рд╡реЗрдм рдПрдкреАрдЖрдИ 2 рд╣реИ
рдпрджрд┐ рдЖрдк рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдХрд░реВрдБ рддреЛ рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреЛрдб рдКрдкрд░ рдПрдХ рдЧреАрдердм рдкрд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ реирежрезрем рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЬреЛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЙрд╕рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреБрд░рд╛рдиреЗ ssrs рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдирдорд╕реНрдХрд╛рд░, рдореИрдВрдиреЗ рдЖрдкрдХреА рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдкрдврд╝реА рдХрд┐ рдЖрдк SSRS рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореЗрд░реЗ рдкрд╛рд╕ ASP.NET Core рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдПрдВрдХрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдкреНрд░рд╛рд░реВрдк рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ URL рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реИред рдХреНрдпрд╛ рдХреБрдХреА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдореЗрд░реЗ рдРрдк рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдпрд╣ рдкреВрдЫрдирд╛ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? рдореБрдЭреЗ рд░рд┐рдкреЛрд░реНрдЯ рджрд┐рдЦрд╛рдиреЗ рдХреА рднреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбрд╛рдЙрдирд▓реЛрдб рд╣реИ рд▓реЗрдХрд┐рди рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛

@arunputhrankyc : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

@ k290 : рдирд╛рд╣, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, SQL рд╕рд░реНрд╡рд░ рдкреНрд░рдмрдВрдзрди рд╕реНрдЯреВрдбрд┐рдпреЛ 2017 рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд╛рд░реНрдХ рдереАрдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ тЩВ тЩАтЩАтЩА ЁЯджЁЯдж N
рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрднреА рддрдХ SQL-ops-studio / AzureDataStudio рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЙрд╕ рднрд╛рд╡рдирд╛ рдореЗрдВ, рдХрд┐рд╕реА рдХреЛ рдЙрд╕ рдЗрдЪреНрдЫрд╛ рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдордЬрд╛рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдлреНрд▓реИрдЯ рдбрд┐рдЬрд╛рдЗрди рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ, рдпрд╣ рдкрд╣рд▓реА рдЕрдкреНрд░реИрд▓ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ April

рд╡реИрд╕реЗ рдореИрдВ SSMS рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд╛рд░реНрдХ рдереАрдо рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рддреНрдпрд╛ рдХрд░реВрдВрдЧрд╛ рд▓реЗрдХрд┐рди рдореИрдВ рдЙрд╕ SSRS рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдирдВрдЧреЗ рд╣рд╛рде рдЦрд╛рдКрдВрдЧрд╛ред SQL рд╕реЗ рд╕реАрдзреЗ рдЙрд╕ рдкрд░ рд╕рдореВрд╣реАрдХреГрдд рдбреЗрдЯрд╛ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдХреЗ рд╕рд╣реЗрдЬреЗ рдЧрдП рдХрд╛рд░реНрдп рдХреА рдорд╛рддреНрд░рд╛ рдЕрджреНрднреБрдд рд╣реИред

рдорд╣рд╛рди рд╕рдорд╛рдзрд╛рди, рдХреГрдкрдпрд╛ рдореБрдЭреЗ gitlab рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ: @kholossok , рдзрдиреНрдпрд╡рд╛рдж

рдХреГрдкрдпрд╛ рдореБрдЭреЗ рднреА gitlab рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ: @EMaderbacher

@kholossok , @EMaderbacher : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

рдореБрдЭреЗ рднреА рдЬреЛрдбрд╝реЗрдВ @jfcaldeira

@jfcaldeira : рдЖрдкрдХреЛ рдореБрдЭреЗ рдПрдХ git lab рдЦрд╛рддрд╛ рджреЗрдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ рдПрдХ git рд╣рдм рдЦрд╛рддрд╛ рд╣реИред
рдпрд╣ рдирд┐рдГрд╢реБрд▓реНрдХ рд╣реИред https://gitlab.com
рдЙрд╕ рд╕рдордп рдкреНрд░рд╛рдЗрд╡реЗрдЯ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдЬреАрдердм рдкрд░ рдореБрдлреНрдд рдирд╣реАрдВ рдереАред

@ststeiger
рдкреНрд░рд╛рдЗрд╡реЗрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЕрдм GitHub рдкрд░ рдореБрдлреНрдд рд╣реИрдВ, рд╕реАрдорд╛ рд╕рд╣рдпреЛрдЧреА рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд╣реИред

@jfcaldeira : рдЖрдкрдХреЛ рдореБрдЭреЗ рдПрдХ git lab рдЦрд╛рддрд╛ рджреЗрдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ рдПрдХ git рд╣рдм рдЦрд╛рддрд╛ рд╣реИред
рдпрд╣ рдирд┐рдГрд╢реБрд▓реНрдХ рд╣реИред https://gitlab.com
рдЙрд╕ рд╕рдордп рдкреНрд░рд╛рдЗрд╡реЗрдЯ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдЬреАрдердм рдкрд░ рдореБрдлреНрдд рдирд╣реАрдВ рдереАред

рдореИрдВрдиреЗ рдЙрд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╕реЗ рдПрдХ рдЦрд╛рддрд╛ рдмрдирд╛рдпрд╛ рд╣реИ

@jfcaldeira : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рдЖрдкрдХреЛ рдкрд╣реБрдБрдЪ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдИрдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
@ikourfaln : рдореБрдЭреЗ рдкрддрд╛ рд╣реИред рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ github рдирд┐рдЬреА рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдореЗрдВ 3 рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдорд╛ рдереА, рд╣рд╛рд▓рд╛рдВрдХрд┐ред рдпрд╣ рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛, рдзрдиреНрдпрд╡рд╛рдж ред

Gitlab рд╕реАрдорд╛рдПрдБ:

рдЖрдЬ рдХреА рдЦреБрд╢рдЦрдмрд░реА рдХреЛ рдордирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ GitLab.com рдкрд░ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рд╕реНрдЯреЛрд░реЗрдЬ рд▓рд┐рдорд┐рдЯ 5GB рд╕реЗ рдмрдврд╝рд╛рдХрд░ 10GB рдХрд░ рджреА рд╣реИред рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, GitLab.com рдкрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдФрд░ рдирд┐рдЬреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЕрд╕реАрдорд┐рдд рд╣реИрдВ, рдЗрдирдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрдирдореЗрдВ рдЕрд╕реАрдорд┐рдд рд╕рд╣рдпреЛрдЧреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдХреНрдпрд╛ рдореБрдЭреЗ рднреА рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдореЗрд░рд╛ GitLab рдЦрд╛рддрд╛ рдмреИрд░реАрдЬрд╕рд┐рд▓реНрд╡рд░ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдореБрдЭреЗ рдХреГрдкрдпрд╛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? @jyanosu рдзрдиреНрдпрд╡рд╛рдж!

@BarryJSilver : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

@ рдЬреНрдпрд╛рдиреЛрд╕реБ : рдореБрдЭреЗ рдЧрд┐рдЯ рд▓реИрдм рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреЙрдо рдЕрдХрд╛рдЙрдВрдЯ, рдЬреАрдердм рдирд╣реАрдВред

@ststeiger рд╡реВрдкреНрд╕, рдмрд╕ рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ .. рдЙрд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо @jyanosu

@ рдЬреНрдЮрд╛рдирд╕реВ : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

@ststeiger рдЖрдк рдореЗрд░реЗ gitlab рдЦрд╛рддреЗ @ kanichi123 рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
рдзрдиреНрдпрд╡рд╛рдж!

@ kanichi123 : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

@ststeiger рдХреГрдкрдпрд╛ рдореЗрд░реЗ рдЦрд╛рддреЗ рдХреЛ рдФрд░ рднреА рдЪрдордХрджрд╛рд░ рдмрдирд╛рдПрдВ

@ рдЖрд╢реНрд░рдп : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

@ststeiger рдХреГрдкрдпрд╛ рдЖрдк рдореЗрд░рд╛ gitlab рдЦрд╛рддрд╛ @PentaTech рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
рдзрдиреНрдпрд╡рд╛рдж!

@ststeiger рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ? @glebteterin
рдзрдиреНрдпрд╡рд╛рдж!

@PentaTech , @ g-rad: рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

рдЗрд╕ рдкрд░ @ststeiger рдХрд╛ рдЕрдЪреНрдЫрд╛ рдкреНрд░рдпрд╛рд╕, рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ gitlab рдЦрд╛рддрд╛ brad0000 рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?

@ рдмреНрд░реИрдб0000 : рд╣реЛ рдЧрдпрд╛ред

рд╣рд╛рдп @ststeiger , рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ? gitlab рдЦрд╛рддрд╛: wyepez рдзрдиреНрдпрд╡рд╛рдж

@wyepez : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

@ststeiger рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?

Gitlab рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо: choudeshell

@choudeshell : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди .rdlc (рд╕рд╛рде рд╣реА рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб .rld) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдзрдиреНрдпрд╡рд╛рдж

рдХреНрдпрд╛ рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди .rdlc (рд╕рд╛рде рд╣реА рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб .rld) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдзрдиреНрдпрд╡рд╛рдж

@mpirritano : рд╣рд╛рдБ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, RDL рдФрд░ RDLC рдореЗрдВ рдмрд╣реБрдд рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рд╡реЗрдм рд╣реИред рдХреЛрдИ рд╡рд┐рдВрдбреЛрдЬ-рдлреЙрд░реНрдо рдирд╣реАрдВред
рдореБрдЭреЗ рдЖрдкрдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ git lab рдЦрд╛рддреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рди рдХрд┐ github рдХреАред

@ststeiger рдзрдиреНрдпрд╡рд╛рдж - рдореИрдВрдиреЗ рдЕрдм GitLab рдЦрд╛рддрд╛ рдмрдирд╛рдпрд╛ рд╣реИ : @mdpirrit

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ - рдореБрдЭреЗ рдХреЗрд╡рд▓ ASP .NET рдХреЛрд░ рд▓рдХреНрд╖реНрдпреАрдХрд░рдг .NET рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

@mpirritano : рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЙрд╕ рдИрдореЗрд▓ рдЦрд╛рддреЗ рдкрд░ рдПрдХ рдИрдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ gitlab рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ред

рд╕рдордЭ рдЧрдпрд╛; рдзрдиреНрдпрд╡рд╛рдж!

@ рдЪрд╛рд░реНрдЯ рдпрд╣ рдорд╣рд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ рдЪрд╛рд░реНрдЯ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред - рдпрд╣ рдЪрд╛рд░реНрдЯ рдХреНрд╖реЗрддреНрд░ рдХреЛ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ: " рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдЕрд╕реЗрдВрдмрд▓реА рд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛"

рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдЬреНрдЮрд╛рдд рд╕реАрдорд╛ рд╣реИ рдпрд╛ рдореИрдВ рдХреБрдЫ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ?

рдзрдиреНрдпрд╡рд╛рдж

@ststeiger рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐

рдзрдиреНрдпрд╡рд╛рдж

рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж! @ashabyralieva

рдХреНрдпрд╛ рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди .rdlc (рд╕рд╛рде рд╣реА рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб .rld) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдзрдиреНрдпрд╡рд╛рдж

@mpirritano : рд╣рд╛рдБ, RDL рдФрд░ RDLC рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рд╣реИред рдХреЛрдИ рд╡рд┐рдВрдбреЛрдЬ рдлреЙрд░реНрдо рдирд╣реАрдВред
рдореБрдЭреЗ рдЖрдкрдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ Git Lab рдЦрд╛рддреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, GitHub рдХреА рдирд╣реАрдВред

рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж! @ashabyralieva

@azikaa : рд╣реЛ рдЧрдпрд╛ред ╨Ф╨╛╨▒╨░╨▓╨╗╨╡╨╜╨╛;)

@mpirritano :

рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдЬреНрдЮрд╛рдд рд╕реАрдорд╛ рд╣реИ рдпрд╛ рдореИрдВ рдХреБрдЫ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ?

рд╣рд╛рдБ, рдПрдХ рд╕реАрдорд╛ рдЬрд┐рд╕реЗ рдореИрдВ рдЬрд╛рдирддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддреА рд╣реИред
рдФрд░ рдпрд╣ рднреА, рдпрд╣ HTML рдореЗрдВ рдЫрд╡рд┐ рдЙрддреНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдЦреБрд▓рд╛ рдЕрдВрдХред
рдореИрдВрдиреЗ рдЕрднреА рддрдХ рд╕рдмрд░рдкреЛрд░реНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рднреА рдирд╣реАрдВ рдерд╛ред
рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рднреА рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рднреА рд╣реЛрдЧреАред
рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдпрд╣ рднреА рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд╕рдм рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрдЕрд░ рдореЗрдВ рд╕рдмрд░рдкреЛрд░реНрдЯ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдВрднрд╡рддрдГ рдЗрд╕рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ "System.Windows.Forms, Version = 4.0.0.0" рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ .NET рдХреЛрд░ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ System.NetStandard.Forms рдХреЗ рдмрдЬрд╛рдп ReportViewer рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ .NET рдХреЛрд░ред рдкреВрд░реНрдг рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдХрд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣рд╛рдВ System.Windows.Forms, Version = 4.0.0.0 рдореМрдЬреВрдж рд╣реИред

System.Windows.Forms рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╢рд╛рдпрдж рдЕрд╕реЗрдВрдмрд▓реА-рдирд╛рдо рдФрд░ рд╕рдВрд╕реНрдХрд░рдг (рдЬрд╣рд╛рдВ рднреА рдпрд╣ рд╕реЛрд░реНрд╕рдХреЛрдб рдореЗрдВ рдЫреБрдкрд╛рддрд╛ рд╣реИ) рдХреЛ рдПрдХ ifdef рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд╣реАрдВред

рдореБрдЭреЗ рдЕрднреА рднреА рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдБред Windowsред рдХреБрдЫ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╕рдмрд░реЗрдкреЛрд░реНрдЯ рдЬрд╛рддреЗ рд╣реИрдВ: рд╡реЗ рд╡реИрд╕реЗ рднреА рдПрдХ рдмреБрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рдкреАрдбреАрдПрдл рдФрд░ рдПрдХреНрд╕реЗрд▓ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд┐рд░реНрдл 1 рд░рд┐рдкреЛрд░реНрдЯ рд╣реИ, рддреЛ рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рдмрдкреЛрд░реНрдЯ рдХреЛ рдЦрддреНрдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ , рдФрд░ рд╕рдм рдХреБрдЫ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред

╨Ф╨╛╨▒╨░╨▓╨╗╨╡╨╜╨╛
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ COR_Basic_SwissLife_UAT?

: rofl: рд╣рд╛рд╣рд╛, рдЕрдЪреНрдЫрд╛ рдПрдХ, рдЖрдк рдирд╣реАрдВ рд╣реИ, рдХрд┐ DB рдЧреЛрдкрдиреАрдп рд╣реИред
рд▓реЗрдХрд┐рди рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рдЦреБрдж рдХреА рдЙрджрд╛рд╣рд░рдг рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдкрдХреЛ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред

@ststeiger рдзрдиреНрдпрд╡рд╛рджред рджрд░рдЕрд╕рд▓, рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ AsNetCore.Reporting.InternalLocalReport рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдмрдкреНрд░рдкреЛрд░реНрдЯрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЗрд╡реЗрдВрдЯ рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд╕рдмрдкреНрд░рдкреЛрд░реНрдЯ рдХреЗ рдЗрд░рд╛рджреЗ рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд▓реЗ рд╣рдлреНрддреЗ рддрдХ рдореБрдЭреЗ рдпрд╣ рди рдорд┐рд▓реЗ ...

рдореИрдВ рд╕рдмрдкреНрд░рдкреЛрд░реНрдЯреНрд╕ рд╕реЗ рднреА рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд░реВрд░реА рдкрд╛рдпрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЛ рдПрдХ рд░рд┐рдкреАрдЯрд┐рдВрдЧ рд╕реЗрдХреНрд╢рди рдХреЗ рднреАрддрд░ рд░рд┐рдкреАрдЯрд┐рдВрдЧ рд╕реЗрдХреНрд╢рди рдХреА рдЬрд░реВрд░рдд рдереАред рдПрдХреНрд╕реЗрд▓ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдЖрд░рдбреАрдПрд▓рд╕реА / рдЖрд░рдбреАрдПрд▓ рдХреЗ рд╕рд╛рде рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рдПрдХ рд╡рд░реНрдХрд╢реАрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рдмрдкреНрд░рдкреЛрд░реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

рдирдП рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд░реАрдкреЛрд╕реНрдЯ рдХрд░рдирд╛ред

рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕рднреА рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ: https://feedback.azure.com/forums/908035-sql-server/suggestions/33241936-develop-a-ssrs-reportviewerer-for-asp-net рдХреЛрд░

рдЗрд╕ рд╕рд╛рд▓ рдорд╛рд░реНрдЪ рдореЗрдВ рдпрд╣ рд╢реАрд░реНрд╖ рд╕реЗ 7 рд╡реЗрдВ рд╕реНрдерд╛рди рдкрд░ рдерд╛ред

рдЕрдм, рд╣рдордиреЗ рдЗрд╕реЗ SQL рд╕рд░реНрд╡рд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рд╕реЗ 2nd рддрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ: https://feedback.azure.com/forums/908035-sql-server?category_id=325159

рдХреНрдпрд╛ рд╣рдо рдбрд╛рд░реНрдХ рдореЛрдб рдХреЛ рд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ?

@ststeiger рдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдЬ рдереЛрдбрд╝рд╛ рд╕рдордп рдерд╛ рдФрд░ рдореИрдВ .docx, .xlsx, рдФрд░ .pdf рдореЗрдВ рд╕рдм

рдореЗрд░реА рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐ рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ - рдореИрдВрдиреЗ "рд▓реЛрдХрд▓Report" рд╡рд░реНрдЧ рдХреЗ "LocalReport" рд╡рд░реНрдЧ рдХреЗ рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╛рдпрд░ рдХреЛ "рдЖрдВрддрд░рд┐рдХ" рд╕реЗ "рдЬрдирддрд╛" рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рддрдм рдореИрдВ "рд╕рдмрд░рдкреЛрд░реНрдЯрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ" рдЗрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░ рд▓рд┐рдЦ рд╕рдХрддрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╣рдореЗрд╢рд╛ (рдЬрд╣рд╛рдВ рдореИрдВ рд╕рдмреНрд░реЗрдкреЛрд░реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкрдврд╝реВрдВрдЧрд╛ рдФрд░ рдПрдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдореИрдВ рд╕рдмрдкреЛрд░реНрдЯрдкреЛрд░реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдореЗрдВ рдкрд╛рд╕ рдХрд░реВрдВрдЧрд╛)

рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ .NET рдХреЛрд░ рдХреЗ рд╕рд╛рде рдЪрд╛рд░реНрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореБрджреНрджреЗ рдХреЛ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП; рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдХрднреА рдРрд╕реЗ рд╕рдорд╛рдзрд╛рди рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рдЬреЛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рд╡рд╣ рд╕рдм рдХреБрдЫ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдХрднреА рднреА HTML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ)

рдзрдиреНрдпрд╡рд╛рдж

рдирд┐рд░реНрдпрд╛рдд- рд╢рдмреНрдж, рдПрдХреНрд╕реЗрд▓ рдирд╣реАрдВ рдЬрд╛рдЧрд╛?
FormatException: рд╣реЗрдбрд░ рдореЗрдВ рдЕрдорд╛рдиреНрдп рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ 0: ''

рд╕реЗрд╡рд╛ рдмрд╣реБрдд рдзреАрдореА рд╣реИред рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдХреГрдкрдпрд╛ рд╕рд╣рд╛рдпрддрд╛ рдХреАрдЬрд┐рдП....

рд╣реЗ рд╕рдм рд▓реЛрдЧ, рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА ReportExecutionService.asmx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпреВрдЕрд░ рдХрдВрдЯреНрд░реЛрд▓ рдХрд╛ рдПрдХ рдХрд╕реНрдЯрдо рдкреЛрд░реНрдЯ рд▓рд┐рдЦрдирд╛ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ SSRS рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореИрдВ ASP.NET MVC рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рдЗрд╕реЗ .NetCore & MVC рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ рдФрд░ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдк рд▓реЛрдЧ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ: https://github.com/alanjuden/MvcReportViewer

рдПрд▓рди

рдирд┐рд░реНрдпрд╛рдд- рд╢рдмреНрдж, рдПрдХреНрд╕реЗрд▓ рдирд╣реАрдВ рдЬрд╛рдЧрд╛?
FormatException: рд╢реАрд░реНрд╖рд▓реЗрдЦ рдореЗрдВ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ 0 рдкрд░ рдЕрдорд╛рдиреНрдп рдорд╛рди рд╣реИрдВ: ''

рд╕реЗрд╡рд╛ рдмрд╣реБрдд рдзреАрдореА рд╣реИред рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдХреГрдкрдпрд╛ рд╕рд╣рд╛рдпрддрд╛ рдХреАрдЬрд┐рдП....

@azikaa : рдХреНрдпрд╛ рдЖрдк MvcReportViewer, рдпрд╛ AspNetCore.ReportViewer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реАрдзреЗ рддреМрд░ рдкрд░ рдЗрд╕ рд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ SSRS рдЯреАрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЕрд╡рдЧрдд рд╣реИред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдпрд╣ рдЕрдм рдЕрд╕рд╣рдиреАрдп рд╣реЛ рдЧрдпрд╛ рд╣реИред

@ k290 рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдпреЛрдЧреНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛ рдпрд╣рд╛рдВ рдЙрдирдХреЗ рд╕реБрдЭрд╛рд╡ рдХрд░реЗрдВ :

рдирдП рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд░реАрдкреЛрд╕реНрдЯ рдХрд░рдирд╛ред

рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕рднреА рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ: https://feedback.azure.com/forums/908035-sql-server/suggestions/33241936-develop-a-ssrs-reportviewerer-for-asp-net рдХреЛрд░

рдЗрд╕ рд╕рд╛рд▓ рдорд╛рд░реНрдЪ рдореЗрдВ рдпрд╣ рд╢реАрд░реНрд╖ рд╕реЗ 7 рд╡реЗрдВ рд╕реНрдерд╛рди рдкрд░ рдерд╛ред

рдЕрдм, рд╣рдордиреЗ рдЗрд╕реЗ SQL рд╕рд░реНрд╡рд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рд╕реЗ 2nd рддрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ: https://feedback.azure.com/forums/908035-sql-server?category_id=325159

рдХреНрдпрд╛ рд╣рдо рдбрд╛рд░реНрдХ рдореЛрдб рдХреЛ рд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ermithun picture ermithun  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

aurokk picture aurokk  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

farhadibehnam picture farhadibehnam  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

guardrex picture guardrex  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

UweKeim picture UweKeim  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ