過去の桐井戸端BBS (桐ver.9)
26072 備品管理簿のフォームで数字を入れるとその個数分のデータが自動的に入るようにしたい todays 2004/04/26-17:03
いつもお世話になります。
備品管理簿で入力フォームから同じ物を複数台登録する必要が有ると思うのですが、
一括処理のヘルプファイルを見てもどうすれば良いのか分かりませんでした。
もし、マニュアルに記述が有ればどこに記載されているかでも結構です。
ご教授いただければありがたいです。

やりたいことは、入力フォーム上の適当なテキストボックスに数字を入れてボタンを押せば、
表にその個数分のデータが自動で入力されるという物です。
数個であれば、行追加ー>直前行のボタンを押せばすむのですが、100台も有ると、
ちょっとということです。

よろしくお願いいたします。

26074 Re:備品管理簿でテーブル10台を入れる方 しぼうかん 2004/04/26-19:44
記事番号26072へのコメント
todaysさん、こんばんは.
テストはしていませんが以下の様なイベントでどうでしょうか。

数字を入れるオブジェクトのソースが&個数として


手続き定義開始 個数追加::マウス左クリック(・・・
&あ=[あ],&い=[い],・・・
繰り返し &実行リターン=1,&個数,1
行追加 [あ]=&あ,[い]=&い,・・・
繰り返し終了
手続き定義終了


ただ以下の部分の意味がよく分かりません。
通常はレコードを増やすのでは無くて[個数]の数字のみを増やすと思うのですが・・・


>備品管理簿で入力フォームから同じ物を複数台登録する必要が有ると思うのですが



26078 Re:備品管理簿でテーブル10台を入れる方 悲しげ 2004/04/26-22:55
記事番号26074へのコメント
もし行複写をさせたいのなら、「行退避」と「行復旧」を使う方が簡単です。
全ての項目値に対応する変数を用意する必要もないので。
以下一例。

表 "某.tbl"
表表示
*ジャンプ 行番号=最終
ジャンプ 行番号=先頭
繰り返し &秒=1,100
 行退避
 行追加
 ジャンプ 行番号=最終
 行復旧
繰り返し終了
表形式編集 ガイド="結果確認"

上記の場合は、行退避/行復旧のループに入る直前にカーソルがあった行を複写することになります。
先頭行であろうと最終行であろうとあるいはn行目であろうと。
26079 Re:備品管理簿でテーブル10台を入れる方 悲しげ 2004/04/26-23:00
記事番号26078へのコメント
補足します。
先のコメントは

  行復旧 破棄=する

を明記した方がよかったですね。
試してませんが、同じデータを複数行複写するのなら、
それこそ

  行復旧 破棄=しない

の出番なんでしょうね。

26082 表に同じないし類似データを多数入力するには 佐田 守弘 2004/04/27-00:06
記事番号26072へのコメント
todaysさん
 >備品管理簿で入力フォームから同じ物を複数台登録する必要が有ると思うのですが、
ですが、多くの場合、同じものを複数登録する場合には、1つ1行のデータにするのではなくて、
1行のデータに「何台」と台数を記載して入力する事の方が多いのではないでしょうか。

とは言え、この話は備品台帳の様なので、訳があって100台のテーブルでも1台ずつ登録してゆく必要があるのかと考えました。
この「訳があって」ですが、
・同時に購入したテーブルや椅子などでも、異なる場所に配置する事がある。
・同じ場所に配置するのであっても、破損したり廃棄する時を考えて個別に登録する。
・管理のために1台ずつ管理番号を付与したい。
などがあるのかと考えます。

であるとしたら、同じデータをN回繰り返して登録するのではだめで、例えば管理番号であれば、
1台ずつに個別の番号を付ける必要がでてきます。また、設置場所も全く同じ場所ではないかも知れません。

もし上記の事がなく、複数の物品を同じ扱いするなら、1行のデータに台数を記入して処理する方が良いと考えます。

●直前値や直前行の入力機能、あるいは一括処理で直前行をコピーした方が良い
直前の行とほぼ同じであるけど、一部変更したり、連番号は自動で付与するといった
場合には、同じデータを繰り返して登録するのではなく、1行ずつ追加しながら、
直前値入力や、直前行の入力機能を使った方が良いと思います。
表定義の中で、項目初期値式に#直前値([],"")を設定しておけば、
自動的に直前の値が入力されます。
連番号を自動的に入力するなら、項目初期値式に「#直前値([],0)+1」を設定します。

また[入力]→[直前行]を使って、直前の行と同じデータを1行入力する事ができます。
またこの機能は、コマンドボタンの機能名を使っても行えます。

この様にして、直前値ないしは直前行を複写しながら1行ずつ追加して行った方が、
結果として入力が簡単なのではないかと思います。

佐田守弘(KS-00119)
26084 Re:備品管理簿でテーブル10台を入れる方 アックン(=^・^=) 2004/04/27-08:05
記事番号26072へのコメント
todaysさん、こんにちは。
サンプルをアップしました。
行追加と行挿入の2通りのコマンドボタンを試してください。

悲しげさんが行退避・行復旧コマンドを使っていますね。ぼくのイベントもそれです。
ただこれだと、数値系項目に「未定義値」があったら、「 0 」 として複写されます。
理由は、表定義のデフォルトが「未定義値をゼロとして扱う」からです。
これが難点です。かといって、デフォルトを変更して、「未定義値は未定義値として扱う」と、
集計する際に困ったのではないかな(?)。
ですから、デフォルトのまま使う方がいいと思いますよ。

未定義値が 0 になったら困るときは、しぼうかんさんのように各項目を変数に代入する方法がいいです。
こちらの方は確実に処理できます。
(項目のデータ型と変数のデータ型を合致させる必要があります。)

26087 Re:備品管理簿でテーブル10台を入れる方 todays 2004/04/27-12:12
記事番号26072へのコメント
しぼうかんさん、悲しげさん、佐田 守弘さん、アックンさんありがとうございました。
特に、アックンさんはサンプルまで頂きありがとうございました。
佐田 守弘さんのおっしゃる通りのことをやりたいと思っています。
あるところで、物品の管理をするにあたり、物尊(物を大切にする)の考え方から、
一個一個の物をしっかり管理していこうということで、管理簿を作っていこうとしています。
現在は、入力用のフォームにコマンドボタンをつけて、それを押すと、
”ジャンプ 次行”ー>行操作 ”行挿入”ー>”入力 直前行” が実行されるようにしています。
数個ぐらいだとこれで十分なのですが、パイプ椅子等は100個程度あり、100回もボタンを押すのも、
なんだかなあ、という感じなのです。
それで例えば、入力用のフォームに個数を入れるダイアログを設けて、初期値は1として、
必要に応じてそこを変更すると、その分レコードが複写されるようにならないかなというのが、
質問させていただいた趣旨なのです。
説明が悪くて申し訳有りませんでした。
以上、よろしくお願いいたします。

戻る