[jsgrid] jsgrid 안에 데이터 가져오기


jsgrid 안에 데이터를 읽어와야 하는 경우가 있습니다.

한번 알아보도록 하겠습니다.





네모 안에 데이터를 가져와보도록 하겠습니다.



head 부분

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- jsgrid 사용을 위한 jquery를 cdn 연결-->
<link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jsgrid/1.5.3/jsgrid.min.css" />
<link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jsgrid/1.5.3/jsgrid-theme.min.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jsgrid/1.5.3/jsgrid.min.js"></script>
<!-- jsgrid 사용을 위한 필요한 요소 cdn 연결-->

<title>grid 테스트 페이지</title>
</head>




body 부분


<body>

<button id="get_data"> jsgrid 데이터 가져오기 </button>
<!-- grid_data 가져오기 -->

<div id="jsGrid"></div>
<!-- jsGrid 생성을 합니다.-->
<script>
//grid에 들어갈 초기 내용
var clients = [{
"Name": "Otto Clay",
"Age": 25,
"Country": 1,
"Address": "Ap #897-1459 Quam Avenue",
"Married": false
},
{
"Name": "Connor Johnston",
"Age": 45,
"Country": 2,
"Address": "Ap #370-4647 Dis Av.",
"Married": true
},
{
"Name": "Lacey Hess",
"Age": 29,
"Country": 3,
"Address": "Ap #365-8835 Integer St.",
"Married": false
},
{
"Name": "Timothy Henson",
"Age": 56,
"Country": 1,
"Address": "911-5143 Luctus Ave",
"Married": true
},
{
"Name": "Ramona Benton",
"Age": 32,
"Country": 3,
"Address": "Ap #614-689 Vehicula Street",
"Married": false
}
];

$("#jsGrid").jsGrid({
width: "100%",
height: "400px",

autoload: true,
//데이터 변경, 추가, 삭제대하여 자동으로 로드되게 함
sorting: true,
//그리드 헤더 클릭시 sorting이 되게함
data: clients,
//clients를 생성된 배열를 연결함.

fields: [{
name: "Name",
type: "text",
width: 150
},
{
name: "Age",
type: "number",
width: 50
},
{
name: "Address",
type: "text",
width: 200
},
{
name: "Married",
type: "checkbox",
title: "Is Married",
sorting: false
}
]
//grid에 표현될 필드 요소
});
</script>
<script>
//버튼 클릭시 grid에 있는 값 가져오기
$("#get_data").click(function () {
var items = $("#jsGrid").jsGrid("option", "data");
//jsGrid에 데이터 가져오기
console.log(items);
});
</script>
</body>




<script>
//버튼 클릭시 grid에 있는 값 가져오기
$("#get_data").click(function () {
var items = $("#jsGrid").jsGrid("option", "data");
//jsGrid에 데이터 가져오기
console.log(items);
});
</script>


버튼 클릭시 console.log로 확인 합니다.


결과화면




블로그 이미지

미나미나미

,

[Excel] 한개의 조건 카운트하기 COUNTIF 함수 사용하기


 ■  COUNTIF 함수 


COUNTIF( 비교할 범위 , 비교할 범위내에서 조건)  


비교할 범위 :

예를 들면, A반의 국어 점수 범위.


비교할 범위내에서 조건:

A반 국어 점수가 90점인 학생



자, 아래의 예제를 통해서 

COUNTIF 함수를 다루어 보겠습니다.


여기서COUNTIF 로 구할 값은 

"무"가 0인 나라들의 개수?를 

구해보겠습니다.




= COUNTIF( 비교할 범위 , 


"무"의 열에서 0인 값을 찾아야 함으로,

"무" 열의 범위를 지정해 줍니다.



= COUNTIF( 비교할 범위 , 비교할 범위내의 조건)


"무"의 열에서 0인 값을 찾아야 함으로,

"0"이라고 입력합니다.




결과화면




블로그 이미지

미나미나미

,


[Excel] 한개의 조건 평균값 구하기 AVERAGEIF 함수 사용하기


 ■  AVERAGEIF 함수 


AVERAGEIF( 비교할 범위 , 비교할 범위내에서 조건, 평균값을 구할 범위)  


비교할 범위 :

특정한 조건으로 분류가 가능한 범위

예를 들면, A반의 국어 점수 범위.


비교할 범위내에서 조건:

A반 국어 점수가 90점인 학생


평균값을 구할 범위:

A반 국어 점수가 90점인 학생들의 수학 점수 평균.



자, 아래의 예제를 통해서 

AVERAGEIF 함수를 다루어 보겠습니다.


여기서 AVERAGEIF 로 구할 값은 

"무"가 0인 나라들의 승점 평균은?을 

구해보겠습니다.





= AVERAGEIF( 비교할 범위 , 


"무"의 열에서 0인 값을 찾아야 함으로,

"무" 열의 범위를 지정해 줍니다.






= AVERAGEIF( 비교할 범위 , 비교할 범위내에서 조건


"무"의 열에서 0인 값을 찾아야 함으로,

"0" 이라고 입력해줍니다.






= AVERAGEIF( 비교할 범위 , 비교할 범위내에서 조건 , 평균값을 구할 범위)


범위 : "무" 열 , 조건 : "0"인 값 

구할 평균값 범위 : "승점" 열 


구할 평균 값의 범위 "승점" 열을 지정해줍니다.





결과를 검증하기 위해서 
추가적으로 sumif와 countif 확인하실 수 있습니다.


33/7 = 4.714285714 임으로
averageif 함수 값이 맞음을 알 수 있습니다.







블로그 이미지

미나미나미

,

[Excel] 행렬을 바꾸기(행과 열을 뒤집기) TRANSPOSE 함수 사용하기



우리는 데이터가 있는 표현 행과 열을 바꿔서 표현해야 필요가 있다.

이럴 땐~~ 이 함수를 써보아 봐요 ~~ 

TRANSPOSE 함수~~~


예제가 나옵니다.




문제 : 행과 열을 바꿔서 표현하시오.







TRANSPOSE 함수 사용하기


1. 행과 열의 칸 만큼 지정해주세요



예제의 행렬은  7  X  4 임으로 이 행렬을 4 X 7로 바꾸려고 합니다. 

그러므로, 아래의 4 X 7의 크기만큼 드래그를 해줍니다.



2. TRANSPOSE 함수 사용하기


드래그를 한 상황에서 셀칸을 건드리지 않고, 그냥 타자를 치시면 됩니다.

그리고, "=TRANSPOSE(행렬을 바꿀 위치)" 를 입력합니다.




3. TRANSPOSE 함수 입력 후, ctrl + shift + Enter를 합니다.


"=TRANSPOSE(행렬을 바꿀 위치)" 입력한 상태에서

"ctrl + shift + Enter" 동시에 눌러줍니다.


그러면, 안에 채워지고, 위에를 보게되면 

"{=TRANSPOSE(행렬을 바꿀 위치)}"로 변할 것을 확인하실 수 있습니다.


4. 결과 화면




블로그 이미지

미나미나미

,

[java] 자바(java) int[], string [] 배열 오름,내림,역순,부분 정렬 하기



자바의 배열 int[] , String[]배열을 정렬을 알아보도록 하겠습니다.


배열의 정렬을 위해서는 Arrays.Sort() 함수를 사용해보도록 하겠습니다.


정렬를 해볼 테스트 배열


int[] origin_arr = { 10, 12, 189, 1, 7777, 89, 101, 82 };
String[] origin_fruits = {"Apple","Mango","Peach","Banana","Orange","Grapes","Watermelon","Tomato"};
String[] origin_chart = {"블랙핑크","비투비","볼빨간사춘기","방탄소년단","워너원","닐로","헤이즈"};




오름차순 정렬


int[] arr = origin_arr.clone(); // 정렬 요소
String[] fruits = origin_fruits.clone(); // 정렬 요소
String[] chart = origin_chart.clone();// 정렬 요소

Arrays.sort(arr); // 오름차순 정렬
Arrays.sort(fruits);// 오름차순 정렬
Arrays.sort(chart);// 오름차순 정렬

System.out.println("\n");
System.out.printf("정렬 arr[] : %s\n", Arrays.toString(arr));
System.out.printf("정렬 fruits[] : %s\n", Arrays.toString(fruits));
System.out.printf("정렬 chart[] : %s\n", Arrays.toString(chart));
        


정렬 결과




부분 정렬



Arrays.sort(arr, 0, 4); // 0,1,2,3 요소만 정렬
Arrays.sort(fruits, 0, 4); // 0,1,2,3 요소만 정렬
Arrays.sort(chart, 0, 4); // 0,1,2,3 요소만 정렬

System.out.println("\n");

System.out.printf("부분 정렬 arr[] : %s\n", Arrays.toString(arr));
System.out.printf("부분 정렬 arr[] : %s\n", Arrays.toString(fruits));
System.out.printf("부분 정렬 arr[] : %s\n", Arrays.toString(chart));


정렬 결과




역순,내림차순 정렬


/*
    Arrays.sort(arr , Collections.reverseOrder());
    에러가 일어납니다. Collections.reverseOrder()의 경우 ,int[] 배열 을 정렬 할 수 업습니다.
    그렇기 떄문에 Inteager 배열을 생성해서 역순 정렬을 해주거나 sort정렬한 int[]배열을 역순으로 다시 넣어주면 됩니다.
    */
Integer[] Integer_arr = new Integer[origin_arr.length];
//Integer배열을 생성합니다.
for (int i = 0; i < origin_arr.length; i++) {
    Integer_arr[i] = Integer.valueOf(origin_arr[i]);
}
Arrays.sort(fruits , Collections.reverseOrder());
//Collections.reverseOrder() 를 사용하여 String[] 배열을 정렬합니다.
                                                                                                                    
Arrays.sort(chart , Collections.reverseOrder());
//Collections.reverseOrder() 를 사용하여 String[] 배열을 정렬합니다.
                                                                                                                                                                        
System.out.println("\n");
System.out.printf("역순 정렬 arr[] : %s\n", Arrays.toString(Integer_arr));
System.out.printf("역순 정렬 arr[] : %s\n", Arrays.toString(fruits));
System.out.printf("역순 정렬 arr[] : %s\n", Arrays.toString(chart));


정렬 결과



블로그 이미지

미나미나미

,

[three.js] three.js camera perspectiveCamera 내용 알아보기 


three.js의 기초 Camera를 설정하는 부분에 대해서 알아 보겠습니다.


var camera = new THREE.PerspectiveCamera(fov, aspect_ratio, frustum_near, frustum_far);


fov : field of view , 시야각


3D게임에서 한 화면에서 어느 정도 공간을 보여줄 것인지를 설정하는 값

Fov가 90인 화면은 전방위를 1/4의 영역이 화면에 보이는 것.


평균적으로 인간의 안구는 fov 값은 보통 110도 내외

눈을 굴릴 경우, 좌우 약 220도 , 상하는 90도


즉, fov는 한번에 볼 수 있는 시야 영역

fov 값이 높다면, 같은 화면으로 더 넓은 영역을 볼 수 있지만,

상이 일그러지게 된다.



fov = 20 , 50 , 90

초록색 상자 = 첫번째로 큼, 두번째로 큼, 가장 작다

숫자가 낮을 수록 시야각이 좁아짐으로 초록색 면이 더 크게 보인다.

 

012





aspect_ratio

카메라의 가로세율 비율

일반적으로 뷰포트는 요소의 너비를 높이로 나눈 값을 사용하는 것을 권장.

뭉게지거나 찌그러짐 현상을 방지하기 위한 권장.

기본값은 1 , 정사각형 캔버스


aspect_ratio = (9/ 10) , (18 / 10) , (27 / 10) 


분자가 커질 수록 세로는 길어지고, 가로는 얇아진다


여기서

window.innerWidth/window.innerHeight의 값은

console.log(window.innerWidth / window.innerHeight)

1.8328416912487708

012



frustum_near , frustum_far


절두체 : 시야에시는 영역을 표현하는 프로그램의 부하를 줄이기 위해서 컬링을 구해야함.

글로 이해하기 어렵습니다. 참고사이트에 위키피디아의 이미지를 보시면 이해하기 쉬어요!!


원본이미지 주소 및 저작권 : http://www.falloutsoftware.com/tutorials/gl/gl0.htm


참고 사이트 : https://en.wikipedia.org/wiki/Viewing_frustum



결과화면 및 테스트




블로그 이미지

미나미나미

,

[jsgrid] jsgrid input으로 데이터(아이템) 업데이트 하기(update item)


jsgrid를 사용하다보면, 데이터를 수정 할 필요할 때가 있습니다.

input를 통해 수정하는 방법을 알아보도록 하겠습니다.


그리고, 글 마지막에 전체소스 코드가 있습니다.





1. import를 해줄 요소들

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- jsgrid 사용을 위한 jquery를 cdn 연결-->
<link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jsgrid/1.5.3/jsgrid.min.css" />
<link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jsgrid/1.5.3/jsgrid-theme.min.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jsgrid/1.5.3/jsgrid.min.js"></script>
<!-- jsgrid 사용을 위한 필요한 요소 cdn 연결-->



jsgrid를 사용하기 위해서 

jquery 1.8.3 이상 버전을 다운 또는 cdn으로 연결하셔야 합니다. 


다음으로 jsgrid js파일을 가져옵니다.




2. body 요소 내용




<label>Name : </label>
<input id="Name" type="text" placeholder="Name" style="font-size:14px;" tabindex="1">
<br>

<label>Age : </label>
<input id="Age" type="text" placeholder="Age" style="font-size:14px;" tabindex="2">
<br>

<label>Address : </label>
<input id="Address" type="text" placeholder="Address" style="font-size:14px;" tabindex="3">
<br>

<label>Married : </label>
<input id="Married" type="checkbox" tabindex="5">
<br>

<button id="update"> jsgrid 데이터 업데이트 </button>
<!-- 데이터 추가를 위해서 input 4개를 생성합니다.-->

<div id="jsGrid"></div>
<!-- jsGrid 생성을 합니다.-->



jsgrid에 데이터를 수정할 값들

Name, Age, Address, isMarried의 값들을 

input과 checkbox으로 값을 받습니다. 

그리고, script에서 값을 수정,

즉 update를 해줍니다.




3. script 요소 내용


<script>
//grid에 들어갈 초기 내용
var clients = [{
"Name": "Otto Clay",
"Age": 25,
"Country": 1,
"Address": "Ap #897-1459 Quam Avenue",
"Married": false
},
{
"Name": "Connor Johnston",
"Age": 45,
"Country": 2,
"Address": "Ap #370-4647 Dis Av.",
"Married": true
},
{
"Name": "Lacey Hess",
"Age": 29,
"Country": 3,
"Address": "Ap #365-8835 Integer St.",
"Married": false
},
{
"Name": "Timothy Henson",
"Age": 56,
"Country": 1,
"Address": "911-5143 Luctus Ave",
"Married": true
},
{
"Name": "Ramona Benton",
"Age": 32,
"Country": 3,
"Address": "Ap #614-689 Vehicula Street",
"Married": false
}
];


var update_item = {};
//수정할 데이터의 값을 임시적으로 갖고 있을 jsonobj

$("#jsGrid").jsGrid({
width: "100%",
height: "400px",

autoload: true,
//데이터 변경, 추가, 삭제대하여 자동으로 로드되게 함
sorting: true,
//그리드 헤더 클릭시 sorting이 되게함
data: clients,
//clients를 생성된 배열를 연결함.

fields: [{
name: "Name",
type: "text",
width: 150
},
{
name: "Age",
type: "number",
width: 50
},
{
name: "Address",
type: "text",
width: 200
},
{
name: "Married",
type: "checkbox",
title: "Is Married",
sorting: false
}
],
//grid에 표현될 필드 요소
//그리드안에 row를 두번 클릭하면
//input 값을 넣어줌
rowDoubleClick: function (args) {
var getData = args.item;
update_item = getData;

console.log(update_item);
$("#Name").val(getData.Name);
$("#Age").val(getData.Age);
$("#Address").val(getData.Address);
$("#Country").val(getData.Country);
$('#Married').prop("checked", getData.Married);
}
});

//버튼 클릭시 grid에 데이터를 업데이트
$("#update").click(function () {
alert("grid 데이터 업데이트");

var insert_item = {};
//데이터를 업데이트를 위해서 json object 생성
insert_item.Name = $("#Name").val();
insert_item.Age = parseInt($("#Age").val());
insert_item.Address = $("#Address").val();
insert_item.Country = $("#Country").val();
insert_item.Married = $('#Married').is(":checked") ? true : false;
//grid에 넣을 데이터를 object의 만들기

$("#jsGrid").jsGrid("updateItem", update_item, insert_item);
//jsGrid에 insert_item object 업데이트
});
</script>



그리드 생성 내용에서 double click  할 경우, 

클릭한 열의 값을 통해서 값을 수정을 합니다. 

임시적으로, 기존의 데이터의 값위치를 통해서 수정,

즉,update가 됨으로 update_item object변수를 하나 생성합니다.


4. 결과화면


See the Pen update_jsgrid by Nami (@NamuNami) on CodePen.






5. 전체소스코드



블로그 이미지

미나미나미

,

[jsgrid] jsgrid input으로 데이터(아이템) 추가하기(insert item)

jsgrid를 사용하다보면, 데이터를 추가 할 필요할 때가 있습니다.

추가하는 방법을 알아보도록 하겠습니다.


그리고, 글 마지막에 전체소스 코드가 있습니다.

중간에 코드보기가 짤리면 전체소스코드로 확인하세요.





1. import를 해줄 요소들

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- jsgrid 사용을 위한 jquery를 cdn 연결-->
<link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jsgrid/1.5.3/jsgrid.min.css" />
<link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jsgrid/1.5.3/jsgrid-theme.min.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jsgrid/1.5.3/jsgrid.min.js"></script>
<!-- jsgrid 사용을 위한 필요한 요소 cdn 연결-->



jsgrid를 사용하기 위해서 

jquery 1.8.3 이상 버전을 다운 또는 cdn으로 연결하셔야 합니다. 


다음으로 jsgrid js파일을 가져옵니다.




2. body 요소 내용




<label>Name : </label>
<input id="Name" type="text" placeholder="Name" style="font-size:14px;" tabindex="1">
<br>

<label>Age : </label>
<input id="Age" type="text" placeholder="Age" style="font-size:14px;" tabindex="2">
<br>

<label>Address : </label>
<input id="Address" type="text" placeholder="Address" style="font-size:14px;" tabindex="3">
<br>

<label>Married : </label>
<input id="Married" type="checkbox" tabindex="5">
<br>

<button id="add"> jsgrid 데이터 추가 </button>
<!-- 데이터 추가를 위해서 input 4개를 생성합니다.-->



jsgrid에 데이터를 추가할 요소들 

Name, Age, Address, isMarried의 값들을 

input과 checkbox으로 값을 받습니다. 

그리고, script에서 값을 추가해줍니다.




3. script 요소 내용


<script>
//grid에 들어갈 초기 내용
var clients = [{
"Name": "Otto Clay",
"Age": 25,
"Country": 1,
"Address": "Ap #897-1459 Quam Avenue",
"Married": false
},
{
"Name": "Connor Johnston",
"Age": 45,
"Country": 2,
"Address": "Ap #370-4647 Dis Av.",
"Married": true
},
{
"Name": "Lacey Hess",
"Age": 29,
"Country": 3,
"Address": "Ap #365-8835 Integer St.",
"Married": false
},
{
"Name": "Timothy Henson",
"Age": 56,
"Country": 1,
"Address": "911-5143 Luctus Ave",
"Married": true
},
{
"Name": "Ramona Benton",
"Age": 32,
"Country": 3,
"Address": "Ap #614-689 Vehicula Street",
"Married": false
}
];

$("#jsGrid").jsGrid({
width: "100%",
height: "400px",

autoload: true,
//데이터 변경, 추가, 삭제대하여 자동으로 로드되게 함
sorting: true,
//그리드 헤더 클릭시 sorting이 되게함
data: clients,
//clients를 생성된 배열를 연결함.

fields: [{
name: "Name",
type: "text",
width: 150
},
{
name: "Age",
type: "number",
width: 50
},
{
name: "Address",
type: "text",
width: 200
},
{
name: "Married",
type: "checkbox",
title: "Is Married",
sorting: false
}
]
//grid에 표현될 필드 요소
});
</script>
<script>
//버튼 클릭시 grid에 데이터를 추가
$("#add").click(function () {
alert("grid 데이터 추가");

var insert_item = {};
//데이터를 추가를 위해서 json object 생성
insert_item.Name = $("#Name").val();
insert_item.Age = parseInt($("#Age").val());
insert_item.Address = $("#Address").val();
insert_item.Country = $("#Country").val();
insert_item.Married = $('#Married').is(":checked") ? true : false;
//grid에 넣을 데이터를 object의 만들기
$("#jsGrid").jsGrid("insertItem", insert_item);
//jsGrid에 insert_item object 추가
});
</script>



첫번째 script 부분은 

그리드를 생성하는 부분을 담고 있습니다.


두번째 script 은 

body에서 버튼 id=add로 이벤트 발생시 

그리드에 추가가 됩니다.



4. 결과화면



See the Pen wXxPLx by Nami (@NamuNami) on CodePen.

데이터를 추가합니다.



그리드에 데이터가 추가됩니다.



5. 전체소스코드




블로그 이미지

미나미나미

,