PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
24034 16/03/23 11:39:42 RE(2):PB9: ウィンドウに貼り付けたOLEとデータウィンドウに貼り付けたOLEで動作が異なる By XX)
24033 16/03/23 11:33:37 RE(2):PB9: ウィンドウに貼り付けたOLEとデータウィンドウに貼り付けたOLEで動作が異なる By XX)
24032 16/03/23 11:34:12 RE(2):PB9: ウィンドウに貼り付けたOLEとデータウィンドウに貼り付けたOLEで動作が異なる By XX)
24031 16/03/23 11:35:15 RE(2):PB9: ウィンドウに貼り付けたOLEとデータウィンドウに貼り付けたOLEで動作が異なる By XX)
24030 16/03/23 11:29:04 RE(2):PB9: ウィンドウに貼り付けたOLEとデータウィンドウに貼り付けたOLEで動作が異なる By XX)
24029 16/03/14 17:09:41 RE:PB9: ウィンドウに貼り付けたOLEとデータウィンドウに貼り付けたOLEで動作が異なる By asano01
24028 16/03/02 10:52:03 PB9: ウィンドウに貼り付けたOLEとデータウィンドウに貼り付けたOLEで動作が異なる By XX)

カテゴリ:スクリプトの記述
日付:2016年03月23日 11:29 発信者:XX)
題名:RE(2):PB9: ウィンドウに貼り付けたOLEとデータウィンドウに貼り付けたOLEで動作が異なる

こんにちは。

返信が遅くなってしまいすみません。
とても親身になって回答してくださりありがとうございました!


幾つかの要因はあったのですが、
そのうちの一つが懸念してくださったとおり、

>2.データウィンドウにデータが存在しているか?

というのもありました。

マニュアルでOLEに関する記述を色々と漁ってみましたところ、
まこと様も仰るように行ごとには紐付かず、データウィンドウ毎に紐づく
という勘違いも知ることができました。本当にありがとうございました。

*******【まとめ】*******************************

今回、段組みラベルにQRコード(OLE)の実装をしようと考えておりました。
(イメージ的にはA4一枚に3列4段構成のラベルです)
処理の流れとしまして、
 ①とある画面Aで発行ボタンを押す
 ②発行ボタンから画面B(このウィンドウにラベルのデータウィンドウを設置)を
  非表示で起動し、検索後、印刷し、非表示の当該ウィンドウを閉じる
 ③とある画面Aへと戻る
という処理を想定していました。


そこで、
 QRコード(OLE)を一つ設置
  ⇒まずこれでは目的が達成できませんでした。
   先述しましたとおり、行毎には紐付いていないので、
   12個のOLEを設置する必要がありました。

次にこれでもアクセスエラーが発生しましたので原因を追求しましたところ、
画面Bを非表示で起動していたのがNGだったようです。

これはQRコードのOLEの仕様上の問題なのか定かではありませんが、
プレビューで全てのQRコードを一度でも描画していないとインスタンス化されないのか
よくわかりませんが、アクセスできませんでした。
※つまり、データウィンドウの高さが足らず、設置したQRコード12個中、下一段が
 描画されていなかった場合、その下一覧の3個のQRコードへはアクセスできませんでした。。
 なので私は倍率を100から50へと一時的に下げたあと、また100へと戻す処理で回避しました。

非常に厄介ではありましたが、
もし同じような事象に悩まされている方がおりましたら、
参考になれば幸いです。


重ね重ねにはなりますが、
回答してくださり本当にありがとうございました!


>こんにちは。

>ご質問の件について、同様の経験がありますので、そのときのことを回答いたします。

>まず、次の点を確認してみてください。

>1.データウィンドウがインスタンス化されているか?

>2.データウィンドウにデータが存在しているか?


>1についてはわかるとおもいます。
>存在していないものに、データをセットできません。

>2については、過去にはまった件です。
>データウィンドウのデータがゼロ件だと、oleそのものも存在しません。

>oleはデータウィンドウの行ごとには、紐付きません。
>データウィンドウに張り付けたoleは、データウィンドウそのものに紐付きます。
>ここが勘違いした部分です。

>説明がわかりずらかったら、ご容赦を。

>お力になれれば幸いです。

>まこと


>>いつもお世話になっております。
>>
>>ちょっと行き詰まってしまいまして、
>>ご存知の方、教えていただけませんでしょうか。
>>
>>ウィンドウにOLEコントロール(以下、ole_1)を貼り付けた場合、
>>そのプロパティへアクセスできたのですが、
>>データウィンドウに同様のOLEコントロールを貼り付けアクセスしたところ、
>>アクセスエラーのアプリケーションエラーが発生してしまいました。
>>
>>
>>具体的には、
>>■ウィンドウへ貼り付けたOLEコントロールに対するコーディング
>> String ls_Value
>>
>>  ls_Value = ole_1.Object.Value
>> ⇒問題なく動作し、Valueプロパティの情報を変数に格納されることを確認できました。
>>
>>■データウィンドウへ貼り付けたOLEコントロールに対するコーディング
>> String ls_Value
>>
>>  ls_Value = dw_1.Object.ole_1.Object.Value
>> ⇒アプリケーションエラー(アクセスエラー)が発生
>> ※OLEオブジェクトは同様のものになります。
>>
>>
>>という感じになります。
>>
>>長くなりましたが、お尋ねしたいこととしまして、
>>ウィンドウとデータウィンドウではデータウィンドウに貼り付けた場合には
>>プロパティを変更することができない制約のようなものがあるのでしょうか…?
>>
>>なぜウィンドウでは出来て、データウィンドウではアクセスできないのかが
>>どうしても理解できません。
>>
>>ご存知の方、教えていただけませんでしょうか。
>>どうかよろしくお願いいたします。

付加情報:

PowerBuilder Version 9

Client SoftWare

OS Windows8
DBMS Oracle Net 11
Browser Chrome

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

Copyright © 2013 Power Future Co., Ltd.