powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Использование методов класса, %session
16 сообщений из 41, страница 2 из 2
Использование методов класса, %session
    #36610495
Блюх
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
<tablepane>
...
whereClause="TovarID=#(TovarIDSostav)#" -вот такое условие,да?
</tablepane>
а в query грида просто поставлю ?
Так?
...
Рейтинг: 0 / 0
Использование методов класса, %session
    #36610513
Блюх
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну я попробую по-всякому,если не получится, после обеда выложу куски текста. Спасибо всем за помощь и подсказки,буду пробовать
...
Рейтинг: 0 / 0
Использование методов класса, %session
    #36610535
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем привет
не очень понятна задача, но
для работы с dynaGrid я иногда использую параметр aux куда и записываю параметры для запроса
потом просто все это разбираю.
вот например такой dg (немного мною переделанный, для удобства работы и с возможностью вставки в ячейку компонентов ZEN, в частности dataCombo):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<demo:gbDynaGrid id="dynaGrid" enclosingStyle="margin-top: 5px; margin-bottom: 5px;"
OnCreateDataSet="CreateDataSet"
showRowLabels="false" hidden="1"
oneditcell="return zenPage.cellEdit(zenThis);"
onchangecell="zenPage.changecell(zenThis);"
onRenderContents="zenThis.setGridMode(1);"
onChangeMode="zenPage.changeMode(zenThis);"
onSaveRow="return zenPage.saveRow(grid);"
onDelRow="return zenPage.delRow(id);"
keyMode="1"
>
<gridColumn width="200"/>
<gridColumn width="40"/>
<gridColumn width="40"/>
...
<gridColumn width="35" hidden="0"/>
<gridColumn width="15" hidden="0"/>
</demo:gbDynaGrid>
а вот методы всякие:
Код: plaintext
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.
Method delRow(id) As %String [ ZenMethod ]
{
	s sc=##class(hndb.pointsMT).%DeleteId(id)
	s:$$$ISERR(sc) sc=0_" "_$System.Status.GetErrorText(sc)
	q sc
}

Method saveRow(grid As %ZEN.Component.dynaGrid) As %String [ ZenMethod ]
{
	s sc=$$$OK
	s d=grid.dataSet
	s col=d.%GetDimSize( 2 )
	s row=grid.currRow
	s idRow=d.%GetValue(row,col)
	if (idRow="") {s o=##class(hndb.pointsMT).%New()}
	else {s o=##class(hndb.pointsMT).%OpenId(idRow, 4 )}
	if '$IsObject(o) q 0_" Не удалось открыть объект для записи"	
	s:d.%GetValue(row,2)'="" o.pW=d.%GetValue(row, 2 )
	s:d.%GetValue(row, 3 )'="" o.pF=d.%GetValue(row,3)
	s:d.%GetValue(row,4)'="" o.pS=d.%GetValue(row, 4 )
	s:d.%GetValue(row, 5 )'="" o.pQ=d.%GetValue(row,5)
	s:d.%GetValue(row,6)'="" o.p16=d.%GetValue(row, 6 )
	s:d.%GetValue(row, 7 )'="" o.p32=d.%GetValue(row,7)
	s:d.%GetValue(row,8)'="" o.p64=d.%GetValue(row, 8 )
	s:d.%GetValue(row, 9 )'="" o.p128=d.%GetValue(row,9)
	s:d.%GetValue(row,10)'="" o.qlfr=d.%GetValue(row, 10 )
	s:d.%GetValue(row, 11 )'="" o.q3=d.%GetValue(row,11)
	s:d.%GetValue(row,12)'="" o.q2=d.%GetValue(row, 12 )
	s:d.%GetValue(row, 13 )'="" o.q1=d.%GetValue(row,13)
	s:d.%GetValue(row,14)'="" o.TEM1=d.%GetValue(row, 14 )
	s:d.%GetValue(row, 15 )'="" o.TEM2=d.%GetValue(row,15)
	s:d.%GetValue(row,16)'="" o.TEM3=d.%GetValue(row, 16 )
	s:d.%GetValue(row, 17 )'="" o.TEM4=d.%GetValue(row,17)
	s:d.%GetValue(row,18)'="" o.TEM5=d.%GetValue(row, 18 )
	s:d.%GetValue(row, 19 )'="" o.TEM6=d.%GetValue(row,19)
	s:d.%GetValue(row,20)'="" o.TEM7=d.%GetValue(row, 20 )
	s:d.%GetValue(row, 21 )'="" o.TEM8=d.%GetValue(row,21)
	d:d.%GetValue(row,22)'="" o.CategorySetObjectId(d.%GetValue(row, 22 ))
	s sc=o.%Save() 
	if $$$ISOK(sc) s sc="1 "_o.%Id()
	else  s sc="0 "_$System.Status.GetErrorText(sc)
	q sc
}
Method CreateDataSet(pGrid As %ZEN.Component.dynaGrid, pDataSet As %ZEN.Auxiliary.dataSet) As %Status [ ZenMethod ]
{
	Do pDataSet.%Clear()
	Do pDataSet.%SetLabel("Категория", 1 , 2 )
	Do pDataSet.%SetLabel("W", 2 , 2 )
	Do pDataSet.%SetLabel("F", 3 , 2 )
	Do pDataSet.%SetLabel("S", 4 , 2 )
	Do pDataSet.%SetLabel("Q", 5 , 2 )
	Do pDataSet.%SetLabel("16", 6 , 2 )
	Do pDataSet.%SetLabel("32", 7 , 2 )
	Do pDataSet.%SetLabel("64", 8 , 2 )
	Do pDataSet.%SetLabel("128", 9 , 2 )
	Do pDataSet.%SetLabel("qlfr", 10 , 2 )
	Do pDataSet.%SetLabel("q3", 11 , 2 )
	Do pDataSet.%SetLabel("q2", 12 , 2 )
	Do pDataSet.%SetLabel("q1", 13 , 2 )
	Do pDataSet.%SetLabel("TEM1", 14 , 2 )
	Do pDataSet.%SetLabel("TEM2", 15 , 2 )
	Do pDataSet.%SetLabel("TEM3", 16 , 2 )
	Do pDataSet.%SetLabel("TEM4", 17 , 2 )
	Do pDataSet.%SetLabel("TEM5", 18 , 2 )
	Do pDataSet.%SetLabel("TEM6", 19 , 2 )
	Do pDataSet.%SetLabel("TEM7", 20 , 2 )
	Do pDataSet.%SetLabel("TEM8", 21 , 2 )
	Do pDataSet.%SetLabel("CAT", 22 , 2 )
	Do pDataSet.%SetLabel("ID", 23 , 2 )
	s f=$p(pGrid.aux," ; ")
	s dd=$p(pGrid.aux," ; ", 2 )
	s:dd'="" d=$zdh(dd, 4 )
	if (($g(f)="")||($g(d)="")) q $$$OK
	s sql="SELECT ID,Category->catName,Category,TEM1,TEM2,TEM3,TEM4,TEM5,TEM6,TEM7,TEM8,p128,p16,p32,p64,pF,pQ,pS,pW,q1,q2,q3,qlfr FROM hndb.pointsMT where Category->fed="_f_" and Category->catDate="_d_" order by CAST(pW AS INT) desc"
	Set result=##class(%ResultSet).%New("%DynamicQuery:SQL")
	Set sc=result.Prepare(sql)
	q:$$$ISERR(sc) sc
	Set sc=result.Execute() 
	q:$$$ISERR(sc) sc
	s r= 1 
	While result.Next(.sc) {
		If $$$ISERR(sc) Quit
		;Write result.Data("Name"),result.Data("Salary"),!
		Do pDataSet.%SetValue(result.Data("catName"),r, 1 )
		Do pDataSet.%SetValue(result.Data("pW"),r, 2 )
		Do pDataSet.%SetValue(result.Data("pF"),r, 3 )
		Do pDataSet.%SetValue(result.Data("pS"),r, 4 )
		Do pDataSet.%SetValue(result.Data("pQ"),r, 5 )
		Do pDataSet.%SetValue(result.Data("p16"),r, 6 )
		Do pDataSet.%SetValue(result.Data("p32"),r, 7 )
		Do pDataSet.%SetValue(result.Data("p64"),r, 8 )
		Do pDataSet.%SetValue(result.Data("p128"),r, 9 )
		Do pDataSet.%SetValue(result.Data("qlfr"),r, 10 )
		Do pDataSet.%SetValue(result.Data("q3"),r, 11 )
		Do pDataSet.%SetValue(result.Data("q2"),r, 12 )
		Do pDataSet.%SetValue(result.Data("q1"),r, 13 )
		Do pDataSet.%SetValue(result.Data("TEM1"),r, 14 )
		Do pDataSet.%SetValue(result.Data("TEM2"),r, 15 )
		Do pDataSet.%SetValue(result.Data("TEM3"),r, 16 )
		Do pDataSet.%SetValue(result.Data("TEM4"),r, 17 )
		Do pDataSet.%SetValue(result.Data("TEM5"),r, 18 )
		Do pDataSet.%SetValue(result.Data("TEM6"),r, 19 )
		Do pDataSet.%SetValue(result.Data("TEM7"),r, 20 )
		Do pDataSet.%SetValue(result.Data("TEM8"),r, 21 )
		Do pDataSet.%SetValue(result.Data("Category"),r, 22 )
		Do pDataSet.%SetValue(%ROWID,r, 23 )
		s r=r+ 1 
	}
	q:$$$ISERR(sc) sc
	Quit $$$OK
}
все что нужно что б диманически считались колонки (результаты) можно найти в SAMPLES, все действия выполняются на клиенте javascript-ом.
...
Рейтинг: 0 / 0
Использование методов класса, %session
    #36610546
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блюх , про грид вроде речь уже не шла... Был датакомбо... Был тэйблплэйн... Вроде решали как их повязать друг с другом...

Про грид не скажу... Я с ним не работал. Да и в твоём случае не понятно зачем он нужен, если вся информация уже находится в классах.
Грид, я так понимаю, нужен для "табличного" редактирования данных. А с показом и выбором справится тэйблплэйн.
...
Рейтинг: 0 / 0
Использование методов класса, %session
    #36610561
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007
Код: plaintext
1.
2.
3.
4.
	s sql="SELECT ID,Category->catName,Category,TEM1,TEM2,TEM3,TEM4,TEM5,TEM6,TEM7,TEM8,p128,p16,p32,p64,pF,pQ,pS,pW,q1,q2,q3,qlfr FROM hndb.pointsMT where Category->fed=? and Category->catDate=? order by CAST(pW AS INT) desc"
	Set result=##class(%ResultSet).%New("%DynamicQuery:SQL")
	Set sc=result.Prepare(sql)
	q:$$$ISERR(sc) sc
	Set sc=result.Execute(f,d) 


Вот так бы подправил твой запрос... Раз про параметры речь идёт.
...
Рейтинг: 0 / 0
Использование методов класса, %session
    #36610581
Блюх
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Он- то справился. Но я ж говорю,надо каким-то чудо образом работать со значениями столбцов,которые только что отобразил мне тайблпейн. Я не знаю,как это сделать в таблице, а вот в гриде работать с ячейками легко. Поэтому, думал формировать не тайблпейн по запросу, а формировать грид. И тогда все было бы легко. Возникла проблема с запросом, по которому формирвался грид.Не получается сформировать условие WHERE.
Поэтому я написал,пишу в zen методе для грида:
"select Name from MRP.Specif where TovarID=#(Pole)#", где Pole-это айди записи из datacombo.
Так не рабоатет.Хотел узнать,как написать,чтобы работало. Вот и все.Мы друг друга не поняли)
Тут товарищ выше выложил еще свой грид, кое-что полезное я там увидел, попробую так сделать.
В любом случае,всем спасибо,буду пробовать и если что спрашивать
...
Рейтинг: 0 / 0
Использование методов класса, %session
    #36610808
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. метод oncahge у dataCombo
в нем нужно прописать
this.getComponentById('твой_ID_твоего_dynaGrid').setProperty('aux',твой_dataCombo.getValue());
2. для простоты положи кнопку обновления данных в dynaGrid:
onclick:
(метод формирования данных в dynaGrid должен быть CreateDataSet(pGrid As %ZEN.Component.dynaGrid, pDataSet As %ZEN.Auxiliary.dataSet) As %Status [ ZenMethod ])
вот такого плана:
Method btnShow() [ Language = javascript ]
{
var c1=this.getComponentById('catMT').getValue();
if (c1=='') {
alert('Необходимо выбрать федерацию');
return;
}
var c2=this.getComponentById('catD').getValue();
var dc=this.getComponentById('cellEditor1');
dc.clearCache();
dc.setProperty('whereClause',c1+' ; '+c2);
var dg=this.getComponentById('dynaGrid');
dg.setProperty('aux',c1+' ; '+c2);
var res=this.CreateDataSet(dg,dg.dataSet);
if (res!=1) {alert('Ошибка!\n'+res);return;}

dg.setHidden(false);
dg.renderContents();
dg.focus();dg.focus();
}
...
Рейтинг: 0 / 0
Использование методов класса, %session
    #36610811
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,

тут в принципе не важно как все это сформировано, главное чтоб "пусто" не передавалось
...
Рейтинг: 0 / 0
Использование методов класса, %session
    #36610822
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блюх,

такого плана передачи переменных помоему я еще нигде не видел: #(Pole)#
может быть #(%page.Pole)# или #(this.Pole)#,но при этом на странице у тебя должно быть обьявлено свойство "Property Pole As %String" например
у тя какая версия Cache стоит?
...
Рейтинг: 0 / 0
Использование методов класса, %session
    #36610886
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007тут в принципе не важно как все это сформировано, главное чтоб "пусто" не передавалось
В этом конкретном - возможно. Но в общем случае делать желательно через параметры...
...
Рейтинг: 0 / 0
Использование методов класса, %session
    #36610892
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блюхнадо каким-то чудо образом работать со значениями столбцов,которые только что отобразил мне тайблпейн
Если в табличке ты видишь все что тебе нужно - знать у тебя уже есть нужный sql-запрос. Вот и используй его для получения данных. Не стоит "выковыривать" данные из хтмл-разметки, т.к. они есть в БД.
...
Рейтинг: 0 / 0
Использование методов класса, %session
    #36610929
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,

в dynaGrid для этого есть свои методы
getCellValue(r, c) returns nothing. [ Language = javascript ]
Return value of grid cell; Row and column are 1-based
...
Рейтинг: 0 / 0
Использование методов класса, %session
    #36610936
Блюх
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем,вот чего я пытался добиться и увидел в одном из выложенных примеров. Получилось у меня все в грид записать по запросу.вот метод
Method CreateDataSetCurrentControl3(pGrid As %ZEN.Component.dynaGrid, pMode As %String = "") [ ZenMethod ]
{


s pDataSet = pGrid.dataSet
s Pole=..%GetValueById("TovarIDSostav")

...
do resSet.Prepare("SELECT Name,Kol FROM MRP.Specif,MRP.Tovar where TovarID="_Pole_" group by Name")

do resSet.Execute()

while resSet.Next()
{

/*do pDataSet.%SetLabel(s_i,i,2)*/
do pDataSet.%SetLabel(resSet.Get("Name"),n,1)
do pDataSet.%SetValue(resSet.Get("Kol"),n,1)
set n=n+1 }



d pGrid.%ForceClientRender()
}
Меня интересовало,как считать значение из поля.
...
Рейтинг: 0 / 0
Использование методов класса, %session
    #36610939
Блюх
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ymka2007,

Pole-это переменная в которой уже хранится значение. Поэтому передачей такого вида #(Pole)# можно было пользоватьсяв других методах.Здесь не получалось)Но увидел,как вы писали _Pole_ и все получилось.
Спасибо всем за советы!!
...
Рейтинг: 0 / 0
Использование методов класса, %session
    #36611032
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блюх,

рекомендую в таких случаях
перед исполнением запроса
сам текст запроса зхаписывать в глобаль
в портале находить её, копировать значение
и пытаться выполнить этот запрос в портале

либо выносить на суд общественности сам контекст ошибки (она же была? и текст скорее всего был доступен, было бы быстрее вам помочь)
P.S. как оказалось строка запроса сформирована была неправильно, вот и "ноги" откуда растут.
...
Рейтинг: 0 / 0
Использование методов класса, %session
    #36611079
Блюх
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как это неправильно?Запрос работал.Проблема была только в условии where.Я об этом написал несколько раз. Просто была проблема,решить которую можно было несколькими способами- либо работать с тэйблпейном,либо работать с гридом. Грид для меня ближе и понятнее. Если меня кто-то не понял,извините за корявое объяснение.
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Использование методов класса, %session
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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