過去の桐井戸端BBS (桐ver.9)
19951 レポートの円オブジェクトの表示位置を変更したい けんた 2003/04/15-14:15
現在、グリーンの「本日のピンポジション」を桐で作成しております。
ゴルフをされる方でしたらご存知だとは思いますが、グリーン上のピンの位置を
●で表示してあるものです。
前は、レポートで画像ファイル41o×48o(1ホール)の上に
一覧表(列41 行48 幅・高さ共に1o )を貼り付けて
表の中に文字列 ● を入れてやっていたのですが、
レポートの円オブジェクトの表示位置をフォームから入力して、
そこに移動してくれれば簡単だと思ったのですが、そんなことはできるのでしょうか?
よろしくお願い致します。
19969 Re:レポートの円オブジェクトの表示位置を変更したい うにん 2003/04/16-09:44
記事番号19951へのコメント
残念ながらレポートの変更は会話処理でしかできないと思います。
キー送信するソフトを使えばどうにかなるかも?

19970 Re:レポートの円オブジェクトの表示位置を変更したい けんた 2003/04/16-10:20
記事番号19969へのコメント
やはり無理ですか・・・

>キー送信するソフトを使えばどうにかなるかも?
キー送信のことは何も知らないので、勉強して挑戦してみます。

ありがとうございました。
19981 キー送信を「ひまわり」で けんた 2003/04/16-15:20
記事番号19970へのコメント
以前、ここのBBSにもあった
日本語プログラムの「ひまわり」で
やってみようとおもいます。

http://www.fuku3.com/~habata/kbbs/kakoetc/14849.htm
19984 Re:レポートの円オブジェクトの表示位置を変更したい 原山 正洋 2003/04/16-15:58
記事番号19951へのコメント
けんたさん こんにちは

労力を厭わなければ可能ではあります。

フォーム・レポートともに
41×48=1968個のテキストボックスを敷き詰めます。
それぞれの同じ場所のソースに

&PIN[1]〜&PIN[1968]までを設定する。
フォームの方は1ミリ角だと小さすぎるので適当な大きさにしてください。
あとはファミリーで、マウス左クリックイベントにでも &PIN[&i]="●"
としておいたらどうですか?
トグルでクリックする都度、"●" と "" になるほうがいいでしょう。
またオブジェクト名も PIN1 などのように数字をあわせて、
&PIN[#num(&this)]とすればいいと思います。

そして印刷ボタンをクリック・・・

それにしても、こういうケースで、オブジェクト名・ソースの値などを簡単に設定する方法はないのでしょうか。
エディターなどで、作成したテキストを一気に読み込むことができればいいのですが・・・
もしそんな力技があればどなたかお教えください。

19987 Re:レポートの円オブジェクトの表示位置を変更したい 悲しげ 2003/04/16-22:20
記事番号19984へのコメント
どもっ、原山さん

試した訳では全くありませんので、私の勘違いかもしれませんが、

>あとはファミリーで、マウス左クリックイベントにでも &PIN[&i]="●"
>としておいたらどうですか?
>トグルでクリックする都度、"●" と "" になるほうがいいでしょう。

これだと、同じテキストをクリックした時だけは●が消えるけれども、
前回●付けしたテキストが別な場合は●が残ったままで、
次々に●が増えて行くような気が・・・・。(^^;)

この辺りの対策としては、例えば「マウス左ダウン」イベントで全ての&Pin[&i]を空にして再描画した上で、
「マウス左アップ」イベントで当該配列変数に●を代入するなんてことを考えてみたり。
19988 Re:レポートの円オブジェクトの表示位置を変更したい 悲しげ 2003/04/16-22:38
記事番号19987へのコメント
あう、
でも元々の質問(#19951)では、類似のことは既に41列×48行の表でもって実現しているので、
今度はマウスクリックの類ではなくて、縦と横のX・Y座標の数値をフォームからキー入力したものを
(おそらくはフォーム上に反映・表示させた上で)印刷にかけたいと云うことなのだと思います。(^^;)

う〜ん、ちょっと遠回りになりますが、フォーム経由でもできないこと
はないような気がします。
レポートの円オブジェクト(ったって要するに●みたいももんでしょうから)を使わずに、
先に作った表データ(●付き)をそのまんま生かすような目の細かい一覧表オブジェクトを作って
(それこそ背景を一覧表オブジェクト自体のそれも含めて透明にして)、背景たるグリーン(?)のピクチャの上に重ねる。
フォーム上で、マウスクリック系なり数値の直接キー入力なりで●位置を決めた後に直ちに
(あるいはコマンドボタン経由などで)当該データをレポート印刷させる。
やっぱしちょっと苦しいでしょうか。(^^;)
19989 Re:レポートの円オブジェクトの表示位置を変更したい うにん 2003/04/16-23:17
記事番号19951へのコメント
>前は、レポートで画像ファイル41o×48o(1ホール)の上に
>一覧表(列41 行48 幅・高さ共に1o )を貼り付けて
>表の中に文字列 ● を入れてやっていたのですが、
>レポートの円オブジェクトの表示位置をフォームから入力して、
>そこに移動してくれれば簡単だと思ったのですが、そんなことはできるのでしょう
>か?

文字サイズを1mmにして、入力した数値で#複写(" ",計算値)を使って位置を
調整すると、オブジェクトや何かを大量に作ったり移動したりしないでできませんかね〜?

19990 Re:レポートの円オブジェクトの表示位置を変更したい 原山 正洋 2003/04/16-23:43
記事番号19987へのコメント
悲しげさん こんばんわ
>この辺りの対策としては、例えば「マウス左ダウン」イベントで全て
>の&Pin[&i]を空にして再描画した上で、「マウス左アップ」イベント
>で当該配列変数に●を代入するなんてことを考えてみたり。

このへんは、当事者の使い勝手と工夫ということで、ヒントのつもりです。

それより、
>ような目の細かい一覧表オブジェクトを作って(それこそ背景を一覧表
>オブジェクト自体のそれも含めて透明にして)、背景たるグリーン(?)
>のピクチャの上に重ねる。
>フォーム上で、マウスクリック系なり数値の直接キー入力なりで●位置
>を決めた後に直ちに(あるいはコマンドボタン経由などで)当該データ
>をレポート印刷させる。
この一覧表の方がこの場合ずっと楽だし、スッキリしますね。

私の方法は、とにかく作るのを想像するのもいやになるくらい、
不毛な作業を強いられます。

ということで、この件の力技はありませんか?

レポートの方は、●が一つだけなのでなにか計算式で表示位置を決める方法もあるんでしょうが、
いずれにしても、フォーム・レポートの定義では、苦労させられます。
もっと生産的な労力にまわしたい・・・

19992 レポートのオブジェクトの属性変更はできませんね。 佐田 守弘 2003/04/17-00:13
記事番号19951へのコメント
けんたさん
フォームのオブジェクトは、オブジェクト属性を変更するコマンドがあり、
このコマンドを使えば、属性変更が可能です。
しかしながら、レポートのオブジェクトについては、定義画面で設定するのみで、
印刷時に計算式の値で変更する機能がありません。

従って、御質問の様な値によって円オブジェクトの印刷位置を決めるような事を実現する事は不可能だと思います。

レポートのオブジェクトの属性を計算式で決められると、いろいろと便利な事ができますね。
しかし、自分が桐を作る立場になって、考えてみると、その設定インタフェースと言うか、
「どこに属性を変更する計算式を設定するのか?」
が結構面倒と言うか、ユーザー側から見ても、複雑すぎて使い物にならなくなりそうですね。

現在の印字属性式で設定できるテキストオブジェクトの印字属性にしても
1つ1つ設定しなければならない割りには、設定できるのはフォントと色、
背景などに限られています。
位置とサイズ、囲み罫線などの属性の変更はできないんですね。
簡単な設定画面で属性の大部分を設定できる方法があると便利だと思いますが。

とは言え、オブジェクトのサイズと位置を可変にしてしまうと、出力時の割付けの内部計算がかなり複雑になって、
実現性が薄いのかも知れませんが。

佐田守弘(KS-00119)
19993 Re:レポートの円オブジェクトの表示位置を変更したい 通りすがり 2003/04/17-00:26
記事番号19951へのコメント
発想を変えて・・・・
こちらにサンプルを。

>レポートで画像ファイル41o×48o(1ホール)の上に
>一覧表(列41 行48 幅・高さ共に1o )を貼り付けて
>表の中に文字列 ● を入れてやっていたのですが、

このサイズの画像、及び1mm単位での細かい位置合わせが必要でなければ、
(実際に1mmの円を書いて見えるの?)
この方法もどうでしょうか?
単にテキスト領域に「文字」を書き出しているだけです。

図形の実サイズにこだわるなら、根性と努力で、フォントサイズ、オブジェクトのサイズを上手く調整し、
横文字数、縦行数を設定すれば可能でしょう。

41×48のセル?を作るのと「どっこいどっこい」かな?
19995 Re:レポートの円オブジェクトの表示位置を変更したい けんた 2003/04/17-09:14
記事番号19951へのコメント
色々なお答えありがとうございます。
現在は、グリーンの周りにある4つのスプリンクラーから、
ピンの位置まで実測して(2点から)、100分の1に縮尺してある
図面に、コンパスでクルリと書き、●を決めています。

それが面倒なので、数値を入力して(2カ所からの距離)●が書けたらなぁ と思った次第です。
●の座標を決めるのも計算が大変だとは思いますが。
通りすがりさんのサンプルを参考にすれば、出来そうなのですが、
(マウス位置と4つのスプリンクラーからの距離を表示しておいて、測った距離が一致すればクリックして決定)
やはり座標計算が困難ですよね、三角関数使えば大丈夫とおもっていたのですが、
そんなの忘れてしまっていて、どんな計算すれば良いかもわからない状況です。
(三角関数で計算出来るんですかね?)


19996 Re:レポートの円オブジェクトの表示位置を変更したい 通りすがり 2003/04/17-10:12
記事番号19995へのコメント
>やはり座標計算が困難ですよね、三角関数使えば大丈夫とおもっていたのですが
これはネット上でご自分でお調べになれば、簡単に実現できます。

が・・・・・、問題なのは

>ピンの位置まで実測して(2点から)、100分の1に縮尺してある
>図面に、コンパスでクルリと書き、●を決めています。

の1mmの精度を要求した状況下で、その結果をレポートに印字しなければならないということです。

そのため、私の示した方法は不適当です。
あれはあくまでテキスト文字で「●」を印字しているに過ぎません。
「X,Y座標」という概念ではなく、「何行目の何文字目」という考え方です。
目的を達成するには1mmサイズのフォント? が要求されます。

「すし屋」に行って「カレーが食べたい」と言っているような気がしてなりません。


19998 Re:グラフを使った座標表示 通りすがり 2003/04/17-10:27
記事番号19951へのコメント
さらに発想を変えて・・・・

1.X、Y座標をきちんと計算して得たと仮定して、表の項目にその値を取り込みます。
2.この値を元に「グラフ作成」でX、Y座標軸上にデータを表示します。
  ●でも▼でも何でも・・・・・、大きさも変えられられますし。
  このとき、グラフの背景に、グリーンの画像を指定しておきます。
3.得られたグラフを「画像ファイル」として吐き出します。
4.レポートには、その画像ファイルをそのまま印字させます。

座標の取り方、グリーンのサイズと座標との位置データの変換などなど、試行錯誤しなければならないでしょうが、
ご希望に添うようなものができると思います。

ちょっと面倒ですが、「すし屋」で「カレー」を食べられそうです。

20000 Re:グラフを使った座標表示 けんた 2003/04/17-11:06
記事番号19998へのコメント
すごい・・・
グラフなら座標そのものですね。
頑張ってチャレンジしてみます。(三角関数も)
ありがとうございます。
20008 Re:レポートの円オブジェクトの表示位置を変更したい ケント 2003/04/17-16:55
記事番号19951へのコメント
けんたさん こんにちは

私も通りすがりさんと同じようにグラフを使っては?と思ったのですが、
外出している間に先を越されてしまいました。

多分散布図を使うと思うのですが、グラフの原点,グリーン図の原点,
現場グリーンの原点の一致が難しそうですね。

方法は変わりますが..
この件でレポートの印字属性を見ていて気づいたのですが、
ラベルオブジェクトとテキストオブジェクトの印字条件の設定に
"印刷しない"
というのがV9から増えていますね。V8sp6ではなかったと思います。
ラベルで"●"を配置しておいてX座標値Y座標値で属性式を作成すれば項目を増やすことなく設定できそうです。


20023 Re:レポートの円オブジェクトの表示位置を変更したい けんた 2003/04/18-14:01
記事番号20008へのコメント
ケントさんありがとうございます。

>方法は変わりますが..
>この件でレポートの印字属性を見ていて気づいたのですが、
>ラベルオブジェクトとテキストオブジェクトの印字条件の設定に
>"印刷しない"
>というのがV9から増えていますね。V8sp6ではなかったと思います。
>ラベルで"●"を配置しておいてX座標値Y座標値で属性式を作成すれば
>項目を増やすことなく設定できそうです。

上記の方法をもう少し詳しくお教え願えないでしょうか?
お願い致します。
20032 ラベル改めタイルオブジェクトで.. ケント 2003/04/18-22:36
記事番号20023へのコメント
けんたさん こんにちは

なんか余計なことを言って迷わせているみたいですね_(._.)_

>>この件でレポートの印字属性を見ていて気づいたのですが、
>>ラベルオブジェクトとテキストオブジェクトの印字条件の設定に
>>"印刷しない"
>>というのがV9から増えていますね。V8sp6ではなかったと思います。
>>ラベルで"●"を配置しておいてX座標値Y座標値で属性式を作成すれば
>>項目を増やすことなく設定できそうです。

これはレポートでラベルオブジェクトを41×48個配置しソースは"●"で印字属性式に
[X]<>1
[Y]<>1
"印刷しない"

[X]<>2
[Y]<>1
"印刷しない"
:
:
[X]<>1967
[Y]<>1968
"印刷しない"

[X]<>1968
[Y]<>1968
"印刷しない"

としてやれば表(.tbl)の項目は[ホール番号][X][Y]だけでできるということです。
1つラベルを作ってコピコピすれば後は属性式の編集です。
気が遠くなりそう…

と、ためしにやってみたら..(゜◇゜)~ガーン
ラベルオブジェクトの最小値が2mm×2mmみたいでご希望には添えそうもありません。
それにレポートの仕様でオブジェクトは1000個までと書いても有ります。

それではタイルオブジェクトではどうだ!!
こちらは41×48のタイルオブジェクトを作れるから簡単ですね。
後は2mm×2mmの壁をオブジェクト2枚重ねで何とかできれば…
後ほど報告します。

以上 前述しましたが、レポートでの話です。

けんたさんや皆さんがおっしゃっているようにxy座標をどうやって求めるかが一番の問題ですね。
2点からの距離では交点が2箇所できてしまいますよね。
それに画像の縮尺の問題もありますね。

グリーン画像にスプリンクラーの位置があれば、そこをクリックして座標を
取得して…なんて素人考えですみません。
通りすがりさんのコメント(19951.lzh)がとても素晴らしくて感動しています。

戻る