ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Affiliation RSS   

rss RSS : Really Simple Syndication

Le format RSS (fichier XML) permet de syndiquer du contenu provenant d'autres sites.
www.atoutfox.org propose :

  • la publication d'un flux RSS des dernières contributions du site www.atoutfox.org
  • la publication d'un flux RSS des derniers messages sur le forum www.atoutfox.org
  • de consulter les fluxs RSS relatant de Visual FoxPro provenant d'autres sites.

Pour répondre aux questions reçues suite à l'ouverture de cette rubrique :
« c'est quoi un RSS ? »  et  « à quoi cela sert-il ? »
Une  réponse résumée et très simplifiée :
Un feed RSS est un fichier créé dynamiquement, au format XML, contenant : une date de publication, un titre, un auteur, éventuellement une description (ou partie de description), et un lien.
Dans le cas d'Atoutfox, le feed RSS est une publication des entêtes des contributions.
Ce feed RSS rendu public permet d'être utilisé dans un autre site : la liste du contenu du site source apparait dynamiquement dans le contenu du site client avec un lien retournant sur la source... (Syndication). Le site client augmente son contenu, le site source reçoit des liens et augmente sa visibilité et son référencement.
Les informations sont à jours sur tous les sites en même temps puisque c'est dynamique.
Exemple d'utilisation d'un flux RSS : affichage ci-après des 6 derniers codes et forum de www.foxprofr.com à l'intérieur de www.atoutfox.org... Est-ce plus clair ? (sinon un petit appel à votre ami google... ;-)

Cordialement, Francis FAURE

 

Les 6 derniers articles de...

Feed RSS des dernières contributions ajoutées sur www.atoutfox.org    (source )

Date Titre Auteur
29/10/2017
11:23:27

une classe 'calculatrice' basée sur ToolBar
Bonjour à tous,

vous trouverez dans le zip joint une librairie qui contient une classe 'calculatrice' qui fait les 4 opérations, posséde une mémoire et est capable d'executer une expression. Cette calculatrice est facilement sous-classable (son organisation est adaptée au sous-classement). La librairie contient aussi une classe 'txtcalc' qui gère l'utilisation de la calculatrice (classe que vous n'êtes pas obligé d'utilser tellement elle est simple).

Le projet contient un écran de démonstration.

Le fichier lisezmoi.txt contient un descriptif détaillé.

Ceci est un premier jet. Testez le et remontez moi vos remarques.

Jean à Grenoble

Jean à Grenoble
17/09/2017
11:23:27

Extraire ou réintégrer une fenetre d'édition de IDE
bonjour à tous

comme j'ai deux écrans de travail j'aimerais étaler sur les 2 écrans les fenetres d'éditions et les formulaires. J'y parviens presque...

ouvrir une fenetre d'édition et appuyer sur F4 et pour réintegrer la fenetre Ctrl+F4. Le focus doit etre sur la fenetre d'édition

on peu le faire avec un formulaire, code snippet ou une fenetre d'édition.... cependant c'est instable....

eddymaue
16/09/2017
11:23:27

File Mapping pour énumérer les fichiers ouverts par Visual FoxPro
J'ai cherché longtemps un programme qui permet de trouver le chemin d'une fenetre d'édition. Ce code énumere tout les fichiers ouvert par Vfp....

apres on applique un simpe set filter to "prg" =justext(filename)
ou
Select DISTINCT filename from cs where "prg" == JustExt(filename)

et le tour est joué

eddymaue
16/06/2017
11:23:27

Lutte contre les logiciels frauduleux :simplification du dispositif applicable au 1 er janvier 2018
Bonjour à tous

Pour ceux qui sont en train de travailler sur la facturation de leurs logiciels, voici une bonne nouvelle

Manu


Lutte contre les logiciels frauduleux : simplification du dispositif applicable au 1 er janvier 2018

Face à l'inquiétude exprimée par les entreprises, notamment les plus petites d'entre elles, quant à la mise en ouvre au 1 er janvier 2018 d'un dispositif de la loi de finances pour 2016 visant l'usage de logiciels de caisse, de comptabilité et de gestion certifiés, le Ministre de l'Action et des Comptespublics Gérald DARMANIN a décidé de le recentrer et de le simplifier.
Seuls les logiciels et systèmes de caisse, principaux vecteurs des fraudes constatées à la TVA,seront ainsi concernés. Sans réduire son efficacité pour lutter contre les fraudes permises par l'apparition de logiciels permettant d'effacer des recettes enregistrées, la redéfinition du périmètre de l'obligation permet d'alléger la complexité induite, tant pour la mise en conformité initiale que pour le quotidien des entreprises.
Cette modification fera l'objet de mesures législatives d'ici la fin d'année, pour une entrée envigueur du dispositif comme prévu au 1 er janvier 2018.
Les entreprises qui n'auraient pas encore effectué cette mise en conformité de leur logiciel de caisse ont ainsi 6 mois pour y veiller.
Le Ministre de l'Action et des Comptes publics demande à l'administration fiscale d'accompagner les entreprises dans la première année d'application des nouvelles règles.

manu
07/06/2017
11:23:27

Les tables d'historique avec SQL 2016
Les tables d'historiques avec SQL 2016
Cette question des tables d'historique permettant de retracer toutes les modifications successives de chaque ligne d'une table, je l'ai rencontrée plusieurs fois quand je travaillais.

Les réponses existaient, mais n'étaient pas toujours simples à mettre en oeuvre. Et ne garantissaient pas l'authenticité de l'historique.

Ces derniers temps, pour vérifier que la nouvelle version de SF en préparation était bien compatible avec SQL 2016, je me suis intéreressé aux nouveautés de SQL 2016.

Et surprise! les tables d'historique sont maintenant complètement intégrées à SQL Server, dans le respect de la norme ISO SQL.
Et en plus, cette nouveauté est parfaitement supportée par VFP.


Qu'est-ce que c'est? Leur dénomination en anglais est "System-Versioned Temporal Tables". En français, on dira "Tables Temporelles avec Contrôle de Version par le Système". En abrégé, on les appelle les tables d'historiques, ou tables temporelles.
Ce sont des tables qui conservent de façon automatique, permanente et horodatée les différentes versions successives de chaque ligne créée, modifiée, ou supprimée.
Vous pouvez selon vos besoins démarrer ce service en créant une nouvelle table, ou bien à partir d'une table existant déjà.
Dans les deux cas, le serveur SQL créera une deuxième table pour enregistrer les versions de l'historique.
On appellera table principale celle qui contient les données actuelles, que vous créez/modifiez/supprimez selon les besoins de vos applications. C'est le moteur SQL qui va alimenter la table d'historique liée, sans que vous ayez quoi que ce soit à changer à votre code existant.
L'ensemble des 2 tables forme la table temporelle.
À quoi ça sert? Si vous avez besoin de prouver que les données d'une table n'ont pas été modifées en dehors de votre application Si vous devez auditer les états successifs qui ont conduit à conserver les données telles qu'elles sont Si vous avez besoin de "restaurer" une seule table, par exemple pour corriger une serie d'erreurs de saisie Si vous cherchez les ruptures et anomalies dans des données métier Etc, etc...

Michel Lévy
25/05/2017
11:23:27

Rencontres 2017 - Rencontres 2017 - Introduction à la virtualisation - Nicolas Mercurio
Introduction à la virtualisation

Nicolas Mercurio

Luc

Feed RSS des derniers messages ajoutés sur forum www.atoutfox.org    (source )

Date Titre Auteur
24/01/2018
12:06:11

Re: detecter le click de la souris sur le header d'une colonne d'un grille
exemple :

[VFP]
procedure grd.Init()

local success;
, loGrc as Column;
, laGrh[1], loGrh AS Header

* Delegate Header.Click() to a form-level method
success = aoClassCont(@m.laGrh, m.this, 'Header', .T.) > 0 && aoClassCont(): modify command abOOP (https://github.com/FoxInCloud/FoxInCloud-AB)
assert m.success
if m.success
FOR EACH loGrh IN laGrh FOXOBJECT
BindEvent(m.loGrh, 'Click', m.thisform, 'grhClick', 1)
ENDFOR
endif

procedure thisForm.grhClick
lparameters lcTag; && parameters for programmatic grid order change only
, llAsc;
, llGOTOP;

IF m.thisForm.wlHTMLgen && FoxInCloud only
return
endif

local llEvent;
, laEvent[1];
, loGrh as Header;
, loSelect as abSelect;
, lcDesc;

llEvent = Empty(Pcount())
if m.llEvent
AEvents(laEvent, 0) && 0 specifies that AEVENTS( ) returns a three-element array containing: 1- object reference to the current event source, 2- the name of the triggered event, 3- how the event was triggered.
loGrh = m.laEvent[1]
lcTag = Upper(JustField(Evl(m.loGrh.Parent.Tag, m.loGrh.Parent.ControlSource)))
endif

if lTag(m.lcTag, 'WebTemp')

loSelect = abSelect('WebTemp') && Descending() does not accept an alias as parameter
lcDesc = Iif(Order() == m.lcTag AND Descending() or m.llAsc, 'ASCENDING', 'DESCENDING')

set order to (m.lcTag) &lcDesc in WebTemp

llGOTOP = lTrue(m.llGOTOP)
if m.llGOTOP
go top in WebTemp
endif

thisform.WebTempPageUpdate(;
.T.; && do not refresh form
)

if m.llGOTOP
go top in WebTemp_Page
endif

if m.llEvent
loGrh.Parent.Parent.setFocus
else
thisForm.Refresh(.T., .T., .T., .T.)
endif
endif

[/VFP]


FoxInCloud
23/01/2018
12:06:11

Re: dynamic current control
allo

tu devrais en faire une contribution sur Atoufox ...


ybenam vient de nous annoncer :
> Merci Eddy j'ai vu le probème de substitution du caption par le caption
> cliqué auparavent. la solution est la suivante,il faut mettre un
> "dodefault()" dans la procédure showCaption

> [vfp]
> PROCEDURE showcaption
> Lparameters toButton, xtext
> dodefault() &&ici
> toButton.Caption =allt(xtext)
> toButton.backcolor=iif(mod(recno(),2)=0,rgb(0,255,0),rgb(255,120,140))
> retu
> ENDPROC
> [/vfp]

--
a+ Eddy
L'incompréhensible se réalise toujour avant le compréhensible parce que
tout simplement on ne l'a pas encore assimilé

eddymaue
23/01/2018
12:06:11

detecter le click de la souris sur le header d'une colonne d'un grille
Bonjour,

il me semble qu'il existe une technique pour détecter le click sur
n'importe lequel des headers d'une grille sans pour autant user d'un
code particulier pour chaqu'un des headers de la grille

m'en souvient plus ... si quelqu'un s'en souvient... je suis preneur

a+ eddy

--
a+ Eddy
L'incompréhensible se réalise toujour avant le compréhensible parce que
tout simplement on ne l'a pas encore assimilé

eddymaue
23/01/2018
12:06:11

Re: dynamic current control
et ca fonctionne...

c'est aussi exactement ce que j,ai besoin pour un formulair

bonne journée
:
> Merci Eddy j'ai vu le probème de substitution du caption par le caption
> cliqué auparavent. la solution est la suivante,il faut mettre un
> "dodefault()" dans la procédure showCaption

> [vfp]
> PROCEDURE showcaption
> Lparameters toButton, xtext
> dodefault() &&ici
> toButton.Caption =allt(xtext)
> toButton.backcolor=iif(mod(recno(),2)=0,rgb(0,255,0),rgb(255,120,140))
> retu
> ENDPROC
> [/vfp]

--
a+ Eddy
L'incompréhensible se réalise toujour avant le compréhensible parce que
tout simplement on ne l'a pas encore assimilé

eddymaue
23/01/2018
12:06:11

Re: dynamic current control

Merci Eddy j'ai vu le probème de substitution du caption par le caption cliqué auparavent.
la solution est la suivante,il faut mettre un "dodefault()" dans la procédure showCaption

[vfp]
PROCEDURE showcaption
Lparameters toButton, xtext
dodefault() &&ici
toButton.Caption =allt(xtext)
toButton.backcolor=iif(mod(recno(),2)=0,rgb(0,255,0),rgb(255,120,140))
retu
ENDPROC
[/vfp]

ybenam
22/01/2018
12:06:11

Re: dynamic current control
il reste un p'tit bémol lorsqu'on click sur un bouton le caption prend
la valeur du click antérieur.

ex: click sur le bouton record 1 suivit du 2

a part cela cet excellent ...

[vfp]

Public oform
oform=Newobject("madagascar")
oform.Show
Return
*
Define Class madagascar As Form
Top = 17
Left = 130
Height = 459
Width = 808
Caption = "Form1"
Name = "Form1"

Add Object grid1 As Grid With ;
Anchor = 15, ;
Height = 457, ;
Left = 0, ;
Top = 0, ;
Width = 805, ;
Name = "Grid1"

Procedure showcaption
Lparameters toButton, xtext
toButton.Caption =Allt(xtext)
*!* toButton.BackColor=Iif(Mod(Recno(),2)=0,Rgb(0,255,0),Rgb(255,120,140))
toButton.BackColor=Iif(ycurs.title="Owner
",Rgb(0,255,0),Rgb(255,120,140))
Retu
Endproc

Procedure Load
Sele * From Home(1)+"samples\data\customer" Into Cursor ycurs
Endproc

Procedure grid1.Init
With This
.RecordSource="ycurs"
.RecordSourceType=1
.DeleteMark=.F.
.RowHeight=20
.GridLines=0
.SetAll("fontbold",.T.,"header")
oCol=.column3
With oCol
Try
.AddObject("command1","commandbutton")
Catch
Endtry
.CurrentControl="command1"
.Sparse=.F.
With .command1
.Caption=""
.BackColor=Rgb(0,255,0)
.SpecialEffect=0
.FontSize=10
.FontName="courier new"
.MousePointer=15
.Visible=.T.
Endwith
.DynamicFontBold =
'thisform.showCaption(thisform.grid1.column3.command1,ycurs.contact)'
&&expression must be valid and evaluated at runtime otherwise error!
Endwith
Bindevent(oCol.command1,"mousedown",Thisform,"my")
.Refresh
Endwith
Endproc

Procedure my
Lparameters nButton, nShift, nXCoord, nYCoord
*--- aevent create an array laEvents
Aevents( myArray, 0)
*--- reference the calling object
loObject = myArray[1]
Messagebox("this is:"+loObject.Caption,0+32+4096,'',1300)
Endproc

Enddefine
[vdp/]

:
> Bonjour
> Tu peux utiliser une propriété "trompeuse/fake" telle que dynamicFontbold
> pour remplir tes bouttons ajoutés à une colonne du grid avec les valeurs
> réelles d'un champ. essaie ce bout de code:

> [vfp]
> PUBLIC oform
> oform=NEWOBJECT("madagascar")
> oform.Show
> RETURN
> *
> DEFINE CLASS madagascar AS form
> Top = 17
> Left = 130
> Height = 459
> Width = 808
> Caption = "Form1"
> Name = "Form1"

> ADD OBJECT grid1 AS grid WITH ;
> Anchor = 15, ;
> Height = 457, ;
> Left = 0, ;
> Top = 0, ;
> Width = 805, ;
> Name = "Grid1"

> PROCEDURE showcaption
> Lparameters toButton, xtext
> toButton.Caption =allt(xtext)
> toButton.backcolor=iif(mod(recno(),2)=0,rgb(0,255,0),rgb(255,120,140))
> retu
> ENDPROC

> PROCEDURE Load
> sele * from home(1)+"samples\data\customer" into cursor ycurs
> ENDPROC

> PROCEDURE grid1.Init
> with this
> .recordsource="ycurs"
> .recordsourcetype=1
> .deletemark=.f.
> .rowheight=20
> .gridlines=0
> .setall("fontbold",.t.,"header")
> oCol=.column3
> with ocol
> try
> .addobject("command1","commandbutton")
> catch
> endtry
> .currentcontrol="command1"
> .sparse=.f.
> with .command1
> .caption=""
> .backcolor=rgb(0,255,0)
> .specialEffect=2
> .fontsize=10
> .fontname="courier new"
> .mousepointer=15
> .visible=.t.
> endwith
> .DynamicFontBold =
> 'thisform.showCaption(thisform.grid1.column3.command1,ycurs.contact)'
> &&expression must be valid and evaluated at runtime otherwise error!
> endwith bindevent(ocol.command1,"mousedown",thisform,"my") .refresh
> endwith
> ENDPROC

> procedure my
> LPARAMETERS nButton, nShift, nXCoord, nYCoord
> *--- aevent create an array laEvents
> Aevents( myArray, 0)
> *--- reference the calling object
> loObject = myArray[1]
> messagebox("this is:"+loObject.caption,0+32+4096,'',1300)
> endproc

> ENDDEFINE
> *
> *-- EndDefine: madagascar
> [/vfp]

--
a+ Eddy
L'incompréhensible se réalise toujour avant le compréhensible parce que
tout simplement on ne l'a pas encore assimilé

eddymaue

Feed RSS des derniers codes ajoutés sur www.foxprofr.com    (source )

Date Titre Auteur

Feed RSS du forum www.foxprofr.com    (source )

Date Titre Auteur

Feed RSS des news de www.foxcentral.net    (source )

Date Titre Auteur
24/01/2018
02:38:14

Southwest Fox 2018: Save the Dates!

Southwest Fox Conference
10/01/2018
10:38:36

West Wind Web Connection 6.18 released

West Wind Technologies
04/12/2017
20:10:30

Markdown Monster 1.08 released

West Wind Technologies
08/11/2017
17:23:45

Philadelphia VFP User Group: Nov. 14: Macrosoft

Philadelphia Visual FoxPro User Group
25/10/2017
05:05:47

West Wind Html Help Builder 5.04 released

West Wind Technologies
20/10/2017
09:43:31

West Wind Client Tools 6.17 released

West Wind Technologies

Feed RSS de fox.wikis.com    (source )

Date Titre Auteur
23/01/2018
16:50:39

SouthwestFox2017

 


Publicité

Les pubs en cours :


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2018.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0