Olá,
O Jailton me passou um exemplo para o botão Run fiz e ficou dessa forma:
onScriptInit
// BOTÃO RUN
[x] = 0;
[registro_selecionados] = array();
OnRecord
$arr=[x];
[registro_selecionados][$arr]={Id}; // Campo da Grid
[x]++;
// Atualiza saldo do lançamento
$update_table = ‘lanctos’;
$update_where = “Id = ‘{Id}’”;
$update_fields = array(
“saldo = saldo - {Valor}”
);
$update_sql = ‘UPDATE ’ . $update_table
. ’ SET ’ . implode(’, ', $update_fields)
. ’ WHERE ’ . $update_where;
sc_exec_sql($update_sql);
// ==============================================================
// Atualiza saldo do conta corrente
$dtlan = date(‘Ymd’);
$update_table = ‘cta_corrente’;
$update_where = “cc_id = ‘{cc_id}’”;
$update_fields = array(
“cc_saldo_atual = cc_saldo_atual - {Valor}”,
“cc_dt_ult_lanc = ‘$dtlan’”
);
$update_sql = ‘UPDATE ’ . $update_table
. ’ SET ’ . implode(’, ', $update_fields)
. ’ WHERE ’ . $update_where;
sc_exec_sql($update_sql);
}
// ========================================================
$_historico_a = ‘Pagto do valor total do documento’;
$dtlan = date(‘Ymd’);
$insert_table = ‘lanctos_bx’;
$insert_fields = array(
‘id’ => “’{Id}’”,
‘cc_id’ => “’{cc_id}’”,
‘data’ => “’$dtlan’”,
‘valor’ => “’{Valor}’”,
‘historico’ => “’$_historico_a’”,
‘empresa_id’ => “’{empresa_id}’”
);
$insert_sql = ‘INSERT INTO ’ . $insert_table
. ’ (’ . implode(’, ‘, array_keys($insert_fields)) . ‘)’
. ’ VALUES (’ . implode(’, ', array_values($insert_fields)) . ‘)’;
sc_exec_sql($insert_sql);
// ============================================================
// Lançamento do pagamento do documento
$_historico_b = ‘Pagto do valor doc. num. ‘.{Doc}.’ de ‘.{nome_parc}.’.’;
$insert_table = ‘mov_ccorrente’;
$insert_fields = array(
‘cc_id’ => “’{cc_id}’”,
‘data’ => “’$dtlan’”,
‘valor’ => “’{Valor}’”,
‘historico’ => “’ $_historico_b’”,
‘tipomov_id’ => “‘2’”,
‘empresa_id’ => “’{empresa_id}’”
);
// Insert record
$insert_sql = ‘INSERT INTO ’ . $insert_table
. ’ (’ . implode(’, ‘, array_keys($insert_fields)) . ‘)’
. ’ VALUES (’ . implode(’, ', array_values($insert_fields)) . ‘)’;
sc_exec_sql($insert_sql);
sc_commit_trans();
onFinish
$qtde_registros=count([registro_selecionados]);
for ($_x=0; $_x<$qtde_registros; $_x++) {
$_Id = [registro_selecionados][$_x];
No botão Run tenho dois updates e dois inserts ambos em outras tabelas, quando seleciono um registro ele faz corretamento, porém quando seleciono mais que um ele só faz o último registro selecionado.