Приветствую!
Может кто подскажет чего мне делать???
Интересует следующее - есть цель получить ведомость отправочных марок с учетом сварных швов. Т.е. есть шаблон таблицы "требуется изготовить", который откатан тысячами чертежей, и вот хочу сделать отчет в эксель, чтобы масса марок считалась аналогичным алгоритмом, чтобы можно снимать отчет и получать 100% такой же результат как в сборочных чертежах.
Прикладываю скрины самого шаблона:
Как видно выведена строка "сборка", а уже из нее выходят второстепенные строки для предварительных расчетов, итог выводится в последней строке "деталь".
Так выглядит шаблон, если не скрывать строки и второстепенны поля значений:
И вот пытаюс сделать аналогично в отчете:
В принципе все работает, НО
почему не корректно считается полный вес сборки? Есть четкое значение суммы деталей - round(Sum("all_parts"), 0.1) и отдельно выводится нормально, есть формула швов, завязанная на заданном в свойствах проекта проценте швов - if Sum("Kolvo_det")<=1 then 0 else GetFieldFormula("all_assembly")/100*GetFieldFormula("weld") endif, вес тоже выводится правильно, ну и соответственно сумма двух значений - GetFieldFormula("all_assembly")+GetFieldFormula("mass_weld") и тут уже вес, умноженный втрое, т.к. сборок 3!
Если в выделенных проблемных зонах заменить GetFieldFormula на CopyFieldFormula все становится правильным, НО непонятно... одна строка, результаты для одной сборки, а сумма для трех... Почему так?
Ну и второй вопрос - даже когда все получается, атрибут строки - "деталь", поэтому в строку дополнительно не добавить, например, площадь сборки, т.к. это атрибут строки другого содержания. Может кто подскажет как собрать в одной строке результаты расчета на основании входящих в сборки деталей и атрибуты строки "сборка"? Есть подозрение, что может дело в иерархии строк и оператора типа StepOut... Но с этим пока непонятно...
Буду признателен если кто поможет . Возможно кто-то подскажет как более просто ввести учет массы швов в выборку
Масса швов в отчете ведомость отправочных марок Tekla
Re: Масса швов в отчете ведомость отправочных марок
по первому вопросу.. скорее всего у вас стоит суммирование выделенных красным значений.. в свойствах - выключите.
по второму.. из строки деталь можно обратиться к сборке добавляя префикс "ASSEMBLY." (так сказать поднимаясь выше по иерархии). в редакторе шаблонов эти атрибуты должны быть видны.. если у вас они не видны, значит у вас не правильно настроен редактор.
также можно использовать вместо второй строки "Деталь" строку "Сводка"
по второму.. из строки деталь можно обратиться к сборке добавляя префикс "ASSEMBLY." (так сказать поднимаясь выше по иерархии). в редакторе шаблонов эти атрибуты должны быть видны.. если у вас они не видны, значит у вас не правильно настроен редактор.
также можно использовать вместо второй строки "Деталь" строку "Сводка"
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн
Re: Масса швов в отчете ведомость отправочных марок Tekla
Тут давно все заработало.
Следующий вопрос.
хочу сделать плавающий шифр в одном заказе на основе изменяющегося поля "заголовок 2". Прописал 13 строк, все работает только почему то DP10, DP11, DP12, DP13 берет значение предназначенное для DP1.
Что я сделал не так???
if(find(GetValue("DRAWING.TITLE2"),"DP1") != -1) then
"Sub Contractor/Vendor Doc.Ref.3300-114SSH0022-C03-00001-01-D"
else
if(find(GetValue("DRAWING.TITLE2"),"DP2") != -1 ) then
"Sub Contractor/Vendor Doc.Ref.3300-114SSH0022-C03-00002-01-D"
else
if(find(GetValue("DRAWING.TITLE2"),"DP3") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-03-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP4") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-04-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP5") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-05-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP6") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-06-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP7") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-07-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP8") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-08-01-D-"GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP9") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-09-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP10") != -1) then
"3300-FWP1B-114-CS-KMD-08040-10-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP11") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-11-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP12") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-12-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP13") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-13-01-D-"+GetValue("...")
else
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
Следующий вопрос.
хочу сделать плавающий шифр в одном заказе на основе изменяющегося поля "заголовок 2". Прописал 13 строк, все работает только почему то DP10, DP11, DP12, DP13 берет значение предназначенное для DP1.
Что я сделал не так???
if(find(GetValue("DRAWING.TITLE2"),"DP1") != -1) then
"Sub Contractor/Vendor Doc.Ref.3300-114SSH0022-C03-00001-01-D"
else
if(find(GetValue("DRAWING.TITLE2"),"DP2") != -1 ) then
"Sub Contractor/Vendor Doc.Ref.3300-114SSH0022-C03-00002-01-D"
else
if(find(GetValue("DRAWING.TITLE2"),"DP3") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-03-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP4") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-04-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP5") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-05-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP6") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-06-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP7") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-07-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP8") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-08-01-D-"GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP9") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-09-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP10") != -1) then
"3300-FWP1B-114-CS-KMD-08040-10-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP11") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-11-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP12") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-12-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP13") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-13-01-D-"+GetValue("...")
else
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
Re: Масса швов в отчете ведомость отправочных марок Tekla
поменяйте очередность условий .. D13, D12, D11 и т.д.Forger писал(а):Тут давно все заработало.
Следующий вопрос.
хочу сделать плавающий шифр в одном заказе на основе изменяющегося поля "заголовок 2". Прописал 13 строк, все работает только почему то DP10, DP11, DP12, DP13 берет значение предназначенное для DP1.
Что я сделал не так???
if(find(GetValue("DRAWING.TITLE2"),"DP1") != -1) then
"Sub Contractor/Vendor Doc.Ref.3300-114SSH0022-C03-00001-01-D"
else
if(find(GetValue("DRAWING.TITLE2"),"DP2") != -1 ) then
"Sub Contractor/Vendor Doc.Ref.3300-114SSH0022-C03-00002-01-D"
else
if(find(GetValue("DRAWING.TITLE2"),"DP3") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-03-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP4") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-04-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP5") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-05-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP6") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-06-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP7") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-07-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP8") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-08-01-D-"GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP9") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-09-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP10") != -1) then
"3300-FWP1B-114-CS-KMD-08040-10-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP11") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-11-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP12") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-12-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP13") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-13-01-D-"+GetValue("...")
else
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн
Re: Масса швов в отчете ведомость отправочных марок Tekla
Не работает.
Все равно для всех значений DP1,DP11, DP12, DP13 выводится одно и тоже... Как прописано для DP1
Все равно для всех значений DP1,DP11, DP12, DP13 выводится одно и тоже... Как прописано для DP1
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: Масса швов в отчете ведомость отправочных марок Tekla
Сначала DP13,DP12,DP11,DP10 потом все остальное DP1.. и тд...
Так понятно?
Так понятно?
Автоматизируем хаос... Недорого...
Re: Масса швов в отчете ведомость отправочных марок Tekla
Благодарю! Сделал именно так и все заработало.Danila_ZLT писал(а):Сначала DP13,DP12,DP11,DP10 потом все остальное DP1.. и тд...
Так понятно?
Но все равно не понял, если честно, как работает эта функция... смещение. Чего она и куда смещает... Делал так, по аналогии с существующими шаблонами
Re: Масса швов в отчете ведомость отправочных марок Tekla
Функция "find(a, b)" определяет смещение от начала строки "b" в строке "a". Если строки "b" в строке "a" нет, то функция возвращает -1.Forger писал(а):Благодарю! Сделал именно так и все заработало.Danila_ZLT писал(а):Сначала DP13,DP12,DP11,DP10 потом все остальное DP1.. и тд...
Так понятно?
Но все равно не понял, если честно, как работает эта функция... смещение. Чего она и куда смещает... Делал так, по аналогии с существующими шаблонами
в вашем случае find(GetValue("DRAWING.TITLE2"),"DP1") находило в строке "DP11" строку "DP1" раньше, чем дело доходило до поиска строки "DP11". как-то так
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн
phpbb3 styles
Кто сейчас на конференции
Сейчас этот форум просматривают: Google [Bot] и 1 гость