스프레드로 바코드 프린트 하면서 알게 된 삽질
// 모든 삽질이 들어있는 코드
FarPoint.Win.Spread.CellType.NumberCellType numberCellType =
new FarPoint.Win.Spread.CellType.NumberCellType();
numberCellType.DecimalPlaces = 0;
numberCellType.Separator = ",";
numberCellType.ShowSeparator = true;
FarPoint.Win.Spread.FpSpread spp = new FpSpread();
FarPoint.Win.Spread.SheetView spp_Sheet1 = new SheetView();
spp_Sheet1 = sp_Emp_Print_Sheet1.Clone();
spp.Sheets.Add(spp_Sheet1);
PrintPreviewDialog ppd = new PrintPreviewDialog();
ppd.ShowIcon = false;
ppd.Width = 800;
ppd.Height = 600;
spp.SetPrintPreview(ppd);
FarPoint.Win.Spread.PrintInfo pi = new FarPoint.Win.Spread.PrintInfo();
pi.Preview = true;
pi.ShowGrid = false; //그리드 여부
pi.ShowBorder = false; //보더 여부
pi.ShowColumnHeader = FarPoint.Win.Spread.PrintHeader.Hide;
pi.ShowRowHeader = FarPoint.Win.Spread.PrintHeader.Hide;
pi.UseSmartPrint = true;
pi.Margin.Top = 60;
pi.Margin.Bottom = 30;
pi.Margin.Left = 0;
pi.Margin.Right = 0;
pi.Centering = Centering.Horizontal;
pi.Orientation = FarPoint.Win.Spread.PrintOrientation.Portrait; //가로 세로
pi.ShowPrintDialog = true;
spp_Sheet1.PrintInfo = pi;
spp.PrintSheet(0);
//시트 여러개 일때 한번에 프린트하기
for(int a=0; a<spread.Sheet.Count; aa++)
{
spread.SetPrintInfo(pi,a);
spread.PrintSheet(a);
}
// 두개의 시트를 프리뷰하고 싶다는 게시물 , 그러나 실현불가
// 프린트 세부 설명
private void btnPrt_Click(object sender, System.EventArgs e) { string strYmd = dtpStrYmd.Value.ToString("yyyy-MM-dd"); string endYmd = dtpEndYmd.Value.ToString("yyyy-MM-dd");
//가로세로
spd.Sheets[0].PrintInfo.Orientation = FarPoint.Win.Spread.PrintOrientation.Portrait;
//여백설정
spd.Sheets[0].PrintInfo.Margin.Top = 100; spd.Sheets[0].PrintInfo.Margin.Left = 40; spd.Sheets[0].PrintInfo.Margin.Right = 10; spd.Sheets[0].PrintInfo.Margin.Bottom = 30;
//페이지 헤더설정
spdMedRec.Sheets[0].PrintInfo.Header = "/c/fz\"14\"/fb1[[ 페이지 제목 ]]/fb0/fz\"10\"/n/l/n ";
//페이지 아랫쪽 Footer(페이지 정보 출력)
spdMedRec.Sheets[0].PrintInfo.Footer = "/c/fz\"12\"스프레드 출력테스트/fz\"10\"/rPage : /p / /pc";
//미리보기여부 설정
spdMedRec.Sheets[0].PrintInfo.Preview = true;
//스프레드의 줄번호까지 출력할지 여부
spdMedRec.Sheets[0].PrintInfo.ShowRowHeaders = false;
//확대 비율
//spdMedRec.Sheets[0].PrintInfo.ZoomFactor = 0.7F;
//0번째 Sheet 출력
spdMedRec.PrintSheet(0);
}
// 원본 시트가 있고 이걸 활용하고 싶을때 복사시트
private void button1_Click(object sender, EventArgs e)
{ FarPoint.Win.Spread.SheetView sv = new FarPoint.Win.Spread.SheetView(); sv = CopySheet(fpSpread1.Sheets[0]); sv.SheetName = "Sheet2"; fpSpread1.Sheets.Add(sv); } public FarPoint.Win.Spread.SheetView CopySheet(FarPoint.Win.Spread.SheetView sheet) { FarPoint.Win.Spread.SheetView newSheet = null; if (sheet != null) { newSheet = (FarPoint.Win.Spread.SheetView)FarPoint.Win.Serializer.LoadObjectXml(sheet.GetType(), FarPoint.Win.Serializer.GetObjectXml(sheet, "CopySheet"), "CopySheet"); } return newSheet; } |
// 체크박스 사용시엔 스프레드 OperationMode = nomal
셀 속성으로 CheckBox를 지정하였음에도 실행시 체크박스를 클릭했을때
체크표시가 되지 않는 경우가 있다.
이때 Operation 모드를 변경하여 준다.
Dim CheckBox As New FarPoint.Win.Spread.CellType.CheckBoxCellType
ColumnHeader.Cells(0, col).CellType = CheckBox
.OperationMode = FarPoint.Win.Spread.OperationMode.SingleSelect -> SingleSelect 설정 시 SPREAD의 특정 행을 클릭하면 해당행 전체가 박스형태로 표시된다
.OperationMode = FarPoint.Win.Spread.OperationMode.Normal -> 특정 행을 클릭하면 행뿐만아니라 해당 열까지 고려하여, 마우스포인터가 속하는 셀이 선택된다
이 설정을 해주어야 체크박스 클릭시 체크표시가 된다
또한 이 설정을 해주면
체크박스를 클릭했을 때 Farpoint - ButtonClicked Event 가 발생한다.
fps_material_ip.SelectionBlockOptions = FarPoint.Win.Spread.SelectionBlockOptions.None
-> Column Header나 Row Header를 클릭했을때 해당 행 또는 열이 블럭화 되는 설정을 해제한다
이부분은 체크박스 헤더 클릭시 전체 선택 효과를 위해 필요한 부분이다.
체크표시가 되지 않는 경우가 있다.
이때 Operation 모드를 변경하여 준다.
Dim CheckBox As New FarPoint.Win.Spread.CellType.CheckBoxCellType
ColumnHeader.Cells(0, col).CellType = CheckBox
.OperationMode = FarPoint.Win.Spread.OperationMode.SingleSelect -> SingleSelect 설정 시 SPREAD의 특정 행을 클릭하면 해당행 전체가 박스형태로 표시된다
.OperationMode = FarPoint.Win.Spread.OperationMode.Normal -> 특정 행을 클릭하면 행뿐만아니라 해당 열까지 고려하여, 마우스포인터가 속하는 셀이 선택된다
이 설정을 해주어야 체크박스 클릭시 체크표시가 된다
또한 이 설정을 해주면
체크박스를 클릭했을 때 Farpoint - ButtonClicked Event 가 발생한다.
fps_material_ip.SelectionBlockOptions = FarPoint.Win.Spread.SelectionBlockOptions.None
-> Column Header나 Row Header를 클릭했을때 해당 행 또는 열이 블럭화 되는 설정을 해제한다
이부분은 체크박스 헤더 클릭시 전체 선택 효과를 위해 필요한 부분이다.
댓글 없음 :
댓글 쓰기