DES:Padronizações
Índice
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.