Auteur Sujet: Etat Fiche individuelle vide  (Lu 3421 fois)

plus minus reset

0 Membres et 1 Invité sur ce sujet

Hors ligne DDdeBerdeux

Etat Fiche individuelle vide
« le: 07 Décembre 2005 à 10:25:23 »
Bonjour,

On peut constater que la fiche individuelle n'est pas imprimée si l'individu n'a pas d'évènement individuel enregistré.

En analysant la conception de l'état, je pense en avoir trouvé la raison, dans la définition des "pipelines" utilisés, à laquelle l'utilisateur n'a pas accès.

2 tables sont déclarées et liées dans cet état. L'une "dbFiche" créée par les procédures PROC_ETAT_FICHE ou PROC_ETAT_TOUTES_FICHES, l'autre "dbEveIndi" est la table EVENEMENTS_IND. Le lien entre les 2 doit se faire par CLE_FICHE. L'erreur doit être d'avoir fait un lien de type SQL "INNER JOIN" qui supprime toute réponse si aucun évènement individuel ne correspond. Je n'ai pas les moyens de vérifier cette hypothèse.

Philippe CM pourrait-il vérifier et corriger celà?

A+

André
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne Ancestrologie

  • AncestroGrandMaitre
  • *******
  • Messages: 5 083
  • Remercié: 3 fois
    • Ancestrologie
  • Programme: 1995
  • Base: 5.130
  • Système: Windows 8
Etat Fiche individuelle vide
« Réponse #1 le: 07 Décembre 2005 à 10:44:57 »
Hello André



C est la proc PROC_ETAT_FICHE



select * from PROC_ETAT_FICHE(:CLE_FICHE)



avec comme param la clef fiche

ou



select * from PROC_ETAT_TOUTES_FICHES(:I_DOSSIER)



pour toutes les fiches





puis



select * from PROC_EVE_IND(:CLE_FICHE)



puis



SELECT * FROM PROC_TROUVE_MULTIMEDIA (:I_CLEF, :I_TYPE)





voila pour les requetes appelees dans cet etat
PCM
 

Hors ligne DDdeBerdeux

Etat Fiche individuelle vide
« Réponse #2 le: 07 Décembre 2005 à 11:15:41 »
OK sur çà, mais le pb doit être dans la jointure faîte entre les résultats de PROC_EVE_IND et ceux de PROC_ETAT_FICHE ou TOUTES_FICHES dans la définition du pipeline. Regardes dans la conception de l'état, tu vois que les 2 tables sont liées: c'est le type de ce lien qu'il faut vérifier et peut-être remplacer par un LEFT JOIN.

A+

André
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne Ancestrologie

  • AncestroGrandMaitre
  • *******
  • Messages: 5 083
  • Remercié: 3 fois
    • Ancestrologie
  • Programme: 1995
  • Base: 5.130
  • Système: Windows 8
Etat Fiche individuelle vide
« Réponse #3 le: 07 Décembre 2005 à 11:30:30 »
select * from PROC_EVE_IND(:CLE_FICHE)  est lié a la fiche par la clef fiche, c est tout



voici le code d appel a la fiche



      _REP_FICHE_INDIVIDUELLE:

        begin

          s_Nom := lNom.Caption;

          s_Nom := s_Nom + ' - FI';

          Application.ProcessMessages;

          Application.ProcessMessages;

          ppViewer.Report := ppReport;

          aFParamReports.btnShowConfigBox.Enabled := True;



          QFiche.Close;



          if aFParamReports.cbToutDossierIndi.Checked then

            begin

              QFiche.SQL.Clear;

              QFiche.SQL.Add('select * from PROC_ETAT_TOUTES_FICHES(:I_DOSSIER)');

              QFiche.ParamByName('I_DOSSIER').AsInteger := dm.NumDossier;

            end

          else

            begin

              QFiche.SQL.Clear;

              QFiche.SQL.Add('select * from PROC_ETAT_FICHE(:CLE_FICHE)');

              QFiche.ParamByName('CLE_FICHE').AsInteger := dm.FicheActive;

            end;



          try

            QFiche.Open;

          except

            on E: Exception do

              begin

                ShowMessage('Erreur sur la requete');

              end;

          end;



          try

            QEveIndi.Open;

          except

            on E: Exception do

              begin

                ShowMessage('Erreur sur la requete');

              end;

          end;



          QMultimedia.Params[0].AsInteger := dm.FicheActive;

          QMultimedia.Params[1].AsString := 'I';

          QMultimedia.Open;

          QMultimedia.Last;

          QMultimedia.First;

          ppViewer.visible := QFiche.RecordCount > 0;

          pRien.Visible := QFiche.RecordCount <= 0;



          try

            ppReport.PrintToDevices;

          except

            on E: Exception do

              begin

                QFiche.Close;

                QEveIndi.Close;

                QMultimedia.Close;

                ShowMessage('Cette édition a générée une erreur, verifiez les naissances et les décès...');



                aFVerifEvent := TFVerifEvent.create(self);

                try

                  aFVerifEvent.ShowModal;

                finally

                  aFVerifEvent.Free;

                end;



              end;

          end;

        end;
PCM
 

Hors ligne DDdeBerdeux

Etat Fiche individuelle vide
« Réponse #4 le: 07 Décembre 2005 à 11:52:30 »
Oui, mais ce code là c'est le code Delphi qui appelle l'état, le paramètre et en commande l'affichage depuis ton exécutable. Le lien dont je parle est celui existant dans la conception de l'état dans ReportBuilder, entre les 2 tables Fiche et EveIndi.

A+

André
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)