途中入力で放置されることが多い環境では、続きで入力が継続されることが少なく、それを妨げると強制終了、という強引な人も出てくる傾向ですね。
次のログイン時にも、未確定レコードがあることをアラートし、削除するか続きを入力するかを促すようにしておくのがいいかと思います。
知識があればそのように行って2重くらいの安全策を考えるのですが、今後の改良を試みています。
有難うございます。
fm_jiko wrote:ユーザーが入力を行っていて途中で時間の都合等で中断または以前入力していたことを忘れて新規で入力を開始したなどの場合です。
コレは、保存ボタンの仕様にしても解決しないのでは?
例えば、未確定フラグを立て使用者に未確定レコードがあることを明示できるようにすれば、色々も題が解決するかと...。
未完成のレコードが増えてきたらそのようにし負ければいけないと思いました。運用してみて改善してみます。
頂いた内容での改良を試みています。
貴重なご指導有難うございました。
ユーザーが入力を行っていて途中で時間の都合等で中断または以前入力していたことを忘れて新規で入力を開始したなどの場合です。
コレは、保存ボタンの仕様にしても解決しないのでは?
例えば、未確定フラグを立て使用者に未確定レコードがあることを明示できるようにすれば、色々も題が解決するかと...。
そもそもの目的は何でしょうか?中断もしくは削除してしまった時、余計なレコードが作られてしまい、レコード番号の連番が途切れてしまい、綺麗な配列にならないと気に入らないとかでしょうか?
シリアルやID/レコード番号はいくらでも振り直しが利くので対策はあります。
余計なレコードが入っていること自体嫌悪するのであれば、入力条件を満たしていないレコードを検索、削除のスクリプトステップを踏ませるボタンを作るだけで良いです。ボタンを押さなくても、このステップすら自動にする事も可能です。
きれいな配列は気にしていませんが、例えば氏名だけ、次には事項1まで、次は事項3のみ、のようにゴミみたいなレコードが増えることを懸念しています。
上記でおっしゃった通り。メンテナンス用のスクリプトを管理者用として作成しようと思っています。
また統合モデルにこだわってはいないので
分離型での設計も試しに行ってみたいっと思います。
有難うございます。
]]>カンタンな方法は、 レイアウト設定 -> レコードの変更を自動的に保存する のチェックを外します。動作を確認してみては。
また、以下のようにすると ボタンでレコード追加・確定の処理が行えます。※例は新規ウインドウで行っています。新規ウインドウを使わない場合は、関連したスクリプトを削除。
これは私が思っていたいような動作をするようです。一度これを試してみたいと思います。
有難うございます・多分途中でご協力を得るよう担うかもしれませんがよろしくお願いいたします。
カンタンな方法は、 レイアウト設定 -> レコードの変更を自動的に保存する のチェックを外します。動作を確認してみては。
新規レコードの入力を途中で中断とはどの様な状況でしょうか?
ユーザーが入力を行っていて途中で時間の都合等で中断または以前入力していたことを忘れて新規で入力を開始したなどの場合です。
]]>例えば100フィールドあったとして
テーブル仮 g_あ1 g_い1 g_う1 g_え1 ~~
テーブル保存 あ2 い2 う2 え2 ~~
とするとすべてフィールド設定でテーブル保存にレコードを一つずつ設定を行うしかないのでしょうか?
その通りです。
テーブル仮 gあ1 gい1 gう1 gえ1
テーブル保存 あ1 い1 う1 え1
フィールド構造は同じ、グローバル用のフォールドの頭に「g」を付けて変更
フィールド自体は複製すれば済みますが、フィールド名の変更とグローバルの変更は1つずつの手動になります。
スクリプトステップの「フィールド設定」も各フィールド分必要になるので大変手間のかかる作業になります。
また、グローバルフィールドの初期化なども行わなければならず、開発工程を考えると現実的ではないのかもしれません。
そもそもの目的は何でしょうか?中断もしくは削除してしまった時、余計なレコードが作られてしまい、レコード番号の連番が途切れてしまい、綺麗な配列にならないと気に入らないとかでしょうか?
シリアルやID/レコード番号はいくらでも振り直しが利くので対策はあります。
余計なレコードが入っていること自体嫌悪するのであれば、入力条件を満たしていないレコードを検索、削除のスクリプトステップを踏ませるボタンを作るだけで良いです。ボタンを押さなくても、このステップすら自動にする事も可能です。
違った目的だったとしたら、手間を惜しまずチャレンジして見るのも良いと思います。
今は単一のファイルで作成していると思います。仮テーブルと実テーブルを1つのファイル内に持たせる事も可能です。(統合モデル)※今回提案した手法
それとは別にレイアウトとスクリプトを持たせたUIファイルと、データと計算フィールドを持たせたデータファイルの2つのファイルで分けた分離モデルという手法もあります。
どうせ分けてみたいと思うのであれば分離モデルで作ってみるのも手かもしれません。
もっともスタンダードな使い方で行くのであれば、qb_dpさんの提案するアプローチで試みた方が無難だと思います。
fm_jikoさんのお求めのものは分離モデルのようでいてそうではない、サマリーデータのようでそうではない、だいぶ特殊なアプローチになってしまいます。
どんなアプローチで作るにせよ、スクリプトステップや関数でワンタッチで出来るものはありません。スクリプトステップは苦労するものです。一度完成してしまえば、後はワンタッチで使用することが出来るデータベースになります。
「物事には順序がある」って気持ちで色々考えると、スクリプトステップや新たなアイデアが浮かんできたりするので頭の片隅にでも置いておいてくださいねb
最終的にどの手法で行きたいでしょうか。
]]>また、以下のようにすると ボタンでレコード追加・確定の処理が行えます。※例は新規ウインドウで行っています。新規ウインドウを使わない場合は、関連したスクリプトを削除。
新規レコードの入力を途中で中断とはどの様な状況でしょうか?
>専門的にやっている方のご意見を頂戴したいです。
私の場合、
必要なレコードで入力途中なら、後で検索して入力を継続
不要なレコードなら、削除 (必要で入力し始めたので削除は少ないはず)
新規レコード作成時にグローバルフィールドを作成し「保存・確定ボタン」でレコード追加と言う仕様にすると、
各テーブルでカスタム新規レコード作成処理が必要になり開発作業に手間が掛かる。
編集時のUIや処理もカスタム化する必要がある。
編集時は排他処理も心配などなど...
FileMakerの仕様を受け入れて開発した方が作業が進めやすいので「保存・確定」時のみレコード作成・更新 という処理は行っていません。
手間を省く方法としては、設定するフィールド名のリストを作っておき、名前でフィールドを設定を使ってフィールドを設定していく、loopを組む、という方法でしょうか。
]]>新規のレコードにアカウントを追加した瞬間からレコードが1つ増えます。
途中で中止した場合、1つのレコードをそのまま保存したくないと言うことだと解釈できます。
、実レコードを作らないで入力作業を行ったらいかがでしょうか。入力用レイアウトを作り、フィールドを全てグローバルフィールドにして、最後に保存ボタンを押した際にグローバルフィールドの値を実データのフィールドに書き込むステップを踏ませてはどうでしょう。
※自動入力は一切使わず、全てスクリプトステップで行うものとする。
この方法ですが、当方素人のためお教えいただきたいですが、例えば100フィールドあったとして
テーブル仮 g_あ1 g_い1 g_う1 g_え1 ~~
テーブル保存 あ2 い2 う2 え2 ~~
とするとすべてフィールド設定でテーブル保存にレコードを一つずつ設定を行うしかないのでしょうか?
なにかこの作業をテーブル内容をすべて設定するものがあるのでしょうか?
もしあるのならこの関数をこんな感じでとお教えいただければ幸いです。
いずれにしても様々なやり方があるって事ですw
またの追加質問お待ちしています。
]]>それはいつまででしょうか?
そのファイルが開いている間で、
次の新規レコード作成時までなら、
変数や、グローバルフィールドが使えます。
しかし、
一度閉じて次回開いた後とか、
次に別の新規レコードを作った後で、それまでの保存が複数レコード分
となるとそれらは使えませんよね。