|  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. | 
|  |