Hola
La parte crítica es construir el parser y ya está hecho. Todas esas cosas que propones ya las tiene el dotnet excepto la parte visual los painters ide. Pero el vssdk tiene herramienta para ayudar a construir.
Como aclaración ese parser lo hice como parte de un proyecto de conversión que me pidió un cliente.
Gracias
Con tres correos más así mejor cerramos este fórum…..
Mi experiencia personal es la siguiente.
Yo ya no hago nada nuevo en VFP, me gusta el zorro pero esa es la vida. Estoy sumergido en Lazarus y Delphi e he conseguido maravilla pero a un costo alto, lo que puedo hacer en VFP de forma mas simple aquí tengo que escribir bastante y no solo escribir sino pensar como hacerlo.
Saludos.
De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] Em nome de mapner
Enviada: 15 de junho de 2016 15:58
Para: Comunidad de Visual Foxpro en Español
Assunto: [vfp] Re: Visual Foxpro.Net OpenSource
Ernesto,
Consulta etecnologia, 2011 o antes. Vfp visual studio.
Estuvieron varios años trabajando pero como en esa época estaba websofteando (PHP, MySQL) no lo probé.
Además estaba nivel alfabeta. Y a los gritos pidiendo $$$
Saludos: Miguel,
Comparto tu opinion ….
Consulta etecnologia, 2011 o antes. Vfp visual studio.
Estuvieron varios años trabajando pero como en esa época estaba websofteando (PHP, MySQL) no lo probé.
Además estaba nivel alfabeta. Y a los gritos pidiendo $$$
Saludos: Miguel, La Pampa RA
Hola, Carlos.Ya tenemos un convertidor que hace éso. Es un convertidor personalizable que se ejecuta una vez y pasa tu código de VFP al destino que tú escojas.
SaludosSuerte
LPARAMETERS nKeyCode, nShiftAltCtrl
DO CASE
CASE nKeyCode=9 OR NKEYCODE=13 &&enter o tab
THIS.Parent.LIst1.LostFocus
this.Parent.activesearch=.F.
CASE NKEYCODE=24 &&flecha abajo
IF this.Parent.ActiveSearch=.t.
NODEFAULT
THIS.Parent.LISt1.ListIndex=THIS.Parent.LISt1.ListIndex+1
ELSE
IF this.Parent.activesearchdefault=.t.
this.Parent.ActiveSearch=.t.
ELSE
this.Parent.ActiveSearch=.F.
ENDIF
ENDIF
CASE NKEYCODE=5 &&Flecha Arriba
IF this.Parent.activesearch=.t.
NODEFAULT
THIS.Parent.LISt1.ListIndex=THIS.Parent.LISt1.ListIndex-1
ELSE
IF this.Parent.activesearchdefault=.t.
this.Parent.ActiveSearch=.t.
ELSE
this.Parent.ActiveSearch=.F.
ENDIF
ENDIF
CASE NKEYCODE=27 &&Escape
NODEFAULT
THIS.Parent.LISt1.Visible=.F.
THIS.PARENT.LIST1.Clear
THIS.Parent.LISt1.ListIndex=0
*this.parent.top=this.Parent.text1.Top
*this.parent.left=this.Parent.text1.left
this.parent.Width=this.Parent.text1.Width
this.parent.Height=this.Parent.text1.Height+5
IF this.Parent.activesearchdefault=.t.
this.Parent.ActiveSearch=.t.
ELSE
this.Parent.ActiveSearch=.F.
ENDIF
CASE NKEYCODE=93 &&Menu
this.Parent.activesearch=.t.
THIS.InteractiveChange
OTHERWISE
ENDCASE
int intListItem = listBox1.SelectedIndex;
int intListItemCount = listBox1.Items.Count - 1;
listBox1.Visible = true;
if (e.KeyCode.ToString() == "Return")
{
txtDestino.Text = listBox1.Text;
listBox1.Visible = false;
}
if (e.KeyCode.ToString() == "Down")
{
intListItem++;
if (intListItem > intListItemCount)
intListItem = 0;
}
if (e.KeyCode.ToString() == "Up")
{
intListItem--;
if (intListItem < 0)
intListItem = intListItemCount;
}
listBox1.SelectedIndex = intListItem;lcValue=ALLTRIM(this.text1.Value)
lcFieldValue=this.FieldValue
lcFieldDescrip=this.FieldDescrip
lcTable=this.Table
lnLargo=LEN(lcValue)
lcAlias=""
lcCriteria="ALLTRIM(UPPER("+lcFieldValue+")+UPPER("+lcFieldDescrip+"))"
lcArray="gaCombo"+this.Name
IF VARTYPE(&lcArray)="U"
lcArrayDeclare="gaCombo"+this.Name+"(1)"
PUBLIC ARRAY &lcArrayDeclare
ENDIF
SELECT;
ALLTRIM(&lcFieldValue) as value,;
ALLTRIM(MAX(&lcFieldDescrip))as descrip;
FROM;
&lcTable;
WHERE ;
&lcCriteria LIKE "%"+UPPER(lcValue)+"%" ;
GROUP BY ;
1;
INTO ARRAY;
&lcArray
IF _TALLY>0
THIS.LISt1.ColumnLines= .F.
THIS.LISt1.ColumnCount=2
this.list1.RowSourceType=5
this.list1.RowSource=lcArray
this.list1.BoundColumn=1
this.list1.VISIBLE=.T.
this.sizear
ELSE
this.list1.VISIBLE=.T.
THIS.LIst1.RowSourceType= 0
this.list1.Clear
this.sizear
ENDIF
THISFORM.Cls
THIS.ZOrder(0)
THIS.List1.Refresh void SearchListbox(object sender, EventArgs e) { if (txtDestino.Text.Length > 0) { //realizando consulta que devuelve un reader listo para cargar al listbox SqlDataReader sql = Datos.VisitaLoad(txtDestino.Text.Trim()); listBox1.Items.Clear(); while (sql.Read()) { listBox1.Items.Add(sql[0]); }
//seleccionado el item por default if (listBox1.Items.Count > 0) { listBox1.SelectedIndex = 0; listBox1.Visible = true; } else { listBox1.SelectedIndex = -1; listBox1.Visible = false; } } else { listBox1.Visible = false; } } txtDestino.TextChanged += SearchListbox;