トップページ >  Active Report >  重複行を非表示にする
初版2012/10/01: 最終更新日2012/10/01
  重複行を非表示にする
目次
重複行を非表示にする
参考文献
重複行を非表示にする
重複行を非表示にするには、セクションが描画される直前に発生するBeforePrintイベントで行います。
AfterPrintイベントでも可能なようですが、試していません。

string strBuff;

private void Detail_BeforePrint(object sender, System.EventArgs e)
{
    if (TextBox1.Text != strBuff)
    {
         TextBox1.Visible = true;
    } 
    else 
    {
        // 重複データは非表示にします。
        TextBox1.Visible = false;
    }
    strBuff = TextBox1.Text;
}

private void rptSimpleGroup_PageEnd(object sender, System.EventArgs e)
{
    // 改ページ後、最初のデータは必ず出力します。
    strBuff = "";
}

上記の例では、一つのデータ(例えば棚番号だけ)が重複している場合のみ非表示になります。
帳票には以下のようなものが多いと思うので、行ごとdistinctしたい場合がおおいはずです。
その場合はコーディングは以下のようにしたら良いと思います。

string strBuff1;
private void detail_BeforePrint(object sender, EventArgs e)
{
    if (txtBox1.Text + txtBox2.Text + txtBox3.Text + txtBox4.Text + txtBox5.Text != strBuff1)
    {
        txtBox1.Visible = true;
        txtBox2.Visible = true;
        txtBox3.Visible = true;
        txtBox4.Visible = true;
        txtBox5.Visible = true;
    }
    else
    {
        // 重複データは非表示にします。
        txtBox1.Visible = false;
        txtBox2.Visible = false;
        txtBox3.Visible = false;
        txtBox4.Visible = false;
        txtBox5.Visible = false;
    }

     strBuff1 = txtBox1.Text + txtBox2.Text + txtBox3.Text + txtBox4.Text + txtBox5.Text;
}
参考文献
参考文献:こちら