Заказ звонка

Закрыть

*
*
*

Создание отчета

Страницы: 1
RSS
Создание отчета, пользовательский запрос
Добрый день. Читаю мануал по разметке Excel под шаблон отчета, дошел до самого главного, формирования запроса (UserQuery).
Вопрос: каким образом разобраться в структуре базы данных, ведь никакого мастера (типа как консоль запросов в 1сsmile8) в Vogbit нет?
Благодарю!
Добрый день, Сергей. к сожалению мастера построений запросов для системы отчета нету, но зато есть возможность посмотреть какие используются данные запроса для большинства режимов в "Form Explorer" при нажатии клавиши "F11". Этих данных должно быть достаточно для того, что бы понять, какой запрос нужно использовать.
Цитата
Андрей Бусел пишет:
Добрый день, Сергей. к сожалению мастера построений запросов для системы отчета нету, но зато есть возможность посмотреть какие используются данные запроса для большинства режимов в "Form Explorer" при нажатии клавиши "F11". Этих данных должно быть достаточно для того, что бы понять, какой запрос нужно использовать.


Это понятно. Мне нужно разработать свой шаблон отчета.
Для этого сформировать соот-ий набор данных через запрос.

Например открываю ваш отчет "Требование". Вот его запрос:
Код
SEL ECT CD.ID AS ID, CD.Number AS Number, CD.Date AS Date, CD.Comment AS Comment
INTO #CQ
FROM Views.ClDocs AS CD
INNER JOIN (%CurrentQuery%) AS CQ ON CD.ID = CQ.ID;

SELECT 
CQ.ID AS DOC_ID, CAST(CQ.Comment AS NVARCHAR(250)) AS DOC_Comment,
CQ.Number AS DOC_NUM,
CONVERT(NVARCHAR(10),CQ.Date,104) AS DOC_DATE,
LTRIM(RTRIM((ISNULL(CAST(SD.Notation AS NVARCHAR),'') + ' ' + ISNULL(CAST(SD.Name AS NVARCHAR(250)),'')))) AS SENDER,
LTRIM(RTRIM((ISNULL(CAST(RP.Notation AS NVARCHAR),'') + ' ' + ISNULL(CAST(RP.Name AS NVARCHAR(250)),'')))) AS RECIPIENT,
LTRIM(RTRIM((ISNULL(CAST(LC.NomenclatureNotation AS NVARCHAR),'') + ' ' + ISNULL(CAST(LC.NomenclatureName AS NVARCHAR(250)),'')))) AS ORD,
LTRIM(RTRIM((ISNULL(CAST(LC.CollectionNotation AS NVARCHAR),'') + ' ' + ISNULL(CAST(LC.CollectionName AS NVARCHAR(250)),'')))) AS TP,
CAST(CSP.SortOrder AS NVARCHAR(4)) AS NUM,
ISNULL(CSP.NomenclatureNotation,'') AS NMK_NOTE,
ISNULL(CSP.NomenclatureName,'') AS NMK_NAME,
CAST(CSP.Quantity AS DECIMAL(10,3)) AS QUAN,
ISNULL(CSP.MeasureNotation,'') AS MES

FR OM #CQ AS CQ
LEFT JOIN Views.LinkedObjects AS SD ON SD.OwnerID = CQ.ID AND SD.LinkTypeUID = 'LT_Sender'
LEFT JOIN Views.LinkedObjects AS RP ON RP.OwnerID = CQ.ID AND RP.LinkTypeUID = 'LT_Recipient'
LEFT JOIN Views.LinkedComponentCollections AS LC ON LC.OwnerID = CQ.ID
LEFT JOIN Views.CalculatedSpecificationItems AS CSP ON CSP.ClDocID = CQ.ID;

DR OP TABLE #CQ;


А теперь вопрос: такого уровня запросы (не банальная выборка), а именно как на примере, что бы писать я должен знать структуру базы за зубок, верно? Т.е. работать в SQL Server Management с базой Vogbit, т.к. никаких средств разработки сложных запросов к набору данных в Vogbit нет?!
Спасибо!
Для Vogbit особые инструменты написания запросов не нужны, достаточно базовых знаний SQL. Поэтому разработчик ничем не ограничен и может формировать любые запросы на получение данных. Благодаря этому не нужно искать программистов, которые специализируются на определённом продукте. Если необходимо написать простой запрос, то данных из "Form Explorer" достаточно, ну а если нужен более сложный запрос, то тогда придется изучать SQL.

Код
SELECT CD.ID AS ID, CD.Number AS Number, CD.Date AS Date, CD.Comment AS Comment
INTO #CQ
FROM Views.ClDocs AS CD
INNER JOIN (%CurrentQuery%) AS CQ ON CD.ID = CQ.ID;

SELECT 
CQ.ID AS DOC_ID, CAST(CQ.Comment AS NVARCHAR(250)) AS DOC_Comment,
CQ.Number AS DOC_NUM,CONVERT(NVARCHAR(10),CQ.Date,104) AS DOC_DATE

FROM #CQ AS CQ

DROP TABLE #CQ;
"В тексте SQL-скрипта можно использовать следующие служебные слова, вместо которых перед выполнением вставится соответствующий текст SQL-скрипта, который используется для получения данных текущего режима (сетки), из которого был запущен отчет на формирование:
%CurrentQuery% - вставится весь текст SQL-скрипта;
%CurrentQueryPart1% - вставится первая часть SQL-скрипта (определения, заполнение временных таблиц, CTE);
%CurrentQueryPart2% - вставится вторая часть SQL-скрипта (основной SELECT) без завершающего символа «;»;
%CurrentQueryPart2WithoutOrderBy% - вставится вторая часть SQL-скрипта (основной SELECT) без ORDER BY и без завершающего символа «;»;
%CurrentQueryPart3% - вставится третья часть SQL-скрипта (удаление временных таблиц)."

Добрый день. Не разобрался с этими служебными словами.
"...соответствующий текст SQL-скрипта" - соответствующий чему? На что ссылаются эти служебные слова? Где они задаются?
Спасибо!
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)