0

私はVb.netに取り組んできましたが、PowerBuilder 12.5 Classicに切り替えました。私は、自分の道を見つけています。同等のPowerBuilderスクリプトを知る必要があります。

  1. コントロール「textbox1.clear()」をクリアします
  2. 「textbox1.focus()」にフォーカスする
  3. SQLデータベースアイテムをドロップダウンリストボックスに挿入します
    While dr.Read
       ComboBox1.Items.Add(dr("itemname"))
    end while
4

2 に答える 2

4

あなたの質問を完全に無視して答えるために...

PowerBuilderの機能はデータウィンドウにあることに注意してください。データベースからのドロップダウンのロードは、列をDropDownDataWindow編集スタイルにすることでデータウィンドウ列にいくつかの属性を設定するのと同じくらい簡単です。必要に応じて、DDDW属性が設定された後、プライマリデータウィンドウの取得時にDDDW値がロードされます。コードは必要ありません(プライマリデータウィンドウとのデータベース接続を設定し、プライマリデータウィンドウを取得する以外に)。実際、DDDWは、ドロップダウンが別のデータウィンドウであるため、コンボボックスに対して追加の機能を提供します。そのため、複数の列、ヘッダー、グラフィック、行ベースの式、条件付きの色付け、複数のテキスト行の高さのアイテム「行」を含めることができます。など...データウィンドウを使用することで、より多くの機会を利用できるようになります。(知っている。Intro to PBコースを抜けて、DWが誇張されていると思い、DWなしでプログラミングしようとしました。彼らがするすべてのことへの感謝を学びました非常に迅速に。次のプロジェクトで私の非DWアプローチをあきらめました。)

幸運を、

テリー

于 2012-07-11T17:14:44.053 に答える
2
  1. textbox1.Reset()
  2. textbox1.SetFocus()
  3. 例(テストされていませんが、アイデアを示しています):
    string ls_sql, ls_syntax, ls_errors

    ls_sql = "select name from users"
    ls_syntax = sqlca.SyntaxFromSql(ls_sql, "", ls_errors)
    if len(ls_errors) > 0 then return

    datastore ds
    ds = create datastore
    ds.create(ls_syntax, ls_errors)
    if len(ls_errors) = 0 then
        ds.SetTransObject(sqlca)
        ds.Retrieve()

        long ll_row,ll_rows
        string ls_val
        ll_rows = ds.RowCount()
        for ll_row = 1 to ll_rows
            ls_val = ds.GetItemString(ll_row, "name")
            Combobox1.AddItem(ls_val)
        next

    end if

    destroy ds

いくつかのコメントを編集してください。テリーがその答えで述べているように、データウィンドウとデータストアはPowerbuilderの主要なコントロールです。データストアをVBレコードセットと見なし、DWは一種の視覚的なレコードセットです(フォーム、グリッドなどの方法でデータを表示できます)。

DSを使用してデータを取得し、データを簡単に反復処理して(カーソルよりも操作が簡単です)、質問に答え、コンボボックスの入力を変換しました。しかし、テリーが言ったように、あなたははるかに強力で進化的なDropDownDataWindowを使用する方法を研究する必要があります。

于 2012-07-11T15:20:23.953 に答える