ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

一つ一つの変数をDBの各レコードにするには

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2009-2-16 18:04
mizkoba  常連   投稿数: 48
こんにちは。
みなさん、助けて下さい。

以下の様な例で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
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-2-16 18:38
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
変数を利用するのであればVAR関数とブロックのループを利用して何とかなりませんか?
変数だと大変であれば出発地と到着地をメモリーテーブル等に入れてバッチでメモリーテーブル等から書き込み等できませんか?
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-2-17 9:18
mizkoba  常連   投稿数: 48
ISHIJIMAさん
ご返信ありがとうございました。

VAR関数は私も試してみたのですが、やり方がおかしいのか上手くいきませんでした。ループで繰り返すとのことですが、どのように
テーブル内のレコードを切り替えるのかが分かりません。
(レコードを切り替えないとどんどん上書きされちゃいますよね)

後、メモリテーブルに載っけてとのことですが、
記載不足がありまして決まった出発地・到着地だけではないんです
イレギュラーな場所もありそれは、OTHER項目として場所を手入力
できる変数を設けているのでテーブル化ができません。
私もそれは考え試したのですが、これまた・・・・と言う感じです
いずれにせよ、私の知識・技術不足の表れですが。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-2-17 11:15
hiro  長老 居住地: 三重  投稿数: 188
こんにちは mizkobaさん
実際使ったことは無いので問題ありかも知れませんが、
ベクトル型の変数を使う方法はどうでしょうか?
出発地と到着地をベクトル変数へ入れて親と子タスクでカウンターループさせて配列のように処理を行う。
画面項目をベクトル変数へ送る部分をどうするかが問題ですが。
DBのレイアウトが決まっているから難しいですね・・

では・・
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-2-17 11:42
mizkoba  常連   投稿数: 48
hiroさん

コメントありがとうございます。

ベクトルですかぁ。。全く無知の領域です。
(何分Magic素人ですので)

それにヘルプを見たのですが、ベクトルは変数とパラメータに
のみ割り当てられるとありました。
出発地・到着地の選択にはチェックボックスを利用している
観点からデータ形式は論理にしてます。

後、肝心な事を書き忘れました。開発はRCです。
クラサバでは無いのでこれも考慮に入れないといけない気が
実際、どう違っているのかは不明ですが。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009-2-17 20:34
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
テーブルは子タスクで登録とか更新をしてキーをパラメタなどで渡す方法ではどうでしょうか
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-2-18 9:36
Take  一人前   投稿数: 124
mizkobaさん

自分がやるすればISHIJIMAさんの方法で作ると思います。

出発地の変数が連続で40個並んでおり、到着地の変数が連続で30個並んでいるんですよね!
であれば、DBを登録するタスクを作成し、そのタスクをブロックループで呼び出せばいいのではないでしょうか。
ブロックループを出発地と到着地でネストすればシンプルになると思います。
もちろん、出発地側(外側)のループカウンターは変数に入れるなどしなければいけませんが...
パラメータはVARCURR('??'VAR+LOOPCOUNTER())で渡せば良いと思います。
後、ブロックループに入る前にDB削除タスクを実行しておく必要があると思います。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009-2-18 11:11
mizkoba  常連   投稿数: 48
ISHIJIMAさん、TAKEさん
お返事ありがとうございます。

ご提案いただいた方法でまた試してみますね。
ホントにありがとうございました。

他の皆様ももしこちらをご覧になりまして
こんな方法があると言う方がいらっしゃいましたら
ご提案よろしくお願いします。
投票数:1 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約