퇴근5분전

 

 그리드 헤더를 병합하는데, Custom 하기 위해서는 소스코딩이 많이 들어간다.  일일이 쳐야되니까.

 

그래서 알고리즘을 하나 만들어봐야겠다고 생각해서... 만들었는데 6시간이나 타이핑쳐서 만들었넹.

 

이런 그리드일때 이걸 병합하려면 일일이 코드를...

 

 Z

Y

 

그럼 같은 값을 가진 Cell들을 그룹지어 묶어주면 되겠지?

음... 처음엔 for .. for 를 이용해서 무작정 돌려봤는데 .. 쉽게 안묶인다. 

 

그래서 고안해 낸 방법은 자세한 내용은 담에 적고

 

 간략히  XXX를 먼저 그룹으로 묶고

 X를 구하고

 W를 구하고

 U를 구하고

 Y

 Y를 구한다.

 

곧 col > 증가시키면서 그룹을 먼저 묶은 후 하위 엘리먼트의 col 비교값을 제한한다.

row를 증가시키고 증가할수 없으면 col시작 값을 증가시키면서 그룹을 묶어 가면 된다.

 

( 소스 숨김 )

 

 

## 추가!!

 

1. x 값을 버퍼에 저장

2. row 0에서 x값과 같은 cell[ row, col ]값을 찾아 탐색. Y를 만나면 break 하면서 row0번의 colmax를 3으로 지정

3. row 1에서 x값과 같은 cell[ row, col ]값을 찾아 탐색. Z를 만나면 break 하면서 row1번의 colmax를 0으로 지정

4. 탐색 탈출.

 

4-1. 모여진 집합으로 CellRange 셋팅!

4.2. row별로 모인 카운트 정보가 다르면 가장 윗 row 컬렉션 정보만을 병합대상으로 관리하고 나머지는 버림.

 

5. row를 증가시킬수 있는지 체크 > yes : 증가 , 아니면 row별 colmax값과 현재 col시작값을 비교하여 적으면 col을 증가

6. 현재 row의 이하 row별 colmax를 초기값(colcount)으로 재지정

7. 다시 탐색. ( 마지막 cell까지 탐색을 마치면 그룹별로 CellRange 목록이 만들어짐 )

 

 

 

ㅡ.,ㅡ;; 젠장...  테스트를 할수록 버그가 텨나오넹...

쩝...

 

# 추가 수정. 버그 잡았다!! 우쒸!!

 

 이런 소스를 아래처럼 해당 위치 좌표를 구해온다.

 

몇줄이 되었든 이제야 제대로 좌표를 수집해온다.

 

이걸 이용하면 그리드 Merge된 소스를 쉽게 만들어낼 수 있게 된다.

 

## 추가 수정

  - 업로드되어 있던 소스에 대한 업데이트!! ( 약간 오류가 있는 버전으로 업데이트가 안되어있어 수정 )

  - 표 그리기 처리하면서 다시 수정된 버젼 올림.

 

## 추가 수정

 

 

   이번에 새로 단순 병합모드를 지원하는 소스를 만듬.

   - 단방향으로 쭉 훑어가므로 간단하지만,  동일한 내용이 흩어져있으면 원하는 결과가 나타나지 않음.

       ex) 'Z'가 'I' 라면 처음위에 만든 소스는 구분해서 병합함.

            이건 구분하지 못함.

       용도 - 이번 플젝에서 ultragrid 동적으로 컬럼 구성하고 병합해야 하는데 뭔가 부실해...

                회사에서 6시간 가까이 하던게 안되서 그냥 집에서 10분만에 만들어 ... 가져가서 쓰려고 기록함.

                내용상 단방향으로 훑었을때 데이타가 같은게 흩어져있지 않음.

'# 1) 프로그래밍' 카테고리의 다른 글

연말정산 프로그램? API... ( 이게 아니란다. )  (0) 2016.01.20
다음 맵 API 관련.  (0) 2016.01.11
Xaml 정리기  (0) 2015.09.04
Visual studio Community 2013 설치!  (0) 2014.12.07
app.config Section 작성 변환기...  (0) 2014.11.05