Заменить в спецификации вспомогательный объект на базовый

Автор Andreych, 16.12.18, 19:06:46

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Andreych

Можно ли заменить в спецификации вспомогательные объекты на базовые, не удаляя и не создавая заново эти объекты?
Может где-то можно просто переключить 1 на 0 :) Вряд ли конечно.
А если создавать новый базовый объект, то  как сделать так, чтобы он создался точно в том же месте, где был вспомогательный?
Вот подошел я итератором к очередному вспомогательному объекту, на всякий случай получил от него все нужные тексты для создания нового объекта: формат, номер позиции, обозначение, наименование, кол-во. А дальше как действовать?

Дмитрий22

Только удалением и созданием заново.
А почему он не должен оказаться на том же месте если включена автосортировка?
Для создания объекта код примерно такой(API5):
    specification.ksSpcObjectCreate("", 0, ChangeRazdel.Instance.NumberofRazdel, 0, 0, 0);
                                        specification.ksSetSpcObjectColumnText(1, 1, 0, format);
                                        specification.ksSetSpcObjectColumnText(2, 1, 0, zona);
                                        specification.ksSetSpcObjectColumnText(3, 1, 0, pos);
                                        specification.ksSetSpcObjectColumnText(4, 1, 0, Obozz);
                                        specification.ksSetSpcObjectColumnText(5, 1, 0, Naimen);
                                        specification.ksSetSpcObjectColumnText(6, 1, 0, kolvo);
                                        specification.ksSetSpcObjectColumnText(7, 1, 0, prim);
                                        specification.ksSetSpcObjectColumnText(8, 1, 0, massa);
specification.ksSpcObjectEnd();


API7 вроде не захотел заполнять доп. колонки.

Andreych

А как узнать для текущего объекта номер раздела спецификации для создания нового объекта в том же разделе?
В SDK нашел как узнать название раздела в текстовом виде, а надо то в виде целого числа - 10, 20, 30.
Имеется только целое число obj - текущее значение итератора по вспомогательным объектам.
      obj:=iter.ksMoveIterator('F');
А из него надо как-то получить номер раздела. Не могу найти как.

Andreych

Номер раздела можно получить из текстового названия типа  if s='Детали' then n:=20;
Новые базовые объекты создаются в конце раздела. Теперь не могу понять как удалить старый вспомогательный объект.
  obj:=iter.ksMoveIterator('N');
  DeleteObject(obj); - это не работает.
А как правильно удалить строку тогда?

Andreych


pr0100

+ Благодарностей: 1

Andreych

Я свою функцию конвертирования объектов сделал таки.
А тот макрос у меня не работает, наверное я как-то не так использую.
Строки копирует и вставляет в другой раздел хорошо (но правда вставляет уже как вспомогательные, "базовость" теряется).
А вот конвертация в базовые объекты не работает, все остается как было. У меня Python 3 вроде. Ну да ладно. Все равно хороший макрос.
Я вроде поискал сегодня по форуму такую задачу конвертирования, вдруг кто озадачивался уже, но не нашел и кинулся сам писать :)