[サポートFAQ]
ライン
更新日:1999.02.19 - 情報番号:005125
ライン
Q 編集中の表の項目値を他の表の項目値と比較し、設定した方法で演算して更新する
ライン
A FAQ改善アンケートにご協力ください
マクロを使用すると、表のデータが更新されるたびに繰り返し項目値を更新できるので便利です。

ここでは、下の図のように在庫マスターの在庫数から売上げにより減少した在庫数を差し引いて、在庫マスターの在庫数を調整する場合を例として解説します。

 

   在庫マスター(併合先)         売上表(併合元)

  
  
  
コード  製品名  在庫数
 000001
 000002
 000003
テレビ 
ビデオ 
ラジオ 
  250
  500
  150
 
 
 
 
コード  製品名  売上数
 000001
 000002
 000003
 テレビ
 ビデオ
 ラジオ
   20
   30
   10


 

 

 

   在庫マスター



 
コード  製品名  在庫数
 000001
 000002
 000003
テレビ 
ビデオ 
ラジオ 
  230
  470
  140



 

 

 

「在庫マスター」テーブルを併合先、「売上表」テーブルを併合元として、併合先の「在庫数」項目のデータから併合元の「売上数」の項目のデータを減算するには、次のように操作します。

  ■ 操作手順 ■



    1.五郎を起動し、データベースを開く。

    2.[マクロ]シートの[新規作成(N)]をクリックして、[新規作成]ダイアログボックスを開く。

    3.任意のマクロ名を付けて「手続き」を選択し、Mainのマクロウィンドウを開く。

    4.Mainのマクロウィンドウにマクロを記述する。

    5.マクロを保存し、マクロウィンドウを閉じる。

    6.[マクロ]シートで作成したマクロを選択し、[実行(G)]をクリックする。




 




    !!Main
    %tableID1 = Goro.OpenTable("在庫マスター", , 1)!!(1)
    %tableID2 = Goro.OpenTable("売上表", , 1)!!(2)
      
    Goro.Current = %tableID1!!(3)
      
    %key = {{.Field1 = "コード", .Field2 = "コード", .Key = true}, {.Field1 = "在庫数", .Field2 = "売上数", .Operation = 3 }}!!(4)
    %method = 2!!(5)
      
    Goro.Merge(, %tableID2, %key, %method)!!(6)

    (1),(2)
    %tableID1 = Goro.OpenTable("在庫マスター", , 1)
    %tableID2 = Goro.OpenTable("売上表", , 1)

    「在庫マスター」と「売上表」テーブルを一覧表示形式(ViewMode = 1)で開き、その表IDを数値として変数%tableID1と%tableID2に格納します。

     
    (3)Goro.Current = %tableID1

    変数%tableID1に格納されている「在庫マスター」テーブルをカレントテーブルにします。

     
    (4)%key = {{.Field1 = "コード", .Field2 = "コード", .Key = true}, {.Field1 = "在庫数", .Field2 = "売上数", .Operation = 3 }}

    表「在庫マスター」と表「売上表」における併合条件を変数「%key」に配列で指定します。併合時にキーとなる項目として、表「在庫マスター」の項目「コード」を、表「売上表」の項目「コード」をそれぞれ指定します。また、表「在庫マスター」の項目「在庫数」を、表「売上表」の項目「売上数」によって減算される様に設定(.Operation= 3)します。


    (5)%method = 2

    表「売上表」のレコードが表「在庫マスター」に併合され、表「在庫マスター」が上書きされる様に設定します。


    (6)Goro.Merge(, %tableID2, %key, %method)

    カレント表「在庫マスター」について、併合する表「売上表」と変数「%key」と「%method」において併合を実行します。併合の結果は、直ちにカレント表「在庫マスター」に表れます。





    マクロ簡易作成機能を使えば、マクロのコードを記述せずに条件にあった絞り込みをマクロ化できます。


     (1)動作一覧(L)    
    表→表を開く
     (2)「表を開く」の設定(P)    
    表名:在庫マスター

     (3)動作一覧(L)    
    表→表を開く
     (4)「表を開く」の設定(P)    
    表名:売上表

     (5)動作一覧(L)    
    表→カレント表の指定
     (6)「カレント表の指定」の設定(P)  
       
    表:在庫マスター

     (7)動作一覧(L)    
    データ→併合
     (8)「併合」の設定(P)    
    条件:併合_在庫数





    マクロ簡易作成機能で作成されたマクロを JustBuilderへ(J) にてコード変換すると、次のようになります。

      !! 表を開く
      %表ID_01 = Goro.OpenTable("在庫マスター")

      !! 表を開く
      %表ID_02 = Goro.OpenTable("売上表")

      !! カレント表の指定
      Goro.Current = Goro.TableList("在庫マスター")

      !! 併合
      Goro.Merge("併合_在庫数")

 

    ※補足 表の併合

    併合とは、2つの表に共通した項目をキーにし、表の項目値をもう1つの表の項目値に基づいて更新する操作です。2つの表を照合し、設定したキー項目の項目値が一致または不一致の場合に、指定した条件で項目値を更新したり、レコードを追加したりします。また、表を照合した結果、更新したレコードと更新しなかったレコードだけを取り出して、別の表に保存することもできます。2つの名簿を照合して更新するときや、売上数と発注数から商品の在庫を管理するときなどに利用できます。

ライン

この情報は、お客様のお役に立ちましたか?

送信
ライン
※本情報の内容は、予告なく変更することがあります。
※本情報の一部または全部を無断で転載及び複写することを禁止します。
※記載された会社名、製品名は、弊社または各社の登録商標もしくは商標です。
弊社の登録商標についてはこちらをご参照ください。