рд╣рдордиреЗ SSRS 2014 рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХреИрд╕реЗ рдмрдирд╛рдИ


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

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо Microsoft SQL Server рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕ рд╕реБрдВрджрд░рддрд╛ рдХреЛ рдХреИрд╕реЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмреИрдХрдПрдВрдб рд╡реЗрдм рдкреЛрд░реНрдЯрд▓ рдХреЗ рд╕рд╛рде рдмреБрд░реЗ рджреЛрд╕реНрдд рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреМрди рд╕реЗ рдЯреНрд░рд┐рдХ рдЙрдирдХреЗ рд░рд┐рд╢реНрддреЗ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗред рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреВрд░рд╛ рд╡реНрдпрд╛рдкрд╛рд░ рд╣рд┐рд╕реНрд╕рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рд╣рдо рддрдХрдиреАрдХреА рдореБрджреНрджреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЖрдПрдБ рд╢реБрд░реВ рдХрд░реЗрдВ!


рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдирд┐рд░реВрдкрдг


рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкреЛрд░реНрдЯрд▓ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдХрдИ рд╕реМ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдПрдХ рдЪрд░рдгрдмрджреНрдз рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдЙрдЪреНрдЪ рд░реИрдВрдХ рдХрд╛ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рд╣реЛрддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдпрд╣ рдЕрдВрддрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рднреА рдЕрдзреАрдирд╕реНрде рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХреЗрдВред рдЖрдк рдЪрд░рдгреЛрдВ рдкрд░ рдХреВрдж рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд╡рдпрдВ рд╕реЗ рдХрдо рдХрд┐рд╕реА рднреА рд░реИрдВрдХ рдХреЗ рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рд╕рд╛рде рдЧрддрд┐рд╡рд┐рдзрд┐ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдХреМрди рд╕реА рдШрдЯрдирд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ? рдпрд╣ рдПрдХ рдЯреНрд░реЗрдбрд┐рдВрдЧ рдХрдВрдкрдиреА рдХреЗ рдХрд░реНрдордЪрд╛рд░реА рдХрд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг, рд╕рдорд░реНрдерди рдпрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдмрд┐рдХреНрд░реА рдХреЗ рдмрд┐рдВрджреБ рдкрд░ рдЖрдпреЛрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рдШрдЯрдирд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ iPad рд╣реИ рдЬреЛ рдкреЗрд╢реЗрд╡рд░ рдЧреБрдгреЛрдВ рдФрд░ рдХреМрд╢рд▓ рдХреЗ рд▓рд┐рдП рдХрд░реНрдордЪрд╛рд░реА рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ iPad рдкрд░ рднрд░рд╛ рд╣реБрдЖ рд╣реИред

рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЖрдк рдЖрдВрдХрдбрд╝реЗ рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

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

рдРрд╕реЗ рдЖрдБрдХрдбрд╝реЗ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, XLS, PDF, DOCX рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ, рдФрд░ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпреЗ рд╕рднреА рдХрд╛рд░реНрдп рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдкрд░ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВред

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

рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдФрд░ рд╕реАрдорд╛рдПрдБ


рдкреЛрд░реНрдЯрд▓ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрд░реНрд╕реНрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рдлреНрд░рдВрдЯ рдХреЛ Angular 5 рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдВрд╕рд╛рдзрди JWT рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, Google Chrome, Firefox, Microsoft Edge рдФрд░ IE 11 рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ ред

рд╕рднреА рдбреЗрдЯрд╛ рдПрдордПрд╕ SQL тАЛтАЛрд╕рд░реНрд╡рд░ 2014 рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред SQL рд╕рд░реНрд╡рд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛ (SSRS) рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдЧреНрд░рд╛рд╣рдХ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдордирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реАрдорд╛: SSRS рдХреА рдкрд╣реБрдВрдЪ рдмрд╛рд╣рд░ рд╕реЗ рдмрдВрдж рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк NTLM рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ SOAP рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред

SSRS рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж
SSRS тАУ , , . docs.microsoft.com, SSRS (API) ( Report Server, - HTTP).

рдзреНрдпрд╛рди рджреЗрдВ, рд╕рд╡рд╛рд▓: рдореИрдиреБрдЕрд▓ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рд░реНрдп рдХреЛ рдХреИрд╕реЗ рдкреВрд░рд╛ рдХрд░реЗрдВ, рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рд╕рдВрд╕рд╛рдзрди рдФрд░ рдЕрдзрд┐рдХрддрдо рд▓рд╛рдн?

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

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрд╛рд░реНрдп рдкреЛрд░реНрдЯрд▓ рдХреЗ рд╕рд╛рде SSRS рдорд┐рддреНрд░ рдмрдирд╛рдирд╛ рдФрд░ рдХрд╛рд░реНрдп рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдерд╛ред рддреЛ рдЖрдЗрдП рдЗрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдкрд░ рдЬрд╛рдПрдВ - рд▓рдЧрднрдЧ рд╣рд░ рдмрд┐рдВрджреБ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ рдкрд╛рдИ рдЧрдИрдВред

рд╕рдорд╛рдзрд╛рди рд╕рдВрд░рдЪрдирд╛


рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА SSRS рд╣реИ, рдЗрд╕рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЙрдкрдХрд░рдг рд╣реИрдВ:

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

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

рдЕрдЧрд▓рд╛ рдкреНрд░рд╢реНрди: рдкреЛрд░реНрдЯрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдкреАрдврд╝реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдХреЛ UI рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдпрд╛ рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ?

SSRS рд╕реЗ рдкреЛрд░реНрдЯрд▓ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ


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

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


рдкреЛрд░реНрдЯрд▓ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рддреЗ

рд╣реИрдВ рдХрд┐ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрдпреЛрдВ ReportProxy рдпрд╣рд╛рдБ рд╣реИред

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

ReportService API рдореЗрдВ рдХреЗрд╡рд▓ 2 рд╡рд┐рдзрд┐рдпрд╛рдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВ:

  1. GetReports - рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рдирд╛рдо рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ;
  2. GetReportData (рдкреНрд░рд╛рд░реВрдк, рдкрд░рдо) - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рджрд┐рдП рдЧрдП рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП, рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рд░рд┐рдкреЛрд░реНрдЯ рдбреЗрдЯрд╛ рджреЗрддрд╛ рд╣реИред

рдЕрдм рдЖрдкрдХреЛ SSRS рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдФрд░ рдЙрд╕рд╕реЗ рд╕рд╣реА рд░реВрдк рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди 2 рддрд░реАрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕реЗ рдкреНрд░рд▓реЗрдЦрди рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рд╣рдо рд╕реЛрдк рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣реЗрд▓реА рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИ ... рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдЖрд╢реНрдЪрд░реНрдп рд╣рдореЗрдВ рдпрд╣рд╛рдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЪреВрдВрдХрд┐ SSRS рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрдВрдж рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ NTLM рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╕реАрдзреЗ SOAP рдкреЛрд░реНрдЯрд▓ рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реА рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдПрдВ рднреА рд╣реИрдВ:

  • рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕реЗрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рднреА рд░реЛрдХреЗрдВ;
  • рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реИ, рддреЛ ReportService рдореЗрдВ рд╕рдВрдкрд╛рджрди рдиреНрдпреВрдирддрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдмреЗрд╣рддрд░ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ ReportProxy рд╣рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЬреЛ SSRS рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ ReportService рд╕реЗ SSRS рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:

  1. рд╕реЗрд╡рд╛ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯрд╕реЗрд╡рд╛ рд╕реЗ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЗрдбрдмреНрд▓реНрдпреВрдЯреА рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ;
  2. рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреНрд░реЙрдХреНрд╕реА рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдПрд╕рдПрд╕рдЖрд░рдПрд╕ рдореЗрдВ рдПрд╕рдУрдПрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддрд╛ рд╣реИ, рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдПрдирдЯреАрдПрд▓рдПрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ;
  3. SSRS рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рдЕрдиреБрд░реЛрдз рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗрд╡рд╛ рдореЗрдВ рд╡рд╛рдкрд╕ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, ReportProxy SSRS рдФрд░ ReportService рдХреЗ рдмреАрдЪ рдПрдХ рдПрдбреЗрдкреНрдЯрд░ рд╣реИред
рдирд┐рдпрдВрддреНрд░рдХ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
[BasicAuthentication]
public class ReportProxyController : ApiController
{
    [HttpGet()]
    public List<ReportItem> Get(string rootPath)
    {
        //  ...
    }

    public HttpResponseMessage Post([FromBody]ReportRequest request)
    {
        //  ...
    }
}

BasicAuthentication :

public class BasicAuthenticationAttribute : AuthorizationFilterAttribute
{
    public override void OnAuthorization(HttpActionContext actionContext)
    {
        var authHeader = actionContext.Request.Headers.Authorization;

        if (authHeader != null)
        {
            var authenticationToken = actionContext.Request.Headers.Authorization.Parameter;
            var tokenFromBase64 = Convert.FromBase64String(authenticationToken);
            var decodedAuthenticationToken = Encoding.UTF8.GetString(tokenFromBase64);
            var usernamePasswordArray = decodedAuthenticationToken.Split(':');
            var userName = usernamePasswordArray[0];
            var password = usernamePasswordArray[1];

            var isValid = userName == BasiAuthConf.Login && password == BasiAuthConf.Password;

            if (isValid)
            {
                var principal = new GenericPrincipal(new GenericIdentity(userName), null);
                Thread.CurrentPrincipal = principal;

                return;
            }
        }

        HandleUnathorized(actionContext);
    }

    private static void HandleUnathorized(HttpActionContext actionContext)
    {
        actionContext.Response = actionContext.Request.CreateResponse(
            HttpStatusCode.Unauthorized
        );

        actionContext.Response.Headers.Add(
            "WWW-Authenticate", "Basic Scheme='Data' location = 'http://localhost:"
        );
    }
}


рдирддреАрдЬрддрди, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

  1. рдлреНрд░рдВрдЯ рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ;
  2. ReportService ReportProxy рдХреЗ рд▓рд┐рдП рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ;
  3. SOAP рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ ReportProxy SSRS рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗрд╡рд╛ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИ;
  4. рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗрд╡рд╛ рдЕрдиреБрдмрдВрдз рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкрд░рд┐рдгрд╛рдо рд▓рд╛рддреА рд╣реИ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рджреЗрддреА рд╣реИред

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

рдкреЛрд░реНрдЯрд▓ рдореЗрдВ SSRS рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛


рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рдПрдХ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреА рдмрд╛рдд рд╣реИ - рд░рд┐рдкреЛрд░реНрдЯ HTML- рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЖрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреЛ рдЪрд╛рд╣реЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рд╣рдо рдЗрд╕реЗ рдкреГрд╖реНрда рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░реЗрдВрдЧреЗ, рдЗрд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЯрд┐рдВрдЯ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдмрд╛рдд рдЯреЛрдкреА рдореЗрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдиреБрдХрд╕рд╛рди рдереЗред

рдбрд┐рдЬрд╛рдЗрди рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреЛрд░реНрдЯрд▓ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рджреЛ рдкреГрд╖реНрда рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП:

1) рдЙрди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреА рдПрдХ рд╕реВрдЪреА рдЬрд╣рд╛рдВ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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



2) рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдЬрдирд░реЗрдЯрд░ рдЬреЛ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

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



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

рд╕рдорд╕реНрдпрд╛ рдирдВрдмрд░ 1ред рд╡рд┐рд╢рд╛рд▓рдХрд╛рдп рдЯреЗрдмрд▓


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

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЪрд┐рдкрдХреЗ рд╣реБрдП рдмреНрд▓реЙрдХ рдХреЛ рдЯрд╛рд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ SSRS 2014 MHTML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ - рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВред

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

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

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

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

рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдХреЗрд╡рд▓ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ: рд▓рдВрдмрд╡рдд (рдирд┐рд╢реНрдЪрд┐рдд-рд╕реНрддрдВрдн) рдФрд░ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ (рдирд┐рд╢реНрдЪрд┐рдд-рдкрдВрдХреНрддрд┐)ред рдпрд╣ рдХреЛрдиреЗ рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдкрд░ рдПрдХ рдФрд░ рдорд╛рд░реНрдХрд░ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬреЛ рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЬрдЧрд╣ рдкрд░ рд░рд╣рддрд╛ рд╣реИ - рдлрд┐рдХреНрд╕реНрдб-рджреЛрдиреЛрдВред

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

рдХреЛрдб рджреЗрдЦреЗрдВ
type FixationType = 'row' | 'column' | 'both';

init(reportHTML: HTMLElement) {
    //    

    // -  
    const rowsFixed: NodeList = reportHTML.querySelectorAll('[title^="RowFixed"]');
    // -  
    const columnFixed: NodeList = reportHTML.querySelectorAll('[title^="ColumnFixed"]');
    // -    
    const bothFixed: NodeList = reportHTML.querySelectorAll('[title^="BothFixed"]');

    this.prepare(rowsFixed, 'row');
    this.prepare(columnFixed, 'column');
    this.prepare(bothFixed, 'both');
}

//    
prepare(nodeList: NodeList, fixingType: FixationType) {
    for (let i = 0; i < nodeList.length; i++) {
        const element: HTMLElement = nodeList[i];
        //   -
        element.classList.add(fixingType + '-fixed');

        element.removeAttribute('title');
        element.removeAttribute('alt'); //   SSRS

        element.parentElement.classList.add(fixingType  + '-fixed-parent');

        //     ,     
        element.style.width = element.getBoundingClientRect().width  + 'px';
        //     ,     
        element.style.height = element.getBoundingClientRect().height  + 'px';

        //  
        this.calculateCellCascadeParams(element, fixingType);
    }
}


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

рд╕реБрдзрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ред
//      
calculateCellCascadeParams(cell: HTMLElement, fixationType: FixationType) {
    const currentTD: HTMLTableCellElement = cell.parentElement;
    const currentCellIndex = currentTD.cellIndex;

    //   
    currentTD.style.left = '';
    currentTD.style.top = '';

    const currentTDStyles = getComputedStyle(currentTD);

    //  
    if (fixationType === 'row' || fixationType === 'both') {
        const parentRow: HTMLTableRowElement = currentTD.parentElement;

        //        
        //    .
        //   ,    .
        let previousRow: HTMLTableRowElement = parentRow;
        let topOffset = 0;

        while (previousRow = previousRow.previousElementSibling) {
            let previousCellIndex = 0;
            let cellIndexBulk = 0;

            for (let i = 0; i < previousRow.cells.length; i++) {
                if (previousRow.cells[i].colSpan > 1) {
                    cellIndexBulk += previousRow.cells[i].colSpan;
                } else {
                    cellIndexBulk += 1;
                }

                if ((cellIndexBulk - 1) >= currentCellIndex) {
                    previousCellIndex = i;
                    break;
                }
            }

            const previousCell = previousRow.cells[previousCellIndex];

            if (previousCell.classList.contains(fixationType + '_fixed_parent')) {
                topOffset += previousCell.getBoundingClientRect().height;
            }
        }

        if (topOffset > 0) {
            if (currentTDStyles.top) {
                topOffset += <any>currentTDStyles.top.replace('px', '') - 0;
            }

            currentTD.style.top = topOffset + 'px';
        }
    }

    //  
    if (fixationType === 'column' || fixationType === 'both') {
        //       
        //     .
        //   ,    .
        let previousCell: HTMLTableCellElement = currentTD;
        let leftOffset = 0;

        while (previousCell = previousCell.previousElementSibling) {
            if (previousCell.classList.contains(fixationType + '_fixed_parent')) {
                leftOffset += previousCell.getBoundingClientRect().width;
            }
        }

        if (leftOffset > 0) {
            if (currentTDStyles.left) {
                leftOffset += <any>currentTDStyles.left.replace('px', '') - 0;
            }

            currentTD.style.left = leftOffset + 'px';
        }
    }
}


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


рдПрдХ рдЪрд┐рдкрдЪрд┐рдкреА рд╢реАрд░реНрд╖ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдирдореВрдирд╛ рд░рд┐рдкреЛрд░реНрдЯ

, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

  1. рд╣рдо рдПрд╕рдПрд╕рдЖрд░рдПрд╕ рд╕реЗ рдорд╛рд░реНрдХрдЕрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдбреЛрдо рдореЗрдВ рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рдЪрд┐рдкрдХрд╛рддреЗ рд╣реИрдВ;
  2. рдорд╛рд░реНрдХрд░реЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдиреЗрдВ;
  3. рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВред

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

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, IE рдХреЗ рд▓рд┐рдП, рдЪрд┐рдкрдХреЗ рд╣реБрдП рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рдЪрд┐рдкрдЪрд┐рдкрд╛ рд╕рдВрдкрддреНрддрд┐ред рдмрд╛рдХреА - рд╕рдлрд╝рд╛рд░реА, рдореЛрдЬрд╝рд┐рд▓рд╛ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ рдХреНрд░реЛрдо - рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдЖрдЧреЗ рдмрдврд╝реЛред

рд╕рдорд╕реНрдпрд╛ рд╕рдВрдЦреНрдпрд╛ 2ред рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ


рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдмрд╛рд╣рд░ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ (1) SSRS рдХреЛ рдПрдХ рдмреНрд▓реЙрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП ReportService рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, (2) Window.URL.createObjectURL рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, (3) рдЯреИрдЧ рдореЗрдВ рд▓рд┐рдВрдХ рдбрд╛рд▓реЗрдВ рдФрд░ рдПрдХ рдХреНрд▓рд┐рдХ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХрд░рдг рдХрд░реЗрдВ рдлрд╛рдЗрд▓ рдЕрдкрд▓реЛрдбред

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

IE рдФрд░ рдПрдЬ рдореЗрдВ, рдИрд╡реЗрдВрдЯ рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдиреБрд░реЛрдз рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЗрди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рдПрдХ рдХреНрд▓рд┐рдХ рдкрд░ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╕рд╛рде рд╣реА рдЖрдЧреЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдХреЗрдд рднреАред рд╕рдорд╛рдзрд╛рди window.navigator.msSaveOrOpenBlob () рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛, рдЬреЛ IE рдФрд░ рдПрдЬ рджреЛрдиреЛрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред рд╡рд╣ рдмрд╕ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЕрдиреБрдорддрд┐ рдХреИрд╕реЗ рдкреВрдЫреЗрдВ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХрд░реЗрдВ рдХрд┐ рдЖрдЧреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред рддреЛ, рд╣рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ window.navigator.msSaveOrOpenBlob рд╡рд┐рдзрд┐ рдореМрдЬреВрдж рд╣реИ, рдФрд░ рд╕реНрдерд┐рддрд┐ рдкрд░ рдХрд╛рд░реНрдп рдХрд░реЗрдВред

IOS рдкрд░ Chrome рдХреЗ рдкрд╛рд╕ рдРрд╕реА рдХреЛрдИ рд╣реИрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдмрдЬрд╛рдп, рд╣рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рдЦрд╛рд▓реА рдкреГрд╖реНрда рдорд┐рд▓рд╛ рд╣реИред рд╡реЗрдм рдкрд░ рдШреВрдорддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдПрдХ рдРрд╕реА рд╣реА рдХрд╣рд╛рдиреА рдорд┐рд▓реА, рдЬрд┐рд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП iOS 13 рдореЗрдВ рдЗрд╕ рдмрдЧ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдордиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ iOS 12 рдХреЗ рджрд┐рдиреЛрдВ рдореЗрдВ рд╡рд╛рдкрд╕ рд▓рд┐рдЦрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЕрдВрдд рдореЗрдВ рд╣рдордиреЗ рдХреЛрдИ рдФрд░ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рдмрд╕ iOS рдХреЗ рд▓рд┐рдП рдХреНрд░реЛрдо рдореЗрдВ рдмрдЯрди рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред
рдЕрдм UI рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдирд┐рд░реНрдпрд╛рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреИрд╕реА рджрд┐рдЦрддреА рд╣реИред рдХреЛрдгреАрдп рд░рд┐рдкреЛрд░реНрдЯ рдШрдЯрдХ рдореЗрдВ рдПрдХ рдмрдЯрди рд╣реИ рдЬреЛ рдЪрд░рдгреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ:

  • рдШрдЯрдирд╛ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд╣реИрдВрдбрд▓рд░ рдирд┐рд░реНрдпрд╛рдд рдкреНрд░рд╛рд░реВрдк рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдкреАрдбреАрдПрдл");
  • рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдмреНрд▓реЙрдм-рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ReportService рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ;
  • рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ IE рдпрд╛ рдПрдЬ рд╣реИ;
  • рдЬрдм рд░рд┐рдкреЛрд░реНрдЯрд╕реЗрд╡рд╛ рд╕реЗ рдЬрд╡рд╛рдм рдЖрддрд╛ рд╣реИ:
    • рдЕрдЧрд░ рдпрд╣ IE рдпрд╛ рдПрдЬ рд╣реИ, рддреЛ рдЗрд╕реЗ window.navigator.msSaveOrOpenBlob (fileStream, fileName) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ;
    • рдЕрдиреНрдпрдерд╛, рдпрд╣ this.exportDownload (fileStream, fileName) рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ FileStream, ReportService рдХреЗ рдЕрдиреБрд░реЛрдз рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЧрдИ рдмреВрдБрдж рд╣реИ, рдФрд░ рдлрд╝рд╛рдЗрд▓рдирд╛рдо рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд╣реИред рд╡рд┐рдзрд┐ window.URL.createObjectURL (fileStream) рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдЫрд┐рдкрд╛ рд╣реБрдЖ рдЯреИрдЧ рдмрдирд╛рддрд╛ рд╣реИ, рдПрдХ рдХреНрд▓рд┐рдХ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЯреИрдЧ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА, рдЕрдВрддрд┐рдо рд░реЛрдорд╛рдВрдЪ рдмрдирд╛ рд░рд╣рд╛ред

рд╕рдорд╕реНрдпрд╛ рд╕рдВрдЦреНрдпрд╛ 3ред рдкреНрд░рд┐рдВрдЯ рдЖрдЙрдЯ


рдЕрдм рд╣рдо рдкреЛрд░реНрдЯрд▓ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ XLS, PDF, DOCX рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рд╕рдЯреАрдХ рдмрд╣реБ-рдкреГрд╖реНрда рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рдЫрдкрд╛рдИ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдпрджрд┐ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рд╢реАрд░реНрд╖рдХреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рд╡рд╣реА рдЪрд┐рдкрдЪрд┐рдкрд╛ рдмреНрд▓реЙрдХ, рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдмрд╛рдд рдХреА рдереАред

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

  1. рдЧреИрд░-рдорд╛рдирдХ рджреЗрдЦрдиреЗ рдХрд╛ рдХреНрд╖реЗрддреНрд░ - рд░рд┐рдкреЛрд░реНрдЯ рд╕реНрд╡рдпрдВ рдПрдХ рдЕрд▓рдЧ рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рддрд╛рдХрд┐ рдкреГрд╖реНрда рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХреНрд╖реИрддрд┐рдЬ рдЖрдпрд╛рдореЛрдВ рддрдХ рди рдЦрд┐рдВрдЪреЗред Window.print () рдЯреНрд░рд┐рдо рдХрдВрдЯреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЛ рдлрд┐рдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ;
  2. , ;
  3. , .

рдпрд╣ рд╕рдм рдЬреЗрдПрд╕ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рдордп рдмрдЪрд╛рдиреЗ рдФрд░ window.print () рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

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

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

рдФрд░ рдпрджрд┐ рдЖрдк рдПрдХ рдЫрд╡рд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдкреГрд╖реНрда рдкрд░ рдкреАрдбреАрдПрдл рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рдкреГрд╖реНрда рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрддреЗ рд╣реИрдВ? рдХреЛрдгреАрдп рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдШрдЯрдХ рд╣реИрдВ рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЦреЛрдЬрд╛, рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ред

рдЙрд╕ рдбреЗрдЯрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╣ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдХ рдирдП рдкреГрд╖реНрда рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА window.print () рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

  1. рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдкреАрдбреАрдПрдл рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗрд╡рд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ;
  2. рд╣рдореЗрдВ Blob рдСрдмреНрдЬреЗрдХреНрдЯ рдорд┐рд▓рддрд╛ рд╣реИ, рдЗрд╕реЗ URL (URL.createObjectURL (fileStream)) рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВ, URL рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдбреАрдПрдл рд╡реНрдпреВрдЕрд░ рдХреЛ рджреЗрдВ;
  3. рд╣рдо рдкреАрдбреАрдПрдл рджрд░реНрд╢рдХ рд╕реЗ рдЪрд┐рддреНрд░ рд▓реЗрддреЗ рд╣реИрдВ;
  4. рдПрдХ рдирдпрд╛ рдкреГрд╖реНрда рдЦреЛрд▓реЗрдВ рдФрд░ рд╡рд╣рд╛рдВ рдереЛрдбрд╝рд╛ рдорд╛рд░реНрдХрдЕрдк рдЬреЛрдбрд╝реЗрдВ (рд╢реАрд░реНрд╖рдХ, рдереЛрдбрд╝рд╛ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди);
  5. рдкреАрдбреАрдПрдл рджрд░реНрд╢рдХ рд╕реЗ рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рдЫрд╡рд┐ рдЬреЛрдбрд╝реЗрдВ, window.print () рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред

рдХрдИ рдЬрд╛рдБрдЪреЛрдВ рдХреЗ рдмрд╛рдж, рдкреЗрдЬ рдкрд░ рдПрдХ JS рдХреЛрдб рднреА рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЬреЛ рдЫрдкрд╛рдИ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЪрд┐рддреНрд░ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВред

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

рдЗрд╕рдХреЗ рдиреБрдХрд╕рд╛рди рднреА рд╣реИрдВ:

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

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

рдЖрдЦрд╝рд┐рд░реА рд╢рдмреНрдж


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

Source: https://habr.com/ru/post/undefined/


All Articles