Всем доброго времени суток. Кто нибудь сталкивался с разработкой пользовательского виджета в аналитике. Не могу разобраться, как реализовать в виде списка? У меня есть ХП которая возвращает нужный результат.
Результат хранимой процедуры возвращайте в представление, например:
CREATE FUNCTION [dbo].[tsf_PathReportData]()
RETURNS @ExaminationBlocksByObject TABLE ([Number] nvarchar(50),
[ExaminationId] uniqueidentifier,
[ObjectId] uniqueidentifier,
[MacroscopicDescription] nvarchar(max),
[BlocksDescription] nvarchar(max))
AS
BEGIN
DECLARE
@Number nvarchar(50),
@ExaminationId uniqueidentifier,
@ObjectId uniqueidentifier,
@MacroscopicDescription nvarchar(max),
@BlocksDescription nvarchar(max)
DECLARE ExaminationDetailCursor CURSOR STATIC LOCAL FOR
SELECT
O.Number,
O.MacroscopicDescription,
O.ExaminationId,
O.Id as ObjectId
FROM ABExaminationObject O
OPEN ExaminationDetailCursor
FETCH NEXT FROM ExaminationDetailCursor INTO @Number, @MacroscopicDescription, @ExaminationId, @ObjectId
WHILE @@FETCH_STATUS =0 BEGIN
SET @BlocksDescription =''
SELECT @BlocksDescription = @BlocksDescription + B.Number+' '+ B.[Description]+ CHAR(13)+ CHAR(10)
FROM ABExaminationBlock B
WHERE B.ExaminationObjectId= @ObjectId
INSERT INTO @ExaminationBlocksByObject (
Number,
ExaminationId,
ObjectId,
MacroscopicDescription,
BlocksDescription
)
VALUES (
@Number,
@ExaminationId,
@ObjectId,
@MacroscopicDescription,
@BlocksDescription)
FETCH NEXT FROM ExaminationDetailCursor INTO @Number, @MacroscopicDescription, @ExaminationId, @ObjectId
END
CLOSE ExaminationDetailCursor
DEALLOCATE ExaminationDetailCursor
RETURN
END
create view VwExaminationReport
as
select
newid() as Id,
Number as Number,
MacroscopicDescription as MacroscopicDescription,
ExaminationId as Examination,
BlocksDescription as BlocksDescription
from [tsf_PathReportData]()
На основании этого представления создайте схему таблицы-представления в конфигурации и используйте этот объект в стандартном элементе итогов 'Список'.
добрый! Мне в ХП нужно передавать параметры даты из фильтров, на сколько я знаю, то представление нельзя сделать с принимаемыми параметрами.
CREATE PROCEDURE [dbo].[absp_GetProductAnalyticByZone] @startDate varchar(10), @stopDate varchar(10)
AS
SELECT
T.Segment[Segment],
ROUND(SUM(T.[AvgRevenue]), 2, 1)[AvgRevenue],
SUM(T.[SalesCount])[SalesCount],
ROUND(SUM(T.[CPA]), 2, 1)[CPA],
SUM(T.[SumCtr])[SumCtr],
ROUND(SUM(T.[ROAS]), 2, 1)[ROAS]
FROM
(SELECT
[IABZ].[Date],
[IABZ].ZoneId,
[IZ].Segment,
SUM([IABZ].Ctr)[SumCtr],
SALES_QUERY.SalesCount[SalesCount],
SALES_QUERY.AvgRevenue[AvgRevenue],
IIF(SALES_QUERY.SalesCount=0 , 0,([CpcCost].[AdsCost]/SALES_QUERY.SalesCount))[CPA],
(SALES_QUERY.SalesCount* SALES_QUERY.AvgRevenue/[CpcCost].[AdsCost])*100[ROAS],
[CpcCost].[AdsCost]
FROM [InsurerAnalyticByZone][IABZ] WITH(NOLOCK)
LEFT OUTER JOIN [InsurerZone][IZ] WITH(NOLOCK) ON [IABZ].ZoneId=[IZ].Id
INNER JOIN [CpcCost][CpcCost] WITH(NOLOCK) ON [IABZ].[Date]=[CpcCost].[Date]
OUTER APPLY (SELECT COUNT([I].[Id])[SalesCount],
AVG([I].[Revenue])[AvgRevenue]
FROM [AbInsurance][I] WITH(NOLOCK)
INNER JOIN [CityByEwa][CBE] WITH(NOLOCK) ON [I].EwaCityId=[CBE].Id
WHERE [I].StatusId='195CD1AD-37B3-4F0A-B4FC-70E2BF0B3F06'
AND [CBE].ZoneCode=[IZ].Code
AND CONVERT(varchar(10), [I].CreatedAt, 120)=[IABZ].[Date]) SALES_QUERY
GROUP BY [IABZ].ZoneId, [IZ].Segment, [IABZ].[Date], [IZ].Code, [CpcCost].AdsCost, SALES_QUERY.SalesCount, SALES_QUERY.AvgRevenue) AS T
WHERE T.[Date] BETWEEN @startDate AND @stopDate
GROUP BY T.ZoneId, T.Segment
UNION ALL
SELECT
[CBE].[Name][Segment],
[R].[AvgRevenue][AvgRevenue],
COUNT([I].[Id])[SalesCount],
SUM(IIF(R.[Count]=0, 0, [CpcCost].[AdsCost]/R.[Count]))[CPA],
0[SumCtr],
ROUND(SUM((R.[Count]* R.[AvgRevenue])/[CpcCost].[AdsCost])*100, 2, 1)[ROAS]
FROM [AbInsurance][I] WITH(NOLOCK)
INNER JOIN [CityByEwa][CBE] WITH(NOLOCK) ON [I].EwaCityId=[CBE].Id AND [CBE].Id='9a008f3a-f865-4e74-b1f2-530f54711f2b'
INNER JOIN [CpcCost][CpcCost] WITH(NOLOCK) ON CONVERT(varchar(10), [I].CreatedAt, 120)=[CpcCost].[Date]
OUTER APPLY ( SELECT COUNT([I].Id)[Count],
AVG([I].[Revenue])[AvgRevenue]
FROM [AbInsurance][I] WITH(NOLOCK)
INNER JOIN [CityByEwa][CBE] WITH(NOLOCK) ON [I].EwaCityId=[CBE].Id AND [CBE].Id='9a008f3a-f865-4e74-b1f2-530f54711f2b'
INNER JOIN [CpcCost][CpcCost] WITH(NOLOCK) ON CONVERT(varchar(10), [I].CreatedAt, 120)=[CpcCost].[Date]
WHERE [I].StatusId='195CD1AD-37B3-4F0A-B4FC-70E2BF0B3F06' AND CONVERT(varchar(10), [I].CreatedAt, 120) BETWEEN @startDate AND @stopDate
) R
WHERE [I].StatusId='195CD1AD-37B3-4F0A-B4FC-70E2BF0B3F06' AND CONVERT(varchar(10), [I].CreatedAt, 120) BETWEEN @startDate AND @stopDate
GROUP BY [CBE].[Name], [R].[AvgRevenue]
В чем суть архитектурного подхода micro frontend? За счет чего micro frontend позволяет быстро меняться, создавать независимые части приложения и быть командам более автономными? На эти вопросы отвечает Владислав Куварзин, Technical Leader компании Terrasoft, в своем тренинге для разработчиков. Язык видео - русский.
Если вам понравилось это видео из серии митапов для разработчиков TechPoint, и вы хотите смотреть новые видео в сообществе, поставьте отметку "Нравится" этой статье. Пишите о ваших впечатлениях о тренинге в комментариях.
Практика построения 12-факторных микросервисних приложений - фантастика или реальность? Тренинг для разработчиков о том, как эта философия может быть применена к реальному бизнес приложению. Спикер -Александр Бондаренко, Technical Leader компании Terrasoft. Язык видео - русский.
Если вам понравилось это видео из серии митапов для разработчиков TechPoint, и вы хотите смотреть новые видео в сообществе, поставьте отметку "Нравится" этой статье. Пишите о ваших впечатлениях о тренинге в комментариях.
Как минимум, в механизме глобального поиска он используется. Нужно смотреть документацию по этому ПО, как устроены стандартные библиотеки для взаимодействия с ним, есть ли они под JS и C# и можно ли ими воспользоваться в конфигурации bpm'online.