Checkpoint
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 429
- Зарегистрирован: 24 сен 2008, 11:53
Checkpoint
Ребята привет. скажите пожалуйста если можно с приерчиком как в галктике реализовать checkpoint. Необходимо установить в мой интерфейс флажок а вот как с ними работать в Галактике не нашла((.. помогите плиз:)
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Checkpoint
может быть checkbox?
[.] 1`
[.] 2`
или
(.) 1`
(.) 2`
?
[.] 1`
[.] 2`
или
(.) 1`
(.) 2`
?
-
- Местный житель
- Сообщения: 429
- Зарегистрирован: 24 сен 2008, 11:53
Re: Checkpoint
edward_K писал(а):может быть checkbox?
[.] 1`
[.] 2`
или
(.) 1`
(.) 2`
?
ага checkbox
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Checkpoint
то есть 1 вариант. (2 - radiobutton)
Заводите переменную типа word. Объявляете ее в fields один раз.
tp_option :word;
fields
tp_option :noprotect;
Как на экране уже написал. Поле ввода будет автоматически выровнено под самое длинное значение списка, но лучше подравнять "`". Другие поля что справа или ниже от вашего списка в fields ниже.
где нибудь проверяете по кратности степени 2. 1 флаг -1, 2 - 2, 3 -4, например так if (tp_options and 4)>0 ... .Ну еще есть функции блокирующие изменение какого-нибудь флага. Сбросить какой то флаг програмно tp_option:=tp_option-if((tp_option and 4)>0,4,0) ну или xor. Для установки tp_option:=tp_option or 4.
Заводите переменную типа word. Объявляете ее в fields один раз.
tp_option :word;
fields
tp_option :noprotect;
Как на экране уже написал. Поле ввода будет автоматически выровнено под самое длинное значение списка, но лучше подравнять "`". Другие поля что справа или ниже от вашего списка в fields ниже.
где нибудь проверяете по кратности степени 2. 1 флаг -1, 2 - 2, 3 -4, например так if (tp_options and 4)>0 ... .Ну еще есть функции блокирующие изменение какого-нибудь флага. Сбросить какой то флаг програмно tp_option:=tp_option-if((tp_option and 4)>0,4,0) ну или xor. Для установки tp_option:=tp_option or 4.
Re: Checkpoint
Мой первый опыт работы с checkbox может чемто поможет
Код: Выделить всё
////////////////////////////////////////////////////////////интерфейс настроек отчета
interface nastr_rep cyan;
Show at(1,1,41,12);
var
mMc, mMk, mMs: longInt;
indexNo : longInt;
z : comp;
i : comp;
BDate : Date;
CDate : Date;
c1, c2, c3 : boolean;
aCheckBoxButton : Byte;
_oldValue : word;
parameters mMk,mMs,indexNo,BDate,CDate;
create view
as select
*
from
ChooseKontr,
katorg,
ChooseNomen,
ChooseSklad
! ,Katmc
;
//------------------------------------------------------------
Screen s1;
Show at(,,39,10)
FIELDS
BDate:['DD/MM/YYYY'], noProtect;
CDate:['DD/MM/YYYY'], noProtect;
aCheckBoxButton:['.'], noProtect;
buttons
cmBBB;
<<
ОТЧЕТ О РЕАЛИЗАЦИИ ТОВАРОВ И УСЛУГ
ПО ДОКУМЕНТАМ ОСНОВАНИЯМ ОФОРМЛЕННЫМ
с .@@@@@@@@@@@@ по .@@@@@@@@@@@@
`Фильтры по:`
[.] Контрагентам`
[.] Номенклатуре`
[.] складам`
<.Сформировать отчет.>
>>
end;
handleevent
cmInit:{
Bdate := cur_date;
Cdate := cur_date;
Delete all ChooseKontr;
Delete all ChooseNomen;
_oldValue := aCheckBoxButton;
}
cmCheckField :{
if (CurField() = #aCheckBoxButton)
{
case (aCheckBoxButton xor _oldValue) of
1: {
cfsgetprop('ci_S1_aCheckBoxButton_Контрагентам','Checked', c1);
if c1=true
{
IF RunInterface ('CKontr', mMc,indexNo) = cmCancel THEN
{
cfssetprop('ci_S1_aCheckBoxButton_Контрагентам','Checked', false);
aCheckBoxButton := _oldValue;
mMc:=initmarker('Mc',8,10,10);
clearmarker(mMc);
DoneMarker(mMc,'Mc');
};
} else {
delete all ChooseKontr;
mMc:=initmarker('Mc',8,10,10);
clearmarker(mMc);
DoneMarker(mMc,'Mc');
};
}
2: {
cfsgetprop('ci_S1_aCheckBoxButton_Номенклатуре','Checked', c2);
if c2=true
{
IF RunInterface ('CNomen', mMk) = cmCancel THEN
{
cfssetprop('ci_S1_aCheckBoxButton_Номенклатуре','Checked', false);
aCheckBoxButton := _oldValue;
mMk:=initmarker('Mk',8,10,10);
clearmarker(mMk);
DoneMarker(mMk,'Mk');
};
} else {
delete all ChooseNomen;
mMk:=initmarker('Mk',8,10,10);
clearmarker(mMk);
DoneMarker(mMk,'Mk');
};
mMk:=initmarker('Mk',8,10,10);
! message('2 Count mMk' + GetMarkerCount(mMk), warning );
}
4: {
! message ('3', warning );// Складам
cfsgetprop('ci_S1_aCheckBoxButton_Складам','Checked', c3);
if c3=true
{
IF RunInterface ('CSklad', mMs) = cmCancel THEN
{
cfssetprop('ci_S1_aCheckBoxButton_Складам','Checked', false);
aCheckBoxButton := _oldValue;
mMs:=initmarker('Ms',8,10,10);
clearmarker(mMs);
DoneMarker(mMs,'Ms');
};
} else {
delete all ChooseSklad;
mMs:=initmarker('Ms',8,10,10);
clearmarker(mMs);
DoneMarker(mMs,'Ms');
};
mMs:=initmarker('Ms',8,10,10);
! message('3 Count mMs' + GetMarkerCount(mMs), warning );
}
end;
_oldValue := aCheckBoxButton;
}
};
cmClose :{
};
cmCancel :{
};
cmBBB:{
if RecordsInTable(tnChooseKontr)=0
{
mMc:=initmarker('Mc',8,10,10);
clearmarker(mMc);
_Loop Katorg
{
Insertmarker(mMc, Katorg.nrec);
}
if (GetMarkerCount(mMc)>0) then
{
delete all ChooseKontr;
reinittable(#ChooseKontr, fmMemory+fmAutoLoad);
z := 0;
for(i:=0; i < GetMarkerCount(mMc); i:=i+1)
{
IndexNo := i;
if (GetMarker(mMc,IndexNo,z)) then
{
Insert ChooseKontr set NREC:=z;
}
}
mtChangeRefCount(#ChooseKontr,1);
} else {message ( 'Не выбрано ни одного контрагента!', warning )};
}
/*
if RecordsInTable(tnChooseNomen)=0
{
mMk:=initmarker('Mk',8,10,10);
clearmarker(mMk);
_Loop Katmc
{
Insertmarker(mMk, Katmc.nrec);
}
if (GetMarkerCount(mMk)>0) then
{
delete all ChooseNomen;
reinittable(#ChooseNomen, fmMemory+fmAutoLoad);
z := 0;
for(i:=0; i < GetMarkerCount(mMk); i:=i+1)
{
IndexNo := i;
if (GetMarker(mMk,IndexNo,z)) then
{
Insert ChooseNomen set NREC:=z;
};
}
mtChangeRefCount(#ChooseNomen,1);
} else {message ( 'Не выбрано ни одного контрагента!', warning )};
}
*/
CloseInterface(cmDefault);
};
cmDone:{
DoneMarker(mMc,'Mc');
DoneMarker(mMk,'Mk');
DoneMarker(mMs,'Ms');
}
end;
end.
////////////////////////////////////////////////////////////интерфейс настроек отчета AND
-
- Местный житель
- Сообщения: 370
- Зарегистрирован: 28 сен 2006, 15:43
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Checkpoint
Все же, самый простой и правильный способ тот, который edward_K описал, мне кажется.
Re: Checkpoint
а еще лучше:
Код: Выделить всё
#define CHECKBOX_OPTION1 00000001b
#define CHECKBOX_OPTION2 00000010b
#define CHECKBOX_OPTION3 00000100b
if (aCheckBox and CHECKBOX_OPTION2) > 0
// опция выбрана