メインコンテンツへスキップ

ファイル名指定の式が誤っている

コメント

19件のコメント

  • dai

    文字列内に日付型が入ってます。

    ’%Desktop%’&trim(BB)&dstr(date(),'YY-MM-SS')&'見積書.pdf'
    の様に日付を文字列に変換してあげる必要があります。

  • yamamoto

    daiさん、コメントありがとうございます。

    日付を文字列にということは数値なども文字列に変換する必要があるのでしょうか?

  • dai

    文字列しか結合することはできませんので
    全て文字列に変換しなければいけませんね。

  • yamamoto

    daiさんコメントありがとうございます。

    そういうことなのですね!

    初めて使ってみたので勉強になりました。

    ありがとうございました!

  • yamamoto

    daiさん何度も申し訳ないのですが、数値の文字列化はどのようにすればよいでしょうか?

    Str(Trim(BB),'######')で入力すると式適用されませんでした。

    Str(BB,'######’)であれば式適用はされましたが実際のファイル名に載ってきませんでした。

    恐れ入りますがご教示願いたいです。

  • dai

    BBが数値とするならばtrim関数を使われているのがエラーになっているのかと思います。

    trimで空白を除外するのであれば

    trim(str(BB,'######'))
    上記の様にまず文字列にした後にその文字列をtrimで囲む様にするとよいかと思います。

  • yamamoto

    daiさん、早速試してみました!

    無事に式適用はされたのですがやはり、実際のファイル名には載ってきませんでした。

    デバッグモード等でもう一度見てみようと思いますが他に注意点はございますか?

  • dai

    では一度見積番号に何が入っているか確認するために

    ’######’の部分を’6P0’として0で穴埋めしてみてはどうでしょうか。

  • マグル

    以下の呪文で実行できますか。

    式:Translate('%TEST%')&Str(A,'#####')&DStr(Date(),'YYYYMMDD')&'見積書.pdf'

    なんとなく、論理名が変換されていないのかと思います。

    見積番号に12345を入れて実行した結果です。

    ルーモス。

  • nkmt

    山本さんは
    '%Desktop%' にしてますが、

    マグルさんが書いてある
    Translate('%Desktop%')の方がいいと思います。

    あと
    簡単なオンラインPGを作って
    Translate('%Desktop%')
    がどんな値を返すか確認もした方がいいかもしれません。

     


    伝票番号は
    daiさんのおっしゃるSTR(伝票番号,'5P0') 又は
    Trim(STR(伝票番号,'5'))ですかね。

  • yamamoto

    daiさん、マグルさん、nkmtさんコメントありがとうございます。

    早速試してみましたが結果は以下の通りでした。

    ①Translate('%Desktop%')&Trim(Str(BB,'######'))&DStr(Date(),'YYYY-MM-DD')&'見積書.pdf'

    →伝票番号表示されず

    ②Translate('%Desktop%')&Trim(Str(BB,'6'))&DStr(Date(),'YYYY-MM-DD')&'見積書.pdf'

    →伝票番号表示されず

    ③Translate('%Desktop%')&Trim(Str(BB,'6P0'))&DStr(Date(),'YYYY-MM-DD')&'見積書.pdf'

    →6桁の0が表示された

    見積書内で同じBBを使用している伝票Noがあるのですが、そちらは番号がきちんと表示されていました。

    また、デバッグモードでデータの入り方等をしっかり見てみます。

     

    >簡単なオンラインPGを作って
    >Translate('%Desktop%')
    >がどんな値を返すか確認もした方がいいかもしれません。

    変換はされているようでした!

    他にお気づきの点などありましたら、ご教示頂きたいです。よろしくお願い致します。

  • nkmt

    Translate('%Desktop%')で表示される内容は差し支えなければ教えてください。
    伝票番号表示されず というのがどういう事なのかわかりませんが、
    もしかすると
    Translate('%Desktop%')&     '¥'        &  Trim(Str(BB,'6P0'))&DStr(Date(),'YYYY-MM-DD')&'見積書.pdf'
    が必要だったりしませんでしょうか?
    PDFファイルを生成するPGにしたいのですか?

  • yamamoto

    nkmtさん、コメントありがとうございます。

    伝票番号が表示されないのはファイル名に載ってこないという意味になります。

    Translate('%Desktop%')&     '¥'        &  Trim(Str(BB,'6P0'))&DStr(Date(),'YYYY-MM-DD')&'見積書.pdf'
    試してみました!

    結果伝票Noは6桁の0になりました。本来であれば1192が入ってほしいと思っています。

    PDFファイルの生成はできているのですが、自動でファイル名を指定したいと考えております。

  • nkmt

    私が¥を挟んだ方がいいのではと書いたのは不要でした。

    もしかすると
    入出力ファイル(PDFファイル)を定義しているタスクで
    R.見積HD.見積番号 のテーブルも開いていませんか?

  • nkmt

    もしかすると今の作りのままでも
    INIファイルの
    IOTIMING=O 改め
    IOTIMING=Iに変えるだけで解決する・・・・
    かもしれません。

  • yamamoto

    nkmtさん、コメントありがとうございます。

    入出力ファイルの定義をしているタスク内のデータビューでR.見積HD.見積番号 のテーブルを開いています。同じタスク内で一緒に開くと片方しか反映されないとかでしょうか?

    印刷バッチ内全てのタスクでR.見積HD.見積番号を開いてしまっているので別のタスクで変数に入れるとかすれば出来ますかね、、、。一度試してみます。

    試しにIOTIMING=Iへ変更しましたが変わりはありませんでした。

    そもそもIOTIMING=Iという設定はどのような機能になるのでしょうか?

  • nkmt

    入出力ファイルを定義しているタスクが動いた時点で
    入出力ファイルであるPDFの名前も決定されると思います。

    見積ヘッダーファイルのオープン、読み込みは、その後なので
    現状だと見積番号が0になってしまうPDFとなっているんだと思います。

    IOTIMIGは入出力ファイルを開くタイミングの設定です。

    私も得意先別請求書PDF生成 & 印刷プレビューを兼ねるPGを作るなどして
    IOTIMIG=Iが役立っています。 ヘルプにも載っています。
    フォーラムにも記事があるかもしれません。

  • nkmt

    入出力ファイルの定義してあるタスクよりも前に
    ファイル名を構成する項目は出揃っている必要があると思います。

  • yamamoto

    nkmtさん、コメントありがとうございます。

    今まで印刷&プレビューで困ったことがなかったので、すごく勉強になりました。

    理屈は分かったのですが、組み込むのは難しそうです、、、。

    試行錯誤して頑張ってみます!

    本当に勉強になりました。

    nkmtさん、daiさん、マグルさんありがとうございました!

サインインしてコメントを残してください。