2011-07-21 3 views

答えて

1

あなたは、すべての可視オブジェクトを一覧表示し、あなたがそれをしたい場合は、各オブジェクトのために、あなたがチェックするobject_name.bandを頼むdatawindow.visualobjectsプロパティを取得する必要があります。解析特性簡略化する

PbniRegexを再利用例(すなわち、以下のコードでuo_regexオブジェクトを提供する):

public function long of_get_band_controls (string as_band_name, ref string as_controls[]); 
string ls_empty[] 
int i, j 
as_controls[] = ls_empty[] 

uo_regex lnv_regex 
lnv_regex = create uo_regex 
lnv_regex.initialize("([^\t]+)", true, false) 
i = lnv_regex.search(describe("Datawindow.visualobjects")) 
for j = 1 to i 
    if describe(lnv_regex.match(j) + ".band") = as_band_name then 
     as_controls[ upperbound(as_controls[])+1 ] = lnv_regex.match(j) 
    end if 
next 
destroy lnv_regex 

return upperbound(as_controls[]) 
end function 

をコードは、データウィンドウherited物体から来ることを、したがってそれはへの直接アクセスを取得しますdescribeメソッド。

+0

Sebastien、AFAIK 'visualobjects'は何らかの理由で文書化されていないため、正式にはサポートされていません。 [一度それについて尋ねました](https://groups.google.com/d/topic/sybase.public.powerbuilder.datawindow/iZ3ZjtLQ6us/discussion)はSybaseのニュースグループにあり、使用しないことをお勧めしました。私はそれに問題があるとは思っていませんが、誰でもそれを使用している人は、少なくともその可能性を認識すべきだと思います。 – eran

+0

@eran、ああ、文書化されていないのですか?それは、[DWデバッグマシン](http://geni.embeddingperl.com/index.php?post/2011/06/06/My-Datawindow-DebugMachine)を使用して偶然見つけたプロパティでなければなりません。 dw属性は 'datawindow.attributes'プロパティを介して呼び出されます。 PB Classic仮想マシンが段階的に廃止されているので、それを使用するのは害ではないと思います。 – Seki

0

を私はそのリストを取得する任意の直接的な方法を知りませんが、あなたは、オブジェクトの完全なリストを持っていたら、あなたがそれらの上に行くと確認することができますそれぞれのバンド:

ls_Obj = GetNextObjectFromList(ls_AllObjectsList) 
ls_Band = dw_1.Describe(ls_Obj + ".band") 
choose case ls_Band 
    case "detail" 
    // handle detail band objects 
    case "header" 
    // handle header band objects 
    // etc. 
end choose 
+0

あなたの例で使用する 'GetNextObjectFromList()'とは何ですか?あなたはそれを使用してDWビジュアルオブジェクトのリストを解析しますか? – Seki

+0

@Seki、はい。リストから次のオブジェクトを取得するための単なるパーサです。そのような組み込み関数はありません。 – eran

関連する問題