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

パスワード:


パスワード紛失

行番号の自動追加と削除

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2008-10-29 16:42
tennis  長老   投稿数: 178
行ごとに番号を1〜つけていけるのですが、1行目と2行目の間に行を追加したときに自動で追加した行番号が2番になり、今まで2番だったものが3番になるといった方法はないでしょうか?

番号 商品
 1  A
 2  B
 3  C
に商品Dを追加  2番が3番になり 3番が4番になる
 1  A
 2  D
 3  B
 4  C
投票数:0 平均点:0.00
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 | 投稿日時 2008-10-30 10:04
sk0014  半人前   投稿数: 37
行番号でズームしたら、行番号から右側の項目にはカーソルを止めずに、次の行にカーソルを移動させるようにします。
そして、子タスクで下の行以降のレコードのリナンバーを行います。
親タスクでは、ウィンドウ再表示=Yes,循環入力=No,強制レコード後処理=Yesにして置くことで、リナンバーした結果が再表示されます。

《便乗質問です》
この処理をV9+SQLServerで行うと、トランザクションが働いている為(まだコミットされていない為)、ウィンドウ再表示がうまく行きません。どなたか解決策をご存知ないでしょうか?
投票数:1 平均点:10.00
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008-10-30 10:37
tennis  長老   投稿数: 178
ありがとうございます。さっそく試してみます。
投票数:0 平均点:0.00
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-30 13:05
sigeno56  長老   投稿数: 336
sk0014様

いい方法かわかりませんが・・・。

明細入力タスクの上に、空のバッチ制御タスクを置き、
そこから明細入力タスクと、
行リナンバタスクを呼び分ける!
なんてのはいかがでしょうか?

明細入力タスクを一旦抜けて
親バッチ制御タスクに戻って、リナンバタスクを実行して、
親バッチ制御タスクに戻って、また明細入力タスクへ。

入力タスクは、再度位置づけが必要ですし、
画面がぎくしゃくしてしまうとは思いますが。

トランザクション開始は、明細入力タスク前と
リナンバタスク開始前にするとか。

ややこしそうですね。
投票数:0 平均点:0.00
depth:
3
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008-10-30 17:43
sk0014  半人前   投稿数: 37
sigeno56様

ご回答ありがとうございます。

実は現在、Magic初心者に教育を行っているのですが、私としては「Magicって簡単だ」と思って貰いたいのです。
せっかくウィンドウ再表示の機能があるのに、それを教えられないのが残念なのです。
投票数:0 平均点:0.00
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-30 17:54
EijiNagai  常連   投稿数: 65
ウィンドー再表示ではなく、ビュー再表示でうまくいきませんか?
投票数:0 平均点:0.00
depth:
3
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-11-4 8:57
sk0014  半人前   投稿数: 37
EijiNagai様

イベントコマンドでビュー再表示を試みましたが、妙な動きになります。
イベントコマンドを発行するタイミングによっては、Magicがフリーズしてしまいます。
どういうタイミングで処理すればいいのかご存知でしょうか?
投票数:0 平均点:0.00
depth:
4
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008-11-4 10:19
EijiNagai  常連   投稿数: 65
sk0014様

ビュー再表示はリナンバータスク呼出後にかけています。

ビュー再表示はDB(トランザクション中はトランザクションデータ)の再読込を実行するのですが、このとき、レコード後処理、前処理を通ることになります。

そのあたりで無限ループになるのではないでしょうか?
投票数:0 平均点:0.00
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-11-5 8:36
sigeno56  長老   投稿数: 336
tennis様がお使いのデータベースはPervasiveですか?
お望みの事を簡単に実現出来る関数等はないと思います。

1行目にカーソルがある時に、行追加!という処理を実行するのであれば、子タスクを作成して、
3行目を4に書き換え、
2行目を3に書き換え
といった処理を作成する必要があります。

その子タスクのタスク後処理で、
kbput('ビュー再表示'ACT&'F4'KBD)を発行するとか。

こんな感じの処理が必要です。
投票数:0 平均点:0.00
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008-11-5 9:17
tennis  長老   投稿数: 178
回答ありがとうございます。私はPervasiveを使っています。
関数はやはりないですか。それが分かっただけでもよかったです。
投票数:0 平均点:0.00

  条件検索へ


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