Обсуждение:Связи таблиц справочника контактов
Материал из 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)