Добрый день, уважаемые пользователи сообщества!
Как Вы знаете, в "Итогах" можно отображать веб-страницы. Однако по умолчанию, в окне просмотра веб-страниц, кнопок навигации не предусмотрено. Однако их можно легко добавить. Для этого поместим на форму окна просмотра веб-страниц (сервис wnd_URLView) новый Frame и в него добавим новую кнопку Button. Назовем её "Назад".
1
В обработчике события OnClick для ActiveX контрола вызовем метод GoBack():

function ButtonOnClick(Control) {
        URLViewScript.Browser.GoBack();
}

Сохраним изменения и протестируем результат.
По аналогии можно добавить и остальные базовые элементы навигации. Полный список методов:
2

Приятной работы с terrasoft.

Нравится

Поделиться

1 комментарий

Если бы она ещё становилась неактивной, если назад некуда...

Показать все комментарии

В реестре раздела "Продажи" есть несколько столбцов по которым нужно считать итоги. Почти все столбцы с цифровыми данными позволяют выводить в итоговой строке результаты.
Но есть единственный столбец с цифровыми данными, по которому контекстное меню с итогами неактивно, т.е. установлен флажок "Без итогов", а все остальные пункты Sum-Min-Max-Количество-Среднее недоступны.

Как сделать доступным это контекстное меню?

Нравится

4 комментария

Здравствуйте, Дмитрий.
Уточните, пожалуйста, какой столбец Вы имеете ввиду, а также версию используемой системы.

Может, это вычисляемое поле, по которому нельзя сортировать и считать итоги?

"Олейник Дмитрий" написал:

Здравствуйте, Дмитрий.

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


"Прогноз RUR" он называется. В этом столбце отображается результат умножения поля "Сумма" на значение поля "%", то есть там находится целое число. Скриншот нужен?
Версия 3.3.2.53

Дмитрий, поле "Прогноз RUR" является вычисляемым (т.е. физически не хранится в БД). К сожалению, как писал Александр выше, по вычисляемым полям в системе Terrasoft нельзя производить сортировку и считать итоги.

С вариантами "обходных" решений, Вы можете ознакомиться по следующей ссылке: http://www.community.terrasoft.ru/forum/topic/3802

Показать все комментарии

Добрый день!

При построении пользовательских Excel отчетов, точность итоговой строки, по-умолчанию, равна четырем знакам после запятой, в случае если итоговое число не целое, и ни одному знаку после запятой, если число целое.

Изменить точность итоговой строки, при построении Excel отчета можно следующим образом:

1. Открыть TS Administrator.
2. Открыть скрипт src_UserReportCommon (Common \ User Reports).
3. Найти функцию function GetExcelValueByDataField(DataField, IsCalcSummary, TotalSummaryType)
и изменить ее содержимое следующим образом:

1

4. Сохранить изменения и перезапустить клиентское приложение Terrasoft.

Нравится

Поделиться

1 комментарий

картинка потерялась

Показать все комментарии

Здравствуйте. Есть ли в террасофте какие-нибудь инструменты для подсчёта итогов?
Например, мне нужно сгруппировать оборудование по типу + районам и вывести количество. Где это делается? Я пока создал вручную view, и сделал на основе его таблицу в TS (+select query, +dataset, +grid).
Может, есть более удобные инструменты?

Нравится

14 комментариев

Добрый день!

Если используете версию 3.2 и выше, то это возможно через пользовательские запросы.
Нужно перейти в раздел [Запросы], добавить новый, выбрать таблицу и необходимые поля вытянуть в область построения.
Для колонок также доступны итоги и группировки.
Также запрос может быть отображен в виде отдельной детали. В таком случае, просто установите соответствующую опцию в свойствах запроса (карточке). Данный функционал подробно описан в руководствах пользователя.

Здравствуйте Ринат!

Клиентское приложение Terrasoft позволяет настроить раздел "Итоги". То есть на основании пользовательского запроса представить нужную информацию в виде реестра записей.
Для настройки перейдите в раздел "Настройка итогов" меню "Инструменты" и нажмите кнопку "Добавить".
1
Далее следует ввести заголовок и добавить блок "Реестр запросов". Ввести название и выбрать либо добавить новый пользовательский запрос, на основании которого будут формироваться итоги.
2
В случае создания нового запроса, следует выбрать раздел либо справочник для построения запроса, и добавить требуемые поля во вкладку "Данные". При необходимости, на вкладке "Фильтр" можно также добавить фильтры для запроса.
3
После этого сохраняем запрос, сохраняем страницу итогов и перезагружаем клиентское приложение Terrasoft.
В результате, в разделе "Итоги" появится вкладка с настроенным итогом. Также существует возможность для реестра записей отобразить итоговое количество/сумму.
45

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

Спасибо, а можно как-нибудь группировать данные по районам?
Мне нужно количество оборудования по каждому району. Или составлять для каждого района запрос с фильтром?

В запрос нужно вытянуть колонку с наименованием района (справочник), колонку для подсчета количества. Далее в построителе запросов изменяете колонку количества через меню "Изменить", там в свойствах можно указать "Группировать как".

Ринат, в случае, если Вам нужны только итоговые цифры по каждому району, их можно вывести в виде графика либо отдельного реестра.

Если Вам нужно просто сгруппировать реестр реузльтатов по отдельным районам, можно сделать это в запросе реестра, как порекомендовала Татьяна.

Спасибо за ответы, а если мне нужно ещё и по типу оборудования сгруппировать?
Т.е. должна получиться таблица:
район | количество оборудования 1-го типа | количество оборудования 2-го типа | количество оборудования 3-го типа | количество оборудования 4-го типа

Ринат, запросы допускают группировку по нескольким колонкам.

В случае, если районы и типы оборудования у Вас статичны и не меняются, можно реализовать их прямо в соответствующем разделе, создав фильтры и представления, либо фильтры + динамические группы.

У меня получается так:
запрос
Как 1 колонку фильтровать по типу ONT, а вторую по OADM?
И типы оборудования, и районы достаточно часто добавляются :(

Ринат, уточните, пожалуйста, Вам необходимо отcортировать или отфильтровать колонки?

Сортировка возможна по нескольким значениям, фильтровать по нескольким значениям можно только весь запрос, а не отдельные колонки.

Анна,
Нужно отфильтровать.
Понятно, спасибо, буду делать view.

И снова здравствуйте.
Можно ли "Итоги" выводить по умолчанию? Без нажатия Ctrl+U?

Отображения поля "итогов" сохраняется в профиле. То есть, если Вы один раз вывели итоги, то зайдя заново в программу они у Вас будут отображаться.
В противном случае стоит проверить UseProfile.

Ринат, для того, чтобы включить вывод итогов по умолчанию, необходимо в карточке грида установить свойство IsSummaryVisible в true

01

и указать тип итогов для той колонки, в которой их нужно выводить:

01

Спасибо! Разобрался.

Показать все комментарии

Добрый день.
Написал новый отчет, который выводит список операций по каждой продаже и итог по ней. В конце отчета выводится итоговая таблица по менеджерам (колонки: Менеджер, Приход, расход, Итог).
Все выводится в нужном виде, но возникла проблема с фильтрацией. Есть фильтры по дате, по ответственному, по типу продажи и по состоянию продажи. Использовал стандартное окно с фильтрами. Проблема заключается в том, что список продаж фильтровать могу по всем полям, а итоговую таблицу только по менеджерам, т.к. других полей не отбираю в запросе (если отобрать, например дату, то не получается свернуть итоги по менеджерам, т.е. выводится много строк с одним и тем же менеджером).
В отчете использовал 2 запроса и 2 датасета (для списка операций и для итоговой таблицы).
Подскажите, пожалуйста, как можно наложить фильтр на итоговую таблицу.

Нравится

6 комментариев

Виктор, добрый день!

Может предоставите сервисы Вашего отчета? Тогда сможем попробовать предложить решения.

Добрый день, Татьяна.
Сервисы прикрепил к сообщению.

PS. Используется Terrasoft XRM 3.3.1.38

Виктор, спасибо за предоставленные сервисы.
Что можно посоветовать в таком случае:
- Создать свое окно фильтрации и уже в нем накладывать нужный фильтр.
- Как вариант, добавить нужные поля в датасет отчета по которому Вы не можете фильтровать, чтобы FilterBuilder их нашел и отключить.

"Татьяна Адамчук" написал:- Как вариант, добавить нужные поля в датасет отчета по которому Вы не можете фильтровать, чтобы FilterBuilder их нашел и отключить.

Спасибо за совет, Татьяна.
Сделал как Вы написали, теперь фильтры работают на обоих датасетах.

Возник другой вопрос: можно ли указывать в свойствах отчета 2 фильтруемых источника, когда тип фильтрации выбран "Для выделенных записей"? Т.к. этот отчет еще нужно вызывать из раздела "Продажи" по выделенным строкам.

Виктор, в поле «Фильтруемый источник данных» есть возможность указать только один источник.
Если есть два разных источника данных, то можно создать два одинаковых сервиса отчёта (fr_...), указать им одинаковый заголовок (но коды должны быть разными!), использовать в каждом из них свой датасет и вызывать каждый из них из нужного раздела. С точки зрения пользователя, разницы не будет: он видит, что и в том, и в другом разделе есть такой отчёт, и их форма тоже не отличается друг от друга.

Да, действительно так можно сделать.
Не догадался до такого простого решения:smile:

Спасибо за помощь.

Показать все комментарии

При выведенных итогах в менеджере деталей (например на вкладках родительские/подчиненные документы)при переходе по записям в реестре неправильно считаются итоги, а потом вообще менеджер деталей вылетает. Подсчет идет как суммирование по пользовательским полям типа Дробное число. Количество знаков после коммы не 2(как в пользовательском поле), а максимально возможные 15, причем иногда в последнем знаке попадаются цифры, отличные от 0, чего быть тоже не должно(((
Кстати, при изменении точности для Дробного числа с 4 до 2 в датасете в админке, в таблице значение изменить не удается. Если же вернуть точность на стандартные 4 знака после коммы, проблема с итогами не исчезает.
Не могу понять в чем причина:confused:

Нравится

15 комментариев

"Fishi" написал:при изменении точности для Дробного числа с 4 до 2 в датасете в админке, в таблице значение изменить не удается

Объясните, пожалуйста, подробнее. Вы пытаетесь изменить точность в поле сервиса tbl_*, и не удаётся? Или Вы имели в виду что-то другое?

Попробуйте добиться того, чтобы точность в поле таблицы и в аналогичном поле датасета совпадала. Если не получится сохранить таблицу в базе данных после изменения точности, попробуйте сохранить сервис без обновления структуры БД, а точность в таблице измените средствами СУБД (напр., Enterprise Manager).

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

Да, для пользовательского поля точность в датасете и таблице ровна 4. В датасете изменить на 2 можно, а в таблице - нет.

"Лабьяк Олег Игоревич" написал:измените средствами СУБД (напр., Enterprise Manager)

А не подкажете как реализовать в Microsoft SQL Server Management Studio 9.00.3042.00?
Но даже если точность везде ровна 4, при выводе итогов менеджер деталей тоже вылетает.

Выберите нужную таблицу, правой кнопкой мыши вызовите контекстное меню, в нём - пункт Modify. Откроется окно редактирования таблицы, найдите нужное поле и измените его точность (decimal(18, 2)).

Если вылетает менеджер деталей, возможно, что-то не так с обработчиком события OnDatasetAfterPositionChange даталинка реестра. Проверьте, пожалуйста.

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

Так и делал, изменяю (decimal(18, 4)) на (decimal(18, 2)). Перезапускаю скул, смотрю в админке - в таблице опять точность 4:confused:

upd: кеш чистил)

Вы пересохранили сервис таблицы? Система должна была задать Вам два вопроса: первый касается сохранения сервиса, второй - обновления структуры БД. На первый нужно ответить: "Да", на второй - "Нет".

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

Вопрос один:
Следующие таблицы будут изменены в базе данных. Продолжить?
////список таблиц
При сохранении появляется предупреждение о возможности потери данных при преобразовани столбца.
Вот, больше ничего

Это в Management Studio. Я же говорю про сохранение сервиса в Администраторе.

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

Конфликт инструкции ALTER TABLE с ограничением FOREIGN KEY "...". Конфликт произошел в базе данных, таблица ...(пользовательское поле типа справочник), колонка ID.
Чем одно поле может мешать изменять другое, совсем с ним не связанное?

Скорее всего, в Вашем случае конфликт не связан с изменением числового поля. Просто таблица не пересохраняется из-за нарушения целостности базы данных (в таблице, которую Вы пытаетесь пересохранить, есть ссылка на несуществующий элемент справочника). Необходимо проанализировать указанное поле типа "Справочник" во всех записях таблицы, и если некоторые записи содержат идентификаторы, которых нет в справочнике, необходимо в них обнулить эти поля. Например, с помощью запроса:

update tbl_Account
set CityID = NULL
where not exists (select tbl_City.ID from tbl_City
                  where tbl_City.ID = tbl_Account.CityID)

Вместо tbl_Account необходимо подставить название таблицы, которую Вы пытаетесь пересохранить, а вместо tbl_City - название таблицы справочника. Соответственно изменить и названия колонок таблиц.

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

Создал нужный запрос(uq_Document). В датасете установил его как запрос на обновление, но результата ноль((
Возможно я что-то делаю не так?

"Лабьяк Олег Игоревич" написал:Если вылетает менеджер деталей, возможно, что-то не так с обработчиком события OnDatasetAfterPositionChange даталинка реестра. Проверьте, пожалуйста.

Изменений не вносил, вот текст:

function dlDocumentsOnDatasetAfterPositionChange(Dataset) {
	if (Dataset.Attributes('IsNew') != true) {
		RefreshDetails();
	}
	Dataset.Attributes('IsNew') = false;
}

Fishi, возможно, я не совсем корректно объяснил. Данный запрос предназначался для удаления некорректных связей со справочником. Его нужно было выполнить один раз в Management Studio, а после этого попытаться сохранить сервис таблицы ещё раз.

Ещё вопрос: в чём проявляется "вылетание" менеджера деталей? Система полностью закрывается, возникает сообщение об ошибке, менеджер деталей становится недоступным и переход по деталям становится невозможным, или что-либо ещё?

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

"Лабьяк Олег Игоревич" написал:Его нужно было выполнить один раз в Management Studio, а после этого попытаться сохранить сервис таблицы ещё раз.

В результате выполнения получилось:
строк обработано: 0
Запрос успешно выполнен
Но сервис таблицы изменить не удается по той же причине.

По поводу второго вопроса:
При выводе итогов (род/доч документы например) для первых нескольких записей из реестра (раздел Документы) итоги выводятся (но нет округления до 2 или 4 знака, а отображаются 15 цифр после коммы),а потом менеджер деталей стает неактивным(серый фон). Никаких сообщений об ошибке тоже нет.

Думаю, нужен удалённый доступ для анализа проблемы.

Если это возможно, вышлите, пожалуйста, параметры удалённого доступа на support@tscrm.com .

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

Столкнулся с похожей проблемой, тоже итоги в подчиненных документах. Отправил в саппорт пример для воспроизведения.

--------------------------------------------
Лабитек
Центр разработки приложений

Исправили в билде 3.2.0.63, запрашивайте у саппорта.
--------------------------------------------
Лабитек
Центр разработки приложений

Показать все комментарии

Как в графике отобразить итоги?

Возьмем к примеру уже построенный график (количество заявок за СЕГОДНЯ):

Нигде не отображается общее количество заявок за СЕГОДНЯ.
Как это сделать? и желательно, чтобы Итоги отображались в заголовке? то есть в данном случае заголовок будет таким:
Заявки за Сегодня (5)

и еще попутный вопрос по легенде к графику:
Как убрать из легенды, в данном случае, надписи 1-комн. кв-ра, 2 комн. кв-ра и т.д.?

Нравится

3 комментария

График строится по пользовательскому запросу в скрипте scr_GraphUtils в функцие DrawGraphByDataset. Сюда передаются датасет с данными и настройки графика. Один из параметров "GraphName" задает отображаемое название графика.Функция эта вызывается из функции BuildGraph в этом же скрипте:

var GraphName = GraphDataset.Values('Name');     

Здесь Вам нужно добавлять в название получаемые итоги. Но, чтобы получить итоги с того же пользовательского запроса - это уже будет немного сложнее.

А на счет легенды, так она специально устанавливается (становится видимой) для таких типов графиков. Чтобы она не отображалась, в функцие DrawGraphByDataset, в блоке "if (GraphType == gt_Pie)" установите вместо "Graph.Legend.Visible = true;" строку "Graph.Legend.Visible = false;"

Татьяна, спасибо.
Но все-таки надо, чтобы график сам забирал данные из запроса и ставил Итоги в заголовок. Как это сделать?
______________
www.abs.com.kz
Агентство недвижимости АБС Royal Estate

"Биккинин Т.Р." написал:Как это сделать?

Нужно дописывать эту логику в конфигурации. А как -- Татьяна описала.

Показать все комментарии

Добрый день,

в новом реестре, созданном через визард, с итогами возникла проблема.

Одна из колонок содержит данные типа Дробное число. При наложении фильтров сумма внизу реестра по этой колонке не всегда отображается верно. А именно: число в 10 раз больше. Самое интересное, что в запросе считается правильно, а отображается почему-то не верно.
Просто меняю значение в фильре и при разных значениях итог считается по-разному (то правильно, то нет).

Как это можно исправить?

Нравится

6 комментариев

Думаю анализ запроса, который идет при получении итога, может прояснить ситуацию

А каким образом его анализировать?
Когда я этот же запрос в sql запускаю, то результат выдается верный, а в терасофте отображается умноженный на 10, это и странно. Где-то еще эти результаты запроса перед вывод обрабатываются?

А, Вы уже запрос помотрели. Я не совсем понял сначала. Ну тогда бага в гриде. Данные он получает нормальные,а отображает их неправильно.Может там у поля стоят нестандартные настройки точности. Или в датасете или в таблице.

Оказалось, дело вот в чем:
число знаков после запятой для поля в сервисах tbl и ds должно быть одинаковым.

Интересный баг. Спасибо что отписались о решении.

Эта ошибка была связана с неправильным округлением, если для дробных значений указывать точность 0 (0 знаков после запятой), что бывает крайне редко. В последних сборках эту неприятность устранили.

Показать все комментарии

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

Нравится

3 комментария

Добрый день.

Для того, чтобы достичь желаемого результата Вам необходимо разместить элементы таким образом, как на вложеном рисунке.

Terrasoft Support Team

А как сделать так, чтобы PageFooter не печатался на последней странице отчета.

Добрый день.

Для того, чтобы не выводить PageFooter на последней странице Вы можете сделать двухпроходный отчет. Это позволит Вам сосчитать количество страниц отчета. После того, как Вы узнаете количество страниц totalpages, Dы можете воспользоваться свойством PageFooter Visible. Условие вывода элемента отчета необходимо прописать в скрипте. Это можно сделать в соответствии событию OnBeforePrint.

На данный момент мы не имеем подобной реализованной функциональности. С аспектами использования вышеприведенных свойств Вы можете ознакомиться на форуме разработчиков Fast Report и в руководстве пользователя и разработчика Fast Report.

Без использования доработок скрипта скрывать Page Footer на последней странице отчета невозможно.

Terrasoft Support Team

Показать все комментарии