【解決方法】70行後にメモ帳でページヘッダーと列の繰り返しを設定する方法


こんにちはグレートマインド!
私はここでは新人です。 データテーブルからのデータを含むメモ帳を作成するのを手伝う必要があります。
文字列ビルダーを使用して、データ アダプターとエクスポートからデータ テーブル dt を入力しました。
列幅を固定するために、パディングを使用してすべての列位置を設定しました。
ヘッダーを上部に設定できず、70 行を食べた後に列を繰り返します。
私のコードは下にあります。 私はあなたに非常に感謝します

私が試したこと:

VB
Dim Dt As New DataTable
   Private ColumnPadding() As Integer = {5, 25, 15, 10, 10, 20, 20, 15, 15, 35, 10, 20}
   Private OutPutFile As String = IO.Path.Combine(Application.StartupPath, "Local.txt")
   Private Function HeaderText() As String
       Return "Id".PadRight(5) & _
              "UserName".PadRight(25) & _
              "Indent No".PadRight(15) & _
              "Village".PadRight(10) & _
              "Code".PadRight(10) & _
       "Grower Name".PadRight(20) & _
        "Father Name".PadRight(20) & _
         "Mobile".PadRight(15) & _
          "Item Code".PadRight(15) & _
           "Item Name".PadRight(35) & _
            "Qty.".PadRight(10) & _
             "Amount".PadRight(10)
   End Function
   Private Sub ExportDataForGenericPrinter()
       Dim Total As Integer = Dt.Compute("Sum(Amt)", String.Empty)
       'For Unique Value Count
       Dim TotalUser As Integer = Dt.AsDataView.ToTable(True, "Userid").Rows.Count
       Dim TotalIndent As Integer = Dt.Compute("Count(IndNo)", String.Empty)
       Dim sb As New System.Text.StringBuilder
       Dim Line As New String("="c, HeaderText.Length)
       'For First Row Line Write
       sb.AppendLine(Line)
       'For Write Header Text
       sb.AppendLine(HeaderText)
       Dim ColLine As New String("--", HeaderText.Length)
       'For Repeat Eatch Column Single Line
       sb.AppendLine(Line)
       Dim ColumValues As String = ""
       For Each row As DataRow In Dt.Rows
           For col As Integer = 0 To Dt.Columns.Count - 1
               ColumValues &= row(col).ToString.PadRight(ColumnPadding(col))
           Next
           sb.AppendLine(ColumValues)
           sb.AppendLine(ColLine)
           ColumValues = ""
       Next
       sb.AppendLine(Line)
       sb.AppendLine("Total Indent :-  " & TotalUser & vbTab & "Total Indent :- " & TotalIndent & vbTab & "Total Amount :- " & Total)
       sb.AppendLine(Line)
       IO.File.WriteAllText(OutPutFile, sb.ToString)
       Application.DoEvents()
       Process.Start(OutPutFile)
   End Sub
   Private Sub BtnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOk.Click
       Try
           GetDataIndent()
       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try
   End Sub

解決策 1

まず、「メモ帳」を作成していません。 メモ帳は、テキスト ファイルを編集するアプリです。 コードでテキスト ファイルを作成しています。

あなたのコードでは、「ページ」に書き込んだ行数をどこにも追跡していません。

これは難しくありません。 ページにヘッダーを書き込み、カウンターを 0 にリセットします。次に、レコードを処理し、各レコードをファイルに書き込み、カウンターをインクリメントします。 ページに必要な行数のカウンターを確認してください。 その値に達したら、フッター、FormFeed 文字を書き込み、さらに行が残っている場合はヘッダーを再度書き込み、ページの行カウンターをリセットしてから、レコードの書き込みを再開します…

コメント

タイトルとURLをコピーしました