第6回 食品番号(食品NO)入力画面を考える(前回の課題の発展)
 
 
     今回から、いよいよ『WIN版・桐』の一括処理を用いた栄養計算システムの作成に入ります。
その1回目として、まず、前回の課題のプログラミング例(答えは一つではない)を示し、その後で、より実用的な方法を考えていきたいと思います。



前のページへ

ホームページへ 
 
         
  0. 前回の課題の解答例です。
変数宣言 固有 ,文字列{&食品NO}
変数宣言 固有 ,数値{&数値1,&数値2}

キー入力 (1,1)-(25,80),プロンプト="食品NOを入力して下さい。" 終了状態=&数値1,&食品NO
メッセージボックス "食品の選択",#CAT(”入力した食品NOは”,&食品NO,"です。"), ボタン指定=1,&数値2

終了

上記のサンプルプログラム(一括処理)を実行すると、最初に次のようなダイアログが表示されます。



ここでは食品NOに『1-16』と入力してみます。



『1-16』と入力後、『OK』ボタンを押すと画面は次のようになります。
たったこれだけのコマンドを書くだけで、食品NOを入力することができ、その値を『&食品NO』という変数に代入して保存することができました。

この変数を利用することにより、この変数に設定された『値』によって食品成分表のデータベースから該当する食品を絞り込むこともできそうです。



しかし、このサンプルプログラムには若干の問題点があります。
利用している食品成分表のデータベースに使われている食品NOは『01-001-a』や『01-016』のように食品群は『01』から『18』になっており、小分類も『001から258』、細分はアルファベット小文字で表現されています。

『1-16』と入力された場合、&食品NOに『01-016』というように代入されないと次の『絞り込み』処理等ができません。

これを解決するために、特別なフォームを定義し、食品群、小分類、細分と分けて各値を入力し、『1から9』までの値は『01から09』のように表示し、数値型を文字列型に変換して、前回の#連結(#CAT)関数で、それぞれの分類をハイフン(-)で連結するということが必要になります。
 
         
  1. それでは、食品NO選択用のフォームを考えていきましょう。

数回前にフォームの作成の練習をしましたが、まったく同じ方法で食品を選択するときに利用するフォームを作成します。次の画面は『カード』を利用して作成したフォームです。




   
  2.  上の画面中で破線で囲まれた四角のうち、下の線の部分をドラッグしてカードを広げます。
 
   
         
  3.  フォームツール中で、下の画面のように『ボタンのマーク』をクリックします。

 
   
         
  5.  カード下方のボタンを貼り付けたい部分を選択します。

 

ボタンの大きさを決定すると、下の画面のように新しいボタンが貼り付けられます。

   
         
  6.  この画面から、今作成したボタンをクリックして選択状態にした後で、メニューバーから『編集(E)』・『コピー(C)』(右クリックしてコピー(C)でもよいです)を選びます。



   
         
  7. 次の画面のように、メニューバーから『編集(E)』・『貼り付け(P)』(右クリックして貼り付け(P)でもよいです)を選びます。



マウスのボタンを離すと、下の画面のように二つ目のボタンが作成されます。





















課題:
なし

 
 
         
  8. 新しくできた(二つ目の)ボタンを適当な位置にドラッグします。上の画面でボタンの端にある四角をドラッグするだけでよいのです。

 
   
         
  9. 同じ操作をくり返して、ボタンを四つ作成しましょう。

   
         
  10.  前回までに学習した方法(ボタンを選択状態にして右クリック、そしてメニューから『オブジェクトの属性(R)』を選択します)に従って、とりあえず各ボタンに『食品の検索』、『食品の採用』、『次の食品』、『処理の終了』という名前を書きます。
ここまで作業したら、新たに作成したフォームファイルをとりあえず保存して下さい。

   
         
  11. ボタンの作成した時と同様に食品NOを表示している枠(テキストボックス)と食品名と書かれている紺色のラベル及び食品名を表示している枠(テキストボックス)を下に移動します。






   
         
         
         
         
         
  12.  フォームツールのラベル(『Aa』のマーク)をクリックした後で、上の画面に貼り付けます。



適当な位置でクリックすると、下の画面のようにラベル欄(ラベルオブジェクト)ができます。ここでは紺色の四角い枠の部分がラベルオブジェクトです。 
   
         
  13.  この画面のように、該当するラベルオブジェクトを選択状態にして、右クリックを押します。
新たに表示されるメニューから『オブジェクトの属性(R)』を選択して設定を変更します。


   
         
  14.  上記の操作でオブジェクトの属性というダイアログを表示しました。ここでは背景タブをクリックして背景色には『紺色』が設定されていることを確認します。

 
   
         
  15.  背景色を透明に変更します。


 
   
         
  16.  ラベルタブを選択し、標題というところに『−(ハイフン)』を入力しました。


   
         
  17.  次に罫線を『なし』に変更します。

 
   
         
  18.  最後にフォントタブを押して、文字色を『黒色』に変更しました。


 
   
         
  19.  テキストボックスを作成時にそのテキストボックスの名前のラベルも作成され、これは今回は不要なので、ラベル(ここでは『テキスト_10』と書いてある紺色の枠)を選択後、右クリックし、表示されるメニューから『削除(D)』を選び、該当のラベルを削除します(ここではラベルオブジェクトの作成も説明したかったので『テキスト_10』というラベルオブジェクトを移動し、『−(ハイフン)』に修正する方法はとりませんでした)。

 
   
         
  20.  同様の操作をあと二回繰り返し、この画面を作成しました。定義したファイルを保存して終了して下さい。

 
   
         
  21.   上の画面の食品群、小分類、細分にそれぞれ該当の数字またはアルファベットを入力し、#連結(#CAT)関数でそれぞれを結合したものを作成します。
この文字列を用いて、データベースを絞り込み、該当の食品を選択します。
そのデータ(この食品の各項目、つまり『カロリー』、『タンパク質』、『脂質』などの数値)摂取量をかけて集計値を表示または印刷するという処理につなげていきたいと思います。

定義したフォームが実際はどのように見えるのかを次の画面に示します。このような感じです。
少しスクロールバーを動かして見ましたが、1621件くらいなら、スクロールバーをドラッグするだけで、瞬時に最初の行から最後の1621件目へ行きました(せっかく、このようなフォームを作りましたが、わざわざ、食品群・小分類・細分を入力して1つの食品を特定するより速いかも知れません)。



まだ、各ボタンにはそれぞれの機能は設定していませんが、今回はここで終了します。 
   
         
    前のページへ    
    ホームページへ