Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Video: Rad Studio 2007-DBX4 e Firebird 2.0-Aplicação comercial de vendas do Inicio ao Fim-Parte 32-Criando layout da tela de venda
Nesta vídeo aula, criaremos todo o layout para que possamos ter uma idéia de como ficará a tela para efetuarmos as vendas.
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?
Título: Rad Studio 2007-DBX4 e Firebird 2.0-Aplicação comercial de vendas do Inicio ao Fim-Parte 32-Criando layout da tela de venda
Tempo: 16:19 min
Resumo: Após fazer a segunda otimização do sistema seguimos no nosso curso dando inicio a criação da tela de venda. Nesta vídeo criamos todo o layout para que possamos ter uma idéia de como ficara a tela que o usuário ira utilizar para efetuar as vendas. Foi criado um projeto separado para facilitar a compilação e o teste uma vez que o sistema em breve será modularizado para trabalhar com pacotes.
Metodologia de desenvolvimento do exemplo: A tela de venda começou a ser desenvolvida em um projeto separado. Isto foi necessário, pois se criássemos direto o pacote teríamos dificuldade de compilar e teste a aplicação de vendas. Para os controles de tela ficaram nas posições estabelecidas foi utilizado a propriedade Anchors.
Tecnologias utilizadas: RadStudio 2007, FireBird2.0, DBX4
Exemplos construídos: Tela de Venda
Palavras chaves: Delphi2007, DBX4, Anchors, Vendas.
Rodrigo Carreiro Mourão
Gestor de TI com especialização em gerência de projetos (PMI) e Governança de TI (ITIL e COBIT) pelo instituto Infnet. Embarcadero MVP e Instrutor certificado pela Borland. Graduando-se em Gestão de TI focada em negócios. Grande entusiasta do desenvolvimento orientado a objetos, padrões de projetos,...
17 COMENTÁRIOS
Bem 3 camadas é arquitetura sendo assim nada tem haver com 3 camadas, ou seja, você pode aplicar normalmente pois usar pacotes significa em modularizar, dividar sua aplicação para facilitar o Deploy.
Então é possivel sim basta você criar tanto o Servidor quanto o Cliente usando pacotes.
Quanto as aulas de DataSnap no 2009 já estão sendo montadas. Montei todo o roteiro e estou testando a aplicaçã. Em breve estarei postando .
Abs!!
2a-Abrir e carregar deste arquivo XML os fields, muito mais rápido.
2b-Carregar como hoje da base de dados/tabela e criar e gravar no arquivo de mesmo nome XML, os fields.
3-Ter uma tela para manunteção dos arquivos XML ou seja com as opções de 1-Reconstruir, 2-Excluir. Para uma eventual corrupção do Arquivo, ou atualização da base de dados.
Valeu...
Sorte.paz.produtividade
juan
Em primeiro lugar obrigado pelo contato, que bom que tem gostado das vídoes. Sua ideia realmente é muito bacana e até interessante de se implementar pois esta tecnica poderia ser empregada em outros locais. Porém do ponto de vista custo beneficio eu, no projeto atual, não vejo muitas vantagens uma vez que estamos pegando apenas metadados, ou seja, isso não depende da quantidade de registro que temos na tabela. Mas é claro que se não tiver que ir ao banco melhor. Porém o ganho não vai compensar o trabalho que teriamos para implementar a rotina.
Como lhe falei e ideia é muito válida sim, mas para que possamos colocar em prática neste projeto o "custo" nãio iria compensar. Na parte de venda eu irei falar de XML, como trabalhar off-line. Acredito que ja vai dar base que quem quiser implementar este metodo ai.
Mais uma vez obrigado pelo contato e pelo feedback.
Abs !!!!!!!!!!!!
sorte.paz
juan
Abs !!!
Boa tarde Rodrigo, tudo bom?
begin
PageControl1.ActivePage := Cadastro;
if not Ds.DataSet.Active then
Ds.DataSet.Open;
Ds.DataSet.Insert;
end;
begin
TAction(Sender).Enabled := Ds.DataSet.State in [dsInactive,dsBrowse];
end;
begin
if PageControl1.ActivePage = Consulta then
PageControl1.ActivePage := Cadastro
else
PageControl1.ActivePage := Consulta;
Provavelmente o DsTabela na tela que vc esta abrindo nao esta apontando para nenhum CDS. Atanção: apesar do erro ocorrer no FrmModelo lembre-se que o DsTabela tem que ser setado no form que esta abrindo, exempo, se erro e no frmcliente conecte o DsTabela no Form Cliente.
Abs!!!
function TDBXDynalinkDriverCommonLoader.Load(DriverDef: TDBXDriverDef): TDBXDriver;
begin
Result := nil;
if DriverDef.FDriverProperties[TDBXPropertyNames.LibraryName] <> '''' then
begin
try
LoadDriverLibraryAndMethodTable(DriverDef.FDBXContext, DriverDef.FDriverProperties);
Result := CreateDynalinkDriver;
FreeOldLibrary;
FMethodTable := nil;
finally
FreeAndNil(FMethodTable); // NO-OP if success because it is set to nil.
end;
end;
end;
Espero ter ajudado !!
Abs!!
Na splash das minhas videos tem o meu email, compacte e mande pra mim pra eu dar uma olhada !!!
Abs !!!
por enquanto esta saindo tudo certo com o treinamento, exceto uma dúvida que me surgiu a alguns instantes com relação ao master-detail. No sistema de matrículas que eu estou desenvolvendo eu tenho as tabelas de matricula, aluno, professor, idioma, nivel, turma e notas. creio que seja necessário a criação de tabelas auxiliares (ainda vou rever esse ponto), mas já de ante-mão, é possível a relação master-detail com mais de 2 conexões??
obrigado pela atenção!
Este estrutura master detail suporta se ano me engando 13 data set. Eu já cheguei a no máximo quatro:
Clientes -> Notas -> Faturas -> Duplicatas.
Fazendo as conexões corretamente não haverá problema algum !!!
Abs !!!
To assistindo as video aulas, tenho gostado bastante.
Estou começanda a me aventurar no Delphi a algum tempo, porém estou começando a criar uma aplicação em 3 camadas. Tudo estava sossegado até entrar no tão temido mestre/detalhe.
Ja procurei por muito materiais, mas todos com 2 camadas, o q torna tudo simples.
O que estou fazendo é o seguinte.
- Qdo do lado cliente dou o upate(0) la no servidor antes de gravar no banco eu pego o generator do cara.
- Porem qdo é mestre detalhe ele tbem faz isso, porem qdo chega no servidor o mestre é zero, ai vai pegar o generator bonitinho, porem o detalhe ainda continua com a ligação sendo zero.
- Ja li muitas materia POGs, que no OnNewRecord do cliente deixam o Id com -1 ou ja pegam o generator, mas se essa for a unica solução então terei q programar do lado cliente ? Se tiver que fazer isso então a arquitetura n camadas cai por terra.., não há o pq fazer em n camadas ?!
Existe alguma forma de contornar isso no servidor, pq não queria deixar codigo fonte no cliente.
Se vc tiver alguma materia para 3 camadas que possa ajudar eu agradeço !
Sem mais
Saul Gabeloni
Londrina, PR
O caminho e por ai !!
Abs!!
var
I: Integer;
begin
if DsDetail.DataSet.RecordCount > 0 then
begin
with DsDetail.DataSet do
begin
First;
while not EOF do
Delete;
TClientDataSet(DsDetail.DataSet).ApplyUpdates(0);
end;
end;
for I := 0 to Pred(FAcoes.ActionCount) do //esta dando erro nessa linha acsses violation nessa linha estou usando delfhi 2010
begin
with DsDetail.DataSet do
begin
Append;
FieldByName(''''''''''''''''NAME'''''''''''''''').AsString := TAction(FAcoes.Actions[I]).Name;
FieldByName(''''''''''''''''CAPTION'''''''''''''''').AsString := TAction(FAcoes.Actions[I]).Caption;
FieldByName(''''''''''''''''PREMISSAO'''''''''''''''').AsString := ''''''''''''''''F'''''''''''''''';
Post;
end;
end;
end;
Provavelmente ou o Action List não foi passado no create do form ou entao nao foi passado para o atributo FAcoes. REvise a video e compare com seu código.
Abs!!!

download

