Bom dia! tenho um formulário que ao ser preenchido carrega a data de atualização (21/06/2017), gostaria que ao atualizar fosse atualizado um campo na tabela com o mês (ex: Junho) da data de atualização
Olá,
Podes nos dar maiores informações? Tipo, Qual banco de dados? Qual o tipo de campo no banco de dados?
Olá, obrigado pela ajuda! banco sql server e campo tido datetime
Bem, como eu não sei qual o formato no SC você definiu esse campo, eu faria assim:
- No evento OnAfterInsert daria um ECHO no teu campo de data, pra ver como o PHP está mostrando.
- Após isto, usaria o SUBSTR do PHP para pegar a parte do mês e faria o UPDATE no campo que precisas.
obrigado pela ajuda!
o campo está definido como Data Hora
sc_lookup (dataset, “select dta_atualizacao from Cad_Lancamento”);
$mes_atual = {dataset[0][0]};
echo “ATUALIZADO EM …”. $mes_atual;
wait();
ECHO = 2017-06-12 16:01:13.000
e agora? qual seria a configuração para a substr?
no evento OnAfterInsert
sc_lookup (dataset, “select dta_atualizacao from Cad_Lancamento”);
$mes_atual = {dataset[0][0]};
[glo_mes] = substr ($mes_atual, 5,2);
acho que é isso!
Exatamente!!! Deu certo?
Uma outra dica: sempre coloque a query em uma variável e daí coloque a variável dentro do sc_lookup, assim:
$cSql = “select dta_atualizacao from Cad_Lancamento”;
sc_lookup(dataset, $cSql);
$mes_atual = (dataset[0][0]);
[glo_mes] = substr($mes_atual,5,2);
valeu pela dica! até ai tudo bem
agora não sei como fazer o insert na tabela, pode ajudar nisso tbm?
Vai ser INSERT em outra tabela ou UPDATE na mesma?
na mesma tabela, onde vou utilizar esse campo para filtro
$cSql = “select dta_atualizacao from Cad_Lancamento”;
sc_lookup(dataset, $cSql);
$mes_atual = (dataset[0][0]);
[glo_mes] = substr($mes_atual,5,2);
$cUpdate = “UPDATE tabela SET mes = '”.[glo_mes]."’ WHERE id = ".{id}; // Isto supondo que o ID é a PK da tabela
sc_exec_sql($cUpdate);
sc_commit_trans();
Com a função date vc consegue extrair somente o mês de uma data:
[glo_mes] = date(‘m’, strtotime({dataset[0][0]}));
Boa lembrança, Flávia.
obrigado pela dica! toda contribuição é bem vinda
estou testando! retorno daqui a pouco
$cSql = “select dta_atualizacao from Cad_Lancamentos”;
sc_lookup(dataset, $cSql);
$mes_atual = (dataset[0][0]);
[glo_mes] = substr($mes_atual,5,2);
$cUpdate = “UPDATE Cad_Lancamentos SET mes_lancamento = '”.[glo_mes]."’ WHERE id_lancamento = “.{id_lancamento}.”;
sc_exec_sql($cUpdate);
sc_commit_trans();
poderia por gentileza explicar o porque dos parenteses [glo_mes] e chaves {id_lancamento} no comando update?
apresentou o erro, acho que me enrolei nas aspas
Parse error: syntax error, unexpected ‘[’ in C:\Program Files (x86)\NetMake\v8\wwwroot\scriptcase\app\FGFIN\form_contas_pagar\form_contas_pagar_apl.php on line 4026
Giba, corrige aqui:
//errado
$mes_atual = (dataset[0][0]);
//certo
$mes_atual = {dataset[0][0]};
Isto aqui está errado também:
$cUpdate = “UPDATE Cad_Lancamentos SET mes_lancamento = '”.[glo_mes]."’ WHERE id_lancamento = “.{id_lancamento}.”;
o certo é:
$cUpdate = “UPDATE Cad_Lancamentos SET mes_lancamento = '”.[glo_mes]."’ WHERE id_lancamento = ".{id_lancamento}; // Sem as aspas no final
Quanto a diferença de [] e {} é que [] é usado nas variáveis globais no SC. Já as {} são usadas quando são campos da aplicação. Veja em: http://www.scriptcase.com.br/docs/pt_br/v81/apendice/variaveis-no-scriptcase
Puxa vida, não tinha me dado conta desse também rsrsrs…valeu
Vou testar!