TECH BLOG

MENU

クラウド

SVF

SVF Cloud Designer

請求書などで特によくある話として、締日を月末日付にしたいことがあると思います。そんな時はSVFに用意されている関数を使用することで、入力した値を月末日付に変換してから印字することができます。月末日付に変換するための関数を編集式に設定するところが今回のポイントになります。

注意点として、入力される日付の形式がYYYYMMDD(例:20170301)である必要があります。もし区切り文字「/」や「年・月・日」が入っている場合はLEFT関数やMID関数、RIGHT関数などを使用し、YYYYMMDDの形式に変換してから試してみてください。

フィールドに編集式を設定する

まず、月末日付に変換したいフィールド(ここでは締め日というフィールド名)をクリックし、プロパティウィンドウを開きます。

プロパティウインドウで、[編集式]の右部に鉛筆アイコンがありますのでクリックします。


編集式ウインドウが表示されますので、以下のように入力します。本記事からのコピー&ペーストでOKです。

ADATE(LEFT(STR(ADATE(LEFT(YMD,6)+”01″,32)),8)+”01″,-1)

この式ではその月の「1日」+32日をし、翌月を求めて、翌月1日から1日引いています。なのでうるう年も取得可能です。YMDは日付が入っているダミーフィールドになりますのでコピー&ペースト後に、冒頭で説明したYYYYMMDD形式の日付型フィールドに置き換えを行います。

この記事を書いているとき、となりの同僚に「土日はどうするの?」と聞かれたので土日を考慮する版も作ってみました。

IF(CDOW(ADATE(LEFT(STR(ADATE(LEFT(YMD,6)+”01″,32)),8)+”01″,-1)) = “日”, DTOC(ADATE(LEFT(STR(ADATE(LEFT(YMD,6)+”01″,32)),8)+”01″,-3)), IF(CDOW(ADATE(LEFT(STR(ADATE(LEFT(YMD,6)+”01″,32)),8)+”01″,-1)) = “土”, DTOC(ADATE(LEFT(STR(ADATE(LEFT(YMD,6)+”01″,32)),8)+”01″,-2)), DTOC(ADATE(LEFT(STR(ADATE(LEFT(YMD,6)+”01″,32)),8)+”01″,-1))))

月末日付が土曜日だった場合にはさらに1日、日曜日だった場合にはさらに2日引いているため、このように長い式になっています。

土日を考慮する版としない版、どちらか使いたい方を選んでコピー&ペーストすればOKです。


コピー&ペーストで入力した[YMD]の箇所を実際のフィールド名に置き換えます。[YMD]の箇所はすべて同じフィールド名に置き換えてください。置き換えが終了したら[OK]を押して編集式のウィンドウを閉じてください。


テスト印刷する

テスト印刷して、下記のように月末日付で表示されていれば完了です。

まとめ

もしうまく表示されない場合は、入力元の日付フォーマットを確認してみてください。

繰り返しになりますが、今回の関数を用いて変換するためには、20170301のような入力データである必要があります。ちなみにデータを入力する代わりに印字日(システム日付)を使用したい場合は上記のYMDの箇所をDATE()にしていただくことでシステム日付の月末日付を印字することもできますので試してみてくださいね。

お役に立てたでしょうか。
今後も様々な関数を利用した帳票設計ノウハウをご紹介していきたいと思いますのでお楽しみに。

この記事にリアクションしてみませんか?

  • 分かりやすい (0)
  • 問題が解決した (0)
評価ありがとうございます!
プロフィールへ

大江直輝

建設業向けパッケージを導入するSIerを経て2017年にウイングアーク1st株式会社へ入社し、SVF・SVF Cloud・invoiceAgentのプリセールスを4年経験し、2023年現在は製品サポート部にてお客様への技術回答をおこなっています。今後は自社製品がお客様の資産の一部になれるような価値訴求や顧客接点をもったCustomer Success活動に注力していきたいです。

Related article

Related article関連記事

Pick up

Pick upおすすめ記事

特定の文字列で分割して階層構造をつくりたい!~DS Scriptで分割する~1

  • #データ加工
  • #DS Script

2023.07.17

Dr.Sum

DS Scriptで必要なテーブルだけ再構築(リビルド)をしよう

  • #DS Script

2023.07.06

Dr.Sum

「データポイント数が、しきい値をオーバーしました」というエラーの解決方法【データベースで処理をしよう】

  • #データ加工

2023.06.13

MotionBoard

Ranking

Rankingランキング

1

文字数が多い場合にフォントサイズを小さくして1行で印字したい

  • #帳票作成・出力

2021.06.02

SVF

2

購入日の月毎に改ページして帳票を出力したい

  • #帳票作成・出力

2021.06.02

SVF

3

ページ番号を表示したい

  • #帳票作成・出力

2021.06.02

SVF

Info

Information

ウイングアーク1stからのお知らせ