|
11.09.2015, 12:12 | #1 |
Участник
|
Копирование строк
Доброго времени суток!
Делаю форму для копирования строк журналов в новый (функционал как в создании заказов на продажу "из всех"). Так вот, на форме два грида, собственно заголовки и строки журналов. Из разных журналов можно галочками отметить нужные строки что бы они скопировались в новый журнал. Вопрос как правильно хранить строки отмеченные галочками, ведь когда переключаешься по записям в заголовках отметки пропадают. Я пока думаю создать временную таблицу, но может для этого есть какой то более правильный "механизм"? |
|
11.09.2015, 12:57 | #2 |
Участник
|
Как вариант
Выборка произвольных записей одним запросом |
|
11.09.2015, 13:04 | #3 |
Участник
|
Весьма интересно, а с галочками что делать, надо постоянно отслеживать записи которые уже есть в этом классе, и при проставлять галочки когда пользователь переключает заголовки...
Каким методом на гриде можно перехватывать событие checked? |
|
11.09.2015, 13:20 | #4 |
Участник
|
Чтобы не заморачиваться с маркировкой можно прицепить на форму отдельный грид с данными с выбранными строками (опять же как вариант и пользователям нагляднее будет)
|
|
11.09.2015, 13:24 | #5 |
Участник
|
тоже думал об этом. Просто не знаю как к этим чекбоксам привязаться
|
|
11.09.2015, 13:37 | #6 |
Участник
|
Разберитесь с формой SalesCopying, там все есть для вашего случая. Откройте свойство контрола checkBox. У него в свойстве DataMethod указан Edit метод. Который отвечает за выборку записей пользователем.
|
|
11.09.2015, 19:56 | #7 |
Дмитрий Ерин
|
Цитата:
Поэтому напрашивается решение, в котором исключены временные таблицы или структуры в памяти. Добавляйте строки в новый журнал "пачками". Грубо говоря, как в каком-нибудь "коммандере" (файловом менеджере): зашел в папку, выбрал файлы, скопировал. Зашел в следующую папку, выбрал, скопировал...Совершенно естественный процесс. Так и тут - промаркировал строки, нажал кнопку "создать/добавить", перешел в следующий журнал, снова промаркировал... В качестве "обратной связи" (если я хочу утром вспомнить, что я там навыбирал вчера вечером) будет выступать открытая рядом стандартная форма целевого журнала. Записи в ней уже сохранены и никуда не денутся, что бы ни произошло в моем сеансе работы. Соответственно перед началом маркировки пользователь должен выбрать существующий целевой журнал или указать, что собирается наполнять новый. А чтобы не забывали жать кнопку, можно сделать напоминалку на событии перехода к другому журналу: мол "имеются промаркированные строки, вы точно не хотите их добавить в журнал?"
__________________
|
|
11.09.2015, 22:44 | #8 |
Участник
|
Хранение пометок решается чисто механически, гораздо интереснее вопрос, как правильно копировать строки журналов Какие поля копировать, какие - не копировать, какие обработчики дергать, чтобы часть полей "пересчиталась" (аналитики переподтянулись из шапки журнала или еще что), какие проверки дергать (может, какие-то аналитики более не действительны/заблокированы/недоступны - надо понять, что с ними делать), как реализовать копирование, чтобы оно не ломалось при добавлении в строки журналов новых полей и логики их заполнения, etc.
|
|
13.09.2015, 12:14 | #9 |
Участник
|
На самом деле я с этим всем разобрался. У меня все работает но есть проблемы с визуальным отображением, проблему я описал в новом топике Обновление грида на форме
|
|
13.09.2015, 22:46 | #10 |
Участник
|
В той теме упоминаются строки журналов ГК. У вас там все работает, аналитики корректно пересчитываются, нужные поля копируются, ненужные - затираются, дергается соотв. движок работы со строками, причем с учетом специфики типа журнала, и дело лишь в том, как отображать галочки для помеченных строк? Круто...
|
|
|
За это сообщение автора поблагодарили: S.Kuskov (1). |
14.09.2015, 10:10 | #11 |
Участник
|
Дело в том что журнал создает сам пользователь и только потом может начать выбирать строки для копирования. Я еще не полностью оттестировал результат, может проблемы еще конечно и будут, но пока все работает...
|
|