子階層シート上で行列固定を設定出来ますか?

文書番号 : 33503     文書種別 : 使用方法     登録日 : 2012/11/14     最終更新日 : 2012/11/14
文書を印刷する
対象製品
SPREAD for Windows Forms 7.0J
詳細
はい。階層表示時における子階層シート上で行列固定することが出来ます。子階層シート上で行列固定を設定するには、ChildViewCreatedイベントを実装して各親ビューに関連付けられている子ビューオブジェクトを取得し、この子ビューに対して行う必要があります。

◎サンプルコード(VB)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

  'データセットを作成します
  Dim ds As New DataSet
  Dim fpParent As DataTable
  Dim fpChild1 As DataTable

  fpParent = ds.Tables.Add("SampleTable")
  fpParent.Columns.AddRange(New DataColumn() { _
    New DataColumn("Name", Type.GetType("System.String")), _
    New DataColumn("ID", Type.GetType("System.Int32"))})

  fpParent.Rows.Add(New Object() {"親データ1", 123})
  fpParent.Rows.Add(New Object() {"親データ2", 456})

  fpChild1 = ds.Tables.Add("ChildTable")
  fpChild1.Columns.AddRange(New DataColumn() { _
    New DataColumn("Child-Name", Type.GetType("System.String")), _
    New DataColumn("ID", Type.GetType("System.Int32"))})

  fpChild1.Rows.Add(New Object() {"子データ1-1", 123})
  fpChild1.Rows.Add(New Object() {"子データ1-2", 123})

  fpChild1.Rows.Add(New Object() {"子データ2-1", 456})
  fpChild1.Rows.Add(New Object() {"子データ2-2", 456})
  fpChild1.Rows.Add(New Object() {"子データ2-3", 456})
  fpChild1.Rows.Add(New Object() {"子データ2-4", 456})

  'テーブル間のリレーションを設定します
  ds.Relations.Add("Relation1", fpParent.Columns("ID"), fpChild1.Columns("ID"))

  '作成されたデータセットを接続します
  FpSpread1.ActiveSheet.DataSource = ds

End Sub

Private Sub FpSpread1_ChildViewCreated(ByVal sender As System.Object, ByVal e As FarPoint.Win.Spread.ChildViewCreatedEventArgs) Handles FpSpread1.ChildViewCreated

  '固定列/行を設定します
  e.SheetView.FrozenColumnCount = 1
  e.SheetView.FrozenRowCount = 1

End Sub

◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
  //データセットを手動で作成します
  DataSet ds = new DataSet();
  DataTable fpParent;
  DataTable fpChild1;

  fpParent = ds.Tables.Add("SampleTable");
  fpParent.Columns.AddRange(new DataColumn[] {
    new DataColumn("Name", Type.GetType("System.String")),
    new DataColumn("ID", Type.GetType("System.Int32"))});

  fpParent.Rows.Add(new object[] { "親データ1", 123 });
  fpParent.Rows.Add(new object[] { "親データ2", 456 });

  fpChild1 = ds.Tables.Add("ChildTable");
  fpChild1.Columns.AddRange(new DataColumn[] {
    new DataColumn("Child-Name", Type.GetType("System.String")),
    new DataColumn("ID", Type.GetType("System.Int32"))});

  fpChild1.Rows.Add(new object[] { "子データ1-1", 123 });
  fpChild1.Rows.Add(new object[] { "子データ1-2", 123 });

  fpChild1.Rows.Add(new object[] { "子データ2-1", 456 });
  fpChild1.Rows.Add(new object[] { "子データ2-2", 456 });
  fpChild1.Rows.Add(new object[] { "子データ2-3", 456 });
  fpChild1.Rows.Add(new object[] { "子データ2-4", 456 });

  //テーブル間のリレーションを設定します
  ds.Relations.Add("Relation1", fpParent.Columns["ID"], fpChild1.Columns["ID"]);

  //作成されたデータセットを接続します
  fpSpread1.ActiveSheet.DataSource = ds;
}

private void fpSpread1_ChildViewCreated(object sender, FarPoint.Win.Spread.ChildViewCreatedEventArgs e)
{
  //固定列/行を設定します
  e.SheetView.FrozenColumnCount = 1;
  e.SheetView.FrozenRowCount = 1;
}
関連情報
キーワード
「階層」