(現在 過去ログ83 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■12490 / inTopicNo.1)  特定の条件時に入力禁止したい
  
□投稿者/ ねこ -(2020/07/01(Wed) 15:10:08)
    桐初心者です。

    桐10Sを使用しています。

    区分1 区分2 区分3 の3項目が有ります。

    区分1若しくは区分3のどちらかが定義されている時
    区分2に入力出来なくする方法は有るでしょうか?

    行制約式を使えば出来るのではと思い、色々調べて試してみたのですが
    上手く行きませんでした。

    宜しくお願いします。
引用返信 [メール受信/OFF] 削除キー/
■12491 / inTopicNo.2)  Re[1]: 特定の条件時に入力禁止したい
□投稿者/ 通りすがり -(2020/07/01(Wed) 16:36:33)
    回答じゃありません

    まずは、区分1〜3が文字列型の場合
    [区分2]の行制約式に
    #大(#L([区分1]),#L(区分2))=#L([区分1]+[区分2]) と設定してみると

    [区分1]:"あい"
    [区分2]:"う"
    では、式の左辺は3、式の右辺は3、んん???
    こうなるのは、私だけですか?
引用返信 [メール受信/OFF] 削除キー/
■12492 / inTopicNo.3)  Re[1]: 特定の条件時に入力禁止したい
□投稿者/ 今村 誠 -(2020/07/01(Wed) 18:36:37)
    ねこさんこんにちは
    > 桐10Sを使用しています。
    > 区分1 区分2 区分3 の3項目が有ります。
    > 区分1若しくは区分3のどちらかが定義されている時
    > 区分2に入力出来なくする方法は有るでしょうか?
    表にはそういう設定は出来ないので計算項目で対応するか
    イベントを使うのがいいのじゃないでしょうか。
    計算式の場合は区分2は表示専門で区分1か3に入力があったら
    未定義値を設定する。
    それとは別に入力区分2を作り条件選択関数で区分1と3が
    未定義の場合は↑を表示するようにすれば良いと思います。

    フォームはneko.wfxを開いて下さい。


neko.zip
/9KB
引用返信 [メール受信/OFF] 削除キー/
■12493 / inTopicNo.4)  Re[1]: 特定の条件時に入力禁止したい
□投稿者/ ONnoji -(2020/07/01(Wed) 19:50:11)
    > 桐10Sを使用しています。
    > 区分1若しくは区分3のどちらかが定義されている時
    > 区分2に入力出来なくする方法は有るでしょうか?
    > 行制約式を使えば出来るのではと思い、色々調べて試してみたのですが
    > 上手く行きませんでした。

    ヘルプを読んでみると、[項目制約式]と[行制約式]のどちらも、入力値のレンジ(値範囲)チェックのようですね。

    [入力値のレンジ(値範囲)チェック]と、[入力禁止]は似ているようですが、やはり違いますよね。

    ということで、ご質問の「入力出来なくする方法」というのは実現不可能だろうと思いますよ。

    老婆心ながら、

    [項目制約式]と[行制約式]のどちらでも同じですが、制約に違反した場合に表示されるメッセージを読んで、意味が判る人は本当に少ないと思いますよ。

    特に、初級者が表を操作している場合には、制約違反のメッセージを見てパニックを起こす人がいるだろうと思います。

    制約違反の入力値を削除すれば制約違反のメッセージは消えますが、

    もしも、それに気が付かないと、桐のタスクを殺すとか、パソコンの電源を強制的に落とすとか、いろいろ心配なことがあります。

    <参考>

    [項目制約式] … 項目に登録できるデータを制限する場合は、条件式を入力します。

    [行制約式]  … 表に登録できるレコードを制限するには、条件式を入力します。
            行制約式を使用すると、項目に登録できる値を他の項目値と比較したり、項目の関係を指定して矛盾するデータの登録を防止できます。


引用返信 [メール受信/OFF] 削除キー/
■12494 / inTopicNo.5)  Re[2]: 特定の条件時に入力禁止したい
□投稿者/ ねこ -(2020/07/01(Wed) 20:04:12)
    No12492に返信(今村 誠さんの記事)
    今村 誠さん

    返信ありがとうございます。

    添付ファイル作成ありがとうございます!
    今ファイルの中身を確認出来る環境では無いので、
    明日確認させて頂きます。

    親身に対応して下さりありがとうございます!
引用返信 [メール受信/OFF] 削除キー/
■12495 / inTopicNo.6)  Re[2]: 特定の条件時に入力禁止したい
□投稿者/ ねこ -(2020/07/01(Wed) 20:16:49)
    No12493に返信(ONnojiさんの記事)
    ONnojiさん

    コメントありがとうございます。

    確かに設計者以外の人が制約違反メッセージを見たら
    ビックリする可能性はありますよね、、、

    会社のマスターコード管理方法が、分かる人にしか出来ないので
    制限をかけて誰にでもマスターコード入力が可能な環境を作りたいと
    悪戦苦闘しています。

    良かれと思って制限をかける事が、想定外の状況が起こり得る事も
    頭に入れて設計するのは難しいですね。

    ただ、目的が達成出来た時はとても嬉しいと思います。

    助言ありがとうございました。
引用返信 [メール受信/OFF] 削除キー/
■12496 / inTopicNo.7)  Re[3]: 特定の条件時に入力禁止したい
□投稿者/ ONnoji -(2020/07/01(Wed) 22:26:18)
    2020/07/01(Wed) 23:06:30 編集(投稿者)
    2020/07/01(Wed) 22:57:31 編集(投稿者)

    > 会社のマスターコード管理方法が、分かる人にしか出来ないので
    > 制限をかけて誰にでもマスターコード入力が可能な環境を作りたいと
    > 悪戦苦闘しています。

    老婆心ながら、蛇足です。

     ◇ ◇ ◇ ◇ ◇

    哲学的?な、人間学的?な、システム学的?な、あるいは「ライトついてますか」的な?とか…

    「誰にでも可能な云々」というのは、対人的に考えると無理筋のように思いますよ。

    逆説ですが、もしも、誰でも出来るのであれば、最初から苦労はしないのですからね。

    全ての人がPC操作が得意なわけではありません。

    ですから、「分かる人にしか出来ないので」という苦労が発生するのですよね。

     ◇ ◇ ◇ ◇ ◇

    賢明な選択は、「適性が無いオペレータ」をクビにして、「適性が有るオペレータ」を採用・選任することです。※過激ですが…(^^ゞ

    なぜならば、非常に価値あるデータの管理を任せる人材は選別されるべきだからです。
    ※つまり、データに価値があるからこそ、この議論が発生していることを留意するべきです。

    すなわち、アプリケーション開発者側がどれだけ「適性が無いオペレータ」に対してユーザインターフェースを工夫しても常に限界があります。

    残念ながら、アプリケーション画面に対して利用者のメンタルモデルが開発者の想定と異なる場合には、「誤った認識」や「誤った操作」をします。

    しかし、これは開発者が求めているメンタルモデルが構築できない「適性が無いオペレータ」の場合には防ぎようがありません。

    従って、金銭的な価値のあるデータを操作するオペレータには、それなりの資質を要求しなければなりません。

    しかし、多くの企業の経営者や、セクションの責任者は、「コンピュータならば何とかなると」考えているので、

    「アプリケーション側で何とかしろ!」と要求すると思います。※実はこれが大問題なのですが、パワハラに屈してしまうでしょ。(ーー;)

     ◇ ◇ ◇ ◇ ◇

    私( ONnoji )の結論ですが、

    そもそも、「ヒューマン(人間)+コンピュータ(マシン)」で構築するシステムなのですから、「ヒューマン」のレベルも問われるのです。

    管理するデータに価値がなければ、データが壊れても構わないので管理者は誰でもOKで〜す。

    しかし、管理するデータに金銭に換えがたい価値があれば、データが正しく保守されなければならないので、管理者はそれなりの資質の人に任せるべきです。



引用返信 [メール受信/OFF] 削除キー/
■12497 / inTopicNo.8)  Re[4]: 特定の条件時に入力禁止したい
□投稿者/ ONnoji -(2020/07/01(Wed) 23:54:43)
    2020/07/02(Thu) 00:14:05 編集(投稿者)
    2020/07/02(Thu) 00:05:36 編集(投稿者)

    表(.tbx)を表編集するのは、「適性がないオペレータ」には無理だと思いますよ。

    そこで、表(.tbx)にフォーム(.wfx)をラップしてあげる(つまりフォームにする)のがベストだと思います。

    その際には、オペレータさんには、フォーム上でとりあえず好きなように入力してもらい、

    [登録]ボタンを実行した時に、エラーチェックをして、エラーがあればマスタ更新へ進まないでフォームへ戻る。

    エラーが無ければ、マスター更新をするというアプローチが一般的だと思います。

    従って、直接マスタをフォームの編集対象表にするのではなく、

    マスタから書き出したテンポラリな表(.tbx)をフォームの編集対象表にするのがベストです。

    そうすれば、[登録]しないで[キャンセル]するのもとても簡単になります。

    いずれにしろ、マスタを直接編集するのではなく、テンポラリなデータを編集して、

    ・[入力]→[登録]→[エラーチェック]→[マスタを更新する]
       ↑         │
       戻る       エラーがある
       └───←─────┘

    ・[入力]→[キャンセル]または[×]→[マスタを更新しない]

    というようなデザインをおススメします。


    p.s.

    > オペレータさんには、フォーム上でとりあえず好きなように入力してもらい

    テキストボックスを移動するたびに、小姑のようにメッセージボックスでチェックを入れる必要はありませんよ。※これは嫌われますよ。

    どうぞ、オペレータさん、思った通りに入力してください。その方がオペレータさんも気持ちが萎縮しません。

    しかし、[登録]が実行された場合には、厳格に入力値をチェックします。

    こうすることが、オペレータさんと開発者の良好な関係を築くことになると思います。

    ※最近の通販webでの注文(オーダー)は↑のようになっていると思いますよ。

    なお、小姑のようにチェックを入れていちいちメッセージボックスを表示する代わりに、

    エラーになる入力値の前景色を赤色にすることで、メッセージボックスの代わりになります。

    また、フォームであれば、入力の際のガイドラインや注意事項をラベルオブジェクト等で表示することも可能です。※表編集では無理です。(^^ゞ


引用返信 [メール受信/OFF] 削除キー/
■12498 / inTopicNo.9)  Re[3]: 特定の条件時に入力禁止したい
□投稿者/ 今村 誠 -(2020/07/01(Wed) 23:58:41)
    ねこさんこんにちは、これは入力者が順番に移動することを期待して
    作ったに過ぎません。
    先に区分2を入力後に区分1や3を入力してもルール無視の入力値が
    確定されます。
    フォームやイベントはそんな物で結果は困った物ができあがります。

    また、桐に慣れた方は直ぐ表編集にこだわってどんなにメッセージを
    いれても我が道を行かれるでしょう。

    表での入力なら適当に3つの項目に入力させて計算式で答えを出した方が
    確実です。

    誰でも面倒なフォームを作りイベントを勉強してメニューを組む手間を
    かけても使う方がルール無視では何もしない方が利口かもしれません。
引用返信 [メール受信/OFF] 削除キー/
■12499 / inTopicNo.10)  Re[4]: 特定の条件時に入力禁止したい
□投稿者/ ねこ -(2020/07/02(Thu) 08:52:29)
    No12498に返信(今村 誠さんの記事)

    今村 誠さん

    おはようございます。

    早速ファイル確認しました。

    イメージにかなり近い物でだったのでイベントの定義を見たら
    今の私には難しい内容でした。
    しかし、新しい知識ですので理解し実際に自分でも
    組立出来るように切磋琢磨します!

    今回初めて掲示板に投稿しましたが、暖かい対応をしてくださり
    本当に感謝の気持ちで一杯です。

    有難うございました。
引用返信 [メール受信/OFF] 削除キー/
■12500 / inTopicNo.11)  Re[5]: 特定の条件時に入力禁止したい
□投稿者/ ONnoji -(2020/07/02(Thu) 11:19:01)
    2020/07/02(Thu) 12:32:36 編集(投稿者)
    2020/07/02(Thu) 11:31:15 編集(投稿者)
    2020/07/02(Thu) 11:20:13 編集(投稿者)

    添付ファイルを解凍すると、

    sampleマスタメンテナンス.tbx
    sampleマスタメンテナンス.WFX
    sampleマスタメンテナンス.kex
    sampleマスタ.tbx

    があります。

    sampleマスタメンテナンス.WFX を開いてください。

    なお、工期短縮のために、[新規]の機能しかサポートしていません。

    あくまでも雰囲気を感じていただくためのサンプルですので、サンプルを改造するための質問はご遠慮ください。

    ※当方が僅か数時間で作成した内容なのでご了承ください。

     ◇ ◇ ◇ ◇ ◇

    添付のイベントファイル(.kex)の内容は、上級者には難しいものではありませんが、

    初級者の人が見るとメマイがする位に難しく見えると思います。

    しかし、それはイベントファイル(.kex)のプログラミングに慣れていないからであって、

    慣れてしまえば容易に理解できるものです。

    サンプルには超絶技法の類は一切使っていませんので、じっくり読めば必ず判るはずですよ。

    それでは、さようなら(@^^@)/~~~

    グッドラック!。

    p.s.

    書き忘れたので追加します。

    この添付ファイルは数日後に削除しますので、ダウンロードはお早めに願います。

    ■sampleマスタメンテナンス.wfx

     フォーム
     ├ ファミリ
     ├ ワークスペース
     │ ├ tタイトル
     │ └ cmd訂正モードへ遷移
     ├ フォームヘッダ部
     │ ├ cmd新規
     │ ├ cmd修正
     │ └ tID
     │   └ aID
     ├ フォーム明細部
     │ ├ txt名称
     │ │ └ lbl名称
     │ ├ txt諸元
     │ │ └ lbl諸元
     │ ├ txt区分1
     │ │ └ lbl区分1
     │ ├ txt区分2
     │ │ └ lbl区分2
     │ ├ txt区分3
     │ │ └ lbl区分3
     │ ├ txt備考
     │ │ └ lbl備考
     │ ├ cmd登録
     │ └ ラベル_21
     └ フォームフッタ部
       └ cmd作業終了

    ■sampleマスタメンテナンス.kex

    名札 メイン

    cmd新規Click
    └ prcデータクリア

    cmd修正Click

    cmd登録Click
    ├ prcエラーチェック
    ├ INFprcMsgYesNo
    └ prcデータクリア

    prcエラーチェック

    cmd作業終了Click

    prcデータクリア

    INFprcMsgOKCancel

    INFprcMsgPause

    INFprcMsgYesNo


引用返信 [メール受信/OFF] 削除キー/
■12501 / inTopicNo.12)  Re[6]: 特定の条件時に入力禁止したい
□投稿者/ ねこ -(2020/07/02(Thu) 11:32:06)
    No12500に返信(ONnojiさんの記事)

    ONnojiさん

    こんにちは。

    添付ファイルありがとうございます。
    早速ダウンロードさせて頂きました。

    勉強させて頂きます。

    初めての投稿でしたが、皆さんが暖かく対応して下さり
    感動しております。

    他の人がどんな表やフォーム、イベント等を設計しているのか
    触れる環境ではないので、とてもありがたいです。

    自分自身のスキルアップに繋がる様切磋琢磨させて頂きます。

    本当に有難うございました。
引用返信 [メール受信/OFF] 削除キー/
■12502 / inTopicNo.13)  Re[7]: 特定の条件時に入力禁止したい
□投稿者/ ONnoji -(2020/07/02(Thu) 11:41:23)
    > 他の人がどんな表やフォーム、イベント等を設計しているのか
    > 触れる環境ではないので、とてもありがたいです。

    桐のフォーム+イベント処理によるアプリケーション開発は難しいものではありません。

    もちろん、難しくないと言っても、例えば VBA や VB や Java と比べればですが…。

    フォーム+イベント処理に関しては、以下の拙作HPを是非ご覧ください。

    桐の釣魚大
    http://silicon7565.html.xdomain.jp/

    特に、

    フォームアプリケーション教書 第1部
    フォームアプリケーション教書 第2部

    は、フォーム+イベント処理の参考になると思います。

    また、ダウンロードページも用意してあります。

    拙作のユーティリティもダウンロード出来ますよ。

    p.s.

    > 早速ダウンロードさせて頂きました。

    了解しました。

    用が済んだので添付ファイルは削除いたします。


引用返信 [メール受信/OFF] 削除キー/
■12504 / inTopicNo.14)  Re[1]: 特定の条件時に入力禁止したい
□投稿者/ ONnoji -(2020/07/04(Sat) 12:23:40)
    2020/07/04(Sat) 18:07:46 編集(投稿者)
    2020/07/04(Sat) 12:47:32 編集(投稿者)

    > 桐10Sを使用しています。
    > 区分1若しくは区分3のどちらかが定義されている時
    > 区分2に入力出来なくする方法は有るでしょうか?
    > 行制約式を使えば出来るのではと思い、色々調べて試してみたのですが
    > 上手く行きませんでした

    制約式は、設定したその人自身には、違反メッセージの意味が理解できますが、

    オペレーションを任された人には理解できない場合があると思います。

    なので、当方は制約式の代わりにエラーに該当する項目値を赤色等で警告するようにしています。

    サンプルの表を添付します。

    入力した値が赤くなるので、すぐに入力ミスに気が付きますよ。

    お試しあれ。

    エラーを文字の色で警告する.tbx

     項目番号 項目名 データ型
     1     ID   文字列
     2     名称  文字列
     3     諸元  文字列
     4     区分1 文字列
     5     区分2 文字列 ←┐
     6     区分3 文字列  │
     7     備考  文字列  │
                   │
                   │
            区分2の[項目の表示条件] ※以下参照

    1.任意の行の[区分2]にカーソル移動する
    2.表編集のメニューバーの[属性]メニューの[項目の表示条件]を選ぶ
    3.[項目の表示条件]ダイアログの[条件編集]タブを選ぶ
    4.[新規行(I)...]を実行して以下のように設定する

      条件式(A): ( #trim( [区分1], 3 ) <> #u .or #trim( [区分3], 3 ) <> #u )

      背景色(B): カラーパレットから赤を選択
      文字色(C): カラーパレットから白を選択

    p.s.

    なお、厳密に行うには

     × 条件式(A): ( #trim( [区分1], 3 ) <> #u .or #trim( [区分3], 3 ) <> #u ) ← [区分1]と[区分3]に空白文字があってもOKにしてあります

     ○ 条件式(A): ( [区分1] <> #u .or [区分3] <> #u ) 

    ですが、 [区分1]や[区分3]に空白文字だけが入力されていると、

    空白文字は見えないために、未入力と勘違いして混乱するので、サンプルではトリム( trim )してあります。

    さらに見栄えを重視するのであれば、

     ○ 条件式(A): ( [区分1] <> #u .or [区分3] <> #u ) .and ( [区分2] <> #u )

    がよいかもしれません。

    試してみれば分かると思いますが、どちらも一長一短です。


    > 当方は制約式の代わりにエラーに該当する項目値を赤色等で警告するようにしています。

    もちろん、エラーチェックは作業の最終段階で行っていますよ。

    ここで紹介した方法は、あくまでも誤入力を防止するための方法であって、入力の制約でもエラーチェックでもありませんよ。




引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -