QnA
----------------------------------------------------------------
- 사용언어 |
: C# 2005
|
- 사용툴 |
:
|
- 운영체제 |
:
|
- 별도사항 |
:
|
|
|
|
|
프린터로 출력을 시킬려고 하는데 두번째 page 가 나오지 않고 한페이지 에서 덧쓰여지고 있읍니다. 어떤것이 잘못됀건지 고수님들 알려 주세요....
float offY = 0F, offX = 0F;
int offiY = 0, offiX = 0;
int nMAXCNT = 1;
int nSIDE = 1;
e.Graphics.RenderingOrigin = new System.Drawing.Point(offiX, offiY);
Brush MyBrush = new SolidBrush(Color.Black);
System.Drawing.Font MyFont = new System.Drawing.Font("Courier New", 8);
System.Drawing.Font MyFontHead = new System.Drawing.Font("Courier New", 12);
System.Drawing.Font MyFontBar = new System.Drawing.Font("SKANDATA C39", 25);
Pen MyPen = new Pen(MyBrush, 0.1F);
e.Graphics.PageUnit = System.Drawing.GraphicsUnit.Millimeter;
Graphics prtG = e.Graphics;
for (ml = 0; ml <= DbSt.Tables[0].Rows.Count - 1; ml++)
{
if (nMAXCNT == 1 & nSIDE == 1)
{
prtG.DrawLine(MyPen, 100F, 5F, 100F, 270F);
prtG.DrawLine(MyPen, 3F, 90F, 202F, 90F);
prtG.DrawLine(MyPen, 3F, 183F, 202F, 183F);
}
if (nSIDE == 1) { offX = 3F; }
if (nSIDE == 2) { offX = 103F; }
if (nMAXCNT == 1) { offY = 5F; }
if (nMAXCNT == 2) { offY = 95F; }
if (nMAXCNT == 3) { offY = 192F; }
prtG.DrawString(txtYEAR.Text + "년 " + cSEASON + " 판공성사표", MyFont, MyBrush, offX, offY);
prtG.DrawString("No: " + DbSt.Tables[0].Rows[ml]["PP_NO"].ToString(), MyFont, MyBrush, offX, offY + 5F);
prtG.DrawString("*" + DbSt.Tables[0].Rows[ml]["PP_NO"].ToString() + "*", MyFontBar, MyBrush, offX, offY + 10F);
string cTMNAME = "이름: " + DbSt.Tables[0].Rows[ml]["PP_HNAME"].ToString() +
"(" +
DbSt.Tables[0].Rows[ml]["PP_FNAME"].ToString() + " " +
DbSt.Tables[0].Rows[ml]["PP_LNAME"].ToString() + ")";
prtG.DrawString(cTMNAME, MyFont, MyBrush, offX, offY + 25F);
prtG.DrawString("세례명: " + DbSt.Tables[0].Rows[ml]["PP_SNAME"].ToString(), MyFont, MyBrush, offX, offY + 30F);
prtG.DrawString("구역/반 -> " + DbSt.Tables[0].Rows[ml]["PP_KUYOUK"].ToString() + "/" + DbSt.Tables[0].Rows[ml]["PP_BAN"].ToString(), MyFont, MyBrush, offX, offY + 35F);
prtG.DrawString("가족대표: " + DbSt.Tables[0].Rows[ml]["PP_EXEHNAME"].ToString(), MyFont, MyBrush, offX, offY + 40F);
prtG.DrawString("비고", MyFont, MyBrush, offX, offY + 45F);
if (nSIDE == 1)
{
nSIDE++;
}
else
{
nSIDE = 1;
nMAXCNT++;
if (nMAXCNT > 3)
{
e.HasMorePages = true;
nMAXCNT = 1;
}
}
}
e.HasMorePages = false;
HasMorePages 를 true 로 했는데도 그렇게 돼네요... 빨리 해결을 해야 하는데 부탁합니다.
----------------------------------------------------------------
첫댓글 e.HasMorePages = true; 를 설정하셨으면, e.HasMorePages = false; 를 진행해선 안될듯합니다..페이지 추가한다고 했다가 다시 취소하는 격이 될듯..^^ ..아..그리고 for 문 경우 한페이지 표기할수 있는 만큼만 돌리시고 페이지가 추가된 다음 다시 for 을 돌리셔야합니다..
for loop 이 끝나고 나면 hasmorepages 가 false 로 됍니다. 설명해 주신걸로 봐선 한 for loop 안에서 여러장의 페이지가 발생 돼는건 불가능한건가요?