|
v7: Работа с двумя объектами "ТаблицаЗначений" | ☑ | ||
---|---|---|---|---|
0
МатьКузи
25.10.15
✎
12:57
|
Коллеги, помогите разобраться с проблемой:
В экранной форме два объекта типа "ТаблицаЗначений", Таб2 подчинена таблице Таб1, т.е. при перемещении по Таб1 меняется информация в Таб2. При перемещении курсора(указателя мыши) в Таб2 перемещение по колонкам происходит (мышкой, стрелками клавы не важно), а по строкам нет! Двойной щелчок мышкой по первой строке Таб2 обрабатывается, по другим строкам - никакой реакции! |
|||
1
Фокусник
25.10.15
✎
13:02
|
(0) вероятно, таб2 обновляется, поэтому выбранная в ней строка "сбрасывается"
|
|||
2
spectre1978
25.10.15
✎
13:02
|
(0) В стандартном визуальном представлении таблицы от клюшек обрабатывается только двойной щелчок или нажатие клавиши Ввод. Внутри обработчика вы можете получить текущую строку и текущую колонку и таким образом определить, в каком месте таблицы вы сейчас находитесь. Предварительно рекомендую проверить, а не пуста ли таблица. Собственно, все.
|
|||
3
Фокусник
25.10.15
✎
13:09
|
(1)+ так будет, если обновление таб2 выполняется формулой (в тексте) на форме обработки.
|
|||
4
МатьКузи
25.10.15
✎
13:16
|
(1) При щелчке в Таб2 и движении курсора Таб2 не обновляется.
(2) Таб2 не пуста и визуально, и программно стоит проверка на колво строк в Таб2. В обработке дв щелчка по Таб2 сделал программно переход к след строке, выдал Предупреждение, вижу курсор на второй строке, как нажимаю ОК на предупреждении, возвращается на первую строку. Гонял через отладчик, Текущая строка в обработке Таб2 меняется. |
|||
5
Sserj
25.10.15
✎
13:16
|
Нужно в том обработчике что обновляет Таб2 проверялось условие изменилась ли текущая строка в Таб1 и только тогда обновлять Таб2
|
|||
6
МатьКузи
25.10.15
✎
13:18
|
(5) Так это работает, что его проверять
|
|||
7
МатьКузи
25.10.15
✎
13:20
|
(3) Обновление Таб2 выполняется как функция "Информация" о строке из Таб1. Как еще можно ?
|
|||
8
viktor_vv
25.10.15
✎
13:27
|
(7) покажи функцию обновления
|
|||
9
МатьКузи
25.10.15
✎
13:36
|
(7) Примерно так:
Функция Информация(); Если Таб1.КоличествоСтрок()=0 Тогда Возврат ""; КонецЕсли; Таб2.УдалитьСтроки(); // Далее перебираю файл ДБФ, по условию добавляю строки в Таб2. // При этом считаю некую контрольную сумму Возврат КонтрольнаяСумма; КонецФункции //Информация() |
|||
10
Фокусник
25.10.15
✎
13:43
|
(9) нужно в переменной модуля запомнить номер строки таб1 и обновлять таб2 только при изменении номера строки (сравнивать с этой переменной). А пока строка не изменилась, не "дергать" таб2
|
|||
11
МатьКузи
25.10.15
✎
13:54
|
(10) Зачем его запоминать? Сейчас проверил через отладчик: функция вышеописанная не "дергается" при перемещении по колонкам Таб1, а только по строкам Таб1. Это работает. Не могу добиться перемещения по строкам Таб2 !
|
|||
12
Фокусник
25.10.15
✎
14:11
|
(11)в том и дело: при перемещении по строкам таб2 функция дергается и перезаполняет таб2, а если анализировать номер строки таб1 и его неизменность, то таб2 останется бе перезаполнения и в ней не будет сливаться текущая строка.
Поставь Предупреждение("перезаплняем таб2") в свою функцию и станет наглядно... |
|||
13
HawkEye
25.10.15
✎
14:24
|
(11) если у тебя Таб2 перересовывается в зависимости от ТекущейСтроки Таб1, значит функция висит на форме, а значит и вызывается они при ЛЮБОМ изменении формы..
если ты не будешь проверять изменилась ли текущаястрока таб1, таб2 у тебя будет постоянно перезаполняться и текущей в таб2 всегда будет первая... |
|||
14
МатьКузи
25.10.15
✎
14:29
|
(11) Не думал, что функция дергается при перемещении по Таб2. Сохранил, проанализировал, получилось! Фокусник, HawkEye спасибо. И всем за участие !
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |