過去の桐井戸端BBS (桐ver.8)
16827 一括処理で「コマンド」コマンドを使った置換ができない 山田 2002/08/03-15:23
下記2つの表と一括があります。

    一括cmd
名札 暦から元表へ
表 "元表"
行削除 *,圧縮

    繰り返し &N1=4,7,1
      表 暦
       選択解除 *
       &NA=#項目属性(&N1,1)
       &NB="["+&NA+"]"
       コマンド "選択 "+&NB+">"""
         書き出し 表,"元表",追加,{[年],[月],[日]}
     表 "元表"
       選択 [担当者]=""     
    コマンド"置換 [担当者]=&NA,[部門名]=#表引き([日付],=,暦,
            [日付],&NB+")"
     表
    繰り返し終了

  元表tbl
項目名 データ型 項目計算式
年    整数
月    整数
日    整数
部門名 文字列
担当者 文字列
日付   文字列 #日付(#STR([年])+"/"+#STR([月])+"/"+#STR([日]),4)

暦tbl
(365日分の年月日と担当者欄には部門名が入っています)
項目名 データ型 項目計算式
年    整数
月    整数
日    整数
山田   文字列
月田   文字列
木田   文字列
水田   文字列
日付   文字列 #日付(#STR([年])+"/"+#STR([月])+"/"+#STR([日]),4)

問題点
 下記コマンドコマンド文の、[部門名]に表引きしたdataが入りません。
 v5ではうまく動くのですが。
 [日付]の#日付関数の設定が悪いのかと思い、いろいろやってみたのですが。
 環境設定 日付は 2桁(実際データは和暦で、[年]は14とか15です)
 #日付(str,4)は、v8では計算しないとか書いてありますがよく分りません。
 それとも、v8一括では表引きはつかえないのでしょうか。 
なお、この一括は皆さんからの助言によるものです。
ギブアップしました。お助けください

なお、[年][月][日]を別途もっているのは、一覧表印刷の際、段組,グループ印刷ができ、
カッコいい予定表カレンダーとなるからで他意はありません。

16828 Re:一部訂正 山田 2002/08/03-16:05
記事番号16827へのコメント
一括の一部が改行の際文字が一部削除されていました 
正しくは下記の通りです。すみません

コマンド "置換 [担当者]=&NA,[部門名]=#表引き([日付],=,暦,[日付],"+&NB+")"

16829 Re:一部訂正 natsu 2002/08/03-17:53
記事番号16828へのコメント
>コマンド "置換 [担当者]=&NA,[部門名]=#表引き([日付],=,暦,[日付],"+&NB+")"

これだと、&NAを変数ではなくて、ただの文字列として認識されてしまうのでは?
それから、表引きファイル名も 「暦」でなく、コマンドコマンドの中では「"暦"」とならないと表引きできないはずですが
V5でうまくいきました?
16832 Re:一括で置換ができない 悲しげ 2002/08/03-19:07
記事番号16827へのコメント
うまく行かないのは、私も#16829でnatsuさんが指摘されたところだと思います。

ところで、

   コマンド "選択 "+&NB+">"""

で何をしようとしているのかがいまいちよく判りませんが、
一般的に云って選択(絞り込み)や検索コマンドでは、
項目名の代りに項目番号そのものを指定することができます。
例えば次のように。
   検索 ↓,&j{*&検索文字列*:E}

つまり何を云いたいかと云うと、項目属性関数に項目番号を入れて
項目名を取得して、両端に"["と"]"を付けたものを使って「コマンド」コマンドを使うと云うやり方をとるまでもなく、
単に項目番号一発の1行記述で済ませることができます。(項目番号から攻めるのであれば)
16845 Re:一部訂正 yamada 2002/08/04-00:38
記事番号16829へのコメント
natsuさんはじめまして
というか、実は前記元表から部門別明細を作る一括が別にあるのですが、
これは、natsuさんお作りのものが過去ログにあるよ。
と今村さんに教わり、それをそっくり真似したものです。
難しくて十分理解できたわけではありませんが、完璧に動いています。ありがとうございます。
 
 その中のコマンドコマンドの手法に生意気にも挑戦した次第です。
v5では、前記のままで動いています。
このうち、前半部分の 置換 [担当者]=&NA 部分は、v8でもOKです。
   (しかし、ルール違反かなー)
後半部分は、暦を "" でくくらなくても、v5ではなぜか大丈夫です。
v8用に、"置換 [担当者]=&NA,[部門名]=#表引き([日付].=," + "暦" +",[日付]," + &NB +")"
と修正しましたが、状況は同じく、[部門名]にデータが入りません。

16846 Re:一部訂正 ONnoji 2002/08/04-01:41
記事番号16845へのコメント
>後半部分は、暦を "" でくくらなくても、v5ではなぜか大丈夫です。
>v8用に、"置換 [担当者]=&NA,[部門名]=#表引き([日付].=," + "暦" +",[日付]," + &NB +")"
>と修正しましたが、状況は同じく、[部門名]にデータが入りません。

natsu さん、yamadaさん、こんばんは。

割りこみで失礼します。m(__)m

変数宣言 固有,文字列{ &NB = "aaa" }
&STR = "置換 [担当者]=&NA,[部門名]=#表引き([日付].=," + "暦" +",[日付]," + &NB +")"
確認 &STR

* &STR の内容は以下になりますが、
* 置換 [担当者]=&NA,[部門名]=#表引き([日付].=,暦,[日付],aaa)
* [日付]と"="記号の間にドット( . )があります。← ミススペル?大丈夫でしょうか???
* 暦 の二重引用符は省略されていますが、これは "暦.tbl" と解釈されます。
* 表引きの最後のitem2は &NB で代用していますが、大丈夫でしょうか???

&STR = "置換 [担当者]=&NA,[部門名]=#表引き([日付],=," + """暦.tbl""" +",[日付],[" + &NB +"])"
確認 &STR
* 上のように手を加えると &STR の内容は以下になります。
* 置換 [担当者]=&NA,[部門名]=#表引き([日付],=,"暦.tbl",[日付],[aaa])

外していたらすいません。
16847 Re:一括で置換ができない yamada 2002/08/04-02:33
記事番号16832へのコメント
悲しげさん こんにちは いつもありがとうございます
暦の具体的内容は次のとおりです。

年月日 山田 川下 坂上   365日の暦方式ですから、各担当者は、この方が
140101 経理 経理 営業   自分の行動予定が立て易いと勝手言います。  
140102       営業
140103 経理
140104   
140105    営業 営業

 これから 部門別明細として
年月日 部門 山田 川下 坂上  もともとこの表だけだったのですが。
140101 経理  1  1
140101 営業        1  (私とすれば、これがほしいだけ)
140102 営業        1  (実際には部門別に並べ替えて集計します)
140103 経理  1
140105 営業     1  1
を作るのが目的です。(部門別集計のため)

 私の能力では暦からいきなりこの部門別はできませんので、natsuさんの方法を使うべく、
年月日 部門 担当者 時間
140101 経理 山田   1
140103 経理 山田   1  この表の構造は、いかにもデータベースらしい気がします。
140101 経理 川下   1
140105 営業 川下   1
140101 営業 坂上   1
140102 営業 坂上   1
140105 営業 坂上   1
 という表を作ることとし、暦で、担当者別にデータのあるなしで絞込みその部門を転記するといる方法を考えたのですが。
自分でも、なんだかかったるいな、という気がします。項目番号という関数があればおっしゃるとおりなんですが。
担当者は20名位です。v5にあるでしょうか。
新規作業はまずv5から、というのが私のやり方なもんで。
(ウィンドウズ画面は嫌い。このコメントだって書くのに苦労してる。)


ps 行の色変更 整数にする意味やっとわかりました(~_~)


16849 Re:一括で置換ができない 今村 誠 2002/08/04-07:13
記事番号16847へのコメント
yamadaさんこんにちは、みなさん横からすいません。

> 暦の具体的内容は次のとおりです。        ……1
> これから 部門別明細として (部門別集計のため)……2
> natsuさんの方法を使うべく、          ……3
3から2や1をつくるのはかんたんだとおもいますが、
1から3を作るのでしょうか。
もう一つの疑問は、担当者が同じ日に2つの部門に出張することはないのでしょうか

16867 Re:一括で置換ができない 悲しげ 2002/08/04-20:32
記事番号16847へのコメント
どもっ、yamadaさん

>項目番号という関数があればおっしゃるとおりなんですが。(中略)
>v5にあるでしょうか。新規作業はまずv5から、というのが私のやり方な

う〜ん、趣旨が通じていないですね。(^^;)
項目番号と云うのは、関数ではなく、変数で使うと云うことです。
私の#16832の記述で云えば「&j」が、yamadaさんの#16827で云えば「&N1」が
項目番号(を変数に代入したもの)にあたる筈です。
検索・絞り込み・その他色々の場面で、項目名の代わりに項目番号(を変数に
代入したもの)で指定できるのは、DOS桐のおそらく若いバージョンの頃から
の仕様だと思います。
と云うことを踏まえた上で、再度私の#16832の記述(後段)を読み返してくださることを希望します。

>ps 行の色変更 整数にする意味やっとわかりました(~_~)

むしろこの意味不明です。(^^;)

16869 Re:一括で置換ができない natsu 2002/08/04-22:03
記事番号16847へのコメント
この手の一括処理は、v5でもv8でも多分v9でも
基本的には一緒のはずです

年月日_山田_川下_坂上
140101_経理_経理_営業
140102_______営業
140103_経理______
140104_________   
140105____営業_営業
これが(暦.tblですね)、

年月日_山田
140101_経理
140102___   
140103_経理
140104___  
140105___  
項目毎に書き出せばこんな感じになって、

年月日_部門_担当 
140101_経理_山田
140102____山田
140103_経理_山田
140104____山田  
140105____山田
これでとりあえず目標とする元表.tblに書き出せるとすれば

いろいろなやり方がありそうですが、はじめに作成された
一括を元にしてやってみましょう
暦と元表の間に、中間処理.tblをはさんでやると
表引きでの置換は不要になります


名札 暦から元表へ
ファイル複写 "元表.org","元表.tbl"
&選択ファイル名="""中間処理"""
&比較式="""
* テンプレートの表を上書きコピーした方が「行削除 *,圧縮」より早いです
* あらかじめ元表.tblを元表.orgにリネームしておいて下さい
* &選択ファイル名と&比較式は、コマンドコマンドで使用するため
* 組み込み変数を利用しています
 繰り返し &N1=4,7,1
  表 "暦.tbl"
    &NA=#項目属性(&N1,1)
    &NB="["+&NA+"]"
    コマンド "書き出し 表,"+&選択ファイル名+",{[年],[月],[日],"+&NB+"}"
* まず、日付と[山田]という項目がはじめに上書きで書き出されます
  表 "中間処理.tbl"
    コマンド "項目属性変更  変更,"+&NB+",{"+&比較式+"部門名"+&比較式+"}"
* この処理で、[山田]という項目名が[部門名]に換わります
    項目属性変更  追加,{"担当者"}
* 更に、[担当者]という項目が追加されて
    置換 [担当者]=&NA     
    選択 [部門名]≠#U
    書き出し 表,"元表.tbl",追加,*
  表
 繰り返し終了

16876 Re:一括で置換ができない 山田 2002/08/05-16:13
記事番号16849へのコメント
今村 誠さん こんにちは いつもお世話になります。
  
暦から部門別を作るのが最終目的で、元表はそのための作業表です。
ただし、元表に[時間]という項目を追加しました。原則として 1 とし、半日だったら手で0.5に修正しています。

 将来は、暦にこの元表のデータをバックし、先日今村さんに教わった方法で、
半日なら網掛けさせようと企んでいますが、まだ完成していません。

 担当者は同一日に絶対二ケ所へは行きません。この重複を防ぐため、暦に予定を入力することにしました。
(担当者から体が2つありません といわれないため)
 
よろしくお願いします。
16877 Re:一括で置換ができない 山田 2002/08/05-16:21
記事番号16869へのコメント
natsuさんは 有難うございました。

早速 この方式におきなおして見ます。
ただ、これから1週間出張しますので、結果のご報告は遅れるとおもいますのであしからず。

16878 Re:一括で置換ができない 山田 2002/08/05-17:23
記事番号16867へのコメント
悲しげさん こんにちわ

>う〜ん、趣旨が通じていないですね。(^^;)
おっしゃる通りです トホホ

再度#16832の記述(後段)を読み返しましたが、ちんぷんかんぷんです。
選択 #項目番号(&N1)>””
たなことしか思い付きません
こんなんは当然駄目ですよね。
もう少し 詳しくお願いします。
てくだ
>
>むしろこの意味不明です。(^^;)

12136 Re:表形式でグループ別に行の色を換えたい 悲しげ 2001/07/04-17:33
記事番号12126へのコメント
どもっ、山田さん
表の項目の表示条件の式では「直前値」関数は使えないでしょうね。(^^;)
私も類似のことをやっているのですが、この計算式は大体そのまま項目においています。
ただ、[色]的な項目の返り値は、"@色1"等のままでもいいけど、
私は整数系項目にして、整数を返すようにしています。
その上で、項目の表示条件の条件式は例えば
   [色]=1  →  赤
   [色]=2  →  すみれ色
のようにしています

のことです。
v8では数値で指定できるということが分りました。といいたかったわけです。(^^;)


16881 Re:一括で置換ができない 悲しげ 2002/08/05-18:20
記事番号16878へのコメント
今度は山田さん
(前回はyamadaさん、クッキーは利かせてないのですか?)

>選択 #項目番号(&N1)>””
>たなことしか思い付きません
>こんなんは当然駄目ですよね。

いえ、まさしくその線なのです。
正しくは
  選択 [某項目]>""
と云う書式はちょっと変ですから、例えば
  選択 [某項目]<>""
として話を進めますれば
  選択 &N1<>""
でOKです。

#16878の末尾の表現を借用すれば、桐では(DOSの頃から項目名を)
数値(変数)で指定できる・・・といいたかったわけです。(^^;)

16882 ちなみに#項目番号 悲しげ 2002/08/05-18:47
記事番号16878へのコメント
「#項目番号」なる関数は確かWin桐になって新設された関数です。
これはこれで私は欲しかった関数なんですが、その意味するところは桐のヘルプでご確認ください。
16884 Re:一括で置換ができない 今村 誠 2002/08/05-20:07
記事番号16876へのコメント
山田さんこんにちは、
> 担当者は同一日に絶対二ケ所へは行きません。この重複を防ぐため、暦に予定を入力するこ
>とにしました。(担当者から体が2つありません といわれないため)
この事が気になっていました。

natsuさんのコメントで3から1を作り、1から2を作るのが業務の流れから自然でいいのではないでしょうか。

戻る