 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Jul 16, 2008 12:46 am Assunto: Como gravar dados diferentes no mesmo form (Resolvido) |
|
|
Pessoal, um cliente meu pediu para ver se tem como no form de contas a pagar/receber deixar apenas um form só, em vez de usar 2 como eu estou usando.
Seguinte tenho um form para lancamentos das contas e outro para baixa das contas, então ele me pediu se poderia unificar em um form só.
Estou estudando um meio de fazer isso usando TabSheets
Mais como eu utilizo apenas uma tabela para incluir e baixar com um campo status aonde quando o lançamento já foi dado baixa ele assume outro tipo.
Então pesnei nesta forma aqui
| Código: | if PageControl1.Activepage = Tabsheet1 then
begin
ShowMessage('Modulo Tabela');
Abort;
end
else if PageControl1.Activepage = Tabsheet2 then
begin
{Grava apenas os lancamentos aqui}
try //começo do trecho try/except
if Trim(edtNr_Doc.Text) = '' then
begin
raise Exception.Create('Faltou preencher o campo Numero do Documento.' );
end
else
if not dsPadrao.DataSet.Active then
dsPadrao.DataSet.Open;
dsPadrao.DataSet.FieldByName('Status') := 'A';
dsPadrao.DataSet.Post;
edtNr_Doc.Enabled := False;
if dm.Transaction.Active = False then
dm.Transaction.Active := True;
dm.Transaction.CommitRetaining;
Dc_MessageDlg('Dados gravados com sucesso', mtInformation, [mbOk],0);
except
on E:Exception do
begin
if dm.Transaction.Active = False then
dm.Transaction.Active := True;
dm.Transaction.RollBack;
dc_MessageDlg('Ocorreu um erro neste processo. ' +#13#13 +'Erro gerado: '+#13+
E.Message + #13#13 + 'Todo o processo foi abortado!', mtError, [mbOk],0);
DSPadrao.DataSet.Cancel;
edtNr_Doc.Enabled := False;
Exit;
end;
end; //Final try/except
end
else if PageControl1.Activepage = Tabsheet3 then
{Grava apenas as baixas}
try //começo do trecho try/except
if Trim(edtNr_Doc.Text) = '' then
begin
raise Exception.Create('Faltou preencher o campo Numero do Documento.' );
end
else
if not dsPadrao.DataSet.Active then
dsPadrao.DataSet.Open;
dsPadrao.DataSet.FieldByName('Status') := 'P';
dsPadrao.DataSet.Post;
if dm.Transaction.Active = False then
dm.Transaction.Active := True;
dm.Transaction.CommitRetaining;
Dc_MessageDlg('Dados gravados com sucesso', mtInformation, [mbOk],0);
except
on E:Exception do
begin
if dm.Transaction.Active = False then
dm.Transaction.Active := True;
dm.Transaction.RollBack;
dc_MessageDlg('Ocorreu um erro neste processo. ' +#13#13 +'Erro gerado: '+#13+
E.Message + #13#13 + 'Todo o processo foi abortado!', mtError, [mbOk],0);
DSPadrao.DataSet.Cancel;
Exit;
end;
end; //Final try/except |
Então a pergunta: Será que desta forma vai dar certo?
Ou tem uma maneira pra fazer isso?
Alguma ideia pessoal? _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Editado pela última vez por adriano_servitec em Qui Jul 17, 2008 9:14 am, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
fbricc Novato

Registrado: Terça-Feira, 15 de Julho de 2008 Mensagens: 4
|
Enviada: Qui Jul 17, 2008 9:02 am Assunto: |
|
|
Bom dia,
não entendi direito, mais ao meu ver, vc poderia utilizar tabelas independentes para cadas tabsheet
flw |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|