938279

Reports.net 掲示板


[トップに戻る] [スレッド表示] [ツリー表示] [トピック表示] [留意事項] [ワード検索] [管理用]
投稿キー (右画像の数字を入力) 投稿キー
おなまえ
Eメール
タイトル
コメント
参照先
暗証キー (英数字で8文字以内)
文字色
前のページのオブジェクトを操作する方法について 投稿者:DMON 投稿日:2015/10/30(Fri) 18:22 No.2523

お世話になっております。
度々の質問で申し訳ありません。

表題の件について実装方法はございますでしょうか?

上記の手段が必要な理由は、
「現在ページ数/総ページ数」を出力したいのですが、
改ページ条件は単純なデータのレコード数ではないため、
レコード数分ループをかけて改ページになるロジックを全て通さないと、
総ページ数は算出できません。
総ページ数を算出してから、再度帳票出力処理を実行すると、
一度の出力で2回ループさせなければならないため、
処理コストが大きくなるというのが理由です。

表題の方法以外に良い方法がございましたらご教授ください。
よろしくお願いいたします。


Re: 前のページのオブジェクトを操作する方法について - Pao@Office 2015/10/31(Sat) 19:45 No.2525
お問い合わせありがとうございます。

総ページ数は、AllPagesプロパティで出力前に分かると思います。
サンプルとして、1.programers の印刷・プレビューを参考にされてください。

MessageBox.Show("ページ数 : " + paoRep.AllPages.ToString());

paoRep.Output(); // 印刷又はプレビューを実行

よろしくお願いいたします。


Re: 前のページのオブジェクトを操作する方法について - DMON 2015/11/02(Mon) 20:51 No.2527
実現したいことは帳票のヘッダに"1/9"といった、
「ページ数/総ページ数」を表示することなのですが、
おっしゃられているプロパティを利用することで実現できるのでしょうか?

実装イメージがわかないので、出来れば簡単な例を
ご提示いただきたくお願い申し上げます。


Re: 前のページのオブジェクトを操作する方法について - Pao@Office 2015/11/03(Tue) 01:37 No.2528
お問い合わせありがとうございます。

実現可能な道を想定してみますとそう可能ではないようでした。
すいません。

下の例のようにいったんデータをクリアすれば、可能でした。
実際には、データをセットする部分は繰り返すため2回同じロジックを書くことはないと思います。

MessageBox.Show("ページ数 : " + paoRep.AllPages.ToString());

int allPages = paoRep.AllPages;

paoRep.ClearData();

page = 0; //頁数を定義
line = 0; //行数を定義

for (int i = 0; i < 60; i++)
{
if (i % 15 == 0) //1頁15行で開始
{
//頁開始を宣言
paoRep.PageStart();
page++; //頁数をインクリメント
line = 0; //行数を初期化

//***ヘッダのセット***
//文字列のセット
paoRep.Write("日付", System.DateTime.Now.ToString());
paoRep.Write("頁数", "Page - " + page.ToString() + "/" + allPages.ToString());



ただし、問題があり、ClearData()では、z_Objects.SetObject()の行インデックス付きのものは、
クリアされないことがわかりました。不具合です。

現状、不具合改修バージョンアップ後の上位互換を考えると、毎回、paoRep自体を new する。
上位互換を考えなければ、ClearData()後は、z_Objects.SetObject()は行わない。
次のバージョンアップにより、ClearDataで行インデックス付きのz_Objects.SetObject()情報がクリアされるのを待つ。

3つの選択肢となります。

ご迷惑をおかけしており申し訳ございません。
よろしくお願いいたします。



Re: 前のページのオブジェクトを操作する方法について - DMON 2015/11/04(Wed) 10:15 No.2529
ご回答ありがとうございます。

どの方法を用いても、同じロジックを2回通すことは必須になりそうなので、
PageStartを呼ぶロジックだけあらかじめ通しておいて、
総ページ数を先に算出することに致します。


デザインしたファイルの読み込み方について 投稿者:DMON 投稿日:2015/10/29(Thu) 16:21 No.2519

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

デフォルトとして読み込むデザインファイルですが、
ローカルストレージに生のテキストファイルを置くことがシステムの規約に反するため、
アプリケーション(dll)に埋め込んで使用したいと考えています。

ファイルのパスを指定する以外にデザインファイルを読み込む方法はないでしょうか?
ない場合に、ご対応頂くことは難しいでしょうか?

よろしくお願いいたします。


Re: デザインしたファイルの読み込み方について - Pao@Office 2015/10/30(Fri) 09:35 No.2521
お問い合わせありがとうございます。

現在のところ、デザインファイルに関しては
XMLファイとして、どこかのストレージに物理的に配置する以外の手法は考えてはいません。

「アプリケーション(dll)に組み込む」というのがお客様アプリケーションのことを意味しているのか
Pao.Reports.dll を意味しているのか?わかりませんが、
対応させていただくとしても、個別の対応になると思います。

よろしくお願いいたします。


Re: デザインしたファイルの読み込み方について - DMON 2015/10/30(Fri) 18:03 No.2522
こちらで作成しているアプリケーションにデザインファイルをリソースとして埋め込み、
それをLoadDefFileメソッドを使って読み出したいという意図でした。
埋め込んだリソースをストレージに吐き出して使い終わったら削除することで対応します。
ご回答ありがとうございました。

SaveData, LoadDataについて 投稿者:DMON 投稿日:2015/10/28(Wed) 19:57 No.2513

変にする方法をご教授ください。 投稿者:DMON 投稿日:2015/10/28(Wed) 19:48 No.2512
お世話になります。

Reports.net 6.6を.Net4.5で使用しています。
表題の件について質問です。

SaveDataで取得したバイト配列をLoadDataで読み込むと、
以前に作成したバイト配列の帳票データが読み込まれることがあります。

report1.SaveXMLFile("test01.xml")
report2.loaddata(report1.savedata)
report2.SaveXMLFile("test02.xml")
とすると、異なるXMLFileが出来上がります。

キャッシュ機能のようなものが働いているのでしょうか?
回避方法等ございましたら、ご教授ください。


Re: SaveData, LoadDataについて - Pao@Office 2015/10/28(Wed) 22:55 No.2515
お問い合わせありがとうございます。

Load する時と、Saveする時のロジックが異なるためだと思います。
余計な情報が、帳票データファイルに書き込まれている可能性もございますので、少しお時間をください。
調査させていただきます。

よろしくお願いいたします。


Re: SaveData, LoadDataについて - DMON 2015/11/04(Wed) 11:12 No.2530
この件に関係あるかどうかわからないのですが、
以前に出力したレポートをプレビューアで出力すると、
なぜか横幅が狭くなって出力されてしまいました。

<Paper Size="任意" Width="381" Height="279" Direction="False" />
とXMLには記載されているのに
<Text Name="HEADER_サイト" X="327" Y="20.5" Width="14.6" Height="4.2" Angle="0" Text="サイト"
Align="Center" VAlign="Top" FontAttr="Font1" Elastic="False" FixingFontHeight="False"
StretchingExceedsSpecifiedNumber="0" StretchingExceedsSpecifiedBytes="0" IsKintou="False"
IsKintou_Hankaku="False" IsKintou_Hankaku_Kana="False" Char_OutOfKintou=""
IsKintouFrontBack="False" NumOfSpaceFrontBack="0" PdfAutoCrInsertText="False"
PdfCutTextByHeight="False" />
と定義されているオブジェクトが見えない幅になっています。
※念のためDirectionをTrueにしてもダメでした。

端末を再起動しても現象が解消されず、非常に困っています。
以前にきちんと出力されてから変わったことといえば、
プリンタのドライバをインストールしたことと、
解像度が低い端末からリモートで当該端末にアクセスしたことぐらいですが、
何か回避策、対応策等はございませんでしょうか?

よろしくお願いいたします。


Re: SaveData, LoadDataについて - Pao@Office 2015/11/04(Wed) 22:36 No.2531
現状ではわかりかねるところがございますが、
用紙サイズ=「任意」は、プリンタドライバが持っていることが多い「Custom」や、それに近いものを探して、それに当てはめて印刷・プレビューしています。
従ってプリンタドライバに依存します。
まずは、
(1) 情報に問題なければ、印刷データファイル(prepe)をinfo@pao.ac まで送っていただけますか。
  まずは再現から調査します。

(2) 並行して、既存の問題の保存するたびに印刷データファイル(prepe)が異なる問題について調査します。

よろしくお願いいたします。


Re: SaveData, LoadDataについて - DMON 2015/11/05(Thu) 10:07 No.2532
ご回答ありがとうございます。

プレビューアもプリンタドライバに依存するのですね。
印刷時と同様にPrinterSettingsを引数に渡すことで、
横幅の問題は解決いたしました。
通常利用するプリンタが変わったために現象が発生したのだと思います。
助かりました、ありがとうございます。

行の高さを可変にする方法をご教授ください。 投稿者:DMON 投稿日:2015/10/28(Wed) 19:48 No.2512

お世話になります。

Reports.net 6.6を.Net4.5で使用しています。
表題の件について教えて頂きたいと思います。

例えばデータの種類によって以下のように高さを変更したいと思い、
1行目:50
2行目:50
3行目:20
4行目:50
Z_Objects.SetObjects("項目01",3)
Z_Objects.Z_Text.IntervalY = 20
のようにして行の高さを調整しようとしましたが、
2行目の高さが20になり、3行目については50よりも大きくなっているように見えます。

index付きのオブジェクトのIntervalYは
indexなしのオブジェクト定義からプレーンに算出したY座標及び、
indexなしのオブジェクト定義のIntervalYに対しての相対的な座標によって算出されるのでしょうか。
(この場合は3行目の開始位置が-30されて、4行目は3行目の開始位置+80が開始位置になる)

もしそうだとすると、
ある行だけ高さを変更したいとしても、
その際に発生したプレーンな座標からのずれを
それ以降の行に全て反映させなければならず、
かなり実装が複雑になるように思います。

狭い行間で定義しておいてオブジェクトの表示のON/OFFで切り替える方法も考えましたが、
行の可変具合が複雑になると、行間が極めて小さくなるため、
オブジェクトが大量になってしまい、処理が極端に遅くなりました。

サンプルにも行の高さを個別に変更するような例は見受けられないのですが、
何か良い方法をご教授いただければと思います。


Re: 行の高さを可変にする方法をご教授ください。 - Pao@Office 2015/10/28(Wed) 22:53 No.2514
お問い合わせありがとうございます。

SetObjectでオブジェクトと行番号を指定して
IntervalY を変更してください。
その行の感覚だけ変更できます。
Lineオブジェクトに限らず、文字列などのほかのオブジェクトも同様です。

下の例のように、
インストーラ付属のサンプルの「1.programers」
の内容を書き換えてみてください。4行目の行間が狭くなると思います。

//繰返し図形(横線)のセット
if (line == 4)
{
paoRep.z_Objects.SetObject("横線", line);
paoRep.z_Objects.z_Line.IntervalY = 8;
}
paoRep.Write("横線", line);

よろしくお願いいたします。


Re: 行の高さを可変にする方法をご教授ください。 - DMON 2015/10/29(Thu) 10:16 No.2516
返信ありがとうございます。

お伝えいただいた内容で確認しましたが、
やはり4行目の間隔が狭まると同時に5行目の間隔が広がります。

4行目の間隔だけを狭めたい場合は以降の行のIntervalYを全て8にしなければならないのでしょうか?
823296


Re: 行の高さを可変にする方法をご教授ください。 - Pao@Office 2015/10/29(Thu) 13:13 No.2517
そうですね。
申し訳ございません。ちょっと変な仕様になりますが、その通りですね。
実際の例のコードでは、

//繰返し図形(横線)のセット
if (line >= 4)
{
paoRep.z_Objects.SetObject("横線", line);
paoRep.z_Objects.z_Line.IntervalY = 8;
}
paoRep.Write("横線", line);

のように、"==" を ">=" 大なりイコール に変更するだけになると思います。

よろしくお願いいたします。


Re: 行の高さを可変にする方法をご教授ください。 - DMON 2015/10/29(Thu) 16:16 No.2518
ご返信ありがとうございます。

行の高さがデータの内容で可変になる場合、
デザインで設定した行間(インデクスなしのオブジェクトの行間)との差を累積させて、
以降の行に反映させる仕様ということで理解致しました。

ご回答ありがとうございました。

追加で質問の形になるのですが、上記のような処理を行った場合、
ほとんど全てのオブジェクトのプロパティを設定することになります。
このとき出来上がるXML情報はかなり膨れ上がるように見えるのですが、
レスポンス等への影響はないでしょうか?

ご回答のほど、よろしくお願いいたします。


Re: 行の高さを可変にする方法をご教授ください。 - Pao@Office 2015/10/30(Fri) 09:34 No.2520
度々のお問い合わせありがとうございます。

請求書のサンプルプログラムを参考にされてください。
ほとんどの帳票デザイン制御をプログラム(コード)で行っております。
XMLが大きくなることによるレスポンスへの影響については
当然、程度の問題やマシンのスペックに影響するところはあると思いますが、
現在のところ問題視する影響があるとは考えておりません。

よろしくお願いいたします。

印刷位置の全体調整(OFFSET調整) 投稿者:購入検討中 投稿日:2015/10/23(Fri) 21:27 No.2509

お世話になります。
.NETマニュアルに目を通しましたが、機能の有無がわからなかったので確認させてください。

印刷環境(プリンタ等)に合わせて、印字位置調整するため、印刷物全体の印字位置を調整する機能はありますでしょうか?
横方向、縦方向にOFFSETできるような機能があれば助かります。


Re: 印刷位置の全体調整(OFFSET調整) - Pao@Office 2015/10/26(Mon) 09:16 No.2510
お問い合わせありがとうございます。

プロパティで、左と上それぞれのマージン指定ができます。
そちらをお試しください。

よろしくお願いいたします。


Re: 印刷位置の全体調整(OFFSET調整) - 購入検討中 2015/10/26(Mon) 20:26 No.2511
回答ありがとうございました。
縦横方向繰り返しについて 投稿者:arasaki 投稿日:2015/10/20(Tue) 17:14 No.2505


いつもお世話になっております。
ver7.0.0をダウンロードさせて頂きました。
.NET 4.0 Any版をVS2012で使用しています。OSはWin7(x64)です。
ver6.5.1から7.0.0に上書きインストールしています。


1)「縦・横両方向への繰り返し機能」を試したいのですが、
 07.名刺 (QRコード)\名刺.prepdをデザイナで開いてプレビューすると
 エラーメッセージが表示されます。
 「'Repeat'は重複する属性名です。行30、位置252。」
 デザイナのバージョンは6.6.0となっています。


2)上記と被るかもしれませんが、
 「名刺サンプル」を実行すると、Writeコマンド時に
 エラーが発生します。
 「オブジェクト参照がオブジェクトインスタンスに設定されていません。」

お手数ですが、確認よろしくお願い致します。


Re: 縦横方向繰り返しについて - Pao@Office 2015/10/22(Thu) 11:54 No.2506
お問い合わせありがとうございます。

大変申し訳ございません。
Reports.net ver 7.0 のリリースミスがございました。
.net 4.0 AnyCpu版に含まれているデザイナーは、古い版(ver 6.6.0)でした。
エンジン(Pao.Reports.dll)のほうも古かったようです。
.net 4.0 AnyCpu版インストーラモジュールをアップロードしなおしました。
一度アンインストール後、インストールフォルダの「Sample」をフォルダごと削除してから
お試しください。
(バージョンは変更しませんでした。)

よろしくお願いいたします。


Re: 縦横方向繰り返しについて - arasaki 2015/10/22(Thu) 15:31 No.2507
動作確認できました。
ご対応ありがとうございます。


Re: 縦横方向繰り返しについて - Pao@Office 2015/10/23(Fri) 10:31 No.2508
度々申し訳ございません。

その後調査したところ、.net 4.0 AnyCpu版に限り、
昨日の版では、デザイナー上でのプレビューができない可能性が大きいことがわかりました。

今朝(10/23)9時前に新しい版をアップロードさせていただきました。
そちらをご利用ください。

度々申し訳ございません。
よろしくお願いいたします。

文字間ピッチについて 投稿者:購入検討中 投稿日:2015/10/20(Tue) 11:53 No.2502

はじめまして。購入を検討している者です。
文字を印刷するさい、文字間ピッチを指定できますでしょうか。
具体的には、専用伝票の金額など、用紙側にあらかじめ枠がある場合、文字と文字の隙間を調整して印刷したいのです。
デザイナのマニュアルには記載されていないようでしたので、この場にて確認いたしました。
ご回答宜しくお願いします。


Re: 文字間ピッチについて - Pao@Office 2015/10/20(Tue) 12:45 No.2503
お問い合わせありがとうございます。

Reports.net には、残念ながら文字間ピッチを指定する機能は現在ございません。

均等割り付けという機能がございます。
この均等割り付けに付随する機能で、いくつか次のようなことができます。
・文字列前後のスペースの幅を指定可能
・連続する半角英数文字は間隔をあけないことも可能

これらの均等割り付け関連の機能で、文字間ピッチの調整を行うという案はいかがでしょうか?

直接の個別の文字列の文字間隔の指定はできませんが、決まっている全体幅の中で文字間隔を調整できると思います。

的外れであれば申し訳ございません。
よろしくお願いいたします。



Re: 文字間ピッチについて - 購入検討中 2015/10/20(Tue) 13:26 No.2504
確かにプログラム側で固定文字数とし、均等割り付けすることで結果的に調整できそうです。
迅速な回答、ありがとうございました。


Reports.net ver 7.0.0 リリース 投稿者:Pao@Office 投稿日:2015/10/14(Wed) 13:18 No.2498

Reports.net ver 7.0.0 をリリースしました。

【リリース概要】
- Azure対応
- CODE93 バーコード追加
- 印刷時、キャンセルがわかるように
-「縦・横両方向への繰り返し機能」追加
- Windows 10 / Visual Studio 2015 / .net framework 4.6 対応
- その他不具合改修

横向きのSVG出力について 投稿者:カープ 投稿日:2015/08/22(Sat) 16:09 No.2493

お世話になります。
バージョン6.4.2.0を使用しています。

用紙サイズがA4_横などの横向きの定義ファイルを使用してSVG出力を行ったところ、縦向きのサイズで出力されます。
向きを指定するプロパティなどがあるのでしょうか?


Re: 横向きのSVG出力について - 岡本 2015/09/04(Fri) 15:13 No.2494
返事が遅くなり申し訳ございません。
SVGの場合、ブラウザに依存するため、用紙方向はブラウザで印刷時に設定していただくことになります。
よろしくお願いいたします。

無題 投稿者:spk 投稿日:2015/04/22(Wed) 11:55 No.2477

個別に対応して頂きエラーが出なくなりました。
今回は、いろいろとお手数をお掛けしました。

また、続けて利用させて頂きます。
ありがとうございました。


Re: 無題 - spk 2015/04/22(Wed) 11:58 No.2478
すみません
下のトピックに対してでした。

Page: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

処理 記事No 暗証キー

- YY-BOARD -