Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Scout/Tutorial/3.7/Minicrm/Code Types"
Line 51: | Line 51: | ||
To write and read the values provided by the Radio Button from the database, we need to adjust the | To write and read the values provided by the Radio Button from the database, we need to adjust the | ||
CompanyProcessService: | CompanyProcessService: | ||
+ | |||
+ | |||
+ | <source lang="java"> | ||
+ | public CompanyFormData create(CompanyFormData formData) throws ProcessingException { | ||
+ | if (!ACCESS.check(new CreateCompanyPermission())) { | ||
+ | throw new VetoException(Texts.get("AuthorizationFailed")); | ||
+ | } | ||
+ | SQL.selectInto("" + | ||
+ | "SELECT MAX(COMPANY_NR)+1 " + | ||
+ | "FROM COMPANY " + | ||
+ | "INTO :companyNr" | ||
+ | , formData); | ||
+ | SQL.insert("" + | ||
+ | "INSERT INTO COMPANY (COMPANY_NR, SHORT_NAME, NAME, TYPE_UID) " + | ||
+ | "VALUES (:companyNr, :shortName, :name, :companyTypeGroup)" | ||
+ | , formData); | ||
+ | return formData; | ||
+ | } | ||
+ | |||
+ | public CompanyFormData load(CompanyFormData formData) throws ProcessingException { | ||
+ | if (!ACCESS.check(new ReadCompanyPermission())) { | ||
+ | throw new VetoException(Texts.get("AuthorizationFailed")); | ||
+ | } | ||
+ | SQL.selectInto("" + | ||
+ | "SELECT SHORT_NAME, " + | ||
+ | " NAME," + | ||
+ | " TYPE_UID " + | ||
+ | "FROM COMPANY " + | ||
+ | "WHERE COMPANY_NR = :companyNr " + | ||
+ | "INTO :shortName," + | ||
+ | " :name, " + | ||
+ | " :companyTypeGroup" | ||
+ | , formData); | ||
+ | return formData; | ||
+ | } | ||
+ | |||
+ | public CompanyFormData store(CompanyFormData formData) throws ProcessingException { | ||
+ | if (!ACCESS.check(new UpdateCompanyPermission())) { | ||
+ | throw new VetoException(Texts.get("AuthorizationFailed")); | ||
+ | } | ||
+ | SQL.update("" + | ||
+ | "UPDATE COMPANY " + | ||
+ | " SET SHORT_NAME = :shortName, " + | ||
+ | " NAME = :name, " + | ||
+ | " TYPE_UID = :companyTypeGroup " + | ||
+ | "WHERE COMPANY_NR = :companyNr " | ||
+ | , formData); | ||
+ | |||
+ | return formData; | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | |||
Revision as of 08:11, 21 February 2011
The Scout documentation has been moved to https://eclipsescout.github.io/.
How to create Code Types
Code Types always contain of an ID and a list of values.
Open the shared node in Eclipse Scout and expand the tree until you reach the Enumerations node. Right-click on the node and choose "New Codetype…" menu.
The Code ID needs to be an unique number, which helps to identify the values belonging to the Code Type.
Always leave enough space between the Code Type's IDs, because the Code Type's values need IDs as well.
Idea is that the IDs of Code Types and their values are close together (e.g. Code Type 10000 and Values from 10001 to 10099, next Code Type 10100).
Enter the information into the Code Type form according to the picture:
Right-click on the newly created Code Type and choose New Code…
Increase the CompanyType Code Type's ID by 1 and assign it to the Code ID field. Give it a name like Customer.
Repeat these last two steps for another code called Supplier (Code ID: 10002).
How to use Code Types
So let's use the code type inside the Company Form: we are going to add a Radio Button Group containing those two values.
In a Radio Button Group only one item can be selected at a time. This is exactly what we need here, as we don't like a company being both, customer and supplier.
Back in Scout Explorer we expand the tree like: client > Forms > CompanyForm and right-click on MainBox to choose New Form Field…
Choose Radio Button Group as Type, give it a name like CompanyType and press Finish.
In the properties editor go to the property Code Type and choose the Code Type CompanyTypeCodeType we have previously created. That’s all we need to do to fill the Code Type's values into the Radio Button Group.
After adding this additional field, don't forget to update the form data: right-click on the CompanyForm and choose "Update Form Data"
To write and read the values provided by the Radio Button from the database, we need to adjust the
CompanyProcessService:
public CompanyFormData create(CompanyFormData formData) throws ProcessingException { if (!ACCESS.check(new CreateCompanyPermission())) { throw new VetoException(Texts.get("AuthorizationFailed")); } SQL.selectInto("" + "SELECT MAX(COMPANY_NR)+1 " + "FROM COMPANY " + "INTO :companyNr" , formData); SQL.insert("" + "INSERT INTO COMPANY (COMPANY_NR, SHORT_NAME, NAME, TYPE_UID) " + "VALUES (:companyNr, :shortName, :name, :companyTypeGroup)" , formData); return formData; } public CompanyFormData load(CompanyFormData formData) throws ProcessingException { if (!ACCESS.check(new ReadCompanyPermission())) { throw new VetoException(Texts.get("AuthorizationFailed")); } SQL.selectInto("" + "SELECT SHORT_NAME, " + " NAME," + " TYPE_UID " + "FROM COMPANY " + "WHERE COMPANY_NR = :companyNr " + "INTO :shortName," + " :name, " + " :companyTypeGroup" , formData); return formData; } public CompanyFormData store(CompanyFormData formData) throws ProcessingException { if (!ACCESS.check(new UpdateCompanyPermission())) { throw new VetoException(Texts.get("AuthorizationFailed")); } SQL.update("" + "UPDATE COMPANY " + " SET SHORT_NAME = :shortName, " + " NAME = :name, " + " TYPE_UID = :companyTypeGroup " + "WHERE COMPANY_NR = :companyNr " , formData); return formData; }