(現在 過去ログ70 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■10661 / inTopicNo.1)  作業フォルダーの移動
  
□投稿者/ けんじ -(2017/09/03(Sun) 22:48:59)
    まだ桐に触れて1ヶ月ちょっとの者です。不勉強でお恥ずかしいのですが、ネットを探しても希望の情報を見つけられなかったため質問させて下さい。

    社員管理システムのようなものを作成中です。いずれ完成したら職場のサーバーにコピーして複数台のPCで作業できるようにしたいと考えています。

    しかし、良く分からないまま作業を進めてしまった私が悪いのですが、ふと気がついたら私が作ったシステムは私が作業したフォルダー構造でしか動作しないことに気がつきました。表引き表のパスや、イベントに記述した表ファイルのパスは絶対パスなのでフォルダが変わってしまうと当然機能しないですよね。

    桐では、もし作業フォルダーを移動したければ、手作業で全てのファイルパスを書き換えるのが一般的な方法なのですか?
    もしそうであればどうにもミスが多発しそうですし、膨大な作業になりそうで憂鬱です。

    ちなみに私が作業フォルダーと言っている場所のパスは
    D:\オーナー\Documents\Kiri10\Data\社員管理システム
    です。

    職場のサーバーはネットワークから
    \server\共有フォルダ\
    のような感じだったと思います。

    ですので当然\server\共有フォルダ\社員管理システムに変わってしまうとシステムは動作しないと思ったのです。
    なにか作業フォルダーを簡単に移動する良い方法は無いものでしょうか。

    教えて頂けると助かります。
    長文失礼致しました。
引用返信 [メール受信/OFF] 削除キー/
■10662 / inTopicNo.2)  Re[1]: 作業フォルダーの移動
□投稿者/ 尾形 -(2017/09/04(Mon) 09:07:13)
    どうも、こんにちは

    桐関係のファイル、表・フォーム・レポート・結合表・イベント
    といったファィルは、全て同じフォルダに置くのが簡単です。
    そうしておくと、パスは特に意識しなくていいかと思います。

    慣れてきたら、パスを変数で管理したり、色々とできますが


    > 完成したら職場のサーバーにコピーして複数台のPCで作業
    こちら(共有)の方がかなり癖がありますので
    色々と作り込む前に、テスト的な事される事が
    おすすめかと思います


    >手作業で全てのファイルパスを書き換える
    コマンド編集画面でも、置換が使えます


引用返信 [メール受信/OFF] 削除キー/
■10663 / inTopicNo.3)  Re[1]: 作業フォルダーの移動
□投稿者/ ONnoji -(2017/09/04(Mon) 09:58:29)
    > 桐では、もし作業フォルダーを移動したければ、手作業で全てのファイルパスを書き換えるのが一般的な方法なのですか?
    > もしそうであればどうにもミスが多発しそうですし、膨大な作業になりそうで憂鬱です。

    絶対パスをリテラルな文字列で記述していれば、当然手作業で直すしかないでしょうね。

    対策として#変数( )関数を使って変数でファイル名を指定していればなんとかなるか?

    こちら
     ↓
    >10623 / 親階層)  共通変数
    >□投稿者/ oyaji -(2017/08/04(Fri) 00:01:36)
    http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=all&namber=10623&type=0&space=0&no=0

    しかし、理屈的には変数の値が正しくなければ、正しく動作しませんし、
    そもそも、そのような設定が可能なのか否か、私は試したことがないので不明です。

    試さない理由は、保守が面倒になると予想されるからです。

    これは、複雑な設定をするよりも、シンプルな設定の方が断然優るからです。


    > ちなみに私が作業フォルダーと言っている場所のパスは
    > D:\オーナー\Documents\Kiri10\Data\社員管理システム
    > です。

    直感的には…

    現在の、表ファイル・フォームファイル・イベント処理を、
    D:\オーナー\Documents\Kiri10\Data\社員管理システム にコピーする。
    ※元のファイルはバックアップになるので移動しないで複写すること。
    ※変更が終わってバックアップが不要になったら削除してもよい。

    複写した表ファイル・フォームファイル・イベント処理に記述されている絶対パスを削除する。

    面倒ですが、絶対パスをリテラルな文字列で記述したのですから、当然手作業で直すしかないでしょうね。



    > イベントに記述した表ファイルのパスは絶対パスなのでフォルダが変わってしまうと当然機能しないですよね。

    表ファイルもイベント処理と同じフォルダに存在するのだとすれば、

    表ファイルのパスは、イベント処理と同じフォルダなので、

    #一括パス名 でパスを取得できますよ。

    #一括パス名
    --------------------------------------------------------------------------------
    実行中の一括処理ファイルまたはイベント定義ファイルの保存場所を返します。
    保存場所のパス名は \ で終わります。

    (記述例)

      変数宣言 局所,文字列{ &ONEmLibraryName }
      &ONEmLibraryName = #一括パス名 + "IPS_Framework.cmd"


    <蛇足>

    #一括パス名を利用する場合には、ファイル名をリテラルな文字列で記述するのは無理なので、
    文字列型変数にファイル名を代入して使います。



    > ふと気がついたら私が作ったシステムは私が作業したフォルダー構造でしか動作しないことに気がつきました。
    >
    > 表引き表のパスや、イベントに記述した表ファイルのパスは絶対パスなのでフォルダが変わってしまうと当然機能しないですよね。

    絶対パスで

    ・表引き表
    ・フォームの編集対象表
    ・フォームのイベントファイル

    を記述してしまうと、
    アプリケーションを他のPCへ移植した場合、当然ながら問題が発生します。

    私は、すべて同じフォルダにしていますので、パスは一切記述していません。

    つまり、

    表引き表は表と同じフォルダ。
    フォームの編集対象表はフォームと同じフォルダ。
    フォームのイベントファイルもフォームと同じフォルダ。


    <追伸>

    これらは元々同じデータベースのパーツとして扱うべき物です。
    しかし、悲しいかな桐の場合にはフォルダ単位で指定できてしまいます。
    従って、別々のフォルダに設定すること自体が不自然です。


443×333 => 250×187

1504486868.jpg
/40KB
引用返信 [メール受信/OFF] 削除キー/
■10665 / inTopicNo.4)  Re[2]: 作業フォルダーの移動
□投稿者/ けんじ -(2017/09/05(Tue) 18:11:51)
    尾形様・ONnoji様ご回答いただきありがとうございます。
    出張で不在にしておりお礼が遅くなりました。申し訳ございません。

    >桐関係のファイル、表・フォーム・レポート・結合表・イベント
    といったファィルは、全て同じフォルダに置くのが簡単です。
    そうしておくと、パスは特に意識しなくていいかと思います。

    そうだったのですね、私は普段であればファイルの種別毎にフォルダ分けなどしないのですが、今回「桐」というあまり慣れていないソフトを使うので、逆にきっちりフォルダに分けてしまっていました。レポートは各種レポートフォルダー、フォームは各種フォームフォルダーと行った具合です。きっちりしようと思ったのが裏目に出てしまいました。



    > 絶対パスをリテラルな文字列で記述していれば、当然手作業で直すしかないでしょうね。

    やはりそうなのですね、ただリテラルが分からず調べてしまいました。
    >
    > 対策として#変数( )関数を使って変数でファイル名を指定していればなんとかなるか?

    参考記事まで教えて頂きありがとうございます。まだ私にはハードルが高そうですが勉強してみます。

    > 現在の、表ファイル・フォームファイル・イベント処理を、
    > D:\オーナー\Documents\Kiri10\Data\社員管理システム にコピーする。
    > ※元のファイルはバックアップになるので移動しないで複写すること。
    > ※変更が終わってバックアップが不要になったら削除してもよい。

    これは、\社員管理システムの更に下層フォルダーのファイルをそのフォルダーから出すと言う事で宜しいのですよね。

    > 面倒ですが、絶対パスをリテラルな文字列で記述したのですから、当然手作業で直すしかないでしょうね。

    追加質問のようになってしまいますが、そのリテラルではない記述方法というのがあるのですか?
    てっきり絶対パスで書くのが当たり前だと思っていました。変数を使うということなのでしょうか。


    > #一括パス名 でパスを取得できますよ。

    こちらも記述例まで教えて頂きありがとうございます。
    #一括パス名というコマンドがあるのですね。
    該当するイベントファイル○○.kexのどこかに記述すると、パスが変数に格納されるのでしょうか。とにかくやってみます。

    また同じ過ちを犯さないためにも絶対パスでの記述以外の方法も知っておきたいのですが、私なりに調べてもみますが、アドバイスも頂けたら助かります。
    勝手なお願いばかりで申し訳ありません。宜しくお願い致します。

引用返信 [メール受信/OFF] 削除キー/
■10671 / inTopicNo.5)  Re[3]: 作業フォルダーの移動
□投稿者/ ONnoji -(2017/09/06(Wed) 09:08:58)
    2017/09/06(Wed) 09:23:00 編集(投稿者)

    > そうだったのですね、私は普段であればファイルの種別毎にフォルダ分けなどしないのですが、
    > 今回「桐」というあまり慣れていないソフトを使うので、逆にきっちりフォルダに分けてしまっていました。
    > レポートは各種レポートフォルダー、フォームは各種フォームフォルダーと行った具合です。
    > きっちりしようと思ったのが裏目に出てしまいました。
    >
    >>絶対パスをリテラルな文字列で記述していれば、当然手作業で直すしかないでしょうね。
    >
    > やはりそうなのですね、ただリテラルが分からず調べてしまいました。

    リテラルと表現したのは、値を直接書き入れたという意味です。

    >>対策として#変数( )関数を使って変数でファイル名を指定していればなんとかなるか?
    >
    > 参考記事まで教えて頂きありがとうございます。まだ私にはハードルが高そうですが勉強してみます。

    高等テクニックといえばそうですが、「策士策に溺れる」という危険性もあります。

    あえて複雑な仕掛けを構築する必要はないと思いますよ。

    >>現在の、表ファイル・フォームファイル・イベント処理を、
    >>D:\オーナー\Documents\Kiri10\Data\社員管理システム にコピーする。
    >>※元のファイルはバックアップになるので移動しないで複写すること。
    >>※変更が終わってバックアップが不要になったら削除してもよい。
    >
    > これは、\社員管理システムの更に下層フォルダーのファイルをそのフォルダーから出すと言う事で宜しいのですよね。

    レポートは各種レポートフォルダー、フォームは各種フォームフォルダーというようにフォルダを分けていたとは、
    私の想像の範囲外でした。
    前提条件が違うのでこの部分は無視してください。

    >>面倒ですが、絶対パスをリテラルな文字列で記述したのですから、当然手作業で直すしかないでしょうね。
    >
    > 追加質問のようになってしまいますが、そのリテラルではない記述方法というのがあるのですか?
    > てっきり絶対パスで書くのが当たり前だと思っていました。

    フォームの編集対象表・イベント処理ファイル
    表の値集合:表引き表

    を、すべて同じフォルダに存在するのですから、絶対パスは不要です。

    > 変数を使うということなのでしょうか。

    繰り返しになりますが、#変数( "variable" ) を使って指定できるケースは多いと思いますが、

    「策士策に溺れる」という危険性もあり、あえて複雑な仕掛けを構築する必要はないと思いますよ。

    >>#一括パス名 でパスを取得できますよ。
    >
    > こちらも記述例まで教えて頂きありがとうございます。
    > #一括パス名というコマンドがあるのですね。
    > 該当するイベントファイル○○.kexのどこかに記述すると、パスが変数に格納されるのでしょうか。とにかくやってみます。

    #一括パス名はコマンドではなく、関数です。

    桐の関数は、プリフィックス(接頭辞)として" # "が付きます。

    ちなみに、変数名にはプリフィックス(接頭辞)として" & "を付けますが、本当の変数名はプリフィックス:" & "を除いたものです。

    従って、#変数( "variable" ) の "variable" はリテラル表記ですが、この場合には文字列にプリフィックス:" & "を付けません。
    一方、#変数( &variable ) とした場合には、文字列型変数:&variable に格納されている値を変数名と認識します。
    もちろん、文字列型変数:&variable に格納されている値には本当の変数名を使うので、値に" & "を含んではいけません。


    <蛇足>

    ちなみに、桐言語を初めて知った時、関数名に#、変数名に&の接頭辞が必要なことに驚愕しました。
    そして「なんてダサイ仕様なんだろう!」と思いましたよ。
    しかし、恐ろしいことに、住めば都で、今ではこの接頭辞に慣れてしまいましたよ。



引用返信 [メール受信/OFF] 削除キー/
■10673 / inTopicNo.6)  Re[4]: 作業フォルダーの移動
□投稿者/ けんじ -(2017/09/06(Wed) 16:14:53)
    ONnoji様・尾形様のアドバイスをいただきまして、只今下層フォルダーのファイル群を1つ上の階層に出してみました。
    これで全てのファイルが同じフォルーダーになりました。

    ためしにいくつかのイベントに記載されている絶対パスを削除してみました。
    試験的にですが、作業フォルダーを移動しても動作するのが確認出来ました。

    まだ全ての作業が終わってはいませんが、おかげさま希望の結果が得られそうです。
    どうもありがとうございました。
解決済み!
引用返信 [メール受信/OFF] 削除キー/
■10677 / inTopicNo.7)  Re[5]: 作業フォルダーの移動
□投稿者/ きりぎりす -(2017/09/07(Thu) 17:31:57)
    No10673に返信(けんじさんの記事)
    もうすでに解決されていると思いますが、
    桐で扱われるファイル指定で誤解があるといけないので、ここで要望も含めて
    まとめておきます。
    フォームや一括(イベント)処理の中では相対パスでの指定が可能です。
    (例 ..\フォルダA\テーブルX.tbx など)
    厄介なのはレポートでの表の指定で".."を付けた相対パスを指定すると絶対パスに変換されてしまいます。
    また表定義の表引きなどで指定するファイル名も絶対パスになってしまいますが、
    こちらは定義表で直接相対パスを記入することで回避できます。
    いずれにせよ相対パス指定をきっちりサポートしてくれれば余計な苦労をしなくてすむんですけどね...
引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -