Esempio n. 1
0
        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;
                    }
                }
            }
        }
Esempio n. 2
0
        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;
        }