[ad_1]
こんにちはグレートマインド!
私はここでは新人です。 データテーブルからのデータを含むメモ帳を作成するのを手伝う必要があります。
文字列ビルダーを使用して、データ アダプターとエクスポートからデータ テーブル 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 文字を書き込み、さらに行が残っている場合はヘッダーを再度書き込み、ページの行カウンターをリセットしてから、レコードの書き込みを再開します…
[ad_2]
コメント