みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
OS:[MacOS 10.10.5]
FileMaker Ver:[13]
はじめまして。よろしくお願いします。
画像を管理するためのデータベースを作成しています。
大量にあるため、フォルダを選び、一括インポートさせます。
自動入力でユニークIDを作成しています。
アルファベット、日付、シリアル番号(連番)を繋げたものです。
そのシリアル番号を
毎月1日に0001に自動でリセットされるようにしたくて
調べたものを真似し、自己リレーションというものにしました。
そこで困ったことになりました。
手動で新規レコードを作成するとシリアル番号は+1になるのですが
一括インポートだと+1にならず、すべて同じになってしまいます。
それが0001だとすると、
次に一括インポートしたものはすべて0002になります。
一括インポートで、
シリアル番号を連番で、毎月自動でリセットさせるには
どうしたら良いでしょうか?
シリアル番号フィールドの計算値は以下です。
SerialIncrement ( "0001" ; Max ( コンテンツ管理_自己リレーション::シリアル番号 ))
___
長くなり申し訳ないのですが、一応私がどれほど初心者かと申しますと
例えば「値を返す」「値を戻す」などの用語を理解するのに時間がかかり、
「リレーション」になると調べても、いまいち理解できていないです・・・。
Adobeのソフトには慣れています。
Offline
[インポート中、入力値の自動化オプションを実行する] のオプションが選択されていない、のではありませんか?
Offline
Hiro様、ご返信ありがとうございます。
インポート時のダイアログを確認したのですが
[インポート中、入力値の自動化オプションを実行]にチェックを入れていました。
シリアル番号以外にファイルパスも自動入力にしていて
そちらの方は問題ないです。
引き続き、どうぞよろしくお願いいたします。
Offline
管理するために、月等に関係ない、完全な通し番号のシリアル値の番号を持たせ、表示用に月毎のシリアル値を計算で与える、という考え方に変えた方が簡単でしょうね。
シリアル値は、自動入力のシリアル値にします。(後編集させない)
表示の様の月毎シリアルは、月で自己同一、上のシリアル値で自身以下への比較条件にしたリレーションを張り、該当レコードをカウントすればいいです。それに月情報を追加しておけば良いのでは。
インポートされたレコードは、インポートが終わるまでは参照対象にならない様です。従って、上の計算式での自動入力は、インポートが始まった時のシリアル値を参照しますので、そのような動きになるのでしょう。
Offline
Shin様、ご返信いただきありがとうございます。
教えていただいた改善策を試みたのですが、分かりそうで分からなかったです。すみません。
原因は理解できました。
「シリアル値は、自動入力のシリアル値にします。(後編集させない)」は分かります。
「月で自己同一」というのは、
年月日を、シリアル値とは別のフィールドでそれぞれ作成し
自己リレーションにしていますが、このことですか? 年月日は、実際に運用する段階で年月に変更します。
「月で自己同一、上のシリアル値で自身以下への比較条件にしたリレーションを張り、該当レコードをカウント」
について、計算式など具体的にどうすれば良いのかお教えいただけないでしょうか。
「リレーション」は、“張る”という表現を使うのですね。勉強になります。
Offline
「インポート中、入力値の自動化オプション」をオフにして
インポート直後に対象レコードをその式で全置換してみては?
Offline
旅人様、ご返信いただきありがとうございます。
お教えいただいたやり方は、2点の理由で避けたいです。
シリアル値のみのフィールドを表示させる必要がありますか?
もしそうですと、ユニークIDに含まれるシリアル値と重複してしまうので表示させたくないです。
また、実際に運用するのは同僚ですが、パソコンの操作が得意とは言えないので
できる限り感覚的に操作できるよう、
最初の一括インポートの時点で自動入力させたいです。
わがままですみません。
「インポート中、入力値の自動化オプション」をオフにすると
シリアル値以外の、日付とファイルパスも自動入力されず、手間が増えそうというのもあります。
とは言え、置換というものをお教えいただいて初めて知ったので一応やってみたところ
SerialIncrement ( "0001" ; Max ( コンテンツ管理_自己リレーション::シリアル番号 ))
で置換すると、すべて0001になってしまいました。
「その式」というのは上記ではないのでしょうか? いろいろ間違っているのかもしれません。
置換の場合、式をコピペしてもらうのではなく、
次の値と増分を指定する方が手間は変わらず、分かりやすいかもと思いました。
Offline
レコードIDのフィールドを作り、
自己リレーションを
年月 = 年月
and
レコードID > レコードID
レコードIDの降順でソート指定
として、
インポート後にユニークIDフィールドの全置換で
SerialIncrement ( "0001" ; 自己リレーション::ユニークID )
としたらいかがでしょう。
Offline
>日付とファイルパスも自動入力されず
ファイルパスは自動入力ではないですよね。
インポートはスクリプトではないのですか?
idごとに連番シリアルが付く簡易サンプルです。
インポートボタンを押すと、現在の対象レコードをエクスポートして
再度インポートし連番を全置換で付け直すという簡易版です。
http://pupld.net/21/161213/vcrgd44dyw/index.cgi
Offline
勝手にシリアル番号がつくサンプルです。後の削除が無い事が前提です。
https://www.dropbox.com/s/m020zlq0sicji … 2.zip?dl=0
Offline
みなさま
いろいろご教授くださり本当にありがとうございます。
Shin様
いただいたサンプルを真似てみましたら、うまくいきました。
ありがとうございます!
できれば、削除した番号が欠番になるようにしたいのですが、可能でしょうか?
欠番なしで詰めていくことにどのようなリスクがあるか
実際に動かしてみないとはっきりしないのですが
なるべくなら避けたい気がしているのです。
旅人様
ファイルパスは自動入力です。
インポートは、ファイル→レコードのインポート→フォルダ
で、フォルダを選んでいます。
いただいたサンプルは、今回希望するものとは少し違ったのですが
勉強になります。ありがとうございました。
Last edited by アタリ (2016-12-14 11:13:24)
Offline
ファイルパスってインポートではないのですか?
Offline
ファイルパスってインポートではないのですか?
インポート時に、ファイルパスを該当のフィールドに割り当てています。
Offline
それは自動入力ではないですね。インポートです。
Offline
Pages: 1
[ Generated in 0.009 seconds, 11 queries executed - Memory usage: 550.54 KiB (Peak: 571.45 KiB) ]