過去の桐井戸端BBS (桐ver.9)
20769 任意のところに行挿入をしたい nicchi 2003/06/09-22:56
今回は、行挿入について質問があります。

例)

番号   題名   グループ
 1    あ     A
 2    い     A
 3    う     A
 1    え     B
 2    お     B
 3    か     B 
 1    き     C
 2    く     C
 3    け     C

上記の様な表のデータの時、各グループの先頭(各番号の1)に行挿入して

番号   題名   グループ
     文字
 1    あ     A
 2    い     A
 3    う     A
     文字 
 1    え     B
 2    お     B
 3    か     B
     文字 
 1    き     C
 2    く     C
 3    け     C
という具合に題名に任意の文字を入れて表記したいのですが、
過去ログを読んだところ「絞り込みの後の行挿入はできない」と書いてあったので、
一端グループ別に絞り込み、別表に書き出し、書き出した別表の先端行に行挿入して
題名を入力後再度グループごとに1つの表に読み込むというやり方しか浮かばず結構面倒です。
一括処理などで各グループの番号1にあたるレコードにジャンプして、
行挿入後題名に任意の文字が入れられるようなやり方はありますか?
ありましたら是非教えて下さい。
宜しくお願いします。長々とした文面ですみませんでした。
20770 Re:行挿入について うにん 2003/06/09-23:03
記事番号20769へのコメント
>番号   題名   グループ
>     文字
> 1    あ     A
> 2    い     A
> 3    う     A
>     文字 
> 1    え     B
> 2    お     B
> 3    か     B
>     文字 
> 1    き     C
> 2    く     C
> 3    け     C
>という具合に題名に任意の文字を入れて表記したいのですが、

ここまでの話では、題名に入れたい「文字」の行は番号がついていないし、
グループに対して1つの値を入れたいということのように読めます。
それでしたら、グループ項目を追加してそこに入れることにすれば
行挿入する必要がなくなります。
表ではこういうイメージになります。
>番号   題名   グループ  追加項目
> 1    あ     A   文字
> 2    い     A   文字
> 3    う     A   文字

どのグループにも同じ「文字」でいいなら、レポートのグループヘッダに入れることも考えられますが。

20772 Re:行挿入について nicchi 2003/06/10-00:06
記事番号20770へのコメント
うにんさん、早速の返事ありがとうございました。
説明が足りなかったのですが、行挿入後の題名欄の文字は、グループ欄の文字+管理といった具合に表記したかったので
単に文字と表記しまいた。
また、レポート表記ではなく、表でこういった一括処理ができないものかな?
と思い質問させていただきました。(仕事の関係でどうしてもこの様な表記の仕方にしなくてはいけなかったので・・)
データベースの考え方に反していますが、こういった処理方法がある!
というのがありましたら教えて下さい。わがままですみません。
20773 Re:行挿入について 悲しげ 2003/06/10-01:02
記事番号20772へのコメント
どもっ、nicchiさん
およそデータベース的ではなさそうですが(^^;)
一括処理の一例です。
------------------------------------------------
変数宣言 固有,文字列{&題名,&グ},固有,数値{&番号}
表 "ニッチ.tbl"
書き出し 枠組み,"ニッチ別表.tbl",終了状態=&実行リターン
絞り込み [番号]=<3
表 "ニッチ別表.tbl"
編集表 "ニッチ.tbl"
繰り返し(.not #EOF)
 &番号=[番号],&グ=[グループ],&題名=[グループ]+"管理とか?"
 行退避
 編集表 "ニッチ別表.tbl"
 条件(&番号=1)\
  行追加 終了状態=&実行リターン,[題名]=&題名,[グループ]=&グ
 行追加 終了状態=&実行リターン,[番号]=""
 ジャンプ 行番号=最終
 行復旧 破棄=する,終了状態=&実行リターン
 編集表 "ニッチ.tbl"
 ジャンプ 行番号=+1
繰り返し終了
編集表 "ニッチ別表.tbl"
表形式編集 ガイド="結果を確認しませう"
------------------------------------------------

20774 Re:行挿入について masa 2003/06/10-02:21
記事番号20769へのコメント
nicchiさん こんばんは

>番号   題名   グループ
>     文字
> 1    あ     A
> 2    い     A
> 3    う     A
>     文字 
> 1    え     B
> 2    お     B
> 3    か     B
>     文字 
> 1    き     C
> 2    く     C
> 3    け     C
>という具合に題名に任意の文字を入れて表記したいのですが、
>過去ログを読んだところ「絞り込みの後の行挿入はできない」と書いてあっ
>たので、一端グループ別に絞り込み、別表に書き出し、書き出した別表の先
>端行に行挿入して題名を入力後再度グループごとに1つの表に読み込むとい
>うやり方しか浮かばず結構面倒です。一括処理などで各グループの番号1に
>あたるレコードにジャンプして、行挿入後題名に任意の文字が入れられるよ
>うなやり方はありますか?ありましたら是非教えて下さい。宜しくお願いし
>ます。長々とした文面ですみませんでした。

簡単に行集計でグループ毎に集計して題名の所に”文字”として書き出したらダメなんですよね?
(グループ項目は全て文字が入ってしまいますが、それもいやなら、
番号欄の#Uを絞り込んで、グループを置換で#Uにするとか)
20780 Re:行挿入について うにん 2003/06/10-09:49
記事番号20774へのコメント
>>という具合に題名に任意の文字を入れて表記したいのですが、

>簡単に行集計でグループ毎に集計して題名の所に”文字”として書き出したらダメ
>なんですよね?

一瞬感心したのですが、行集計だとデータ行の後ろにしか入らないと思うのですが?

前回にも書きましたが、「表記したい」というのがいまいちわからないのですが、
一般的に業務上は紙に印刷した物か画面編集用のフォームで表示されていれば十分なはずで、
表形式編集でも見えるようにEXCELのようなつもりで変な行を追加してしまうと後々何かと不便だと思うのです。

20781 Re:行挿入について 悲しげ 2003/06/10-12:19
記事番号20780へのコメント
なるほど、行集計・書き出しを利用する方法ね。

>一瞬感心したのですが、行集計だとデータ行の後ろにしか入らないと思うのですが?

ではその改変例。
最終形において、[番号]が空の場合の[グループ]は、本当は当該グループの値が入っていることが
正しい(抜けているのは例示もれ)と思うので、本当は次のようになっているとします。

番号   題名   グループ  作業
     A管理    A   A00
 1    あ     A   A01
 2    い     A   A02
 3    う     A   A03
     B管理    B   B00
 1    え     B   B01
 2    お     B   B02
 3    か     B   B03
  ・・・・・・・
※[作業]は増設項目で、その項目計算式は、[グループ]+#str([番号],2)

これで行集計
 [題名]は#項目値([グループ])+"管理"
 [グループ]は#項目値
書き出した別表を開いて(念のため[作業]項目で置換再計算させた後)
 [作業]について昇順で並べ替え。



>一般的に業務上は紙に印刷した物か画面編集用のフォームで表示されていれば
>十分なはずで、表形式編集でも見えるようにEXCELのようなつもりで変な行を
>追加してしまうと後々何かと不便だと思うのです。

御意。

20786 Re:行挿入について うにん 2003/06/10-15:44
記事番号20772へのコメント
>説明が足りなかったのですが、行挿入後の題名欄の文字は、グループ欄の文
>字+管理といった具合に表記したかったので単に文字と表記しまいた。

これですと、必要なのは「任意の文字」ではなく「項目値+文字列」でよさそうなので、
項目を追加しないでもレポートの小計ヘッダか、
伝票フォームのヘッダにテキストオブジェクトを配置してソースに
「[グループ]+"管理"」とでもすればいいような気がします。

>また、レポート表記ではなく、表でこういった一括処理ができないものか
>な?と思い質問させていただきました。

悲しげさんのだと番号が3までに固定されてたりするのでちょっと変更。
なお、行挿入は並べ替え状態でもできません。こういうデータにして
しまうと、並べ替えすると無意味なデータになってしまいます。
([グループ]にはグループの値、[番号]にはグループ内の最小値を
入れれば少しはましだと思いますが、それは希望ではないようですし)

変数宣言 固有,文字列{&題名,&グ}
表 "ニッチ.tbl"
&題名="管理"
&グ=""
繰り返し(.not #EOF)
if (&グ<>[グループ])
 &グ=[グループ]
  行挿入 [題名]=&グ+&題名
end
ジャンプ 行番号=次
繰り返し終了
表形式編集 ガイド="結果を確認しませう"
20788 Re:行挿入について 悲しげ 2003/06/10-17:23
記事番号20781へのコメント
そうか、

 並べ替え {[グループ]昇順,[番号]昇順}

を使えば、別途作業項目は必要ないですね。(^^;)
20789 Re:行挿入について 悲しげ 2003/06/10-17:30
記事番号20786へのコメント
#20769での元質問が

>過去ログを読んだところ「絞り込みの後の行挿入はできない」と書いてあったので、

とありますから、例示の

> 番号   題名   グループ
> 1    あ     A
> 2    い     A
> 3    う     A
> 1    え     B
> 2    お     B
> 3    か     B

自体が既に絞込状態である(ゆえに「行挿入」できない)と仮定してのコメントでした。
番号=<3 での絞込は、その辺りの仮想と云う訳で。(^^;)
ま、この辺の細部はnicchiさんに確認するしかないですけど。

20791 ありがとうございました。 nicchi 2003/06/10-19:12
記事番号20788へのコメント
皆様から色々と意見を頂き大変感謝しております。
うにんさんの方法で何とか思い通りにできました。
ご指摘の通りデータベースの本来の使い方ではないという点では十分承知しております。
ただ、どうしても今回の様な方法を取らざるを得ない状況になりまして・・・
何れにせよ、今後も一括処理等で応用ができますので、私にとって大変勉強になりました。
今後もこのコーナーを利用して勉強させていただきます。ありがとうございました。
20792 Re:ありがとうございました。 悲しげ 2003/06/10-19:46
記事番号20791へのコメント
>うにんさんの方法で何とか思い通りにできました。

と云うことは、「行挿入」ができたと云うことだとすれば、
「絞込後」ではなかったのですね? ヘナヘナ・・・・(^^;)
20793 Re:ありがとうございました。 nicchi 2003/06/10-21:09
記事番号20792へのコメント
悲しげさんすみません、並び替え→絞り込みの後、別表に書き出してからやったので
うにんさん方式でよかったのです。
返事が遅くなりすみません。
今後、こんな質問をしないように勉強していきます。お手数をおかけしました。_(._.)_

戻る