過去の桐井戸端BBS (桐ver.9)
22981 文字列の置換について つねに 2003/10/26-19:29
いつもお世話になります。
桐Ver9-SP1です。
表Aの項目名に"顧客番号"、"訪問年"、"訪問月"、"訪問日"があります。項目名の通り
顧客訪問した年月日がそれぞれ記録されます。

一方、表Bに項目名"月間訪問日"がある未入力のデータがあります。

この様なデータで表Aを"顧客番号"と"訪問年"、"訪問月"で絞り込み、順次記録レコードを読み込んでゆきます。
読み込んだデータの中で項目「訪問日」を"&訪問日"に読み込みます。

そこで "&訪問日"をあらかじめ用意しておいた、"&月間訪問日"=" (31の全角スペース ) "の文字列に訪問日に
応じて○を置換したいのです。

例えば、訪問日が1日と15日と31日とすると、この顧客のレコードは3行で
&訪問日には順次1,15,31が入り、結果的には"&月間訪問日"は
"○             ○               ○"様な変数に
なるわけです。それを項目名「月間訪問日」に書き込むわけです。

前置きが長くなりましたが、ここからが質問です。
まあ、この様なストーリーを描いているのですが、&月間訪問日への○を置換する方法が
いくら考えても浮かびません。

昔のデータベースで確かこの様な関数があったと思うのですが
 #replace(置換される文字列,置換位置,置換文字)
マニュアルをいくら見ても無いように思います。
私の頭のレベルでは、関数を組み合わせてもこれの代用品が今は考えられません。
どなたか、良い知恵をお貸しください。よろしくお願い致します。
2003,10,26


22982 Re:文字列の置換について 悲しげ 2003/10/26-20:58
記事番号22981へのコメント
どもっ、つねにさん
前段はよく判りませんが、要するに整数
  a,b,c....
(但し、1=<a<b<c.....=<31)
があって、横軸のa,b,c...ところを○で示し、その隙間は全角スペース
で満たす、と云うふうに理解しました。
とすれば、a,b,c,.....はレコードを異にする項目値のようですから、
 まずaは #複写("□",[訪問日]-1)+"○"
 b以降は #複写("□",[訪問日]-1-#直前値([訪問日],0))+"○"
  (全角空白を"□"で示しています)
別項目[月間訪問日]は
 [月間訪問日]+#直前値([月間訪問日],"")
として、この最終行が求める値になると思います。
"○□□□□□□□□□□□□□○□□□□□□□□□□□□□□□○"

もちろん、[顧客番号][訪問年][訪問月]が同一であることは前提でしょうから、
上記aの値だけは条件分けして算出する必要があります。
もし[顧客番号]等で絞り込んでいるのなら、

#cond(#行番号=1,#複写("□",[訪問日]-1)+"○"\
   ,1,・・・・・

そのような絞り込みが無ければ、
#cond([顧客番号]=#直前値([顧客番号],"")\
   .and [訪問年]=#直前値([訪問年],"")\
   .and [訪問月]=#直前値([訪問月],"")\
   ,・・・・・
のような判断が必要になると思います。

以上をまとめると

#cond([顧客番号]=#直前値([顧客番号],"")\
   .and [訪問年]=#直前値([訪問年],"")\
   .and [訪問月]=#直前値([訪問月],"")\
   ,#直前値([月間訪問日],"")\
   +#複写("□",[訪問日]-1-#直前値([訪問日],0))+"○"\
   ,1\
   ,#複写("□",[訪問日]-1)+"○")

あ、以上は項目値で取得するやり方ですね。(^^;)
変数だけで算出するのは、もうちょっと複雑になりそうで、
一括処理を使う必要があるかも?

22986 Re:文字列の置換について 悲しげ 2003/10/26-23:03
記事番号22982へのコメント
ひとつ云い忘れてました。
各グループの最終行だけを表示させるには「行集計」を利用できます。
22989 Re:文字列の置換について うにん 2003/10/27-00:03
記事番号22981へのコメント

>表Aの項目名に"顧客番号"、"訪問年"、"訪問月"、"訪問日"があります。項目名の通
>り顧客訪問した年月日がそれぞれ記録されます。
>
>一方、表Bに項目名"月間訪問日"がある未入力のデータがあります。

この項目だけではデータに意味がなくなるので、[顧客番号][訪問年][訪問月][月間訪問日]だと思うのですが。

>例えば、訪問日が1日と15日と31日とすると、この顧客のレコードは3行で
>&訪問日には順次1,15,31が入り、結果的には"&月間訪問日"は
>"○             ○               ○"様な変数に
>なるわけです。それを項目名「月間訪問日」に書き込むわけです。

表Aを[訪問日]を転置して転置集計すると
[顧客番号][訪問年][訪問月][1][15][31][件数]
のような表が作れます。
[顧客番号][訪問年][訪問月][1][2][3]〜[31][月間訪問日]
のような表を表Bとして、転置集計した表を項目名照合で読み込みます。[月間訪問日]は計算項目にして式を
#COND([1],"○",1," ")+COND([2],"○",1," ")〜#COND([31],"○",1," ")
としておけば、「転置集計+読み込み」の2ステップでできると思います。

22993 Re:文字列の置換について つねに 2003/10/27-13:10
記事番号22982へのコメント

悲しげさん。ありがとうございます。
>別項目[月間訪問日]は
> [月間訪問日]+#直前値([月間訪問日],"")
>として、この最終行が求める値になると思います。
>"○□□□□□□□□□□□□□○□□□□□□□□□□□□□□□○"

おっしゃるとおり求める物は上の図の通りです。
ただし[月間訪問日]は別の表Bにあります。私が理解していないのかも知れませんが
[月間訪問日]は表Aにあるような解決法のように思います。
もっともそうならば[月間訪問日]を表Aに作ればよいのかも知れませんが。

それと[顧客番号]と[訪問年][訪問月]で絞り込んでいます。
絞り込んだ上で、1レコードずつ&訪問日に取り込んで、&月間訪問日に同一顧客番号で
取り込んだレコードの[訪問日]を&訪問日に取り込み、それを&月間訪問日にスペースを
入れながら作ってゆくのです。そして同一顧客番号のレコードが終われば
表Bの[月間訪問日]に書き込むのです。
従って、悲しげさんが書いておられるように、変数を使っての処理です。

>#cond([顧客番号]=#直前値([顧客番号],"")\
>   .and [訪問年]=#直前値([訪問年],"")\
>   .and [訪問月]=#直前値([訪問月],"")\
>   ,#直前値([月間訪問日],"")\
>   +#複写("□",[訪問日]-1-#直前値([訪問日],0))+"○"\
>   ,1\
>   ,#複写("□",[訪問日]-1)+"○")

一度、#複写 コマンドを使って?出来るかどうか分かりませんが一括処理で挑戦してみます。
本当にありがとうございます。

22994 Re:文字列の置換について つねに 2003/10/27-13:24
記事番号22989へのコメント
うにんさんは No.22989「Re:文字列の置換について」で書きました。

>表Aを[訪問日]を転置して転置集計すると
>[顧客番号][訪問年][訪問月][1][15][31][件数]
>のような表が作れます。
>[顧客番号][訪問年][訪問月][1][2][3]〜[31][月間訪問日]
>のような表を表Bとして、転置集計した表を項目名照合で読み込みます。[月間訪問日]は計算項目にして式を
>#COND([1],"○",1," ")+COND([2],"○",1," ")〜#COND([31],"○",1," ")
>としておけば、「転置集計+読み込み」の2ステップでできると思います。

うにんさん。ありがとうございます。
恥ずかしいですが、私はまだ転置集計なる物を使ったことがないのです。
転置集計の概念は理解していますので、おっしゃることは分かります。
私は、元の記事にも書きましたが、出来れば変数でシンプルに処理をと思っていたのですが
むずかしそうですね。
悲しげさんからも、ヒントを頂いておりますので、もう一度変数で挑戦してだめなら
この方法も試してみます。ありがとうございました。

22996 Re:文字列の置換について 悲しげ 2003/10/27-14:50
記事番号22993へのコメント
>もっともそうならば[月間訪問日]を表Aに作ればよいのかも知れませんが。

ご明察のとおり、表Aに[月間訪問日]が存在する(なければ増設?)と云う前提でコメントしました。
なおかつ、全ての[顧客番号][訪問年][訪問月]について、一発で処理してしまうような感じで考えてあります。
もっとも、個々の[顧客番号]・[訪問年]等を1件づつ絞り込んで実行する際にも使えるとは思いますが。

最後に表Aにおいて、行集計(集計行のみ表示)をさせます。
(例えば[顧客番号]を小計項目、[顧客番号]や[月間訪問日]は#項目値)
次に表Bからは、表Aの集計行のみ表示状態で併合置換する(照合項目は[顧客番号]の類、[月間訪問日]は複写)。

一連の手順を、V9なら絞込条件・置換条件・行集計条件・併合条件等を
道具箱に登録しておけば、定型的な作業が楽になりそうな気がします。
あ、でもつねにさんは一括処理ができる方でしたね?
なら、次のような感じになりましょうか。

1.訪問月・日等を会話処理的に入力
2.置換(項目計算式または置換計算式)
3.必要なら絞込みさせてから
4.行集計(集計行のみ表示)
5.編集表を表Bに切り替えて
6.表Bを表Aで併合

ざっと試した感じでは結果は良好だったように思います。
なお、この考え方を、変数でやるのなら、2の置換工程で繰り返しループ
を使うことになるので、若干スピードが落ちそうな。

22999 Re:文字列の置換について つねに 2003/10/27-19:50
記事番号22996へのコメント


悲しげさん
早速のお返事ありがとうございます。
私は、出張中の電車の中で同じような時刻に考えていました。
やや、ずぼらな方法ですが次のような方法が浮かびました。
あくまでも、変数を使っての方法ですが流れだけ書かしていただきます。
(実はまだ一括が出来てないのです)

@前準備として、変数 &訪問日、&訪問日[31]={"□"}、&回数、&月間訪問日を宣言します(□はスペース)
A表Aを顧客番号、訪問年、訪問月で絞り込みます。
B絞り込んだ表Aを順に読み込みます。この例では3レコードで[訪問日]は1,15,31日とします。
C1番目のレコードから[訪問日]を&訪問日に読み込みます。
D読み込んだ変数を&訪問日[&訪問日]="○"と代入します(&訪問日[1]="○")
E2番目のレコードから[訪問日]を&訪問日に読み込みます。
F読み込んだ変数を&訪問日[&訪問日]="○"と代入します(&訪問日[15]="○")
G3番目のレコードから[訪問日]を&訪問日に読み込みます。
H読み込んだ変数を&訪問日[&訪問日]="○"と代入します(&訪問日[31]="○")
ここで#eofになり、この顧客のレコードが全部読み終わります。
そこで、
繰り返し &回数 = 1,31
  &月間訪問日 = &月間訪問日+&訪問日[&回数]
繰り返し終了
これで、多分 &月間訪問日には
"○□□□□□□□□□□□□□○□□□□□□□□□□□□□□□○"
と入ったはずです。
表Bに切り替えて、[月間訪問日]に&月間訪問日を書き込めばよい?と思いました。
後は、変数をクリアして、&訪問日[31]={"□"}とします。

実際は、顧客番号で絞り込んでいたら、他の顧客をまた読み込む操作をしなければならないので、
顧客番号、訪問年、訪問月、訪問日でソートしておいてレコードを読み込む毎に
顧客番号に変化がないかを検査して、変化があれば表Bに書き込む操作をし、
次の顧客の処理を繰り返します。
ただ一括は少し複雑になりますが。

こんな考えでいかがでしょうか。実際に試していないので何とも言えませんが
考え方だけを書きました。間違いがあればご指導お願いします。
また、もっと簡単な方法があればよろしくお願いいたします。

>あ、でもつねにさんは一括処理ができる方でしたね?
>なら、次のような感じになりましょうか。
>
>1.訪問月・日等を会話処理的に入力
>2.置換(項目計算式または置換計算式)
>3.必要なら絞込みさせてから
>4.行集計(集計行のみ表示)
>5.編集表を表Bに切り替えて
>6.表Bを表Aで併合
>
>ざっと試した感じでは結果は良好だったように思います。
>なお、この考え方を、変数でやるのなら、2の置換工程で繰り返しループ
>を使うことになるので、若干スピードが落ちそうな。


早速のお返事ありがとうございます。

23009 Re:文字列の置換について 悲しげ 2003/10/27-22:54
記事番号22999へのコメント
どもっ、つねにさん
多分書き漏らしたのだと思いますが、
 &訪問日[31]={"□"}
だけだと、それこそ&訪問日[31]だけにしか"□"が入らないので、冒頭に
 繰り返し &回数 = 1,31
  &訪問日[&回数]="□"
 繰り返し終了
とやっておく必要があるように思います。

あと、変数とループを使う別案
(とりあえず年・月の要素は除外して)
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
編集表 "表A.tbl"
ジャンプ 行番号=1
&顧客番号=[顧客番号],&月間訪問日="",&直前訪問日=0
繰り返し(.not #EOF)
 if([顧客番号]=&顧客番号)
  &月間訪問日=&月間訪問日+#複写("□",[訪問日]-1-&直前訪問日)\
  ,&直前訪問日=[訪問日]
 else /*顧客の類が変わったら表Bに書き込み、変数値をリセット*/
  *&字数=#文字数(&月間訪問日)
  *cond(&字数<31) &月間訪問日=&月間訪問日+#複写("□",31-&字数)
  *↑これは蛇足ですよね? 31日未満月の判断も面倒だし(^^;)
  編集表 "表B.tbl"  /*別途オープン済みとする*/
  検索 [顧客番号]{&顧客番号},終了状態=&実行リターン
  if(&実行リターン=1)
   行訂正 [月間訪問日]=&月間訪問日
  else
   行追加 [顧客番号]=&顧客番号,[月間訪問日]=&月間訪問日
  end
  編集表 "表A.tbl"
  &顧客番号=[顧客番号],&月間訪問日="",&直前訪問日=0
 end
 ジャンプ 行番号=+1
繰り返し終了
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
以上、挙動未確認。(^^;)

23010 訂正 悲しげ 2003/10/27-23:02
記事番号23009へのコメント
"○"を入れるのが元々の目的でしたね。一番肝心なところが抜けてました。(^^;)


 if([顧客番号]=&顧客番号)
  &月間訪問日=&月間訪問日+#複写("□",[訪問日]-1-&直前訪問日)\

 if([顧客番号]=&顧客番号)
  &月間訪問日=&月間訪問日+#複写("□",[訪問日]-1-&直前訪問日)+"○"\

23017 Re:文字列の置換について 悲しげ 2003/10/28-12:51
記事番号23009へのコメント
既に作られたかもしれませんが、配列変数を利用する別法2
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
編集表 "表A.tbl"
ジャンプ 行番号=1
手続き実行 変数リセット()
繰り返し(.not #EOF)
 if([顧客番号]=&顧客番号)
  &訪問日=[訪問日],&訪問日[&訪問日]="○"
 else /*顧客の類が変わったら表Bに書き込み、変数値をリセット*/
  繰り返し &回数=1,31
   &月間訪問日=&月間訪問日+&訪問日[&回数]
  繰り返し終了
  編集表 "表B.tbl"  /*別途オープン済みとする*/
  検索 [顧客番号]{&顧客番号},終了状態=&実行リターン
  if(&実行リターン=1)
   行訂正 [月間訪問日]=&月間訪問日
  else
   行追加 [顧客番号]=&顧客番号,[月間訪問日]=&月間訪問日
  end
  編集表 "表A.tbl"
  手続き実行 変数リセット()
 end
 ジャンプ 行番号=+1
繰り返し終了

・・・・・

proc リセット()
 &顧客番号=[顧客番号],&月間訪問日=""
 繰り返し &回数=1,31
  &訪問日[&回数]="□"
 繰り返し終了
end
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
こちらも挙動未確認。(^^;)

23019 Re:文字列の置換について アックン 2003/10/28-12:55
記事番号22999へのコメント
つねにさん、悲しげさん> ちょっと横から失礼します。
表Aで &顧客番号で絞り込み、変数値 "○□・・" を作って、表Bの &顧客番号を検索して行訂正する、という手順でもよければ、
項目値を配列変数に代入する方法を書いておきます。(つねにさんが配列変数を使う発想をしていらっしゃったので。)

/* 方法1:検索を使って配列変数に代入する方法 */
var 文字列{ &t[31]={"□"} }
/* (↑)全要素に値を代入する。*/
検索 ↓ [A]{ #progn( #setvar( "t", [A] , "○" ), [A] ) = 100 }
/* (↑ )この 100 は項目値[A]のあり得ない数字を適当に書いておく。日の項目なら 1 から 31 と未定義値以外の
入力を表定義であらかじめ制約しておく。(項目[A]のデータ型は整数) */
&STR=&t[1]+&t[2]+&t[3]+&t[4]+&t[5]+&t[6]+&t[7]+&t[8]+&t[9]+&t[10]+&t[11]+&t[12]+&t[13]+&t[14]+&t[15]+&t[16]+&t[17]+&t[18]+&t[19]+&t[20]+&t[21]+&t[22]+&t[23]+&t[24]+&t[25]+&t[26]+&t[27]+&t[28]+&t[29]+&t[30]+&t[31]
/* (↑)ここはループを使わずに、単純に変数値を連結する。 */
確認 &STR

/* 方法2:繰り返しを使って配列変数に代入する方法 */
var 文字列{ &t[31]={"□"} }
while( .not#eof )
   &t[ [A] ] = "○"
   ジャンプ 行番号=+1
end
&STR=&t[1]+&t[2]+&t[3]+&t[4]+&t[5]+&t[6]+&t[7]+&t[8]+&t[9]+&t[10]+&t[11]+&t[12]+&t[13]+&t[14]+&t[15]+&t[16]+&t[17]+&t[18]+&t[19]+&t[20]+&t[21]+&t[22]+&t[23]+&t[24]+&t[25]+&t[26]+&t[27]+&t[28]+&t[29]+&t[30]+&t[31]
確認 &STR

23029 Re:文字列の置換について うにん 2003/10/28-16:59
記事番号22994へのコメント

>私は、元の記事にも書きましたが、出来れば変数でシンプルに処理をと思っていたのですが
>むずかしそうですね。

変数を使うほうがシンプルに感じられるのはまれなタイプだと思いますが、
試しに一括処理を作ってみました。3行です。
元の表を開いて、転置集計して、目的の文字列を計算する項目を1つ追加して、おしまい。
あとは書き出しするなり表Bに読み込むなりすれば完了です。

表 "表A"
転置集計 {[顧客番号],[訪問年],[訪問月]},[訪問日],[顧客番号],集計種別=件数,見出し項目値並べ替え=する,転置項目名並べ替え=昇順
項目属性変更 追加, {"月間訪問日","文字列","31","左寄せ",,,"#COND(#項目属性(#項目番号(""1""),0),""○"",1,"" "")
+#COND(#項目属性(#項目番号(""2""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""3""),0),""○"",1,"" "")
+#COND(#項目属性(#項目番号(""4""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""5""),0),""○"",1,"" "")
+#COND(#項目属性(#項目番号(""6""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""7""),0),""○"",1,"" "")
+#COND(#項目属性(#項目番号(""8""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""9""),0),""○"",1,"" "")
+#COND(#項目属性(#項目番号(""10""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""11""),0),""○"",1,"" "")
+#COND(#項目属性(#項目番号(""12""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""13""),0),""○"",1,"" "")

と思ったら長すぎてk投稿できませんでした。
23030 Re:文字列の置換について うにん 2003/10/28-17:00
記事番号23029へのコメント
計算式(というか3つ目のコマンドですが)の続き

+#COND(#項目属性(#項目番号(""14""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""15""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""16""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""17""),0),""○"",1,"" "")
+#COND(#項目属性(#項目番号(""18""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""19""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""20""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""21""),0),""○"",1,"" "")
+#COND(#項目属性(#項目番号(""22""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""23""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""24""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""25""),0),""○"",1,"" "")
+#COND(#項目属性(#項目番号(""26""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""27""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""28""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""29""),0),""○"",1,"" "")
+#COND(#項目属性(#項目番号(""30""),0),""○"",1,"" "")+#COND(#項目属性(#項目番号(""31""),0),""○"",1,"" "")"}

23032 Re:文字列の置換について アックン 2003/10/28-17:08
記事番号23019へのコメント
悲しげさん> No.23017を見て、(質問者が)やりたいことがようやくわかったです。(実はよく質問を読んでない(^^;。失礼)
No.23019では絞り込みを前提とする検索での変数代入でしたが、絞り込まないでやる方法を考えてみました。
あとは、行訂正周りを悲しげさんが書いたように精緻にすると。(日が未定義のときは未確認。)

編集表 "A"
ジャンプ 行番号=先頭
並べ替え { [顧客No]昇順 }
var 文字列{ &顧客No }
while( .not#eof )
var 文字列{ &t[31]={"□"} }
&顧客No = [顧客No]
  検索 ↓ [A]{ #progn( #cond( [顧客No]=&顧客No , #setvar( "t", [A] , "○" ) ) , [顧客No] ) <> &顧客No }
  &STR = &t[1]+&t[2]+&t[3]+&t[4]+&t[5]+&t[6]+&t[7]+&t[8]+&t[9]+&t[10]
+&t[11]+&t[12]+&t[13]+&t[14]+&t[15]+&t[16]+&t[17]+&t[18]+&t[19]+&t[20]
+&t[21]+&t[22]+&t[23]+&t[24]+&t[25]+&t[26]+&t[27]+&t[28]+&t[29]+&t[30]+&t[31]
編集表 "B"
検索 [顧客No]=&顧客No
  行訂正 [ナントカ]=&STR
編集表 "A"
end
確認 &STR


23036 微訂正 悲しげ 2003/10/28-18:53
記事番号23017へのコメント
> if([顧客番号]=&顧客番号)
>  &訪問日=[訪問日],&訪問日[&訪問日]="○"
> else /*顧客の類が変わったら表Bに書き込み、変数値をリセット*/
>  繰り返し &回数=1,31
>   &月間訪問日=&月間訪問日+&訪問日[&回数]
>  繰り返し終了

ここは

  繰り返し &回数=1,&訪問日
   &月間訪問日=&月間訪問日+&訪問日[&回数]
  繰り返し終了

で止めてもいいかもしれないのと、

>proc リセット()

のところは

proc 変数リセット()

の間違い。(^^;)

あと、試してないのでナンですが(^^;)、
変数名としては「&訪問日」と配列変数の「&訪問日[*]」は
ぶつかりませんでしたっけ?
23074 Re:文字列の置換について つねに 2003/10/30-17:42
記事番号23032へのコメント
アックンさん

>悲しげさん> No.23017を見て、(質問者が)やりたいことがようやくわかったです。(実はよく質問を読んでない(^^;。失礼)
>No.23019では絞り込みを前提とする検索での変数代入でしたが、絞り込まないでやる方法を考えてみました。
>あとは、行訂正周りを悲しげさんが書いたように精緻にすると。(日が未定義のときは未確認。)
>
>編集表 "A"
>ジャンプ 行番号=先頭
>並べ替え { [顧客No]昇順 }
>var 文字列{ &顧客No }
>while( .not#eof )
> var 文字列{ &t[31]={"□"} }
> &顧客No = [顧客No]
>  検索 ↓ [A]{ #progn( #cond( [顧客No]=&顧客No , #setvar( "t", [A] , "○" ) ) , [顧客No] ) <> &顧客No }
>  &STR = &t[1]+&t[2]+&t[3]+&t[4]+&t[5]+&t[6]+&t[7]+&t[8]+&t[9]+&t[10]
>+&t[11]+&t[12]+&t[13]+&t[14]+&t[15]+&t[16]+&t[17]+&t[18]+&t[19]+&t[20]
>+&t[21]+&t[22]+&t[23]+&t[24]+&t[25]+&t[26]+&t[27]+&t[28]+&t[29]+&t[30]+&t[31]
> 編集表 "B"
> 検索 [顧客No]=&顧客No
>  行訂正 [ナントカ]=&STR
> 編集表 "A"
>end
>確認 &STR
>
悲しげさん。アックンさん。うにんさん。
ありがとうございます。まあ、色々と方法はあるものですね。
悲しげさん、アックンさん、うにんさん それぞれ考えが異なるようですが、
自分は考えが不足していることを痛感しました。
こんなに、多くの方からアドバイスを頂き、大変感謝しております。
実は、質問を簡単にするため、他の要因(項目名や流れ等)を書きませんでしたが、実際は複雑にからみがあります。
この事は、個人的なことなので、頂いた考え方を参考に自分のシステムに最適な方法でくまさせていただきます。
本当にありがとうございました。
”つねに”より

23075 Re:微訂正 つねに 2003/10/30-17:51
記事番号23036へのコメント

>あと、試してないのでナンですが(^^;)、
>変数名としては「&訪問日」と配列変数の「&訪問日[*]」は
>ぶつかりませんでしたっけ?

悲しげさん。
ぶつかりますか。何しろ、桐の一括はまるきり素人同然ですので
試してみます。昔、BASICでは大丈夫と思っているのですが。
色々とお手数をかけて申し訳ございません。
でも、おおよその考え方は理解できました。
後は、自分のシステムに当てはめるだけです。
(質問がややこしくなりますので書きませんでしたが、実はもう少し複雑な
   システムで組んでいますので)
本当にありがとうございました。

戻る