0

私はあなたがそれを測定できる測定属性(toestel)によって並べ替えられた測定値(afmetingen)のリストを印刷したい。したがって、グループ結合を使用して、すべての正しい測定値を測定属性のグループに配置します。これで最初のページは問題ありませんが、ページの最後 (十分なスペースがない) に達したとき、それを検出し、残りを印刷しません。

だから私は ev.getmorepages を true に配置して、2 ページ目で再び開始するようにします。しかし、最初の 10 個の測定値を印刷する必要はありません。最初の 10 回の測定をスキップするにはどうすればよいですか?

スキップオプションが機能しません...

測定値のリストで特定のインデックスから開始する方法はありますか? の最初の 10 をスキップします。

private void pd_PrintPageV2(object sender, PrintPageEventArgs ev)
    {
                    var afmetinger =
                       from selectoestel in toestel
                       orderby selectoestel.Volgnr
                       where selectoestel.IDnumber >= meettoestel 
                       join metinger in tempmeetrapport.afmetingen on selectoestel.IDnumber equals metinger.meettoestel into metinggroup
                       select new
                        {
                            //select toestel naam
                            toestel = selectoestel.naam,
                            volgnr = selectoestel.IDnumber,
                            //select de volledig afmeting
                            afmetingers = from prod2 in metinggroup
                                          orderby prod2.nummer
                                          select prod2
                        };

         int i = 0;

         //code to print the measurement attribute on the page (deleted (to long))

         //start printing all measurements row by row
         foreach (var productGroup in afmetinger)
         {
             foreach (var prodItem in productGroup.afmetingers)
             {
                if(i < 10){ print something on page }
                i++

             }
            }

         // If more lines exist, print another page.
         if (i>10)
         {
             ev.HasMorePages = true;
         }    }
4

1 に答える 1

2

すべての項目を 1 つのリストに選択し、LINQ のSkip方法を使用できます。

var allItems = afmetinger.SelectMany(x => x.afmetingers);
foreach (var prodItem in allItems.Skip(numberOfItemsToSkip))

また、常に 10 項目だけを表示したい場合は、次のように組み合わせることができますTake

foreach (var prodItem in allItems.Skip(numberOfItemsToSkip).Take(10))
于 2013-05-25T18:02:35.327 に答える