Bonjour,
J'ai une table avec une colonne conteneur "modèle", avec 2 champs de saisie et un champ interrupteur, que je clone plusieurs fois.
Je remplis ensuite la table par programmation.
Jusque là tout va bien mais le problème c'est que lorsque je rentre en saisie dans un des champs, tous les champs de la ligne en cours se vident...
Au niveau du code j'ai
Initialisation de la table :
NomNouvelleColonne est une chaîne
NomColonne est une chaîne
NomColonne = "COL_DEFO"
SI ChampExiste(NomColonne) ALORS
ChampSupprime(NomColonne)
FIN
POUR TOUT Marque
NomColonne = "COL_" + Marque.Nom
SI ChampExiste("COL_" + Marque.Nom) ALORS
ChampSupprime(NomColonne)
FIN
FIN
NomNouvelleColonne = "COL_DEFO"
ChampClone(COL_OriginalMarque,NomNouvelleColonne)
{NomNouvelleColonne,indChamp}..Libellé = "Défaut"
{NomNouvelleColonne,indChamp}..Visible = Vrai
{NomNouvelleColonne+".LIB_IdMarque",indChamp}..Libellé = 0
POUR TOUT Marque
NomNouvelleColonne = "COL_" + Marque.Nom
ChampClone(COL_OriginalMarque,NomNouvelleColonne)
{NomNouvelleColonne,indChamp}..Libellé = Marque.Nom
{NomNouvelleColonne,indChamp}..Visible = Vrai
{NomNouvelleColonne+".LIB_IdMarque",indChamp}..Libellé = Marque.IDMarque
FIN
Affichage d'une ligne de la table :
POUR TOUT Famille_Marque AVEC IDFamille = TABLEH_SansNom1.COL_Id
HLitRecherchePremier(Marque,IDMarque,Famille_Marque.IDMarque)
sNomMarque est une chaîne
SI HTrouve(Marque) ALORS
sNomMarque = Marque.Nom
SINON
sNomMarque = "DEFO"
FIN
{"TABLEH_SansNom1.COL_"+sNomMarque+"["+TABLEH_SansNom1+"].SAI_Marge",indChamp} = Famille_Marque.Marge
{"TABLEH_SansNom1.COL_"+sNomMarque+"["+TABLEH_SansNom1+"].SAI_MargeMax",indChamp} = Famille_Marque.MargeMax
{"TABLEH_SansNom1.COL_"+sNomMarque+"["+TABLEH_SansNom1+"].INT_DepassePVP",indChamp} = Famille_Marque.DepassePVP
SI Famille_Marque.Marge > 0 OU Famille_Marque.MargeMax > 0 OU Famille_Marque.DepassePVP = Vrai ALORS
{"TABLEH_SansNom1.COL_"+sNomMarque+"["+TABLEH_SansNom1+"]",indChamp}..CouleurFond = VertClair
FIN
FIN
Sortie de colonne COL_OriginalMarque :
IdMarque est un entier sur 8 octets = LIB_IdMarque
HLitRecherche(Famille_Marque,IDFamille_IDMarque,[TABLEH_SansNom1.COL_Id,IdMarque],hIdentique)
SI HTrouve(Famille_Marque) ALORS
SI SAI_Marge = 0 ET SAI_MargeMax = 0 ET INT_DepassePVP = Faux ALORS
HSupprime(Famille_Marque)
SINON
Famille_Marque.MargeMax = SAI_MargeMax
Famille_Marque.Marge = SAI_Marge
Famille_Marque.DepassePVP = INT_DepassePVP
HModifie(Famille_Marque)
FIN
SINON
SI SAI_Marge <> 0 OU SAI_MargeMax <> 0 OU INT_DepassePVP = Vrai ALORS
HRAZ(Famille_Marque)
Famille_Marque.IDFamille = TABLEH_SansNom1.COL_Id
Famille_Marque.IDMarque = IdMarque
Famille_Marque.MargeMax = SAI_MargeMax
Famille_Marque.Marge = SAI_Marge
Famille_Marque.DepassePVP = INT_DepassePVP
HAjoute(Famille_Marque)
FIN
FIN