一つ一つの変数をDBの各レコードにするには
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
mizkoba
投稿数: 48
![常連 常連](../../uploads/rank3dbf8e9e7d88d.gif)
こんにちは。
みなさん、助けて下さい。
以下の様な例でDBを作りたいのですが、どう考えてもできません。
どうすればよろしいのでしょうか?
ある顧客別の運賃表をDB化するのですが、仮に出発地を
□東京 □横浜 □名古屋 □大阪 □神戸
と5つのチェックボックスで選べる様にします。
また同様に到着地を
□シドニー □上海 □釜山 □バンコク □香港
□パリ □ロンドン □ワシントン □ブラジル □ホーチミン
と10カ所分チェックボックスで選べる様にします。
(実際は出発地・到着地ともにもっとたくさんあります)
そして、これらの表の下に、運賃1・運賃2・運賃3・運賃4・
運賃5・運賃6と仮に6種類の料金があったとして
これを以下のスタイルのDBとして登録して行くにはどうしたら
良いのかということです。
DBの各カラム
1.顧客番号
2.登録日
3.出発地
4.到着地
5.運賃1
6.運賃2
7.運賃3
8.運賃4
9.運賃5
10.運賃6
たとえば、出発地に東京と横浜にチェックをいれ、
到着地にシドニー・上海・香港・ホーチミンの4つにチェックを入れ運賃を1〜6まで入力していきます。
運賃1〜6の料金は、チェックを入れた各出発地〜到着地で同一です。
時には全ての出発地・到着地にチェックが入る事もあります。
DBのスタイルは上記の様にする必要があり、変更できません。
各変数が少なければ、その数分のバッチを走らせてパラメータを
各地名で固定すれば良いのですが、冒頭で述べた様に実運用では
40x30=1200通りの数がありとてもロジックは書けません。
こう言った1つ1つの変数を各1レコードにするにはどうしたらいいのでしょうか?
ホントに、困ってしまって前に進めません。
教えて下さい。(><)
みなさん、助けて下さい。
以下の様な例でDBを作りたいのですが、どう考えてもできません。
どうすればよろしいのでしょうか?
ある顧客別の運賃表をDB化するのですが、仮に出発地を
□東京 □横浜 □名古屋 □大阪 □神戸
と5つのチェックボックスで選べる様にします。
また同様に到着地を
□シドニー □上海 □釜山 □バンコク □香港
□パリ □ロンドン □ワシントン □ブラジル □ホーチミン
と10カ所分チェックボックスで選べる様にします。
(実際は出発地・到着地ともにもっとたくさんあります)
そして、これらの表の下に、運賃1・運賃2・運賃3・運賃4・
運賃5・運賃6と仮に6種類の料金があったとして
これを以下のスタイルのDBとして登録して行くにはどうしたら
良いのかということです。
DBの各カラム
1.顧客番号
2.登録日
3.出発地
4.到着地
5.運賃1
6.運賃2
7.運賃3
8.運賃4
9.運賃5
10.運賃6
たとえば、出発地に東京と横浜にチェックをいれ、
到着地にシドニー・上海・香港・ホーチミンの4つにチェックを入れ運賃を1〜6まで入力していきます。
運賃1〜6の料金は、チェックを入れた各出発地〜到着地で同一です。
時には全ての出発地・到着地にチェックが入る事もあります。
DBのスタイルは上記の様にする必要があり、変更できません。
各変数が少なければ、その数分のバッチを走らせてパラメータを
各地名で固定すれば良いのですが、冒頭で述べた様に実運用では
40x30=1200通りの数がありとてもロジックは書けません。
こう言った1つ1つの変数を各1レコードにするにはどうしたらいいのでしょうか?
ホントに、困ってしまって前に進めません。
教えて下さい。(><)
投票数:0
平均点:0.00
ISHIJIMA
居住地: 静岡県
投稿数: 1827
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
変数を利用するのであればVAR関数とブロックのループを利用して何とかなりませんか?
変数だと大変であれば出発地と到着地をメモリーテーブル等に入れてバッチでメモリーテーブル等から書き込み等できませんか?
変数だと大変であれば出発地と到着地をメモリーテーブル等に入れてバッチでメモリーテーブル等から書き込み等できませんか?
投票数:0
平均点:0.00
mizkoba
投稿数: 48
![常連 常連](../../uploads/rank3dbf8e9e7d88d.gif)
ISHIJIMAさん
ご返信ありがとうございました。
VAR関数は私も試してみたのですが、やり方がおかしいのか上手くいきませんでした。ループで繰り返すとのことですが、どのように
テーブル内のレコードを切り替えるのかが分かりません。
(レコードを切り替えないとどんどん上書きされちゃいますよね)
後、メモリテーブルに載っけてとのことですが、
記載不足がありまして決まった出発地・到着地だけではないんです
イレギュラーな場所もありそれは、OTHER項目として場所を手入力
できる変数を設けているのでテーブル化ができません。
私もそれは考え試したのですが、これまた・・・・と言う感じです
いずれにせよ、私の知識・技術不足の表れですが。
ご返信ありがとうございました。
VAR関数は私も試してみたのですが、やり方がおかしいのか上手くいきませんでした。ループで繰り返すとのことですが、どのように
テーブル内のレコードを切り替えるのかが分かりません。
(レコードを切り替えないとどんどん上書きされちゃいますよね)
後、メモリテーブルに載っけてとのことですが、
記載不足がありまして決まった出発地・到着地だけではないんです
イレギュラーな場所もありそれは、OTHER項目として場所を手入力
できる変数を設けているのでテーブル化ができません。
私もそれは考え試したのですが、これまた・・・・と言う感じです
いずれにせよ、私の知識・技術不足の表れですが。
投票数:0
平均点:0.00
hiro
居住地: 三重
投稿数: 188
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
こんにちは mizkobaさん
実際使ったことは無いので問題ありかも知れませんが、
ベクトル型の変数を使う方法はどうでしょうか?
出発地と到着地をベクトル変数へ入れて親と子タスクでカウンターループさせて配列のように処理を行う。
画面項目をベクトル変数へ送る部分をどうするかが問題ですが。
DBのレイアウトが決まっているから難しいですね・・
では・・
実際使ったことは無いので問題ありかも知れませんが、
ベクトル型の変数を使う方法はどうでしょうか?
出発地と到着地をベクトル変数へ入れて親と子タスクでカウンターループさせて配列のように処理を行う。
画面項目をベクトル変数へ送る部分をどうするかが問題ですが。
DBのレイアウトが決まっているから難しいですね・・
では・・
投票数:0
平均点:0.00
mizkoba
投稿数: 48
![常連 常連](../../uploads/rank3dbf8e9e7d88d.gif)
hiroさん
コメントありがとうございます。
ベクトルですかぁ。。全く無知の領域です。
(何分Magic素人ですので)
それにヘルプを見たのですが、ベクトルは変数とパラメータに
のみ割り当てられるとありました。
出発地・到着地の選択にはチェックボックスを利用している
観点からデータ形式は論理にしてます。
後、肝心な事を書き忘れました。開発はRCです。
クラサバでは無いのでこれも考慮に入れないといけない気が
実際、どう違っているのかは不明ですが。
コメントありがとうございます。
ベクトルですかぁ。。全く無知の領域です。
(何分Magic素人ですので)
それにヘルプを見たのですが、ベクトルは変数とパラメータに
のみ割り当てられるとありました。
出発地・到着地の選択にはチェックボックスを利用している
観点からデータ形式は論理にしてます。
後、肝心な事を書き忘れました。開発はRCです。
クラサバでは無いのでこれも考慮に入れないといけない気が
実際、どう違っているのかは不明ですが。
投票数:0
平均点:0.00
ISHIJIMA
居住地: 静岡県
投稿数: 1827
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
テーブルは子タスクで登録とか更新をしてキーをパラメタなどで渡す方法ではどうでしょうか
投票数:0
平均点:0.00
Take
投稿数: 124
![一人前 一人前](../../uploads/rank3dbf8ea81e642.gif)
mizkobaさん
自分がやるすればISHIJIMAさんの方法で作ると思います。
出発地の変数が連続で40個並んでおり、到着地の変数が連続で30個並んでいるんですよね!
であれば、DBを登録するタスクを作成し、そのタスクをブロックループで呼び出せばいいのではないでしょうか。
ブロックループを出発地と到着地でネストすればシンプルになると思います。
もちろん、出発地側(外側)のループカウンターは変数に入れるなどしなければいけませんが...
パラメータはVARCURR('??'VAR+LOOPCOUNTER())で渡せば良いと思います。
後、ブロックループに入る前にDB削除タスクを実行しておく必要があると思います。
自分がやるすればISHIJIMAさんの方法で作ると思います。
出発地の変数が連続で40個並んでおり、到着地の変数が連続で30個並んでいるんですよね!
であれば、DBを登録するタスクを作成し、そのタスクをブロックループで呼び出せばいいのではないでしょうか。
ブロックループを出発地と到着地でネストすればシンプルになると思います。
もちろん、出発地側(外側)のループカウンターは変数に入れるなどしなければいけませんが...
パラメータはVARCURR('??'VAR+LOOPCOUNTER())で渡せば良いと思います。
後、ブロックループに入る前にDB削除タスクを実行しておく必要があると思います。
投票数:0
平均点:0.00
mizkoba
投稿数: 48
![常連 常連](../../uploads/rank3dbf8e9e7d88d.gif)
ISHIJIMAさん、TAKEさん
お返事ありがとうございます。
ご提案いただいた方法でまた試してみますね。
ホントにありがとうございました。
他の皆様ももしこちらをご覧になりまして
こんな方法があると言う方がいらっしゃいましたら
ご提案よろしくお願いします。
お返事ありがとうございます。
ご提案いただいた方法でまた試してみますね。
ホントにありがとうございました。
他の皆様ももしこちらをご覧になりまして
こんな方法があると言う方がいらっしゃいましたら
ご提案よろしくお願いします。
投票数:1
平均点:0.00