DES:Padronizações

De Wiki Unioeste NTI
Ir para: navegação, pesquisa

Tabela de conteúdo

Padronização para implementação em Delphi

Problemas com ClientDataSet

Usando query que possui 'inner join' para inserção

Cenário: utilização de Query, DataSetProvider e ClientDataSet para salvar dados em uma tabela, onde o SQL utilizado possui um join com outra tabela qualquer Problema: ao salvar os dados, ocorre um erro devido ao sistema tentar inserir dados nas tabelas que participam do join, ao invés de inserir apenas na tabela que se deseja inserir. Solução: atribuir código de update, insert, delete no Query; colocar chamada no evento 'GetTableName' do DataSetProvider, indicando ao provider qual tabela ele deve usar para salvar os dados, conforme o exemplo:

if DataSet = oT_PssFisica then 
TableName := 'PssFisica'
else
if DataSet = oQ_PssFscVinculo then
TableName := 'Rlc_PssFisica_Vinculo'

Documento perdido

procura-se documento perdido "\\Cacsr-02\ftp desenvolvimento\Padrões\Padrões.doc"


Se alguém tiver notícias deixe recado em minha mesa.

Acesso ao Help On-line desenvolvido nas páginas de documentação Wiki

Por Vinícius Moll em 18/12/2006.

No sistema SGRH foi desenvolvido um mecanismo de acesso às páginas Wiki.

Os Passos para a implementação nos demais sistemas desenvolvidos em Delphi estão descritos a seguir:

  • Em SGRHTypes foi definida a constante:
  const HelpAdrress = 'cac-php/wiki/index.php/SUP:SGRH:'; //Acesso ao Help On-line
  • No Frame de botões de Cadastro (oFR_BotoesCadastro), no Uses da unit deve-se colocar:
  ShellAPI {Para acessar o Wiki}
  • Na seção public da Unit do Frame coloquei:


  procedure JumpTo(const aAdress: String);//Para acessar o Wiki


  • Depois ainda na unit do Frame de Botões de Cadastros coloquei o procedimento propriamente dito, fazendo:


//Chamar as Páginas da Documentação Wiki
procedure ToFR_BotoesCadastro.JumpTo(const aAdress: String); var buffer: String; begin

  buffer := 'http://' + aAdress;
  ShellExecute(Application.Handle, nil, PChar(buffer), nil, nil, SW_SHOWNORMAL);

end;

  • Na lista de ações do ActionList deste frame coloquei em aHelp as seguintes instruções no evento Execute:


//Chamar o JumpTo que acessa o Help On-line
procedure ToFR_BotoesCadastro.aHelpExecute(Sender: TObject); begin

  if Screen.ActiveForm.Name <>  then
     JumpTo(HelpAdrress+Screen.ActiveForm.Name)
  else
     ovSB_Ajuda.click;

end;


  • Depois, dentro do Frame eu pego o nome do Form que está ativo com o código mostrado a seguir:


  Screen.ActiveForm.Name



  Obs.: Para funcionar corretamente, é necessário que existam as páginas de documentação de apoio ao usuário com o nome do Form que corresponde a tela de cadastro utilizada pelo usuário.
Ferramentas pessoais
Espaços nominais
Variantes
Ações
Navegação
Ferramentas