2016-06-23 13 views
0

私はサイクル中にテーブルを生成しましたが、最後の行はiTextSharpを切り捨てました。iTextSharp - テーブルの最後の行を切り捨てます。

mesure_tale.AddCell(New PdfPCell(New Phrase("č.m.", spec_font))) 
     mesure_tale.AddCell(New PdfPCell(New Phrase("Hodnota (mm)", spec_font))) 
     mesure_tale.AddCell(New PdfPCell(New Phrase("č.m.", spec_font))) 
     mesure_tale.AddCell(New PdfPCell(New Phrase("Hodnota (mm)", spec_font))) 
     mesure_tale.AddCell(New PdfPCell(New Phrase("č.m.", spec_font))) 
     mesure_tale.AddCell(New PdfPCell(New Phrase("Hodnota (mm)", spec_font))) 
     mesure_tale.AddCell(New PdfPCell(New Phrase("č.m.", spec_font))) 
     mesure_tale.AddCell(New PdfPCell(New Phrase("Hodnota (mm)", spec_font))) 

     Dim mesure_array As Double() = dgv_do_array(cislo_merania) 
     Dim average_value As Double = create_average(cislo_merania) 

     Dim k As Integer = 0 
     While k < cislo_merania 
      mesure_tale.AddCell(New PdfPCell(New Phrase(k + 1, spec_font))) 
      Dim mesure_cell As New PdfPCell(New Phrase(mesure_array(k).ToString, spec_font)) 

      If mesure_array(k) > (average_value + (average_value * percentualna_odchylka)) Then 
       mesure_cell.BackgroundColor = New BaseColor(255, 120, 120) 'Red 
       mesure_tale.AddCell(mesure_cell) 
      ElseIf mesure_array(k) < (average_value - (average_value * percentualna_odchylka)) Then 
       mesure_cell.BackgroundColor = New BaseColor(120, 170, 255) 'Blue 
       mesure_tale.AddCell(mesure_cell) 
      Else 
       mesure_cell.BackgroundColor = New BaseColor(175, 255, 120) ' Green 
       mesure_tale.AddCell(mesure_cell) 
      End If 
      k += 1 
     End While 

     pdfDoc.Add(mesure_tale) 
+0

あなたはそれが切り取られていますか?デバッガで 'mesure_tale'を調べて、すべての行が含まれているかどうかを確認しましたか?私は、あなたのwhileループによって最後の期待された行が追加されていないと思います。Thomas Inzinaの提案は以下の通りです。 – Phil

+0

私はちょうどデバッグ出力を見て、その真実、最後の行がありません...それはサイクルが悪い構築されていることを意味...いいえ、私はサイクルを再デバッグし、我々は.... THXを参照してください。 – Oliwer11

答えて

2

私はdgv_do_array(cislo_merania)が配列でない配列の実際の長さの最も高いバウンドを返していると思います。

変更

ながらK < cislo_merania

ながらK < = cislo_merania

+0

私はこの修正を試してみましたが、それはiTextSharpライブラリの一部だけsttingだ聖霊降臨祭のERR ...ので、私の事を終了... – Oliwer11

+0

iTextSharpは唯一の完全な行を示しています。列数にエラーがある場合、最後の行は完全ではなく、その理由で削除されます。これを避けるには、 'CompleteRow()'メソッドを使用します。動作しない場合は、使用しているiTextのバージョンを確認してください。文書化されているように、iText5よりも前のバージョンでは、1兆回に一回、不可解な理由で行が削除されていました(修正が困難なエッジケース)。この問題は以前から修正されていますので、最新バージョンのiTextSharpを使用していることを確認してください。 –

+0

最後に、サイクルが良好に構築された。 ** CompleteRow **機能は私が探していた機能でした。 THX – Oliwer11

関連する問題