|
Как определить уровень группировки Excel (VB) | ☑ | ||
---|---|---|---|---|
0
PQT
26.01.13
✎
06:34
|
Вопрос Как при получен иерархических данных из Excel определить их уровень(вложенность) оставили без решения ((
|
|||
1
PQT
26.01.13
✎
06:35
|
Импортирую следующим способом, с большинством прайсов было все ок, но в очередном не у всех Групп есть Подгруппы
|
|||
2
PQT
26.01.13
✎
06:35
|
ТекГруппа1 = Неопределено;
ТекГруппа2 = Неопределено; ТекГруппа3 = Неопределено; ТекГруппаФикЗнаетКакогоУровня2 = Неопределено; ТекГруппаФикЗнаетКакогоУровня3 = Неопределено; Для Строка = ТекИндексы.ПерваяСтрока по КоличествоСтрок цикл Индикатор = Строка; СтрокаДанных = ВременнаяТаблица.Добавить(); СтрокаДанных.КодПоставщика = СтрЗаменить(Sheet.Cells(Строка,НастройкиКолонок.КодПоставщика).Value, Символы.НПП, "")+СуффиксКода; СтрокаДанных.Наименование = СокрЛП(Sheet.Cells(Строка,НастройкиКолонок.Наименование).Value); Если СтрокаДанных.Наименование = "" Тогда Продолжить; КонецЕсли; Если СтрокаДанных.КодПоставщика = СуффиксКода Тогда // значит группа Если ТекГруппаФикЗнаетКакогоУровня3 = Неопределено Тогда // * ******* уровень 1 ТекГруппаФикЗнаетКакогоУровня3 = СтрокаДанных.Наименование; ИначеЕсли ТекГруппаФикЗнаетКакогоУровня2 = Неопределено Тогда // ***** уровень 2 ТекГруппаФикЗнаетКакогоУровня2 = ТекГруппаФикЗнаетКакогоУровня3; ТекГруппаФикЗнаетКакогоУровня3 = СтрокаДанных.Наименование; Иначе // ************ уровень 3 ТекГруппа1 = ТекГруппаФикЗнаетКакогоУровня2; ТекГруппа2 = ТекГруппаФикЗнаетКакогоУровня3; ТекГруппа3 = СтрокаДанных.Наименование; ТекГруппаФикЗнаетКакогоУровня2 = Неопределено; ТекГруппаФикЗнаетКакогоУровня3 = Неопределено; КонецЕсли; ВременнаяТаблица.Удалить(СтрокаДанных); Продолжить; ИначеЕсли (Не ТекГруппаФикЗнаетКакогоУровня3 = Неопределено)и(Не ТекГруппаФикЗнаетКакогоУровня2 = Неопределено) Тогда ТекГруппа2 = ТекГруппаФикЗнаетКакогоУровня2; ТекГруппа3 = ТекГруппаФикЗнаетКакогоУровня3; ТекГруппаФикЗнаетКакогоУровня2 = Неопределено; ТекГруппаФикЗнаетКакогоУровня3 = Неопределено; ИначеЕсли (Не ТекГруппаФикЗнаетКакогоУровня3 = Неопределено) Тогда ТекГруппа3 = ТекГруппаФикЗнаетКакогоУровня3; ТекГруппаФикЗнаетКакогоУровня3 = Неопределено; КонецЕсли; СтрокаДанных.Группа1 = ТекГруппа1; СтрокаДанных.Группа2 = ТекГруппа2; СтрокаДанных.Группа3 = ТекГруппа3; Если ИспользоватьФильтрГрупп Тогда Если Не КэшГруппИсключений.Найти(СтрокаДанных.Группа2) = Неопределено Тогда ВременнаяТаблица.Удалить(СтрокаДанных); Продолжить; КонецЕсли; КонецЕсли; Попытка СтрокаДанных.Цена = Число(СтрЗаменить(Sheet.Cells(Строка,НастройкиКолонок.Цена).Value, Символы.НПП, "")); Исключение СтрокаДанных.Цена = 0; КонецПопытки; СтрокаДанных.ОстатокПоставщика = СокрЛП(Sheet.Cells(Строка,НастройкиКолонок.ОстатокПоставщика).Value); ОбработкаПрерыванияПользователя(); КонецЦикла; КонецЕсли; |
|||
3
PQT
26.01.13
✎
06:37
|
если в вижл бейсике можно получить уровень группы, код бы значительно оптимизировался)
|
|||
4
PQT
26.01.13
✎
06:38
|
В указанной выше ветке был вопрос "Зачем?", так вот отвечаю:
Справочник 1 - содержит прайсы поставщиков, Справочник 2 - наша номенклатура в которую товары попадают после настройки пользователями структуры каталогов. |
|||
5
PQT
26.01.13
✎
06:43
|
т.е. после настройки соответствия выгрузки товаров каталогов из справочника 1 в справочник 2)
|
|||
6
PQT
26.01.13
✎
06:58
|
Или второй вопрос: Как при "сплошном" расположении групп определить уровень в ситуации когда некоторые группы не имеют подгрупп?
|
|||
7
PQT
26.01.13
✎
07:07
|
вроде нашел, Sheet.Cells(Строка).OutlineLevel - но почемуто не работает(
Ошибка при получении значения атрибута контекста |
|||
8
PQT
26.01.13
✎
07:13
|
ВСЕ! СООБРАЗИЛ!! Sheet.Rows(Строка).OutlineLevel
|
|||
9
PQT
26.01.13
✎
07:13
|
ТЕМА ЗАКРЫТА СПАСИБО ЗА ВНИМАНИЕ))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |