WinForms윈폼 column내 수식
페이지 정보
작성자 tomleee 작성일 2024-01-11 08:47 조회 72회 댓글 0건본문
관련링크
위의 사진과 같이 cost column 에 숫자를 입력하고 엔터를 침과 동시에 Qty column 에 있는 수를 곱한 값을 E/Cost(빨간박스) column 에 띄우길 원합니다.
가능한 방법이 있을까요?
댓글목록
등록된 댓글이 없습니다.
위의 사진과 같이 cost column 에 숫자를 입력하고 엔터를 침과 동시에 Qty column 에 있는 수를 곱한 값을 E/Cost(빨간박스) column 에 띄우길 원합니다.
가능한 방법이 있을까요?
등록된 댓글이 없습니다.
private void sprGrid_Change(object sender, FarPoint.Win.Spread.ChangeEventArgs e)
{
string formulaString;
int Row_IDX;
int Col_IDX;
Row_IDX = sprGrid.Sheets[0].ActiveRowIndex; // 현재 Row
// Cost Col
if (sprGrid.ActiveSheet.ActiveColumnIndex = 3)
{
formulaString = "D" + (Row_IDX + 1) + " * F" + (Row_IDX + 1); // 포뮬라
sprGrid.Sheets[0].SetFormula(Row_IDX, 6, formulaString); // 금액
}
}
Change 이벤트를 이용해 보세요...
등록된 댓글이 없습니다.
tomleee 님, 안녕하세요.
메시어스입니다.
쌍둥이아빠 님께서 공유해주신 내용과 같이 Change 이벤트와 Formula 속성을 사용하여 두 셀의 값의 곱을 계산하는 수식을 타겟 셀에 입력하실 수 있습니다.
또는 다음과 같이 단순히 두 값의 곱을 계산하에 타겟 셀에 입력할 수 있습니다.
두 방식 모두 Change 이벤트를 활용합니다.
fpSpread1.Change += FpSpread1_Change; private void FpSpread1_Change(object sender, FarPoint.Win.Spread.ChangeEventArgs e) { if (e.Column == costColumn) { if (fpSpread1.ActiveSheet.Cells[e.Row, qtyColumn].Value != null) { if (fpSpread1.ActiveSheet.Cells[e.Row, costColumn].Value != null) { double qty = (double)(fpSpread1.ActiveSheet.Cells[e.Row, qtyColumn].Value); double cost = (double)(fpSpread1.ActiveSheet.Cells[e.Row, costColumn].Value); fpSpread1.ActiveSheet.Cells[e.Row, targetColumn].Value = qty * cost; } else { fpSpread1.ActiveSheet.Cells[e.Row, targetColumn].Value = null; } } } }
또는 Change 이벤트를 사용하지 않고, 컬럼에 수식만 적용하여 사용하는 방법도 있습니다. (단, "숫자*빈 셀"의 결과는 0으로 보여집니다.)
fpSpread1.ActiveSheet.Columns[6].Formula = "D1*F1";
감사합니다.
메시어스 드림
등록된 댓글이 없습니다.