Monday, May 12, 2014

Wie PDF in Java erstellen

Invoice.java
1 / / Obwohl DynamicPDF für Java unterstützt J2SE 1.4.x- Funktionen für die meisten ist dieses Beispiel nur mit J2SE 5.0 und höher kompatibel.
2 Einfuhr com.cete.dynamicpdf * .
3 Import com.cete.dynamicpdf.pageelements * .
4 Import com.cete.dynamicpdf.pageelements.barcoding.Interleaved25 ;
5 Import java.io.FileNotFoundException ;
6 Import java.io.IOException ;
7 Import java.math.BigDecimal ;
8 Import java.sql * .
9 Import java.text.DecimalFormat ;
10 Import java.text.SimpleDateFormat ;
11 Import java.util.Enumeration ;
12 Import java.util.Locale ;
13 Import java.util.Vector ;
14 Import javax.servlet.ServletConfig ;
15 Import javax.servlet.ServletException ;
16 Import javax.servlet.ServletOutputStream ;
17 Import javax.servlet.http.HttpServlet ;
18 Import javax.servlet.http.HttpServletRequest ;
19 Import javax.servlet.http.HttpServletResponse ;
20
21 öffentliche Klasse Rechnung erstreckt HttpServlet {
22
23 ServletOutputStream sOut ;
24 Anschluss -Anschluss;
25
26 public void init ( ServletConfig ServletConfig ) wirft ServletException {
27 super.init ( ServletConfig );
28}
29 public void doGet ( HttpServletRequest req , HttpServletResponse res)
30 throws IOException , ServletException {
. 31. CeTeConnection CETE = ( CeTeConnection ) getServletContext () getAttribute ( " cetecon ");
32 = Verbindung ceTe.getConnection ();
33 sOut res.getOutputStream = ();
34 / / Erstellen Sie ein Dokument , und legen Sie seine Eigenschaften
35 Document ObjDocument = new Document ();
36 objDocument.setCreator ( " Invoice.html ");
37 objDocument.setAuthor ( " CETE Software") ;
38 objDocument.setTitle ( "Rechnung" );
39
40
41
42 String [] = RechnungNr req.getParameterValues ​​( " RechnungNr ");
43 if ( RechnungNr ! = Null) {
44 / / In den Rechnungen des Dokuments
45 for (int i = 0; i < invoiceNo.length ; i + +) {
46 MyInvoice objInvoice = new MyInvoice ();
47 / / Fügen Sie die Vorlage in das Dokument
48 objDocument.setTemplate ( objInvoice.getTemplate ());
49 objInvoice.draw (Anschluss, ObjDocument ,
50 Integer.parseInt ( RechnungNr [i]) );
51 }
52 }
53
54
55 / / Gibt die Rechnungen auf der aktuellen Webseite
56 objDocument.drawToWeb ( req , res, sOut " Invoice.pdf ");
57 ceTe.close ();
58 sOut.close ();
59
60}
61
62 private Klasse MyInvoice {
63
64 Privat BigDecimal Zwischensumme = new BigDecimal (0.0 );
65 Privat BigDecimal Fracht = new BigDecimal (0.0 );
66 Privat Schwimmer yOffset = 0;
67 Enumeration e1 = null;
68 Privat Vorlage Vorlage = new Template ();
69 private boolean pageTemplateImagesSet = false;
70 Privat RGBColor objBGColor = new WebColor ("# E0E0FF ");
71 Privat WebColor objTotalBGColor = new WebColor ("# FFC0C0 ");
72 Privat WebColor objThankYouText = new WebColor ("# 000080 ");
73 Privat CeteDAO ceteDAO = null;
74
75 öffentliche MyInvoice () {
76 / / Top Teil der Rechnung
77 template.getElements (). Hinzufügen ( neue Bezeichnung ( " Nordwind \ N1234 " +
78 " International Drive \ nAnywhere , Erde ABC123 " , 56 , 0, 200 , 44,
79 Font.getHelvetica ()) );
80 template.getElements (). Hinzufügen ( neue Bezeichnung ( "Rechnung" , 0, 0 , 540 , 18,
81 Font.getHelveticaBold () , 18, TextAlign.RIGHT ));
82
83 template.getElements (). Hinzufügen ( neue PageNumberingLabel ( "Seite %% % % der SP %% %% ST " ,
84 450 , 253, 90 , 20, Font.getHelveticaBold () , 12, TextAlign.CENTER ));
85
86 / / Add Rechnungsdetails Vorlage
. Template.getElements 87 () hinzufügen ( getDetailsGroup ());
88
89 / / Add BillTo Vorlage
. Template.getElements 90 () hinzufügen ( getBillToGroup ());
91
92 / / Add ShipTo Vorlage
. Template.getElements 93 () hinzufügen ( getShipToGroup ());
94
95 / / Add Line Elementvorlage
. Template.getElements 96 () hinzufügen ( getLineItemGroup ());
97
98 / / Das Bild wird auf der Seite Vorlage

99 setPageTemplateImage ();
100}
101
102
103 öffentliche Vorlage getTemplate () {
104 Rück Vorlage;
105 }
106
107 Privat Gruppe getDetailsGroup () {
108 / / Gibt eine Gruppe, welche die Detailvorlage
109 Gruppe objGroup = new Group ( );
110
111 objGroup.add ( new Rectangle (340 , 24, 200 , 72, Grayscale.getBlack ()
112 objBGColor , 0,5 f ));
113 objGroup.add ( neue Bezeichnung ( "Order -ID: " , 343 , 25, 85 , 12,
114 Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
115 objGroup.add ( neue Bezeichnung ( "Order Date: " , 343 , 39, 85 , 12,
116 Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
117 objGroup.add ( neue Bezeichnung ( " Kunden-ID " , 343 , 53, 85 , 12,
118 Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
119 objGroup.add ( neue Bezeichnung ( " Versanddatum " , 343 , 67, 85 , 12,
120 Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
121 objGroup.add ( neue Bezeichnung ( "Order -ID: " , 343 , 25, 85 , 12,
122 Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
123 objGroup.add ( neue Bezeichnung ( " geliefert Via: " , 343, 81, 85 , 12,
124 Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
125
126 Rück objGroup ;
127 }
128
129 Privat Gruppe getBillToGroup () {
130 / / Gibt eine Gruppe mit dem Gesetzentwurf zur Vorlage
131 Gruppe objGroup = new Group ( );
132
133 objGroup.add ( new Rectangle (25 , 120, 200 , 90, 0,5 f ));
134 objGroup.add (new Line ( 25 , 136, 225 , 136, 0,5 f ));
135 objGroup.add ( neue Bezeichnung ( " Bill To:" , 28 , 121, 200 , 12,
136 Font.getHelveticaBold () 12) );
137
138 Rück objGroup ;
139 }
140
141 Privat Gruppe getShipToGroup () {
142 / / Gibt eine Gruppe das Schiff enthält, Vorlage
143 Gruppe objGroup = new Group ( );
144
145 objGroup.add ( new Rectangle (315 , 120, 200 , 90, 0,5 f ));
146 objGroup.add ( neue Linie ( 315 , 136, 515 , 136, 0,5 f ));
147 objGroup.add ( neue Bezeichnung ( "Ship To:" , 318 , 121, 200 , 12,

148 Font.getHelveticaBold () 12) );
149
150 Rück objGroup ;
151 }
152
153 Privat Gruppe getLineItemGroup () {
154
155 / / Gibt eine Gruppe, welche die Positionen Vorlage
156 Gruppe objGroup = new Group ( );
157
158 for (int i = 0; i < 10; i + +) {
159 objGroup.add ( new Rectangle (0 , 306 + i * 36 , 540 , 18, objBGColor ,
160 objBGColor ));
161 }
162 objGroup.add ( new Rectangle (450 , 250, 90 , 20, 0,5 f ));
163 objGroup.add ( new Rectangle (450 , 702, 90 , 18, objTotalBGColor ,
164 objTotalBGColor ));
165 objGroup.add ( new Rectangle (0 , 270, 540 , 450, 0,5 f ));
166 objGroup.add (new Line ( 0 , 288, 540 , 288, 0,5 f ));
167 objGroup.add (new Line ( 0 , 666, 540 , 666, 0,5 f ));
168 objGroup.add (new Line ( 60 , 270, 60 , 666, 0,5 f ));
169 objGroup.add ( neue Linie ( 360 , 270, 360 , 720, 0,5 f ));
170 objGroup.add ( neue Linie ( 450 , 270, 450 , 720, 0,5 f ));
171 objGroup.add ( neue Linie ( 450 , 702, 540 , 702, 0,5 f ));
172 objGroup.add ( neue Bezeichnung ( "Menge ", 0 , 272, 60 , 12,
173 Font.getHelveticaBold () , 12, TextAlign.CENTER ));
174 objGroup.add ( neue Bezeichnung ( " Beschreibung" , 60 , 272, 300 , 12,
175 Font.getHelveticaBold () , 12, TextAlign.CENTER ));
176 objGroup.add ( neue Bezeichnung ( " Einheitspreis " , 360 , 272, 90 , 12,
177 Font.getHelveticaBold () , 12, TextAlign.CENTER ));
178 objGroup.add ( neue Bezeichnung ( " Preis " , 450, 272 , 90 , 12,
179 Font.getHelveticaBold () , 12, TextAlign.CENTER ));
180
181 objGroup.add ( neue Bezeichnung ( "Vielen Dank für Ihren Einkauf. \ NWir " +
182 " schätzen Ihr Geschäft. " , 5, 672, 350 , 54,
183 Font.getHelveticaBold () , 18, objThankYouText ));
184 objGroup.add ( neue Bezeichnung ( " Zwischensumme " , 364, 668 , 82 , 12,
185 Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
186 objGroup.add ( neue Bezeichnung ( " Fracht" , 364, 686 , 82 , 12,
187 Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
188 objGroup.add ( neue Bezeichnung ( "Total" , 364, 704 , 82 , 12,
189 Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
190 Rück objGroup ;
191 }
192
193 private void setPageTemplateImage () {
194 / / Fügt das Bild, um Seitenvorlage , wenn es nicht bereits hinzugefügt
195 if (! PageTemplateImagesSet ) {
196 try {

197 template.getElements (). Hinzufügen ( neues Bild ( getServletContext ()
198 . GetRealPath ( "images / DPDFLogo.png ")
199 0 , 0, 0.16f ));
200 } catch ( FileNotFoundException ex) {
201 ex.printStackTrace ( System.err );
202 }
203 pageTemplateImagesSet = true;
204 }
205 }
206
207 public void draw ( Anschlussverbindung, Dokument -Dokument
208 InvoiceNumber int ) {
209 / / Jede Rechnung sollte einen neuen Abschnitt beginnen
210 document.getSections () begin () .
211 / / Ruft die Rechnungsdaten
212 Vektor v1 = getInvoiceData (Anschluss, InvoiceNumber );
213 e1 = v1.elements ();
214
215 / / Fügt die Rechnung, wenn es Daten gibt,
216 if ( e1 ! = Null) {
217 / / Zeichnet die Rechnungsdaten , gibt eine Seite, Objekt, wenn es
218 / / die letzte Seite
219 Seite objLastPage = drawInvoiceData (Dokument) ;
220 / / Zeichnet aditional Seiten ggf.
221 while ( objLastPage == null) {
222 objLastPage = drawInvoiceData (Dokument) ;
223 }
224 / / Zeichnet die Summen auf den Grund der letzten Seite der
225 / / Rechnung
226 drawTotals ( ceteDAO , objLastPage );
227 }
228
229 }
230
231 privaten Seite drawInvoiceData (Document document) {
232 / / Spuren , wenn die Rechnung fertig
233 invoiceFinished boolean = true;
234 / / Spuren die y-Position auf der Seite
235
236 if ( e1.hasMoreElements ()) {
237 ceteDAO = ( CeteDAO ) e1.nextElement ();
238 / / Setzt die Frachtmenge
239 Fracht ceteDAO.getFreight = ();
240 }
241
242 yOffset = 288 ;
243 / / eine Seite für die Rechnung erstellen
244 Seite objPage = new -Seite ( PageSize.LETTER ,
245 PageOrientation.PORTRAIT , 36.0f );

246 / / Add Details zu der Rechnung
247 drawInvoiceDetails ( ceteDAO , objPage );
248 / / In den Gesetzentwurf Adresse
249 drawBillTo ( ceteDAO , objPage );
250 / / In den Schiff -Adresse
251 drawShipTo ( ceteDAO , objPage );
252
253 / / In Einzelposten auf der Rechnung
254 drawLineItem ( ceteDAO , objPage );
255
256 while ( e1.hasMoreElements ()) {
257 / / brechen, wenn an der Unterseite der Seite
258 if ( yOffset > = 666 ) {
259 invoiceFinished = false;
260 break;
261 }
262 ceteDAO = ( CeteDAO ) e1.nextElement ();
263 / / In Einzelposten auf der Rechnung
264 drawLineItem ( ceteDAO , objPage );
265 }
266
267 / / Seite hinzufügen zu dem Dokument
268 document.getPages () hinzufügen ( objPage ) .
269
270 / / Wenn Die Rechnung wird zurück die Seite sonst null zurück , so beendet
271 / / wird eine weitere Seite hinzugefügt werden
272 if ( invoiceFinished ) {
273 Rück objPage ;
274 } else {
275 objPage.getElements (). Hinzufügen ( neue Bezeichnung ( "Fortsetzung ...", 454 , 704 , 82,
276 12, Font.getHelvetica () , 12, TextAlign.RIGHT ));
277 return null ;
278 }
279 }
280
281 private void drawInvoiceDetails ( CeteDAO ceteDAO , Seite Seite ) {
282
283 / / Fügt Rechnungsdetails auf die Seite
284 page.getElements (). Hinzufügen ( neue Bezeichnung ( String.valueOf ( ceteDAO
285 . GetOrderID ()) , 437, 25, 100 , 12, Font.getHelvetica ()
286 12) );
287 Simpledateformat= new Simple ( "d MMM yyyy ");
288 page.getElements (). Hinzufügen ( neue Bezeichnung ( dateFormat.format ( ceteDAO
289 . GetOrderDate ()) , 437 , 39, 100 , 12,
290 Font.getHelvetica () 12) );
291 page.getElements (). Hinzufügen ( neue Bezeichnung ( String.valueOf ( ceteDAO
292 . GetCustomerID ()) , 437 , 53, 100 , 12,
293 Font.getHelvetica () 12) );
294 Datum date = ceteDAO.getShippedDate ();

295 if ( date! = Null) {
296 page.getElements (). Hinzufügen ( neue Bezeichnung ( dateFormat.format (Datum) ,
297 437 , 67, 100 , 12, Font.getHelvetica () 12) );
298 }
299 page.getElements (). Hinzufügen ( neue Bezeichnung ( ceteDAO.getShipperName ()
300 437 , 81, 100 , 12, Font.getHelvetica () 12) );
301 page.getElements (). Hinzufügen ( neue Interleaved25 ( String.valueOf ( ceteDAO
. 302 getOrderID ()) , 380, 4, 18, false) );
303
304 }
305
306 private void drawBillTo ( CeteDAO ceteDAO , Seite Seite ) {
307
308 / / Fügt Rechnung zu adressieren
309 String billToAddress = ceteDAO.getBillName () + "\ n " +
310 ceteDAO.getBillAddress () + "\ n " +
311 ceteDAO.getBillCity () + "," +
312 ceteDAO.getBillPostalCode () + "\ n " +
313 ceteDAO.getBillCountry ();
314 page.getElements (). Hinzufügen ( neue Textarea ( billToAddress , 28 , 139,
315 194 , 49, Font.getHelvetica () , 12) );
316
317 }
318
319 private void drawShipTo ( CeteDAO ceteDAO , Seite Seite ) {
320
321 / / Fügt Schiff, um Adresse
322 String shipToAddress = ceteDAO.getShipName () + "\ n " +
323 ceteDAO.getShipAddress () + "\ n " +
324 ceteDAO.getShipCity () + "," +
325 ceteDAO.getShipPostalCode () + "\ n " +
326 ceteDAO.getShipCountry ();
327 page.getElements (). Hinzufügen ( neue Textarea ( shipToAddress , 318 , 139,
328 194 , 49, Font.getHelvetica () , 12) );
329
330 }
331
332 private void drawLineItem ( CeteDAO ceteDAO , Seite Seite ) {
333 / / Fügt einen Posten auf der Rechnung
334 BigDecimal Menge = new BigDecimal (0.0 );
335 BigDecimal unitprice = new BigDecimal (0.0 );
336 Menge = new BigDecimal ( ceteDAO.getQuantity ());
337 unitprice = ceteDAO.getUnitPrice ();
338
339 BigDecimal Linetotal = unitPrice.multiply (Menge );
340 Zwischensumme = subTotal.add ( Linetotal );
341
342 page.getElements (). Hinzufügen ( neue Bezeichnung ( quantity.toString () , 4,
343 3 + yOffset , 52 , 12, Font.getHelvetica () , 12,

344 TextAlign.RIGHT ));
345
346 page.getElements (). Hinzufügen ( neue Bezeichnung ( ceteDAO.getProductName ()
347 64 , 3 ​​+ yOffset , 292 , 12, Font.getHelvetica () , 12) );
348
349 unitprice = unitPrice.setScale (2, BigDecimal.ROUND_HALF_EVEN );
Linetotal 350 = lineTotal.setScale (2, BigDecimal.ROUND_HALF_EVEN );
351 DecimalFormat df = new DecimalFormat ("# , # # 0.00 ");
352 page.getElements (). Hinzufügen ( neue Bezeichnung ( df.format ( unitprice
353 . Double ()) , 364, 3 + yOffset , 82 , 12,
354 Font.getHelvetica () , 12, TextAlign.RIGHT ));
355 page.getElements (). Hinzufügen ( neue Bezeichnung ( df.format ( Linetotal
356 . Double ()) , 454, 3 + yOffset , 82 , 12,
357 Font.getHelvetica () , 12, TextAlign.RIGHT ));
358
359 yOffset + = 18;
360 }
361
362 private void drawTotals ( CeteDAO ceteDAO , Seite Seite ) {
363 / / In den Summen der Unterseite der Rechnung
364 BigDecimal Grandtotal = subTotal.add (Fracht );
365 Zwischensumme = subTotal.setScale (2, BigDecimal.ROUND_HALF_EVEN );
366 Fracht = freight.setScale (2, BigDecimal.ROUND_HALF_EVEN );
Grandtotal 367 = grandTotal.setScale (2, BigDecimal.ROUND_HALF_EVEN );
368 DecimalFormat df = new DecimalFormat ("# , # # 0.00 ");
369 page.getElements (). Hinzufügen ( neue Bezeichnung ( df.format (Zwischensumme
370 . Double ()) , 454, 667 , 82 , 12, Font.getHelvetica () , 12,
371 TextAlign.RIGHT ));
372 page.getElements (). Hinzufügen ( neue Bezeichnung ( df.format (Fracht
373 . Double ()) , 454, 685 , 82 , 12, Font.getHelvetica () , 12,
374 TextAlign.RIGHT ));
375 page.getElements (). Hinzufügen ( neue Bezeichnung ( df.format ( Grandtotal
376 . Double ()) , 454, 703 , 82 , 12, Font.getHelvetica () , 12,
377 TextAlign.RIGHT ));
378 }
379
380 Privat Vektor getInvoiceData (Anschluss -Anschluss,
381 InvoiceNumber int ) {
382 Vektor v1 = null;
383 / / Erstellt ein ResultSet für die invioce
384 try {
385 PreparedStatement ps = Connection.prepareStatement (
386 "SELECT o.OrderID , o.CustomerID , o.OrderDate , o.ShippedDate , Fracht, " +
387 " o.ShipName , o.ShipAddress , o.ShipCity , o.ShipPostalCode , o.ShipCountry , " +
388 " c.CompanyName als BillName , c.Address als BillAddress , " +
389 " c.City als BillCity , c.PostalCode als BillPostalCode , " +
390 " c.Country als BillCountry , s.CompanyName als ShipperName , " +
391 " p.ProductName , od.UnitPrice , od.Quantity " +
392 " FROM Bestellungen o " +

393 "JOIN Kunden c ON" +
394 " o.CustomerID c.CustomerID = " +
395 "JOIN Shippers s ON" +
396 " o.ShipVia s.ShipperID = " +
397 "JOIN [Order Details] od ON" +
398 " o.OrderID od.OrderID = " +
399 "JOIN Produkte p ON" +
400 " od.ProductID p.ProductID = " +
401 "Wo o.OrderID = ");
402
403 ps.setInt (1, InvoiceNumber );
404 ResultSet rs = ps.executeQuery ();
405 v1 = new Vector ( 1,1) ;
406 while ( rs.next ()) {
407 CeteDAO ceteDAO = new CeteDAO ( rs.getInt (1) , rs.getString (2) ,
408 rs.getDate (3) , rs.getDate (4) ,
409 rs.getBigDecimal (5) , rs.getString (6) ,
410 rs.getString (7) , rs.getString (8) ,
411 rs.getString (9) , rs.getString (10) ,
412 rs.getString (11) , rs.getString (12) ,
413 rs.getString (13) , rs.getString (14) ,
414 rs.getString (15) , rs.getString (16)
415 rs.getString (17) , rs.getBigDecimal (18)
416 rs.getShort (19 ));
417 v1.add ( ceteDAO );
418 }
419 } catch ( SQLException ex1 ) {
420 ex1.printStackTrace ( System.err );
421 }
422 Rück v1 ;
423 }
424 }
425
426 Klasse CeteDAO {
427
428 private int orderID ;
429 private String customerID ;
430 Privat Datum orderdate ;
431 Privat Datum ShippedDate ;
432 Privat BigDecimal Fracht;
433 private String Liefername ;
434 private String shipAddress ;
435 private String ShipCity ;
436 private String ShipPostalCode ;
437 private String Bestimmungsland ;
438 private String billName ;
439 private String billAddress ;
440 private String billCity ;
441 private String billPostalCode ;

442 private String billCountry ;
443 private String shipperName ;
444 private String product ;
445 Privat BigDecimal unitprice ;
446 PrivatkurzMenge ;
447
448 öffentliche CeteDAO (int orderID , String customerID , Datum orderdate ,
449 Datum Lieferdatum , BigDecimal Fracht , String Schiffsnamen ,
450 shipAddress String , String ShipCity , String ShipPostalCode ,
451 ShipCountry String , String billName , String billAddress ,
452 billCity String , String billPostalCode , String billCountry ,
453 shipperName String , String product , BigDecimal unitprice ,
454 Kurz Menge ) {
455 this.orderID = orderID ;
456 this.customerID = customerID ;
457 this.orderDate = orderdate ;
458 this.shippedDate = Lieferdatum ;
459 this.freight = Fracht;
460 this.shipName = Liefername ;
461 this.shipAddress = shipAddress ;
462 this.shipCity = ShipCity ;
463 this.shipPostalCode = ShipPostalCode ;
464 this.shipCountry = Bestimmungsland ;
465 this.billName = billName ;
466 this.billAddress = billAddress ;
467 this.billCity = billCity ;
468 this.billPostalCode = billPostalCode ;
469 this.billCountry = billCountry ;
470 this.shipperName = shipperName ;
471 this.productName = product ;
472 this.unitPrice unitprice = ;
473 this.quantity = Menge ;
474 }
475
476 public int getOrderID () {
477 Rück orderID ;
478 }
479
480 public String getCustomerID () {
481 Rück customerID ;
482 }
483
484 öffentliche Datum getOrderDate () {
485 Rückorderdate;
486 }
487
488 öffentliche Datum getShippedDate () {
489 Rück ShippedDate ;
490 }

491
492 öffentliche BigDecimal getFreight () {
493 Rückfracht ;
494 }
495
496 public String getShipName () {
497 Rückliefername;
498 }
499
500 öffentliche getShipAddress String () {
501 Rück shipAddress ;
502 }
503
504 public String getShipCity () {
505 Rück ShipCity ;
506 }
507
508 public String getShipPostalCode () {
509 Rück ShipPostalCode ;
510 }
511
512 public String getShipCountry () {
513 Rückbestimmungsland;
514 }
515
516 public String getBillName () {
517 Rück billName ;
518 }
519
520 public String getBillAddress () {
521 Rück billAddress ;
522 }
523
524 public String getBillCity () {
525 Rück billCity ;
526 }
527
528 public String getBillPostalCode () {
529 Rück billPostalCode ;
530 }
531
532 public String getBillCountry () {
533 Rück billCountry ;
534 }
535
536 public String getShipperName () {
537 Rück shipperName ;
538 }
539

540 public String getProductName () {
541 Rückproduct;
542 }
543
544 öffentliche BigDecimal getUnitPrice () {
545 Rückunitprice;
546 }
547
548 öffentliche Kurz getQuantity () {
549 Rücklaufmenge ;
550 }
551
552
553
554
555 }
556
557
558
559
560 }

No comments:

Post a Comment