Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

時刻データの表示が正しくできない場合がある

こんにちは いつもお世話になっています。


時刻表示が正しくできない場合がある現象について、ご存知の方がおられましたらご教示ください。

DBの中にデータタイプとデータ値(float型)が収納されています。

Loadスクリプトでデータを取り込む際に、Vbscriptで作成したモジュールを通して、データタイプに従って
データ値を整数・実数・時刻(hh:mm形式)に変換して取り込んでいます。

取り込んだデータをストレートテーブルで数値書式を「数値設定値」として表示させると、時刻データが
hh:mmではなく実数で表示される場合があります。


例えばモジュールによって「20:48」と変換されたはずのデータが「0.8667」と表示される場合があります。

「20:48」を実数に変換すると「0.8667」になるので、モジュールで変換した値をQVが収納する際に、実数
に変換しているようにも見えるのですが、データ量が多くてプレビューで確認することが出来ません。
CSV等で少量のデータを作成してやってみると全て正しく「hh:mm」変換されています。


理由がわからずに困っています。どなたかアドバイスをいただけないでしょうか

1 Solution

Accepted Solutions
Not applicable
Author

こんにちは

返信を頂く前ですが、理由がわかりましたので情報共有の為記載しておきます。

QVは取り込みにおいて既に同じデータが読み込まれていた場合、自動的に最初に読み込まれた値に置き換える仕様

になっているようです。
例えば「001」「0001」「01」の順でデータを取り込んだ場合「0001」と「01」は自動的に「001」に変換して取り込みます。
時刻形式のデータの場合、例えば「12:15」は実数で表記すると「0.84735」となるため、「12:15」データを取り込む前に
「0.84735」データを取り込んでいると「12:15」を「0.84735」に変換して取り込む可能性があるよううです。

今回の場合、取り込んだデータをデータタイプによって実数データや時刻データに変換していますが、先に取り込んだデータを

モジュールの中で0.84735に実数変換して収納し、その後での処理で取り込んだデータを12:15の時刻変換して、収納しようと

すると、QVは同じ数値と判断して12:15を0.84735にして収納することがあるようです。

(意図的にこのようなデータを作成したら再現しました。)

元々、同じ項目に実数と時刻(文字列)の両方を収納しようとしたプログラミングの問題でした。

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

View solution in original post

3 Replies
Not applicable
Author

こんにちは

返信を頂く前ですが、理由がわかりましたので情報共有の為記載しておきます。

QVは取り込みにおいて既に同じデータが読み込まれていた場合、自動的に最初に読み込まれた値に置き換える仕様

になっているようです。
例えば「001」「0001」「01」の順でデータを取り込んだ場合「0001」と「01」は自動的に「001」に変換して取り込みます。
時刻形式のデータの場合、例えば「12:15」は実数で表記すると「0.84735」となるため、「12:15」データを取り込む前に
「0.84735」データを取り込んでいると「12:15」を「0.84735」に変換して取り込む可能性があるよううです。

今回の場合、取り込んだデータをデータタイプによって実数データや時刻データに変換していますが、先に取り込んだデータを

モジュールの中で0.84735に実数変換して収納し、その後での処理で取り込んだデータを12:15の時刻変換して、収納しようと

すると、QVは同じ数値と判断して12:15を0.84735にして収納することがあるようです。

(意図的にこのようなデータを作成したら再現しました。)

元々、同じ項目に実数と時刻(文字列)の両方を収納しようとしたプログラミングの問題でした。

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

kentaroWakamatsu
Creator II
Creator II

私も、利用開始時に全く同じ問題が発生しました。

それ以降は、取込時の構文に書式指定する癖をつけています。

また、回答内に記載のあった下記2点に関して、対処方法はあるのでご参考までに。

①「001」「0001」「01」の順でデータを取り込んだ場合「0001」と「01」は自動的に「001」に変換して取り込みます。

→Text関数で、文字列として取り込めば、「001」「0001」「01」のまま、別々の情報として保持されます。

②先に取り込んだデータをモジュールの中で0.84735に実数変換して収納し、その後での処理で取り込んだデータを

 12:15の時刻変換して、収納しようとすると...................

→その後の処理の際に、項目名を変更すると書式変換可能です

 その他の方法としては、「設定」→「ドキュメントプロパティ」→「数値書式」で取込済みの該当項目の書式を指定する

 事も可能です。

Not applicable
Author

Mr wakamatsu

ご回答をありがとうございました。

 理由がわかればなるほど納得なので、対処方法もいろいろ考えられますね。

勉強になりました。