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

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

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

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

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

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

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

Лоцман ПЛМ Добавить описание к объекту.

Автор Максим, 20.03.08, 10:53:10

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

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

Максим

Здраствуйте!!!
Прошу помощи у тех кто работает с Лоцман  PLM.
Немогу программно добавить описание к объекту (например "папка")
Если кто-то этим уже занимался или знает как это делается, напишите пожалуйста. Желательно если будет кусок кода.(Язык программирования не важен)
Заранее юлагодарен.

Кок

 :um:
Здесь надо пользоваться вариантным массивом. Сам не делал, надобности не было. но при беглом взгляде можно легко увидеть что без вариантного массива не обойтись.
Советую посмотреть в DelphiWorld, там много полезного.

YorikER

//---Загружает RTF текст из атрибута связи в TRichEdit--------------------------
procedure LinkImageAttrToRichEdit(inID: integer; stAttrName: string; edtRTF: TRichEdit; LDCON: TDCOMConnection);
var
  strContent: TStream;
begin
  with TClientDataSet.Create(nil) do
  try
    Data :=LDCOM.AppServer.GetAttrImageValueById(0, stAttrName, inID,inRC,stEM);
    if inRC<>0 then ShowMessage(stEM)
    else
    if Locate('_NAME', stAttrName, []) then begin
      strContent := CreateBlobStream(FieldByName('_IMAGE'), bmRead);
      try edtRTF.Lines.LoadFromStream(strContent);
      finally strContent.Free; end;
    end;
  finally Free; end;
end;
//---Загружает RTF текст из атрибута объекта в TRichEdit------------------------
procedure ImageAttrToRichEdit(inID: integer; stAttrName: string; edtRTF: TRichEdit; LDCON: TDCOMConnection);
var
  strContent: TStream;
begin
  with TClientDataSet.Create(nil) do
  try
    Data := LDCOM.AppServer.GetAttrImageValueById(inID, stAttrName, 0,inRC,stEM);
    if inRC<>0 then ShowMessage(stEM)
    else
    if Locate('_NAME', stAttrName, []) then begin
      strContent := CreateBlobStream(FieldByName('_IMAGE'), bmRead);
      try edtRTF.Lines.LoadFromStream(strContent);
      finally strContent.Free; end;
    end;
  finally Free; end;
end;
//---То-же для преобразования RTF текста в Variant-данные-----------------------
function RtfToVariant(RTF: TRichEdit): Variant;
var
  MS: TMemoryStream;
begin
  MS := TMemoryStream.Create;
  try
    RTF.Lines.SaveToStream(MS);
    MS.Seek(0,soFromBeginning);
    Result := VarArrayCreate([0,MS.Size-1],varByte); //создаем массив
    MS.ReadBuffer(VarArrayLock(Result)^,MS.size);    //читаем из потока в массив
    VarArrayUnLock(Result);
  finally MS.Free; end;
end;

Максим

 :-))) :-))) :-)))
Спасибо огромное, все работает!!!
Таким людям памятник при жизни надо поставить!!!

YorikER

Спасибо за памятник... Не дождетесь!!! Если что, обращайтесь... У нас довольно большой опыт в ЛОЦМАН API (www.infnt.ru)