2009-07-02 6 views
0

je la configuration suivante:Cristal XI Rel2 RDC passage de paramètres

  • Delphi 5 Enterprise Update 1 Cristal
  • Reports Developer XI Rel2 (RDC 11,5)

Après de longues heures d'essais & erreur Je peux maintenant définir les éléments de connexion comme asked earlier mais lorsque j'essaie de définir des paramètres de cristal par code, cela ne fonctionne pas et j'obtiens un rapport vide.

J'ai écrit une petite application pour le test (ici est juste un extrait):

for i:=1 to FParamFldDefs.Count do begin 

    FParFldDef := FParamFldDefs.Item[i]; 
    FParFldDef.ClearCurrentValueAndRange; 

    if ParFieldName = 'User' then 
     FParFldDef.AddCurrentValue('hugo') 
    else if ParFieldName = '@P_Date' then 
     FParFldDef.AddCurrentValue('2009.06.30') 

    if FParFldDef.IsDefaultValueSet then 
     ShowMessage('DefaultValue: ' + FparFldDef.GetNthDefaultValue(1)); 
     //--> on loop 1 i=1 this does not show up because IsDefalutValueSet = FALSE 
     //--> on lopp 2 i=2 this does show '2009.06.30' 
    if FParFldDef.IsCurrentValueSet then 
     ShowMessage('CurrentValue: ' + FparFldDef.GetNthCurrentValue(1)); 
     //--> on loop 1 i=1 this does show 'hugo' 
     //--> on lopp 2 i=2 this does not show because IsCurrentValueSet = False 

end; 

ShowMessage(FldDef.SQLQueryString); //this shows all 
            //stored procedure parameters empty 

Maintenant, j'ai réussi à avoir les CurrentValues ​​sertis (a dû enregistrer le rapport en question avec la version 11 - il était la version 9 avant) parce que IsCurrentValueSet renvoie vrai mais quand j'essaye de lire le SQLQuereyString je peux voir que tous les paramètres de SP sont NULL. Des idées à ce sujet?

Répondre

0

J'ai vu la lumière! Si quelqu'un comme moi obtient jamais forcé de traiter avec Delphi 5 et Crystal XI RDC - voici ce que je l'ai fait:

Pré-requis:

  • vous avez des tonnes de vieux Crystal Reports Version < 11.5
  • vous
  • doivent encore utiliser de vieux Delphi 5 applications

Firs de tous, vous devez:

  1. Installez Crystal Reporst Developer XI Rel2 (le dernier avec support RDC et ne vous inquiétez pas, il peut être installé en parallèle à votre version existante de Crystal Reports (dans mon cas c'était la version 6)
  2. Importer des bibliothèques de types dans Delphi (craxdrt.dll + CRViewer.dll)
  3. Ouvrir le rapport en question avec Crystal Reports XI et l'enregistrer comme la version XI
  4. Modifier toute connexion de base de données à OLEDB

une fois que vous avez c'est fait vous pouvez utiliser Joseph Styons wrapper class et vous allez bien. Si vous aussi avez un rapport qui obtient ses données d'une procédure stockée SQL, il suffit de définir ces paramètres (leurs noms commencent par un "@") comme tout autre paramètre Crystal.

Voilà, j'espère que c'est utile à quelqu'un.

Maintenant, je pars pour de la bière!

Salutations, Reinhard

0

Le format de la valeur de date peut poser un problème. Avez-vous essayé d'utiliser 07/02/2009 ou 07/02/2009 00:00?

+0

hi! le format de date doit être OK car c'est la même chose que lorsque je le saisis dans la boîte de dialogue des paramètres de cristal. maintenant j'ai réussi à avoir l'ensemble "CurrentValue" parce que FparFldDef.GetNthCurrentValue (1) apparaît mais quand même, le rapport retourne vide. – pastacool

Questions connexes