FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Funci贸n para escoger varios archivos.
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Funci贸n para escoger varios archivos.
Posted: Tue Apr 15, 2014 09:51 AM

Hola a todos,

Algui茅n sabr铆a decirme donde puedo encontrar una funci贸n que permita escoger varios archivos a la vez de una carpeta?

Muchas gracias,

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: Funci贸n para escoger varios archivos.
Posted: Tue Apr 15, 2014 01:07 PM

Carlos;
Si entiendo bien tu pregunta, al voleo, te dir铆a que podes crear tu propia funci贸n con Directory(), funci贸n de [x]Harbour, luego con xBrowse y multiselecci贸n podes llegar a lo que estas pretendiendo

saludos

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Funci贸n para escoger varios archivos.
Posted: Tue Apr 15, 2014 03:25 PM
Aqui tienes un ejemplo completo. Es parte del codigo de un Sistema de Nominas que hice para una empresa de estibadores portuarios.
Adaptalo a tus necesidades.
Code (fw): Select all Collapse
//---------------------//
Function LiqFinal()
local cSay1:="",oSay1, oSay2, oDlg, oBrw, cItem, aBmp:={}, n:=0
local aCarpetas:={}, aDescri:={}
local aDirectorio := DIRECTORY("*.*", "D")
local oFont
local cTrab:="", cNomb:=""

local aGradBarSelFocus := {{0.65,RGB(228,176,69),RGB(238,235,117)},{0.35,RGB(238,235,117),RGB(159,140,154)}}
local aGradBarSel:= {{1, RGB(108,125,184), RGB(241,222,088)}}
local oCol

local cTitle:="Carpetas disponibles", cRet:=""

//Solo queremos carpetas, no ficheros con extension
for n := 1 to Len( aDirectorio )
   if aDirectorio[ n ][ 5 ] == 'D' .and. Left( aDirectorio[ n ][ 1 ], 1 ) != '.'
     if SubDirOK( upper(aDirectorio[n][1]) )
        AAdd( aCarpetas, aDirectorio[ n ][ 1 ] )
        AAdd( aDescri, aDirectorio[ n ][ 1 ] +  SPACE(6) + MesAno(UPPER(aDirectorio[n][1]))  )
     endif
   endif
next

if empty(aCarpetas)
   MsgAlert("No existen subcarpetas de Periodos Fiscales Historicos. Se mostrar谩 solo datos contenidos en carpeta actual.")
   aadd(aCarpetas," ")
   aadd(aDescri,"SOLO CARPETA ACTUAL")
endif

for n:=1 to len(aCarpetas)  //Agrgar Bmps
   aadd(aBmp,".\folder.bmp")
Next
SysRefresh()

cItem:=ALLTRIM(SUBSTR(aCarpetas[1],1,10))

cSay1:= "LIQUIDACION FINAL (Seleccion de periodos a incluir)"

//TAHOMA,VERDANA,NEW TIMES ROMAN,COURIER,COURIER NEW
DEFINE FONT oFont NAME "COURIER NEW" SIZE 0,-14

DEFINE DIALOG oDlg RESOURCE "CARPETAS2" TITLE cTitle TRANSPARENT

REDEFINE SAY oSay1 VAR cSay1 ID 101 OF oDlg
REDEFINE SAY oSay2 PROMPT "Shift+Flecha abajo, o Ctrl+Click para Multi-Seleccionar" ID 102 OF oDlg

REDEFINE XBROWSE oBrw ID 118 OF oDlg ;
         ARRAY aDescri AUTOCOLS LINES CELL

WITH OBJECT oBrw
  :lRecordSelector  := .f.
  :lHeader          := .f.
  :nStretchCol      :=  1
  //:nMarqueeStyle    := MARQSTYLE_HIGHLROW   //normal
  :nMarqueeStyle    := MARQSTYLE_HIGHLROWMS //Multiselect
  :bClrSel          := {|| { nRGB(  0,  0,  0), aGradBarSel } }  // para barra de linea selecc cuando el control no tiene el foco
  :bClrSelFocus     := { || { CLR_BLACK, aGradBarSelFocus } }     // para barra de linea selecc cuando el control tiene el foco
  :nRowHeight       := 20  //altura entre lineas
END

oCol:=oBrw:aCols[1]
WITH OBJECT oCol
   //:AddBmpfile( ".\folder.bmp" )
   :AddResource( "folder" )
   :bBmpData := {|| 1 }  //Si hubiese varios bmps, aqui tomamos el primero de la lista en :aaddBmpFile
   :lBmpStretch     := .t.
   :lBmpTransparent := .T.
   :nDataBmpAlign   := AL_LEFT
END

REDEFINE BUTTONBMP ID 300 OF oDlg BITMAP "CUADRILLA" TEXTRIGHT ;
      ACTION ( cTrab:=Personal(.t.,.f.),;
               if(!empty(cTrab),(cNomb:=alltrim(personal->Nombres)+" "+alltrim(personal->apellidos), cSay1:="LIQUIDACION FINAL DE: "+cTrab+"-"+cNomb),(cTrab:="",cNomb:="", cSay1:="LIQUIDACION FINAL DE: ",MsgStop("No selecciono trabajador"))), oSay1:Refresh() )
REDEFINE BUTTONBMP ID 301 OF oDlg BITMAP "PRINTER" TEXTRIGHT ;
      ACTION ( ImpLiqFin(oBrw,cTrab,cNomb) )
REDEFINE BUTTONBMP ID 302 OF oDlg BITMAP "SALIR" TEXTRIGHT ;
      ACTION ( oDlg:End() )

ACTIVATE DIALOG oDlg CENTERED 

oFont:End()
Return nil

Saludos.
Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: Funci贸n para escoger varios archivos.
Posted: Tue Apr 15, 2014 06:15 PM
FranciscoA wrote:Aqui tienes un ejemplo completo. Es parte del codigo de un Sistema de Nominas que hice para una empresa de estibadores portuarios.
Saludos.


Francisco, me podrias pasar tu correo-e, gracias
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Funci贸n para escoger varios archivos.
Posted: Tue Apr 15, 2014 06:57 PM
Code (fw): Select all Collapse
#Include "FiveWin.Ch"

#Define CLR_LGREEN    nRGB( 190, 215, 190 )
#Define CLR_LGRAY     nRGB( 230, 230, 230 )
#Define CLR_VERMELHO  nRGB( 255, 000, 000 )
#Define CLR_AMARELO   nRGB( 255, 255, 000 )

FUNCTION Main()

    LOCAL oSetupDlg, nDriveTo := 1, cDriveTo, nDriveCap := 4
    LOCAL lGoOn, aFiles[1],  aFileList, x, iDcor, oFont, oBackup
    LOCAL aDbfs := Directory( "*.DBF" )
    LOCAL oDlg, oBrw, n := 1
    LOCAL oAceitar, oCancelar, nKey := VK_RETURN

    SET CENTURY ON
    SET DATE BRITISH
    SET EPOCH TO YEAR( DATE() ) - 30
    SET EXCLUSIVE OFF
    SET MULTIPLE OFF

    If Len( aDbfs ) < 1
        Msginfo( "Desculpe N茫o Achei os Arquivos *.DBF Neste Diret贸rio", ;
                 "Informa莽茫o" )
        Return
    Endif

    aSort( aDbfs,,, { |x, y | x[1] < y[1] } )

    DEFINE FONT oFont NAME "Arial"         SIZE 0, 16 BOLD

    DEFINE DIALOG oDlg FROM 6, 20 TO 25, 78        ;
           TITLE "Browse dos Arquivos DBFs em: " + ;
           CurDir() + " Para Copiar"               ;
           STYLE nOR( WS_BORDER, WS_THICKFRAME )   ;
           COLORS CLR_BLACK, nRGB( 193, 205, 205 )

    @ 1, 2 ListBox oBrw Fields aDbfs[n][1], ;
           Str(aDbfs[n][2],10,0),           ;
           Dtoc( aDbfs[n][3] ),             ;
           aDbfs[n][4]                      ;
           Headers "Nome do Arquivo",       ;
                   "Tamanho", "Data",       ;
                   "Hora"                   ;
           FieldSizes 120,80,80,60          ;
           COLOR CLR_HBLUE, CLR_AMARELO     ;
           FONT oFont                       ;
           Of oDlg Size 200, 100

    oBrw:bGotop    := { || N := 1 }
    oBrw:bGoBottom := { || N := Eval( oBrw:bLogicLen ) }
    oBrw:bSkip     := { | nWant, nOld | nOld := N , N += nWant,;
                          N := Max( 1, Min( N, Eval( oBrw:bLogicLen ) ) ),;
                          N - nOld }
    oBrw:bLogicLen := { || Len( aDbfs ) }
    oBrw:cAlias    := "Array"

    //---------------------------------------------------------------------
    oBrw:nClrBackHead  := CLR_LGREEN  // Cor do Fundo do Cabe鈥lho
    oBrw:nClrBackFocus := CLR_HRED    // Cor do Cursor Em Cima do 脰tem
    oBrw:nClrForeFocus := CLR_AMARELO // cor da letra da barra ativa
    oBrw:nClrForeHead  := CLR_HRED    // Cor nos Headers - Cabe鈥lhos
    oBrw:nColAct       := 1           // Onde o Cursor Vai Iniciar qual coluna?
    oBrw:nLineStyle    := 3           // Estilo das linhas nos dados da Browse
    oBrw:lCellStyle    := .T.         // S垄 Pinta a celula que o cursor est聽
    // Justifica As Colunas dos Campos Esq. .T. = Centro
    oBrw:aJustify      := { .F., .F., .F., .F. }
    oBrw:lMChange      := .F.         // Desabilita Mousemove
    oBrw:SetFocus()                   // Refocus on The Browse
    oBrw:Refresh()                    // Estabiliza o Browse/Listbox
                                      // ( Pinta os Dados Novamente )

    @ 6.6, 16 Button oBackup           ;
              PROMPT "&Sigue" Of oDlg ;
              Action( oDlg:End() )     ;
              SIZE 40, 12              ;
              CANCEL

    oBackup:cToolTip := "<Click-Me>"

    ACTIVATE DIALOG oDlg CENTERED

RETURN NIL


Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Funci贸n para escoger varios archivos.
Posted: Tue Apr 15, 2014 08:06 PM

Mario,

falegria230349@yahoo.es
Saludos.

Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: Funci贸n para escoger varios archivos.
Posted: Thu Apr 17, 2014 07:28 AM

Gracias a todos,

Voy a ver como lo hago, seguramente tomar茅 como ejemplo los que hab茅is dejado en el hilo.

Muchas gracias,

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Continue the discussion