過去の桐井戸端BBS (桐ver.8)
22557 伝票フォームの明細オブジェクトを行毎に入力可否としたい MK 2003/10/03-09:40
桐Ver.8 SP6 を使用しています。
伝票フォームで仕入伝票入力・訂正画面を作成しました。
問題なのは、[CODE](文字列)が "" の場合には入力可能としたく、
またMAST.TBLからの表引き項目がありますので、例えば[品名][型式]等は、
[CODE]を取得した時点で入力禁止としたいのです。
やってみたのは、ソース式に #cond([CODE]="",[品名],[CODE]<>"",#表引き([CODE],=,"mast.tbl",[CODE],[品名])) ですが、
全明細行の品名が入力禁止となります。
([CODE]が "" の行も)どなたか、教えていただけませんか。
22558 追加:伝票フォームの明細オブジェクトを行毎に入力可否としたいのですが MK 2003/10/03-09:46
記事番号22557へのコメント
>またMAST.TBLからの表引き項目・・・・
計算項目ではありません。
またすべての行を CODE 付けするわけではありません。
22564 Re:伝票フォームの明細オブジェクトを行毎に入力可否としたいのですが エゼル 2003/10/03-19:29
記事番号22557へのコメント
MKさん こんにちはエゼルと申します。
RESが付きませんね。その理由はこれだけの説明では意味が全く解らないからです。
もう少し詳しく説明してください。

>問題なのは、[CODE](文字列)が "" の場合には入力可能としたく、
>またMAST.TBLからの表引き項目がありますので、例えば[品名][型式]等
>は、[CODE]を取得した時点で入力禁止としたいのです。
>やってみたのは、ソース式に #cond([CODE]="",[品名],[CODE]<>"",#表引き
>([CODE],=,"mast.tbl",[CODE],[品名])) ですが、全明細行の品名が入力禁止
>となります。([CODE]が "" の行も)

想像を豊かに膨らませても限界がありますが・・・・・・

[CODE][品名][型式][単価]・・・・・
多分全ての品名にコードがついているわけではないのでコードがない場合も
[品名][型式]等は手入力したい?などと考えているのでしょうか?
この様な場合は項目の編集初期値に
#表引き([CODE],=,"mast.tbl",[CODE],[品名])
の計算式を設定する。
特に伝票形式のフォームでは明細行のオブジェクトは同じ属性を持っているので
明細行ごとに入力可、入力禁止の属性を持たせることは出来ないのではないでしょうか?
但しイベントにて[CODE]の値を基にして属性を変更することは可能と思われますが、
あまりにも情報が少ないのでコメントが付かないのではないでしょうか?

仕事の合間に少々時間が出来ましたので、コメント差し上げました。 
22578 Re:伝票フォームの明細オブジェクトを行毎に入力可否としたいのですが うにん 2003/10/04-00:21
記事番号22564へのコメント

>特に伝票形式のフォームでは明細行のオブジェクトは同じ属性を持っているので
>明細行ごとに入力可、入力禁止の属性を持たせることは出来ないのではないでしょうか?
>但しイベントにて[CODE]の値を基にして属性を変更することは可能と思われますが、
>あまりにも情報が少ないのでコメントが付かないのではないでしょうか?

情報が少ないというより、「明細行のオブジェクトは同じ属性を持っている」ので
簡単にはいかないからだと思います。
表示を変えるのは編集属性式でできるのですが。

入力済みのレコードで[CODE]によって入力できなくするのはレコード移動イベントと
表示専用の([項目])というソースやフォーカス設定でできましたが、新規レコードや
[CODE]が変更された場合にも禁止するにはどうしたいらできるかな?

22579 Re:伝票フォームもどき単票フォームでは エゼル 2003/10/04-02:04
記事番号22578へのコメント
うにんさん こんにちはエゼルと申します。
>
>情報が少ないというより、「明細行のオブジェクトは同じ属性を持っている」ので
>簡単にはいかないからだと思います。
>表示を変えるのは編集属性式でできるのですが。
>
>入力済みのレコードで[CODE]によって入力できなくするのはレコード移動イベントと
>表示専用の([項目])というソースやフォーカス設定でできましたが、新規レコードや
>[CODE]が変更された場合にも禁止するにはどうしたいらできるかな?
>
伝票フォームでは難しそうですね。
では、考え方を変えて単票フォームで伝票形式のフォームを作り後はデータを書き出す。
入力の表(明細行分のデータ項目を作成する。)は必要ですが・・・・・・・・・
これならばイベントにて上記の希望が可能となりますが、
しかし、そこまでやらなくてもいいかも?

22598 Re:明細オブジェクトの属性が個々のレコード内容に依存しないのはうすうす判っていたのですが・・・ うにん 2003/10/06-15:08
記事番号22594へのコメント
>>やってみたのは、ソース式に #cond([CODE]="",[品名],[CODE]<>"",#表引き
>>([CODE],=,"mast.tbl",[CODE],[品名])) ですが、全明細行の品名が入力禁止
>>となります。([CODE]が "" の行も)

これがだめな理由は、計算式に値を入力するということはできないからです。
項目名や変数名を指定すれば項目値や変数値を入力するテキストオブジェクトになりますが、
計算式を指定したら計算結果を表示することしかできません。
[CODE]のソース値更新イベントなどに、品名オブジェクトのソースを設定する式として
#cond([CODE]="","[品名]",[CODE]<>"",#表引き([CODE],=,"mast.tbl",[CODE],[品名]))
とやれば何とかなるかも?
ただし、更新された行だけでなく全部の行のソースが変わるので、レコード移動イベントなども必要です。

戻る