過去の桐井戸端BBS (桐ver.9)
28708 一括処理で値集合の登録時にエラーがでる hironobu 2005/01/11-23:50
桐9-2004sp2です。
一括処理で値集合を登録しようとするとエラーなります。

(1)項目属性変更2 変更,[棟]{,,,,,,,,,"{F1,F2}011"}
(2)項目属性変更2 変更,[棟]{,,,,,,,,,"{1F,2F}011"}
(3)項目属性変更2 変更,[棟]{,,,,,,,,,"{F−,F2}011"}

(1)はOKです。
(2)と(3)は、エラーになります。

「KD1252:値集合の形式に誤りがあります」というメッセージです。

数字が最初にきたり、−の文字でなるようです。

表編集の項目属性変更の値集合登録では登録できます。

設定方法が悪いのでしょうか。
よろしく、お願いいたします。


28709 Re:一括処理で値集合の登録時エラーがでます。 T.Samura 2005/01/12-08:36
記事番号28708へのコメント
おぎのさん、こんにちは。
表編集で値集合登録後に表定義を書き出すと、
"種別","文字列","M994",,,"しない","許可",,,"{""1f"",""2f
""}010",,,,,,,"許可","許可",,,"基本",,,,,,,0,,0,,1,1,,,,,,,,1,"M994","
する",,,",,,0,00000000","00000000","中央","中央
",",,,0,00000000","00000000",,,,0,,"00,00,00"
となるので、
,"{1F,2F}011"}

,"{""1f"",""2f""}010"
に変えればいいかと思います。(動作確認はしてませんが)。試して下さい。

28713 Re:一括処理で値集合の登録時エラーがでます。 hironobu 2005/01/12-20:10
記事番号28709へのコメント
T.Samuraさん。
解決しました。ありがとうございました。
表定義を見ることも、とても参考になりました。

これまでマスタ登録と表編集の値集合の登録を別々にしていたのですが、マスタ登録だけですみそうです。

28714 履歴で雛型を書き出すの確実です 佐田 守弘 2005/01/12-22:55
記事番号28713へのコメント
おぎのさん
>これまでマスタ登録と表編集の値集合の登録を別々にしていたのですが、
>マスタ登録だけですみそうです。
これは2つの表に同じ値集合を登録していたと言う意味でしょうか。

もし片方の表に値集合の登録を行っているのであれば、その操作を行って
履歴を書き出し、履歴の中に作られた項目属性変更コマンドを取り出して
一括処理化するのが便利かと思います。

各種の条件を定義するコマンドもそうですが、書式が複雑で手作業で記述すると
必ずやエラーを起こすコマンドがいくつかあります。
この様なコマンドは直接記述するのではなくて、履歴で自動生成する方が確実です。

今回の値集合の登録の場合でも、仮に完全なコマンドを生成するのでは
なくてもでなくても、履歴で雛型の様なものを書き出して、あといくつかの
値集合を付け加えると行った方法の方が便利かと思います。

佐田守弘(KS-00119)


28715 Re:履歴で雛型を書き出すの確実です hironobu 2005/01/12-23:44
記事番号28714へのコメント
佐田 守弘さん

これは2つの表に同じ値集合を登録していたと言う意味でしょうか。

説明をするのが下手なので、具体的に書きます。
以下のマスタを作っています。
このマスタは他の処理でも使うため一つの表にしています。
幾つかの処理の一つにデータを入力する表があります。
このとき、[値集合列]値集合で入力できると便利なので、
項目属性変更2を使えるのではないかと思ったのです。

&共食伝票(マスタ)
項目名 値集合列 オプション
サービス S,N 011
入所 入所,退所,変更,転棟,食止,食出,外出,外泊 011
食事 ○,■,▲ 011
区分 朝食,昼食,おやつ,夕食,未定 011
食種 一般,特別 011
加算 加算, 非加算011
棟 1F,3F,4F,デイ 011
主食 米飯,おにぎり,全粥,五分粥,ミキサー 011
以下データあります。

これを &共食値集合表(データ入力用の表)の値集合に写すようにしました。

表 &共食伝票
表 &共食値集合表
ジャンプ 行番号=先頭
繰り返し (.not #終端行)
&項目名=[項目名],&値集合列=[値集合列],&オプション=[オプション]

&i=1
繰り返し (#対応文字列(&値集合列,&i)<>#未定義)
&値集合列=#文字置換(&値集合列,&i,#連結("""""",#対応文字列(&値集合列,&i),""""""))
&i=&i+1
繰り返し終了

編集表 #表番号取得(&共食伝票)
&STR=#連結("項目属性変更2 変更,[",&項目名,"]{,,,,,,,,,""{",&値集合列,"}",&オプション,"""}")
コマンド &STR
編集表 #表番号取得(&共食値集合表)
ジャンプ 行番号=次行
繰り返し終了
終了 表 #表番号取得(&共食値集合表)
終了 表 #表番号取得(&共食伝票)

こんな感じです。

ご指摘のように、履歴はあまり使っておらず
マニュアルをみながら自己流で作っていました。

これから、履歴など活用していきたいと思います。
ありがとうございました。
また、いろいろ教えて下さい。よろしくお願いいたします。


28716 Re:訂正します。 hironobu 2005/01/12-23:50
記事番号28715へのコメント
佐田 守弘さん

すいません。
マスタが&共食値集合表で
データ入力用の表が&共食伝票でした。
訂正します。

28717 参考:よく入力される文字列を値集合にする T.Samura 2005/01/13-08:01
記事番号28715へのコメント
参考までに個人使用している買物記録の一括処理の一部を書きます。
特別手動登録処理はしないで日々入力していくと利用頻度の高い店から順に値集合の上位に来る事を
期待して作ってます。

 表 "SHOPPING.TBL"
  置換 [累計]
  &STR=#CAT(">""",#日付(#年月日,1),"""")
  検索 ↓,[日付]_&STR,文字比較方法=自動
  ウィンドウ作成 表,ハンドル=&hWnd,オプション=通常
  ウィンドウ位置 最大化,&hWnd
  表形式編集 カーソル=→
  ウィンドウ位置 復元,&hWnd
  /* 店名の値集合作成 */
  絞り込み 単一化={[日付],[店名]}
   行集計 データ行=無,並べ替え=す,小計[店名]{[店名]#項目値,[個数]#件数}
    書き出し 表,"temp.tbl",{[店名],[個数]}
   行集計解除
  解除 *
  表 "temp.tbl"
   並べ替え条件登録 条件名="個数",{[個数]降順}
   並べ替え 条件名="個数"
    if (.not #空ファイル)
     ジャンプ 行番号=先頭
     &STR=#UNDEF
     繰り返し &iCount=1,16
      &STR=#CAT(&STR,#STR(&iCount),":",[店名],",")
      ジャンプ 行番号=次行
      if (#終端行)
       繰り返し中止
      end
     繰り返し終了
     &STR=#CAT(&STR,#STR(&iCount+1),":")
    end
   解除 *
  終了 表 編集対象表
  編集表 "SHOPPING.TBL"
  &STR=#CAT("集合{",&STR,"}")
*  メッセージボックス "&STR",&STR,アイコン=!
  項目属性変更 変更,[店名]{,,,,&STR}

28718 Re:参考:よく入力される文字列を値集合にする hironobu 2005/01/13-20:18
記事番号28717へのコメント
T.Samuraさん

>参考までに個人使用している買物記録の一括処理の一部を書きます。
>特別手動登録処理はしないで日々入力していくと利用頻度の高い店から順に値集合の上位に来る事を
>期待して作ってます。

入力したデータが自動的に値集合に登録されるのですね。
頻度順がほしいときや不特定なデータのとき、とても便利そうです。
ぜひ、使いたいと思います。
ありがとうございました。

戻る