次の方法で共有


Windows プロジェクトの ComboBox コントロールの値の設定

ここでは、埋め込みでないレポートのリストを ComboBox コントロールに設定するコードを記述します。getReports() ヘルパー メソッドを使用して、Crystal Reports Web サービスからレポートをリストを生成し、次にそのリストを ComboBox コントロールにバインドします。

Web サイトの場合は、「Web サイトの DropDownList コントロールの値の設定」を参照してください。

  1. Windows フォームを開きます。

  2. [表示]メニューの[コード]をクリックします。

  3. System.IO 名前空間、System.Collections 名前空間、および System.Web.services 名前空間のために、"Imports"[Visual Basic] または "using"[C#] 宣言をクラスの先頭(クラス署名の上)に追加します。

``` vb
Imports System.IO
Imports System.Collections
Imports System.Web.Services
```

``` csharp
using System.IO;
using System.Collections;
using System.Web.Services
```
  1. Form1_Load イベント ハンドラの内部で、getReports() ヘルパー メソッドを使用して Web サービスからレポートの一覧を取得します。その結果を reports 配列に割り当てます。

    Dim myReports As ArrayList = getReports()
    
    ArrayList reports = getReports();
    
  2. 次の行で、ArrayList オブジェクトをインスタンス化します。

``` vb
Dim myArrayList As ArrayList = New ArrayList()
```

``` csharp
ArrayList arrayList = new ArrayList();
```
  1. 次に、reports の各要素によってループする For Each ループを作成します。
``` vb
For Each myPath As String In myReports
Next
```

``` csharp
foreach (string path in reports)
{
}
```
  1. 次のブロックでは、文字列操作メソッドを使用して各レポートの名前からファイル パスを削除し、文字列リテラルを伴うエスケープ文字で置換します。これらの行を For Each ループの内部に挿入します。
``` vb
Dim myReportNamePrefix As Integer = myPath.LastIndexOf("/") + 1
Dim myReportNameSufix As Integer = myPath.LastIndexOf("?")
Dim myReportNameLength As Integer = myReportNameSufix - myReportNamePrefix
Dim myReportName As String = myPath.Substring(myReportNamePrefix, myReportNameLength)
myReportName = myReportName.Replace("%20", " ")
```

``` csharp
int reportNamePrefix = path.LastIndexOf(@"/") + 1;
int reportNameSufix = path.LastIndexOf(@"?");
int reportNameLength = reportNameSufix - reportNamePrefix;
string reportName = path.Substring(reportNamePrefix, reportNameLength);
reportName = reportName.Replace("%20", " ");
```
  1. さらに For Each ループの内部で、arrayList に切り詰められたレポート名を追加するコードを 1 行追加します。
``` vb
myArrayList.Add(myReportName)
```

``` csharp
arrayList.Add(reportName);
```
  1. For Each ループの外部で、ArrayList インスタンスを DropDownList コントロールの dataSource プロパティに割り当てます。

    これによって、ArrayList データ ソースが ComboBox コントロールにバインドされます。

    reportsList.DataSource = mysortedList
    
    reportsList.DataSource = sortedList;
    
  2. [ファイル]メニューの[すべて保存]をクリックします。

  3. [ビルド]メニューで[ソリューションのビルド]を選択します。

  4. ビルド エラーが発生した場合は、ここで修正します。

次のセクションでは、reportsList ComboBox コントロールでの選択に基づいてレポートをバインドするクリック イベントを追加します。