УкраїнськаEnglishmRussian
Вхід/Новий
Тема без відповіді

Два раза генерируется сообщение


Автор Повідомлення
Повідомлення створено: 02. 03. 2018 [09:56]
rainproof
Виктор Иванов
Зареєстрован(а) с: 02.02.2018
Повідомлення: 32
На странице главной мнемосхемы разместил виджет "документ".
При определенных событиях - программа обновляет в нем данные.

Ситуация такая. Если события от нажатия пользователем кнопки. то генерируется одно сообщение.

JAVASCRIPT
//Events for commands process
for(off = 0, ev_rez = ""; (ev_cur=event.parse(0,"\n",off)).length; ) {
	//SYS.messDebug("Prescription edit control","Event: "+ev_cur);
	if(ev_cur == "ws_BtPress:/apply1") {
		input_vol_rez = this["input_vol_rez"].attr("value");
		vol_rez = this.attr("vol_rez");
		incoming_vol = input_vol_rez - vol_rez;
 
		this.attrSet("incoming_vol",incoming_vol);
		this.attrSet("vol_rez",input_vol_rez);
		vol_rez = this.attr("vol_rez"); 
		vol_rez_2 = this.attr("vol_rez_2");
		vol_rez_3 = this.attr("vol_rez_3");
		summ_remains = vol_rez + vol_rez_2 + vol_rez_3;
 
		this.attrSet("summ_remains",summ_remains);
		this.attrSet("doc_time",SYS.time());
		SYS.messNote("MP:",this.ownerSess().user()+":"+incoming_vol +":0:0:"+ summ_remains);
		this.attrSet("pgOpen",false);
	}
	else if(ev_cur == "ws_BtPress:/cancel1")	this.attrSet("pgOpen", false);
	else ev_rez += (ev_cur+"\n");
}
event = ev_rez;


если событие программное, то генерится два сообщения.
одно сообщение - полностью дублирует предыдущее, второе - с новыми значениями.
я уже сделал два флага flag_exp1, и flag_exp2.

JAVASCRIPT
if (this["SysOn"].attr("value") == false){ 
this.attrSet("expense",moment_counter);
vol_rez_1 = this.attr("vol_rez_1");
vol_rez_2 = this.attr("vol_rez_2");
vol_rez_3 = this.attr("vol_rez_3");
summ_remains = vol_rez_1 + vol_rez_2 + vol_rez_3;
this.attrSet("summ_remains",summ_remains);
 
if(flag_exp1 == false){
this.attrSet("doc_time",SYS.time());
if(flag_exp2 == false){
SYS.messNote("MP:",this.ownerSess().user()+":0:0 : "+moment_counter+" : "+ summ_remains);
flag_exp2 = true;
}
flag_exp1 = true;
} 
}else{
flag_exp2 = false;
flag_exp1 = false;
}



1009