Skip to content

amulobaev/testtask3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание

1. Возьмем текущий отчет Журнал рабочего времени. (Проанализируем какие данные он использует для построения).
1.1. Построим таблицу SQL в которой будут необходимые данные для построения этого отчета, по которой без перебора, интерации, и цикла(Очень важный пункт) мы сможем построить такой же отчет. (Для начала таблицу можно заполнить вручную, чуть позже при создании сервиса, который будет заполнять её будем брать реальные данные и уже изучать исходник того, откуда из таблиц берутся эти данные).
2. Просматривать отчет ЖРВ через веб, для этого создать сервис который будет по предварительной таблице (п1.1) строить отчет по параметрам фильтрации (поступивших с web формы) и передавать его для отображения на Web.
3. Разработать сервис, предварительного построителя отчета, который будет заполнять таблицу п.1.1. на постоянной основе, проверяя актуальность в ней данных, отлавливать изменения в основных таблицах. (В этот момент мы предоставим исходники того, как работает в настоящий момент построения отчетов, что бы можно было видеть в какие таблицы что записывается, откуда что берется и т.д.)
Для тестового задания необходимо 1, 1.1, 2 пункты.

Так как в отчете нужно просто показывать данные из таблицы, то выбрал самый быстрый способ - загружать данные в отчете.

Запрос для получения данных:

DECLARE @CMD nvarchar(max)
SET @CMD = 'SELECT [Employee], [Date], [Department], [Position], [PlanStart], [Norm], [WorkedOut], [Late], [Details] FROM [Report]'

SET @CMD = @CMD + ' WHERE CONVERT(date, [Date]) >= ''' + CAST(CONVERT(date, @PeriodFrom) as varchar(255)) + '''' +
				  ' AND CONVERT(date, [Date]) <= ''' + CAST(CONVERT(date, @PeriodTo) as varchar(255)) + ''''

IF (@Department <> 'Все')
BEGIN
	SET @CMD = @CMD + ' AND Department = ''' + @Department + ''''
END

IF (@Position <> 'Все')
BEGIN
	SET @CMD = @CMD + ' AND Position = ''' + @Position + ''''
END

IF (@Employee <> 'Все')
BEGIN
	SET @CMD = @CMD + ' AND Employee = ''' + @Employee + ''''
END

EXEC sp_executesql @CMD

Для отображения отчетов используется Stimulsoft Reports.Web для ASP.NET MVC http://www.stimulsoft.com/ru/products/reports-web

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published