テーブルジェネレータやフォームジェネレータを作っている時の話。エクセルで編集したフィールド定義に従って、テーブルや関連メソッド、関連フォームまで自動生成してしまおう、という構想だ。そもそもこういう使い方は4D社の想定範囲外らしく、何が起こっても自己責任、ということは承知で始めた。開発の途中では、試行錯誤のSQL文を実行したり、生成しきれていないフォーム(.4DForm)を開こうとしたり、ということは日常茶飯事だ。そこで事故が起きる。
この事故は発生したときにはわからない。ストラクチャーファイルを開き直したときに、次のようなメッセージが表示されることで気づく。
プロジェクトモードではソースはすべてテキストファイルで保存されているため、以前バイナリモードのときのようにストラクチャファイルが壊れる、ということはないはず。なのに、不条理なSQL文を実行したり、ファイルフォーマットが間違っているフォームを作ったりしていると、壊れた状態になることがあるようだ。ソースやフォームはテキストファイルなので、それらを開いてみるとソースが消えてはいないが、プロジェクトファイルを開いてエクスプローラで見るとメソッドが一覧に表示されない、のであせる。
これへの対処方法がカタログファイルの再作成。やってみたらうまくいったので備忘録としてここに記す。実績はv20。
手順:
壊れたストラクチャ(A)を閉じてから以下の手順を実行。
1.4D v20を起動
2.新規プロジェクトを作成
catalog.4dcatalogができる。これを(B)とする。
3.壊れたプロジェクトのcatalog.4dcatalogを(B)に差し替える
4.Option-Keyを押しながら(A)を4D V20で開く
データファイルを選択するダイアログが表示される。
5.新規データファイルを選択
これでエクスプローラを開くと、メソッド一覧が表示される。
新規データファイルはそのまま使ってもいいし、元のデータファイルに戻してもいい。