1

VS 2010レポートデザイナーでレポートを作成している場合、データの主なソースはLinesエンティティです。しかし、別のエンティティからの追加のフィールドが必要Partsです。だから私は次のような余分なプロパティを持つLineの部分的なクラスを追加しました:

public partial class Line
{
    public string ShelfLocation
    {
        get
        {
            using (RSContext rs = new RSContext())
            {
                return rs.Parts.First(x => x.Code == this.Part).ShelfLocation;
            }
        }
    }

問題は、レポートデザイナーからこの余分なフィールドがまだ表示されないことです。

ここに画像の説明を入力してください

別のビューを作成せずにこれを達成するにはどうすればよいですか?

よろしくお願いします。

編集1(両方とも同じ名前空間にあります):

ここに画像の説明を入力してください

4

3 に答える 3

1

より良い解決策があるかどうかはわかりませんが、当面はこれを手動でレポートに追加し、機能しました:

<Fields>    
...
    <Field Name="ShelfLocation">
          <DataField>ShelfLocation</DataField>
          <rd:TypeName>System.String</rd:TypeName>
   </Field>
</Fields>
于 2012-04-27T15:57:55.863 に答える
0

両方のクラスが同じ名前空間にあることを確認する必要があります。

Lineタイプのオブジェクトを作成し、追加した新しいプロパティが表示されることを確認することを検討してください。

var testLine = new Line();
testLine.ShelfLocation  // <-- Does ShelfLocation show up as a valid property? Do your other properties like Debit, Id, etc. also show up?
于 2012-04-27T15:20:21.107 に答える
0

Linq2Sqlでもまったく同じ問題が発生しました。カスタム部分クラスのすべてのプロパティは、レポートデザイナに表示されませんでした。

この問題を解決するために

  1. * .dbmlの[プロパティ]ダイアログを開き、[カスタムツール]プロパティをクリアします。その後、*。designer.csファイルが消えます。
  2. 「ビルド前のイベント」でsqlmetal.exeを使用して、*。designer.csを手動で生成します

    sqlmetal / namespace: "$(ProjectName)" / code: "$(ProjectDir)DataModel.designer.cs" "$(ProjectDir)DataClasses1.dbml"

これらの操作の後、追加のプロパティが正常に認識されました。

于 2016-08-23T08:14:51.553 に答える