過去の桐井戸端BBS (桐ver.9)
26101 コマンドボタンから任意の期間のデータ絞り込みでデータ型変換の記述がうまくいかない 渡辺金一 2004/04/28-07:50
桐の初心者です。
桐 V9 SP-1
メイン&サブフォームでコマンドボタンから任意の期間のデータ絞り込みでデータ型変換の記述がうまくいきません。
[日付] データ型:日時値,編集初期値式:#日時日付(#日時値)
[目的] データ型:文字列
局所変数 &A, &B データ型:日時,&ABデータ型:文字列
[日付}のみの範囲を絞り込み検索するものと[目的]の条件にあう[日付]の
範囲を絞り込み検索の二とうり行いたいのです。
表編集の絞り込みで履歴を生成させると
検索条件登録 "A条件01",{[日付]{d"2004/4/1"<=[]<d"2004/4/30"},[目的]
{"A"}} ----{d"2004/4/1"<=[]<d"2004/4/30"}の日付を変数で処理したい
絞り込み 条件名="" と
検索条件登録 "",{[日付]{d"2004/4/1"<=[]<d"2004/4/30"}
絞り込み 条件名="" が生成されました。
[日付}の範囲検索ためにd"2004/4/1"<=[]d"2004/4/30"を変数で処理行う場合
[日付}のみの範囲を絞り込み検索テキストのソースに&A と &Bを設定しコマンドボタンに
   機能名    機能パラメータリスト
1  なし     #代入{(&AB , (>=d"&A" <=[]<d"&B")}
2  検索_比較式  _&AB
では比較できない日付のデータ型になり、関数「#代入」の場合は文字列の
計算式で比較と思いますが文字列連結の記述をお教え下さい。
#文字列(d"2004/4/1")変換でしょうが、変数&A(, &B)の場合は#文字列(&A)でしようか。
又、[日付]と[目的]の場合は2番目の機能名は検索_条件名になるのでしょうか。
先日お教えいただいたイベントで処理でもよい思っています。
関連のBBSもみましたが、うまく利用出来ませんでした。
ご指導のほどよろしくお願いします。
26105 Re:日時値データの期間検索について アックン(=^・^=) 2004/04/28-11:18
記事番号26101へのコメント
渡辺金一さん、こんにちは。
[日付]だけで機関を絞り込むときは、こうしてみてはどうでしょう。

1行目の機能パラメータリスト
 #set(AB,"d"""+#str(&A)+"""<=[日付]<=d"""+#str(&B)+"""")

 #str は #文字列 のことです。
 #str(&A) を #日付(&A,1) としても、ここでは同じ結果になります。

もうひとつ質問があるようですが、ふたつの質問をごったに書かれているので、
ちょっとじっくり読む時間をください。
他の方がわかれば、どんどん書いてください。>ALL

26106 Re:日時値データの期間検索について アックン(=^・^=) 2004/04/28-12:00
記事番号26101へのコメント
渡辺金一さん> もうひとつの質問への回答です。

 機能名      機能パラメータリスト
1 なし       #set(AB,"d"""+#str(&A)+"""<=[日付]<=d"""+#str(&B)+"""")
2 なし       #set(STR,&STR+","+"[目的]="""+&C+"""")
3 絞り込み_比較式  _&AB

[目的]の項目値を入力するテキストボックスのソースを &C にします。
( &C の変数タイプは文字列 )

ひとつめの質問の回答(No.26105)を補足します。
1行目は同じでいいのですが、2行目は 検索_比較式 ではなく、絞り込み_比較式 を使ってください。
(今これを書いていて、気づきました。)

 機能名      機能パラメータリスト
1 なし       #set(AB,"d"""+#str(&A)+"""<=[日付]<=d"""+#str(&B)+"""")
2 絞り込み_比較式  _&AB

「検索」と「絞り込み」は別モノです。「絞り込み検索」という用語は桐にありません。
このあたりを整理して理解されると、さらにいいフォームができると思います。
26108 Re:日時値データの期間検索について アックン(=^・^=) 2004/04/28-12:08
記事番号26106へのコメント
また訂正
わかりにくいので、も一度最初から。
ふたつめの質問への回答
 機能名      機能パラメータリスト
1 なし       #set(AB,"d"""+#str(&A)+"""<=[日付]<=d"""+#str(&B)+"""")
2 なし       #set(AB,&AB+","+"[目的]="""+&C+"""")
3 絞り込み_比較式  _&AB

2行目の &STR を &AB に、STR を AB にします。

26113 Re:日時値データの期間検索について 渡辺金一 2004/04/28-18:00
記事番号26106へのコメント
アックンさんありがとうございます。
>ひとつめの質問の回答(No.26105)を補足します。
> 機能名      機能パラメータリスト
>1 なし       #set(AB,"d"""+#str(&A)+"""<=[日付]<=d"""+#str(&B)+"""")
>2 絞り込み_比較式  _&AB
>
上記の記述で試してみましたが、KD1571:日時型または時間型データ形式に誤りがあります。
d"""← のエラー表示が出て絞り込みが出来ませんでした。
質問の仕方が悪くどうもすみません。
ひとつめの質問は、
[日付]データ型:日時値,編集初期値式:#日時日付(#日時値) --- この日付は既に入力されているデータです。
[目的]データ型:文字列
局所変数 &A,&B データ型:日時,&AB データ型:文字型
フォームに テキストのソース &A テキストのソース &B コマンドボタン 機能名、機能パラメータリスト
を記述し、&Aの欄に2004/4/1 &Bの欄に2004/4/30と入力してコマンドボタンで検索しました。
なお、[日付]の項目計算式に下記のような条件選択を記述してテスト中ですが上記の[日付]にはデータは未入力です。
#条件選択([条件]="1",#月数加算([今日],6,1),[条件]="4",#年数加算([今日],1),[条件]="5",#年数加算([今日],1))
ふたつめの質問はまだおこなっておりません。
以上よろしくお願いします。 


26115 Re:日時値データの期間検索について アックン(=^・^=) 2004/04/28-18:57
記事番号26113へのコメント
渡辺金一さん>
ぼくの方では、絞り込みできてます。変数値を確認してみましょうか。

 &A  2004/ 4/ 1 0: 0: 0
 &B  2004/ 4/30 0: 0: 0
 &AB  d"2004- 4- 1"<=[日付]<=d"2004- 4-30"

環境設定によって区切り文字など形式が若干異なると思いますけど、ぼくの方では上のようになってます。
&A をソースとするテキストボックスに、4/1 と入力したら、2004/ 4 / 1 と入ります。
26116 Re:日時値データの期間検索について 渡辺金一 2004/04/28-20:41
記事番号26115へのコメント
アックンさんありがとうございます。
機能パラメータの1個所が違っておりました。
変数値を確認した結果は同じでした。
&A  2004/ 4/ 1 0: 0: 0
&B  2004/ 4/30 0: 0: 0
&AB  d"2004/ 4/ 1"<=[日付]<=d"2004/ 4/30"
ただし、絞り込みされた結果がどこにあるのか、表を開いても絞り込まれていないのでテーブルを作成して書き出してみます。
渡辺金一
26123 Re:日時値データの期間検索について 渡辺金一 2004/04/29-10:23
記事番号26115へのコメント
アックン(=^・^=)さんありがとうございます。
ひとつめの質問に関して
絞り込みを行い表を開いても絞り込まれていなかったのは、フォームのヘッダー部にグループ項目[ID]を
設定していたため、そのグループのデータしか絞り込み対象にしかならず対象データが存在しないときは
絞り込み件数ゼロでした。ヘッダー部にグループ項目なしで絞り込みを行うと期間検索が出来ました。
多重化_フォーム編集する方法も可能ではと思いますが、その是非などご意見いただければと思います。
ふたつめの質問に関して
絞り込みを行い表を開いて見ると期間検索は出来ていますが[目的]に対しては絞込みされていません。
上記の絞り込み件数と同じでした。
なお、絞り込んだデータは印刷対象のデータにするためには表に書き出したいのですがコマンドボタンの
オブジェクトは4個しか使えないのでイベント作成する場合には期間検索部分などはそのまま利用出来るのでしょうか。
以上ご指導のほどよろしくお願い致します。
26127 Re:日時値データの期間検索について 渡辺金一 2004/04/29-16:51
記事番号26123へのコメント
>アックン(=^・^=)さんありがとうございます。
>ふたつめの質問に関して
>絞り込みを行い表を開いて見ると期間検索は出来ていますが[目的]に対しては絞込みされていません。
>上記の絞り込み件数と同じでした。
2番目のパラメータリストの一部に誤記載が見つかり訂正しうまくいきました。
大変申し訳ございませんでした。
渡辺金一
26162 Re:日時値データの期間検索について アックン(=^・^=) 2004/05/06-09:26
記事番号26123へのコメント
渡辺金一さん、こんにちは。
二つめの方を、下記のように1行にしたら4行に収まるでしょうか。
もし無理なら、イベントにしますが・・・・・・。

・機能名
 絞り込み_比較式
・パラメータリスト
 _#set(STR,"d"+""""+#str(&a)+""""+"<=[日付]<=d"+""""+#str(&b)+""""+","+"[借方科目]="+""""+&c+"""")

パラメータリストの先頭に、 _ (アンダーバー)を付けてください。
比較式のたまにエラーが出る箇所("d""")を、省略形をやめて書き直しました。(^^;

>ひとつめの質問に関して
>絞り込みを行い表を開いても絞り込まれていなかったのは、フォームのヘッダー部にグループ項目[ID]を
>設定していたため、そのグループのデータしか絞り込み対象にしかならず対象データが存在しないときは
>絞り込み件数ゼロでした。ヘッダー部にグループ項目なしで絞り込みを行うと期間検索が出来ました。
>多重化_フォーム編集する方法も可能ではと思いますが、その是非などご意見いただければと思います。

 すみません。何をしたいのかよくわかりません。
26165 Re:日時値データの期間検索について 渡辺金一 2004/05/06-21:12
記事番号26162へのコメント
アックンさんありがとうございます。
コマンドボタンの機能名、パラメータリスト4行では無理と思いますのでイベントで処理できればと思います。
下記のイベントで試した結果
1.期間の絞り込み ?
2.目的の絞り込み
3.表に書き出し
4.表の併合 --- データを印刷対象表に
5.表の行削除 又は、表の削除 ?

手続き定義開始 "目的検索"()
編集表 "C"
検索条件"",{[目的]{あ}}
絞り込み 条件名=""
表 "X.TBL"
行削除 *,圧縮 ---- ?
終了 表,リトライ=しない ---- ?
書き出し条件登録 表,条件名="","X.TBL",追加,ファイル名変更=しない,{[ID],・・・}
書き出し 表,条件名=""
手続き定義終了

よろしくお願いします。
渡辺金一 

26178 Re:日時値データの期間検索について アックン(=^・^=) 2004/05/07-09:43
記事番号26165へのコメント
渡辺金一さん>
イベント処理の方法をいくつか。

●方法1
(例1)
 &STR = "d"+""""+#str(&a)+""""+"<=[日付]<=d"+""""+#str(&b)+""""+","+"[目的]="+""""+&c+""""
 絞り込み [日付]_&STR

(例2)
 &STR = "d"+""""+#str(&a)+""""+"<=[日付]<=d"+""""+#str(&b)+""""+","+"[目的]="+""""+&c+""""
 絞り込み [伝票No]_&STR

例2では、「絞り込み [日付]・・」の[日付]は他の項目名でもいいようですよ。
「&STR = ・・」の行はまったく同じ内容です。項目名[日付]を明示しています。
例1は、[日付] を [] と省略できます。
例2は、省略できません。

例1、例2とも、&STR の値を1行の式だけで求めていますが、2行に書けば次のようになります。

(例3)
 &STR = "d"+""""+#str(&a)+""""+"<=[日付]<=d"+""""+#str(&b)+""""
 &STR = &STR+","+"[目的]="+""""+&c+""""
 絞り込み ・・

2行目で「&STR = &STR+・・」として、 文字列を連結しています。

--------------------------
●方法2
(例4)
 method @コマンドボタン_1.実行()

 methodというのは、「メソッド実行」のことです。
方法2では、コマンドボタンをワークスペース(フォーム定義画面の周囲の白い囲み)に配置しておきます。(コマンドボタン_1)
機能名やパラメータリストは前回の通りです。イベントは書きません。

・機能名
 絞り込み_比較式
・パラメータリスト
 _#set(STR,"d"+""""+#str(&a)+""""+"<=[日付]<=d"+""""+#str(&b)+""""+","+"[目的]="+""""+&c+"""")

コマンドボタンをもう1個、フォーム上に配置します。(コマンドボタン_2)
こちらのボタンにはイベントだけ書きます。機能名やパラメータリストは書きません。

方法2の動く仕組みはこうです。
コマンドボタン_2 をクリックすると、イベントが実行開始します。
「method・・」の行になると、コマンドボタン_1 に定義されている機能名を実行します。
再びイベントの次の行に実行が移ります。

26179 Re:日時値データの期間検索について アックン(=^・^=) 2004/05/07-09:46
記事番号26178へのコメント
渡辺金一さん>
>例1は、[日付] を [] と省略できます。
省略できるのは、1行目です。「&STR =・・」の行のです。

26187 Re:日時値データの期間検索について 渡辺金一 2004/05/07-17:26
記事番号26178へのコメント
アックンさんありがとうございました。
●方法1 例1〜3 イベント処理すべてうまくいきました。●方法2については後日行ってみます。
コマンドの使い方を勉強して活用していきたい思います。
今回は本当にありがとうございました。
今後ともご指導のほとよろしくお願い致します。
渡辺金一

戻る