Skip to Content

폼

모든 정보가 센서나 자동화 시스템에서 오는 것은 아닙니다. 때로는 사람의 입력이 필요합니다 — 그것이 바로 폼 위젯이 필요한 이유입니다. IronFlock 내에서 디지털 클립보드처럼 생각하십시오. 다음과 같이 수동으로 데이터를 캡처하고 싶을 때마다 사용합니다:

  • 생산 라인에서 불량품 수 기록
  • 구식 pH 센서의 읽기값 입력
  • 공장 현장 점검 중 검사 노트 기록
드롭다운, 텍스트 필드, 체크박스, 날짜 선택기가 있는 데이터 입력 폼과 아래에 제출된 레코드 테이블을 보여주는 폼 위젯 데모

폼 작동 방식

누군가 폼을 제출하면 데이터가 앱 데이터베이스의 지정된 테이블에 저장됩니다. 폼의 각 필드는 해당 테이블의 컬럼에 매핑되며, 폼이 제출될 때 모든 필드가 새 행으로 함께 저장됩니다.

폼 위젯에서 구성하는 항목:

  • 폼 제목
  • 하나 이상의 필드, 각 필드에는 레이블, 입력 유형, 기록할 테이블 컬럼이 있습니다
  • 필드별 선택적 유효성 검사 규칙 및 기본값

사용 가능한 필드 유형: 드롭다운(목록에서 선택), 텍스트, 숫자, 체크박스, 날짜/시간 선택기.

필드 배치

기본적으로 각 필드는 한 행 전체를 차지하며 위에서 아래로 차례대로 배치됩니다. 관련된 필드를 나란히 놓고 제목 아래로 묶으면 긴 폼도 더 쉽게 작성할 수 있습니다.

  • Width: 각 필드는 한 행 전체 또는 행의 4분의 3, 3분의 2, 절반, 3분의 1, 4분의 1을 차지할 수 있습니다. 필드는 각 행을 왼쪽에서 오른쪽으로 채우며, 더 이상 들어가지 않는 필드는 다음 행에서 시작합니다. Field Layout에서 Default Field Width를 설정하면 모든 필드에 같은 너비가 적용되며, 이후 필요한 필드만 개별적으로 변경할 수 있습니다.
  • Start a New Row: 이전 필드 옆에 아직 들어갈 수 있더라도 이 필드부터 새 행이 시작됩니다.
  • 섹션: 유형이 section인 필드는 제목과 그 아래의 선택적 힌트를 추가합니다. 다음 섹션이 나오기 전까지 뒤따르는 필드를 하나의 그룹으로 묶습니다. 섹션의 Field Width in Group으로 이 필드들의 너비를 한 번에 설정하고, Conditional Display로 그룹 전체를 표시하거나 숨길 수 있습니다. 예를 들어 특정 종류의 기계에만 해당하는 설정에 사용할 수 있습니다.
  • Density: 새 폼은 Compact로 시작하며, 마우스로 사용하는 데스크톱 보드에 맞는 작은 필드를 사용합니다. 터치스크린에 적합한 큰 필드를 원하면 Comfortable을 선택하세요.

폼은 사용할 수 있는 공간에 맞게 조정됩니다. 작은 타일이나 휴대폰에서는 필드가 단계적으로 넓어지다가 한 열로 쌓이므로 모든 필드를 쉽게 읽을 수 있습니다. Minimum Field Width는 그렇게 되기 전에 필드가 얼마나 좁아질 수 있는지를 설정합니다.

데이터가 저장되는 곳

모든 폼 제출은 테이블에 새 행을 추가합니다. 이렇게 하면 모든 항목의 전체 이력이 남습니다 — 아무것도 덮어쓰거나 손실되지 않습니다.

새 행이 완전하고 일관성 있도록 모든 필수 필드를 구성하십시오.

최신 상태 추적

폼을 사용하여 기계나 자산의 현재 상태를 추적하는 경우 — 예를 들어 기계별 최신 검사 결과 — IronFlock은 각 대상의 가장 최근 항목만 보여줄 수 있습니다. 앱 개발자는 어떤 컬럼이 엔티티를 식별하는지(예: 기계 이름) 테이블에 알려주어 이를 활성화합니다.

이것이 설정되면 위젯의 필터 설정에서 latest 토글을 켜기만 하면 위젯이 기계나 자산별 현재 행만 표시합니다. IronFlock은 위젯이 테이블을 읽을 때마다 어떤 행이 현재 행인지 결정하고, 새 제출마다 도착하는 즉시 보드에서 해당 대상의 행을 교체하므로, 늦게 도착하거나 수정된 제출 때문에 보드에 오래된 값이 남아 있는 일이 없습니다. 전체 제출 이력은 검토가 필요할 때 계속 사용할 수 있습니다.

이러한 테이블에서 폼에는 엔티티를 식별하는 컬럼에 대한 필드와, 그 밖에는 편집하는 컬럼에 대한 필드만 있으면 됩니다. 제출할 때마다 폼이 쓰지 않는 모든 컬럼은 현재 값을 유지합니다. 폼에 있는 필드는 항상 기록됩니다. 비운 숫자 필드는 해당 컬럼을 비우고, 비운 텍스트 필드는 빈 텍스트를 저장하며, 표시 조건으로 숨겨진 필드는 해당 컬럼을 비웁니다. 기본값이 있는 필드는 컬럼을 비워 두는 대신 기본값을 기록합니다.

테이블에서 레코드 편집하기

사용자가 기존 레코드를 열어 수정할 수 있게 하려면, 같은 페이지에서 테이블과 폼을 함께 사용합니다.

  1. 테이블에 Edit button 유형의 컬럼을 추가하고, 레코드를 식별하는 컬럼(예: 기계 이름)에 바인딩한 뒤 URL Parameter Key를 예를 들어 edit로 설정합니다. 그러면 각 행에 연필 아이콘이 표시됩니다. 클릭하면 필터 위젯이 파라미터를 설정하는 것과 같은 방식으로 해당 행의 키가 페이지 URL에 기록됩니다(?edit=press-1).
  2. 같은 페이지에 폼을 추가하고 Form Open Button을 켠 다음 Open on URL parameter를 같은 이름으로 설정합니다. 보드에서 폼은 자체 버튼을 표시하지 않습니다. URL에 파라미터가 포함되는 즉시 다이얼로그로 열리고, 사용자가 저장, 삭제 또는 취소하면 다시 닫히며 URL에서 파라미터가 제거됩니다.
  3. 각 필드의 Pre-filled Value를 레코드의 컬럼에 바인딩하되, 식별 컬럼에 대한 필터의 값은 필터 파라미터 edit에서 가져오고 Latest 스위치를 켭니다. 식별 컬럼에 기록하는 필드는 같은 바인딩을 가진 Hidden Field로 두어 저장이 같은 레코드에 적용되게 합니다. 이전 섹션과 마찬가지로 폼이 기록하지 않는 컬럼은 값을 유지합니다.

다이얼로그는 레코드의 값이 도착할 때까지 진행 표시줄을 보여 줍니다. latest 토글이 켜져 있으면 저장된 변경 사항이 저장되는 순간 테이블에 표시됩니다. 다이얼로그의 Delete 버튼은 아래 설명대로 동작하며, 다이얼로그가 스스로 닫히므로 내비게이션 경로는 비워 두어도 됩니다. 파라미터가 포함된 URL을 북마크하면 다이얼로그가 바로 열리고, 브라우저의 뒤로 가기 버튼으로 닫힙니다.

자체 열기 버튼이 있는 별도의 폼은 이전과 같이 새 레코드를 만듭니다. 보드 밖, 즉 위젯 편집기의 미리보기에서는 폼이 버튼을 유지하므로 직접 사용해 볼 수 있습니다.

데이터 삭제

IronFlock은 삭제에도 추가 전용 방식을 사용합니다. 행을 제거하는 대신 폼이 레코드를 삭제된 것으로 표시하는 새 항목을 제출합니다: Show Delete Button을 켜고 Delete-Flag Column을 테이블의 deleted 컬럼, 즉 앱 개발자가 테이블에 추가한 boolean 컬럼으로 설정하세요. 그러면 폼은 제출할 때마다 이 컬럼을 쓰며, 삭제 시 true, 저장 시 false를 쓰므로 삭제된 레코드를 저장하면 복원됩니다. 레코드를 나열하는 위젯은 latest 토글을 이 컬럼에 대한 필터와 조합합니다(deleted가 비어 있거나 false). 삭제된 레코드는 항목이 도착하는 순간 보드에서 사라지며 이력 및 감사 목적으로 데이터베이스에 남아 있습니다. 이를 위해 뷰나 변환은 필요하지 않습니다. 레코드 소프트 삭제를 참조하세요.

요약

폼 위젯으로 다음이 가능합니다:

  • 보드에서 직접 간편한 수동 데이터 입력
  • 모든 제출에 대한 자동 이력 추적
  • 현재 상태 표시 및 삭제된 레코드 숨기기를 위한 명확한 패턴
  • 같은 페이지의 다이얼로그에서 테이블의 기존 레코드 편집

IronFlock 보드를 벗어날 필요 없이 모두 가능합니다.

Last updated on