Leaderboard
Popular Content
Showing content with the highest reputation since 03/20/2024 in all areas
-
Thank you @ParkLoey and @imJihyo! That's very helpful.1 point
-
Hi @ClayG! This seems to be a pretty simple app. Here's my suggestion: create a table where you will put all the booth locations create a table where the system will record who picked what booth create a submission form where vendors will choose a booth and submit a record vendors can choose a booth using a dropdown field which gets the options from the table where you put all booth locations Now, the thing you need to do to make the booth unavailable when a vendor has already chosen it is to use triggered actions. Make the trigger delete the booth on the booth table after it has already been chosen. Here's a sample of the trigger Hope this gives you an idea.1 point
-
Hello, There is an option to set the Y Axis range manually: To change the chart using JavaScript, I found this article that shows some options: https://howto.caspio.com/tech-tips-and-articles/customize-caspio-chart-datapages/ I tried to change that code and I was able to make the Chart to always start from 0 on the YAxis and it seems to work for some Charts. Maybe there is someone else that knows a better approach: <script> document.addEventListener('DataPageReady', function() { var cleaner = function(interv) { clearInterval(interv); } let interv = setInterval(() => { if(typeof Highcharts == "undefined" || !Highcharts.charts.length) return; var seriesLength = Highcharts.charts[0].series.length; var getInsideValue = Highcharts.charts[0].series[0].userOptions.data.length; cleaner(interv); Highcharts.charts[0].yAxis[0].min = 0 Highcharts.charts[0].redraw(); }) }); </script>1 point
-
Need help in trigger
bookish reacted to CoopperBackpack for a question
Hello @bookish, As far as I understood you need to stamp the time when the specific field is updated. The basic approach to track the changes is: 1) To join the Table and the #inserted table on the unique field. This is needed to identify the record that is being updated. 2) To compare the previous value and the new(updated) value. If they are not equal, this means that the value was updated. For example, the 'Update_Date' field will be updated when the 'Name' field is changed. Could you clarify this part 'but not when non-payment fields are updated'? In my understanding, the field you are interested in can be updated along with the other fields. So, if you only need to track the change in the specific field regardless of the other fields, the example on the screenshot should work. Feel free to ask questions if you need further assistance on this.1 point -
Parent and Child Tables Joined in View in Tabular Report - Need a Calculated Sum
CoopperBackpack reacted to JohnNuttDesk for a question
Thank you for the fast and great answer! After reviewing your answer, I was thinking I can also just do a virtual field that is the sum of those two prices. I could also hide those 2 fields. Then I'll see if the normal aggregation allows me to reference the virtual field.1 point -
Triggered action to replace leading character in string on insert
Flowers4Algernon reacted to Roosta for a question
@Flowers4Algernon had already resolved and well aware of triggered actions as use them quite frequently with complex actions this was a specific use case I couldn't quite get the syntax right but thanks for the link.1 point -
Help Formatting Tabular Datapage: Hiding Gridlines & Coloring Headers
MarkMayhrai reacted to CoopperBackpack for a topic
Hello @MarkMayhrai, To add, the background color of the header can be applied/changed under the Styles: Results page > Table Layout > Header Cells > Background Options > Color To color specific cells, you need to refer to the number of the column. For example: <style> /* color the 2nd and 3rd header cell */ form[action*='[@cbAppKey]'] th[class*="cbResultSetHeaderCell"]:nth-child(2), form[action*='[@cbAppKey]'] th[class*="cbResultSetHeaderCell"]:nth-child(3){ background-color: #00d5e4; } /* chnage the styles of the 4th header cell */ form[action*='[@cbAppKey]'] th[class*="cbResultSetHeaderCell"]:nth-child(4){ background-color: transparent; border: none; } </style>1 point -
Help Formatting Tabular Datapage: Hiding Gridlines & Coloring Headers
MarkMayhrai reacted to Volomeister for a topic
Hi @MarkMayhrai Do you have responsiveness on the DataPage enabled or disabled? If it is enabled, you can add the following CSS code snippet to the header of your DataPage: <style> .cbResultSetTable tr th:nth-child(column order number) { background-color: color; } </style> Where the "column order number" represents the column order number. So you need to specify which table header columns must have which background colors in this rule. It will look like this: <style> .cbResultSetTable tr th:nth-child(10), .cbResultSetTable tr th:nth-child(11) { background-color: white; } .cbResultSetTable tr th:nth-child(7), .cbResultSetTable tr th:nth-child(8), .cbResultSetTable tr th:nth-child(9) { background-color: blue; } </style>1 point -
Compare date field to today in Java
CoopperBackpack reacted to BrianI for a question
Thanks it highlights the entire row, my code is working as posted so no need to update. Remove the console.log obviously. Cheers1 point -
Compare date field to today in Java
BrianI reacted to CoopperBackpack for a question
Hello @BrianI, You can try the following: let dueDate = new Date('[@field:due_date]'); let today = new Date(); if(dueDate < today){ //do something } However, it is good to know the use case details, because using SQL instead of JavaScript could be possible.1 point -
Hide section based on field in view
BrianI reacted to CoopperBackpack for a question
Hello @BrianI, It is expected that only editable fields are available https://howto.caspio.com/datapages/forms/conditional-forms/ So, I would use the following workaround. 1) Add a Virtual field, set it as a Calculated Value, and add the Yes/No field as a parameter 2) In a Rule use this Virtual field. Compare with Y or N. Y is for the checked checkbox, N is for the unchecked one. 3) Hide the Virtual 1 field after testing the DataPage.1 point -
Copy Value from Calculated Field to Text Area Field
kpcollier reacted to Volomeister for a topic
Hi @kpcollier The code must be modified. Try the following version: <script> document.addEventListener('DataPageReady', function (event) { document.querySelector('[name="cbParamVirtual1"]').addEventListener("change", myFunction); function myFunction(event) { let calcField = event.target.value; document.querySelector('#InsertRecordBulletin').value= calcField.toLocaleString(); document.querySelector('#InsertRecordBulletin').nextElementSibling.querySelector('iframe').contentDocument.querySelector('body').innerHTML = calcField document.removeEventListener('DataPageReady', myFunction); } }); </script>1 point -
Webhooks for Make.com scenario to run when Caspio data is updated
DesiLogi reacted to Flowers4Algernon for a question
Hello! You may want to look into this video where Ned has used Make.com to connect with Trello:1 point -
Triggered action to replace leading character in string on insert
CoopperBackpack reacted to Roosta for a question
Hello @CoopperBackpack This works perfect thanks, you truely are a Caspio Rockstar and this is greatly appreciated Cheers, Roosta1 point -
Triggered action to replace leading character in string on insert
Roosta reacted to CoopperBackpack for a question
Hello @Roosta, You can use the following approach: the condition checks if the first character is zero and if the condition is met concatenates 44 and the number without the first character. This works if the phone number is stored in the Text(255) field.1 point -
Hello! Caspio releases another new enhancement to the WebHooks feature, refer below: Latest enhancements available to non-HIPAA/Compliance accounts, webhooks can now be: Sent based on table events initiated by triggered actions and tasks. Configured for tables that have triggered actions enabled for the same event as the webhook. Source: https://howto.caspio.com/release-notes/caspio-46-0/#:~:text=Enhancements to Caspio Webhooks1 point
-
Disable A Form For Wrong Entry
CoopperBackpack reacted to bookish for a topic
HI @CoopperBackpack, I used your second script (pop-up message instead of browser alert). It worked! I just had to put the code because if the one booking typically uses CAPS then the form will submit. const nonDietRegex = /room|floor|bedroom/i; if(nonDietRegex.test(textField)) {1 point -
Trying to make a complex View (3 tables, 2 outer joins) and struggling
CoopperBackpack reacted to DaveS for a question
Thanks, @CoopperBackpack - I considered that and agree. I don't have a sense for how big it has to be to be a problem. One table has about 2500 records and is unlikely to see material growth. The other is (basically) a b2b customer table. The result set could be millions of records... but not until I get thousands of (b2b) customers. I'm thinking it would be a good problem to have...1 point -
Updating A Unique Field
bookish reacted to CoopperBackpack for a question
Hello @bookish, My understanding of your workflow is the following: - this is the Submission Form DataPage; - the user populates the 'RecordID' and the 'ACTIVITY_TYPE' fields; - the 'combined_ID' field should store the combination of those 2 values. If this is correct, you can apply the easier solution. Instead of using JavaScript, you can utilize Calculated value. For that, select the 'Calculated Value' Form element for the 'combined_ID' field and add the calculation you need. When the Form element is 'Calculated value', on the Advanced tab there is an option to hide this field: An example with the visible 'combined_ID' field to showcase the approach: If the workflow is different, please provide more details about the DataPage type, and form elements of the fields involved in this workflow.1 point -
Disable A Form For Wrong Entry
CoopperBackpack reacted to bookish for a topic
Thank you so much @CoopperBackpack! I will try it soon (this weekend) and I will let you know how it works for my programs!1 point -
LEN and other SQL operators
KG360 reacted to CoopperBackpack for a question
LEFT() function Syntax: LEFT(string, number_of_chars) number_of_chars passed to the function must be a positive number. Syntax in Triggered Actions/Tasks: Analog of syntax on DataPages/in Formula field: LEFT([@field:Status], 2) Return Type: String Function description: The LEFT() function extracts a number of characters from a string (starting from left). RIGHT() function Syntax: RIGHT(string, number_of_chars) number_of_chars passed to the function must be a positive number. Syntax in Triggered Actions/Tasks: Analog of syntax on DataPages/in Formula field: RIGHT([@field:Status], 5) Return Type: String Function description: The RIGHT() function extracts a number of characters from a string (starting from right). Example of use case: Create a Unique_Username that will be used as a Composite Key and which consists of the first character of the user First_Name, the last character of the user Last_Name, and the User_Pin value. As for the MID() function, it looks like it is used in Excel to get a part of the string. In SQL it is the SUBSTRING() function. SUBSTRING() function Syntax: SUBSTRING(string, start, length) start - The start position. The first position in the string is 1. Can be a negative number. length - The number of characters to extract. Must be a positive number. Syntax in Triggered Actions/Tasks: OR For ‘substring between’ the start value is included in the extracted substring, but the end value is not included. For example, when extracting between 1st and 4th characters, the 4th character is not included: Analog of syntax on DataPages/in Formula field: SUBSTRING([@field:String], 3, 2) Return Type: String Function description: The SUBSTRING() function returns part of a string according to the start position and length provided. Example of use case: Extract the third and fourth characters from the string․ Please note that all these functions are available within one block, just need to select them from the dropdown:1 point -
Disable A Form For Wrong Entry
bookish reacted to CoopperBackpack for a topic
Hello @bookish, You can use the following code instead: <script> document.addEventListener('BeforeFormSubmit', checkValuesHandler) function checkValuesHandler(event){ const textField = document.querySelector('#InsertRecordFIELDNAME').value; //replace FIELDNAME with your field name if(textField.includes('room') || textField.includes('floor') || textField.includes('bedroom')){ event.preventDefault(); alert('Please specify your diet requirement.'); } } </script> You can add more conditions if needed. Just copy this part and replace the keyword. || textField.includes('KEYWORD') You may use an additional tool for displaying pop-up messages instead of the basic browser alert. For that, you can use the following code: <script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script> <script> document.addEventListener('BeforeFormSubmit', checkValuesHandler) function checkValuesHandler(event){ const textField = document.querySelector('#InsertRecordFIELDNAME').value; //replace FIELDNAME with your field name if(textField.includes('room') || textField.includes('floor') || textField.includes('bedroom')){ event.preventDefault(); Swal.fire( '', 'Please specify your diet requirement.', 'warning' ); } } </script> This is an example:1 point -
Hi @BrianI Here is what you can do: 1. Add a checkbox field to your Table A. This checkbox will indicate whether there are related records in Table B 2. Add triggered actions on Table B's insert, update, and delete events. These triggered actions will check or uncheck a checkbox on a related Table A record based on your specified condition. 3. Add an application task that will run once a day to loop through all records in Table A and check if they have related records in Table B with a date after today. 4. Build a view based on Table A to filter out records based on the checkbox. 5. Build report DataPage based on this view1 point
-
Emmanuel Katto Uganda | What is CRM?
emmanuelkatto reacted to oliviacox for a question
Hi Emmanuel Katto, CRM is Customer Relationship Management . It helps to manage customer data. Businesses generate vast amount of data everyday. To manage this enormous amount of data, companies need CRM systems. A CRM system essentially provides a central place where businesses can store customer and prospect data, track customer interactions, and share this information with colleagues. It allows businesses to manage relationships with customers, helping the business to grow. Thanks!1 point -
Graph and exportable table showing expired data
AaronJ reacted to CoopperBackpack for a question
Hello @AaronJ, If my understanding is correct, there is a training date in the table and it is individual (the date depends on the particular employee). You may check the following approach: 1) Create a new Date/Time field. In my example its name is 'Training_Date_Exp': 2) This field can be populated by a Task that runs daily: The logic is to add the date if 12 months have passed. For today, after the Task run, the result is: 3) As a next step you may either create a View that filters records where the 'Training_Date_Exp' field is not blank and build the DataPages based on this View. Or you may filter records directly on the DataPage if the Search is not needed. If you need a different result, please provide more details.1 point -
Hi! In addition to having Font icons such as Font Awesome for labels, you can also apply this in the Header in the Results Page of Report DataPage. To apply in the DataPage, follow these steps: 1. Insert Header and Footer. In the Header, insert the installation CDN <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/js/all.min.js"></script> 2. Search your icon here: https://fontawesome.com/v5/search?o=r&m=free&s=solid 3. Copy code snippets such as <i class="fas fa-users"></i> 4. Paste the code in Labels in the Header where you like to add an icon. Result:1 point
-
Reminder email trigger - stuck
bookish reacted to CoopperBackpack for a question
In case you store all data in one table, for example: Then you may use this Task design: Maybe the Task can be optimized, however these Tasks work from my side. Hope this helps.1 point -
Keep in mind hiding these buttons through CSS will not disable them. If anyone presses 'Enter' they will be able to 'click' the button. You need JavaScript to disable it completely and then use CSS for hiding, or you can use JavaScript for both. For Submission, you do it like: <script> document.getElementsByClassName('cbSubmitButton')[0].disabled = true; document.getElementsByClassName('cbSubmitButton')[0].style.display = 'none'; </script> Update Form/Details Page <script> document.getElementsByClassName('cbUpdateButton')[0].disabled = true; document.getElementsByClassName('cbUpdateButton')[0].style.display = 'none'; </script> If you have multiple forms on a single Webpage, just change 0 to any number depending on the order of the forms, 0 means it's the first form, and so on. If you just really want to hide, then just remove the 1st line.1 point
-
You can actually use @Nuke354 workflow on report datapages with calculated field to make it work conditionally. For example, on your results page , you only want to hide the value of those fields depending on a value from another field, you may try this kind of workflow, 1) at the very bottom of the page, create 2 html blocks. Set them up as described on Nuke's workflow. 2) Create a calculated field there and use a case when formula like this: Case when [@field:indicator] = 1 then 'none' else 'block' end 3) Encapsulate the actual fields you wanted to hide on html blocks. On the HTML block for the top 1, use this kind of html syntax instead: <table style = "display:[@calcfield:1];"> <tr> <td> That should now reflect on the return value of your calculated field. With that, those actual fields will only be hidden base on the condition you set on the calculated field. Hope it helps. quack1 point
-
Hi @vinebath, You can add a Glyph icon with the additional CSS styles and bootstrap library: 1. Open "Search and Report Wizard - Configure Search Fields" screen, where should be at least one field. Create a Header and Footer element and two HTML blocks, where the HTML editor should be disabled. Please look at the screenshot below to see the structure of the DataPage elements: 2. Move to the Header and put the following code there: <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet"> <style> .cbFormTextField { padding-left: 25px; } .inner-addon { position: relative; } /* style glyph */ .inner-addon .glyphicon { position: absolute; padding: 10px; pointer-events: none; } .glyphicon { top: 11px !important; } /* align glyph */ .left-addon .glyphicon { left: 95px; } /* add padding */ .left-addon input { padding-left: 30px; } </style> 3. Put the following code into the first HTML block: <div class="inner-addon left-addon"> <i class="glyphicon glyphicon-search"></i> 4. Put the code below to the second HTML block: </div> 5. The result is the following:1 point
-
Hi, just to add to the previous comment. Yes, Caspio has a disclaimer that says : "This is a Caspio free app. Do not submit passwords or other sensitive data. Report Abuse" this is to ensure that the page is not used as a phishing site since this is a Free account. I also suggest to upgrade your plan and I recommend to review Caspio new pricing plan's resources to ensure the needs of your application. You can visit the newest pricing plan at these sites and for you to not worry about the disclaimer. For Standard Plan:https://www.caspio.com/pricing/standard-edition-plans-features/ For Premium Plan: https://www.caspio.com/pricing/premium-edition-plans-features/1 point
-
Reference to record index in calculated field
Lepidoptera reacted to Mathilda for a topic
You may insert the following java script in the html block: <script> var x=[@cbRecordIndex]; var y=[@field:Your_field]; document.write(x*y); </script> Don't forget to change name of the field in the y variable Cheers!1 point -
Conditionally hide column in tabular report
bookish reacted to wgalliance for a topic
In case anyone comes across this post, I did finally find an answer to my question. If I deploy the style to hide the column in the header of the WEBPAGE (vs header of the caspio page) then I can conditionally hide columns. Based on what page I am on, I hide different columns. Works perfect!1 point -
If it is an update for you should change document.getElementById("InsertRecordcombined_ID").value = res; to document.getElementById("EditRecordcombined_ID").value = res;1 point