PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
23996 | 14/12/16 14:04:34 | RE(2):PB12.5: 文字列計算式 By sasa1285q |
23995 | 14/12/16 14:04:46 | RE:PB12.5: 文字列計算式 By sasa1285q |
23994 | 14/11/07 11:30:39 | PB12.5: 文字列計算式 By sasa1285q |
カテゴリ:スクリプトの記述
日付:2014年12月16日 14:04 発信者:sasa1285q
題名:RE(2):PB12.5: 文字列計算式
こんにちわ、返事が遅くなり申し訳ありません。
アドバイスありがとうございました。
パワービルダーの機能でやろうやろうと頭が固くなって
視野が狭くなっていた模様です。
なので別方面から考えて結論が出ました。
環境としてはアプリ開発はPB、DBはOracleを使うので
OracleのDual表を用い動的SQLで出来るのではとの結論に
いたりました。
どういう方法化というと
Integer A=1, B=3, C=1
ls_calc = "(A+C)*B"
PBの関数で文字列中のA,B,Cを値に置換え
"(1+1)*3"
動的SQLでSELECT (1+1)*3 FROM DUAL
としてSQLを実行すると6が得られます。
この方法であればDBに依存はしますが
PB以外でも活用できると思います。
>こんにちは、シングルラインに数値式を入力させ、計算結果を取得することができております。
>Integer A=1, B=3, C=1
>ls_calc = "(A+C)*B"
>//PBの関数で文字列中のA,B,Cを値に置換してください
>// "(1+1)*3"
>この文字列を、Datawindow(ダミー)の、Evaluate関数を用いて結果を取得することができます。
>お試しください。
>
>>任意に計算式を文字列で作成し計算結果を
>>得る方法はないでしょうか。
>>例えば計算式を"(A+C)*B"として
>>A=1、B=3、C=1に置き換え"(1+1)*3"にして計算させ結果=6を得る
>>といった具合です。
>>ACCESSであればEVALという関数で得られるのですが、パワービルダーで
>>同じことが出来ないものかと頭を抱えています。
>>よろしくお願いします。
>>
>>
>>
付加情報:
PowerBuilder Version 12.5
Client SoftWare
OS Windows7
DBMS Oracle Net 11
Browser InternetExplorer10
Server SoftWare
OS Windows Server 2008R2
DBMS Oracle11g
WebServer IIS
Copyright © 2013 Power Future Co., Ltd.