안녕하세요.
CIMON 입니다.
Xpanel에서 사용자 로그인/로그아웃 LOG를 CSV 파일 형태로 출력하는 샘플입니다.
[ 이럴 때 사용하시면 됩니다 ]
몇 시 몇 분 몇 초에 누가 접속했고 누가 로그아웃 했는지의 이력을 CSV 파일로 저장하는 샘플입니다.
[ 프로젝트 예제 작성 버전 및 주의사항 ]
XpanelDesigner v2.52
XpanelDesigner v2.52 미만의 버전은 열리지 않습니다.
[ 예제 설명 ]
Xpanel의 Main 화면을 꾸며줍니다.
간단하게 기능을 구현하기 위해 LogIn, LogOut, 이력 저장 버튼 세 개만 만들었습니다.
먼저 경보 설정을 해줍니다.
경보로 설정하는 이유는 AlarmCsvWr 함수를 이용하기 위해서입니다.
이 AlarmCsvWr 함수는 경보 이력을 원하는 위치에 지정한 이름의 CSV 파일로 저장해줍니다.
경보 설정에서는 간단하게 DIG01 하나만 가지고 경보 상태를 판별합니다.
DIG01 태그가 ON일 때 경보 내용을 Admin 계정이 LogIn하였습니다 를 경보 내용으로 설정하고, 태그가 OFF일 때 경보 내용을 Admin 계정이 LogOut 하였습니다 를 경보 내용으로 설정해줍니다.
이 경보 내용이 중요한 이유는 나중에 CSV 파일로 기록될 때 경보내용 또한 주석으로 각 경보 이력에 달리기 때문입니다.
경보를 설정한 뒤 사용자 보안에서 계정을 생성해줍니다.
이 예제에서는 간단히 ID를 Admin으로, 암호를 1로 설정해놓았습니다.
이전에 경보용으로 설정한 태그를 로그인할 때 1로 쓰고 로그아웃할 때 0으로 꺼줍니다.
이 동작으로 인해 경보가 Set/Reset 되고 경보이력에 로그인, 로그아웃 이력이 남게 됩니다.
여기까지 설정이 끝나면 실제 메인에서의 버튼 동작을 설정합니다.
먼저 LogIn 버튼의 동작입니다.
간단히 LogOnWin() 함수를 사용하면 로그온 기능을 동작시키는 버튼을 만들 수 있습니다.
LogOnWin() 함수는 위의 그림처럼 로그온 박스를 띄워줍니다.
사용자 보안에 등록된 아이디가 다수일 경우 User ID 란에서 해당 ID를 선택하고 Password를 키패드를 통해 입력하면 로그온 동작을 실행시킴과 동시에 로그온이 됩니다.
반대로 로그아웃 버튼의 설정입니다.
로그온과 마찬가지로 간단하게 LogOff() 함수 하나만 써주면 됩니다.
LogOff()는 로그인된 사용자를 로그아웃 시켜줍니다.
만약 로그아웃 동작이 설정되어있으면 그 동작을 실행시킵니다.
이 예제에서는 다른 설정이 없어 로그아웃 버튼을 눌러도 아무런 변화가 없지만 LogOff시 “로그아웃 되었습니다” 를 띄우는 팝업창을 만들어 사용자에게 알림을 줄 수도 있습니다.
마지막으로 LogIn/LogOut 이력 저장 버튼입니다.
이 버튼은 위의 LogIn 이나 LogOut 버튼보다 복잡합니다.
이와 같이 설정을 하면 경보 이력을 Csv 파일로 저장합니다.
간단히 설명을 하면 AlarmCsvWr(경보그룹,Csv파일이름,날짜시간표시형태,출력옵션,Csv저장위치) 이렇게 설정을 하면 됩니다.
자세한 설명은 적용 방법에서 설명드리겠습니다.
[ 적용 방법 ]
먼저 다수의 사용자가 있을 때, 그룹을 달리하거나 한 그룹 내에서 사용자 추가할 시 경보 내용에 각 사용자의 구분 내용을 추가해 어떤 사용자가 로그인/로그아웃 했는지 알 수 있습니다.
위와 같이 Admin2를 추가하였으면 로그온/로그오프 시 동작하는 또 다른 DIG02 태그를 만들고
각 태그의 경보내용을 위와 같이 설정하면 AlarmCsvWr 함수에서 경보내용을 이력으로 남겨 어떤 사용자가 몇 시에 로그인/로그오프 하였는지 알 수 있게 됩니다.
AlarmCsvWr 함수는 위에서 설명했듯이 AlarmCsvWr(경보그룹번호,CVS파일이름,날짜시간표시형태,CVS기록내용,CSV파일저장위치) 의 형식으로 사용합니다.
각 인자를 자세히 설명드리겠습니다.
경보그룹번호는 경보 설정에서 설정한 경보 그룹의 번호입니다.
이번 예제에서 경보 그룹을 하나만 썼기 때문에 1로 설정하지만 경보 그룹을 5번에 설정하였다면 5를 사용하시면 됩니다.
CSV 파일이름은 CSV 파일 앞에 붙을 문자열입니다. “테스트예제” 이렇게 붙이면 테스트예제.csv 파일이 출력됩니다. 하지만 정말로 테스트예제.csv로 출력되진 않습니다.
세 번째 인자는 csv파일 이름 뒤에 붙을 날짜형식입니다.
0 = YYYY/MM/DD HH:MM:SS
1 = DD/MM/YYYY HH:MM:SS
2 = MM/DD/YYYY HH:MM:SS
3 = MM/DD HH:MM:SS
4 = DD/MM HH:MM/SS
5 = HH:MM:SS
의 형식으로 붙습니다.
만약 세 번째 인자를 5를 선택하고 두 번째 인자를 “테스트예제”로 설정하면 12시45분50초에 저장된 CSV 파일은 테스트예제124550.csv의 파일로 출력됩니다.
네 번째 인자는 CSV 파일 내에 기록할 내용들을 선택하는 란입니다.
위와 같은 형식을 가지는데 둘 이상의 Symbol을 선택할 시 ORING표시( | )를 써서 구분합니다.
예를 들어 경보의 시간과 경보의 값을 나타내고 싶으면 _ALMPRT_TIME_|_ALMPRT_VALUE_ 의 형태를 써서 나타내면 됩니다.
이 표현과 1|4는 같은 표현입니다.
마지막으로 다섯 번째 인자는 저장형식을 구분하는 인자입니다.
위와 같은 형식을 가지는데 0을 사용하면 내부 저장소에, 1을 사용하면 지정한 경로에, 2를 사용하면 USB에 CSV 파일을 저장합니다.
위의 인자들을 상황과 목적에 맞게 사용하시면 됩니다.
첨부 1. LogIn_LogOut-1.zip
#Xpanel#LogIn#LogOut#AlarmCsvWr#CSV#엑셀출력#경보출력#경보이력#프로젝트예제#샘플프로젝트#Xpanel프로젝트예제#Xpanel샘플프로젝트#XpanelDesigner사용예제#XpanelDesigner기능#XpanelDesigner사용샘플#