カラムの行追加 ~PowerBuilder 入門!!第 6 弾 (2)~

みなさん、こんにちは!

このブログは、「PowerBuilder ってなに?」「PowerBuilder ってなにができるの?」という疑問に、IT 用語の解説もしつつ、簡単に分かりやすくお答えすることをモットーにしています。

気になる方はぜひ続きを見てみてくださいね。

キャラクター紹介

ねこぴ自己紹介

ねこぴ

PowerBuilder の日本語版オリジナルキャラクター。
(猫に見えるが) PowerBuilder の先生。

最近、紅茶にはまっているが猫舌なので冷ましてから飲みたい派。

ちまき自己紹介

ちまき

PowerBuilder をこれから学びたい開発初心者。

最近、こりこりするグミにはまっている。

ある日の午後のこと・・・。

ねこぴ話す

あちちち!

紅茶っておいしいのに猫舌が邪魔するにゃ。猫だけに。

ちまき笑う

ねこぴ先生、一人ツッコミ独り言を言っているところ申し訳ないのですがお邪魔しますね。

ねこぴ驚く

なんてタイミングで入ってくるにゃ!

てか突っ込んでほしかったにゃ。

ちまきつっこむ

こんな急なボケに対応できるほど私はセンスないのですよ!

前回は住所録アプリの全体像を説明 の回でしたよね。

ねこぴ説明

そうだにゃ。

今回は「行追加」について解説していくにゃ。

新しいメソッドも登場するので心構えしておくにゃ。

ちまき挨拶

よろしくお願いします!

 

前回のブログは住所録アプリの概要を解説しましたね^^

今回は大きなテーマである「更新」の前にリストの行追加について説明していきます。

分かりやすく解説していこうと思いますのでぜひ見ていってください(^^)


さて、テーブル内には 60 行分の個人データが登録されています。

61 行目に新しい行を追加するにはどういったメソッドを使用するのかコードを見ていきましょう(`・ω・´)ゞ

「w_adr_app」のウィンドウオブジェクトを開き、「行追加」のコマンドボタンを右クリックでスクリプトを開きます。

 

行追加のスクリプト

 

以下のようにスクリプトを記述しました。あ、同じアプリを作成していればぜひ書いてみてください。

 

行追加のスクリプト

 

まずはどんな処理なのかわかるように、コメントで「/*新規行追加*/」と記述しています。

そして変数を宣言します。

さあ、やってきました!いよいよ新規行追加のメソッドです。

新規行を追加するには InsertRow メソッド を使用します。

InsertRow メソッドとは?

新規行を追加してくれるメソッドのこと。

書き方 : コントロール名.InsertRow(row)

row = 挿入する行番号を指定する。(指定行の前に挿入されるため省略は不可)

コード内では dw_list.InsertRow(0) とあります。dw_list はデータウィンドウコントロールを指していて、ウィンドウの上に配置したデータベース内のデータを表示するデータウィンドウ部分ですね。

そして InsertRow(0) は行を追加するメソッドですが、 0 というのは行の最終行に新規行を追加するという意味になります。

InsertRow の戻り値は追加 (挿入) された行の番号になります。


続いてスクロールと現行行の設定です。

 

ScrollToRow メソッド

 

まずスクロールですが、dw_list.ScrollToRow(li_row) で設定されています。

この章はメソッド祭りですね\(^ω^\)ワッショイ!ワッショイ!

では ScrollToRow メソッドを見ていきましょう。

ScrollToRow メソッドとは?

追加した行にスクロールするメソッドのこと。

書き方 : コントロール名.ScrollToRow(row)

戻り値は正常時にスクロール先の行番号、エラー時に -1 を返す。row は省略不可。

つまり移動させたい行へスクロールしてくれるメソッドを発動させるわけですね。

li_row_cnt の変数にはカウントした行数が入るはずですので、その部分までスクロールします。

そして、 dw_list.SetRow(li_row) ですがこれは現行行を設定するメソッドです。

現行行とは、データウィンドウ上で保持している行番号を入手するためのものです。

SetRow メソッドとは?

現行行を設定するメソッドのこと。

書き方 : コントロール名.SetRow(row)

戻り値は正常時に 1、エラー時に -1 を返す。row は省略不可。

最後に SelectRow メソッドです!これは指定の行をハイライト表示するメソッドになります。

SelectRow メソッドとは?

指定の行をハイライト表示するメソッドのこと。

書き方 : コントロール名.SelectRow(row, select)

戻り値は正常時に 1、エラー時に -1 を返す。row と select はそれぞれ省略不可。

row はハイライト表示をする行数を指します。0 を指定すると、すべての行を選択するという意味になります。

また、select に関しては行を選択するか選択を解除するかを決めることができます。


ではアプリを実行してみましょう。

行追加のボタンを押してみます。(どきどき)

 

行追加ボタン押下後

 

行が追加されましたね!(^O^)/

 

ちまきひらめく

つまり「行追加」でやっていることは新規行を追加して、行数を数えた後ハイライトする行を取得しているということなんですね! たくさんメソッドも出てきましたね。

ねこぴ問いかけ

そうにゃね。次回は「行削除」の説明に入るにゃ。


PowerBuilder マイグレーション
PowerBuilder学習、動画で始めちゃう?