(現在 過去ログ5 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■658 / inTopicNo.1)  変数に項目名を代入して並べ替えたい
  
□投稿者/ 広田 -(2005/11/16(Wed) 14:54:13)
    いつも基本的な質問ばかりで申し訳ありません。
    
    
    フォーム一覧表形式です。
    
    1.明細行のフォーカスを取得した時に項目名を変数で取得し、
    2.コマンドボタンをクリックしたときに取得した変数で並び替えを行いたいです。
    
    イベントファイルのメインに
    -------------------------
    変数宣言 文字列{&取得項目名}
    -------------------------
    
    明細行のテキストオブジェクトのフォーカス取得に
    -------------------------
    &取得変数名=______←関数?
    -------------------------
    
    コマンドボタンの左クリックに
    --------------------------            ↓??
    並べ替え条件登録 条件名="",{[A] 昇順,[B] 昇順,&取得変数名 昇順}
    並び替え 条件名=""
    --------------------------
    
    としました。
    
    よろしくお願いします。m(_._)m
    

引用返信 [メール受信/OFF] 削除キー/
■659 / inTopicNo.2)  Re[1]: 変数に項目名を代入して並べ替えたい
□投稿者/ うにん -(2005/11/16(Wed) 17:12:44)
    オブジェクト操作 &取得変数名=&this.ソース
    
    とかじゃないですか?(ソースは半角)

引用返信 [メール受信/OFF] 削除キー/
■660 / inTopicNo.3)  Re[1]: 変数に項目名を代入して並べ替えたい
□投稿者/ ONnoji -(2005/11/16(Wed) 20:07:58)
    2005/11/17(Thu) 09:54:00 編集(投稿者)
    [式入力]ダイアログで、#項目番号( str )を調べると…
    >項目名 str の項目番号を返す。
    >str が未定義値の場合は現在の項目番号を返す。
    >存在しない項目名を指定すると未定義値を返す。
    
    これを利用するならば、
     &数値型変数 = #項目番号( #u )
    とすればOKです。
    
    参考 URL
     ↓
    http://www.geocities.jp/siliconvalley_bay_7565/procedure02.htm#no04
    
    例えば、以下の例のようになります。
    
    *-------------------------*
    名札    メイン
     変数宣言 局所,整数 { &fieldNum }
    
    
    *
    
    手続き定義開始 cmdTestClick( )
    
     &fieldNum = #項目番号( #u )
     並べ替え { [A] 昇順,[B] 昇順,&fieldNum 昇順 }
    
    手続き定義終了
    *-------------------------*
    

引用返信 [メール受信/OFF] 削除キー/
■661 / inTopicNo.4)  Re[1]: 変数に項目名を代入して並べ替えたい
□投稿者/ 悲しげ -(2005/11/16(Wed) 22:34:47)
    直接のお答えではありませんが・・・
    
    1.フォーカスを指定するために当該項目の明細行をクリックし、次に
    2.コマンドボタンをクリックして並べ替える
    
    と云う2行程の操作を想定されているようですが、例えば、項目名行の
    項目名オブジェクトをクリックすれば、当該項目について並べ替えされ
    ると云うやり方なら、マウスクリックは1行程ですみます。
    このやり方は、確か以前にたゆ〜さんが試していたような。
    項目名ラベルの左クリックイベントでもいいし、項目名にコマンドボタ
    ンをかぶせてモロにボタンの機能でもいいし、もっと色々やりたければ
    コマンドボタンからの「手続き実行」とか・・・
    
    *
    
    もし、全ての項目について並べ替えさせる訳ではなく、数項目について
    だけのことなら、各項目にかぶせた個々のボタンに個々の並べ替えを設
    定するという原始的(?)なやり方もあったりします。(^^;)
    
     機能     機能パラメタリスト
    並べ替え_昇順  [当該項目名]
    
    ま、ここの項目名取得を汎用的に行いたいというのが本旨なのであれば、
    kevの出番になりましょうけど。
    
    *
    
    余計なことながら
    
    >コマンドボタンの左クリックに
    
    コマンドボタンからkevを動かすには、通常は「マウス左クリック」イベ
    ントというよりも、ボタンの機能としての「手続き実行」を使うと思い
    ます。コマンドボタンの「マウス左クリック」イベントも、もちろん使
    えますし、ちょっと凝った使い方もできますが・・・。
    

引用返信 [メール受信/OFF] 削除キー/
■662 / inTopicNo.5)  Re[2]: 変数に項目名を代入して並べ替えたい
□投稿者/ ONnoji -(2005/11/17(Thu) 10:22:46)
    2005/11/17(Thu) 10:24:13 編集(投稿者)
    > 明細行のテキストオブジェクトのフォーカス取得に
    > -------------------------
    > &取得変数名=______←関数?
    > -------------------------
    
    次のように試してみたらいかがでしょうか?
    
    &取得変数名 = #項目属性( #項目番号( #u ),1 )
    
    
    >  #項目属性( n , f )
    >---------------------------------
    >項目の属性を調べます。
    >
    >n 属性を取り出す項目の番号を指定します。
    >  指定した番号の項目がなければ、未定義値になります。
    >f 取り出す属性を番号で指定します。
    >
    >値 戻り値
    >
    >0 項目値(データ型は項目と同じ)
    >1 項目名(文字列) ← これ(^^v
    >2 データ型(文字列)
    >   :
    

引用返信 [メール受信/OFF] 削除キー/
■663 / inTopicNo.6)  Re[3]: 変数に項目名を代入して並べ替えたい
□投稿者/ 広田 -(2005/11/17(Thu) 11:25:46)
    ONnojiさん。おはようございます。いつもありがとうございます。
    
    
    > &取得変数名 = #項目属性( #項目番号( #u ),1 )
    #項目属性([項目名],1)として、ずいぶん悩んでました。
    
    >項目の属性を調べます。
    >n 属性を取り出す項目の番号を指定します。
    この意味が良く分からなかったんですよね…
    #項目番号を使うのかぁ
    
    できました!!ほんとうにありがとうございます!
    
    

引用返信 [メール受信/OFF] 削除キー/
■664 / inTopicNo.7)  Re[2]: 変数に項目名を代入して並べ替えたい
□投稿者/ うにん -(2005/11/17(Thu) 11:26:27)
    > > [式入力]ダイアログで、#項目番号( str )を調べると…
    > >項目名 str の項目番号を返す。
    > >str が未定義値の場合は現在の項目番号を返す。
    
    こんなのあったんですねぇ。
    
    ちなみに「(項目名を)文字列型の変数で指定する場合は、代入するときに[ ] をつけません。」なので、
    オブジェクトのプロパティからソースを持ってきたら、そのままじゃだめそうですね。
    

引用返信 [メール受信/OFF] 削除キー/
■665 / inTopicNo.8)  Re[2]: 変数に項目名を代入して並べ替えたい
□投稿者/ 広田 -(2005/11/17(Thu) 11:36:24)
    悲しげさん、おはようございます。いつもありがとうございます。
    
    
    > 項目名にコマンドボタ
    > ンをかぶせてモロにボタンの機能でもいいし、もっと色々やりたければ
    > コマンドボタンからの「手続き実行」とか・・・
    それも考えたのですが、項目名がたくさんあってそれぞれにボタンをかぶせるよりは
    フォーカスを取得して、別のコマンドボタンを設けた方がスマートかなー
    …と初心者なりに思ったりして…
    
    
    > 余計なことながら
    > 
    > >コマンドボタンの左クリックに
    > 
    > コマンドボタンからkevを動かすには、通常は「マウス左クリック」イベ
    > ントというよりも、ボタンの機能としての「手続き実行」を使うと思い
    > ます。コマンドボタンの「マウス左クリック」イベントも、もちろん使
    > えますし、ちょっと凝った使い方もできますが・・・。
    ぜんぜん余計ではありません。アドバイスありがたいです。
    イベント一覧を見たときに言葉の直訳として、つい左クリックイベントを利用していました。
    手続き実行、勉強させていただきます。
    
     

解決済み!
引用返信 [メール受信/OFF] 削除キー/
■666 / inTopicNo.9)  Re[4]: 変数に項目名を代入して並べ替えたい
□投稿者/ ONnoji -(2005/11/17(Thu) 11:49:47)
    > イベント一覧を見たときに言葉の直訳として、つい左クリックイベントを利用していました。
    > 手続き実行、勉強させていただきます。
    
    コマンドボタンの場合は、機能名:手続き実行 が便利ですよ。
    
    詳しいことは以下の拙作HPをご参照下さい。
    
    コラム1 コマンドボタンの手続き実行
     ↓
    http://www.geocities.jp/siliconvalley_bay_7565/column01.htm

引用返信 [メール受信/OFF] 削除キー/
■667 / inTopicNo.10)  Re[3]: 変数に項目名を代入して並べ替えたい
□投稿者/ ONnoji -(2005/11/17(Thu) 11:55:36)
    2005/11/17(Thu) 11:56:42 編集(投稿者)
    > こんなのあったんですねぇ。
    
    そうなんですよ。
    
    相当以前に幅田さんの「桐井戸端BBS」で話題になったことがあります。
    
    私はそれ以降、「式ビルダ」の説明と「関数ヘルプ」の説明の両方を読むようにしています。
    
    どんなソフトにもありますが…
    いわゆる「マニュアルの説明抜け」というものですね。
    
    したがって、コマンドも内部ヘルプと外部ヘルプの両方を読んだほうが安全ですよ。
    

引用返信 [メール受信/OFF] 削除キー/
■669 / inTopicNo.11)  Re[3]: 変数に項目名を代入して並べ替えたい
□投稿者/ 悲しげ -(2005/11/17(Thu) 23:44:09)
    2005/11/17(Thu) 23:49:34 編集(投稿者)

    参考までに、項目名ラベルの左クリックと云う1行程での並べ替え例。

    1.まず「ファミリ」をひとつ設定する(ファミリについてはヘルプ参照)
    2.フォーム上の全ての項目名ラベルをShiftキーを使ってで一括選択し、
    イベントタブから「ファミリ名」に上記ファミリを当てる。
    3.当該ファミリに「マウス左クリック」イベントを設定する。

    以下はkevの記述例
    〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
    手続き定義開始 ファミリ_1::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
     *オブジェクト操作 &this.境界線モード="くぼみ" /**/
     var 文字列{&項目名=#sstr(&this,2)}
     並べ替え {&項目名 昇順}
    手続き定義終了
    〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
    たった2行。これで項目名ラベルをクリックしただけで、当該項目につい
    て昇順の並べ替えがなされるはずです。

    当該項目名をまう1回クリックしたら今度は降順なんてのも面白いかも?
    #sstr(&this,2)としたのは、項目名が仮に「あ」だとするとラベルオブジェ
    クト名は普通は「aあ」のようになっているはずだからです。
    *を付けたのは、現在並べ替えしている項目を明示しようとしたのだが、他
    の全項目名の表示を元に戻すのがちと面倒なのでやめた残滓です。(^^;)

    ps.
    「解決済み」にコメントするのは心苦しいですが、かと云って敢えて他の文
    にぶら下げるのも何だかなので、やはりここに付けました。

引用返信 [メール受信/OFF] 削除キー/
■670 / inTopicNo.12)  Re[5]: 変数に項目名を代入して並べ替えたい
□投稿者/ ONnoji -(2005/11/18(Fri) 10:28:19)
    >>項目名にコマンドボタンをかぶせてモロにボタンの機能でもいいし、もっと色々やりたければ
    >>コマンドボタンからの「手続き実行」とか・・・
    > それも考えたのですが、項目名がたくさんあってそれぞれにボタンをかぶせるよりは
    > フォーカスを取得して、別のコマンドボタンを設けた方がスマートかなー
    > …と初心者なりに思ったりして…
    
    コマンドボタンを利用した並べ替えの拙作サンプルがダウンロードできます。
    
    並べ替えの対象はひとつの項目に限定していますが、よろしければお試しください。
    
    フォームアプリケーション応用編 第7回 項目をソートする
     ↓
    http://www.geocities.jp/siliconvalley_bay_7565/procedure07.htm

引用返信 [メール受信/OFF] 削除キー/
■671 / inTopicNo.13)  Re[4]: 変数に項目名を代入して並べ替えたい
□投稿者/ うにん -(2005/11/18(Fri) 10:52:44)
    > *を付けたのは、現在並べ替えしている項目を明示しようとしたのだが、他
    > の全項目名の表示を元に戻すのがちと面倒なのでやめた残滓です。(^^;)
    
    元に戻すのでなくて、並べ替え順に項目を追加するのはできませんかね?
    *つまり、例えば[日付]順に並んでる時に[コード]をクリックしたら
    *[コード][日付]順に並ぶようにする。
    

引用返信 [メール受信/OFF] 削除キー/
■672 / inTopicNo.14)  Re[4]: 変数に項目名を代入して並べ替えたい
□投稿者/ ONnoji -(2005/11/18(Fri) 11:33:26)
    >>*を付けたのは、現在並べ替えしている項目を明示しようとしたのだが、他
    >>の全項目名の表示を元に戻すのがちと面倒なのでやめた残滓です。(^^;)
    
    前回のオブジェクト名と今回のオブジェクト名を格納するふたつの局所または固有変数を用意して、
    
    手続き定義開始 ファミリ_1::マウス左クリック( … )
      :
     &前回オブジェクト名 = &今回オブジェクト名
     &今回オブジェクト名 = &this
      :
    手続き定義終了
    
    という具合に前回値と今回値をやりくりして、
    
    &前回オブジェクト名 → 凸 ※ただし、未定義値では行なわない
    &今回オブジェクト名 → 凹
    
    と[オブジェクト操作]コマンドを実行すればいいと思いますけれど…(^^ゞ

引用返信 [メール受信/OFF] 削除キー/
■673 / inTopicNo.15)  Re[5]: 変数に項目名を代入して並べ替えたい
□投稿者/ ONnoji -(2005/11/18(Fri) 11:52:12)
    > 当該項目名をまう1回クリックしたら今度は降順なんてのも面白いかも?
    
    前回のオブジェクト名と今回のオブジェクト名の変数の他に、
    並べ替えの状態を記録する変数も用意すると、
    昇順 → 降順 → 解除 をトグルで操作できると思います。
    
    例えば、変数の値は "今回オブジェクト名 +{昇順|降順}" のような感じです。
    
    並べ替えの状態を記録する変数を用意すると
    前回のオブジェクト名と今回のオブジェクト名が違えば、
    昇順でスタートし、
    前回のオブジェクト名と今回のオブジェクト名が同じならば、
    昇順 → 降順 → 解除 の順に状態を遷移できると思います。

引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -