a

Mestre / Detalhe

Neste exemplo será desenvolvido uma aplicação mestre/detalhe completa. Para construir esta aplicação serão criados dois formulários. O primeiro baseado na tabela orders (Master) e o segundo na tabela orders_details (Detalhe).

Criando o formulário Mestre

1. Crie uma nova aplicação do tipo formulário simples baseado na tabela orders.

2. No menu de aplicação acesse o item Select Fields.

   

3. Remova os seguintes campos: ShipVia, ShipRegion e ShipPostalCode

4. No menu de aplicação acesse a pasta Layout e clique no item Blocks.

   

5. Altere o nome e o label do bloco existente para General Info

6. Clique no botão Create New Block.

7. Informe para as propriedades Name e Label o valor Ship Info

   

8. Clique novamente no botão Create New Block.

9. Informe para as propriedades Name e Label o valor Order Details.

10. Edite as propriedades dos blocos criados de acordo com a imagem exibida abaixo:

   

11. No menu de aplicação acesse o item Select Fields e organize os campos de acordo com a tabela abaixo:

Block Field
General Info OrderID
CustomerID
EmplyeeID
OrderDate
RequiredDate
PriceOrder
Ship Info ShippedDate
ShipAdress
Freight
ShipCity
ShipState
ShipCountry
Order Details  

 

Criando o formulário detalhe

12. Crie uma novo formulário do tipo Editable grid view baseada na tabela order_details.

   

13. No menu de aplicação clique no item Select Fields.

   

14. Remova os campos OrderDetailsID e OrderID.

   

15. No menu de aplicação acesse a pasta Field e clique no campo ProductID.

16. Altere a propriedade Data Type para Select.

17. Ainda no campo ProductID acesse a guia de edição Edition Lookup.

   

18. Na propriedade SQL Select Statement insira o seguinte comando:

SELECT ProductID, ProductName
FROM products
ORDER BY ProductID

19. Altere a propriedade Allow negative value para Yes.

20. Ainda na pasta Field do menu de aplicação clique sobre o item New Field .

   

21. Na quantidade de campos informe 1 e clique no botão Next.

22. Na propriedade Type selecione Decimal e nas propriedades Name e Label informe Total. Em seguida clique no botão Create.

   

Criando métodos para o formulário detalhe

23. No menu de aplicação acesse a pasta Programming->Methods.

   

24. Crie um novo metodo chamado calculate_total

25. Insira o seguinte código para o metodo criado:

   

26. Crie um novo metodo chamado check_stock

27. Insira o seguinte código para o método criado:

   

28. Crie outro método chamado update_master

29. Insira o seguinte código para o método criado:

   

Criando eventos Ajax para o formulário detalhe

30. No menu de aplicação acesse a pasta Ajax Events.

   

31. Clique no item New Ajax Event.

32. Na propriedade Select the field to create an event selecione o campo Discount e na propriedade Select event for Ajax processing selecione o evento onChange. Clique no botão Create Event para finalizar.

   

33. No editor de código do evento faça uma chamada ao metodo calculate_total.

   

34. Crie um novo evento Ajax para o campo ProductID no evento onChange .

35. Insira o código exibido na imagem abaixo:

   

36. Crie um novo evento Ajax para o campo Quantity no evento onChange.

37. Insira o código exibido na imagem abaixo:

   

38. Crie um novo evento Ajax para o campo UnitPrice no evento onChange.

39. No editor de código do evento faça uma chamada ao metodo calculate_total.

   

Fazendo chamada dos métodos criados nos eventos do Formulário

40. Acesse a pasta Events no menu de aplicação (veja a imagem abaixo). Assim como foi feito para os eventos dos campos, nós iremos fazer as chamadas dos métodos nos eventos do formulário. Na tabela abaixo está a relação dos metodos que devem ser chamados em cada evento.

Evento Código
onBeforeInsert check_stock();
onAfterInsert update_master();
onBeforeUpdate check_stock();
onAfterUpdate update_master();
onAfterDelete update_master();
onLoadRecord check_stock();

   

41. Gere o código fonte do formulário detalhe. Para isto clique no botão Generate Source na barra de ferramentas do ScriptCase.

   

Criando a ligação entre o formulário Mestre e o Detalhe.

42. Volte para o formulário Mestre clicando sobre a aba de aplicações

   

43. No menu de aplicação acesse a pasta Detail Form e clique no item New Detail

   

44. Na propriedade Quantity informe 1 e clique no botão Next.

45. Nas propriedades Name e Label informe Details.

46. Para iniciar o Wizard de ligação clique sobre o botão Create Link

   

47. Selecione o formulário detalhe e clique no botão Next.

   

48. Na próxima etapa do wizard faça a ligação relacionando os campos OrderID dos dois formulários. Para finalizar clique no botão Save.