record selezionati

Moderator: Enrico Maria Giordano

record selezionati

Postby Silvio » Tue Apr 10, 2007 11:34 pm

usando xbrowse posso selezionare i record

Code: Select all  Expand view
STATIC FUNCTION MultiSelect( oWnd )

   local oChild, oBrw

   DEFINE WINDOW oChild TITLE "MultiSelect browse" MDICHILD OF oWnd

   oBrw := TXBrowse():New( oChild )
   oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROWMS

   oBrw:SetRDD()

   oBrw:CreateFromCode()

   oChild:oClient := oBrw

   ACTIVATE WINDOW oChild ON INIT oBrw:SetFocus()

RETURN NIL




se volessi stampare solo irecord selezionati come potrei fare ?


il problema sussiste solo se uso xbrowse con wbrowse non ho nessun problema perchè ho associato al tasto f5 la selezione del record che aggiungo aadd in un array

Per motivi solo di estetica preferisco usare xbrowse però non volevo rinunciare alla selezione del record per le stampe
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Re: record selezionati

Postby Enrico Maria Giordano » Wed Apr 11, 2007 7:05 am

oBrw:aSelected che ti ho già segnalato non funziona?

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8388
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Wed Apr 11, 2007 11:18 pm

è solo che io con wbrowse premendo f5 selezionavo un record ed inserivo nel browse un bmp e qui niente di nuovo



questa funziona inseriva il bmp nel browse ( cosa che in xbrowse non funziona)
cBmp,cCan sono variabili per caricare i resource

cBmp:=LoadBitMap(GetResources(),"C_Pal")
cCan:=LoadBitMap(GetResources(),"C_Roj")

Code: Select all  Expand view
STAT FUNC Ds_Mar(cBmp,cCan)        // Marca
   LOCAL cRet:=""
   cRet:=IF((oDCli)->Status="B",cCan,cRet)
   cRet:=IF(AScan(oT:aSel,(oDCli)->NumCli)<>0,cBmp,cRet)
RETURN (cRet)




quando premevo f5 chiamavo questa funzione :

Code: Select all  Expand view
STAT FUNC Seleziona()     // Seleziona registro
   LOCAL x:=AScan(oT:aSel,(oDCli)->NumCli)
   IF x<>0
      ADel(oT:aSel,x)
      ASize(oT:aSel,Len(oT:aSel)-1)
    ELSE
      AAdd(oT:aSel,(oDCli)->NumCli)
   ENDIF
   oApp():oGrid:SetFocus()
RETURN (NIL)



e poi nella stampa usavo la variabili ot:asel per esempio

Code: Select all  Expand view

CursorWait()
            (oDCli)->(DbGoTop())
            DO WHILE !(oDCli)->(EoF())
               IF (nOpt=1 .AND. AScan(oT:aSel,(oDCli)->NumCli)<>0) .OR. ;
                  (nOpt=2 .AND. (oDCli)->TipCli=cTip)
                  oPrn:CmSay(nRow, 2.0,(oDCli)->RazSoc,oFn1, 8.7)
                  oPrn:CmSay(nRow,11.0,(oDCli)->NumCli,oFn1,,,,2)
                  oPrn:CmSay(nRow,12.0,(oDCli)->EncCom,oFn1)
                  oPrn:CmSay(nRow,17.5,(oDCli)->TelFi1,oFn1)
                  nCli++
                  nRow+=0.4
....




non so se hai capito ...
se uso ogrid:aselected dovrebbe funzionare ma in realtà no
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby Enrico Maria Giordano » Thu Apr 12, 2007 7:09 am

Con TXBrowse la gestione della selezione è automatica.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8388
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Thu Apr 12, 2007 10:02 pm

quindi secondo come faccio per non riscrivere tutto ?
cio' che chiamo asel ( array di record selezionati) xbrowse in automatico lo chiama aselected potrebbe funzionare ?

be ho provato ma non mi ha stampato niente ( selezionando solo due record)

ecco il codice :

Code: Select all  Expand view

STAT FUNC Relacion(n)
   LOCAL oPrn, oFn1, oFn2, oFn3,  cSTit
   LOCAL aDes, aHas, nHor,nRow,cForm
   LOCAL nRec ,lPrv:=.t.

     cSTit:="ELENCO GENERALE SOCI  AL "+cf(Date())+"  "+ n
      cSTit:=Alltrim(cSTit)
      nRec:=(oDCli)->(Recno())
      oPrn:=PrintBegin("Elenco Soci...",.F.,lPrv,,.T.)
         DEFINE FONT oFn1 NAME cFont SIZE 0,- 8      OF oPrn
         DEFINE FONT oFn2 NAME cFont SIZE 0,- 8 BOLD OF oPrn
         DEFINE FONT oFn3 NAME cFont SIZE 0,-11 BOLD OF oPrn
         cForm:=Get_Form("101")
        * oPrn:SetPortrait() //verticale
          oPrn:SetLandscape() //verticale
         nHor:=oPrn:nHorzSize()
         nVer:=oPrn:nVertSize()
         nRow:=4.9
         PageBegin()
              CursorWait()
              Title_WIN(oPrn,nHor,nVer,oFn1,oFn2,oFn3,cSTit,1,.T.,cForm)
            oPrn:CmSay(4.2, 1.5,"NUM",oFn1,,,,2)
            oPrn:CmSay(4.2, 2.4,"A",oFn1,,,,2)
            oPrn:CmSay(4.2, 2.7,"T",oFn1,,,,2)
            oPrn:CmSay(4.2, 3.0,"NOMINATIVO",oFn1)
            oPrn:CmSay(4.2, 7.0,"TESSERA",oFn1)
            oPrn:CmSay(4.2, 8.5,"NASCITA",oFn1)
            oPrn:CmSay(4.2,10.6,"TELEFONI",oFn1)
            oPrn:CmSay(4.2,15.5,"INDIRIZZO",oFn1)
            oPrn:CmSay(4.2,20.5,"LOCALITA'",oFn1)
            oPrn:CmSay(4.2,22.5,"CAP",oFn1)
            oPrn:CmSay(4.2,23.5,"PROV.",oFn1)
            oPrn:CmSay(4.2, 24.5,"CARICA",oFn1)
            oPrn:CmSay(4.2, 26.0,"TAGLIA",oFn1)
            oPrn:CmSay(4.2, 28.0,"_",oFn1)
            nCli:=0
            nOpt=1
            CursorWait()
            (oDCli)->(DbGoTop())
            DO WHILE !(oDCli)->(EoF())

               IF (nOpt=1 .AND. AScan(oApp:oGrid:aSelected,(oDCli)->NumCli)<>0)




               oPrn:CmSay(nRow, 1.5,(oDCli)->NumCli,oFn1,,,,2)
               oPrn:CmSay(nRow, 2.4,DaiAtt((oDCli)->Attivita),oFn1,,,,2)
               oPrn:CmSay(nRow, 2.8,DaiTipo((oDCli)->Tipo),oFn1,,,,2)
               oPrn:CmSay(nRow, 3.0,(oDCli)->Nomeintero,oFn1, 8.7)
               oPrn:CmSay(nRow,7.0,(oDCli)->Tessera,oFn1)
               oPrn:CmSay(nRow,8.5,cf((oDCli)->Nascita),oFn1)
               oPrn:CmSay(nRow,10.6,(oDCli)->Tel1,oFn1)
               oPrn:CmSay(nRow,12.6,(oDCli)->Tel2,oFn1)
               oPrn:CmSay(nRow,15.5,(oDCli)->Indirizzo,oFn1)
               oPrn:CmSay(nRow,20.5,(oDCli)->Localita,oFn1)
                 oPrn:CmSay(nRow,22.5,(oDCli)->Cap,oFn1)
                 oPrn:CmSay(nRow,23.5,(oDCli)->Provincia,oFn1)
               oPrn:CmSay(nRow,24.5,(oDCli)->Carica,oFn1)
               oPrn:CmSay(nRow,26.0,(oDCli)->Taglia,oFn1)
               oPrn:CmSay(nRow,28.0,(oDCli)->Sesso,oFn1)
                  nCli++
                  nRow+=0.4
                  IF nRow>=25.5
                     PageEnd()
                     PageBegin()
        Title_WIN(oPrn,nHor,nVer,oFn1,oFn2,oFn3,cSTit,1,.F.,cForm)
            oPrn:CmSay(4.2, 2.0,"NUM",oFn1,,,,2)
            oPrn:CmSay(4.2, 2.7,"T",oFn1,,,,2)
            oPrn:CmSay(4.2, 3.0,"NOMINATIVO",oFn1)
            oPrn:CmSay(4.2, 7.0,"TESSERA",oFn1)
            oPrn:CmSay(4.2, 8.5,"NASCITA",oFn1)
            oPrn:CmSay(4.2,10.6,"TELEFONI",oFn1)
            oPrn:CmSay(4.2,15.5,"INDIRIZZO",oFn1)
            oPrn:CmSay(4.2,20.5,"LOCALITA'",oFn1)
            oPrn:CmSay(4.2,22.5,"CAP",oFn1)
            oPrn:CmSay(4.2,23.5,"PROV.",oFn1)
            oPrn:CmSay(4.2, 24.5,"CARICA",oFn1)
            oPrn:CmSay(4.2, 26.0,"TAGLIA",oFn1)
            oPrn:CmSay(4.2, 28.0,"_",oFn1)
                     nRow:=4.9
                  ENDIF
                 ENDIF
               (oDCli)->(DbSkip())
            ENDDO
            aDes:=oPrn:Cmtr2Pix(nRow+0.3, 1.0)
            aHas:=oPrn:Cmtr2Pix(nRow+0.3,29.0)
            oPrn:Line(aDes[1],aDes[2],aHas[1],aHas[2])
            nRow+=.5
            oPrn:CmSay(nRow,10.5, TRAN(nCli,"9999")+"  Socio(i) in archivio",oFn1,,,,2)
            aDes:=oPrn:Cmtr2Pix(nRow+0.4, 1.0)
            aHas:=oPrn:Cmtr2Pix(nRow+0.4,29.0)
            oPrn:Line(aDes[1],aDes[2],aHas[1],aHas[2])
             nRow+=.5
            oPrn:CmSay(nRow,15.5, " Legenda       - Tipo (3# colonna)  F = Fondatore  O = Ordinario  S = Sostenitore  A = altro       - Attivita' ( 2# colonna)   D = Docente  A = ATA   S = Alunno G = Genitore  E = Esterno ",oFn1,,,,2)

         PageEnd()
         oFn1:End(); oFn2:End(); oFn3:End()
      PrintEnd()
      (oDCli)->(DbGoTo(nRec))
     * oBCli:Refresh()
     RETURN (NIL)




la variabile n di Relacion(n)

mi serve per dare alla funzione l'indice corrente
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby Enrico Maria Giordano » Fri Apr 13, 2007 7:08 am

Code: Select all  Expand view
#include "Fivewin.ch"
#include "XBrowse.ch"


FUNCTION MAIN()

    LOCAL oDlg, oBrw

    USE TEST

    DEFINE DIALOG oDlg;
           SIZE 800, 600

    oBrw = TXBrowse():New( oDlg )

    oBrw:SetRDD()

    oBrw:nMarqueeStyle = MARQSTYLE_HIGHLROWMS

    oBrw:bRClicked = { || WQOut( oBrw:aSelected ) }

    oBrw:CreateFromCode()

    ACTIVATE DIALOG oDlg;
             ON INIT oDlg:SetControl( oBrw );
             CENTER

    RETURN NIL


EMG
User avatar
Enrico Maria Giordano
 
Posts: 8388
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Sat Apr 14, 2007 12:06 am

grazie forse ho risolto il problema .
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy


Return to All products support

Who is online

Users browsing this forum: No registered users and 12 guests