Jump to content

Vitalikssssss

Caspio Rockstar
  • Content Count

    406
  • Joined

  • Last visited

  • Days Won

    40

Everything posted by Vitalikssssss

  1. Hi @walkerc, You will not be able to build a View with desired output because Joins cannot be configured with OR logic. I can suggested using a filtering criteria on Datapage in order to show the records from Main_Data table to the Contractor. You should use a Main_Data as a data source for your Datapage. Also you should enable authentication which based on "Contractor_Data" table for this Datapage. Finally you can use the following filtering logic: P.S. use TradingName i.o. Record_ID from my sample. Hope this helps. Let me know if you have any questions. Regards, vitalikssssss
  2. Hi @GrahamMoore, You may consider using Weebly (my choice), Yola, WordPress (wordpress.org). Hope this helps. Regards, vitalikssssss
  3. Hi @Farnsbarnes, I am afraid that it is not possible to reference a look up value with any syntax. I can recommend creating a View to join your tables (parent child) and use this view as a datasource for the Datapage. You will be able to reference the parent field by using a parameter picker. Hope this helps. Regards, vitalikssssss
  4. Hi @SonniT, I am pretty much sure that you receive an error because you have used PK_ID field as body parameter. PK_ID is a system field which acts as a record index for Caspio Table. I am afraid that you cannot use this field in body parameters. Try removing this parameter from body to resolve the issue. Please provide us with fields Data type used in the table if you still encounter an issue after removing PK_ID. Regards, vitalikssssss
  5. Hi @EmmePGN, The following script fires the selection check after user clicks on Update button in his form: <script type="text/javascript"> var v_state = "[@field:TypesWrittenComm]" ; var o_state = document.getElementById("EditRecordTypesWrittenComm") ; o_state.multiple = true ; function f_listbox() { if ( v_state.indexOf(",") > 0 ) { for (var i=0 ; i < o_state.options.length; i++ ) { if(o_state[i].value == v_state) { o_state.remove(i); break ; } } var o_st = v_state.split(", ") ; for (var j=0 ; j < o_st.length; j++) { for (var i=0 ; i < o_state.options.length; i++ ) { if(o_st[j]== o_state.options[i].value){ o_state.options[i].selected = true ; break ; } } } } } function check_listbox() { var maximum_selections = 3; var MyListbox = document.getElementsByName("EditRecordTypesWrittenComm")[0]; var number_selections = 0; for (var i=0; i<MyListbox.length; i++) { if (MyListbox.options[i].selected) number_selections++; } if (number_selections>maximum_selections) { alert("You can select only " + maximum_selections + " items"); event.preventDefault(); } } document.addEventListener('BeforeFormSubmit', function(event) { check_listbox(); }); </script> Hope this helps. Regards, vitalikssssss
  6. Hi @Ajumathews, What issues? Did you follow the instruction from this Caspio tutorial? https://www.youtube.com/watch?v=2Y2lcVnMkZI Regards, vitalikssssss
  7. Hi @Chrille, You should use "EditRecord" prefix on Details page in order to reference a field. So, you code should look like this: <script type="text/javascript"> document.addEventListener('BeforeFormSubmit', function (event) { var v3 = '<img src="http://image_url" alt="YES"'; var v2 = document.getElementById("EditRecordKontaktad").value; if (v2 !="") { document.getElementById("EditRecordRingt").value = v3; }}); </script> Hope this helps. Regards, vitalikssssss
  8. Hi @Jamievanzone, This should help: Regards, Vitalikssssss
  9. Hi @EmmePGN, There are different ways how you can tackle this challenge. You may use a JavaScript or you create an expression which results in SQL error. Here is a JavaScript which will hide the "Submit" button if user selection exceed "100": <script> function checkLimit(){ let value = document.querySelector('input[id*="InsertRecordYOUR_FIELD"]').value; //enter your actual field name let button = document.querySelector('input[id^="Submit"]'); if (value > 100) { button.style.visibility = "hidden"; } else { button.style.visibility = "visible"; } } setInterval(checkLimit, 500) </script> This code should go into Footer of the Datapage and also make sure you disabled an HTML editor. Second option is to have the expression in Calculated value field which results in SQL error, e.g. CASE WHEN (Isnull([@field:PointFactor_Duties_PercentDuty1],0)+Isnull([@field:PointFactor_Duties_PercentDuty2],0)+Isnull([@field:PointFactor_Duties_PercentDuty3],0)+Isnull([@field:PointFactor_Duties_PercentDuty4],0)+Isnull([@field:PointFactor_Duties_PercentDuty5],0)+Isnull([@field:PointFactor_Duties_PercentDuty6],0)) > 100 THEN CAST( 'a' + 1 as INT) ELSE (Isnull([@field:Number_1],0) + Isnull([@field:Number_2],0) + Isnull([@field:Number_3],0)) END User will see an error if he enters amount which exceeds "100". Message can be customized in Localization. Hope this helps. Regards, vitalikssssss
  10. 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
  11. Hi @JSLane, It is doable in Caspio. You should use separate form (Submission Form Datapage) which passes a parameter to the Report Datapage. The trick here is that you will have multiple fields in report datapage which receive a single parameter. This concept described in the following article: https://howto.caspio.com/faq/reports-datapages/how-to-do-keyword-search-across-multiple-fields/ I would also suggest watching the following tutorial video which explains how to pass parameters between separate form embedded on single web-page. https://www.youtube.com/watch?v=K3CKFjuSIt4 Hope this helps. Regards, vitalikssssss
  12. Hi @DTINVN, I am afraid that you cannot use SQL in HTML blocks. SQL code can be only used in Calculated values\fields. I would recommend using a JS code in order to achieve described behavior. 1. Add the following code into HTML block: <p id="[@cbRecordIndex#]"></p> 2. Add the following JS into Datapage Footer: <script type="text/javascript"> document.addEventListener('DataPageReady', function (event) { let el = document.querySelectorAll('td>p'); let par = '[@BU]'; el.forEach(element => { if(par=='8') element.innerHTML = '<span month_year="[@field:Month_Year*]" sub_type="[@field:Function_Subtype#]">[@field:MPBU_HC]</span>'; else if (par=='6') element.innerHTML = '<span month_year="[@field:Month_Year*]" sub_type="[@field:Function_Subtype#]">[@field:MicBU_HC]</span>'; else element.innerHTML = '0'; }); }); </script> Please make sure that you disable HTML editor before inserting the code. Regards, vitalikssssss
  13. Hi @guardmetrics, Formula field performs calculation within a record and it cannot be used for cross table calculation. You should consider using Calculated fields on Report/Details datapages with SQL in order to perform cross-table calculation. Here is an article which explains how to use SQL in Calculated fields: https://howto.caspio.com/datapages/reports/advanced-reporting/calculations-in-forms-and-reports/ You may use Task/Triggered action feature if you would like to store value of cross-table calculation on table level. Here is an article: https://howto.caspio.com/tables-and-views/triggered-actions/ Hope this helps. Regards, vitalikssssss
  14. @kpcollier, You can use the following JS code if you decide to use a custom code. <script type="text/javascript"> function calculate() { var subTotal = isNaN(parseFloat(document.getElementById("InsertRecordSubtotal").value)) ? 0 : parseFloat(document.getElementById("InsertRecordSubtotal").value); var markUp = isNaN(parseFloat(document.getElementById("InsertRecordMarkUp").value)) ? 0 : parseFloat(document.getElementById("InsertRecordMarkUp").value) ; var countyTax = isNaN(parseFloat(document.getElementById("InsertRecordCounty_Tax").value)) ? 0 : parseFloat(document.getElementById("InsertRecordCounty_Tax").value); var miscPerc = isNaN(parseFloat(document.getElementById("InsertRecordMisc_Percent").value)) ? 0 : parseFloat(document.getElementById("InsertRecordMisc_Percent").value); var freight = isNaN(parseFloat(document.getElementById("InsertRecordFreight_Total").value)) ? 0 : parseFloat(document.getElementById("InsertRecordFreight_Total").value); 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); document.getElementById("cbParamVirtual1").value = (subTotal) + (markUpTotal) + (countyTaxTotal) + (miscPercTotal) + (freight); } setInterval(calculate, 1500); </script> Regards, vitalikssssss
  15. Hi @kpcollier, Why do not you use Calculated value to perform such calculation? You can use isNull function in Calculated value in order to replace null with zero. IsNull([@field:Number], -0) Hope this helps. Regards, vitalikssssss
  16. Hi @BFuchs No, user will be routed automatically to the Submission Form. User does not have to click second time. I doubt that it will be possible. You may customize Tabular report with inline insert, however it will require some sophisticated JS code to cover all possible scenarios. Regards, vitalikssssss
  17. Hi @BFuchs, I can suggest the following: 1. Create Details/Single record update DP and use it as a link in on your another datapage. 2. Don`t forget to put a parameter (unique identifier of a record) at the end of link. 3. Create a Submission DP to submit a record. 4. Create a new Localization with a simple JS i.o. "No records found" message. Hope this helps. Regards, vitalikssssss
  18. This might help: https://howto.caspio.com/tech-tips-and-articles/common-customizations/separate-input-fields-for-datetime-parts/ Regards, vitalikssssss
  19. Hi @roattw, You can use the following expression in Caspio: CASE WHEN Len([@field:YOUR_FILED]) =3 THEN Left([@field:Text],1) +':'+Right([@field:Text],2) WHEN Len([@field:YOUR_FILED]) > 3 THEN Left([@field:Text],2) +':'+Right([@field:Text],2) END Hope this helps. Regards, vitalikssssss
  20. Hi @AmyBelote, You are right, List_string datatype is not supported in advanced features like Calculated field, Triggered action or Tasks. There is a feature request in Caspio IdeaBox: Link As a workaround, you may export/import your table with List - String field as into Text(255) field in order to have a string with comma delimited values. Hope this helps. Regards, vitalikssssss
  21. Hi @ssneni, This feature is not available in Triggered Action. Caspio IdeaBox says that this feature is planned for upcoming releases: Using-file-field-in-triggered-actions. You can vote for this idea in order to increase the chance it to be included in next release. Regards, vitalikssssss
  22. Hi @Roosta, Can you send me an exported copy of Datapage along with dependencies or URL of the Datapage? You can use Private messages for sharing exported file. Regards, vitalikssssss
  23. Hi @Roosta, I assume that you see "Error in Formula" because one of the divisor results in zero. You need to add CASE check in order to avoid division by zero. It can look like this: ([@calcfield:1]/ (CASE THEN [@calcfield:9] = 0 THEN 1 ELSE [@calcfield:9] END) )*100 Hope this helps. Regards, vitalikssssss
  24. Hi everyone, How can copy the text from the selected drop-down element to the text field? Thanks for looking into. Regards, vitalikssssss
  25. Hi @davidhshugar, I do not think it is related to XML of the Datapage. Do you see this issue on Datapage direct URL? Can you try applying a different theme for the Datapage and verify the result? Regards, vitalikssssss
×
×
  • Create New...