新規記事を募集中!ここから募集ページへ

【PowerApps】掲示板(資料閲覧)アプリを1から市民開発

掲示閲覧アプリの解説

APP

OnStart
Set(search_v,"全件表示");

「HOME」スクリーン

ギャラリー

OnSelect
Set(lodding_v,true); //ローディング画面の変数
Navigate(表示);

詳しくはこちらをご覧ください。

Items
SortByColumns(
    Filter(掲示板アプリ_マスタ,
        process_status="公開中"||Dropdown1_1.Selected.Value=process_status, //表示ステータスの絞り込み
        IsBlank(Dropdown1)||Dropdown1.Selected.タイトル=category, //カテゴリの絞り込み
        IsBlank(Dropdown1_2)||Dropdown1_2.Selected.Value=approval_status, //承認ステータスの絞り込み
        IsBlank(TextInput1)||Value(TextInput1.Text)=ID //IDの絞り込み
    ),
    "view_date_start",SortOrder.Descending //掲示開始日時が新しい順で表示
)

閲覧済みの表示(テキストボックス)

IsMatch(【SharePointのリスト内部名】,User().Email,MatchOptions.Contains)

【SharePointのリスト内部名とUser().Emailが一致するときはtrueを出力します。
trueが出力されることでテキストボックスが表示されます。
今回はギャラリー内に設置しているため、ThisItemから始まる列を指定しています。
Lookupでも取得は可能です。

Visible
IsMatch(ThisItem.view_user,User().Email,MatchOptions.Contains)

絞り込みステータス

search_vを使用して文字列を置き換えています。

text
search_v

「検索」スクリーン

ドロップボックスとテキスト入力とボタンのみの設置です。

「表示」スクリーン

OnVisible
Set(file_link,Base64変換.Run(Gallery1.Selected.ID)); //Base64の変換のPower Automate実行

Set(lodding_v,false); //ローディング画面の変数

閲覧済みのボタン(ボタン)

UpdateIf(掲示板アプリ_マスタ,ID=Gallery1.Selected.ID,{view_user:Gallery1.Selected.view_user&”,”&User().Email})

SharePointの項目の追加とIFを兼ねそろえた関数です。
条件が一致するときに、User().Emailを追加していきます。

OnSelect
UpdateIf(
    掲示板アプリ_マスタ,ID=Gallery1.Selected.ID,
    {
        view_user:Gallery1.Selected.view_user&","&User().Email
    }
)

確認済みの表示とは逆にNotでtrueを出力します。
そのため、view_userにUser().Emailに一致する文字がない場合は、閲覧済みボタンを表示します。

Visible
Not(IsMatch(Gallery1.Selected.view_user,User().Email,MatchOptions.Contains))

閲覧済み解除のボタン(ボタン)

UpdateIf(掲示板アプリ_マスタ,ID=Gallery1.Selected.ID,view_user:Substitute(Gallery1.Selected.view_user,”,”&User().Email,””)})

SharePointの項目の追加とIFを兼ねそろえた関数にSubstitute関数を加えました。
条件が一致するときに、User().Emailを削除(空白に置換)していきます。

OnSelect
UpdateIf(掲示板アプリ_マスタ,ID=Gallery1.Selected.ID,view_user:Substitute(Gallery1.Selected.view_user,","&User().Email,"")})

確認済みの表示と同じでtrueを出力します。
そのため、view_userにUser().Emailに一致する文字がある場合は、閲覧済み解除ボタンを表示します。

Visible
IsMatch(Gallery1.Selected.view_user,User().Email,MatchOptions.Contains)

PDFビュアー(試験段階)

document
file_link.file

1 2

コメント