报表打印两段分页程序 算法

报表 开发中的,报表打印 报表打印两段分页程序 算法

报表打印 两段分页程序 算法

//正常排序,然后进行合计的算法
	public static void println(){
		List<String> list=new ArrayList<String>();
		
		list.add("1");
		list.add("1");

		list.add("2");
		list.add("2");
		list.add("2");
		
		list.add("5");
		list.add("5");

		
		String L_CUR_SP ="";
		String L_OLD_SP="";
		Integer sum=0;
		Integer all=0;
		
		for(int i=0;list!=null && i<list.size();i++){
			String name=list.get(i);
			L_CUR_SP=name;
			
			
			 
			if(!L_CUR_SP.equals(L_OLD_SP) && i!=0){
				System.out.println("合计:="+sum);
				sum=0;
			   L_OLD_SP =L_CUR_SP;
			}
			
			L_OLD_SP =L_CUR_SP;
		    sum+=Integer.parseInt(name);
			System.out.println("name"+(i+1)+"="+name);
			all+=Integer.parseInt(name);
 
		}
		
		System.out.println("合计:="+sum);
		System.out.println("总合计:="+all);
	}
结果:
name1=1
name2=1
合计:=2
name3=2
name4=2
name5=2
合计:=6
name6=5
name7=5
合计:=10
总合计:=18

 

 

public  static void printPage(){

 

int total_num=9;

int totalcount;

int totalpage;

int remaincount;

int mod;

int currentPage;

   int line_num;

 

String hn="hn";

for(int i=1;i<=1;i++){

System.out.println("<header>");

 System.out.println("<hn>"+hn+"</hn>");

 

  totalcount=9;

  

  remaincount =totalcount%total_num;

  

  totalpage  =(int)Math.floor(totalcount/total_num);

  

  if(remaincount!=0)totalpage=totalpage+1;

 

  System.out.println("<pageinfor>"+1+"/"+totalpage+"</pageinfor>");

  

 

 

 

 for(int j=1 ;j<=totalcount;j++){

 

 

 

  mod=j%total_num;

 

currentPage=(int)Math.floor(j/total_num)+1;

 

line_num=currentPage*total_num+mod-total_num;

 

 

 System.out.println("<line>");

System.out.println("<lin_pro>provered</lin_pro>");

System.out.println("<lin_num>"+line_num+"</lin_num>");

 

System.out.println("</line>");

 

if (mod==0 && remaincount!=0){

   

System.out.println("</header>");

    

System.out.println("<header>");//out other infor 

    System.out.println("<hn>"+hn+"</hn>"); 

    System.out.println("<pageinfor>"+currentPage+"/"+totalpage+"</pageinfor>");

    

    }

 

 }

 

 //循环出来一个空行

 if(remaincount!=0)

 for (int l=1;l<=total_num-remaincount;l++){ 

System.out.println("<line>");

System.out.println("<lin_pro></lin_pro>");

System.out.println("<lin_num></lin_num>");

System.out.println("</line>");  

 } 

System.out.println("</header>");

}

 

}

 

 

public  static void printPage2(){

 

List<String> list=new ArrayList<String>();

list.add("11");

list.add("11");

list.add("12");

list.add("12");

list.add("12");

list.add("12");

list.add("22");

list.add("23");

list.add("23");

list.add("33");

list.add("32");

list.add("32");

list.add("42");

list.add("43");

list.add("43");

list.add("43");

list.add("42");

list.add("42");

list.add("41");

 

String L_CUR_COMPANY_CODE="0";

String L_LST_COMPANY_CODE="0";

String L_CUR_ACC="0";

String L_LST_ACC="0";

intL_TOTAL_NUM=3;

int    L_INDEX_COUNT=1;

int    L_FLAG=0;

 

for(int i=1;i<=list.size();i++){

 

L_CUR_COMPANY_CODE=list.get(i-1).substring(0, 1);

L_CUR_ACC   =list.get(i-1).substring(1, 2);

if(!L_LST_COMPANY_CODE .equals(L_CUR_COMPANY_CODE)){

L_LST_COMPANY_CODE  =L_CUR_COMPANY_CODE;

L_INDEX_COUNT=0;

L_FLAG=1;

if(!L_LST_ACC.equals(L_CUR_ACC)){

L_LST_ACC=L_CUR_ACC;

L_INDEX_COUNT=0;

L_FLAG=1;

}

 

 

 

if (L_INDEX_COUNT % L_TOTAL_NUM ==0){ 

  L_FLAG=1;

}

 

if( L_FLAG==1){

if(i!=1){

System.out.println("</header>");

}

System.out.println("<header><pro>ct</pro>");

L_FLAG=0;

   

System.out.println(list.get(i-1));

 

L_INDEX_COUNT++;

 

}

System.out.println("</header>");

}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值