Сортировка в интерфейсе

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Тамара
Сообщения: 8
Зарегистрирован: 01 сен 2005, 16:19
Откуда: Республика Коми г. Ухта
Контактная информация:

Сортировка в интерфейсе

Сообщение Тамара »

Как то мне тут очень сильно помогли :cool: , за что очень благодарна. Осмелилась еще раз обратиться…
Помогите, пожалуйста, разобраться с сортировкой!
Очень хочется, что бы в интерфейсе выбора была переключаемая сортировка по матценностям (по коду, по наименованию).
Имеется заранее подготовленная временная таблица TmpGrn которая имеет подцепку к таблице KatMc.
Не судите строго, если что совсем не правильно!

PS: SetTableBackOrderIn(tnKatMc,GetColumnSorting(btmpgrn,target)=1) – не работает ;
SetTableBackOrderIn(tnTmpgrn,GetColumnSorting(btmpgrn,target)=1) – сортирует по crec1 таблицу Tmpgrn;


Имеем интерфейс:
Interface iRepNastrMC_012 '';

View
As Select *
from
tmpgrn,
katmc (ReadOnly)
where
((
1972==tmpgrn.wlist and
tmpgrn.crec1 == katmc.nrec
))
order KodMc by katmc.name,katmc.barkod
order NameMc by katmc.barkod, katmc.name
;

………….

Panel pMC;
Table tmpgrn;
Browse btmpgrn;
Fields
katmc.barkod 'Номенкл. номер' : [12], Skip,Protect;
katmc.name 'Наименование' : [20], Skip,Protect;
tmpgrn.d 'Дата','ввода' : [8] , Skip,Protect;
tmpgrn.sums[1] 'Стоимость' : [10.2],Skip,Protect;
tmpgrn.sums[2] 'Кол. в','наличии' : [8] , Skip, Protect;
tmpgrn.sums[3] 'Кол. для','cписания' : [8] , noProtect;
tmpgrn.s 'Причина списания' : [20], noProtect ;
End;

HandleEvent
cmColumnClicked: {
case Target of
#katmc.barkod : {
SetOrder(tiKodMc);
SetTableBackOrderIn(tnTmpgrn,GetColumnSorting(btmpgrn,target)=1);
SetColumnSorting(btmpgrn,target,if(GetColumnSorting(btmpgrn,target)=0,1,GetColumnSorting(btmpgrn,target)*(-1)));
RereadRecord;
};
#katmc.name : {
SetOrder(tiNameMc);
SetTableBackOrderIn(tnTmpgrn,GetColumnSorting(btmpgrn,target)=1);
SetColumnSorting(btmpgrn,target,if(GetColumnSorting(btmpgrn,target)=0,1,GetColumnSorting(btmpgrn,target)*(-1)));
RereadRecord;
};
end;
};
………….
Тамара
Сообщения: 8
Зарегистрирован: 01 сен 2005, 16:19
Откуда: Республика Коми г. Ухта
Контактная информация:

Сообщение Тамара »

Простите за опечатку , торопилась:

order KodMc by katmc.barkod
order NameMc by katmc.name
varvara
Постоянный обитатель
Сообщения: 130
Зарегистрирован: 21 дек 2005, 19:12

Сообщение varvara »

Решение вашей проблемы можно найти здесь
http://www.tyumbit.ru/gal_forum/viewtop ... highlight=
Тамара
Сообщения: 8
Зарегистрирован: 01 сен 2005, 16:19
Откуда: Республика Коми г. Ухта
Контактная информация:

Сообщение Тамара »

Прошу прощения за беспокойство, видимо Tmpgrn в таких случаях не следует использовать!
Воспользовалась советом умного народа и создала свою таблицу, сортировка работает как часики!
Спасибо!

Interface iRepNastrMC_012 '';
table Struct TabObjMC(
_NrecMC :comp,
_barkodMC :string,
_NameMC :string,
_DateVvMC :date,
_EdIzmMC :string,
_KolNalMC :double,
_CenaMC :double,
_SummaMC :double,
_KolSpisMC :double,
_NoteSpisMC:string
)with index(
TabObjMC0=_NrecMC(unique, Surrogate, Journal),
TabObjMC1=_barkodMC,
TabObjMC2=_NameMC
)
…..
View
As Select TabObjMC.*
from
TabObjMC
order KodMc by _barkodMC
order NameMc by _NameMC
;
………..
Panel pMC;
Table TabObjMC;
Browse bTabObjMC;
Fields
TabObjMC._barkodMC 'Номенкл. номер' : [12], Skip,Protect;
TabObjMC._NameMC 'Наименование' : [20], Skip,Protect;
TabObjMC._DateVvMC 'Дата','ввода' : [8], Skip,Protect;
TabObjMC._SummaMC 'Стоимость' : [10.2],Skip,Protect;
TabObjMC._KolNalMC 'Кол. в','наличии' : [8], Skip, Protect;
TabObjMC._KolSpisMC 'Кол. для','cписания' : [8], noProtect;
TabObjMC._NoteSpisMC 'Причина списания' : [20], noProtect ;
End;

HandleEvent
case Target of
#TabObjMC._barkodMC : {
SetOrder(tiKodMc);
SetTableBackOrderIn(tnTabObjMC,GetColumnSorting(bTabObjMC,target)=1);
SetColumnSorting(bTabObjMC,target,if(GetColumnSorting(bTabObjMC,target)=0,1,GetColumnSorting(bTabObjMC,target)*(-1)));
RereadRecord;
};
#TabObjMC._NameMC : {
SetOrder(tiNameMc);
SetTableBackOrderIn(tnTabObjMC,GetColumnSorting(bTabObjMC,target)=1);
SetColumnSorting(bTabObjMC,target,if(GetColumnSorting(bTabObjMC,target)=0,1,GetColumnSorting(bTabObjMC,target)*(-1)));
RereadRecord;
};
end;
};
Ответить