メインコンテンツまでスキップ

フォーム送信管理

適切なアプリケーションを構築する過程で、次のような問題が発生する可能性があります。

  • 日報で管理する方法システムでは、設定一人一日に一件の日報データを提出することしか許されず、当日に重複して提出することは許されない
  • 週報でどのように管理するかシステムでは、設定一人一人が週に1回の週報データを提出することしか許されず、その週に重複して提出することは許されない
  • どのように月報で管理しますかシステムでは、設定一人一人が毎月1週間の週報データを提出することしか許されず、当月に重複して提出することは許されない
  • どのようにアンケートやイベント登録システムで、一人一人に1つのデータしか提出できないように設定し、同じ人が重複して提出できないように設定します。

前提条件

このチュートリアルでは、適切なフォーム式を使用します。まず、次のことを知ることができますフォーム式

効果を実現する

一人一日に一回だけ提出できます

一人一週間に一度しか提出できません

お一人様月1回のみ提出可能です

一人に一度だけ提出できます

実装手順

一人一日に一回だけ提出できます

普遍的なフォームページの作成

通常のフォームページを作成します。詳細はこちらを参照してください通常フォーム

キャンバス領域で次のコンポーネントをドラッグします。

  • メンバー: 提出者に名前を付けます
  • 日付: 送信日という名前です
  • 単一行テキスト: 一意の検証idという名前です
    • コンポーネントステータス設定を非表示にし、常に送信することをチェックします

フォーム式の追加

送信者はショートカット設定を選択し、現在のログイン者をデフォルトにします。

送信日はショートカット設定を選択し、デフォルトは今日です。

一意の検証idのデフォルト値は式編集を選択し、次の図に示す式を設定するか、式のソースコードを直接コピーして、フィールドの変更に注意してください。

(現在のログイン者userid + 送信日時) を使用して、一意の検証idを設定します。

{"text":"CONCATENATE(USERFIELD(​提交人​,\"userId\"),TEXT(DATE(​提交日期​),\"yyyyMMdd\"))","marks":[{"from":{"line":0,"ch":22,"sticky":null},"to":{"line":0,"ch":27,"sticky":null},"value":"employeeField_lc0bktqq","invalid":false},{"from":{"line":0,"ch":48,"sticky":null},"to":{"line":0,"ch":54,"sticky":null},"value":"dateField_lc0bktqr","invalid":false}],"isCmData":true}

フォーム検証の追加

Exist関数を使用して一意の検証idを検証すればよい。

{"text":"EXIST(​唯一校验标识​)","marks":[{"from":{"line":0,"ch":6,"sticky":null},"to":{"line":0,"ch":14,"sticky":null},"value":"textField_lc0bcyfu","invalid":false}],"isCmData":true}

保存ページ

一人一週間に一度しか提出できません

普遍的なフォームページの作成

通常のフォームページを作成します。詳細はこちらを参照してください通常フォーム

キャンバス領域で次のコンポーネントをドラッグします。

  • メンバー: 提出者に名前を付けます
  • 日付: 送信日という名前です
  • 単一行テキスト: 一意の検証idという名前です
    • コンポーネントステータス設定を非表示にし、常に送信することをチェックします

フォーム式の追加

送信者はショートカット設定を選択し、現在のログイン者をデフォルトにします。

送信日はショートカット設定を選択し、デフォルトは今日です。

一意の検証idのデフォルト値は式編集を選択し、次の図に示す式を設定するか、式のソースコードを直接コピーして、フィールドの変更に注意してください。

(現在のログイン者userid + 送信日時 + 送信日時週数) を使用して、一意の検証idを設定します。

{"text":"CONCATENATE(USERFIELD(​提交人​,\"userId\"),TEXT(DATE(​提交日期​),\"yyyyMM\"),MID(TEXT(ISOWEEKNUM(DATE(​提交日期​))),2,LEN(TEXT(ISOWEEKNUM(DATE(​提交日期​))))-2))","marks":[{"from":{"line":0,"ch":22,"sticky":null},"to":{"line":0,"ch":27,"sticky":null},"value":"employeeField_lc0bktqq","invalid":false},{"from":{"line":0,"ch":48,"sticky":null},"to":{"line":0,"ch":54,"sticky":null},"value":"dateField_lc0bktqr","invalid":false},{"from":{"line":0,"ch":91,"sticky":null},"to":{"line":0,"ch":97,"sticky":null},"value":"dateField_lc0bktqr","invalid":false},{"from":{"line":0,"ch":128,"sticky":null},"to":{"line":0,"ch":134,"sticky":null},"value":"dateField_lc0bktqr","invalid":false}],"isCmData":true}

フォーム検証の追加

Exist関数を使用して一意の検証idを検証すればよい。

{"text":"EXIST(​唯一校验标识​)","marks":[{"from":{"line":0,"ch":6,"sticky":null},"to":{"line":0,"ch":14,"sticky":null},"value":"textField_lc0bcyfu","invalid":false}],"isCmData":true}

保存ページ

お一人様月1回のみ提出可能です

通常のフォームページの作成

通常のフォームページを作成します。詳細はこちらを参照してください通常フォーム

キャンバス領域で次のコンポーネントをドラッグします。

  • メンバー: 提出者に名前を付けます
  • 日付: 送信日という名前です
  • 単一行テキスト: 一意の検証idという名前です
    • コンポーネントステータス設定を非表示にし、常に送信することをチェックします

フォーム式の追加

送信者はショートカット設定を選択し、現在のログイン者をデフォルトにします。

送信日はショートカット設定を選択し、デフォルトは今日です。

一意の検証idのデフォルト値は式編集を選択し、次の図に示す式を設定するか、式のソースコードを直接コピーして、フィールドの変更に注意してください。

(現在のログイン者userid + 送信日時) を使用して、一意の検証idを設定します。

{"text":"CONCATENATE(USERFIELD(​提交人​,\"userId\"),TEXT(DATE(​提交日期​),\"yyyyMM\"))","marks":[{"from":{"line":0,"ch":22,"sticky":null},"to":{"line":0,"ch":27,"sticky":null},"value":"employeeField_lc0bktqq","invalid":false},{"from":{"line":0,"ch":48,"sticky":null},"to":{"line":0,"ch":54,"sticky":null},"value":"dateField_lc0bktqr","invalid":false}],"isCmData":true}

フォーム検証の追加

Exist関数を使用して一意の検証idを検証すればよい。

{"text":"EXIST(​唯一校验标识​)","marks":[{"from":{"line":0,"ch":6,"sticky":null},"to":{"line":0,"ch":14,"sticky":null},"value":"textField_lc0bcyfu","invalid":false}],"isCmData":true}

保存ページ

一人に一度だけ提出できます

通常のフォームページの作成

通常のフォームページを作成します。詳細はこちらを参照してください通常フォーム

キャンバス領域で次のコンポーネントをドラッグします。

  • メンバー: 提出者に名前を付けます
  • 日付: 送信日という名前です

保存ページ

送信ルールの設定

ページ設定に進みます。

送信ルールを設定して保存します。

ビデオチュートリアル

オンラインで試遊する

この文書は機械翻訳により生成されています。翻訳により生じた齟齬や相違点は拘束力を持たず、コンプライアンスや執行目的において法的効力はありません。
© DingTalk (Singapore) Private Limited