データソース参照して、フォームフィールド内の値をキーにして、任意のデータフィールドの値を返したい - InfoPath Dev
in

InfoPath Dev

データソース参照して、フォームフィールド内の値をキーにして、任意のデータフィールドの値を返したい

Last post 09-10-2008 03:10 AM by aimin. 5 replies.
Page 1 of 1 (6 items)
Sort Posts: Previous Next
  • 09-09-2008 02:10 AM

    • aimin
    • Top 500 Contributor
    • Joined on 08-28-2008
    • Posts 38

    データソース参照して、フォームフィールド内の値をキーにして、任意のデータフィールドの値を返したい

    お世話になっております。

    苦肉の策ですが、EXCELのLOOKUP 関数のような使い方をしたいのです。
    例えば

    A

    1. データソース「Userリスト」があります。
      「UserName」「DisplayName」「Mail」フィールドが作成されています
    2. フォーム内フィールドに、「User Name_A 」フィールドを作成し、データソースとして、「Userリスト:UserName」を参照してドロップダウンリストとします。
    3. フォーム内フィールドにある、「DisplayName_A」「Mail_A」に、2.の「UserName_A」で選択したレコードに対応する「UserName」「Mail」をそれぞれ入力されるように
      設定したい

      ご教授をお願いいたします!

    B
       Aの操作を、フォーム内でデザインできなかったので、SharePoint Designer のワークフローから、値をセットしようとしたのですが、空白で値がはいりません
      何がまちがってるのでしょうか・・

      「Set field in current item」を使用
          Set  「Mail_A」 to 「ワークフロー参照の定義」
                            ソース:「Userリスト」
                          フィールド:Mail
           リストアイテムの検索    ソース:「Userリスト」:UserName
                               値:UserName_A

      これでは、データソースから、LookupのようにMailフィールドの値を返さないのです・・・どうしたらいいでしょうか。

     

    これらが解決しないとワークフローをまわせずにとても困ってしまって、どうかご教授をお願いいたします!

     

  • 09-09-2008 04:56 AM In reply to

    Re: データソース参照して、フォームフィールド内の値をキーにして、任意のデータフィールドの値を返したい

    ちょっとつらいかもしれませんね。

    A については InfoPath のコントロールの「フィルタ」の機能を使います。InfoPath はセカンダリ データ
    ソースとして指定しているリストやライブラリやSQLデータベースのレコードをすべてとってきます。
    それから、フィルタを使って、User Name A で選択された User Name の行にある DisplayName_A や
    Mail_A を、InfoPath フォームの Text などに表示させる、という方法を通常とります。

    しかし、この方法は aimin さんの環境では使えません。 

    というのも、InfoPath フォームのフィルタの機能は Forms Services では利用できないからです。
    フィルタを使用するとデザインチェックでエラーが表示されます。 以前の投稿で Forms Services を
    使うというお話でしたので、このフィルタの機能は aimin さんの環境では使えない、ということです。

    Forms Services でフィルタのような機能をフォームに取り込むために QDABRA 社の WSSP を
    使ったクエリ Web サービスを使うことが考えられます。


     

    ここからは老婆心なので、もし失礼があるようならお許しください。

    やらなければならないことがたくさんあるのは投稿からお察しします。
    Forms Services を使う場合の制限や、InfoPath の特性、SharePoint のフォームライブラリの
    利点(欠点)、SharePoint のワークフローの特徴をある程度網羅的にご理解いただくとかなり
    フォーム構築の生産性があがると思います。(できる、できないのあたりがつきやすくなります)

    一方で、たとえば、上記の例をとれば、SharePoint のリストから Lookup のようにフィールドを
    取得して InfoPath に表示させ、利用することは可能ですが、このようなフォーラムのピンポイントの
    やりとりで「こうすればできるよ」の情報は正しいのですが、aimin さんの環境では実は使えない
    わけです。

    勉強する時間をとりながら業務を遂行をされるのは並大抵なことではありません。
    このようなフォーラムでの支援が少しでもお役にたてば、と思う反面、かなり難しい状況で
    お仕事されているとも思います。

    すでにご存じかもしれませんし、目を通されているかもしれませんが、以下のような自習キット
    があります。そちらもご活用されるとよろしいかと思います。

    電子フォームの基礎トレーニング Microsoft のページ
    http://office.microsoft.com/ja-jp/getstarted/FX101963301041.aspx (リンク切れ)

    Microsoft Office SharePoint Server 2007 バーチャル ラボ
    http://www.microsoft.com/japan/msdn/virtuallabs/sharepoint.mspx
    ここの「開発者のための MOSS 2007 自習書」の「2007 Microsoft Office system を使った
    電子フォーム/ワークフロー ソリューション構築」などが参考になるかもしれません。

    [追記] -----------------------------------------
    上で紹介したバーチャルラボですが、そちらよりも以下の内容のもののほうがいいです。
    前回ご紹介したものは Visual Studio を使いますが、以下のものは SharePoint と
    InfoPath だけのフォーム・ソリューションの内容になります。(VSTAもありますが)

    7. Microsoft Office InfoPath & SharePoint Server 2007 ソリューション構築テクニック

    [追記2] -------------------------------------
    MSDN サイトの Office Developer Center に以下のトレーニングのページもありました。

    InfoPath 2007 トレーニング

    ------------------------------------------------

    クリエ・イルミネート
    沼口 (講師ではありません、、、)

  • 09-09-2008 06:16 PM In reply to

    • aimin
    • Top 500 Contributor
    • Joined on 08-28-2008
    • Posts 38

    Re: データソース参照して、フォームフィールド内の値をキーにして、任意のデータフィールドの値を返したい

    沼口様

    お世話になっております。

    ご指摘ありました環境が実情にそぐえてないこと、技術的に難しいこと、要件と伴わない点
    多々あること承知しております。もっともなお言葉だと思います。
    それでもやってみなければならないところもあって個人的に苦しいですね...
    そんな中でも、このフォーラムでアドバイスや情報をいただけることは
    とても有意義になっております。

    Webサービスやクエリの件については、環境担当者に提案はしてみるつもりです。

    全く否定せず、できうる方法や操作、こういう環境であればこういう方法できます...など
    きっと、私以外にも同様に頭をかかえる人にとってはとてもよいナレッジになるフォーラムだと思います。

    FormServiceを使用した場合の制限についてもヘルプなどで調べたものの、コードを使えばできうるのであれば知りたいと思ってしまい...

    ここで投げ出すこともできかね、勉強しつつ頑張らなくてはなので
    ありがたいお言葉も頂戴しつつ、ご指導いただけますととても助かります。。

    ありがとうございます。

  • 09-09-2008 11:47 PM In reply to

    Re: データソース参照して、フォームフィールド内の値をキーにして、任意のデータフィールドの値を返したい

    沼口さま、適切なコメント有難うございます!

    弊社QDABRAの WSSPは、日本国内では主にCrie-Illuminateさまのほうで販売・教育などを行っていただいております。ご興味がありましたら、お問い合わせくださいませ。どうぞよろしくお願いいたします。

  • 09-10-2008 01:31 AM In reply to

    Re: データソース参照して、フォームフィールド内の値をキーにして、任意のデータフィールドの値を返したい

    奥村さん、ありがとうございます。

    WSSP を扱うに至った背景は、結局のところ InfoPath のトレーニングを提供している過程で、
    汎用 クエリ Web サービスがあればずっと楽なのに、、、ということから、QDABRA 社と
    提携を組ませていただきました。データ受信に関する制限(特にフィルタ)に関して言えば、
    弊社のトレーニング コースの中ではこれまで以下の4つの解決方法を提示していました。

    1) 部門(利用者)単位でのフォーム テンプレート カスタマイズ

    部門・利用者により、データの絞り込みを行いたい場合、あらかじめその部門、利用者用の
    テンプレートを作ります。既定値にその部門名や利用者名をいれておくことで、データ接続
    ウィザードで [SQL 編集] により where 句に規定値のものを使い、絞り込んだデータを
    ドロップ ダウン リストに使う方法。欠点は必要となるすべてのフォームを別途個別に用意
    しなければならないことです。

    2) 複数データ接続の作成と利用

    選択される可能性のある条件に基づく SQL 編集 を使ったすべてのデータ接続をフォーム
    内に作成し、条件付き書式にてそのデータ接続をソースとしたコントロールの「表示・
    非表示」を行う方法。

    3) VSTA によるコーディング

    上記 1) 2) ともに結局は SQL 文を静的に生成しています。これを VSTA を使って動的に
    作成する方法です。メインデータ ソース内へのフィールドへのアクセスは XML プログラミング
    となり、DataConn.Command に select 文をいれて、where 句にはメインデータ ソースから
    取り出した値を設定しクエリをなげ、結果をメインデータ ソースに返す、というものです。

    4) Web サービスを利用する

    C#, VB などで動的 クエリを生成し、データベースサーバーに投げ結果を貰うものを Web
    サービスとして作成してそれを利用する方法。

     

    しかし、実際のところは「ノン・コーディング」である程度のところまで作りたいお客様が
    InfoPath をお使いになられているため、3) や 4) はやはり敷居が高いものとなっていました。
    また、フォームの種類の数、変更頻度によっては汎用的な動的クエリ Web サービスの
    ニーズは高いものだと考えていました。

    そういう理由で、QDABRA 社との提携を行い、ここの InfoPathDev のフォーラムで
    WSSP / DBXL 関係の情報をみていたわけです。

  • 09-10-2008 03:10 AM In reply to

    • aimin
    • Top 500 Contributor
    • Joined on 08-28-2008
    • Posts 38

    Re: データソース参照して、フォームフィールド内の値をキーにして、任意のデータフィールドの値を返したい

    沼口様 奥村様

     いつも大変お世話になっております。

    本日、QDABRA 社のWebサービスの件情報提供させていただきました。
    会社として、作り上げたいフォームを考えると、特にADがらみ情報の共有化は避けられませんし
    汎用的な利便性をあげられますね。

    ご指摘ありましたとおり
    ”実際のところは「ノン・コーディング」である程度のところまで作りたいお客様が
    InfoPath をお使いになられているため、3) や 4) はやはり敷居が高いものとなっていました”

    そうなんです・・・

    ADと連携が取れると、ワークフロー もクエリデータも小細工に考え困ることもないので
    是非導入して欲しいものです。

    フォーム設計の幅も広がるというものですね。
    制限の中フォームを作成する大変さを痛感してます。。

    情報ありがとうございます!

Page 1 of 1 (6 items)
Copyright © 2003-2019 Qdabra Software. All rights reserved.
View our Terms of Use.