Ejemplo n.º 1
0
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();
  }
Ejemplo n.º 2
0
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;
          }
        }
      }
    }
  };