0

わかりました、ここでできるだけ明確にしようとします。製品情報を表示するさまざまなフィールドを含む PDF ドキュメントを作成しようとしています。基本的に、pdf を生成するスクリプトは、製品の変更が開始されたかどうかを判断し、開始された場合は pdf が作成されます。

私が今やろうとしているのは、これらの変更でフィールドを強調表示することです。変更があるかどうかを確認するために、次の変数を使用しています (そのうち約 30 個あります)。

$cone
$ctwo..... etc

PDF ファイルの製品出力の配列の例は次のとおりです。

    $leftHeadArray[0]['leftText']  = 'ID';
    $leftHeadArray[0]['rightText'] = $ID;


    $leftHeadArray[1]['leftText']  = 'start';
    $leftHeadArray[1]['rightText'] = date("d/m/Y", $Start);


    $leftHeadArray[2]['leftText']  = 'End';
    $leftHeadArray[2]['rightText'] = date("d/m/Y", $End);

フォーマットとセルは、次の場所で開始されます。

$maxheader = max(array_keys($leftHeadArray), array_keys($midHeadArray), array_keys($rightHeadArray));

    for ($i = 0; $i <= max($maxheader); $i++)
    {
        if (isset($leftHeadArray[$i]))
        {
            $pdf->SetFont('helvetica', 'B', 6);
            $pdf->SetFillColor(128, 0, 0);
            $pdf->SetTextColor(255, 255, 255);

            $pdf->Cell(40, 5, $leftHeadArray[$i]['leftText'], $border, 0, 'L', 1);

            $pdf->SetFont('helvetica', 'N', 6);
            if ($ctwentytwo == 0 && $leftHeadArray[1]['rightText'] || $ctwentytwo == 0 && $leftHeadArray[4]['rightText'] ){
            $pdf->SetFillColor(255, 255, 255);
            $pdf->SetTextColor(0, 0, 0);
            }else{
            $pdf->SetFillColor(0, 0, 0);
            $pdf->SetTextColor(255, 255, 255);
            }

        $pdf->Cell(30, 5, $leftHeadArray[$i]['rightText'], $border, 0, 'L', 1);
        $pdf->Cell(20, 5, '', 0, 0, 'L', 0);
    }

私がすでに試したこと:

  1. 個々のセル配列を if else ステートメントでラップする

    (例: $leftHeadArray[0]['leftText'] = 'ID'; $leftHeadArray[0]['rightText'] = $ID;)

    そこに設定された塗りつぶしの色を上書きしようとしています

  2. if isset セクション内に if else ステートメントを配置する

私が苦労していること:

  • $cone を $leftheadarray に接続する
  • 変更が開始されたときに 1 つのセルのみを変更する

これが簡潔であることを願っています!

//------------------------------ 解決済み

変数は常に 0 と見なされるため、$cone == 1 の場合に宣言を行い、以下のように左側のヘッド配列に関連付ける必要があります: これが役立つことを願っています!

if (isset($leftHeadArray[$i]))
        {
            $pdf->SetFont('helvetica', 'B', 6);
            $pdf->SetFillColor(128, 0, 0);
            $pdf->SetTextColor(255, 255, 255);

            $pdf->Cell(40, 5, $leftHeadArray[$i]['leftText'], $border, 0, 'L', 1);

            $pdf->SetFont('helvetica', 'N', 6);

            $pdf->SetFillColor(255, 255, 255);
            $pdf->SetTextColor(128, 0, 0);


            if (($ctwentytwo == 1) && ($leftHeadArray[$i]['leftText'] == "Promotion Start Date")
            ||  ($cone == 1) && ($leftHeadArray[$i]['leftText'] == "Promotion ID")
            ||  ($ctwo == 1) && ($leftHeadArray[$i]['leftText'] == "Promotion Type"))#|| $ctwentytwo == 0 && $leftHeadArray[1]['rightText']
            {
                $pdf->SetFillColor(0, 0, 0);
                $pdf->SetTextColor(255, 255, 255);
            }

            $pdf->Cell(30, 5, $leftHeadArray[$i]['rightText'], $border, 0, 'L', 1);
            $pdf->Cell(20, 5, '', 0, 0, 'L', 0);
        }
4

1 に答える 1

1
if (isset($leftHeadArray[$i]))
        {
            $pdf->SetFont('helvetica', 'B', 6);
            $pdf->SetFillColor(128, 0, 0);
            $pdf->SetTextColor(255, 255, 255);

            $pdf->Cell(40, 5, $leftHeadArray[$i]['leftText'], $border, 0, 'L', 1);

            $pdf->SetFont('helvetica', 'N', 6);

            $pdf->SetFillColor(255, 255, 255);
            $pdf->SetTextColor(128, 0, 0);


            if (($ctwentytwo == 1) && ($leftHeadArray[$i]['leftText'] == "Promotion Start Date")
            ||  ($cone == 1) && ($leftHeadArray[$i]['leftText'] == "Promotion ID")
            ||  ($ctwo == 1) && ($leftHeadArray[$i]['leftText'] == "Promotion Type"))#|| $ctwentytwo == 0 && $leftHeadArray[1]['rightText']
            {
                $pdf->SetFillColor(0, 0, 0);
                $pdf->SetTextColor(255, 255, 255);
            }

            $pdf->Cell(30, 5, $leftHeadArray[$i]['rightText'], $border, 0, 'L', 1);
            $pdf->Cell(20, 5, '', 0, 0, 'L', 0);
        }
于 2012-08-14T22:57:22.267 に答える