第9回 誤って選択した食品のデータを削除する(『作業用01.TBL』を編集する)。
 & メインメニューを作成し全体像を把握する。
 
 
     前回作成した一括処理により、選択した食品のデータは『作業用01.TBL』という作業ファイル(もちろん、このファイルも『WIN版・桐』用の表ファイルです)に蓄積し、保存することができるようになりました。
我々人間は時々失敗する動物であり、パソコンの操作だけではなくても色々と間違いをします。
取り返しのつかない失敗もあるでしょうが、大抵の失敗は頑張ってフォローすることが可能です。

今回は作業用ファイルに蓄積はしたものの誤って採用してしまったデータを削除する処理を勉強します。

 今回の一括処理は簡単ですし、もう一つのテーマとしてメインメニューを作成します。
まだ、追加・訂正してメニュー画面が変わるかも知れませんが、大筋は変わらないと思いますから、この辺で全体像を把握したいと思います。
前のページへ

ホームページへ 
 
         
  1. 先ず始めに、『WIN版・桐』を起動して、『作業用01編集.cmd』という一括処理ファイルを新規作成します。

変数宣言 文字列 {&栄養システムパス名}

&栄養システムパス名 ="C:\栄養計算\"

表 #CAT(&栄養システムパス名,"作業用01.TBL"), 表番号=1
表形式編集
圧縮
終了 表 1
終了

たった7行のコマンドを並べただけですが、これだけで作業用ファイルを編集できるようになります。

プログラムも小さいので、説明することもあまりありません。

先ずは使用するデータベースを『』コマンドで指定します。

繰表形式編集』コマンドを実行すると指定した表を表形式で編集することができるようになります。

圧縮』コマンドは、旧版のコマンド名で、現在は『表整理』コマンドです。どちらのコマンドを使うことも可能です。

実は『WIN版・桐』のデータ削除方法というのは二段構えになっています。

単純に行削除を行うと、画面上からは削除されますが、実はデータとしてはまだ残っています。
紙と鉛筆の例でいえば、ノートに何か文章を書いたけれども、不要な文字なので線でも引いて消しただけの状態です。読もうと思えばまだ読めます。
紙と鉛筆の場合は、完全ではありませんが、引いた『取消線』を注意深く消しゴムで消せば、何とか元に戻ります。

一方、ノートに書いたページのうちである1ページが不要になり、破いて捨てることも考えられます。この場合は元に戻すことができません。

『圧縮』・『表整理』というこのコマンドは印をつけて表示できなくしただけの削除データを完全に削除するコマンドです。

つまり、会話処理である行を削除した後、『圧縮』コマンドで完全にデータを削除するということです。

後は表を閉じて、この一括処理を終了させるだけです。

前のページへ

ホームページへ
 
         
  2. 次にメインメニューを作成し、今まで作成してきた一括処理コマンドを実行できるように設定する方法を説明します。

下の画面は、フォーム定義の完成形です。実際にフォームを表示させたときとはグリッド(目盛)がないなど、若干違いはありますが、このようなメニュー画面を作成していきたいと思います。

基本は、6回目に説明した方法で、『簡易生成』・『カード』を選択して作成しました。

ボタンオブジェクト(つまり、ボタン)を一つ作成した後に、コピー、貼り付け機能を使って8つのボタンを作成します。


 
   
         
    上の画面で食品の選択処理と書かれているボタン(作成したばかりのボタンは無印)をダブルクリックして『オブジェクトの属性』というダイアログを開きます。



『背景』タブをクリックして次の画面を表示後、背景色に次の色を設定しました(好みに応じて好きな色をデザインしてみましょう)。


 
前のページへ

ホームページへ 
 
         
    『フォント』タブをクリックして、フォントを変更することもできますが、ここでは既定のものを使いました。



『ボタン』のタブをクリックして、標題に『食品の選択処理』、機能名欄に『開く』、機能パラメータリストに『食品の検索.cmd』と入力しました。

オブジェクト名も変更可能ですが、システムが自動でつけたものをそのまま利用することもできます。

ボタンが利用できるように『一括起動時有効』という欄にチェックをつけます(他のボタンにもチェックをつけて下さい)。

チェックをつけたボタンオブジェクトとつけなかったボタンオブジェクトを動作確認すると違いを知るすることができます。


 
前のページへ

ホームページへ 
 
 
    同様に次のボタン(『選択した食品データの一部削除』というボタン)のオブジェクト属性を開き、上記の設定をします。ボタンが利用できるように『一括起動時有効』という欄にチェックをつけることを忘れないようにしましょう。

機能名欄には『開く』、機能パラメータリスト欄には『作業用01編集.CMD』と入力しました。
上・下の2画面を比較するとわかるように、拡張子(CMD)は『半角・小文字のcmd』でも『半角・大文字のCMD』でもどちらでもよいです。



前のページへ

ホームページへ
 
         
    簡単な一括処理ファイルをもう一つ書いてみます。次のように打ち込み、『作業用01削除.CMD』というファイル名で保存して下さい。

この一括処理ファイルのポイントは『行削除 * , 圧縮 , 終了状態 = &終了キー』というコマンドで、『行削除 * 』と書くことにより、該当ファイルの全ての行(データレコード)を削除することができます。

この後に続く、『圧縮』というパラメータをつけることにより、削除したデータを完全にファイルから削除します。

ここでは『&終了キー』という変数を用いて、画面制御を行っていませんが、処理の状態により&終了キーという変数に数値が代入されるので、その値に応じて画面制御することもできます。
<<参考>>『&終了キー』に代入される値
コマンドが正常に終了した場合
共有違反以外のエラーで実行できなかった場合
他のプロセスがファイルを占有している場合 −2
他のプロセスが行ロック中の場合 −3
 
変数宣言 文字列 {&栄養システムパス名}
変数宣言 数値 {&終了キー}

&栄養システムパス名 ="C:\栄養計算\"

表 #CAT(&栄養システムパス名,"作業用01.TBL"), 表番号=1
行削除 * , 圧縮 , 終了状態 = &終了キー
終了 表 1
終了

同様に次のボタン(『選択した全食品データの削除』というボタン)のオブジェクト属性を開き、上記の設定をします。ボタンが利用できるように『一括起動時有効』という欄にチェックをつけることを忘れないようにしましょう。

機能名欄には『開く』、機能パラメータリスト欄には『作業用01削除.CMD』と入力しました。



『終了』ボタンを除く、その他のボタンの設定は機能名と機能パラメータリスト欄が空欄であること以外は全て同じです。ボタンの標題だけ個別に設定して下さい。

これで、このボタンを押すと選択したデータを全て削除し、新たに新しく選択を始めることができるようになります。
 
   
         
    次の画面は『終了』ボタンに関する『オブジェクトの属性』ダイアログです。
機能名欄は画面のように、『閉じる』に設定します。ここに『桐の終了』という設定をすることもでき、この場合には『終了』ボタンを押すと、『WIN版・桐』も終了します。
メニュー画面及び一括処理の作成中は、いちいち『WIN版・桐』が終了しては困るので『閉じる』という設定をしましたが、システム完成後で『終了』ボタンを押したときに『WIN版・桐』も終了させたい場合には、『桐の終了』という設定をすると希望通りの動作をします。

このテキストには説明画面を載せませんでしたが、『終了』ボタンの『背景』はパープルに設定しました。

 
前のページへ

ホームページへ
 
         
    タイトル欄はテキストオブジェクトからラベルオブジェクトに変換後、標題欄に『栄養計算システム』、フォントサイズを『18』に設定しました。各自、好みの大きさに変えてみましょう。

タイトル欄の罫線モードは『囲み罫線』、線種は『二重線3』、線の太さは『6 point』という設定にしました。




また、別のラベルを作成してコピーライト表示をするように設定し、このラベルはタイトル欄に重ねて、背景を『透明』に設定しました。


前のページへ

ホームページへ
 
         
    これで、メインメニューのボタンのうち、『食品の選択処理』、『選択した食品データの一部削除』、『選択した全食品データの削除』、『終了』の4つには、それぞれの機能(一括処理ファイルなど)が動作するように設定されています。

その他のボタンは押すことは可能ですが、まだ何も動作しません。

今回ボタンオブジェクトの機能欄・機能パラメータリストに貼り付けた各機能(一括処理ファイル)は今後、フォームでの設定からメインメニューの一括処理に移していくかも知れません。

動作確認をして今回の実習は終了しましょう。
 
   
         
    前のページへ    
    ホームページへ