Chemin complet crystal report en client server windows appl

Fermé
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021 - Modifié le 27 déc. 2021 à 11:16
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 27 déc. 2021 à 14:25
Bonjour,

je suis a la recherche d'un chemin d'accès complet pour charger mon crystal report en client server

voici ce que j'ai essayé
ReportDocument report = new ReportDocument();
              string ap = Environment.CurrentDirectory + "\\ARGES.rpt";
              report.Load(ap);

et ca tourne bien sur la machine serveur mais sur la machine cliente :
echec de chargement

BUILD ACTION : content
et copier si nouveau dans OUT PUT.....

et le partage est là
\\MIN\rom\COMM\COMMER\bin\Debug\\ARGES.rpt"

Configuration: Windows / Edge 96.0.1054.62


A voir également:

7 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
27 déc. 2021 à 11:46
Bonjour
Avec ce code, tu dis à l’application que le fichier crystal repport est dans le dossier de l’executable.

Client Serveur cela implique une application serveur qui tourne sur l’ordinateur serveur qui lance ce rapport et une application cliente qui demande au serveur de l’ouvrir.

As tu bien codé comme ça ?

Si non, alors ce n’est pas une architecture client/serveur, explique ce que tu veux faire


0
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021
27 déc. 2021 à 11:54
Merci Mais aidez moi avec ce chemin \\MIN\rom\COMM\COMMER\bin\Debug\\ARGES.rpt"
comment le client peut ouvrir le report svp
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
27 déc. 2021 à 12:07
Ça peut-être
https://prograide.com/pregunta/12903/accs--un-fichier-partage-unc--partir-d39un-domaine-distant-non-approuve-avec-des-informations-d39identification
0
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021
27 déc. 2021 à 12:14
dit moi,
avec ça, comment serveur qui lance ce rapport et une application cliente qui demande au serveur de l’ouvrir.
ca pourra marcher?
ReportDocument report = new ReportDocument();            
              report.Load("ARGES.rpt");
//ce code peut il marcher?


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
27 déc. 2021 à 12:20
Oui en vrai client serveur ça devrait fonctionner.
Mais c’est toute une architecture à mettre en place.

Une autre solution, si tu as quelques machines clientes, est de monter un lecteur réseau à l’emplacement \\MIN\rom\COMM\COMMER\bin\Debug\ (on va dire Z:) et de donner le chemin
 " Z:\ARGES.rpt"

0
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021
27 déc. 2021 à 12:35
Et dans Build Action ca doit etre dans CONTENT ou bien? car meme message echec du chargement du rapport crystal reports
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
27 déc. 2021 à 12:58
Je ne sais pas chez toi, mais en France, écrire en gras, c'est pour "monter" le ton, écrire beaucoup en gras c'est pour monter très fort le ton.

Donc merci d'arrêter de me crier dessus sinon...
Tu voies, c'est pas agréable.

Maintenant, configurer un fichier en tant que "contenu" dans les actions de compilation veut dire que tu veux une copie de ce fichier pour chaque exécutable, or ce que tu décris (très sommairement) me fait croire que tu veux un exemplaire unique de ce fichier, sur un ordinateur que tu appelles "serveur" et que chaque terminal utilisateur que tu appelles (à priori à tord) "client" accède à ce fichier unique.

A ma première intervention, je t'ai demandé d'expliquer ce que tu veux faire, tu ne l'as toujours pas fait.
Je réponds donc en fonction de ce que je crois comprendre. Maintenant, si tu veux vraiment que je puisse essayer de t'aider efficacement et pas au pif, c'est à toi de voir.

0
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021
27 déc. 2021 à 13:26
Merci pour les remarques, bref, pourras-tu me donner un exemple avec code pour demander au serveur de m'aficher un report?

        void load()
        {
            try
            {
                ReportDocument report = new ReportDocument();
                report.Load(Application.StartupPath + "\\CrystalReport17.rpt");// comment charger svp
                TableLogOnInfo Table = new TableLogOnInfo();
                ConnectionInfo Connection = new ConnectionInfo();
                Tables Tables;

                ParameterFields fld = new ParameterFields();
                ParameterField parmdt = new ParameterField();
                ParameterDiscreteValue dis = new ParameterDiscreteValue();
                ParameterValues Values = new ParameterValues();

                parmdt.Name = "du";
                parmdt.CurrentValues.Add(dis);
                parmdt.CurrentValues.Clear();
                parmdt.HasCurrentValue = true;
                dis.Value = margescal.date;

                ParameterField parmdt2 = new ParameterField();
                ParameterDiscreteValue dis2 = new ParameterDiscreteValue();
                parmdt2.Name = "Au";
                dis2.Value = margescal.date2;

               

                parmdt.CurrentValues.Add(dis);
                parmdt2.CurrentValues.Add(dis2);
              

                fld.Add(parmdt);
                fld.Add(parmdt2);
               
                crystalReportViewer1.ParameterFieldInfo = fld;

                crystalReportViewer1.RefreshReport();
                Connection.ServerName = "server\\my_BDD";
                Connection.DatabaseName = "CO";
                Connection.UserID = "sa";
                Connection.Password = "blablabla";

                Tables = report.Database.Tables;
                foreach (CrystalDecisions.CrystalReports.Engine.Table table in Tables)
                {
                    Table = table.LogOnInfo;
                    Table.ConnectionInfo = Connection;
                    table.ApplyLogOnInfo(Table);
                }

                crystalReportViewer1.ReportSource = report;
                crystalReportViewer1.Refresh();
            }
            catch (Exception er)
            {
                MessageBox.Show(er.Message);
            }
        }
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
27 déc. 2021 à 14:25
Là non. C’est pas juste un code exemple.
C’est une architecture complexe.

Tu dois créer l’application serveur et l’application cliente.
Choisir entre client lourd et client léger.
Choisir le protocole réseau qui les lie (TCP, UDP, unicast, broadcast, multicast), définir le protocole de dialogue etc…

Bref, c’est une conception de A à Z, c’est pas le rôle d’un forum.
Si tu veux utiliser cette solution, il te fait apprendre tout ça.

Mais comme je ne sais toujours pas ce que tu veux faire, je ne sais pas te dire si c’est une bonne solution….. Et d’ailleurs j’ai pas de temps à perdre à quémander des informations, c’est pas moi qui ai besoin d’aide.
0