ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

タブ型のメニュー画面

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 | 投稿日時 2010-9-1 10:13 | 最終変更
tennis  長老   投稿数: 178
メニュー画面を作成しています。
タブを使用してタブ毎に各PGへのプッシュボタンを付けたいと思っています。
(例)
 タブ1       タブ2    
 社員台帳PG    給料計算PG  
 社員情報登録PG  賞与計算PG  

現在は親タスクでタブコントロールを設定して
子タスクで各PGへのプッシュボタンを作成して各タブに貼り付けています。タブを切り替える毎に子タスクを呼ぶような形です。
実行してみるとタブを切り替えても貼り付けたプッシュボタンが表示されません。
説明が下手で申し訳ありませんが、分かる方がいたらご教授お願いします。
             ┌─────┐
             ❘メニュー❘
             └─────┘
               ├─────┐
             ┌────┐  ┌────┐
             ❘タブ1 ❘  ❘タブ2 ❘
             └────┘  └────┘
            
               
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010-9-1 13:08
y-sakamoto  新米   投稿数: 7
そもそもタブコントロールを使う場合は、タブ毎に表示したいコントロールを親子リンクさせる必要があると思うんですが
子タスクにしてどのように制御されているのでしょうか?
同一タスク内で処理できる仕様なのであれば親子リンクでできると思います。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010-9-2 11:28
tennis  長老   投稿数: 178
回答ありがとうございます。
今は親タスクでタブコントロールを設定して
子タスクでタブコントロールの上にプッシュボタンを配置しています。
タブコントロールの変数は書式を文字にしています。
その文字で制限をかけて子タスクをコールしようと思ったのですが。。。

例えば条件にB='社員台帳'と入れるなど
社員台帳はタブの名前です。

タブコントロールをまともに使うのが初めてなもので設定の基本が良く分かっていません。。。
お手数おかけします。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010-9-2 15:12
Jiro123  長老   投稿数: 271
>今は親タスクでタブコントロールを設定して
>子タスクでタブコントロールの上にプッシュボタンを配置しています。

これがどうなっているのか分かりません。

子タスクには子タスクのフォームがあるので、子タスクのコントロールを親タスクのコントロール上に配置するということはできないと思います。

もっと正確に、詳しく情報を提示しないと、プログラムの作りが伝わってこないですよ。

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2010-9-2 15:33
tennis  長老   投稿数: 178
説明が下手ですみません。
親タスクのフォーム上にタブコントロールを配置して
子タスクのフォームを親タスクのタブコントロールの上に縮小して配置しています。
その子タスクのフォーム上でボタンを配置しています。


┌────┬────┐
|タブA |タブB |←──親タスクのフォーム上にあるタブ
├─────────┴───────┐    |
| ┌──────────────┐|←──┘
| |                ||
| |┌────┐ ┌────┐  ||
| ||ボタン| |ボタン|←┼┼─子タスクのフォーム 
| |└────┘ └────┘  ||
| |                ||
| └──────────────┘|
└─────────────────┘
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010-9-2 15:46
Jiro123  長老   投稿数: 271
子タスクのコールは、どのように設定していますか。

タブをクリックしたときのコール処理はどのように実装していますか

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010-9-2 16:15
hiro  長老 居住地: 三重  投稿数: 188
こんにちは tennisさん

実装を推測すると、各タブをクリックした時に表示される
ボタンを切り替えるということだと思いますが。

親と子にタスクを分ける理由が何かありますか?

私が以前作成したのは、単純に1つ目のタブと2つ目のタブに
必要なボタンを配置して各ボタンに項目を設定するという単純な
ものです。
こうすれば親と子に分ける必要はないですが・・

的を外していたらすみません。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-9-2 16:20 | 最終変更
tennis  長老   投稿数: 178
jiroさん何度もすみません。
親タスクのレコードメインで子タスクのコールを設定しています。

タブの変数は種類が「文字」で範囲を「タブA,タブB」という風にしています。
子タスクのコールの条件に「タブの変数='タブA'」と式を入れています。
タブAを選んでいるときにはタブの変数には「タブA」とデータが入ると思っていたので。。。

タブを選択したら選択したタブのPGがある子タスクを呼ぶようにしたかったのですが。。。。
やはり無理でしょうか?
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-9-2 16:25 | 最終変更
tennis  長老   投稿数: 178
hiroさん
回答ありがとうございます。
確かにそれでもできるのですが、親と子に分けたほうが調整しやすいと思ったのでしました。
タブの中には不要になるかも知れない物もあるので
例えば削除するときに必要なくなったPGの子タスクだけ消せば楽だなと思い分けました。
でも親と子に分けるのはできそうにありませんね。。。
ひとつのタスクにまとめたほうが良いようですね。
タブの使用方法を知らなかったので親と子に分けて作ってしまいました。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-9-2 18:09
y-sakamoto  新米   投稿数: 7
すみません、論点がずれていると思うのですが・・・

タブコントロールを使う場合、親子リンクが前提となるので
サブフォームのないMagicのバージョンでは
残念ながらタスクを分けることはできません。

タブコントロールを初めて使われるとのことなので
開発中に必要なコントロールの操作を紹介しておきます。
◇タブの切替
 [Shift]キーを押しながら表示したいタブをクリック
◇表示中のタブ内のコントロールだけ選択したいとき
 [Ctrl]キーを押しながらタブコントロールの外から範囲指定し、
 [Ctrl]キーを押したままタブコントロールをクリック
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010-9-3 12:17
kane  新米   投稿数: 18
サブフォームのないV9Plusでも可能ですよ。
メニューではなく、伝票入力画面で似たような
タスク構成のプログラムを作成しました。

タブ変数の次行へコールタスクを設置し、
タブ変数の数値によって、コール先を変更します。

親タスクに存在するタブ変数をクリックした時に
コールタスクが必ず実行されるロジックが組めれば
可能です。

私の場合はV9Plusだったので、コントロールイベント
を使ってます。

V8以前だと、工夫が必要と思いますが
実現はできるのではないかと思います。

ブロックで変数〜コールタスクをくくってみたりとか。

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-9-3 15:14
Jiro123  長老   投稿数: 271
手元にV8の環境がないので、全く試すことができず。。。

そのような状況から、できるだけ詳しく情報のご提供をお願いした次第です。

kaneさんが仰るように、親子のタスクツリー構造でも実装は可能と思います。

起動直後は、レコード前処理やレコードメインの先頭で、子タスクをコールすれば、表示されると思います。

別のタブをクリックした際に、そのタブに準じる子タスクをコールする必要があるのですが、それが実装できていないのだと思います。

過去の記憶をたどると、確か、V8ではタブコントロールのタブをクリックすると、ズームアクションが発行されたと思います。

タブ変数の上または下の行にコールコマンドを設定して、上ならばフローモードをBに、下ならばAにすれば、"ズームで実行"で実装できると思います。

子タスクが複数ある場合は、ブロックコマンドのフローモードを設定して、ブロック内に、コールコマンドを条件付き(タブ変数の値)にすることで、多分実装できると思います。

すみません、説明が分かりにくいかもしれません。

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010-9-3 15:16
sigeno56  長老   投稿数: 336
> 過去の記憶をたどると、確か、V8ではタブコントロールのタブを> クリックすると、ズームアクションが発行されたと思います。

↑はい、そうなりますね。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-9-7 11:07
tennis  長老   投稿数: 178
皆様

回答ありがとうございます。
いろいろな意見があり、とても助かりました。
親タスクのみでのタブのメニュー画面は作成できたので
親と子のメニュー画面を何とか作成してみたいと思います。
ありがとうございました。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約