過去の桐井戸端BBS (桐ver.8)
6363 後ろの行の項目値の取得 toshi-chan 2000/06/10-11:54
表.tblのある項目において、別の項目の項目値を取得する場合のことです。
表定義の項目計算式に、関数を設定することで対応したいと思っています。

同じ行の別の項目の値であれば、 #項目属性( n ,0 )  で取得できます。
直前の行の項目値であれば、 #直前値( item , val ) で取得できます。

もっと前の行の項目値であれば、表定義の工夫と#直前値( item , val )の組み合わせで取得できます。
後ろの行の、別の項目の値の取得はどのようにしたら実現できるでしょうか。
6364 Re:数行前の項目値の取得 佐田 守弘 2000/06/10-12:30
記事番号6363へのコメント
toshi-chanさん
数行直前の行の項目値であれば、[直前1][直前2]・・・[直前n]といった項目を作っておき、
直前値の直前値、またその直前値を参照する形で取り込めます。
つまり、[直前2]は、
#直前値([直前1],#未定義)
で取り込めます。

直後値(?)はその表の中だけでは、残念ながら取り込めません。
これを取り込むとしたら、ちょっと手間のかかる方法になります。
@表にはレコード番号を持つ項目を付け加えておく
 #連番関数で再計算をすれば連番が振られる方式が良いと思います。
A現在の表を参照する表として書き出す。
 適当なタイミングで連番を振り直し、別表に書き出します。
 これは、イベントハンドラで処理できるでしょう。
B書き出した表のレコード番号の値を必要な行数分だけ減じます。
C元の表には、書き出した表のレコード番号の項目で表引きをする計算式を設定しておきます。

イベントハンドラを使えば手間は掛りませんが、必要な再処理に時間が掛ります。
直後値を確定する必要がある時に実行すると行った工夫が必要になるでしょう。

佐田守弘(KS-00119)
6366 Re:直前値ならぬ直後値 悲しげ 2000/06/10-12:31
記事番号6363へのコメント
どもっ、toshi-chanさん

>後ろの行の、別の項目の値の取得はどのようにしたら実現できるでしょうか。

あまり良いやり方とも思えませんが、私が前に採用した方法はある作業用の数値系項目で#連番をふり、
次に逆順で並べ替えした上で、#直前値関数を使いました。(^^;)

6369 Re:項目値の取得 宮城 2000/06/10-15:33
記事番号6363へのコメント
回答不能でしょう。

>後ろの行の、別の項目の値の取得はどのようにしたら実現できるでしょうか。

どんな局面でやりたいのかもわからないし、具体的に相対的でもいいからどこに位置する項目からかもわからないし・・・。

意地悪そのものですけど、もっとも的確と思われるお答え。

当該行に跳び、当該項目をSTRにとり、これを目的の行・項目で呼び出す。

あえて書き込みいたします。

6370 Re:数行前の項目値の取得 toshi-chan 2000/06/10-21:49
記事番号6364へのコメント
佐田さん、こんばんは。
いつも的確なアドバイスをありがとうございます。

早速、教えていただいた方法を試してみたいと思います。
私はまだイベントを使い慣れていないので、
一括処理かコマンドボタンでやってみます。

6371 Re:直前値ならぬ直後値 toshi-chan 2000/06/10-21:50
記事番号6366へのコメント
早々とお答えいただきありがとうございます。
ユニークな発想で目からウロコが落ちる思いでした。
システム設計するときには、発想がとても大事ですね。
今後ともよろしくお願いいたします。

6372 Re:項目値の取得 toshi-chan 2000/06/10-21:51
記事番号6369へのコメント
この掲示板に書き込みを行うとき、どの程度の具体性を持たせるかはいつも考えてしまいます。
あまり細かすぎても、読んでいる人が理解できない場合がありますね。
今回の件では、佐田さんと悲しげさんから的確なお答えをいただきました。
多分おふたりとも私と同じような場面に遭遇したことがあるのでしょうね。
失礼いたしました。
6375 2行前の項目値を使った経験 佐田 守弘 2000/06/10-23:30
記事番号6372へのコメント
toshi-chanさん
 >この掲示板に書き込みを行うとき、どの程度の具体性を持たせるかはいつも考えてしま
 >います。
このあたりは宮城さんが書かれている事に同感で、できるだけ詳しく書いて頂いた方が、分かりやすいですし、
コメントを付ける方も増えると思います。
ただし、時としてほとんど同じ事を経験した事があると、「あれだ!」という事で、
かなり抽象的な内容でもピント来る事がないわけではありません。
でも、一般論としては、できるだけ状況を詳しく書いて頂く方が宜しいかと思います。
私の今までのコメントを分析して頂ければ分かるかも知れませんが、質問の題意を把握しかねて、
的外れな書き込みをしている場合も結構あります。

さて、余談です。
 >多分おふたりとも私と同じような場面に遭遇したことがあるのでしょうね。
私の例で言えば、自動車の燃費計算で2行前の項目値の参照を使った事があります。
ちょうど今から10数年ほど前でしょうか、たまたまその時に購入した新車の燃費を記録してみました。
燃料を入れる時には満タンにし、その時の日付と距離計、給油量を記録して行ったわけです。
しかし、燃費を計算してみると、振れが大きい事が分かりました。どうも満タンに給油したと言っても、
必ずしも一定量ではないらしいのですね。
そこで、2回分および3回分のデータの平均値を取ってみる事にしたわけです。
その結果、2回分の給油量と走行距離から燃費を計算すると、ほとんど一定の燃費が計算できる事が分かりました。
そして、この時に日付と距離計については、直前行の直前値を求める必要があり、この方法を考えました。

佐田守弘(KS-00119)

追伸:更に余談
その当時の話です。いつも使っていたスタンドから、「レギュラー車でもハイオクを使いなさい。
その方が燃費が良くなって特だ。」と強く勧められました。
どうやらプレミアムガス販売のキャンペーンが始まった頃だった様です。
で、ウソかマコトか、一つ騙されてみる事にし、数箇月単位でレギュラーとハイオクを使い分けながら、
かなり長期間に渡って、このシステムで燃費計算をしてみました。
その時にそのスタンドの店主曰く
「測定したデータは店で使いたいから欲しい。」
結果は次の通りでした。
・ハイオクの方がレギュラーよりも燃費は良い(スタンドの言い分通り)。
・しかし燃料単価で比べると、レギュラーの方がわずかに安い(当時の価格で)。
・レギュラー車にハイオクを入れるとパワーがアップが感じられる一方、アイドリング回転数が上がり、
ブレーキの利きが悪く感じる(止まる予定の場所で止まれない)。
桐で解析したグラフをスタンドに差し上げたのですが、店主は不服な顔で曰く、
「店に都合の悪いデータを勝手に作られては困る」
6378 Re:項目値の取得 宮城 2000/06/11-13:10
記事番号6372へのコメント
本件についてはヒールに徹します。

会話処理のテクニックを聞きたかったのですか? 項目条件式の記述を聞きたかったのですか?
一括処理・KEVの記述を聞きたかったのですか?

>この掲示板に書き込みを行うとき、どの程度の具体性を持たせるかはいつも考えてしまい
>ます。
>あまり細かすぎても、読んでいる人が理解できない場合がありますね。

回答があったからといってそういう問題だとお思いですか。
具体性云々とは、実際の取引先名を出すのはまずいから[A社]とするぐらいのことを言いますねん。

6379 Re:項目値の取得 宮城 2000/06/11-13:13
記事番号6378へのコメント
もう少しまじめに言いますと、それを読んだ人が「再現」できますかということです。
再現しようもないことを質問されてもねえ・・・。
6382 Re:2行前の項目値を使った経験 toshi-chan 2000/06/11-17:40
記事番号6375へのコメント
佐田さん、実例を紹介いただいたてありがとうございました。
私の場合は、職員の勤務表を作りたかったのです。

週休2日制の職場が増える一方で、サービス業等は24時間体制をとっています。
私の知り合いの人の職場だけを見ても、電力、ガス、病院、卸売市場、鉄道、警察など、
様々な職場で夜間勤務が行われています。

私の職場も交代制の職場で、夜間勤務をした人や休日出勤をした人には、
平日に振り替え休日を設ける必要があります。
この勤務表を、桐ver8sp5で作ろうというわけです。

項目は、
  [年月日][曜日][夜間勤務][休日出勤][振替休日]
となっています。[夜間勤務]、[休日出勤]に職員名を入力すると別の日の[振替休日]に職員名が
自動入力されるように考えています。

振り替え休日の設定にはある程度の規則性があります。例えば、
  @ 日曜日の昼間勤務者は2日後の火曜日を振り替え休日とする。
  A 土曜日の昼間勤務者は2日前の木曜日を振り替え休日とする。
  B 金曜日の夜間勤務者は・・・・・・・・・
  以降省略
となっています。

@のケースでは、佐田さんと同じ方法を私も考えてついていましたので既に解決してありました。
わからなかったのがAのケースです。木曜日の[振替休日]に、
2日後の土曜日の[休日出勤]を取得する必要がありました。

上記の例は、実態を簡略化したものです。実際はもっと複雑です。ですから今回の質問をする時には、
    
項目計算式に関数を設定することで、「X行」うしろの「Y番目」の項目の値を取得したい。

という言い方になってしまったわけです。

この表を上司がワープロで作成していますが、結構負担のようです。そこで桐でなんとかしたいと思い
ました。交代制勤務の職場にお勤めの方、勤務表はどのようにして作っていますか。

6405 内容が外れますが.... 郷司 2000/06/12-18:52
記事番号6382へのコメント
>  A 土曜日の昼間勤務者は2日前の木曜日を振り替え休日とする。

>ました。交代制勤務の職場にお勤めの方、勤務表はどのようにして作っていますか。

 私は交替勤務の職場ですが、本件の内容からちょっと外れます(すみません)
「振り替え休日」というのは所定時間労働した実績に対して休日が与えられると
思っていたのですが、事前に休日を取る(使用者側からは与える)事については、
労基法上OKなのですか?  勉強不足で大変恐縮ですが..

6408 Re:内容が外れますが.... toshi-chan 2000/06/12-23:15
記事番号6405へのコメント
郷司さん、こんばんは。実は私もよくわからないのです。

労働基準法第32条と35条にはそれぞれ、
●使用者は、労働者に、休憩時間を除き1週間について40時間を超えて、労働させてはならない。
●使用者は、労働者に対して、毎週少くとも1回の休日を与えなければならない。
とあります。特定の曜日を休日とするようには定めていないのです。何曜日を休日とするかは,
それぞれの会社で個々に定めているものと思います。

私が示した事例では、便宜上「振り替え休日」という言葉を使いましたが、職場での扱いは単なる
「休日」なんです。つまり、
   「労働基準法上の今週の休日は、◯◯さんは□曜日だよ」
というだけのことみたいです。

また、仮に1週間のサイクルが「日曜日から土曜日」までで、日曜日と土曜日が「休日」の会社があったとします。
土曜日に正規の勤務を行い、その振り替え休日を翌週に取ったとすると、今週の労働時間は
 8時間×6日=48時間  となってしまい、労働基準法第32条に抵触すると考えることができるのです。

私が今の会社に勤め始めた時、すでにこうなっていたので経緯はよくわからないのです。

桐とは直接関係のない話になってしまいましたが、いろいろな場所で桐が活躍しているという証拠です。
私も、この様な場面で桐を使うことになるとは思ってもいませんでした。

本掲示板の本旨とははずれていますので、管理者の幅田さん、不都合でしたら削除してください。

6419 Re:内容が外れますが.... 郷司 2000/06/13-18:54
記事番号6408へのコメント
>私が示した事例では、便宜上「振り替え休日」という言葉を使いましたが、職場での扱いは単なる
>「休日」なんです。つまり、
>   「労働基準法上の今週の休日は、◯◯さんは□曜日だよ」
>というだけのことみたいです。

そういうことだったのですね。
 それは「指定休日」といわれるものだと思います。
てっきり「振り替え休日」と勘違いしまして失礼しました。(^^ゞ

6429 Re:2行前の項目値を使った経験 今村 誠 2000/06/14-08:54
記事番号6382へのコメント
toshi-chanさんは No.6382「Re:2行前の項目値を使った経験」で書きました。
具体例があると答えやすいですね。
私が友達から頼まれて、ホテルの稼働率を出してくれと言われたことがあります。
部屋ごとに入館者を記入していくのですが、画面伝票で年と月をグループ項目にして
曜日を1日から31日までの項目を作りました。
で日曜日だけを赤く表示したり土曜日を青く表示したりして。
だから、直後値の場合は同じレコードの中の違う値をとることなので直前値はいらないと思うのですが
考え方だけですけど
まず項目属性で項目名を取得しといて、その項目を訂正するときに、イベントで、その項目名を取得し曜日を出します。
その曜日に対応した何日後かの曜日の項目値を取得すればよいのではないでしょうか。
この表を作ったときの時間は最初の1週間分に時間をかけて、後は項目をコピーするだけですので、
4時間ぐらいあればできるのではないでしょうか、項目数は、日にちに31項目、曜日に31項目
月と年それと出勤者名近くにいるとその表とフォームをコピーしてあげられるのですが………。

6458 Re:2行前の項目値を使った経験 toshi-chan 2000/06/14-21:55
記事番号6429へのコメント
コメントありがとうございます。
私は画面伝票を本格的に使った経験がないので、マニュアルを見ながら試してみたいと思います。

今回の件では、単一の表のみで処理したかったので項目計算式に #直前値 を使うことを考えました。
しかし、入力した後にデータの訂正を行いたいこと、直前値と直後値の両方を取り込みたいことがネックになりました。

結果的に悲しげさんの方法を基本にして、履歴を併用することにしました。直後値は置換コマンドの条件式に 
#直前値 を設定することで取り込み、直前値は項目計算式の #直前値 で取り込みました。この方法にすると、
再計算を行っても直前値と直後値の両方を取り込めます。

みなさんありがとうございました。

戻る