권장 : ASP를 사용하여 원형 차트, 막대 차트 등을 만듭니다. 우리의 작업에서, 우리는 종종 데이터를 막대 차트, 원형 차트 등으로 변환하기 위해 데이터를 용이하게하고 직관적으로 분석해야합니다. 여기에서는 ASP : CSDGT.ZIP에서 PIE 차트 및 막대 차트를 만드는 구성 요소를 소개하겠습니다. 구성 요소이므로 사용하기 전에 RegSV를 사용해야합니다.
객체 지향 프로그래밍
프로그램 설계의 복잡성이 증가함에 따라 구조화 된 프로그래밍 방법으로는 충분하지 않습니다. 불충분 한 사용의 근본적인 이유는 코드를 재사용하는 것이 불편하기 때문입니다. 객체 지향 방법이 탄생했으며 상속을 통해 비교적 완전한 코드 재사용 기능을 구현합니다. 많은 학생들은 종종 일자리를 신청할 때 인터뷰 중에 질문을받습니다. 객체 지향 프로그래밍이 무엇인지 이야기합시다. 학생들은 말이 없고이 질문에 어떻게 대답하는지 묻기 위해 돌아와서 돌아옵니다. 나는 그에게 한 단어만으로도 충분하다고 말했다. 객체 지향 프로그래밍은 데이터의 캡슐화입니다. 패러다임 (템플릿)의 프로그래밍은 알고리즘의 캡슐화입니다. 나중에, 학생 이이 문제를 겪었을 때, 그는 단순히 간단한 문장으로 대답했고, 상대방은 학생을 감탄으로 보았습니다 (학생은 나중에 자랑스럽게 말씀 드렸습니다). 왜 그게? 철저한 경험과 연습을 통해서만이 본질을 추출 할 수 있기 때문입니다.
객체 지향 디자인 방법과 아이디어는 실제로 1970 년대 초반에 제안되었습니다. 목적은 프로그램이 기능을 통해 데이터를 조작하도록 강요하는 것입니다. 이러한 방식으로 데이터 캡슐화가 구현되고 이전 설계 방법의 모든 코드로 인한 버그를 피할 수 있습니다. 이 버그를 찾고 수정하는 것은 매우 어렵습니다. 그런 다음 객체 지향을 사용하지 않더라도 특정 데이터에 액세스하고 싶을 때 호출 기능을 사용하여 액세스 할 수 있다고 말할 수 있습니다. 괜찮지 않습니까? 예, 괜찮지 만 필수는 아닙니다. 사람들은 게으르다. 1에 1을 추가하고 싶을 때 왜 함수를 호출해야합니까? 잊어 버리세요, 문제를 구하는 것이 더 쉽습니다. 하하,이 게으름 때문에 프로그램에 버그가있을 때 잡기가 어렵습니다. 객체 지향은 필수이며 편집 단계에서 게으름 문제를 해결합니다.
우연히도, 대상 지향적 사고는 실제로 일상 생활의 문제를 다루는 것과 일치합니다. 예를 들어, 찻잔을 버릴 계획입니다. 어떻게 버릴 수 있습니까? 너무 간단합니다. 찻잔을 집어 들고 쓰레기통으로 걸어 가서 버리십시오! 이 프로세스 분석에주의하십시오. We first select an object----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The actions each object can apply to it are limited: a teacup can be thrown, smashed, used to drink water, knock it to make sounds...; 종이 조각을 쓰고, 눈물을 흘리며, 타 버릴 수 있습니다. 즉, 물체가 결정되면 방법도 결정됩니다. 이것이 우리의 일상 생활의 방식입니다. 그러나 우리의 프로그래밍 및 컴퓨터 운영에 대해 생각할 때는 그렇지 않습니다. DOS 작업을 예로 들어보십시오. DOS 프롬프트에서 다음으로 파일을 삭제하고 싶습니다. 이 과정에주의하십시오. 동작은 앞쪽 (델)에 있고 객체는 뒷면 (파일 이름)이며 객체 지향 메소드는 반대 순서입니다. 그래서 그것은 단지 순서의 문제 일뿐입니다. 어떤 영향을 미칩니 까? 하하, 당신은이 현상을 보았을 것입니다 : 파일을 찾을 수 없습니다. 아 ~~~, 나는 틀렸다. 틀렸다. 나는 잘못된 파일 이름으로 편지를 입력 했으므로 다시 입력했다 : c :> del 파일 이름 2 <enter>. 불행히도 다시 발생합니다. 컴퓨터 보고서 : 파일 읽기 전용. 하하, 통증 :). 따라서 DOS의 운영은 실제로 우리의 일상 습관을 위반합니다 (물론 아무도 반대 의견을 제기 한 사람은 없었습니다). 그러나 이제 객체 지향 설계를 사용하기 때문에 이러한 문제는 런타임이 아닌 컴파일 시간에 해결됩니다. obj.fun (),이 명령문의 경우, 객체 나 함수이든, 입력에 문제가 있으면 컴파일 중에보고되므로 실행 중에 오류를하지 않고 수정하여 모든 곳에서 버그를 잡을 수 있습니다.
동시에 객체 지향은 코드 재사용 문제를 해결할 수 있습니다 - 상속. 나는 속성 (변수)과 함께 개 수업을 썼다 : 털이 4 개 다리, 꼬리가 올라간 꼬리 (처진 꼬리가있는 하나는 늑대), 매우 민감한 코, 고기와 뼈를 먹는 것을 좋아한다 ... 방법에는 (기능) : 달리기, 냄새, 짖는 ... 사람들은 쥐를 잡는다. 좋아, 개 유형이 쓰여졌다. 그러나 실제 삶에서, 내가 가진 개는 이전에 쓴 개와 매우 비슷합니다. 약간의 차이 만 있습니다. 즉, 내 개, 그것은 곱슬 머리, 작은 코, 작은 입 ... 그래서 나는 Pug라는 새로운 유형을 도출하고 개에게 새로운 특징을 추가했습니다. 자, 프로그램이 완료되고 이전 코드의 올바른 코드가 재사용됩니다. 이것은 객체 지향 프로그래밍의 이점입니다. 나의 성공은 거인의 어깨에 서 있습니다. 물론 VC를 사용하는 경우 가장 재사용하는 코드는 MFC 클래스 라이브러리입니다.
===========================================================================================================================
좋아, 그럼 우리가 ASP를 어떻게 사용하는지 봅니다.
누구나 일반적으로 IIS의 기본 스크립팅 언어 vbscript를 ASP의 서버 측 실행 언어로 사용합니다. 처음에는 VBS 스크립트와 HTML이 기본적으로 혼합되어 특정 기능을 달성합니다. 예를 들어, 현재 페이지에 최신 5 개의 레코드를 표시해야합니다.
1. 다음과 같은 데이터베이스에 대한 연결을 먼저 정의합니다.
| 다음은 인용 된 내용입니다. db_path = ../database/cnbruce2005.mdb set conn = server.createobject (adodb.connection) connstr = provider = microsoft.jet.oledb.4.0; data source = & server.mappath (db_path) CONN.OCEN CONNSTR |
2. 그런 다음 관련 정보를 추출하기 위해 데이터베이스 레코드 수집을 만듭니다.
| 다음은 인용 된 내용입니다. set rs = server.createobject (adodb.recordset) sql = n_id desc의 [News] 주문에서 상위 5 * 선택 Rs. Open SQL, Conn, 1,1 |
3. 마지막으로 루프 방법을 통해 데이터를 표시하십시오
| 다음은 인용 된 내용입니다. rs.eof가 아니라 응답. rs (n_title) rs.movenext 고리 '최종 종료 및 릴리스 작업도 있습니다 Rs.Close RS = 아무것도 설정하지 않습니다 |
따라서 여기에서 rs (n_title)를 작성하십시오. 최종 웹 디자인의 경우 다른 HTML 태그 요소를 추가하기 전과 후에 추가 해야하는 것으로 추정됩니다. 따라서 당연히 VBS 스크립트와 HTML이 혼합되어 있습니다.
다시 봅시다. 이 5 개의 레코드를 표시 해야하는 페이지가 많으면 각 페이지를 이와 같이 설정해야합니까? 물론 가장 중요한 것은 각 페이지의 디자인이 다르다는 것입니다. 그러면 이것이 반복입니다. 어디서 반복? 반복 할 수 없습니까?
1. 데이터베이스 연결의 경우 데이터베이스 연결 파일 Conn.asp가 직접 설정되어 있으며 컨텐츠는 위와 같습니다.
2. 데이터베이스를 사용해야하고 연결을 설정 해야하는 한 참조 된 데이터베이스 연결 파일을 직접 포함시킬 수 있습니다.
<!-#포함 파일 = conn.asp->
그렇다면 위에서 어떤 반복이 저장됩니까? 각 데이터베이스 연결을 반복하십시오. 이것은 일부 일반적인 코드에 대한 반성 방지입니다. 살펴 보겠습니다. 이 페이지가 5 개 조각을 표시하고 6 개 조각을 표시 할 페이지를 표시하려면 어떻게해야합니까? 분명히, 이것은 현재 페이지에서 SQL 문의 간단한 수정 일 수 있으며, 예를 들어 Top 5 ~ Top 6의 원래 수정과 같은 것입니다.
좋아, 계속 지켜봐, 반복이 있나요? 예, SQL 쿼리의 다른 정의를 제외하고 나머지는 모두 복제입니다.
따라서 해결책을 계속 생각해보십시오. 추출 된 품목의 수를 직접 정의 할 수 있습니까? 나는 단지 몇 가지 항목 만 추출하고 싶지만 프로그램은 하나만 작성하면됩니다. 그런 다음 현재 기능이 유용합니다. 예를 들어 다음과 같은 기능을 정의합니다.
| 다음은 인용 된 내용입니다. 기능 톱니 (TNUM) set rs = server.createobject (adodb.recordset) sql = n_id desc의 [News] 주문에서 상단 & tnum & * 선택 Rs. Open SQL, Conn, 1,1 rs.eof가 아니라 응답. rs (n_title) rs.movenext 고리 Rs.Close RS = 아무것도 설정하지 않습니다 엔드 기능 |
그런 다음 TopNews (5) 또는 TopNews (6)를 사용하여 필요를 완료 할 수 있습니다.
... 언뜻보기에 ASP는 기능을 사용하고 마침내 완료된 것으로 보입니다. 기본 프로그램 기능은 기능 모듈로 만들어 지므로 전경 페이지 에서이 기능을 사용할 때 직접 호출해야합니다. 필요한 경우 기능 매개 변수 값을 완벽한 엔딩으로 수정하십시오.
그렇다면 왜 ASP에서 수업이 소개 되었습니까? 이 유형은 무엇입니까? 그리고 그것을 적용하는 방법?
ASP 스크립팅 언어에서 vbscript에는 클래스 키워드가 있으며 사용자 정의 클래스를 선언하는 데 사용할 수 있습니다. 예를 들어
| 다음은 인용 된 내용입니다. 클래스 이름 진술 수업 종료 |
여기서는 공공 또는 개인 구성원이 기능, 회원 및 속성을 포함한 진술에서 선언 할 수 있습니다.
JavaScript는 함수를 사용하여 클래스를 선언 한 다음 this.prototype 및 methods.func 정의를 통해 함수의 속성을 정의합니다.
어느 것이 어느 것을 선택하는 것이 간단합니다. 클래스의 이름, 즉 클래스의 이름을 정의한 후 여기서 무엇을 할 수 있습니까?
첫 번째. MSDN 문서화 : Visual Basic 6.0에서 클래스 모듈을 작성하고 파괴 할 때 클래스 모듈은 초기화 및 종료 이벤트를 사용하여 필요한 모든 작업을 수행합니다. 새 문장 이후 처음으로 개체가 발생하면 초기화 이벤트가 제기되고 객체에 대한 마지막 참조가 해제되면 종료 이벤트가 즉시 제기됩니다. 그러나 이러한 이벤트 방법은 실행 중 언제라도 직접 호출 할 수 있습니다.
그래서 나는 종종 다음과 같은 예를 봅니다.
cnbruce '클래스'는 cnbruce라는 클래스를 선언합니다
| 다음은 인용 된 내용입니다. 개인 Cnrose private sub class_initialize cnrose = 내 이름은 cnrose입니다. 종료 서브 private sub class_terminate () 종료 서브 수업 종료 |
봐요, 이것은 초기화입니다.
또한 ASP 클래스에는 LET 및 GET 메소드가 있습니다. 예를 들어, 위의 코드의 클래스 CNBruce 사이에 추가 ... END 클래스 :
| 다음은 인용 된 내용입니다. 공공 재산은 yname을 얻습니다 yname = cnrose 종료 속성 |
즉, 다음과 같습니다.
cnbruce '클래스'는 cnbruce라는 클래스를 선언합니다
| 다음은 인용 된 내용입니다. 개인 Cnrose private sub class_initialize cnrose = 내 이름은 cnrose입니다. 종료 서브 private sub class_terminate () 종료 서브 공공 재산은 yname을 얻습니다 yname = cnrose 종료 속성 수업 종료 |
예를 들어 값을 추출하는 방법
| 다음은 인용 된 내용입니다. AAA = 새로운 cnbruce를 설정하십시오 응답. aaa.yname |
aaa.yname은 이미 약간 느껴집니다. AAA는 CNBRUCE 클래스로 정의 된 객체입니다. 최종 출력은이 클래스의 객체에서 yname get 값으로 표시됩니다. 값 내용은 변수 cnrose의 값이며 값은 초기화되었습니다. 따라서 최종 결과는 제 이름이 Cnrose입니다.
이미 캡슐화 된 클래스의 내부를 직접 추출하는 것은 let는 어떻습니까? 즉, 클래스에 대한 외부 대화식 액세스 작업. 예를 들어, 이제 클래스 외부에서 정의 된 값을 적용합니다. 즉, 먼저 정의합니다.
| 다음은 인용 된 내용입니다. 공공 재산 let mname (nnn) cnrose = nnn 종료 속성 |
그 의미는 매우 간단합니다. 매개 변수 NNN의 값은 다른 외부 값에 따라 변수 cnrose에 할당됩니다. 그런 다음 OK 조합 프로그램, 즉 표시된 변수 CNROSE의 내용은 초기화 된 컨텐츠가 아니라 LET가 외부 적으로 적용되는 불확실한 값입니다. 그런 다음 적용하는 방법.
aaa.mname = sdasdasd
값을 직접 정의하십시오. 이제 전체 프로그램을보십시오.
| 다음은 인용 된 내용입니다. <% 클래스 cnbruce 개인 Cnrose private sub class_initialize cnrose = 내 이름은 cnrose입니다. 종료 서브 공공 재산은 yname을 얻습니다 yname = cnrose 종료 속성 공공 재산 let mname (nnn) cnrose = nnn 종료 속성 수업 종료 AAA = 새로운 cnbruce를 설정하십시오 aaa.mname = hahahoho 응답. aaa.yname %> |
aaa.mname의 값은 hahahoho로 정의되지만 공공 재산 Let Mname (NNN)에 따르면 그 값은 변수 cnrose입니다. 공공 속성에 따르면 aaa.yname을 출력하면 yname을 얻는다. 결과 값이 있다는 것은 놀라운 일이 아닙니다. /
기능 프로그램의 경우 클래스에서 기능 함수 또는 서브 루틴 하위로 정의됩니다.
따라서 일반적으로 함수의 래퍼 일 뿐이며 (직접 클래스 이름, 메소드, 클래스 이름, 속성 -_-!) 적용 할 때 쓰기가 쉽고보기 쉽지만 Java 또는 .NET와 같은 객체 지향적 사고 서비스가있을 것으로 기대하지 않습니다.
시간은 제한되어 있으며 시작과 끝은 조금만 있습니다.
공유 : ASP를 사용하여 HTML 형식 데이터를 전송하기위한 팁 Excel HTML 데이터를 EXECL 스프레드 시트로 스트리밍하기 위해 ASP 페이지를 구축하는 방법을 배우고 IE에 EXECL 스프레드 시트를 표시하십시오. 지금까지 ASP 기술을 사용하여 Excel 데이터 테이블을 만드는 방법에는 여러 가지가 있으며 서버 측 Excel 8.0 VBA 그룹을 사용할 수도 있습니다.