Скрыть колонки из датагрида

Добрый день.
Если в датасете ds_Opportunity снять галочку "Для отображения" на нужной колонке,
то мы эту колонку не увидим, когда откроем датасет.

Я пытаюсь сделать так:

function ds_OpportunityOnDatasetBeforeOpen(Dataset) {
        Dataset.Datafields.ItemsByName('Title').IsDisplayField= false;
}

Как я понял это должно быть равносильно снятию галочки. Но колонка не пропадает. Что я делаю не так?

Нравится

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

Галка "Для отображения" в датасете означает, что когда открывается окно выбора из справочника, и в качестве источника установлен этот датасет - в гриде выбора автоматически будет сгенерирована колонка.
Но при просмотре списка продаж (wnd_OpportunityGridArea) колонки сгенерированы в этом окне, и от галочки не зависят. Вам надо в сервисе wnd_OpportunityGridArea у компонента dlData указать событие OnDatasetBeforeOpen, в котором скрыть колонку кодом типа:

    colTItle.IsVisible = false;

где colTItle - имя колонки в гриде.

Выставил везде IsVisible = false, и все равно все вижу... наверное где-то, кто-то что-то раньше прописал, что сейчас придется искать и исправлять.

Отображение пропадает, только если галку в датасете снимать. Может это можно как то кодом сделать? Не снимая руками

function dlDataOnDatasetBeforeOpen(Dataset) {
	 debugger;
}

Когда открываю раздел "Проекты", дебаг не срабатывает. Значит скрипт не выполняется.

Я как понял надо на OnPrepare вешать перед инициализацией окна.

function wnd_BaseGridAreaOnPrepare(Window) {
   // debugger;
	ShowInformationDialog('Hello');
    colTitledgvData.IsVisible = false;
	Initialize(Window);
}

Делаю так, но колонка все равно не пропадает. Беда... Так же пробовал после инициализации, та же ерунда...

function wnd_BaseGridAreaOnPrepare(Window) {
   // debugger;
	Initialize(Window);
 	Window.ComponentsByName('colTitledgvData').IsVisible = false;
}

Так тоже не катит

Дебагер показывает, что значение false. А в террасофте столбец все равно виден

Какая у вас версия?
Я попробовал в базовой конфигурации 3.3.2, добавил в скрипт wnd_OpportunitiesGridAreaScript одну строчку - все нормально, колонка прячется при открытии раздела Продажи:

function wnd_BaseGridAreaOnPrepare(Window) {
	Initialize(Window);
	colTitle.IsVisible = false;
}

Версия 3.0.4. Почему то не пропадает(

Здрававствуйте Олег,
С руководства Администратора, по поводу опции [Поле для отображения]:

"Если установить опцию [Поле для отображения], то это поле появится
среди колонок справочника в случае, если реестр, в котором содержится
поле, используется в качестве справочника для другого реестра в продукте
Terrasoft."

Страница 55, Руководства Terrasoft Administrator (версия Terrasoft CRM X25 + ServiceDesk, TSAdmin_UG_3.3.0)

"Зголич Олег Александрович" написал:Если в датасете ds_Opportunity снять галочку "Для отображения" на нужной колонке,
то мы эту колонку не увидим, когда откроем датасет.

Олег, насколько я понимаю, изменение данного свойства поля в датасете не решит поставленную вами задачу.

Может я вас не до конца понял, но подобный вопроос обсужадлся в теме http://www.community.terrasoft.ru/forum/topic/6730

Проверял на версии CRM 3.0.4.112
Задача: Скрыть колонку "Индекс" в DataGridView контрагентов

Получил следующие результаты:


Полный код окна :

function wnd_BaseGridAreaOnPrepare(Window) {
	var Dataset = 	Window.ComponentsByName('dlData').Dataset;
    Window.ComponentsByName('colZIPDataGridView').IsVisible = false;
	Dataset.Open();
 
 
}
 
 
function Main() {
	var Window = Services.GetNewItemByUSI('Window');
	Window.IsDesigning = false;
	Window.Prepare();
	Window.Show();
}

Также прикрепляю сервисы.

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

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

Олег,
Загрузите, пожалуйста, сервисы, которые я прикрепил к предыдущему посту (hide_srv_304112.rar). Воспроизводится ли проблема на моих сервисах?

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

Олег, можем ли мы считать данный вопрос решенным?

Можно, к сожалению вы мне врядле поможете.

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