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

Сохранение "выбора"

Добавлено: 21 фев 2005, 10:42
GTHack
Допустим есть фейс в котором нужно какжый раз выбирать МЦ для какого либо действа.
Думается каждый раз те же МЦ выбирать не очень приятно, отсюда интересуюсь кто как данную процедуру автоматизировал...

Пока думаю просто сливать эту таблу в dbf
...
Будут мнения ?

Re: Сохранение "выбора"

Добавлено: 21 фев 2005, 10:50
Vitas
если выбор единичный, то храни в dsk, если выбор множественный, то храни в Pick и чисть его по wList только при открытии при инициализации интерфейса выбора.

А в фейсе, в котором надо "каждый раз выбирать" при инициализации читай данные либо из dsk либо из Pick

Re: Сохранение "выбора"

Добавлено: 21 фев 2005, 13:56
GTHack
я не про запоминание "последнего выбранного"
а именно "именованный выбор" - т.е. раз выбрал по какому нить только тебе известному признаку - сохранил под именем "выбор по признаку 1"
и так далее - чтоб из номенклатуры допустим 1000 наименований каждый раз не выбирать, а открыл файлик - у тебя уже всё помечено.

Re: Сохранение "выбора"

Добавлено: 21 фев 2005, 16:25
Vitas
я и говорю "храни в Pick и чисть его по wList только при инициализации ИНТЕРФЕЙСА ВЫБОРА."

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

Re: Сохранение "выбора"

Добавлено: 22 фев 2005, 11:43
Hass
Добавь табличку в Галактику и храни...

Re: Сохранение "выбора"

Добавлено: 22 фев 2005, 13:04
Max_Fin
Я написал 2 фукнции, одну вызываю при инициализации фейса, другую при завершении.
В таблице TblFlt храню необходимые данные
Table Struct TblFlt
(
wList: Word, //1 - МЦ, 2 - Подразделение, 3 - МОЛ, 4 - Org
cRec: Comp
)
with index
(
TblFlt00 = wList + cRec
);


Exception excGetFilter;

procedure GetFilter(FilterName: String; wList: Word);
{
var lMarker: LongInt;
var I, lCount: LongInt;
var cRec: Comp;

_try
{
lMarker := InitMarker(FilterName, 8, 100, 10, false);
lCount := GetMarkerCount(lMarker);
for (I := 0; I < lCount; I := I + 1)
{
if GetMarker(lMarker, I, cRec)
{
TblFlt.wList := wList;
TblFlt.cRec := cRec;
if insert current TblFlt <> tsOK _raise excGetFilter;
}
}
}
_except
on excGetFilter:
{
Message('Ошибка инициализации фильтра ' + FilterName, Error);
}
_finally
{
DoneMarker(lMarker, FilterName);
}
}

procedure SetFilter(FilterName: String; wList: Word);
{
var lMarker: LongInt;

lMarker := InitMarker(FilterName, 8, 100, 10, false);
ClearMarker(lMarker);
_loop TblFlt where ((wList == TblFlt.wList))
{
InsertMarker(lMarker, TblFlt.cRec);
}
DoneMarker(lMarker, FilterName);
}

Re: Сохранение "выбора"

Добавлено: 24 фев 2005, 15:03
GTHack
1. в таком раскладе пользователь не видит список ранее сохраненных фильтров, твоим функциям явно нужно имя фильтра т.е. нет возможности выбора фильтра, хотя думаю это можно доработать, список всех фильтров по нужному параметру как то вытащить надо будет

2. dsk частенько приходится стирать :), а все фильтры, на маркерах сделанные, именно там и лежат

Re: Сохранение "выбора"

Добавлено: 24 фев 2005, 17:37
Max_Fin
1. нет слов просто... ну да ладно, объяснять не буду
2. согласен

Re: Сохранение "выбора"

Добавлено: 25 фев 2005, 08:54
GTHack
по первому пункту я явно ложанулся :)
сам просто с маркерами ни разу не работал, всё через таблы памяти делал.

ну раз не хочешь объяснять - не надо, сам разберусь как время будет, да и дока по ним в опыте болтается

за процедурки всё равно спасибо, думаю не одному мне пригодяться

Re: Сохранение "выбора"

Добавлено: 25 фев 2005, 10:55
ecasoft
Вообще в Галактике запоминают обычно как писал Vitas - в таблице Pick. Для каждой таблицы выбора свое значение wList. Не понял зачем придумывать еще что-то.

Re: Сохранение "выбора"

Добавлено: 25 фев 2005, 11:18
GTHack
может я чего недопонимаю - но мне нужен именно именнованый выбор, а не сохранение последнего
пример:
открываю фейс выбора МЦ, нажимаю "загрузить сохраненный выбор", открывается окошко где всяческие сохраненные раньше выборы, допустим
"товары фирмы А",
"товары фирмы А+Б+У",
"товары которые есть у фирмы А но нет у Б"
выбираю нужный и хоп - нужные товары пометились,
в другой раз тоже напомечал каких нить товаров - сохранил выбор допустим
"взбрендило мне именно этих товаров пометить"

и такие именнованые выборы должны быть доступны каждому юзеру свои

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

Re: Сохранение "выбора"

Добавлено: 25 фев 2005, 11:54
Max_Fin
Ну дык это совсем другая постановка вопроса.

Общую настройку реализовывать нет смысла, т.к. в одном отчете нужно одно, а в другом совершенно другое.
Так что каждый реализует по своему.
Главное надо определиться - у тебя это будет пользовательская настройка, либо системная.
Затем прикинь какие таблицы можно заюзать Галки, которые у вас не используются и не повлияют на ваши же расчеты/отчеты.

По поводу Pick не согласен, т.к. в Галке эта таблица используется очень даже часто и нет ни какой гарантии, что не встретиться.
delete all pick;

Re: Сохранение "выбора"

Добавлено: 25 фев 2005, 12:14
GTHack
настройка будет пользовательская
на общую я конечно не замахиваюсь, просто к своему фейсу хочу написать
таблицы Галки вообще использовать не хочу, засрут до безобразия - не думаю что кто нибудь когда нибудь свои сохраненные выборы будет стирать

по этому и рассматриваю вариант сохранения выбора в какой нить dbf на диск юзера в какой нить отведенной для этого папке

таки дела ...
просто думал, что кто нибудь подобное уже делал - вот и решил вопрос задать

Re: Сохранение "выбора"

Добавлено: 25 фев 2005, 12:52
Seybukan
Есть стандартная функция мометить из внешнего источника.
Там как раз можно настроить пометку из DBF.
Правда если есть соответствующая лицензия.

Пометка идет по баркоду.
Остаеться вопрос как сформировать файл DBF.