Обсуждение:Связи таблиц справочника контактов

Материал из GedeminWiki
Перейти к: навигация, поиск

Справочник "Организации" импортировал следующим образом:

 procedure TfmWorks.ExportGedeminActionExecute(Sender: TObject);
 var
   temp_NAME: AnsiString;
 begin
   dbGedemin.Connected := True;
   dtGD_CONTACT.Active := True;
   dtGD_COMPANY.Active := True;

   with dtWorks do	// dtWorks - датасет, данные из которого импортирую
   begin
     First;
     while not(EOF) do
     begin
       dtGD_CONTACT.Insert;
       dtGD_CONTACT.FBN('CONTACTTYPE').AsInteger := 3;      // 3 - Клиент
       dtGD_CONTACT.FBN('PARENT').AsInteger := 147002232;   // 0 - папка "Организации"
       dtGD_CONTACT.FBN('NAME').AsString := dtWorks.FBN('ORG_NAME').AsString;
       dtGD_CONTACT.FBN('ZIP').AsString := dtWorks.FBN('ORG_POST').AsString;

       dtGD_CONTACT.FBN('EMAIL').AsString := dtWorks.FBN('ORG_EMAIL').AsString;
       dtGD_CONTACT.FBN('RESERVED').AsInteger := dtWorks.FBN('ORG_NO').AsInteger;
         // ORG_NO - PK старой таблицы, для переноса связией по FK с другими таблицами  
       dtGD_CONTACT.Post;

       temp_NAME := dtGD_CONTACT.FBN('NAME').AsString;     // Переоткрываю датасет dtGD_CONTACT, 
       dtGD_CONTACT.CloseOpen(False);                      // чтобы узнать, какой GD_CONTACT.ID
       dtGD_CONTACT.Locate('NAME', temp_NAME, []);         // присвоил триггер GD_BI_CONTACT

       dtGD_COMPANY.Insert;
       dtGD_COMPANY.FBN('CONTACTKEY').AsInteger := dtGD_CONTACT.FBN('ID').AsInteger;
       dtGD_COMPANY.FBN('FULLNAME').AsString := dtWorks.FBN('ORG_FNAME').AsString;;
       dtGD_COMPANY.Post;
       Next;
     end;
   end;
 end;

Kaa (Brest)

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты