Страница 1 из 1

Пометка(Insert) нескольких позиций в таблице

Добавлено: 29 ноя 2023, 15:16
Espada
Доброго времени суток. Дамы и господа, вновь нужна ваша помощь)
в интерфейсе есть таблица с данными, не могу найти пример, где будет реализована функция пометки нескольких позиций (Insert)...
Возможно кто-то сможет поделиться кусочком кода, где это реализовано? Спасибо

Re: Пометка(Insert) нескольких позиций в таблице

Добавлено: 29 ноя 2023, 17:27
KVS
Добрый день!

Так пример есть в справке (ищите по IMarker):

Код: Выделить всё

//=========================================================
#include marker.vih
//=========================================================

interface MarkerDemo 'Использование маркеров.';
//---------------------------------------------------------
var
  pMarker   : IMarker(marker) new;
//---------------------------------------------------------

create view
as select  *
from  x$files;
//-----------------------------------------------------------------------------
browse brwBrowse1;
  table x$files;
  recMarker = pMarker {x$files.xf$code};
fields
  x$files.xf$name 'File name' ('File name') : [20], protect;
end;
//---------------------------------------------------------
handleEvent
cmInit:
{
  pMarker.Caption := (' Отмечено [%d] записей.'); // для заголовка
}
end;  // handleEvent interface

end.

Re: Пометка(Insert) нескольких позиций в таблице

Добавлено: 29 ноя 2023, 17:30
Espada
KVS писал(а): 29 ноя 2023, 17:27 Добрый день!

Так пример есть в справке (ищите по IMarker):
Спасибо большое, сейчас буду разбираться)

Re: Пометка(Insert) нескольких позиций в таблице

Добавлено: 01 дек 2023, 11:54
oiko
Не забудьте еще 3 события описать вида:
cmMarkUnMark: if isvalid(#obKontr) then
{InvertMarker(Markers_Rike,obkontr.nrec);
if (modifier getnext obkontr)=tsok then {};
RescanPanel(#obkontr);SettitlInterface;}
cmSelectAll :{StartNewVisual(vtRotateVisual, vfTimer + vfBreak + vfConfirm, ''#3'Выбираю все объекты ...', 1);
if (modifier getfirst ObKontr)=tsok
{ pushPos(#ObKontr);
do
if i_bold='' then InvertMarker(Markers_Rike,obKontr.nrec);
while (modifier getNext obKontr)=tsok and nextvisual;
stopVisual('',0);
popPos(#obKontr);
rescanpanel(#ObKontr);
}
SettitlInterface;
}
cmUnSelectAll :{ClearMarker(Markers_Rike); rescanPanel(#obKontr);SettitlInterface;};

Re: Пометка(Insert) нескольких позиций в таблице

Добавлено: 01 дек 2023, 12:43
KVS
Для IMarker описание этих событий не требуется - только если для каких-то специфических случаев.