2016-09-27 2 views
1

私は、dargとdropによって、EAの1つのパッケージから別のパッケージに30,000以上の要素を移動しました。 私が使用して宛先パッケージの数をチェックしようとすると、今のC#アドインを使用して:それは-32101として来ているEnterprise Architect:Package.Elements.countが負になりますか?

package.Elements.Count 

。 どうすれば可能ですか?

私は3つの異なるステレオタイプの3種類の要素を持っています。各タイプの要素の範囲(開始インデックス終了インデックス)を取得するにはどうすればよいですか?

私が使用して要素の各タイプの数を取得しようとしています:

for (short i = 0; i < 0-package.Elements.Count; i++) 
        { 
         if ((package.Elements.GetAt(i).Stereotype)=="Implementation-Data-Type") 
         { 
          impl_count=impl_count+1; 
         } 
         else if ((package.Elements.GetAt(i).Stereotype)=="Implementation-Data-Type-Element") 
         { 
          ele_count=ele_count+1; 
         } 
         else if ((package.Elements.GetAt(i).Stereotype)=="Sw-Data-Def-Props") 
         { 
          sw_count = sw_count+1; 
         } 
        } 

が、EAはこれで応答を停止しますか? また、各タイプの要素の開始インデックスと終了インデックスはどのようにして見つけることができますか?

+0

データ型shortの範囲は-32768〜32767で、オーバーフローのようです。 package.Elements.Countもshort型ですか? –

答えて

1

shortは、16ビットを使用してその値を保持し、-32,768〜32,767の値を持つことができます。

残念ながら、EAはshortを使用してPackageとElementの数を返します。したがって、パッケージに含まれるパッケージまたは要素のほとんどは32,767です。その後、-32,768にロールオーバーします。

これはEA SDKの外観上の制限です。

回避策

  • あなたは可能性がサブパッケージ、それら30,000要素とそれぞれにグループあなたの要素を。
  • EAファイルをXMLにエクスポートしてXMLで操作できます。
+0

ありがとう!それは役に立ちました。 – Akanksha

関連する問題