ActiveReports

2013年4月25日 (木)

ActiveReportsメモ

フッターが途中で改ページされないようにする方法
フッターのプロパティ
KeeptogetherをTrueにする。

実行順
Format→BeforePrint→AfterPrint
プロパティでSummaryの指定をした場合の計算結果の値は
Formatの時点では、まだ入っていない。

ActiveReports for .NET 6.0J

2012年6月19日 (火)

ActiveReports .NET でライセンスがらみのエラー

そのプロジェクト(DLL)にはActiveReportsの参照設定はしてあるのに、
ライセンスがらみのエラーが出る。
→メインのEXEのプロジェクトのライセンスファイルに、冒頭のプロジェクトのライセンス
 ファイルのActiveReportsの行をコピーして追記する必要があった。
 なお、メインのEXEのプロジェクトにActiveReportsの参照設定は不要。

2011年10月 4日 (火)

ActiveReports.NETでライセンスがあるのにトライアル版の表示が

<原因>

MyProjectにicenses.licxが無かったため。

<対応>

1.エクスプローラでlicenses.licxをMyProjectにコピー

2.licenses.licxを編集で開いて不要な行(ActiveReports以外の情報)を削除

3.VisualStudio側で「すべてのファイルを表示」ボタンでMyProject内のファイルを表示させる

4.licenses.licxを右クリックし「プロジェクトに追加」

2010年4月20日 (火)

Heightのサイズ設定が上手くいかない!!

.NET版のActiveReportsで、グループヘッダーや明細部分の高さを場合によって変えようとして、
コードでHeightの値を変えたが、上手くいかない。
基本は2行だが、追加で何行か出すことがあるので、
次のようなコードを書いた。
        '高さ設定
       Detail.Height = 0.375 + (0.188 * shtI)
shtIは追加する行数なのだが、shtIが0の場合でも3行出る。
.NET版のActiveReportsはピクセル単位からインチになったとか、
デザイン画面はcmだがHeightはインチ単位なのでCmToInch()を使えば良いとか
さんざん調べて試してみたが上手くいかない。
そもそもデザイン画面は見たところインチになっている。
 
トライアル版だから悪いのか?
パッチを当てなくてはならないのか?
このために結構時間を取られた。
 
どうやら、ちょっとでも大きい高さにした場合、そこにオブジェクトがあるとそれが表示される
高さになるらしい。
2行ぎりぎりになるよう、コードを
        Detail.Height = 0.375 + (0.188 * shtI)
のように修正すると上手くいった。
 
 
<環境>
WindowsXP
VB.NET
ActiveReports for .NET 2.0J
 
 

2008年8月21日 (木)

テキストボックスの端で強制的に印字を切る方法

バージョン:ActiveReports 2.0J
途中で切れても良いのでテキストボックスからはみ出させたくない場合、
テキストボックスのプロパティを次のようにする。
MultiLine = False ・・・①
WordWrap=True  ・・・②
②で改行され、①で2行目以降印字されないため。
この組み合わせでないと、プレビューで上手くいっていてもはみ出したりする。

2007年10月16日 (火)

ActiveReports Windows 98で印刷すると文字間隔がおかしくなる

以下、グレープシティのサイトより抜粋。
(2002年に報告された不具合を今でも対応せねばならぬとは・・・)
 
---------------------------------------------------
製品FAQ
ActiveReports 2.0J Professional
ID : 2829  DATE : 2002/02/07 
Question:
Windows 98/Meでレポートの印刷を行うと、日本語出力の開始位置が不正となったり、文字間隔が広がったりします。 
Answer:
ActiveReports の ReportStart イベントで、RenderMode プロパティの値を 1 と設定してください。
このプロパティを 1 と設定することで、TrueType フォントをプリンタフォントで置き換えずにプリンタへ出力します。
サンプルコード
 Private Sub ActiveReport_ReportStart()
  Me.Printer.RenderMode = 1
 End Sub
※RenderMode プロパティは、VB コードエディタのインテリセンス(入力補助)上では表示されませんが、プロパティ自体は存在しますので、上記の内容でコーディングしてください。
また、条件によっては上記の内容で対処できない場合があります。下記の内容をご参照ください。
1.IE 上で ARViewer2 コントロールを使用している場合
サーバでレポートを作成し、クライアントの IE 上で ARViewer2 コントロールを用いてレポートを表示している場合には、以下のようにクライアントスクリプト内で RenderMode プロパティを 1 とすることで対処が可能です。
サンプルスクリプト
 s = s + "<SCRIPT LANGUAGE=""VBScript"">" + Chr(13) & Chr(10)
 s = s + "Sub window_onLoad()" + Chr(13) & Chr(10)
 s = s + "arv.Printer.RenderMode = 1" + Chr(13) & Chr(10)
 s = s + "arv.DataPath = """ + fname + Chr(34) + Chr(13) & Chr(10)
 s = s + "End Sub" + Chr(13) & Chr(10)
 s = s + "</SCRIPT>" + Chr(13) & Chr(10)
2.フォームにビューワコントロールを配置する形でレポートを表示し、印刷を行っている場合
以下のように、ビューワーコントロールの Printer オブジェクトに対して、RenderMode プロパティを 1 と設定することで対処が可能です。
サンプルコード
 Private Sub Form_Load()
  ARViewer21.Printer.RenderMode = 1
 End Sub
3.複数のレポートをひとつにまとめている場合
複数のレポートを作成し、Overlay メソッドや Add メソッドなどでひとつにまとめている場合には、次のようにしてください。
まとめ先となる、レポートオブジェクトの ReportStart イベントで RenderMode = 1 と設定するコードを追加してください。
このレポートオブジェクトに他のページを追加する前に、レポートの内容は空のままで、Run メソッドを実行してください。Run メソッドを実行しませんと、イベントが発生しませんので、RenderMode = 1 の設定が反映されません。
 
 
 

2007年8月10日 (金)

ActiveReportsで勝手に改行される

使用PG
ActiveReports2.0J、VisualBasic6.0
 
ActiveReportsでテキストボックスのWordWrapをTrueにすると、スペースで改行されることがある。
その原因と対応方法。 
全角文字が混在していてもOKだった。
改行したい位置が全角文字(前半)だった場合、その文字の後に改行されたので
テキストボックスの幅は少し余裕を持たせた方がよい。
 
 
上記ページがなくなったときのため一応以下にコピー
ActiveReports 2.0J Standard
ID : 6713  DATE : 2005/02/17 
Question:
ワードラップ(自動改行、禁則処理)を無効にして改行を行う方法はありますか? 
Answer:
ActiveReports には、ワードラップを無効にして改行を行う機能は用意されていません。
しかしながら、下記のように改行コード(vbCrLf)を出力するデータに含めることにより、任意の箇所で改行を行なうことが可能です。こちらを参考にお試しください。
サンプルコード
Private Sub Detail_Format()
 ' ワードラップ機能を無効にします。
 Field1.WordWrap = False
 ' 20バイト(全角10文字)毎に改行コードを挿入します。
 Field1.Text = InsertCrLf(Field1.Text, 20)
End Sub
Private Function InsertCrLf(ByVal strData As String, ByVal intBytes As Integer) As String
 Dim i  As Integer
 Dim cnt As Integer
 Dim wk As String
 For i = 1 To Len(strData)
  wk = Mid(strData, i, 1)
  InsertCrLf = InsertCrLf + wk
  cnt = cnt + LenB(StrConv(wk, vbFromUnicode))
  If cnt >= intBytes Then
   InsertCrLf = InsertCrLf & vbCrLf
    cnt = 0
  End If
 Next i
End Function
 

2006年4月29日 (土)

ActiveReportでバーコードが追加できない

<環境>
WindowsXP Pro
VB6.0
ActiveReport(2.0J)
<現象>
ActiveReortのデザイナを新規作成し、その中にバーコードのオブジェクトを作成しようとした。
参照設定で"BOC BarCode Control1.0"にはちゃんとチェックを入れたし、
バーコード コントロールの組み込み方法はActiveReortのHelpに書いてある通りに
やったにもかかわらず
"can't create control"というエラーが出て作成できない。
<原因>
参照設定で"BOC BarCode Control1.0"の参照先がSystem32内になっていたため。
ActiveReportのインストール先に入っているものが正。
インストーラーのテスト等をすると変わることがあるらしい。
<対処方法>
ActiveReprotをインストールしなおした。