ツリー一括表示

Nomal グリッドの中で編集と計算する方法? /kokiriko (09/12/17(Thu) 15:27) [#8342]
Nomal グリッド計算 /SWinX (09/12/17(Thu) 17:08) [#8343]
  └Nomal Re[2]: グリッド計算 /kokiriko (09/12/18(Fri) 10:55) [#8346] 解決済み!


親記事 / ▼[ 8343 ]
/ 親階層)  グリッドの中で編集と計算する方法?
□投稿者/ kokiriko 【115.179.40.101】(2009/12/17(Thu) 15:27:23)

    いつも質問ばかりで申し訳なく思っています。

    グリッドの中で変更した数字を元に、グリッド内で再計算をさせることは
    できないのでしょうか?

    ★日本語プログラミング言語「なでしこ」の、みんなで作るWikiマニュアル
    の中に下記の説明があるので、自分なりに試しているのですが行き詰まって
    しまいました。

    /*
    グリッドのアイテムは、配列としては扱うことができません。
    このため、グリッドを使う場合、実際のデータは、別に二次元配列変数に持ち、
    データを編集する場合は、二次元配列変数を更新した上で、グリッドのアイテムに入れ直す、
    という形で使う形になります。
    http://nadesi.com/wiki/index.php?%A5%B0%A5%EA%A5%C3%A5%C9
    */

    不明点
    1.「グリッドの編集はオン。グリッドの行選択はオン。」 とした場合、
      片方の命令が無視される
    2.グリッド内に入力した数字を元に計算して、その結果をグリッドの
      計算結果として、再表示する方法
    よろしくお願いいたします。

    # ######################### #########################
    # グリッド計算テスト
    # ######################### #########################
    /*
     ファイルドロップするとグリッドにセットされます
    */

    CodeCD=「0001」

    ※※※積み木デザイナ:ここから※
    ※ 以下はデザインデータです。
    ※ コメントを削除しないようにしてください。
    ※ ---
    ※母艦とはフォーム##生成
    母艦は「メインフォーム」
    そのクライアントW=744#数値
    そのクライアントH=544#数値
    そのタイトル=「グリッド計算テスト」#文字列
    ※ ---
    エディタ1とはエディタ##生成
    そのX=24#数値
    そのY=416#数値
    そのW=656#数値
    そのH=32#数値
    そのテキスト=「」#文字列
    ※ ---
    エディタ2とはエディタ##生成
    そのX=24#数値
    そのY=464#数値
    そのW=656#数値
    そのH=32#数値
    そのテキスト=「」#文字列
    ※ ---
    計算実行とはボタン##生成
    そのX=24#数値
    そのY=368#数値
    そのW=64#数値
    そのH=32#数値
    そのテキスト=「計算実行」#文字列
    そのクリックした時は〜計算実行__クリックした時#イベント
    ※※※積み木デザイナ:ここまで※

    ※ ---

    ※ ---※ ---
    グリッドAとはグリッド#
    そのX=32#数値
    そのY=72#数値
    そのW=664#数値
    そのH=224#数値
    その編集はオン。行選択はオン。
    グリッドAをダブルクリックした時は〜グリッドA__ダブルクリックした時#イベント
    ※ ---
    ※ ---
    母艦のファイルドロップ許可はオン。一覧は「コード,フォルダ,MB,Byte, 数, 計算 」#4
    母艦のファイルドロップされた時は#5
      母艦のドロップファイルを反復#6
        もし、対象のフォルダ存在が0ならば続ける。#7
        サイズは0。#8
        対象の全ファイル列挙を反復#9
          サイズ=サイズ+(対象のファイルサイズ)。#10
         一時は空。
         一時[0]はCodeCD
         一時[1]は対象の末尾フォルダ。
         一時[3]はサイズ。#11
         一時[4]は一時[4]を通貨形式
         一時[2]はINT(一時[3]/1024/1024/1000)を通貨形式。
         一時[5]はINT(一時[2]*一時[4])を通貨形式。
         一覧に一時を配列追加。#12
        
      グリッドAのアイテムは一覧。母艦ハンドルを窓ハンドルアクティブ。#13
    グリッドAのアイテムは一覧。#14
    #グリッドAののキー押した時は〜もし、グリッドAの押された仮想キーが32ならばグリッドAのマウス押した時。#22
    グリッドAに注目。#23

    ●末尾フォルダ(Sの) SはSを「\」で区切る。S[Sの配列要素数-1]を戻す。#24

       
    ●グリッドA__ダブルクリックした時
      # ここにイベントを書きます。
      エディタ1はグリッドAのテキスト
      それはグリッドAのアイテム
      エディタ2のテキストはそれ
      A=それ\0,0 #code
      B=それ\0,1 #フォルダ
      C=それ\0,2 #MB
      D=それ\0,3    #Byte
      E=それ\0,4    #数, 
      F= C*E #計算 

     エディタ1のテキストはA&"-"&B&" "&C&D&E&F。 
      
    /*
    グリッドのアイテムは、配列としては扱うことができません。
    このため、グリッドを使う場合、実際のデータは、別に二次元配列変数に持ち、
    データを編集する場合は、二次元配列変数を更新した上で、グリッドのアイテムに入れ直す、
    という形で使う形になります。

    */

    ●計算実行__クリックした時
      # ここにイベントを書きます。
      # 字下げした部分がイベント範囲です。
      ハイハイはグリッドAのアイテム  # ハイハイワークにグリッドAのアイテムを入れる
      #ハイハイを言う
      グリッドAのアイテム=「」
      ハイハイの全ファイル列挙を反復#9
          一時は空。
         一時[0]はハイハイ\0,0
         一時[1]はハイハイ\0,1
         一時[1]はハイハイ\0,2
         一時[3]はハイハイ\0,3
         一時[4]はハイハイ\0,4
         一時[5]はINT(一時[2])*INT(一時[4])を通貨形式。
         「一時-----{一時}」を言う
        一覧に一時を配列追加。#12
       一覧を言う  
      グリッドAのアイテムはハイハイ。
      母艦ハンドルを窓ハンドルアクティブ。#13
      グリッドAのアイテムはハイハイ。



[ □ Tree ] 返信 削除キー/
[ □ Tree ] 返信

▲[ 8342 ] / ▼[ 8346 ]
/ 1階層)  グリッド計算
□投稿者/ SWinX 【219.166.180.50】(2009/12/17(Thu) 17:08:26)

    1.当然です。「行選択」動作と「編集」動作を切り替えているので両立は無理。
    2.Wikiに書かれている通りにプログラムすればOK。
    「結果」という配列に一時的に入れて、計算後に書き戻してみました。

    //

    Gとはグリッド
    そのアイテムは「単価,数量,合計」
    その編集はオン
    そのクリックした時は
     結果とは配列
     GのアイテムをCSV取得して反復
      もし回数>1ならば
       対象[2]=対象[0]*対象[1]
      結果に対象を配列追加
     Gのアイテムは結果

[ 親 8342 / □ Tree ] 返信 削除キー/
[ 親 8342 / □ Tree ] 返信

▲[ 8343 ] / 返信無し
/ 2階層)  Re[2]: グリッド計算
□投稿者/ kokiriko 【115.179.30.54】(2009/12/18(Fri) 10:55:26)

    SWinXさん本当にいつもありがとうございます。

    SWinXさんが提供していただいたソースを元にした所、
    どうにか動くようになりました。感謝感謝です。

    > 1.当然です。「行選択」動作と「編集」動作を切り替えているので両立は無理。
    そういう事でしたか。何度試してみても上手くいかないので・・・

    > 2.Wikiに書かれている通りにプログラムすればOK。
    > 「結果」という配列に一時的に入れて、計算後に書き戻してみました。
    そのようにしたつもりだったのですが、完全に勘違いをしていました。
    ありがとうございました。


    // ここから

    # グリッド計算テスト
    #
    #  kokiriko
    #
    # このプログラムは「焼きそばさん」がHP「なでしこ」でプログラミングで公開をしている
    # 「第12回 フォルダサイズ計算(2)」http://blognekouser.blog56.fc2.com/ 」を参考に
    # 作成を致しました。
    # グリッド計算の部分は「SWinXさん」から何度もご助言を頂ました、深く感謝致します。
    #  

    /*
     ファイルドロップするとグリッドにセットされます
    */

    CodeCD=「0001」

    ※※※積み木デザイナ:ここから※
    ※ 以下はデザインデータです。
    ※ コメントを削除しないようにしてください。
    ※ ---
    ※母艦とはフォーム##生成
    母艦は「メインフォーム」
    そのクライアントW=744#数値
    そのクライアントH=544#数値
    そのタイトル=「グリッド計算テスト」#文字列
    ※ ---
    ラベル1とはラベル##生成
    そのX=16#数値
    そのY=320#数値
    そのW=600#数値
    そのH=40#数値
    そのテキスト=「フォルダーを母艦にドロップしてください。MBと数に数字を入力して見てください。
    下段に移動した際に計算結果が表示されます。」#文字列
    ※※※積み木デザイナ:ここまで※

    ※ ---
    グリッドAとはグリッド##生成
    そのX=32#数値
    そのY=72#数値
    そのW=664#数値
    そのH=224#数値
    その編集はオン。
    ※ ---
    そのクリックした時は
      結果とは配列
      グリッドAのアイテムをCSV取得して反復
         もし回数>1ならば
         対象[5]=対象[2]*対象[4]
         結果に対象を配列追加
      グリッドAのアイテムは結果

    ※ ---
    母艦のファイルドロップ許可はオン。一覧は「コード,フォルダ,MB,Byte, 数, 計算 」#4
    母艦のファイルドロップされた時は#5
      母艦のドロップファイルを反復#6
        もし、対象のフォルダ存在が0ならば続ける。#7
        サイズは0。#8
        対象の全ファイル列挙を反復#9
          サイズ=サイズ+(対象のファイルサイズ)。#10
         一時は空。
         一時[0]はCodeCD
         一時[1]は対象の末尾フォルダ。
         一時[3]はサイズ。#11
         一時[4]は一時[4]を通貨形式
         一時[2]はINT(一時[3]/1024/1024/1000)を通貨形式。
         一時[5]はINT(一時[2]*一時[4])を通貨形式。
         一覧に一時を配列追加。#12
        グリッドAのアイテムは一覧。母艦ハンドルを窓ハンドルアクティブ。#13
    グリッドAのアイテムは一覧。#14
    グリッドAに注目。#23

    ●末尾フォルダ(Sの) SはSを「\」で区切る。S[Sの配列要素数-1]を戻す。#24

    // ここまで

解決済み!
[ 親 8342 / □ Tree ] 返信 削除キー/
[ 親 8342 / □ Tree ] 返信


Pass/

BBS CGI RSS CGI
Child Tree RSS/SPAM対応版