[ 新規に投稿する ]

検索フォルダでのSetSortMethodについてNo.01895
プックン さん 09/05/23 04:12 [ コメントを投稿する ]
  秀まるおさん、こんばんは。
検索フォルダでの、メール一覧のsort設定を実施すると
一覧のところで"!!中断!! 検索フォルダの結果は不完全です"と
なってしまいます。
検索フォルダでは、Sortの順番を設定する機能はサポートされて
いないのでしょうか?。
よろしくお願いいたします。

//debug.mac
 loaddll "TKInfo.dll";
 ##n = dllfunc("ExecAtMain","GetFolderPropFlags");
 //検索フォルダの場合
 if((##n & 0x10) == 0x10){
  //スケジュールフォルダが検索フォルダであることを示す。
  ##flag_grepfolder = 1 ; 
 }
 ##n = dllfunc("ExecAtMain","SetGrepFolderAutoInvalidate", 0);
 ##SortMethod = dllfunc("ExecAtMain","SortMethod");
 if(##SortMethod != 3){
  //送受信の日付,新しいメールが下側になるようにsortする。
  ##n = dllfunc("ExecAtMain","SetSortMethod", 3);
 }
 freedll;
 endmacro;
//debug.macおわり
[ ]
RE:01895 検索フォルダでのSetSortMethodについてNo.01896
プックン さん 09/05/23 08:49 [ コメントを投稿する ]
  動作環境を記載していませんでしたので、追記します。

OS:Windows XP Home
秀丸メール:Ver5.16,Ver5.17
[ ]
RE:01896 検索フォルダでのSetSortMethodについてNo.01899
プックン さん 09/05/23 14:57 [ コメントを投稿する ]
  秀まるおさま、こんにちは。
検索フォルダ関連で、もう少し確認させてください。
SetThreadView,MailCountAllの動作は、検索フォルダで対応されているのでしょうか?。
よろしくお願いいたします。
//debug.macおわり
 loaddll "TKInfo.dll";
 ##n = dllfunc("ExecAtMain", "SetGrepFolderAutoInvalidate", 0);
 //"Schedule-move: 1"
 ##IsThreadView = dllfunc("ExecAtMain", "IsThreadView") ;
 if(##IsThreadView != 0){
  ##n = dllfunc("ExecAtMain", "SetThreadView",0) ;
  if(##n == 0) {
   message "メール一覧枠の一覧表示への切り替え失敗\n" ;
  }
 }
 ##cnt = dllfunc("ExecAtMain", "MailCountAll") ;
 message "メール数=" + str(##n) ;
 freedll;
 endmacro;
//debug.macおわり
動作環境
 OS:Windows XP Home
 秀丸メール:Ver5.17
[ ]
RE:01899 検索フォルダでのSetSortMethodについてNo.01901
秀まるお さん 09/05/23 15:44 [ コメントを投稿する ]
   ご指摘いただいた通りなんですが、現状で、検索フォルダをマクロを使って何
かしようとしてもうまくいかないことが多いです。

 必要ならば対応は可能なので、ぼちぼち対応していこうと思います。

 とりあえず、

 SetThreadView, IsThreadView, SortMethod, SetSortMethod

 は対応します。

 MailCountAllは0を返しますが、MailCountは正しいメール数を返すので、そっ
ちを使ってほしいです。
[ ]
RE:01901 検索フォルダでのSetSortMethodについてNo.01905
プックン さん 09/05/24 11:42 [ コメントを投稿する ]
  秀まるおさま、回答ありがとうございます。

> 必要ならば対応は可能なので、ぼちぼち対応していこうと思います。
>
> とりあえず、
>
> SetThreadView, IsThreadView, SortMethod, SetSortMethod
>
> は対応します。

いそぎませんので、ぼちぼち対応よろしくお願いいたします。

> MailCountAllは0を返しますが、MailCountは正しいメール数を返すので、そっ
>ちを使ってほしいです。
了解しました。
[ ]
RE:01901 検索フォルダでのSetSortMethodについてNo.01914
プックン さん 09/05/25 23:08 [ コメントを投稿する ]
  秀まるおさま、対応ありがとうございます。
SetThreadViewの動作としては、期待通りなのですが返り値が
成功しているのに0になっているようです。
確認よろしくお願いします。
>返り値(数値型) 
> 選択に成功した場合は1、失敗した場合は0を返します

検索フォルダで
送受信の日付,新しいメールが上側のソート
スレッド表示
でマクロを実行

マクロ実行結果
 スレッド=>一覧表示切替結果=0
 表示状態=0
 一覧表示=>From/To列によるグループ化切替結果=0
 表示状態=2
 From/To列によるグループ化=>送受信日付によるグループ化切替結果=0
 表示状態=3
 送受信日付によるグループ化=>Date:ヘッダの日付によるグループ化切替結果=0
 表示状態=4
 Date:ヘッダの日付によるグループ化=>一覧表示切替結果=0
 表示状態=0
 
 SortMethod3結果=1
 表示状態=3
 
 SortMethod3+12結果=1
 表示状態=15

//debug.mac
 loaddll "TKInfo.dll";
 ##n = dllfunc("ExecAtMain", "SetGrepFolderAutoInvalidate", 0);
 //"Schedule-move: 1"
 ##IsThreadView = dllfunc("ExecAtMain", "IsThreadView") ;
 if(##IsThreadView != 0){
  ##n = dllfunc("ExecAtMain", "SetThreadView",0) ;
  if(##n == 0) {
   message "メール一覧枠の一覧表示への切り替え失敗\n" ;
  }
  $$s = "スレッド=>一覧表示切替結果=" + str(##n) + "\n" ;
  ##n = dllfunc("ExecAtMain", "IsThreadView") ;
  $$s = $$s + "表示状態=" + str(##n) + "\n" ;
  message $$s ;
 }
 ##n = dllfunc("ExecAtMain", "SetThreadView",2) ;
 $$s = $$s + "一覧表示=>From/To列によるグループ化切替結果=" + str(##n) + "\n" ;
 ##n = dllfunc("ExecAtMain", "IsThreadView") ;
 $$s = $$s + "表示状態=" + str(##n) + "\n" ;
 message $$s ;
 ##n = dllfunc("ExecAtMain", "SetThreadView",3) ;
 $$s = $$s + "From/To列によるグループ化=>送受信日付によるグループ化切替結果=" + str(##n) + "\n" ;
 ##n = dllfunc("ExecAtMain", "IsThreadView") ;
 $$s = $$s + "表示状態=" + str(##n) + "\n" ;
 message $$s ;
 ##n = dllfunc("ExecAtMain", "SetThreadView",4) ;
 $$s = $$s + "送受信日付によるグループ化=>Date:ヘッダの日付によるグループ化切替結果=" + str(##n) + "\n" ;
 ##n = dllfunc("ExecAtMain", "IsThreadView") ;
 $$s = $$s + "表示状態=" + str(##n) + "\n" ;
 message $$s ;
 ##n = dllfunc("ExecAtMain", "SetThreadView",0) ;
 $$s = $$s + "Date:ヘッダの日付によるグループ化=>一覧表示切替結果=" + str(##n) + "\n" ;
 ##n = dllfunc("ExecAtMain", "IsThreadView") ;
 $$s = $$s + "表示状態=" + str(##n) + "\n" ;
 message $$s ;
 //送受信の日付,新しいメールが下側になるようにsortする。
 ##n = dllfunc("ExecAtMain","SetSortMethod", 3);
 $$s = $$s + "\nSortMethod3結果=" + str(##n) +"\n";
 ##n = dllfunc("ExecAtMain", "SortMethod") ;
 $$s = $$s + "表示状態=" + str(##n) + "\n" ;
 message $$s ;
 //送受信の日付,新しいメールが上側になるようにsortする。
 ##n = dllfunc("ExecAtMain","SetSortMethod", 3+12);
 $$s = $$s + "\nSortMethod3+12結果=" + str(##n) +"\n";
 ##n = dllfunc("ExecAtMain", "SortMethod") ;
 $$s = $$s + "表示状態=" + str(##n) + "\n" ;
 message $$s ;
 //式の値をクリップボードに設定します。
 setclipboard $$s;
 freedll;
 endmacro;
//debug.macおわり

環境:
Windows XP Home
秀丸メール:5.18Beta1
[ ]
RE:01914 検索フォルダでのSetSortMethodについてNo.01918
秀まるお さん 09/05/26 09:56 [ コメントを投稿する ]
   まいどどうも。

 SetThreadViewの返り値が0になってしまう件はさっそく修正させていただきま
す。
[ ]
RE:01918 検索フォルダでのSetSortMethodについてNo.01928
プックン さん 09/05/26 22:24 [ コメントを投稿する ]
  >V5.18β2
>バグ修正
>SetThreadView関数を検索フォルダで実行した場合の返り値が0になってしまうバグ修正。
早速対応していただいたようなので、試してみました。
しかし、SetThreadViewの帰り値が0のままのようです。
確認よろしくお願いします。

環境:
Windows XP Home
秀丸メール:5.18Beta2
[ ]
RE:01928 検索フォルダでのSetSortMethodについてNo.01930
秀まるお さん 09/05/27 00:04 [ コメントを投稿する ]
   すみません。テストしてませんでした。

 ソースコード上で「return TRUE」するようにしたから大丈夫だと思ってテス
トし忘れてしまいました。

 次はちゃんとテストしてアップロードさせていただきます。
[ ]
RE:01930 検索フォルダでのSetSortMethodについてNo.01937
プックン さん 09/05/27 20:03 [ コメントを投稿する ]
  対応ありがとうございました。
問題なく動作しました。

動作環境:
Windows XP Home
秀丸メール:5.18Beta3
[ ]

[ 新規に投稿する ]