• Juan Pablo Garzón
  • NEWBIE
  • 25 Points
  • Member since 2008
  • NOLA Project Manager
  • Avanxo

  • Chatter
    Feed
  • 1
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 2
    Questions
  • 5
    Replies
I am working to implement a Customer Community using Customer Service Template (Napili). I know that Customer Community License Plus has access to Events and Calendar (See https://help.salesforce.com/articleView?id=users_license_types_communities.htm&type=0&language=en_US&release=208.9). For this reason, my client has purchased Customer Community Plus Logins to the new Community. But I don't know how to show a Calendar for Customer Community Plus users. Can you help me in order to send a example because I haven't found any documentation.

Hi All

 

I am developing a VisualForce page and I need to pass a parameter to controller class. Why do I need to pass a parameter?, because I try to paint a table in HTML using a repeat apex component <apex:repeat>. The method called returns to VisualForce page a values map and I need to pass a key map to controller class.

 

Controller

 

public class claControlFormatoCotizacionSolicitud{ transient Map<String, Map<String, Double>> totalesAnticipos = new Map<String, Map<String, Double>>(); transient List<String> monedasAnticipos = new List<String>(); String tipoAnticipo {get;set;} public void calcularAnticiposSolicitud() { Map<String, String> monedasConsulta = new Map<String, String>(); List<Anticipo__c> consultaAnticipos = [SELECT Moneda__c, Tipo__c, Valor__c FROM Anticipo__c WHERE Solicitudes_de_viaje__c = :ApexPages.currentPage().getParameters().get('identificadorSolicitud') AND Tipo__c <> 'Tiquetes' AND IsDeleted = false ORDER BY Tipo__c ASC LIMIT 1000]; for(Anticipo__c registroAnticipo :consultaAnticipos) { monedasConsulta.put(registroAnticipo.Moneda__c, registroAnticipo.Moneda__c); } for(String monedaRegistro :monedasConsulta.values()) { monedasAnticipos.add(monedaRegistro); } monedasAnticipos.sort(); for(Anticipo__c registroAnticipo :consultaAnticipos) { if (totalesAnticipos.containsKey(registroAnticipo.Tipo__c)) { Map<String, Double> totalesTipo = totalesAnticipos.get(registroAnticipo.Tipo__c); if (totalesTipo.containsKey(registroAnticipo.Moneda__c)) { Double valorTotal = totalesTipo.get(registroAnticipo.Moneda__c); valorTotal = valorTotal + registroAnticipo.Valor__c; totalesTipo.put(registroAnticipo.Moneda__c, valorTotal); totalesAnticipos.put(registroAnticipo.Tipo__c, totalesTipo); } } else { Map<String, Double> totalesTipo = new Map<String, Double>(); for(String monedaTipo :monedasAnticipos) { if (monedaTipo == registroAnticipo.Moneda__c) { totalesTipo.put(registroAnticipo.Moneda__c, registroAnticipo.Valor__c); } else { totalesTipo.put(monedaTipo, 0); } totalesAnticipos.put(registroAnticipo.Tipo__c, totalesTipo); } } } } public List<String> getMonedasAnticipos() { return monedasAnticipos; } public List<String> getTiposAnticipos() { List<String> tiposAnticipos = new List<String>(); for(String tipoRegistro :totalesAnticipos.keySet()) { tiposAnticipos.add(tipoRegistro); } return tiposAnticipos; } public List<Double> getTotalesMonedas() { String tipoRegistro = System.currentPageReference().getParameters().get('tipoAnticipo'); List<Double> totalesTipo = totalesAnticipos.get(tipoRegistro).values(); return totalesTipo; } }

 

 VisualForce Page

 

<apex:page action="{!calcularAnticiposSolicitud}" controller="claControlFormatoCotizacionSolicitud" renderAs="pdf" showHeader="false" title="FTUG01 - Formato Solicitud Cotización de Tiquetes y Hotel"> <apex:form id="forCotizacionSolicitid"> <table border="1" width="100%"> <tr> <td></td> <apex:repeat value="{!MonedasAnticipos}" var="detalleMoneda"> <td><apex:outputText value="{!detalleMoneda}"/></td> </apex:repeat> </tr> <apex:repeat value="{!TiposAnticipos}" var="detalleTipo"> <tr> <td> <apex:outputText value="{!detalleTipo}"> <apex:param assignTo="{!tipoAnticipo}" name="tipoAnticipo" value="{!detalleTipo}"/> </apex:outputText> </td> <apex:repeat value="{!TotalesMonedas}" var="detalleTotal"> <td><apex:outputText value="{!detalleTotal}"/></td> </apex:repeat> </tr> </apex:repeat> </table> </apex:form></apex:page>

 

But when I execute the VisualForce page, the parameter "tipoAnticipo" is empty or null. 

 

 

 

Hi all. 

 

Unfortunately I have no background in java or any other language and am finding the force.com cookbook a little beyond my scope.

 

I am trying to take a matrix report and make it visible in a Dashboard.  1) is this possible? 2) can anyone offer some advice on how to start this?

 

Thanks so much

Leslie  :smileyhappy:

Hi All

 

I am developing a VisualForce page and I need to pass a parameter to controller class. Why do I need to pass a parameter?, because I try to paint a table in HTML using a repeat apex component <apex:repeat>. The method called returns to VisualForce page a values map and I need to pass a key map to controller class.

 

Controller

 

public class claControlFormatoCotizacionSolicitud{ transient Map<String, Map<String, Double>> totalesAnticipos = new Map<String, Map<String, Double>>(); transient List<String> monedasAnticipos = new List<String>(); String tipoAnticipo {get;set;} public void calcularAnticiposSolicitud() { Map<String, String> monedasConsulta = new Map<String, String>(); List<Anticipo__c> consultaAnticipos = [SELECT Moneda__c, Tipo__c, Valor__c FROM Anticipo__c WHERE Solicitudes_de_viaje__c = :ApexPages.currentPage().getParameters().get('identificadorSolicitud') AND Tipo__c <> 'Tiquetes' AND IsDeleted = false ORDER BY Tipo__c ASC LIMIT 1000]; for(Anticipo__c registroAnticipo :consultaAnticipos) { monedasConsulta.put(registroAnticipo.Moneda__c, registroAnticipo.Moneda__c); } for(String monedaRegistro :monedasConsulta.values()) { monedasAnticipos.add(monedaRegistro); } monedasAnticipos.sort(); for(Anticipo__c registroAnticipo :consultaAnticipos) { if (totalesAnticipos.containsKey(registroAnticipo.Tipo__c)) { Map<String, Double> totalesTipo = totalesAnticipos.get(registroAnticipo.Tipo__c); if (totalesTipo.containsKey(registroAnticipo.Moneda__c)) { Double valorTotal = totalesTipo.get(registroAnticipo.Moneda__c); valorTotal = valorTotal + registroAnticipo.Valor__c; totalesTipo.put(registroAnticipo.Moneda__c, valorTotal); totalesAnticipos.put(registroAnticipo.Tipo__c, totalesTipo); } } else { Map<String, Double> totalesTipo = new Map<String, Double>(); for(String monedaTipo :monedasAnticipos) { if (monedaTipo == registroAnticipo.Moneda__c) { totalesTipo.put(registroAnticipo.Moneda__c, registroAnticipo.Valor__c); } else { totalesTipo.put(monedaTipo, 0); } totalesAnticipos.put(registroAnticipo.Tipo__c, totalesTipo); } } } } public List<String> getMonedasAnticipos() { return monedasAnticipos; } public List<String> getTiposAnticipos() { List<String> tiposAnticipos = new List<String>(); for(String tipoRegistro :totalesAnticipos.keySet()) { tiposAnticipos.add(tipoRegistro); } return tiposAnticipos; } public List<Double> getTotalesMonedas() { String tipoRegistro = System.currentPageReference().getParameters().get('tipoAnticipo'); List<Double> totalesTipo = totalesAnticipos.get(tipoRegistro).values(); return totalesTipo; } }

 

 VisualForce Page

 

<apex:page action="{!calcularAnticiposSolicitud}" controller="claControlFormatoCotizacionSolicitud" renderAs="pdf" showHeader="false" title="FTUG01 - Formato Solicitud Cotización de Tiquetes y Hotel"> <apex:form id="forCotizacionSolicitid"> <table border="1" width="100%"> <tr> <td></td> <apex:repeat value="{!MonedasAnticipos}" var="detalleMoneda"> <td><apex:outputText value="{!detalleMoneda}"/></td> </apex:repeat> </tr> <apex:repeat value="{!TiposAnticipos}" var="detalleTipo"> <tr> <td> <apex:outputText value="{!detalleTipo}"> <apex:param assignTo="{!tipoAnticipo}" name="tipoAnticipo" value="{!detalleTipo}"/> </apex:outputText> </td> <apex:repeat value="{!TotalesMonedas}" var="detalleTotal"> <td><apex:outputText value="{!detalleTotal}"/></td> </apex:repeat> </tr> </apex:repeat> </table> </apex:form></apex:page>

 

But when I execute the VisualForce page, the parameter "tipoAnticipo" is empty or null. 

 

 

 

One of our old record keeping systems is a dBase V system. I'm trying to set up Data Loader so that it can update records in this old system.

I've been able to configure all the necessary files to extract data to CSV from the command line, but I don't know how to properly configure database-conf.xml to store this data in our dBase V system. I can easily link the dBase tables into an Access database, so if there is an easy way to insert this data into Access, that would also work.

Since there are no JDBC drivers for either dBase or Access, I'm trying to use the Sun JDBC-ODBC bridge to insert data into Access. Data Loader is balking at the "url" parameter needed to locate a database. Here is my database-conf.xml file.

 

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
 <bean id="dbDataSource"
    class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
  <property name="driverClassName" value="sun.jdbc.odbc.JdbcOdbcDriver" />
  <property name="url" value="
file:///C:/PTIsynch/synch.mdb" />
 </bean>
 <bean id="PTI_InsertSFUser"
    class="com.salesforce.lexiloader.dao.database.DatabaseConfig"
    singleton="true">
  <property name="sqlConfig" ref="PTI_InsertSFUserSql" />
  <property name="dataSource" ref="dbDataSource" />
 </bean>
 <bean id="PTI_InsertSFUserSql"
    class="com.salesforce.lexiloader.dao.database.SqlConfig"
    singleton="true">
  <property name="sqlString">
   <value>
    INSERT INTO SFUsers
         (SFID, Fname, Lname)
     VALUES (@sfdcID@, @sfdcFirstName@, @sfdcLastName@)
   </value>
  </property>
  <property name="sqlParams">
   <map>
    <entry key="sfdcID" value="java.lang.String" />
    <entry key="sfdcFirstName" value="java.lang.String" />
    <entry key="sfdcLastName" value="java.lang.String" />
   </map>
  </property>
 </bean>
</beans>

Message Edited by HaydenMuhl on 01-29-2009 04:28 PM
I downloaded and executed the msi file but can't find the sforce_connect.xla file

MSI install does not give any options and it is not in the expected Microsoft\Addins folder

Is it possible to get a copy of the
sforce_connect.xla file somewhere else so I can place it in a folder?
  • January 05, 2008
  • Like
  • 0