Перейти к содержимому


Фотография

Pronest 2019 Отчет. Стоимость производства

Отчет ProNest

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 44

#21 OFFLINE   ater14

ater14

    Студент

  • Пользователи+
  • PipPip
  • 15 сообщений
  • Пол:Мужчина
  • Из:Минск

Отправлено 05 Сентябрь 2023 - 18:54

Добрый вечер, скорректировал, в вложении

расчетную стоимость за единицу умножаем  на 100, округляем до целого и делим на 100, получается фиксированное значение стоимости которое можно умножать и получать четкое число

Всё супер. Работает отлично. Спасибо большое

p.s Пора уже ввести огромную красную кнопку ДОНАТ)


  • 0

#22 OFFLINE   ater14

ater14

    Студент

  • Пользователи+
  • PipPip
  • 15 сообщений
  • Пол:Мужчина
  • Из:Минск

Отправлено 08 Сентябрь 2023 - 17:58

S.Martynov,
Здраствуйте. Может быть подскажете как побороть проблему: если в раскрой добавить несколько деталей из разного материала, то в расчёт идут значения из первой
детали ( стоимость реза за м.п. и стоимость мет., все остальные значения хорошо идут). Заранее спасибо.

Прикрепленные файлы

  • Прикрепленный файл  111.rar   70,09К   86 скачиваний

  • 0

#23 OFFLINE   PRоFeSSoR

PRоFeSSoR

    Магистр CNC

  • Продвинутый
  • PipPipPipPip
  • 312 сообщений
  • Пол:Мужчина
  • Интересы:FastReport, VBA
  • Из:_

Отправлено 09 Сентябрь 2023 - 06:56

Здравствуйте, исправил

Прикрепленные файлы

  • Прикрепленный файл  111.rar   69,46К   183 скачиваний

  • 1

#24 OFFLINE   ater14

ater14

    Студент

  • Пользователи+
  • PipPip
  • 15 сообщений
  • Пол:Мужчина
  • Из:Минск

Отправлено 11 Сентябрь 2023 - 12:54

Здравствуйте, исправил

Спасибо огромное  :worthy: !!!!!


  • 0

#25 OFFLINE   oderant

oderant

    Абитуриент

  • Пользователи+
  • Pip
  • 3 сообщений
  • Пол:Мужчина
  • Из:Витебск

Отправлено 23 Ноябрь 2023 - 18:14

Приветствую!

В этом деле новичок. Нужен простой отчет расчет стоимости раскроя: стоимость прокола х на количество проколов + стоимость длины реза... подскажите, где эти данные вводятся (стоимость)? Ничего не нашел...ProNest 2021

В стандартном отчете только стоимость материала, а откуда остальное берется вообще не мгу понять)


Сообщение отредактировал oderant: 23 Ноябрь 2023 - 19:21

  • 0

#26 OFFLINE   oderant

oderant

    Абитуриент

  • Пользователи+
  • Pip
  • 3 сообщений
  • Пол:Мужчина
  • Из:Витебск

Отправлено 30 Ноябрь 2023 - 19:33

Приветствую!

А есть ли у кого таблица настроек стоимости. Пробовал сделать свою, но прога "не видит" ее: в списке есть, но на расчет не влияет...Хочу понять, что делаю не так.


  • 0

#27 OFFLINE   45kdm

45kdm

    Абитуриент

  • Пользователи
  • Pip
  • 1 сообщений
  • Пол:Мужчина
  • Из:Курган

Отправлено 25 Декабрь 2023 - 14:04

Здравствуйте! За ранее извиняюсь за свою безграмотность в данном вопросе.

Приобрел лазерный станок. Как считать стоимость производства, не понимаю от слова совсем.

Подскажите "чайнику" куда все эти "иероглифы" вставляются?

Это где-то в корневых папках программы Пронест?

Очень нужна ваша помощь.


  • 0

#28 OFFLINE   SPAXD

SPAXD

    Абитуриент

  • Пользователи+
  • Pip
  • 4 сообщений
  • Пол:Мужчина
  • Из:Пермь

Отправлено 12 Февраль 2025 - 12:06

Добрый день!

Ну к примеру вы записали в <PlateMaterial."sRemarks"> не просто число а два числа или более через какой-нибудь разделитель например "/" тоесть запись в заметки материала 150,5/45,8 - два числа

формула для извлечения первого числа - [IIF(Pos('/',<PlateMaterial."sRemarks">)<>0,Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1),'')]

для второго числа - [IIF(Pos('/',<PlateMaterial."sRemarks">)<>0,Copy(<PlateMaterial."sRemarks">,Pos('/',<PlateMaterial."sRemarks">)+1,Length(<PlateMaterial."sRemarks">)-Pos('/',<PlateMaterial."sRemarks">)+1),'')]

эти формулы можно добавить в переменные определенные пользователем, обозвать как вам угодно, и использовать в отчете, только в переменные нужно записывать без квадратных скобок [ и ]

тоесть запись переменной:

имя переменной к примеру: цена_за_кг

значение переменной : IIF(Pos('/',<PlateMaterial."sRemarks">)<>0,Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1),'')


и в отчете уже используем как <цена_за_кг>

и вторую также добавляем в переменные ,б прописываем формулу


я к тому, что можно в одном поле записать несколько значений и разбить их на нужные

Здравствуйте, PRоFeSSoR!

 

Помогите пожалуйста с извлечением третьего числа... Уточнение: в строку записаны числа 11/22/33, причём может быть и 11/2/333 или 1/222/33... т.е., количество знаков между разделителями может быть разным.

 

Благодарю за внимание и ответ!


  • 0

#29 OFFLINE   Mondoshawan

Mondoshawan

    Абитуриент

  • Пользователи+
  • Pip
  • 8 сообщений
  • Пол:Мужчина
  • Из:Химки

Отправлено 02 Июнь 2025 - 18:58

Добрый день!

Ну к примеру вы записали в <PlateMaterial."sRemarks"> не просто число а два числа или более через какой-нибудь разделитель например "/" тоесть запись в заметки материала 150,5/45,8 - два числа

формула для извлечения первого числа - [IIF(Pos('/',<PlateMaterial."sRemarks">)<>0,Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1),'')]

для второго числа - [IIF(Pos('/',<PlateMaterial."sRemarks">)<>0,Copy(<PlateMaterial."sRemarks">,Pos('/',<PlateMaterial."sRemarks">)+1,Length(<PlateMaterial."sRemarks">)-Pos('/',<PlateMaterial."sRemarks">)+1),'')]

эти формулы можно добавить в переменные определенные пользователем, обозвать как вам угодно, и использовать в отчете, только в переменные нужно записывать без квадратных скобок [ и ]

тоесть запись переменной:

имя переменной к примеру: цена_за_кг

значение переменной : IIF(Pos('/',<PlateMaterial."sRemarks">)<>0,Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1),'')


и в отчете уже используем как <цена_за_кг>

и вторую также добавляем в переменные ,б прописываем формулу


я к тому, что можно в одном поле записать несколько значений и разбить их на нужные

 

Здравствуйте, многоуважаемый PRоFeSSoR!

 

Спасибо огромное за вашу идею. Крутое решение и все прекрасно работает.

 

Не сочтите за наглость, но не подскажете ли как на базе вашего решения прописать переменную, чтобы выборочно применяла одно из чисел прописанных в PlateMaterial."sRemarks", при выполнении требования.

 

К примеру, у меня записаны цены на резку за пог. метр в зависимости от общей длины реза в заказе 285/200//140///93////61, как правильно записать формулу, чтобы при общей длине реза до 100 п.м применялось первое значение, при длине от 100 до 500 п. м применялось второе после "/", при длине от 500 до 1000 п. м третье после "//", при длине от 1000 до 3000 - четвертое после "///", а свыше 3000 п.м пятое после "////"?

Как применить каждое из чисел я выяснил, это работает, но как заставить выбрать нужное при выполнении условия у меня никак не получается.

Я уже весь мозг сломал, перебрал различные варианты методом подбора, но без базовых знаний программирования у меня ничего не выходит (((

 

Заранее благодарен за помощь и +100500 вам в карму ))))


Сообщение отредактировал Mondoshawan: 02 Июнь 2025 - 19:40

  • 0

#30 OFFLINE   PRоFeSSoR

PRоFeSSoR

    Магистр CNC

  • Продвинутый
  • PipPipPipPip
  • 312 сообщений
  • Пол:Мужчина
  • Интересы:FastReport, VBA
  • Из:_

Отправлено 10 Июнь 2025 - 00:40

Здравствуйте, многоуважаемый PRоFeSSoR!

 

Спасибо огромное за вашу идею. Крутое решение и все прекрасно работает.

 

Не сочтите за наглость, но не подскажете ли как на базе вашего решения прописать переменную, чтобы выборочно применяла одно из чисел прописанных в PlateMaterial."sRemarks", при выполнении требования.

 

К примеру, у меня записаны цены на резку за пог. метр в зависимости от общей длины реза в заказе 285/200//140///93////61, как правильно записать формулу, чтобы при общей длине реза до 100 п.м применялось первое значение, при длине от 100 до 500 п. м применялось второе после "/", при длине от 500 до 1000 п. м третье после "//", при длине от 1000 до 3000 - четвертое после "///", а свыше 3000 п.м пятое после "////"?

Как применить каждое из чисел я выяснил, это работает, но как заставить выбрать нужное при выполнении условия у меня никак не получается.

Я уже весь мозг сломал, перебрал различные варианты методом подбора, но без базовых знаний программирования у меня ничего не выходит (((

 

Заранее благодарен за помощь и +100500 вам в карму ))))

 

 

Здравствуйте

 

создайте новую пользовательскую переменную, в значении переменной пропишите следующий код:

StrToFloat(IIF(Pos('////',<PlateMaterial."sRemarks">)<>0,IIF(<Nest."dCutLength">*<Nest."cTimesCut">*25.4/1000<100,Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1),IIF(<Nest."dCutLength">*<Nest."cTimesCut">*25.4/1000<500,Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2),IIF(<Nest."dCutLength">*<Nest."cTimesCut">*25.4/1000<1000,Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))+4,Pos('///',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))-4),IIF(<Nest."dCutLength">*<Nest."cTimesCut">*25.4/1000<3000,Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))+Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))+4,Pos('///',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))-4))+7,Pos('////',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))-Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))+4,Pos('///',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))-4))-7),Copy(<PlateMaterial."sRemarks">,Pos('////',<PlateMaterial."sRemarks">)+4,Length(<PlateMaterial."sRemarks">)))))),1))

Для избежания ошибок при отсутствии параметров в PlateMaterial."sRemarks", значение переменной будет равно 1


  • 1

#31 OFFLINE   PRоFeSSoR

PRоFeSSoR

    Магистр CNC

  • Продвинутый
  • PipPipPipPip
  • 312 сообщений
  • Пол:Мужчина
  • Интересы:FastReport, VBA
  • Из:_

Отправлено 10 Июнь 2025 - 23:51

Здравствуйте, PRоFeSSoR!

 

Помогите пожалуйста с извлечением третьего числа... Уточнение: в строку записаны числа 11/22/33, причём может быть и 11/2/333 или 1/222/33... т.е., количество знаков между разделителями может быть разным.

 

Благодарю за внимание и ответ!

 

Здравствуйте.

 

сделал для такого вида :  11/22//33    (два слеша перед третьим значением)  (количество знаков между разделителями может быть разным)

 

Создать переменные  value1, value2, value3   (названия переменных значения не имеет)

 

 

<value1>   StrToFloat(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))

 
 
<value2>   StrToFloat(Copy(<PlateMaterial."sRemarks">,Length(<p1>)+2,Pos('//',<PlateMaterial."sRemarks">)-Length(<p1>)-2))
 
 
<value3>   StrToFloat(Copy(<PlateMaterial."sRemarks">,Pos('//',<PlateMaterial."sRemarks">)+2,Length(<PlateMaterial."sRemarks">)))

Сообщение отредактировал PRоFeSSoR: 10 Июнь 2025 - 23:55

  • 0

#32 OFFLINE   PRоFeSSoR

PRоFeSSoR

    Магистр CNC

  • Продвинутый
  • PipPipPipPip
  • 312 сообщений
  • Пол:Мужчина
  • Интересы:FastReport, VBA
  • Из:_

Отправлено 11 Июнь 2025 - 10:55

 

Здравствуйте.

 

сделал для такого вида :  11/22//33    (два слеша перед третьим значением)  (количество знаков между разделителями может быть разным)

 

Создать переменные  value1, value2, value3   (названия переменных значения не имеет)

 

 

<value1>   StrToFloat(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))

 
 
<value2>   StrToFloat(Copy(<PlateMaterial."sRemarks">,Length(<p1>)+2,Pos('//',<PlateMaterial."sRemarks">)-Length(<p1>)-2))
 
 
<value3>   StrToFloat(Copy(<PlateMaterial."sRemarks">,Pos('//',<PlateMaterial."sRemarks">)+2,Length(<PlateMaterial."sRemarks">)))

 

 

 

исправил, имя первой переменной используется при расчете второй, забыл поменять:

 

<value1>     StrToFloat(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))
 
 
<value2>      StrToFloat(Copy(<PlateMaterial."sRemarks">,Length(<value1>)+2,Pos('//',<PlateMaterial."sRemarks">)-Length(<value1>)-2))
 
 
<value3>      StrToFloat(Copy(<PlateMaterial."sRemarks">,Pos('//',<PlateMaterial."sRemarks">)+2,Length(<PlateMaterial."sRemarks">)))

Сообщение отредактировал PRоFeSSoR: 11 Июнь 2025 - 10:55

  • 0

#33 OFFLINE   Mondoshawan

Mondoshawan

    Абитуриент

  • Пользователи+
  • Pip
  • 8 сообщений
  • Пол:Мужчина
  • Из:Химки

Отправлено 16 Июнь 2025 - 12:45

Здравствуйте

 

создайте новую пользовательскую переменную, в значении переменной пропишите следующий код:

StrToFloat(IIF(Pos('////',<PlateMaterial."sRemarks">)<>0,IIF(<Nest."dCutLength">*<Nest."cTimesCut">*25.4/1000<100,Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1),IIF(<Nest."dCutLength">*<Nest."cTimesCut">*25.4/1000<500,Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2),IIF(<Nest."dCutLength">*<Nest."cTimesCut">*25.4/1000<1000,Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))+4,Pos('///',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))-4),IIF(<Nest."dCutLength">*<Nest."cTimesCut">*25.4/1000<3000,Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))+Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))+4,Pos('///',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))-4))+7,Pos('////',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))-Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))+4,Pos('///',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))-4))-7),Copy(<PlateMaterial."sRemarks">,Pos('////',<PlateMaterial."sRemarks">)+4,Length(<PlateMaterial."sRemarks">)))))),1))

Для избежания ошибок при отсутствии параметров в PlateMaterial."sRemarks", значение переменной будет равно 1

 

Здравствуйте. 

 

Круто, спасибо за оперативный ответ.

Буду пробовать )))


  • 0

#34 OFFLINE   PRоFeSSoR

PRоFeSSoR

    Магистр CNC

  • Продвинутый
  • PipPipPipPip
  • 312 сообщений
  • Пол:Мужчина
  • Интересы:FastReport, VBA
  • Из:_

Отправлено 16 Июнь 2025 - 19:18

Рад помочь )

Это делал для раскроя, если нужно общим итогом, напишите, переделаю
  • 0

#35 OFFLINE   Mondoshawan

Mondoshawan

    Абитуриент

  • Пользователи+
  • Pip
  • 8 сообщений
  • Пол:Мужчина
  • Из:Химки

Отправлено 17 Июнь 2025 - 19:58

Здравствуйте

 

создайте новую пользовательскую переменную, в значении переменной пропишите следующий код:

StrToFloat(IIF(Pos('////',<PlateMaterial."sRemarks">)<>0,IIF(<Nest."dCutLength">*<Nest."cTimesCut">*25.4/1000<100,Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1),IIF(<Nest."dCutLength">*<Nest."cTimesCut">*25.4/1000<500,Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2),IIF(<Nest."dCutLength">*<Nest."cTimesCut">*25.4/1000<1000,Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))+4,Pos('///',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))-4),IIF(<Nest."dCutLength">*<Nest."cTimesCut">*25.4/1000<3000,Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))+Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))+4,Pos('///',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))-4))+7,Pos('////',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))-Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))+4,Pos('///',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-Length(Copy(<PlateMaterial."sRemarks">,Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))+2,Pos('//',<PlateMaterial."sRemarks">)-Length(Copy(<PlateMaterial."sRemarks">,1,Pos('/',<PlateMaterial."sRemarks">)-1))-2))-4))-7),Copy(<PlateMaterial."sRemarks">,Pos('////',<PlateMaterial."sRemarks">)+4,Length(<PlateMaterial."sRemarks">)))))),1))

Для избежания ошибок при отсутствии параметров в PlateMaterial."sRemarks", значение переменной будет равно 1

 

Здравствуйте, PRоFeSSoR.

 

При использовании нескольких разных материалов в одном задании на все детали подставляется только одно и то же число без разбивки по марке материала.

Если вместо <PlateMaterial."sRemarks"> в формуле указать <Material."sRemarks">, то подставляет значения соответственно используемому материалу в каждой детали.

С этим я разобрался, но вот с подстановкой чисел в зависимости от общей длины реза разобраться не получается (((

 

Почему-то при превышении 100 п. метров значение меняется на второе после "/", а вот далее не хочет ни в какую, при превышении 500 п. м и 1000 п. м все равно выводит второе значение после одного слеша, подставлять после "//" и "///" слешей не хочет, числа не подтягиваются.

Как прописать условие что >100 п.м, но <500 п.м брать значение 2, а при >501, но <1000 брать третье и так далее?

У меня не выходит ((( в любых интерпретациях выдает ошибку.

 

Можете подсказать как поправить сей баг?

Заранее благодарю.


  • 0

#36 OFFLINE   PRоFeSSoR

PRоFeSSoR

    Магистр CNC

  • Продвинутый
  • PipPipPipPip
  • 312 сообщений
  • Пол:Мужчина
  • Интересы:FastReport, VBA
  • Из:_

Отправлено 17 Июнь 2025 - 21:29

Добрый день

У себя прогонял все работает, в условии же уже прописан подсчет в зависимости от погонных метров реза

(этот вариант делал именно для раскроя, и еще многое зависит от места в каком используете эту переменную)

скиньте ваш отчет, адаптирую

в вложении пример моего отчета, переменная следующая после параметра "Списать"
  • 0

#37 OFFLINE   Mondoshawan

Mondoshawan

    Абитуриент

  • Пользователи+
  • Pip
  • 8 сообщений
  • Пол:Мужчина
  • Из:Химки

Отправлено 18 Июнь 2025 - 19:25

Добрый день

У себя прогонял все работает, в условии же уже прописан подсчет в зависимости от погонных метров реза

(этот вариант делал именно для раскроя, и еще многое зависит от места в каком используете эту переменную)

скиньте ваш отчет, адаптирую

в вложении пример моего отчета, переменная следующая после параметра "Списать"

 

Здравствуйте.

 

Ваш отчет не прикрепился (((

Прикладываю мою версию, но прошу сильно не смеяться, т.к. я делал его по наитию используя все что нашел на этом форуме.

 

Речь идет о переменной "цена резки" (подсветил красным в бэнде MasterData).

Прикрепленные файлы


  • 0

#38 OFFLINE   PRоFeSSoR

PRоFeSSoR

    Магистр CNC

  • Продвинутый
  • PipPipPipPip
  • 312 сообщений
  • Пол:Мужчина
  • Интересы:FastReport, VBA
  • Из:_

Отправлено 18 Июнь 2025 - 20:57

StrToFloat(IIF(Pos('////',<Material."sRemarks">)<>0,IIF(<Part."cNested">*<Part."dCutLength">*25.4/1000<100,Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1),IIF(<Part."cNested">*<Part."dCutLength">*25.4/1000<500,Copy(<Material."sRemarks">,Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))+2,Pos('//',<Material."sRemarks">)-Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))-2),IIF(<Part."cNested">*<Part."dCutLength">*25.4/1000<1000,Copy(<Material."sRemarks">,Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))+Length(Copy(<Material."sRemarks">,Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))+2,Pos('//',<Material."sRemarks">)-Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))-2))+4,Pos('///',<Material."sRemarks">)-Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))-Length(Copy(<Material."sRemarks">,Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))+2,Pos('//',<Material."sRemarks">)-Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))-2))-4),IIF(<Part."cNested">*<Part."dCutLength">*25.4/1000<3000,Copy(<Material."sRemarks">,Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))+Length(Copy(<Material."sRemarks">,Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))+2,Pos('//',<Material."sRemarks">)-Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))-2))+Length(Copy(<Material."sRemarks">,Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))+Length(Copy(<Material."sRemarks">,Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))+2,Pos('//',<Material."sRemarks">)-Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))-2))+4,Pos('///',<Material."sRemarks">)-Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))-Length(Copy(<Material."sRemarks">,Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))+2,Pos('//',<Material."sRemarks">)-Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))-2))-4))+7,Pos('////',<Material."sRemarks">)-Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))-Length(Copy(<Material."sRemarks">,Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))+2,Pos('//',<Material."sRemarks">)-Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))-2))-Length(Copy(<Material."sRemarks">,Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))+Length(Copy(<Material."sRemarks">,Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))+2,Pos('//',<Material."sRemarks">)-Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))-2))+4,Pos('///',<Material."sRemarks">)-Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))-Length(Copy(<Material."sRemarks">,Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))+2,Pos('//',<Material."sRemarks">)-Length(Copy(<Material."sRemarks">,1,Pos('/',<Material."sRemarks">)-1))-2))-4))-7),Copy(<Material."sRemarks">,Pos('////',<Material."sRemarks">)+4,Length(<Material."sRemarks">)))))),0))

Сообщение отредактировал PRоFeSSoR: 18 Июнь 2025 - 21:04

  • 0

#39 OFFLINE   Mondoshawan

Mondoshawan

    Абитуриент

  • Пользователи+
  • Pip
  • 8 сообщений
  • Пол:Мужчина
  • Из:Химки

Отправлено 18 Июнь 2025 - 21:03

Вы волшебник!!! Все заработало, спасибо )))

 

Поторопился ))) в первой позиции меняется, а в другой с другим материалом как было на втором значении, так и остается.


Сообщение отредактировал Mondoshawan: 18 Июнь 2025 - 21:10

  • 0

#40 OFFLINE   PRоFeSSoR

PRоFeSSoR

    Магистр CNC

  • Продвинутый
  • PipPipPipPip
  • 312 сообщений
  • Пол:Мужчина
  • Интересы:FastReport, VBA
  • Из:_

Отправлено 18 Июнь 2025 - 21:16

Вы волшебник!!! Все заработало, спасибо )))

 Рад, что смог помочь )


Поторопился ))) в первой позиции меняется, а в другой с другим материалом как было на втором значении, так и остается.

 

я тоже поторопился, тут нужен немного другой подход

 

на вашем отчете мне не проверить, тут куча ошибок выпадает, видимо не хватает каких то данных (проще с нуля сделать чем в этом разбираться), сделаю отдельный пример отчета а вы уж сами адаптируете к своему


Сообщение отредактировал PRоFeSSoR: 18 Июнь 2025 - 21:22

  • 0





Темы с аналогичным тегами Отчет ProNest

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных