Приветствую форумчане!
Есть две таблицы. Необходимо связать определенные ячейки этих таблиц.
Прилагаю код:
using (Transaction tr = db.TransactionManager.StartTransaction())
{
Table tbl = new Table();
tbl.TableStyle = db.Tablestyle;
/*
//формируем и заполняем таблицу
*/
tbl.Position = new Point3d(intShagSetkiX * (intPosColumnInModel - 1) + 20.0, -intShagSetkiY * (intPosRowInModel - 1) + 262.0, 0.0);
tbl.GenerateLayout();
BlockTableRecord sp = tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;
sp.AppendEntity(tbl);
tr.AddNewlyCreatedDBObject(tbl, true);
for (int n = 0; n < intKolRowsTable; n++)
tbl.Cells[n, 15].Contents[0].Formula = "=Sum(J" + Convert.ToString(n + 1) + ":N" + Convert.ToString(n + 1) + ")";
//создаем вторую таблицу
Table tbl1 = new Table();
tbl1.TableStyle = db.Tablestyle;
/*
формируем ячейки второй таблицы
*/
tbl1.Position = new Point3d(intShagSetkiX * (intPosColumnInModel - 1) + 20.0, -intShagSetkiY * (intPosRowInModel - 1) + 26.0, 0.0);
tbl1.GenerateLayout();
sp = tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;
sp.AppendEntity(tbl1);
tr.AddNewlyCreatedDBObject(tbl1, true);
Field field = new Field("%<\\AcExpr (Table(%<\\_ObjId " + tbl.ObjectId.OldIdPtr.ToString() + ">%).P3)>%");
ObjectId id = tbl1.SetField(field);
tr.AddNewlyCreatedDBObject(field, true);
tbl1.Cells[0, 1].FieldId = id;
field = new Field("%<\\AcExpr (Table(%<\\_ObjId " + tbl.ObjectId.OldIdPtr.ToString() + ">%).P2)>%");
id = tbl1.SetField(field);
tr.AddNewlyCreatedDBObject(field, true);
tbl1.Cells[1, 1].FieldId = id;
field = new Field("%<\\AcExpr (Table(%<\\_ObjId" + tbl.ObjectId.OldIdPtr.ToString() + ">%).Evaluate(Sum(P3:P11)))>%");
id = tbl1.SetField(field);
tr.AddNewlyCreatedDBObject(field, true);
tbl1.Cells[2, 2].FieldId = id;
tr.Commit();
}
Проблема в строках 33-46.
При обработке одного поля (любого, например, строки 33-36) программа работает корректно, но как только я хочу использовать связь трех полей, то во второй таблице (tbl1) первые два поля вообще пустые а третье поле вываливает "###". В третьем поле увидел что ObjectId не соответствует ObjecId исходной таблицы, думаю что связано это с методом AddNewlyCreatedDBObject
Подскажите в чем проблема
Я