void SysCADParamsTable::BuildDataFields(MDataDefn &DD) { /*DD.MatrixBegin(TableName, TableName, ncols, nrows, 8, 0, "X", "Y", 0); for (int r=0; r<nrows; r++) { DD.GridRowStart(); DD.MatrixElementStart(0, r); for (int c=0; c<ncols; c++) { DD.Double(c==0 ? Col0Name : Col1Name, "", &(val[r*ncols+c]), MF_RESULT|MF_NO_FILING, MC_None); } } DD.MatrixEnd();*/ DD.Text("------------------------------------------------------------"); CString Txt,T1; Txt.Format("Data table:%s", TableName); DD.Text(Txt); Txt.Format(" %s(%s) | %s(%s)", Col0Desc, Col0Name, Col1Desc, Col1Name); DD.Text(Txt); DD.GridBegin(TableName, ncols, nrows); Txt.Format("%s//%s", Col0Name, Col1Name); DD.GridColumnHeader(Txt, 6, 0, 0); DD.GridColumnHeader(Col0Name, 10, 0); DD.GridColumnHeader(Col1Name, 10, 0); for (int r=0; r<nrows; r++) { T1.Format("%s[%i]", TableName, r); DD.GridRowHeader(T1); //does not work!!! DD.GridRowStart(); for (int c=0; c<ncols; c++) { Txt.Format("%s[%i].%s", TableName, r, c==0 ? Col0Name : Col1Name); DD.Double(Txt, "", &(val[r*ncols+c]), MF_PARAMETER, MC_None); } } DD.GridEnd(); }
void CLimn_ModelData_Base::BuildDataFields(MDataDefn & DD) { const int ArrayDbg=0; DD.Text("Parameters..."); //DD.Text(""); CString GridTxt; bool InArray=false; bool GridBusy=false; int m_ColCount=0; int m_ValCount=0; int m_iCol=0; int m_iRow=0; for (int i=0; i<DataCount(); i++) { if (m_Defs[i]) { CLimn_ModelData_ParmDef & D = *m_Defs[i]; for (int j=0; j<D.m_Hdrs.GetCount(); j++) { CLimn_ModelData_ParmHdr & H=D.m_Hdrs[j]; CString Txt(H.m_Text); if (H.m_nRows>1 && H.m_nCols>1) { Txt= "Matrix: "; m_ColCount=H.m_nCols; m_ValCount=H.m_nRows*H.m_nCols; m_iCol=0; m_iRow=0; } else if (H.m_nRows>1 || H.m_nCols>1) { Txt= "Vector: "; m_ColCount=H.m_nCols; m_ValCount=H.m_nRows*H.m_nCols; m_iCol=0; m_iRow=0; } Txt+=H.m_Text; DD.Page(H.m_Text, true); GridTxt=D.m_Tag; //DD.Text(Txt); } if (!D.m_Hide) { MD_Flags F=MF_PARAMETER; bool StartRow=false; bool EndRows=false; if (m_ValCount>0) { if (m_iCol==0) StartRow=true; if (++m_iCol>=m_ColCount) { m_iCol=0; m_iRow++; } if (--m_ValCount==0) { EndRows=true; } } if (D.m_ArrayBegin) { InArray=true; //CString Cls; //Cls.Format("DW_%s",D.m_Class); DD.ArrayBegin(D.m_Class, D.m_Tag, D.m_ArrayLen,0); if (ArrayDbg) gs_Dbg.PrintLn("ArrayBegin %s %s %i >>>>>>>>>>>", D.m_Class, D.m_Tag, D.m_ArrayLen); } if (StartRow) { if (!GridBusy) { DD.GridBegin(GridTxt, m_ColCount, m_ValCount/m_ColCount, 10, 0); GridBusy=true; } DD.GridRowStart(); } if (InArray) { if (D.m_iIndex>=0) DD.ArrayElementStart(D.m_iIndex, 0); else DD.ArrayElementStart(D.m_sIndex, 0); if (ArrayDbg) gs_Dbg.PrintLn("ArrayEle %s %i %s", D.m_Tag, D.m_iIndex, D.m_sIndex); //if (m_iCol==0) // DD.Text("XXXXXX"); CString S; //S.Format("%s[%s]", D.m_Tag, D.m_Index); //S=D.m_Index; S="V"; if (D.m_IsBool) DD.Bool (S, "", 1+i, F); else DD.Double(S, "", 1+i, F, D.m_Cnv); DD.ArrayElementEnd(0); } else { if (D.m_IsBool) DD.Bool (D.m_Tag, "", 1+i, F); else DD.Double(D.m_Tag, "", 1+i, F, D.m_Cnv); } if (EndRows) { DD.GridEnd(); GridBusy=false; } if (D.m_ArrayEnd) { DD.ArrayEnd(0); if (ArrayDbg) gs_Dbg.PrintLn("ArrayEnd %s %s <<<<<<<<<<<", "", ""); InArray=false; } } } } };