Ir para conteúdo


Foto

Formato de data diverge do configurado no model


  • Por favor, faça o login para responder
5 respostas neste tópico

#1 rafaelreuber

rafaelreuber

    Member Avançado

  • Membros
  • PipPipPip
  • 33 posts

Postado 03 July 2011 - 08:14

Olá,

    Me deparei com uma situação e acredito que  seja um bug. Seguinte, tenho uma aplicação que envia xml ao invés de json. Configurei, tanto no model quando no campo, o formato d/m/y. Independente disso, quando uso um writer do tipo xml, ele sempre envia num formato diferente do que configurei.

O Model:
Ext.define('Drover.model.Cliente',{
		extend: 'Ext.data.Model',
		
		fields: [
				        {name: 'id', type: 'int'},
				        {name: 'nome', type: 'string'},
					{name: 'cpfCnpj', type: 'int'},
					{name: 'rg', type: 'int'},
					{name: 'numero', type: 'int'},
					{name: 'orgaoExpedidor', type: 'string'},
					{name: 'dataExpedicao', type: 'date', dateFormat:'d/m/y'},
					{name: 'cidade', type: 'string'},
					{name:'logradouro', type: 'string'},
					{name:'bairro', type: 'string'},
				        {name: 'dataNascimento', type: 'date',dateFormat:'d/m/y'},
					{name: 'limiteCredito', type: 'float'}
		 ]
	
});

O Store:
Ext.define('Drover.store.Clientes',{
		extend: 'Ext.data.Store',
		
		model: 'Drover.model.Cliente',
		
		autoLoad: true,
		
		proxy: {
			type: 'ajax',
			api: {
				read 	: '/drover/clientes/lista',
				create  : '/drover/clientes/criar',
				update  : '/drover/cliente/update',
				destroy : '/drover/cliente/delete'
			},
			url: '/drover/clientes',
			 reader: {
				 type: 'json',
				 root: 'data',
				 sucessProperty: 'success'
			 },
			 writer: {
				    type: 'xml',
				    documentRoot: 'br.com.drover.entity.ClienteWrapper',
				    record: 'cliente',
		            writeAllFields: true,
		     }
		}

});

O campo no formulário:
...{
		        				name:'dataExpedicao',
		        				fieldLabel: 'Data de Expedição',
		        				xtype: 'datefield',
		        				flex: 3,
		        				labelWidth: 110,
                                                        format: 'd/m/y',
		        				margins: '0 0 0 6',
				        	},{
		        				name:'dataNascimento',
		        				fieldLabel: 'Data de Nascimento',
		        				xtype: 'datefield',
		        				flex: 3,
		        				labelWidth: 110,
		        				format: 'd/m/y',
		        				margins: '0 0 0 6',
				        	} ...


O XML:
<br.com.drover.entity.ClienteWrapper>
<cliente>
<id>0</id>
<nome>Antonio</nome>
<cpfCnpj>12312312</cpfCnpj>
<rg>0</rg>
<numero>0</numero>
<orgaoExpedidor></orgaoExpedidor>
<dataExpedicao>Tue Jul 05 2011 00:00:00 GMT-0300 (BRT)</dataExpedicao>
<cidade></cidade>
<logradouro>Rua A</logradouro>
<bairro>Monte Castelo</bairro>
<dataNascimento>Tue Jul 05 2011 00:00:00 GMT-0300 (BRT)</dataNascimento>
<limiteCredito>0</limiteCredito>
</cliente>
</br.com.drover.entity.ClienteWrapper>


#2 rafaelreuber

rafaelreuber

    Member Avançado

  • Membros
  • PipPipPip
  • 33 posts

Postado 04 July 2011 - 08:58

Na verdade o problema está no Model.

Quando executo a linha abaixo a data vem no formato especificado:
values = form.getValues();

Mas quando jogo esses valores no model, o módel configura a data como: Tue Jul 05 2011 00:00:00 GMT-0300 (BRT)
cliente.set(values);


#3 Nom4d3

Nom4d3

    Member Avançado

  • Membros
  • PipPipPip
  • 952 posts
  • LocationAraras/SP/Brasil

Postado 04 July 2011 - 11:12

ajuste o parametro submitFormat do seu campo de data par ao formato que vc deseja q ele seja enviado.

{name: 'dataNascimento', type: 'date', format: 'd/m/y', submitFormat: 'd/m/y'}

dateFormat nao existe.

por padrao o submitFormat = format.

eu aqui preciso setar os 2 pq prefiro q os dados chegem em padrao Y-m-d.

#4 rafaelreuber

rafaelreuber

    Member Avançado

  • Membros
  • PipPipPip
  • 33 posts

Postado 04 July 2011 - 12:00


Não existe?! Mas tem na documentação.

#5 rafaelreuber

rafaelreuber

    Member Avançado

  • Membros
  • PipPipPip
  • 33 posts

Postado 04 July 2011 - 12:19

http://docs.sencha.c.../Ext.data.Field


"dateFormat : String
Used when converting received data into a Date when the type is specified as "date".

A format string for the Ext.Date.parse function, or "timestamp" if the value provided by the Reader is a UNIX timestamp, or "time" if the value provided by the Reader is a javascript millisecond timestamp. See Ext.Date."

#6 Nom4d3

Nom4d3

    Member Avançado

  • Membros
  • PipPipPip
  • 952 posts
  • LocationAraras/SP/Brasil

Postado 05 July 2011 - 08:06

Isso q vc passou nao é o datefield. É apenas uma funcao usada pelo Model para converter strings em Date

O dateField é esse:
http://docs.sencha.c...form.field.Date




0 usuário(s) está(ão) lendo este tópico

0 membros, 0 visitantes, 0 membros anônimos