• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Вернемся к подразделам спецификации

Автор Maxagg, 09.09.09, 14:07:59

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

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

Maxagg

Застрял на чтении подразделов спецификации
Разделы могу читать а подразделы нет.

Вот мой кусок кода
  sp:=ksspecification(d2d.GetSpecification);
  st:=ksSpcStyleParam(kompas.GetParamStruct(ko_SpcStyleParam));
  st.Init;
  st1:=ksSpcStyleSectionParam(kompas.GetParamStruct(ko_SpcStyleSectionParam));
  st1.Init;
  sm:=ksSpcTuningSectionParam(kompas.GetParamStruct(ko_SpcTuningSectionParam));
  sm.Init;
  sp.ksGetSpcStyleParam('',1,st,ALLPARAM);
  button1.Caption:=st.layoutName1;
  ar:=ksdynamicarray(st.GetArrSection);
  for i:=0 to(ar.ksGetArrayCount-1)do
  begin
  ar.ksGetArrayItem(i,st1);
  if st1.sectionName='Стандартные изделия' then
  sn:=st1.number;
  end;
  sm:=ksSpcTuningSectionParam(st.GetTuning);
вот здесь я и завис, не могу понять как прочитать мне подразделы определенного раздела.
плиз помогите

Maxagg

как найти разделы, описано выше, немного исправив код сможете найти разделы спецификации листа.

чтобы определить разделы обращаемся к api7

var
  kompas:KompasObject;
  ia:iapplication;
  ikd:ikompasdocument;
  isds:ISpecificationDescriptions;
  isd:ISpecificationDescription;
  ist:ISpecificationTuning;
  istss:ISpecificationTuningSections;
  ists:ISpecificationTuningSection;
  isss:ispecificationsubsections;
  iss:ispecificationsubsection;
  disp : IDispatch;

procedure TForm1.Button1Click(Sender: TObject);
begin
  kompas:=KompasObject(GetActiveOleObject('Kompas.Application.5'));
  ia:=(kompas.ksGetApplication7)as IApplication;
  ikd:=ia.ActiveDocument;
  isds:=ikd.SpecificationDescriptions;
  isd:=isds.Item[0];
  form1.Caption:=isd.LayoutName;
  ist:=isd.SpecificationTuning;
  istss:=ist.Sections;
  ists:=istss.Item[4];
  isss:=ists.Subsections;
//memo1.lines.add(isss.item[1].name);//читаю название подраздела
//здесь задаю  подразделы
  iss:=isss.Add('dfgsdfg',1);
  ist.Update;
end;

P.S. Код работает если поместить спецификацию на лист, по другому компас не дает редактировать параметры спецификации

Maxagg

чтобы определить разделы обращаемся к api7

извиняюсь

чтобы определить подразделы обращаемся к api7