Jump to content

Archived

This topic is now archived and is closed to further replies.

Lab Design

Alterar de modo Insert para modo Edit/misto

Recommended Posts

Eu montando uma aplicação tipo pedidos on line, na realidade é lançamento de NFs do distribuidor onde cada nota terá diversos ítens entao seria como um carrinho onde os itens ficariam linkados ao header pela NF.

 

Eu já tenho pronto a class que trata do cliente e dos itens porém separadamente, mas eu gostaria de usar uma estrutura mais prática para os vendedores no núcleo distribuidor.

 

Seria tipo:

Página de lançamentos, link Novo Registro:

 

abre a página com os campos do cliente em branco (nao é obrigatório), o campo CNPJ seria um autoPostback que iria buscar na database os dados do cliente caso exista e se não permitir o cadastro naquele momento. so que ao executar o postback no cnpj, como eu faria para atribuir os dados do cliente ao form estando no modo Insert? No modo Edit ele faz automatico porque os dados estão num grid.

Logo abaixo dos dados do cliente eu teria que colocar um combo também autoPostBack que iria buscar na database os dados do produto e automaticamente criar uma linha com o id, a descrição e um campo para a pessoa colocar a quantidade e a medida que for disparando esse combo com produtos difentes, esses itens já estariam gravados na database linkados ao header.

 

Sei que no codebehind seria talvez mais fácil (não sei) sempre fiz isso em php mas em aspx to sentindo muito dificuldade por entender direito ainda como as coisas funcionam neste ambiente, quem chama quem....

 

eu já queimei a metade dos neuronios buscando uma solução mas ainda não surgiu nada prático. Os exemplos que aplicações que tenho aqui, nenhuma tem qualquer página semelhante a isso.

 

Bom não sei se me fiz entender direito mas na verdade eu queria resolver tudo numa única página ou seja, o cadastro do cliente (caso o distribuidor queira fazer), criar um header com os dados do cliente, data do lançamento, numero da nota fiscal, id do vendedor que está logado no momento e ainda permitir que o vendedor selecione outro vendedor para aquele lançamento, pois para cada nota lançada no sistema, o vendedor acumula pontos que serão convertidos em reais de tempos em tempos.

 

Se alguem tiver algum script de exemplo ou possa me dar algumas idéias possíveis usando os grid e os form sem recorrer ao codebehind eu agradeceria muito.

Share this post


Link to post
Share on other sites

Bom to tentando outra forma de resolver aqui.

 

a primeira é entrar numa pagina onde o vendedor poderá inserir um novo cliente e informar seu ID, nota fiscal e data de emissão. Esses dados vão constituir o header do movimento.

 

Ja ta funfando mas não consigo pegar o ID do header que retornou da SP. Ele aparece no class que que faz o insert tanto na tabela de clientes como n a tabela de movimentos, mas quando volta para o behind da pagina, não encontro esse valor pra fazer um redirect pra outra pagina, passando o Id do header.

 

No class eu fiz

 

[system.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjec

tMethodType.Insert, false)]

public static int InsertNFS(

int idUsuario,

string empresa,

string cnpj,

...

 

 

-- seta retorno

cmd2.Parameters.Add("@idMovto", SqlDbType.Int).Value = 0;

cmd2.Parameters["@idMovto"].Direction = ParameterDirection.Output;

 

-- grava e retorna o ID do header

using (con)

{

con.Open();

cmd2.ExecuteNonQuery();

idMovto = Convert.ToInt32(cmd2.Parameters["@idMovto"].Value.ToString());

return idMovto;

}

 

no code behind eu tenho essas tres funcoes:

 

protected void frmAdd_ItemCommand(object sender, FormViewCommandEventArgs e)

{

 

}

 

 

 

/// <summary>

/// Apos adicionar um ítem na Cliente, esconde a janela

/// </summary>

protected void frmAdd_ItemInserted(object sender, FormViewInsertedEventArgs e)

{

 

}

 

 

/// <summary>

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

 

protected void srcClientes_Inserted(object sender, ObjectDataSourceStatusEventArgs e)

{

}

 

 

 

protected void grdClientes_SelectedIndexChanged(object sender, EventArgs e)

{

 

}

 

Como eu poderia pegar o valor retornado pela funcao insert do class?

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.