検索フォルダでの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 検索フォルダでのSetSortMethodNo.01896
プックン さん 09/05/23 08:49
 
動作環境を記載していませんでしたので、追記します。

OS:Windows XP Home
秀丸メール:Ver5.16,Ver5.17

[ ]
RE:01896 検索フォルダでのSetSortMethodNo.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 検索フォルダでのSetSortMethodNo.01901
秀まるお さん 09/05/23 15:44
 
 ご指摘いただいた通りなんですが、現状で、検索フォルダをマクロを使って何
かしようとしてもうまくいかないことが多いです。

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

 とりあえず、

 SetThreadView, IsThreadView, SortMethod, SetSortMethod

 は対応します。

 MailCountAllは0を返しますが、MailCountは正しいメール数を返すので、そっ
ちを使ってほしいです。

[ ]
RE:01901 検索フォルダでのSetSortMethodNo.01905
プックン さん 09/05/24 11:42
 
秀まるおさま、回答ありがとうございます。

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

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

> MailCountAllは0を返しますが、MailCountは正しいメール数を返すので、そっ
>ちを使ってほしいです。
了解しました。

[ ]
RE:01901 検索フォルダでのSetSortMethodNo.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 検索フォルダでのSetSortMethodNo.01918
秀まるお さん 09/05/26 09:56
 
 まいどどうも。

 SetThreadViewの返り値が0になってしまう件はさっそく修正させていただきま
す。

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

環境:
Windows XP Home
秀丸メール:5.18Beta2

[ ]
RE:01928 検索フォルダでのSetSortMethodNo.01930
秀まるお さん 09/05/27 00:04
 
 すみません。テストしてませんでした。

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

 次はちゃんとテストしてアップロードさせていただきます。

[ ]
RE:01930 検索フォルダでのSetSortMethodNo.01937
プックン さん 09/05/27 20:03
 
対応ありがとうございました。
問題なく動作しました。

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

[ ]