Grid Control 8

  

サブメニュー


ここに紹介するプログラムは、WIN XP 2003/Windows 7 (32bits) - OS 環境でマイクロソフトのVisual Studio 2010 で作ったものです。

Windows XP/ Windows 7(32bits) での動作は確認済みですが…


ファイルから既存のデータを読み込む

ファイルより既存のデータを読み込み、編集するような使い方がしばしば起こります。

これに対応するため、初期設定のとき既存のデータがあれば読み込み、アレーに書き込むと同時に表示もしなければなりません。

 

////////////////////////////////////////
// グリッドにデータを書き込む

#include "CheckData.h" // データの判断やカンマ付文字列変換などの外部クラス
long CWallDlg::GetWallData(int fixedrows, fixedcols)
{
    CString szData;
    CWallData wd;

    CCheckData cd;
    CGridControl gc;

    m_nData = m_ArrayWall.GetSize(); //
既存のデータ個数
    long n = m_nIndex + 1;

    long row = 1;
 

    // 初期設定より行数が多くなる場合
 

   if( n > m_nMaxRow - 2) {

      m_nMaxRow = n + 1; // 変更 2->1       gc.SetGridStyle( &m_grid, m_nMaxRow, m_nCols ); // 全体の行と列を設定

      gc.SetTitle_N( &m_grid, fixedrows, fixedcols );

      m_nTopRow = m_nMaxRow - (m_nInitia_maxrow - 3); // 変更 2->3

      m_grid.SetTopRow( m_nTopRow );

   }


   // 既存のデータの読み込み
 

   while(( n - row ) > 0) {

      wd = m_ArrayWall.GetAt( row - 1 );

 

      gc.SetTextMatrixCenter( &m_grid, row, 1, wd.m_orient ); // 方位

      gc.SetTextMatrixCenter( &m_grid, row, 2, wd.m_type );   // 壁のタイプ

 

      double area = cd.atof_e( wd.m_wallarea );

      szData.Format( "%12s", cd.nci( 1, area )); // カンマ付文字列に直す

      gc.SetTextMatrixRight( &m_grid, row, 3, szData );

 

     //単位の切り替え

      double mp = 0.0;

      if( m_unit == 0 ) mp = 1.0; // Kcal/h

      else if( m_unit == 1 ) mp = AC_UNIT; // Watts

      double uv = atof( wd.m_uf ) * mp;

      szData.Format( "%2.3f", uv ); // 壁の貫流率

      gc.SetTextMatrixRight( &m_grid, row, 4, szData );

 

      gc.SetTextMatrixCenter( &m_grid, row, 5, wd.m_tempdeff );

      gc.SetTextMatrixCenter( &m_grid, row, 6, wd.m_dnsty );

      row++;

   }

   return n;
}
 

これで、基本的な機能は満たしたはずです。将来的には、FlexGridの入力されているデータをコピーして貼り付けるなどの機能も欲しくなりますが将来対応とします。

 

サンプルコードは、AutoAC.EXEプログラムのWallDataを作る際に使用しております。

細かい点の解説が抜けているかもしれませんので、コンプリートのソースを添えつけておきますので、参考として応用してください。

ダウンロードはこのリンクをクリックしてください。

 

 

前ページに戻る


ページ先頭に戻る
最終更新日: 2020/02/04