Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / DataCombo глючит - помогите пожалуйста / 3 сообщений из 3, страница 1 из 1
21.08.2012, 15:55
    #37924859
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataCombo глючит - помогите пожалуйста
Вот еще одна проблема, которая постигла мою бедную студенческую голову: Есть несколько компонентов dataCombo, связанных друг с другом посредственно, используя данные друг о друге для запроса в таблице CACHE. Все имеют свойство comboType="timer"(то есть как в поисковике).

Проблемы следующие(заранее извиняюсь за сложное описание проблемы, проще не смог):
1)когда мы снимаем фокус с одного dataCombo и переключаемся на другой, экран по-прежнему слегка затемненный, и как будто мы всё еще на том же компоненте и смотрим выпавший список, и требуется порой, несколько раз жать на другой компонент мышкой, чтобы переключиться. Че это такое и как от него избавиться?

2)Когда мы вводим что-либо, пусть даже в один единственный dataCombo, выбрав поле из предложенного списка, а после, сняв фокус с него опять переходим к нему и пытаемся стереть выбранный компонент - список вновь открывается, и если в нем ничего не выбрать, а сразу попытаться перейти на другой компонент - вылетает вот ЭТО:

ZEN ASSERTION FAILURE:

--------------------------------------------------------------------------------

endModal should not be called while there is no current modal component.
Details:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
function() {
if (zenASSERT(this.modalStack && (this.modalStack.length>0),"endModal should not be called while there is no current modal component.",arguments)) { return; }
var trap = self.document.getElementById("zenMouseTrap");
if (zenASSERT(trap,"Unable to find zenMouseTrap div.",arguments)) { return; }
var component = this.modalStack[this.modalStack.length - 1];
if (component.onCanEndModalHandler) {
if (!component.onCanEndModalHandler()) {
return;
}
}
this.modalStack.length = this.modalStack.length - 1;
if (0 == this.modalStack.length) {
trap.style.display = "none";
trap.onmouseup = null;
trap.onmousedown = null;
trap.onmousemove = null;
if (this._hideEmbeds && self.document.embeds) {
this._hideEmbeds = false;
for (var n = 0; n < self.document.embeds.length; n++) {
self.document.embeds[n].style.display = '';
}
}
}
else {
trap.style.zIndex = 100 + (this.modalStack.length*10);
}
var zindex = (this.modalStack.length>0) ? (100 + (this.modalStack.length*10)) : 0;
if (component.onEndModalHandler) {
component.onEndModalHandler(zindex);
}
else {
component.setHidden(true);
}
}
...
Рейтинг: 0 / 0
21.08.2012, 16:16
    #37924931
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataCombo глючит - помогите пожалуйста
feanorchegзаранее извиняюсь за сложное описание проблемы
Вместо "описани" лучше делать тестовый пример, который может посмотреть любой желающий...
...
Рейтинг: 0 / 0
21.08.2012, 16:30
    #37924958
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataCombo глючит - помогите пожалуйста
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page title="Редактирование адреса" xmlns="http://www.intersystems.com/zen">
<titleBox id="titlePageHeader" title="" 
		subtitle=""/>
<fieldSet id="frmEdit" legend=" Адрес " labelPosition="left">
<hgroup labelPosition="left">
<combobox id="geState" label="Страна" unrestricted="true" size="40" value="Россия" onchange="zenPage.getState();">
<option value="1" text="Россия"/>
</combobox>
</hgroup>
<hgroup labelPosition="left">
<dataCombo id="geRegion" 
	label="Регион"
	editable="true"
	comboType="timer"
	size="40"	
	delay="400"
	searchKeyLen="10"
	maxRows="10"
	unrestricted="true"
	valueColumn="1"
	displayColumns="2,3"
	columnHeaders="Регион"
	containerStyle="text-transform:uppercase"
	sql="SELECT CodeRegion, Name, Socr FROM KLADR.KLADR WHERE Name %STARTSWITH ? and CodeStatus=1"
	sqlLookup="SELECT Name FROM KLADR.KLADR WHERE Name = ?"
	onchange="zenPage.getRegion();">
</dataCombo>
</hgroup>
<spacer width="20"/>
<hgroup labelPosition="left">
<dataCombo id="geArea"
	label="Район"
	editable="true"
	comboType="timer"
	size="40"
	delay="400"
	searchKeyLen="10"
	maxRows="10"
	unrestricted="true"
	valueColumn="1"
	displayColumns="2,3"
	columnHeaders="Район"
	containerStyle="text-transform:uppercase"
	OnCreateResultSet="CrtSQLArea"
	sqlLookup="SELECT Name FROM KLADR.KLADR WHERE Name = ?"
	onchange="zenPage.getArea();">
</dataCombo>
</hgroup>
<spacer width="20"/>
<hgroup labelPosition="left">
<dataCombo id="geCity"
	label="Город"
	editable="true"
	comboType="timer"
	size="40"
	delay="400"
	searchKeyLen="10"
	maxRows="10"
	unrestricted="true"
	displayColumns="2,3"
	columnHeaders="Город"
	containerStyle="text-transform:uppercase"
	OnCreateResultSet="CrtSQLCity"
	sqlLookup="SELECT Name FROM KLADR.KLADR WHERE Name = ?"
	onchange="zenPage.getCity();">
</dataCombo>
</hgroup>
<spacer width="20"/>
<hgroup labelPosition="left">
<dataCombo id="geStreet"
	label="Улица"
	editable="true"
	comboType="timer"
	size="40"
	delay="400"
	searchKeyLen="10"
	maxRows="10"
	unrestricted="true"
	displayColumns="2,3"
	columnHeaders="Улица"
	containerStyle="text-transform:uppercase"
	OnCreateResultSet="CrtSQLStreet"
	sqlLookup="SELECT Name FROM KLADR.STREET WHERE Name = ?"
	onchange="zenPage.getStreet();">
</dataCombo>
</hgroup>
<spacer width="20"/>
<hgroup labelPosition="left">
<text id="geHouse" label="Номер дома" size="3" onchange="zenPage.geHouseChange();"/>
<spacer width="20" />
<text id="geBuild" label="Строение" size="3" onchange="zenPage.geBuildChange();"/>
<spacer width="20" />
<text id="geApartment" label="Квартира" size="3" onchange="zenPage.geApartmentChange();"/>
<spacer width="20" />
</hgroup>
<hgroup labelPosition="left">
<text id="gePostIndex" label="Индекс" size="20" readOnly="true"/>
<spacer width="20" />
<text id="geRoom" label="Комната" size="10"/>
</hgroup>
<spacer width="20"/>
<fieldSet id="frmEditAddress" legend=" Полный адрес " labelPosition="left">
<hgroup labelPosition="left">
<text id="StrAddress" label="" size="70" readOnly="true"/>
<text id="StrCode" hidden="true"/>
</hgroup>
</fieldSet>
<hgroup  labelPosition="left">
<hgroup labelPosition="left">
<checkbox id="cbFind" label="Быстрый поиск" value="1" align="left" hidden="true"/>
<spacer height="20" />
</hgroup>
<hgroup labelPosition="left">
<spacer width="160" />
<button id="BOK" caption="  Ок  " onclick="zenPage.btnOKclick();" align="right" />
<spacer height="20" />
<button id="BCancel" caption="Отмена" onclick="zenPage.cancelPopup();" align="right"/>
</hgroup>
</hgroup>
</fieldSet>
</page>
}



Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
Method CrtSQLArea(Output tSC As %Status, pInfo As %ZEN.Auxiliary.QueryInfo) As %ResultSet
{
	if %session.Data("Address","NameRegion") '= ""
	{
		set tSELECT = "SELECT CodeArea, Name, Socr FROM KLADR.KLADR WHERE Name %STARTSWITH ? and CodeStatus=2 and CodeRegion = '"_
			%session.Data("Address","CodeRegion")_"'"
	}
	else
	{
		set tSELECT = "SELECT CodeArea, Name, Socr FROM KLADR.KLADR WHERE Name %STARTSWITH ? and CodeStatus=2"
	}
	set tRS = ##class(%ResultSet).%New()
	set tSC = tRS.Prepare(tSELECT)
	set pInfo.queryText = tSELECT
	quit tRS
}

Method CrtSQLCity(Output tSC As %Status, pInfo As %ZEN.Auxiliary.QueryInfo) As %ResultSet
{
	if %session.Data("Address","NameRegion") '= ""
	{
		set tSELECT = "SELECT CodeCity, Name, Socr FROM KLADR.KLADR WHERE Name %STARTSWITH ? and CodeStatus=3 and CodeRegion = '"_
			%session.Data("Address","CodeRegion")_"'"
	}
	else
	{
		set tSELECT = "SELECT CodeCity, Name, Socr FROM KLADR.KLADR WHERE Name %STARTSWITH ? and CodeStatus=3"
	}
	set tRS = ##class(%ResultSet).%New()
	set tSC = tRS.Prepare(tSELECT)
	set pInfo.queryText = tSELECT
	quit tRS
}

Method CrtSQLPlace(Output tSC As %Status, pInfo As %ZEN.Auxiliary.QueryInfo) As %ResultSet
{
	set tSELECT = "SELECT CodePlace, Name, Socr FROM KLADR.KLADR WHERE Name %STARTSWITH ? and CodeStatus=4 and CodeRegion = '"_
		%session.Data("Address","CodeRegion")_"' and CodeArea ='"_%session.Data("Address","CodeArea")_"' and CodeCity = '"_
		%session.Data("Address","CodeCity")_"'"
	set tRS = ##class(%ResultSet).%New()
	set tSC = tRS.Prepare(tSELECT)
	set pInfo.queryText = tSELECT
	quit tRS
}

Method CrtSQLStreet(Output tSC As %Status, pInfo As %ZEN.Auxiliary.QueryInfo) As %ResultSet
{
	set CODE=%session.Data("Address","CodeRegion")_%session.Data("Address","CodeArea")_
			%session.Data("Address","CodeCity")_%session.Data("Address","CodePlace")
	set tSELECT = "SELECT CodeStreet, Name, Socr FROM KLADR.STREET WHERE Name %STARTSWITH ? and "_
	"code %STARTSWITH "_CODE
	set tRS = ##class(%ResultSet).%New()
	set tSC = tRS.Prepare(tSELECT)
	set pInfo.queryText = tSELECT
	quit tRS
}
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / DataCombo глючит - помогите пожалуйста / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]