Xファンクションのオプション文字列

目次

A - 再計算モード

再計算オプションは、Xファンクションの再計算モードの制御が可能です。デフォルトでは、Xファンクションが、入力または出力変数として、XYRange、XYZRange、vector、Column、matrix、MatrixObjectといったOriginオブジェクトタイプを含むとき、手動自動なし再計算モードとして使用できます(デフォルトのモードは手動)。もし変数が入力と出力両方で使用されている場合、再計算モードは禁止され、再計算コンボボックスは非表示になります。

A:0x00

Xファンクションダイアログから再計算コンボボックスを隠します。

サンプル

  1. 下図のように名前と変数の新しいXファンクションを作成します。保存ボタンOcguide xfdialog savebutton.pngをクリックし、このXファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(フォルダがない場合、作成します)。
    OCguide xf optionstring a0 variables.png
  2. このXファンクションを、コマンドウィンドウ内でコマンド OptionStringA -d;と実行します。開いたダイアログでは、再計算コンボボックスは表示されません。
    OCguide xf optionstring a0 xfdialog.png

A:0x01

デフォルト再計算モードをなしにセットします。このモードは入力、出力変数ともに利用可能です。

サンプル

  1. 下図のように名前と変数の新しいXファンクションを作成します。保存ボタンOcguide xfdialog savebutton.pngをクリックし、このXファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(フォルダがない場合、作成します)。
    OCguide xf optionstring a1 variables.png
  2. このXファンクションを、コマンドウィンドウ内でコマンド OptionStringA1 -d;と実行します。開いたダイアログには、なしが選択された再計算コンボボックスが表示されます。
    OCguide xf optionstring a1 xfdialog.png

A:0x02

再計算モード付き出力列についてソートを許可する。出力変数のみに動作します。

サンプル

  1. 下図のように名前と変数の新しいXファンクションを作成します。 保存ボタンOcguide xfdialog savebutton.pngをクリックし、このXファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(フォルダがない場合、作成します)。
    OCguide xf optionstring a2 variables.png
  2. 1つの列をもつ新しいワークシートを作成し、この列を行番号で埋めます。そして、この列を選択し、コマンドウィンドウでOptionStringA2 -d;と入力して実行します。OKボタンをクリックすると、以下のように鍵のアイコン付きの空の出力列が2列作成されます。
    OCguide xf optionstring a2 output.png
  3. 列Bのヘッダでクリックして選択し、右クリックして開くコンテキストメニューからソート(ワークシート)を選択します。下図のようなサブメニューを利用可能です。
    OCguide xf optionstring a2 sortmenu.png

A:0x04

再計算モードを許可しますが、Xファンクションダイアログ内の再計算コンボボックスは非表示になります。

B - ダイアログオプションブラウザ

ブラウザダイアログオプションコントロールはXファンクションダイアログにあるボタンで開く、ページ/グラフブラウザダイアログ内の設定をコントロールします。開いたダイアログのフィルタのためにも使用されます。Xファンクション グラフブラウザダイアログのサンプルを参照してください。

B:0x0001

ダイアログが開くとページ/グラフブラウザ内の全てのページをソートします。

B:0x0002

グラフブラウザから3Dグラフを除きます。

C - その他のオプション

C:0x0001

割り当て列指定から複合範囲を無効にします。例えば、XYRangeタイプで出力変数を取ります。 このオプション文字列が変数のために指定されていない場合、2つの出力列があり、1つはX指定、もう一方はY指定です。そうではない場合、両方ともデフォルトY指定を持つ2列になります。

C:0x0002

非表示のステートを持つ新しいページを作成します。

C:0x0004

Xファンクションを元に戻せないようにする

C:0x0010

デフォルトでは、double型の変数が欠損値のときにこの変数は空のセルを表示します。このオプション文字列は「--」のような空の変数を表示するのに使用します。

C:0x0100

範囲(Range)タイプの出力変数にのみ使用可能なオプション文字列です。もし、出力変数が<new>にセットされている場合、有効なOriginC範囲オブジェクトが作成されます。しかし、それに対する新しい列はありません。このオプションは、Xファンクション本体に出力範囲のための行と列を用意するのに使用します。

C:0x0200

範囲(Range)タイプの出力変数にのみ使用可能なオプション文字列です。もし、出力変数が<new> にセットされている場合、入力範囲と同じ列数、行数で複製します。

C:0x0400

MarkerInfoとButtonInfo XVariableに適用できます。セットすると非表示になります。

C:0x0800

XVariableを出力するために適用します。セットすると、書き込み可能なチェックを抑制します。

C:0x1000

任意のXVariableを適用します。セットするとダイアログからのスクリプト生成をサポートします。

C:0x2000

9.0 から利用可能です。Page/Layer XVariableを出力するために適用します。セットすると、新しく作成したページを非表示にするかを決定するために別のXVariableコール"hide"の値をチェックします。

C:0x4000

9.0 から利用可能です。グループ始まり(オプション文字列G)のXVariableを適用します。セットすると、XVariableが非表示の場合にすべてのブランチを非表示にしません。

E - 実行制御

E:V

値の真の値を保持するためにXファンクションウィザードとXファンクションバーで使用されます。最初の適用ボタンによって作成された先は、その後の適用ボタンで使用されます。

F - ダイアログ数値表示フォーマット

F:*6*

double型で数値を表示するためのフォーマット文字列を提供します。* (Originグローバル数値フォーマット設定)、.2(2桁)といった標準のLabTalkの数値フォーマット表記を使用できます。

FT - データプロット選択フィルタ

FT:str1|str2

グラフからデータ選択のアクションフィルターのためのタグを指定します。データオブジェクトにタグstr1 または str2 を含む場合、メニューアイテムアクティブグラフページ/レイヤにすべてのプロットを追加するでデータが選択された時に無視されます。

サンプル

このサンプルでは、グラフから全てのデータが選択された時、タグ名TestCurves 付きのデータプロットを含めないようにFTオプション文字列を使用する方法です。

  1. 下図のように名前と変数の新しいXファンクションを作成します。 保存ボタンOcguide xfdialog savebutton.pngをクリックし、このXファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(フォルダがない場合、作成します)。
    OCguide xf optionstring ft variables.png
  2. コードビルダでこのXファンクションを開き、以下のコードをコピーしてメインの関数OptionStringFT内容に貼り付けます。そして、コンパイルボタンOcguide XF Compile Button.PNGをクリックします。
    // XYRange出力のためのデータを置く vector vx, vy; vx.Data(1, 10, 1); vy = vx; oy.SetData(&vy, &vx); // 指定された名前はiオプション文字列 "FT" と同じである必要がある tag_columns_in_data_range(oy, "TestCurves"); // ソース範囲グラフ取得、グラフに結果をプロット vector<uint> vnIDs; if( iy.GetPlots(vnIDs) > 0 ) { DataPlot dp; dp = (DataPlot)Project.GetObject(vnIDs[0]); GraphLayer gl; dp.GetParent(gl); gl.AddPlot(oy); }
  3. 新しいワークシートに<Origin Installation Folder>\Samples\Curve Fitting\Multiple Gaussians.dat をインポートします。全ての列を選択し、折れ線図を作成します。 作成したグラフをアクティブにして、コマンドウィンドウに OptionStringFT -d; を入力して実行します。OKボタンをクリックしてソースワークシートにXY列を生成し、それをソースグラフにプロットします。
  4. グラフをアクティブにして、再度 OptionStringFT -d;を実行し、Xファンクションダイアログを開きます。Input XY ブランチには、新しく出力されたデータプロットはありません。これは、このデータプロットのTestCurves というタグ名によるものです。

FV - 出力変数のソースを特定

FV:varname はそれぞれの出力変数のための入力変数の名前を指定します。この変数のブック/シート/オブジェクトの情報がトレースされ、出力変数が<input>/<same>にセットされているときに出力変数と共有されます。例えば、3つのXYRangeをもつXファンクションを考えます。最初の2つは入力変数で最後の1つは出力変数です。このオプション文字列によって、ひとつの入力変数の名前が出力変数にセットされると、出力が<input> oまたは<same>に設定されている時に出力列は特定の入力列と同じになります。そうではない場合、出力列は1つ目の入力列と同じになります。

G - GUIのグループコントロール

Xファンクション内の関連する変数をグループ化するために使用します。オプション文字列にフィールドに、グループの開始変数のためのG:グループ名を追加し、Gをグループの終了のための変数を追加します。

G:Group

グループの開始を指定します。デフォルトでは、グループのブランチは閉じています。最初からこのブランチを開いた状態にするには、ダイアログを開き、グループ名の前にG:-Group Name のような - を追加します。するとダイアログはブランチのステータスを記憶します。

G

グループの終了を指定します。

サンプル

  1. Xファンクションビルダを開くためにF10キーを押してください。以下の画像のようにXファンクションを作成し、保存ボタンOcguide xfdialog savebutton.pngをクリックして<Origin User Files Folder>\X-Functions\OC Guide\ (フォルダがない場合は作成)に保存します。
    OCguide xf optionstring g variables.png
  2. コマンドウィンドウでOptionStringG -d;を実行します。 下図のようなダイアログが開きます。
    OCguide xf optionstring g xfdialog.png

H - 結果表表示スタイルの設定

  1. 下図のように名前と変数の新しいXファンクションを作成します。保存ボタンOcguide xfdialog savebutton.pngをクリックし、このXファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(フォルダがない場合、作成します)。
    OCguide xf optionstring h variables.png
  2. このXファンクションをコードビルダで開き、//put additional include files hereの行以降に以下の必要なヘッダファイルを追加します。
    #include <ReportTree.h>
  3. メインの関数OptionStringHに以下のコードをコピーします。これは、選択したデータに記述統計を実行し、結果のためのレポートシートを用意するために使用されます。
    // Data Rangeオブジェクトからデータを取得
    matrix mData;
    if( rng.GetData(mData) <= 0 )
    {
            XF_THROW("No data is selected");
    }
     
    // 各列の基本統計量を計算 
    vector vPoints, vSum, vSD;
    for(int index = 0; index < mData.GetNumCols(); index++)		
    {
    	vector vData;
    	mData.GetColumn(vData, index);
     
            int nPoints;
            double dSum, dSD;
            ocmath_basic_summary_stats(vData.GetSize(), vData, &nPoints, 
                                    &dSum, &dSD);
     
            vPoints.Add(nPoints);
            vSum.Add(dSum);
            vSD.Add(dSD);
    }
     
    // データ表を作成
    int nID = 0; // ID は固有である必要がある
    ReportTable rTable = rt.CreateTable("Report", "Report Table", ++nID, 0, 1);	
    rTable.AddColumn(vPoints, "N", ++nID, "Points", OKDATAOBJ_DESIGNATION_Y);
    rTable.AddColumn(vSum, "Sum", ++nID, "Sum", OKDATAOBJ_DESIGNATION_Y);
    rTable.AddColumn(vSD, "SD", ++nID, "SD", OKDATAOBJ_DESIGNATION_Y);
     
    // どのフォーマットも指定しないように属性を0とします
    // oc_const.hで定義された多くのビット GETNBRANCH_* は表の表示フォーマットをセットするため
    rTable.SetAttribute(TREE_Table, GETNBRANCH_TRANSPOSE);
  4. 5列ある新しいワークシートを作成し、全ての列を乱数データで埋めます(全て選択し、右クリックして列値の一律設定:一様乱数を選択)。コマンドウィンドウでOptionStringH -d; を実行し、ダイアログを開きます。ダイアログで、 Input Data としてすべての列が選択され、Reportは<new>であることを確認します。OKボタンをクリックするとレポートシートが標準のフォーマット(H:0)で表示されます。
    OCguide xf optionstring h report data.png
  5. XファンクションビルダでこのXファンクションを開き、H:0H:1 に変更します。保存します。コマンドウィンドウで再度OptionStringH -d;を実行します。ここではレポートシートが階層表フォーマット(H:1)で表示されます。
    OCguide xf optionstring h report table.png

I -入力範囲コントロールの動作を制限

入力データの範囲を制限し、インタラクティブコントロールの動作を変更します。このオプション文字列は以下の入力データタイプの時に操作します:Range、XYRange、XYRangeComplex、XYZRange、vector、vector<string>、vector<complex>

I:0x0001

第1サブレンジの複数データ選択を許可します。

I:0x0002

第2サブレンジの複数データ選択を許可します。

I:0x0004

第3サブレンジの複数データ選択を許可します。

I:0x0008

すべてのサブレンジの複数データ選択を許可します。

I:0x0010

1つのデータセットに限定します。

I:0x0020

Yエラーのサポート。XYRangeのみ

I:0x0040

Rangeにラベルエリアをサポートオプション文字列を使用すると、出力範囲は実行前にデータはクリアされません。これはI:0x00040000と同様です。

I:0x0080

出力変数のポップアップリストから<input> オプションがなくなります。

I:0x0100

出力変数のポップアップリストから<new> オプションがなくなります。

I:0x0200

出力変数のポップアップリストから(<input>,<new>) オプションがなくなります。XYRangeのみ。

I:0x0400

ポップアップメニュー用のボタンを取り除きます。

I:0x0800

インタラクティブボタンを取り除きます。

I:0x1000

ベクトルと列タイプのみで入力変数に対して有効です。データ選択のための文字列が得られた場合、列は、インデックスによって識別されるが、ショートネームでは識別されません。

I:0x2000

このオプション文字列は、初期化中にベクトル変数のみがY列に使用されるようにします。

I:0x4000

列ブラウザボタンを表示します。

I:0x8000

変数を書き込み不可にセットします。I:0x0400I:0x0800 の同様に動作します。

I:0x00010000

初期化中またはインタラクティブな瞬間に行の選択を取り除きます。変数型:Column, Range, XYRange

I:0x00020000

列表記でシート全体の範囲の文字列を置き換えます。例えば、Book1には、2列あるShee1がある場合、範囲文字列[Book1]Sheet1Book1]Sheet1!1:2となります。

I:0x00040000

このオプション文字列は、出力範囲が実行終了前にクリアされないようにします。このオプション文字列がないと、入力データ範囲内にオーバーラップが内場合に、出力範囲の列は字算に新しいデータを使用してクリアされます。

サンプル

  1. 下図のように名前と変数の新しいXファンクションを作成します。保存ボタンOcguide xfdialog savebutton.pngをクリックし、このXファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(フォルダがない場合、作成します)。
    OCguide xf optionstring i variables.png
  2. コードビルダでこのXファンクションを開き、以下の入力列から出力列にでーたをコピーするコードをコピーしてメインの関数OptionStringlの内容に貼り付けます。そして、コンパイルボタンOcguide XF Compile Button.PNGをクリックします。
    orng = irng;
  3. 列Aと列Bの2列ある新しいワークシートを作成し、A列の最初の10行を選択して右クリックし、表示されたメニューから列値の一律設定:行番号を選択してこれらに行番号を入力します。コマンドウィンドウで、 OptionStringI -d; コマンドを実行し、inputとしてA列、outputとしてB列を指定し、OKボタンをクリックします。結果列であるBにも行番号が入力されます。
  4. A列の最初の5行を選択して、右クリックしてコンテクストメニューを開きます。削除を選択してこれらを削除します。列Bのヘッダにある鍵の色が緑から黄色に変化します。鍵のアイコンをクリックして、ポップアップメニューから再計算を選択します。 下図のように、B列の最後5行には、元のデータがキープされます。
    OCguide xf optionstring i output.png

I:0x00080000

全ての列を対話型のポップアップメニューで非表示にします。

I:0x00100000

アクティブグラフレイヤに選択がなく、範囲変数が<active>を使用してセットされている場合、範囲変数はアクティブレイヤ内の全てのプロットにセットされます。

I:0x00200000

出力Xとしてサンプリング間隔を使用します。

I:0x00400000

I:0x00800000

既存の列またはプロットが、対話型のポップアップメニューを表示されます。

I:0x02000000

出力XYRangeが<auto>を使用してセットされている場合、このオプションは新しいX列を作成します。

I:0x04000000

行範囲は無視され、1つのブロック範囲のみ有効です。選択がない、あるいは、1つの単一セルのみが選択である場合、選択はすべてのワークシートと解釈されます。

I:0x08000000

インデックスの代わりに最初の最後のX値を使用して範囲文字列を作成します。シンタックスは、[BookName]SheetName!ColName[xFirstValue:LastValue]これは単調なデータに非常に便利です。

I:0x10000000

範囲変数はファクターと重みを持ちません。

M - 複数行文字列のサポート

M:m-n

文字列変数が複数行のテキストをサポートするようにします。文字列変数が非表示の場合、テキストの行がサポートされ、拡張した場合行がサポートされます。編集コントロールの右下隅でサイズを変更するには、行範囲文字列に*を追加します。

N - 出力オブジェクトのデフォルト名を設定

出力オブジェクトのデフォルト名を指定します。

  • ReportTreeReportData

N: Book:="Book Name" Sheet:="Sheet Name"

  • MatrixObject

N: Book:="Book Name" Sheet:="Sheet Name" X:="Object Name"

  • MatrixLayerImagevectorColumn

N: "Name"

  • XYRange

N: X:="X Name" Y:="Y Name"

  • XYZRange

N: X:="X Name" Y:="Y Name" Z:="Z Name"

  • Worksheet

N: Book:="Book Name" Sheet:="Sheet Name"


バージョン2021b以降、Originは出力名の置換表記をサポートしています(例:N:"Stats of %W")。変数は、User Files\Origin.iniの[OutputLongName]セクションに次のように記載されています。

  • %A = 解析機能名 (e.g. FitNL) or Xファンクション名
  • %W = 入力シート名
  • %N = 入力列のロングネーム、ロングネームがない場合はショートネーム
  • %B = 入力ブックのロングネーム
  • %S = 入力ブックのショートネーム

O - Xファンクション実行後の出力オブジェクトのデフォルト名の動作を設定

実行に成功した後の出力変数のアクションを指定します。

O:A

オブジェクトが非表示または別のフォルダ内にある場合に関係なく対応するOriginオブジェクトをアクティブにします。

O:C

ワークブックがアクティブウィンドウの時のみ、対応するOriginオブジェクトをアクティブにします。

O:N

対応するOriginオブジェクトをアクティブにしません。

P - GUI の編集可能コントロールの設定

Xファンクションダイアログで変数が編集可能かどうか指定します。

P:0 or P:1

P:1 はデフォルトのオプション文字列です。パラメータの変更を経由して再びXファンクションダイアログを立ち上げる時、このオプション文字列を使用して、列、ワークシートなどのOriginのオブジェクトタイプである出力変数は、編集できないようになります。他のタイプの変数でそのようにする場合、オプション文字列をP:0として指定する必要があります。

P:2

ラベルを表示するだけで、編集可能なフィールドは非表示です。通常はヒントテキストを表示するために使用されます。

P:4

Xファンクションダイアログでセパレータとして変数を表示します。文字列タイプのみに有効です。

サンプル

  1. F10キーをおして、Xファンクションビルダを開き、下図のように名前と変数の新しいXファンクションを作成します。保存ボタンOcguide xfdialog savebutton.pngをクリックし、このXファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(フォルダがない場合、作成します)。
    OCguide xf optionstring p variables.png
  2. Xファンクションをコードビルダで編集するボタンOcguide xfdialog codebuilderbutton.pngをクリックして、このXファンクションをコードビルダで開きます。OptionStringP関数の内容にコード out = in + var; を入力して、コンパイルボタンOcguide XF Compile Button.PNGをクリックします。
  3. 新しいワークシートを作成し、A列をいくつかのデータで埋めます。コマンドウィンドウでOptionStringP -d; を実行します。開いたダイアログで、列AをInput Column、列BをOutput Columnとして選択します。OKボタンをクリックすると、結果が生成され、B列に格納されます。
  4. B列ヘッダにある、鍵のアイコンをクリックし、パラメータを変更を選択します。パラメータを変更で開くダイアログと、コマンドOptionStringP -d;により開くダイアログとの違いは下図の通りです。
    OCguide xf optionstring p xfdialog.png

R - ダイアログコンボボックスの動作を制限

LabTalkスクリプトから呼び出したXファンクション内のコンボボックスの値を制御するのに使用します。ダイアログには影響しません。

R:0

制約はありません。コンボボックスのリストで定義された値に加えて、他の値もLabTalkのスクリプトを使用して、コンボボックスの変数に割り当てることができます。

R:1

デフォルトのオプション文字列です。コンボボックスのリストで定義された値のみ、他の値もLabTalkのスクリプトを使用して、コンボボックスの変数に割り当てることができます。

サンプル

  1. int型の変数(名前は x1) をもつ、新しいXファンクション (名前は OptionStringR) を作成します。この変数に対する制御の列に、AA|BB|CC をセットします。
  2. コマンドウィンドウにOptionStringR x1:=5; と入力して実行すると、次のエラーが表示されます:#Command Error!
  3. このXファンクションをXファンクションビルダで再度開き、int変数のオプション文字列R:0をセットし、Xファンクションを保存します。
  4. もう一度コマンドウィンドウにOptionStringR x1:=5; と入力して実行すると、エラーが表示されなくなります。

S - 入力変数のための度デフォルトデータ選択を定義

入力変数のためのデフォルトデータオブジェクトを定義します。Rangeタイプの変数にのみ使用可能なオプション文字列です。

S:0

アクティブワークシートの選択されている全ての列をデータ範囲とします。

S:0x01

アクティブ行列ウィンドウ内の、最初の行列オブジェクトまたは、アクティブワークシートの最初の列をデータ範囲として選択します。

S:0x10

<active>オプションは、行列オブジェクト以外を取得するようにします。出力変数では、<active> オプションは<new>と置換えられ、行列ページを作成します。

SV - Xファンクションダイアログコンボボックス内の文字列のサポート

コンボボックスのアイテム値を特別な値に置き換えます。例えば、制御列でBegin|Mid|End 文字列をとおしてint型の変数がコンボボックスにセットされた場合、このコンボボックスのデフォルトのアイテム値は、それぞれ0、1、2です。変数に対して、オプショ文字列SV:1|5|-1 iが使用されている場合、コンボボックス内に返るアイテム値はそれぞれ1、5、-1となります。

T - テーマから変数をスキップ

Xファンクションダイアログテーマファイルで変数が記憶されるかどうか指定します。このオプション文字列はツリービューでのテーマ選択の間有効で、これがデフォルト設定です。

T:0

指定したテーマが選択された場合、テーマ値は変数値として使用されます。

T:1

テーマが選択されていても、テーマ値を変数値として使用しません。

T:4

指定したテーマが選択された場合、テーマ値と属性の両方が変数値として使用されます。このオプションは、XYRangeやImageなどのOrigin内部のオブジェクトで主に使用されています。

U - 出力をオプションとして指定

出力変数が必要かどうかを指定します。このオプション文字列は、複数出力変数のあるXファンクションに対して有効です。

U:1

出力変数のために選択されたチェックボックスを追加します。これはデフォルトオプションです。

U:0

出力変数のために選択されていないチェックボックスを追加します。

U:n

出力変数のためにチェックボックスを追加しません。

サンプル

  1. 下図のように名前と変数の新しいXファンクションを作成します。 保存ボタンOcguide xfdialog savebutton.pngをクリックし、このXファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(フォルダがない場合、作成します)。
    OCguide xf optionstring u variables.png
  2. Xファンクションをコードビルダで編集するボタンOcguide xfdialog codebuilderbutton.pngをクリックして、このXファンクションをコードビルダで開きます。以下のコードをコピーして、関数OptionStringUの内容に貼り付けます。
    vector vv; 
    vv.Data(1,10,1);
     
    if( xx ) // xx変数を出力するかチェック
     { 
          xx = vv;
     }
     
    if( yy ) // yy変数を出力するかチェック
     {
          yy = vv;
     }
    zz = vv;
    
  3. OptionStringU_event1関数に以下のコードを置き、出力変数のチェックボックスステータスを取得します。そして、コンパイルボタンOcguide XF Compile Button.PNGをクリックします。
    foreach(TreeNode subnode in trGetN.Children)
     {
          string strVarName = subnode.tagName;
          int nUStatus, nOutput;
     
          // 出力変数かチェック
          if((subnode.GetAttribute(STR_XF_VAR_IO_ATTRIB, nOutput)
                && IO_OUTPUT == nOutput))
          {
                // 出力チェックボックスステータスをチェック
                if(subnode.GetAttribute(STR_ATTRIB_DYNACONTROL_USE_CHECK, nUStatus))
                {
                      switch(nUStatus)
                      {
                      case 1:
                            printf("%s variable has Output checked check box.\n" , strVarName);
                            break;
                      case 0:
                            printf("%s variable has Output unchecked check box.\n" , strVarName);
                            break;
                      }
                }
                else
                {
                      printf("%s variable NOT Output check box.\n", strVarName);
                }
          }
    }
  4. コマンドウィンドウで、OptionStringU -d; を実行し、ダイアログはデフォルトのままOKボタンをクリックします。 これにより、2列のワークシートが作成され、コマンドウィンドウに、それぞれのチェックボックスステータスが印字されます。

V - 表示指定のコントロール

Xファンクションダイアログで変数が見えるかどうか指定します。

V:0

ダイアログで変数は見えません。

V:1

ダイアログで変数は見えます。

V:2

LabTalkスクリプトを使用するとき、変数は見えません。

Z - 変数制御のための編集可能/不可能をセットするチェックボックスを追加

入力変数の隣にチェックボックスを追加し、それが編集可能かどうか指定します。シンタックスは、Z:State|Label|Behavior です。

  • State: 0 または1 で 、チェックボックスのステータスを指定します。
  • Label: チェックボックスのラベルLabelBehavior が両方と指定されない場合、デフォルトAutoのラベルが付きます。
  • Behavior:
    0:チェックボックスにチェックが付いている付いていないに関わらず変数はいつも編集可能です。
    1:チェックされていると入力変数は無効です。
    2:チェックされていないと入力変数は無効です。

サンプル

  1. 下図のように名前と変数の新しいXファンクションを作成します。保存ボタンOcguide xfdialog savebutton.pngをクリックし、このXファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(フォルダがない場合、作成します)。
    OCguide xf optionstring z variables.png
  2. Xファンクションをコードビルダで編集するボタンOcguide xfdialog codebuilderbutton.pngをクリックして、このXファンクションをコードビルダで開きます。OptionStringZ_event1関数に以下のコードを置き、int型の変数のチェックボックスステータスを取得します。そして、コンパイルボタンOcguide XF Compile Button.PNGをクリックします。
    TreeNode trInt = trGetN.nn;		
    int nAutoType = octree_get_auto_support(&trInt);
    switch(nAutoType)
    {
    case -1:
    	out_str("Auto check box of int Type control is unchecked");
    	break;
    case 0:
    	out_str("No auto check box for int Type control");
    	break;
    case 1:
    	out_str("Auto check box of int Type control is checked");
    	break;
    }
  3. コマンドウィンドウで、OptionString -d; を実行すると、下図のようなダイアログが開きます。TestOKチェックボックスのステータスを変更するとコマンドウィンドにこのチェックボックスのステータスについてメッセージが表示されます。
    OCguide xf optionstring z xfdialog.png