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

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.