This tutorial shows how to develop an application for letting users open and submit a new ticket, share tasks with deadlines, and see their task schedule. Users will be able to add messages of any issue or request.
▶️ Watch Now: Task Management
──────────────────────────────
Design Your Application
In this example, we will create 4 different forms to cover functionality:
Task Identification: Form to be created for the task identifications.
Variable Definition: Form to be created for the variable definition.
Activites: Form to be created for the activities.
Canban: Form to be created for the canban.
──────────────────────────────
Please keep in mind, Xpoda Studio will create fields at the database right after you click the ‘’ Save ’’ button from the toolbar. To be sure, use the‘’ Save ’’ button frequently or you may lose data.
Developing Application
Now that we designed our application data and UI, it is time to develop the application using XPoda Studio. Login to XPoda Studio and add a new form.
──────────────────────────────
Task Type: Any request/issue.
Task Title: Name of the issue/request.
Status: Status of the task (new, in progress, done, canceled, etc.).
Comments: Some additional notes.
Deadline: A specific time that given a ticket.
Priority: To choose a priority.
Responsible: The person responsible for the ticket.
Attachment: Add any additional file.
GridListe_1: Messages that are submitted by someone.
Submit Activity: Any work/request to the project.
Hours: Hour of work of the task.
Percentage: Percent of work of the task.
UserTableID: To show off linked messages to tasks.
DUID: To update all forms when the form opened as a pop-up.
Buttons
Submit: To submit the new message/activity.
Add a new form and name it "Task Identification". From the toolbar add "Task Type”, "GridListe_1”, "Task Title", "Comments", "Status", "Attachments", “Deadline”, “Responsible”, “Priority”, “Message”, “Hours”, “Percentage”, “UserTableID”, “DUID”, “Submit”. Please notice Hours, Percentage, UserTableID, DUID are a numeric field.
Firstly, we should give a name to our table and name it as “TM_TASKS” and also above the table name you should see the name and type in that field “Task_Identification”.
Actions in This form
- The form is reached as a pop-up, we need to create actions to close after saving/deleting. When the “Task_Identification” name selected you need to click "Add New Action" to do this. Type of Action should be " After recording". Operation will be " Close form" because we want to close the window after each registration when the form is opened as a pop-up. The second action will be added for the same purpose after the record is deleted. The only difference is that the action type should be "After record is deleted".
Authorities in This form
- When the form is opened, we need to create an authority to hide some fields from users. When the “Task_Identification” name selected you need to click "Add New Authority" to do this. Type should be " Authority of field". Type of authority will be " It can not see fields". Fields will be choosed “lbl_13 - UserTableID”, “UserTableID”, “lbl_16 - DUID” and “DUID”. Users Type will be choosed “All users”.
Task Type Field
Now we’re going to add a Drop Down Box to pull the data out of our database. First, add a drop down box and name it as “Task Type” in both fields. In order to pull out the data from our database. When “Task Type” clicked you should switch the field type to SQL Query. In query box enter following query;
SELECT
TM_VARIABLE.UserTableID,
TM_VARIABLE.Name
FROM dbo.TM_VARIABLE WITH (NOLOCK)
WHERE TM_VARIABLE.Type = '1'
Title Field
After that, we continue adding the Text Box and name it as “Task Title” to give the issue/request a name.
Actions in This field
When the icon that is on field is clicked, we could show off all records. When the “Task_Title” field selected you need to click "Add New Action" to do this. Type of Action should be " Keyboard imput". Access will be “F10”. Operation will be “Open form (list)”. Condition will be “In new window”. Value area will be “all form” because when users click any row we need to update all form and show off record.
In query box enter following query;
SELECT
TM_TASKS.UserTableID,
TM_TASKS.Task_Title AS Title,
TM_TASKS.Comments,
TM_TASKS.Deadline,
TM_VARIABLE.Name AS Status, XPODA_CLIENT_USERS.UserFullName AS Responsible
FROM dbo.TM_TASKS WITH (NOLOCK) LEFT OUTER JOIN dbo.TM_VARIABLE WITH (NOLOCK) on
TM_TASKS.Status = TM_VARIABLE.UserTableID LEFT OUTER JOIN dbo.XPODA_CLIENT_USERS
WITH (NOLOCK) on TM_TASKS.Responsible = XPODA_CLIENT_USERS.UserID
Status Field
Now we’re going to add a Drop Down Box to pull the data out of our database. First, add a drop down box and name it as “Status” in both fields. In order to pull out the data from our database. When “Status” clicked you should switch the field type to SQL Query. In query box enter following query;
SELECT
TM_VARIABLE.UserTableID,
TM_VARIABLE.Name
FROM dbo.TM_VARIABLE WITH (NOLOCK)
WHERE TM_VARIABLE.Type = '6'
Comment Field
In order to explain what the project and/or issue/request about. To be able to do this we need to add a Text Box in the form and name it as “Comments”.
Deadline Field
We also need to give the deadline to the project and in order to do that; we add a Date field from the tool box on the left pane and name it as “Deadline”.
Priority Field
Now we’re going to add a Drop Down Box to pull the data out of our database. First, add a drop down box and name it as “Priority” in both fields. In order to pull out the data from our database. When “Priority” clicked you should switch the field type to SQL Query. In query box enter following query;
SELECT
TM_VARIABLE.UserTableID,
TM_VARIABLE.Name
FROM dbo.TM_VARIABLE WITH (NOLOCK)
WHERE TM_VARIABLE.Type = '11'
Responsible Field
After that we’re going to add a Drop Down Box to pull the data out of our database. First, add a drop down box and name it as “Responsible” in both fields. In order to pull out the data from our database. When “Responsible” clicked you should switch the field type to SQL Query. In query box enter following query;
SELECT
XPODA_CLIENT_USERS.UserID,
XPODA_CLIENT_USERS.UserFullName
FROM dbo.XPODA_CLIENT_USERS WITH (NOLOCK)
Attachments Field
We may want to identify the issue with the files (images, docs etc.) and make our issue/request more understandable. In order to do that we should add “Add File” field from the left side pane and name it as “Attachments” in both fields.
GridListe_1 Field
Now we want to show off messages of task that are submitted by users in selected task. In order to do that we need to another Grid List from the tool box and name it as “GridListe_1”. In query box enter following query;
SELECT
TM_ACTIVITIES.UserTableID,
TM_ACTIVITIES.Message,
TM_ACTIVITIES.Hours,
TM_ACTIVITIES.Percentage
FROM dbo.TM_ACTIVITIES WITH (NOLOCK)
WHERE TM_ACTIVITIES.Task_ID = '$PUserTableID'
Message Field
With that being said, we will use this field to write a task-related message / request. In order to do that, we need to add a Text Box and name it as “Message” in the left field. We can determine field length more than other text boxes. Please notice text box "Form only" property and "multi line" property must be select "yes".
Hours Field
We will use this field to work time. In order to do that, we need to add a Hour and name it as “Hours” in the left field. Please notice text box "Form only" property must be select "yes".
Percentage Field
We will use this field to work time. In order to do that, we need to add a Numeric Box and name it as “Percentage” in the left field. Please notice text box "Form only" property must be select "yes".
UserTableID Field
We will use this field to update activities list and show off messages of task. Please notice numeric box "Form only" property must be select "yes".
Actions in This Field
- We want to show off all messages of task. When the “UserTableID” name selected you need to click "Add New Action" to do this. Type of Action should be " When value changes". Operation will be " Update value". Value area will be “GridListe_1”.
DUID Field
We will use this field to linked for canban form. We will update this form When users select any task for add attachment or update task fields from canban form. Please notice numeric box "Form only" property must be select "yes".
Actions in This Field
- When the “DUID” name selected you need to click "Add New Action" to do this. Type of Action should be " When value changes". Operation will be " Update value". Value area will be “all form”. In SQL query field;
SELECT * FROM TM_TASKS WHERE UserTableID = '$PDUID$'
Buttons
“Submit” Button
After we select any task and filled up message, hours and percentage we need to save this activity to be able to see by any member of the task or task manager. In order to do that we need to add a Button from the left side pane and name it as “Submit”. Now, we should add a new action to make the button work. While this button selected, from Actions pane (right side pane), select Add New Action and select Type of Action value as "When clicked" and Operation value as “Open form (linked)” then save the action to other form.
Actions in This Field
- We want to save activity/request of task when the “Submit” button clicked. In order to do this, we should create a new action. When the “Submit” button selected, you need to click “Add New Action” to do this. Type of Action should be "When clicked" to handle button click. Operation will be "Open Form (linked)". Project will be “Task Management” and Form will be Activities. We must do match two forms (Task Identification - Activities). Please notice “save when turned on” and “Form hide” properties. these properties must be selected "yes" because users do not need to see "activities" form. We will save all messages in the "activities" form. Mapping text;
Message|0|Message
Hours|0|Hours
Percentage|0|Percentage
UserTableID|0|Task_ID
(don’t forget to hit save button on the same pane and on the top of the software to save everything in the form.)
- Let's save and run our app to see changes/newly added forms. -
──────────────────────────────
Name: Name of the variable.
Type: Types of variable (task type, status, priority, etc.)
GridListe_1: All records.
Add a new form and name it "Variable Definition". From the toolbar add "Name”, "Type", "GridListe_1.
Firstly, we should give a name to our table and name it as “TM_VARIABLE” and also above the table name you should see the name and type in that field “Variable_Definition”. We do not need to prepared design because users will not see this form. We will use records of this form in the Task Identification form.
Actions in This form
- When the form open we want to show off records. When the “Variable_Definition” name selected you need to click "Add New Action" to do this. Type of Action should be " When the form is opened". Operation will be " Update value".
Name Field
After that, we continue adding the Text Box and name it as “Name” to give the variable a name.
Type Field
We continue adding the Drop Down Box and name it as “Type” to select heading to the variable. In order to pull out the data from our database. When “Task Type” clicked you should switch the field type to SQL Query. In query box enter following query;
SELECT
TM_VARIABLE.UserTableID,
TM_VARIABLE.Name
FROM dbo.TM_VARIABLE WITH (NOLOCK)
WHERE TM_VARIABLE.Type = ''
GridListe_1 field
Finally, we adding the List and name it as “GridListe_1” to show off all records. In query box enter following query;
SELECT
V1.UserTableID,
V1.Name,
V2.Name
FROM dbo.TM_VARIABLE AS V1 WITH (NOLOCK)
LEFT JOIN dbo.TM_VARIABLE AS V2 WITH (NOLOCK) ON V2.UserTableID = V1.Type
(please don’t forget to hit save button on the same pane and on the top of the software to save everything in the form.)
- Let's save and run our app to see changes/newly added forms. -
──────────────────────────────
Name: Name of the variable.
Type: Types of variable (task type, status, priority, etc.)
GridListe_1: All records.
Add a new form and name it "Activities". From the toolbar add "Name”, "Type", "GridListe_1.
Firstly, we should give a name to our table and name it as “TM_ACTIVITIES” and also above the table name you should see the name and type in that field “Activities”. We do not need to prepared design because users will not see this form. We will use records of this form in the Task Identification form.
Actions in This form
- When the form saved we want to close window. This form will be use as pop-up. When the “Activities” name selected you need to click "Add New Action" to do this. Type of Action should be " After recording". Operation will be " Close form".
Message Field
After that, we continue adding the Text Box and name it as “Message” to save messages. We must set message field length to 500 because linked forms properties must be same.
Hours Field
We will use this field to work time. In order to do that, we need to add a Hour and name it as “Hours” in the left field.
Percentage Field
We will use this field to percent of task complited. In order to do that, we need to add a Numeric Box and name it as “Percentage” in the left field.
Task ID Field
We will use this field to linked ID of task. In order to do that, we need to add a Numeric Box and name it as “Task ID” in the left field.
(please don’t forget to hit save button on the same pane and on the top of the software to save everything in the form.)
──────────────────────────────
ListCard_1: All new tasks.
GroupBox_1: Cards to Identified of task (Responsible,Comment,Task Type ect.).
ListCardCon_1: All tasks which is status “In Progress”.
ListCardCon _2: All tasks which is status “Done”.
ListCardCon _3: All tasks which is status “Canceled”.
GridList_1: Messages that are submitted by someone.
Message: Any work/request to the task.
Hours: Hour of work of the task.
Percentage: Percent of work of the task.
UserTableID: Linked messages to task.
DUID: Update all form when the form opened as a pop-up.
Buttons
Submit: Submit the new message/activity.
New Task: Define new task.
Add a new form and name it "Canban". From the tool bar add " ListCard_1”, " ListCardCon_1”, " ListCardCon_2”, " ListCardCon_3”, " GroupBox_1”, "GridListe_1”, “Message”, “Hours”, “Percentage”, “UserTableID”, “DUID”, “Submit”, “New Task”. Please notice Hours, Percentage, UserTableID, DUID are a numeric field.
Firstly, we do not need to give a name to our table because we will use this form for list all tasks. You should give a name for users
Actions in This form
- We want to show off all tasks when form is opened. So we will add action to update the task list. When the “Canban” name selected you need to click "Add New Action" to do this. Type of Action should be " When the form is opened". Operation will be " Update value".
Authorities in This form
- When the form is opened, we need to create an authority to hide some fields from users. When the “Canban” name selected you need to click "Add New Authority" to do this. Type should be " Authority of field". Type of authority will be " It can not see fields". Fields will be choosed “lbl_13 - UID”, “UID”, “lbl_8 - DUID” and “DUID”. Users Type will be choosed “All users”.
ListCard_1 Field
We will show off all tasks which is status "New" in this list. In order to do that we need to a List (Card) from the tool box and name it as “ListCard_1”. In query box enter following query;
SELECT
TM_TASKS.UserTableID,
TM_TASKS.Task_Title,
TM_VARIABLE.Name AS TaskType,
TM_TASKS.Comments,
XPODA_CLIENT_USERS.UserFullName AS Responsible,
dbo.TM_TASKS.Status
FROM dbo.TM_TASKS WITH (NOLOCK) LEFT OUTER JOIN dbo.TM_VARIABLE WITH (NOLOCK) on
TM_TASKS.Task_Type = TM_VARIABLE.UserTableID LEFT OUTER JOIN dbo.XPODA_CLIENT_USERS
WITH (NOLOCK) on TM_TASKS.Responsible = XPODA_CLIENT_USERS.UserID
Actions in This Field
- We will update UID field When the card selected in list . And we will use ID for activities of task. When the “ListCard_1” name selected you need to click "Add New Action" to do this. Type of Action should be " When the row is chanced". Operation will be " update value". Value area will be “UID”. SQL query field is;
SELECT ‘$PUserTableID$’
GroupBox_1 Field
After that we will changed “groupbox_1” heading as “$PResponsible$”. And we will add labels as "$PTask_Title$", "$PComments$" “$PTaskType$”. Last group item will be a button. these labels and heading will show off every one of task card. Button will be used for edit to selected task card. Please notice label names and query (in ListCard_1) name must be same.
Actions in This Field
- We will update DUID field When button clicked . And we will use ID for activities of task. When edit button selected in “GroupBox_1” you need to click "Add New Action" to do this. Type of Action should be " When the row is chanced". Operation will be " update value". Value area will be “DUID”. SQL query field is;
SELECT ‘$PUserTableID$’
ListCardCon_1 Field
After the List(Card) tool, we will show off all tasks which is status "In Progress" in this list. In order to do that we need to a List Card Connected from the tool box and name it as “ListCardCon_1”. After that we must specified linked field which is name Status in "ListCard_1" query. Values field must be "In Progress*8" because we must filter task status.
Actions in This Field
Action 1: When users drag and drop task card in this field we must update task status. So we add new action for update. When the “ListCardCon_1” name selected you need to click "Add New Action" to do this. Type of Action should be Record is added". Operation will be " update value". Value area will be “itself”. SQL query field is;
UPDATE TM_TASKS SET Status=8 WHERE UserTableID = '$PUserTableID$
Action 2: We will update UID field When the card selected in list . And we will use ID for activities of task. When the “ListCardCon_1” name selected you need to click "Add New Action" to do this. Type of Action should be " When the row is chanced". Operation will be " update value". Value area will be “UID”. SQL query field is;
SELECT '$PUserTableID$'
ListCardCon_2 Field
After the List(Card) tool, we will show off all tasks which is status "Done" in this list. In order to do that we need to a List Card Connected from the tool box and name it as “ListCardCon_2”. After that we must specified linked field which is name Status in "ListCard_1" query. Values field must be "Done*9" because we must filter task status.
Actions in This Field
Action 1: When users drag and drop task card in this field we must update task status. So we add new action for update. When the “ListCardCon_2” name selected you need to click "Add New Action" to do this. Type of Action should be Record is added". Operation will be " update value". Value area will be “itself”. SQL query field is;
UPDATE TM_TASKS SET Status=9 WHERE UserTableID = '$PUserTableID$'
Action 2: We will update UID field When the card selected in list . And we will use ID for activities of task. When the “ListCardCon_2” name selected you need to click "Add New Action" to do this. Type of Action should be " When the row is chanced". Operation will be " update value". Value area will be “UID”. SQL query field is;
SELECT '$PUserTableID$'
ListCardCon_3 Field
After the List(Card) tool, we will show off all tasks which is status "Canceled" in this list. In order to do that we need to a List Card Connected from the tool box and name it as “ListCardCon_3”. After that we must specified linked field which is name Status in "ListCard_1" query. Values field must be "Canceled*10" because we must filter task status.
Actions in This Field
Action 1: When users drag and drop task card in this field we must update task status. So we add new action for update. When the “ListCardCon_3” name selected you need to click "Add New Action" to do this. Type of Action should be Record is added". Operation will be " update value". Value area will be “itself”. SQL query field is;
UPDATE TM_TASKS SET Status=10 WHERE UserTableID = '$PUserTableID$'
Action 2: We will update UID field When the card selected in list . And we will use ID for activities of task. When the “ListCardCon_3” name selected you need to click "Add New Action" to do this. Type of Action should be " When the row is chanced". Operation will be " update value". Value area will be “UID”. SQL query field is;
SELECT '$PUserTableID$'
GridListe_1 Field
Now we want to show off messages of task that are submitted by users in selected task. In order to do that we need to a another Grid List from the tool box and name it as “GridListe_1”. In query box enter following query;
SELECT
TM_ACTIVITIES.UserTableID,
TM_ACTIVITIES.Message,
TM_ACTIVITIES.Hours,
TM_ACTIVITIES.Percentage
FROM dbo.TM_ACTIVITIES WITH (NOLOCK)
WHERE TM_ACTIVITIES.Task_ID = '$PUID'
Message Field
With that being said, we will use this field to write a task-related message / request. In order to do that, we need to add a Text Box and name it as “Message” in the left field. We can determine field length more than other text boxes. Please notice text box "Form only" property and "multi line" property must be select "yes".
Hours Field
We will use this field to work time. In order to do that, we need to add an Hour and name it as “Hours” in the left field. Please notice text box "Form only" property must be select "yes".
Percentage Field
We will use this field to work time. In order to do that, we need to add a Numeric Box and name it as “Percentage” in the left field. Please notice text box "Form only" property must be select "yes".
UID Field
We will use this field to update activities list and show off messages of task. Please notice numeric box "Form only" property must be select "yes".
Actions in This Field
- We want to show off all messages of task. When the “UID” name selected you need to click "Add New Action" to do this. Type of Action should be " When value changes". Operation will be " Update value". Value area will be “GridListe_1”.
DUID Field
We will use this field to linked for Task Identification form. We will update this form When users select any task card for add attachment or update task fields from canban form. Please notice numeric box "Form only" property must be select "yes".
Actions in This Field
- When the “DUID” name selected you need to click "Add New Action" to do this. Type of Action should be " When value changes". Operation will be " Open Form (Linked)". Condition will be “In New Window”. Project will be “Task Management”. Form will be “Task Identification”. When users changed task properties Report list must be update. So closing action will be “When form is opened – update listCard”. In mapping field;
DUID|0|DUID
Buttons
“Submit” Button
After we select any task and filled up message, hours and percentega we need to save this activity to be able to seen by any member of the task or task manager. In order to do that we need to add a Button from the left side pane and name it as “Submit”. Now, we should add a new action to make the button work. While this button selected, from Actions pane (right side pane), select Add New Action and select Type of Action value as "When clicked" and Operation value as “Open form (linked)” then save the action to other form.
Actions in This Field
- We want to save activity/request of task when the “Submit” button clicked. In order to do this, we should create a new action. When the “Submit” button selected, you need to click “Add New Action” to do this. Type of Action should be "When clicked" to handle button click. Operation will be "Open Form (linked)". Project will be “Task Management” and Form will be Activities. We must do match two forms (canban - Activities). Please notice “save when turned on” and “Form hide” properties. these properties must be selected "yes" because users do not need to see "activities" form. We will save all messages in the "activities" form. Mapping text;
Message|0|Message
Hours|0|Hours
Percentage|0|Percentage
UID|0|Task_ID
“New Task” Button
We can add a new button to save a task. This button can be used by users as a shortcut.
Actions in This Field
- While this button selected, from Actions pane (right side pane), select Add New Action and select Type of Action value as "When clicked" and Operation value as “Open form (new). Project will be “Task Management”. Form will be “Task Identification”. When users add task report list must be update. So closing action will be “When form is opened – update listCard”.
(please don’t forget to hit save button on the same pane and on the top of the software to save everything in the form.)
- Let's save and run our app to see changes/newly added forms. -