過去の桐井戸端BBS (桐ver.9)
25229 数行ごとに連番を振るとき誤入力しないようにしたい ホシ 2004/03/04-17:28
はじめまして、ホシと申します。
ほとんど素人で、基本的なことだったり、
まったくもって対処不可能といった質問でしたらすみません。ご教授ください。
項目を10行ごとに同じ数字で入力し、11行目からそこに1を足した数字を
また10行ずつ繰り返して入力していく、という表があるのですが、
11行目になった時点で、入力者が誤って前数値を入力してしまわないように
設定(制御)する、もしくは自動的に次数値が入力される、
といった方法はあるのでしょか。

   項目 項目・・・
1行目 1
2行目 1
3行目 1
4行目 1
5行目 1
6行目 1
7行目 1
8行目 1
9行目 1
10行目 1
11行目 2 ←この時点で「1」が入力されないようにする
12行目 2
13行目 2
 ・
21行目 3
 ・
 ・

入力日時や入力者が1行ごとに違うので、入力行がまとまってから置換といった方法以外があれば助かるのですが…。
もともとが変な表で申し訳ないです。
どうぞよろしくお願いします。
25230 Re:数行ごとに連番を振る際、誤入力しないためには Mao 2004/03/04-18:03
記事番号25229へのコメント
よく意味を理解していないで書きますが、

行追加だけでしたら

表の定義→属性→項目属性→入力→挿入初期値式

 #切り捨て((#行番号+9)/10,1)

と入力しておけば、とりあえずはご希望が叶うかと思いますが。


25239 Re:数行ごとに連番を振る際、誤入力しないためには 悲しげ 2004/03/04-20:49
記事番号25230へのコメント
#切り捨て((#行番号+9)/10,1)

だと、小数点1位まで出てしまいますよ〜。(^^;)

#切り捨て((#行番号+9)/10,0)
#int((#行番号+9)/10)
(#行番号+9)%10
#ceil(#行番号/10)

辺りでどうでしょう。

25242 連番の自動発生だけで良いかどうか。 佐田 守弘 2004/03/04-21:37
記事番号25229へのコメント
ホシさん
10個ずつ続く連番号の発生の方法は、お二人の書かれている方法を参考にして頂くとして、
それ以外の補足的な部分でコメントします。

この目的が、
>11行目になった時点で、入力者が誤って前数値を入力してしまわないように
>設定(制御)>する、もしくは自動的に次数値が入力される、といった方法

にあると思います。
特に前者の誤った数値を入力させないためであると、単に自動的に数値を発生させるだけで良いものかどうかは、
もう少し考える必要があるかと思います。
特に、御自身で入力するのではなく、他の人に入力させるのであるとしたら、
間違いをさせない方法を考えておく事も大切かと思います。

そこで思いつくままではありますが、いくつかのポイントを述べる事にします。

●自動発生させた数値は変更できなくする
連番を自動発生させても、訂正されたら入力ミスを防止できません。
訂正させない方法として次の様な方法が考えられます。
@フォームの場合:フォームの場合であれば、そのオブジェクトを使用禁止
あるいはソースを計算式にするなどで、表示はするけど入力させない様にする事が簡単にできます。
A表の場合:表に直接入力させる方法では、上記ができません。表で行うとしたら、
自動発生させる項目は非表示にしてしまい、この項目を参照する計算項目を1つ作ります。
計算項目にしておけば訂正ができなくなります。
あるいは更新禁止の設定も1つの方法です。

●小数の連番号にしておく
人間にとって、10個を一目で判断するのは難しいと思います。
そこで、
10個の整数ではなくて、小数1桁を付けた小数値にするのも1つの方法です。
例えば、「11.9」であれば、11のグループの9番目のデータであり、
次は12になるはずという事が一目で解ります。
小数部分はでき上がってから切り捨てを行ってもよいし、
印刷時に切り捨て値を印刷すれば、目的通りになります。

●先に空の行を作っておいた方が良いかどうか
通常は1行ずつ追加するのでしょうが、この場合には先に連番号だけを発生させておき、
それ以外のデータを所定の番号の所に入力させるのも1つの方法です。
先に連番号を作っておくなら、置換で行えます。
なお、フォームを使って、この番号でグループかを行えば、所定の番号だけの
入力ページで入力させる事も可能です。

佐田守弘(KS-00119)
25249 Re:数行ごとに連番を振る際、誤入力しないためには Mao 2004/03/05-08:47
記事番号25239へのコメント
悲しげさん、おはようございます。

おっちょこちょい(死語)ぶり発揮のMaoです。
またまた、有難うございました。
 
>(#行番号+9)%10 ←整数除算って言うんですね。恥ずかしながら
          初めて知りました。

25250 Re:数行ごとに連番を振る際、誤入力しないためには ホシ 2004/03/05-10:03
記事番号25249へのコメント
Maoさん、悲しげさん、おはようございます。さっそくの回答ありがとうございます。
#切り捨て((#行番号+9)/10,0)でやってみましたらできました。助かりました。
本当にありがとうございます。
いろいろ勉強していかなければいけないと痛感しました。
25251 Re:連番の自動発生だけで良いかどうか。 ホシ 2004/03/05-10:15
記事番号25242へのコメント
佐田さん、ご回答ありがとうございます。

>A表の場合:表に直接入力させる方法では、上記ができません。表で行うと
>したら、自動発生させる項目は非表示にしてしまい、この項目を参照する計算
>項目を1つ作ります。計算項目にしておけば訂正ができなくなります。
>あるいは更新禁止の設定も1つの方法です。

表で作っております。
更新禁止なら私でも簡単にできそうなのでやってみようと思います。

>●小数の連番号にしておく
>人間にとって、10個を一目で判断するのは難しいと思います。そこで、
>10個の整数ではなくて、小数1桁を付けた小数値にするのも1つの方法です。
>例えば、「11.9」であれば、11のグループの9番目のデータであり、次は12に
>なるはずという事が一目で解ります。
>小数部分はでき上がってから切り捨てを行ってもよいし、印刷時に切り捨て値
>を印刷すれば、目的通りになります。

こちらのご意見も大変参考になりました。
小数点以下を利用するというのは思いもつきませんでした。
表使用者の人たちとも確認しあいながら、みなさんの回答をもとにより良い方法をとりたいと思います。
当方の桐に対する知識のなさもさることながら、
表の定義をする前に、やりたいこと、やらなければいけないことを見つめなおす必要と、
それを実行する際のどのような方法をとるのかをしっかりと練らなければいけないと考えさせられました。
本当にありがとうございました。

戻る