Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
Т.е. добавляю я в табличку Код: plaintext 1. 2. 3. 4. вижу появившиеся чекбоксы у таблички... Как теперь: - "пройтись" по всем выделеным элементам? - снять отметку с элемента? - поставить ее программно у какого-то элемента? - отметить все? - снять отметку со всех? - что еще есть для работы с multiSelect ? ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 16:23 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
1. а на..р нужно, есть свойство в которм все отмесенное будет лежать через запятую; 2. ткни мышкой и все; 3. смотри искодный код tablePane, возможно будет срабатывать через setProperty('selectedIndex',index); 4. должен "главный" чекбокс появиться в заголовке таблицы, его и юзать 5. --||-- 6. проверь работоспособность при useSnapshot=true ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 18:04 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
Ymka20071. а на..р нужно, есть свойство в которм все отмесенное будет лежать через запятую; Там единицами отмечаются номера строк... Как тогда узнать ИЗ записи, если знаешь номер строки в таблице? Ymka20073. смотри искодный код tablePane, возможно будет срабатывать через setProperty('selectedIndex',index); Каше в своём репертуаре! Ymka20074. должен "главный" чекбокс появиться в заголовке таблицы, его и юзать С этим понял. Ymka20075. --||-- 6. проверь работоспособность при useSnapshot=true А вот тут что-тонепонял... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 19:24 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
krvsa, В anyTable.getProperty('selectedRows') лежат через запятую значения, которые Вы попросили, задав valueColumn в таблице - например айдишники записей (но не номера строк таблицы - это точно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 11:05 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
kolesovайдишники записей (но не номера строк таблицы - это точно) В этом я уже убедился. Просто смутила сама документация... автор selectedRows Read-only. For tables in which multiSelect is true, this string indicates which rows are currently selected. The string is in the form "1,,,1,,,1" with "1" indicating a selected row. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 11:38 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
Пока остались вопросы как программно: - поставить/снять метку у элемента? - поставить/снять метки у всех элементов? ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 11:41 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
krvsa, загружаешь страницу в мазиле, выделяешь таблицу и смотришь исходный код, находишь как обзываются айдишники у чекбоксов и юзаешь их ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 12:07 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
krvsa, Интерес академический, или есть реальные задачи? Мы за 2 года разработки и эксплуатации приложений ZEN с такой необходимостью не сталкивались... Зато с галочками есть глюк - если страниц много, и отмечать галочками все последовательно на страницах, при переходе на предыдущую страницу последняя галка снимается сама - саппорт уже с пол-года обещает полечить ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 12:42 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
kolesovИнтерес академический, или есть реальные задачи? И так, и так... В качестве тренировки пишу программку по учету предложений, замечаний, составление квартальных планов, выполнение работ, отчеты по выполненым работам... Так вот босс делает отчеты каждый месяц... Я ему даю список выполненных работ... Он их начинает структуировать... Т.е. несколько работ могут быть объеденены одной какой-то "тематикой"... По одному клацать он не хочет, хочет выделить несколько строк и задать нужную тематику. Чем не тренировка! Вот после записи изменений я хотел бы отметки снять. Но "смотреть в Мозиле" это ооочень последний вариант в списке. не уж-то нет у тейблплэйн методов делающих это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 12:52 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
Нашел я эти методы. авторmethod selectAllMultiRows(flag) returns nothing. [ Language = javascript ] For multi-select tables, mark all (visible) rows as selected or unselected depending on the value of flag. method selectMultiRow(row, flag) returns nothing. [ Language = javascript ] For multi-select tables, select/unselect the given row based on the value of flag. Updates the corresponding checkbox. ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 14:35 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
оказывается есть что то полезное в доке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 15:35 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
В описании классов нашел. От безисходности лазил, смотрел... В одном их "материнских" классах нашел, потестил - оказалось оно. ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 15:56 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
Ymka20071. а на..р нужно, есть свойство в которм все отмесенное будет лежать через запятую; Получается строка, что то наподобие,,569,968,,,,,,,,,1069,,,,,,,,,,,,51,,,,,,,,,37,,,,,,,,,, Кто как дальше её обрабатывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 13:07 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
,,569,968,,,,,,,,,1069,,,,,,,,,,,,51,,,,,,,,,37,,,,,,,,,, или в наличии лишних запятых есть какая-то неочевидная прелесть?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 13:13 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
CacheLotили в наличии лишних запятых есть какая-то неочевидная прелесть?? Конечно! Там "слов" ровно столько, сколько и записей в классе. Хотя х/з чтобудет если строка превысит 32КБ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 13:58 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
CacheLotКто как дальше её обрабатывает? А вот далее: - Либо в цикле их перебирать, оставляя не пустые - Либо предварительно убрать ",,", а потом опять "копытами, копытами..." (с) Рашпиль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 14:01 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
на клиенте получаем значения Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 14:39 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
iriskin ... for i=1:1:rCount { s studID = $PIECE(students,",",i,i) ...[/src] думаю можно и на клиенте обрабатывать ;) В моём случае даже нужно на клиенте, зачем из-какой то фигни сервер загружать. Щас буду что то пробовать писать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 15:01 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 15:10 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
CacheLot , в JS есть возможность преобразования строки в массив, используя некий разделитель... А потом этот массив прокатить в цикле. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 15:14 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
Доброго дня, krvsa! Мы делаем примерно так (скидываю весь класс): Class WEBFORM.HOSPITAL.frmCardAllMedSettings Extends WEBFORM.Template.frmCardList { Parameter WINNAME = "Призначення"; XData Style { <style type="text/css"> #ctrlForm { height: 400px; } </style> } XData tlbPane [ XMLNamespace = "http://www.intersystems.com/zen" ] { <pane xmlns="http://www.intersystems.com/zen" title=""> <dataController id="dcAllMedSettings" modelClass="WEBFORM.DataModel.HOSPITAL.AllMedSettings"/> <hgroup> <vgroup align="left" valign="top" width="49%"> <label id="logName" hidden="true"/> <tableNavigatorBar id="navTblSampleLog" tablePaneId="tblSampleLog" showPageSize="true" showFilter="false" /> <tablePane id="tblSampleLog" width="100%" caption="Перелік журналів досліджень" tableName="DATA_SES.SampleLog" useSnapshot="true" showFilters="true" showZebra="false" showQuery="false" showRowSelector="false" showRowNumbers="true" pageSize="20" fixedHeaders="false" valueColumn="ID" headerLayout="filtersOnTop" maxRows="500" useKeys="true" autoExecute="true" nowrap="false" onselectrow="zenPage.rowSelected(zenThis);"> <column colName="ID" hidden="true"/> <column colName="Name" header="Назва журналу досліджень" filterType="text" hidden="false"/> </tablePane> </vgroup> <spacer width="5"/> <vgroup align="left" valign="top" width="49%"> <hmenu id="menu"> <menuItem id ="menuInsertrowPN" caption="Додати вибрані дослідження" onclick="zenPage.AddTargetList();" help="Додати вибрані дослідження" image="images/check.png" /> </hmenu> <form controllerId="dcAllMedSettings" labelPosition="left" align="left"> <dateText showTime="false" size="10" label="Дата призначення" format="DMY" id="DatePrescription" dataBinding="DatePrescription" required="true" requiredMessage="Виберіть дату призначення"/> </form> <tableNavigatorBar tablePaneId="tblListTarget" showPageSize="true" showFilter="false" /> <tablePane id="tblListTarget" multiSelect="true" onupdate="zenPage.SelectTarget(zenThis);" caption="Перелік цілей досліджень" OnCreateResultSet="DataSet" useSnapshot="true" showFilters="true" showZebra="false" showQuery="false" showRowSelector="false" showRowNumbers="false" pageSize="20" fixedHeaders="false" valueColumn="ID" headerLayout="filtersOnTop" maxRows="500" useKeys="true" autoExecute="true" nowrap="false"> <column colName="ID" hidden="true"/> <column colName="Name" header="Назва цілі дослідження" hidden="false"/> </tablePane> </vgroup> </hgroup> </pane> } ClientMethod SelectTarget(table) [ Language = javascript ] { var controller = zenPage.getComponentById('dcAllMedSettings'); var tblListTarget = zenPage.getComponentById('tblListTarget'); var lisTarget=controller.getDataByName('TargetIDList'); tblListTarget.setProperty('selectedRows',lisTarget) } Method DataSet(Output tSC As %Status, pInfo As %ZEN.Auxiliary.QueryInfo) As %ResultSet { Set tRS = "" Set LogID = $Get(%session.Data("LogID")) Set tSC = $$$OK Set tSELECT = "ID," Set tSELECT =tSELECT_"target->Name As Name" Set tFROM = "DATA_SES.ListTarget" Set tWHERE = "" Set tWHERE = "log->ID= '"_LogID_"'" Set sql = "SELECT " _ tSELECT _ " FROM " _ tFROM Set:tWHERE'="" sql = sql _ " WHERE " _tWHERE Set tRS = ##class(%ResultSet).%New() Set tSC = tRS.Prepare(sql) Set pInfo.queryText = sql Quit tRS } ClientMethod rowSelected(table) [ Language = javascript ] { var id = table.getValue(); this.WriteToSessionLogID(id); var tblListTarget = zenPage.getComponentById('tblListTarget'); tblListTarget.executeQuery(true); } ClientClassMethod AddTargetList() [ Language = javascript ] { var logID=this.GetSessionData('LogID'); var table = this.getComponentById('tblListTarget'); var ListTarget=table.getProperty('selectedRows'); var dcAllMedSettings = zenPage.getComponentById('dcAllMedSettings'); dcAllMedSettings.setDataByName('TargetIDList', ListTarget); dcAllMedSettings.setDataByName('log', logID); dcAllMedSettings.save(); self.close(); } Method WriteToSession(ID As %String) [ ZenMethod ] { do %session.Set("ObjectID", ID) } Method WriteToSessionLogID(ID As %String) [ ZenMethod ] { do %session.Set("LogID", ID) } /// This client event, if present, is fired when the page is loaded. ClientMethod onloadHandler() [ Language = javascript ] { var f003Id=this.GetSessionData('sessionF003ID'); var controller = zenPage.getComponentById('dcF003'); controller.setModelId(f003Id); controller.update(); var dateHosp = controller.getDataByName('DateHosp'); var ctrlDateRecord = zenPage.getComponentById('DatePrescription'); ctrlDateRecord.setProperty('minDate',dateHosp); var Id = this.GetSessionData('ObjectID'); var dcAllMedSettings = zenPage.getComponentById('dcAllMedSettings'); dcAllMedSettings.setModelId(Id); var LogID=this.GetSessionData('LogID'); if (LogID!='') { var tblSampleLog = zenPage.getComponentById('tblSampleLog'); tblSampleLog.setProperty('hidden',1); var navTblSampleLog = zenPage.getComponentById('navTblSampleLog'); navTblSampleLog.setProperty('hidden',1); var tblListTarget = zenPage.getComponentById('tblListTarget'); tblListTarget.executeQuery(true); var logName = zenPage.getComponentById('logName'); var logNameValue = dcAllMedSettings.getDataByName('logName'); logName.setProperty('value',logNameValue); logName.setProperty('hidden',0); } } /// This client event, if present, is fired when the page is unloaded. /// If this method returns a string value, then that is used as the /// return value of the HTML page's onbeforeunload handler (if more than /// one component returns a string, the first one encountered is used). ClientMethod onunloadHandler() [ Language = javascript ] { this.WriteToSessionLogID(''); } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 16:08 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
YuraMДоброго дня, krvsa! Мы делаем примерно так (скидываю весь класс): Не совсем понял в чем именно мне может помоч ваш "пример"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 16:33 |
|
||
|
ZEN <tablePane>. Как обрабатывать multiSelect?
|
|||
|---|---|---|---|
|
#18+
Да... Много лишнего... .... // выбрать строки ClientMethod SelectTarget(table) [ Language = javascript ] { var controller = zenPage.getComponentById('dcAllMedSettings'); var tblListTarget = zenPage.getComponentById('tblListTarget'); var ListTarget=controller.getDataByName('TargetIDList'); tblListTarget.setProperty('selectedRows',ListTarget) } .... lisTarget-список номеров строк которые надо отметить как выбранные(разделитель запятая). ... // выбрать строки ClientClassMethod AddTargetList() [ Language = javascript ] { var logID=this.GetSessionData('LogID'); var table = this.getComponentById('tblListTarget'); var ListTarget=table.getProperty('selectedRows'); ... } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 21:08 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=36566150&tid=1558131]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 360ms |

| 0 / 0 |
