IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

J'ai besoin de scanner ce code et de le corriger (les initiés nouvelle numérotation de tous changé un an)


Sujet :

Bases de données Delphi

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 82
    Points : 0
    Points
    0
    Par défaut J'ai besoin de scanner ce code et de le corriger (les initiés nouvelle numérotation de tous changé un an)
    bonjour
    J'ai mis ce code pour commencer la numérotation année où tout a changé
    En d'autres termes, si j'avais un nombre tel que 01/2012 sur l'exercice 2012
    Et a changé l'année à 2013
    J'ai besoin de réparer ce code jusqu'à ce que la numérotation recommence et le nouveau numéro souhaité est 01/2013
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    procedure TFrm_FactureActel.RzBitBtn3Click(Sender: TObject);
    var s,r:string;
    t:integer;
    begin
    with DModule do
    begin
    If TParam.FieldValues['Annee']+1 then begin
    TFActel.Append;
    TFActel.FieldValues['Nu_Facture']:=TFActel.RecordCount+1;
    end;
    end;
    s:=DModule.TFActel.FieldValues['Nu_Facture'];
    t:=DModule.TParam.FieldValues['Annee'];
    r:=inttostr(t);
    DModule.TFActel.Edit;
    DModule.TFActel.FieldValues['Annee']:=r;
    DModule.TFActel.FieldValues['Nu_Facture']:=s+'/'+r;
    NumFact.setfocus;
    end;
    et merçi bcp
    je suis en attente de votre repense svp

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    C'est quoi ce code , qui ne passe même pas une simple vérification syntaxique ?
    If TParam.FieldValues['Annee']+1
    par rapport a quoi ?

    en supposant (ce que je n'aime pas)
    - que Annee soit un champ Integer,
    - que la table Factel soit triée en ordre descendant sur annee
    et certainement d'autres suppositions que je n'imagine pas , alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TFrm_FactureActel.NouvelleAnneeClick(Sender: TObject);
    t:integer;
    begin
    with DModule do
    begin
     TFactel.Last; 
     t:=TFActel.FieldValues['Annee'];
     TFActel.Append;
     TFActel.FieldValues['Annee']:=t+1;
     TFActel.FieldValues['Nu_Facture']:=1;
     TFActel.Post;
    end;
    end;
    TFActel.RecordCount+1
    très mauvaise idée si jamais il y a des trous

    1 - TFActel.FieldValues['Nu_Facture']:=TFActel.RecordCount+1;
    ...
    2- TFActel.FieldValues['Nu_Facture']:=s+'/'+r;
    Comment un champ peut-il être a la fois un Integer en 1 et un String en 2
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 82
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    C'est quoi ce code , qui ne passe même pas une simple vérification syntaxique ? par rapport a quoi ?

    en supposant (ce que je n'aime pas)
    - que Annee soit un champ Integer,
    - que la table Factel soit triée en ordre descendant sur annee
    et certainement d'autres suppositions que je n'imagine pas , alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TFrm_FactureActel.NouvelleAnneeClick(Sender: TObject);
    t:integer;
    begin
    with DModule do
    begin
     TFactel.Last; 
     t:=TFActel.FieldValues['Annee'];
     TFActel.Append;
     TFActel.FieldValues['Annee']:=t+1;
     TFActel.FieldValues['Nu_Facture']:=1;
     TFActel.Post;
    end;
    end;
    merçi mr mais comment a suivre le n°
    resultat qui je besoin
    01/2012
    02/2012
    03/2012
    01/2013
    02/2013
    03/2013

  4. #4
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par medreg Voir le message
    merçi mr mais comment a suivre le n°
    resultat qui je besoin
    01/2012
    02/2012
    03/2012
    01/2013
    02/2013
    03/2013
    Je pense qu'initialement il y a un gros problème de conception du modèle de données, des oublis majeurs qui font que vous devez dans le cas présent implémenter une rustine.

    Pour le résoudre, il faudrait déjà connaitre votre modèle de données et le moteur de base de données auquel il est appliqué.
    Grosso modo, il faut introduire dans le modèle un moyen de gérer des compteurs par année: ce peut être envisagé via une table, un ou plusieurs générateurs, etc. Ce sont d'ailleurs les suppositions qu'évoquait @SergioMaster...
    Philippe.

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 82
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Ph. B. Voir le message
    Bonjour,
    Je pense qu'initialement il y a un gros problème de conception du modèle de données, des oublis majeurs qui font que vous devez dans le cas présent implémenter une rustine.

    Pour le résoudre, il faudrait déjà connaitre votre modèle de données et le moteur de base de données auquel il est appliqué.
    Grosso modo, il faut introduire dans le modèle un moyen de gérer des compteurs par année: ce peut être envisagé via une table, un ou plusieurs générateurs, etc. Ce sont d'ailleurs les suppositions qu'évoquait @SergioMaster...
    merçi de votre repense
    la version de delphi7 et absolute database

  6. #6
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par medreg Voir le message
    la version de delphi7 et absolute database
    Je ne connais pas votre modèle de données, mais voila à priori comment je procèderais :
    Une table SuiviNum(Annee int, Compteur int)
    Annee étant la clé primaire unique.
    Compteur une valeur qui ne doit être qu'incrémentée.
    A la saisie d'une facture :
    1. Je débute une transaction (elle devra être la plus brève possible afin de ne pas pénaliser les autres utilisateurs).
    2. Je regarde si ma table a un enregistrement pour l'année en question:
      • si non, je le crée avec la valeur 1 (ex: 2013 / 1)
      • si oui, je récupère la valeur, l'incrémente, la met à jour dans la table. (ex: on passe de 2013 / 1043 à 2013 / 1044)
    3. Je valide ma transaction ; de fait, je rends la table disponible aux autres utilisateurs.
    4. J'utilise la valeur pour ma facture...

    Toute valeur non utilisée est considérée comme perdue (ou brulée).
    Philippe.

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 82
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Ph. B. Voir le message
    Je ne connais pas votre modèle de données, mais voila à priori comment je procèderais :
    Une table SuiviNum(Annee int, Compteur int)
    Annee étant la clé primaire unique.
    Compteur une valeur qui ne doit être qu'incrémentée.
    A la saisie d'une facture :
    1. Je débute une transaction (elle devra être la plus brève possible afin de ne pas pénaliser les autres utilisateurs).
    2. Je regarde si ma table a un enregistrement pour l'année en question:
      • si non, je le crée avec la valeur 1 (ex: 2013 / 1)
      • si oui, je récupère la valeur, l'incrémente, la met à jour dans la table. (ex: on passe de 2013 / 1043 à 2013 / 1044)
    3. Je valide ma transaction ; de fait, je rends la table disponible aux autres utilisateurs.
    4. J'utilise la valeur pour ma facture...

    Toute valeur non utilisée est considérée comme perdue (ou brulée).
    Merci frère pour votre réponse et essayer de m'aider
    Mais je n'ai pas mis au point la programmation et
    Par conséquent, vous demander de vous expliquer avec un exemple de ce que le code qui m'a été avec la base de donnée paradox
    voila un exemple joint pour ajouter le code qui vous m'expliquer svp
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. besoin d aide urgent code C++ merci bp
    Par adomri dans le forum C++
    Réponses: 2
    Dernier message: 05/07/2007, 18h09
  2. [PHP-JS] Besoin d'explication de code
    Par mastertiger dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2007, 23h16
  3. Besoin d'un fichier code source
    Par karimm dans le forum MATLAB
    Réponses: 1
    Dernier message: 10/11/2006, 12h50
  4. [Mail] Besoin d'aide sur code email avec PJ
    Par flysurfer dans le forum Langage
    Réponses: 1
    Dernier message: 23/02/2006, 10h52
  5. besoin d'aide sur code Block
    Par Antalus dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 31/01/2006, 18h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo