1

HP ALM からフィールドを取得しています。しかし、ここではフィールド名を取得するのに苦労しています。

 BugFactory bf = (BugFactory)qcc.BugFactory;
 List bugs = (List)bf.NewList(bf.Filter.Text); 

string b5 = Convert.ToString(bg["BG_PROJECT"]); 
string b6 = Convert.ToString(bg["BG_STATUS"]);
string b7 = Convert.ToString(bg["BG_TARGET_CYCLE"]); 

最初の 2 つは結果を取得するのに問題なく、最後のステートメントは無効なフィールド名エラーを示しています。

フィールド名を取得する正しい方法を教えてください。

ありがとうございました。

4

2 に答える 2

1

この質問に対する私の回答を参照してください。

HP Quality Center のフィールド名

ファクトリ オブジェクトを指定してフィールドをプログラムで決定する方法を示すサンプル コードが含まれています。完璧なスタートである BugFactory オブジェクトがあります。

于 2014-07-29T10:13:23.390 に答える
0

ファクトリのフィルターを使用できます。たとえば、次は AuditRecord 用で、同じものを BugFactory で使用できます。

AuditRecordFactory auditLog = this.ALMConnection.AuditRecordFactory as AuditRecordFactory;
var auditLogFilter = auditLog.Filter as ITDFilter;
//Get the field list
List fieldList= auditLogFilter.Fields;

更新:ここで完全な回答を見つけました https://stackoverflow.com/a/24368561/3915468 :)

@TheArtTrooperは次の方法で良い答えを提供します

private void ExploreFactoryFieldDefinitions(IBaseFactory factory)
    {
        List fields = factory.Fields;

        foreach (TDField field in fields)
        {
            FieldProperty field_property = (FieldProperty)field.Property;

            if (field_property.IsRequired)
            {
                Log(String.Format("User Label: {0}\n", field_property.UserLabel));
                Log(String.Format("User Column Type: {0}\n", field_property.UserColumnType));
                Log(String.Format("DB Column Name: {0}\n", field_property.DBColumnName));
                Log(String.Format("DB Column Type: {0}\n", field_property.DBColumnType));
                Log(String.Format("DB Table Name: {0}\n", field_property.DBTableName));
            }
        }
    }
于 2016-10-05T15:02:08.380 に答える