O recurso está a ser carregado... Carregamento...

Controles interativos na barra de estado

Além de projetar controles interativos na coluna Strategy Interaction, também é possível projetar controles interativos na coluna Estado da Estratégia.LogStatussecção de funções do Guia de sintaxe- Não. Os controles do botão na barra de status podem ser categorizados como:

  • Controles de botões comuns Um exemplo de estrutura de dados é:

    {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
    
  • Controle de botões com entrada de dados Utilize oinputPropriedade para definir as opções de controlo de entrada, com um exemplo de estrutura de dados:

    {"type": "button", "name": "button2", "cmd": "button2", "description": "This is the second button.", "input": {"name": "number of open positions", "type": "number", "defValue": 1}}
    
    {
        "type": "button",
        "cmd": "test1",
        "name": "test1",
        "input": {
            "type": "selected",
            "name": "selected",
            "label": "drop-down box",
            "description": "description",
            "default": 100,
            "settings": {
                "multiple": true,
                "customizable": true,
                "options":[{"name": "A", "value": 100}, {"name": "B", "value": 200}]
            }
        },
    }
    
  • Controle de botões com um conjunto de dados de entrada Utilize ogroupPropriedade para definir as opções para um grupo de comandos de entrada, com um exemplo de estrutura de dados:

    {
        "type": "button",
        "cmd": "open",
        "name": "open positions",
        "group": [
            {"name": "orderType", "description": "下单方式|order type", "type": "selected", "defValue": "market order|pending order"},
            {"name": "tradePrice@orderType==1", "description": "交易价格|trade price", "type": "number", "defValue": 100},
            {"name": "orderAmount", "description": "委托数量|order amount", "type": "string", "defValue": 100},
            {"name": "boolean", "description": "yes/no|boolean", "type": "boolean", "defValue": True}
        ]
    }
    
    {
        "type": "button",
        "cmd": "test2",
        "name": "test2",
        "group": [{
            "type": "selected",
            "name": "selected",
            "label": "drop-down box",
            "description": "description",
            "default": 200,
            "group": "group1",
            "settings": {
                "multiple": true,
                "options":[{"name": "A", "value": 100}, {"name": "B", "value": 200}]
            }
        }, {
            "type": "string",
            "name": "string",
            "label": "input box",
            "description": "description",
            "default": "ABC",
            "group": "group1"
        }],
    }
    

Codificar estes dados de controle de botão JSON em uma cadeia de caracteres JSON, em seguida, embrulhá-lo com`Tome a linguagem JavaScript como exemplo:

function main() {
    var btn = {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
    LogStatus("`" + JSON.stringify(btn) + "`")
}

Estes controles de botão também podem ser escritos em formulários de barra de status, por favor consulteGuia de sintaxepara exemplos pormenorizados.

A estrutura doinputO campo é consistente com a estrutura de um único controlo nogroupA seguir, uma descrição pormenorizada:

{
    "type": "selected",     // Control type (required field), supports the following settings: number, string, selected, boolean
    "name": "test",         // Name (required when used in group)
    "label": "topic",       // Title (required field)
    "description": "desc",  // Component tips
    "default": 1,           // Default value; if the settings field is not set in the current JSON structure, defValue is compatible and can be used instead of default
    "filter": "a>1",        // Selector. If this field is not set, no filtering (controls are displayed). If this field is set, no filtering (controls are displayed) occurs when the expression is true. Filtering occurs when the expression is false (controls are not displayed)
                            // For the selector, take the expression a>1 in the current example as an example, a refers to the value of the control with name a under the group field in the structure of type=button. This value is used to determine whether to filter.
    "group": "group1",      // Grouping
    "settings": { ... },    // Component configuration
}

Configuração do componentesettingsCada campo é descrito em pormenor:

  • settings.requiredSe esta opção é necessária.
  • settings.disabledSe desativar.
  • settings.min: válido quando:type=number, indicando o valor mínimo ou o comprimento mínimo da corda.
  • settings.max: válido quando:type=number, indicando o valor máximo ou o comprimento máximo da corda.
  • settings.step: type=number, válido quandorender=slider, indica o comprimento do degrau.
  • settings.multiple: type=selectedé válida, indicando que são suportadas várias seleções.
  • settings.customizable: type=selectedse for válida, indicando que a personalização é suportada; os usuários podem editar e adicionar novas opções diretamente no controle da caixa suspensa. Se a opção recentemente editada for selecionada, o nome da opção é usado em vez do valor representado pela opção quando a interação é acionada.
  • settings.options: válido quando:type=selected, indicando o formato dos dados da opção de selecção:["option 1", "option 2"], [{'name':'xxx','value':0}, {'name':'xxx','value':1}].
  • settings.render: Tipo de componente de renderização. Quando?type=number, settings.rendernão está definido (caixa de entrada de número por defeito), opcional:slider(banda deslizante),date(O selector de horas retorna o carimbo de hora). Quando?type=string, settings.rendernão está definido (caixa de entrada de linha única por defeito).textarea(entrada de várias linhas),date(O selector de tempo retorna anu-MM-dd hh:mm:ss),color(O selector de cores retorna #FF00FF). Quando?type=selected, settings.rendernão está definido (caixa suspensa padrão), opcional:segment(selector de segmentos).type=booleanatualmente tem apenas uma caixa de seleção padrão.

Suporta configurações bilíngues, por exemplo:'选项 | options'O sistema de controlo único será adaptado em função do ambiente linguístico actual.groupcampo como exemplo, o exemplo completo é:

{
    type:'selected',
    name:'test',
    label:'选项|options',
    description:'描述|description',
    default:0,                            // Here, the default value is set to 0, which means the value in the option {name:'xxx|yyy',value:0}
    filter:'a>1&&a<10',
    group:'分组|group',
    settings:{
        multiple:true,
        customizable:true,
        options:[{name:'xxx|yyy',value:0}]
    }
}
Configuração do componente Negociação de opções