Lamotech Ответов: 0

JAVA - как использовать данные, вставленные в jtable, для получения квитанции


я работаю над программой, но мне не нравится, как выходит квитанция, кажется, что я получаю все данные из jtable и получаю также таблицу, и она не выходит так, как должна выглядеть стандартная распознанная квитанция

JTable имеет следующее

Название Продукта Описание Кол-Во Цена Единицы Измерения Сумма Скидки

Ноутбуки Dell 4 200 0 800

Ноутбуки Lenovo whatever 5 400 0 2000

Идея состоит в том, чтобы иметь квитанцию, которая показывает только имя продукта и сумму, я имею в виду простую базовую квитанцию и не показывает таблицу.

Предполагаемые результаты

Название Продукта Количество

Ноутбуки Dell------------------------800

Ноутбуки Lenovo----------------------2000

Что я уже пробовал:

Вот код, который я написал, который также приносит мне таблицу.

   String value5 = jLsub_total.getText();
   String value6 = jTcustomerName.getText();
   String value7 = jTcontact.getText();
   String value8 = jTsalesP.getText();
   String value9 = jTlocation.getText();



   int p = JOptionPane.showConfirmDialog(null,"Click yes to generate Receipt","RECEIPT", JOptionPane.YES_NO_OPTION);

   if(p==0){

    Document document = new Document();
    Rectangle rect = new Rectangle(350,700);
    document.setPageSize(rect);

try{

   PdfWriter.getInstance(document, new FileOutputStream("RECEIPT.pdf"));


   document.open();

   Paragraph paragraph = new Paragraph();

   document.add(new Paragraph(jTcompany_name.getText().toString(),FontFactory.getFont(FontFactory.TIMES_BOLD,15,Font.BOLD)));
   document.add(new Paragraph("RECEIPT.", FontFactory.getFont(FontFactory.TIMES_BOLD,15,Font.BOLD)));
   document.add(new Paragraph(new Date().toString()));
   document.add(new Paragraph("_________________________________________"));
   document.add(new Paragraph(" "));
   document.add(new Paragraph(" "));





   PdfPTable pdfTable = new PdfPTable(jTsalesview.getColumnCount());


   //adding table headers
    for (int i = 0; i < jTsalesview.getColumnCount();  i++) {
         pdfTable.addCell(jTsalesview.getColumnName(i));

     }
    //extracting data from the JTable and inserting it to PdfPTable
    for (int rows = 0; rows < jTsalesview.getRowCount() ; rows++) {
    for (int cols = 0; cols < jTsalesview.getColumnCount(); cols++) {
    pdfTable.addCell(jTsalesview.getModel().getValueAt(rows, cols).toString());


           }
       }
   document.add(pdfTable);
   paragraph.add(new Paragraph("SUB-TOTAL-----------------"+value5,FontFactory.getFont(FontFactory.TIMES_ROMAN,12,Font.PLAIN)));
   document.add(new Paragraph(" "));
   document.add(new Paragraph(" "));
   document.add(new Paragraph(" "));
   document.add(new Paragraph("Customer Name-------------"+value6,FontFactory.getFont(FontFactory.TIMES_ROMAN,12,Font.PLAIN)));
   document.add(new Paragraph("Contact-----------------------"+value7,FontFactory.getFont(FontFactory.TIMES_ROMAN,12,Font.PLAIN)));
   document.add(new Paragraph("Sales person------------------"+value8,FontFactory.getFont(FontFactory.TIMES_ROMAN,12,Font.PLAIN)));
   document.add(new Paragraph("Location----------------------"+value9,FontFactory.getFont(FontFactory.TIMES_ROMAN,12,Font.PLAIN)));
   document.add(paragraph);

   document.close();


 JOptionPane.showMessageDialog(null, "Successfully Generated");
 }catch(Exception e ){
  e.printStackTrace();
     }
  }

я хотел бы избавиться от стола.

Richard MacCutchan

Вопрос не ясен. Если у вас есть все элементы из вашей записи базы данных, то вам будет несложно извлечь только два из них.

Lamotech

идея заключается в том, что как только клиент покупает товары, они добавляются в базу данных и также появляются в jtable, поскольку jtable содержит только товары, купленные клиентом, и сбрасывается после того, как продавец имеет дело с другим клиентом, вот как я получаю данные из jtable.

Lamotech

@ Richard, покажи мне, как извлечь jst этих двоих из базы данных и добавить их в квитанцию.

Richard MacCutchan

Извините, но я не понимаю, в чем ваша трудность. У вас есть запись в базе данных, и вы знаете, какие два поля вы хотите включить в счет-фактуру, так что это просто вопрос извлечения двух элементов, форматирования их в текстовые поля и печати их на счете-фактуре.

Lamotech

Спасибо, позвольте мне попробовать, надеюсь, это сработает

0 Ответов