연습: 비전 클리닉 응용 프로그램 만들기

이 연습은 Visual Studio LightSwitch에서 응용 프로그램을 만드는 전체 프로세스를 보여 줍니다.LightSwitch 기능을 사용하여 가상의 비전 클리닉 응용 프로그램을 만듭니다.응용 프로그램에는 약속 일정을 관리하고 송장을 만들기 위한 기능이 포함되어 있습니다.

사전 요구 사항

PrescriptionContoso 데이터베이스에서 다운로드 MSDN 코드 갤러리.

단계

  • 프로젝트 만들기

    응용 프로그램 프로젝트를 만듭니다.

  • 테이블 정의

    환자, 송장 및 송장 세부 정보 엔터티를 추가합니다.

  • 선택 목록 만들기

    값의 목록을 만듭니다.

  • 관계 정의

    관련 테이블을 연결합니다.

  • 다른 엔터티 추가

    Appointment 엔터티를 추가합니다.

  • 화면 만들기

    환자를 표시하는 화면을 만듭니다.

  • 응용 프로그램 실행

    응용 프로그램을 실행하고 데이터를 입력합니다.

  • 데이터베이스에 연결

    외부 데이터베이스에 연결

  • 엔터티 변경

    Products 및 Product Rebate 엔터티 수정

  • 목록 및 세부 정보 화면 만들기

    제품을 표시하는 화면을 만듭니다.

  • 화면 레이아웃 변경

    제품 목록 화면의 레이아웃을 수정합니다.

  • 런타임 변경

    실행 중인 응용 프로그램에서 변경합니다.

  • 쿼리 만들기

    매개 변수가 있는 쿼리를 만들고 화면에 바인딩합니다.

  • 계산 필드 추가

    계산된 필드를 만들고 화면에 추가합니다.

  • 데이터베이스 간 관계 만들기

    다른 데이터베이스의 엔터티 간에 가상 관계를 만듭니다.

  • 송장 화면 만들기

    청구서를 표시하는 화면을 만듭니다.

  • 송장 화면 수정

    실행 중인 응용 프로그램에서 송장 화면의 레이아웃을 변경합니다.

  • 화면 논리 추가

    날짜를 계산하는 코드를 작성합니다.

  • 계산 필드 추가

    계산된 필드를 더 만들고 송장 화면에 추가합니다.

  • 응용 프로그램 배포

    응용 프로그램을 2계층 데스크톱 응용 프로그램으로 게시합니다.

프로젝트 만들기

LightSwitch 응용 프로그램 만들기의 첫 단계는 새 프로젝트를 여는 것 입니다.

프로젝트를 만들려면

  1. Windows 시작 메뉴에서 Visual Studio 2012을 클릭합니다.

    LightSwitch 디자이너가 나타납니다.

  2. 파일 메뉴에서 새 프로젝트를 클릭합니다.

    새 프로젝트 대화 상자가 열립니다.

  3. 설치된 템플릿 목록에서 LightSwitch 노드를 선택합니다.

  4. 가운데 창에서 LightSwitch응용 프로그램(VB) 또는 LightSwitch를 선택합니다.응용 프로그램(C#)

  5. 이름 필드에 Vision Clinic을 입력한 다음 확인을 클릭합니다.

    비전 클리닉 디자이너 창이 나타나고 프로젝트에 필요한 폴더는 솔루션 탐색기 창에 추가됩니다.

    Vision Clinic 프로젝트

테이블 정의

엔터티라고 하는 테이블인 LightSwitch에서 데이터를 나타내는 개체를 모델링합니다. 환자의 경우에 해당합니다.LightSwitch 응용 프로그램은 "데이터 폼" 모델 즉 하나 이상의 원본에서 데이터를 표시하는 폼 또는 화면을 사용합니다.LightSwitch에는 응용 프로그램의 데이터를 저장하는 데 사용할 수 있는 기본 데이터베이스가 포함되어 있습니다.다음 단계에서는 환자 정보를 저장하는 데이터베이스 테이블을 만듭니다.

Patient 엔터티 만들기

  1. Vision Clinic 디자이너 창에서 새 테이블 만들기를 클릭합니다.

    데이터 디자이너가 나타나고 Table1Items 노드가 Solution Explorer의 데이터 원본 아래에 나타납니다.

  2. 속성 창에서 이름 속성을 선택하고 Patient를 입력한 후 Enter 키를 누릅니다.

    데이터 디자이너 제목 표시줄에 이름이 "Patient"로 변경되고 솔루션 탐색기에서는 이름이 "Patients"로 변경됩니다.

  3. 이름 열에서 **<속성 추가>**를 클릭한 다음 FirstName을 입력하고 Enter 키를 누릅니다.

    적절한 데이터 형식 String은 형식 열에 나타나고 필수 필드는 선택되어 있습니다.환자는 이름이 있어야 합니다.

  4. 이름 열의 **<속성 추가>**를 클릭하고 LastName을 입력합니다.

  5. 이름 열의 **<속성 추가>**를 클릭하고 Street를 입력합니다.

  6. 이름 열의 **<속성 추가>**를 클릭하고 Street2를 입력합니다.

  7. 필수 열에서 확인란의 선택을 취소합니다.

    주소의 둘째 줄은 선택 사항입니다.

  8. 이름 열의 **<속성 추가>**를 클릭하고 City를 입력합니다.

  9. 이름 열의 **<속성 추가>**를 클릭하고 State를 입력합니다.

  10. 이름 열의 **<속성 추가>**를 클릭하고 Zip을 입력합니다.

  11. 이름 열의 **<속성 추가>**를 클릭하고 PrimaryPhone을 입력합니다.

  12. 형식 열의 드롭다운 목록에서 전화 번호를 선택합니다.

    PhoneNumber는 전화 번호 입력 및 서식 적용의 일반적인 패턴을 보여주는 사용자 지정 비즈니스 유형입니다.

  13. 필수 열에서 확인란의 선택을 취소합니다.

  14. 이름 열의 **<속성 추가>**를 클릭하고 SecondaryPhone을 입력합니다.

  15. 형식 열의 드롭다운 목록에서 전화 번호를 선택합니다.

  16. 필수 열에서 확인란의 선택을 취소합니다.

  17. 이름 열의 **<필드 추가>**를 클릭하고 Email을 입력합니다.

  18. 형식 열의 드롭다운 목록에서 전자 메일 주소를 선택합니다.

    EmailAddress는 서식이 올바로 지정된 전자 메일 주소를 나타내는 또 다른 사용자 지정 비즈니스 형식입니다.

  19. 필수 열에서 확인란의 선택을 취소합니다.

  20. 이름 열의 **<속성 추가>**를 클릭하고 PolicyNumber를 입력합니다.

  21. 속성 창에서 최대 길이 속성을 선택하고 12를 입력합니다.

    이 경우 사용자가 정책 번호에 12자 이상의 문자를 입력하지 못하게 됩니다.

    Patient 엔터티

  22. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

다음으로 송장 및 송장 줄 항목을 나타내는 엔터티 2개를 더 만듭니다.

Invoice 및 InvoiceDetail 엔터티 만들기

  1. 솔루션 탐색기에서 Data Sources를 클릭합니다.프로젝트 메뉴에서 테이블 추가를 클릭합니다.

    데이터 디자이너의 새 인스턴스가 나타납니다.

  2. 속성 창에서 이름 속성을 선택합니다.송장을 입력하고 Enter 키를 누릅니다.

  3. 이름 열에서 **<속성 추가 >**를 클릭합니다.송장 날짜를 입력하고 Enter 키를 누릅니다.

  4. 형식 열의 드롭다운 목록에서 날짜/시간을 선택합니다.

  5. 이름 열에서 **<속성 추가 >**를 클릭합니다.송장 기한을 입력하고 Enter 키를 누릅니다.

  6. 형식 열의 드롭다운 목록에서 날짜/시간을 선택합니다.

  7. 필수 열에서 확인란의 선택을 취소합니다.

  8. 이름 열에서 **<속성 추가 >**를 클릭합니다.송장 상태를 입력하고 Enter 키를 누릅니다.

  9. 형식 열의 드롭다운 목록에서 정수를 선택합니다.

  10. 이름 열에서 **<속성 추가 >**를 클릭합니다.운송 날짜를 입력하고 Enter 키를 누릅니다.

  11. 형식 열의 드롭다운 목록에서 날짜/시간을 선택합니다.

    Invoice 엔터티

  12. 솔루션 탐색기에서 Data Sources를 클릭합니다.프로젝트 메뉴에서 테이블 추가를 클릭합니다.

  13. 속성 창에서 이름 속성을 선택하고 InvoiceDetail을 입력한 후 Enter 키를 누릅니다.

  14. 이름 열에서 **<속성 추가>**를 클릭하고 Quantity를 입력한 후 Enter 키를 누릅니다.

  15. 형식 열의 드롭다운 목록에서 정수를 선택합니다.

  16. 이름 열의 **<속성 추가>**를 클릭하고 UnitPrice를 입력합니다.

  17. 형식 열의 드롭다운 목록에서 금액을 선택합니다.

    Money는 서식이 올바로 지정된 통화를 나타내는 사용자 지정 비즈니스 유형입니다.

    InvoiceDetails 엔터티

  18. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

선택 목록 만들기

다음 단계에서는 Invoice 엔터티에 대한 선택 목록을 만듭니다.선택 목록을 사용하면 사용자에게 고정된 선택할 값 집합을 제공할 수 있습니다.

선택 목록 만들기

  1. 솔루션 탐색기에서 송장을 두 번 클릭합니다.

  2. 데이터 디자이너에서 InvoiceStatus 필드를 선택합니다.

  3. 속성 창에서 선택 목록 링크를 클릭합니다.

    선택 목록 대화 상자

    선택 목록 대화 상자가 나타납니다.

  4. 선택 목록 대화 상자에서 다음 값을 입력하고 확인을 클릭합니다.

    표시 이름

    0

    Active

    1

    지급

    2

    연체

    이 필드가 화면에 표시되면 입력한 세 표시 이름 값을 포함하는 드롭다운 목록을 사용자에게 제시합니다.

  5. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

관계 정의

다음 단계에서 Patient, InvoiceInvoiceDetail 엔터티 사이의 관계를 정의합니다.

관계 정의

  1. 솔루션 탐색기에서 송장을 두 번 클릭합니다.

  2. 데이터 디자이너 도구 모음에서 관계를 클릭합니다.

    새 관계 추가 대화 상자가 나타납니다.

  3. 새 관계 추가 대화 상자에서 이름: 행의 대상 열을 선택합니다.환자를 선택한 다음 확인을 클릭합니다.

    일 대 다 관계는 Patient 및 Invoice 엔터티 간에 만들어지고 환자는 여러 개의 송장을 가질 수 있습니다.

  4. 데이터 디자이너 도구 모음에서 관계를 클릭합니다.

    새 관계 추가 대화 상자가 나타납니다.

  5. 새 관계 추가 대화 상자에서 이름 행의 대상 열을 선택한 후 InvoiceDetail을 선택합니다.

  6. 복합성: 행에서 시작 열을 선택하고 을 선택합니다.

  7. 복합성: 행에서 대상 열을 선택하고 다수를 선택한 후 확인을 클릭합니다.

    일 대 다 관계는 Invoice 및 InvoiceDetail 엔터티 간에 만들어지고 송장은 여러 가지 송장 세부 정보를 가질 수 있습니다.

    Invoice와 InvoiceDetail 간의 관계

  8. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

Appointment 엔터티 만들기

다음 단계에서 약속을 나타내는 엔터티를 하나 더 추가하고 관계 및 선택 목록을 추가합니다.

Appointment 엔터티 추가

  1. 솔루션 탐색기에서 Data Sources를 클릭한 다음 프로젝트 메뉴에서 테이블 추가를 클릭합니다.

  2. 속성 창에서 이름을 Appointment로 변경합니다.

  3. 데이터 디자이너에서 이름 열에 있는 **<속성 추가>**를 클릭하고 AppointmentTime을 입력합니다.

  4. 형식 열의 드롭다운 목록에서 날짜/시간을 선택합니다.

  5. 이름 열의 **<속성 추가>**를 클릭하고 AppointmentType을 입력합니다.

  6. 형식 열의 드롭다운 목록에서 **정수(short)**를 선택합니다.

  7. 이름 열의 **<속성 추가>**를 클릭하고 DoctorNotes를 입력합니다.

  8. 기본 형식인 문자열을 적용하고 필수 확인란의 선택을 취소합니다.

  9. 데이터 디자이너 도구 모음에서 관계를 클릭합니다.

  10. 새 관계 추가 대화 상자에서 이름: 행의 대상 열을 선택합니다.환자를 선택한 다음 확인을 클릭합니다.

    일 대 다 관계는 Patient 및 Appointment 엔터티 간에 만들어지고 환자는 여러 약속을 가질 수 있습니다.

  11. 데이터 디자이너에서 AppointmentType 필드를 선택합니다.

  12. 속성 창에서 선택 목록 링크를 클릭합니다.

    선택 목록 대화 상자가 나타납니다.

  13. 선택 목록 대화 상자에서 다음 값을 입력하고 확인을 클릭합니다.

    표시 이름

    0

    연간

    1

    후속

    2

    긴급

    Appointment 엔터티

  14. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

화면 만들기

다음 단계에서는 환자 목록을 표시하는 새 화면을 만듭니다.

화면 생성

  1. 솔루션 탐색기에서 화면 노드를 클릭한 다음 프로젝트 메뉴에서화면 추가를 클릭합니다.

    새 화면 추가 대화 상자를 엽니다.

  2. 화면 템플릿 선택 목록에서 편집 가능한 표 화면을 선택합니다.

  3. 화면 이름 텍스트 상자에 PatientList를 입력합니다.

  4. 화면 데이터 드롭다운 목록에서 환자를 선택합니다.확인을 클릭합니다.

    PatientList 화면 정의

    화면 레이아웃을 계층적 표현으로 표시하는 화면 디자이너가 열립니다.

  5. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

응용 프로그램을 실행하고 데이터를 입력합니다.

이제 응용 프로그램을 실행할 수 있습니다.다음 단계는 응용 프로그램을 실행하고 일부 데이터를 입력합니다.

응용 프로그램을 실행하려면

  1. F5 키를 눌러 응용 프로그램을 시작합니다.

  2. 실행 중인 응용 프로그램에서 PatientList 화면을 선택하고 +…(추가) 단추를 클릭합니다.

    새 환자 추가 대화 상자가 나타납니다.

  3. 새로운 환자에 대한 데이터를 입력합니다.전자 메일 필드에 잘못된 값, 예를 들어 john#example.com을 입력합니다.

    잘못된 전자 메일 주소

    필드에서 멀리 이동하면 빨간색 테두리가 나타납니다.EmailAddress 비즈니스 형식에는 형식이 잘못된 전자 메일 주소를 탐지할 수 있는 기본 제공되는 유효성 검사 규칙이 포함되어 있습니다.

  4. 오류를 수정하고 데이터 입력을 완료한 후 확인을 클릭합니다.

    응용 프로그램 도구 모음의 저장 단추를 이제 사용할 수 있습니다.

  5. 추가 +… 단추를 클릭합니다.두 번째 환자에 대한 데이터를 추가하고 확인을 클릭합니다.

  6. 저장을 클릭하여 데이터를 저장합니다.

    이제 환자 목록 표의 열을 다시 정렬할 수 있고 아무 열이나 정렬할 수 있습니다.

  7. 실행 중인 응용 프로그램의 오른쪽 위 모퉁이에 있는 닫기 단추를 클릭하여 디자인 모드로 돌아갑니다.

  8. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

데이터베이스에 연결

다음 단계에서는 제품 정보가 있는 외부 데이터베이스에 연결합니다.

[!참고]

이 단계를 수행 하기 전에 PrescriptionContoso 데이터베이스를 다운로드 및 설치해야 합니다.데이터베이스에서 다운로드할 수 MSDN 코드 갤러리.Install.htm 파일의 지침을 따라 데이터베이스를 설치합니다.

데이터 소스에 연결

  1. 솔루션 탐색기에서 데이터 원본 노드를 선택합니다.

  2. 프로젝트 메뉴에서 데이터 원본 추가를 클릭합니다.

    데이터 소스 연결 마법사가 열립니다.

  3. 데이터 소스 연결 마법사에서 데이터베이스를 클릭하고 다음을 클릭합니다.

    데이터 소스 선택 대화 상자가 열립니다.

    [!참고]

    이전에 LightSwitch 데이터베이스에 연결한 경우 이 대화 상자가 표시되지 않고 다음 단계를 건너뛸 수 있습니다.

  4. 데이터 소스 선택 대화 상자에서 **Microsoft SQL Server(SQL 클라이언트)**를 클릭한 다음 계속을 클릭합니다.

    연결 속성 대화 상자가 나타납니다.

  5. 연결 속성 대화 상자에서 다음 표에 값을 입력하고 확인을 클릭합니다.

    필드

    서버 이름

    (localdb)\v11.0

    서버에 로그인

    Windows 인증 사용

    데이터베이스 이름 선택 또는 입력

    C:\Temp\PrescriptionContoso.mdf

    연결 속성

    데이터베이스 개체 선택 마법사 페이지가 나타납니다.

  6. 테이블 노드를 확장합니다.

  7. 제품ProductRebate 테이블을 선택한 다음 완료를 클릭합니다.

    C_TEMP_PRESCRIPTIONCONTOSO_MDFData 데이터 소스가 프로젝트에 추가되며 ProductsProductRebates용 엔터티가 만들어집니다.

  8. 솔루션 탐색기에서 C_TEMP_PRESCRIPTIONCONTOSO_MDFData를 마우스 오른쪽 단추로 클릭하고 이름 바꾸기를 클릭하고 PrescriptionContoso를 입력합니다.

  9. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

Products 및 ProductRebate 엔터티 수정

다음 단계에서는 ProductRebate 및 Products 엔터티 일부를 변경합니다.

ProductRebate 및 제품 엔터티를 수정하려면

  1. 솔루션 탐색기에서 ProductRebates 노드를 두 번 클릭합니다.

  2. 리베이트 필드를 선택하고 형식금액으로 변경합니다.

  3. 솔루션 탐색기에서 제품 노드를 두 번 클릭합니다.

  4. 데이터 디자이너에서 MSRP 필드를 선택하고 형식금액으로 변경합니다.

  5. ProductImage 필드를 선택하고 형식이미지로 변경합니다.

  6. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

목록 및 세부 정보 화면 만들기

다음 단계에서는 제품 정보를 표시하는 새 화면을 만듭니다.

목록 및 세부 정보 화면을 만들려면

  1. 솔루션 탐색기에서 화면 노드를 선택합니다.프로젝트 메뉴에서 화면 추가를 클릭합니다.

  2. 새 관계 추가 대화 상자의 목록 및 세부 정보 화면 목록에서 화면 템플릿 선택을 선택합니다.

  3. 화면 이름 필드에 ProductList를 입력합니다.

  4. 화면 데이터 드롭다운 목록을 선택하고 PrescriptionContoso.Products를 선택합니다.

  5. 추가 데이터 포함 목록에서 Product DetailsProduct ProductRebates 확인란을 모두 선택하고 확인을 클릭합니다.

화면 레이아웃 변경

다음 단계에서는 ProductList 화면의 레이아웃을 변경합니다.

레이아웃을 사용자 지정하려면

  1. 화면 디자이너에서 화면 콘텐츠 트리행 레이아웃 |제품 정보 노드를 선택합니다.

  2. 행 레이아웃 드롭다운 목록에서 그림 및 텍스트를 선택합니다.

  3. 그림 및 텍스트 노드 아래에 있는 각 필드의 드롭다운 목록에서 다음 값을 선택합니다.

    필드

    (그림)

    제품 이미지

    (제목)

    제품 이름

    (부제목)

    MSRP

    (설명)

    설명

    그림 및 텍스트 레이아웃

  4. F5 키를 눌러 응용 프로그램을 실행하고 결과를 봅니다.

  5. 실행 중인 응용 프로그램에서 화면을 표시하려면 ProductList 메뉴를 클릭합니다.

    응용 프로그램을 열어 놓습니다.다음 단계에서는 실행 중인 응용 프로그램을 변경합니다.

실행 중인 응용 프로그램에서 변경 작업

다음 단계에서는 응용 프로그램 실행 중 제품 목록 화면을 변경합니다.

런타임에 화면을 사용자 지정하려면

  1. 제품 목록 화면에서 클릭는 디자인 화면 단추 오른쪽 아래 모서리에 있습니다.

  2. 왼쪽 창에서 데이터 표 | 제품 리베이트 노드를 선택합니다.

  3. 속성 창에서 표시 이름 속성을 Contoso Rebates로 변경합니다.

    응용 프로그램 창에서 이름도 변경됩니다.

  4. MSRP 필드를 선택하고 설명 속성을 리베이트 전 제안 가격으로 변경합니다.

    디자인 타임 사용자 지정

  5. 저장 단추를 클릭하여 실행 중인 응용 프로그램으로 돌아가 변경 내용을 봅니다.설명을 보려면 MSRP 필드 위로 가져갑니다.

  6. 실행 중인 응용 프로그램의 오른쪽 위 모퉁이에 있는 닫기 단추를 클릭하여 디자인 모드로 돌아갑니다.

  7. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

쿼리 작성

다음 단계에서는 매개 변수가 있는 쿼리를 만들고 화면에 바인딩합니다.

매개 변수가 있는 쿼리 만들기

  1. 솔루션 탐색기에서 제품 노드를 선택합니다.프로젝트 메뉴에서 쿼리 추가를 클릭합니다.

    쿼리 디자이너가 나타납니다.

  2. 속성 창에서 이름 필드를 선택하고 RelatedProducts를 입력합니다.

  3. 쿼리 디자이너에서 필터 추가를 클릭합니다.

    필터 조건이 필터 영역에 추가됩니다.

  4. 두 번째 드롭다운 목록에서 범주를 선택합니다.

  5. 네 번째 드롭다운 목록에서 매개 변수를 선택합니다.

  6. 다섯 번째 드롭다운 목록에서 새로 추가를 클릭합니다.

    String 형식의 새 Parameter는 Category라 명명되었으며 매개 변수 섹션에 추가되었습니다.

    RelatedProducts 쿼리

  7. 솔루션 탐색기에서 ProductList 노드를 두 번 클릭하여 화면 디자이너를 엽니다.

  8. 화면 디자이너 도구 모음에서 데이터 항목 추가를 클릭합니다.

    데이터 항목 추가 대화 상자가 나타납니다.

  9. 데이터 항목 추가 대화 상자에서 쿼리를 클릭합니다.이름 열에서 PrescriptionContoso.RelatedProducts를 선택하고 확인을 클릭합니다.

    RelatedProducts 노드는 왼쪽 창에 나타납니다.

  10. 쿼리 매개 변수 아래에서 범주 노드를 선택합니다.

  11. 속성 창에서 매개 변수 바인딩 속성을 선택한 다음 Products.SelectedItem.Category를 입력합니다.

  12. 가운데 창에서 DataGrid |Contoso 리베이트 노드 아래의 추가 노드를 확장한 후 관련 제품을 클릭합니다.

    관련 제품 추가

  13. F5 키를 눌러 응용 프로그램을 실행하고 결과를 봅니다.

    제품 목록 화면을 열면 선택한 각 제품 관련된 제품 목록이 표시됩니다.

  14. 실행 중인 응용 프로그램의 오른쪽 위 모퉁이에 있는 닫기 단추를 클릭하여 디자인 모드로 돌아갑니다.

  15. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

계산 필드 추가

다음 단계에서는 계산된 값을 사용하는 필드를 추가합니다.리베이트 금액을 적용한 후 계산된 값이 제품의 가격입니다.

계산 필드 추가

  1. 솔루션 탐색기에서 Products 엔터티 노드를 두 번 클릭합니다.

  2. 데이터 디자이너에서 **<속성 추가>**를 클릭합니다.CurrentPrice을 입력한 다음 을 클릭합니다.

  3. 형식 열의 드롭다운 목록에서 금액을 선택합니다.

    속성 창에서 일반 아래에 있는 Is Computed 속성이 기본적으로 선택되어 있습니다.

  4. 속성 창에서 메서드 편집 링크를 클릭합니다.

    코드 편집기가 나타나고 CurrentPrice_Compute 메서드가 표시됩니다.

  5. 이벤트 처리기에 다음 코드를 추가합니다.

    Dim rebates As Decimal
        For Each item In ProductRebates
            If item.RebateStart <= Date.Today And item.RebateEnd >= Date.Today Then
                rebates = rebates + item.Rebate
            End If
        Next
    
        result = Me.MSRP - rebates
    
    decimal rebates = default(decimal);
    
    
                foreach (var item in ProductRebates)
                {
                    if (item.RebateStart <= System.DateTime.Today && item.RebateEnd >= System.DateTime.Today)
                    {
                        rebates += item.Rebate.Value;
                    }
                }
    
                result = this.MSRP - rebates;
    

    현재 가격을 계산하는 코드

  6. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

다음 단계에서는 ProductList 화면에 계산된 값을 추가합니다.

화면에 계산 필드 추가

  1. 솔루션 탐색기에서 ProductList 화면 노드를 두 번 클릭합니다.

  2. 화면 디자이너의 왼쪽 창에서 CurrentPrice 노드를 선택한 후 가운데 창에 있는 (설명) | 설명 노드 아래로 끌어 놓습니다.

    끌어서 놓기 후 현재 가격

  3. F5 키를 눌러 응용 프로그램을 실행하고 결과를 봅니다.

  4. ProductList 화면에서 리베이트 또는 MSRP 필드를 편집합니다.CurrentPrice가 다시 계산됩니다.닫기 단추를 클릭하여 디자인 모드로 돌아갑니다.

  5. 실행 중인 응용 프로그램의 오른쪽 위 모퉁이에 있는 닫기 단추를 클릭하여 디자인 모드로 돌아갑니다.

  6. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

데이터베이스 간 관계 만들기

다음 단계에서 두 개의 다른 데이터베이스의 엔터티 간에 가상 관계를 만들고 단일 목록 및 세부 정보 화면에 두 개의 서로 다른 소스에서 데이터를 표시합니다.

크로스 데이터베이스 관계를 만들려면

  1. 솔루션 탐색기에서 InvoiceDetails 엔터티 노드를 두 번 클릭합니다.

  2. 데이터 디자이너에서 관계 도구 모음 단추를 클릭합니다.

  3. 새 관계 추가 대화 상자에서 대상 열의 이름 필드를 선택한 후 Product를 선택합니다.

    새 섹션은 대화 상자 아래쪽에 나타납니다.두 엔터티에 관련 필드가 나타납니다.필요한 경우 관련 필드를 같은 데이터 형식의 다른 필드로 변경할 수 있거나 여러 개의 관련된 필드를 키로 정의할 수 있습니다.

    크로스 데이터베이스 관계

  4. 확인을 클릭하여 관계를 저장합니다.

    새로운 관계는 디자이너에서 점선으로 표시됩니다.이것은 내장 데이터베이스의 InvoiceDetails 및 PrescriptionContoso 데이터베이스의 Products 엔터티가 다른 데이터 원본에 있음을 나타냅니다.

  5. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

청구서를 표시하는 화면 만들기

다음 단계에서는 송장을 표시하는 새 화면을 만듭니다.

화면 생성

  1. 솔루션 탐색기에서 화면 노드를 선택합니다.프로젝트 메뉴에서 화면 추가를 클릭합니다.

  2. 새 관계 추가 대화 상자의 목록 및 세부 정보 화면 목록에서 화면 템플릿 선택을 선택합니다.

  3. 화면 이름 텍스트 상자에 InvoiceScreen을 입력합니다.

  4. 화면 데이터 드롭다운 목록에서 송장을 선택합니다.

  5. 추가 데이터 포함 목록에서 송장 세부 정보Invoice InvoiceDetails을 선택하고 확인 을 클릭합니다.

    InvoiceScreen 레이아웃

  6. 데이터 표 행 | 송장 세부 정보 노드를 확장합니다.제품 제품 ID 노드를 선택하여 삭제합니다.

  7. 필드의 순서를 다시 정하려면 UnitPrice 노드를 클릭하고 제품 노드 아래로 끌어 놓습니다.

  8. F5 키를 눌러 응용 프로그램을 실행합니다.화면을 표시하려면 메뉴에서 송장 화면을 클릭합니다.

  9. 송장 창에서 +…(추가) 단추를 클릭합니다.

    송장 데이터의 일부를 입력합니다.InvoiceStatus 필드가 값의 드롭다운 목록을 제공하고 Patient 필드가 환자 목록을 갖고 있는 대화 상자를 열 수 있는 단추를 포함합니다.

  10. 송장 정보 창에서 추가 +… 단추를 클릭합니다.

    송장 데이터 상세 사항을 일부 입력합니다.제품 필드가 PrescriptionContoso 데이터베이스에서 제품의 드롭다운 목록을 제공하는 방식을 확인합니다.

  11. 저장 단추를 클릭하여 송장 데이터를 저장합니다.

  12. 응용 프로그램을 열어 놓습니다.다음 단계에서는 실행 중인 응용 프로그램을 변경합니다.

송장 화면 수정

다음 단계에서는 실행 중인 응용 프로그램의 송장 화면 일부를 변경합니다.

실행 중인 응용 프로그램에서 화면을 수정하려면

  1. 송장 화면의 오른쪽 위 모서리에 있는 디자인 화면 단추를 클릭합니다.

  2. 왼쪽 창에서 목록 | 송장 노드를 선택합니다.목록 드롭다운 목록에서 DataGrid를 선택합니다.

  3. 환자 노드를 선택합니다.왼쪽 여백의 위로 이동 화살표를 사용하여 송장 날짜 노드로 이동합니다.

    사용자 지정된 Invoice 화면

  4. 저장을 클릭하여 실행 중인 응용 프로그램으로 돌아가 변경 내용을 봅니다.

  5. 실행 중인 응용 프로그램의 오른쪽 위 모퉁이에 있는 닫기 단추를 클릭하여 디자인 모드로 돌아갑니다.

  6. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

화면 논리 정의

다음 단계에서는 송장 날짜에 기본 논리를 정의하는 코드를 추가합니다.

화면 논리를 정의하려면

  1. 솔루션 탐색기에서 Invoices 엔터티 노드를 두 번 클릭합니다.

  2. 데이터 디자이너 에서 도구 모음의 코드 작성 드롭다운 목록을 클릭합니다.Invoice_Created 링크를 클릭합니다.

    코드 편집기가 열리고 Invoice_Created 메서드가 표시됩니다.

  3. 날짜에 대한 기본 동작을 설정하려면 Invoice_Created 메서드에서 다음 코드를 추가합니다.

    InvoiceDate = Date.Today
    InvoiceDue = Date.Today.AddDays(30)
    ShipDate = Date.Today.AddDays(3)
    
    InvoiceDate = System.DateTime.Today;
    InvoiceDue = System.DateTime.Today.AddDays(30);
    ShipDate = System.DateTime.Today.AddDays(3);
    
  4. 솔루션 탐색기에서 Invoices 엔터티 노드를 두 번 클릭합니다.

  5. 데이터 디자이너에서 InvoiceDate 필드를 선택합니다.

  6. 도구 모음에서 코드 작성 드롭다운 목록을 클릭한 다음 InvoiceDate_Changed 링크를 클릭합니다.

  7. 송장 날짜가 변경될 때 날짜를 업데이트하려면 InvoiceDate_Changed 메서드에서 다음 코드를 추가합니다.

    InvoiceDue = InvoiceDate.AddDays(30)
    ‘ If the ShipDate is earlier than the new InvoiceDate, update it.
    If ShipDate < InvoiceDate Then
        ShipDate = InvoiceDate.AddDays(2)
    End If
    
    InvoiceDue = InvoiceDate.AddDays(30); 
        // If the ShipDate is earlier than the new InvoiceDate, update it
    if (ShipDate < InvoiceDate)
        {
            ShipDate = InvoiceDate.AddDays(2);
        }
    
  8. 솔루션 탐색기에서 InvoiceDetails 노드를 두 번 클릭합니다.

  9. 데이터 디자이너에서 제품 필드를 선택하고 도구 모음의 코드 작성 드롭다운 목록을 클릭하고 Product_Changed 링크를 클릭합니다.

  10. 코드 편집기에서 단가 및 기본 수량 단위를 설정하려면 다음 코드를 추가합니다.

    UnitPrice = Product.CurrentPrice
    Quantity = 1
    
    UnitPrice = Product.CurrentPrice;
    
    Quantity = 1;
    
  11. F5 키를 눌러 응용 프로그램을 실행하고 변경 사항을 봅니다.

    송장 화면을 열고 새 송장을 추가합니다.날짜 필드, 가격 및 수량이 지금 자동으로 업데이트됩니다.

  12. 저장 단추를 클릭하여 변경 내용을 저장합니다.

  13. 실행 중인 응용 프로그램의 오른쪽 위 모퉁이에 있는 닫기 단추를 클릭하여 디자인 모드로 돌아갑니다.

  14. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

계산 필드 추가

다음 단계에서 SubTotal, Tax 및 Total에 대한 계산된 필드를 추가하고 InvoiceDetails송장 엔터티에 추가합니다.

계산 필드 추가

  1. 솔루션 탐색기에서 InvoiceDetails 엔터티 노드를 두 번 클릭합니다.

  2. 데이터 디자이너에서 **<속성 추가>**를 클릭합니다. 부분합을 입력하고 을 클릭합니다.

  3. 형식 열의 드롭다운 목록에서 금액을 선택합니다.

  4. 속성 창의 일반 속성 아래에서 IsComputed 확인란을 선택합니다.

  5. 메서드 편집 링크를 클릭합니다.

    코드 편집기가 나타나고 SubTotal_Compute 메서드가 표시됩니다.

  6. SubTotal 코드를 계산하기 위해 다음 코드를 추가합니다.

    result = Quantity * UnitPrice
    
    result = Quantity * UnitPrice;
    
  7. 솔루션 탐색기에서 Invoices 엔터티 노드를 두 번 클릭합니다.

  8. 데이터 디자이너에서 **<속성 추가>**를 클릭합니다. 세금을 입력하고 을 클릭합니다.

  9. 형식 열의 드롭다운 목록에서 금액을 선택합니다.

  10. 속성 창에서 IsComputed 확인란을 선택합니다.

  11. 메서드 편집 링크를 클릭합니다.

    코드 편집기가 열리고 Tax_Compute 메서드가 표시됩니다.

  12. Tax를 계산하기 위해 Tax_Compute 메서드를 다음 코드로 바꿉니다.

    Private Sub Tax_Compute(ByRef result As Decimal)
        Result =  GetSubTotal() * 0.095
    End Sub
    Protected Function GetSubTotal() As Decimal
        GetSubtotal = 0
        For Each item In InvoiceDetails
            GetSubTotal = GetSubTotal + item.SubTotal
        Next
    End Function
    
    partial void Tax_Compute(ref decimal result)
        {
            result = GetSubTotal() * (decimal)0.095;
        }
    protected decimal GetSubTotal()
        {
            return this.InvoiceDetails.Sum(i => i.SubTotal);
        }
    
  13. 솔루션 탐색기에서 Invoices 엔터티 노드를 두 번 클릭합니다.

  14. 데이터 디자이너에서 **<속성 추가>**를 클릭합니다.합계를 입력하고 을 클릭합니다.

  15. 형식 열의 드롭다운 목록에서 금액을 선택합니다.

  16. 속성 창에서 IsComputed 확인란을 선택합니다.

  17. 메서드 편집 링크를 클릭합니다.

    코드 편집기가 열리고 Total_Compute 메서드가 표시됩니다.

  18. Tax 코드를 계산하기 위해 다음 코드를 추가합니다.

    result = GetSubTotal() + Tax
    
    result = GetSubTotal() + Tax;
    
  19. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

다음 단계에서는 송장 화면에 새 필드를 추가합니다.

화면에 필드 추가

  1. 솔루션 탐색기에서 InvoiceScreen 화면 노드를 두 번 클릭합니다.

  2. 가운데 창에서 행 레이아웃 | 송장 정보 노드를 선택하고 확장합니다.

  3. 추가 드롭다운을 선택하고 확장하여 세금을 선택합니다.

    세로 스택 | InvoiceDetails 섹션에 세금 필드가 추가됩니다.

  4. 추가 드롭다운을 다시 선택하고 확장하여 합계 필드를 선택합니다.

  5. F5 키를 눌러 응용 프로그램을 실행하고 결과를 봅니다.

    송장 화면 화면을 엽니다.이제 세금합계 필드가 각 송장 행에 표시됩니다.

  6. 디자인 화면 단추를 클릭하여 사용자 지정 모드를 변경합니다.

  7. 왼쪽 창에서 데이터 표 행 |송장 세부 정보 노드를 선택하고 확장합니다.

  8. 추가 드롭다운을 클릭하고 부분합을 선택합니다.

  9. 저장을 클릭하여 변경 내용을 저장합니다.부분합 필드는 송장 세부 정보 눈금에 표시됩니다.

    업데이트된 Invoice 화면

  10. 실행 중인 응용 프로그램의 오른쪽 위 모퉁이에 있는 닫기 단추를 클릭하여 디자인 모드로 돌아갑니다.

  11. 파일 메뉴에서 모두 저장을 클릭하여 작업을 저장합니다.

응용 프로그램 배포

다음 단계에서는 2계층 데스크톱 응용 프로그램으로 응용 프로그램을 배포합니다.

2계층 데스크톱 응용 프로그램을 게시하려면

  1. 솔루션 탐색기에서 Vision Clinic 노드를 선택한 다음 빌드 메뉴에서 Vision Clinic 게시를 클릭합니다.

    LightSwitch 게시 응용 프로그램 마법사가 나타납니다.

  2. 환영합니다. LightSwitch 게시 마법사 페이지에서 데스크톱이 선택되는 것을 확인한 후 다음을 클릭합니다.

  3. 응용 프로그램 서비스 페이지에서 로컬을 선택했는지 확인하고 다음을 클릭합니다.

  4. 게시 기본 설정 지정 페이지에서 응용 프로그램 파일의 배치 위치는 어디입니까? 필드를 선택하고 C:\Publish를 입력합니다.

  5. 기본 데이터베이스를 어떻게 게시하겠습니까? 영역에서 지금 데이터베이스를 직접 게시를 선택한 다음 다음을 클릭합니다.

  6. LightSwitch 응용 프로그램 데이터베이스-SQL 데이터베이스 연결 페이지에서 기본 연결 문자열을 사용하고 다음을 클릭합니다.

  7. 필수 구성 요소 페이지에서 기본 설정을 그대로 사용하고 다음을 클릭합니다.

  8. 다른 연결 정보 페이지에서 기본 설정을 그대로 사용하고 게시를 클릭합니다.

  9. 파일 탐색기에서 C:\Publish 디렉터리 찾아 Setup.exe 파일을 두 번 클릭해 로컬 컴퓨터에 응용 프로그램을 설치합니다.

    [!참고]

    다른 컴퓨터에 응용 프로그램을 설치하려면 Publish 폴더 및 그 하위 폴더의 콘텐츠를 모두 복사합니다.설치하기 전에 Publish 폴더에 있는 Install.htm 파일에서 설명되어 있는 단계를 완료해야 합니다.

  10. 응용 프로그램 설치 – 보안 경고 대화 상자가 나타나면 설치를 클릭합니다.

    Vision Clinic 응용 프로그램이 설치되고 실행됩니다.

    완료된 응용 프로그램

  11. 일부 데이터를 입력하고 응용 프로그램이 예상대로 작동하는지 확인합니다.

    팁

    Vision Clinic 응용 프로그램을 다시 실행하려는 경우 시작 메뉴에서 열 수 있습니다.

이렇게 하면 Vision Clinic 응용 프로그램 연습이 완료됩니다.이제 LightSwitch 응용 프로그램 만들기의 종단 간 프로세스에 대해 기본적으로 이해했을 것입니다.

이 연습에서는 LightSwitch의 기본 기능을 보여주지만 LightSwitch로 할 수 있는 작업이 더 많이 있습니다.자신의 응용 프로그램을 빌드하기 시작할 때 제품 설명서에서 더 많은 기능을 배울 수 있습니다.

참고 항목

개념

LightSwitch 둘러보기

Visual Studio LightSwitch

기타 리소스

LightSwitch 시작