タグ別アーカイブ: FORM

フォームに追加、編集、登録ボタンを設定する~Gallery連携~

【DisplayModeを使いこなして、表示が可変のプロっぽいボタン作成を行う】

Power Appsのフォームにはなかなか奥深い機能があります

何回かに分けてフォーム機能について記事を書いていきたいと思います

今回やりたいことはフォームに追加、編集、登録ボタンを設定することです

新規にデータを追加したいときは登録ボタンのみが表示されます

データを編集したい時には編集ボタンのみが表示されます

但し、編集ボタンを押すと登録ボタンのみが表示されます

上記の機能を作成するには、Display.Mode属性が特に重要になります

ポイント

今回はGalleryとフォーム(以降、Form)の連携の中で機能を追加します

*Gallery:名称/Gallery_Sales、Form:名称/Form_Sales

GalleryがあるページからFormのあるページに移動する時などに、Formの表示モード/DisplayMode切り分けることがとても重要になります

View:表示のみ

New:新規

Edit:編集

FormのDefultModeは「FormMode.New」を設定しておきます

ですので、+の追加ボタンを押したときにはFormのDisplayModeは各フォームコントロールに値がない新規モードになります

Galleryからレコード/行を選択したい場合は「FormMode」を「View」にします

登録ボタンの作成

こちらはOnSelectプロパティに定番のSubmitForm関数を設定します

但し、Visibleプロパティを工夫します

Formを閲覧するだけのViewモード以外の時に表示されるようにします

この時、数式内のIF式は省略できます

Form_Sales.DisplayMode<>DisplayMode.View

追加ボタンの作成

追加ボタンの機能はGalleryがあるページから移動するだけでなく、Fomをリセットします

ResetForm(Form_Sales);Navigate(Screen2)

編集ボタンの作成

編集ボタンの作成ですが、その前にGalleryとFormのItemプロパティに追加が必要です

GalleryからFormに表示するレコードを選択する際に、ViewForm関数を設定し、FormのDisplayModeを閲覧のみのViewに設定できるようにします

ViewForm(Form_Sales);Navigate(Screen2)

そして、編集ボタンはFormがViewモードの時のみ表示されるようにVisibleプロパティを設定します

Form_Sales.DisplayMode=DisplayMode.View

更に、編集ボタンのOnSelectプロパティにて、FormのDisplayModeを編集/Editモードに変更できるようにします

EditForm(Form_Sales)

これで追加や編集時にボタンが必要な時に表示されるようになります

<まとめ>

今回はFormに追加や編集ボタンを設定できるようにしました

Formの表示モードがとても重要になります

登録ボタン:FormのDisplayModeがView以外の時のみ表示

*Formを閲覧する時は登録ボタン不要

編集ボタン:FormのDisplayModeがViewの時のみ表示 

⇒OnSelectプロパティにはEditFormを設定⇒登録ボタン表示

少しややこしいですが、整理しながら設定すると必要な時に必要なボタンのみが表示されるようになります

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

MicrosoftのFormsにアップロードされた画像をForms外で共有する

【Forms内の回答以外でも、画像を共有するには2つの方法があります】

MicrosoftのFormsは瞬時に多くの人の情報を集められるのでとても便利です。但し、アップロードされた画像をForms外で共有するにはどうしたらいいか?

意外と頭を悩ませている人も多いのではないでしょうか?

こちらは2つ方法があります

1.FormsからSharepointサイトのドキュメントに共有

2.Power Automateにてメールを添付する

1.FormsからSharepointサイトのドキュメントに共有

Formsの画面下に「マイグループ」という欄があります

こちらのマイグループにはSharepointサイトが並びます

1つ選んでクリックするとグループフォームが作成できます

このグループフォームで画像をアップロードするだけで、該当のShaerpointサイトのドキュメントに画像が直接アップロードされます

この時、Shaerpointサイトのドキュメント内にフォルダ内には該当フォーム専用のフォルダが作成されています

こちらのフォルダ内にも、Forms内にアップロードされた画像がアップロードされます

2.Power Automateにてメールを添付する

Formsにアップロードされた画像をメールにて添付するフローは少し複雑になります

ポイントとしては2つあります

①Forms内にアップロードされた画像はOneDrive内に保存される

②メールを添付するには、ファイルの名前とファイルコンテンツ(中身)が別々に必要

こちらの2つのポイントをまずは押さえておきましょう

Formsの回答を取得

「新しい応答が送信されるとき」と「応答の詳細を取得する」この2つのアクションでFormsの回答を取得します

添付ファイルの名前を取得

添付ファイルの名前を取得するには「データ操作」コネクタを使用します

データ操作コネクタ内の「JSONの解析」アクションを使用するのですが、こちらはコード/スキーマが必要になってきます

「コンテンツ」にFormsの画像での回答を動的コンテンツで設定後、スキーマの欄に一旦「””」を入力してフローを動かします

これでスキーマが取得できます

上記の画像の出力欄/本文の「name」の欄が一番欲しいファイル名です

こちらの本文の内容を前述のスキーマにコピーします

この「JSONの解析」アクションで取得した内容から、「作成」アクションを通じて前述の「name」を抽出します

関数を使用するのですが、関数の中身は以下となります

first(body(‘JSON_の解析’)).name

これでファイル名が抽出できます

メールの送信

これでファイル名が取得できました

今度はファイルの中身/ファイルコンテンツを取得します

ファイルコンテンツの取得には「パスによるファイルコンテンツの取得」アクションを使用します

こちらはOneDrive内の「アプリ/Microsoft Forms」フォルダから取得します

前述したようにOneDriveにFormsのアップロード画像が保存されているのがポイントです

一度、ファイルパスは実際にOneDriveに保存されているファイルを設定し、動的コンテンツの「作成」アクションから出力された内容で置き換えます

これでファイル名とファイルコンテンツが揃ったので、メール作成アクションを設定します

前述したように、ファイル名とファイルコンテンツを分けて設定するのがポイントです

これでFormsに画像がアップロードされたらメールが行われます

<まとめ>

今回はMicrosoftのForms内でアップロードされた画像をForms外で共有する方法を2つ解説しました

解説した2つの方法のうち、2つ目のメールする方法は中々小難しいです

ここで、画像のアップロードが複数ある場合はどうするか?

という疑問を持った方もいらっしゃると思います

この場合は、アレイ.配列を使用します

配列に「ファイル名」「ファイルコンテンツ」を複数格納します

使用するアクションも通常の「変数の設定」ではなく「配列変数に追加」を使用しますし、文法もなかなか間違いやすいので注意が必要です

そして、一番分かりにくいのがメールの添付です

こちらはモードを切り替える必要があります

この画像を複数添付したメールを送付する方法はなかなか難解です

機会があれば詳細に解説したいです

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ