Застрял на чтении подразделов спецификации
Разделы могу читать а подразделы нет.
Вот мой кусок кода
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);
вот здесь я и завис, не могу понять как прочитать мне подразделы определенного раздела.
плиз помогите
как найти разделы, описано выше, немного исправив код сможете найти разделы спецификации листа.
чтобы определить разделы обращаемся к 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. Код работает если поместить спецификацию на лист, по другому компас не дает редактировать параметры спецификации
чтобы определить разделы обращаемся к api7
извиняюсь
чтобы определить подразделы обращаемся к api7