Обсуждение:Связи таблиц справочника контактов
Материал из GedeminWiki
(Различия между версиями)
Kaa (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
| − | + | Справочник "Организации" импортировал следующим образом: | |
| − | + | ||
procedure TfmWorks.ExportGedeminActionExecute(Sender: TObject); | procedure TfmWorks.ExportGedeminActionExecute(Sender: TObject); | ||
var | var | ||
| Строка 8: | Строка 8: | ||
dtGD_CONTACT.Active := True; | dtGD_CONTACT.Active := True; | ||
dtGD_COMPANY.Active := True; | dtGD_COMPANY.Active := True; | ||
| − | + | ||
with dtWorks do // dtWorks - датасет, данные из которого импортирую | with dtWorks do // dtWorks - датасет, данные из которого импортирую | ||
begin | begin | ||
| Строка 19: | Строка 19: | ||
dtGD_CONTACT.FBN('NAME').AsString := dtWorks.FBN('ORG_NAME').AsString; | dtGD_CONTACT.FBN('NAME').AsString := dtWorks.FBN('ORG_NAME').AsString; | ||
dtGD_CONTACT.FBN('ZIP').AsString := dtWorks.FBN('ORG_POST').AsString; | dtGD_CONTACT.FBN('ZIP').AsString := dtWorks.FBN('ORG_POST').AsString; | ||
| − | + | ||
dtGD_CONTACT.FBN('EMAIL').AsString := dtWorks.FBN('ORG_EMAIL').AsString; | dtGD_CONTACT.FBN('EMAIL').AsString := dtWorks.FBN('ORG_EMAIL').AsString; | ||
dtGD_CONTACT.FBN('RESERVED').AsInteger := dtWorks.FBN('ORG_NO').AsInteger; | dtGD_CONTACT.FBN('RESERVED').AsInteger := dtWorks.FBN('ORG_NO').AsInteger; | ||
// ORG_NO - PK старой таблицы, для переноса связией по FK с другими таблицами | // ORG_NO - PK старой таблицы, для переноса связией по FK с другими таблицами | ||
dtGD_CONTACT.Post; | dtGD_CONTACT.Post; | ||
| − | + | ||
temp_NAME := dtGD_CONTACT.FBN('NAME').AsString; // Переоткрываю датасет dtGD_CONTACT, | temp_NAME := dtGD_CONTACT.FBN('NAME').AsString; // Переоткрываю датасет dtGD_CONTACT, | ||
dtGD_CONTACT.CloseOpen(False); // чтобы узнать, какой GD_CONTACT.ID | dtGD_CONTACT.CloseOpen(False); // чтобы узнать, какой GD_CONTACT.ID | ||
dtGD_CONTACT.Locate('NAME', temp_NAME, []); // присвоил триггер GD_BI_CONTACT | dtGD_CONTACT.Locate('NAME', temp_NAME, []); // присвоил триггер GD_BI_CONTACT | ||
| − | + | ||
dtGD_COMPANY.Insert; | dtGD_COMPANY.Insert; | ||
dtGD_COMPANY.FBN('CONTACTKEY').AsInteger := dtGD_CONTACT.FBN('ID').AsInteger; | dtGD_COMPANY.FBN('CONTACTKEY').AsInteger := dtGD_CONTACT.FBN('ID').AsInteger; | ||
| Строка 38: | Строка 38: | ||
end; | end; | ||
| − | + | Kaa (Brest) | |
Текущая версия на 12:10, 25 июня 2007
Справочник "Организации" импортировал следующим образом:
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)