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

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

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

■843 / inTopicNo.1)  フォーム形式と表形式での作業について
  
□投稿者/ ET -(2006/01/15(Sun) 01:53:35)
    表形式でお客様の売上データが20行はいっているとします。
    バラバラに入力してあるとして、お客様の「ふりがな順」にならべかえたとします。
    フォーム形式にも「ふりがな順」の索引をつくってあるとします。
    画面を表形式に切り替えると基本状態にもどってしまいます。フォーム形式で
    みて順次おくっていくとならべかわっているのですが、表形式に切り替えると基本状態に
    なってしまいます。切り替えても「ふりが順」のままにはできないのでしょうか
    フォーム形式のグループには、お客様・ふりがな・住所がはいっておりまか。
    テキストには、年・月・日・商品名・単価・金額がはいっております。索引は「ふりがな順」
    しか設定しておりません。グループ全部を索引にいれなければいけないのでしょうか?

引用返信 [メール受信/OFF] 削除キー/
■844 / inTopicNo.2)  表編集とフォームでの並べ替え
□投稿者/ 佐田 守弘 -(2006/01/15(Sun) 08:30:24)
http://www.m-sada.com
    ●表編集での並べ替え
    まず、
     >フォーム形式にも「ふりがな順」の索引をつくってあるとします。
    と書かれていますが、フォームでは索引設定の機能がないので、表編集画面で表に索引が作られている
    ものと解釈します(フォームで作ったのはグループ項目でしょうか)。
    まず、表の画面で並べ替え条件を設定しますが、その際に索引を使った並べ替え条件の設定が行えます。
    多分、ここまではされているのだと思います。
    但し、並べ替え条件を作っただけでは、表を開いた時に並べ替えは行われません。
    
    表を開いた時に指定の並べ替えを行う様にするには、表編集画面で[属性]→[表の表示条件]を選び、
    「開始時に使用する並べ替え条件」に上記で作った並べ替え条件名を設定して下さい。
    ▼ボタンで選択できます。
    以上を行えば、フォームから表に切り替えた時にも、並べ替え状態で表示されると思います。
    
    ●フォームのグループ項目
    次に、
     > フォーム形式のグループには、お客様・ふりがな・住所がはいっておりまか。
     (文脈から見て最後の「か。」は、「が、」でしょうか)
    ですが、フォームでの並べ替えの変わりにグループ項目を使っているようですね。グループ項目とフォーム
    での並べ替えは別機能です。
    
    フォームで並べ替えを設定するには、[編集対象表]のタブを開き、「表の操作」ボタンを押します。
    「表の操作」ダイアログが表示されるので、「開始条件種別1」に「並べ替え」を、次いで、条件名1
    に上記の並べ替え条件名を設定して下さい。これで表の並べ替えが踏襲されます。
    
    グループ項目とは、フォームに一度に表示するデータをグループ化して絞り込む機能で、並べ替えでは
    ありません。結果として似た様なことになるかとは思いますが。
    グループ項目はいくつでも作れますが、「お客様・ふりがな・住所」の様に重複したデータで、かつ、
    文字列数が長い項目で作るのはあまり感心しません。データが増えた時にグループかの処理に時間が
    かかるおそれがあります。グループ化は単純な項目ですべきでしょう。
    本来はお客様毎に設定したID番号の様なものでグループ化するのが良いかと思います。

引用返信 [メール受信/OFF] 削除キー/
■845 / inTopicNo.3)  Re[2]: 表編集とフォームでの並べ替え
□投稿者/ ET -(2006/01/15(Sun) 12:03:45)
    佐田 守弘さん、ありがとうございます。
    
    > ●表編集での並べ替え
    > まず、
    >表を開いた時に指定の並べ替えを行う様にするには、表編集画面で[属性]→[表の表示条件]を選び、
    > 「開始時に使用する並べ替え条件」に上記で作った並べ替え条件名を設定して下さい。
     表については、属性で設定はしてあります。だから売上.TBLを表からひらけば「ふりがな順」
     にならんでくれています。
    
    
    > ●フォームのグループ項目
    > フォーム形式のグループには、お客様・ふりがな・住所がはいっておりまか。
      すいません、グループには、お客様・ふりがな・住所がはいっております。でした
    
    > フォームで並べ替えを設定するには、[編集対象表]のタブを開き、「表の操作」ボタンを押します。
    > 「表の操作」ダイアログが表示されるので、「開始条件種別1」に「並べ替え」を、次いで、条件名1
    > に上記の並べ替え条件名を設定して下さい。これで表の並べ替えが踏襲されます。
      フォームの開始条件種別1にも登録してあるのです。なのにフォーム表示でみているとちゃんと
      ふりがな順にならんでいますが「フォーム/表」の切り替えボタンで表形式に切り替えると、表の
      基本状態にもどっています。またいちいち表形式の状態で並べ替えを実行しなくてはならないのです。
      フォームの状態で絞り込んであるので表形式に切り替えたら選択解除になって、基本状態に戻って
      しまうのですか? ご指導下さい

引用返信 [メール受信/OFF] 削除キー/
■848 / inTopicNo.4)  Re[3]: 表編集とフォームでの並べ替え
□投稿者/ 今村 誠 -(2006/01/16(Mon) 00:32:28)
    ETさんこんにちは
    フォームで索引を設定するには、[編集対象表]のタブを開き、
    「表の操作」ボタンを押します。
    「表の操作」ダイアログが表示されるので、「開始条件種別1」
     に「索引」を、次いで、条件名1に上記の並べ替え条件名を設定
    して下さい。これで表の並べ替えが踏襲されます。
    
    ここで使用する索引は全てのグループ項目が入っていることと
    索引を作る順番が大事です。
     フォームを再定義で開いてオブジェクトのリストを表示し、
    そのリストのヘッダ部分のグループ項目の上の方から順番に
    指定しないとフォームではその索引は使われないことになり
    表編集に戻ったときに基本状態となります。
     索引がないとエラーを表示するので、メンテナンスで困ら
    ないようにフォーム終了イベントに索引を作成する手続きを
    作り、表で索引を削除した場合でも直ぐ復活するように
    した方がいいでしょう。
     サンプルをアップしましたので参考にしてみて下さい。
    
    ps アックンさんのサンプルを勝手に作り替えました。
      不都合がある場合削除して下さい。


et.lzh
/8KB
引用返信 [メール受信/OFF] 削除キー/
■851 / inTopicNo.5)  Re[4]: 表編集とフォームでの並べ替え
□投稿者/ ET -(2006/01/16(Mon) 15:55:14)
    ■No848に返信(今村 誠さんの記事)
    > ETさんこんにちは
    > フォームで索引を設定するには、[編集対象表]のタブを開き、
    > 「表の操作」ボタンを押します。
    > 「表の操作」ダイアログが表示されるので、「開始条件種別1」
    >  に「索引」を、次いで、条件名1に上記の並べ替え条件名を設定
    > して下さい。これで表の並べ替えが踏襲されます。
     アックンさん、今村さんありがとうございます。
     表に索引を作っています。一つの[ふりがな]という項目だけを昇順にして
     作成しておりました。フォームでのグループ全部を使用して、表の索引をつくるのですね。
     そうするとフォームのグループが10項目以上になると表の索引項目が10項目が限界でした
     フォームのグループに置くのは、10項目しかだめになってくるのでしょうか?
     まだできていませんがサンプルを研究させていただきがんばってみます。
     今村さんのサンプルはフォームから一覧表に切り替えても索引はちゃんと働いておりました。
     
    

引用返信 [メール受信/OFF] 削除キー/
■855 / inTopicNo.6)  Re[5]: 表編集とフォームでの並べ替え
□投稿者/ 今村 誠 -(2006/01/16(Mon) 20:15:06)
    ETさんこんにちは
    >そうするとフォームのグループが10項目以上になると表の索引項目が10項目が限界でした
    >フォームのグループに置くのは、10項目しかだめになってくるのでしょうか?
    
    索引の制限に引っかかったのですか!!
     わたしも見積書や請求書などでグループ項目は使いますが
    ふりがな、得意先名、見積番号、登録日、見積日位で後はフォームに
    テキスト表示に計算式を指定することがほとんどです。
     得意先.tblには沢山項目がありますが、売上や見積には必要ありま
    せんから、レポート印刷の時は表引きで印刷します。
    
     話は本題に戻りますが、フォーム→再定義→オブジェクトの属性を
    表示し、ワークスペースで左クリック→オブジェクトの属性からイベ
    ントタブを指定しフォーム終了イベントをチェックをすれば、自分の
    希望する並び替えで並び変わった後、カレントレコードで表編集でき
    ると思います。
     最初に説明した並び替え条件の指定は外した方が無駄がないと思い
    ます。
     索引定義がいくつかあるなら下記のようにイベントを書き換えると
    好きな並び替え順で表示してくれると思います。
    proc cmd表編集()
     if (#総件数)
      変数宣言 整数{&tmp状態,&取消は0},Str {&条件名="索引名"}
      method @フォーム.更新モード取得(&tmp状態)
      COND (&tmp状態<>0) method @フォーム.更新モード設定( 0 )
      cond (#EOF) \
       ジャンプ 行番号=前行 /* 終端行には行マークできない */
       行マーク定義 2
       グループ選択解除
       解除 * /* 索引定義は基本状態でないとできない */
       if (#処理条件名検索(14,"ふりがな")<1) /* オブジェクトのリストは shift+↑↓ で上下移動 */
         索引定義 索引名="ふりがな", 重複=許可, 条件登録="ふりがな",\
          {[ふりがな]辞書順,[得意先名]昇順,[住所]昇順,[得意先コード]昇順}
       end  /* オブジェクトのグループリスト順全部含むように定義すること */
       call cmd条件指定(&条件名,&取消は0)
       cond ( &取消は0<>0 ) 並べ替え 索引名=&条件名
       ジャンプ 行マーク=2
     end
    end
    
    proc cmd条件指定(参照 Str &条件名,参照 整数 &count)
     var Str{&menu3str},整数{&桁数=0}
     if (&条件名=索引名)
      if (#索引条件数=1) 
       &条件名=#索引条件名(1),&count=1
      else if (#索引条件数>1)
      繰り返し &count=1,#索引条件数
       &桁数=#cond(&桁数<#桁数(#索引条件名(&count)),#桁数(#索引条件名(&count)),1,&桁数)
       &menu3str=#s(&menu3str,&count,#索引条件名(&count)) 
      繰り返し終了
      メニュー3 &count,1,(3,50),"&条件名",&menu3str,"中止:Esc"\
         ,行数=#索引条件数, 桁数=&桁数
       &条件名=#対応文字列(&menu3str,&count)
      else
       &条件名="",&count=0
      end
     end
    end
    手続き定義開始 フォーム::フォーム終了() /* ワークスペースでイベントタブを開くと2行目にある□をι */
      call cmd表編集() /* 普段は使用しないが索引を誤って削除した場合に実行する */
    手続き定義終了

引用返信 [メール受信/OFF] 削除キー/
■857 / inTopicNo.7)  Re[5]: 表編集とフォームでの並べ替え
□投稿者/ 佐田 守弘 -(2006/01/16(Mon) 22:00:30)
http://www.m-sada.com
    No.845までの投稿で、グループ項目は、お客様・ふりがな・住所の3つなのだろうと思っていたのですが、
     >  そうするとフォームのグループが10項目以上になると表の索引項目が10項目が限界でした
    と書かれている様に、かなりの数のグループ項目を作っている様ですね。
    
    前回も書いた通り、グループ化はできるだけ単純な項目をできれば1つだけ使うのが良いと思います。
    10個以上というのは、多過ぎる様に思います。
    もちろん10個まで作れるわけですが、長い文字列でグループ項目を作り、かつ、同じ索引を作ると、
    表がかなり重くなります。
    索引の分だけファイルサイズが大きくなりますし、索引の更新などの処理を含めて、処理速度が落ちる
    はずです。決して良い方法ではありません。
    
    本質的には、グループ項目の持ち方についてもっと詰めるべき様に思いますが。
    (と言って、具体的な中味が分からないので、的確なアドバイスができないのですが)

引用返信 [メール受信/OFF] 削除キー/
■858 / inTopicNo.8)  Re[6]: 表編集とフォームでの並べ替え
□投稿者/ ET -(2006/01/17(Tue) 00:26:14)
    ■No857に返信(佐田 守弘さんの記事)
     今村様・佐田様ありがとうございました。フォーム形式での並べ替えと
     表形式での並べ替えの奥の深さを勉強させていただきました。
     バッチリできました。フォームから表に切り替えても基本に戻らず維持
     できております。桐のすばらしさにも関心しました。
     ほんとうにご指導ありがとうございました。

解決済み!
引用返信 [メール受信/OFF] 削除キー/



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

このトピックに書きこむ

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

Mode/  Pass/

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

- Child Tree -
- Antispam Version -