サブフォームのエントリー画像をプレビューする方法

サブフォームのエントリー画像をプレビューする方法

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

アプリケーションに画像項目がある場合、アップロードされた画像はポップアップで即座にプレビューできます。これにより、ユーザーはアップロード内容をすばやく確認でき、送信を確定する前に正しい画像が選択されていることを確実にできます。
このチュートリアルでは、画像項目を含むサブフォームを持つメインフォームに焦点を当てます。このサブフォームをアップロードする画像と呼びます。さらに、アップロードされた画像を一時的に保存するためのStore 画像という別フォームを使用します。一時的に保存されたこれらの画像はページ上でプレビュー用に表示され、フォームが送信されると自動的に削除されます。
メモ: Store 画像フォームのレポートを公開して、暗号化キーを取得します。このキーは関数内で使用し、画像のプレビューを行います。
  1. フォームを作成し、以下の項目を追加して画像をアップロードし、プレビュー用にアップロード画像を一時保存します。

    フォーム

    フォームリンク名

    項目タイプ

    項目名

    項目リンク名

    Store 画像

    Store_Image

    画像

    Temp 画像

    Temp_Image

    アップロードする 画像

    Upload_Images

    サブフォーム

    • 画像

    • 判定ボックス

    • ルックアップ(Store_Image)

    サブフォーム

    • 画像

    • 表示

    • ID

    サブフォーム

    • 画像

    • 表示

    • ID

  2. レポートを公開します。対象はStore 画像フォームのレポートで、この例ではAll_Store_Imagesになります。

  3. 関数を作成し、以下の詳細に従ってプレビュー用の画像をダウンロードします。
  4. Deluge エディターに次のスクリプトを追加します。これにより、画像の URL を取得し、動的にプレビューできるようになります。
    1. string getimage(int id)
    2. {
    3. imageRecord = Store_Images[ID = id];
    4. if(imageRecord。件数() > 0)
    5. {
    6. //画像データの ID とパスを取得します。
    7. imageRecordId = imageRecord。ID;
    8. imageRecordPath = imageRecord。Temp_Image;
    9. subStringStart = imageRecordPath。lastIndexOf('画像/') + 6;
    10. subStringEnd = imageRecordPath。lastIndexOf('\' border');
    11. imagePath = imageRecordPath。subString(subStringStart,subStringEnd);
    12. img = 'https://creator.zohopublic.com/<adminUserName>/<appLinkName>/<reportLinkName>/'+ imageRecordId + '/<fieldLinkName>/image-download/<encryptedKey>/' + imagePath;
    13. }
    14. 返品する img;
    15. }
      1. 上記のスクリプト内の変数を、以下の表に示す該当するデータに置き換えてください。

        <adminUserName>

        は、アプリケーションの所有者のユーザー名です。

        <appLinkName>

        は、アプリケーションのリンク名です。

        <reportLinkName>

        は、公開済みレポートのリンク名です。

        <fieldLinkName>

        は、アップロードされた画像を一時的に保存する項目のリンク名です。

        <encryptedKey>

        は、ページを公開する際に作成される一意のキーです。
        公開済みレポートの URL 内で確認できます。例として、次の公開 URL の場合:
        https://creatorapp.zohopublic.com/zylker/it-asset-tracker/report-perma/All_Store_Images/nDm8eJMv4TTKMd1qOZnqA0Je8dj90rW0CbQZBBPZxZd6fM02GmuUnPa962bDKWPXmnJ8vEMdF7rpWgM3jhRb6SR8kd213G2b4nbt

        暗号化キーは次の部分です。
        nDm8eJMv4TTKMd1qOZnqA0Je8dj90rW0CbQZBBPZxZd6fM02GmuUnPa962bDKWPXmnJ8vEMdF7rpWgM3jhRb6SR8kd213G2b4nbt

  5. ページを作成し、名前を画像プレビューとし、次のページ変数を追加します。
    1. 変数名

      データ型

      image_preview

      string

  6. ページに ZML スニペット要素をドラッグ&ドロップします。
  7. 次のスクリプトを Deluge エディターに追加します。このスクリプトはページ変数の入力からデータ ID を取得し、表示のために getImage 関数に渡します。
    1. <%{
    2. input。画像 = thisapp。getimage(input。image_preview。toNumber());
    3. %>
    4. <panel elementName='Panel'>
    5. <pr width='fill' height='fill'>
    6. <pc padding='20px' bgColor='#FFFFFF' width='100%' hAlign='center' vAlign='middle'>
    7. <pr width='auto' height='auto'>
    8. <pc>
    9. <画像 color='#FFFFFF' bgColor='#2D2D2D' width='500px' height='400px' 種類='weburl' 値='<%=input。画像%>' size='38px' cornerRadius='0px' iconType='outline' /> </pc>
    10. </pr>
    11. </pc>
    12. </pr>
    13. </panel>
    14. <%
    15. }%>
  8. ワークフローを作成し、サブフォームのユーザー入力時表示項目を実行して画像をプレビューできるようにします。

  9. 次のスクリプトを Deluge エディターに追加します。
    1. if(row。画像 != null)
    2. {
    3. //画像を Store_Images に追加します
    4. add_images = insert into Store_Images
    5. [
    6. Added_User=Zoho。loginuser
    7. Temp_Image=row。画像
    8. ];
    9. //Temp_Images から最後に追加されたデータを取得します
    10. last_added = Store_Images[ID != 0] 並べ替える by Added_Time desc;
    11. //画像の新しいデータ ID を行のルックアップ項目に設定します
    12. row。LookupID=last_added。ID;
    13. //特定の ID を変数に代入します
    14. img = Store_Images[ID == row。LookupID].ID;
    15. if(img != null)
    16. {
    17. //データ ID とページパラメーターを指定してページを開きます
    18. openUrl('#Page:Image_Preview?image_preview=' + img,'popup window','height=auto,width=auto');
    19. }
    20. }
  10. サブフォーム内の ID ルックアップ項目を非表示にするには、アップロードする画像フォームの読み込み時に別のワークフローを作成します。データイベントを作成または編集に設定し、ワークフロー名を項目を非表示とします。

  11. [新しいアクションを追加]をクリックし、Deluge エディターに次のスクリプトを入力します。
    1. 隠す SubForm。LookupID;
  12. Store 画像フォームに一時的に保存された画像を削除するには、Upload_Images フォームの送信成功時にワークフローを作成します。データイベントを作成または編集に設定し、ワークフロー名をTemp 画像を削除とします。

  13. [新しいアクションを追加]をクリックし、Deluge エディターに次のスクリプトを入力します。
    1. 削除 差出人 Temp_Images[ID != 0];

動作を確認する


  1. openUrl
  2. データを追加