! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

FarPoint.Win.Spread.dll 버전 4에서 14로 버전업의 경우 NumberCellType 컬럼이 다르게 동작하는 문제 > Q&A | 토론

본문 바로가기

Spread.NET

Q&A | 토론

WinForms윈폼 FarPoint.Win.Spread.dll 버전 4에서 14로 버전업의 경우 NumberCellType 컬럼이 다르게 동작하는 문제

페이지 정보

작성자 1min 작성일 2022-01-28 13:50 조회 2,540회 댓글 0건
제품 버전 : FarPoint.Win.Spread.dll (Version = 4.0.3512.2008 and 14.45.20213.0)
컨트롤 이름 : FpSpread

본문

첨부파일

ComponentOne 게시판에 올려진 Q&A()https://dev.grapecity.co.kr/bbs/board.php?bo_table=component_qna&wr_id=744&sca=WinForms%EC%9C%88%ED%8F%BC)) 리업로드 (답변 필요)


안녕하세요?


현재 FarPoint.Win.Spread.dll의 버전을 4.0.3512.2008을 사용하던 것을 14.45.20213.0 버전을 사용하게 되면서 다르게 동작하는 문제가 있어서 문의드립니다.


Cell에 들어오는 값이 (바인딩된 DataSource의 또는 Cells[rowIndex, ColumnIndex].Value로 코드상으로 직접 할당) 

FpSpread의 컬럼의 CellType의 MinimumValue, MaximumValue 속성에 지정한 범위를 벗어나게 되면 기존 4.0.3512.2008 버전에서는 빈칸으로 보여지는데, 14.45.20213.0 버전에서는 범위를 벗어났지만 그대로 값이 보여지게 됩니다. (확인 결과 두 버전다 editmode에서 유저가 직접 수정하지 않는 이상은 UI상에 보이는 값이 아닌 메모리에 데이터 값은 그대로 들어가 있습니다.)


원래 4.0.3512.2008 버전처럼 빈칸으로 보여지게 하는 방법이 있는지 문의드립니다.


4.0.3512.2008 Version.png, 14.45.20213.0 Version.png 참고

 


감사합니다.



1차 답변

-----------------------------------------------------------------------------------------

1min님, 안녕하세요.

그레이프시티입니다.


상세한 정보 공유에 감사드리며, 정확한 확인을 위해 한가지 추가 질문 드립니다.

코드상에서 특정 범위를 넘어간 값이 입력되어 빈 셀로 표시되었을 때, v4와 마찬가지로 메모리에 해당 값이 저장되어있어야 하나요?

아니면, 특정 범위 외의 값이 입력될 경우엔 해당 값이 메모리에 남아있을 필요가 없으신지요?


아울러, 본 게시판은 ComponentOne 제품의 Q&A 게시판입니다.

추후 Spread.NET 관련 문의는 해당 제품 게시판에 업로드 부탁드립니다.


즐거운 설 명절 보내시기 바랍니다.

감사합니다.

그레이프시티 드림


1차 답변 응답

-----------------------------------------------------------------------------------------

코드상에서 특정 범위를 넘어간 값이 입력되어 빈 셀로 표시되었을 때, v4와 마찬가지로 메모리에 해당 값이 저장되어있어야 하나요?

->네, 맞습니다.

현재 v4든, v14든 보이는 것만 다르지 메모리상에는 값은 들어가 있습니다.

제가 원하는건 v14을 v4처럼 범위 안에 안 들어가면 빈칸으로 보여지면 됩니다.


코드상으로 범위 밖의 값이 입력될 경우는 메모리의 해당 값이 Maximum이나 Minimum 값으로 자동 셋팅 되길 원하는건 아닙니다.


  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

1 답변

WinForms윈폼 Re: FarPoint.Win.Spread.dll 버전 4에서 14로 버전업의 경우 NumberCellType 컬럼이 다르게 …

추천0 이 글을 추천하셨습니다 비추천0 채택채택

페이지 정보

작성자 GCK써니 작성일 2022-01-28 18:17 댓글 0건

본문

1min님, 안녕하세요,

그레이프시티입니다.


NumberCellType의 MinimumValue와 MaximumValue 속성은, "사용자 입력"시 받을 수 있는 최소값과 최대값을 설정할 때 사용되는 속성입니다.

즉, 프로그램을 실행했을 때 보여지는 Spread에 값을 직접 입력하는 경우에, 설정된 Minimum/MaximumValue 속성 값 범위 이내로만 데이터를 입력할 수 있게 제한합니다.

따라서 코드 상으로 입력할 때에는 해당 속성값과 상관없이, 코드 상에서 셀에 할당한 값이 모두 Spread에 보여지게 됩니다.


말씀하신 것과 V14에서도 V4에서와 같이 동작하게 하기 위해, 아래와 같이 사용자정의 셀타입을 사용해보시길 바랍니다.

private void Form1_Load(object sender, EventArgs e)
{
    // Set a datatable
    DataTable dt = new DataTable("Number");
    dt.Columns.Add("Number", typeof(Int32));
    for(int i=0; i<15;)
    {
        dt.Rows.Add(new Object[] { ++i });
    }

    // Set DataSource
    fpSpread1.ActiveSheet.DataSource = dt;

    // Set CellType
    NumberCellTypeV4 nct = new NumberCellTypeV4();
    nct.MaximumValue = 10;
    nct.MinimumValue = 5;
    nct.DecimalPlaces = 0;
    fpSpread1.ActiveSheet.Columns[0].CellType = nct;
}
public class NumberCellTypeV4 : FarPoint.Win.Spread.CellType.NumberCellType
{
    public override string Format(object obj)
    {
        if (FarPoint.CalcEngine.CalcConvert.TryToDouble(obj, out double dblValue) && (dblValue < MinimumValue || dblValue > MaximumValue))
        {
            return null;
        }

        return base.Format(obj);
    }
}


다른 궁금한 점이 생기면, 문의 주시기 바랍니다.

감사합니다.

그레이프시티 드림


* 그레이프시티(GrapeCity)는 개발자를 위하여 ComponentOne(컴포넌트원), Spread(스프레드), ActiveReports(액티브리포츠), SpreadJS(스프레드JS), Wijmo(위즈모)와 같은 엑셀 스프레드시트 리포팅 그리드와 차트 등 다양한 종류의 .NET JavaScript(자바스크립트) 컴포넌트 툴을 생산하고있는 개발툴 전문 회사 입니다.

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.