stur Опубликовано: 7 октября, 2010 Share Опубликовано: 7 октября, 2010 Доброго времени дня всем...Возник такой вопрос - каким образом можно прописать в отчете-заявке на стеклопакеты размеры невостребованных пакетов таким образом, чтобы при совпадении размеров с погрешностью +- 3мм данная строка выделялась при предварительном просмотре? Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
plastkor Опубликовано: 8 октября, 2010 Share Опубликовано: 8 октября, 2010 Доброго времени дня всем...Возник такой вопрос - каким образом можно прописать в отчете-заявке на стеклопакеты размеры невостребованных пакетов таким образом, чтобы при совпадении размеров с погрешностью +- 3мм данная строка выделялась при предварительном просмотре? а как ты вообще получаешь список невостребованных СП? Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
stur Опубликовано: 8 октября, 2010 Автор Share Опубликовано: 8 октября, 2010 а как ты вообще получаешь список невостребованных СП? Внесу ясность : невостребованые - т.е. изготовленные, но по каким либо причинам зависшие на складе и как правило хранящиеся там длительное время, занимая место, мешая, и медленно приходя в негодность... Ну а список их можно получать разными способами. Самый банальный - послать кладовщика с рулеткой и листиком) Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
stur Опубликовано: 8 октября, 2010 Автор Share Опубликовано: 8 октября, 2010 (изменено) Вот наваял такой способ однако возник еще вопрос - не могу в этом же условии прописать и размер наоборот.. пробовал - and = 900,0 х 1000,0мм - не получается.? п.с тут конечно должно быть совпадение в размере 100% , без погрешности,.. пока Изменено 8 октября, 2010 пользователем stur Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
viollan Опубликовано: 11 октября, 2010 Share Опубликовано: 11 октября, 2010 Внесу ясность : невостребованые - т.е. изготовленные, но по каким либо причинам зависшие на складе и как правило хранящиеся там длительное время, занимая место, мешая, и медленно приходя в негодность...Ну а список их можно получать разными способами. Самый банальный - послать кладовщика с рулеткой и листиком) Все равно неясно как СО должна подбирать пакеты? чтоб подобрать в автоматическом режиме нужно иметь доступ к списку не ликвидных пакетов + учесть возможность поворота пакета. Проблема в фастрепорте (который в СО) получить доступ к неликвидным пакетам... Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
stur Опубликовано: 12 октября, 2010 Автор Share Опубликовано: 12 октября, 2010 Все равно неясно как СО должна подбирать пакеты? чтоб подобрать в автоматическом режиме нужно иметь доступ к списку не ликвидных пакетов + учесть возможность поворота пакета. Проблема в фастрепорте (который в СО) получить доступ к неликвидным пакетам... Ну например пишешь следующей строкой if [Элемент:Размер] = размер наоборот , then ... вот тебе и перевернутый размер , затем if [Элемент:Размер] = другой нужный тебе размер , then ... ну и т.д. Единственное нудобство - прописывать размер одного пакета надо два раза .. ну и пока не придумал как быть с +-3мм Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
viollan Опубликовано: 13 октября, 2010 Share Опубликовано: 13 октября, 2010 Ну например пишешь следующей строкой if [Элемент:Размер] = размер наоборот , then ... вот тебе и перевернутый размер , затем if [Элемент:Размер] = другой нужный тебе размер , then ... ну и т.д. Единственное нудобство - прописывать размер одного пакета надо два раза .. ну и пока не придумал как быть с +-3мм Да нет проблем с +- 3 мм. Вопрос в другом: 1. Сколько у тебя неликвидных пакетов? - 3-4 пакета не влом и руками перебрать, а 60 и более замучаешся в дизайнере отчетов вбивать. 2. Как ты будешь удалять подобранные? - Возможна ситуация когда один неликвидный пакет будет подобран 2 и более раз, а у тебя он один и наоборот. 3. Как будешь добавлять новые? - Оперативность внесения изменения в данный отчет как минимум каждый раз после заказа пакетов и после оканчания работы смены. Вывод: путь по которому пытаешься идти только сильней запутает и приведет к большему количеству ошибок. Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
stur Опубликовано: 13 октября, 2010 Автор Share Опубликовано: 13 октября, 2010 (изменено) Да нет проблем с +- 3 мм. Вопрос в другом: 1. Сколько у тебя неликвидных пакетов? - 3-4 пакета не влом и руками перебрать, а 60 и более замучаешся в дизайнере отчетов вбивать. 2. Как ты будешь удалять подобранные? - Возможна ситуация когда один неликвидный пакет будет подобран 2 и более раз, а у тебя он один и наоборот. 3. Как будешь добавлять новые? - Оперативность внесения изменения в данный отчет как минимум каждый раз после заказа пакетов и после оканчания работы смены. Вывод: путь по которому пытаешься идти только сильней запутает и приведет к большему количеству ошибок. Это все понятно... но не надо же вдаваться в крайности) Допустим у меня не 3-4 и не 60 пакетов, а к примеру 20. Тут уже руками особо не поперебираешь, если за месяц у тебя 1000шт пакетов в производстве. В удалении подобранных тоже не вижу проблем - 4 нажатия мыши - и ты редактируешь скрипт memo - хочешь удаляй - хочешь добавляй. Все равно совпадения не будут очень частыми)ъ Вы лучше поподробней про +-3 мм, как реализовать? Изменено 13 октября, 2010 пользователем stur Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
dvim Опубликовано: 13 октября, 2010 Share Опубликовано: 13 октября, 2010 Вы лучше поподробней про +-3 мм, как реализовать Вообще способ дикий, но.... Про 3 мм - надо просто разбить размер на ширину и высоту. Далее к ним уже, как к числам можно прибавлять габарит пакета и сравнивать с 3 мм... Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
stur Опубликовано: 13 октября, 2010 Автор Share Опубликовано: 13 октября, 2010 Вообще способ дикий, но.... Про 3 мм - надо просто разбить размер на ширину и высоту. Далее к ним уже, как к числам можно прибавлять габарит пакета и сравнивать с 3 мм... Думал про это, но тут возникнет проблема - будет подхватывать 'Есть на складе' при совпадении ТОЛЬКО ширины, или ТОЛЬКО высоты..., что не хорошо. Если можете привести пример скрипта , исключающего такой глюк - буду очень благодарен) Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
viollan Опубликовано: 14 октября, 2010 Share Опубликовано: 14 октября, 2010 Думал про это, но тут возникнет проблема - будет подхватывать 'Есть на складе' при совпадении ТОЛЬКО ширины, или ТОЛЬКО высоты..., что не хорошо. Если можете привести пример скрипта , исключающего такой глюк - буду очень благодарен) В моем представлении 20 пакетов это порядка 6-8 т.р., а проблемы вызванные таким решением могут стоить больше, ну да ладно пытался Вас отговорить... Вот пример (за основу взято разделение ширины и высоты от сюда): begin height := STRTOFLOAT(COPY([Элемент:Размер], 1, POS(' ', [Элемент:Размер]))); - высота пакета width := STRTOFLOAT(COPY([Элемент:Размер], (POS(' ', [Элемент:Размер])+2),(POS('мм.', [Элемент:Размер])-(POS(' ', [Элемент:Размер])+2)))); - ширина пакета a := 300; - высота неликвида b := 400; - ширина неликвида if ((height - 3) =< a <= (height + 3)) and ((width - 3)=< b <= (width +3)) then memo := 'Ура! Есть на складе!'; end Можно нарисовать и красивее... это пример. Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
stur Опубликовано: 14 октября, 2010 Автор Share Опубликовано: 14 октября, 2010 В моем представлении 20 пакетов это порядка 6-8 т.р., а проблемы вызванные таким решением могут стоить больше, ну да ладно пытался Вас отговорить...Вот пример (за основу взято разделение ширины и высоты от сюда): begin height := STRTOFLOAT(COPY([Элемент:Размер], 1, POS(' ', [Элемент:Размер]))); - высота пакета width := STRTOFLOAT(COPY([Элемент:Размер], (POS(' ', [Элемент:Размер])+2),(POS('мм.', [Элемент:Размер])-(POS(' ', [Элемент:Размер])+2)))); - ширина пакета a := 300; - высота неликвида b := 400; - ширина неликвида if ((height - 3) =< a <= (height + 3)) and ((width - 3)=< b <= (width +3)) then memo := 'Ура! Есть на складе!'; end Можно нарисовать и красивее... это пример. Отлично. Попробуем. Спасибо! Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
plastkor Опубликовано: 14 октября, 2010 Share Опубликовано: 14 октября, 2010 Отлично. Попробуем. Спасибо! Ты тогда попробуй следующее: 1. Создать отчет (тип Изделие) в котором создавался бы список СП с разбиением Ш и В СП и формированием сразу условия которое тебе предложили. 2. Результат сохранять в текстовик 3. Загружать в твой отчет этот текстовик и формировать Отчет по наличию имеющихся СП... Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
viollan Опубликовано: 14 октября, 2010 Share Опубликовано: 14 октября, 2010 3. Загружать в твой отчет этот текстовик и формировать Отчет по наличию имеющихся СП... Вот тут уже начинается интересно каким образом загрузить в отчет внешние данные? (стандартный FR это умеет, но не тот что в СО). Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
plastkor Опубликовано: 15 октября, 2010 Share Опубликовано: 15 октября, 2010 (изменено) Вот тут уже начинается интересно каким образом загрузить в отчет внешние данные? (стандартный FR это умеет, но не тот что в СО). ну раз он хочет вручную прописывать размеры для поиска, то лучше методом копирование результата из файла...(буфер обмена никто не отменял ) Попробовал...и у меня получилось... Изменено 15 октября, 2010 пользователем plastkor Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
stur Опубликовано: 16 октября, 2010 Автор Share Опубликовано: 16 октября, 2010 Отлично. Попробуем. Спасибо! Где-то ошибка в коде... вот такая штука получается Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
viollan Опубликовано: 18 октября, 2010 Share Опубликовано: 18 октября, 2010 Где-то ошибка в коде... Это не ошибка, это реализация , дело в том, что даже если пакет не подобрался FR выводит чистую строку. Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
viollan Опубликовано: 18 октября, 2010 Share Опубликовано: 18 октября, 2010 Попробовал...и у меня получилось... ну блесни мастерством коль не шутишь Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
stur Опубликовано: 18 октября, 2010 Автор Share Опубликовано: 18 октября, 2010 Это не ошибка, это реализация , дело в том, что даже если пакет не подобрался FR выводит чистую строку. Да не похоже. .. Скорее ошибка, т.к даже цифры одни на другие накладываются. Посмотрите пож-та.. Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
viollan Опубликовано: 19 октября, 2010 Share Опубликовано: 19 октября, 2010 Да не похоже. ..Скорее ошибка, т.к даже цифры одни на другие накладываются. Посмотрите пож-та.. На твоем скриншоте ничего не разобрать, а пустота это нормально. попробуй каждый раз как не удалось подобрать пакет выводить надпись (например: "неудача") и все станет ясно, а наложение это из-за плохого дизайна. Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
stur Опубликовано: 19 октября, 2010 Автор Share Опубликовано: 19 октября, 2010 На твоем скриншоте ничего не разобрать, а пустота это нормально. попробуй каждый раз как не удалось подобрать пакет выводить надпись (например: "неудача") и все станет ясно, а наложение это из-за плохого дизайна. Вот мой алгоритм действий: захожу в редактирование отчетов, нахожу свой отчет-заявку со стеклопакетами, открываю memo, где у меня [Элемент:Размер], добавляю код... Вот пример Затем выбираю изделие с ОДНИМ стеклопакетом и мне выдает следующее: Явно что-то с кодом.. Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
viollan Опубликовано: 20 октября, 2010 Share Опубликовано: 20 октября, 2010 (изменено) Вот мой алгоритм действий:захожу в редактирование отчетов, нахожу свой отчет-заявку со стеклопакетами, открываю memo, где у меня [Элемент:Размер], добавляю код... Явно что-то с кодом.. Для начала надо включать голову! Представленный код работает по очень простому алгоритму (который представлен для того, чтоб показать Вам простейший вариант решения задачи): Из строки вида "1000х2000 мм.", последовательно получаем 1000 - как число и 2000 соответственно и осуществляем проверку по заданному условию (+-3 мм.). Задачка на уровне "Hello world!" Далее, вот рабочий код: begin height := STRTOFLOAT(COPY([Элемент:Размер], 1, POS(' ', [Элемент:Размер]))); width := STRTOFLOAT(COPY([Элемент:Размер], (POS(' ', [Элемент:Размер])+2),(POS('мм.', [Элемент:Размер])-(POS(' ', [Элемент:Размер])+2)))); a := 1204; b := 644; if ((height - 4) < a ) and (a < (height + 4)) and ((width - 4) < b ) and (b < (width + 4)) then memo := 'Ура! Есть на складе!'; end Нужно понимать: 1. Что код писался на вскидку без проверки и Вам не помешало попытаться разобраться что-ж там происходит! 2. Судя по Вашим скриншотам вы не удосужились убрать поясняющие комментарии! (типа: "- высота пакета") как только синтаксический контроль пропустил это? 3. Да в коде действительно была ошибка, а именно: не работает сравнение "=<" и ">=" т.е. мне не понятно каким образом у Вас вообще запустился отчет? Продемонстрированная Вами проблема ни как не связана с ошибкой сравнения. 4. Какая версия СО? Тут нет телепатов! Вы знакомы с языком: Pascal или средой разработки Delphi? 5. Почему не обратились в тех. поддержку КСТ? Изменено 20 октября, 2010 пользователем viollan Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
plastkor Опубликовано: 20 октября, 2010 Share Опубликовано: 20 октября, 2010 На твоем скриншоте ничего не разобрать, а пустота это нормально. попробуй каждый раз как не удалось подобрать пакет выводить надпись (например: "неудача") и все станет ясно, а наложение это из-за плохого дизайна. Условия задаются с разбиением и обязательно в скобках и еще надо проверять не только размер но и тип СП, а то тебе надо 32 СП а прога покажет 24 СП с таким размером if ((height - 3)<= 1198) or (1198 >= (height + 3)) and ((width - 3)<=423) or (423 >= (width +3)) and ('4\10\4\10\4' = Артикул) then memo := Артикул+' '+size+ '- Есть' else memo:= Артикул+' '+size +'- Нету'; Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
stur Опубликовано: 20 октября, 2010 Автор Share Опубликовано: 20 октября, 2010 Для начала надо включать голову!Представленный код работает по очень простому алгоритму (который представлен для того, чтоб показать Вам простейший вариант решения задачи): Из строки вида "1000х2000 мм.", последовательно получаем 1000 - как число и 2000 соответственно и осуществляем проверку по заданному условию (+-3 мм.). Задачка на уровне "Hello world!" Далее, вот рабочий код: begin height := STRTOFLOAT(COPY([Элемент:Размер], 1, POS(' ', [Элемент:Размер]))); width := STRTOFLOAT(COPY([Элемент:Размер], (POS(' ', [Элемент:Размер])+2),(POS('мм.', [Элемент:Размер])-(POS(' ', [Элемент:Размер])+2)))); a := 1204; b := 644; if ((height - 4) < a ) and (a < (height + 4)) and ((width - 4) < b ) and (b < (width + 4)) then memo := 'Ура! Есть на складе!'; end Нужно понимать: 1. Что код писался на вскидку без проверки и Вам не помешало попытаться разобраться что-ж там происходит! 2. Судя по Вашим скриншотам вы не удосужились убрать поясняющие комментарии! (типа: "- высота пакета") как только синтаксический контроль пропустил это? 3. Да в коде действительно была ошибка, а именно: не работает сравнение "=<" и ">=" т.е. мне не понятно каким образом у Вас вообще запустился отчет? Продемонстрированная Вами проблема ни как не связана с ошибкой сравнения. 4. Какая версия СО? Тут нет телепатов! Вы знакомы с языком: Pascal или средой разработки Delphi? 5. Почему не обратились в тех. поддержку КСТ? У Вас что-то с нервами? я не знаком с Pascal и Delphi... Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
stur Опубликовано: 21 октября, 2010 Автор Share Опубликовано: 21 октября, 2010 begin height := STRTOFLOAT(COPY([Элемент:Размер], 1, POS(' ', [Элемент:Размер]))); width := STRTOFLOAT(COPY([Элемент:Размер], (POS(' ', [Элемент:Размер])+2),(POS('мм.', [Элемент:Размер])-(POS(' ', [Элемент:Размер])+2)))); a := 1204; b := 644; if ((height - 4) < a ) and (a < (height + 4)) and ((width - 4) < b ) and (b < (width + 4)) then memo := 'Ура! Есть на складе!'; end Этот код просто делает размер ячейки в которой прописан - размерами a х b. И связано это с heigh и width, поскольку при замене их на буквы d и с эффект изменения размера ячейки пропадает, но все равно не работает. Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
Рекомендованные сообщения
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.