Jump to content

TsiBiRu

Caspio Guru
  • Content Count

    116
  • Joined

  • Last visited

  • Days Won

    6

Reputation Activity

  1. Like
    TsiBiRu got a reaction from 180029 in Is CASPIO worth it?   
    Hi @mickenzy,
    Just to add up to the previous comment above, I think this platform is a great platform. It is a low-code or no-code platform that is designed for the businessman or individual with minimal or no technical knowledge at all in coding/programming. This platform will allow us to translate our business ideas to fully functional Applications by only using their point and click interface. 

    Learning to use the platform is not difficult, they have a lot of learning materials that you can use to familiarize with the features of this platform and fully. 
    Caspio also offers free instructor-led training sessions multiple times per week. These online training can help you get up and running quickly. You can sign up in these training sessions here: https://www.caspio.com/training/ or watch the pre-recorded training sessions at http://howto.caspio.com/pre-recorded-live-training/   
    And in addition to that, you can review some of our training materials for you to familiarize Caspio's features. 
    https://howto.caspio.com/
    https://www.youtube.com/user/CaspioInc
    https://www.caspio.com/training/
    And they also have Ready-made applications that showcase the features of our platform. You may want to visit them at https://www.caspio.com/apps/ to find workflows that may suit your applications need.

    To sum it up, Caspio is worth the shot. If you are having doubts about using this platform, what I can suggest is you sign up for their 14 days trial so that you can evaluate the platform for your self. Once you sign up to their Trial account a Solution Consultant will be assigned to your account, and he/she can even demonstrate you the features of this platform and help you jumpstart your project with Caspio.

    And the best thing about their Trial account is it is completely FREE, no cards needed to create a trial account! And if you still need more time to evaluate the platform you can try to communicate to the solution consultant that is assigned to your account to request for your trial to be extended for a few days or even a week. And you can also subscribe/convert your trial account to their FREE plan, which will not cost you anything at all.

    You can sign up to their Trial Plan at this Link

    I hope this helps.

    Regards,
    TsiBiRu
  2. Like
    TsiBiRu got a reaction from LittleMsGinger in Display a warning message and stop form submission   
    Hi @VA123,
    You can try to use my code below, I've created a Submission form with two text box. If you have inputted 'ABC' on the first text field and 'XYZ' on the second field it will throw an error message. Else the form will be submitted. This is the deployed URL so that you can see how it works.  https://c5eib829.caspio.com/dp/d90b6000106528eabab84e64b6ea

    This is the code that I've formulated, I think you can use the code below, you will just need to change the ID of my text box, to the ID of your fields in your DataPage.  
    <script> document.querySelector('#caspioform').onsubmit = function(e) { e.preventDefault(); input1 ="ABC"; // Just replace the ID of your fields in document.getElementById("ID of your field").value; var input1= document.getElementById("InsertRecordValue1").value; var input2= document.getElementById("InsertRecordValue2").value; if (input1 =="ABC" && input2 =="XYZ" ){ alert('You cannot have ABC in the first field, and XYZ in the second field'); } else { this.submit(); } } </script> I hope this helps.
    Regards,
    TsiBiRu
  3. Thanks
    TsiBiRu got a reaction from kpcollier in Client Database Configuration   
    Hi @kpcollier,
    To test if the code is working, I would suggest to look in the URL and see if the parameter contains a value.
    If it has a value, then it only confirms that there is nothing wrong with your code. We just need to fix this on the receiving part and ensure that we are receiving it using the exact variable name [@val] in this example

    In regards to your second question, you will simple need to add a new HTML block to and create a new/2nd drop-down
    <!-- As you can see, I've added '2' in my id below id='2[@field:Listing_ID], this is to diffrentiate it with our first dropdown so that we can target it correct using its repective id. To make it simple, 2 is just a prefix to indicate that it is the second dropdown of the row ex: id of row is 2 first drop-down ID:2 second drop-down ID:22 and ... --> <select id='2[@field:Listing_ID]'> <option value="[@field:Address]">[@field:Address]</option> <option value="[@field:Address_Line_2]">[@field:Address_Line_2]</option> </select> Then we will just need to add some code in our JS to capture the selected  value of our second value, and to add it to our query string
    <button type="button" onclick="myFunction([@field:Listing_ID])">Click me</button> <script> function myFunction(x) { // Getting the value of the first drop-down var e = document.getElementById(x); var strUser = e.options[e.selectedIndex].value; // Getting the value of the second drop-down var f = document.getElementById('2'+x); var endUser = f.options[f.selectedIndex].value; window.location.replace("https://www.google.com?val=" + strUser + "&val2="+endUser ); } </script>  
    I've also added in this response a copy of the DataPage that I've updated, it now contains two drop-down per row/record.  And the selected value of this drop-downs is being passed to my test site (google.com). You can download it to your account so that you can review the code, and see how it works
    if you will be encountering some issue implementing this solution, you can just provide me with an exported copy of your Datapages (Sending & Receiving) so that I can help you to implement this.

    Kind regards,
    TsiBiRu
    CaspioData_2019-Apr-04_2309.zip
  4. Like
    TsiBiRu got a reaction from Harbinger in Client Database Configuration   
    Hi @kpcollier
    No worries, it is always my pleasure to help anyone in this community.
    You can try to use the code below, I've added two HTML blocks on my Tabular Report Datapage.

    1st HTML Block is to display the drop-down
    <!-- I've set the ID to the ID of the records so that we will pass the selected value from the drop down where the button is clicked--> <select id='[@field:kpcollier_Client_ID]'> <option value="[@field:Primary_Client]">[@field:Primary_Client]</option> <option value="[@field:Additional_Client]">[@field:Additional_Client]</option> </select> 2nd HTML block is to create a custom button to get the selected value of the  selected value from the drop-down of each respective row

    //I've passed the ID of the row as a parameter to our function <button type="button" onclick="myFunction([@field:kpcollier_Client_ID])">Click me</button> <script> // Received the ID, and store it on the variable x function myFunction(x) { //This code will get the selected vale from drop-down and store it to strUser variable var e = document.getElementById(x); var strUser = e.options[e.selectedIndex].value; // This code will redirect it to your prefered site via query string window.location.replace("https://www.google.com?val=" + strUser); } </script>  
    I've also added the exported copy of the DataPage that I've worked with so that you can import it to your account and see how it works

    I hope this helps.
    Regards,
    TsiBiRu
     
    CaspioData_2019-Apr-04_2034.zip
  5. Thanks
    TsiBiRu got a reaction from bbeshlian in Display a warning message and stop form submission   
    Hi @bbeshlian,
    I was able to create validation without using JavaScript, what I did is the following:
    1. I've created a virtual field and use the SQL statement below to compare the dates ( installment payment date (Date1) and effective date (Date2) ) to determine if it is valid or not.
    2. I've hidden that virtual field using the method in this article
    CASE WHEN [@field:Date1] < [@field:Date2]THEN 'Invalid' ELSE 'Valid' END 3. Then I've inserted an HTML block to display the error Message, and added it to section two.

    4.  Then I've created a rule that will only display the Error message if the value in our virtual field is invalid

    5. Then I was able to prevent the user in submitting the form using the solution on this forum post
     
    I've also added the exported copy of the DataPage that I've worked with so that you can import it to your account and see how it works

    I hope this help.

    Regards,
    TsiBiRu
     
    CaspioData_2019-Mar-30_0553.zip
  6. Thanks
    TsiBiRu got a reaction from bbeshlian in Set a Default Value   
    FHi @bbeshlian,
    If you want to set a default value to your number/currency field you can achieve this using two options.
    1. Is setting/assigning the default value in your Datapage(Usually Submission Form), go to the Advanced Tab of your field then  click on 'On load' and try to make it like the one below.

    2. The other option is via Trigger action.

     
    For more details about this kindly check this Article
    I hope this helps.
    Regards,
    TsiBiRu
     
  7. Like
    TsiBiRu got a reaction from twinsdad in report page default load results   
    Hi @twinsdad,
     Just to add up to the previous comment, to turn off the default results if nothing is entered into the search you can set your report DataPage to 'Display search form and results on separate screens'

    By setting it up this way, it will not display any results until the user searched for something. For more details about this, you can check this article

    I hope this helps.
    Regards,
    TsiBiRu
     
     
     
  8. Like
    TsiBiRu got a reaction from bbeshlian in Build A Submission Form (DataPage) That Writes to Separate Tables   
    Hi @bbeshlian
    I think you can use the solution provided in the forum post below.
    I hope this helps.

    Regards,
    TsiBiRu
  9. Thanks
    TsiBiRu got a reaction from kpcollier in Issue and Expiration Dates for Many Fields   
    Hi @kpcollier,
    In my opinion, I don't think you need to make your table to be more complex than it has to be,  I think your coworker just want to add multiple certificates to one employee at one sitting.
    What I did to achieve this without using custom coding and ensuring that the user experience will not be sacrificed is, I created a submission form to populate the certificate where the user can add a training certificate to one employee. Then  I've created a report DataPage that will show all the existing Certificate of the employee that the last certificate created belongs to, then I've enabled this to be edited or deleted. So that the user can easily delete or modify the records as he/she wants.

    What I did is I deployed the submission  DataPage on one webpage, then I've set it to redirect to a second webpage where the same submission DataPage is deployed to allow the user to add more records. And on this webpage, I've also deployed the report DataPage that will display all the existing certificate of the employee that the last certificate create belongs to.

    So that you can see how it works, here is the link where you can try, please note that I will be removing this link after 1 week.

    I've also attached the exported copy  of the DataPages that I've worked with so that you can see how I've implemented this workflow

    I hope this helps.

    Regards,
    TsiBiRu
    CaspioData_2019-Feb-26_2236.zip
  10. Thanks
    TsiBiRu got a reaction from Azriel in Form Validation, at least one field has value   
    Hello Azriel.
     
    I have similar validation in my App, I have used the JavaScript below to implement this validation.
    <script type= "text/javascript" > var input1 = document.querySelector('#InsertRecordValue1'); var input2 = document.querySelector('#InsertRecordValue2'); var input3 = document.querySelector('#InsertRecordValue3'); var input4 = document.querySelector('#InsertRecordValue4'); document.querySelector('#caspioform').onsubmit = function(e) {     e.preventDefault(); if (input1.value.length > 0){ this.submit(); } else if (input2.value.length > 0){ this.submit(); } else if (input3.value.length > 0){ this.submit(); } else if (input4.value.length > 0){ this.submit(); } else { alert('Please fill at least one field to continue'); input.focus(); } } </script> If the code above will not work, you will need to change the '#InsertRecordValue' on the top most part of the code to the name of your field in your DataPage.
    To see that, just do the steps below.
     
    1. Go to the preview of your DataPage
    2. Press F12 on your keyboard, a form should be display. This is the browser developer console
    3. Press Ctrl + Shift + C on your keyboard, then hover over your text field. You should be able to see its element ID, then click on this field.
    4. You should be redirected to its code, just double click the id of this element. Then paste it on the JavaScript above to update it.
     
     
    Hope this help, if you are having an error making the code above work. Just provide me the URL of your datapage or web page and I will update it for you
     
    Regards
     
  11. Thanks
    TsiBiRu got a reaction from Ronan in Limit the width of my dropdown   
    Hello Eruel,
     
    You can set or limit the size of your drop down menu by overriding the default css of caspio. You can use the CSS code to do this.
    <style> #InsertRecordSelectionOpt{  width: 900px !important; } .Option { width: 900px !important; overflow:hidden !important; } </style> If the code above will not work, you will need to change the '#InsertRecordSelectionOpt' on the top most part of the code to the name of your dropdown in your DataPage.
    To see that, just do the steps below.
     
    1. Go to the preview of your DataPage
    2. Press F12 on your keyboard, a form should be display. This is the browser developer console
    3. Press Ctrl + Shift + C on your keyboard, then hover over your drop down. You should be able to see its element ID, then click on this .
    4. You should be redirected to its code, just double click the id of this element. Then paste it on the CSS above to update it.
     
    And lastly, you can also increase the size of your dropdown by change the width size. The '#InsertRecord 'is for the width of your drop down, and the '.Option' is for the width of its value or option
     
    Hope this help, if you are having an error making the code above work. Just provide me the URL of your datapage or web page and I will update it for you.
     
    Regards
     
  12. Thanks
    TsiBiRu got a reaction from kpcollier in Formula To Count Current Inventory   
    Hi @kpcollier,
    You can try the code below.
    <script> // This code should set the value of your 'EditRecordOrdering_CompletedOrders_Qty_Sent' field to be blank document.getElementById("EditRecordOrdering_CompletedOrders_Qty_Sent").value = " "; </script> If the code above did not work as expected you can try to use the code below.
    <script type="text/javascript"> document.addEventListener('DataPageReady', function (event) { // Just added this event listener, that will execute once the DataPage is loaded document.getElementById("EditRecordOrdering_CompletedOrders_Qty_Sent").value = " "; }); </script> I hope this helps.
    Regards,
    TsiBiRu
  13. Thanks
    TsiBiRu got a reaction from telly in Generate an expiration date   
    Hi @telly,

    This solution is great, for more details about how to set up a calculated field in your DataPage you may refer to the links below.

    https://howto.caspio.com/datapages/datapage-components/calculated-values/
    https://howto.caspio.com/faq/reports-datapages/calculated-fields-and-datediff-function/

    I hope this helps.
    Regards,
    TsiBiRu
  14. Thanks
    TsiBiRu got a reaction from Ronan in Additional Image when MAIN Image is clicked   
    Hi @Ronan,
    I have a have a work flow that is just like this, I've contacted support to assist me in implementing this. And they help me formulate a solution for this, to implement this solution kindly follow the steps below.
    Notes: This solution will display 3 additional image when the main image is click.
    1.  On your results page, go to the HTML block that displays your main image and paste the code below. The code below will open another HTML DataPage as a pop-up window, and it will also pass the value/image that we will be displaying as an additional image. 
    <a href="javascript:void(window.open(' https://c5eib829.caspio.com/dp/d90b60006f822a89840c4a60b477?Image1=[@field:Main_Photo/]&amp;Image2=[@field:Photo_2/]&amp;Image3=[@field:Photo_3/]', 'Additional Images', 'width=700,height=550'));"><img alt="" src="[@app:mainImage/]" style="width: 200px; height: 200px; margin: 1px;" /> </a> You can use the code as it is, just update the source of the images to match your images in your table. Refer to this screenshot http://prntscr.com/mde9bg
    2. Create a new HTML DataPage and just paste the code below, you can use it as it is https://prnt.sc/mdec50.
    <style> * {box-sizing: border-box} body {font-family: Verdana, sans-serif; margin:0} .mySlides {display: none} img {vertical-align: middle;} /* Slideshow container */ .slideshow-container { max-width: 1000px; position: relative; margin: auto; } /* Next & previous buttons */ .prev, .next { cursor: pointer; position: absolute; top: 50%; width: auto; padding: 16px; margin-top: -22px; color: white; font-weight: bold; font-size: 18px; transition: 0.6s ease; border-radius: 0 3px 3px 0; user-select: none; } /* Position the "next button" to the right */ .next { right: 0; border-radius: 3px 0 0 3px; } /* On hover, add a black background color with a little bit see-through */ .prev:hover, .next:hover { background-color: rgba(0,0,0,0.8); } /* Number text (1/3 etc) */ .numbertext { color: #f2f2f2; font-size: 12px; padding: 8px 12px; position: absolute; top: 0; } /* The dots/bullets/indicators */ .dot { cursor: pointer; height: 15px; width: 15px; margin: 0 2px; background-color: #bbb; border-radius: 50%; display: inline-block; transition: background-color 0.6s ease; } .active, .dot:hover { background-color: #717171; } /* Fading animation */ .fade { -webkit-animation-name: fade; -webkit-animation-duration: 1.5s; animation-name: fade; animation-duration: 1.5s; } @-webkit-keyframes fade { from {opacity: .4} to {opacity: 1} } @keyframes fade { from {opacity: .4} to {opacity: 1} } /* On smaller screens, decrease text size */ @media only screen and (max-width: 300px) { .prev, .next,.text {font-size: 11px} } </style> </head> <body> <div class="slideshow-container"> <!-- Update the source of the Images ************************************* --> <div class="mySlides fade"> <div class="numbertext">1 / 3</div> <img src="[@Image1/]" style="width:100%"> </div> <div class="mySlides fade"> <div class="numbertext">2 / 3</div> <img src="[@Image2/]" style="width:100%"> </div> <div class="mySlides fade"> <div class="numbertext">3 / 3</div> <img src="[@Image3]" style="width:100%"> <!-- Update the source of the Images ************************************* --> </div> <a class="prev" onclick="plusSlides(-1)">&#10094;</a> <a class="next" onclick="plusSlides(1)">&#10095;</a> </div> <br> <div style="text-align:center"> <span class="dot" onclick="currentSlide(1)"></span> <span class="dot" onclick="currentSlide(2)"></span> <span class="dot" onclick="currentSlide(3)"></span> </div> <script> var slideIndex = 1; showSlides(slideIndex); function plusSlides(n) { showSlides(slideIndex += n); } function currentSlide(n) { showSlides(slideIndex = n); } function showSlides(n) { var i; var slides = document.getElementsByClassName("mySlides"); var dots = document.getElementsByClassName("dot"); if (n > slides.length) {slideIndex = 1} if (n < 1) {slideIndex = slides.length} for (i = 0; i < slides.length; i++) { slides[i].style.display = "none"; } for (i = 0; i < dots.length; i++) { dots[i].className = dots[i].className.replace(" active", ""); } slides[slideIndex-1].style.display = "block"; dots[slideIndex-1].className += " active"; } </script> 3. Deploy as URL the HTML DataPage that we just created, copy the deployed URL and update the deployed URL in our code in step 1.
    That should do it, this solution is working well on my end. If you encounter any issue implementing it, just reply to this thread so that I can help you in implementing this workflow.
    I hope this helps.
    Regards,
    TsiBiRu
  15. Like
    TsiBiRu got a reaction from ManokNaPula in Currency field   
    Hi @dmyoungsal,
    I've found some forum posts that have the same workflow with you, you can check the check the links below. Maybe you can use the solutions that was provided there.
     
     
     
    I hope this helps.

    Regards,
    TsiBiRu
  16. Like
    TsiBiRu got a reaction from TroubleShooter in Hide (group of) fields based on another field's value   
    Hi @TroubleShooter,
    In my opinion, a straight forward approach for this is to create an Authentication for each of your Users (Type A, Type B, and Type C). Then create a Report DataPage for each user type, and then implement Record Level Security. For more details about how to implement RLS kindly check this link https://howto.caspio.com/getting-started/record-level-security-stamping-new-records/

    This way, you don't need to use / debug custom codes

    Hope this helps.

    Regards,
    TsiBiRu
     
  17. Thanks
    TsiBiRu got a reaction from Ronan in Form Validation, at least one field has value   
    Hello Azriel.
     
    I have similar validation in my App, I have used the JavaScript below to implement this validation.
    <script type= "text/javascript" > var input1 = document.querySelector('#InsertRecordValue1'); var input2 = document.querySelector('#InsertRecordValue2'); var input3 = document.querySelector('#InsertRecordValue3'); var input4 = document.querySelector('#InsertRecordValue4'); document.querySelector('#caspioform').onsubmit = function(e) {     e.preventDefault(); if (input1.value.length > 0){ this.submit(); } else if (input2.value.length > 0){ this.submit(); } else if (input3.value.length > 0){ this.submit(); } else if (input4.value.length > 0){ this.submit(); } else { alert('Please fill at least one field to continue'); input.focus(); } } </script> If the code above will not work, you will need to change the '#InsertRecordValue' on the top most part of the code to the name of your field in your DataPage.
    To see that, just do the steps below.
     
    1. Go to the preview of your DataPage
    2. Press F12 on your keyboard, a form should be display. This is the browser developer console
    3. Press Ctrl + Shift + C on your keyboard, then hover over your text field. You should be able to see its element ID, then click on this field.
    4. You should be redirected to its code, just double click the id of this element. Then paste it on the JavaScript above to update it.
     
     
    Hope this help, if you are having an error making the code above work. Just provide me the URL of your datapage or web page and I will update it for you
     
    Regards
     
×
×
  • Create New...