「FAQ」カテゴリーアーカイブ

Curlに関するFAQのページです

Curlファイルのアップデート時にProxyのキャッシュを無視したい

◆ご質問◆
アプリケーションサーバ側のCurlアプリケーションをアップデートした時には
Proxyサーバ上のキャッシュを無視して必ずアプリケーションサーバから
モジュールを取得するようにしたいのですが、可能でしょうか。

◆回答◆
生憎、Curlだけで制御することは困難です。

Curlの通信のメカニズムは、
Curl独自の通信メカニズムを使っているわけではないため、
クライアントサイドの設定を用いることができます。

例えば、以下のようなことを行うことで、制御することは可能かと思われます。
 ・インターネットプロパティにてプロキシを使わない設定をする
 ・PACファイルと呼ばれるブラウザのプロキシ設定を制御できる仕組みを用いる
 ・サーバサイドにて、Cache-Controlを用いるなどして制御する

OCCでインストールされたアプレットの削除について

【ご質問】
OCCでインストールしたアプリケーションを削除したいのですが、
どのようにすればいいのでしょうか。
Curlをアンインストールすれば削除されるのでしょうか。

【回答】
Curlをアンインストールしても
OCCでインストールしたアプリケーションは削除されません。

Curlコントロールパネルの「アプレット」タブから
削除を行うことが出来ます。

526-occ.png

ページ指定による印刷

【ご質問】
ページを指定して印刷をすることは可能でしょうか。

【回答】
ページを制御する(例えば2ページ目と3ページ目だけを印刷する)ような場合、
print-graphicプロシージャ内のfrom-page、to-pageで実現可能です。

詳細は、APIリファレンスの
[CURL.GUI.BASE]-[print-graphic]
の項をご参照ください。 

Curlで使用する暗号化について

◆ご質問◆
Curlの3DES暗号化で、CBCモードでの暗号化は可能でしょうか。
また、APIでの3DES暗号化は、何モードでの実行となっておりますか。

◆回答◆
CBCモードでの実行となります。
CurlではWindowsの機能を使用して暗号化しており、3DESも同様に行っております。
Curlでは暗号化する際にはモードの指定を行っておりません。
つまり、モードを指定していない時のWindowsの挙動に依存することになります。

現在のところMicrosoftでは指定を何もしていない場合は
CBCモードでの実行となっているため、CBCモードでの実行となります。

また、
データ暗号化標準「FIPS 46-3」、「ANSI X3.92」をベースとしております。
こちらはヘルプドキュメントのクラス変数「des3」にも記載されております。

グラフの色を指定するには

【ご質問】
複数系列を表示するグラフにおいて、系列毎の色を任意に設定することは可能でしょうか。

【回答】
Chartクラスのフィールドcolor-paletteを設定することで実現可能です。

詳細は、APIリファレンスの
[CURL.GUI.CHARTS]-[Chart]
の項内のプロパティ[color-palette]の項をご参照ください。 

グラフの凡例を表示する位置を変更するには

【ご質問】
Curlで棒グラフを描画すると、デフォルトでは凡例はグラフ描画フィールド外に表示されます。
この凡例を棒グラフの近くやグラフ内に表示したいのですが、可能でしょうか。

【回答】
凡例をグラフ描画フィールド外のどこに表示するかに関しては
・legend-location
・legend-alignment
を使用することで調整できます。

上記を調整しても表示できない場所に表示したい場合、例えばグラフ内に表示したい時などには
・create-legend
を使用することでグラフの凡例グラフィックを取得出来ますので、
create-legendで取得したグラフィックをグラフ内に追加することで実現出来ます。

詳細は以下のサンプルをご参照ください。

{curl 6.0,7.0,8.0 applet}
{curl-file-attributes character-encoding = “shift-jis”}

{import * from CURL.GUI.CHARTS}

{let records:RecordSet =
    {RecordSet
        {RecordFields
            {RecordField
                “Region”,
                domain = String},
            {RecordField “M1”, caption = “January”, domain = int},
            {RecordField “M2”, caption = “February”, domain = int},
            {RecordField “M3”, caption = “March”, domain = int}
        },
        {RecordData Region = “North”, M1 = 100, M2 = 140, M3 = 130 },
        {RecordData Region = “East”, M1 = 110, M2 = 140, M3 = 170},
        {RecordData Region = “South”, M1 = 140, M2 = 100, M3 = 130},
        {RecordData Region = “West”, M1 = 160, M2 = 190, M3 = 140}
    }
}

{let chart:LayeredChart =
    {LayeredChart
        width = 15cm,
        height = 7cm,
        legend-enabled? = false,
        {LineLayer
            records,
            “M1”,
            “M2”,
            “M3”,
            legend-enabled? = true,
            x-axis-data = {ChartDataSeries records, “Region”},
            {on ChartLayoutChanged at ll:LineLayer do
                ||凡例グラフィックの定義
                let legend1:#Graphic = {chart.create-legend}
                {ll.add
                        {HBox
                            color = “black”,
                            width = {ll.chart.get-x-axis-length},
                            valign = “bottom”,
                            {Fill},
                            legend1
                        }
                }
            }
        }
    }   
}

{VBox
    chart
}

詳細は、Curl開発者ガイドの
[グラフ]-[グラフへのシェイプの追加]
の項と、APIリファレンスの
[CURL.GUI.CHARTS]-[Chart]
の項内のプロパティ[legend-location]、[legend-alignment]の項と
メソッド[create-legend]の項をご参照ください。

バージョンによる印刷結果の違いについて(センタリング)

【ご質問】
マージンを0にして印刷した場合、バージョンにより印刷結果が異なるようです。

 バージョン4:オブジェクトが真ん中に表示されて印刷される
 バージョン7:オブジェクトが左上に表示されて印刷される

なぜでしょうか。

【回答】
バージョン6以降、マージンに関する変更が加えられており、
その際に上記のように表示位置の仕様が変更されております。

{hcenter}を使うことでセンターに印刷ができます。

Power User権限でのCurl RTEインストールの可否について

◆ご質問◆
Curl RTEのインストールはPower User権限でも可能でしょうか。

◆回答◆
Curl RTEのインストールにおいて、
  1.レジストリの作成には管理者権限が必要である。
  2.Program Filesディレクトリに対するファイル作成には管理者権限が必要である。

上記のため、管理者権限によるRTEのインストールが必要となります。

Layerの情報を取得するには

【ご質問】
グラフの種類によって凡例のサイズを変更したいのですが、可能でしょうか。
 例:
  LineLayerの場合、凡例のサイズを「height = 2pt」
  BarLayerの場合は、凡例のサイズを「height = 10pt」

【回答】
legend-entry-factoryに設定するファクトリプロシージャの引数”chart”から
チャートに表示する各レイヤの情報を取得可能ですので、
これにより条件分岐させてこの凡例のサイズ(高さ)を設定させてみてはいかがでしょうか。

(実装例)

let height = 0pt
{type-switch chart
    case lc:LayeredChart do
        {type-switch lc.layers[legend-index]
            case ll:LineLayer do
                set height = 2pt
            case bl:BarLayer do
                set height = 10pt
        }
}

Y軸の異なるグラフの表示

【ご質問】
Y軸が異なる、3本のグラフを1つのプロットエリアに表示したいのですが、どうしたらよいのでしょうか。
X軸は同じ値を用いています。

【回答】
2つの異なるY軸であれば左側と右側に出すことが標準APIで可能です。
また、取りうる値の範囲が似た範囲であれば左右どちらかの軸を共有し3本以上のグラフを描くことは可能です。

以下のサンプルを参考にしてください。

{curl 6.0,7.0,8.0 applet}
{curl-file-attributes character-encoding = “shift-jis”}

{import * from CURL.GUI.CHARTS}

{let records:RecordSet =
    {RecordSet
        {RecordFields
            {RecordField “Region”, domain = String},
            {RecordField “M1”, caption = “January”, domain = int},
            {RecordField “M2”, caption = “February”, domain = int},
            {RecordField “M3”, caption = “March”, domain = int}
        },
        {RecordData Region = “North”, M1 = 100, M2 = 140, M3 = 130 },
        {RecordData Region = “East”, M1 = 110, M2 = 140, M3 = 170},
        {RecordData Region = “South”, M1 = 140, M2 = 100, M3 = 130},
        {RecordData Region = “West”, M1 = 160, M2 = 190, M3 = 140}
    }
}

{let left-group:ShapeGroup =
    {ShapeGroup
        color = FillPattern.black
    }
}

{let right-group:ShapeGroup =
    {ShapeGroup
        color = FillPattern.black
    }
}

{LayeredChart
    width = 15cm,
    height = 7cm,
    left-axis =
        {ChartAxis
            {ChartDataSeries records, “M1”},
            {ChartDataSeries records, “M2”},
            axis-group = left-group
        },
    right-axis =
        {ChartAxis
            {ChartDataSeries records, “M3”},
            axis-group = right-group
        },
    {LineLayer
        records,
        “M1”,
        “M2”,
        “M3”,
        x-axis-data =
            {ChartDataSeries records, “Region”},
        stroke-thickness = 2pt,
        ||わかりやすいように折れ線にポインターが入った場合は使用している軸を赤くする
        {on ChartLayoutChanged at layer:LineLayer do
            {layer.series-shapes[0].add-event-handler
                {on PointerEnter do
                    set left-group.color = FillPattern.red
                }
            }
            {layer.series-shapes[0].add-event-handler
                {on PointerLeave do
                    set left-group.color = FillPattern.black
                }
            }
            {layer.series-shapes[1].add-event-handler
                {on PointerEnter do
                    set left-group.color = FillPattern.red
                }
            }
            {layer.series-shapes[1].add-event-handler
                {on PointerLeave do
                    set left-group.color = FillPattern.black
                }
            }
             {layer.series-shapes[2].add-event-handler
                {on PointerEnter do
                    set right-group.color = FillPattern.red
                }
            }
            {layer.series-shapes[2].add-event-handler
                {on PointerLeave do
                    set right-group.color = FillPattern.black
                }
            }
        }
    }
}

TextDisplayのキャレットについて

【ご質問】
TextDisplayにキャレットを表示させることは可能でしょうか。

【回答】
通常、フィールドにキャレットが入るということはユーザにそのフィールドが
入力可能であるということを示します。
これはCurlに限らず一般的なGUIの使われ方です。

CurlのTextDisplayは文字情報を”表示する”だけに使われるものです。
入力を行わないということが前提になるため、TextDisplayではキャレットを表示することができません。

アプリケーションの仕様上どうしても必要である場合、
カスタマイズしたコントロールを作成する必要があります。

入力情報をデータベースやファイルへ保存するには

◆ご質問◆
入力した明細情報を、クライアントのデータベースまたは外部ファイルとしてローカルに保管することは可能ででしょうか。

◆回答◆
可能です。
以下のような方法が考えられます。

1.テキスト形式(csvなど)でファイル出力する
2.ADO接続等によりローカルDBにアクセスする
3.SQLiteを使用する
4.persistent dataを使用する

※SQLiteはVer.7よりサポートしております。
 SQLiteに関しましては、以下サイトもご参照ください。
 http://developers.curlap.com/re-reference/25-data/18-sqlite.html

印刷設定について

【ご質問】
印刷に関しては、どのような設定が可能でしょうか。

【回答】
Curlでは印刷用のAPIとしてprint-graphicがあります。
以下のような設定が可能です。
  ・マージンの設定
  ・タイトル及びページ数
  ・日時の印刷設定
  ・ページの伸長設定
  ・開始ページと終了ページの指定
  ・印刷向きの指定
  ・出力プリンターの指定

詳細は、Curl開発者ガイドの
[グラフィカル ユーザー インターフェイス]-[印刷]
の項とAPIリファレンスの
[CURL.GUI.BASE]-[print-graphic]
の項をご参照ください。

※上記内容はバージョン7の時点でのものです。
  バージョン8以降はさらに設定可能な項目が増えています。
  以下のページの情報もあわせてご参照ください。
http://developers.curlap.com/re-reference/56-print/744-print-graphic.html

オブジェクトサイズの伸縮について

【ご質問】
オブジェクトの幅や高さを固定せずに、ウィンドウサイズによって伸縮させる方法はあるのでしょうか。

【回答】
エラスティックという技術があります。
これによってオブジェクトの伸長度や圧縮度を制御することができます。

詳細はCurl開発者ガイドの
[グラフィカルユーザーインターフェイス]→[エラスティックとページレイアウト]→[オブジェクトの伸長と圧縮]
の項をご参照ください。

テンプレート機能について

◆ご質問◆
Curlの開発環境でテンプレート機能を使用できるのでしょうか。

◆回答◆
Curl IDE 5.0よりVisual Layout Editorで複合オブジェクトの利用が可能となりました。
その中で、テンプレートとして利用できるような複合オブジェクトを作ることができます。

Curl VLEユーザーガイドの[複合オブジェクトの構築]の項をご参照ください。

修正したモジュールが反映されない

【ご質問】
修正したモジュールをデプロイしましたが、クライアントで
最新のモジュールがダウンロードされないことがあります。

デプロイ後のモジュールを確実にクライアントでダウンロードさせる方法はありますか。

【回答】
“resync-as-of”プロシージャの日時を指定して頂くことで可能ですが、
クライアントマシンの時刻が大幅にずれているとダウンロードされない場合があります。

その場合、クライアントのCurl実行環境のキャッシュを空にしてシャットダウンして頂くか、
Curlのアプレット上で右クリックして「再ロード時に再同期する」を選び再ロードして頂く必要があります。

詳細は、Curl開発者ガイドの
[コンテンツの構成要素]-[キャッシュと同期]
の項をご参照ください。

バイナリデータを読み取るには

【ご質問】
バイナリデータを読み取るためにread-fromプロシージャを使用したところエラーが発生しました。
なぜでしょうか。

【回答】
read-fromプロシージャはテキストデータを読み取るためのプロシージャです。
バイナリデータを読み取るためにはread-bytes-fromプロシージャなどを使用してください。

詳細は、APIリファレンスの
[CURL.IO.FILE]-[read-from]
の項と
[CURL.IO.FILE]-[read-bytes-from]
の項をご参照ください。