Q71-1:oracleのSQL発行で思うような処理ができなくて困っております。
A71-1:
まず、SQL文の書式をご確認いただけませんでしょうか。
特に以下の点のご確認をお願い致します。
(1)"| |" → "||"に変更(スペースの削除)
(2)FROM句内の"IPT001_IP管理 A"等は正しいでしょうか
(3)WHERE句内の"(+)"は正しいでしょうか
(4)最後の全角スペース" "は削除してください
また、コンボボックスに初期値を設定する部品についてですが、どのような初期値を設定することをお考えでしょうか。
基本的には、文字列のリストを作成し、コンボボックスのメソッド「全項目名のラベルを設定する」により設定しますが、具体的にどのような初期値を設定されたいか、または
どのように設定されたいかをご連絡いただけますと、より具体的な方法をお知らせすることができます。
Q71-2:
コンボボックスの初期値は何も選択されていない状態(空白)をデフォルト値として設定したいと思っております。ご指導の程どうかよろしくお願い致します。SQLは再度見直してみます。
A71-2:
> コンボボックスの初期値は何も選択されていない状態(空白)をデフォル>ト値として設定したい
@コンボボックスの中にデータが全く入っていない状態にする場合
「メソッド:removeAllData()」をお試し下さい
A既にデータは設定されているが、初めは特定のデータを選択しない場合
お送りいただいたアプリケーションの処理中、各コンボボックスで「指定位置の項目を選択する(int)]が設定され、0番目(一番最初)の項目が指定されるようになっています。
この処理を行わなければ、データのみ設定されただけでは選択箇所は無く、空白で表示されるようになっています。
Bメソッドにより選択状態をクリアする場合
少々裏技的ですが、メソッド「指定位置の項目を選択する(int)]で値を「-1」とすると何も選択されてない状態になります。また、Ver.2.4からは選択を解除するメソッド「clearSelection()」が追加されています。
2.お問い合わせ以外に気が付いた点がございます。
お送りいただいたアプリケーション中の [等価演算]コンポーネントで、右オペランドを固定値とし、演算を行っている処理があります。
・取得方法:固定値、メソッド/値:全く入力無しで、値はNULLになります。
・取得方法:固定値で、一度でもキーボードから入力をすると、その後文字を「BackSpace」等で消しても、値は「空白文字列」になります。
(一旦メソッド/値欄に入力した後、NULLに戻す場合は、右クリック>[NULL設定]とします)
[等価演算]コンポーネントで、左右オペランドどちらかでもNULL値が入っていると、演算結果はture/falseではなく、NULLとなります。
以下の変更をお試しください。
@[テキストフィールド]に何も文字が入っていない状態でも、そのテキストは「空白文字列」となっています。
[等価演算]コンポーネントの右オペランドも「メソッド/値」欄に一旦入力をし、「空白文字列」としてください。
A[コンボボックス]から「現在選択されている項目を取得する」と選択箇所が無い場合には、値は「NULL」になります。
[等価演算]コンポーネントでは、演算結果がNULLになってしまうので、[NULL判定]コンポーネントをお試しください。
[等価演算]に代えて[NULL判定]を使用し、メソッド「オペランド設定後、演算を行う(Object)」として頂くと、その他の箇所は変更なしで問題ないかと存じます。
3.実行されるSQL文ですが、現状では[ラベル]の中に書かれた雛形文がほぼそのままの形で実行されるように見受けられます。
Oracleデータベースの列名に日本語名を使用なさっているのか、あるいは例えば「マシン名」の部分は実際の列名に置き換え処理が必要なのか、疑問に思っております。
[文字列格納変数(ID:16-31)]に作成されたSQL文が入りますが、「コンポーネント属性情報」画面の「String」欄で確認できます。
また、文字の半角/全角の別は今一度ご確認ください。