본문 바로가기

전체 글119

Form_Resize 이벤트 사용하여 Form 의 컨트롤 위치 조정하기. 최근 나오는 왠만한 개발 툴이나 Visual Studio .NET 에서는 Form 의 control 들의 위치가 동적으로 바뀔수 있도록 지원이 됩니다. 예를 들어 한 폼에 버튼이나 메시지박스같은 컨트롤들이 있을 때 폼의 크기를 사용자가 임의로 늘리거나 줄일 수 있는데 이때 컨트롤들도 폼 크기에 맞춰서 움직이는 경우죠. Visual Basic 6 에서는 따로 이런 기능들을 제공해 주지는 않지만 Form_Resize 이벤트를 제공하므로 이 이벤트에 해당 컨트롤들의 위치를 조정해주어야 합니다. 아래의 예제는 각각의 컨트롤들의 너비와 높이들을 현재 폼의 너비와 높이에 맞추어 조정해주고 있습니다. 계산식에 쓰여진 숫자값들은 각자 실행해보면서 맞추어 나가면 됩니다. 예제 소스) Private Sub Form_Res.. 2009. 1. 17.
CDO 객체를 이용하여 Mail 보내기. CDO 라는 객체를 코드상에서 이용하면 별도의 메일서버 로그온이 필요없이 메일 보낼수 있습니다. CDO는 Collaboration Data Objects 의 약자로 MS Exchange Server 버전과 NT Server 버전으로 나눌 수 있고 여기서는 NTS용 CDO 를 사용하겠습니다. CDO 객체를 사용하기 위해서는 cdonts.dll 이라는 파일이 필요하며 IIS 설치하면 기본적으로 설치되고 Windows\System32\ 폴더에 해당 파일이 존재해야 합니다. 아래는 기본적으로 사용되는 CDO 객체의 속성과 메서드에 대한 설명입니다. 더 있을 수 있는데 여기서는 기본적인 것만 나타냈고 추가했으면 하는게 있으면 알려주세요. 속성 From 보내는 사람 메일 주소 To 받는 사람 “;” 로 구분하여 여.. 2009. 1. 17.
Install shield 7.0 사용하여 setup package 만들기 Visual Basic6 에서 제공하는 setup package 를 가지고 만들때, 파일이 여러개가 생성되고 또 툭하면 에러나고 안되고 암튼..이래저래 깔끔하지가 못했는데, Install shield 를 사용하니 깔끔하게 하나의 파일로 생성되더군요. 그럼 setup package 를 만드는 절차입니다. 처음에 프로젝트를 생성합니다. 그러고나면.. 와 같이.. 세팅을 해주고 Next 머..언어는 각자 다를지도..암튼 Next 여기서 컴포넌트를 설정합니다. 적당한 크기의 프로그램이라면 Main App 만 있어도 될테고 위와 같이 default 로 딸려오는 Tutorial 이나 Examples 가 필요하다면 추가해야겠죠. 필요없으면 제거.그런다음 Next 여기선 필요한 파일 그룹을 등록해줍니다. 실행파일그룹,.. 2009. 1. 16.
윈도우 로그인할 때 Administrator 선택할 수 있게 하기. 처음에 Windows XP 를 깔면 자동적으로 Administrator 라는 계정이 깔리게 되지만 이 계정은 특별한 계정으로 로그인할 때 나타나지 않습니다. 설치 시 입력한 사용자 계정만 뜨고 하나의 사용자 계정만 입력하고 설치했거나 [제어판] 의 [사용자 계정] 에 하나의 계정만 있을 경우 윈도우를 실행할 때 계정 선택화면없이 바로 바탕화면으로 들어가게됩니다. 그렇지만 컴퓨터에 이상이 있거나 관리자 권한이 주어진 계정으로도 안되는 것이 있을 경우에 Administrator 라는 계정으로 로그인을 해야할 경우가 필요합니다. 이 Administrator 란 계정은 해당 컴퓨터의 자원을 모두 접근할 수 있는 계정이기때문입니다. 또 그렇기 때문에 계정 선택란에 보이지 않습니다. 자, 이제 이 Administr.. 2009. 1. 16.
폴더가 열리지 않고 access is denied 라는 에러가 뜰 때 여러가지 원인으로 인해 폴더가 열리지 않고 access is denied 란 error message 가 뜰 수도 있겠지만 여기선 내문서의 다른 사용자의 개인폴더를 열려고 할 때 위와 같은 error 가 뜨는 경우의 해결방법을 얘기해보겠습니다. 개인폴더의 경우 특히 해당 사용자의 계정에 암호가 걸려있었을 경우 다른 계정으로 접근시 접근하려는 계정이 system administrator 권한을 가지고 있음에도 불구하고 위와 같은 에러가 발생하는데, 아래와 같은 방법으로 해당 개인 폴더의 소유권을 바꿔줌으로써 해결을 할 수 있습니다. 1. 안전 모드로 윈도우를 시작한다.(컴퓨터 부팅 시 F8, 혹은 기타 부팅 메뉴로 들어가는 기능키를 눌러서 안전 모드 혹은, safe mode 를 선택해 윈도우를 시작한다.).. 2009. 1. 16.
Zebra S4M Printer ZPL 로 되 있는 것을 EPL 로 바꾸기 Zebra S4M 프린터의 경우 EPL 과 ZPL 을 지원해주는 프린터이긴 하나.. 두 가지를 모두 한꺼번에 지원하지는 못하는거 같네요. EPL1 이나 EPL2 를 사용하기 위해서는 firmware 를 업데이트 해줘야 합니다. firmware 는 zebra 홈페이지에서 다운받을 수 있고 다운받을 special firmware 에 있는 e로 시작하는 것을 다운받아야 합니다. 그리고 설명에 EPL 지원하는지를 확인하시고 다운받으시구요. 다운받으면.. 압축파일안에 .zpl 이라는 파일과 readme.txt 이 있는데 readme.txt 에는 다운받은 firmware 를 어떻게 프린터에다가 업데이트 시키는지에 대한 설명입니다. 네트워크, LPT1, COM 포트를 사용하는 방법이 설명되어있는데 일반적으로 사용하는.. 2009. 1. 16.
Format with multiple columns 사용하기 보통 크리스탈 레포트를 사용하여 리포트를 만들 때 DB 에서 가져온 테이블 형식의 데이터에서 한 행에 대해서 한 줄의 형식으로 만드는 것 같습니다. 예를 들어 회원 명부를 리포트로 만들고자 할 때 아래와 같은 경우, 디자인 뷰에서는 아래와 같이 구성됩니다. 한 행에 하나의 직원에 대한 데이터가 나옴으로써 오른쪽 공간의 공백의 낭비가 느껴집니다. 좀 더 편하게 보기를 원하는 사람이라면, 오른쪽 공간에도 똑같은 직원 데이터가 나오게 하고 싶을겁니다. 자, 그러면 그렇게 해봐야죠. 데이터가 뿌려지는 섹션은 Detail 섹션인데 여기에 Format with multiple columns 라는 속성을 사용하면 됩니다. 우선, 메뉴에서 Format > Section 으로 가면 해당 섹션들이 나오는데 Detail 을.. 2009. 1. 16.
저장할 때 the handle is invalid 에러 해결. 리포트에서 변경작업을 한 후에 저장 버튼을 눌렀을 때 저장이 되지 않고 The handle is invalid 라는 에러가 떴었는데요. 제가 한 변경 작업은 위치를 다른 sql server 로 바꾸는 DB Connection 을 바꾸는 것이었습니다. 어떻게어떻게 하니까 save 가 돼서 그렇게 쓰다가 오늘도 변경작업 후 저장을 하니 이 에러가 떠서 홧김에 방법을 찾아볼려구 검색을 시작했습니다. 찾아보니 이게 특정 컴퓨터에서만 그런데 그 특정 컴퓨터라는게 crystal report 8.5 와 win XP SP2 를 쓰는 컴퓨터에서 이러한 에러가 발생한다고 하더군요. 그래서 찾은 방법은 program files 폴더의 crystal report 폴더에 들어가서 보면 crw32.exe 라는 파일이 있습니다. .. 2009. 1. 16.
리포트 저장시 preview 없애서 용량 줄이기 리포트를 만들면서 데이터가 제대로 나오는지 레이아웃은 제대로 나오는지 확인하기 위해 리포트에서 preview를 만드는데요. 이 preview는 리포트에 같이 저장되기때문에 preview를 가지고 있는 리포트는 용량이 커집니다. 이를 없애는 것이 리포트 파일의 용량도 줄이고 나중에 리포트를 사용할 때 속도면에서도 유리한데요. preview 화면 오른쪽 상단의 x 버튼을 누른다고 해서 없어지는 것이 아니기 때문에 이를 위해 x 버튼을 눌러 preview를 없앤 다음 save as.. 로 리포트를 새로 저장하면 preview없이 저장이 되어 리포트의 용량이 줄어들게 됩니다. 2009. 1. 16.
[2.0] visual studio 2005 에서 debug 할 때 break 가 안먹히는 문제 Pocket PC 5.0 용으로 mobile application 을 만들다가 디버깅할 때 break 가 안먹히는 문제가 있었는데요. 다음과 같은 에러 메시지가 뜨더군요. Error Message :: The breakpoint will not currently be hit. The specified module has not been loaded. 프로그램 상에 문제인가 싶어 찾아봐도 없길래 msdn 을 찾아봤습니다. Mobile application 의 경우 Compact .NET framework 라는 축소된 framework 를 사용하는데 이 에러는 compact .NET framework 2.0 의 버그때문에 발생하는 것이었습니다. ㅡㅡ;; 그래서 compact .NET framework 2.0.. 2009. 1. 16.
[2.0] 바코드 프로그램 실행 시 바코드 에러. 바코드 리더를 사용하는 모바일 프로그램을 만들어서 PDA 에 복사하여 배포한 적이 있습니다. Visual studio 2005 를 통해 배포하지 않고 배포하는 방법을 찾지 못해 그냥 exe 파일을 PDA를 컴퓨터에 연결해서 복사해 넣었는데요. 그러다 보니 관련 dll 파일들이 PDA 에 존재하지 않아서 에러가 뜨는 경우가 생겼습니다. 다행히 PDA 에 .NET 2.0 은 깔려 있었고 기본적인 것들은 존재했지만 바코드 리더 관련 dll 파일은 없었던지 프로그램을 실행하니 에러가 뜨더군요. 제가 사용한 바코드 툴은 symbol 바코드 리더 툴이었습니다. 모토로라에서 제공하는 것 같은데.. 암튼 에러 메시지에 unexpected error 라면서 장황한 에러 메시지와 함께 아랫 부분에 Symbol.Barcod.. 2009. 1. 16.
[2.0] HttpWebRequest 객체 이용시 현재 사용자 인증 사용하기 HttpWebRequest 객체를 이용하여 Server 로부터 Response 를 얻을 때, 익명 사용자 인증을 사용하기 때문에 익명 사용자의 접근 권한이 막힌 경우 인증 오류가 발생하게 됩니다. 이에, 현재 로그온 해 있는 사용자의 인증을 사용하고자 할 경우, DefaultCredentials 속성을 사용합니다. HttpWebRequest 객체 생성 후 아래와 같은 코드 한 줄이면 됩니다. HttpWebRequest.Credentials = CredentialCache.DefaultCredentials 위의 HttpWebRequest.Credentials 속성에 대한 MSDN 의 설명은 아래와 같습니다. 속성 값 요청과 관련된 인증 자격 증명이 들어 있는 ICredentials입니다. 기본값은 Null.. 2009. 1. 16.
서버에서 제공하는 Password 암호화 함수 MSSQL 2000 버전부터 서버 자체적으로 PwdEncrypt() 라는 Password 암호화 함수와 암호화된 Password를 판별할 수 있게 해주는 PwdCompare() 함수를 제공하고 있습니다. 이 두 함수들은 문서화되지 않은 함수이기 때문에 어떻게 사용해야 하는지에 대한 설명이 없습니다. 그렇지만 원래 MSSQL 에서 사용자의 패스워드를 저장할 때 사용하던 함수라고 하기 때문에 master.sysusers password 필드 데이터 타입과 같은 varbinary(256)으로 하면 될 것 같습니다. 일단, PwdEncrypt() 함수의 사용 예제를 보면, 위와 같이 1234를 함수를 이용해 암호화하면 16진수값이 나오게되는데요. 위의 문장을 여러번 실행하면 그때마다 나오는 결과값이 달라지는걸로.. 2009. 1. 16.
Object 존재 여부 판단하기 OBJECT_ID() 라는 시스템 함수를 사용하면 object 의 존재 여부를 판단할 수 있습니다. 파라미터로는 검사할 object 의 이름을 String 으로 건네주면 됩니다. 리턴값은 object 가 존재하지 않으면 NULL 이고 존재하면 해당 object 의 ID 를 반환합니다. 예를 들어, 임시 테이블이 존재하면 지우고 다시 만들 때 IF OBJECT_ID('#tmpTest') IS NOT NULL DROP TABLE #tmpTest 이런 식으로 쓸수가 있습니다. 2009. 1. 16.
테이블 변수의 장점과 사용하기 mssql 2000 부터 table 이라는 변수가 생겼는데요. 이게 바로 테이블 변수입니다. 테이블 변수가 뭐냐? 즉.. 테이블을 변수처럼 사용하는 것이겠죠 ㅡㅡ;; 결과 집합을 이 테이블 변수에 저장할 수 있습니다. 널리 사용되고 있는 임시테이블과 비슷하지만, 임시 테이블에 비해 몇가지 장점이 있고 또 이때문에 여러 서적이나 관련 사이트에서는 테이블 변수의 사용이 권장되고 있다고 합니다. 아래는 SQL Server BOL(Books On-Line) 에 적힌 테이블 변수의 장점입니다. 가능할 때마다 테이블 변수를 임시 테이블 대신 사용하십시오. table 변수는 다음과 같은 편의를 제공합니다. * table 변수는 지역 변수처럼 작동합니다. table 변수는 함수, 저장 프로시저 또는 일괄 처리 등 제대.. 2009. 1. 16.