OSay:refresh no funciona

OSay:refresh no funciona

Postby mariordz » Fri Jul 23, 2010 2:51 pm

Estimados amigos del foro, tengo un problemita, en el código adjunto no me hace el refresh de los says, es curioso, pero si compilo con la versión 2.6 el mismo código si funciona, pero si compilo en versión 6.12 (la de acceso sin costo) no los despliega.

Intenté verificar que estuviera actualizando las variables, dentro de la clausula "ON CHANGE" puse un msgalert(var1+var2+var3,var4) y como debe ser cada que hago un cambio de registro me aparece una ventanita con los datos de las variables que si se actualizan, sin embargo los says aparecen an blanco y no cambian.

Tambien intenté con la opción oSay12sv:SetText(rece), pero sin obtener un resultado exitoso.

Alguien tendrá alguna idea del porque?

Gracias y saludos.

Code: Select all  Expand view
Function procsurv
   close all
   Public oFont1
   public tidh, fesh, resh, mysh, pesh, tesh, qush, cash, prsh, cosh, repos, conts
   Public enre := space(20)
   public tregsrs
   Public vProm := 0
   public oSay1sv, oSay2sv, oSay3sv, oSay4sv, oSay5sv, oSay6sv, oSay7sv, oSay8sv, oSay9sv, oSay10sv, oSay11sv, oSay12sv
   Public colus := 1
   define font oFont1  name "TIMES NEW ROMAN" size 0,-16 bold
   do case
   case cComm="ELECTRONICOS"
      leye="Espera. Integrando información de clientes a encuestar del área de electrónicos"
      leye1="área de electrónicos"
   case cComm="SELLADORAS"
      leye="Espera. Integrando información de clientes a encuestar del área de selladoras"
      leye1="área de selladoras"
   otherwise
      cCommes=substr(cComm,1,4)
      leye="Espera. Integrando información de clientes a encuestar del commodity "+cCommes
      leye1="commodity "+cCommes
   endcase
   cursorwait()
   MsgRun( leye, "Encuesta de satisfacción de clientes",{ | oDlg | gensurv( oDlg ) } )
   if tregsrs>0
      cicsur="S"
      do while cicsur="S"
         close all
         use &dbtmp6 shared new alias hists
         index on cliysub to &dbidx1
         use &dbcust shared new alias clientes
         index on cliysub to &dbidx2
         use &dbtmp2 shared new alias reportes
         count to tcxe
         index on report_no+continue+str(cliysub) to &dbidx3
         define dialog oDialsv resource "DLGVERDB6" of oVentprinc title "Encuesta de satisfacción de clientes"
         redefine say oSay1sv prompt "Existen "+alltrim(str(tcxe))+" clientes a encuestar del "+leye1 id 0 of oDialsv
         redefine listbox oLbx1sv FIELDS IIF(clientes->(dbseek(reportes->cliysub)),clientes->razoncom,"Ubicación no especificada"),;
                  reportes->report_no+"-"+reportes->continue,reportes->model,reportes->serial_no,dtoc(reportes->date),;
                  reportes->caller,reportes->call_tele, reportes->report_no+"-"+reportes->continue, reportes->tech_id,;
                  reportes->svc_plan,reportes->m_lbr_act,reportes->complaint, dtoc(reportes->call_date),;
                  IIF(clientes->(dbseek(reportes->cliysub)),clientes->razonsoc,"Cliente no encontrado"),;
                  IIF(clientes->(dbseek(reportes->cliysub)),clientes->dir1b,"Dirección no especificada"),;
                  IIF(clientes->(dbseek(reportes->cliysub)),clientes->dir2b," "),;
                  IIF(clientes->(dbseek(reportes->cliysub)),clientes->dir3b," "),;
                  IIF(clientes->(dbseek(reportes->cliysub)),clientes->dir5b," "),;
                  IIF(clientes->(dbseek(reportes->cliysub)),str(clientes->dir4b)," "),;
                  IIF(clientes->(dbseek(reportes->cliysub)),clientes->conta2," "),;
                  IIF(clientes->(dbseek(reportes->cliysub)),clientes->telef2," "),;
                  IIF(clientes->(dbseek(reportes->cliysub)),clientes->exten2," "),;
                  IIF(clientes->(dbseek(reportes->cliysub)),clientes->email2," ");
                  ID 1 of oDialsv alias "reportes";
                  headers "Ubicación","Reporte","Modelo","Serie","Atención","Reportado por","Telefono","Reporte","Técnico",;
                  "Plan","Actividad","Falla reportada","Fecha de llamada","Razon social",;
                  "Dirección (Calle y No.)","Colonia","Municipio","Estado","C.P.","Contacto principal",;
                  "Telefono","Extensión","e-mail" on change;
                  ((IIF(hists->(dbseek(reportes->cliysub)),(fesh:=dtoc(hists->fechenc),;
                  resh:=hists->report_no,mysh:=hists->model+" / "+hists->serial_no,tidh:=hists->tech_id,;
                  pesh:=hists->mstr_oper,tesh:=hists->telephone,qush:=hists->quien,;
                  cash:=str(hists->r01)+"  "+str(hists->r02)+"  "+str(hists->r03)+"  "+str(hists->r04);
                  +"  "+str(hists->r05)+"  "+str(hists->r06)+"  "+str(hists->r07)+"  "+str(hists->r08);
                  +"  "+str(hists->r09)+"  "+str(hists->r10),prsh:= str(hists->r_avg),cosh:=hists->observa,vProm:=hists->r_avg,;
                  iif(vProm>4,oSay10sv:Setcolor(CLR_GREEN,oSay10sv:nClrPane),oSay10sv:Setcolor(CLR_HRED,oSay10sv:nClrPane))),;
                  (fesh:=" ",resh:=" ",mysh:=" ",tidh:=" ",pesh:=" ",tesh:=" ",qush:=" ",;
                  cash:=" ",prsh:=" ",cosh:=" ",vProm:=0))))
                  oDialsv:update()
         redefine say oSay2sv prompt fesh ID 13 of oDialsv update
         redefine say oSay3sv prompt resh ID 14 of oDialsv update
         redefine say oSay4sv prompt mysh ID 15 of oDialsv update
         redefine say oSay5sv prompt tidh ID 16 of oDialsv update
         redefine say oSay6sv prompt pesh ID 17 of oDialsv update
         redefine say oSay7sv prompt tesh ID 18 of oDialsv update
         redefine say oSay8sv prompt qush ID 19 of oDialsv update
         redefine say oSay9sv prompt cash ID 20 of oDialsv update
         redefine say oSay10sv prompt prsh ID 21 of oDialsv font ofont1 update
         redefine say oSay11sv prompt cosh ID 22 of oDialsv update
         redefine say oSay12sv prompt enre ID 25 of oDialsv update
         redefine button oBtn1sv ID 23 of oDialsv action(oDialsv:end(),repos:=report_no,conts:=continue,encuesta())
         redefine button oBtn2sv ID 24 of oDialsv action (oDialsv:end(),cicsur:="N")
         activate dialog oDialsv center
      enddo
   endif
   ofont1:end()
return
 
User avatar
mariordz
 
Posts: 37
Joined: Tue Dec 26, 2006 4:50 pm
Location: Ciudad de México (Chilangolandia)

Re: OSay:refresh no funciona

Postby Armando Picon » Fri Jul 23, 2010 4:55 pm

Mariordz

El unico Say que quieres refrescar es "oSay1sv" que no tiene la clausula UPDATE. En la parte donde indicas refrescar no lo mencionas. Revisa tus objeto y variables.

Armando
FWH7.12 + xHarbour 1.10 + BCC551 + WorkShop 4.5
Mi nuevo estàndar
Comunicacion via Skype: armando.picon
Comunicación via Correo: apic1002002 at yahoo dot es
User avatar
Armando Picon
 
Posts: 332
Joined: Mon Dec 26, 2005 9:11 pm
Location: Lima, Peru

Re: OSay:refresh no funciona

Postby mariordz » Tue Jul 27, 2010 5:25 pm

Armando, deseo hacer un refresh de casi todos los says, el oSay1sv no tiene la clausula update porque ese es un valor constante, pero los demas "say's" si se deben modificar a cada cambio en el registro del browse. Por el momento he vuelto a compilar con la versión 2.6 que no me presenta problema, como lo dije anteriormente, no tengo que cambiar nada del código, si compilo con la versión 2.6 funciona, con la 6.12 no.

Raro, pero cierto.

Saludos.
User avatar
mariordz
 
Posts: 37
Joined: Tue Dec 26, 2006 4:50 pm
Location: Ciudad de México (Chilangolandia)

Re: OSay:refresh no funciona

Postby Armando Picon » Tue Jul 27, 2010 11:22 pm

Algunas veces me paso lo mismo cuando salte de mi viejo 2.4 hacia la 7.12. Te explico el porqué: como vengo de Clipper, antiguamente utilizaba muchas variables Publicas para recuperar valores en las variables y, por supuesto, eso mismo lo replicaba en fwh lo que me ocasionaba no pocos disgustos. Encontré la solución definiendo primero las variables y luego las funciones que actualizaban a las variables.

Tomando en cuenta eso; podría ser una solución si pones primero los Say y después el Listbox que es donde se toman los nuevos valores. Espero eso sea la solución como lo fue en mi caso.

Saludos

Armando

mariordz wrote:Armando, deseo hacer un refresh de casi todos los says, el oSay1sv no tiene la clausula update porque ese es un valor constante, pero los demas "say's" si se deben modificar a cada cambio en el registro del browse. Por el momento he vuelto a compilar con la versión 2.6 que no me presenta problema, como lo dije anteriormente, no tengo que cambiar nada del código, si compilo con la versión 2.6 funciona, con la 6.12 no.

Raro, pero cierto.

Saludos.
FWH7.12 + xHarbour 1.10 + BCC551 + WorkShop 4.5
Mi nuevo estàndar
Comunicacion via Skype: armando.picon
Comunicación via Correo: apic1002002 at yahoo dot es
User avatar
Armando Picon
 
Posts: 332
Joined: Mon Dec 26, 2005 9:11 pm
Location: Lima, Peru

Re: OSay:refresh no funciona

Postby Raymundo Islas M. » Wed Jul 28, 2010 12:06 am

Mario,

Asi los he manejado y no he tenido problemas :

Code: Select all  Expand view

redefine xbrowse lbPvtDet id 102 of oFldPvExp:adialogs[1] ;
    columns 8,1,2,3,4,5 ;
    headers ".","NUM. PARTE","DESCRIPCION","UNITARIO","UNS","IMPORTE" ;
    colsizes 15,120,300,70,50,80 ;
    on change ( ;
        aPvtDts[6]:SetText( lbPvtDet:aRow[7] ), ;
        aPvtDts[7]:SetText( lbPvtDet:aRow[6] ) ) ;
    array { { "","","","","","","",.f.,0,0,"" } } ;
    footers ;
    font aSysFnts[1] autosort

redefine say aPvtDts[6] id 109 of oFldPvExp:adialogs[1] color CLR_HBLUE
redefine say aPvtDts[7] id 112 of oFldPvExp:adialogs[1] color CLR_HBLUE
 


Aqui estan con XBrowse, pero les daba el mismo tratamiento con el WBrowse de Hernan, con mismos resultados.


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 485
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: OSay:refresh no funciona

Postby mariordz » Wed Jul 28, 2010 2:18 pm

Muchas gracias por sus aportaciones, voy a probarlas y les aviso lo que suceda.

Saludos.
User avatar
mariordz
 
Posts: 37
Joined: Tue Dec 26, 2006 4:50 pm
Location: Ciudad de México (Chilangolandia)


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Yahoo [Bot] and 1 guest