프로그래밍/Javascript

J query :: DataTable

즐겁게 하하하 2022. 5. 30. 17:07
728x90
//main :: 메인 리스트
function dataTablePageGo(){
	
	$('#page_loading').show();   
	 		 
	// main :: 고객사 현황 목록 list 
	table_custSum = $('#custSumTable').DataTable( {
		"processing": true,
        "serverSide": true,
        "ordering" : false,  
   		"scrollX": true, 
   	 	"scrollCollapse": true, 
	   	"fixedColumns" : {
	         left: 2,
	         right: 0
	     },
        //"order": [[1, 'desc']],
		"ajax": {
			type : "POST",
			dataType : "json",
			url: "<c:url value='/cust/custSumList.do'/>",
			data: function(param) {
				param.searchField = $('#searchField').val();
				param.searchValue = $('#searchValue').val();
				param.fnTreePage = $('#fn_tree_page').val(); // layout_west
				 
				// 선택된 항목
				param.searchYear = $('#searchYear option:selected').val();
				param.searchPrd = $('#searchPrd').val(); 
            },
            dataSrc: function(json){
            	//totalCnt=json.recordsTotal;
            	//console.log(json.data); 
            	if( Number(json.data.length) > 0 ){
					sumTableFooter( json.data );
            	} 
				return json.data;
			},
			error : function(request, status, error) {
				console.log("error:"+error);
			}
    	},    	
    	// 데이터 로딩완료
    	"drawCallback": function( settings ) {
    		// 전체선택 해제
    		// $('#select-all').iCheck('uncheck');
    		$('#page_loading').hide();   
    	},
   	 	"initComplete": function(settings, json) {
	   	 	
  		},
        "columns": [ 
			{ "data": "cust_nm", "title":"고객사", "className": "col_center" , "orderable": false },
			{ "data": "prd_nm", "title":"제품", "className": "col_center" , "orderable": false },
			{ "data": "month1", "title":"1월", "className": "col_center" , "orderable": false ,
				"render": function(data, type, row, meta){ 	 
					if(data == 0) return "";
					else return viewFloat(data);
				}
			}, 
			{ "data": "month2", "title":"2월", "className": "col_center" , "orderable": false ,
				"render": function(data, type, row, meta){ 	 
					if(data == 0) return "";
					else return viewFloat(data);
				}
			}, 
			{ "data": "month3", "title":"3월", "className": "col_center" , "orderable": false ,
				"render": function(data, type, row, meta){ 	 
					if(data == 0) return "";
					else return viewFloat(data);
				}
			}, 
			{ "data": "month4", "title":"4월", "className": "col_center" , "orderable": false ,
				"render": function(data, type, row, meta){ 	 
					if(data == 0) return "";
					else return viewFloat(data);
				}
			}, 
			{ "data": "month5", "title":"5월", "className": "col_center" , "orderable": false ,
				"render": function(data, type, row, meta){ 	 
					if(data == 0) return "";
					else return viewFloat(data);
				}
			}, 
			{ "data": "month6", "title":"6월", "className": "col_center" , "orderable": false ,
				"render": function(data, type, row, meta){ 	 
					if(data == 0) return "";
					else return viewFloat(data);
				}
			}, 
			{ "data": "month7", "title":"7월", "className": "col_center" , "orderable": false ,
				"render": function(data, type, row, meta){ 	 
					if(data == 0) return "";
					else return viewFloat(data);
				}
			}, 
			{ "data": "month8", "title":"8월", "className": "col_center" , "orderable": false ,
				"render": function(data, type, row, meta){ 	 
					if(data == 0) return "";
					else return viewFloat(data);
				}
			}, 
			{ "data": "month9", "title":"9월", "className": "col_center" , "orderable": false ,
				"render": function(data, type, row, meta){ 	 
					if(data == 0) return "";
					else return viewFloat(data);
				}
			}, 
			{ "data": "month10", "title":"10월", "className": "col_center" , "orderable": false ,
				"render": function(data, type, row, meta){ 	 
					if(data == 0) return "";
					else return viewFloat(data);
				}
			}, 
			{ "data": "month11", "title":"11월", "className": "col_center" , "orderable": false ,
				"render": function(data, type, row, meta){ 	 
					if(data == 0) return "";
					else return viewFloat(data);
				}
			}, 
			{ "data": "month12", "title":"12월", "className": "col_center" , "orderable": false ,
				"render": function(data, type, row, meta){ 	 
					if(data == 0) return "";
					else return viewFloat(data);
				}
			}, 
         ],
         "createdRow": function(row, data, dataIndex) {
          	// 에러가 있는 경우는 붉은색으로 표시함
          	if(0 < data.search_result) {
          		$(row).css("background-color", "#FBE3E3");	
          	}			
         }, 
  	     "lengthMenu": [[15, 30, 50, 100, 1000],[15, 30, 50, 100, 1000]],
  	     "pageLength": 15, 
  	     "dom": '<"dt_export_div"tilpB>',
  	     "buttons":[{
  				extend:'csvHtml5',
  				exportOptions: {
  					columns: [ 0, 1, 2, 3, 4, 5, 6]
  				},
  				text: ' ',
  				footer: true,
  				bom: true,
  				className: 'exportCSV',
  				"action": newexportaction
  		  }]
	}).clear().draw(); 
	
	// main ::  datatable 위치 설정
	$("#custSalesPriceSumTable_wrapper").css('display','block');
	$("#custSalesPriceSumTable").css('width', '100%')
	$("#custSalesPriceSumTable").css('display', '')
	$("#custSalesPriceSumTable_length").css('float','left');
	$("#custSalesPriceSumTable_paginate").css('float','right');
	
	/**
	* DATA Table Content 
	*/
	 
	//[15, 30, 50, 100, 1000] 변경시 처리
	$("select[name='custSalesPriceSumTable_length']").on("change",function(){
		$('#page_loading').show();
	});
	
	//페이징 변경시 처리.
	$('#custSalesPriceSumTable').on( 'page.dt', function (){
	 	$('#page_loading').show();
	}); 
	 
	 
	 
}

//합계  계산 > tr >  append
function sumTableFooter( json_data ){
 		
	$.ajax({
		type : "POST",
		async : false,
		url : "<c:url value='/cust/custTotalSum.do'/>",
		dataType : "json",
		data : {
			"searchField" : $('#searchField').val(),
			"searchValue" : $('#searchValue').val(),
			"fnTreePage"  : $('#fn_tree_page').val(), // layout_west
			"searchYear" : $('#searchYear option:selected').val(),			
			"searchPrd"  : $('#searchPrd').val()			
		},
		timeout : 30000,
		error : function(request, status, error) {
			console.log("error:"+error);
	  	},
	  	success : function(data) { 
	  		
	  		json_data.push({
				cust_nm: "합계",
				prd_id: "",
				prd_nm: "",
				month1: data.data.month1,
				month2: data.data.month2,
				month3: data.data.month3,
				month4: data.data.month4,
				month5: data.data.month5,
				month6: data.data.month6,
				month7: data.data.month7,
				month8: data.data.month8,
				month9: data.data.month9,
				month10: data.data.month10,
				month11: data.data.month11,
				month12: data.data.month12, 
				total_cnt:json_data.length
			}); 
	  		
		}
	}); 
	 
	return json_data;
}
728x90