<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2180" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Estimados colegas:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>mejorando una aplicacion con una unit uDM
(datamodulo) me encontre con un problema y le di una solucion, pero quisiera
conocer si lo que hize esta bien o puede mejorarse.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>en la uDM puse los componentes
tcProyPorActividades, dscProyectosPorActividades y un TSQLQuery nombrado
cProyectosPorActividades.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>en otra unit, donde se crean todas las tablas del
programa, puse el siguiente codigo:</FONT></DIV>
<DIV><FONT face=Arial size=2>
fDM.tcProyPorCentros.FileName:=directory1+'\TablasCosto_'+anomes+'.db';<BR>
if not fDM.tcProyPorCentros.TableExists('cProyPorCentros')
then<BR>
begin<BR>
fDM.tcProyPorCentros.FieldDefs.Add('ccosto',
ftString);<BR>
fDM.tcProyPorCentros.FieldDefs.Add('nombre',
ftString);<BR>
fDM.tcProyPorCentros.FieldDefs.Add('cantidad',
ftInteger);<BR>
fDM.tcProyPorCentros.FieldDefs.Add('Inventariable', ftBoolean);
//<BR>
fDM.tcProyPorCentros.FieldDefs.Add('Terminado', ftBoolean);
//<BR> end;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>y en otra unit, donde quiero realizar la consulta,
hize esto:</FONT></DIV>
<DIV><FONT face=Arial size=2>procedure
TfProyPorActividad.miHacerConsultaClick(Sender: TObject);<BR>var
sqltext1,sqltext2,sqltext3,sqltext4,sqltext5,SQLText:string;<BR>begin</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>
fDM.tcProyPorActividad.FileName:=directory1+'\TablasCosto_'+anomes+'.db';<BR>
fDM.tcProyPorActividad.SQL:='cProyPorActividad.Delete'; //debe vaciarse la
tabla</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>
fDM.tcProyPorActividad.Active:=false;<BR>
sqltext1:='SELECT
Costos_1.ccosto,Costos_1.nombre,Costos_1.cantidad,Costos_1.Inventariable,Costos_1.ProcIniMN,Costos_1.ProcIniCUC,Costos_1.DirectosMN,Costos_1.DirectosCUC,Costos_1.IndirectosMN,Costos_1.IndirectosCUC,Costos_1.Terminado,
';<BR>
sqltext2:='Costos_1.ProdTerminadosMN,Costos_1.ProdTerminadosCUC,Costos_1.ProcFinMN,Costos_1.ProcFinCUC,Costos_1.CostoUnitarioMN,Costos_1.CostoUnitarioCUC
';<BR> sqltext3:='FROM Costos_1 ';</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> case index of //index
viene de ListBox1Click<BR> 0:
begin //consultoria y
asesoramiento<BR>
sqltext4:='WHERE Costos_1.NoActividad="01"
';<BR>
end;<BR> 1: begin
//formacion<BR>
sqltext4:='WHERE (Costos_1.NoActividad="02") '
;<BR> end;<BR>
2: begin //difusion del
conocimiento<BR>
sqltext4:='WHERE (Costos_1.NoActividad="03")
';<BR>
end;<BR> 3: begin
//editorial<BR>
sqltext4:='WHERE (Costos_1.NoActividad="04")
';<BR>
end;<BR> 4: begin //generacion del
conocimiento<BR>
sqltext4:='WHERE (Costos_1.NoActividad="05")
';<BR>
end;<BR> 5: begin //servicios
informaticos<BR>
sqltext4:='WHERE (Costos_1.NoActividad="06")
';<BR>
end;<BR> 6: begin //revista nueva
empresa<BR>
sqltext4:='WHERE (Costos_1.NoActividad="07")
';<BR>
end;<BR> 7: begin
//otros<BR>
sqltext4:='WHERE (Costos_1.NoActividad="09")
';<BR>
end;<BR> end; //del case</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> sqltext5:='ORDER BY
Costos_1.ccosto ASC';<BR>
SQLText:=sqltext1+sqltext2+sqltext3+sqltext4+sqltext5;<BR>
fDM.tcProyPorActividad.SQL:=SQLText;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>
fDM.tcProyPorActividad.Active:=true;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> mousePos.x:=165;
//<BR> mousePos.y:=-10;<BR>
Mouse.CursorPos := ClientToScreen(mousePos) ;<BR>end;<BR></FONT></DIV>
<DIV><FONT face=Arial size=2>y parece que trabaja. Lo que me llevo a esto fue
que al salir la pantalla para realizar la consulta, aparecen varias
"Actividades", selecciono una y al oprimir Hacer consulta y Ver Informe, me
salen los Proyectos que estan ligados a dicha Actividad. Ahora puedo cerrar el
Report y seleccionar otra Actividad y me sale correctamente los Proyectos de la
nueva Actividad seleccionada.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Lo poco que he aprendido ha sido, como decimos por
aca, de "corte y clava" y me gustaria saber como hacerlo bien.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>saludos,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Ing. Héctor F. Fiandor Rosario<BR><A
href="mailto:hfiandor@infomed.sld.cu">hfiandor@infomed.sld.cu</A></DIV></FONT>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV></BODY></HTML>