|
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 12
|
||||||
Как сделать, чтобы при точном совпадении всех атрибутов entity в таблицу печаталась одна строка с количеством этих entity ?16.02.2014, 14:31. Показов 2689. Ответов 23
Метки нет (Все метки)
В программировании я всего месяц – потребовалось написать плагин на RUBY. Написал , все работает. Но хочется «красоты». Помогите дописать…
Имеется фрагмент кода (для выделенных элементов (entity) получает и печатает в таблицу их атрибуты :
Как сделать, чтобы при точном совпадении всех атрибутов entity (имени, длины, ширины, толщины и площади) в таблицу печаталась одна строка с атрибутами и количеством (quantity) этих entity. Сейчас строки выводятся для каждого entity (в колонку "количество" печатается quantity=1) сам не смогу, знаний не хватает (в начале поста про месяц не шутил, а код нужен) в идеале было бы здорово если бы в последней строке печаталась общая площадь, но это уже "хотелки"... Добавлено через 1 час 22 минуты
0
|
||||||
| 16.02.2014, 14:31 | |
|
Ответы с готовыми решениями:
23
Как сделать чтобы Entity всегда двигался ко второму Entity
Сделать так, чтобы каждая строка печаталась на новом листе |
|
227 / 225 / 23
Регистрация: 30.01.2013
Сообщений: 720
|
|
| 16.02.2014, 16:50 | |
|
не понятно зачем было изобретать свой велосипед если к Ruby есть замечательный XML Builder, поставить и спокойно создавать валидный xml.
0
|
|
|
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 12
|
|
| 16.02.2014, 17:35 [ТС] | |
|
0
|
|
|
227 / 225 / 23
Регистрация: 30.01.2013
Сообщений: 720
|
|
| 16.02.2014, 17:39 | |
|
По теме раз хочется красоты, сотрите этот код, подставьте гем - Builder и сделайте на нем, будет правильно и красиво.
0
|
|
|
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 12
|
||
| 16.02.2014, 18:52 [ТС] | ||
|
я так понимаю что вместо того чтобы печатать в таблицу значения в виде: |Имя|количество|длина|ширина|толщина|пло щадь | мне нужно собрать для каждого entity массив значений (Имя, длина, ширина, толщина, площадь ) потом их сравнить и если они совпадают для разных entity, то увеличит значение quantity на 1 если нет просто запомнить, а потом все вывести в таблицу. знаний не хватает написать код.
0
|
||
|
2 / 2 / 0
Регистрация: 15.11.2013
Сообщений: 20
|
|
| 17.02.2014, 13:50 | |
|
...
0
|
|
|
2 / 2 / 4
Регистрация: 17.02.2014
Сообщений: 18
|
||||||||||||||||||||||||||||||||
| 17.02.2014, 14:10 | ||||||||||||||||||||||||||||||||
|
Конкретно с вашей предметной областью (sketchup) я не знаком. Предполагаю, что есть более изящные пути решения вопроса. Ну да ладно. Перейдем конкретно к вашей просьбе
(я буду опускать часть вашего кода, сориентируетесь...)
Теперь нам нужно посчитать сколько раз повторяются элементы массива result. Для этого воспользуемся итератором и стандартным типом данных hash. Хешу в ruby можно задать значение по умолчанию, воспользуемся этим.
Остался только вывод. Работу с xml оставим на вашей совести ) и на ваше усмотрение
Кликните здесь для просмотра всего текста
Добавлено через 18 минут В строку
Верно так
0
|
||||||||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 12
|
|||||||||||||||||
| 17.02.2014, 19:35 [ТС] | |||||||||||||||||
|
код работает до 14 строки ... до неё в массив result записываются данные (я поставил перед 14 строкой проверку с выводом значений result[i] и длины, ширины и т.д. ... остальные строки до конца закомментировал)
проверка последовательно выводит эти данные (все нормально) Но после строки 14
проверял также: за 14 строкой поставил
Подскажите в чем проблема ?
0
|
|||||||||||||||||
|
2 / 2 / 4
Регистрация: 17.02.2014
Сообщений: 18
|
||||||||||||||||
| 17.02.2014, 20:38 | ||||||||||||||||
|
Там очепятка
0
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 12
|
||||||
| 17.02.2014, 22:15 [ТС] | ||||||
|
olegmlsn, Благодарю вас за помощь исправил на такой код :
Так вот внутри метода recursive_count все работает я получаю массив result. Но он не передается для вычисления hash_result и печати таблицы. я каюсь что не написал сразу, что вычисление и печать вызываются из другой функции. Так вот внутри метода recursive_count все работает я получаю массив result. Но он не передается для вычисления hash_result и печати таблицы. Буду признателен если вы найдете время исправить ошибки (впрочем я также пойму ваш отказ - тяжело работать с дилетантами).
0
|
||||||
|
2 / 2 / 4
Регистрация: 17.02.2014
Сообщений: 18
|
|||||||||||||||||||||||||||||||
| 18.02.2014, 10:15 | |||||||||||||||||||||||||||||||
Сообщение было отмечено goga63 как решение
Решение
Начнем пожалуй с метода (или функции, как угодно)
Методы имеют области видимости. За пределами метода переменной result не существует. Теперь возвращаемое значение. Метод возвращает результат последней строки кода или то что вы возвращаете с помощью return. Перепишем метод и разместим его определение выше вызова.
К сожалению я не могу пройтись по всем замечаниям. Вам нужно учить ruby, полноценно с книгами или другими материалами. Лишним он вам не будет. Установите ruby локально пробуйте части своего кода выполнять в irb. Вот что у меня получилось
0
|
|||||||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 12
|
||||||
| 18.02.2014, 12:37 [ТС] | ||||||
|
olegmlsn, Спасибо вам за терпеливое и подробное объяснение.
...наверное последний вопрос возможно ли передать уже заполненный массив result в другой метод в качестве аргумента ? "...При передаче аргументов в метод в виде массива мы также должны использовать оператор *, который превращает массив в набор значений..." например возможен ли такой код :
0
|
||||||
|
2 / 2 / 4
Регистрация: 17.02.2014
Сообщений: 18
|
|||||||
| 18.02.2014, 13:29 | |||||||
Сообщение было отмечено goga63 как решение
Решение
Передача массива целиком будет работать и без звездочки. Звездочка, если я не ошибаюсь, для произвольного количества аргументов
А откуда цитата?
0
|
|||||||
|
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 12
|
|||||||||||
| 18.02.2014, 14:36 [ТС] | |||||||||||
|
Цитата отсюда :
http://rubydev.ru/2011/04/ruby... ode-block/ правильно ли я понял , что пи такой записи метод test получит массив result и сможет с ним работать :
или если два метода друг за другом в первом получаем result во втором обрабатывает (код условный)
0
|
|||||||||||
|
2 / 2 / 4
Регистрация: 17.02.2014
Сообщений: 18
|
||||||||||||||
| 18.02.2014, 14:54 | ||||||||||||||
Считайте, что в определении метода код ничего не делает и не содержит до тех пор пока вы его не вызовите
0
|
||||||||||||||
|
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 12
|
|||||||||||||||||
| 18.02.2014, 15:43 [ТС] | |||||||||||||||||
|
olegmlsn, могу я с вами как то связаться ? Если сочтете это возможным моя почта {удалено}
Добавлено через 36 минут я даже тупее, чем думал...
Добавлено через 4 минуты правка Добавлено через 21 секунду правка Добавлено через 24 секунды правка Добавлено через 1 минуту Так ?
0
|
|||||||||||||||||
|
2 / 2 / 4
Регистрация: 17.02.2014
Сообщений: 18
|
||||||
| 18.02.2014, 15:54 | ||||||
|
Вот так
0
|
||||||
|
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 12
|
||||||
| 18.02.2014, 17:22 [ТС] | ||||||
|
olegmlsn, Точно последний вопрос я уже понял сам не сделаю...
разобрал весь код ( вычисления не касающиеся печати убрал из примера) -код рабочий. помогите из write_piece_to_file убрать печать данных (для каждой детали) и перенести в указанное место для всех деталей
правка
0
|
||||||
|
2 / 2 / 4
Регистрация: 17.02.2014
Сообщений: 18
|
|
| 19.02.2014, 10:27 | |
|
Давайте весь код
0
|
|
|
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 12
|
||
| 19.02.2014, 11:10 [ТС] | ||
|
а могу я его на обменник положить ?
0
|
||
| 19.02.2014, 11:10 | |
|
Помогаю со студенческими работами здесь
20
При выборке одна и та же строка выводится несколько раз. Как сделать чтобы один? Entity Component System, можно ли доработать класс Entity Entity Framework. Удаление entity без удаления связей Entity framework 4.1: как обновить таблицу Entity framework, как связать класс и таблицу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|