Enhanced Search Widget Version 2.23.1 - 11/22/22

592059
2821
07-14-2014 03:57 PM
Labels (1)

Enhanced Search Widget Version 2.23.1 - 11/22/22

Live Preview Site

Web AppBuilder for ArcGIS | Help - Enhanced Search widget

 

List of the latest enhancements and changes:

  1. Fixed issue with Spatial Relationship settings

Older enhancements or changes

Check the "Older enhancements or changes.txt" in the download for a complete list.

 

Older Versions

Last 2.21 version

Last 2.17 version

Last 2.13 version

Last 2.12 version

Last 2.11 version

Last 2.9 version

Last 2.7 version

Last 2.6 version

Last 2.5 version

Labels (1)
Attachments
Comments
RobertScheitlin__GISP
MVP Emeritus

Taylor,

   No currently the eSearch widget is not able to search tables (i.e. a layer with no geometry). It is something on my list though.

MarcGraham1
Frequent Contributor

Hi rscheitlin Is this widget supported as an item in Portal for ArcGIS version 10.6?  When I try to load it I just get the waiting gif, and it appears to be looking for a CSVUtils.js file that it can't find.

Thanks!

Marc

RobertScheitlin__GISP
MVP Emeritus

Marc,

   The one person that I have talked with about using the eSearch in Portal said they had to copy that file from WAB developer into their portal install.

TownOfGroton
Occasional Contributor

Hi Robert,

I’m using WAB developer 2.7 and you’re Enhanced Search Widget Version 2.7. Under the Results Tab the three dots do not show up for Result Menu. How can I fix this?

RobertScheitlin__GISP
MVP Emeritus

Jenna,

   That happens when the .svg mime type is not registered in your IIS

EricMcPhee
Regular Contributor

I'm trying to get the "disable link if null" part to work, but I'm struggling. I am using version 2.3 of the Enhance Search widget. I see in the List.js file where the links get created, but I don't see any code in there that would check if the value is null. How does the widget determine if it should show the link? 

RobertScheitlin__GISP
MVP Emeritus

Eric,

   I handle this in the Widget.js search for "linkFieldNull".

EricMcPhee
Regular Contributor

I found it and it works just fine. User Error on my part. 

JasonStanton__GISP
Regular Contributor

Robert,

Have you considered adding the option of generating/downloading labels (like in the Public Notification Widget) from this widget?  I LOVE, and prefer your widget for a number of reasons, but our Assessor's really like this feature in the Public Notification Widget.

Jason

RobertScheitlin__GISP
MVP Emeritus

When I saw that feature in the Public notification widget I did think about adding it to the eSearch. I just have not found the time to dedicate to this as of yet.

JasonStanton__GISP
Regular Contributor

Thanks for the reply! I'll keep my eyes peeled for any revisions.

RyanJones6
Emerging Contributor

Robert,

    First, I want to say thanks a lot for all the work you have done over the years. I have been using your widgets for years and I'm positive the GIS community has benefited immensely from your work.
   I am currently using your enhanced search widget and I'm running into an issue with it. The issue is NULL values. I have the widget setup where it searches through the data and creates the dropdown list of available values. All string values within a field work well. The "all" option works well too. The problem is that the drop down creates a value of "null". I am glad it does but when the user selects "null", the search fails. Any help is greatly appreciated.

Thanks,
Ryan Jones

RobertScheitlin__GISP
MVP Emeritus

Ryan,

   I am not sure what version you are using or if you have modified the eSearch, because I have code in there to NOT add null values to the widget drop down list when you have configured the search expression to use unique.

RyanJones6
Emerging Contributor

Robert,

     I upgraded my Web App Builder Developer Edition to the version 2.7. I re-imported your Enhanced Search Widget and now null values are not populated in the drop down list. Is it possible to give the user the ability to search for any null values or does that always introduce a failed search?

Thanks,

Ryan

RobertScheitlin__GISP
MVP Emeritus

Ryan,

   I have added this to my list to possibly add back in the next release.

JamesCrandall
MVP Frequent Contributor

Robert -- we are looking for a way to force a specific Search Layer based upon a url parameter onOpen.

RobertScheitlin__GISP
MVP Emeritus

James,

   I allow you to search based on a specified layer and search value using url parameters:

http://gis.calhouncounty.org/WAB/V2.7/widgets/eSearch/help/eSearch_Help.htm#GUID-ECDFB290-706C-4609-... 

If you are only looking to set the search layer based on the url (and not execute a search) then I don't think I have anything in place for that.

JamesCrandall
MVP Frequent Contributor

I think I'm asking for the latter, Robert.  That is, I had a request to specify the Search Layer's default value as the widget loads.  Perhaps I was looking for a way to tweak the index, but it looks like much more would have to be altered than just the Search Layer.

Thanks for your feedback!

RobertScheitlin__GISP
MVP Emeritus

In that case a code change like this would need to be made to the _initLayerSelect function (lines 48 thru 56):

...
            //now check if there is a url search to do
            var myObject = this.getUrlParams();
            if (myObject.esearch) {
              if(myObject.esearch === "last48"){
                var today = new Date();
                var priorDate = new Date(today.getTime() - (((24 * 60 * 60 * 1000) - 1000) * 2));
                var priorDateStr = this._formatDate(priorDate.getTime(), 'yyyy/MM/dd');
                myObject.esearch = priorDateStr + "~" + this._formatDate(new Date().getTime(), 'yyyy/MM/dd');
              }
              if(myObject.esearch === "thismonth"){
                var today = new Date();
                today.setDate(1);
                var thisMonthStr = this._formatDate(today.getTime(), 'yyyy/MM/dd');
                myObject.esearch = thisMonthStr + "~" + this._formatDate(new Date().getTime(), 'yyyy/MM/dd');
              }
              if(myObject.esearch === "thisyear"){
                var today = new Date();
                today.setMonth(0,1);
                var thisMonthStr = this._formatDate(today.getTime(), 'yyyy/MM/dd');
                myObject.esearch = thisMonthStr + "~" + this._formatDate(new Date().getTime(), 'yyyy/MM/dd');
              }
              if(this.config.layers[myObject.slayer].expressions.expression.length > 0){
                var valuesObj1 = lang.clone(this.config.layers[myObject.slayer].expressions.expression[myObject.exprnum || 0].values.value);
                var values = myObject.esearch.split("|");
                array.forEach(values, lang.hitch(this, function(val, index){
                  if (val.indexOf('~') > -1){
                    var ranges = val.split("~");
                    valuesObj1[index].valueObj.value1 = ranges[0];
                    valuesObj1[index].valueObj.value2 = ranges[1];
                  }else{
                    valuesObj1[index].valueObj.value = val;
                  }
                }));
                html.empty(this.textsearchlabel);
                if(this.config.layers[myObject.slayer].expressions.expression[myObject.exprnum || 0].textsearchlabel !== ""){
                  html.place(html.toDom(this.config.layers[myObject.slayer].expressions.expression[myObject.exprnum || 0].textsearchlabel), this.textsearchlabel);
                  html.style(this.textsearchlabel, 'display', 'block');
                }else{
                  html.style(this.textsearchlabel, 'display', 'none');
                }
                this.paramsDijit.build(valuesObj1, this.resultLayers[myObject.slayer], this.config.layers[myObject.slayer].url,
                                     this.config.layers[myObject.slayer].definitionexpression);
                on.once(this.paramsDijit, 'param-ready', lang.hitch(this, function () {
                  this._queryFromURL(myObject.esearch, myObject.slayer, myObject.exprnum || 0, myObject.close || false, attribOptions.length);
                }));
              }
            } else if(myObject.slayer && !myObject.esearch) {
              var valuesObj2 = lang.clone(this.config.layers[myObject.slayer].expressions.expression[myObject.exprnum || 0].values.value);
              this.paramsDijit.build(valuesObj2, this.resultLayers[myObject.slayer], this.config.layers[myObject.slayer].url,
                                   this.config.layers[myObject.slayer].definitionexpression);
              on.once(this.paramsDijit, 'param-ready', lang.hitch(this, function () {
                if(attribOptions.length > 1){
                  this.selectLayerAttribute.set('value', myObject.slayer);
                }
              }));
            } else {
...
AmalHorchi
Emerging Contributor

hi Robert , 

please how can i use the widget filtre with coded values (domains ) . 

RobertScheitlin__GISP
MVP Emeritus

Amal,

   A coded domain is automatically used by the eSearch if it finds one.

BrianDudek1
Occasional Contributor

What a fantastic widget! Major props.  

As I was exploring it, I was wondering where one would go to deactivate the auto-zoom or even the auto-pan functionality of the results tab upon mouse click of a found feature after a graphical search.  I am still looking in the code.   

The autozoom setting under the layer is turned off, and the autozoom in general settings as well.   

RobertScheitlin__GISP
MVP Emeritus

Brian,

   Strange. When I uncheck "Auto zoom to search results" in the general settings and then use the graphical search it does not auto zoom for me...

BrianDudek1
Occasional Contributor

So even with that unchecked, it doesn't autozoom for you when you click the feature or between the features in the results window?  It is for me.  :shrug:

RobertScheitlin__GISP
MVP Emeritus

Brain,

   The "Auto zoom to search results" setting means that it will or not automatically zoom to the extent of the search results as soon as the search is complete. As far as the widget zooming to the search result when you click on the result item in the widget list this is a default behavior that is no configurable.

DAVIDDAS1
Frequent Contributor

Hi Robert,

 

CONGRATULATIONS!!!

 

Jack announced that you won the 2018 GeoNet MVP Award at the Closing Session of the International ESRI User Conference in San Diego.

 

 

On behalf of the Web Builder Community, a million thanks for all your hard work and passion behind creating, enhancing, and updating all these powerful Custom Widgets.

 

By the next User Conference, the Web AppBuilder will switch from the 3.x JavaScript API to the 4.x JavaScript API, although full parity is not expected.

 

That will be a monumental task for you to rework all your widgets!

JamesCrandall
MVP Frequent Contributor

Congratulations Robert -- well deserved!

RodWoodfordOld
Frequent Contributor

Yep well done Robert.

James_001
Frequent Contributor

Robert,

Congratulation on your 2018 GeoNet MVP Award! You really deserve this!

I was trying to add data in Esearch widget 2.8 from one of our rest map service which have almost 900,000 records. When I added the expression by the unique values it is taking a lot of time to load. I wonder how big the data records(no) can be handled by Esearch widget?

Thanks,

Irfan Afsar

RobertScheitlin__GISP
MVP Emeritus

Irfan,

   Anytime the widget has to retrieve unique values from 900,000 records it is going to take a long time. I don't have a number that I can say is the limit but logically 900K is alot of data.

JeffPace
MVP Alum

Is there a version map that says which version of the widget is compatible with which version of Portal? Thanks

RobertScheitlin__GISP
MVP Emeritus

What I know is Portal is always 2 versions behind WAB Dev. So right now WAB Dev is 2.9 and Portal is 10.6.1 so the WAB version deployed with Portal 10.6.1 should be 2.7.

JeffPace
MVP Alum

And we are always a few versions behind.  I was more looking for
10.5.1 Portal is 2.x

10.6 Portal is 2.y

10.6.1 Portal is 2.z

Since we have to plan ahead before the upgrade

RobertScheitlin__GISP
MVP Emeritus

10.6.1. = 2.7

10.6 = 2.6

10.5.1. = 2.5

10.5 = 2.4

DavidDas__GISP
Frequent Contributor

Hi Robert,

 

 

I have something exciting to share with you on the Web AppBuilder. We had asked for a Widget that will allow us to create Custom Reports. The task seemed too complicated because it is impossible to design a standard template that satisfied everyone.

 

A one-size-fits-all scenario does not work when it comes to designing Reports.

 

Latitude Geographics surprised us with their new Geocortex Reporting 5 software.

 

Anyone can now design Custom Reports via a simple drag & drop interface, position the headers, footers, labels, tables, picture boxes, etc. within the page and save the finished report to their ArcGIS Online Content folder.

 

This finished report can be used within the Geocortex Reporting Widget that works inside the Web AppBuilder.

 

This makes it very easy for the end user to select a feature and run a report.

 

I have a simple demo:

 

http://www.davidapps.net/maps/phones/app274/

 

 

Click on a Park

 

 

Expand the Menu

 

 

Run Report

 

 

Select Report

 

 

Wait for 2 minutes

 

 

Download Report

 

 

You get a professional looking Report of all the Trees within this Park grouped by Common Name with hyperlinks to open Google Search and a Table of Contents to make it easy to browse through this long report.

 

Here is a sample report:

 

http://www.davidapps.net/geocortex/document.pdf

 

Everything works like a charm.

The best part is that you do not have to write a single line of code to create this fancy report.

 

You can also use the Select Widget to select more than one Park.

 

Press Done to close the Reporting Widget.

 

 

Open the Select Widget

 

 

Select two Parks

 

 

21 features are selected

 

 

Expand the Menu and select Run Report

 

 

The Reporting Widget shows that 21 features have been selected.

 

Select the LA County Parks Report

 

 

Wait for 5 minutes.

 

 

Download Report

 

 

View the Report

 

 

 

Everything works like a breeze.

We wanted this feature for such a long time.

Now, this is available to the Web AppBuilder Community.

 

 

Now here is my plea to you.

 

 

Would it be possible to make this 3rd party Reporting Widget work with your Identify Widget and Enhanced Search Widget?

 

 

I know this is asking too much since you are not involved with the Reporting Widget.

However, it would be the icing on the cake if I could somehow use your Enhanced Search Widget to search and zoom to a Park, and then trigger the Report by selecting Run Report from the expanded menu.

 

Let me explain what is happening now.

 

 

Open the Identify Widget (version 2.7)

Use the Extent Tool to select a Park.

Expand the Menu

 

 

Select Run Report

 

 

This triggers the Reporting Widget.

It shows that one feature has been identified.

This is good.

 

However, it shows that no reports are available.

 

 

 Let’s try the Enhanced Search Widget (version 2.7)

 

Search for Elysian Park.

 

 

 

Expand Menu

 

 

Run Report

 

 

This triggers the Reporting Widget.

One feature is found from the Search Results.

However, no reports are available.

 

 

 

I am including the Zipped file of this Website.

It is using the Web AppBuilder Developer Edition 2.8

 

http://www.davidapps.net/maps/phones/app274.zip

 

 

Here is a doc that shows how I created this Website using the Geocortex Reporting Widget.

 

http://www.davidapps.net/geocortex/reportingwebapp.pdf

 

 

The Reporting Widget needs an ObjectID to run the Report.

It works off the selected Object IDs.

 

If there is only 1 feature in the current selection, the report is generated for 1 park.

 

If there are 3 features in the current selection, the report is generated for the 3 selected parks.

 

At the moment, the Reporting Widget seems to work with the standard Web Map Popup and the standard ESRI Select Widget.

 

 

Oh, by the way, I have changed my name from Tapas to David.

This is why my website domain reads davidapps.net

 

 

Hope to see you at the ESRI Dev Summit next April.

 

 

Best regards,

 

 

David

RobertScheitlin__GISP
MVP Emeritus

David,

   It sounds like the report widget is selecting the appropriate report based on the layer id or layer name and because I have the name of the results layer from the identify and eSearch different from the main layer it symbolizes there is no matching report found. One suggestion is to run the eSearch or Identify first and has them add the results layer and then go and configure the report widget to see if it picks up the result layers from the map in the report widgets settings screens. If it does then configure a report and you are good to go. If not then some effort will need to be done to figure out the report widget logic.

DavidDas__GISP
Frequent Contributor

Hi Robert,

 

Thanks a million for your prompt and helpful response as always!

 

Now I have a better understanding of what the Reporting Widget is looking for.

 

I will give your suggestions are try today and let you know my results.

 

Best regards,

 

David

DavidDas__GISP
Frequent Contributor

Hi Robert,

 

 

Thanks for your expert tips on how to make the Geocortex Reporting Widget work with your Enhanced Search Widget and Identify Widget.

 

I played around with these tools this weekend and here are my findings.

 

I started with the new Web AppBuilder Developer Edition 2.9 (July 2018) and added the latest version of all your Custom Widgets as of 8/2/2018.

 

Enhanced Search Widget 2.7, Version 78                             2/23/2018

 

Enhanced Basemap Gallery Widget 2.8, Version 18            5/1/2018

 

Google Street View Widget 2.1, Version 12                         7/20/2016

 

Identify Widget 2.8, Version 31                                            7/6/2018

 

Elevation Profile Widget 2.8, Version 19                             7/23/2018

 

Map Progress Indicator Widget 2.8, Version 11                   7/23/2018

 

Enhanced Bookmark Widget 2.5, Version 8                         8/17/2017

 

Enhanced Locate Widget 2.7.1, Version 16                          2/23/2018

 

Popup Panel Widget 2.9, Version 17                                     8/1/2018

 

In addition, I included these widgets from Kevin McLeod and Larry Stout.

 

Pictometry Widget for ESRI WebApp Builder 1.2 (Kevin McLeod)           10/27/2015

https://github.com/kevinsagis/Pictometry-for-WebApp-Builder

 

 

Google Earth Widget (Kevin  McLeod)

https://github.com/kevinsagis/GoogleEarth

 

 

PrintPlus Widget Version 1.1.6 (Larry Stout)                                   6/12/2015

https://community.esri.com/docs/DOC-3841

 

 

I wanted to start off with a solid template.

 

I had to change the wabVersion value to 2.9 in the manifest.json file of each widget:

 

  "wabVersion": "2.9",

 

Surprisingly, all the Custom Widgets are working flawlessly in the Web AppBuilder Deverloper Edition 2.9.

 

This is great news!

 

This is one of the rare occasions where a Web AppBuilder upgrade has not broken your Custom Widgets.

 

 

I tested this Foldable Template against our Maricopa County Parcel Map.

 

http://www.davidapps.net/maps/phones/app275/

 

 

 

Everything is working a like a charm.

 

Next, I decided to create the simplest possible Custom Report using the Geocortex Reporting software.

 

Since this is a Software-as-a-Service, all you need is to open this URL in Firefox and enter your ArcGIS Online credentials to start.

 

https://apps.geocortex.com/reporting/designer/

 

I created a Parcel Report that only returns the ObjectID and Parcel Number.

 

Next, I opened the Web AppBuilder and added the Geocortex Reporting Widget.

 

Finally, I ran a few tests:

 

 

Web Map Popup

 

 

Click to select a Parcel.

This opens the Web Map Popup

 

 

Expand the Menu Actions and Select Run Report.

 

 

This opens the Geocortex Reporting Widget

 

The Layer Name is correctly identified as Parcel

 

This is critical.

 

The Parcel Report will appear as an option if and only if the selected feature includes a layer named Parcel.

 

 

Click on Parcel Report.

 

Download the Report.

 

 

Press Done and close the Reporting Widget.

 

Here is how the Parcel Report looks like:

 

 

 

Popup Panel Widget

 

Open the Popup Panel Widget

 

Select another parcel and expand the Menu Actions

 

 

Run Report

 

 

Once again, the Layer Name is correctly returned as Parcel

 

 

Select the Parcel Report

 

Download

 

Done

 

 

This works since your Popup Panel Widget mirrors the Web Map Popup.

 

 

Enhanced Search Widget

 

Open the Enhanced Search Widget and select a few parcels with the Extent Tool.

 

 

Expand the Menu Actions

 

 

Run Report

 

 

This opens the Reporting Widget.

The Layer Name is correctly returned as Parcel

Parcel Report shows up as a valid option.

 

 

Click on Parcel Report and Download the Report.

 

The report contains the Parcel Numbers for the 5 selected parcels.

 

 

This is perfect!

 

This is exactly what I was hoping for.

 

Press Done and Close the Reporting Widget

Click on a Search Result.

This opens the Popup Panel

Expand the Menu Actions

 

 

Run Report

 

 

The Layer Name is correctly returned as Parcel.

Click on Parcel Report and Download the PDF file.

 

 

This is excellent.

 

So now we have verified that the Geocortex Reporting Widget works with your Enhanced Search Widget and your Popup Panel Widget.

 

 

Identify Widget

 

Refresh the Web App

 

Open the Identify Widget.

Select a Parcel

 

 

Expand Menu Actions

 

 

Run Report

 

 

Now we can clearly see the source of the problem.

The Identify Widget is returning the Layer Name as Identify Results.

 

The Reporting Widget is configured to look for a layer named Parcel.

Since it cannot find this, it is saying:

 

No Reports Available.

 

 

I understand now why this cannot be easily fixed.

Unlike the Enhanced Search Widget which only works on a single layer at a time, the Identify Widget can return results from multiple layers.

 

This is why the Identify Widget is returning Identify Results as the Layer Name rather than naming any specific layer like Parcel.

 

Potentially, the layer list may contain all of these layers:

 

Parcel

Zip Code

City

Township Range Section

County

 

Your Identify Widget is a simple and excellent tool. I do not wish to mangle this widget for the sake of making it compatible with the Geocortex Reporting Widget.

 

The Enhanced Search Widget is doing the job. This is the Widget that everyone will use to Search for a Parcel, and then they can expand the Menu Actions and Select Run Report to get a detailed Parcel Report with all the Attributes grouped logically.

 

Here are the detailed steps for creating this simple report using Geocortex Reporting:

 

http://www.davidapps.net/geocortex/SimpleReport.pdf

 

Here is the Zipped file for the demo Web App:

 

http://www.davidapps.net/maps/phones/app275.zip

 

 

I am thrilled to find how simple it is to design Custom Reports with Tables, Pictures and Charts and generate these PDF docs directly off your Enhanced Search Widget.

 

All this is like magic to me!

 

I cannot thank enough all the brilliant minds that went into designing these helpful tools.

I cannot believe that all this information for 1.6 million parcels is accessible to the end user on their Smartphones!

 

 

Best regards,

 

David

ZhujingXia
Frequent Contributor

Robert,

I used your enhanced widget, for the search result I could 'Add Result as Operation Layer', this way when I use the print widget the result will be in the printout. I am wondering that would it possible to add the buffer from the spatial search as operation layer? This way I could print out the buffer from the print widget. Right now if I click on the print the buffer graphic is gone.

Thanks

Zhujing

RobertScheitlin__GISP
MVP Emeritus

Zhujing,

   This is already an option in the widgets settings. Go to the buffer deaults > Add the buffer layer to the maps legend

JoshV
by
Regular Contributor

Hi Robert, will the below code work on your eSearch widget?  I'm using multi part graphics and I just want to clear all graphics using the onClose or onDeactivate event.  I've tried adding this.map.graphics.clear(); to your onDeactivate function in Widget.js of (server/apps/21/widgets/eSearch) but it's still not clearing the buffers.  Thanks for any advice.

onDeactivate: function() {
  this.map.graphics.clear();
  this.drawBox.deactivate();
},

RobertScheitlin__GISP
MVP Emeritus

Josh,

   If you are talking about the buffer that the eSearch uses then that is the issue. I do not use the map.graphics layer in my widget I have a specific GraphicsLayer I use for the buffer.

JoshV
by
Regular Contributor

Yes thank you for pointing that out.  What is the name of that GraphicsLayer and how would one clear it's graphics?  Is the onDeactivate function like I mentioned above a good place to do this? 

I see that you've used this.graphicsLayerBuffer.clear(); in Widget.js within the _bufferGeometries function.  I tried adding that in eith the onClose or onDeactivate functions and no luck so far.  Do I need to loop through the graphic container within either of those functions and remove buffers that way?

RobertScheitlin__GISP
MVP Emeritus

Josh,

   It is called "graphicsLayerBuffer" so this.graphicsLayerBuffer.clear(); Yes the onDeactivate should work fine.

JoshV
by
Regular Contributor

Hi Robert, unfortunately that did nothing to the buffers so I must of missed a step.  Below is the onDeactivate function within (server\apps\21\widgets\eSearch\Widget.js).  I'm using WAV dev 2.6 I believe and Portal 10.5, AGS 10.5.  Is there another js file I need to update this code by chance?  After I close the window for the eSearch tool using the upper right X, the buffers I created still remain (screenshot below).  Thoughts?

onDeactivate: function() {
  this.graphicsLayerBuffer.clear();
  this.drawBox.deactivate();
},

RobertScheitlin__GISP
MVP Emeritus

Josh,

   In version 2.6 of the eSearch the onClose onDeactivate functions look like this:

      onDeactivate: function() {
        this.drawBox.deactivate();
      },

      onClose: function () {
        this.drawBox.deactivate();
        this._hideInfoWindow();
        this.inherited(arguments);
        if (!this.config.bufferDefaults.addtolegend) {
          if (this.graphicsLayerBuffer) {
            this.graphicsLayerBuffer.hide();
          }
        }
        if (this.tempResultLayer) {
          this.tempResultLayer.hide();
        }
      },

So if you have the buffer setting set to add to legend then it will not clear when the widget is closed.

JoshV
by
Regular Contributor

That makes sense but unfortunately I do not have "add to legend" checked which makes this even odder.  I'll keep tweaking the code around this area in widget.js and maybe I'll get lucky, thanks

JoshV
by
Regular Contributor

In case anyone is interested, using Robert's idea I modified the code to clear graphics within the onClose function.  Add this code to that function

this.dynamicGraphic = this.map.getLayer(this.map.graphicsLayerIds[1]);

if(this.dynamicGraphic != null) {
this.dynamicGraphic.clear();
}

DavidDas__GISP
Frequent Contributor

Hi Robert,

 

 

Success!

 

 

Your Enhanced Search Widget version 2.7 is working with the Reporting Widget exactly as we expected.

 

I can search for a Parcel by Address or Owner or simply select a parcel by clicking on the map and then expand the Action Menu and select Run Report.

 

This downloads a nicely formatted 5-page PDF doc showing all the Parcel Attributes including external Web Links and a Parcel Map and an Overview Map like this:

 

http://www.davidapps.net/geocortex/ParcelReport.pdf

 

This approach is much more elegant than trying to download a CSV file to an Excel Table.

 

Best of all this entire workflow works on my Smartphone. This will allow the citizens of Maricopa County to access and download all the relevant Parcel Information right on their handheld devices without ever having to step into a County Office.

 

Here is the Web App based on the Foldable Theme of Web AppBuilder Developer Edition 2.9

 

http://www.davidapps.net/maps/phones/app276/

 

 

Let’s locate the County Administration Building based on the Address:

 

 

Enter Address = 301 W JEFFERSON ST

 

 

Expand the Action Menu and select Run Report

 

 

The user gets to select from 3 Report Choices.

 

 

I can also download a report for all Parcels within 200ft of this Parcel.

 

Open the By Spatial Tab and draw a 200ft buffer.

 

 

Select the Intersected By tool

 

 

13 Parcels are found within 200ft of the County Admin Parcel

 

 

Expand the Menu and Run Report.

 

Select Parcel Report with Web Links

 

 

This creates a nicely formatted PDF doc with a Table of Contents for the 13 Parcels that can be viewed on a Smartphone.

 

 

I think this is quite a breakthrough.

 

Before this, there was no elegant way to select, display and download so much information on your smartphone with just a few mouse clicks.

 

This can be used by realtors and prospective buyers to find the selling price of houses within 300ft of their target parcel. It is easy to insert Charts and Graphs into the Report.

 

I hope future upgrades to the Web AppBuilder does not break your Enhanced Search Widget. This has become a critical tool for all our Web Apps.

 

Best regards,

 

David

by Anonymous User
Not applicable

DAVID DAS your post is epic - thank you greatly.  Josh Vickrey‌ thanks I'll add this as well. 

edit: DAVID DAS‌ so I added the "Report Feature" Widget. (which I was wondering about since it is for QA/QC reporting) and do not see 'Run Report' show up in eSearch.  May I ask, what widget exactly do you mean by "Report Widget"? Report Feature? I would think maybe it would more be the Screening widget. So, I added both of these plus Infographic and any other ones that looked relevant.  I added Select, Public Notice (which I couldn't get to work or save oddly) Location and Incident. To no avail, Report does not show up.  (although location and incident do, and they work. That is why eSearch is so amazingly awesome, in how it ties in to the other widgets).   Robert I looked in the Docs and searched Report and did not see indication of it in there. Which Esri widget should I add for Report?

Version history
Last update:
‎11-22-2022 07:31 AM
Updated by: