скиньте плз кто нить исходник простенького фейса с возможностью пометки записей (когда Insert нажимаешь)
не могу панять механизм работы.
пометка записей
Модераторы: m0p3e, edward_K, Модераторы
пометка записей
\\m/ ©[°±°]© \\m/
-
- Местный житель
- Сообщения: 291
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: С-Петербург
- Контактная информация:
Re: пометка записей
Тоже бы не отказался глянуть. .`)
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
-
- Местный житель
- Сообщения: 783
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва
- Контактная информация:
Re: пометка записей
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
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
-
- Местный житель
- Сообщения: 474
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Сибирь-матушка
- Контактная информация:
Re: пометка записей
А с маркерами проще
Питаю патологические отвращение и ненависть в особо тяжелой и крайне запущенной формах к семейству программ Microsoft Business Solution !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !