Argos 5.4 DataBlock Designer Training

Hello, and welcome to the Argos DataBlock
Designer training. My name is Barb, and I’ll be leading the training
today. The intended audience for this training is
the Designer. The prerequisites to the training are Argos
Report Viewer and Argos Report Writer. Argos DataBlocks are SQL-based. You are not required to know SQL, but it is
expected that you understand basic query logic. The material in this class is technical in
nature, so we’re not going to cover basic definitions. Now, the goal of this training is to demonstrate
the new functionality available as a designer, and how to create a DataBlock. So we’re going to be covering the following
objectives in this training: We’re going to review what the Designer role is, and we’re
going to create a DataBlock, discuss the functions available within a DataBlock, and we’re also
going to discuss the capabilities available as a Designer. OK. So to create our reports there are three things
we need: A DataBlock form, the report query, and a report format. First, we have the DataBlock form, and this
is where we will narrow our results. Second, the requirements are sent to the database
as a SQL query. The query incorporates three things: Our search
parameters, our criteria, and a list of data elements that we want returned. Now in Argos, we take the DataBlock form and
the report query and we combine them into one object that we call a DataBlock. As a DataBlock Designer, we create the DataBlock
used by our report writers. The dashboard can have a separate query for
each object. The report query is the basis for the banded,
extract, and CSV reports. OK. So now we’re going to create the DataBlock,
and I’ve already launched Argos and logged in as a designer. So as you can see down here on the bottom
right, I am logged in as the designer. Here’s my role down here on the bottom right,
DataBlock Designer. Here’s the name of the server. So the DataBlock we’re going to create is
the Address Information DataBlock. It’s the same DataBlock we’ve been working
with in the Report Viewer and Report Writer classes. It’s a simple DataBlock that returns basic
name and address information. And it also contains both a form query and
a report query. So to create our DataBlock, you just go to
the folder where you want to put the DataBlock, and click on the DataBlock icon under the
tabs, or you can right-click on the folder and select “New DataBlock”. So I’m going to put it in the Designer folder,
and here you see we have our new DataBlock. So now that I have the new DataBlock, I’m
going to give it a name and a description. We do recommend that names and descriptions
be as descriptive as possible, so I’ll name this one. Pardon my cough here, I’m getting over a little
bit of a cold. OK, and now also I do want to add a description
here. I’m going to say this is OK to delete later. And as you can see that comes up here. Now the DataBlock must be assigned an ADO
connection to the database. Now this is the connection that the users
will use to run their reports. If you choose a connection pool, so what you
do is click on this dropdown right here, if you choose a connection pool the users will
be given a choice of which connection to use when they run their reports. Pools are very useful when you’re testing
because you can easily test against different connections without exiting the design window. For purposes of this demo I’m not going to
select a pool, I’m just going to select a direct connection. I’m going to connect to a Banner database,
so I’m just going to choose Training8, and now I can click on Edit to design the DataBlock. So as you see we have three tiles here. Reviewer, Writer, and DataBlock Designer,
so under DataBlock Designer I’m going to click Edit. And this is the DataBlock Design window. So let’s do a quick review of its features
just before we do anything. Here we have Commit. It’s not bolded right now just because I haven’t
done anything, I haven’t made any changes that need to be saved. This allows you to save your changes. And then we have Close. Close allows you to exit the design window. There’s also the Active Connection dropdown. So if I had not assigned a connection in the
DataBlock Detail page, I could choose a connection here, but the association would not be saved,
and once I closed this window, again, I would have to choose the connection every time,
which is kind of a hassle. Then we have the play icon right here, which
is our Test button. I can test all my changes from within the
DataBlock Design window. And then we have the Web View button, which
allows you to test your DataBlock in Argos Web Viewer. In order to use the Web View button all pending
changes have to be committed first. Here we have our tabs. So below that we have the Form Design tab
and the Report Query tab. In the Form Design area we have three more
tabs. We have the Forms tab, the Properties tab,
and the Variables tab. So on the Forms tab, a DataBlock can have
more than one form and use multiple variables to link from one form to another. Properties is where the properties of an object
are defined. And Variables. The Variables tab lists all my variables contained
in the DataBlock. So here we are on the Forms tab. And we’re going to get started creating the
form. The first objects we’re going to add are images. And to do that I’m just going to click on
the Add Image button, which looks like a picture, right here. You click on the image button, and then click
on the form. And as you can see you’re given three options
from which to retrieve the image. You have images stored in the DataBlock, images
stored on the server in an accessible location, and image will be retrieved from a variable. So I’m going to choose the first option, and
click Browse. And I just want to make sure I’m in the right
spot here. OK. OK. And click Open. Now with the image still selected, you want
to make sure that the following properties in the Properties tab are set, because this
is going to be my background. So I’m going to go over here to the properties,
and next to Align, I’m going to change this to Client. I’m going to stretch it. I want to make the top 0, make sure left is
set to 0, and auto-size, no, perfect. OK. So I also want my logo on this page as well,
so to do that I’m going to click on Add Image again, and I’m going to drop it in here. Again I’m going to browse to it, and describe
my Argos logo. And I want to change the… obviously this
is cut off, right, so I need to change the properties. I do see a few people have joined the websession
since I started. Just to give you a little heads up I will
be on the session after we’ve ended so if you have any questions about anything you’ve
missed, feel free to hold on to your questions if you want to ask after the websession has
ended. OK. So I’m going to go over to my properties here
and I’m going to choose Auto Size equals Yes, I’m going to drag this over here, and since
now I have my logo on my form I also want to use it to link to my home page by making
the image clickable. And in the properties for my image I have
a property called On Click. The On Click property allows me to assign
an action to an object when it’s clicked. And to make it clickable I just click on the
On Click event and click on the ellipsis here, and you see I have quite a few options. One of them is Activate Form. If I had multiple forms, I could use the On
Click property to switch between forms, but in this situation I want to click on the hyperlink. And you can either double-click to move it
over, or you can click on the plus sign. So I’m going to go ahead and add the URL down
here. And click OK. And then also I want to let the users know
that this is a clickable object, so I need to change the Cursor property. So I’m going to go up here and change this
to a handpoint. So now when they hover over it, it changes. So let’s go ahead and commit this, and test
it out. And
now when I click on it, it should take us to the Evisions website, which it does. Perfect. OK. So
now what we want to do is put a title on our form, and I’ll do that by clicking on the
letter A button. The A button creates a static label. And I’ll click on the form. And once in the form, here are all our properties
I can modify for this text label. And let’s change the font size to 18. Now you have a few options here. You can actually, you see you have the individual
properties here, so I can just click here and change this to 18, or I can click in here
and click on the ellipsis, and kind of do that all at once here. So I’m going to change the font to Arial,
and I will change the color to white. And now to change the text of the object itself
I can do it in the property text box, or I can double-click on the object itself. And we’ll change the text to “Address List”. And I’ll just move this up here. And now you see we have our title. All right, so any questions right now? All right. So now I want to get started by adding my
search parameters into my form. But remember when I added my title, I had
to change the font and the size from the standard font defaults, and I really don’t want to
have to do that for every label and object that I add to the form. So I’m going to add a panel control to my
form to alleviate that issue. The panel control does two things. It allows me to group objects, and it also
allows me to set font property defaults for those objects that are placed on the panel. Now the panel control is the button that looks
like a box with a couple of squares in it. And if I click on it it, let me see, it’s
this one right here. I’m trying to get the little description to
come up. And it doesn’t. For some reason it’s not coming up. There it is. So it says “Draw a panel”. So I’m not going to click on it right now
because I’m going to retrieve it from the Library of Objects. The Library of Objects is the same library
that you saw in the Report Writer training, and I can use it to add DataBlock objects
to the library, as well as retrieve objects. So I’m going to click on the book icon to
get to the library. Now as you notice, there’s two icons. Here’s insert objects from the library, and
here’s if I want to add to the library. So I’m going to retrieve from the library. I’m going to grab the panel object and click
OK. So here is my already-formatted panel object. And this is really going to save me a lot
of time, because I’m adding in one object that’s already configured with all of my standards. So as you can see, the color of the panel
is already set to white. Panel white is the name of the variable. And the font is set to Arial, and font size
is 10. OK, so now we’re ready to add some more objects
to our form. The first parameter I want to add is a date
control, since I might want to search for addresses with a certain date. I’ll add my label for my parameter first by
using the text object. So first I’m going to add the label. And I’m going to name this “As of Date”. Now I’m ready to add my first edit control,
and I’ll add in a date control, which is the button with the little calendar page on it. Now also I want to align the object with my
label, so I’m going to use the alignment tools, and I will align them by their center. And I also want to change the Default Today
property to Yes. Now users will still be able to change the
date, but it will default to today’s date. One other thing I want to do is change the
variable name. This is really important because once you
get a few variables placed on the form, it does get difficult to distinguish between
DateEdit1, DateEdit2, etc., so you might want to consider creating a naming convention. Here at Evisions we use the abbreviation “PARM”,
or parm, for parameter, DT for date, and then a description for the object. So for instance I’m going to use “AsOfDate”,
so for this one I will call it “parm_DT_AsOfDate”. And there it has defaulted to today’s date. Everything looks good. Okay so now we’ve added our first search parameter,
and we’re going to move on to the next one. In Banner addresses can be for either people
or company, so I want to add that to my form as a search parameter. So first I’ll add my label. And I’m going to change the text to “Entity
Type”. And the control I’m going to use for this
one is a dropdown box, which restricts users to only one choice. Now in this case it’s going to be people or
companies. The dropdown box is the icon with the dropdown
arrow on the right hand side. I’ll go ahead and align these. I’m not going to spend too much time with
the alignments, I just want to really make sure that you are aware you hit the Shift
key to grab anything you want to align, and that you use the alignment tools to make them
look pretty. And I’ll line them up there. If you have any questions feel free to ask
about that. Okay. So let’s go ahead and rename the variable. Trust me when I tell you you’ll thank yourself. [coughs] Excuse me, I’m so sorry. You’ll thank yourself later if you get into
the habit of renaming these. Okay. So I’ll go ahead and rename this parm_DT,
for a drop-down, and EntityType. Okay, now I need the selections in my dropdown
box, and to add those I’m going to click on the Choices property. You, you have two choices for this. You can either double click in the object,
or you can click on the choices ellipsis. Just so you know there’s two ways to get into
there. So I can either create a list from a SQL statement,
or type it in manually. Since I have only two choices to enter I’ll
do a manual entry, and click Next. I know the choices in Banner are either C
or P for entity type, so I’ll type those in as my choices. Okay, I’m gonna go ahead and add a row. Now my users don’t necessarily know what C
and P means, so I’ll add in another column with the description by using the blue plus
sign for Add Column. I’m going to give my column a name, and this
will be Company, and this will be Person. So now I have the entity code which I will
use in my query, and I have a description that the users can select to make their choice. But before I leave this window, I want to
change the name of the main column. Each column is a variable I can use in my
SQL code, and “Main” doesn’t mean anything for our purposes so I’ll change the name of
the column to “Code” by clicking on Edit Column. Oops wrong one, sorry about that. And I’m going to change this to “Code”. Okay. And click Next. So now I need to choose which column I want
to display to the user. And I want to choose Description, and click
Finish. And now we’ll commit it and test it. And here we have Company and Person. Okay. So the next control we want to look at is,
I want to allow my users the ability to search by address types. So this time I want them to be able to make
multiple selections. Remember the dropdown only allows one. Now the control box I want to use for this
is the list box, so first I’ll add my label for my search control box. Align these guys by their left… and this
one will be addressed to address types. Oops, too many ‘S’s. There we go. And now I’ll add in my list box. The list box is the icon that looks like a
list, and it has a scrollbar on its side. We’re actually going to align these two. Let’s see, there we go, that’s a little bit
better. And we’ll rename the variable. We’ll do parm, lb for list box, and AddressType. So I also need to change the multi-select
property on this to Yes. This will allow my users to make multiple
selections from this box. And I have to create my selections list. And this time I’m going to double click on
the object to get to my choice entry wizard. And since there are many address types, I
don’t want to have to type them all in manually, and if they change I don’t want to have to
go back and update this control, so this time I’m going to choose the SQL statement object
to create my selections list. And click Next. Now at this screen I could type in my SQL
query if I wanted to, but I don’t have to do that. I can build my code using the Visual Designer. So I’ll click on the ruler and pencil icon
down here on the left hand side, and this will get me to the Visual Designer. Okay so I don’t know how many of you are familiar
with the Visual Designer here, but it’s pretty cool. Um this is the SQL Build Query tool, which
is the visual design editor, and it will help create my SQL code for me. I just have to tell it what I want. I can use the buttons up here to show tables,
or I can just click on the Add Table button if I know the exact name of the table. I would use the Show Tables button with caution
if you are in Banner. Banner can have over 3,000 tables, and that
will take quite a long time to generate the view. Now my tabs down here are what, where I build
the SELECT and conditional parts of my SQL query. For the demo today I happen to know which
table I want, so I’m just going to click on Add Table. Okay so I’m going to type in STVATYP and Okay. This is the validation table that contains
my address types. And I’ll click OK. Okay, so now you can see all the available
columns in the table, and I’ll choose the columns that I want to put in my list box. Just like with my entity type control box
I want to select the code and the description. I’ll use the code when I build my query, and
I’ll use the description to show my users. And I can select my columns by clicking and
dragging the variable down to my SELECT tab, or I can double click to select as well. So I can double click, or I can click and
drag. So in this instance, I don’t have to filter
my selection in my WHERE clause since I want all the information returned, but I do, I
want to sort the information that is returned, so for now I’m going to skip the Conditional
Fields tab and go directly to the Ordering tab. And I want to sort by my description, not
the code, so I’m going to go ahead and double click on the description. And I’ll keep the default of ascending, and
now my SQL select statement is complete. And now I’m back to the choice entry window,
and you can see that the SQL code that the Visual Designer has created. And if I click on Edit Visual Design, right
here, I’ll go back into the visual design, but if I want to go into what we call Freetype,
where I can edit the SQL directly, I click on the Edit SQL Text link. So here you see we get this warning. The warning message says that if I want to
edit the SQL directly, I cannot go back to the Visual Designer. So it’s kind of like, you know, all or nothing
here. So I’m going to click No, and I’m going to
click No to get out of that window, and then I’m going to just click Next. And here we have, the query has returned two
columns, the code and the description. And then just like my single choice drop-down
box, I can pick a column to show to the users. And they want Description. And I’ll click Finish. And then let’s commit it and see how it turned
out. So here we have our entity type, and then… I always like to double check that we can
multi-select when we’re supposed to be able to multi select, because sometimes you’ll
forget, you know, to enable that multi select property. Everything looks good. OK, so now I want to add some more advanced
search parameters. I want to allow the users to search by a last
name or part of a name. And to do that I can add an edit box. This allows users to enter in search data. And like all my other control boxes, the first
thing I’ll do is create a label. I’ll put that up here. And now I’ll add in my control by clicking
on the Edit Box button, which is the icon that has the “Ab” I-beam, and then clicking
on the panel to add it. And let’s see, so again we want to change
the variable name. EB for Edit Box, and LastName. Now the other property option I want to change
is the Required property. I want to change that from Yes to No. Now this is different from my other parameters. The other parameters are required parameters
so the users have to enter in data to run the query. I don’t want the users to be forced to enter
in data in this search box, so that’s why I changed it to No. I want to add another way for the users to
narrow down their search by including or excluding inactive addresses. So I can use a simple checkbox for that. A Yes, include inactive addresses, or a No,
does not include inactive addresses. So I’ll add a checkbox control for that. The checkbox icon has a check on it. And I’m just going to drop it on the panel. And I’ll change the variable name. CB for checkbox, InactiveAddresses. And I also want to change the text. Oops. Over here. We want to change that to “Include Inactive
Addresses?”. And then we want to stretch that out. OK, so there’s other things we have to change
here too. We need to change the checked value to Y to
indicate Yes. Checked Value up here, we’re going to change
that to a Y. So when I include this variable in my SQL
query, I’ll use the Y to indicate that I want to include inactive addresses, and a null
to indicate that I don’t want to include inactive addresses. Now lastly I’ll add a memo box a for comment
section, and a label called “Comment”. The memo icon is the icon that looks like
a letter, and it’s useful for either displaying large amounts of text, or for allowing the
user to add in multiple lines of text. So first I’ll do my label. And we’ll call this “Comments”. And let’s grab our memo. Okay. And MB for memo box. Okay. Now we also have a Read Only property for
this control, which defaults to No. Here we have the Read Only property. Now this allows users to enter in text. You might want to use this type of control
to allow users to enter in comments that are included in reports. If you have complex directions or instructions
that you want to display to the user, you could set the Read Only property to Yes so
that users cannot modify the text in the box. So now that we have our search parameters,
I need to build our report query. So, the report query… I want to return both the name and the address
information from my query, and since we’re working with transactional Banner, I am going
to need two tables. I happen to know the tables I need. The first table is the name information table,
and it’s called SPRIDEN. So I’m going to click on Add Table. And all the address information is in the
SPRADDR table, so I’ll add that as well. Okay so I now have the two tables I need in
my designer window, and notice that there is a line connecting the tables. That line indicates that there is a join,
and when I click on it you can see the join. Now, if we look at our SQL, by clicking on
View SQL, note the WHERE clause has been added for us. We’re not forced to add it. And the join came in automatically because
I’m using the data dictionary. If you see here, this is highlighted, Use
Dictionary the data dictionary is a series of aliases and joins which define the tables. The dictionary is customized by each institution,
so you can add your own joins and aliases. Having the data dictionary with standard aliases
makes things a lot easier for Report Writers because field names are the same between all
the different DataBlocks. Now we can decide whether we want to use the
dictionary or not by clicking or unclicking the Use Dictionary button right here. So what I’m gonna do is actually delete the
join. And I can create my own join between the tables
by clicking on a field in one table and dragging it to a field in the second table. And I’m going to join the PIDMs. If it wants to let me do it. All right, let’s see here… there we go. There we go. You have to get that little circle with the
line through it. Sometimes it’s a little tricky. Okay, so now I have my new join, and if I
click on the join, you see here you have your left field and right field indicated, and
I can modify it, or even add it to the dictionary. There are two ways to add it to the dictionary,
as a suggestion, or as a contribution. You see that down here. A suggestion is a dictionary item that will
need to be reviewed and approved by an administrator. A contribution will be added directly to the
dictionary so everyone will be able to use it immediately. Now as a side note, there are certain privileges,
or permissions rather. Some users are able to immediately make contributions. Everyone can make suggestions. So if you try to make a contribution and you’re
not able to, you would want to check with your administrator to see how you’re able
to do that. But everyone can make a suggestion. Okay, so let me go ahead and close out of
that. So there’s one more join to look at. We have this little knob right here, and this
is a join that’s actually working to identify the active SPRIDEN record. In Banner the SPRIDEN table has a record for
every individual. This includes inactive and historical records. We typically only want the most recent active
record. To remove the other records from the result
set we have to filter on the SPRIDEN change indicator field. So this join has been added to the dictionary,
so it’s automatically added to our query. And so let me close this. And here we have… let’s go to View SQL… So as you can see, we have the WHERE and the
AND SPRIDEN change indicator is null has already been added, even though it’s not on the WHERE
tab. So okay. So let’s get started on filters based on the
variables we’ve built on the rest of the form. All right, so we’re going to start with our
SELECT statement and choose the information we want to return in the report query. I’ll do that by double clicking on the fields
that I want in the table, and adding them to my SELECT tab. From my SPRIDEN table I’ll choose ID, and
last name, first name, and entity. And from SPRADDR we want from date as well. And we want city, and state, and zip, and
status. Okay. Now since we’re using the dictionary, the
fields came down with the aliases already described, but we can change them if we want. We recommend that these remain the same just
as best practice. These names are what the Argos Report Writers
see when they’re creating reports. Now normally I wouldn’t try to work with multiple
conditions at once, I would add in a condition, test it and then edit the query to add in
my next condition, but this is a training situation and we want to move things along
a little bit faster, so we’re gonna start with our from date variable, and compare it
to the Banner data field. Since we want the dates for the addresses
to be less than or equal from the date entered by the user, the Banner field I need to use
is the SPRADDR from date. So let’s see here… Now when I select the field I can see the
dictionary description at the bottom of the table, right here. To add it to my WHERE clause I’m just going
to double click on the field. And now I have the field, but I have to build
the condition. I’ll do that in the Condition field. I can type my operator and condition right
here in the Condition row, or I can click on the ellipsis to get to the SQL editor. I can type my condition here, and I have a
few buttons to help me do this. So if I click on the ABC, right there, I get
a list of all the variables in my DataBlock, and if I click on the radio button I get a
list of all of the fields in my tables. So I want my Banner data to be less than or
equal to my date variable, so my condition is less than or equal to. And I click on my ABC button to pull in my
variable. So here’s the ABC button, and I’m gonna choose
the parm_DT_AsOfDate, so it’s already built that for me, and now I have my condition and
I can click OK. And it’s added it in there for me. The next variable we have is the entity parameter,
so we’ll add that in. And let’s see… so we want the SPRIDEN entity
right here… and we want our Banner data to equal our variable, so first we’ll directly
type in the equal sign, and then click on the ellipsis to build our condition. Actually let me click off of there, here we
go. Now notice that we need to expand the parm_DD_EntityType
variable to select our code, because remember we’ve got Code and Description. Okay. Next is the address type code, so we’ll want
to add that in and build our condition. So we want the SPRADDR_ATYP_CODE… equals…
and the ABC… and again we’re going to expand the parm_AddressType… and select Code…
and select Okay. And next we will add our advanced search parameters. I want to treat our last name slightly differently
than our other conditionals. I don’t want the search to be case sensitive,
and I also want the search to be… I want to search by using part of a name. So I’ll use the SQL function lower() to convert
both the Banner field data and the user’s entered data to lowercase. I also have to add in a wildcard to do this. So if I just add in the variable like I did
previously I won’t be able to modify it, because this field is static. So I’m going to go ahead and, I need to fix
that by creating a calculated field by manually clicking on the “and/or” field. So I’m going to choose “and” here. Now notice it says “calculated” now in the
table. So let’s see here… so in my field , I’m
going to click on the ellipsis to get to my SQL editor, and this is where I’m going to
free type in the Oracle lower() function. And I’m going to go to my blue radio button
to pull in my SPRIDEN data field, and choose last name, and close my parentheses, and click
OK. So now that my database data has been converted
to lowercase, the next thing I want to do is build my condition for my variable. And I’ll click on my ellipsis in my condition
field. And in my SQL editor, I’ll use “like” instead
of the equal sign. Now again I have to convert my variable data
to lower just like I converted the Banner data, so I’ll type in lower(). And click on the ABC… and let’s get the parm,
edit box, LastName. And now I have to add in my wildcard, so I’m
going to use pipes to concatenate my variable to the wildcard, which is tick percent tick,
and closed parens… I think that looks right. Okay so we still have another parameter to
enter, that’s the checkbox parameter for the status indicator. And that is not a simple AND statement like
the others because it requires an OR. The checkbox is checked or the check box is
not checked. So we have to add in another conditional group
to only compare the results of the check boxes. To add in a new conditional group, click on
the plus sign and build the conditionals just like before. Go down here on the bottom left corner, we
have this plus sign, and I’ll add in my status indicator from the SPRADDR table. Let’s see here… So we need the SPRADDR status indicator, and
the condition for the status indicator is null so we’re gonna type in “is null” in the
condition field. Now note that I didn’t have to go into my
SQL editor to build the condition. I can always type directly into that condition
box. Now my next condition is calculated because
I’m not using a database field, just the variable from the form, so for this I’ll use an OR
instead of an AND. So let’s see… parm, checkbox, Inactive… And the condition I’m going to build for my
condition for this is, let’s see… equals… Yes. Okay. So let’s view our SQL. Okay. And we’ll commit, and test, and fill in the
variables. I’m just gonna select everything there. And I’ll type in a lowercase ‘W’ here. Now, so notice that I have a window at the
bottom here with a Get button. This window will be populated with the results
from our query, and I’m gonna go ahead and click the Get button. Okay, now if I scroll up and down in the results
window, here are the addresses with the last name starting with a ‘W’, and we have no inactive
addresses over here. So after I click on the check box to include
inactive addresses, let’s see what happens. And click Get. Now we have two inactive addresses. So the last thing I want to do is go back
and order my results. So let’s go back to the Ordering tab. I’m going to close out of here, and go to
Order By. And let’s order by last name and first name. So we’ll order by SPRIDEN_LAST_NAME, and FIRST_NAME. That’s all I need to do for that, so let’s
commit that and test it. And hit Get. Everything looks good. Now I can also change the number of records
returned by changing the max number of records returned right here in this little window
here. So if you want to test your query without
it having, you know, returning millions of rows, you can modify this option here. So let’s say I only want this to have five. Okay. So there is also another option that a lot
of our users like to have, and that is the option of returning the results on the DataBlock
form. They want the results of the report query
up here on the form. And to do that I’ll use a multi-column list
box, which is the icon that looks like it has two columns. So let me close out of here. We’ll go to Form Design, so right here, this
is our multi-column list box. So I’m going to go ahead and click on that,
and click on the form, and I’m going to drag it to fill up the whole space. You want to make sure that it’s large enough
to return your results. I’m going to change the variable name, ‘MC’
for a multi-column results, and now that I have an area to return my results I have to
build the query, however since our form query will be built exactly the same way as our
report, I’m going to copy our report query over to our form query and just modify it
slightly. So to do that I’m going to go back to the
Report Query Build Wizard, and now I will copy the SQL from within the Visual Designer,
so I can just click the Copy button to copy the SQL, and then I’ll go back to the multi-column
list box on the Form Design tab, and all you have to do is just double click in that object,
go to SQL Statement, click Next, click into the pencil, click Paste, and here you have
the exact same query. S now we’re back into the choice entry window. So now you have to click OK. And we do have to go through all the same
steps, obviously, to validate the query, so we’re going to click Next. We don’t have to enter anything here, we can
just click OK. We didn’t get any errors, so click Finish. Now, if you don’t click Finish you won’t save
any of the SQL, and your SQL has to be correct for you to save it, so let’s go ahead and
commit, and test. So we’ll go ahead and click Person, and select
all. Now notice, as soon as I selected all something
populated here, so let’s go ahead and do our ‘W’. And it changed again when I hit Get here. So notice that it runs every time I modified
a parameter. We want to run the query just once, not every
time I make a change. So to resolve this we’re going to add an action
button. And, so we’re going to go back into the multi-column
list box, and we’re going to modify the query. So we’re going to go back into Edit Visual
Design. First wait, first we have to add the button
onto the form. Sorry about that, I got ahead of myself. So first we’re gonna add the button. The button is the little icon that has the
Go on it. So first we’ll add the Go on to, we’ll put
it over here. Okay. So we want to, the button, the button is going
to run the query when it’s clicked, and the button, I want to click the button. I wanted to say what it’s obviously, I want
the users to know what the button is going to do. So we’ll change the text, and we’re also going
to change the name of the variable. So here we will have this, say, parm_BT_ … let’s
say RunQuery. Okay. And then also we’re going to change the caption. Instead of just “Button” we’ll have it say
“Run Query”. Okay, that’s better. Okay so now I’m ready to modify the query
to add in the variable. So now we’ll go ahead and double click in
here, and we will go into the WHERE tab. And all I have to do is add a calculated condition
that my parm_BT_RunQuery must not be null. So we’re just going to click on Add. We’ll leave that a calculated. We’re gonna grab the parm_BT_RunQuery, is
not null. And we’ll see our changes. Okay. And now let’s commit it. Okay so now nothing should populate in the
multi-column list box until after I’ve entered all of my parameters and clicked the Run Query
button. So notice nothing populated yet. Let’s include, and then Run Query, so that’s
how that works. So far so good. Okay. So, next we’re actually almost done with this
part of the training. Thanks for hanging in there with me. I know this is very long training. So we also have the option of returning a
count of our results on the DataBlock form. And to do that we have to create a SQL variable
and build the query. Now SQL variables are fields that contain
SQL statements created by the user that do not reside on the parameter form. In the variables tab, SQL variables are called
user variables. So let’s close out of here and we’re going
to the Variables tab. SQL variables can also be used to update,
insert, and/or delete from a table in a database. Since our count query will be built exactly
the same way as our form query, I’m going to copy our multi-column list box query to
our SQL variable query and modify it slightly. But before we create our SQL variable, let’s
add a label for our count. So I’m going to go ahead and add a label for
the count. I’ll put that up here. And no, let’s put this down here, it makes
more sense. It’ll be “Record Count”. And now I’m going to copy the SQL from the
Visual Designer. And I can click the Copy button to copy the
SQL. So again, we’re going back in here. Remember keep clicking copy. And now I just have to click on the Variables
tab. Click on the blue plus sign to add the variable
to the list. And we will use a SQL statement, so we’re
just going to leave that SQL statement radio button selected. Select the ruler and pencil icon to go into
the Visual Designer. And we’re going to paste the query. Now I’ll modify our query to get the count. We’re going to go ahead and remove all of
the fields but the SPRIDEN_ID field from the SELECT statement by clicking on the blue X. So we’re going to remove everything except
the SPRIDEN_ID, which is the very first one. Now we have to click on the Summing icon to
get our count. In the Summing field, right here, we’ll click
on the dropdown and select Count. And we’re also going to change the alias to
Record_Count. Okay so now we’re also going to rename our
SQL variable. Let’s rename it, Sql_RecordCount. Now to add our count to our form we need to
create a data aware label. The Data Aware property allows variable data
to be used in place of static text for labels, edit boxes, memo fields, and date edit objects. When an object has the Data Aware property
set to Yes, the text property becomes a dropdown list from which the user can select the data
field. The dropdown list includes all of the DataBlock
variables and SQL variables for this DataBlock. So we’re going to go ahead and add our label,
and set the Data Aware to Yes. And in the text field we’re going to select our count
SQL variable. Okay. So let’s commit this and test it. So as you see we have a record count of 21,
and there’s 21 items in the multi-column list box. Okay. So we are finished with that part of the training. Now we’re going to move on to the Designer
capabilities, which will go through the templates, scheduling, and security, and
revision control. So let’s see here. Okay. I’m gonna go ahead and close out of here then. Okay. So, now we’re going to be discussing the capabilities
of a DataBlock Designer. And as a DataBlock Designer, now you’re able
to use pretty much all the buttons. We can cut, copy, paste, delete, import, export,
share to the CO-OP, manage security, access the Library of Objects, and go to the CO-OP,
the support site, and the in-product help. Now, some of these icons are gray, and that’s
because they’re only available in specific situations. So if we take a look at the CO-OP, and go
ahead and click on that, it will ask you to sign in. And this is a place for the client community
to share DataBlocks. It’s a great place to go when you’re creating
your first DataBlocks. There are hundreds of DataBlocks available
for download, and after you’ve created some of your own you should really consider sharing
them with the community. Instead of trying to like, reinvent the wheel,
I do highly recommend that you check the CO-OP, because there are some users that have been
around since, like, the beginning of Argos that have created some really amazing stuff. And then there’s also DataBlocks that Evisions
has uploaded as well. So I would definitely go on here if you’re
looking for something, and see if someone hasn’t already created something and then
you can always modify it, typically, to suit your needs. So for example let’s say you’re looking for
a class roster DataBlock to import into Argos. So if I just search for “class roster”…
so here’s one here. Let’s see, I’ll do… I’ll do this one. Let’s just say here. It gives you some screenshots. It’ll usually also give you a description. It’ll tell you what versions you have to be
on, and then to download it you just click on Download. Now, so let’s say, I’m not actually going
to download this file right now. So back in Argos, let’s say I have, you know,
found one that I want to download, you want to import this new DataBlock that you just
downloaded. So you click on the folder that you want to
download that DataBlock into, and you click on Import. So for example, this class roster one. I click Open, and you’re given these options. So let’s say the one that you found, you don’t
need all of those reports, you really just need the one banded report, so you uncheck
these. You might want the quickview. And then you also have the option of retaining
the revision history, the original author, and dates. And then you click Import. So here you have your roster, plus those other
reports that you decided to pull in. And then here you have the original notes
as well. It’s actually that easy. Now so, notice also as a Designer, over on
the tile over here, you have additional actions. You can edit, which allows you to edit the
DataBlock, you can edit the data, which will allow you to access the object XML. You can delete, which we’re going to discuss
a little bit later, and also with security we’ll be discussing later, and then Share,
which allows you to upload to the CO-OP. Now to export a DataBlock, let’s say, for
example, let’s just stick with the class roster, in the exporting window, so you click on the
one you want to export, click on Export. For example, if you’re working with one of
us here on the HelpDesk and we ask you for an export of your DataBlock, you just click
on Export. Again, you’re gonna choose which reports underneath
that, that you want to export with it. You choose where you want it to go. And then also something that’s very important,
let’s say you’re exporting just from one server to another, from PROD over to TEST. This is very important. If you used saved settings in your OLAPs as
well, you’re going to want to check these two boxes, otherwise your saved dashboard
settings and saved OLAP settings will not go with it, so your users will be irate [laughs]
if you do not save these in the export with it. And then you’ll click OK. It’ll tell you it’s finished, and then you
just click OK and it’s been exported. OK so that’s it for importing and exporting. So now we’re going to go over scheduling. And the Schedule and Delivery module allows
you to automate the running of a report, and also assign tasks to the schedule as well. So we’re going to take a look here at, say,
this banded report. And to schedule a report, all you have to
do is highlight the report that you want to schedule, and you click on this schedule button. It’s under here on the DataBlock Designer
tile. Click on Schedule. Now here we have different tabs here. So on the General tab I can check or uncheck
the Active button, which activates or deactivates the schedule. It will default to Active. As a rule of thumb I usually deactivate it
while I’m configuring it, just until I make sure that I have it set to how I want it,
and then I go back and I activate it. That’s just something that I do. You can do whatever you want. So then we go to the Schedule tab. And this is where you set up the timing and
frequency of when the schedule will run. You can also configure schedules to run only
during specific time ranges. Here we have the Tasks tab. The Tasks tab allows you to select what actions
you want to take when the schedule runs. You’ve got a ton of different options here. The most common is probably Send an Email. Now you’re going to notice here that at a
minimum you need two tasks, and these are always going to be there when you create a
schedule: Execute the Report, and Process and Save. The Process and Save, just to elaborate a
bit, the save part of the task name refers to saving the report for the scheduling process
to use while it’s running. A hardcopy file of the report is not actually
saved anywhere. So from the Output Format, I can print the
report or decide on an output format, but I can’t tell the task where to put the file. I can just decide on the format of the file,
and that’s it. I need to add a Copy File task to the task
list in order to configure where a file will actually be saved. So, a note about the variable names, right
here. The variable names are used by all the other
tasks in the scheduler, and they default to ProcessFileName and ProcessFileExt. The filename variable stores the name of the
output file while the file extension variable stores the default file extension as determined
by the report type and selected output format. So if you change these variable names in this
task, you have to make sure that you change it in all the other tasks. And if you don’t, then the other tasks are
not going to be able to find the files. So generally speaking, again, best practice
is, we recommend that you keep the default variable names unless you have some compelling
reason to modify these. That’s one of the very first things that we
check when we’re troubleshooting a ticket, is we go in here and we see if these have
been modified in some way. Now as of version 5.4, when you’re configuring
a scheduled report to produce PDF output, you also now have access to a full range of
PDF options in the Process and Save task. So these were previously only available when
saving a report manually. So you can now click on the Options button,
and you now have a full PDF set up here. Okay. So let’s cancel out of here and go to the
Events tab. So the Events tab allows you to send an email
on success and/or failure of the schedule. This is something I cannot stress enough,
that I highly recommend, whether you are the Designer or whether you’re gonna have your
users setup schedule, I highly recommend that you always when you’re setting up a schedule
set up an on-error email event. That way, when you configure the on-error
email event, you have it send to yourself, whomever else, and then in the subject line
you say, you know, “schedule errored out”, because when you get the on-error email event,
you’ll get an email, and in the body of the email, Argos and MAPS will tell you why it
errored out, and that’s very important when we’re trying to troubleshoot with you. So you’ve submitted a ticket, hey my schedules
are failing, I don’t know why, we’re starting with at square one, but if you’ve received
an email, an on-error email event with an error message in the body of the email, and
it’s saying “access denied”, or some other reason, we already have somewhere to start,
and that’s really 90% of the battle. So we can just say, “oh, you know, is this
you know, was there, did the folder get moved,” or something like that. So that’s very important when you’re setting
up a schedule. And, okay so then we’ve got the API tab. So the API tab is for administrators to set
up API calls. If you need to do that you would have to be
an Argos Administrator. And then, so once it’s all scheduled you click
OK. Oh. Let’s see. So this is in the past, so let’s change this
to, its 10:24, we’ll change this to 11. So you see I just had a warning that the next
scheduled date was in the past. That was them letting, Argos letting me know. Okay so now we have our schedule has been
created. So under the Scheduler Actions you have three
options: Edit, Delete, and Run Schedule Now. Edit allows you to edit the schedule. Delete will delete the schedule, and Run Schedule
Now, this is new as a version 5.4. This executes the schedule immediately, as
though its next scheduled date were the current time. Running the schedule now has no effect on
the next scheduled date of execution. So that’s a brand new feature. Okay so now we’re going to move on to security. I think I’m a few slides behind here… oh,
no, good. Okay. So for security, remember that security is
inherited. Child objects inherit their security properties
from their parent unless it is specifically modified at the child level. Security can be modified at the folder level,
the DataBlock level, report, or field level. The most common way to implement security
is at the folder level because it’s easiest to maintain. Now, let’s go back to Argos, and let’s see
here… so, to modify security on a folder, you simply highlight the folder and click
on the Security button. And you can either click on it in the detail
pane or on the toolbar. Let me just show you. You also have the option to right-click and
go to Security there. Now, so, you can select the group or user
that you want to add. So you can click Add. You choose the group or user. So let’s say I want to add this user. Click OK. And now you can modify the Allow or Deny permissions
of the group or user that you added. Argos allows DataBlock Designers to modify
security, but it is a permission that must be granted by the MAPS Administrator. Now, as discussed in the Report Writer training,
security can be modified at the field level, and we will review this in the DataBlock that
we’ve been working on with all the other previous trainings. So let’s go back to Argos. Okay. So you see we have the key icons right here. There’s the Security key, and then each field
has its own Security key as well. The key icon allows us to modify security
for all the fields in the SELECT statement. And here you see we have a key next to LastName,
because the security has been modified. So if I click on LastName, you see the Groups
and Users section has Everyone and HR. We’ve got Everyone, and HR. So you see here that Everyone’s permissions
says Read – Deny, Human Resources’ says Read – Allow. Now, this means that Human Resources would
be able to see the last name and everyone else is going to be blocked. So I want to look at an example of this. So we’re going to go ahead and close out of
here. And we’re gonna run the banded report. Now, notice that the Last Name column returns
blank, and that’s because I’m not part of the Human Resources group. We’re moving on to Revision Control next. Okay. So one thing about revision control, it is
a, I think a very underutilized feature in Argos, and if more people used revision control
I think it would be very helpful because we do get many tickets regarding “How can I recover
a revision of a DataBlock? Someone made a change and I want to go back
to an older version,” and if they were just using revision control that would have resolved
the issue. So. Revision control allows you to maintain a
version history of your DataBlocks and reports, along with the record of each version’s author
and notes. Revision control provides a system for creating
and managing multiple versions of DataBlocks and reports, and essentially it allows you
to make and save changes to a report or DataBlock without having to worry about overwriting
the previous version. Obviously everyone has to be on board with
it though, so to set revision control, I’ll show you how to do this here. You simply go to the folder, DataBlock, or
report where you want to set revision control, and you right-click on the object and select
Revision Settings. So I’m going to show you on this same DataBlock
here. Here we have Revision Settings. So right now it’s set to No. And here I can enable revision control for
the object and its children. The default setting is No, and just so to
enable it, I’m going to go ahead and click Yes. And then we can also select the maximum number
of revisions to store. I’m just going to leave it at two. And then when we go to edit the DataBlock,
and we make a change, so I’ll just make a simple change. I’ll change the button text. And I’ll commit it. So notice now, instead of just saving it,
I have this this window here, Revision Control, and it’s asking me, do I want to overwrite
the chan– the revision, or do I want to change it as a new revision? So what I want to do is I want to make this
the active revision, and I’m going to put a note in here with what I did. I’m gonna say, “changed button text from…”
oh, I forget what it said now. [laughs] I’ll say “change button text to run
query.” I really should say what it was though. To run query… that’s my bad. Okay. And I should put the date. Okay. So I’ll click OK, and I made this the active
one. And I’ll close it, so now, any time um, now
at any time you can manage the revisions for the object, so what I’m going to do now is
go back to… so now, remember, before, there was not this option to manage revisions, so
I’m going to go in to Revisions, so now, you see, this has been made the active revision. “Changed button text to run query.” Oh, it said “return results.” The star indicates that this is the active
version, so, let’s say I wanted to go back and change this. I would just simply click the star. This will now be the active revision. I can delete this one. I can make an edit to it. So… So yeah. The revision control has saved people from
having to roll back their –entire system– just to get one DataBlock back. And you do –not– want to have to roll back. Trust me, that is a huge hassle. Okay. Actually that’s, that’s the end of the training. If you have any questions of course, you’re
always welcome to submit a HelpDesk ticket. And then, I hope everyone has a fantastic
day, and thanks so much for attending.

Leave a Reply

Your email address will not be published. Required fields are marked *