2013-12-22 1 views
0

Мой код предварительного просмотра печати не работает. Как мне сделать эту работу. Помощь будет с благодарностью. Спасибо. Im пытается показать мой последний чек проверки, я не был в состоянии вставить рис так это выглядит следующим образом:Нужна помощь в vb print preview запись информации из файла

Клиент ID: Название: Имя: Боб Адрес: автомобиля: автомобиля ID: Обновление : Стоимость: ID товара: Номер дома:

Я хочу, чтобы они находились в макете столбца на экране предварительного просмотра. Как мне это сделать?

Также я получаю предупреждение: переменная «LineToPrints» использовалась раньше, и это может привести к нулевому значению.

Dim TitleFont As New Font("Courier New", 15, FontStyle.Bold) 
    Dim MyFont As New Font("Courier New", 12, FontStyle.Regular) 
    Dim MyFormat As String = "{0, 15}{1,15}" 
    Dim LineToPrints As String 
    Dim X As Integer 
    Dim Y As Integer 
    X = 15 

    FontHeight = MyFont.GetHeight(e.Graphics) 
    e.Graphics.DrawString("Checkout Receipt", TitleFont, Brushes.Black, X, Y) 

    For Y = 15 To 165 Step 15 
     Select Case Y 
      Case 30 
       LineToPrints = String.Format(MyFormat, "Customer ID: " & OneCustomer.CustomerID) 
      Case 45 
       LineToPrints = String.Format(MyFormat, "Title: " & OneCustomer.Title) 
      Case 60 
       LineToPrints = String.Format(MyFormat, "Name: " & Trim(OneCustomer.FirstName) & Trim(OneCustomer.LastName)) 
      Case 75 
       LineToPrints = String.Format(MyFormat, "Address: " & OneCustomer.Address) 
      Case 90 
       LineToPrints = String.Format(MyFormat, "Car(s): " & OneBooking.Car) 
      Case 105 
       LineToPrints = String.Format(MyFormat, "Car ID: " & OneBooking.CarID) 
      Case 120 
       LineToPrints = String.Format(MyFormat, "Upgrades: " & OneBooking.Upgrade) 
      Case 135 
       LineToPrints = String.Format(MyFormat, "Cost: " & FormatCurrency(TotalCost)) 
      Case 150 
       LineToPrints = String.Format(MyFormat, "Product ID: " & OneStock.ProductID) 
      Case 165 
       LineToPrints = String.Format(MyFormat, "ShopID: " & OneStock.ShopID) 
     End Select 
     e.Graphics.DrawString(LineToPrints, TitleFont, Brushes.Black, X, Y + 10) 
     e.Graphics.DrawString("Thank You For Purchasing At 'Ford Mustaang Selection Buyout'.", TitleFont, Brushes.Black, X, Y) 
    Next 
+0

Это может помочь вам увидеть это: http://msdn.microsoft.com/en-us/library /ms404294%28v=vs.110%29.aspx – NoChance

+0

Если это в WinForms, добавьте тег 'winforms'. –

ответ

0

Вы не подробно, что ошибки вы получаете, или там, где это происходит, но ваша строка формата имеет два заполнители, и вы передаете только в одном аргументе каждый раз. Рассмотрите возможность использования Dim MyFormat As String = "{0, 15}", если вы хотите, чтобы метка и значение соответствовали 15 символам, или String.Format(MyFormat, "Product ID:", OneStock.ProductID), если метка и значение должны быть в отдельных столбцах.

NB: Рассмотрите возможность хранения метаданных поля в некоторой структуре данных, например. List(Of Tuple(Of String,Object)):

Dim metadata = New List(Of Tuple(Of String, Object)) From { 
    Tuple.Create("Customer ID", OneCustomer.CustomerID), 
    Tuple.Create("Title", OneCustomer.Title), 
    Tuple.Create("Name", CType(Trim(OneCustomer.FirstName) & Trim(OneCustomer.LastName),Object)), 
    Tuple.Create("Address", OneCustomer.Address), 
    Tuple.Create("Car(s)", OneBooking.Car), 
    Tuple.Create("Car ID", OneBooking.CarID), 
    Tuple.Create("Upgrades", OneBooking.Upgrade), 
    Tuple.Create("Cost", CType(FormatCurrency(TotalCost),Object)), 
    Tuple.Create("Product ID", OneStock.ProductID), 
    Tuple.Create("Shop ID", OneStock.ShopID) 
} 

Тогда вы можете создать каждую строку отчета следующим образом:

Dim line=String.Join("", metadata.Select(Function(t) String.Format("{0,15}: {1,15}", t.Item1, t.Item2)) 

 Смежные вопросы

  • Нет связанных вопросов^_^