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

пометка записей

Добавлено: 02 фев 2005, 17:27
dZima
скиньте плз кто нить исходник простенького фейса с возможностью пометки записей (когда Insert нажимаешь)

не могу панять механизм работы.

Re: пометка записей

Добавлено: 02 фев 2005, 17:36
Johny
Тоже бы не отказался глянуть. .`)

Re: пометка записей

Добавлено: 02 фев 2005, 21:57
Deinis
create view
Var
...
as select
*
from

NeedBaseFin
,Pick // для очистки помеченных записей таблицы BaseFin
,synonym Pick PickedBaseFin // помеченные записи таблицы BaseFin
...
where (( ...
// подцепка пометок в таблице PickedBaseFin
and cgPick_BaseFin == PickedBaseFin.wList
and BaseFin.nRec == PickedBaseFin.cRec
))
...

Procedure PickCurrentBaseFin ;
{
INSERT CURRENT PickedBaseFin Set
PickedBaseFin.cRec := BaseFin.nRec
,PickedBaseFin.wList := cgPick_BaseFin ;
}


Panel PanBaseFin ;
Show at (,6,,);
Table NeedBaseFin ;
Browse BrBaseFin ( ,, sci1378InsPM );
Fields
IF ( isValid( tnKatSoprAtCurBaseDoc ) , 'Н' , '' ) : [ 1 ] , Protect ;
BaseFin.DDoc 'Дата' : [ 4 ] , Protect ;
BaseFin.NoDoc 'Номер' : [ 4 ] , Protect ;
BaseFin.Summa 'Сумма' : [ 8.2] , Protect ;
KatOrg.Name + IF ( Trim(KatOrg.UNN) <> '', ', ИНН ' + Trim(KatOrg.UNN), '' )
'Организация' : [ 20 ] , Protect ;
IF ( isValid( tnPickedBaseFin ), 'V', '' ) 'V' : [ 1 ] , Protect, Skip, { FONT = { COLOR = IF ( isValid ( tnPickedBaseFin ), ColorSysBlue, ColorSysBlack ) } } ;
NeedBaseFin.DeltaPlus 'Сумм.разн. положит.' : [ 8.2 ] , Protect , PickButton ;
NeedBaseFin.DeltaMinus 'Сумм.разн. отрицат.' : [ 8.2 ] , Protect , PickButton ;
End;

HandleEvent // panel PanBaseFin
cmPick : {
RunInterface('RaznSopHoz',SoprHoz.nRec,0) ;
GetDelta ;
RescanPanel( #NeedBaseFin ) ;
} // cmPick
cmMarkUnMark : { // Обработка клавиши "Insert"
IF isValid( tnPickedBaseFin ) // Была ли помечена уже ранее?
then DELETE CURRENT PickedBaseFin ;
else PickCurrentBaseFin
// Для удобства пометки перейдем на следующую операцию
IF ( GetNext NeedBaseFin = tsOK ) { }
ReReadRecord( #NeedBaseFin ) ;
}
cmSelectAll : { // Обработка клавиши "Gray +"
IF ( GetFirst NeedBaseFin = tsOK )
then DO {
IF ( NOT isValid( tnPickedBaseFin ) )
PickCurrentBaseFin ;
} while ( GetNext NeedBaseFin = tsOK ) ;
RescanPanel ( #NeedBaseFin );
}
cmUnSelectAll : { // Обработка клавиши "Gray -"
IF ( GetFirst NeedBaseFin = tsOK )
then DO {
IF isValid( tnPickedBaseFin )
DELETE CURRENT PickedBaseFin ;
} while ( GetNext NeedBaseFin = tsOK ) ;
RescanPanel ( #NeedBaseFin );
}
cmInvertAll : { // Обработка клавиши "Gray *"
IF ( GetFirst NeedBaseFin = tsOK )
then DO {
IF isValid( tnPickedBaseFin )
then DELETE CURRENT PickedBaseFin ;
else PickCurrentBaseFin ;
} while ( GetNext NeedBaseFin = tsOK ) ;
RescanPanel ( #NeedBaseFin );
}

End; // HandleEvent panel PanBaseFin
End; // Panel PanBaseFin

HandleEvent // Main Interface
cmInit : {
// снимем пометки в таблице Pick (если таковые были)
DELETE ALL FROM Pick ;
...
} // cmInit

Re: пометка записей

Добавлено: 03 фев 2005, 11:16
dZima
thx. буду разбираться

Re: пометка записей

Добавлено: 03 фев 2005, 11:59
Goblin
А с маркерами проще 8)

Re: пометка записей

Добавлено: 03 фев 2005, 18:26
dZima
Туманов О.В., а можно подробнее?

Re: пометка записей

Добавлено: 03 фев 2005, 18:54
Deinis