Вывод значений повторяющихся границ ЧЕРЕЗ СТОЛБЕЦ

Тема в разделе "Шаблон вывода", создана пользователем CSVCS, 12 авг 2017.

  1. CSVCS

    CSVCS New Member Пользователи

    Регистрация:
    28 дек 2016
    Сообщения:
    42
    Добрый день! Подскажите, пожалуйста, возможно ли выводить значения повторяющихся границ парсинга не подряд друг за другом, а через один столбец?
    Такая необходимость вызвана большим количеством атрибутов товаров и особенностями модуля для импорта прайс-листа в БД интернет-магазина. Модуль присваивает значение атрибута атрибуту стоящему в колонке слева. Т.о. ПЛ должен иметь вид Атр1|Знач.арт1|Атр2|Знач.атр2 и т.д. Делать это через обычные границы - как-то громоздко получается в шаблоне вывода. Как это сделать через повторяющиеся границы?
     
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    2017-08-12_16-24-44.png
     
  3. CSVCS

    CSVCS New Member Пользователи

    Регистрация:
    28 дек 2016
    Сообщения:
    42
    Это я знаю. Наверно, не совсем понятно сформулировал вопрос. Если в качестве разделителя использовать CSVCS, то я могу получить только такую картину (символом "|" в данном случае я показываю разделение по столбцам):
    Атр1|Атр2|Атр3|Знач.арт1|Знач.атр2|Знач.атр3
    при этом Атр1|Атр2|Атр3| будут выводится одной повт. границей парсинга, затем Знач.арт1|Знач.атр2|Знач.атр3 - другой повт. границей парсинга.
    А мне надо, чтобы в результатах вывода они ЧЕРЕДОВАЛИСЬ.
    Можно, конечно спарсить так:
    Атр1#Знач.арт1|Атр2#Знач.атр2|Атр3#Знач.атр3 а потом в excel или OpenCalc применить инструмент "Текст по столбцам", но это лишнее движение.
     
    Последнее редактирование: 12 авг 2017
  4. CSVCS

    CSVCS New Member Пользователи

    Регистрация:
    28 дек 2016
    Сообщения:
    42
    В общем, нашел решение без лишних телодвижений. Сделал через одну повт. границу.
    Задал границу парсинга таким образом, чтобы результатом было: Атр(n)код...кодЗнач.арт(n). В настройках повт. границ в поле поиск|замена ввел: код{skip}код|[CSVCS] и в качестве разделителя границ тоже [CSVCS]. В результате на выходе получил то что нужно - Атр1|Знач.арт1|Атр2|Знач.атр2 и т.д.

    теперь встала новая задача: атрибутов у товаров разное количество. Можно поместить их в конец шаблона вывода, но проблема в том, что и Фото у товаров тоже разное количество!!!??? и ранее именно фото занимали место в хвосте...

    пока не придумал ничего лучше, как парсить атрибуты отдельным проектом и добавлять к первому cvs файлу.

    в идеале было бы добавить в программу функционал задания количества значений повт.границ парсинга.
    Например я знаю, что атрибутов у меня может быть от 1 до 8-ми, а фото 1 до 7-ми. Если можно было бы задать кол-во значений для Повт.гр.парсинга1 и Повт.гр.парсинга2, то я бы задал например 10 и мог бы вставлять эту повт.границу в любое место шаблона вывода и при этом столбцы бы не съезжали, просто бы оставалось разное количество пустых ячеек.

    Это реально было бы удобно.
     
    Последнее редактирование: 13 авг 2017
  5. aresa

    aresa Well-Known Member Пользователи

    Регистрация:
    17 окт 2015
    Сообщения:
    180
    Так ограничения повторяющихся границ есть. В настройках повторяющихся границ установите значение max какое вам нужно. Там просто по умолчанию 0 стоит
     
    Root нравится это.
  6. CSVCS

    CSVCS New Member Пользователи

    Регистрация:
    28 дек 2016
    Сообщения:
    42
    Попробую. Просто нужно не то что ограничение до 10 значений max, а чтобы всегда в результат 10 значений выводились, даже когда их скажем всего 3, просто чтобы остальные столбцы пустыми были. То есть, если я вставляю в шаблон вывод повт.гран.1 с 10-й ячейки например, то нужно чтобы следующая граница парсинга выводилась бы всегда в 20-ю ячейку. А не только так, что если значений 12, то в результатах их все равно будет только 10. Я так понимаю значение слова ОГРАНИЧЕНИЕ. А как это в программе, вечером проверю.
     
  7. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
  8. CSVCS

    CSVCS New Member Пользователи

    Регистрация:
    28 дек 2016
    Сообщения:
    42
    Спасибо. Да, действительно есть такая функция. Не увидел сразу. Но пока все равно не получается, даже с ней, решить вопрос с атрибутами.
    Не понял для чего это [GRAN1][CSVCS][GRAN2][CSVCS][GRAN3][CSVCS][GRAN4][CSVCS][GRAN5][CSVCS][GRAN6][CSVCS][GRAN7][CSVCS][GRAN8][VALUE]. У меня так или вообще значений границ не выводит, или выводит какую-то одну границу где-нибудь в середине цикла???
    Настроил вывод сейчас так:
    СКРИН.jpeg
    Замена участка кода на [CSVCS] нужна для того, чтобы значение атрибута попадало в следующий столбец за названием атрибута, а границы парсинга у меня такие, что в текст каждого цикла имеет вид Атр(n)код...кодЗнач.арт(n).
    Проблема осталась из-за того, что при таком подходе, сначала каждая граница занимает два столбца (из-за оператора [CSVCS] в самом тексте цикла после замены), а затем когда повторяющиеся вхождения в коде заканчиваются, функция MIN 10 добавляет только по одному пропуску на каждый "недостающий" до 10 цикл. Сложно словами описать, надеюсь меня поймут)

    Решил сделать так: атрибуты - в конец после фото, а к повт. гран. для фото применить MIN/MAX.

    Спасибо, за помощь.
     
    Root нравится это.
  9. OLEG15799

    OLEG15799 Member Пользователи

    Регистрация:
    8 окт 2019
    Сообщения:
    18
    Город:
    Воронеж
    Подскажите пожалуйста. Может кто разобрался. Как задать чтобы вывод после каждого цикла начинался через столбец. Например первый цикл столбцы АВ, второй CD и т.д. При этом количество строк каждого цикла не известно.
     
  10. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    Ссылки недоступны для гостей - повт.границы внутри повт. границ
     
    OLEG15799 нравится это.
  11. OLEG15799

    OLEG15799 Member Пользователи

    Регистрация:
    8 окт 2019
    Сообщения:
    18
    Город:
    Воронеж
    Спасибо. Изначально сделал все по этой аналогии, но проект получился сложнее с тремя повторами. Прочитал про макрос [PARENTCC]
    но у меня он не работает. Подставлял его за место PARENT. Скриншот прилагаю.
     

    Вложения:

    • 01.jpg
      01.jpg
      Размер файла:
      144,4 КБ
      Просмотров:
      18
  12. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Какая версия программы у вас? (Главное меню - справка - о программе).
     
  13. OLEG15799

    OLEG15799 Member Пользователи

    Регистрация:
    8 окт 2019
    Сообщения:
    18
    Город:
    Воронеж
    11.1.0001049 тип Ульти
     
  14. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    [PARENTCC] в ней должен работать.
     
  15. OLEG15799

    OLEG15799 Member Пользователи

    Регистрация:
    8 окт 2019
    Сообщения:
    18
    Город:
    Воронеж
    При подстановке выдает как на скриншоте. Прикладываю проект посмотрите пожалуйста.
     

    Вложения:

  16. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    У вас [PARENTCGRAN..], а нужно -> [PARENTGRAN..]
     
  17. OLEG15799

    OLEG15799 Member Пользователи

    Регистрация:
    8 окт 2019
    Сообщения:
    18
    Город:
    Воронеж
    Правильно изначально было [PARENTGRAN..] и все циклы шли друг за другом. А нужно чтобы было как в моем случае первый цикл ABCD,второй EFGH и т.д.
     
    Последнее редактирование: 19 окт 2019

Поделиться этой страницей