データベース以外のデータとのMSHFlexGridを使用して、まだ形を定義します

StackOverflow https://stackoverflow.com/questions/1732721

  •  20-09-2019
  •  | 
  •  

質問

私は、Visual C ++(VS 2005)でMicrosoft階層フレキシブルグリッド(のMSHFlexGrid)を使用しようとしています。私は、グリッドが示されており、私は手動で個々のセルにデータを追加することができます。しかし、私が読んだのオンラインマニュアルに従って、私は、階層的な性質を示すことができなければなりませんデータのレコードとしての形状を定義することによって(したがってフレキシブルグリッドの代わりのMSHFlexGrid)。しかし私は、私が実際のデータを追加する方法のように途方に暮れてよ、(グリッドオブジェクトのput_RecordSourceメソッドを使用して)その罰金を行うことができます。

私はこれを行うための最善の方法は、ADOデータコントロール(すなわちADODC)コンポーネントを使用してグリッドのDataSourceとしてそれをバインドしていることを読みました。その後、「プロバイダ= MSDataShapeプロバイダを、データプロバイダ=なし;」を指定することはできませんDataControlのプロバイダーとしてのデータとそれを埋めます。私はSQLをしていた場合、私はレコードとしての私のSELECTクエリを指定したい場合、最新の情報に更新()を呼び出し、コントロールがデータをロードしてみましょう。

しかし、私のデータは、カスタムオブジェクトです。私は、フレキシブルグリッドコントロールにデータを挿入し、まだコントロールの機能に組み込まれて使用するための最良の方法へと途方に暮れてばかりだし、表示する必要があるものを知っています。私は、任意の提案を開いてんだけど、私は(すなわち無JET、アクセス、など)ローカルデータを保持する必要があります。

ここではいくつかのコードです:

ヘッダに

....
// Variable to control the Flex Grid component
CMshflexgrid1 m_grid;  //generated by wizard from the MSHFlexGrid component

// to control the data source hierarchical information
CAdodc1 m_adodc1;
....

のcppでます:

....
BOOL MyDialogClass::OnInitDialog()
{
  CDialog::OnInitDialog();

  m_grid.Clear();

  CString strCn = "provider=msdatashape;data provider=none;"; 
  m_adodc1.put_ConnectionString(strCn);

  CString BackupOfRecordSource = "";
  BackupOfRecordSource = m_adodc1.get_RecordSource();

  //CString strShape = "SHAPE APPEND new adInteger As PID, New adVarChar(10) As StudentName, ((SHAPE APPEND new adInteger As ChID, New adVarChar(10) As Course, ((SHAPE APPEND new adInteger As GrndChID, New adBSTR As Description) RELATE  ChID TO GrndChID) As GrandChild) RELATE PID TO ChID) AS Child";
  CString strShape = "SHAPE APPEND new adInteger As PID, New adVarChar(10) As StudentName";
  m_adodc1.put_RecordSource(strShape);
  m_adodc1.Refresh();
  m_grid.Refresh();

  BackupOfRecordSource = m_adodc1.get_RecordSource();  //returns the strShape that I just put in

  //ADD RECORDS HERE!  HOW?

  return TRUE;
}

正しい解決策はありません

他のヒント

サンプルは、ADODB.Recordsetのを構築し、ADODCのデータソースとして使用について話しました。あなたが与えるコードは、SQLを構築し、ADODCのデータソースとして使用されます。私はあなたが文字列でADODB.Recordsetのを置き換えることができないと思います。

scroll top