К3-Мебель. Вопросы по работе в программе

Модераторы: Лабутин Сергей Евгеньевич, Алек(андр

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Gnus10 » 05 сен 2017 10:53

Евгений Сергеевич писал(а): Вы про какой прототип говорите? На примере какого прототипа показать?

Ну как вариант, пусть это будет ящик/группа ящиков. Утопленный или накладной, я думаю не имеет значение, так как правка происходит, скорей всего, в одном макросе. Возможно я ошибаюсь.
Gnus10
 
Сообщения: 20
Зарегистрирован: 14 авг 2014 19:49

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Евгений Сергеевич » 05 сен 2017 11:54

Хорошо, прототип группы ящиков.Это макрос Boxgrp.mac
Снимок.PNG

Там есть параметры типа и цвета кромки корпуса и типа и цвета кромки фасада
Снимок2.PNG

Открываем макрос Boxgrp.mac. Я использую редактор EditPlus с подсветкой синтаксиса. Но можно использовать любой текстовый редактор
Там видим строку:
Код: Выделить всё
macro ProtoPath+"boxGR.mac" ;

Это вызов макро BoxGr.mac. Открываем его
Там находим строки:
Код: Выделить всё
PanCKro=DbVar("Face_col",0);   //-- Цвет кромки корпуса
TypKroB=DbVar("Band",DbVar("KromDef",0)); //-- Тип кромки корпуса
Col_KFas=DbVar("Face_cof",0);   //-- Цвет кромки фасада
Band_F=DbVar("Band_F",0);       //-- Тип кромки фасада

Это читаются параметры кромок. Их читает функция DbVar. Первый параметр (тот,что в кавычках) - это имя параметра из библиотеки (вторая картинка). Второй (там 0) - умолчание, если такого нет. А присваиваются значения этих параметров переменным.

Далее смотрим ниже по тексту, где используются эти переменные. Это строки 112 и 154
Код: Выделить всё
  macro ProtoPath+"SetFasdN.mac" FacadMt fxt Col_KFas Band_F PrMatVs1 PrMatVs2 ;


В макрос установки параметров фасада для ящика передается значение переменной Band_F - тип кромки фасада.

Собственно, если нужно передать туда другое значение, Вы его и передаете. Но по факту здесь и так кромка корпуса и кромка фасада имеют разные значения.
Евгений Сергеевич
 
Сообщения: 15
Зарегистрирован: 28 июн 2010 15:40

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Gnus10 » 05 сен 2017 13:37

Да, они действительно имеют разные параметры, что в принципе видно и в карточке редактирования прототипа, НО при выборе "Лицевой" кромки в пользовательских умолчаниях, данная кромка устанавливается и на фасад и на корпус яшика(ов) и на все остальные панели, включая распашные двери... Вчера после Вашей наводки относительно NULLOUT=getvarinst(2,"Typ_Kro",Typ_Kro,0); немного поковырявшись нашел макрос BoxInit.mac отвечающий за "установку параметров прототипа Группа ящиков пользовательскими умолчаниями". Проблему решил следующим образом: NULLOUT=getvarinst(2,"Typ_Kro1",Typ_Kro,1); возможно, это не совсем правильное решение, но теперь кромка на ящики устанавливается в соответствии с умолчаниями прототипа.
Если есть более правильное решение, то с удовольствием о нем узнал бы :)
Gnus10
 
Сообщения: 20
Зарегистрирован: 14 авг 2014 19:49

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Евгений Сергеевич » 05 сен 2017 15:21

Наверно Вы говорите про команду установки дверей или про команду установки ящиков? Если так, то смотрим макрос установки ящиков. После указания ниши вызывается макрос BoxInit.mac. В Это макросе читается умолчание кромки:
Код: Выделить всё
NULLOUT=getvarinst(2,"Typ_Kro",Typ_Kro,0);          //-- Тип лицевой кромки

А дальше это прочитанное значение передается в прототип группы ящиков как для корпуса, так и для фасада:
Код: Выделить всё
  dummy=DbSetVar("BAND",Typ_Kro);
  dummy=DbSetVar("BAND_F",Typ_Kro);

И по этой причине и на корпусе и на фасаде одна и та же кромка. Чтобы кромка была разной, нужно, чтобы для фасада ставилась другая. Чтобы было что-то вроде:
Код: Выделить всё
  dummy=DbSetVar("BAND",Typ_Kro);
  dummy=DbSetVar("BAND_F",Drugaya_Kro);

А в переменную Drugaya_Kro нужно поместить умолчание для кромки фасадов. Как это сделать? Тут уже есть варианты.

1. Задать эту кромку явно в макросе BoxInit.mac. То есть написать что-то вроде
Код: Выделить всё
Drugaya_Kro=1234;

где 1234 - ID кромки из номенклатуры. Но это некрасивое решение, так как чтобы сменить умолчание, нужно будет лазить в макрос каждый раз

2. Добавить новое пользовательское умолчание в уже имеющийся список. Вообще-то, пользователям это делать нельзя, но если очень хочется, то можно. Я могу Вам скинуть описание команд, которые 'то делают. Но тут уж все на Ваш страх и риск, поскольку неумелое использование может нарушить работоспособность системы и восстановить его будет трудно. Но это - красивое решение.

Итак, допустим, Вы добавить в пользовательские умолчания новое умолчание "Тип кромки фасада" и назначите на него переменную "Drugaya_Kro". После этого Вам нужно будет в макросе BoxInit.mac это умолчание прочитать. То есть вставит строку:
Код: Выделить всё
NULLOUT=getvarinst(2,"Drugaya_Kro",Drugaya_Kro,0);          //-- Тип лицевой ФАСАДА кромки

А потом передать прочитанное значение в прототип ящика
Код: Выделить всё
  dummy=DbSetVar("BAND_F",Drugaya_Kro);


Ну вроде и все.
Евгений Сергеевич
 
Сообщения: 15
Зарегистрирован: 28 июн 2010 15:40

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Gnus10 » 05 сен 2017 15:56

Буду признателен если скинете список команд для добавления нового пользовательского умолчания и если не сложно несколько слов про то где оно добавляется. При этом я, конечно, понимаю что все изменения на мой страх и риск.
Спасибо за уделенное время и столь подробные ответы.
Gnus10
 
Сообщения: 20
Зарегистрирован: 14 авг 2014 19:49

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Евгений Сергеевич » 05 сен 2017 17:22

Описание у меня в PDF, а его сюда выкладывать нельзя. Администрация форума не разрешает. Давайте свою электронку, я отправлю по почте
Евгений Сергеевич
 
Сообщения: 15
Зарегистрирован: 28 июн 2010 15:40

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Gnus10 » 05 сен 2017 17:53

Отправил в личку, но сообщение не уходит. gnus1012 сабака gmail.com
Gnus10
 
Сообщения: 20
Зарегистрирован: 14 авг 2014 19:49

Пред.

Вернуться в К3-Мебель. Программа для производства и продажи мебели.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron