private void btnRemoveJoining_Click(object sender, EventArgs e) { IDisplayTable table = this.itable_0 as IDisplayTable; ITable displayTable = table.DisplayTable; if (displayTable is IRelQueryTable) { string str = this.JoiningDataList.SelectedItem.ToString(); while (displayTable is IRelQueryTable) { IRelQueryTable table3 = displayTable as IRelQueryTable; if ((table3.DestinationTable as IDataset).Name == str) { break; } displayTable = table3.SourceTable; } if (displayTable is IRelQueryTable) { IRelQueryTable table5 = displayTable as IRelQueryTable; displayTable = table5.SourceTable; IDisplayRelationshipClass class2 = this.itable_0 as IDisplayRelationshipClass; if (displayTable is IRelQueryTable) { table5 = displayTable as IRelQueryTable; IRelQueryTableInfo info = table5 as IRelQueryTableInfo; class2.DisplayRelationshipClass(table5.RelationshipClass, info.JoinType); } else { class2.DisplayRelationshipClass(null, esriJoinType.esriLeftInnerJoin); } this.JoiningDataList.Items.Clear(); if (this.OnJoinAndRelationChange != null) { this.OnJoinAndRelationChange(); } this.method_1(this.itable_0); if (this.JoiningDataList.Items.Count > 0) { this.btnRemoveAllJoining.Enabled = true; } else { this.btnRemoveAllJoining.Enabled = false; } } } }
private void processJoins(IFeatureLayer flyr) { IDisplayTable dispTbl = flyr as IDisplayTable; ITable tbl = dispTbl.DisplayTable; IRelQueryTable rqt; ITable destTable; IDataset dataset; string destName; string destServer; string destInstance; string destUser; string res = ""; string joinType; // Holt iterativ alle Joins! while (tbl is IRelQueryTable) { rqt = (IRelQueryTable)tbl; IRelQueryTableInfo rqtInfo = (IRelQueryTableInfo)rqt; IRelationshipClass relClass = rqt.RelationshipClass; destTable = rqt.DestinationTable; if (rqtInfo.JoinType == esriJoinType.esriLeftInnerJoin) { joinType = "esriLeftInnerJoin"; } else { joinType = "esriLeftOuterJoin"; } dataset = (IDataset)destTable; destName = dataset.Name; destServer = dataset.Workspace.ConnectionProperties.GetProperty("server").ToString(); destInstance = dataset.Workspace.ConnectionProperties.GetProperty("instance").ToString(); destUser = dataset.Workspace.ConnectionProperties.GetProperty("user").ToString(); res = res + "(" + destName + "/" + destServer + "/" + destInstance + "/" + destUser + "/" + relClass.OriginPrimaryKey + "/" + relClass.OriginForeignKey + "/" + joinType + ")"; tbl = rqt.SourceTable; } joininfo = res; }