יותר

האם יש דרך להשיג את הדרך הנוכחית של טבלה ממוינת כדי לחזור עליה?

האם יש דרך להשיג את הדרך הנוכחית של טבלה ממוינת כדי לחזור עליה?


יש לי כלי ב- ArcObjects שאני עובד עליו היכןבלחיצה()שיטה מוצאת את השורה הנוכחית בטבלת התכונות הפעילות (לא הבחירה, אלא השורה שבה יש את הקראט משמאל העמודה השמאלית ביותר), משנה את השורה הנוכחית לשורה הבאה בטבלת התכונות, בוחרת את התכונה הזו ו ואז מסננת אליו (בעצם זהה ללחיצה ימנית על שורה ובחירה באפשרות "העבר אל" מתפריט ההקשר).

אם אני משתמש בסמן חיפוש או בערכת בחירה (או מתוךIFeatureLayerאו הIDisplayTableממשקים) כדי לחזור על הרשימה, היא רק מחזירה את השורות בסדר מספרי לפיObjectIDשדה. ברוב המקרים זה מתאים למטרות שלנו, וכרגע זה עובד אצלי.

עם זאת, במקרים בהם הטבלה ממוינת לפי שדה אחר לפני כן (נניח, שדה שם), האם יש דרך להציב סמן או בחירה המכבדת מיון שנעשה על השולחן לפני הפעלת הכלי שלי?

הסתכלתי עלITableSort, אבל נראה שזה חל על ביצוע סוג במקום מה שאני רוצה לעשות. אני מפעיל כעת ArcGIS 10.2.1.


אין דרך לבדוק כיצד ממוינים חלונות המאפיינים. אף אחד מIAttributeWindowאוֹIAttributeWindowEventsיש שיטות לקבל את אפשרויות המיון הנוכחיות של חלונות המאפיינים.

אתה יכול להשתמשIQueryFilterDefinition2אוֹITableSort(מועדף).

שימו לב, הITableSortניתן להשתמש בממשק רק למיון טבלאות בעלות שדה ObjectID.

IQueryFilterDefinition2

IQueryFilter queryFilter = חדש QueryFilterClass (); // השתמש ב PostfixClause כדי לסדר את האלפביתית את הערכה לפי שם. IQueryFilterDefinition2 queryFilterDef = (IQueryFilterDefinition2) queryFilter; queryFilterDef.PostfixClause = "הזמנה לפי שם שדה"; סמן var = table.Search (queryFilter, false);

ITableSort עם ISelectionSet ((בהנחה שיש לך featureClass, selSet, fieldName)

var table = (ITable) featureClass; ITableSort tableSort = New TableSortClass (); tableSort.Fields = "fieldName"; tableSort.SelectionSet = selSet; tableSort.set_Ascending ("fieldname", true); tableSort.Sort (null); IEnumIDs enumIDs = tableSort.IDs; while ((id = enumIDs.Next ())! = -1) {var feat = featureClass.GetFeature (id); // פאן להישג}

אני לא חושב שיש דרך לעשות זאת. במצבים אלה, בדרך כלל עדיף לא להניח הנחות לגבי סדר הטבלה ותמיד לבצע את המיון הרצוי לפני חזרה דרך הטבלה.

כפי שהצעת, ITableSort יעשה זאת.


צפו בסרטון: Եղանակը սեպտեմբերի 10-ին