0

PB では、変数連結に null 値がある場合、すべての変数が null 値を返すことを理解しています。連結中に null 値を処理する方法があるかどうかを調べようとしています。

以下の例を参照してください。ls_element3 は null 値を返し、間違いなくすべての変数が null 値を返します。私がしたいことは、ls_element1 と ls_element2 の下の値を返すことです。文字列の連結中に null 値を処理する方法を知っている人はいますか?

String ls_message, 
ls_element1 = a, 
ls_element2 = b, 
ls_element3 = null

ls_message = ls_element1 + ls_element2 + ls_element3
4

5 に答える 5

2

基本的なアプローチは 2 つありますが、他にもいくつかあると思います。

// insert between assignment and concatenation
IF IsNull (ls_element1) THEN ls_element1 = ""
IF IsNull (ls_element2) THEN ls_element2 = ""
IF IsNull (ls_element3) THEN ls_element3 = ""

また

//create a function that mimics the if() DataWindow function in PowerScript
function string f_if (boolean ab_Condition, string as_TrueResult, string as_FalseResult)
IF ab_Condition THEN
   RETURN as_TrueResult
ELSE
   RETURN as_FalseResult
END IF

連結を次のように変更します

ls_message = f_if (IsNull (ls_element1), "", ls_element1) + &
   f_if (IsNull (ls_element2), "", ls_element2) + &
   f_if (IsNull (ls_element3), "", ls_element3)

幸運を、

テリー

于 2013-08-01T13:51:59.073 に答える
0

string()関数と[general]フォーマットを使用して、null 文字列値を強制的に空の文字列にすることができます。null 値を空の文字列に置き換えます。

string ls_a, ls_b, ls_c, ls_d

ls_a = "foo"
setnull(ls_b)
ls_c = "bar"

ls_d = string(ls_a, "[general]") + string(ls_b, "[general]") + string(ls_c, "[general]")
//ls_d is "foobar"

string(variable, '[general]')と同等ですisnull(variable, '')

しかし、これはきれいなコードではありません...

于 2013-08-01T15:20:54.423 に答える
0

それはまさにあなたが必要とするものです: http://forum.powerbuilder.us/viewtopic.php?f=4&t=5

于 2013-10-28T20:05:18.763 に答える