Criar campo select ultimos 6 meses

Boa tarde!

Estou precisando criar um campo Select com os últimos 6 meses sem usar dados de uma tabela tem como eu criar esse campo?

Qual é o banco de dados?

Olá Kleber se os meses forem fixos e bem definidos você pode está utilizando um campo do tipo Select Manual, segue imagem detalhando a opção:

Com essa opção você irá conseguir escolher valores que não existem na sua tabela e atribuir uma “Chave” para um determinado “valor” -> Label

Se li bem, o colega pede os últimos 6 meses, então não pode ser um select manual, pois esse é estático.

crie uma view com esse sql abaixo e use a view direto no select com lookup automático

select concat(YEAR(ADDDATE(NOW(), INTERVAL -1 MONTH)),'-',right(concat('0',MONTH(ADDDATE(NOW(), INTERVAL -1 MONTH))),2)), concat(right(concat('0',MONTH(ADDDATE(NOW(), INTERVAL -1 MONTH))),2),'/',YEAR(ADDDATE(NOW(), INTERVAL -1 MONTH))) union all select concat(YEAR(ADDDATE(NOW(), INTERVAL -2 MONTH)),'-',right(concat('0',MONTH(ADDDATE(NOW(), INTERVAL -2 MONTH))),2)), concat(right(concat('0',MONTH(ADDDATE(NOW(), INTERVAL -2 MONTH))),2),'/',YEAR(ADDDATE(NOW(), INTERVAL -2 MONTH))) union all select concat(YEAR(ADDDATE(NOW(), INTERVAL -3 MONTH)),'-',right(concat('0',MONTH(ADDDATE(NOW(), INTERVAL -3 MONTH))),2)), concat(right(concat('0',MONTH(ADDDATE(NOW(), INTERVAL -3 MONTH))),2),'/',YEAR(ADDDATE(NOW(), INTERVAL -3 MONTH))) union all select concat(YEAR(ADDDATE(NOW(), INTERVAL -4 MONTH)),'-',right(concat('0',MONTH(ADDDATE(NOW(), INTERVAL -4 MONTH))),2)), concat(right(concat('0',MONTH(ADDDATE(NOW(), INTERVAL -4 MONTH))),2),'/',YEAR(ADDDATE(NOW(), INTERVAL -4 MONTH))) union all select concat(YEAR(ADDDATE(NOW(), INTERVAL -5 MONTH)),'-',right(concat('0',MONTH(ADDDATE(NOW(), INTERVAL -5 MONTH))),2)), concat(right(concat('0',MONTH(ADDDATE(NOW(), INTERVAL -5 MONTH))),2),'/',YEAR(ADDDATE(NOW(), INTERVAL -5 MONTH))) union all select concat(YEAR(ADDDATE(NOW(), INTERVAL -6 MONTH)),'-',right(concat('0',MONTH(ADDDATE(NOW(), INTERVAL -6 MONTH))),2)), concat(right(concat('0',MONTH(ADDDATE(NOW(), INTERVAL -6 MONTH))),2),'/',YEAR(ADDDATE(NOW(), INTERVAL -6 MONTH)))

Pode também criar a lista com php e escrever no componente select com jquery.

//id_sc_field_jquery é o ID do Elemento do Componente Select de nome jquery (criado como campo manual)
[onload]

$meses = $_SESSION['scriptcase']['sc_tab_meses']['int'];

$dt = new DateTime();
$_opt = '<option></option>';

for ($i = 1; $i <= 6; $i++) {
	$dt->sub(new DateInterval("P1M"));
	$dtMes 	= $dt->format('m');
	$dtAno	= $dt->format('Y');
    $_opt.="<option value=\"{$dtAno}-{$dtMes}\">{$meses[(int) $dtMes -1]}/{$dtAno}</option>";
}

$jq="$('#id_sc_field_jquery').html('{$_opt}')";
sc_ajax_javascript($jq);	

Na prática:

TAGS: HAROLDO, SELECT, DINAMICO, SQL, LOOKUP, AUTOMATICO, JQUERY

3 Curtidas

@Costenaro, estava quase no caminho certo …

1 Curtida

Pois é, acabei apagando por isso, li rápido e não tinha compreendido direito, fui ver se conseguia fazer a lógica da view hehehe

1 Curtida

Aroldo, e isso mesmo, muito obrigado pela ajuda.
E isso mesmo que preciso.

Obrigado João Pedro.

2 Curtidas