Designer:日付の期間指定で「取得データの日付計算」を使ってみる


ユーザーに開始年月日(FROM)と終了年月日(TO)を入力してもらい、指定された期間範囲内のデータを処理したいことがあります。下図の例では、4月10日(FROM)から5月9日(TO)までを指定した例です。

f:id:xoblos:20200603235247p:plain

ここでよくあるのが、「2020/04/10」「2020/05/09」のように月や日に前ゼロが付いていても、付いていないときと同等に期間指定したい、という要望です。

f:id:xoblos:20200603235607p:plain

また、処理するデータもCSVからXML変換して連携する場合に多いですが、月や日に前ゼロが付いているケースと、付いていないケースがあり、ここらへんも同等に処理できる設定方法がほしいところです。

年度名,年月日,営業所,顧客名,商品名,実績_売上高
2020年度,2020/04/01,東京営業所,水産ドットコム,タンドリーチキン,1500000
2020年度,2020/04/06,東京営業所,水産ドットコム,かれい煮付,2500000
2020年度,2020/04/29,東京営業所,水産ドットコム,まぐろフレーク,750000
2020年度,2020/05/05,東京営業所,水産ドットコム,サーモンチーズフライ,250000
年度名,年月日,営業所,顧客名,商品名,実績_売上高
2020年度,2020/4/1,東京営業所,水産ドットコム,タンドリーチキン,1500000
2020年度,2020/4/6,東京営業所,水産ドットコム,かれい煮付,2500000
2020年度,2020/4/29,東京営業所,水産ドットコム,まぐろフレーク,750000
2020年度,2020/5/5,東京営業所,水産ドットコム,サーモンチーズフライ,250000

この記事では、生成用制御シートのキーワード「取得データの日付計算」と「高度選択条件」を使った指定方法をご紹介します。

f:id:xoblos:20200603235637p:plain

取得データの日付計算」キーワードを使うと、日付間の差(結果は日数)を求めることができ、この日数を高度選択条件で判定することにより実現しています。

後は、F15とG15のセル(オレンジ色)の箇所に、入力変数が指定できれば良いので、下図のように「制御シートの書き換え設定」で指定します。

f:id:xoblos:20200603235656p:plain

F15とG15のセル(オレンジ色)の [セルの書式設定] は、必ず「文字列」にしてください。「標準」や「日付」だと日付計算がうまくいきませんので、注意点となります。

Designer:2つ以上の業務定義ファイル間で手順をコピーする

業務定義ファイル(xob/xbtファイル)をデザイナで開き、既にある手順を右クリックして [この手順をコピー] し、[コピーした手順を挿入] で同種の手順を増やす。この操作は、皆様よく実施されると思います。

 手順をコピーするときに、[Ctrl] キーや [Shift] キーを押しながらコピーし、複数の手順を一気にコピー作成することもできます。

 また、2つ以上の業務定義ファイル(xob/xbtファイル)を同時に開き、片方の画面から [この手順をコピー] し、別の画面に [コピーした手順を挿入] もできますのでお試しください。

製品ヒストリー

■製品ヒストリー Stand-alone 版

2009年 v1.0.0.3~    xoBlos シングルユーザー版
2011年 v1.5.1.0~    xoBlos Pro、xoBlos lite
2016年 v1.7~       xoBlos Designer、xoBlos Q
2018/03/29 v1.7.2.0~  xoBot Solo 追加
2019/02/15 v1.7.3.0~  xoBlos クライアント(xoBlos Designer Advanced)

 

■製品ヒストリー Server 版

2009年 v1.1.0.4~    xoBlos Server 版
2013年 v1.6~      xoBlos Server 版(corabo、Pro バンドル)
2016年 v1.7.0.4~    xoBlos corabo(Designer バンドル)
2018/03/29 v1.7.2.0~  xoBot corabo 追加(xoBot Solo バンドル)
2019/02/15 v1.7.3.0~  xoBlos コントローラー(クライアント バンドル)

Designer:『編集後削除する行/列』

ちょっとした制約

生成結果上の不要な処理行/列を、最終的に削除してくれるキーワード『編集後削除する行』と『編集後削除する列』。これらは生成している入力項目に対し、「yes」と指定するだけで済む簡単なものですが‥‥機能させるのに、一点制約事項があります。

f:id:xoblos:20200522135828p:plain

上図のように、キーワード『区分』が全て「DATA」であるものは、幾ら「yes」を設定しても消えません。データ部のみの生成でも、見た目一方向が明らかですが、厳密には "各出力項目の前後左右の関連性が分からない" 為です。

したがって、この二つのキーワードの効果を出すには最低一つ以上は分類か見出しの項目が無ければならないということになります。分類/見出し項目があると、それにぶら下がる「DATA」項目は、"生成している方向が行なのか列なのかが分かる" 為です。

どうあっても入力データに分類や見出しとして扱える項目が無い場合は、仮の通し番号を用意しましょう。この項目とて、纏めて「yes」で消してしまえば良いのです!

クライアント画面、Designer 画面を編集できないようにする

xoBlos クライアント(Designer Advanced)や Designerで、デイリー(日次)の出荷業務・納品業務など、頻繁に実行される業務を運用されているお客様。パートタイマーを含め、複数人の交代制で実行されているお客様。

このようなお客様で、操作(オぺレーション)の途次に、設定画面をいじってしまい(編集してしまい)、エラー結果とならないかと心配されることがあります。

そんなとき、画面を編集不可能にし、実行だけできる設定方法があります。

f:id:xoblos:20200513152207p:plain

上図のような設定で、画面を編集不可能にし、実行だけできるようになります。上図の設定画面を開くには、メイン画面左上の「(業務の設定)」をクリックし、[オプション] タブに切り替えます。

Designer:本日より前の日付を選択したり、スキップする

本日(システム日付)と入力データの日付を比較し、本日より前のデータを選択するときの手法です。

入力項目名      #本日       年月日
(中略)
固定値        %Now(yyyy/MM/dd)
日時指定       DATE        DATE

上記のように、%Now を使ってシステム日付を取得できます。

キーワード「取得データの日付計算」「高度選択条件」を使用します。

入力項目名      #本日       年月日  #差
(中略)
固定値        %Now(yyyy/MM/dd)
日時指定       DATE        DATE
取得データの日付計算                %#本日% - %年月日%
高度選択条件                    > 0

本日より前のデータをスキップしたいときは、キーワードを「高度スキップ条件」に変えます。 選択条件やスキップ条件に本日も含める場合は、「> 0」を「>= 0」に変えます。

Designer:分類項目を指定したら、出力データ行数が減ってしまった?

Excel表を生成するときに、よくある質問のひとつです。

分類項目使用時にデータ行数が減るという現象ですが、これまでサポート対応が多かった点を記載します。

「区分」が分類系の項目(最大6階層:大大大分類、大大分類、大分類、中分類、小分類、詳細行)を 使用するということは、分類項目以外の「DATA」項目行を集約する(まとめる)という 動作になりますので、単純に使用すればデータ行数は減ります。

そのとき、分類項目単位でまとめられた「DATA」項目には何が出力される かというと、まとめられた(グルーピングされた)順番で最後のデータが出力されます。

東京  目黒
東京  世田谷
東京  品川
神奈川 横浜
神奈川 川崎

 ↓

大分類 DATA
-----------------
東京  品川
神奈川 川崎

また、「加減算」キーワードで「加算」した「DATA」項目は、 その加算値が出力されます。もし、データ行数を減らすことなく、全レコードを出力したい場合は、

入力項目名       #行番号
区分          詳細行
ひな形の行数または列数 1
固定値         %ROW

のように、#行番号を区分「詳細行」に設定します(固定値「%ROW」を設定)。