Jump to content


Popular Content

Showing content with the highest reputation since 08/15/2019 in Posts

  1. 3 points
    Hi @bbewley, @kpcollier, You may try using this JS which should go to the Footer: <script type="text/javascript"> function formatAsDollars(el) { el.value = el.value.replace(/[^\d]/g,'').replace(/(\d\d?)$/,'$1').replace(/^0+/,'').replace( /\d{1,3}(?=(\d{3})+(?!\d))/g , "$&,"); el.value = el.value ? '$' + el.value : ''; } let fields = ["FIELD_1", "FIELD_2"]; //specify your fields here fields.forEach(element => { element = "InsertRecord" + element; // replace "InsertRecord" with "EditRecord" for Details/Single Record Update DP document.getElementById(element).onkeyup = function() { formatAsDollars(this); } document.getElementById(element).onchange= function() { formatAsDollars(this); } }); </script> Pay attention to comments. Hope this helps. Vitalikssssss
  2. 3 points
    Hello I want to share something with you guys again. Back then when I only have an 'explore plan', I'm using this workflow to send acknowledgement/notification emails on different persons base on a value of a field in my submission form. My workflow back then is I have a submission form for job applicants. I want to send an email to a certain member of my company depending on which position the applicant is app laying. for example. If the applicant is applying for a staff position, there will be an email an email send to staff manager, If the applicant is applying for an agent position, there will be an email an email send to agent manager. etc... This could easily be done via trigger but since it was unavailable on explore plans. This is what I did. First I made a lookup table containing the emails of the designated managers where I used the job they are managing as a unique field. Then on my submission form. I made a virutal field and set it as a cascading dropdown that is using the field for the position the user is applying for as a parent field and used the table containing the emails of the managers as a lookup table. I enveloped this virtual field with html blocks with html codes for hiding fields. please see this documentation for reference : https://howto.caspio.com/tech-tips-and-articles/common-customizations/how-to-hide-fields-in-datapages/ and https://howto.caspio.com/datapages/datapage-components/cascading-elements/ . Now that it was hidden, we will now proceed to the messaging options. It is up to you to chose if you want an Notification emails or Acknowledgement emails. As I check It works with any of them as long as you are going to use the virtual field with cascading value as the field reference for email. It will now send an email on different person depending on what job the user is applying to. I hope it helps anyone. Also please comment if you have a better idea. Quack
  3. 2 points
    Just leaving this here ... <script> document.addEventListener('DataPageReady', function(event) { function hideControlsForPerson() { var table = typeof document.getElementsByClassName("cbResultSetTable" + event.detail.uniqueSuffix)[0] == "undefined" ? document.getElementsByClassName("cbResultSetTable")[0] : document.getElementsByClassName("cbResultSetTable" + event.detail.uniqueSuffix)[0]; // Find the index of the last column, which happens to be the inline edit/delete var total_num_columns = table.rows[0].cells.length; var controlsColumnIndex = total_num_columns - 1; //position of the column with inline edit/delete // Find the index position of the column by searching the column's label row = table.rows[0]; var i; var KeyColumnIndex; for (i = 0; i < total_num_columns; i++) { if (row.cells[i].textContent == 'Label_of_Target_Field') { KeyColumnIndex = i; i = total_num_columns; // this is essentially to exit the loop } } // Iterating through rows and hiding Content for (var i = 1, row; row = table.rows[i]; i++) { if (row.cells.length > KeyColumnIndex && row.cells[KeyColumnIndex].textContent !== '[@authfield:Name]') { row.cells[controlsColumnIndex].style = "display:none;" } } } hideControlsForPerson( ); }); </script> Note: " row.cells.length > KeyColumnIndex " was added to the if statement to protect against an uncaught TypeError that happens if using a date rollup or other field grouping.
  4. 2 points
    An Agent from Chat support gave me this doc. Its not official but I hope it helps quack: Table Variables .pdf
  5. 2 points

    How to get the file size

    Hello @CoopperBackpack You may use additional JS code to implement this workflow: <script type="text/javascript"> document.addEventListener('DataPageReady', fileInputEvent) function fileInputEvent() { document.querySelector("#InsertRecordFile_f"),addEventListener('change', fileInputHandler); // use the InsertRecord[your file field name] instead document.removeEventListener('DataPageReady', fileInputEvent) } function fileInputHandler(event) { const fileSizeInput = document.querySelector('#InsertRecordFile_size'); // use the InsertRecord[your file size field name] instead fileSizeInput.value = event.target.files[0].size; } </script> Insert this code into the header of the submission form. Do not forget to disable the HTML editor. For the file size field use the Number data type. You also may make the size field hidden in the submission form.
  6. 2 points
    You may use the code below to hide fields in the new responsive feature <table style = "display:none;"> <tr> <td> FieldA FieldB </td> </tr> </table>
  7. 2 points

    onsubmit not working

    Hi @Johnn, You can use FormSubmitted event handler. I saw it in the howto article: https://howto.caspio.com/datapages/ajax-loading/ <script type="text/javascript"> document.addEventListener('FormSubmitted', function(event) { alert('Submitted'); }); </script>
  8. 2 points
    Please ensure that you don't have referential integrity enabled in you table relationship. According to the note in https://howto.caspio.com/tables-and-views/triggered-actions/:
  9. 2 points
    Hi @roattw If this is a submission form I assume you mean something like this; Where you can have headings over each section? If so you can split the form up into sections with columns to suit and have HTML block in-between their own sections set at 1 column to span the page like this; This is one column proceeded by the HTML block with the next section containing the submission form fields; You will have to experiment (a lot!) to get decent results and spacing for your whole form as if you start mixing section columns other then 1 and X (in my case X = 5) it will space them to overcome this I either used columns of 1 or 5 and if required less then 5 used 1 and had the elements continue on the same line. Your other option would be to build a full HTML table within the HTML block something similar to this; <style> .wrapper { background-color: lightgray; padding: 5px; } td { padding: 10px; } </style> <table border="0" cellpadding="1" cellspacing="1" style="width:100%;"> <tbody> <tr> <td><strong>Some Data 1</strong></td> <td><strong>Some Data 2</strong></td> <td><strong>Some Data 3</strong></td> </tr> <tr> <td class="wrapper">[@field:Some_Data_1]</td> <td class="wrapper">[@field:Some_Data_2]</td> <td class="wrapper">[@field:Some_Data_3]</td> </tr> <tr> <td><strong>Some Data 4</strong></td> <td><strong>Some Data 5</strong></td> <td><strong>Some Data 6</strong></td> </tr> <tr> <td class="wrapper">[@field:Some_Data_4]</td> <td class="wrapper">[@field:Some_Data_5]</td> <td class="wrapper">[@field:Some_Data_6]</td> </tr> </tbody> </table> Which would result in something like; Again you would have to experiment with layout to match the rest of your form/fields but may be a possible solution but without seeing exactly what you want as an end result its a bit hard to offer any further advise. Good luck, Roosta
  10. 2 points
    Ha! I got this working. I missed the step of having to name the ID for the No Results Message in Localizations. If someone else needs to change the header message when no results are found, this is how. I found some clues using this online help page, https://howto.caspio.com/integration/map-mashup/hiding-the-map-when-no-results-are-found/ Go to Localizations and choose the language you're using, and go to #351 No Records Found. Add a custom message if there isn't already one, and put a div tag around it with an ID, mine is "norecord" for this example. Then add another div tag around the header content you want to change and also give it an ID, ID="HOW" for this example. Then add this code to the footer of your Configure Results Page Fields: Match whatever names you give the respective fields to the IDs in the code below. <script type="text/javascript"> if (document.getElementById("norecord")) { document.getElementById("HOW").innerHTML = "THE NEW CONTENT YOU WANT DISPLAYED WHEN THERE ARE NO RECORDS"; } </script> This new content will overwrite whatever content is in the <div> named HOW when the search returns no results. If you're adding HTML to the new content, you need to escape all your quotes or it won't work. I made that mistake. In a link example, it would be: <a href=\"http://mywebsite.com\">Visit my website!</a>
  11. 2 points
    You can use the code below as a reference. <script type="text/javascript"> document.addEventListener('DataPageReady', function (event) { var c_checkbox = document.getElementById("selectAll") ; var elementID = event.detail.uniqueSuffix; function c_event () { if (c_checkbox.checked) { var listBox = document.getElementById('Value1_1' + elementID); for (i = 0; i < listBox.options.length; i++) listBox.options[i].selected = true; } else { var listBox = document.getElementById('Value1_1' + elementID); for (i = 0; i < listBox.options.length; i++) listBox.options[i].selected = false; } } c_checkbox.onclick = c_event; }); </script> Add this in your search's footer with the HTML editor being disabled. Just make the necessary changes for your form elements' ID attribute. You may use this guide for that.
  12. 2 points
    Hello Batchini! Well, there would be two ways how to create this. If we're going to use trigger, this may be a complex one. One easy way I thought of is with the use of Calculated Fields, but this would only be on a DataPage Level. You can use this formula to get the Minimum Value. SELECT MIN(FieldName) FROM Child WHERE ID = target.[@field:FieldID] Assuming if you have a foreign Key inside your child table. So we'll be using this formula to display the minimum value, Datasource would be your parent table. I hope this helps. Scar();
  13. 2 points

    Set condition to Yes/No field

    It is possible to set checkmark condition using Calculated Value. The field should be set as Calculated Value The basic formula to set the condition is: CASE WHEN [@field:IntegerValue]=100 THEN 'X' ELSE 'Y' END For Yes/No field, the boolean value us 1/0. However, to make it work properly, the field should receive BIT value. So, CAST function should be applied: CASE WHEN [@field:IntegerValue]=100 THEN CAST(1 as bit) ELSE CAST(0 as bit) END
  14. 1 point
    Thanks @Vitalikssssss, I am assuming I will need to add the SAML app on G Suite's side, but mostly I was just checking if there was any other option eg just going with Google as a scoail login and restricting the domain or similar. We will set up the SAML app in G Suite and then work on figuring out the necessaries for Caspio, and I'll come back here and share our experience when it's done. Or abandoned :o)
  15. 1 point

    Users not completed form

    Hello @drmt1979, one possible way that I can think of to achieve this is to create a Triggered Action that will stamp the status of the entry as 'completed' upon submit and then you may create a view to filter out the users that have not completed the form based on the status field. You may check the following articles for reference: Triggered Actions - https://howto.caspio.com/tables-and-views/triggered-actions/ View - https://howto.caspio.com/tables-and-views/what-are-views/ I hope this helps. Cheers!
  16. 1 point

    Word Count

    Hi @Batchini, I have came up with another solution which can achieve this workflow. First Add a Virtual Field then call the Text Area which rich text editor is enabled in the Virtual field. Here's a sample screenshot for reference: You can Hide the Virtual field. Please refer to this screenshot on how to do so: Lastly, add a Header and Footer. On the Footer paste this code: <div id="writing" style="width:90%; text-align:center; margin:0 auto 15px auto; font-size:11px; font-family:sans-serif; color:#000; padding:0 5%"> Total Word Count: <span id="cnt" style="color:red;">0</span> </div> <script type="text/javascript"> document.getElementsByName("cbParamVirtual1")[0].onchange=function() { var string = document.getElementsByName("cbParamVirtual1")[0].value; var wordcount = string.split(/[^\s]+/).length - 1; document.getElementById("cnt").innerHTML = wordcount; }; </script> 'cbParamVirtual1' should be changed based on what virtual field you're using. I hope this works. Thanks, Barbie
  17. 1 point
    Hi @JayDub, If you want to select data from a View, you should add prefix _v_ to the View name. More details can be found here: https://howto.caspio.com/datapages/reports/advanced-reporting/calculations-in-forms-and-reports/ You can join as many tables in the Select statement in the Calculated field as needed. The syntax is the same as in the SQL. However, it will be easier to refer to the View.
  18. 1 point

    Parameters Picker Contents

    Thanks, that was the problem. That's embarrassing. I figured it was something simple. Oh well, I always learn most through the mistakes. Now, I know to look for the descriptor after the "Search and Report Wizard." I'm sorry to bother you.
  19. 1 point

    Datapage Tabular Report Row Click Event

    The rows in a tabular datapage report display colors when they are clicked to highlight the chosen row. Is the event for this exposed so I can attach a javascript event listener and extract data from the selected row ?
  20. 1 point

    Change color of the column in chart

    Hello, you can also try getting the nth child but will be a static change of color display. But since the chart will always return the blank in the first line, we can always modify the 1st one to be set as orange. Try pasting this to the header as well: <style> rect.highcharts-point.highcharts-color-0:nth-child(1) { fill: #ffd3a8; } </style> If you want to also apply different colors to the other values, change the bold number to any desired displayed number and it should work as expected.
  21. 1 point
    I would like to format the auto-email on submit of an update form as neatly aligned table Vendor Number [@SA_Vendor_ID] Invoice Number [@MS_InvNo] Current Date [@Date()] Total Amount [@MS_InvAmount] Currency (fixed “USD”) SES Number [@MS_SESNo] PO Number [@SA_Purch_Order] How can I make this happen?
  22. 1 point
    Hi @vanderLeest, In order to format the content of the auto-email, I suggest that you select HTML, instead of Plain text. Then, click the expand button to display more options.
  23. 1 point

    Login / Logout / Timeout

    Can someone point me to some clear understanding of the Logout Destination Timeout and redirection Login redirection on success parameters found in the Advanced Settings section of Authentications? They would appear to be intuitive, but they are not. I cannot find a clear understanding of these values or how and when to use them. And I am pretty sure they are causing me some problems. I have created a stand-alone Login page with guidance from the Caspio online help and use the following code: <script> if("[@authfield:tbl_Users_IAMgmt^]" == "Yes"){ window.location = "https://www.google.com"; } else if ("[@authfield:tbl_Users_CollegeRep^]" == "Yes"){ window.location = "https://www.yahoo.com"; } else{ window.location = "https://www.bbc.com/news"; } </script> Clearly, I have changed the destination URLs from my live site for security reasons, but the point is that different users go to different sites. But I think I am being hindered by the settings of the parameters above. When I changed the LOGIN REDIRECTION ON SUCCESS to CASPIO.COM, that's where I went regardless of who I logged in as. It was if the code above was simply ignored. And if you tell me WHAT to do, please at the same time tell me WHY to do it. Thank you in advance. Any assistance is appreciated.
  24. 1 point
    Caspio Bridge 21.0 release brought a Tasks\Trigger enhancement which solve this case without complex Trigger\Tasks. There is a new block added to Triggered Action called "Table variable" which forms a table. You can insert table variable into email body and it will be formed link a table (HTML format enabled): Hope it helps someone.
  25. 1 point
    I just got back to this and started looking everything over - particularly where this "function displ()" was coming from. In my footer on the datapage I had long ago commented out some old javascript code which was either used for testing or something. After needing to re-embed the datapage due to the old embed code no longer functioning, this commented out javascript is what started to cause the issue. I removed this javascript and everything works fine now. Thank you for pointing me in the right direction by asking me to check the code for errors in the Chrome debugger - that is what found the culprit:) Ron
  26. 1 point
    This is an expected result when your tables are shared with other app. Objects that are shared with your other apps will not be deleted when you delete an entire app.
  27. 1 point
    You will definitely want someone that is proficient in JavaScript. That is a BIG one with Caspio. There are a lot of things that Caspio is missing in their 'standard' features, and they all seem to be do-able in JS. HTML and CSS is pretty much a given. If they are good at JS, they'll know how to mess with these. Python might be a nice asset for APIs, but again, someone good can do it with JS. Knowledge of some SQL will definitely help with expressions and queries for Calculated Values and Formulas, etc. But that stuff is easier and Live Chat can help with this a lot more than they can with JS. TLDR; You won't need as much of a 'Database Manager', but more of a 'JavaScript Expert'. A hard part is going to be getting an experienced developer wanting to actually work with Caspio. It is a great platform for people who are starting out and don't know much about programming, but for an expert, it could really be troublesome getting them onboard to work with something like this.
  28. 1 point
    Hi @kpcollier, Try the following JavaScript: <script type="text/javascript"> function formatAsDollars(el) { el.value = el.value.replace(/[^\d]/g,'').replace(/(\d\d?)$/,'$1').replace(/^0+/,'').replace( /\d{1,3}(?=(\d{3})+(?!\d))/g , "$&,"); el.value = el.value ? '$' + el.value : ''; } var fields = ["Subtotal", "MarkUp", "County_Tax", "Misc_Percent", "Freight_Total"]; //specify your fields here fields.forEach(element => { element = "InsertRecord" + element; // replace "InsertRecord" with "EditRecord" for Details/Single Record Update DP document.getElementById(element).onkeyup = function() { formatAsDollars(this); } document.getElementById(element).onchange= function() { formatAsDollars(this); } }); function calculate() { var subTotal = document.getElementById("InsertRecordSubtotal").value.length == 0 ? 0 : (parseFloat(document.getElementById("InsertRecordSubtotal").value.replace(/[$,]+/g,""))); var markUp = document.getElementById("InsertRecordMarkUp").value.length == 0 ? 0 : (parseFloat(document.getElementById("InsertRecordMarkUp").value.replace(/[$,]+/g,""))); var countyTax = document.getElementById("InsertRecordCounty_Tax").value.length == 0 ? 0 : (parseFloat(document.getElementById("InsertRecordCounty_Tax").value.replace(/[$,]+/g,""))); var miscPerc = document.getElementById("InsertRecordMisc_Percent").value.length == 0 ? 0 : (parseFloat(document.getElementById("InsertRecordMisc_Percent").value.replace(/[$,]+/g,""))); var freight = document.getElementById("InsertRecordFreight_Total").value.length == 0 ? 0 : (parseFloat(document.getElementById("InsertRecordFreight_Total").value.replace(/[$,]+/g,""))); var markUpTotal = document.getElementById("InsertRecordMarkUp_Total").value = (subTotal) * (markUp); var countyTaxTotal = document.getElementById("InsertRecordCountyTax_Total").value = (subTotal) * (countyTax); var miscPercTotal = document.getElementById("InsertRecordMisc_Percent_Total").value = (subTotal) * (miscPerc); var total = document.getElementById("cbParamVirtual1").value = (subTotal) + (markUpTotal) + (countyTaxTotal) + (miscPercTotal) + (freight); var dp_el = [ document.getElementById("InsertRecordMarkUp_Total"), document.getElementById("InsertRecordCountyTax_Total"), document.getElementById("InsertRecordMisc_Percent_Total"), document.getElementById("cbParamVirtual1") ]; dp_el.forEach(element => formatAsDollars(element)); } setInterval(calculate, 1500); </script> Regards, vitalikssssss
  29. 1 point
    Hi @Yusuf, I suggest that you review this forum post: I tried this solution on my end and it works!
  30. 1 point
    Hi, We have also experienced this kind of message when we try to access our Web forms in Safari browsers. We asked Caspio Support for some assistance about this. As per them, "We have noticed that after the recent release of iOS 13, some users with Safari version 13.x have reported intermittent issues signing into Caspio applications. We are monitoring each iOS/Safari release so we can provide a solution that will fully support a stable release of Safari. Caspio has added an overlaying message on Safari browser (only v.13+) that is used to access DataPages: “This version of Safari is not fully supported. Please use a different browser (e.g. Chrome, Firefox, Edge).” This message can be configured/removed in Localization of the DataPage." One of there suggestion is if users are experiencing login issues after closing the message, following steps may help resolve this issue: 1. Go to Settings in your device. 2. Choose Safari. 3. Under Privacy & Security, click Clear History and Website Data. 4. Close all Safari windows and re-launch Safari. And also, there's a way to remove the popup message that shows up on Caspio DataPages in Safari browsers. Please follow these steps: 1. Edit Localization associated with your DataPage. 2. Scroll down to System Messages on the left. 3. Choose element 615 with the current message: This version of Safari is not fully supported. Please use a different browser (e.g. Chrome, Firefox, Edge). 4. Go to Custom Text area and remove the message: "This version of Safari is not fully supported. Please use a different browser (e.g. Chrome, Firefox, Edge)." 5. Save the Localization. 6. If you have redirections mentioned in Authentication, then edit Localizations of those DataPages as well. I suggest to make a copy of the Localization attached to the DataPage and apply changes in the copied version. Assign the copied Localization to the DataPage.
  31. 1 point
    With the recent Caspio Release 20, the features Variables and Loops on Triggers and Tasks should make this possible. This workflow is pretty advanced, the following are pre-requisites: 1.) Auxiliary (aux) table 2.) An Autonumber field in the table you would be selecting against. (Timestamps would also do, if they can be unique. But let's stick with autonumber. It's much simpler.) Below is a Trigger demonstrating this implementation. On an aux table, create an OnInsert Trigger, that: 1.) Instatiates variables: a. init (min autonumber), b. len (max autonumber), c.) ConcatText (placeholder of the concatenated Email text), d. counter (optional. To count the number of records involved) 2.) Loops through the TABLE we are selecting against, whilst concatenating the involved records. The WHILE loop does magic tricks to select the next lowest autonumber per iteration. 3.) Optional. Update the #inserted.EmailContent with the ConcatText 4.) Actually send the email. This works well on my end. *Except for the counter part. Haha. I just added that last minute. I'm too occupied in making this post comprehensible. Sorry for my bad English. Kidding aside, the EmailContent works well on my end*. ===== You can extend this trigger, perhaps, by: 1.) Adding WHERE clause to limit your DataSets 2.) Create a TASK to insert to this Aux table, therefore effectively creating reminders to your end-users. I hope this helps. DN31337
  32. 1 point

    User Authentication Failed

    @Alison, Thanks for your reply. Your comments regarding the Authentication configuration made me realize what the problem was. The authentication Caspio method automatically chose the UserID and password for authentication. However, the UserID was the autogenerated unique record number, not the Username, which I was inputting. I changed the method to use the Username and all worked fine! Thanks again for answering.
  33. 1 point
    Hello @Sherif To implement such a formula you may use modulo division. The formula should look something like this: CAST( ((FULL_AMOUNT_OF_MINUTES - FULL_AMOUNT_OF_MINUTES % 60) / 60) AS NVARCHAR) + '.' + CAST( ((FULL_AMOUNT_OF_MINUTES % 60) * 100 / 60) AS NVARCHAR)
  34. 1 point
    Hello @Sherif The formula should look something like this: DATEDIFF( hh, (SELECT TOP 1 (Name_Of_Your_Date_Field) FROM Your_Table_Name WHERE Name_Of_ID_Field = target.[@field:Name_Of_ID_Field] AND Name_Of_Your_Date_Field < target.[@field:Name_Of_Your_Date_Field] ORDER BY Name_Of_Your_Date_Field desc), target.[@field:Name_Of_Your_Date_Field] ) This formula selects the last one entry with the same ID you have entered and return the difference in hours between submitted date and selected date.
  35. 1 point
    Hi @Ed727, I assume that you have both Datapages deployed on a web-page with an embed method. You can use a JS which clicks on Submit button if my assumption is correct. Here a a code which you can use on web-page: <script> function submit () { document.querySelector("input[id*='Submit']").click(); } setTimeout(submit, 5000); </script> Hope this helps. Regards, vitalikssssss
  36. 1 point

    Word Count

    • Use the same code, but change where it says "myFunction" to another name .. like "myFunctionB" or similar. Make sure to change all occurrences of it. • Also change the ID of the <span> tag to "cntB" and then change that in the script code too, so your counter text goes to the right area. • Finally - also change the target text area name, as you did earlier, to match what new text area field your targeting... Make sure and change all occurrences of it. LMK if this works.
  37. 1 point

    data transfer

    Hi Vitalikssssss - I didn't find the answer I just want to know how much data is used by every search? Is that calculated by the size of the records? p.e. if by a search I get 20 records as result does that count as more data transfered then if the result is only one record?
  38. 1 point
    @GWBjr Try this expression: 'www.' + Substring([@field:Email], ((Charindex('@', [@field:Email]))+1), Len([@field:Email])) Regards, vitalikssssss
  39. 1 point

    Line Break in Calculated Field

    Hi, I believe you can put a literal line break in Calculated Fields. As shown in the screenshot below, I've tested it and it works. [src="carl.js"]
  40. 1 point
    Java scrip will not get disabled if you disable AJAX, but you need to adjust the code to work. For instance if you are using Caspio event handlers you need to replace them. Refer to this https://howto.caspio.com/release-notes/caspio-bridge-13-0/13-0-impacted-areas/. You need to reverse your code back.
  41. 1 point
    Hi @kpcollier, You can use "start with" type of comparison in query selector like this: document.querySelector("input[id^='InsertRecordPrimary_Address']").value; The whole code would look like this: <script type="text/javascript"> document.addEventListener('DataPageReady', function (event) { function f_address(){ if(document.getElementById('cbParamVirtual4').checked) { document.querySelector("input[id^='InsertRecordBilling_Address']").value = document.querySelector("input[id^='InsertRecordPrimary_Address']").value; document.querySelector("input[id^='InsertRecordBilling_City']").value = document.querySelector("input[id^='InsertRecordPrimary_City']").value; document.querySelector("input[id^='InsertRecordBilling_State']").value = document.querySelector("input[id^='InsertRecordPrimary_State']").value; document.querySelector("input[id^='InsertRecordBilling_Zip']").value = document.querySelector("input[id^='InsertRecordPrimary_Zip']").value; } else { document.querySelector("input[id^='InsertRecordBilling_Address']").value = ""; document.querySelector("input[id^='InsertRecordBilling_City']").value = ""; document.querySelector("input[id^='InsertRecordBilling_State']").value = ""; document.querySelector("input[id^='InsertRecordBilling_Zip']").value = ""; } } document.getElementById('cbParamVirtual4').onclick= f_address; }); </script> Regards, vitalikssssss
  42. 1 point

    Dropdown value

    Hi @Batchini, You can put this &nbsp; on your Display and remove the Value of it.It will now give you a blank value in your drop down option. &nbsp; is an HTML character for a non-breaking space. It's purpose is so that the words won't be broken into two lines by "word-wrap". Since it does that, HTML renders it as a space. Hope this helps. -Barbie
  43. 1 point
    Just to add, you may also use the AutoComplete form element and configure it with the below settings.
  44. 1 point

    Change color

    You could change it to this. <style> td[class*="cbResultSetData"]:nth-of-type(9){ color: red !important; } </style>
  45. 1 point

    Bar Chart X-Axis Value

    Hi @taylorswiftlover, For you to be able to achieve your workflow, you need to add another X-axis on your Chart DataPage. Please refer to the screenshots: 1. Choose the 'Use a separate field for each series' in the Data Source settings: 2. Add another X axis: 3. Change the Formatting of your X-axis: Hope this helps. - Barbie
  46. 1 point
    How can I format the Name in a reverse order by displaying first the first name instead of Last Name. My table has client' last name and first name in the same field, listed with last name first, with a comma, ie, Balot, Kevin. I want to reverse the name, keep them in one field, but put first names first, with no comma, ie, Kevin Balot Is there a way to do that automatically so I don't have to make the changes manually?
  47. 1 point

    Centered Report Search

    Or you can add this line on your CSS> <style> table[class*="cbFormTable"] { border: none !important; background: white; margin: 0px auto !important; } </style> Hope this helps. =)
  48. 1 point

    Centered Report Search

    Hi @joneslovescaspio, You can add the center tag and the close tag of center in the header and Footer. So basically, in your header, you need to paste this <center> <style> table[class*="cbFormTable"] { border: none !important; background: white; } </style> and in the footer just paste the end tag of center. </center> Please note that I just added a sample design for your search form using CSS. You can also change that based on what design you prefer. Hope it works. -Barbie
  49. 1 point

    Select Distinct Records

    Hi @bbeshlian, The solution for this issue is to use a table which has ID field marked as unique field in the table. Use this field as the data source of your report DataPage. To show the rest of the fields in the report, use calculated fields with SQL queries to query the view based on the same ID value. Be sure to include a Where condition which will help only pull a certain record for the respective ID value. When using a view in the calculated field, add '_v_' to the name of the table like shown below: select field_name1 from _v_viewname where field_name2='..........' I hope that helps. Regards,
  50. 1 point

    Auto Submit Dropdown

    <script type="text/javascript"> document.addEventListener("DataPageReady", function(event) { var dropdownvalue = document.getElementById("DropDownID").value; if (dropdownvalue == "THISOPTION") document.forms["caspioform"].submit(); )} ; </script>
  • Create New...