Acceuil Annuaire Annonces References Archives
A propos de 4DToday.com
Contacts
English version
Quote
Développeurs (695)
Développeurs 4D (575)
Développeur Web (320)
Développeurs d'outil (187)
Formateurs (162)
Hébergeurs Web (54)
Revendeurs (80)
Editeurs (285)
Chercher développeurs
Produits (416)
Plug-Ins (125)
Composants (61)
Librairies (9)
Livres (9)
Outils (42)
Applications verticales (144)
Chercher produits
Groupes de développeurs
Tous les groupes (20)
Annonces (5)
Offres d'emploi (2)
Demandes d'emploi (3)
Matériel - Achat (0)
Matériel - Vente (0)
Logiciel - Achat (0)
Logiciel - Vente (0)
Autre (0)
4D
4D S.A.
4D International
4D Wiki
4D Developer Network
4D Documentation en ligne
4D Documentation en PDF
4D Tech Space
Bases exemples 4D 6.8
Bases exemples 4D 2003
4D BugDisplayer
Centre de Formation 4D
Club 4D Education
Forums
Forum 4D (4D SA)
4D-Forum
4D Mailing Lists
iNUG Archives (Nabble)
iNUG Archives (Gmane)
iNUG Message Index (US)
Autre
4D Code Exchange
4D Resources
Solutions4D
Pour atteindre la vérité, il faut perdre du temps et cesser de travailler.
Montserrat Figueras  
  Soumettre une citation  
Developer News
Astuces techniques américaines postées
4D, Inc. a posté les astuces techniques de la semaine du 5 mai sur son site web. le 8.5.2008 à 09h00
 Soumettre de nouvelles infos   Archives 
Trier la sélection sur un champ d'une table liée
Transmis par Milan Adamov, YU Epicentar

La méthode ci-dessous trie la sélection dans la table N selon la valeur d'un champ dans la table Un. Cette méthode présume qu'il y a déjà un lien automatique N-vers-Un entre les deux tables.

Si vous avez un lien manuel entre les deux tables, vous pouvez activer les liens automatiques au début de la méthode et puis l'enlever à la fin. Par exemple, si vous avez un champ de type Entier long qui va de la table  [Factures] à la table [Clients] et vous voulez trier la sélection de [Factures] par le nom du client, vous appelez cette méthode comme ceci :

TRIER_TrierSurChampDuTableUn(->[Factures]; ->[Clients]NomClient)

` Method TRIER_TrierSurChampDuTableUn (Pointeur; Pointeur)

C_POINTEUR($1;$SortBaseTable_ptr;$2;$SortColumnField_ptr)
C_ENTIER LONG($3;$Direction_l;$FieldType_l)
C_BOOLEEN($MakeSelection_b)

TABLEAU ENTIER LONG($RecNums_al;0)
TABLEAU TEXTE($ToSort_at;0)
TABLEAU ENTIER LONG($ToSort_al;0)
TABLEAU ENTIER($ToSort_ai;0)
TABLEAU REEL($ToSort_ar;0)
TABLEAU DATE($ToSort_ad;0)
TABLEAU BOOLEEN($ToSort_ab;0)

$SortBaseTable_ptr:=$1
$SortColumnField_ptr:=$2
Si (Nombre de parametres>2)
  $Direction_l:=$3
Sinon
  $Direction_l:=0
Fin de si

$FieldType_l:=Type($SortColumnField_ptr->)
$MakeSelection_b:=Vrai

Au cas ou
  : ($FieldType_l=Est un entier )
    SELECTION VERS TABLEAU($SortBaseTable_ptr-> ;$RecNums_al;$SortColumnField_ptr-> ;$ToSort_ai)
    Si ($Direction_l=0)
      TRIER TABLEAU($ToSort_ai;$RecNums_al;>)
    Sinon
      TRIER TABLEAU($ToSort_ai;$RecNums_al;<)
    Fin de si
   
  : ($FieldType_l=Est un entier long ) | ($FieldType_l=Est une heure )
    SELECTION VERS TABLEAU($SortBaseTable_ptr-> ;$RecNums_al;$SortColumnField_ptr-> ;$ToSort_al)
    Si ($Direction_l=0)
      TRIER TABLEAU($ToSort_al;$RecNums_al;>)
    Sinon
      TRIER TABLEAU($ToSort_al;$RecNums_al;<)
    Fin de si
   
  : ($FieldType_l=Est un champ alpha ) | ($FieldType_l=Est un texte )
    SELECTION VERS TABLEAU($SortBaseTable_ptr-> ;$RecNums_al;$SortColumnField_ptr-> ;$ToSort_at)
    Si ($Direction_l=0)
      TRIER TABLEAU($ToSort_at;$RecNums_al;>)
    Sinon
      TRIER TABLEAU($ToSort_at;$RecNums_al;<)
    Fin de si
   
  : ($FieldType_l=Est un numérique )
    SELECTION VERS TABLEAU($SortBaseTable_ptr-> ;$RecNums_al;$SortColumnField_ptr-> ;$ToSort_ar)
    Si ($Direction_l=0)
      TRIER TABLEAU($ToSort_ar;$RecNums_al;>)
    Sinon
      TRIER TABLEAU($ToSort_ar;$RecNums_al;<)
    Fin de si
   
  : ($FieldType_l=Est une date )
    SELECTION VERS TABLEAU($SortBaseTable_ptr-> ;$RecNums_al;$SortColumnField_ptr-> ;$ToSort_ad)
    Si ($Direction_l=0)
      TRIER TABLEAU($ToSort_ad;$RecNums_al;>)
    Sinon
      TRIER TABLEAU($ToSort_ad;$RecNums_al;<)
    Fin de si
   
  : ($FieldType_l=Est un booléen )
    SELECTION VERS TABLEAU($SortBaseTable_ptr-> ;$RecNums_al;$SortColumnField_ptr-> ;$ToSort_ab)
    Si ($Direction_l=0)
      TRIER TABLEAU($ToSort_ab;$RecNums_al;>)
    Sinon
      TRIER TABLEAU($ToSort_ab;$RecNums_al;<)
    Fin de si
   
  Sinon
    $MakeSelection_b:=Faux
Fin de cas

Si ($MakeSelection_b)
  CREER SELECTION SUR TABLEAU($SortBaseTable_ptr-> ;$RecNums_al)
Fin de si
  Soumettre une astuce    Archives 
eFax
eFax eFax est un service en-ligne qui élimine le besoin d'avoir un télécopieur, une autre ligne téléphonique dédiée à recevoir des fax ou tous les frais (papier, cartouches à encre, etc.). Avec ce service, vous pouvez recevoir vos fax via Internet comme une pièce jointe à un email. Il suffit d'obtenir un numéro eFax local et vous pouvez commencer à envoyer et recevoir des fax via votre email.
  Soumettre une idée   
Aujourd'hui nous vous demandons...
Utilisez-vous 4D View ?
Oui
Pas encore, mais bientôt
Je ne l'utilise plus
Ce n'est pas prévu

Sondage transmis par Peter de Groot
  Voir résultats (aucun vote)    Soumettre un sondage 
Aucun événement n'aura lieu dans la semaine qui suit.
  Soumettre un événement