비 다치베이션 데이터와 함께 mshflexgrid를 사용하고 여전히 모양을 정의하십시오.

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

  •  20-09-2019
  •  | 
  •  

문제

시각적 C ++ (VS 2005)에서 Microsoft Hierarchical FlexGrid (MSHFlexGrid)를 사용하려고합니다. 그리드가 표시되어 있으며 개별 셀에 수동으로 데이터를 추가 할 수 있습니다. 그러나 온라인에 따르면 선적 서류 비치 나는 읽은다. 나는 레코드 소스로서 형상을 정의함으로써 데이터의 계층 적 특성 (따라서 msflexgrid 대신 mshflexgrid)을 보여줄 수 있어야한다. 그리드 객체의 put_recordsource 메소드를 사용하여 잘 할 수 있지만 실제 데이터를 추가하는 방법에 대해서는 손실됩니다.

이를 수행하는 가장 좋은 방법은 ADO 데이터 컨트롤 (IE ADODC) 구성 요소를 사용하여 그리드의 데이터 소스로 바인딩하는 것입니다. 그런 다음 "제공자 = msdatashapape; data provider = none;"을 지정할 수 있습니다. Datacontrol의 제공자로서 데이터로 채우십시오. SQL을 수행하는 경우 SELECT Query를 RecordSource로 지정 한 다음 Refresh ()을 호출하고 컨트롤이 데이터를로드하도록합니다.

그러나 내 데이터는 사용자 정의 객체에 있습니다. 나는 무엇을 표시 해야하는지 알고있다. 나는 데이터를 Flexgrid에 삽입하고 제어의 내장 기능을 여전히 사용하는 가장 좋은 방법에 대해서만 손실되었다. 나는 어떤 제안에도 열려 있지만, 데이터를 로컬로 유지해야합니다 (예 : 제트기, 액세스 등).

코드는 다음과 같습니다.

헤더에서 :

....
// 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을 문자열로 교체 할 수 있다고 생각하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top