public void Exporter(string directory) { // construire l'entee // charger les lignes var annexe = GetAnnexe(); var detailAnnexe = new SharedDetailAnnexe { Exercice = _exercice.Annee, SocieteCle = _societe.MatriculCle, SocieteCategorie = _societe.MatriculCategorie, SocieteMatricule = int.Parse(_societe.MatriculFiscal), SocieteNumeroEtablissement = int.Parse(_societe.MatriculEtablissement) }; var str = new StringBuilder(); str.AppendLine(AnnexeEnregistementHelper.GetEnregistrementText(annexe.Entete, detailAnnexe)); var compteur = 0; foreach (var ligne in annexe.Lignes) { compteur++; ligne.Ordre = compteur; str.AppendLine(AnnexeEnregistementHelper.GetEnregistrementText(ligne, detailAnnexe)); } str.Append(AnnexeEnregistementHelper.GetEnregistrementText(annexe.Pied, detailAnnexe)); _exportRepostiory.Write(str.ToString(), string.Format(fileName, No, _exercice.Annee[2], _exercice.Annee[3]), directory); }
public void Imprimer() { // charger les lignes var annexe = GetAnnexe(); var detailAnnexe = new SharedDetailAnnexe { Exercice = _exercice.Annee, SocieteCle = _societe.MatriculCle, SocieteCategorie = _societe.MatriculCategorie, SocieteMatricule = int.Parse(_societe.MatriculFiscal), SocieteNumeroEtablissement = int.Parse(_societe.MatriculEtablissement) }; var report = new reportAnnexUn(); report.Parameters["pRaisonSocial"].Value = _societe.RaisonSocial; report.Parameters["pActivite"].Value = _societe.Activite; report.Parameters["pAdresse"].Value = _societe.Adresse; report.Parameters["pExercice"].Value = _exercice.Annee; report.DataSource = annexe.Lignes; report.ShowPreview(); }
public static string GetEnregistrementText <T>(T enregistrement, SharedDetailAnnexe sharedDetailAnnexe) where T : IAnnexeEnregistrement, new() { var exportDetails = GetExportDetails <T>().OrderBy(x => x.Zone.Position); var lignebuilder = new StringBuilder(); foreach (var detail in exportDetails) { var zoneValue = detail is ExportDetailShared ? typeof(SharedDetailAnnexe).GetProperty(detail.Propriete).GetValue(sharedDetailAnnexe) : typeof(T).GetProperty(detail.Propriete).GetValue(enregistrement); var zone = detail.Zone; if (!zone.Exported) { continue; } var zoneText = string.Empty; switch (zone.Type) { case ZoneType.X: zoneText = zoneValue.ToString().PadRight(zone.Longueur).Substring(0, zone.Longueur); break; case ZoneType.N: zoneText = ((decimal)zoneValue * (zone.Longueur == 15 ? 1000 : 100)).ToString("0") .PadLeft(zone.Longueur, '0'); break; case ZoneType.D: zoneText = ((DateTime)zoneValue).ToString("ddMMyyyy").PadLeft(zone.Longueur, '0'); break; case ZoneType.I: zoneText = ((int)zoneValue).ToString("0").PadLeft(zone.Longueur, '0'); break; case ZoneType.E: zoneText = ((int)zoneValue).ToString("0").PadLeft(zone.Longueur, '0'); break; case ZoneType.Xr: zoneText = string.Empty.PadRight(zone.Longueur); break; case ZoneType.Nr: zoneText = string.Empty.PadRight(zone.Longueur, '0'); break; default: throw new NotImplementedException("zone type invalide!"); } lignebuilder.Append(zoneText); } if (lignebuilder.Length != 405) { throw new InvalidOperationException("Longueur de la ligne est invalide!"); } return(lignebuilder.ToString()); }