過去の桐井戸端BBS (桐ver.8)
8963 項目名を変数で記載できますか 桐坊主 2000/12/17-23:53
厚かましいようですが後一つお願いいたします

併合等で項目名を記述の必要なとき変数で指定できないでしょうか

>[住所]複写[住所1]
このような場合、
1.先頭の[住所]を変数で記載する方法
2.後方の[住所1]を変数で記載する方法

これを、一括処理の中で変数を利用して書く方法をお願いいたします

大変お手数をかけますがよろしくお願いいたします。

8964 Re:項目名を変数で記載できますか 野良犬 2000/12/18-00:15
記事番号8963へのコメント

>併合等で項目名を記述の必要なとき変数で指定できないでしょうか

一括処理のヘルプで,"コマンド"をみてください。

コマンド "併合 1,絞り込み,{[" + &項目名1 + "]照合[" +&項目名2+"]}"

とまあこんな感じです。
8969 Re:項目名を変数で記載できますか 悲しげ 2000/12/18-10:11
記事番号8964へのコメント
どもっ、桐坊主さん、野良犬さん、
困んど困んど、もとひ、「コマンド」コマンドで間違いなく出来ますが、
同じくhtmlヘルプの「一括処理の書き方」には次のようにも記載されております。

TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
<項目名>
表の項目名を指定します。項目名の前後は [ ] でくくります。

(例) 表表示 [氏名]


文字列型の変数で指定する場合は、代入するときに[ ] をつけません。

(例) &項目名="氏名"
    表表示 &項目名
(例) &項目名[ &項目番号 ] = "氏名"
    表表示 &項目名[ &項目番号 ]


項目名は、表定義時の先頭項目から数えた番号(項目番号)でも指定できます。項目番号は、1からはじまります。

(例) 表表示 2
(例) &項目番号=2
    表表示 &項目番号


項目番号で指定するとき、<項目名>のうしろに項目名や比較式が続く場合は、番号のうしろに空白を入れます(△は空白)。

(例) 読み込み 表,"Jusho.tbl", \
      { [氏名][名前],[電話][TEL],\
       [住所][住所1]}
    または
    読み込み 表,"Jusho.tbl",\
      { 2△2,3△3,4△5}
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
8972 Re:項目名を変数で記載できますか toshi-chan 2000/12/18-11:24
記事番号8969へのコメント
桐坊主さん、野良犬さん、悲しげさん、こんにちは。
別の方法をご紹介します。次の関数を使用する方法です。
   
   #項目属性( n , f )
       nは項目番号です。fは、
       0  #タ項目値(データ型は項目と同じ)
       1#タ項目名(文字列)
       2#タデータ型(文字列)


[住所]が5番目の項目だとしましょう。項目名は #項目属性(5 ,1 ) で取得できます。
[住所1]が8番目の項目だとしましょう。項目名は #項目属性(8 ,1 ) で取得できます。

    代入 &項目1=#項目属性(5,1)
    代入 &項目2=#項目属性(8,1)
    併合 "ABC",両方,{[あいう]照合[かきく],&項目1複写&項目2}

このように書きます。

このテクニックは、桐ver5のマニュアルで紹介されていました。汎用できる方法ですね。
私はこれを見るまでは、 #項目属性( n , f )  という関数はいったいどんな使い方をするのかさっぱりわかりませんでしたが、
今では多用しています。

8973 Re:項目名を変数で記載できますか 尾形 2000/12/18-11:51
記事番号8972へのコメント
>[住所]が5番目の項目だとしましょう。項目名は #項目属性(5 ,1 ) で取得できます。
>[住所1]が8番目の項目だとしましょう。項目名は #項目属性(8 ,1 ) で取得できます。
ちょっと気になったので。
項目を挿入したりすると番号がずれるので
#項目番号の関数で項目名から項目番号を取得した方がいいのかな?
この関数はDOS版にはなかったと思います。
8982 Re:項目名を変数で記載できますか toshi-chan 2000/12/18-20:03
記事番号8973へのコメント
尾形さん、こんばんは。
フォローをありがとうございます。
#項目番号 は、ver8からの新規関数のようですね。賢くなりました。

8983 Re:項目名を変数で記載できますか 悲しげ 2000/12/18-20:11
記事番号8972へのコメント
どもっ、toshi-chanさん、
項目属性関数は私もよく使いました。
ところで、この関数を使うためには項目番号を掌握していないといけませんね。

※余談ながら、尾形さんご指摘のとおり、#項目番号(項目名)はWin版でようやくできました。
DOS版ではこれが無かったために、項目名から項目番号を取得する のが少々めんどうでしたね。

さて、項目番号が判っていたとしたら、多くの場合、あえて#項目属性を使う必要も無いのです。
なぜなら、項目番号だけで記述できるからで〜す。
このことを私は実に今年になってから知ったのですが、実はこれはDOS版でも同じ仕様だったのでした。
例をtoshi-chanさんと同じく併合で挙げてみます。お試しあれ。(^^)v

変数宣言 整数{&項目番号a,&項目番号b,&項目番号c,&項目番号d}
&項目番号a=1,&項目番号b=1,&項目番号c=3,&項目番号d=3
表 "併合1",表番号=1
表 "併合2",表番号=2
編集表 1
併合 2,両方,{&項目番号a 照合 &項目番号b,&項目番号c 複写 &項目番号d}
表形式編集

ps:
ただ、項目名を項目番号変数で指定する方法が、どのコマンドでも有効なのかどうかは未確認です。
ですから、もしうまく行かないコマンドがあったとしたら、そこでは、やはり「コマンド」コマンドや
「#項目属性」関数の出番になろうと思います。
8985 Re:項目名を変数で記載できますか toshi-chan 2000/12/18-22:25
記事番号8983へのコメント
悲しげさん、こんばんは。
桐ver5時代からそんなことができたなんて全然知りませんでした。
桐ver8の一括処理オンラインマニュアルを見てみると、併合コマンドの箇所に

{ <編集表の項目名> <処理> <併合項目名> ,… }
編集対象表のどの項目に、どの項目を併合するかを指定します(項目名、項目番号)。

となっていました。書き出しコマンドと読み込みコマンドも調べてみましたが、これらは項目名で指定するみたい。Thank You!!

ところで皆さん、桐ver5を持っていらっしゃいますか。
私と桐との出会いは平成6年でした。職場で桐ver4を使用していたのでした。
すぐにver5になりました。桐ver5のリファレンスマニュアルはとても分厚く、当時の私は読む気にもならず、
市販の解説本を参考にしていました。
仕事の能率が悪くて困っていた平成8〜9年、一括処理コマンドや関数を眺め始めました。
その時にたまたま桐ver5リファレンスマニュアルをパラパラとめくっていたら、例の併合コマンドと#項目属性 を使用した
サンプルプログラムを見つけ、「これだ!」と思いました。
感激しましたね。
桐ver7以降は、マニュアルのサンプルプログラムはコマンドやパラメータの書き方の紹介になってしまったようですね。
私は転勤してしまって、もう桐ver5のリファレンスマニュアルを見ることはできません。
持ってる方は大事にしてください
8986 Re:項目名を変数で記載できますか 桐坊主 2000/12/18-23:27
記事番号8985へのコメント
みなさんどうもありがとうございます。
項目名を変数に出来ると思い取り組みましたが、結局自分ではできなくてこの掲示板に書かせていただきました

本当に皆様のたくさんのご意見はありがとうございます

いま一番近いのは、項目名はわかってる訳ですから「#項目番号」と

>項目番号で指定するとき、<項目名>のうしろに項目名や比較式が続く場合は、
>番号のうしろに空白を入れます(△は空白)。

を、利用してもう一度頑張ってみます。皆様のたくさんのご意見ありがとうございます。


8990 項目番号 尾形 2000/12/19-08:05
記事番号8985へのコメント
>となっていました。書き出しコマンドと読み込みコマンドも調べてみましたが、これらは項目名で指定
>するみたい。Thank You!!
項目しか指定できないところ(変数なんかには使用できないという意味です)
では全て項目番号でも指定できると思いますよ。
書き出し、読みこみ、置換 etc 番号で指定可能と思いますよ。

9014 項目番号が使えない場合 佐田 守弘 2000/12/19-22:55
記事番号8983へのコメント
多少「重箱の隅」的なコメントになりますが御容赦下さい。
項目番号については、悲しげさんが書かれた通りで、MS-DOS版桐以来の仕様です。
で、「#項目属性」関数がどうしても必要になるケースが、私の知る限りでは1つあります。
それは、項目値を計算式などに参照するケースです。
[番号][名前][住所][電話][年齢]
などと言った項目があるとして、計算式の中で参照するするケースでは、項目番号では記述できないと思います。

例えば上記の場合に2番目の項目[名前]を参照する場合ですが、

 代入 &項目番号=2
 代入 &名前=&項目番号
はだめですね。この場合には
 代入 &名前=#項目属性(&項目番号,0)
でないとだめです。

同様に、5番目の項目が[年齢]なので、この値を2倍する計算式でも、
 代入 &年齢2倍= 5 *2
はだめですね。

どうやらこの様なケースでは「#項目属性」関数が必須になります。

佐田守弘(KS-00119)

戻る