Ayuda con Radio

Re: Ayuda con Radio

Postby jrestojeda » Fri Oct 30, 2009 11:44 am

Hola José Luis...
Estaría bueno poder ver bien el código que estás escribiendo.
Conceptualmente no deberías tener problemas.
Saludos, Esteban.
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Ayuda con Radio

Postby JoseLuis » Fri Oct 30, 2009 12:56 pm

Me explico

Hay tress bases de datos, una de albaranes, otra de clientes y otra de tarifas.

A cada cliente le corresponden dos tarifas

No obstante al introducir una línea de albarán, yo puedo poner otra tarifa que no tenga grabado el cliente el su base de datos.

Creo un albarán, y le digito una tarifa que no le corresponde, pero me intersa ponersela en ése momento, y ésta tarifa se graba en la base de datos albaranes.

Después voy a modificar el albaran en el que he digitado la tarifa a pelo, que no le corresponde al cliente y al entrar en el diálogo, me ejecuta el oDlg:Update de primera, sin que yo haga el ON CHANGE y al hacerlo, me quita la tarifa que había puesto a pelo, y me pone la tarifa que le corresponderia, si le doy al radio valor 1, la tarifa 1 y si le doy un 2 , la tarifa 2. pero yo lo que quiero es que al abrir el diálogo, me mantenga la tarifa que tengo puesta en la base de datos albaran, que la he metido a mano, porque vuelvo a decir que no hago ON CHANGE, y sin embargo me ejecuta la fución que hay tras él, y es lo que me vuelve loco, todo está bien excepto que no quiero que al eltrar de primeras me evalúe la función que tengo en el on change del radio, hasta que realmente cambie de radio.
--------------------------
Saludos

Jose Luis
JoseLuis
 
Posts: 428
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Ayuda con Radio

Postby JoseLuis » Fri Oct 30, 2009 1:08 pm

He modificado el código y he añadido un Radio más como he dicho anteriormente para salir del atolladero.


static FUNCTION Entalba(cTitulo,cQueHago,reconduc,aAlias)

  local oBmp
  local cCodProTem
  local cCodconTem
  LOCAL cCodartTem
  local oboton
  local onumero
  local oDlg,oGet
  local ocodprou
  local ti:=.F.
  local cestado
  local titulo
  local valor:='S'
  local lOldConfirm := Set( _SET_CONFIRM )
  local i,osay,arect
  local oRadio1,oRadio2,oRadio3
  local oalbaran,ogastos
  local oconduc
  local ctexto:='00'
  local ntot:=0
  local lcomple:=.F.
  local lmb:=.F.
  local oFont1
  local occr,ogroup
  local mkilos,mvolu
  local seltar:=1
  Publicas:cAlbaran:=space(7)
  Publicas:imporan:=0
  Publicas:ccr:=space(1)
  Publicas:ckilos:=0
  Publicas:ngastos:=0
  Publicas:lforza:=.F.
  Publicas:cfcobro2:=1
  Publicas:cestadis:=.T.
  Publicas:xdatos:=space(40)
  Publicas:xdatos1:=space(40)
  Publicas:xconcre:='A L B A R A N E S  D E  C R E D I T O'
  Publicas:cbk:='B'
  Publicas:xntipo:=1
  Publicas:cfe := Publicas:dFetra
  Publicas:cDomiprou:=' '
  Publicas:cControlSal:=" "
  Publicas:cDomipro:=' '
  Publicas:Ruta:=space(2)
  Publicas:Ruta1:=space(2)
    if cQueHago ="V"
     Publicas:cTota:=round((aAlias[24])->baseimpo*Publicas:resultado,2)
     Publicas:cImp := Publicas:cTota - (aAlias[24])->baseimpo
  endif
  if cQueHago = "A"
    Publicas:cTipo      := 1
    Publicas:xc_Alm     := SPACE(5)
    cCodPro     := SPACE(5)
    cCodProu        := space(5)
    Publicas:cProu      := space(35)
    Publicas:cPro       := space(35)
    Publicas:cCodart    := SPACE(4)
    Publicas:cPrecio_C  := 0
    Publicas:cPobla     :=space(24)
    Publicas:cPobla1    :=space(24)
    Publicas:cNeto      := 1
    Publicas:cTot       := 0
    Publicas:cTota      := 0
    Publicas:cImp       := 0
    Publicas:nIva       := 0
    cestado     := '1'
    Publicas:ltReemb    := .F.
    Publicas:lObse      := .F.
    Publicas:lgrupo     := .F.
    Publicas:cNgrupo    := space(10)
    Publicas:cClave     := space(5)
    Publicas:nGImporte  := 0
    Publicas:ngReembol  := 0
    Publicas:nIreemb    := 0
    Publicas:cObservaci := StrTran( "", Chr( 141 ) + Chr( 10 ), "" )
    if Publicas:cAuto='S'
      (aAlias[24])->(Dbgobottom())
      Publicas:nAlba:=val((aAlias[24])->albaran)+1
      Publicas:cAlbaran:= Padl(alltrim(str(Publicas:nAlba)),7,"0")
    endif
  else
   Publicas:cObservaci := StrTran( (aAlias[24])->observaci, Chr( 141 ) + Chr( 10 ), "" )
   cestado:= (aAlias[24])->estado
   if cestado='2' .and. cQueHago = "M"
      msgalert('VAS A MODIFICAR UN ALBARAN FACTURADO','A VER LO QUE HACES')
   endif
   Publicas:cTipo     := (aAlias[24])->tipo
   Publicas:cAlbaran  := (aAlias[24])->Albaran
   Publicas:cFe       := (aAlias[24])->Fecha
   cCodPro        := (aAlias[24])->Codpro
   cCodProu       := (aAlias[24])->Codprou
   Publicas:cPro      := (aAlias[24])->pro
   Publicas:cDomipro  := (aAlias[24])->domipro
   Publicas:cPobla    := (aAlias[24])->pobla
   Publicas:cPobla1   := (aAlias[24])->pobla1
   Publicas:cProu     := (aAlias[24])->prou
   Publicas:cTota     := round((aAlias[24])->baseimpo*Publicas:resultado,2)
   Publicas:cImp      := Publicas:cTota - (aAlias[24])->baseimpo
   Publicas:cCodart   := (aAlias[24])->Codart
   Publicas:cArt      := (aAlias[24])->Art
   Publicas:cCon      := (aAlias[24])->nconductor
   Publicas:cTot      := (aAlias[24])->baseimpo
   Publicas:cPrecio_C := (aAlias[24])->Precio_c
   Publicas:cNeto     := (aAlias[24])->kilos
   Publicas:cCodcon   := (aAlias[24])->conductor
   Publicas:nIva      := (aAlias[24])->iva
   Publicas:ngastos   := (aAlias[24])->gastos
   Publicas:cfcobro2  := iif((aAlias[24])->gastos=0,1,2)
   Publicas:imporan   := (aAlias[24])->baseimpo
   Publicas:ccr       := (aAlias[24])->cr
   Publicas:ruta      := iif(Publicas:ccr="C",(aAlias[24])->rutac,(aAlias[24])->rutar)
   Publicas:ruta1     := iif(Publicas:ccr="C",(aAlias[24])->rutar,(aAlias[24])->rutac)
   Publicas:ckilos    := (aAlias[24])->kkilos
   Publicas:ltReemb   := (aAlias[24])->treemb
   Publicas:lObse     := (aAlias[24])->obse
   Publicas:lgrupo    := (aAlias[24])->grupo
   Publicas:cNgrupo   := (aAlias[24])->ngrupo
   Publicas:cClave    := (aAlias[24])->clave
   Publicas:nGImporte := (aAlias[24])->gimporte
   Publicas:ngReembol := (aAlias[24])->gReembol
   Publicas:nIreemb   := (aAlias[24])->ireemb
   Publicas:xc_Alm    := (aAlias[24])->c_alm
   Publicas:xdatos    := (aAlias[24])->datos
   Publicas:xdatos1   := (aAlias[24])->datos1
   Publicas:cbk       := (aAlias[24])->bk
   Publicas:xconcre   := iif((aAlias[24])->Tipo=1,'A L B A R A N E S  D E  C R E D I T O','A L B A R A N E S  D E  C O N T A D O')
   Publicas:cestadis  := (aAlias[24])->estadis
   mkilos             := iif((aAlias[24])->bk="K",(aAlias[24])->kilos,(aAlias[24])->kkilos)
   mvolu              := (aAlias[24])->volumen
   (aAlias[21])->(Dbseek(cCodpro))
   lmb:=(aAlias[21])->mb
   if Publicas:ltReemb=.T.
      (aAlias[28])->(Dbseek(Publicas:cAlbaran))
   endif
  endif
     DEFINE FONT oFont1 NAME "ARIAL" SIZE 0,-15 BOLD ITALIC
    DEFINE DIALOG oDlg RESOURCE "Entradas"  BRUSH Publicas:oBrush1 TRANSPARENT Font Publicas:oWPpal:ofont
     oDlg:cTitle:=cTitulo
    REDEFINE GROUP oGroup ID 300 COLOR CLR_HBLUE, CLR_GRAY OF oDlg ;
    FONT Publicas:oWPpal:oFont TRANSPARENT
    REDEFINE GROUP oGroup ID 301 COLOR CLR_HBLUE, CLR_GRAY OF oDlg ;
    FONT Publicas:oWPpal:oFont TRANSPARENT
    REDEFINE GROUP oGroup ID 302 COLOR CLR_HBLUE, CLR_GRAY OF oDlg ;
    FONT Publicas:oWPpal:oFont TRANSPARENT
    REDEFINE GROUP oGroup ID 303 COLOR CLR_HBLUE, CLR_GRAY OF oDlg ;
    FONT Publicas:oWPpal:oFont TRANSPARENT
    REDEFINE GROUP oGroup ID 304 COLOR CLR_HBLUE, CLR_GRAY OF oDlg ;
    FONT Publicas:oWPpal:oFont TRANSPARENT
    REDEFINE GROUP oGroup ID 305 COLOR CLR_HBLUE, CLR_GRAY OF oDlg ;
    FONT Publicas:oWPpal:oFont TRANSPARENT
    REDEFINE GROUP oGroup ID 306 COLOR CLR_HBLUE, CLR_GRAY OF oDlg ;
    FONT Publicas:oWPpal:oFont TRANSPARENT
    REDEFINE GROUP oGroup ID 307 COLOR CLR_HBLUE, CLR_GRAY OF oDlg ;
    FONT Publicas:oWPpal:oFont TRANSPARENT
    REDEFINE GROUP oGroup ID 308 COLOR CLR_HBLUE, CLR_GRAY OF oDlg ;
    FONT Publicas:oWPpal:oFont TRANSPARENT
    REDEFINE RADIO oRadio1  VAR Publicas:cTipo    ID 32 , 33 OF oDlg ;
                   ON CHANGE (iif(Publicas:cTipo=1,(Publicas:oAlbaran1:Hide(),Publicas:oAlbaran2:Hide(),;
           Publicas:oDetalle2:settext('A L B A R A N E S  D E  C R E D I T O')),;
           (Publicas:oAlbaran1:show(),Publicas:oAlbaran2:Show(),;
           Publicas:oDetalle2:settext('A L B A R A N E S  D E  C O N T A D O'),;
           Publicas:cTota:=round((aAlias[24])->baseimpo*Publicas:resultado,2),;
           Publicas:cImp:=Publicas:cTota-(aAlias[24])->baseimpo)),oDlg:Refresh(),oDlg:Update() ) When cQuehago$"AM"
    REDEFINE RADIO oRadio2  VAR Publicas:cfcobro2 ID 34,35 OF oDlg Update When cQuehago$"AM" .and. Publicas:ltReemb=.T.      
    REDEFINE RADIO oRadio3  VAR seltar ID 37,38,39 OF oDlg When cQuehago$"AM";
                 ON CHANGE (ponotra(cquehago,seltar,aAlias),oDlg:Update)
    REDEFINE CHECKBOX lcomple          ID 250 OF oDlg Update When cQuehago$"AM"
    REDEFINE CHECKBOX Publicas:ltReemb ID 251 OF oDlg Update When cQuehago$"AM"
    REDEFINE CHECKBOX Publicas:lObse   ID 252 OF oDlg Update When cQuehago$"AM"
    REDEFINE CHECKBOX Publicas:lgrupo  ID 253 OF oDlg Update When cQuehago$"AM"
    REDEFINE CHECKBOX Publicas:lforza  ID 254 OF oDlg Update When cQuehago$"AM"
    REDEFINE SAY osay ID 6 OF oDlg COLOR CLR_GREEN
    if cQuehago="A"
    REDEFINE SAY osay PROMPT "" ID 7 OF oDlg
    else
    REDEFINE SAY osay PROMPT Str((aAlias[24])->Orden,7) ID 7 OF oDlg COLOR nRGb( 251, 151,  71 ) Font Publicas:frosa

    endif
    REDEFINE SAY osay ID 8 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 9 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 10 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 11 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 12 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 13 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 14 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 15 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 16 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 17 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 18 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 19 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 20 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 21 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 24 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 25 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 27 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY Publicas:oDetalle  ID 28 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY Publicas:oDetalle1 ID 29 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY Publicas:oDetalle2 ID 36 OF oDlg COLOR RGB(255,97,35) FONT oFont1
    REDEFINE SAY osay ID 30 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 31 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 40 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 41 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 42 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY osay ID 43 OF oDlg COLOR CLR_GREEN
    REDEFINE BTNGET onumero VAR Publicas:cAlbaran ID 101 OF oDlg Picture "@!" Update;
        Valid ((Publicas:cAlbaran:= Padl(alltrim(Publicas:cAlbaran),7,"0"),oDlg:Update()),;
      IIf ((aAlias[24])->(dbseek(Publicas:cAlbaran)) .or. Publicas:cAlbaran='0000000',;
      (MsgStop(OemToAnsi("El Numero de albaran no es valido"),"ERROR"),.F.),(Publicas:cControlSal:="*",.T.)));
                  When cQuehago$"A"
    REDEFINE BTNGET oGet VAR Publicas:cFe ID 102 OF oDlg Update RESOURCE "CALENDAR" ;
                Valid ((valor:= evalua(Publicas:cFe),oDlg:Update()),;
                IIf (year(Publicas:cFe)<>val(Publicas:cSubd),;
                (MsgStop(OemToAnsi("Cuidadin que la Fecha no Vale"),"ERROR"),.F.),(Publicas:cControlSal:="*",.T.))); //valid eval ({||(valor:=evalua(Publicas:cFe),oDlg:Update()),.T.}) ;
                ACTION (Publicas:cFe:=calenda(GetCoors(oDlg:hWnd),GetCoors(oGet:hWnd)),oDlg:Update());
                when cQuehago$"AM" .and. valor="S"
    REDEFINE BTNGET oalbaran VAR cCodPro ID 103 OF oDlg Update Picture "@!" ;
                Valid ((cCodPro:= Padl(alltrim(cCodPro),5,"0"),oDlg:Update()),;
                IIf (!(aAlias[21])->(dbSeek(cCodPro)) .OR. cCodPro='00000' .or. (aAlias[21])->anul=.T.,;
                (cCodProTem:=cCodPro,LocPro(@oDlg,@ccodpro,aAlias),oDlg:Update(),.F.),;
                (Publicas:xc_Alm:=buscaalm((aAlias[21])->codigo,1,aAlias),Publicas:cPro := (aAlias[21])->nombre,lmb:=(aAlias[21])->mb,;
        Publicas:cCodart:=busforza(aAlias),Publicas:cDomipro:=(aAlias[21])->calle,;
        Publicas:cPobla:=(aAlias[21])->pobla,Publicas:cArt:=tipoa(Publicas:cCodart,aAlias),Publicas:xntipo:=tipob(Publicas:cCodart,aAlias),titulo:=strtran(Publicas:cArt,'Cobro por '),pontitulo(titulo),;
                Publicas:cControlSal:="*",oDlg:Update(),.T. )));
                When valor="S"
    REDEFINE BTNGET oalbaran VAR Publicas:cPro    ID 104 Of oDlg Update Picture "@!";
                 valid eval ({||(acompleto('uno',lcomple),oDlg:Update()),.T.}) ;
         When cCodPro='99999'
    REDEFINE BTNGET occr VAR Publicas:ccr  ID  52 Picture "@!" Of oDlg Valid(Compara(Publicas:ccr)) When cQuehago$"AM" .and. valor="S"
    REDEFINE BTNGET ocodprou VAR cCodProu ID 105 OF oDlg Update Picture "@!" ;
                Valid ( (cCodProu:= Padl(alltrim(cCodProu),5,"0"),oDlg:Update()),;
                IIF(cCodProu <> '88888',(IIf (!(aAlias[21])->(dbSeek(cCodProu)) .OR. cCodProu='00000',;
                (cCodProTem:=cCodProu,LocPro(@oDlg,@ccodprou,aAlias),oDlg:Update(),.F.),;
                (Publicas:xdatos1:=Buscaalm((aAlias[21])->codigo,2,aAlias),Publicas:cDomiprou:=(aAlias[21])->calle,Publicas:cProu := (aAlias[21])->nombre,Publicas:cPobla1:=(aAlias[21])->pobla,;
                Publicas:cControlSal:="*",oDlg:Update(),.T. ))),(Publicas:cProu := (aAlias[21])->nombre,Publicas:cPobla1:=(aAlias[21])->pobla,Publicas:cControlSal:="*",oDlg:Update(),.T.)) );
                 When cQuehago$"AM" .and. valor="S"
    REDEFINE BTNGET oalbaran VAR Publicas:cProu    ID 106 Of oDlg Update Picture "@!";
                   valid eval ({||(acompleto('dos',lcomple),oDlg:Update()),.T.}) ;
                   When cCodProu='99999' .and. cQuehago$"AM"
    REDEFINE BTNGET oalbaran VAR Publicas:cPobla   ID 120 Of oDlg Update Picture "@!";
                   When ti=.T.
    REDEFINE BTNGET oalbaran VAR Publicas:cPobla1  ID 121 Of oDlg Update Picture "@!";
                   When ti=.T.
    REDEFINE BTNGET oalbaran VAR Publicas:cCodart ID 107 OF oDlg Update Picture "@!";
                Valid ((Publicas:cCodart:= Padl(alltrim(Publicas:cCodart),4,"0"),oDlg:Update()),;
                IIf (!(aAlias[1])->(dbSeek(Publicas:cCodart)) .OR. Publicas:cCodart='0000',;
                (cCodartTem:=Publicas:cCodart,LocArt(@oDlg,aAlias),oDlg:Update(),.F.),;
                (Publicas:cArt:=tipoa(Publicas:cCodart,aAlias),Publicas:xntipo:=tipob(Publicas:cCodart,aAlias),titulo:=strtran(Publicas:cArt,'Cobro por '),pontitulo(titulo),oDlg:Update(),.T. ))) ;
                 When cQuehago$"AM" .and. valor="S"
    REDEFINE BTNGET oalbaran VAR Publicas:cArt    ID 108 Of oDlg Update ;
                 When ti=.T.  
    REDEFINE SAY Publicas:oTitulo ID 200 OF oDlg COLOR CLR_GREEN
    REDEFINE SAY Publicas:oTitulo1 ID 53 OF oDlg COLOR CLR_GREEN
    REDEFINE BTNGET oalbaran VAR Publicas:cNeto     ID 111 OF oDlg Update picture "@Z 99,999";
                Valid ((Publicas:cPrecio_C:=valora(Publicas:cNeto,aAlias),oDlg:Update()),;
                IIf (Publicas:cNeto =0,;
                (msgstop('Error','Cantidad Cero'),oDlg:Update(),.F.),;
                (Publicas:cTot:=ponminimo(Publicas:cNeto,Publicas:cPrecio_C,aAlias),pontot(Publicas:cTot),oDlg:Update(),.T. ))) ;
                 When cQuehago$"AM" .and. valor="S"
    REDEFINE BTNGET oalbaran VAR Publicas:ckilos   ID 54 OF oDlg Update picture "@Z 99,999";
                 valid eval ({||(valorabultos(Publicas:ckilos,aAlias,lmb),oDlg:Update()),.T.}) ;
         when titulo='kilos/Tramos' .or. titulo='kilos/Unidad'
    REDEFINE BTNGET oalbaran VAR Publicas:cPrecio_C ID 110 OF oDlg Update picture "@Z 999.999999";
         When cQuehago$"AM" .and. valor="S"
    REDEFINE BTNGET oalbaran VAR Publicas:cTot ID 112 Of oDlg Update PICTURE "@Z 99,999.99" ;
                 valid eval ({||(ntot:= Publicas:cTot,oDlg:Update()),.T.}) ;
                 When cQuehago$"AM" .and. Publicas:cTipo=1
    REDEFINE BTNGET Publicas:oAlbaran1 VAR Publicas:cImp  ID 125 Of oDlg Update PICTURE "@Z 9,999.99" When cQuehago$"AM"
    REDEFINE BTNGET Publicas:oAlbaran2 VAR Publicas:cTota ID 126 Of oDlg Update PICTURE "@Z 99,999.99" When cQuehago$"AM";
                 valid eval ({||(Publicas:cTot:= round(Publicas:cTota/Publicas:resultado,2),oDlg:Update()),.T.})
    REDEFINE BTNGET oconduc VAR Publicas:cCodcon ID 113 OF oDlg Update Picture "@!";
                Valid ((Publicas:cCodcon:= Padl(alltrim(Publicas:cCodcon),5,"0"),oDlg:Update()),;
                IIf (!(aAlias[26])->(dbSeek(Publicas:cCodcon)) .OR. Publicas:cCodcon='00000',;
                (cCodconTem:=Publicas:cCodcon,Loccon(@oDlg,aAlias),oDlg:Update(),.F.),;
                (Publicas:cCon:=(aAlias[26])->nombre,oDlg:Update(),.T. ))) ;
                When cQuehago$"AM"
    REDEFINE BTNGET oalbaran VAR Publicas:cNgrupo ID 221 OF oDlg Update;
        Valid ((Publicas:cNgrupo:= Padl(alltrim(Publicas:cNgrupo),10,"0"),oDlg:Update()),;
      IIf (Publicas:cNgrupo='0000000000',;
      (MsgStop(OemToAnsi("El Numero de grupo no es valido"),"ERROR"),.F.),(Publicas:cControlSal:="*",.T.)));
                  When cQuehago$"AM" .and. Publicas:lgrupo=.T.
    REDEFINE BTNGET oalbaran VAR Publicas:cClave ID 222 OF oDlg Update;
        Valid ((Publicas:cClave:= Padl(alltrim(Publicas:cClave),5,"0"),oDlg:Update()),;
      IIf (Publicas:cClave='99999',;
      (MsgStop(OemToAnsi("El Numero de clave no es valido"),"ERROR"),.F.),(Publicas:cControlSal:="*",.T.)));
                  When cQuehago$"AM" .and. Publicas:lgrupo=.T.
    REDEFINE BTNGET oalbaran VAR Publicas:nGImporte ID 223 OF oDlg Update PICTURE "@Z 99,999.99" ;
                  When cQuehago$"AM" .and. Publicas:lgrupo=.T.
    REDEFINE BTNGET oalbaran VAR Publicas:ngReembol ID 224 OF oDlg Update PICTURE "@Z 99,999.99" ;
                  When cQuehago$"AM" .and. Publicas:lgrupo=.T.
    REDEFINE BTNGET oalbaran VAR Publicas:cCon ID 114 Of oDlg Update ;
                When ti=.T.
    REDEFINE BTNGET oalbaran VAR Publicas:cCodart ID 226 OF oDlg Update Picture "@!";
                Valid ((Publicas:cCodart:= Padl(alltrim(Publicas:cCodart),4,"0"),oDlg:Update()),;
                IIf (!(aAlias[1])->(dbSeek(Publicas:cCodart)) .OR. Publicas:cCodart='0000',;
                (Publicas:cCodartTem:=Publicas:cCodart,LocArt(@oDlg,aAlias),oDlg:Update(),.F.),;
                (Publicas:cArt:=tipoa(Publicas:cCodart,aAlias),Publicas:xntipo:=tipob(Publicas:cCodart,aAlias),titulo:=strtran(Publicas:cArt,'Cobro por '),pontitulo(titulo),oDlg:Update(),.T. ))) ;
                 When Publicas:lforza=.T.
    REDEFINE BTNGET oalbaran VAR Publicas:cArt    ID 227 Of oDlg Update ;
                 When ti=.T.  
    REDEFINE BTNGET oalbaran VAR ctexto ID 119 Of oDlg Update ;
                Valid ((ctexto:= Padl(alltrim(ctexto),2,"0"),oDlg:Update()),;
                IIf (!(aAlias[13])->(dbSeek(ctexto)) .OR. ctexto='00',;
                (msgstop('CODIGO NO EXISTE','ATENCION'),oDlg:Update(),.F.),;
                (Publicas:cObservaci:=(aAlias[13])->nombre,Publicas:cControlSal:="*",oDlg:Update(),.T. )));
                When cQuehago$"AM" .and. Publicas:lObse=.T.
    REDEFINE BTNGET oalbaran VAR mkilos    ID 127 Of oDlg Update ;
                 When ti=.T.  
    REDEFINE BTNGET oalbaran VAR mvolu     ID 128 Of oDlg Update ;
                 When ti=.T.  
    REDEFINE BTNGET oalbaran VAR Publicas:nIreemb ID 202 Of oDlg Update PICTURE "@Z 99,999.99" ;
                 valid eval ({||Publicas:ngastos:=iif(Publicas:nIreemb*Publicas:gReembo/100<Publicas:gMinimo,Publicas:gMinimo,round(Publicas:nIreemb*Publicas:gReembo/100,2)),oDlg:Update(),.T.});
         When cQuehago$"AM" .and. Publicas:ltReemb=.T.
    REDEFINE BTNGET ogastos VAR Publicas:ngastos ID 203 Of oDlg Update PICTURE "@Z 99,999.99" ;
                 valid eval ({||Publicas:cTot:=iif(Publicas:cfcobro2=1,Publicas:cTot+Publicas:ngastos,Publicas:cTot),pontot(Publicas:cTot),oDlg:Update(),.T.}) ;
         When cQuehago$"AM" .and. Publicas:ltReemb=.T.
    REDEFINE GET oalbaran VAR Publicas:cObservaci MEMO ID 150 OF oDlg Update When cQuehago$"AM" .and. Publicas:lObse=.T.
    REDEFINE BITMAP oBmp RESOURCE "Lupin" ID 115 OF oDlg ADJUST;
                        ON LEFT CLICK ( cCodProTem:=cCodPro,;
                                        LocPro(@oDlg,@ccodpro,aAlias),oDlg:Update());
                                        When cQuehago$"AM"
    REDEFINE BITMAP oBmp RESOURCE "Lupin" ID 116 OF oDlg ADJUST;
                        ON LEFT CLICK ( cCodProTem:=cCodProu,;
                                        LocPro(@oDlg,@ccodprou,aAlias),oDlg:Update());
                                        When cQuehago$"AM"
    REDEFINE BITMAP oBmp RESOURCE "Lupin" ID 117 OF oDlg ADJUST;
                        ON LEFT CLICK ( Publicas:cCodartTem:=Publicas:cCodart,;
                                        LocArt(@oDlg,aAlias),oDlg:Update());
                                        When cQuehago$"AM"
    REDEFINE BITMAP oBmp RESOURCE "Lupin" ID 118 OF oDlg ADJUST;
                        ON LEFT CLICK ( cCodconTem:=Publicas:cCodcon,;
                                        Loccon(@oDlg,aAlias),oDlg:Update());
                                        When cQuehago$"AM"
    REDEFINE BUTTON oboton ID 550 OF oDlg PROMPT "Aceptar" ;
                                      ACTION (grabar(valor,cQueHago,cestado,aAlias),iif(cQuehago='M',oDlg:End,(oDlg:Update(),oboton:oJump:=onumero,onumero:setfocus())));
                      When cQuehago$"AM"
    if Publicas:ltReemb=.F. .or. Publicas:lgrupo=.F.
    oboton:oJump := onumero
    endif
    oGet:bGotFocus := {|| if( reconduc="C", (oGet:oJump:=oconduc,oconduc:SetFocus(), .f. ), )}
    occr:bGotFocus := {|| Set( _SET_CONFIRM, .F. ) }
    occr:bLostFocus := {|| Set( _SET_CONFIRM, lOldConfirm ) }
   ACTIVATE DIALOG oDlg CENTERED;
      ON INIT (prepara(cquehago,aAlias),Publicas:oDetalle:settext(alltrim(Publicas:xdatos)),;
      Publicas:oDetalle1:settext(alltrim(Publicas:xdatos1)),Publicas:oDetalle2:settext(alltrim(Publicas:xconcre)),;
      if( cquehago="A", ( onumero:SetFocus(), .f. ), ))
RETURN NIL
Static function ponotra(cquehago,seltar,aAlias)
local titulo
 if seltar==1 .and. cQuehago$"M"
    Publicas:ccodart:=(aAlias[24])->Codart
    Publicas:cArt:=tipoa(Publicas:cCodart,aAlias)
    Publicas:xntipo:=tipob(Publicas:cCodart,aAlias)
    titulo:=strtran(Publicas:cArt,'Cobro por ')
    pontitulo(titulo)
    Publicas:cPrecio_C:=valora(Publicas:cNeto,aAlias)
      If Publicas:cNeto =0
         msgstop('Error','Cantidad Cero')
      endif
    Publicas:cTot:=ponminimo(Publicas:cNeto,Publicas:cPrecio_C,aAlias)
    pontot(Publicas:cTot)
 endif
 if seltar==2
    Publicas:ccodart:=(aAlias[21])->Tipo
 endif
 if seltar==3
    Publicas:ccodart:=(aAlias[21])->Tipo1
 endif
 if seltar==2 .or. seltar==3
    Publicas:cArt:=tipoa(Publicas:cCodart,aAlias)
    Publicas:xntipo:=tipob(Publicas:cCodart,aAlias)
    titulo:=strtran(Publicas:cArt,'Cobro por ')
    pontitulo(titulo)
    Publicas:cPrecio_C:=valora(Publicas:cNeto,aAlias)
      If Publicas:cNeto =0
         msgstop('Error','Cantidad Cero')
      endif
    Publicas:cTot:=ponminimo(Publicas:cNeto,Publicas:cPrecio_C,aAlias)
    pontot(Publicas:cTot)
  endif
Return nil
JoseLuis
 
Posts: 428
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Ayuda con Radio

Postby Pedro » Fri Oct 30, 2009 6:00 pm

Has probado, como te he puesto en tu ejemplo modificado, a poner el nOption a cero?
De esta forma no hará el cambio hasta que no pulses uno de los radios, claro que el primer radio estará por defecto activado, y sólo pondrá su dato una vez pulsado el segundo radio y vuelta a pulsar el primero, esto es porque en la clase tiene que haber uno activado y por defecto es el primero.
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Ayuda con Radio

Postby JoseLuis » Fri Oct 30, 2009 9:17 pm

Hola pedro

Si, probé pero aunque le des valor 0, a la función pasa con valor 1.
Esto no ocurre con otros valores, es decir si en un radio pones 2, entra con valor 2, etc. pero el único valor que no acepta es el 0, pruébalo.
--------------------------
Saludos

Jose Luis
JoseLuis
 
Posts: 428
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Ayuda con Radio

Postby Pedro » Sat Oct 31, 2009 8:30 am

Hola José Luis
Veamos, 1º hasta que no pinches el radio, no debería hacer el on change, 2º si en vez de poner el update en el on change lo pones en la funcion ponotra, ON CHANGE (ponotra(cquehago,seltar,aAlias,oDlg)) hasta que no llegue a esa funcion no hara el update del dialogo, prueba en el ejemplo a poner un msginfo en la funcion y veras que hasta que no pinches un radio, no ves el msginfo, por lo que da lo mismo que valor pongas en el noption, si cero, uno, o dos, lo único que ves seleccionado es el primero o segundo radio en funcion del valor por defecto, o el valor válido del noption. No debería afectarte a los valores que tenga el albarán en función de la tarifa que le hayas puesto.
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Ayuda con Radio

Postby JoseLuis » Sat Oct 31, 2009 10:13 am

Hola Pedro

Ahí está el quit de la cuestión, como he repedito en mipost, no debería hacer el on change hasta que pincho en el radio, pero no, como explico en todo el post, me hace el on change sin pinchar en el radio, y como tu bien dices, como puedes comprobar en el código largo que he puesto, el oDlg:Update() tras el on change (no debería evaluar nada que hubiera detrás), pero si lo lo pongo dode tu me dices, pues nada, aún así me hace el on change sin pinchar en el radio.
--------------------------
Saludos

Jose Luis
JoseLuis
 
Posts: 428
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Ayuda con Radio

Postby Pedro » Sat Oct 31, 2009 10:49 am

Discúlpame José Luis, pero en las pruebas con el ejemplo, no llega al update puesto en la función ponotra, si no mueves los radios, y si no prueba y verás.
Por cierto, pon una dirección de email, así siempre se puede ayudar algo más.
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 57 guests