KR101989634B1 - 미리 구축된 컨트롤을 사용하는 로직 생성 기법 - Google Patents

미리 구축된 컨트롤을 사용하는 로직 생성 기법 Download PDF

Info

Publication number
KR101989634B1
KR101989634B1 KR1020137034788A KR20137034788A KR101989634B1 KR 101989634 B1 KR101989634 B1 KR 101989634B1 KR 1020137034788 A KR1020137034788 A KR 1020137034788A KR 20137034788 A KR20137034788 A KR 20137034788A KR 101989634 B1 KR101989634 B1 KR 101989634B1
Authority
KR
South Korea
Prior art keywords
control object
control
solution
logic
gallery
Prior art date
Application number
KR1020137034788A
Other languages
English (en)
Other versions
KR20140041603A (ko
Inventor
케리 웨스트팔
제임스 리베라
라이언 맥민
로버트 코긴스
크리스토퍼 듀가
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20140041603A publication Critical patent/KR20140041603A/ko
Application granted granted Critical
Publication of KR101989634B1 publication Critical patent/KR101989634B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

미리 구축된 로직을 포함하는 컨트롤과 액션의 갤러리 세트가 데이터베이스 프로그램에서 애플리케이션, 프로젝트, 솔루션을 구축하기 위해 제공된다. 갤러리는 데이터베이스 프로그램에서 메인 로직 시나리오를 설명할 수 있는 가장 흔히 사용되는 컨트롤을 포함할 수 있다. 컨트롤은 단순, 명백, 직관적이어서, 프로그래밍 경험이 거의 없거나 전혀 없는 사용자라고 하더라도 어떤 코딩 환경에 들어가거나 또는 복잡한 로직 표현을 구축하지 않고 갤러리 컨트롤을 사용하여 데이터베이스 프로그램 내의 솔루션을 개발할 수 있도록 해준다. 갤러리는 사용자가 코드 편집기를 열지 않고도 미리 정의된 컨트롤을 갤러리로부터 솔루션의 디자인 표면으로 추가함으로써 완성된 솔루션을 구축할 수 있도록 해주고, 컨트롤 배후의 코드는 솔루션 내로 자동적으로 구축된다. 솔루션 코드는 데이터베이스 프로그램 내의 사용자에 의한 추후의 수정을 위해 액세스될 수도 있다.

Description

미리 구축된 컨트롤을 사용하는 로직 생성 기법{CREATING LOGIC USING PRE-BUILT CONTROLS}
데이터베이스 프로그램은 다양한 타입과 많은 양의 데이터를 관리하는 솔루션 및 애플리케이션을 구축(build)하는 데 사용될 수 있다. 데이터베이스 프로그램에서 개발될 수 있는 일부 예시적 솔루션은 커스텀 데이터를 저장하는 테이블, 사용자 친화 데이터 엔트리 및 데이터베이스와의 효율적 상호작용을 제공하는 폼들(forms), 데이터, 축약된 데이터, 및 자동화된 데이터 관리 테스크를 필터링하는 쿼리, 축약 및 제시된 데이터를 포맷화하는 리포트를 포함할 수 있다. 일부 데이터베이스 프로그램은 간단한 솔루션을 구축하는 템플릿, 더 복잡한 솔루션을 구축하는 템플릿, 매크로 및 프로그램 개발 애플리케이션를 제공할 수 있고, 또는 코드 편집기가 제공될 수 있다.
전형적으로 데이터베이스 또는 데이터베이스 프로그램 내의 솔루션을 구축하는 것은 코딩 지식 또는 경험을 일부 요구한다. 컨트롤, 폼, 테이블 및 리포트를 추가하기 위한 복잡한 솔루션은 별도의 프로그램 개발 애플리케이션 내의 코드 편집기를 사용하거나 데이터베이스 프로그램 내의 매크로를 사용하여 생성될 수 있는데, 이는 데이터베이스 프로그램을 사용하여 솔루션을 개발할 수 있는 사용자들로만 제한될 수 있다. 데이터베이스 프로그램은 사용자 기반이 증가할수록 많은 사용자들에게 유용하지만, 사용자가 프로그래밍에 대한 경험이 거의 없거나 전혀 없으면 사용자가 솔루션의 복잡한 컴포넌트를 코딩할 수 있는 능력이 없기 때문에 데이터베이스 프로그램 내의 솔루션을 개발하기에는 한계가 있을 수밖에 없다.
본 요약부는 이하 상세한 설명에서 더욱 자세히 설명될 개념들 중 선택된 것을 단순화된 형태로 소개하기 위해 제공되는 것이다. 본 요약부는 청구된 대상의 주요 특징 또는 필수적 특징을 배타적으로 식별하기 위한 것이 아니며, 청구된 대상의 범주를 결정하도록 하는 것을 의도하지 않는다.
실시예들은 데이터베이스 프로그램 내에서 애플리케이션, 프로젝트 및 솔루션을 구축하기 위한 미리 구축된 로직을 포함하는 컨트롤 및 액션의 갤러리 세트를 제공하는 것에 관한 것이다. 갤러리는 데이터베이스 프로그램 내에서 메인 로직 시나리오를 설명할 수 있는 상용(commonly used) 컨트롤을 포함할 수 있다. 컨트롤은 단순, 명백, 직관적이어서, 프로그래밍 경험이 거의 없거나 전혀 없는 사용자라고 하더라도 어떤 코딩 환경에 들어가거나 또는 복잡한 로직 표현을 구축하지 않고 갤러리 컨트롤을 사용하여 데이터베이스 프로그램 내의 솔루션을 개발할 수 있도록 해준다. 갤러리는 사용자가 코드 편집기를 열지 않고도 미리 정의된 컨트롤을 갤러리로부터 솔루션의 디자인 표면으로 추가함으로써 완성된 솔루션을 구축할 수 있도록 해주고, 컨트롤 배후의 코드는 솔루션 내로 자동적으로 구축된다. 솔루션 코드는 데이터베이스 프로그램 내의 사용자에 의한 추후의 수정을 위해 액세스될 수도 있다. 갤러리는 또한 사용자가 본인의 커스텀 정의 컨트롤을 쉽게 재사용하기 위해 추가하도록 허용할 수도 있다.
이들 및 다른 특징과 이점은 이하의 상세한 설명을 읽고 관련된 도면을 검토함으로써 명백해질 것이다. 전술된 일반적 설명 및 후술되는 상세한 설명은 예시적인 것일 뿐이고 청구된 대상을 제한하는 것은 아님이 이해되어야 할 것이다.
도 1은 애플리케이션 내의 미리 구축된 컨트롤과 데이터 베이스 내의 컨트롤 갤러리를 포함하는 솔루션 디자인의 예시적인 스크린 샷을 도시한다.
도 2는 실시예들에 따라, 로직 시나리오에 대한 파라미터를 더 입력하기 위한 다이얼로그 또는 위저드(wizard)의 예시적인 스크린 샷을 도시한다.
도 3은 로직 시나리오에 대한 파라미터를 더 입력하기 위한 다이얼로그 또는 위커드의 예시적인 스크린 샷을 도시한다.
도 4는 실시예들에 따른 시스템이 구현될 수 있는 네트워크화된 환경이다.
도 5는 실시예들이 구현될 수 있는 예시적 컴퓨팅 운영 환경의 블록도이다.
도 6은 실시예들에 따른 데이터베이스 프로그램 내에서 로직 시나리오에 대한 미리 구축된 컨트롤의 갤러리를 제공하는 프로세스에 대한 논리 순서도를 도시한다.
앞서 간단히 설명된 것처럼, 데이터베이스 프로그램 내의 미리 구축된 컨트롤의 갤러리는 사용자가 솔루션을 구축하기 위해 코드 편집기에 액세스하는 것을 필요로하지 않으면서 미리 구축된 컨트롤을 사용하여 데이터 애플리케이션 또는 솔루션을 생성하도록 할 수 있다. 갤러리는 데이터베이스 프로그램 내의 상용(commonly used) 컨트롤 및 액션을 포함할 수 있는데, 이는 단순한 드래그 앤 드롭 또는 유사한 액션에 의해 애플리케이션으로 추가될 수 있고, 로직 및 코드는 컨트롤 이면에 미리 구축될 수 있어서 사용자가 수동으로 코드 로직을 구축하거나 만들지 않고도 사용자가 컨트롤을 솔루션에 추가하여 컨트롤 배후의 로직이 자동적으로 솔루션 내로 구축되도록 할 수 있다. 사용자가 스크래치(scratch) 또는 아무것도 없는 코딩 환경으로부터 시작하지 않고 용이하게 컨트롤을 수정할 수 있도록 컨트롤 내로 구축된 코드는 전면적으로 편집될 수도 있다.
이하의 상세한 설명에서는, 구체적인 실시예 또는 예시를 도시하며 본 명세서의 일부를 구성하는 첨부된 도면이 참조된다. 본 발명의 사상 또는 범주를 벗어나지 않는 한 이들 양상은 결합될 수도 있고, 다른 양상이 이용될 수도 있으며, 구조적 변경도 가능하다. 따라서 이하의 상세한 설명은 한정적인 의미를 갖는 것이 아니며, 본 발명의 범주는 첨부된 특허청구범위 및 그 균등물에 의해 정해지는 것이다.
비록 실시예들은 컴퓨팅 장치 상의 운영 체제에서 실행되는 애플리케이션 프로그램과 함께 실행되는 프로그램 모듈의 일반적인 맥락에 따라 기술되었으나, 본 기술분야에서 통상의 지식을 가진 자는 양상들이 다른 프로그램 모듈과 조합되어 구현될 수도 있음을 인식할 수 있을 것이다.
일반적으로, 프로그램 모듈은 특정한 태스크를 수행하거나 특정한 추상 데이터 타입을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조, 및 기타 유형의 구조를 포함한다. 또한, 본 기술분야의 통상의 지식을 가진 자는 실시예들이 다른 컴퓨터 시스템 구성, 예컨대 핸드 헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램 가능형 소비자 가전제품, 미니컴퓨터, 메인프레임 컴퓨터, 및 비교가능한 컴퓨팅 장치와 함께 실시될 수도 있다는 것을 이해할 것이다. 실시예들은 통신 네트워크를 통해 연결되는 원격 프로세싱 장치에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 모두에 위치할 수도 있다.
실시예들은 컴퓨터 구현되는 프로세스(방법), 컴퓨팅 시스템으로서, 또는 컴퓨터 프로그램 제품이나 컴퓨터 판독가능 매체와 같은 제조품으로서 구현될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터나 컴퓨팅 시스템으로 하여금 예시적인 프로세스(들)을 수행하도록 하는 인스트럭션을 포함하는 컴퓨터 프로그램을 인코딩하고 컴퓨터 시스템에 의해 판독가능한 컴퓨터 저장 매체일 수 있다. 컴퓨터 판독가능 저장 매체는 예를 들어 휘발성 컴퓨터 메모리, 비휘발성 메모리, 하드 드라이브, 플래시 드라이브, 플로피 디스크, 또는 컴팩트 디스크, 및 비교가능한 매체들 중 하나 이상을 통해 구현될 수 있다.
본 명세서를 통해서, "플랫폼"이라는 용어는 데이터베이스 애플리케이션을 구축하고 수정하는(심지어 실행하는) 소프트웨어 및 하드웨어 컴포넌트의 조합일 수 있다. 플랫폼의 예는 복수의 서버 상에서 실행되는 호스팅된 서비스, 단일 컴퓨팅 장치 상에서 실행되는 애플리케이션, 비교가능한 시스템을 포함하는데, 이에 한정되는 것은 아니다. "서버"라는 용어는 네트워크화된 환경에서 전형적으로 하나 이상의 소프트웨어 프로그램을 실행하는 컴퓨팅 장치를 일반적으로 일컫는다. 그러나, 서버는 네트워크 상의 서버로 보여지는 하나 이상의 컴퓨팅 장치 상에서 실행되는 가상 서버(소프트웨어 프로그램)로 구현될 수도 있다. 이들 기법 및 예시적 동작에 대한 더욱 상세한 설명이 이하 제공된다.
도 1은 데이터베이스 프로그램 내의 컨트롤 갤러리를 포함하는 솔루션 디자인의 예시적인 스크린 샷을 도시한다. 다이어그램(100) 내에 도시된 것처럼, 사용자는 테이블 또는 폼(form)에서 솔루션을 생성할 수 있는데, 예를 들어, 컨트롤 객체의 갤러리 내에서 제공되는 미리 구축된 컨트롤을 사용하여 데이터베이스 프로그램 내에서 생성할 수 있다. 사용자는 테이블, 폼(form), 프로젝트, 및 리포트와 같은 데이터베이스 프로그램 내의 다양한 데이터베이스 애플리케이션과 솔루션을 생성할 수 있다. 일반적으로 데이터베이스 프로그램 내에 복잡한 솔루션을 구축하는 것은 사용자로 하여금 프로그래밍 언어에 대한 지식 및 프로그램 디자인 애플리케이션을 사용하여 코드 및 로직을 작성하고 편집하는 능력을 가질 것을 요구한다. 미리 구축된 컨트롤 객체의 갤러리는 코딩 또는 프로그래밍에 약간의 경험만 있는 사용자로 하여금 코딩 환경에 액세스하지 않고도 데이터베이스 프로그램 내에 솔루션을 구축할 수 있도록 해준다.
실시예들에 따른 시스템에서, 데이터베이스 프로그램 내에서 처음부터 끝까지 사용자가 완성된 로직 솔루션을 구축하기 위해, 사용자는 컨트롤의 갤러리에 액세스하는 것만 필요할 수도 있다. 갤러리는 분리된 메뉴(102)에서 컨트롤을 디스플레이할 수도 있고, 또는 컨트롤이 데이터베이스 프로그램의 디자인 뷰(112) 내의 리본 태스크바(120) 내로 통합될 수도 있다. 추가적으로, 사용자는 컨트롤이 어디에 디스플레이될 것인지, 어떻게 디스플레이될 것인지, 임의의 커스텀 구축된 로직 컨트롤 및 어떤 로직 시나리오가 갤러리 내에 디스플레이되거나 되지 않을지 결정하기 위해 갤러리 디스플레이를 맞춤화(customize)할 수도 있다. 일부 사용자는 특정 로직 시나리오를 다른 사람들에 비해 더 자주 사용할 수 있는데, 사용자는 완성된 데이터베이스 솔루션을 구축하는 데 사용하기 효율적인 갤러리를 형성하기 위해 사용자의 선호도 및 사용에 따라 갤러리 뷰를 맞춤화할 수도 있다. 따라서, 사용자는 갤러리 내에서 사용하기 위한 사용자 본인의 커스텀 정의 컨트롤을 생성하도록 허용될 수 있다.
갤러리는 다양한 컨트롤에 대한 컨트롤 객체 및 데이터베이스 프로그램 내에서 로직 시나리오를 설명하는 액션을 포함할 수 있다. 데이터베이스 프로그램은 데이터베이스 프로그램 내에 솔루션을 구축하기 위한 많은 로직 시나리오를 포함할 수 있고, 갤러리는 공통 로직 시나리오를 설명하는 상용(commonly used) 컨트롤의 전부 또는 대부분을 디스플레이할 수 있다. 갤러리 내의 컨트롤 객체는 각 컨트롤 배후의 코드와 로직을 포함하도록 미리 구축될 수 있어서, 솔루션에 추가할 컨트롤을 사용자가 단순히 선택할 수 있고, 사용자는 컨트롤 배후의 로직을 보거나 액세스할 필요가 전혀 없다. 갤러리 내의 컨트롤 객체는 솔루션 내에서 실행될 컨트롤 또는 액션을 명확하게 나타낼 수 있어서 갤러리는 사용자에게 단순하고 직관적이며, 갤러리 내에 미리 구축된 컨트롤 객체는 솔루션 내로 컴포넌트를 구축하기 위한 솔루션의 디자인 뷰(112)에 추가될 수 있다.
컨트롤 객체는 컨트롤 객체가 표현하는 액션을 명확하고 간결하게 가리키도록 텍스트로 라벨링될 수도 있고, 및/또는 컨트롤 객체는 갤러리 내의 로직 시나리오와 특정 액션을 표현하는 아이콘이나 그래픽으로서 디스플레이될 수도 있다. 컨트롤 객체는 클릭 및 추가 방법 또는 드래그 앤 드롭 방법을 사용하여 솔루션에 추가될 수 있다. 갤러리 컨트롤은 컨트롤 이면에서 컨트롤 액션을 위해 구축되는 모든 로직을 포함할 수 있기 때문에, 사용자가 솔루션에 대해 컨트롤을 추가하거나 컨트롤을 디자인 캔버스 상에 드래그 앤 드롭하면, 사용자가 코드 편집기에 전혀 액세스하지 않고도 코드가 솔루션 내로 자동적으로 구축될 수 있다. 만약 사용자가 솔루션의 개발 과정 중 언제든지 솔루션 배후의 로직을 편집하기 원한다면 솔루션 코드는 사용자에게 보이고 수정되기 위해 액세스될 수 있다. 각 컨트롤과 완성된 솔루션 배후의 로직이나 코드는 적합한 프로그래밍 원리와 언어를 따를 수 있고, 에러 처리 및 코멘트를 포함할 수도 있어서 만약 사용자가 보거나 수정하기 위해 코드에 액세스할 필요가 있다면, 코드는 알려진 프로그래밍 기법을 사용하여 읽고, 이해하고, 편집하기 쉽게 될 수도 있다.
데이터베이스 프로그램에서 사용될 수 있는 일부 예시적 로직 시나리오는 애플리케이션 내비게이션, 필터링, 레코드 내비게이션, 데이터 전송, 데이터 업데이트와 입증, 및 커스텀 사용자 인터페이스 자동화를 포함할 수 있다. 이 시나리오에서 액션을 표현하는 컨트롤은 컨트롤 객체의 갤러리 내에 디스플레이될 수 있는데, 컨트롤에 대해 로직을 완전하게 미리 구축하는 디자인 캔버스에 추가될 수 있는 텍스트박스(113), 드롭다운 메뉴(114), 버튼, 조합 박스, 리스트, 라디오 버튼, 및/또는 체크박스로서 디스플레이될 수 있다. 예를 들어, 사용자는 다이얼로그 및 새로운 페이지를 열고 닫는 것, 아이템에 대한 변화를 저장하고, 취소하고, 삭제하는 것, 또는 페이지 상에 또는 폼 내에 포함된 정보를 검색하는 것을 사용하여 데이터베이스 프로그램 내의 폼을 내비게이트할 수 있는 것이 필요할 수 있다. 이들은 데이터베이스 프로그램 내에서 꽤 흔한 내비게이션 컨트롤이거나 액션이기 때문에 갤러리는 이들 액션 각각에 대한 컨트롤 객체를 포함할 수 있고, 사용자는 이들 내비게이션 능력을 솔루션에 추가할 수 있다.
예시적 실시예에서, 갤러리는 솔루션 내에 폼 또는 다른 애플리케이션을 저장 및/또는 종료하는 컨트롤을 포함할 수 있다. 사용자는 저장 및 종료 버튼(108)을 선택할 수 있고 그것을 드래그하여 사용자가 버튼을 두고 싶어하는 위치 내의 디자인 뷰(112) 상에 드롭할 수 있다. 버튼(118)은 사용자가 폼을 저장하고 종료할 수 있도록 인에이블하는 폼으로 나타날 수 있다. 폼을 저장하고 종료하는 액션의 로직은 갤러리 내의 저장 및 종료 버튼(108)과 함께 미리 구축될 수 있고, 저장 및 종료 버튼(108)이 사용자에 의해 디자인 캔버스 상에 드래그 앤 드롭되면, 그 로직이 완성된 솔루션 로직에 추가될 수 있다. 코멘트는 솔루션 로직 내에 포함될 수 있고, 로직이 포함하는 인스트럭션이 무엇인지 나타내는데, 예컨대 "이 매크로는 현재 레코드를 저장하고 폼을 종료할 것입니다"와 같은 것이 될 수 있다.
다른 예시에서, 사용자는 데이터베이스 프로그램 내의 솔루션으로 검색창(search pane)(116)을 추가할 수 있다. 검색 박스(116)는 텍스트 입력을 위한 텍스트박스와 검색 액션을 실행하도록 클릭하기 위한 선택 버튼을 포함할 수 있다. 사용자가 검색 박스를 솔루션의 디자인 캔버스로 추가하면, 검색 컨트롤에 대해 미리 구축된 로직이 솔루션 코드 내로 자동적으로 구축되고, 검색 버튼의 클릭 이벤트 생성시 또는 사용자가 검색 박스의 바깥을 두드린 경우 텍스트박스 내의 텍스트에 대한 기록을 검색하는 인스트럭션을 포함할 수 있다. 검색 박스에 대한 디폴트 로직은 현재 폼 및/또는 서브폼이 있다면 서브폼 상의 모든 기록을 검색할 수 있다. 선택적으로, 사용자가 검색 박스를 설치하고 검색 버튼이 클릭되면 검색되는 기록을 맞춤화하도록 인에이블하기 위해 다이얼로그나 위저드가 선택적으로 제시될 수 있다.
일부 시나리오에서, 솔루션에 추가될 컨트롤은 액션을 실행하기 위한 완성된 로직을 포함할 수 있다. 예를 들어, 저장, 닫기, 삭제, 취소, 및 되돌리기 버튼이 다른 입력 없이도 단순히 솔루션에 대한 디자인 캔버스 상에 드래그 앤 드롭을 함으로써 솔루션에 추가될 수 있다. 그러나, 다른 로직 시나리오는 완성된 로직을 솔루션에 추가하기 위한 더 많은 입력 파라미터나 더 많은 정보를 요구할 수 있고, 컨트롤이 디자인 표면에 추가되자마자 위저드 또는 다이얼로그 내로 진입할 수 있다. 더 많은 입력 파라미터를 요구하는 예시적인 로직 시나리오는 오픈 폼(Open-Form) 컨트롤(104)을 포함할 수 있다. 데이터베이스 프로그램 내에 폼을 오픈하는 것은 컨트롤이 클릭되었을 때 사용자가 오픈하기를 원하는 폼을 선택하는 것을 첫째로 요구한다. 또한, 오프닝은 예를 들어, 인라인(기존 페이지의 내용을 대신하여), 서브 폼(현재 페이지 상의 폼으로), 및 모드 팝업 윈도우와 같은 다양한 방식에 따라 실행될 수 있다. 사용자가 갤러리로부터 오픈 폼 컨트롤(104)을 선택하고 오픈 폼 버튼을 새성하기 위해 그것을 디자인 뷰(112) 상에 드래그 앤 드롭하면, 버튼(124)가 나타날 수 있고 버튼은 "오픈 폼"이라고 말할 수 있다. 그것이 캔버스에 추가되면, 위저드 또는 다이얼로그가 팝업되어 컨트롤이 완료되기 전에 사용자가 그밖에 채울 필요가 있는 것을 보여주고 장래의 입력 파라미터를 통해 사용자를 가이드한다.
도 2는 실시예들에 따라, 로직 시나리오에 대한 파라미터를 더 입력하기 위한 다이얼로그 또는 위저드의 예시적인 스크린 샷을 도시한다. 앞서 도 1과 함께 간단히 설명된 것처럼, 사용자가 디자인 솔루션에 컨트롤을 추가하면, 솔루션 내부로 컨트롤에 대한 완성된 로직을 완전하게 구축하기 위해 더 많은 정보를 필요로 할 수도 있다. 컨트롤에 대한 완성된 로직을 구축하기 위해 더 많은 정보가 필요하면 디자인 캔버스에 컨트롤을 추가하자마자 더 많은 입력 파라미터를 사용자로부터 모으기 위해 다이얼로그 또는 위저드가 팝업될 수 있다. 예를 들어, 사용자가 오픈 폼 컨트롤을 솔루션에 추가하도록 선택하면, 오픈 폼 컨트롤의 추가시, 오픈 폼 버튼(124)이 솔루션 내에서 생성될 수 있고, 사용자가 오픈을 원하는 폼의 이름을 나타내기 위해 다이얼로그(202)가 사용자에게 즉시 나타날 수 있다. 사용자는 다이얼로그 내의 리스트로부터 예컨대, "컨택트"(206)와 같은 이름의 폼을 선택하기 위해 클릭할 수도 있고, "ok" 버튼(208) 클릭시 다이얼로그가 종료할 수도 있으며, 오픈 폼 버튼에 대한 완성된 로직이 구축될 수도 있다. 폼 이름의 선택은 기타 다른 수단 예컨대 드롭다운 메뉴, 체크박스 선택 등을 통할 수도 있다.
컨트롤 로직은 솔루션 내로 구축될 수 있어서, 디자인 솔루션으로부터 오픈 폼 버튼이 선택되면 언제든 사용자가 선택한 그 폼이 다이얼로그 내에서 오픈된다. 추가적으로 만약 사용자가 다이얼로그 리스트로부터 컨택트(206)를 선택하면 오픈 폼 버튼의 캡션은 예컨대 "오픈 컨택트"와 같이 표시되도록 업데이트되고 수정될 수 있으며, 오픈 폼 버튼에 대한 로직 내의 코멘트는 선택시 컨트롤이 컨택트 폼을 오픈할 수 있다는 것을 나타낼 수 있고, 또는 사용자가 오픈하도록 선택한 다른 폼이거나 할 수 있다. 사용자는 오픈을 위해 선택된 폼을 변경하기 위해 로직을 수정할 수 있으며, 또는 필요할 경우 다른 변경을 가할 수도 있다.
다른 실시예들에서, 추가의 다이얼로그(210)는 폼을 오픈하기 위한 추가적 정보를 모으기 위해 제시될 수도 있는데, 예를 들어 폼에 어떤 레코드가 보이도록 할 것인지(212) 및 폼을 어떻게 오픈할 것인지(214)가 될 수 있다. 사용자는 첫째로 드롭다운 리스트(216)로부터 오픈될 폼을 선택하고, 그 후 폼을 오픈하기 위한 추가의 옵션이 체크박스 또는 드롭다운 메뉴 또는 리스트 내에 제시될 수 있다. 예시에서, 데이터베이스 프로그램 내에 폼을 오픈하는 것은 다양한 방식으로 실행될 수 있다. 예를 들어, 이용가능한 오픈 폼 방법 중 하나를 선택하기 위해 인라인, 서브폼, 또는 팝업 윈도우, 및 체크박스 다이얼로그가 사용되어 사용자로 하여금 폼에 대한 오픈 방법을 결정하도록 할 수 있다. 추가적으로, 사용자는 그것이 오픈될 때 폼이 폼 내에 레코드 셋으로부터의 어떤 레코드(들)를 보여줄 것인지 선택할 수 있다. 현재 레코드, 새로운 레코드를 보여주도록 선택할 수도 있고, 또는 모든 레코드를 보여줄 수도 있다. 제한된 개수의 옵션으로부터 선택하기 위한 체크박스를 사용하거나 특정 아이템에 대한 모든 옵션을 디스플레이하기 위한 드롭다운 메뉴를 사용하여 다른 정보가 수집될 수도 있다.
다른 예시에서, 사용자는 다이얼로그 박스(220)를 통해 다른 컨트롤 내의 값을 설정하도록 인에이블될 수 있다. 드롭다운 메뉴(222)는 사용자가 값을 설정하기를 원하는 컨트롤이 무엇인지 선택하기 위해 사용자에 의해 이용될 수 있다. 예를 들어, 다이얼로그는 어떤 컨트롤이 설정될 건인지와, 이 컨트롤이 어떤 값으로 설정될 것인지를 물을 수 있다. 다이얼로그 박스(220)는 드롭다운 메뉴 또는 현재 폼 내의 모든 컨트롤의 리스트를 제시할 수 있다. 추가적으로, 빌더 버튼은 사용자가 현재 폼 외부의 컨트롤을 선택하기 위해 표현 빌더(expression builder)를 팝업하도록 할 수도 있다. 드롭다운 메뉴는 또한 버튼이 드래그되는 폼 상에 서브폼이 존재하는 경우 서브폼 상의 컨트롤을 열거할 수 있다. 다이얼로그는 컨트롤을 설정하기 위한 값을 선택 또는 입력하기 위해 두번째 드롭다운 메뉴 또는 리스트, 또는 텍스트 박스(224)를 디스플레이할 수도 있다. 설정될 값은 선택된 컨트롤의 정황(context) 내에 있을 수 있다. 선택되거나 디스플레이될 수 있는 컨트롤에 대한 일부 예시적인 값은 표현 빌더, 달력/날짜 피커(picker), 첨부될 파일을 선택하기 위한 첨부 피커, 또는 계산기를 포함할 수 있다. 두번째 드롭다운 박스는 사용자가 컨트롤의 정의에 기초하여 컨트롤에 대한 용인가능한(acceptable) 값의 리스트로부터 용이하게 선택하는 것을 허용하기 위해 업데이트 중인 컨트롤의 컨트롤 유형을 분석(parse)할 수 있다. 예를 들어, 만약 사용자가 드롭다운 메뉴(222)로부터 "성별"이라는 이름의 컨트롤을 선택하면, 텍스트박스(224)는 단지 "남자" 및 "여자"만을 선택 사항으로 갖는 콤보박스 컨트롤로 전환될 수 있다.
도 3은 실시예들에 따라 로직 시나리오에 대한 파라미터를 더 입력하기 위한 다이얼로그 또는 위커드의 예시적인 스크린 샷을 도시한다. 예시적 실시예에서, 사용자는 "속성 설정" 버튼을 추가하기 위해 선택할 수 있고, 속성 설정 버튼의 추가시, 다이얼로그(300)는 사용자가 다른 컨트롤 상에서 속성을 설정하기 위한 추가의 파라미터를 선택하도록 몇몇 드롭다운 메뉴와 함께 나타날 수 있다. 예를 들어, 일부 추가적 입력 파라미터는 어떤 컨트롤이 업데이트 될 것인지(302), 어떤 속성이 업데이트 될 것인지(304), 및 속성이 무엇으로 설정될 것인지(306)를 포함할 수 있다. 속성 설정 버튼은 현재 폼 또는 서브 폼 내의 컨트롤 상에서의 속성을 설정할 수 있다. 컨트롤에 대해 설정하기 위한 일부 예시적 속성은 인에이블, 가시여부(visible), 잠김(locked), 컬러, 전경 컬러(foreground color), 후경 컬러(background color), 및 캡션을 포함한다. 속성에 대한 일부 예시적인 속성 값은 인에이블/가시여부에 대해서는 참 또는 거짓일 수 있고, 컬러 속성에 대해서는 컬러 피커 또는 16진수 값이 될 수 있으며, 캡션에 대해서는 값을 선택할 텍스트박스일 수 있다.
예를 들어, 컬러 피커(color picker)(308)는 사용자가 16진수 컬러 코드나 데이터베이스 프로그램 컬러 코드를 배울 필요 없이 그들이 원하는 컬러를 쉽게 선택할 수 있도록 허용하기 위해 디스플레이될 수 있다. 드롭다운 메뉴나 리스트는 진행적 선택(progressively selective)이 될 수 있는데, 속성이 선택되면, 오직 선택된 속성에 대한 속성 값만 후속 메뉴에서 디스플레이될 수 있다. 예를 들어, 첫 번째 질문 "어떤 컨트롤이 업데이트 될 것인가?"(302)가 현재 폼 상의 모든 컨트롤을 보여줄 수 있다. 컨트롤이 선택되면, 후속 메뉴나 리스트(예컨대, 304, 306)가 업데이트될 컨트롤 속성의 더 작은 리스트를 디스플레이할 수 있다. 예를 들어, 만약 사용자가 텍스트박스인 컨트롤을 선택하면, 드롭다운 메뉴는 속성 값으로 컬러, 인에이블, 가시여부와 같은 것은 디스플레이할 수도 있으나 텍스트박스가 별도의 캡션 속성을 갖지 않아서 캡션 속성은 디스플레이하지 않을 수도 있다. 모든 질문이 사용자에 의해 선택되거나 답변을 받게 되면, 사용자는 "ok"를 선택할 수 있고, "ok 버튼"(310) 클릭시 코드가 솔루션 내로 구축될 수 있다.
도 1 내지 3에서의 예시적 시스템은구체적인 구성, 애플리케이션, 상호작용과 함께 설명되었다. 실시예들이 이들 예시에 따른 시스템으로 한정되는 것은 아니다. 데이터베이스 프로그램 내의 로직 시나리오에 대한 미리 구축된 컨트롤의 갤러리를 제공하기 위한 시스템은 더 적거나 추가적인 컴포넌트를 이용하는 구성, 및 다른 태스크를 수행하는 구성에 따라 구현될 수도 있다. 또한, 구체적인 프로토콜 및/또는 인터페이스는 본 명세서에서 설명된 원리를 사용하여 유사한 방식에 따라 구현될 수도 있다.
도 4는 실시예들에 따른 시스템이 구현될 수 있는 예시적인 네트워크화된 환경이다. 데이터베이스 프로그램 내의 로직 시나리오에 대한 미리 구축된 컨트롤의 갤러리를 제공하기 위한 시스템은 호스팅된 서비스와 같은 하나 이상의 서버(414) 상에서 실행되는 소프트웨어를 통해 구현될 수 있다. 플랫폼은 네트워크(들)(410)을 통해 스마트폰(413), 랩톱 컴퓨터(412), 또는 데스크톱 컴퓨터(411)('클라이언트 장치')와 같은 개별 컴퓨팅 장치 상의 클라이언트 애플리케이션과 통신할 수 있다.
클라이언트 장치들(411 내지 413) 중 임의의 것에서 실행되는 클라이언트 애플리케이션은 서버들(414)에 의해 또는 개별 서버(416) 상에서 실행되는 애플리케이션(들)을 통해 통신을 용이하게 할 수 있다. 서버들 중 하나 상에서 실행되는 애플리케이션은 데이터베이스 프로그램 내에서 사용되는 메인 로직 시나리오에 대한 미리 구축된 컨트롤을 포함하는 갤러리를 생성하는 것, 디자인 솔루션으로 컨트롤을 추가하는 것, 및 완성된 솔루션 코드 로직 내로 컨트롤에 대한 로직을 구축하는 것을 용이하게 할 수 있다. 애플리케이션은 사용자의 커스텀 선호에 따라 완성된 로직 솔루션을 구축하기 위한 추가 입력 파라미터의 선택을 위한 추가적인 다이얼로그 또는 위저드를 사용자에게 제공할 수 있다. 애플리케이션은 데이터 저장소(들)(419)로부터 직접 또는 데이터베이스 서버(418)를 통해 관련 데이터를 검색(retrieve)할 수 있고, 요청된 서비스(예컨대 문서 편집)을 클라이언트 장치(411 내지 413)을 통해 사용자(들)에게 제공할 수 있다.
네트워크(들)(410)는 임의의 토폴로지의 서버, 클라이언트, 인터넷 서비스 제공자, 및 통신 매체를 포함할 수 있다. 실시예들에 따른 시스템은 정적 또는 동적 토폴로지를 가질 수 있다. 네트워크(들)(410)는 기업 네트워크와 같은 보안 네트워크일 수도 있고, 무선 오픈 네트워크와 같은 보안되지 않은 네트워크일 수도 있으며, 또는 인터넷일 수도 있다. 네트워크(들)(410)는 공중교환전화망(PSTN) 또는 셀룰러 네트워크와 같은 다른 네트워크 상에서 통신을 조정할 수도 있다. 또한, 네트워크(들)(410)는 근거리의 무선 네트워크 예컨대 블루투스 또는 이와 유사한 것들을 포함할 수도 있다. 네트워크(들)(410)는 본 명세서에서 설명되는 노드들 사이에서 통신을 제공한다. 예시적인 목적으로, 네트워크(들)(410)은 음향(acoustic), RF, 적외선 및 기타 무선 장치와 같은 무선 장치를 포함할 수 있는데, 이에 한정되는 것은 아니다.
컴퓨팅 장치, 애플리케이션, 데이터 소스, 및 데이터 분산 시스템의 여러 다양한 구성이 데이터베이스 프로그램 내의 로직 시나리오에 대한 미리 구축된 컨트롤의 갤러리를 제공하는 플랫폼을 구현하기 위해 이용될 수 있다. 또한, 도 4에서 논의되는 네트워크화된 환경은 오직 예시를 위한 것일 뿐이다. 실시예들은 예시적 애플리케이션, 모듈, 또는 프로세스에 한정되지 않는다.
도 5 및 관련 논의는 실시예들이 구현될 수 있는 적합한 컴퓨팅 환경의 일반적이고 단순화된 설명을 제공하기 위한 것이다. 도 5를 참조하면, 실시예들에 따라 애플리케이션을 위한 예시적인 컴퓨팅 운영 환경의 블록도, 예컨대 컴퓨팅 장치(500)가 도시된다. 기본적 구성에서, 컴퓨팅 장치(500)는 실시예들에 따라 데이터베이스 프로그램 내의 로직 시나리오에 대한 미리 구축된 컨트롤의 갤러리를 제공하기 위한 애플리케이션을 실행하는 임의의 컴퓨팅 장치일 수 있고, 적어도 프로세싱 유닛(502)과 시스템 메모리(504)를 포함할 수 있다. 컴퓨팅 장치(500)는 프로그램을 실행할 때 협조하는 복수의 프로세싱 유닛을 포함할 수도 있다. 컴퓨팅 장치의 정확한 구성 및 유형에 의존하여, 시스템 메모리(504)는 휘발성(예컨대, 램(RAM)), 비휘발성(예컨대, 롬(ROM), 플래시 메모리 등) 또는 이들의 조합일 수 있다. 시스템 메모리(504)는 플랫폼의 동작을 제어하기 위한 적합한 운영 체제(505)를 전형적으로 포함하는데, 예컨대 워싱턴 주, 레드몬드의 마이크로소프트사로부터의 WINDOWS® 운영 체제와 같은 것일 수 있다. 시스템 메모리(504)는 프로그램 모듈(506), 애플리케이션(522), 및 갤러리 모듈(524)와 같은 하나 이상의 소프트웨어 애플리케이션을 포함할 수도 있다.
애플리케이션(522)은 컴퓨팅 장치(500)가 데이터베이스 프로그램의 디자인 뷰 내의 메인 로직 시나리오에 대한 미리 구축된 컨트롤의 갤러리를 제공하도록 인에이블할 수도 있고, 사용자가 갤러리로부터 컨트롤을 선택하여 완성된 솔루션 코드 내로 컨트롤 로직을 구축하면서 데이터베이스 프로그램 내의 솔루션으로 추가하도록 인에이블할 수도 있다. 갤러리 모듈(524)에 의해 제어되는 사용자 인터페이스를 통해, 애플리케이션(522)은 데이터베이스 프로그램 내의 상용 컨트롤 또는 액션을 데이터베이스 프로그램의 디자인 뷰 내에 포함되는 갤러리 내의 미리 구축된 컨트롤로서 디스플레이할 수 있다. 애플리케이션은 사용자가 솔루션에 대한 디자인 표면 상으로 미리 구축된 컨트롤을 드래그 앤 드롭할 수 있도록 인에이블할 수 있고, 애플리케이션은 완성된 솔루션 코드 로직 내로 컨트롤 배후의 로직을 구축할 수도 있다. 애플리케이션은 솔루션 코드 내의 컨트롤에 대한 완성된 로직을 구축하기 위해 필요한 추가 정보를 입력하기 위한 위커드를 더 디스플레이할 수도 있다. 애플리케이션은 사용자가 본인의 커스텀 구축 컨트롤을 형성하고 지정하도록 허용할 수 있다. 애플리케이션(522) 및 갤러리 모듈(524)은 호스팅된 서비스의 통합된 모듈이거나 분리된 애플리케이션일 수 있다. 이러한 기본적 구성은 도 5에서 파선(508) 내의 컴포넌트들로 도시되었다.
컴퓨팅 장치(500)는 추가적 특징 또는 기능을 가질 수 있다. 예를 들어, 컴퓨팅 장치(500)는 또한 예를 들어 자기 디스크, 광학적 디스크, 또는 테이프와 같은 추가적인 데이터 저장 장치(이동식 및/또는 고정식)를 포함할 수 있다. 이러한 추가적 저장소는 도 5에서 이동식 저장소(509)와 고정식 저장소(510)로 도시된다. 컴퓨터 판독가능 저장 매체는 컴퓨터 판독가능 인스트럭션, 데이터 구조, 프로그램 모듈, 또는 기타 데이터와 같은 저장 정보를 위한 임의의 방법이나 기법으로 구현되는 휘발성 및 비휘발성, 이동식 및 고정식 매체를 포함할 수 있다. 시스템 메모리(504), 이동식 저장소(509) 및 고정식 저장소(510)는 모두 컴퓨터 판독가능 저장 매체의 예시일 뿐이다. 컴퓨터 판독가능 저장 매체는 램(RAM), 롬(ROM), EEPROM, 플래시 메모리 또는 다른 메모리 기법, CD-ROM, DVD 또는 다른 광학적 저장소, 자기 테이프, 자기 디스크 저장소 또는 다른 자기적 저장 장치, 또는 원하는 정보를 저장하고 컴퓨팅 장치(500)에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있는데, 이에 한정되는 것은 아니다. 임의의 이러한 컴퓨터 판독가능 저장 매체는 컴퓨팅 장치(500)의 일부일 수 있다. 컴퓨팅 장치(500)는 입력 장치(들)(512), 예컨대 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치, 및 비교가능한 입력 장치를 포함할 수 있다. 출력 장치(들)(514), 예컨대 디스플레이, 스피커, 프린터, 및 다른 유형의 출력 장치가 포함될 수도 있다. 이들 장치는 본 기술분야에서 널리 알려진 것으로서 더 자세한 논의는 생략될 수 있다.
컴퓨팅 장치(500)는 예컨대 분산 컴퓨팅 환경에서의 유무선 네트워크, 위성 링크, 셀룰러 링크, 근거리 네트워크, 및 비교가능한 메커니즘을 통해 장치가 다른 장치들(518)과 통신하도록 허용하는 통신 접속(516)을 포함할 수도 있다. 다른 장치(518)는 통신 애플리케이션, 웹 서버를 실행하는 컴퓨터 장치(들)와 비교가능한 장치들을 포함할 수 있다. 통신 접속(들)(516)은 통신 매체의 한가지 예시일 뿐이다. 통신 매체는 그 안에 컴퓨터 판독가능 인스트럭션, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 포함할 수 있다. 예시적으로, 통신 매체는 유선 네트워크나 직접 유션 접속과 같은 유선 매체, 및 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함하는데, 이에 한정되는 것은 아니다.
예시적인 실시예들은 또한 방법을 포함한다. 이들 방법은 본 명세서에서 설명된 구조들을 포함하여 여러 방식에 따라 구현될 수 있다. 한가지 방식으로서 본 명세서에서 설명된 유형의 장치들의 기계 동작에 의할 수 있다.
다른 선택적 방식으로서, 방법에 대한 하나 이상의 개별적 동작은 그 일부를 수행하는 하나 이상의 인간 오퍼레이터(human operator)와 함께 수행될 수도 있다. 이들 인간 오퍼레이터는 서로 공통될 필요는 없지만, 각각은 프로그램의 일부를 수행하는 기계와 함께 일 수 있다.
도 6은 실시예들에 따른 데이터베이스 프로그램 내에서 로직 시나리오에 대한 미리 구축된 컨트롤의 갤러리를 제공하는 프로세스에 대한 논리 순서도를 도시한다. 프로세스(600)는 컴퓨팅 장치 또는 프로세서를 통해 인스트럭션을 실행할 수 있는 유사한 전자 장치 상에서 구현될 수 있다.
프로세스(600)는 동작(610)에서 시작하는데, 여기서 시스템은 사용자가 데이터베이스 프로그램 내에 새로운 디자인 솔루션을 형성하거나 오픈했다는 것을 검출할 수 있다. 이에 갈음하여, 사용자가 기존 디자인 솔루션을 수정할 수도 있다. 데이터베이스 프로그램 내의 일부 예시적 솔루션은 폼, 테이블, 프로젝트, 쿼리, 및 리포트를 포함한다. 새로운 솔루션의 생성 또는 기존 솔루션의 수정을 검출하면, 시스템은 사용자가 작업하고 있는 솔루션의 유형에 대한 상용 로직 시나리오를 결정할 수 있다. 동작(620)에서, 시스템은 컨트롤 객체의 갤러리 내로 상용 로직 시나리오를 표현하는 액션 또는 객체에 대한 미리 구축된 컨트롤을 로드할 수 있다. 컨트롤 객체의 갤러리는 데이터베이스 프로그램 내의 솔루션의 디자인 뷰 내의 메뉴로서 디스플레이될 수 있고, 또는 컨트롤이 솔루션 디자인 뷰의 일부로 디스플레이되는 태스크 바의 일부로 디스플레이될 수 있다. 갤러리는 사용자가 솔루션으로의 추가를 위한 갤러리 내의 컨트롤을 선택하는 것을 가능하게 한다. 사용자는 컨트롤을 선택하기 위해 클릭할 수 있고, 또는 사용자는 솔루션으로 컨트롤을 추가하기 위해 드래그 앤 드롭 방법을 사용할 수도 있다. 갤러리 내의 컨트롤은 컨트롤 배후의 미리 구축된 컨트롤을 생성하기 위한 로직 또는 코드를 포함할 수 있어서, 사용자는 코드에 대한 편집이나 코드 편집기에 액세스할 필요없이 솔루션으로 컨트롤을 간단히 선택하여 추가할 수 있다.
동작(630)에서, 시스템은 클릭, 추가 방법, 드래그 앤 드롭 방법, 또는 비교가능한 다른 것을 사용하여, 갤러리로부터 컨트롤의 선택 및 솔루션 디자인 뷰로의 컨트롤 추가를 검출할 수 있다. 솔루션으로 컨트롤의 추가시, 동작(640)에서 시스템은 디자인 솔루션으로 컨트롤에 대한 객체를 추가할 수 있다. 객체는 일부 예시에서 버튼, 메뉴, 리스트, 텍스트박스, 또는 팝업 윈도우일 수 있다. 추가적으로, 컨트롤 배후의 로직은 완성된 솔루션 코드에 추가될 수 있다. 이것은 사용자가 솔루션 코드를 수동으로 편집할 필요없이 사용자가 추가한 솔루션의 컴포넌트에 갖추어진 최신의 솔루션 코드를 허용할 수 있다.
일부 로직 시나리오 또는 컨트롤에서, 시스템 내로 컨트롤에 대한 완성된 로직을 구축하기 위해 더 많은 정보가 필요할 수 있다. 이러한 경우, 시스템은 선택적으로 위저드 또는 다이얼로그 위도우를 동작(650)에서 디스플레이할 수 있고, 이는 솔루션 디자인 뷰로의 컨트롤의 추가 이후 나타날 수 있다. 위저드는 추가적 입력 파라미터와 솔루션 내의 컨트롤 객체를 맞춤화하고 완성하기 위한 사용자에 대한 옵션을 표시하기 위한 복수의 질문, 드롭다운 메뉴, 리스트, 또는 체크박스를 제시할 수 있다. 사용자가 추가적 옵션을 선택하고 솔루션 내의 컨트롤에 대한 완성된 로직을 구축하기 위해 필요로 했던 추가적 정보를 제공하면, 시스템은 솔루션 내의 객체를 업데이트하여 솔루션 내의 객체의 정확한 기능 또는 동작을 디스플레이할 수 있다. 동작(660)에서 컨트롤 객체에 대한 완성된 로직은 데이터베이스 프로그램 내의 솔루션에 대한 솔루션 코드 로직 내로 구축될 수 있다.
만약 사용자가 원한다면 코드는 사용자가 편집하고 맞춤화하도록 이용될 수도 있으나, 완성된 솔루션은 사용자가 코드 생성기에 액세스하거나 어떤 코드나 로직을 만들 필요없이 처음부터 끝까지 구축될 수 있다. 일부 실시예에서, 솔루션은 테이블, 폼, 프로젝트, 리포트, 또는 쿼리 내의 로직일 수 있다.
프로세스(600)에 포함된 동작들은 예시를 위한 것이다. 미리 구축된 컨트롤을 사용하여 로직을 생성하는 것은 더 적거나 추가되는 단계를 갖춘 유사한 프로세스에 의하거나, 본 명세서에서의 원리를 사용하되 동작의 순서를 달리하여 구현될 수도 있다.
이상의 사양, 예시 및 데이터는 실시예들의 구성을 사용하고 제작하기 위한 완전한 설명을 제공한다. 비록 발명이 구조적 특징 및/또는 방법적 동작을 구체화하는 언어로 기술되었으나, 첨부된 특허청구범위에서 정의되는 발명은 전술된 구체적인 특징 또는 동작으로 반드시 한정되는 것은 아님을 이해해야 할 것이다. 오히려, 앞서 설명된 구체적인 특징 및 동작은 청구된 발명과 실시예들을 구현하는 예시적인 형태로서 개시된 것이라 할 것이다.

Claims (19)

  1. 컴퓨팅 장치에서 실행되는, 컨트롤 객체의 갤러리 제공 방법으로서,
    데이터베이스 프로그램에 대한 기존 솔루션의 수정 및 새로운 솔루션의 생성 중 하나를 검출하는 단계와,
    상기 데이터베이스 프로그램에서 솔루션에 대한 상용(commonly used) 로직 시나리오를 결정하는 단계와,
    상기 데이터베이스 프로그램에서 프로젝트 내의 상기 상용 로직 시나리오에 대한 미리 구축된(pre-built) 로직을 갖춘 컨트롤 객체의 갤러리를 생성하는 단계와,
    사용자가 상기 갤러리로부터 컨트롤 객체를 선택하고 솔루션 디자인 캔버스에 추가하는 것을 가능하게 하는 단계와,
    새로 추가된 컨트롤 객체를 상기 솔루션 디자인 캔버스 상에 디스플레이하는 단계와,
    상기 컨트롤 객체를 상기 솔루션 디자인 캔버스에 추가할 시에, 상기 솔루션에 대한 로직 코드 내로 상기 컨트롤 객체 배후의 상기 로직을 구축하는 추가적 파라미터를 입력하기 위한 다이얼로그를 제시하는 단계 - 상기 다이얼로그는, 현재의 폼 상에 서브폼이 존재할 경우, 상기 현재의 폼 내에 컨트롤 메뉴와 컨트롤 리스트 중 적어도 하나를 그리고 서브폼 내에 컨트롤을 포함함 - 와,
    상기 다이얼로그를 통해 상기 컨트롤 객체를 설정하기 위한 값을 선택하거나 입력하기 위한 다른 메뉴와 리스트 중 적어도 하나를 제시하는 단계 - 상기 값은 상기 사용자에 의해 선택된 상기 컨트롤 객체의 정황(context) 내에 있음 - 와,
    상기 사용자가 상기 컨트롤 객체의 정의에 기초하여 상기 컨트롤 객체에 대한 용인가능한(acceptable) 값의 리스트로부터 용이하게 선택할 수 있도록 상기 다이얼로그에서 상기 컨트롤 객체의 유형을 분석(parse)하는 단계와,
    상기 솔루션에 대한 로직 코드 내로 상기 컨트롤 객체 배후의 로직을 자동적으로 구축(build)하는 단계와,
    상기 컨트롤 객체의 활성화시, 상기 컨트롤 객체에 의해 표현되는 하나 이상의 액션을 실행하는 단계
    를 포함하는 컨트롤 객체의 갤러리 제공 방법.
  2. 제1항에 있어서,
    상기 컨트롤 객체 배후의 상기 로직이 장래의 사용을 위해 완전히 편집 가능하도록 인에이블하는 단계와,
    상기 사용자가 상기 갤러리에서 사용하기 위한 본인의 커스텀 정의 컨트롤을 생성하도록 허용하는 단계
    를 더 포함하는 컨트롤 객체의 갤러리 제공 방법.
  3. 제1항에 있어서,
    상기 솔루션은 테이블, 폼(form), 프로젝트, 리포트, 및 쿼리(query) 중 하나의 내부에 있는 로직인
    컨트롤 객체의 갤러리 제공 방법.
  4. 제1항에 있어서,
    상기 다이얼로그는 추가적 정보의 입력을 위한 드롭다운 메뉴, 체크박스, 리스트, 및 텍스트박스 중 하나 이상을 포함하는
    컨트롤 객체의 갤러리 제공 방법.
  5. 제1항에 있어서,
    상기 다이얼로그를 통해 입력된 요청 정보의 검출시, 상기 사용자가 상기 다이얼로그를 닫을 수 있도록 인에이블하는 단계와,
    상기 컨트롤 객체 배후의 상기 코드, 컨트롤 액션을 기술하는 상기 컨트롤 객체 배후의 상기 로직에 대한 코멘트, 상기 솔루션 디자인 캔버스에서의 상기 컨트롤 객체 상의 캡션, 및 상기 솔루션 디자인 캔버스 상에 디스플레이되는 상기 컨트롤 객체 중 하나 이상을 업데이트하는 단계
    를 더 포함하는 컨트롤 객체의 갤러리 제공 방법.
  6. 제1항에 있어서,
    상기 컨트롤 객체의 갤러리를 상기 솔루션 디자인 캔버스 내에서 하나의 분리된 메뉴로서 및 태스크바의 부분으로서 디스플레이하는 단계
    를 더 포함하는 컨트롤 객체의 갤러리 제공 방법.
  7. 제1항에 있어서,
    각 컨트롤 객체에 의해 표현되는 액션 및 로직 시나리오 중 적어도 하나를 나타내기 위해 상기 갤러리 내에서 상기 컨트롤 객체를 라벨링하는 단계
    를 더 포함하는 컨트롤 객체의 갤러리 제공 방법.
  8. 제1항에 있어서,
    사용자가 선택된 컨트롤 객체를 상기 솔루션 디자인 캔버스에 추가하도록 인에이블하는 단계는,
    상기 사용자가 상기 갤러리에서 상기 컨트롤 객체를 선택하도록 하고, 상기 컨트롤 객체를 상기 갤러리로부터 상기 솔루션 디자인 캔버스로 드래그하도록 하며, 상기 컨트롤 객체를 상기 솔루션 디자인 캔버스 상에 드롭하여 상기 컨트롤 객체가 드롭되는 위치에서 상기 솔루션으로 추가되도록 인에이블하는 단계
    를 더 포함하는
    컨트롤 객체의 갤러리 제공 방법.
  9. 제1항에 있어서,
    상기 컨트롤 객체는 버튼, 텍스트박스, 조합 박스, 검색 박스, 라디오 버튼, 캡션 박스, 체크박스, 드롭다운 메뉴, 및 리스트 중 하나인
    컨트롤 객체의 갤러리 제공 방법.
  10. 제1항에 있어서,
    상기 로직 시나리오는 애플리케이션 내비게이션, 데이터베이스 필터링, 레코드 내비게이션, 데이터 업데이트 및 검증, 데이터 송신 및 수신, 및 커스텀 사용자 인터페이스 자동화 중 하나 이상을 위한 액션 및 컨트롤을 포함하는
    컨트롤 객체의 갤러리 제공 방법.
  11. 데이터베이스 프로그램과 함께 컨트롤 객체의 갤러리를 제공하기 위한 컴퓨팅 장치로서,
    인스트럭션을 저장하는 메모리와,
    상기 메모리에 연결된 프로세서 - 상기 프로세서는 컨트롤 객체의 갤러리를 제공하기 위한 솔루션 디자인 애플리케이션을 실행함 -
    를 포함하되,
    상기 솔루션 디자인 애플리케이션은
    데이터베이스 프로그램에 대한 기존 솔루션의 수정 및 새로운 솔루션의 생성 중 하나를 검출하고,
    상기 데이터베이스 프로그램에서 솔루션에 대한 상용(commonly used) 로직 시나리오를 결정하며,
    상기 데이터베이스 프로그램에서 프로젝트 내의 상기 상용 로직 시나리오에 대한 미리 구축된(pre-built) 로직을 갖춘 컨트롤 객체의 갤러리를 생성하고,
    사용자가 상기 갤러리로부터 컨트롤 객체를 선택하고 솔루션 디자인 캔버스에 추가하는 것을 가능하게 하며,
    새로 추가된 컨트롤 객체를 상기 솔루션 디자인 캔버스 상에 디스플레이하고,
    상기 컨트롤 객체를 상기 솔루션 디자인 캔버스에 추가할 시에, 상기 솔루션에 대한 로직 코드 내로 상기 컨트롤 객체 배후의 상기 로직을 구축하는 추가적 파라미터를 입력하기 위한 다이얼로그를 제시하며 - 상기 다이얼로그는, 현재의 폼 상에 서브폼이 존재할 경우, 상기 현재의 폼 내에 컨트롤 메뉴와 컨트롤 리스트 중 적어도 하나를 그리고 상기 서브폼 내에 컨트롤을 포함하며, 속성이 선택될 경우에 상기 선택된 속성에 대한 값만 다른 메뉴와 리스트 중 적어도 하나에 디스플레이되도록 진행적으로 선택됨(progressively selective) - 와,
    상기 컨트롤 객체를 설정하기 위한 값을 선택하거나 입력하기 위한 다른 메뉴와 리스트 중 적어도 하나를 제시하고 - 상기 값은 상기 사용자에 의해 선택된 상기 컨트롤 객체의 정황(context) 내에 있음 - 와,
    상기 사용자가 상기 컨트롤 객체의 정의에 기초하여 상기 컨트롤 객체에 대한 용인가능한(acceptable) 값의 리스트로부터 용이하게 선택할 수 있도록 상기 다이얼로그에서 상기 컨트롤 객체의 유형을 분석(parse)하며,
    상기 솔루션에 대한 로직 코드 내로 상기 컨트롤 객체 배후의 로직을 자동적으로 구축하고,
    컨트롤 액션을 기술하는 상기 컨트롤 객체 배후의 상기 로직에 대한 코멘트, 상기 솔루션 디자인 캔버스에서의 상기 컨트롤 객체 상의 캡션, 및 상기 솔루션 디자인 캔버스 상에 디스플레이되는 상기 컨트롤 객체를 자동적으로 업데이트하며,
    상기 컨트롤 객체 배후의 상기 로직이 장래의 사용을 위해 완전히 편집 가능하도록 인에이블하고,
    상기 사용자가 상기 갤러리에서 사용하기 위한 본인의 커스텀 정의 컨트롤을 생성하도록 허용하며,
    상기 컨트롤 객체의 활성화시, 상기 컨트롤 객체에 의해 표현되는 하나 이상의 액션을 실행하도록 구성되는
    컴퓨팅 장치.
  12. 제11항에 있어서,
    상기 컨트롤 객체 배후의 상기 로직 및 상기 코드 중 하나는 미리 정의된 프로그래밍 원리 및 언어에 따르며, 에러 처리 및 코멘트를 포함하는
    컴퓨팅 장치.
  13. 제11항에 있어서,
    상기 다이얼로그는 상기 컨트롤 객체에 대한 상기 로직을 구축하기 위한 더 많은 파라미터를 요구하는 컨트롤 객체의 추가시 추가적 정보의 입력을 위한 드롭다운 메뉴, 체크박스, 리스트, 및 텍스트박스 중 하나 이상을 포함하는
    컴퓨팅 장치.
  14. 제11항에 있어서,
    상기 솔루션 디자인 애플리케이션은 또한, 사용자가 상기 추가된 컨트롤 객체가 적용될 수 있는 레코드 셋을 선택하도록 인에이블하도록 구성되는
    컴퓨팅 장치.
  15. 제11항에 있어서,
    상기 솔루션 디자인 애플리케이션은 또한, 상기 컨트롤 객체의 갤러리를 상기 솔루션 디자인 캔버스 내에서 하나의 분리된 메뉴로서 및 태스크바의 부분으로서 디스플레이하고, 각 컨트롤 객체에 의해 표현되는 액션 및 로직 시나리오 중 적어도 하나를 나타내기 위해 상기 갤러리 내에서 상기 컨트롤 객체를 라벨링하도록 구성되는
    컴퓨팅 장치.
  16. 제11항에 있어서,
    상기 솔루션 디자인 애플리케이션은 또한, 사용자가, 사용자의 선호도 및 사용 빈도 중 적어도 하나에 따라 컨트롤을 디스플레이하도록 컨트롤 객체의 갤러리를 맞춤화할 수 있게 인에이블하도록 구성되는
    컴퓨팅 장치.
  17. 데이터베이스 프로그램과 함께 컨트롤 객체의 갤러리를 제공하기 위한 인스트럭션이 저장된 컴퓨터 판독가능 메모리 장치로서, 상기 인스트럭션은
    데이터베이스 프로그램에 대한 기존 솔루션의 수정 및 새로운 솔루션의 생성 중 하나를 검출하는 것과,
    상기 데이터베이스 프로그램에서 솔루션에 대한 상용(commonly used) 로직 시나리오를 결정하는 것과,
    상기 데이터베이스 프로그램에서 프로젝트 내의 사용 로직 시나리오에 대한 미리 구축된(pre-built) 로직을 갖춘 컨트롤 객체의 갤러리를 생성하는 것과,
    사용자가 상기 갤러리로부터 컨트롤 객체를 선택하고 솔루션 디자인 캔버스에 추가하는 것을 가능하게 하는 것과,
    새로 추가된 컨트롤 객체를 상기 솔루션 디자인 캔버스 상에 디스플레이하는 것과,
    상기 컨트롤 객체가 커스텀 파라미터를 요구하는 경우, 상기 솔루션에 대한 로직 코드 내로 상기 컨트롤 객체 배후의 로직을 구축하는 커스텀 파라미터를 입력하기 위한 다이얼로그를 제시하는 것 - 상기 다이얼로그는, 현재의 폼 상에 서브폼이 존재할 경우, 상기 현재의 폼 내에 컨트롤 메뉴와 컨트롤 리스트 중 적어도 하나를 그리고 상기 서브폼 내에 컨트롤을 포함하며, 속성이 선택될 경우에 상기 선택된 속성에 대한 값만 다른 메뉴와 리스트 중 적어도 하나에 디스플레이되도록 진행적으로 선택됨(progressively selective) - 과,
    상기 컨트롤 객체를 설정하기 위한 값을 선택하거나 입력하기 위한 다른 메뉴와 리스트 중 적어도 하나를 제시하는 것 - 상기 값은 상기 사용자에 의해 선택된 상기 컨트롤 객체의 정황(context) 내에 있음 - 과,
    상기 사용자가 상기 컨트롤 객체의 정의에 기초하여 상기 컨트롤 객체에 대한 용인가능한(acceptable) 값의 리스트로부터 용이하게 선택할 수 있도록 상기 다이얼로그에서 상기 컨트롤 객체의 유형을 분석(parse)하는 것과,
    상기 솔루션에 대한 로직 코드 내로 상기 컨트롤 객체 배후의 로직을 자동적으로 구축하고 장래의 수정이 가능하도록 만드는 것과,
    컨트롤 액션을 기술하는 상기 컨트롤 객체 배후의 상기 로직에 대한 코멘트, 상기 솔루션 디자인 캔버스에서의 상기 컨트롤 객체 상의 캡션, 및 상기 솔루션 디자인 캔버스 상에 디스플레이되는 상기 컨트롤 객체를 자동적으로 업데이트하는 것과,
    상기 컨트롤 객체 배후의 상기 로직이 장래의 사용을 위해 완전히 편집 가능하도록 인에이블하는 것과,
    상기 사용자가 상기 갤러리에서 사용하기 위한 본인의 커스텀 정의 컨트롤을 생성하도록 허용하는 것과,
    상기 컨트롤 객체의 활성화시, 상기 컨트롤 객체에 의해 표현되는 하나 이상의 액션을 실행하는 것
    을 포함하는
    컴퓨터 판독가능 메모리 장치.
  18. 제17항에 있어서,
    상기 인스트럭션은
    요구시, 사용자가 상기 컨트롤 객체 배후의 코드 및 솔루션 코드를 검토하고 수정하도록 인에이블하기 위한 코드 편집기를 활성화하는 것을 더 포함하는
    컴퓨터 판독가능 메모리 장치.
  19. 제17항에 있어서,
    상기 사용자는 클릭 및 추가(click-and-add) 방법 또는 드래그 앤 드롭(drag-and-drop) 방법을 통해 상기 갤러리로부터 상기 컨트롤 객체를 선택하여 상기 솔루션 디자인 캔버스에 추가할 수 있으며, 상기 다이얼로그는 진행적으로 선택가능한 적어도 한 세트의 드롭다운 메뉴 및 리스트를 포함하는
    컴퓨터 판독가능 메모리 장치.
KR1020137034788A 2011-06-29 2012-05-19 미리 구축된 컨트롤을 사용하는 로직 생성 기법 KR101989634B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/172,705 2011-06-29
US13/172,705 US8924420B2 (en) 2011-06-29 2011-06-29 Creating logic using pre-built controls
PCT/US2012/038741 WO2013002912A1 (en) 2011-06-29 2012-05-19 Creating logic using pre-built controls

Publications (2)

Publication Number Publication Date
KR20140041603A KR20140041603A (ko) 2014-04-04
KR101989634B1 true KR101989634B1 (ko) 2019-06-14

Family

ID=47391707

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137034788A KR101989634B1 (ko) 2011-06-29 2012-05-19 미리 구축된 컨트롤을 사용하는 로직 생성 기법

Country Status (6)

Country Link
US (1) US8924420B2 (ko)
EP (1) EP2726982A4 (ko)
JP (1) JP6074419B2 (ko)
KR (1) KR101989634B1 (ko)
CN (1) CN103620557A (ko)
WO (1) WO2013002912A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9766789B1 (en) * 2014-07-07 2017-09-19 Cloneless Media, LLC Media effects system
US20160188171A1 (en) * 2014-12-31 2016-06-30 Microsoft Technology Licensing, Llc. Split button with access to previously used options
US10623240B2 (en) * 2016-08-25 2020-04-14 Intel Corporation IoT solution sizing

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04163625A (ja) * 1990-10-29 1992-06-09 Fuji Xerox Co Ltd ソースコード生成装置
JPH064279A (ja) * 1992-06-17 1994-01-14 Hitachi Ltd ユーザインタフェース画面編集装置
CA2146890C (en) * 1994-06-03 2000-10-24 At&T Corp. Outline programming for developing communication services
JPH08249170A (ja) * 1995-03-14 1996-09-27 Mitsubishi Electric Corp グラフィカルユーザインタフェース設計/製造支援装置
US5911070A (en) * 1995-08-07 1999-06-08 Inprise Corporation Development system with methods for bi-directional application program code generation
US5815149A (en) 1997-02-19 1998-09-29 Unisys Corp. Method for generating code for modifying existing event routines for controls on a form
US6179487B1 (en) * 1997-07-21 2001-01-30 International Business Machines Corp. Data processing system and method for associating specific graphics with data processing applications
US6633888B1 (en) 1999-02-03 2003-10-14 International Business Machines Corporation Method and apparatus for visually creating and testing object oriented components
US7934149B1 (en) 1999-09-30 2011-04-26 Instantis, Inc. Automated creation and maintenance of programs to process internet form related submissions
US7039699B1 (en) * 2000-05-02 2006-05-02 Microsoft Corporation Tracking usage behavior in computer systems
US20020054155A1 (en) * 2000-07-14 2002-05-09 Borland Software Corporation Data module design system
JP2002196925A (ja) * 2000-12-26 2002-07-12 Toshiba Corp データベース処理用アプリケーション作成支援プログラム
US7512906B1 (en) * 2002-06-04 2009-03-31 Rockwell Automation Technologies, Inc. System and methodology providing adaptive interface in an industrial controller environment
US7337409B2 (en) 2002-09-25 2008-02-26 Siemens Aktiengesellschaft Customizable drag and drop for industrial software applications
CA2451164C (en) 2003-09-11 2016-08-30 Teamplate Inc. Customizable components
CA2443454A1 (en) 2003-09-11 2005-03-11 Teamplate Inc. Data binding method in workflow system
US20070276689A1 (en) 2006-05-12 2007-11-29 Kirk Slone Workflow data binding
US7917545B2 (en) * 2004-09-30 2011-03-29 Microsoft Corporation Web-based data form
US7549130B2 (en) * 2004-11-30 2009-06-16 Sap Ag Pattern-based keyboard controls
US7415010B1 (en) 2005-08-31 2008-08-19 At&T Corp. Method and apparatus for providing customer specified service logic
US8689137B2 (en) * 2005-09-07 2014-04-01 Microsoft Corporation Command user interface for displaying selectable functionality controls in a database application
US8312048B2 (en) * 2009-05-19 2012-11-13 Microsoft Corporation Database application navigation
CN101819529A (zh) * 2010-02-24 2010-09-01 上海引跑信息科技有限公司 用于实现工作流任务界面可视化开发的系统和方法
US20110289419A1 (en) * 2010-05-18 2011-11-24 Yu Chi Sum Sam Browser integration for a content system

Also Published As

Publication number Publication date
EP2726982A1 (en) 2014-05-07
US8924420B2 (en) 2014-12-30
KR20140041603A (ko) 2014-04-04
EP2726982A4 (en) 2015-09-16
WO2013002912A1 (en) 2013-01-03
CN103620557A (zh) 2014-03-05
US20130007071A1 (en) 2013-01-03
JP2014526081A (ja) 2014-10-02
JP6074419B2 (ja) 2017-02-01

Similar Documents

Publication Publication Date Title
US10318628B2 (en) System and method for creation of templates
US10055113B2 (en) System and method for modifying user interface elements
US10248634B2 (en) Model-driven data entry validation
US11244284B2 (en) Document status management system
US10425501B2 (en) Element mapping and rule building systems and methods for contextual site visitor engagement
US8793598B2 (en) Cross-browser web dialog platform
CN107408049B (zh) 计算系统和计算机实现的方法
US9026992B2 (en) Folded views in development environment
US20090132919A1 (en) Appending Hover Help to Hover Help for a User Interface
US20140282199A1 (en) Process modeling and interface
US20200065094A1 (en) Automatically mapping data while designing process flows
US8701025B2 (en) Interactive ring-shaped interface
JP2016533547A (ja) ランタイムカスタマイゼーションインフラストラクチャ
US8751952B2 (en) Dataflow-driven service composition at the presentation layer
CN115309298A (zh) 基于富文本编辑器的文本结构化方法及装置、介质及设备
US11175800B2 (en) Element mapping and rule building systems and methods for contextual site visitor engagement
WO2020264053A1 (en) System and method for employing constraint based authoring
KR101989634B1 (ko) 미리 구축된 컨트롤을 사용하는 로직 생성 기법
KR101910179B1 (ko) 데이터 시각화를 위한 웹 기반 차트 라이브러리 시스템
US20130318495A1 (en) Automated software script creator and editor
CN110531972B (zh) 资源编排资源属性的编辑方法及装置
CN115469849A (zh) 一种业务处理系统、方法、电子设备和存储介质
US10460015B1 (en) Assimilation in multi model webpage composition
JP5084702B2 (ja) 解析データ入力装置、cae装置、解析データ入力方法、及びプログラム
CN113781602A (zh) 甘特图生成方法及装置、计算机可读存储介质、电子设备

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant