(現在 過去ログ30 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■4367 / inTopicNo.1)  相互リンクを監視し、もしリンク切れが起きる修正をするときには警告を出す方法について
  
□投稿者/ kirikri -(2009/02/19(Thu) 17:22:39)
    2009/02/19(Thu) 17:27:32 編集(投稿者)
    2009/02/19(Thu) 17:27:05 編集(投稿者)

    OS WinXP
    桐 Ver9-2007

    たてつづけですみません。
    色々調べてみてみたんですが、
    またひとつ難問ができてしまいました・・・

    桐で実現可能か教えて頂けたらとおもい書き込みました。

    [リンク元ID]フィールドと[リンク先IDを含む文字列]フィールドを持つテーブルと
    フォームがあります。(サンプルを付けました)

    [リンク先IDを含む文字列]は項目名のとおり、リンク元のIDにリンクするための
    ID(<a href="ID値">)を含む文字列が入っています。

    やりたい事は、[リンク元ID]と[リンク先IDを含む文字列]を相互に関連付け、
    リンクされているにも関わらず片方が意図的に削除されようとした時に、
    なんらかの方法で警告を出す方法を考えています。

    処理には、イベントハンドラを使おうと考えています。←別方法でも可
    簡単ですが、私が思いついた方法を書いておきます。
    フィールドの検索でヒットしたら、IDがあるとみて、
    ヒットしなかったらIDが無かったと判断させる方法
    この方法だと、検索でレコードが移動してしまうので、それを元のレコード
    位置に戻すというイベントを作らなければいけないので、あまり現実的では
    ないと思っています。

    特定のフィールド内(全レコードを対象)にIDが含まれているかどうかチェック
    できるコマンドでもあればもっと簡単にできると思うのですが・・・

    なにかよい方法があればご教授頂きたいのですが、
    よろしくお願い致します。



1235031759.zip
/6KB
引用返信 [メール受信/OFF] 削除キー/
■4368 / inTopicNo.2)  Re[1]: 相互リンクを監視し、もしリンク切れが起きる修正をするときには警告を出す方法について
□投稿者/ eo -(2009/02/19(Thu) 20:04:14)
    判定項目を追加してはどうでしょう?

1235041454.zip
/6KB
引用返信 [メール受信/OFF] 削除キー/
■4370 / inTopicNo.3)  Re[1]: 相互リンクを監視し、もしリンク切れが起きる修正をするときには警告を出す方法について
□投稿者/ 尾形 -(2009/02/19(Thu) 23:05:59)
    どうも、こんにちは

    > 検索でレコードが移動してしまうので、それを元のレコード
    > 位置に戻すというイベントを作らなければいけないので
    多重化すればいいのではないですか




引用返信 [メール受信/OFF] 削除キー/
■4371 / inTopicNo.4)  ん?
□投稿者/ eo -(2009/02/19(Thu) 23:14:04)
    うまく説明できないのですが、この表ってなんか変って感じるのは私だけでしょうか?ループしているというか・・・
引用返信 [メール受信/OFF] 削除キー/
■4372 / inTopicNo.5)  Re[1]: 相互リンクを監視し、もしリンク切れが起きる修正をするときには警告を出す方法について
□投稿者/ 通りすがり -(2009/02/20(Fri) 09:11:40)
    たぶん、そんなに難しいことをしたい訳じゃあなさそうだけど、これでは質問の意味が解からないなぁ

    書いてあることから読み取れる範囲だと、
    データベーステーブルになってないので、話が始まらない
    検索や絞り込みで一見解決しても、あとあと破綻して激しい困難に直面する感じ
引用返信 [メール受信/OFF] 削除キー/
■4373 / inTopicNo.6)  Re[2]: 相互リンクを監視し、もしリンク切れが起きる修正をするときには警告を出す方法について
□投稿者/ kirikri -(2009/02/20(Fri) 14:39:45)
    説明が難しかったので、結果的に作りたい物のサンプルをHTMLで作成してみました。sample.htmlをご参照ください。
    桐と一緒に見て頂けるとやりたい事が、もう少し伝わるかなと思います。

    データベーステーブルになってないというのは、
    リレーションの正規化を行っていないからということだと思うのですが、

    今回実現したい添付HTMLのように、[リンク先IDを含む文字列]の
    どの位置に何個リンクタグ(<a href="ID名">)を含めるかが不動なので、
    このようなテーブルにしています。

    こうすれば、リレーションの正規化をした上で作成できるよ!
    っというのがあれば、簡単にでOKなので、教えて頂けると助かります。

sample02.zip
/6KB
引用返信 [メール受信/OFF] 削除キー/
■4374 / inTopicNo.7)  Re[2]: ん?
□投稿者/ kirikri -(2009/02/20(Fri) 14:49:16)
    > うまく説明できないのですが、この表ってなんか変って感じるのは私だけでしょうか?ループしているというか・・・

    ループしてると感じるのは、下記「通りすがり」さんの返信で添付したHTML
    のように、双方向にリンクがあり、ループしてしまうからですかね。
    実際には、このような双方向のリンクは無いと思いますが、双方向のリンク
    100%無いともいえないもので、このようなサンプルにしています。

    判定項目の追加はよさそうですね!
    欲を言えばリアルタイムで確認したいので、できれば最終手段にしたいと思っています。

    リアルタイムに確認は難しいですかね・・・
    あとは、「通りすがり」さんの言うとおりDBを正規化するか。。。


引用返信 [メール受信/OFF] 削除キー/
■4375 / inTopicNo.8)  Re[1]: 相互リンクを監視し、もしリンク切れが起きる修正をするときには警告を出す方法について
□投稿者/ homepiyo -(2009/02/20(Fri) 17:09:44)
    2009/02/20(Fri) 17:12:38 編集(投稿者)

    No4367に返信(kirikriさんの記事)
    こんにちは。

    現在行の[リンク元ID]がどこからの[リンク元ID]の[リンク先IDを含む文字列]からリンクされているかだけの表示だけならつくってみたのですが・・・?

    行削除→選択行で表示される。

引用返信 [メール受信/OFF] 削除キー/
■4377 / inTopicNo.9)  Re[3]: 相互リンクを監視し、もしリンク切れが起きる修正をするときには警告を出す方法について
□投稿者/ 通りすがり -(2009/02/20(Fri) 20:26:27)
    質問の意味が解かったYo!

    5レコード目に参照先が2つ入ってるから大変
    【5レコード目を2つのレコードに分けて入力すれば、スッキリ正規化できるけど】
    それがメンドウだし、htmlが分断されて容易でないから、こうなってるんでしょ
    現状は1つの項目に複数データ含んでるから無理ぽ

    A)[リンク元ID]の方は編集して良いかデータベース的方法で判断できるけど
    B)[リンク先IDを含む文字列]の方は、判断に逐次処理が必要ってことで
    (データベースで逐次処理が必要になるのは、たいていテーブル設計が悪いんだけど、これは自分で分けて入力するのも大変でしょう)
引用返信 [メール受信/OFF] 削除キー/
■4378 / inTopicNo.10)  Re[2]: 相互リンクを監視し、もしリンク切れが起きる修正をするときには警告を出す方法について
□投稿者/ kirikiri -(2009/02/21(Sat) 13:38:57)
    No4370に返信(尾形さんの記事)
    回答有難うございます。
    多重化!?

    今まで使ったことの無い機能です!!

    色々わからないことだらけなので、下のことを休み明けに調べてみます。
    ・フォームのイベントから使用できるのか?
    ・どのように記述し、つかうのか?
    などなど

    調べてみてわからなかったらまたきます〜
    有難うございました。
引用返信 [メール受信/OFF] 削除キー/
■4379 / inTopicNo.11)  Re[4]: 相互リンクを監視し、もしリンク切れが起きる修正をするときには警告を出す方法について
□投稿者/ kirikiri -(2009/02/21(Sat) 14:32:01)
    No4377に返信(通りすがりさんの記事)
    こんにちは
    回答有難うございます。

    > 5レコード目に参照先が2つ入ってるから大変
    > 【5レコード目を2つのレコードに分けて入力すれば、スッキリ正規化できるけど】
    > それがメンドウだし、htmlが分断されて容易でないから、こうなってるんでしょ
    > 現状は1つの項目に複数データ含んでるから無理ぽ

    あの後、色々試してみましたが、
    通りすがりさんの仰るとおり、結局 B)が問題になるので、
    今のDBでは難しそうですね・・・

    実際には、[リンク先IDを含む文字列]フィールドは、複数存在し、
    参照先のタグは2つ〜無制限存在しますので、HTMLのような構造を
    正規化したDBで作成するにはもう少し項目を増やして一段階ふまな
    いと駄目そうです。

    色々頑張れば、正規化までは作成できそうなんですが、
    正規化した結合表を実作業で運用(結合表をフォームで開いて修正
    や追加をして運用)できるようにした事がないので疑問があるのと、
    桐で正規化した結合表を使うことはシステム的に安定しているのか
    不安があります。通りすがりさんは桐で正規化したDBを作成・運用
    されていますか?いかがですか?

    最後に一つだけお聞きしたいのですが、
    正規化するには結合表を作ると思います。
    編集可能な結合表だと「行の追加」や「行の移動」が禁止され、
    確か上書きが自動でかかるようになり、Accessのような感じに
    なったかと思うのですが、結合表で新規に行を追加し、値を入
    力したい場合にはどのように設計するのでしょうか?

    イメージとしては、テーブル側で追加できるようにフォーム側で
    イベント処理を書かなければならないのかなと思うのですが??

    参考になるサイトや本なんてご存知ないでしょうか?

    それでは、さっそく来週から結合表を運用すう方法を調べてみます〜。
    通りすがりさんの助言のお陰で方向が定まりました。
    本当にありがとうございます。
引用返信 [メール受信/OFF] 削除キー/
■4380 / inTopicNo.12)  Re[5]: 相互リンクを監視し、もしリンク切れが起きる修正をするときには警告を出す方法について
□投稿者/ 通りすがり -(2009/02/21(Sat) 17:49:57)
    あん、チョッチ言葉が行き違い、

    *正規化
    もちろん完全に正規化して別テーブルにできれば、A)は何もしなくても参照整合性で解決しちゃうけど

    複数の参照先を、別レコードや別項目(最大数が不定だから難しい)に追い出せれば、とりあえず殆ど?OKってことで
    その程度になってれば、A) も B) もデータベース的処理で判断できる、絞り込み とかで、検索でも良いし

    現状では、B) は、処理の遅い「”値を含む” の絞り込みや検索」で、さらに、
    逐次処理(先頭行から loop で1レコードづつ取得を繰り返したり)が必要になって(エクセルのマクロかよ!)、データ増えるとドンドン遅くなる
    けど、作業目的によっては、それでもOKかも

    *結合表
    > システム的に安定しているのか
    > 「行の移動」が禁止
    > 桐で正規化したDBを作成・運用されていますか?
    > 結合表で新規に行を追加し、値を入力したい場合にはどのように設計するのでしょうか?

    データ壊れたことはないど
    「行の移動」って使わないorz
    運用してるよ〜ん、簡単なものだけど
    普通にレコード追加・更新できるよ、やってミソ、便利だよ

    桐は、フォームで簡単にグループ化できるし、表引き や 計算項目 っていう素晴らしいストアドプロシージャー(笑)もあるので、
    一時項目が余分にあると思えば、レポート印刷以外は結合表を使わなくても用途足りちゃうんだよな


    > 実際には、[リンク先IDを含む文字列]フィールドは、複数存在し、
    > 参照先のタグは2つ〜無制限存在しますので

    大変そうだねぇ、本当は専用のツールがあると良いんだよな
    余り役に立てなかったけど、グッドラック!
引用返信 [メール受信/OFF] 削除キー/
■4381 / inTopicNo.13)  Re[2]: 相互リンクを監視し、もしリンク切れが起きる修正をするときには警告を出す方法について
□投稿者/ homepiyo -(2009/02/21(Sat) 22:27:54)
    2009/02/22(Sun) 17:53:33 編集(投稿者)

    No4375に返信(homepiyoさんの記事)
    追加です。

    フォームの[tリンク先IDを含む文字列]でリンク先を編集してEnterを押すと、リンク先をチェックしてリンク先がなければ"リンク先なし"の表示をする。

    ご希望の動作ではないかもしれませんが、添付してみます。

    動作を修正してみました。


引用返信 [メール受信/OFF] 削除キー/
■4382 / inTopicNo.14)  Re[3]: 相互リンクを監視し、もしリンク切れが起きる修正をするときには警告を出す方法について
□投稿者/ homepiyo -(2009/02/22(Sun) 18:42:10)
    No4381に返信(homepiyoさんの記事)
    動作を更新しました。

    リンク元のチェック
    (1)編集後に、編集前の[リンク元ID]がどこの[リンク元ID]レコードからリンクされているかチェックして、リンクがある場合に値を変更してよいかメッセージを表示する。
    (2)行削除のとき、[リンク元ID]がどこの[リンク元ID]レコードからリンクされているかチェックして、リンクがある場合にレコードを削除してよいかメッセージを表示する。

    リンク先のチェック
    (1)編集後にリンク先の[リンク元ID]があるかどうかチェックして、[リンク元ID]がない場合にメッセージを表示する。
    (2)コマンドボタン(現在行、次行、前行)で(1)と同じようにチェックする。

    このような仕様はどうでしょうか?



sample02_siborikomi8.lzh
/17KB
引用返信 [メール受信/OFF] 削除キー/
■4387 / inTopicNo.15)  Re[4]: 相互リンクを監視し、もしリンク切れが起きる修正をするときには警告を出す方法について
□投稿者/ kirikri -(2009/02/23(Mon) 22:00:57)
    No4382に返信(homepiyoさんの記事)
    こんばんは
    homepiyoさん完璧なサンプル本当にありがとうございます。
    退社前で、ばたばたしているので明日以降仕事が落ち着いてから
    改めて拝見させて頂きます。

    kirikiri
引用返信 [メール受信/OFF] 削除キー/
■4399 / inTopicNo.16)  Re[3]: ん?
□投稿者/ eo -(2009/02/24(Tue) 19:38:22)
    いやーやっと整理がつきました。ループじゃなくて、[リンク元ID]は、リンク先IDでもあるってことだわ!
    入力項目は増やしたくない!と言われればそれまでなんですが、面倒でも[リンク先IDを含む文字列]に含まれるリンク先IDをカンマ区切りで入力出来る項目と、そのリンク数を入力する項目を追加してはどうでしょう?
    レコードの削除や訂正を行う段階でリンクチェックを行うのではなく、はじめからリンクチェックは済ませてある方が良いような・・・ただし能力がないのでリアルタイムではありません^^;
    確認がしやすいようにsample.wfmは一覧表にしています。


20090224.zip
/14KB
引用返信 [メール受信/OFF] 削除キー/
■4572 / inTopicNo.17)  改めて質問です。多重化と中止表の関係について
□投稿者/ kirikiri -(2009/04/06(Mon) 11:59:02)
    No4387に返信(kirikriさんの記事)
    >> ■No4382に返信(homepiyoさんの記事)
    >> こんばんは
    >> homepiyoさん完璧なサンプル本当にありがとうございます。
    >> 退社前で、ばたばたしているので明日以降仕事が落ち着いてから
    >> 改めて拝見させて頂きます。
    >>
    >> kirikiri


    1ヵ月以上間があいてしまい申し訳ありません。
    業務が落ち着き、色々と試行錯誤していたんですが、
    homepiyoさんのサンプルを応用する方向で考えています。
    ただ、サンプルだと自身の表を絞り込んだり検索したりしているので、
    大量データになった時や絞り込みを行っている場合に負荷がかったり、
    検索対象が絞り込まれていて上手くいかないなどがでてくるので、
    多重化して多重化表の方で確認の処理をさせようと考えています。

    ただ、その多重化について
    いまひとつ壁にぶつかってしまい、もし対応策をご存じの方がいら
    したらご教授頂きたいと思い投稿させて頂きました。

    早速ですが添付ファイルをご覧ください。

    質問は下記の通りです。
    「多重化→中止 表により多重化表を閉じる。(メイン表のみになる。)その後フォーム(メイン表)を閉じると変更の有無にかかわらず無条件で破棄終了となります。変更が加わっている場合には上書き保存確認のダイアログを出したいのですが可能でしょうか?」


    添付サンプルによる問題の再現フロー
    ・フォームを開く→多重化開始→多重化終了→テキストボックスを削除
     →フォームを閉じる。
     これで上書き保存の確認を聞いて来ることなく破棄保存されます。


    確認済みの点
    ・「中止 表」は、桐がバックアップを取る設定時、破棄終了
    ・「中止 表」は、トランザクションコマンドで指定したトランザクションを初期化
     (今回はトランザクションコマンドを使用していないので初期化対象外と思う
      が?)
    ・保存終了で多重化表をとじたければ、終了 表


    謎な点
    ・デフォルトのトランザクションが多重化表の終了によってリセットされるのか?
    ・ただ、メインの表での上書き保存は継続して生きたままなので、デフォルトのト
     ランザクションのリセットとはちがうのか?




sample20090406.zip
/8KB
引用返信 [メール受信/OFF] 削除キー/
■4573 / inTopicNo.18)  Re[6]: 改めて質問です。多重化と中止表の関係について
□投稿者/ ONnoji -(2009/04/06(Mon) 12:57:25)
    2009/04/06(Mon) 13:03:14 編集(投稿者)
    2009/04/06(Mon) 12:58:38 編集(投稿者)

    > 質問は下記の通りです。
    > 「多重化→中止 表により多重化表を閉じる。(メイン表のみになる。)その後フォーム(メイン表)を閉じると変更の有無にかかわらず無条件で破棄終了となります。変更が加わっている場合には上書き保存確認のダイアログを出したいのですが可能でしょうか?」
    > 確認済みの点
    > ・「中止 表」は、桐がバックアップを取る設定時、破棄終了
    > ・「中止 表」は、トランザクションコマンドで指定したトランザクションを初期化
    >  (今回はトランザクションコマンドを使用していないので初期化対象外と思う
    >   が?)
    > ・保存終了で多重化表をとじたければ、終了 表
    > 謎な点
    > ・デフォルトのトランザクションが多重化表の終了によってリセットされ驍フか?
    > ・ただ、メインの表での上書き保存は継続して生きたままなので、デフォルトのト
    >  ランザクションのリセットとはちがうのか?

    桐ver.9以降では、多重化した表を、「中止 表」コマンドで閉じると、
    フォームを閉じた時、「バックアップ=する」の編集対象表が破棄終了と同じ結果になったと思います。
    ※だいぶ以前桐ver.9で、実際に確かめました。

    桐ver.8 では、そうはなりませんから、ビーユージーでしょうね。

    多重化した表を閉じる場合は、「終了 表」を使えばOKですよ。

引用返信 [メール受信/OFF] 削除キー/
■4575 / inTopicNo.19)  Re[7]: 改めて質問です。多重化と中止表の関係について
□投稿者/ kirikiri -(2009/04/06(Mon) 13:38:52)
    No4573に返信(ONnojiさんの記事)
    言葉足らずですみません。

    質問の核心は、メインテーブルの更新がある状態でフォームを閉じる場合、
    上書き保存の確認用ダイアログを出すことなんです。

    私のイメージでは、「多重化表を「中止 表」で破棄終了後、メイン表を
    フォームの[×]で閉じれば、更新がある場合には確認ダイアログがでて
    きていいはず。」と思っていたんですが、そうはならずメイン表まで自動的に
    破棄終了となってしまい、上書き保存確認ダイアログがでませんでした。

    なお、「終了 表」も試したんですが、
    「終了 表」だと自動保存終了となるだけで、保存の確認はされませんでした。

    よろしくお願い致します。
引用返信 [メール受信/OFF] 削除キー/
■4577 / inTopicNo.20)  Re[8]: 改めて質問です。多重化と中止表の関係について
□投稿者/ ONnoji -(2009/04/06(Mon) 14:00:26)
    > 質問の核心は、メインテーブルの更新がある状態でフォームを閉じる場合、
    > 上書き保存の確認用ダイアログを出すことなんです。
    > 私のイメージでは、「多重化表を「中止 表」で破棄終了後、メイン表を
    > フォームの[×]で閉じれば、更新がある場合には確認ダイアログがでて
    > きていいはず。」と思っていたんですが、そうはならずメイン表まで自動的に
    > 破棄終了となってしまい、上書き保存確認ダイアログがでませんでした。
    > なお、「終了 表」も試したんですが、
    > 「終了 表」だと自動保存終了となるだけで、保存の確認はされませんでした。

    当方は、メイン&サブフォームで試したことがないので分かりません。

    悪しからず。m(__)m

    タラレバですが、多重化した表を「終了 表」すると、
    上書き保存したことと同じステータスになってしまうのかもしれませんね。
    ビーユージーなのか?、仕様なのか?、K3に問い合わせた方がいいと思いますよ。

引用返信 [メール受信/OFF] 削除キー/

次の20件>

トピック内ページ移動 / << 0 | 1 | 2 >>

[このトピックに返信]
Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -