сообщение после открытия Grid

Добрый день
Подскажите на какое событие нужно прописать код , чтобы после окраски строк Grid a выходило сообщение о количестве раскрашенных строк,
пробовал onShow Prepea и тд не могу подобрать.
а если указать здесь grdDataOnGetRowDrawInfo то окно сообщения выходит по количеству строк в Dataset это не устраивает.

Нравится

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

Здравствуйте, Евгений.

Как мне кажется, Вам необходимо узнавать количество отображаемых в реестре колонок и умножать на количество раскрашенных записей в датасете, чтобы получить нужное число ячеек.

Как-то так:

function grdDataOnGetRowDrawInfo(DataGrid, Color, TextColor, ImageName, Font) {   
      var Dataset = dlData.Dataset;
      if (DataGrid.ActiveView.Items(Column).IsVisible) { 
      	GridColumnsCount = GridColumnsCount + 1;
      }
      if (Dataset.Values('AccountTypeID') == '{3EAC7195-607B-4DAC-A832-8954E3201031}') {
          TextColor.Value = clBlue;
          RowsDrawCount  = RowsDrawCount + 1;
 
      }
 
	  Column = Column + 1;
	  MessageBox(FormatStr(RowsDrawCount * GridColumnsCount));   
}

"Безродный Андрей" написал:

Здравствуйте, Евгений.

Как мне кажется, Вам необходимо узнавать количество отображаемых в реестре колонок и умножать на количество раскрашенных записей в датасете, чтобы получить нужное число ячеек.

Здравствуйте
Не совсем то.
Как прорисовать и подсчитать кол во записей я разобрался использую function grdDataOnGetRowDrawInfо
вопрос в том в каком месте прописать появления пользователю Окно сообщения ShowConfirmationDialog( Кол во строк") чтобы оно появлялось после открытия реестра и отрисовки строк, потому как если я это окно поставлю в функцию
function grdDataOnGetRowDrawInfo(DataGrid, Color, TextColor, ImageName, Font)
тогда оно появляется после каждой прорисованной строки.

Евгений, попробуйте на OnDatasetAfterOpen.

"Бондарь Наталия" написал:

Евгений, попробуйте на OnDatasetAfterOpen.


Пробовал окно появляется до открытия самого реестра
и потом еще появляется каждый раз при появлении окна редактирования реестра
нажатии на кнопку Изменить.

Боюсь что тогда только по действию или кнопке...

"Бондарь Наталия" написал:

Боюсь что тогда только по действию или кнопке...

а подскажите как тогда можно сообщение на Outlook отправить вместо диалогова окна?

Используйте функцию SendEmail (определена в скрипте scr_MailUtils).
В конфигурации много примеров, вот один из них:

SendEmail({Address: 'support@tscrm.com', 
		Subject: "Запрос в службу поддержки Terrasoft",
		BodyFormat: 1, Attachments: [TempFileName]});

"Бондарь Наталия" написал:

Используйте функцию SendEmail (определена в скрипте scr_MailUtils).

В конфигурации много примеров, вот один из них


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

Евгений,

развернутый пример есть в теме:
http://www.community.terrasoft.ru/blogs/7911

В качестве примера используется функция SendEmailByTemplate скрипта scr_MailUtils с параметрами AutoSend и Silent.

SendEmailByTemplate(TemplateID, {RecordID: ID, Address: AddressList,
                   AutoSend: true, Silent: true});
}

Андрей спасибо за пример, может пригодиться в будущем отправка по группам и тд,
но в данном случае мне нужно отправить письмо с списком Контрагентов, на один адрес (укажу сразу в скрипте) больше всего подходит функция

SendEmail({Address: 'Evgeniy.Evdokimov@fund.kz',
Subject: "Список контрганетов",
Body: 'Список контрагентов следующий '})

только как заставить чтобы письмо уходило автоматически
может от версии зависит
у меня 3.3.2 . 294

Евгений, установите параметр AutoSend: true (можно посмотреть в примере Андрея).

Все спасибо нашел то что нужно !

SendEmail({Address: 'Evgeniy.Evdokimov@fund.kz',
Subject: 'Список контргентов', BodyFormat: 2,
HTMLBody: 'Список просроченных договоров',
AutoSend: true, SendImmediately: true});

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