アクション

レコードのコピー

クライアントは、既存の Company レコードからコピーされた新しい Company レコードを作成し、必要な変更を加え、そのレコードを保存するためのオプションを必要としています。

この機能を実現するには、WorkWithPlus に用意されている Standard Action の「CopyRecord」を使用します。

まず、新しい Standard Action をグリッドに作成します。

GridObjectsActions_img01

次に、[Name] プロパティで [CopyRecord] を選択します。

GridObjectsActions_img02

注意: この Standard Action を使用するには、Company トランザクションをビジネスコンポーネントにする必要があります。

新しい機能を実行時にテストします。

GridObjectsActions_img03

 

グリッド内での編集

    エンドユーザーは、グリッドに表示された Person の情報を、トランザクションを開かずに直接編集できる必要があります。これを実現するには、トランザクションをビジネスコンポーネントにする必要があるため、ビジネスコンポーネントに設定してからトランザクションを保存します。

    SelectionFeatures_img10

    エンドユーザーは、Person のすべての情報を編集できる PersonWW を保持する必要もあるため、ExtraSelection を作成する必要があります。

    SelectionFeatures_img11

    SelectionFeatures_img12

    [ExtraSelection] ノードの [Name] プロパティの値を [EditInGrid] に設定し、任意のデスクリプションを加えます。Standard Action の [Insert]、[Update]、および [Delete] の [In Line] プロパティを [True] に変更します。

    SelectionFeatures_img13

    PersonId の列を非表示にしてグリッドを設定し、次の列が表示されるようにします (残りの列は削除します):

    • PersonFirstName
    • PersonLastName
    • PersonNickName
    • PersonGender
    • PersonHobby

    SelectionFeatures_img14

    アプリケーションを実行し (F5 キー)、作成したオブジェクトに移動して結果を確認します。グリッド内のレコードを変更および削除して新しい機能をテストできます。

    SelectionFeatures_img13.1

     

    情報のエクスポート

    次に、Company Work With (CompanyWW) では、CompanyUpdateUser、CompanyUpdateDate、CompanyCreateUser、CompanyCreateDate 列を非表示にし、Excel へのエクスポートではこれらの列を表示する必要があります。これを実現するには、[Include In Export] プロパティを [True] に設定し、[Visible] プロパティを変更します。

    SelectionFeatures_img15

    Excel へのエクスポートを実行するには、[Standard Action (Export)] の [Include action] プロパティが [Yes] または <default> である必要があります。値が <default> の場合、[WWP Configuration] 内の [アクション] タブの [Standard Actions] から [Export] を選択し、[Enabled by Default] プロパティが [True] であることを確認する必要があります。

    SelectionFeatures_img16

     

    SelectionFeatures_img17

    アプリケーションを実行し、Company Work With を開き、「e」を含む会社とそのグリッド内の情報を検索します。会社を名前でフィルタすることができ、これはエクスポートでも適用されます。

    SelectionFeatures_img18

     

    [Standard Action (ExportReport)] は、グリッドの情報を PDF にエクスポートします。グリッド内に表示されている項目属性のみを PDF にエクスポートする必要があるので、([Export] アクションと同様に) これが既定で有効になっているかどうかを確認します。

    SelectionFeatures_img19

     

    SelectionFeatures_img20

    アプリケーションを実行し、結果を表示します (Company Work With データを PDF にエクスポート)。

    SelectionFeatures_img21

     

    ポップアップの使用

    CompanyWW の [Standard Action (Insert)] および [Standard Action (Update)] を「ポップアップ」として設定します。この設定により、この 2 つのアクションをクリックすると、画面が同じウィンドウ内にポップアップで開きます。このように設定するには、[Popup] プロパティを [True] に設定します。

    SelectionFeatures_img22

    アプリケーションを実行し、1 つのレコードを変更して別のレコードを作成してテストします:

    SelectionFeatures_img22.2

     

    Standard Action への論理の追加

    実行時に、Person が関連付けられていない Company のレコード (作成済みのレコードなど) を選択し、削除します。  このアクションの名前は「Delete」です。

    SelectionFeatures_img24

    Company のレコードを削除するボタンを押すと、システムによって確認メッセージが表示され、ユーザーがそのアクションを確認すると、(削除モードのトランザクションを呼び出すことなく) 直接そのレコードを削除できるようにしたいと思います。この場合、[Standard Action (Delete)] を使用することはできません。その他にどんなアクションタイプがあるでしょうか?

    [Standard Action (Delete)] を削除し、「UDelete」という [User Action] を作成して、下図のようにプロパティを設定する必要があります。

    SelectionFeatures_img25

    Company に Person が関連付けられていない場合のみ、Company を削除できます。Person が関連付けられている Company を削除しようとすると、エラーメッセージが表示され、直接 Company を削除できなくなります。これを解決するには、グリッド内にアクションを追加し、Company に Person が関連付けられているかどうかを解析する条件 (アクションの [Condition] プロパティ) を追加して、グリッドのすべてのレコードのアクションを有効または無効にします。

    このオプションを開発するには、まず「WWPTraining_DeleteCompany」という XPZ をインポートする必要があります。これには 2 つのプロシージャーが含まれています: DeleteCompany および CompanyCanBeDeleted です。

    SelectionFeatures_img23

    SelectionFeatures_img26

    Company に Person が関連付けられているかどうかを解析する動作は、CompanyCanBeDeleted プロシージャーです。

    CompanyCanBeDeleted プロシージャーを使用して、このオプションを開発します。

    次に、アクションの動作を開発する必要があります。そのためには、DeleteCompany プロシージャーを使用してアクションの [GXObject] プロパティを設定し、対応するパラメーターを追加します。

    SelectionFeatures_img27


    アクションに関連付けられたイベントは「DoUDelete」です。このイベントで確認ウィンドウを開き、結果が正しい場合はサブルーチンの「Do UDelete」を呼び出します。サブルーチンの「Do UDelete」で ([GXObject] に設定した) 削除用のプロシージャーを呼び出します。コンピューターですべての動作を確認します。

    SelectionFeatures_img28

    アプリケーションを実行して、結果を表示します。削除可能な Company をクリックし、確認メッセージが表示されたら [いいえ] を選択します。次に、もう一度削除するオプションを選択し、確認メッセージが表示されたら [はい] を選択し、レコードが削除されたことを確認します。

    SelectionFeatures_img29

    注意:  アクションの条件が満たされない場合、アクションを非表示または無効にするかどうかを設定することができます。これは、[WWP Configuration] 内の [Standard Actions] ノードの [Disabled Actions] プロパティで変更できます。

    SelectionFeatures_img30

     

    複数行の選択

    クライアントから、複数の Contact レコードを同時に選択して削除する要望がありました。これを実現するには、[User Action] の [Multi Row Selection] プロパティを設定します。

    グリッド外部に「DeleteSelected」という名前の [User Action] を作成し、このプロパティを [True] に設定します。[Multi Row Select All] プロパティを [True] に設定すると、複数行を選択する場合の列タイトルに [すべて選択] チェックボックスが追加されます。このプロパティも [True] に設定します。

    SelectionFeatures_img31

    WorkWithPlus はグリッド内の情報を使用して SDT を作成しました:

    SelectionFeatures_img32

    ユーザーが作成されたアクションを実行するとサブルーチンが呼び出され、表示されている SDT に基づいた SDT 変数内に選択されたレコードがアップロードされます。

    インスタンスを右クリックして [イベントに移動] を選択し、そのアクションへの動作を追加します。

    SelectionFeatures_img33

    イベント [DoDeleteSelected] には、WorkWithPlus で自動的に生成されたコードの下に次のコードを挿入します:

    if &SelectedRows.Count > 0
        for &SelectedRow in &SelectedRows
            msg('Logical delete of contact ' + &SelectedRow.PersonContactName.ToString() + " of Person " + &SelectedRow.PersonFullName)
        endfor
    endif

    アプリケーションを実行し、作成したアクションをテストします (会社名を選択しないでアクションを実行し、次に会社名をいくつか選択してアクションを実行します)。

    SelectionFeatures_img35

    注意:  この場合 [Error viewer] はタイトルおよびアクションの下にありますが、フォーム内の任意の場所に移動させることができます。

    次 - [Columns selector] 


    Copyright © 2007-2015 DVelop Software Solutions - www.workwithplus.com