構造体に整数の配列を保持したい
struct HPDF_TableAttributes
{
HPDF_REAL rows;
HPDF_REAL cols;
HPDF_REAL rowH;
HPDF_REAL colW;
HPDF_REAL tabX;
HPDF_REAL tabY;
HPDF_REAL tabH;
HPDF_REAL tabW;
HPDF_Font font;
HPDF_REAL fontSize;
int colRatios[]; /// HERE
};
どうやってやっても問題ないようですが、コンパイラはここで初期化することを望んでいますか? 私はそれをしなければなりませんか?私は使用のために次の行に沿って何かをしようとしています。
HPDFTableAttributes oTACent;
oTACent.rows = 3; oTACent.cols = 3;
oTACent.rowH = 20; oTACent.colW = pageWidth-70/oTACent.cols;
oTACent.tabH = oTACent.rows * oTACent.rowH;
oTACent.tabW = oTACent.cols * oTACent.colW;
oTACent.tabX = 35; oTACent.tabY = pageHeight - oTACent.tabH - 45;
oTACent.font = fontTimesBold; oTACent.fontSize = 20;
oTACent.colRatios = [1, 1, 2]; /// HERE
次に、これらの属性を関数に送信してテーブルを作成し、この整数配列の値の比率を使用して、同じ行に沿って列を空けます。
void CReport::putTableOnPdf(HPDF_Page page, HPDFTableAttributes tabAtt, array_2d<CString> tabDat)
{
// Table Outline
HPDF_Page_SetLineWidth (page, 1);
HPDF_Page_Rectangle (page, tabAtt.tabX, tabAtt.tabY, tabAtt.tabW, tabAtt.tabH);
// Table row lines
HPDF_REAL rowsPut = 0;
while(rowsPut < tabAtt.rows)
{
rowsPut++;
HPDF_Page_MoveTo (page, tabAtt.tabX, tabAtt.tabY + rowsPut*tabAtt.rowH);
HPDF_Page_LineTo (page, tabAtt.tabX + tabAtt.tabW, tabAtt.tabY + rowsPut*tabAtt.rowH);
}
// Table col lines
/*int colRatioSum = 0;
for(int i = 0; i < tabAtt.colRatios.length; i++)
colRatioSum += tabAtt.colRatios[i];
tabAtt.colW = tabAtt.colW / colRatioSum;*/ /// HERE
HPDF_REAL colsPut = 0;
while(colsPut < tabAtt.cols)
{
colsPut++;
HPDF_Page_MoveTo (page, tabAtt.tabX + colsPut*tabAtt.colW, tabAtt.tabY);
HPDF_Page_LineTo (page, tabAtt.tabX + colsPut*tabAtt.colW, tabAtt.tabY + tabAtt.tabH);
}
HPDF_Page_Stroke (page);
}