Ir para conteúdo


Foto

Problema para carregar dados do grid no formulário de edição.


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

#1 gpand_utf

gpand_utf

    Iniciante

  • Membros
  • Pip
  • 6 posts

Postado 28 October 2017 - 17:46

Boa tarde Pessoal

 

Estou tentando carregar os dados do grid num formulário, para editar os dados.

Neste formulário tenho dois combobox, um datefield e dois textfield. 

O problema está nos combobox e no datefield que não carregam os dados do grid.

 

Como faço para postar o código aqui no fórum, podem me ajudar!?

 

Obrigado!



#2 Magno Carpes

Magno Carpes

    Iniciante

  • Membros
  • Pip
  • 5 posts
  • LocationRio Grande, Rio Grande do Sul, Brasil.

Postado 30 October 2017 - 09:11

Crie um fiddle para seu código e poste aqui para nós podermos entender e te ajudar.

 

https://fiddle.sencha.com/#view/editor



#3 gpand_utf

gpand_utf

    Iniciante

  • Membros
  • Pip
  • 6 posts

Postado 31 October 2017 - 19:18

Conforme mencionei anteriormente, nao consigo carregar os dados do grid com o botão editar (duplo click sobre o grid).

 

Agradeço se conseguirem me ajudar!!

 Abaixo o código do GRID, FORM e a implementação do Botão editar.

///GRID
Ext.define('TESTE2.view.main.ListaAtendimento', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.atendimentogrid',
    xtype: 'listAtendimento',

    requires: [
        'TESTE2.store.Atendimento'
    ],

    title: 'Atendimentos - Estética',

    store: {
        type: 'atendimento'
    },

    columns: [
        { text: 'ID',  dataIndex: 'idcliente' },
        { text: 'Cliente',  dataIndex: 'NOME', width: 400, align: 'rigth' },
        { text: 'Data', dataIndex: 'DATAATEND', width: 150, align: 'center', type: 'date'},
        { text: 'Serviço', dataIndex: 'DESCRICAO', width: 200, align: 'rigth' },
        { text: 'Tempo', dataIndex: 'TEMPO', width: 150, align:'center' },
        { text: 'Valor', dataIndex: 'VALOR', width: 150, align: 'center' }

    ],

    dockedItems:[
        {
            xtype: 'toolbar',
            dock: 'top',
            items:[
                {
                    xtype: 'button',
                    text:'Novo',
                    itemId: 'btnNovoAtend',
                    
                },
                {
                    xtype: 'button',
                    text:'Excluir',
                    itemId:'btnExcluirAtend'
                }
            ]
        }
    ]

    
});


#4 gpand_utf

gpand_utf

    Iniciante

  • Membros
  • Pip
  • 6 posts

Postado 31 October 2017 - 19:28

///FORMULARIO

Ext.define('TESTE2.view.main.AtendimentoForm',{
	extend: 'Ext.window.Window',
	alias: 'widget.atendimentoform',
	

	height: 350,
	width: 550,
	layout: 'border',
	title: 'Incluir Atendimento',
	
	items:[{
		xtype: 'form',
		region:'center',
		//bodyStyle:{"background-color":"#00BFFF"},
		bodyPadding: 10,
			defaults:{
				anchor: '100%'
			},
			items:[
				{	xtype: 'hiddenfield',
					name: 'idatendimento',
				},
				{
                  xtype: 'combobox',
                    padding: '5',
                    margin: '5 0 3 0',
                    width: '40%',
                    store: Ext.create('TESTE2.store.Cliente'),
                    name: 'CLIENTE',
                    fieldLabel: 'Cliente',
                    displayField: 'NOME',
                    valueField: 'CLIENTE',
                    loadingText: 'Carregando...',
                    emptyText: 'Selecione o cliente...',

                  },
				{
                  xtype: 'combobox',
                    padding: '5',
                    margin: '5 0 3 0',
                    width: '40%',
                    store: Ext.create('TESTE2.store.ServForm'),
                    name: 'SERVICO',
                    fieldLabel: 'Servico',
                    displayField: 'DESCRICAO',
                    valueField: 'SERVICO',
                    loadingText: 'Carregando...',
                    emptyText: 'Selecione o serviço...',

                  },
					{
						xtype: 'datefield',                        
                		name: 'DATAATEND',
                		value: 'DATAATEND',
                		format: 'd/m/Y',
                		submitformat: 'd-m-Y',           
                		fieldLabel: 'Data do Atendimento'
					},
					{
						xtype: 'textfield',
						name: 'TEMPO',
						fieldLabel: 'Tempo',
						allowBlank: false,
						margin: '5 0 3 0',
					},
					{
						xtype: 'textfield',
						name: 'VALOR',
						fieldLabel: 'Valor',
						allowBlank: false
						margin: '5 0 3 0',
					}
			]
		}],
	
	dockedItems:[
		{
			xtype: 'toolbar',
			dock: 'bottom',
			items:[
				{
					xtype: 'button',
					text:'Salvar',
					itemId: 'btnSalvarAtend'
				},
				{
					xtype: 'button',
					text:'Cancelar',
					itemId: 'btnCancelarAtend'
				}
			]
		}
	]

});


#5 gpand_utf

gpand_utf

    Iniciante

  • Membros
  • Pip
  • 6 posts

Postado 31 October 2017 - 19:29

     //Implementação Editar

    onEditClickAtend: function(grid, record, item, index, e, eOpts){
        var win = Ext.create('TESTE2.view.main.AtendimentoForm').show();   
        win.setTitle('Editar Atendimento');
        var form = win.down('form');
        form.loadRecord(record);
        console.log(record)

    },



#6 iso48

iso48

    Member Avançado

  • Membros
  • PipPipPip
  • 57 posts

Postado 05 November 2017 - 08:50

Olá gpand_utf.

 

Provavelmente faltará apenas um listener na grid para chamar o evento itemdblclick.

listeners:{
    itemdblclick:function(grid, record,  item,index, e, Opts){
      código aqui...
    }
}

Também pode utilizar um viewmodel e bind que será eventualmente mais versátil.

Aqui vai um exemplo utilizando um botão para carregar a window ou utilizando o evento itemdblclick na row da grid para o mesmo fim. 

Para exemplo tem dois textfields mas funciona para todo o tipo de campos.

 

Repare na declaração do viemodel, como o store é referenciado e no bind da grid, em especial na config selection e como ela é utilizada nos campos do form.

 

https://fiddle.sench...tor&fiddle/2994

 

Exemplo de uma combobox com bind com base numa combobox do seu código:

 xtype: 'combobox',
 padding: '5',
 margin: '5 0 3 0',
 width: '40%',
 name: 'SERVICO',
 fieldLabel: 'Servico',
 displayField: 'DESCRICAO',
 valueField: 'SERVICO',
 loadingText: 'Carregando...',
 emptyText: 'Selecione o serviço...',
 bind:{
   store: '{StoreServFormDeclaradoNoViewModel}',
   value: '{seleciona.SERVICO}
 }
 





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

0 membros, 0 visitantes, 0 membros anônimos