過去の桐井戸端BBS (桐ver.9)
23583 一括処理で別のフォルダのレポートファイルを印刷した後もとのフォルダのフォームが見つからないというエラーになる 鳴瀬 2003/11/29-19:11
フォルダAの下にフォルダBがあります。
フォルダAにある一括処理cmdから、

結合 "B\なんとか.viw"
レポート印刷 "B\とある.rpt"

は実行できるのですが、レポート印刷後、一括に戻った時点で
フォルダAにあるフォームが開けない、「見つかりません」というエラーが返ってきます。
エラーメッセージを見ると、どうもフォルダBの中にあるとして
フォームを探しているようです。
(フォームのフルパスとして"C:\A\B\開けないフォーム.frm"としてBが付加されているので)


どうして、このようになるのですか?(桐の仕様でしょうか?)
カレントディレクトリが変更されるのは、上の結合のせいでしょうか?
問題を解決にするにはどうすれば可能ですか?
(カレントをフォルダAに強制的に戻す方法は。)

よろしく、お願いします。

23584 Re:カレントディレクトリの移動 宮城 2003/11/29-20:33
記事番号23583へのコメント
鳴瀬さん、こんにちは。

相対パスを指定できないのは桐の仕様です。「データパス」というものがありまして、
「一番手前に開いている表の・・・(略)・・・パスになります。」(リファランスより。)

もっとも多く使うファイルのフォルダを「データパス」で宣言し、
それ以外のフォルダのファイルは絶対パスで記述するか、こまめにデータパスを
宣言しなおすかのいずれかでしょうね。

# フルパス記述の気持ちだけの手抜き法。フルパスファイル名を丸ごと
# 「&なんとか表」と変数宣言し代入してしまいます。
23585 Re:カレントディレクトリの移動 うにん 2003/11/29-20:36
記事番号23583へのコメント
「データパス名」コマンドを使います。

23586 Re:カレントディレクトリの移動 宮城 2003/11/30-00:44
記事番号23584へのコメント
やりずぎました。うにんさんのお書きになってるように一括処理冒頭に
「データパス名 "C:\A\",固定=する」と記述するだけで十分ですね。

23587 Re:カレントディレクトリの移動 鳴瀬 2003/11/30-08:08
記事番号23585へのコメント
宮城さん、うにんさん、ありがとうございました。

>「一番手前に開いている表の・・・(略)・・・パスになります。」
あっ、
そ、そーなんですか。
今までなんとなく動いていたので全然気にしていませんでした。
レポート印刷終了後、結合を破棄終了する
「終了 表,編集対象表」
を追加したら解決しました。

>「データパス名 "C:\A\",固定=する」
これを使用する機会を経験したことがないのですが、
作成中の一括では "C:\A" は不定です。
つまり、一括が存在するフォルダの下にある"B"というフォルダ内を
参照しながら作業することを想定しています。
("B"は固定したフォルダ名です。)
データパス名コマンドを利用(応用?)して、これに対処する工夫はありますか?
とりあえず懸案が解決したのでこれは無視してもかまいません。
23588 Re:カレントディレクトリの移動 KH 2003/11/30-09:10
記事番号23587へのコメント
鳴瀬さん、おはようございます、途中割り込み失礼します。

>作成中の一括では "C:\A" は不定です。
>つまり、一括が存在するフォルダの下にある"B"というフォルダ内を
>参照しながら作業することを想定しています。
>("B"は固定したフォルダ名です。)
>データパス名コマンドを利用(応用?)して、これに対処する工夫は
>ありますか?
>とりあえず懸案が解決したのでこれは無視してもかまいません。

 今作成中でC:\A\に一括があり、その下のc:\a\b\の中に表データや
レポート・フォームがあるという事で、完成すれば、新しい○△フォルダに写し、

     c:\○△フォルダ¥  ←一括のあるフォルダ
     c:\○△フォルダ¥B\ ←表データ等のあるファイル

という状態で処理をするということですね。

関数に#一括パス名、#データパス名で、一括処理のパス名とデータパス名を取得するものがありますから、
この内の#一括パス名を使用して、

変数宣言 固有,文字列{&datapass}
&datapass=#連結("c:\",#一括パス名,"B\")
データパス名 &datapass

とすれば、よいと思います。
以降はデータある c:\○△フォルダ¥B\ 
のパスは&datapass+ファイル名で指定できますが、

こんなことではないでしたでしょうか。


戻る