みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
pro14 WIN7 を使用しています。初心者です。
毎月200レコードの処理をします。
現在、日付フィールドに「平成29年1月」と入力されているのですが(グローバルフィールドではありません。200レコード全部に入力しています)
この状態で、スクリプトを組んで、一気に200レコードを複製し、日付フィールドが自動的に「平成29年2月」というように+1月で表示させたいのです。(もちろん12月の次は1月となってほしいのですが)つまり毎月200レコードづつ増えていきます。
その他のフィールドについては同じ内容が複製されることになりますが毎月入力する内容が近似していますので問題はありません
どのようにすすめたらよろしいのでしょうか?
ご教授よろしくお願いします。
Offline
>日付フィールドに「平成29年1月」と入力されているのですが
日付フィールドですよね。
省略形ではなく、実際にはyyyy.mm.ddはどのように入力しているのですか。
Offline
お返事ありがとうございます。
「平成29年1月」は日付フィールドです。インスペクタ-データの書式設定-書式その他で「年」と「月」のみを表示し、「日」は非表示させています。
日付フィールでいいものか、別に計算フィールドも作成して(計算結果を日付?)ふたつを絡めて動かしていくのかよくわかっていません。
よろしくお願いいします。
Offline
つい最近どこかでも書いたなぁ・・・
200レコードの複製は
1」エクスポートしてインポートする
2:スクリプトでLoopを使って複製する
1の方はインポートすると
複製したものだけになるので
日付のところを全置換で書き換えれば済みます。
日付のところがどういった形態のデータになっているかによりますが
1:YY年M年の形式のテキストデータなら
Let( [
$T=日付;
$L=Length($T);
$Pos=Position($t;"年";1;1);
$Y=Left($T;$Pos-1);
$M=Substitute($T;[Left($T;$Pos);""];["年";""])
] ;
$Y & "年" & $M +1 & "月"
)
2:YY/MM/DDの日付データなら
Date(Month(日付)+1;Day(日付);Year(日付)) で計算できます
Last edited by シャチ (2017-01-19 21:35:54)
Offline
失礼しました。yyyy.mm.ddですね。
2017/1/1と入力しています。
Offline
シャチ様
「YY/MM/DDの日付データなら
Date(Month(日付)+1;Day(日付);Year(日付)) で計算できます」
→なるほど、よくわかりました。ありがとうございます。
200レコード複製はインポートではなくスクリプトで考えています。
loop であれこれ試みてみます。
Offline
エクスポートとインポートをスクリプトでするのです
Offline
> Date(Month(日付)+1;Day(日付);Year(日付))
日付の日が必ず1日ならこれでもいいですが、
日が不定だと月の大小によって、これではまずい場合が有りますよね。
Day(日付)
これを1とかの、月の大小に関わらない日に固定した方がいいでしょう。
また、
これを入力値の自動化・既存値置き換えとすれば
何もしないで翌月が求められます。
Offline
給与明細かな。
それなら、元となる一覧表(従業員名簿みたいな)を作っておいて、そこから該当レコード(在職者)を抽出してインポート、日付を自動計算させるか全置換するのが良いのでは。その他のフィールドの値もコピーしたいのならば、前月にリレーション張っておいて、ルックアップすれば良いでしょう。(本来は、元データを管理するテーブルを作り、そこから同時にインポートするべきですが。)
または、年月のみのデータで良いのならば、年 * 12 + 月 -1 という数値フィールド「YM」を作っておくと、連続数値で管理できます。このフィールドから、Div ( YM ; 12 ) + ( Mod ( YM ; 12 ) + 1 ) / 100 という計算フィールドを作っておくと、2017.01 というデータに戻ります。インスペクタで小数点2桁表示にして、小数点を / に変えておくと見やすいかも。
Offline
皆様ご教授いただきましてありがとうございました。
なんとかスクリプトを作成し思い通りにうごくようになりました。
まず
変数で現在の処理月を記憶させ
Date(Month($処理月記憶)+1;Day(1);Year($処理月記憶))
これで次月表記はできました。
複製はインポートは使わずスクリプト(ループ)で作れました。
悩みが消え道が開けました。
ほんとうにありがとうございました。
またよろしくお願いいたします。
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 521.71 KiB (Peak: 526.25 KiB) ]