を使用していない理由ですが、入力用フォーム上のさまざまなエディットボックスを提示し、あなたのExcelファイルを保存するためにDataTableオブジェクトを使用しているアプリケーションを想定してみましょう。
これは私のやりたいことです。
まず...オブジェクトをオブジェクトリポジトリに集めます。私は、それぞれの可能なエディットボックスを独立したオブジェクト(アプリケーション自体のオブジェクト内)として作成/記録し、各オブジェクトが一意に識別可能であることを確認します...(エディットボックスのコントロール自体がQTPは、それらの隣にあるキャプションにリンクする機能を提供します)。また、アプリケーションが単に編集ボックスを隠している場合は、Visible = Trueがidenfity属性の1つであることを確認して、Visible = Falseの場合は見つからないようにします。
すべてのオブジェクトがORに入ったら、それらが存在するかどうかをチェックするのは簡単なことです。もちろん
'assuming your excel file is already imported as the global DataTable
if Window("My App").Editbox("Name").exist(0) then Window("My App").Editbox("Name").Set DataTable("Name")
if Window("My App").Editbox("Grade").exist(0) then Window("My App").Editbox("Grade").Set DataTable("Grade")
if Window("My App").Editbox("Hobby").exist(0) then Window("My App").Editbox("Hobby").Set DataTable("Hobby")
if Window("My App").Editbox("Writing Friend").exist(0) then Window("My App").Editbox("Writing Friend").Set DataTable("Writing Friend")
if Window("My App").Editbox("BFF").exist(0) then Window("My App").Editbox("BFF").Set DataTable("BFF")
、この例では非効率的であり、容易にロールアップすることができます(つまり、あなたがUDFを作成し、配列からフィールド名を読み込むループからそれを呼び出すことができます...)しかし、それはこのことを実証しなければなりません簡単なアプローチ。
QTPネイティブDataTableとしてExcelファイルを使用していますか?何らかのテーブルに動的ラベルのあるフィールドか、キャプション付きのさまざまな入力ボックスですか? –
はい、可能です。いくつかのサンプルコードを追加し、あなたの質問をもう少し具体的に、あるいはより良くするために、SSCCE http://www.sscce.org/を追加すると、よりターゲットを絞ったフィードバックを得ることができます。 ) – TheBlastOne
そうです。 ExcelファイルをdataTableとして使用していますか?すべてのフィールドは、一意に識別できるラベル付きの入力ボックスです。これまでフィールド名を列にリンクしていて、その値を埋めるためにExcelに優れていました。しかし、私のコードが行っていないのは、フィールドラベルが画面に表示されない列を無視することです。 Visible = TrueとVisible = Falseなどを使用しましたが、それでもフィールドを探してスクリプトを失敗させようとしています。どこか間違ったことをやっていると思います。 – TryingtoAutomate