>안녕하세요. 비주얼베이직 초보자 입니다.
>학교에서 수업중 도저히 이해가 안되고.. 코드도 너무 길어 보기가 힘드네요 ;;
>얼핏 기억나기론 프린트코드에서  밑에 도형처럼 저 부분부분이 번호가 있다고 들었습니다.
>┌ ─ ┐ 
이건 아스키코드값이 1, 6, 2에 해당 됩니다.
>│ ┼ │
이건 5, 16,  5 이고요
>└ ─ ┘
이건 3, 6, 4 이고요
예를들어 └ ─ ─ ─ ─ ─ ┘ 이렇게 출력하고자 한다면(단; 중간에 공백은 없다고 가정합니다.)
텍스트 박스를 하나 만들고, 다음처럼 코딩 하면 됩니다.

text1.text=chr(3) & chr(6) & chr(6) & chr(6) & chr(6) & chr(6) & chr(4)

 

chr(3)은 └ 을 의미 합니다.  chr(6)의 개수가 5개 이므로 ─ 문다를 다섯번 출력하지요..

 

텍스트 박스를 만들고 아래 코드를 삽입하고 출력하면, 아스키 코드값을 알수가 있습니다.

텍스트 박스 속성중 멀티라인과 세로스크롤바는 활성화 시켜 주세요.

 

Private Sub Form_Load()

Dim i As integer

For i = 0 To 255
  Text1.Text = Text1.Text & Chr(i) & " : " & i & vbCrLf
Next i

End Sub

 

 

 

>그리고 그번호를 이용해서 줄만들고 데이터 넣고 한다고 하는데 도저히 이해가 가질 않네요;;

>좀 도와주실분 계신가요 ㅠㅠ? 혹시 몰라 메일주소도 남깁니다. sylojc08@naver.com

>초보자에겐 너무 어렵네요;

>아래 코드가 연습한 코드입니다.

>아 도저히 줄넣고 이러는게 이해 안됩니다 .ㅠㅠ

>Private Sub Command1_Click()
    Dim i%, Count1%
    Dim p1%, p2%, p3%, p4%, p5%, p6%
    Dim totKor%, totEng%, totMAt%, total%
    Dim CurrentR As String
    p1 = 15: p2 = p1 + 10: p3 = p2 + 10: p4 = p3 + 10:
    p5 = p4 + 10: p6 = p5 + 10: p7 = p6 + 10
    For i = 1 To 5
        Printer.Print
    Next i

printer는 프린터기기를 의미한다고 생각하면 됩니다.

printer.print  이부분은 빈 공백을 1줄 인쇄한다고 생각하면 됩니다.

for 문을 5번 반복 하라고 했으니 프린터기는 5줄을 넘깁니다.

 

> 'head
    Printer.FontName = "돋움체"
    Printer.FontSize = 16
    Printer.Print Tab(p2); "성 적 표(20060000 홍길동)"
    Printer.Print

printer에 보다 상세한 내용은 MSDN도움말을 참고 하시기 바랍니다.

간략하게 설명하면, 인쇄하고자 하는 글꼴을 돋움체로 설정하고 글씨 크기는 16으로 하고

탭(기본 공백8칸)을 p2값만큼 띄우고 "성적표~" 이부분을 인쇄하고나서

한줄을 넘깁니다.


 'line
    Printer.DrawWidth = 8
    Printer.Line ((p1 - 5) * 119, Printer.CurrentY)-((p7 + 5) * 119, Printer.CurrentY), RGB(0, 0, 200)
    Printer.Print

프린터기에 선을 그리는데, 선의 굵기는 8로 하고

line 다음에 오는 좌표값에 의해서 선을 긋는데, 색상은 RGB(0,0,200)값으로 그으라고 되어 있습니다.

거의 파란색에 가까운 선을 긋게 됩니다.(완전한 파란색은 0,0,255 입니다.)

그리고 한줄 넘기네요.

 

> 'title1
    Printer.FontName = "바탕체"
    Printer.FontSize = 12
    Printer.ForeColor = RGB(50, 50, 50)
    Printer.Print Tab(p1); Chr$(1);

tab(p1)만큼 탭을 띄우고, chr$(1)에 해당하는문자 ┌ 인쇄 합니다. 그리고 세미콜론(;)은 다음에 인쇄될 문자가

같은줄 다음칸에 연결됨을 의미합니다.


    Printer.Print Tab(p1 + 1); String$(p2 - p1 - 1, Chr$(6));

탭을 띄우고 chr$(6)번문자 ─ 를 p2-p1-1개 인쇄합니다.

 

이하 나머지 부분은 윗부분을 참고하면, 전부 이해 할수 있으리라 생각 됩니다.

 

    Printer.Print Tab(p2); Chr$(22);
    Printer.Print Tab(p2 + 1); String$(p3 - p2 - 1, Chr$(6));
    Printer.Print Tab(p3); Chr$(22);
    Printer.Print Tab(p3 + 1); String$(p4 - p3 - 1, Chr$(6));
    Printer.Print Tab(p4); Chr$(22);
    Printer.Print Tab(p4 + 1); String$(p5 - p4 - 1, Chr$(6));
    Printer.Print Tab(p5); Chr$(22);
    Printer.Print Tab(p5 + 1); String$(p6 - p5 - 1, Chr$(6));
    Printer.Print Tab(p6); Chr$(22);
    Printer.Print Tab(p6 + 1); String$(p7 - p6 - 1, Chr$(6));
    Printer.Print Tab(p7); Chr$(2)
   
    Printer.Print Tab(p1); Chr$(5);
    Printer.ForeColor = RGB(0, 255, 0)
    Printer.Print Tab(p1 + 3); "학번";
    Printer.ForeColor = RGB(50, 50, 50)
    Printer.Print Tab(p2); Chr$(5);
    Printer.ForeColor = RGB(0, 0, 255)
    Printer.Print Tab(p2 + 3); "이름";
    Printer.ForeColor = RGB(50, 50, 50)
    Printer.Print Tab(p3); Chr$(5);
    Printer.ForeColor = RGB(255, 0, 0)
    Printer.Print Tab(p3 + 3); "전산학";
    Printer.ForeColor = RGB(0, 0, 0)
    Printer.Print Tab(p4); Chr$(5);
    Printer.Print Tab(p4 + 3); "VB";
    Printer.Print Tab(p5); Chr$(5);
    Printer.Print Tab(p5 + 3); "JAVA";
    Printer.Print Tab(p6); Chr$(5);
    Printer.Print Tab(p6 + 3); "총점";
    Printer.Print Tab(p7); Chr$(5)
  
   Printer.Print Tab(p1); Chr$(25);
   Printer.Print Tab(p1 + 1); String$(p2 - p1 - 1, Chr$(6));
   Printer.Print Tab(p2); Chr$(16);
   Printer.Print Tab(p2 + 1); String$(p3 - p2 - 1, Chr$(6));
   Printer.Print Tab(p3); Chr$(16);
   Printer.Print Tab(p3 + 1); String$(p4 - p3 - 1, Chr$(6));
   Printer.Print Tab(p4); Chr$(16);
   Printer.Print Tab(p4 + 1); String$(p5 - p4 - 1, Chr$(6));
   Printer.Print Tab(p5); Chr$(16);
   Printer.Print Tab(p5 + 1); String$(p6 - p5 - 1, Chr$(6));
   Printer.Print Tab(p6); Chr$(16);
   Printer.Print Tab(p6 + 1); String$(p7 - p6 - 1, Chr$(6));
   Printer.Print Tab(p7); Chr$(23)
  
'CurrentR = r성적처리.Recordset.Bookmark
   R성적처리.Recordset.MoveLast
   Count1 = R성적처리.Recordset.RecordCount
   R성적처리.Recordset.MoveFirst
  
   For i = 1 To Count1
' list
       Printer.Print Tab(p1); Chr$(5);
       Printer.Print Tab(p1 + 3); R성적처리.Recordset.Fields![fhakbun];
       Printer.Print Tab(p2); Chr$(5);
       Printer.Print Tab(p2 + 3); R성적처리.Recordset.Fields![fname];
       Printer.Print Tab(p3); Chr$(5);
       Printer.Print Tab(p3 + 3); R성적처리.Recordset.Fields![fcomputer];
       Printer.Print Tab(p4); Chr$(5);
       Printer.Print Tab(p4 + 3); R성적처리.Recordset.Fields![fvb];
       Printer.Print Tab(p5); Chr$(5);
       Printer.Print Tab(p5 + 3); R성적처리.Recordset.Fields![fjava];
       Printer.Print Tab(p6); Chr$(5);
       Printer.Print Tab(p6 + 3); R성적처리.Recordset.Fields![ftot];
       Printer.Print Tab(p7); Chr$(5)
' 누적
       totKor = totKor + R성적처리.Recordset.Fields![fcomputer]
       totEng = totEng + R성적처리.Recordset.Fields![fvb]
       totMAt = totMAt + R성적처리.Recordset.Fields![fjava]
       total = total + R성적처리.Recordset.Fields![ftot]
      
'밑줄
       If i < Count1 Then
          Printer.Print Tab(p1); Chr$(25);
          Printer.Print Tab(p1 + 1); String$(p2 - p1 - 1, Chr$(6));
          Printer.Print Tab(p2); Chr$(16);
          Printer.Print Tab(p2 + 1); String$(p3 - p2 - 1, Chr$(6));
          Printer.Print Tab(p3); Chr$(16);
          Printer.Print Tab(p3 + 1); String$(p4 - p3 - 1, Chr$(6));
          Printer.Print Tab(p4); Chr$(16);
          Printer.Print Tab(p4 + 1); String$(p5 - p4 - 1, Chr$(6));
          Printer.Print Tab(p5); Chr$(16);
          Printer.Print ; Tab(p5 + 1); String$(p6 - p5 - 1, Chr$(6));
          Printer.Print Tab(p6); Chr$(16);
          Printer.Print ; Tab(p6 + 1); String$(p7 - p6 - 1, Chr$(6));
          Printer.Print Tab(p7); Chr$(23)
       Else
          Printer.Print Tab(p1); Chr$(25);
          Printer.Print Tab(p1 + 1); String$(p2 - p1 - 1, Chr$(6));
          Printer.Print Tab(p2); Chr$(21);
          Printer.Print Tab(p2 + 1); String$(p3 - p2 - 1, Chr$(6));
          Printer.Print Tab(p3); Chr$(16);
          Printer.Print Tab(p3 + 1); String$(p4 - p3 - 1, Chr$(6));
          Printer.Print Tab(p4); Chr$(16);
          Printer.Print Tab(p4 + 1); String$(p5 - p4 - 1, Chr$(6));
          Printer.Print Tab(p5); Chr$(16);
          Printer.Print ; Tab(p5 + 1); String$(p6 - p5 - 1, Chr$(6));
          Printer.Print Tab(p6); Chr$(16);
          Printer.Print ; Tab(p6 + 1); String$(p7 - p6 - 1, Chr$(6));
          Printer.Print Tab(p7); Chr$(23)
'subtot
       Printer.Print Tab(p1); Chr$(5);
       Printer.Print Tab(p1 + 8); "합계";
       Printer.Print Tab(p3); Chr$(5);
       Printer.Print Tab(p3 + 2); totKor;
       Printer.Print Tab(p4); Chr$(5);
       Printer.Print Tab(p4 + 2); totEng;
       Printer.Print Tab(p5); Chr$(5);
       Printer.Print Tab(p5 + 2); totMAt;
       Printer.Print Tab(p6); Chr$(5);
       Printer.Print Tab(p6 + 2); total;
       Printer.Print Tab(p7); Chr$(5)
         
          Printer.Print Tab(p1); Chr$(3);
          Printer.Print Tab(p1 + 1); String$(p2 - p1 - 1, Chr$(6));
          Printer.Print Tab(p2); Chr$(6);
          Printer.Print Tab(p2 + 1); String$(p3 - p2 - 1, Chr$(6));
          Printer.Print Tab(p3); Chr$(21);
          Printer.Print Tab(p3 + 1); String$(p4 - p3 - 1, Chr$(6));
          Printer.Print Tab(p4); Chr$(21);
          Printer.Print Tab(p4 + 1); String$(p5 - p4 - 1, Chr$(6));
          Printer.Print Tab(p5); Chr$(21);
          Printer.Print Tab(p5 + 1); String$(p6 - p5 - 1, Chr$(6));
          Printer.Print ; Tab(p6); Chr$(21);
          Printer.Print Tab(p6 + 1); String$(p7 - p6 - 1, Chr$(6));
          Printer.Print Tab(p7); Chr$(4)
       End If
       R성적처리.Recordset.MoveNext
   Next i
  
   Printer.EndDoc '실제로 프린트로 출력해라.
    R성적처리.Recordset.MoveFirst

+ Recent posts