0

編集 7: やっとできました! 回答を掲載しました。

編集 6: CSS と div を破棄し、レポート サービスを使用しました。投稿の下の編集を見て、私が今どこにいるのかを確認してください。

私は今、完全に途方に暮れています。
質問が十分に明確でない場合は申し訳ありませんが、必要に応じて編集して情報を追加できます。できるだけ多くの情報を提供しようと思います。
私は何時間もグーグルで検索しましたが、私を助けるものは何も見つかりませんでした.

データベースにあるユーザーの情報を使用して複数の「タグ」を作成し、それらをページに配置して印刷しようとしています。さらに、1 ページに必要なタグは 1 つだけです。
ユーザー名、名前、姓、および特定のイベントですべてのユーザーのバーコードを生成するために使用する ID を返すストアド プロシージャを取得しました。

CREATE PROCEDURE Schema.GetAllTags
@IdEvent int
AS
BEGIN
    SELECT  Mem.Nom, Mem.Prenom, Mem.Pseudo, Use.IdUser
FROM    Schema.User Use
JOIN    Schema.Member Mem ON Use.IdMember = Mem.IdMember
WHERE   Use.IdEvent = @IdEvent
END


バーコードは、asp ページを呼び出して、ページ パラメーターでストアド プロシージャから受け取った ID を指定することによって生成されます。asp ページは、他のページでバーコードを表示するために使用する画像です。

div、CSS、aspコンテンツなどを使用してタグを作成しようとしましたが、印刷部分を除いて機能しました。タグは常にサイズ変更され、余白は 25.4 mm (1 インチ) になるようにあらゆることを試しても 1 インチではなく、その上にページの URL が常にプレビュー印刷に表示されます。これらの問題はすべて、クライアントが show url のチェックを外し、オプションでマージンを自分で設定するだけで解決できます。しかし、私は、問題を解決するためにクライアントに論文を強制することはしたくありません。印刷オプションを変更せずに、3 x 2 インチで、余白が 1 で、URL がないことを望みます。

レポート サービスを使用すると印刷の問題が解決すると言われました。しかし、レポート サービスから必要なものを作成する方法の手がかりがありません (どのレポート サービスが気になるかは知っています)...そこにバーコードを取得する方法についてはなおさらです。

ここでは、タグが印刷ページで最終的にどのように表示されるかを示します。3 インチ x 2 インチ、印刷時の上部と左側に 1 インチの余白があります。

タグの外観

タグを試して印刷するために使用したCSSは次のとおりです。

<style type="text/css">
    @page
    {
        margin: 25.4mm 25.4mm 25.4mm 25.4mm;  
    }

    @media print 
    {
        body *  
        {
            visibility:hidden;
        }
        #tagPrint, #tagPrint * 
        {
            visibility:visible;
        }
        #tagPrint
        {
            position:fixed;
            top: 0px;
            left: 0px;
        }
        #NOPRINT
        {
            display:none;
        }
    }

そして、ここにasp(1つのタグしか表示されていない私のページ用です):

<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
    <ContentTemplate>
        <div id="tag" class="formRow">
            <div id="tagPrint" style="border:1px solid;width:76.2mm;height:50.8mm">
                <p style="text-align:center" />
                <br />
                <asp:Label ID="lblUserTag" runat="server" style="font-weight:bold;font-size:18px" />
                <br />
                <asp:Label ID="lblFullNameTag" runat="server" style="font-weight:bold;font-size:16px" />
                <br />
                <br />
                <asp:Image ID="imgBarcodeTag" runat="server" />
                <br />
                <asp:Label ID="lblIdTag" runat="server" style="font-weight:bold;font-size:16px" />
            </div>
        </div>
        </ContentTemplate>
    </asp:UpdatePanel>

現在、ページでリピーターを使用してタグを生成し、複数のタグを生成し、dataset.tables[0].Rows をリピーターにバインドしています。それらのタグを作成できるようにします。

JavaScriptとCSSのみを使用してサービスを報告せずにそれを行う方法はありますか? レポート サービス (レポート サービスで ASP ページを使用してバーコードを作成する) で実行できますか? 私のバーコードはフォントから取得されているため、レポート サービスで使用するためにフォントをコンピューターに追加する以外に方法はありますか? (クライアントがフォントをインストールする必要はありません) タグの pdf をより簡単に/より良くすることはできますか?

編集 : レポート サービスの使用を開始しました。現在、4つのパラメーターで作成されたレポートを取得しています。(ユーザー名、氏名、バーコードの URL、ID) 今後の予定については、最新情報をお知らせします。

編集2:だから...レポートサービスを作成してページに表示した後。レポートに自分の画像を表示できないようです。そして、私がしたとしても。報告書を複数ページにする方法や印刷する方法がわかりません。代わりに Div タグを PDF で作成し、その方法で印刷することにしました。明日、試す機会があれば更新します。

編集 3 : 頭を壁に何度かぶつけたいと思ったことは別として、PDF で試してみましたが、うまくいきません。おそらくフラッシュで実行できることがわかりましたが、フラッシュで実行したくありません。というわけでレポートサービスに戻ります。データセットをグリッドに送信し、各フィールドにデータを配置するグリッドを使用してレポート サービスを作成しました。レポートで使用できるようにフォントをインストールしました。データセットをレポートにバインドできないようです。SqlDataSource と ObjectDataSource を試しましたが、何も機能していないようです。スクラップから試すために、新しいプロジェクトで別のレポートを開始しました。たぶん、私の現在のプロジェクトの何かが私と対戦しています。私はあきらめようとしています。-_-

編集 4: ようやく何かが機能するようになりました。自分のページでレポートが正常に機能するようになりました。

通報サービス

結果

あとは、レポートを複数ページにすることだけです。

編集 5 : 編集を読み直したところ、編集 2 の少し後に言うのを忘れていたことに気付きました。パラメーターを廃棄し、代わりにデータセットを使用しました。また、レポート サービスを使用してタグの PDF ファイルを保存するために、CSS と div に関するすべてを破棄しました。

4

2 に答える 2

1

ついに!やった!

ここで私がしたこと。

  1. SSRSを作成しました。
  2. レポートビューアとObjectDataBinderを作成しました
  3. ストアドプロシージャを使用して、SSRSのデータセットを作成します。
  4. レポートビューアをSSRSにバインドします。
  5. SSRSをいじって、フィールドを配置する必要があるように配置します。
  6. SSRSのページ余白を1インチに設定します。レポートを3x2インチに設定します。
  7. レポートサイズを5x4インチに設定します。
  8. これらの何時間もの欲求不満に対する私の勝利をテストし、楽しんだ。

注:Visual Studioにバグがあり、SSRSを完全に削除してやり直す必要があったため、時間がかかりました。

結果 :

結果

コードバーで完璧に印刷できる、完璧なサイズと余白のある美しいPDFファイル。勝利!

于 2013-02-22T20:20:30.110 に答える
1

ですから、SSRS について少し説明を加えて、これを前置きさせてください。あなたのやり方はすべて間違っています。

つまり、ASP コードと出力を SSRS に埋め込んでグラフィカルな忠実度を実現しようとしているだけでは、それは実現しません。

SSRS が推奨される理由は、一連のデータを取得し、さまざまなレポート スタイル、形式、および出力方法で高いグラフィック忠実度で再現できるためです。

しかし、ゼロから構築する必要があります。HTMLなし、CSSなし、ASPなし、.Netなし(まあ..一種。あなたにとっては、はい、.Netは必要ありません。)

おっ、おっ、おっ、どこへ行くの?それほど難しいことではありません、約束します。

では、まず、SSRS でこれを行うためのタスク リストを設定しましょう。その前に、ウィザード形式のレポートを作成して、ID タグ データ セットをレポートに取り込めるようにしましょう。SSRS がどのようにデータを消費し、それをレポートに変換するかについての基本的な感触をつかむことができます。

  1. 新しい Reporting Services プロジェクトを作成します。
  2. このプロジェクトに新しいレポートを追加します。ソリューション エクスプローラーで、Reports フォルダーを右クリックし、[新しいレポートの追加] をクリックします。
  3. ステップ 1 は、データ ソースの選択です。実行中のストアド プロシージャを使用してデータベースに接続し、接続をテストして次に進みます。
  4. 次のステップは、クエリを設計することです。ただし、Sproc で既にそれを行っているので、それを貼り付けるだけです。ここでは、IdEvent にハードコードされた値を追加します。後で修正します。
  5. レポートの種類を選択します。ここでは、表形式のみにしましょう。マトリックスは、多くの行/列のダイナミクスに適しています。単純な印刷可能なレポートを探しているだけなので、表をご覧ください。
  6. テーブルの設計では、すべての出力列を Detils グループに追加するだけです。
  7. 古いテーブル スタイルを選択すると、最終的にこれがすべて破棄されます。
  8. レポートにわかりやすい名前を付けて終了します。

これで、RDL が作成されました。データ ソース、データ セット、およびデザイナー領域にいくつかのコードが含まれています。デザイナーエリアの「プレビュー」タブをクリックすると、これまでに行ったことをプレビューできます。テーブルの小さな行にすべてのデータがあります。それで?

次にタスクリストです。グーグルを始めてください。これらすべてを学ぶことができます。それほど時間はかかりません。完了すると、プリンター用に適切にフォーマットされた一連の ID タグが用意されます。そして、特定の問題に遭遇した場合 - まあ、それがこのサイトの目的ですよね?

  1. IDEvent をストアド プロシージャに渡すパラメータを作成します。
  2. ASP ページからバーコードを取得する行に動的な外部画像を挿入します。(ヒント: SSRS での「式」の使用について読んでください。)
  3. SSRS の改ページ オプションを使用して、1 ページに 1 つのタグのみを印刷する方法を理解してください。
  4. プロパティ ウィンドウを使用して、テーブルの各「行」をタグのようにフォーマットします。
  5. レポートを PDF としてエクスポートするか、提供されている MHTML バージョンを使用するかを決定します。

また、SSRS レポートを .Net アプリケーションに埋め込む方法を学びたいと思うかもしれません (とにかく、クライアントはどのようにタグを印刷していますか?)。そしてもちろん、SSRS の多くの小さなメソッド、プロパティ、および側面がありません。この特定のタスクのスコープですが、少なくとも後のプロジェクトを検討する価値があるかもしれません。

幸運を!

于 2013-02-22T16:59:58.610 に答える