みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
仕入伝票ファイルを作成したのですが、
構成は
・仕入伝票テーブル
・詳細テーブル
仕入伝票のID(自動採番)で詳細テーブルとリレーションを結び、
ポータルで詳細テーブルに品名を入力しています。
現在のこの仕入伝票フォームを開くと、自動的に新規となりレコードが追加されるのですが、
これを登録ボタンなるものを押さないと新規レコードが追加されないような仕組みにするには、
どのような方法があるのでしょうか?
よろしくご教授をお願いします。
環境:FM12, Win7
ポータルの1行目にカーソルを入れて入力したら関連レコードが作成されるではなく、
仕入伝票フォームというレイアウトを開く度にレコードが増えるのでしょうか?
Offline
ファイルオプションのスクリプトトリガが設定してあるくらいしか・・・
Offline
ご返信ありがとうございます。
Mozさんのご指摘通りです、伝票フォームが開くと新規レコードとなります。
登録用のグローバルフィールドで作成する方法しかないのでしょうか?
レイアウトが開かれた瞬間にレコード作成されるとすると
旅人さんが書かれているようにスクリプトトリガが設定されているくらいしか考えづらいですね。
参考までに
「仕入伝票フォームを開く」とは具体的にどういった操作をされているのでしょう?
ファイルを開くところからの手順です。
Last edited by Moz (2014-04-14 15:43:17)
Offline
Mozさん、ありがとうございます。
説明足らずで申し訳ありませんでした。
構成は
・仕入伝票テーブル
・詳細テーブル
仕入伝票のID(自動採番)で
詳細テーブル側の仕入伝票IDとリレーションを結び(このリレーションでレコード作成を許可)、
ポータルで詳細テーブルに品名を入力しています。
仕入伝票テーブル側の入力票からの新規作成ボタンで仕入伝票への新規レコード作成としています。
>仕入伝票テーブル側の入力票からの新規作成ボタンで仕入伝票への新規レコード作成としています。
レイアウトを仕入伝票に変更したら新規レコードが作られるのなら
レイアウトにOnRecord Enterトリガが設定してあって新規レコード作成スクリプトが指定
してあるのでしょう。
横からすみません。
ボタン等関係なく、レイアウトを切り替えたらとにかく問答無用でレコードが新規作成されてしまうのか、
新規作成ボタンを押すと内容を入力する前に新規レコードが作成されて伝票IDが自動採番されてしまうのでそれが嫌なのか、
どちらでしょう?
現在のこの仕入伝票フォームを開くと、自動的に新規となりレコードが追加されるのですが、
これを登録ボタンなるものを押さないと新規レコードが追加されないような仕組みにするには、
どのような方法があるのでしょうか?
登録用のグローバルフィールドで作成する方法しかないのでしょうか?
仕入伝票のID(自動採番)で
詳細テーブル側の仕入伝票IDとリレーションを結び(このリレーションでレコード作成を許可)、
ポータルで詳細テーブルに品名を入力しています。
仕入伝票テーブル側の入力票からの新規作成ボタンで仕入伝票への新規レコード作成としています。
とのことなので、
新規作成ボタン→内容入力→登録ボタン→新規レコードを作成(この時点で伝票ID採番)して入力内容を反映
というのを登録用のグローバルフィールドを作成する以外にできないかと言われているような気がしますが。
新規作成ボタン→内容入力→登録ボタン→新規レコードを作成(この時点で伝票ID採番)して入力内容を反映
というのを登録用のグローバルフィールドを作成する以外にできないかと言われているような気がしますが。
こちらであれば、レイアウト設定で「レコードの変更を自動的に保存する」をオフにして、
伝票ID採番が入力値の自動化シリアル値を利用しているなら確定時に変更すると
レコード作成して入力を行っても最後のダイアログで確定しなければ採番もされずレコードも作成されないですが如何でしょう?
登録ボタンとして作ったボタンにレコードの確定を設定すれば操作的にも似ていますし。
Offline
Mozさんの方法を参考にやってみました。
このとき、フィールド「伝票ID」のオプションで、入力値の自動化でシリアル番号を”確定時”に設定すると、仕入伝票のヘッダーを入れてから
ポータルに移る際に次のメッセージが出てポータル行に移れません。
(仕入伝票の)「伝票ID」に有効な値が入力されていないため、このフィールドを修正することができません。
おそらく、リレーションの主側の値が決まらないので、従側のレコードができないのだと思われます。
対策として、入力値の自動化を”作成時”に設定すると、ポータルに移れますが、その時に登録をキャンセルすると、伝票IDに空き番が生じます。
どなたか、空き番を生じさせずに採番する方法をご教示願えないでしょうか。
スタンドアロンじゃないですよね。
IDを取得した後キャンセルする前に他の人が既に次の番号を取得してるかもしれないので、根本的に無理。
連番が必要ならID以外に連番のフィールドを作る。
Pages: 1
[ Generated in 0.005 seconds, 10 queries executed - Memory usage: 526.02 KiB (Peak: 546.56 KiB) ]