|
Подскажите как Собрать в строку в Массив | ☑ | ||
---|---|---|---|---|
0
Олеся999
19.05.15
✎
10:57
|
Подскажите пожалуйста как Собрать в строку в Массив? :)
Есть таблица такого вида : RefDes Type Value C124 C0402 100n C125 C0402 100n C126 C0402 22p C127 C0402 22p C128 C0402 22p C129 C0402 22p Должно выглядеть так: RefDes Type Value C124,C125 C0402 100n C126,C127,C128,C129 C0402 22p Подскажите пожалуйста как привести к такому виду ? |
|||
1
patria0muerte
19.05.15
✎
10:59
|
СКД?
|
|||
2
Господин ПЖ
19.05.15
✎
11:02
|
сношаться в скд или выводить отчет "руками"
|
|||
3
patria0muerte
19.05.15
✎
11:03
|
Да в СКД то особо сношаться не придется...
Type и Value как группировка, RefDes в ресурсы как Массив(RefDes) |
|||
4
Олеся999
19.05.15
✎
11:10
|
(1) (2)
это не в скд, а в ТабличнойЧасти ("тч_smd") Смысл такой : мы загружаем из экселя в эту "тч_smd" и получается что то вроде RefDes Type Value C124 C0402 100n C125 C0402 100n C126 C0402 22p C127 C0402 22p C128 C0402 22p C129 C0402 22p после чего нажимаем кнопку Сгрупировка и должно произойти: тч_smd.Очистить(); и загрузка уже сгруппированных значений такого вида: RefDes Type Value C124,C125 C0402 100n C126,C127,C128,C129 C0402 22p |
|||
5
Олеся999
20.05.15
✎
10:42
|
Нужно чтобы после нажатия кнопки "Скомпоновать" строки с идентичными MyData собирались в 1 строку.
http://lvkr.ru/f/fP4YuE/1024.jpg |
|||
6
FIXXXL
20.05.15
✎
10:47
|
Цикл по ТЧ
|
|||
7
Бубка Гоп
20.05.15
✎
10:53
|
(4) Запрос к этой таблице с ИТОГИ ПО спасут отца русской демократии
|
|||
8
Бубка Гоп
20.05.15
✎
10:54
|
(7) ну или в цикле перебираем, ищем, добавляем
|
|||
9
Бубка Гоп
20.05.15
✎
10:59
|
(8) т.е. берем и копируем это в другую таблицу,
к ней применяем свернуть("Type, Value"), чтобы получить набор неповторяющихся сочетаний Type и Value, затем ее обходим в цикле, ищем все RefDes в исходной таблице для каждого набора Type и Value и собираем их в строку во второй |
|||
10
Олеся999
20.05.15
✎
11:00
|
Ну вот такую писала что бы разобрать строку
&НаСервере Функция РазложитьСтрокуВМассив(Знач Стр , Разделитель = ",") Экспорт МассивСтрок = Новый Массив(); Если Разделитель = " " Тогда Стр = СокрЛП(Стр); Пока 1=1 Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда МассивСтрок.Добавить(Стр); Возврат МассивСтрок; КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз-1)); Стр = СокрЛ(Сред(Стр,Поз)); КонецЦикла; Иначе ДлинаРазделителя = СтрДлина(Разделитель); Пока 1=1 Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда МассивСтрок.Добавить(Стр); Возврат МассивСтрок; КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз-1)); Стр = Сред(Стр,Поз+ДлинаРазделителя); КонецЦикла; КонецЕсли; КонецФункции Щас на оборот нужно собрать :) |
|||
11
D_E_S_131
20.05.15
✎
11:05
|
1. Из ТЧ в ТЗ.
2. ТЗ в запрос. 3. Запросом построить итоги по Type, Value. 4. ТЗ очистить. 5. Обходом выборок по группировкам заполнить ТЗ. 6. Из ТЗ в ТЧ. |
|||
12
Олеся999
20.05.15
✎
11:15
|
(11) типо во временную тз да?
|
|||
13
Таня-ученица
20.05.15
✎
11:16
|
Я бы выгрузила тч_smd в ТЗ тч_smd (отсторировала по первому столбцу), добавила столбец для меток,обошла ТЗ тч_smd в цикле на предмет равенства значений по двум соседним столбцам с простановкой меток и конкатенировала бы значения из первого столбца в переменную с разделяющей запятой. Значение переменной я бы записывала в новую ТЗ с идентичной структурой.
Всё просто, не так ли, мальчики? ;) |
|||
14
Олеся999
20.05.15
✎
11:19
|
меня интересует сам факт перебора строк и сгруппировки
|
|||
15
sergeev-ag-1977
20.05.15
✎
11:29
|
Упорядочить 1 таблицу по Value и перенести в новую таблицу и не греть голову обычным циклом! За 20 минут уже давно можно было сделать.
|
|||
16
D_E_S_131
20.05.15
✎
11:31
|
(12) типо да
(13) Запрос это все умеет делать сам, но если хочется, то можно и "конкатенировать". |
|||
17
Олеся999
20.05.15
✎
12:01
|
(16) (15) может хоть примерчики есть какие-нибудь ?
|
|||
18
Любопытная
20.05.15
✎
12:02
|
(14) А что не получается?
|
|||
19
D_E_S_131
20.05.15
✎
12:14
|
|
|||
20
Таня-ученица
20.05.15
✎
12:58
|
// Запрос это все умеет делать сам, но если хочется, то можно и "конкатенировать".
Запрос вам только итоги посчитал, а конкатенируете вы сами в своём примере: //СтрТЗ.Рефдес = СтрТЗ.Рефдес + ?(ПустаяСтрока(СтрТЗ.Рефдес), "", ", ") + СтрТЗ.Рефдес; |
|||
21
DirecTwiX
20.05.15
✎
13:01
|
Можно и без запроса. Скопировать тз с двумя последними колонками, свернуть, добавить колонку для массива. Обойти оригинальную ТЧ, находя строки из новой тз и добавляя туда элемент первой колонки ТЧ.
|
|||
22
D_E_S_131
20.05.15
✎
13:43
|
(20) Ну да, стоит признаться что "конкатенирую". (*покраснев*)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |