12.12.2005, 14:47 | #1 |
Участник
|
Программно добаться до строк грида
Всем привет!
Ситуация: Есть грид, в котором одно из полей - просто флажок, не привязанный к источнику даных. Он сделан для того, чтобы пользователь мог выбрать некоторые записи. Задача Сделать так, чтобы пользователь мог посмотреть то, что у него выделено, либо снять выделение (записей много, не видно все, что выделено, пользователь тратит время на просмотр грида, чтобы убрать галочки с ненужных записей). а) Реализовать сортировку в гриде по этому флажку (сейчас при нажатии на заголовок этого поля в гриде ничего не происходит). б)Реализовать функцию типа выделить все -- очистить все. Т.е. програмно снимать\устанавливать все флажки в гиде. что думаете, господа аксаптоведы? :_) |
|
12.12.2005, 15:06 | #2 |
Moderator
|
Привяжите галочку к источнику данных, думаю это будет самое простое, красивое и стандартное решение.
|
|
12.12.2005, 15:11 | #3 |
Участник
|
Цитата:
Сообщение от Fortress
Ситуация:
Есть грид, в котором одно из полей - просто флажок, не привязанный к источнику даных. Он сделан для того, чтобы пользователь мог выбрать некоторые записи. Аксапта позволяет выделять несколько записей одновременно, при помощи CTRL+мышь, SHIFT+мышь Записи, выделенные таким образом являются промаркированными. Ищите здесь, в руководстве разработчика и в Best Practice темы по ключевому слову Mark. Кроме того, Аксапта имеет переключатель для кнопок - будут ли они доступными при выделении нескольких записей одновременно. |
|
12.12.2005, 15:22 | #4 |
Moderator
|
2Fortress:
Ну, флажок-то у вас по-любому привязан к источнику данных, просто он является edit-методом, а не полем таблицы. Иначе как вы понимаете, какие именно записи выделены? 1. Сортировка. Не представляю, как это можно реализовать, если не хранить выбранные записи в другой таблице, что бессмысленно. 2. Выделить\очистить все. Проще всего организовать перебор строк DS и вызывать для каждой из них этот самый edit-метод, имитируя постановку/снятие галочки для строки.
__________________
Андрей. |
|
12.12.2005, 15:23 | #5 |
Moderator
|
Эх ...
Я согласен что маркировка с помощью CTRL и SHIFT очень удобна, но довольно часто возникают случаи когда "галочка" оказывается намного удобнее. Да и поиск по выделенным через CTRL или SHIFT строкам не особо то работать будет Так что я соглашусь с DreamCreator.
__________________
С уважением, kvan. |
|
12.12.2005, 15:25 | #6 |
Участник
|
Хватит болтать, посмотрите как сделаны галки на сопоставлении и хватит схоластикой заниматься
|
|
12.12.2005, 15:30 | #7 |
Moderator
|
2Valia:
И вы действительно считаете что это удачный пример!? Я бы порекомендовал посмотреть туда, но вот делать так как там не стоит. Последний раз редактировалось kvan; 12.12.2005 в 15:33. |
|
12.12.2005, 15:45 | #8 |
Участник
|
я умолкаю, простите вырвалось.
Действительно, задача такая архиважная, что надо думать неделями на что прикрутить галки и как с ними возиться, можно еще цветами выделять начать |
|
12.12.2005, 16:00 | #9 |
Участник
|
можно посмотреть как сделана форма добавления строк в заказ или закупку. не знаю, насколько пример удачен, но работает замечательно.
|
|
12.12.2005, 16:03 | #10 |
Участник
|
Valia, вы посмотрите в исходный вопрос:
Цитата:
Сообщение от Fortress
Он сделан для того, чтобы пользователь мог выбрать некоторые записи.
Спрошено про одного пользователя и решение вы предлагаете для одного пользователя... А как нескольким пользователям одновременно работать? В сопоставлении на оплату галочки проставляются и видны всем пользователям. Обратите внимание, как приходится выкручитваться, чтобы другие пользователи не дай бог не изменили сопоставление. Обратите внимание, что ***TransOpen удаляются и создаются. Именно такой механизм придется воссоздавать (по крайней мере, придется создавать дополнительную таблицу), если следовать совету Valia. Если задача стоит того, чтобы ТАК геммороится, то может быть и да. кстати, kvan, смотри о чем спрашивает Fortress. О спрашивает о некоторых. Если выделяемых записей немного (до нескольких десятков), то проще таки воспользоваться маркировкой. |
|
12.12.2005, 16:09 | #11 |
Участник
|
Цитата:
Сообщение от mit
можно посмотреть как сделана форма добавления строк в заказ или закупку. не знаю, насколько пример удачен, но работает замечательно.
Если марктировка не подходит, то таки да. |
|
12.12.2005, 16:24 | #12 |
Moderator
|
Цитата:
Сообщение от mazzy
кстати, kvan, смотри о чем спрашивает Fortress.
О спрашивает о некоторых. Если выделяемых записей немного (до нескольких десятков), то проще таки воспользоваться маркировкой. Но в его случае еще и сортировка нужна, а это стандартной маркировкой не решить. 2Fortress: Может условия задачи можно немного изменить и тем самым отказаться от изобретения колеса?
__________________
С уважением, kvan. |
|
12.12.2005, 16:30 | #13 |
Участник
|
Цитата:
Сообщение от kvan
Но в его случае еще и сортировка нужна, а это стандартной маркировкой не решить.
Да, здесь ты прав. |
|
13.12.2005, 10:11 | #14 |
NavAx
|
Есть мысль запихать флажки во временную таблицу и связать её с основной.
Или запихнуть в map и сделать, как в Маркировке (по складу), хотя, там вообще комбинированный подход (IMHO, наиболее красиво, хотя наиболее извращенно).
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... |
|
13.12.2005, 11:16 | #15 |
Moderator
|
Цитата:
Сообщение от Maximin
Есть мысль запихать флажки во временную таблицу и связать её с основной.
Да и не стоит забывать что временные таблицы жрут RecId.
__________________
С уважением, kvan. |
|
13.12.2005, 11:55 | #16 |
NavAx
|
Я бы предложил хранить в постоянной таблице и потом джойнить при необходимости.
Залез в Аксапту 2.5, посмотрел как мы этим пользовались три года назад Задача более общая - пользователю нужно отмечать произвольные наборы, с возможностью передачи и другим пользователям (чтобы не было - "на, посмотри я тебе на бумажку выписала")
__________________
С уважением, Игорь Ласийчук. Последний раз редактировалось Garic; 13.12.2005 в 11:59. |
|
14.12.2005, 19:11 | #17 |
NavAx
|
Цитата:
Сообщение от kvan
Есть одна не очень приятная фича - джойн временной таблицы с "нормальной" не всегда получается
Да и не стоит забывать что временные таблицы жрут RecId.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... |
|
14.12.2005, 19:18 | #18 |
Moderator
|
Цитата:
Сообщение от Maximin
Есть мысль запихать флажки во временную таблицу и связать её с основной.
__________________
С уважением, kvan. |
|
14.12.2005, 19:19 | #19 |
NavAx
|
Запарил ты, дружище, цепляться. Или я на форум должен работать?
Сказал же - посмотри, как работают галочки в маркировании и подумай, как сделать.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... Последний раз редактировалось Maximin; 14.12.2005 в 19:29. |
|