Invoicetest

package report;

import static net.sf.dynamicreports.report.builder.DynamicReports.cmp;
import static net.sf.dynamicreports.report.builder.DynamicReports.col;
import static net.sf.dynamicreports.report.builder.DynamicReports.exp;
import static net.sf.dynamicreports.report.builder.DynamicReports.grid;
import static net.sf.dynamicreports.report.builder.DynamicReports.report;
import static net.sf.dynamicreports.report.builder.DynamicReports.sbt;
import static net.sf.dynamicreports.report.builder.DynamicReports.stl;
import static net.sf.dynamicreports.report.builder.DynamicReports.type;

import java.awt.Color;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import net.sf.dynamicreports.examples.Templates;
import net.sf.dynamicreports.jasper.builder.JasperReportBuilder;
import net.sf.dynamicreports.report.base.expression.AbstractSimpleExpression;
import net.sf.dynamicreports.report.builder.column.TextColumnBuilder;
import net.sf.dynamicreports.report.builder.grid.ColumnTitleGroupBuilder;
import net.sf.dynamicreports.report.builder.style.ReportStyleBuilder;
import net.sf.dynamicreports.report.builder.style.StyleBuilder;
import net.sf.dynamicreports.report.builder.subtotal.AggregationSubtotalBuilder;
import net.sf.dynamicreports.report.constant.HorizontalAlignment;
import net.sf.dynamicreports.report.constant.PageOrientation;
import net.sf.dynamicreports.report.constant.PageType;
import net.sf.dynamicreports.report.datasource.DRDataSource;
import net.sf.dynamicreports.report.definition.ReportParameters;
import net.sf.dynamicreports.report.exception.DRException;
import net.sf.jasperreports.engine.JRDataSource;

    

    /**

     * @author Ricardo Mariaca (r.mariaca@dynamicreports.org)

     */

    public class Invoicetest {

       private InvoiceData data = new InvoiceData();

       private AggregationSubtotalBuilder<BigDecimal> totalSum;

       private JRDataSource createDataSource1() {
           
           DRDataSource dataSource = new DRDataSource("item", "quantity", "unitprice", "quantity1", "unitprice1", "quantity2", "unitprice2", "quantity3");
 
       //    dataSource.add("Notebook", 1, new BigDecimal(500));
 
        dataSource.add(null,null , null,null , null,null , null);
           return dataSource;
 
        }
       
       private JRDataSource createDataSource() {

              DRDataSource dataSource = new DRDataSource("item", "orderdate", "quantity");

              for (int i = 0; i < 20; i++) {

                 dataSource.add("Book", new Date(), (int) (Math.random() * 10) + 1);

              }

              return dataSource;

           }

       public JasperReportBuilder build() throws DRException {
           JasperReportBuilder report5 = report();
           try {
               
               ReportStyleBuilder sss=stl.style(Templates.columnStyle)

                       .setBorder(stl.pen1Point()).setBackgroundColor(Color.red);
               
               TextColumnBuilder<String>[] columns = new TextColumnBuilder[13];
               columns[0] =  col.column("Totle",       "description",      type.stringType()).setWidth(200)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss);
               columns[1] =  col.column("Totle1",       "quantity",      type.stringType()).setWidth(100)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss);
               columns[2] =  col.column("Totle2",       "unitprice",      type.stringType()).setWidth(100)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss);
               columns[3] =  col.column("Totle3",       "description1",      type.stringType()).setWidth(100)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss).setWidth(100)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss);
               columns[4] =  col.column("Totle4",       "description2",      type.stringType()).setWidth(100)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss);
               columns[5] =  col.column("Totle5",       "description1",      type.stringType()).setWidth(100)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss);
               columns[6] =  col.column("Totle6",       "description1",      type.stringType()).setWidth(100)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss);
               
               columns[7] =  col.column("Totle1",       "quanti1ty",      type.stringType()).setWidth(100)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss);
               columns[8] =  col.column("Totle2",       "unitp1rice",      type.stringType()).setWidth(100)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss);
               columns[9] =  col.column("Totle3",       "descri1ption1",      type.stringType()).setWidth(100)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss).setWidth(100)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss);
               columns[10] =  col.column("Totle4",       "desc1ription2",      type.stringType()).setWidth(100)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss);
               columns[11] =  col.column("Totle5",       "descr1iption1",      type.stringType()).setWidth(100)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss);
               columns[12] =  col.column("Totle6",       "descr1iption1",      type.stringType()).setWidth(100)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss);
            //   columns[7] =  col.column("Totle7",       "item7",      type.stringType());
               
               StyleBuilder columnStyle = stl.style(Templates.columnStyle)

                       .setBorder(stl.pen1Point()).setBackgroundColor(Color.red);
               ReportStyleBuilder s1ss=stl.style(Templates.columnStyle)

               .setBorder(stl.pen1Point()).setBackgroundColor(Color.red);
               TextColumnBuilder<Integer> quantityColumn11 = col.column("Quantity", "quantity", type.integerType()).setWidth(100)
                       .setHorizontalAlignment(HorizontalAlignment.CENTER).setTitleStyle(sss);
              
      TextColumnBuilder<BigDecimal> unitPriceColumn0 = col.column("Unit Price", "unitprice", Templates.currencyType).setWidth(100);

               
               TextColumnBuilder<String> colaa0 = col.column("Unit Price", "description1", type.stringType());
               TextColumnBuilder<String> colbb0 = col.column("Unit Price", "description2", type.stringType());

               TextColumnBuilder<String> colaa10 = col.column("Unit Price", "description1", type.stringType());
               TextColumnBuilder<String> colbb10 = col.column("Unit Price", "description2", type.stringType());

               TextColumnBuilder<String> colaa20 = col.column("Unit Price", "description1", type.stringType());
               TextColumnBuilder<String> colbb20 = col.column("Unit Price", "description2", type.stringType());

               
               TextColumnBuilder<String> priceColumn0 = colaa0

                       .setTitle("Price")

                       .setDataType(type.stringType());

                    //vat = price * tax
               TextColumnBuilder<String> priceColumn20 = colbb0

                       .setTitle("Price1")

                       .setDataType(type.stringType());
                   
               TextColumnBuilder<String> priceColumna0 = colaa10

                       .setTitle("aPrice")

                       .setDataType(type.stringType());

                    //vat = price * tax
               TextColumnBuilder<String> priceColumn2a0 = colbb10

                       .setTitle("aPrice1")

                       .setDataType(type.stringType());
               
               TextColumnBuilder<String> priceColumnb0 = colaa20

                       .setTitle("bPrice")

                       .setDataType(type.stringType());

                    //vat = price * tax
               TextColumnBuilder<String> priceColumn2b0 = colbb20

                       .setTitle("bPrice1")

                       .setDataType(type.stringType());
          
               //total = price + vat
               ColumnTitleGroupBuilder totalColumn0 = grid.titleGroup("Total Price 1", priceColumn0, priceColumn20);
               ColumnTitleGroupBuilder totalColumn10 = grid.titleGroup("Total Price 2", priceColumna0, priceColumn2a0);
               ColumnTitleGroupBuilder totalColumn20 = grid.titleGroup("Total Price 3", priceColumnb0, priceColumn2b0);

               
               
               

              StyleBuilder subtotalStyle = stl.style(columnStyle)

                 .bold();

              StyleBuilder shippingStyle = stl.style(Templates.boldStyle)

                 .setHorizontalAlignment(HorizontalAlignment.RIGHT);
              
               report5 =  report()//create new report design
               .setTemplate(Templates.reportTemplate)
.setTitleStyle(columnStyle)
         //    .setColumnStyle(columnStyle)

        //     .setSubtotalStyle(columnStyle)
                              .columns(//add columns
                                      columns)
                          
                              .setDataSource(createDataSource1());//set datasource
               
                         //     .show();//create and show report
               
                         } catch (Exception e) {
               
                            e.printStackTrace();
               
                         }
           
            String titlev = "test title";

          JasperReportBuilder report = report();

         

          //init styles

          StyleBuilder columnStyle = stl.style(Templates.columnStyle)

             .setBorder(stl.pen1Point());

          StyleBuilder subtotalStyle = stl.style(columnStyle)

             .bold();

          StyleBuilder shippingStyle = stl.style(Templates.boldStyle)

             .setHorizontalAlignment(HorizontalAlignment.RIGHT);

    

          //init columns

          TextColumnBuilder<Integer> rowNumberColumn = col.reportRowNumberColumn()

             .setFixedColumns(2)

             .setHorizontalAlignment(HorizontalAlignment.CENTER);

//          TextColumnBuilder<String> descriptionColumn = col.column("Description", "description", type.stringType())
//
//             .setFixedWidth(250);
         
          TextColumnBuilder<String> quantityColumn = col.column("Quantity", "quantity", type.stringType()).setWidth(100)

             .setHorizontalAlignment(HorizontalAlignment.CENTER);

          TextColumnBuilder<BigDecimal> unitPriceColumn = col.column("Unit Price", "unitprice", Templates.currencyType).setWidth(100);

          
          TextColumnBuilder<String> colaa = col.column("Unit Price", "description1", type.stringType());
          TextColumnBuilder<String> colbb = col.column("Unit Price", "description2", type.stringType());

          TextColumnBuilder<String> colaa1 = col.column("Unit Price", "description1", type.stringType());
          TextColumnBuilder<String> colbb1 = col.column("Unit Price", "description2", type.stringType());

          TextColumnBuilder<String> colaa2 = col.column("Unit Price", "description1", type.stringType());
          TextColumnBuilder<String> colbb2 = col.column("Unit Price", "description2", type.stringType());

          
          TextColumnBuilder<String> priceColumn = colaa

                  .setTitle("Price")

                  .setDataType(type.stringType());

               //vat = price * tax
          TextColumnBuilder<String> priceColumn2 = colbb

                  .setTitle("Price1")

                  .setDataType(type.stringType());
              
          TextColumnBuilder<String> priceColumna = colaa1

                  .setTitle("aPrice")

                  .setDataType(type.stringType());

               //vat = price * tax
          TextColumnBuilder<String> priceColumn2a = colbb1

                  .setTitle("aPrice1")

                  .setDataType(type.stringType());
          
          TextColumnBuilder<String> priceColumnb = colaa2

                  .setTitle("bPrice")

                  .setDataType(type.stringType());

               //vat = price * tax
          TextColumnBuilder<String> priceColumn2b = colbb2

                  .setTitle("bPrice1")

                  .setDataType(type.stringType());
     
          //total = price + vat
          ColumnTitleGroupBuilder totalColumn = grid.titleGroup("Total Price 1", priceColumn, priceColumn2);
          ColumnTitleGroupBuilder totalColumn1 = grid.titleGroup("Total Price 2", priceColumna, priceColumn2a);
          ColumnTitleGroupBuilder totalColumn2 = grid.titleGroup("Total Price 3", priceColumnb, priceColumn2b);
          
          
          
          TextColumnBuilder<String> colaa0 = col.column("Unit Price", "description1", type.stringType());
          TextColumnBuilder<String> colbb0 = col.column("Unit Price", "description2", type.stringType());

          TextColumnBuilder<String> colaa10 = col.column("Unit Price", "description1", type.stringType());
          TextColumnBuilder<String> colbb10 = col.column("Unit Price", "description2", type.stringType());

          TextColumnBuilder<String> colaa20 = col.column("Unit Price", "description1", type.stringType());
          TextColumnBuilder<String> colbb20 = col.column("Unit Price", "description2", type.stringType());

          
          TextColumnBuilder<String> priceColumn0 = colaa0

                  .setTitle("Price")

                  .setDataType(type.stringType());

               //vat = price * tax
          TextColumnBuilder<String> priceColumn20 = colbb0

                  .setTitle("Price1")

                  .setDataType(type.stringType());
              
          TextColumnBuilder<String> priceColumna0 = colaa10

                  .setTitle("aPrice")

                  .setDataType(type.stringType());

               //vat = price * tax
          TextColumnBuilder<String> priceColumn2a0 = colbb10

                  .setTitle("aPrice1")

                  .setDataType(type.stringType());
          
          TextColumnBuilder<String> priceColumnb0 = colaa20

                  .setTitle("bPrice")

                  .setDataType(type.stringType());

               //vat = price * tax
          TextColumnBuilder<String> priceColumn2b0 = colbb20

                  .setTitle("bPrice1")

                  .setDataType(type.stringType());
     
          //total = price + vat
          ColumnTitleGroupBuilder totalColumn0 = grid.titleGroup("Total Price 1", priceColumn0, priceColumn20);
          ColumnTitleGroupBuilder totalColumn10 = grid.titleGroup("Total Price 2", priceColumna0, priceColumn2a0);
          ColumnTitleGroupBuilder totalColumn20 = grid.titleGroup("Total Price 3", priceColumnb0, priceColumn2b0);
          
          
          
          
        
//          ColumnGridComponentBuilder a ;
//          ListType type = ListType.HORIZONTAL;
//         // DRColumnGrid columnGrid = new DRColumnGrid(ListType.HORIZONTAL);
//          
//          DRColumnGrid columnGrid = new DRColumnGrid(type);
//            for (ColumnGridComponentBuilder component : components) {
//                columnGrid.addComponent(component.build());
//            }

          ReportStyleBuilder sss333 = stl.style(Templates.columnStyle)
                .setBorder(stl.pen1Point()).setBackgroundColor(Color.red);
         // PageType.A4.getWidth()
          net.sf.dynamicreports.report.constant.PageType a44 = net.sf.dynamicreports.report.constant.PageType.A4;
          a44.setHeight(666);
          a44.setWidth(19999);
         
          report
             .setPageFormat(PageType.A4, PageOrientation.LANDSCAPE)
             .setTemplate(Templates.reportTemplate)             
             .setColumnStyle(columnStyle)
             .setSubtotalStyle(subtotalStyle)

//                  grid.horizontalColumnGridList(
//                          quantityColumn, unitPriceColumn, totalColumn,totalColumn1,totalColumn2),
//                  grid.horizontalColumnGridList(
//                          quantityColumn11, unitPriceColumn0, totalColumn0,totalColumn10,totalColumn20))
//             
               .columnGrid(
                      quantityColumn, unitPriceColumn, totalColumn,totalColumn1,totalColumn2, totalColumn0,totalColumn10,totalColumn20)
        //       .columnGrid(ListType.HORIZONTAL,  quantityColumn, unitPriceColumn, totalColumn,totalColumn1,totalColumn2, totalColumn,totalColumn1,totalColumn2)
           //    .columnGrid(ListType.HORIZONTAL,  quantityColumn, unitPriceColumn, totalColumn,totalColumn1,totalColumn2)
               
//                      .columnGrid(
//                      quantityColumn11, unitPriceColumn, totalColumn,totalColumn1,totalColumn2)
                      .columns(
                       quantityColumn, unitPriceColumn,priceColumn, priceColumn2,priceColumna, priceColumn2a,priceColumnb, priceColumn2b,priceColumn0, priceColumn20,priceColumna0, priceColumn2a0,priceColumnb0, priceColumn2b0)
               .summary(cmp.subreport(report5))
//                       .columnFooter(cmp.subreport(report5))
           //             .summary(cmp.subreport(report5))
                       .pageFooter(

                Templates.footerComponent)

             .setDataSource(createInvoice());

          return report;

       }

       private class TotalPaymentExpression extends AbstractSimpleExpression<String> {

          private static final long serialVersionUID = 1L;

    

          @Override

          public String evaluate(ReportParameters reportParameters) {

return null;
          }

       }

    

       public static void main(String[] args) {

           Invoicetest design = new Invoicetest();

          try {

             JasperReportBuilder report = design.build();

             report.show();

          } catch (DRException e) {

             e.printStackTrace();

          }

       }
       private List<Item> createInvoice() {
           List<Item> items = new ArrayList<Item>();
           items.add(createItem("Notebook", "1111111111111wwwwwwwwwwwwwwwwwww111", new BigDecimal(1000)));
           items.add(createItem("DVD", "11111111111wwwwwwwwww11111", new BigDecimal(40)));
           items.add(createItem("Book", "111111wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww1111111111", new BigDecimal(10)));
           items.add(createItem("Phone", "1111www111111111111", new BigDecimal(200)));
           for (int i = 0; i < 50;i++) {
               items.add(createItem("Notebook", "1111111111111wwwwwwwwwwwwwwwwwww111", new BigDecimal(1000)));
                  items.add(createItem("DVD", "11111111111wwwwwwwwww11111", new BigDecimal(40)));
                  items.add(createItem("Book", "111111wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww1111111111", new BigDecimal(10)));
                  items.add(createItem("Phone", "1111www111111111111", new BigDecimal(200)));
                  
           }
           return items;
       }
       
       private Item createItem(String description, String quantity, BigDecimal unitprice) {
           Item item = new Item();
           item.setDescription(description);
           item.setQuantity(quantity);
           item.setUnitprice(unitprice);
           item.setDescription1("aaa");
           item.setDescription2("bbb");
           return item;
       }
       
       
       private List<Item> createInvoice1() {
              List<Item> items = new ArrayList<Item>();
              items.add(createItem1("Notebook", "1111111111111111", new BigDecimal(1000)));
              items.add(createItem1("DVD", "1111111111111111", new BigDecimal(40)));
              items.add(createItem1("Book", "1111111111111111", new BigDecimal(10)));
              items.add(createItem1("Phone", "1111111111111111", new BigDecimal(200)));
              
              return items;
          }
          
          private Item createItem1(String description, String quantity, BigDecimal unitprice) {
              Item item = new Item();
              item.setDescription(description);
              item.setQuantity(quantity);
              item.setUnitprice(unitprice);
              item.setDescription1("aaa");
              item.setDescription2("bbb");
              return item;
          }
       
        
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值