Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Ehlib

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

Открыть новую тему     Написать ответ в эту тему

Medium



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, плз, кто знает. Где задаётся цвет фона у DBGridEh (на скриншоте это белый цвет):

Что-то без правки исходников не нашёл.
 
P.S. EhLib v.7.0.122

Всего записей: 587 | Зарегистр. 09-04-2002 | Отправлено: 01:41 01-10-2014 | Исправлено: Medium, 01:42 01-10-2014
vpilot



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите, в DBGridEh при добавлении строки можно задать значения по-умолчанию для некоторых колонок? Пробовал через событие DataSet.AfterInsert, смотрел отладчиком, это событие не отрабатывает.

Всего записей: 50 | Зарегистр. 11-11-2004 | Отправлено: 15:01 03-10-2014
XPerformer



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vpilot
а можно код в студию,
все там срабатывает

Всего записей: 2536 | Зарегистр. 20-06-2011 | Отправлено: 15:28 03-10-2014
maxsv2



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DataSet.AfterInsert - происходит чуть ли не после POST записи,
смотреть надо:  
TDataSet.BeforeInsert - это должно быть когда тебе и требуется,
еще можно посмотреть в сторону  
TField.DefaultExpression

Всего записей: 191 | Зарегистр. 24-01-2004 | Отправлено: 15:35 03-10-2014 | Исправлено: maxsv2, 15:37 03-10-2014
vpilot



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
XPerformer
В событии AfterInsert кода как такового нет, я поставил операцию присваивания (var i: integer, i:=5) и точку остановки, при добавлении новой строки чере DBGridEh (XE6, v6.3) отладчик туда не попадает => событие не отрабатывает. Думал может можно через свойства самого DBGridEh (или свойства колонок) это провернуть.
 
Добавлено:
maxsv2
TField.DefaultExpression - пробовал, не помогло. А вот BeforInsert не догадался, попробую. Но следуя вашей логике, тоже должно отработать где-то перед POST, а мне нужно, чтобы при добавлении новой строки пользователь видел визуально значения по-умолчанию еще до записи в БД.
 
Добавлено:
XPerformer
maxsv2
Спасибо, вопрос снимается. Засиделся за ПК, жал кнопку запуска без отладки. Все события отрабатывают, и befor и after.

Всего записей: 50 | Зарегистр. 11-11-2004 | Отправлено: 15:39 03-10-2014
waik



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vpilot  пользуй BeforePost и будет счастье.  Только это никак не связано с DbGridEh и вообще с гридами. Это уровень датасета.

Всего записей: 605 | Зарегистр. 15-01-2003 | Отправлено: 16:12 03-10-2014
vpilot



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
waik я уже понял. В VS эти параметры я задавал через Grid и тут туда же потянуло.

Всего записей: 50 | Зарегистр. 11-11-2004 | Отправлено: 16:23 03-10-2014
waik



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vpilot понятно. Только я тебя всё равно обманул. Не.. можно использовать и BeforePost ничего страшного. Просто нужно будет помнить что это событие будет  вызываться и при редактировании.  Самый правильный способ OnNewRecord у датасета.  

Всего записей: 605 | Зарегистр. 15-01-2003 | Отправлено: 16:58 03-10-2014
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EhLib - ЭТО ВЕЛИКАЯ БИБЛИОТЕКА И НАДЕЖДА ИТ СООБЩЕСТВА. Сори капс. Поставил новые эхи и обнаружил паранормальное поведение. Вот код.

Код:
 
procedure SetMultiSelectOptions(DBGridEh: TDBGridEh; IsMultiSelect: Boolean);
begin
  if IsMultiSelect then
  begin
    DBGridEh.AllowedSelections :=
      DBGridEh.AllowedSelections - [gstRectangle, gstColumns];
    DBGridEh.IndicatorOptions :=
      DBGridEh.IndicatorOptions + [gioShowRowselCheckboxesEh];
    DBGridEh.Options :=
      DBGridEh.Options + [dgAlwaysShowSelection, dgMultiSelect] - [dgEditing];
    DBGridEh.OptionsEh :=
      DBGridEh.OptionsEh + [dghIncSearch, dghPreferIncSearch, dghRowHighlight];
    DBGridEh.RowSizingAllowed := False;
  end else
  begin
    DBGridEh.AllowedSelections :=
      DBGridEh.AllowedSelections + [gstRectangle, gstColumns];
    DBGridEh.IndicatorOptions :=
      DBGridEh.IndicatorOptions - [gioShowRowselCheckboxesEh];
    DBGridEh.Options :=
      DBGridEh.Options - [dgAlwaysShowSelection, dgMultiSelect] + [dgEditing];
    DBGridEh.OptionsEh :=
      DBGridEh.OptionsEh - [dghIncSearch, dghPreferIncSearch, dghRowHighlight];
    DBGridEh.RowSizingAllowed := True;
  end;
end;

При мультиселекте в первый раз драга выделяет почемуто все. Потом нормально выделяет с драгом, но если я переведу мышку на крыжики и буду двигать на те что не выделены, то они зачемто автоматом выделяются а сами Records не выделяются.
 
 
Помогите люди добрые EhLib это наше всё.
 
Добавлено:
В старых версиях EhLib все работало корректно

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 12:39 25-10-2014
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я разобрался уже. Дело было в датасете. В XE3 появился метод

Код:
procedure GetBookmarkData(Buffer: TRecordBuffer; Data: TBookmark); overload; virtual;

Кстати в XE6 он уже deprecated.

Код:
procedure GetBookmarkData(Buffer: TRecordBuffer; Data: TBookmark); overload; virtual; deprecated 'Use overloaded method instead';

Вот код который я добавил к датасету.

Код:
{$IFDEF COMPILER17_UP}
{$IFNDEF NEXTGEN}
procedure TvCustomDataSet.GetBookmarkData(Buffer: TRecordBuffer;
  Data: TBookmark);
begin
  GetBookmarkData(Buffer, Pointer(Data));
end;
{$ENDIF !NEXTGEN}
{$ENDIF}

И всё стало работать по прежнему. Видимо новые EhLib используют этот deprecated метод в букмарках. Так что вопрос закрыт.

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 11:07 30-10-2014
noisy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xpin2013
Это лучше на форум ЕхЛиб запостить. пусть у себя исправят .

Всего записей: 986 | Зарегистр. 30-05-2002 | Отправлено: 11:22 30-10-2014
mrUlugbek



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем
Подскажите как распечать два грида в одном листе?
Есть на форме Мастер - Детайл дбгрид со всеми футерами группами итд хотел его не экспортровать ексел а просто распечатать на принтер  
Заранее благодарен

Всего записей: 879 | Зарегистр. 04-04-2011 | Отправлено: 16:12 05-11-2014
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет. Как сделать так, чтобы значения полей из некоторых строк не входили в сумму(footer.vartype = fvtSum) по этой колонке? Grouping не пойдет - другой датасет.

Всего записей: 2446 | Зарегистр. 18-05-2005 | Отправлено: 16:57 27-11-2014
XPerformer



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
суммировать вручную и выводить в футере

Всего записей: 2536 | Зарегистр. 20-06-2011 | Отправлено: 17:02 27-11-2014
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XPerformer

Цитата:
суммировать вручную и выводить в футере

Что реально никаких других возможностей? Я не нашел, но может кто-то...

Всего записей: 2446 | Зарегистр. 18-05-2005 | Отправлено: 17:09 27-11-2014
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Samotek

Цитата:
Что реально никаких других возможностей?  

Одна моя подруга захотела жаренную Луну. Я ей почему то сразу отказал - чтобы не мучалась. Примерно следующее стоит понять. Сумматоры EhLib не поддерживают скрипты - где Вы можете указать - считать или не считать. Остаётся только хвалить Господа, что Вам больше работы.

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 19:08 27-11-2014
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xpin2013
Не дотягиваю до размаха твоего ума и опыта. Не понял твою мощную мысль. Наверно и никогда не пойму.

Всего записей: 2446 | Зарегистр. 18-05-2005 | Отправлено: 19:12 27-11-2014
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Samotek

Цитата:
Не дотягиваю до размаха твоего ума и опыта.

Больше работы - больше получи. Меньше работы - скрой от директора - ври.

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 19:48 27-11-2014
maxsv2



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Samotek
Не совсем понятна необходимость данного извращения,  
т.к. потом будет вопрос юзера, что прога криво считает.
Но хозяин - барин.
однако сразу готового - не будет...
Как вариант 1:  
- формируете нужный набор для сумматора и он считает что нужно
- вешаетесь на отображение ячейки и выводите что угодно
вариант 2:  
- рисуете свой сумматор и считаете в меру своих фантазий, хоть интегралы.
вариант 3:
- вешаете 2 грида, второй без строк но с суммой, цепляете на желаемые наборы
- руками пишите синхронизацию размеров столбцов и остального необходимого.

Всего записей: 191 | Зарегистр. 24-01-2004 | Отправлено: 10:13 28-11-2014
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxsv2

Цитата:
Не совсем понятна необходимость данного извращения,  

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

Всего записей: 2446 | Зарегистр. 18-05-2005 | Отправлено: 10:56 28-11-2014
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Ehlib


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru