************************************************** *-- Class: frmfileselector (c:\mmviscollect\libs\aforms.vcx) *-- ParentClass: browserform (c:\mmviscollect\libs\aforms.vcx) *-- BaseClass: form *-- Time Stamp: 09/28/06 10:11:00 AM *-- A list of files in the specific directory * DEFINE CLASS frmfileselector AS browserform Height = 306 Width = 673 DoCreate = .T. Caption = "Select File" WindowType = 1 *-- Sort by name lsortbyname = .F. cnavigationalias = "curFiles" cnavigationgridname = "thisform.grdFiles" Name = "frmfileselector" oSessionEnvironment.CLabel1.Name = "CLabel1" oSessionEnvironment.Name = "oSessionEnvironment" ADD OBJECT cmdcancel AS ccommandbutton WITH ; Top = 266, ; Left = 301, ; Height = 24, ; Width = 71, ; Caption = "\<Cancel", ; TabIndex = 32, ; Name = "cmdCancel" ADD OBJECT cmdselect AS ccommandbutton WITH ; Top = 266, ; Left = 224, ; Height = 24, ; Width = 71, ; Caption = "\<Select", ; TabIndex = 30, ; ZOrderSet = 7, ; Name = "cmdSelect" ADD OBJECT cmdclose AS ccommandbutton WITH ; Top = 265, ; Left = 378, ; Height = 24, ; Width = 71, ; Caption = "C\<lose", ; TabIndex = 32, ; Name = "cmdClose" ADD OBJECT grdfiles AS grdsorting WITH ; ColumnCount = 5, ; Height = 230, ; Left = 12, ; Panel = 1, ; ReadOnly = .T., ; RecordSource = "curFiles", ; Top = 24, ; Width = 646, ; ZOrderSet = 4, ; lresizable = .T., ; Name = "grdFiles", ; Column1.FontSize = 8, ; Column1.ControlSource = "", ; Column1.Width = 17, ; Column1.ReadOnly = .T., ; Column1.Sparse = .F., ; Column1.Name = "colImage", ; Column2.FontSize = 8, ; Column2.ControlSource = "curFiles.cFile_Name", ; Column2.Width = 154, ; Column2.ReadOnly = .T., ; Column2.Name = "colName", ; Column3.FontSize = 8, ; Column3.Alignment = 1, ; Column3.ColumnOrder = 4, ; Column3.ControlSource = "curFiles.cFIle_Size", ; Column3.Width = 108, ; Column3.ReadOnly = .T., ; Column3.InputMask = "XXXXXXXXXX", ; Column3.Name = "colSize", ; Column4.FontSize = 8, ; Column4.ColumnOrder = 5, ; Column4.ControlSource = "curFiles.cFile_Type", ; Column4.Width = 171, ; Column4.ReadOnly = .T., ; Column4.Name = "colType", ; Column5.FontSize = 8, ; Column5.ColumnOrder = 3, ; Column5.ControlSource = "curFiles.tLast_Modified", ; Column5.Width = 170, ; Column5.ReadOnly = .T., ; Column5.Name = "colLastModified" ADD OBJECT frmfileselector.grdfiles.colimage.header1 AS header WITH ; FontSize = 8, ; Caption = "*", ; Name = "Header1" ADD OBJECT frmfileselector.grdfiles.colimage.fileicon AS cimage WITH ; Picture = "..\graphics\jzlogo.bmp", ; Height = 104, ; Left = 12, ; Top = 23, ; Width = 300, ; Name = "FileIcon" ADD OBJECT frmfileselector.grdfiles.colname.header1 AS header WITH ; FontSize = 8, ; Caption = "Name", ; Name = "Header1" ADD OBJECT frmfileselector.grdfiles.colname.cgridtextbox1 AS cgridtextbox WITH ; FontSize = 8, ; ReadOnly = .T., ; SelectedBackColor = RGB(0,0,255), ; cseektag = "cFile_Name", ; Name = "Cgridtextbox1" ADD OBJECT frmfileselector.grdfiles.colsize.header1 AS header WITH ; FontSize = 8, ; Alignment = 1, ; Caption = "Size ", ; Name = "Header1" ADD OBJECT frmfileselector.grdfiles.colsize.cgridtextbox1 AS cgridtextbox WITH ; FontSize = 8, ; Alignment = 1, ; ReadOnly = .T., ; SelectedBackColor = RGB(0,0,255), ; Name = "Cgridtextbox1" ADD OBJECT frmfileselector.grdfiles.coltype.header1 AS header WITH ; FontSize = 8, ; Caption = "Type", ; Name = "Header1" ADD OBJECT frmfileselector.grdfiles.coltype.cgridtextbox1 AS cgridtextbox WITH ; FontSize = 8, ; ReadOnly = .T., ; SelectedBackColor = RGB(0,0,255), ; cseektag = "cType", ; Name = "Cgridtextbox1" ADD OBJECT frmfileselector.grdfiles.collastmodified.header1 AS header WITH ; FontSize = 8, ; Caption = "Last Modified", ; Name = "Header1" ADD OBJECT frmfileselector.grdfiles.collastmodified.cgridtextbox1 AS cgridtextbox WITH ; FontSize = 8, ; ReadOnly = .T., ; SelectedBackColor = RGB(0,0,255), ; Name = "Cgridtextbox1" PROCEDURE selectrecord *---------------------- Location Section ------------------------ * Library: Aforms.vcx * Class: Frmfileselector * Method: Selectrecord() *----------------------- Usage Section -------------------------- *) Description: *) * Scope: Public * Parameters: *$ Usage: *$ * Returns: *--------------------- Maintenance Section ---------------------- * Change Log: * CREATED 08/29/2005 - NN * MODIFIED *---------------------------------------------------------------- thisform.uRetVal = curFiles.cFile_Name thisform.Hide() ENDPROC PROCEDURE Load *---------------------- Location Section ------------------------ * Library: Aforms.vcx * Class: Frmfileselector * Method: Load() *----------------------- Usage Section -------------------------- *) Description: *) * Scope: Public * Parameters: *$ Usage: *$ * Returns: *--------------------- Maintenance Section ---------------------- * Change Log: * CREATED 08/29/2005 - NN * MODIFIED *---------------------------------------------------------------- IF DODEFAULT() create cursor curFiles(cFile_Name c(100), nFile_Size n(10), ; cFile_Type c(100), tLast_Modified t, ; cIcon_File C(100), cFile_Size C(15)) INDEX on UPPER(cFile_Name) TAG cFile_Name INDEX on UPPER(cFile_Type) TAG cType additive INDEX on cFile_Size TAG cSize additive INDEX on tLast_Modified TAG tDate additive ENDIF ENDPROC PROCEDURE Init *---------------------- Location Section ------------------------ * Library: Aforms.vcx * Class: Frmfileselector * Method: Init() *----------------------- Usage Section -------------------------- *) Description: *) * Scope: Public * Parameters: *$ Usage: *$ * Returns: *--------------------- Maintenance Section ---------------------- * Change Log: * CREATED 08/29/2005 - NN * MODIFIED *---------------------------------------------------------------- lparameters tcDirectory, tcFileExt, tcFilterExpr, tlSortByName local lcFileType, lcIconFile, ; loIconBuddy, lcCondition, llAddFile, ; lcFileName, lnI, lnFiles, ; llIconBuddy, lcDir, lnPos, lnK, lcFileExt, lnExts local array laFiles[1], laExtUsed[1,3], laExt[1] if empty(m.tcDirectory) lcDir = getdir() if empty(m.lcDir) return .f. endif else lcDir = addbs(m.tcDirectory) endif this.caption = this.caption + ' from ' + m.lcDir tcFileExt = lower(evl(m.tcFileExt,"")) lnExts = alines(laExt, m.tcFileExt, 1, ',') tcFilterExpr = evl(m.tcFilterExpr,"") lnFiles = adir(laFiles, m.lcDir + "*." + ; iif(m.lnExts > 1 or empty(m.tcFileExt), "*", m.tcFileExt),"HS",1) if m.lnFiles = 0 =ErrorMsg("No files found in " + m.tcDirectory) return .f. endif lnK = 0 store .f. to llAddFile, llIconBuddy for lnI = 1 to m.lnFiles lcFileExt = lower(justext(laFiles[m.lnI,1])) && File's extension if (empty(m.tcFileExt) or ; ascan(laExt, m.lcFileExt) > 0) ; and not ; inlist(m.lcFileExt,"exe","dll","ico") lcFile = m.lcDir + laFiles[m.lnI,1] lcFileName = juststem(m.lcFile) if not empty(m.tcFilterExpr) lcCondition = strtran(m.tcFilterExpr, ; "##FILENAME##","lcFileName") * Evaluate the filter condition if evaluate(m.lcCondition) llAddFile = .t. endif else llAddFile = .t. endif if m.llAddFile if not m.llIconBuddy thisform.newobject("oIconBuddy", ; "IconBuddy", "IconBuddy.vcx") llIconBuddy = .t. endif lnPos = iif(m.lnK = 0, 0, ; ascan(laExtUsed,upper(justext(m.lcFile)),1,-1,1, 14)) if m.lnPos > 0 lcIconFile = laExtUsed[m.lnPos, 2] lcFileType = laExtUsed[m.lnPos, 3] else ** Create bitmaps and not icons thisform.oIconBuddy.CreateTmpIcons(m.lcFile,.f.,.t.) ** Get the small picture lcIconFile = ; thisform.oIconBuddy.GetTMPIconFileName( ; lower(justext(m.lcFile)),.f.,.t.) lcFileType = thisform.oIconBuddy.cFileType if not empty(m.lcFileType) lnK = m.lnK + 1 dimension laExtUsed[m.lnK, 3] laExtUsed[m.lnK,1] = upper(justext(m.lcFile)) laExtUsed[m.lnK, 2] = m.lcIconFile laExtUsed[m.lnK, 3] = m.lcFileType endif endif insert into curFiles values ; (justfname(m.lcFile), laFiles[m.lnI,2], ; m.lcFileType, ; ctot(dtoc(laFiles[m.lnI,3]) + ; " " + laFiles[m.lnI,4]), ; m.lcIconFile, ; alltrim(str(ceiling(laFiles[m.lnI,2]/1024))) + " KB" ) endif llAddFile = .f. endif endfor if reccount('curFiles') = 0 =ErrorMsg("The directory " + m.lcDir + ; " does not contain files") return .f. endif if not dodefault() return .f. endif thisform.lSortByName = m.tlSortByName thisform.uRetVal = "" thisform.grdFiles.colImage.dynamicfontshadow = ; "thisform.grdFiles.colImage.Refresh()" ENDPROC PROCEDURE Activate *---------------------- Location Section ------------------------ * Library: Aforms.vcx * Class: Frmfileselector * Method: Activate() *----------------------- Usage Section -------------------------- *) Description: *) * Scope: Public * Parameters: *$ Usage: *$ * Returns: *--------------------- Maintenance Section ---------------------- * Change Log: * CREATED 09/01/2005 - NN * MODIFIED *---------------------------------------------------------------- dodefault() with thisform.grdFiles if thisform.lSortByName .colName.Header1.picture = 'upArrow.bmp' .oLastSorted = .colName.Header1 set order to cFile_Name else .colLastModified.Header1.picture = 'downArrow.bmp' .oLastSorted = .colLastModified.Header1 set order to tDate descending endif go top in curFiles .setfocus() endwith ENDPROC PROCEDURE cmdcancel.Click *---------------------- Location Section ------------------------ * Library: Aforms.vcx * Class: Frmfileselector * Method: Cmdcancel.Click() *----------------------- Usage Section -------------------------- *) Description: *) * Scope: Public * Parameters: *$ Usage: *$ * Returns: *--------------------- Maintenance Section ---------------------- * Change Log: * CREATED 08/29/2005 - NN * MODIFIED *---------------------------------------------------------------- thisform.Hide() ENDPROC PROCEDURE cmdselect.Click *---------------------- Location Section ------------------------ * Library: Aforms.vcx * Class: Frmfileselector * Method: CmdSelect.Click() *----------------------- Usage Section -------------------------- *) Description: *) * Scope: Public * Parameters: *$ Usage: *$ * Returns: *--------------------- Maintenance Section ---------------------- * Change Log: * CREATED 08/29/2005 - NN * MODIFIED *---------------------------------------------------------------- thisform.SelectRecord() ENDPROC PROCEDURE cmdclose.Click *---------------------- Location Section ------------------------ * Library: Aforms.vcx * Class: Frmfileselector * Method: CmdClose.Click() *----------------------- Usage Section -------------------------- *) Description: *) * Scope: Public * Parameters: *$ Usage: *$ * Returns: *--------------------- Maintenance Section ---------------------- * Change Log: * CREATED 08/29/2005 - NN * MODIFIED *---------------------------------------------------------------- thisform.release() ENDPROC PROCEDURE grdfiles.DblClick *---------------------- Location Section ------------------------ * Library: Aforms.vcx * Class: Frmfileselector * Method: Grdfiles.Dblclick() *----------------------- Usage Section -------------------------- *) Description: *) * Scope: Public * Parameters: *$ Usage: *$ * Returns: *--------------------- Maintenance Section ---------------------- * Change Log: * CREATED 09/19/2005 - NN * MODIFIED *---------------------------------------------------------------- thisform.SelectRecord() ENDPROC PROCEDURE grdfiles.colImage.Refresh *---------------------- Location Section ------------------------ * Library: Aforms.vcx * Class: Frmfileselector * Method: Colimage.Refresh() *----------------------- Usage Section -------------------------- *) Description: *) * Scope: Public * Parameters: *$ Usage: *$ * Returns: *--------------------- Maintenance Section ---------------------- * Change Log: * CREATED 09/01/2005 - NN * MODIFIED *---------------------------------------------------------------- NODEFAULT this.FileIcon.Picture = curFiles.cIcon_File ENDPROC ENDDEFINE * *-- EndDefine: frmfileselector **************************************************