ファイル名指定の式が誤っている
お世話になっております。
ファイル名に下記式を入力したのですが、式が違うといわれます。

どこが違うのかわかる方いらっしゃれば教えて頂きたいです。
-
文字列内に日付型が入ってます。
’%Desktop%’&trim(BB)&dstr(date(),'YY-MM-SS')&'見積書.pdf'
の様に日付を文字列に変換してあげる必要があります。 -
daiさん、コメントありがとうございます。
日付を文字列にということは数値なども文字列に変換する必要があるのでしょうか?
-
文字列しか結合することはできませんので
全て文字列に変換しなければいけませんね。 -
daiさんコメントありがとうございます。
そういうことなのですね!
初めて使ってみたので勉強になりました。
ありがとうございました!
-
daiさん何度も申し訳ないのですが、数値の文字列化はどのようにすればよいでしょうか?
Str(Trim(BB),'######')で入力すると式適用されませんでした。
Str(BB,'######’)であれば式適用はされましたが実際のファイル名に載ってきませんでした。
恐れ入りますがご教示願いたいです。
-
BBが数値とするならばtrim関数を使われているのがエラーになっているのかと思います。
trimで空白を除外するのであれば
trim(str(BB,'######'))
上記の様にまず文字列にした後にその文字列をtrimで囲む様にするとよいかと思います。 -
daiさん、早速試してみました!
無事に式適用はされたのですがやはり、実際のファイル名には載ってきませんでした。
デバッグモード等でもう一度見てみようと思いますが他に注意点はございますか?

-
では一度見積番号に何が入っているか確認するために
’######’の部分を’6P0’として0で穴埋めしてみてはどうでしょうか。
-
以下の呪文で実行できますか。
式:Translate('%TEST%')&Str(A,'#####')&DStr(Date(),'YYYYMMDD')&'見積書.pdf'

なんとなく、論理名が変換されていないのかと思います。
見積番号に12345を入れて実行した結果です。

ルーモス。
-
山本さんは
'%Desktop%' にしてますが、マグルさんが書いてある
Translate('%Desktop%')の方がいいと思います。あと
簡単なオンラインPGを作って
Translate('%Desktop%')
がどんな値を返すか確認もした方がいいかもしれません。
伝票番号は
daiさんのおっしゃるSTR(伝票番号,'5P0') 又は
Trim(STR(伝票番号,'5'))ですかね。 -
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%')
>がどんな値を返すか確認もした方がいいかもしれません。変換はされているようでした!
他にお気づきの点などありましたら、ご教示頂きたいです。よろしくお願い致します。
-
Translate('%Desktop%')で表示される内容は差し支えなければ教えてください。
伝票番号表示されず というのがどういう事なのかわかりませんが、
もしかすると
Translate('%Desktop%')& '¥' & Trim(Str(BB,'6P0'))&DStr(Date(),'YYYY-MM-DD')&'見積書.pdf'
が必要だったりしませんでしょうか?
PDFファイルを生成するPGにしたいのですか? -
nkmtさん、コメントありがとうございます。
伝票番号が表示されないのはファイル名に載ってこないという意味になります。
Translate('%Desktop%')& '¥' & Trim(Str(BB,'6P0'))&DStr(Date(),'YYYY-MM-DD')&'見積書.pdf'
試してみました!
結果伝票Noは6桁の0になりました。本来であれば1192が入ってほしいと思っています。PDFファイルの生成はできているのですが、自動でファイル名を指定したいと考えております。
-
私が¥を挟んだ方がいいのではと書いたのは不要でした。
もしかすると
入出力ファイル(PDFファイル)を定義しているタスクで
R.見積HD.見積番号 のテーブルも開いていませんか? -
もしかすると今の作りのままでも
INIファイルの
IOTIMING=O 改め
IOTIMING=Iに変えるだけで解決する・・・・
かもしれません。 -
nkmtさん、コメントありがとうございます。
入出力ファイルの定義をしているタスク内のデータビューでR.見積HD.見積番号 のテーブルを開いています。同じタスク内で一緒に開くと片方しか反映されないとかでしょうか?
印刷バッチ内全てのタスクでR.見積HD.見積番号を開いてしまっているので別のタスクで変数に入れるとかすれば出来ますかね、、、。一度試してみます。
試しにIOTIMING=Iへ変更しましたが変わりはありませんでした。
そもそもIOTIMING=Iという設定はどのような機能になるのでしょうか?
-
入出力ファイルを定義しているタスクが動いた時点で
入出力ファイルであるPDFの名前も決定されると思います。
見積ヘッダーファイルのオープン、読み込みは、その後なので
現状だと見積番号が0になってしまうPDFとなっているんだと思います。
IOTIMIGは入出力ファイルを開くタイミングの設定です。
私も得意先別請求書PDF生成 & 印刷プレビューを兼ねるPGを作るなどして
IOTIMIG=Iが役立っています。 ヘルプにも載っています。
フォーラムにも記事があるかもしれません。 -
入出力ファイルの定義してあるタスクよりも前に
ファイル名を構成する項目は出揃っている必要があると思います。
サインインしてコメントを残してください。
コメント
19件のコメント