Oct 23

Processos e Lançamentos.

Estas são sem dúvida duas das caracteristicas mais importantes do gas o conceito de processos e lançamentos vem sendo utilizado com sucesso desde as versões DOS do produto, e não poderiam faltar no GAS WEB.

A definição dos processos e lançamentos que será feita pelo programador/Projetista não terá muita diferença da forma como é feito hoje, você escolhe a tabela o campo que vai receber estes lançamentos ou processos e pronto.

Do ponto de vista técnico muda bastante coisa.

Os processos e lançamentos são agora uma classe chamada DATAPROCESSOS dentro do GAS esta classe é instanciada como um objeto e são passados valores pra que então o processamento seja executado.

abaixo um pedaço do código deta classe

static public void ExecutaProcesso(string vgTabelAlvo, string vgCampoAlvo, string vgValor, string vgCampoRelacao, DataAccessObject Dao)

{

ExecutaProcesso(
new Processo[] { new Processo(vgTabelAlvo, vgCampoAlvo, vgValor, vgCampoRelacao) }, Dao);

}

/// <summary>

/// Executa varios processos ao mesmo tempo

/// </summary>

/// <param name="vgProcessos">Um array com varios processos</param>

/// <param name="Dao">Classe de dados usada para fazer o processo</param>

static public void ExecutaProcesso(Processo[] vgProcessos, DataAccessObject Dao)

{

string vgSql = "Update " + vgProcessos[0].TabelaAlvo + " set ";foreach (Processo vgProcesso in vgProcessos)

{

vgSql += vgProcesso.CampoAlvo +
" = " + vgProcesso.Valor + ", ";

}

vgSql = vgSql.Trim(' ').Trim(',') + " where " + vgProcessos[0].CampoRelacao;

try

{

Dao.ExecuteNonQuery(vgSql);

}

catch (Exception e)

{

throw e;

}

}

/// <summary>

/// Lançamento que faz insert em outra tabela

/// </summary>

/// <param name="vgLancamentos">Array de lancamentos a serem feitos</param>

/// <param name="Dao">Classe de dados usada para fazer o lançamento</param>

static public void ExecutaLancamentoInsert(Lancamento[] vgLancamentos, DataAccessObject Dao)

{

string vgSql = "Insert into " + Utility.PoeColAspas(vgLancamentos[0].TabelaAlvo) + " ";

string vgCampos = "(";

string vgValores = " VALUES (";foreach (Lancamento vgLancamento in vgLancamentos)

{

vgCampos += Utility.PoeColAspas(vgLancamento.CampoAlvo) + ", ";vgValores += vgLancamento.Valor +

", ";

}

vgCampos = vgCampos.TrimEnd(
' ').TrimEnd(',') + ")";vgValores = vgValores.TrimEnd(' ').TrimEnd(',') + ")";

vgSql += vgCampos + vgValores;

try

{

Dao.ExecuteNonQuery(vgSql);

}

catch (Exception e)

{

throw e;

}

}

/// <summary>

/// Lançamento que faz update em outra tabela que ja havia recebido um lançamento

/// </summary>

/// <param name="vgLancamentos">Array de lancamentos a serem feitos</param>

/// <param name="vgCodLan">Codigo do lançamento feito anteriormente</param>

/// <param name="Dao">Classe de dados usada para fazer o lançamento</param>

static public void ExecutaLancamentoUpdate(Lancamento[] vgLancamentos, string vgCodLan, DataAccessObject Dao)

{

string vgSql = "Update " + Utility.PoeColAspas(vgLancamentos[0].TabelaAlvo) + " set ";foreach (Lancamento vgLancamento in vgLancamentos)

{

vgSql +=
Utility.PoeColAspas(vgLancamento.CampoAlvo) + " = " + vgLancamento.Valor + ", ";

}

vgSql = vgSql.TrimEnd(' ').TrimEnd(',') + " where [cod~lan] = '" + vgCodLan + "'";

try

{

Dao.ExecuteNonQuery(vgSql);

}

catch (Exception e)

{

throw e;

}

}

Estes processamentos e lançamentos são realizados no sevidor , por serem ações que alteram dados no banco de dados.

No próximo post vamos falar um pouco sobre como funcionam as fórmulas no GAS WEB

 

Add comment




biuquote
Loading