Jump to content
Fivewin Brasil

Alain da Silva

Membros
  • Posts

    535
  • Joined

  • Last visited

  • Days Won

    10

Everything posted by Alain da Silva

  1. Luiz obrigado pela ajuda, em arquivo assim parece que fica um pouco mais rápido que no recurso. Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5 Editado por - BOINGO on 02/04/2012 20:35:02
  2. bom dia, aqui normal. Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  3. bom dia, incorporei ao projeto o manifest, e no windows xp fica legal o visual, já na minha casa usando o notebook com windows 7 não achei legal, as bordas do get na parte de baixo fica muito apagado, no combobox também tem hora que aparece o pontilhado tem hora que não aparece. Outro exemplo é na linha do group: REDEFINE Group Id 21 OF ODLGCLIMANUT FONT FNORMAL; Color AZUL TRANSPARENT no xp aparece azul, no 7 não coloca cor. Tem alguma configuração melhor para o windows 7. obrigado Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5 Editado por - boingo on 29/03/2012 12:36:23
  4. bom dia, incorporei ao projeto o manifest, e no windows xp fica legal o visual, já na minha casa usando o notebook com windows 7 não achei legal, as bordas do get na parte de baixo fica muito apagado, no combobox também tem hora que aparece o pontilhado tem hora que não aparece. Outro exemplo é na linha do group: REDEFINE Group Id 21 OF ODLGCLIMANUT FONT FNORMAL; Color AZUL TRANSPARENT no xp aparece azul, no 7 não coloca cor. Tem alguma configuração melhor para o windows 7. obrigado Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5 Editado por - boingo on 29/03/2012 12:36:23
  5. Rochinha, boa tarde, ele até esta gravando no diretório certo "d:\wfatura\bkp", o problema é que ele não compactando os arquivos do diretório correto, que é "D:\WFATURA\DADOS", ele compacta os arquivos do diretório "D:\WFATURA". Acho que o problema esta nas funções: FUNCTION ProcessaArray( aQArray ) FUNCTION StringToArray( cString, cSeparator ) direcionar aqui o diretório correto: Segue o código novamente: #include "FiveWin.ch" FUNCTION NFWBackup() local oDLGARQ, oGet, lGo := .f., lGrava := .t., lDireta := .t. local lOverWrite:=.t. local lCtrl101,nCtrl102:=15,lCtrl103,lCtrl104,lCtrl105,nCtrl106:=1,; cCtrl107:="DIA(S)",nCtrl108:=1,cCtrl109:=SPACE(50) PRIVATE cpath:=curdrive()+":\"+curdir()+"\BKP\" cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP" cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. ) cZIPEmail := VerifyINI( "BACKUP" , "Email" , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" ) cZIPFiles := VerifyINI( "BACKUP" , "Arquivos" , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" ) nZIPNivel := VerifyINI( "BACKUP" , "Nivel" , 8 , cPath+"5vbackup.ini" ) lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S" , cPath+"5vbackup.ini" ) cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N" , cPath+"5vbackup.ini" ) cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath , cPath+"5vbackup.ini" ) cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM" , cPath , cPath+"5vbackup.ini" ) VerifyINI( "BACKUP" , "LEMBRAR" , "S" , cPath+"5vbackup.ini" ) VerifyINI( "BACKUP" , "PUBLICO" , "N" , cPath+"5vbackup.ini" ) DEFINE DIALOG oDLGARQ NAME "dlgBackup" REDEFINE GET oCtrl102 VAR cBKPOrig ID 102 PICTURE "@!" OF oDLGARQ WHEN nCtrl108=1 REDEFINE BUTTON ID 103 OF oDLGARQ ACTION ( cBKPOrig:=cGetDir("Pesquise no conjunto de pastas na caixa abaixo qual o diretorio contem os dados de que necessita","E:\WFATURA\DADOS\"),oCtrl102:Refresh(),; VerifyINI( "BACKUP", "DESTINO", cBKPOrig, cPath+"5vbackup.ini", .t. ),; VerifyINI( "BACKUP", "ORIGEM" , cBKPOrig, cPath+"5vbackup.ini", .t. ) ) REDEFINE BITMAP oBitMap ID 101 OF oDLGARQ file "Image\backup.bmp" TRANSPAREN REDEFINE BITMAP oBitMap ID 104 OF oDLGARQ file "Image\arquivo.bmp" TRANSPAREN REDEFINE BUTTON ID 105 OF oDLGARQ ACTION ZipBackup() REDEFINE BUTTON ID 106 OF oDLGARQ ACTION ZipRestore() REDEFINE BUTTON ID 107 OF oDLGARQ ACTION (lGo := .f., oDLGARQ:End()) ACTIVATE DIALOG oDLGARQ CENTERED return nil FUNCTION ZIPBackup() local oMeter SET _3DLOOK ON MsgMeter( { | oMeter, oText, oDlg, lEnd | ; ZipIn(oMeter) },; "Gerando arquivo compactado...", "Backup/Restore" ) Return .f. FUNCTION ZipIn(oMeter) local lOverWrite:=.t. cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP" cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. ) cZIPEmail := VerifyINI( "BACKUP" , "Email" , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" ) cZIPFiles := VerifyINI( "BACKUP" , "Arquivos" , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" ) nZIPNivel := VerifyINI( "BACKUP" , "Nivel" , 8 , cPath+"5vbackup.ini" ) lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S" , cPath+"5vbackup.ini" ) cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N" , cPath+"5vbackup.ini" ) cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath , cPath+"5vbackup.ini" ) cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM" , cPath , cPath+"5vbackup.ini" ) VerifyINI( "BACKUP" , "LEMBRAR" , "S" , cPath+"5vbackup.ini" ) VerifyINI( "BACKUP" , "PUBLICO" , "N" , cPath+"5vbackup.ini" ) aZipFiles := ProcessaArray( StringToArray( cZIPFiles, ";" ) ) oMeter:nTotal:=Len(aZIPFiles) cBKPOrig := curdrive()+":\"+curdir()+"\bkp\" if !file(cBKPOrig+"\"+cZIPName) Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite ) else fErase(cBKPOrig+"\"+cZIPName) if MsgYesNo( "Arquivo ("+cBKPName+") ja existe, Deseja re-escrever", "Atencao" ) Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite ) endif endif return .t. FUNCTION ZIPRestore() local oMeter SET _3DLOOK ON MsgMeter( { | oMeter, oText, oDlg, lEnd | ; ZipOut(oMeter) },; "Descompactando arquivo...", "Backup/Restore" ) Return Nil FUNCTION ZipOut(oMeter) local lOverWrite:=.t. cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP" cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. ) lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S" , cPath+"5vbackup.ini" ) cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath , cPath+"5vbackup.ini" ) oMeter:nTotal:=HB_GetFilesInZip( cZIPName ) HB_UNZIPFILE(cBKPDest+"\"+cZIPName,,lOverWrite,,cBKPDest) return .t. FUNCTION ProcessaArray( aQArray ) local aTArray := {} for i = 1 to len( aQArray ) DBF_NOMES := array( ADIR( aQArray ) ) ADIR( aQArray, DBF_NOMES ) for ii = 1 to len( DBF_NOMES ) AADD( aTArray, DBF_NOMES[ii] ) next next return aTArray FUNCTION StringToArray( cString, cSeparator ) LOCAL nPos LOCAL aString := {} DEFAULT cSeparator := ";" cString := ALLTRIM( cString ) + cSeparator DO WHILE .T. nPos := AT( cSeparator, cString ) IF nPos = 0 EXIT ENDIF AADD( aString, SUBSTR( cString, 1, nPos-1 ) ) cString := SUBSTR( cString, nPos+1 ) ENDDO RETURN ( aString ) FUNCTION CheckBKP() cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP" cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N" , cPath+"5vbackup.ini" ) cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. ) cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM" , cPath , cPath+"5vbackup.ini" ) cBKPOrig := curdrive()+":\"+curdir() if cBKPAuto = "S" if !file(cBKPOrig+"\"+cZIPName) if Val(TTOS(time())) > 173000 if MsgYesNo( "Backup de seguranca de hoje nao existe. "+CRLF+"Deseja efetuar o backup?", "Atencao" ) ZIPBackup() endif endif endif endif return .t. FUNCTION VerifyINI( _section_, _entry_, _var_, _inifile_, _grava_ ) oIni := TIni():New( _inifile_ ) if _grava_ = .t. oIni:Set( _section_, _entry_, _var_ ) endif return oIni:Get( _section_, _entry_, _var_, _var_ ) id=code>id=code>Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  6. Obrigado pela resposta Luis, foi bobeira minha, estava testando o botão errado. É da forma que você falou mesmo. Valeu Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  7. bom dia, pessoal é o seguinte: Eu tenho um botão "editar" que se encontra desabilitado (disable()) e um browse. Eu habilito a manutenção neste browse somente quando o botão foi ativo assim: IIF(OBT:LACTIVE,FAÇO,NAO FAÇO) o problema é que depois que faço a manutenção eu volto a desabilitar o botão "editar", mas ai o teste já não funciona mais, no teste fica sempre como active. Tem como voltar essa condição inicial do botão ou fazer outro teste, se ele esta habilitado (enable()) ou desabilitado (disable()). obrigado Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  8. bom dia, pessoal é o seguinte: Eu tenho um botão "editar" que se encontra desabilitado (disable()) e um browse. Eu habilito a manutenção neste browse somente quando o botão foi ativo assim: IIF(OBT:LACTIVE,FAÇO,NAO FAÇO) o problema é que depois que faço a manutenção eu volto a desabilitar o botão "editar", mas ai o teste já não funciona mais, no teste fica sempre como active. Tem como voltar essa condição inicial do botão ou fazer outro teste, se ele esta habilitado (enable()) ou desabilitado (disable()). obrigado Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  9. Obrigado, vou testar. Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  10. Pessoal,meus dados se encontram no diretório: D:\WFATURA\DADOS Essa rotina de backup abaixo esta pegando os dados do diretório: d:\WFATURA Como faço para direcionar o lugar correto: d:\wfatura\dados **by rochinha ** include "FiveWin.ch" FUNCTION NFWBackup() local oDLGARQ, oGet, lGo := .f., lGrava := .t., lDireta := .t. local lOverWrite:=.t. local lCtrl101,nCtrl102:=15,lCtrl103,lCtrl104,lCtrl105,nCtrl106:=1,; cCtrl107:="DIA(S)",nCtrl108:=1,cCtrl109:=SPACE(50) cpath:=curdrive()+":\"+curdir()+"\BKP" cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP" cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. ) cZIPEmail := VerifyINI( "BACKUP" , "Email" , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" ) cZIPFiles := VerifyINI( "BACKUP" , "Arquivos" , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" ) nZIPNivel := VerifyINI( "BACKUP" , "Nivel" , 8 , cPath+"5vbackup.ini" ) lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S" , cPath+"5vbackup.ini" ) cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N" , cPath+"5vbackup.ini" ) cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath , cPath+"5vbackup.ini" ) cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM" , cPath , cPath+"5vbackup.ini" ) VerifyINI( "BACKUP" , "LEMBRAR" , "S" , cPath+"5vbackup.ini" ) VerifyINI( "BACKUP" , "PUBLICO" , "N" , cPath+"5vbackup.ini" ) DEFINE DIALOG oDLGARQ NAME "dlgBackup" //REDEFINE CHECKBOX oCtrl101 VAR lCtrl101 ID 101 OF oDLGARQ //REDEFINE GET oCtrl102 VAR nCtrl102 ID 102 PICTURE "999" OF oDLGARQ WHEN lCtrl101 ; // SPINNER ; // ON UP (++nCtrl102,oCtrl102:Refresh()) ; // ON DOWN (--nCtrl102,oCtrl102:Refresh()) REDEFINE GET oCtrl102 VAR cBKPOrig ID 102 PICTURE "@!" OF oDLGARQ WHEN nCtrl108=1 REDEFINE BUTTON ID 103 OF oDLGARQ ACTION ( cBKPOrig:=cGetDir("Pesquise no conjunto de pastas na caixa abaixo qual o diretorio contem os dados de que necessita","d:\"),oCtrl102:Refresh(),; VerifyINI( "BACKUP", "DESTINO", cBKPOrig, cPath+"5vbackup.ini", .t. ),; VerifyINI( "BACKUP", "ORIGEM" , cBKPOrig, cPath+"5vbackup.ini", .t. ) ) //REDEFINE CHECKBOX oCtrl105 VAR lCtrl105 ID 105 OF oDLGARQ //REDEFINE GET oCtrl106 VAR nCtrl106 ID 106 PICTURE "999" OF oDLGARQ ; // SPINNER ; // ON UP (++nCtrl106,oCtrl106:Refresh()) ; // ON DOWN (--nCtrl106,oCtrl106:Refresh()) //REDEFINE COMBOBOX oCtrl107 VAR cCtrl107 ITEMS { "Mese(s)", "Semana(s)", "Dia(s)", "Ano(s)" } OF oDLGARQ ID 107 REDEFINE BITMAP oBitMap ID 101 OF oDLGARQ file "Image\backup.bmp" TRANSPAREN REDEFINE BITMAP oBitMap ID 104 OF oDLGARQ file "Image\arquivo.bmp" TRANSPAREN REDEFINE BUTTON ID 105 OF oDLGARQ ACTION ZipBackup() REDEFINE BUTTON ID 106 OF oDLGARQ ACTION ZipRestore() REDEFINE BUTTON ID 107 OF oDLGARQ ACTION (lGo := .f., oDLGARQ:End()) ACTIVATE DIALOG oDLGARQ CENTERED //VerifyINI( "BACKUP" , "Nome" , cZIPName , cPath+"5vbackup.ini", .t. ) //VerifyINI( "BACKUP" , "Email" , cZIPEmail , cPath+"5vbackup.ini", .t. ) //VerifyINI( "BACKUP" , "Arquivos" , cZIPFiles , cPath+"5vbackup.ini", .t. ) //VerifyINI( "BACKUP" , "Nivel" , nZIPNivel , cPath+"5vbackup.ini", .t. ) //VerifyINI( "BACKUP" , "Reescreve" , lOverWrite, cPath+"5vbackup.ini", .t. ) //VerifyINI( "BACKUP" , "AUTOMATICO", cBKPAuto , cPath+"5vbackup.ini", .t. ) //VerifyINI( "BACKUP" , "DESTINO" , cBKPDest , cPath+"5vbackup.ini", .t. ) //VerifyINI( "BACKUP" , "ORIGEM" , cBKPOrig , cPath+"5vbackup.ini", .t. ) return nil FUNCTION ZIPBackup() local oMeter SET _3DLOOK ON MsgMeter( { | oMeter, oText, oDlg, lEnd | ; ZipIn(oMeter) },; "Gerando arquivo compactado...", "Backup/Restore" ) Return .f. FUNCTION ZipIn(oMeter) local lOverWrite:=.t cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP" cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. ) cZIPEmail := VerifyINI( "BACKUP" , "Email" , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" ) cZIPFiles := VerifyINI( "BACKUP" , "Arquivos" , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" ) nZIPNivel := VerifyINI( "BACKUP" , "Nivel" , 8 , cPath+"5vbackup.ini" ) lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S" , cPath+"5vbackup.ini" ) cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N" , cPath+"5vbackup.ini" ) cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath , cPath+"5vbackup.ini" ) cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM" , cPath , cPath+"5vbackup.ini" ) VerifyINI( "BACKUP" , "LEMBRAR" , "S" , cPath+"5vbackup.ini" ) VerifyINI( "BACKUP" , "PUBLICO" , "N" , cPath+"5vbackup.ini" ) aZipFiles := ProcessaArray( StringToArray( cZIPFiles, ";" ) ) oMeter:nTotal:=Len(aZIPFiles) cBKPOrig := curdrive()+":\"+curdir()+"\bkp\" if !file(cBKPOrig+"\"+cZIPName) Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite ) else fErase(cBKPOrig+"\"+cZIPName) if MsgYesNo( "Arquivo ("+cBKPName+") ja existe, Deseja re-escrever", "Atencao" ) Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite ) endif endif return .t. FUNCTION ZIPRestore() local oMeter SET _3DLOOK ON MsgMeter( { | oMeter, oText, oDlg, lEnd | ; ZipOut(oMeter) },; "Descompactando arquivo...", "Backup/Restore" ) Return Nil FUNCTION ZipOut(oMeter) local lOverWrite:=.t cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP" cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. ) lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S" , cPath+"5vbackup.ini" ) cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath , cPath+"5vbackup.ini" ) oMeter:nTotal:=HB_GetFilesInZip( cZIPName ) HB_UNZIPFILE(cBKPDest+"\"+cZIPName,,lOverWrite,,cBKPDest) return .t. FUNCTION ProcessaArray( aQArray ) local aTArray := {} for i = 1 to len( aQArray ) DBF_NOMES := array( ADIR( aQArray ) ) ADIR( aQArray, DBF_NOMES ) for ii = 1 to len( DBF_NOMES ) AADD( aTArray, DBF_NOMES[ii] ) next next return aTArray FUNCTION StringToArray( cString, cSeparator ) LOCAL nPos LOCAL aString := {} Local cDirName := cGetDir( "Selecione uma pasta para trocar","SuaPastaPadrão",; CurDrive() + ":\" + GetCurDir() ) DEFAULT cSeparator := ";" cString := ALLTRIM( cString ) + cSeparator DO WHILE .T. nPos := AT( cSeparator, cString ) IF nPos = 0 EXIT ENDIF AADD( aString, SUBSTR( cString, 1, nPos-1 ) ) cString := SUBSTR( cString, nPos+1 ) ENDDO RETURN ( aString ) FUNCTION CheckBKP() cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP" cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N" , cPath+"5vbackup.ini" ) cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. ) cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM" , cPath , cPath+"5vbackup.ini" ) cBKPOrig := curdrive()+":\"+curdir() if cBKPAuto = "S" if !file(cBKPOrig+"\"+cZIPName) if Val(TTOS(time())) > 173000 if MsgYesNo( "Backup de seguranca de hoje nao existe. "+CRLF+"Deseja efetuar o backup?", "Atencao" ) ZIPBackup() endif endif endif endif return .t. FUNCTION VerifyINI( _section_, _entry_, _var_, _inifile_, _grava_ ) oIni := TIni():New( _inifile_ ) if _grava_ = .t. oIni:Set( _section_, _entry_, _var_ ) endif return oIni:Get( _section_, _entry_, _var_, _var_ ) id=code>id=code>RESOURCE dlgBackup DIALOG 10, 124, 269, 125 STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Gerenciar arquivos" FONT 8, "MS Sans Serif" { EDITTEXT 102, 14, 51, 189, 12 PUSHBUTTON "Procurar...", 103, 207, 50, 50, 14 PUSHBUTTON "Fazer &Backup Agora", 105, 8, 106, 86, 14 PUSHBUTTON "&Restaurar Agora...", 106, 96, 106, 86, 14 PUSHBUTTON "Fechar", 107, 212, 106, 50, 14 CONTROL "", 101, "static", SS_BLACKRECT | WS_CHILD | WS_VISIBLE, 8, 5, 20, 20 CONTROL "", 104, "static", SS_BLACKRECT | WS_CHILD | WS_VISIBLE, 8, 76, 20, 20 LTEXT "Local atual:", -1, 15, 40, 106, 8 GROUPBOX "Local para backup e restauração", -1, 8, 29, 256, 42, BS_GROUPBOX LTEXT "Faça o backup periódico de seus arquivos de dados em um local seguro. Dê preferencia a locais fora de seu disco rigido, como outro disco rígido, cd ou disco virtual na internet.", -1, 35, 74, 228, 27 LTEXT "Insira o local para backup ou restauração dos arquivos.", -1, 34, 3, 228, 27 } id=code>id=code>Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5 Editado por - boingo on 22/03/2012 23:22:38 Editado por - boingo on 23/03/2012 07:47:53 Editado por - boingo on 23/03/2012 07:49:10
  11. Pessoal,meus dados se encontram no diretório: D:\WFATURA\DADOS Essa rotina de backup abaixo esta pegando os dados do diretório: d:\WFATURA Como faço para direcionar o lugar correto: d:\wfatura\dados **by rochinha ** include "FiveWin.ch" FUNCTION NFWBackup() local oDLGARQ, oGet, lGo := .f., lGrava := .t., lDireta := .t. local lOverWrite:=.t. local lCtrl101,nCtrl102:=15,lCtrl103,lCtrl104,lCtrl105,nCtrl106:=1,; cCtrl107:="DIA(S)",nCtrl108:=1,cCtrl109:=SPACE(50) cpath:=curdrive()+":\"+curdir()+"\BKP" cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP" cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. ) cZIPEmail := VerifyINI( "BACKUP" , "Email" , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" ) cZIPFiles := VerifyINI( "BACKUP" , "Arquivos" , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" ) nZIPNivel := VerifyINI( "BACKUP" , "Nivel" , 8 , cPath+"5vbackup.ini" ) lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S" , cPath+"5vbackup.ini" ) cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N" , cPath+"5vbackup.ini" ) cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath , cPath+"5vbackup.ini" ) cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM" , cPath , cPath+"5vbackup.ini" ) VerifyINI( "BACKUP" , "LEMBRAR" , "S" , cPath+"5vbackup.ini" ) VerifyINI( "BACKUP" , "PUBLICO" , "N" , cPath+"5vbackup.ini" ) DEFINE DIALOG oDLGARQ NAME "dlgBackup" //REDEFINE CHECKBOX oCtrl101 VAR lCtrl101 ID 101 OF oDLGARQ //REDEFINE GET oCtrl102 VAR nCtrl102 ID 102 PICTURE "999" OF oDLGARQ WHEN lCtrl101 ; // SPINNER ; // ON UP (++nCtrl102,oCtrl102:Refresh()) ; // ON DOWN (--nCtrl102,oCtrl102:Refresh()) REDEFINE GET oCtrl102 VAR cBKPOrig ID 102 PICTURE "@!" OF oDLGARQ WHEN nCtrl108=1 REDEFINE BUTTON ID 103 OF oDLGARQ ACTION ( cBKPOrig:=cGetDir("Pesquise no conjunto de pastas na caixa abaixo qual o diretorio contem os dados de que necessita","d:\"),oCtrl102:Refresh(),; VerifyINI( "BACKUP", "DESTINO", cBKPOrig, cPath+"5vbackup.ini", .t. ),; VerifyINI( "BACKUP", "ORIGEM" , cBKPOrig, cPath+"5vbackup.ini", .t. ) ) //REDEFINE CHECKBOX oCtrl105 VAR lCtrl105 ID 105 OF oDLGARQ //REDEFINE GET oCtrl106 VAR nCtrl106 ID 106 PICTURE "999" OF oDLGARQ ; // SPINNER ; // ON UP (++nCtrl106,oCtrl106:Refresh()) ; // ON DOWN (--nCtrl106,oCtrl106:Refresh()) //REDEFINE COMBOBOX oCtrl107 VAR cCtrl107 ITEMS { "Mese(s)", "Semana(s)", "Dia(s)", "Ano(s)" } OF oDLGARQ ID 107 REDEFINE BITMAP oBitMap ID 101 OF oDLGARQ file "Image\backup.bmp" TRANSPAREN REDEFINE BITMAP oBitMap ID 104 OF oDLGARQ file "Image\arquivo.bmp" TRANSPAREN REDEFINE BUTTON ID 105 OF oDLGARQ ACTION ZipBackup() REDEFINE BUTTON ID 106 OF oDLGARQ ACTION ZipRestore() REDEFINE BUTTON ID 107 OF oDLGARQ ACTION (lGo := .f., oDLGARQ:End()) ACTIVATE DIALOG oDLGARQ CENTERED //VerifyINI( "BACKUP" , "Nome" , cZIPName , cPath+"5vbackup.ini", .t. ) //VerifyINI( "BACKUP" , "Email" , cZIPEmail , cPath+"5vbackup.ini", .t. ) //VerifyINI( "BACKUP" , "Arquivos" , cZIPFiles , cPath+"5vbackup.ini", .t. ) //VerifyINI( "BACKUP" , "Nivel" , nZIPNivel , cPath+"5vbackup.ini", .t. ) //VerifyINI( "BACKUP" , "Reescreve" , lOverWrite, cPath+"5vbackup.ini", .t. ) //VerifyINI( "BACKUP" , "AUTOMATICO", cBKPAuto , cPath+"5vbackup.ini", .t. ) //VerifyINI( "BACKUP" , "DESTINO" , cBKPDest , cPath+"5vbackup.ini", .t. ) //VerifyINI( "BACKUP" , "ORIGEM" , cBKPOrig , cPath+"5vbackup.ini", .t. ) return nil FUNCTION ZIPBackup() local oMeter SET _3DLOOK ON MsgMeter( { | oMeter, oText, oDlg, lEnd | ; ZipIn(oMeter) },; "Gerando arquivo compactado...", "Backup/Restore" ) Return .f. FUNCTION ZipIn(oMeter) local lOverWrite:=.t cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP" cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. ) cZIPEmail := VerifyINI( "BACKUP" , "Email" , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" ) cZIPFiles := VerifyINI( "BACKUP" , "Arquivos" , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" ) nZIPNivel := VerifyINI( "BACKUP" , "Nivel" , 8 , cPath+"5vbackup.ini" ) lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S" , cPath+"5vbackup.ini" ) cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N" , cPath+"5vbackup.ini" ) cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath , cPath+"5vbackup.ini" ) cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM" , cPath , cPath+"5vbackup.ini" ) VerifyINI( "BACKUP" , "LEMBRAR" , "S" , cPath+"5vbackup.ini" ) VerifyINI( "BACKUP" , "PUBLICO" , "N" , cPath+"5vbackup.ini" ) aZipFiles := ProcessaArray( StringToArray( cZIPFiles, ";" ) ) oMeter:nTotal:=Len(aZIPFiles) cBKPOrig := curdrive()+":\"+curdir()+"\bkp\" if !file(cBKPOrig+"\"+cZIPName) Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite ) else fErase(cBKPOrig+"\"+cZIPName) if MsgYesNo( "Arquivo ("+cBKPName+") ja existe, Deseja re-escrever", "Atencao" ) Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite ) endif endif return .t. FUNCTION ZIPRestore() local oMeter SET _3DLOOK ON MsgMeter( { | oMeter, oText, oDlg, lEnd | ; ZipOut(oMeter) },; "Descompactando arquivo...", "Backup/Restore" ) Return Nil FUNCTION ZipOut(oMeter) local lOverWrite:=.t cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP" cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. ) lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S" , cPath+"5vbackup.ini" ) cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath , cPath+"5vbackup.ini" ) oMeter:nTotal:=HB_GetFilesInZip( cZIPName ) HB_UNZIPFILE(cBKPDest+"\"+cZIPName,,lOverWrite,,cBKPDest) return .t. FUNCTION ProcessaArray( aQArray ) local aTArray := {} for i = 1 to len( aQArray ) DBF_NOMES := array( ADIR( aQArray ) ) ADIR( aQArray, DBF_NOMES ) for ii = 1 to len( DBF_NOMES ) AADD( aTArray, DBF_NOMES[ii] ) next next return aTArray FUNCTION StringToArray( cString, cSeparator ) LOCAL nPos LOCAL aString := {} Local cDirName := cGetDir( "Selecione uma pasta para trocar","SuaPastaPadrão",; CurDrive() + ":\" + GetCurDir() ) DEFAULT cSeparator := ";" cString := ALLTRIM( cString ) + cSeparator DO WHILE .T. nPos := AT( cSeparator, cString ) IF nPos = 0 EXIT ENDIF AADD( aString, SUBSTR( cString, 1, nPos-1 ) ) cString := SUBSTR( cString, nPos+1 ) ENDDO RETURN ( aString ) FUNCTION CheckBKP() cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP" cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N" , cPath+"5vbackup.ini" ) cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. ) cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM" , cPath , cPath+"5vbackup.ini" ) cBKPOrig := curdrive()+":\"+curdir() if cBKPAuto = "S" if !file(cBKPOrig+"\"+cZIPName) if Val(TTOS(time())) > 173000 if MsgYesNo( "Backup de seguranca de hoje nao existe. "+CRLF+"Deseja efetuar o backup?", "Atencao" ) ZIPBackup() endif endif endif endif return .t. FUNCTION VerifyINI( _section_, _entry_, _var_, _inifile_, _grava_ ) oIni := TIni():New( _inifile_ ) if _grava_ = .t. oIni:Set( _section_, _entry_, _var_ ) endif return oIni:Get( _section_, _entry_, _var_, _var_ ) id=code>id=code>RESOURCE dlgBackup DIALOG 10, 124, 269, 125 STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Gerenciar arquivos" FONT 8, "MS Sans Serif" { EDITTEXT 102, 14, 51, 189, 12 PUSHBUTTON "Procurar...", 103, 207, 50, 50, 14 PUSHBUTTON "Fazer &Backup Agora", 105, 8, 106, 86, 14 PUSHBUTTON "&Restaurar Agora...", 106, 96, 106, 86, 14 PUSHBUTTON "Fechar", 107, 212, 106, 50, 14 CONTROL "", 101, "static", SS_BLACKRECT | WS_CHILD | WS_VISIBLE, 8, 5, 20, 20 CONTROL "", 104, "static", SS_BLACKRECT | WS_CHILD | WS_VISIBLE, 8, 76, 20, 20 LTEXT "Local atual:", -1, 15, 40, 106, 8 GROUPBOX "Local para backup e restauração", -1, 8, 29, 256, 42, BS_GROUPBOX LTEXT "Faça o backup periódico de seus arquivos de dados em um local seguro. Dê preferencia a locais fora de seu disco rigido, como outro disco rígido, cd ou disco virtual na internet.", -1, 35, 74, 228, 27 LTEXT "Insira o local para backup ou restauração dos arquivos.", -1, 34, 3, 228, 27 } id=code>id=code>Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5 Editado por - boingo on 22/03/2012 23:22:38 Editado por - boingo on 23/03/2012 07:47:53 Editado por - boingo on 23/03/2012 07:49:10
  12. enviado Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  13. Ja esta configurado assim. Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  14. Blz Kapiaba, o interessante é que tanto a primeira rotina mais simples quanto a outra rotina que peguei de uma resposta sua, só funcionam na segunda vez que chamo a função, a primeira vez nessa segunda rotina que tem um teste de erro, o programa fala que não tem o outlook instalado, se chamo de novo funciona. Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  15. Agora estou testando essa rotina e acontece a mesma coisa. na primeira vez da a mensagem que não tem o outlook instalado, na segunda abre a tela do outlook. LOCAL cSubject, cNoteText, cMsgType, cConversationID, dDate, cTime, ; lReceipt, lFromUser, aOrigin, aRecipients, aFiles, oMail, ; EmailCliente, cChave, cXml, cValNF PUBLIC wNomeEmpresa aEmpresa := "valpanema agroindustria florestal ltda" aTabela := "valpanemaserraria@uol.com.br" //LOWER( CADCLIEN->EMAILNFE ) //-> Email do Cliente TONE(900,2) //-> Assunto do Email enviado cSubject := "Nota Fiscal Eletrônica - Arquivo XML" //-> Corpo do Email cNoteText := "Prezado Cliente:" +CRLF+CRLF+; "NOME DO CLIENTE" +CRLF+CRLF+; "Para suas devidas providencias, " + ; "segue em anexo o arquivo digital, " + ; "padrão XML, que deu origem " + ; "a nossa Nota Fiscal Eletrônica com as " + ; "seguintes características: " +CRLF+CRLF+; "Número: " +CRLF+ ; "Emissão: " +CRLF+ ; "Valor: " +CRLF+CRLF+; "Atenciosamente," +CRLF+CRLF+; "valpanema agroindustria florestal ltda" //-> ALLTRIM(wNomeEmpresa) //-> Nome do Remetente/Enviador cMsgType := "C" cConversationID := "" dDate := DATE() cTime := TIME() lReceipt := .F. lFromUser := .T. aOrigin := {""} //-> Email de quem enviou, nao precisa informar EmailCliente := "valpanema serraria@uol.com.br" aRecipients := { EmailCliente } //-> email final para enviar cXml:="teste.txt" aFiles := { cXml } //-> Aquivo para anexxar //----------------------------------------------------------------------// //-> Envia o Email - Disparo para o OutLoox Express oMail:=TMail():New( cSubject , ; cNoteText , ; cMsgType , ; cConversationID, ; dDate , ; cTime , ; lReceipt , ; lFromUser , ; aOrigin , ; aRecipients , ; aFiles ) //-> Ativa o OutLook Express - OutLook Express, Tem que ser PADRÇO oMail:Activate() IF ( oMail:nRetCode ) == 2 .OR. ( oMail:nRetCode ) == 26 TONE( 900, 2 ) MsgStop( OemToAnsi( "Atenção usuário: Favor Anotar. " )+CRLF+; OemToAnsi( "Ocorreu algum problema com seu Outlook " )+CRLF+; OemToAnsi( "Express. Tente solucionar o Problema: " )+CRLF+; OemToAnsi( " " )+CRLF+; OemToAnsi( " no Botão: do Windows: " )+CRLF+; OemToAnsi( "Configura‡äes. " )+CRLF+; OemToAnsi( "Painel de Controle " )+CRLF+; OemToAnsi( "Op‡äes da Internet " )+CRLF+; OemToAnsi( " na Aba Programas " )+CRLF+; OemToAnsi( " " )+CRLF+; OemToAnsi( "Verifique: Se não estiver, troque. " )+CRLF+; OemToAnsi( " " )+CRLF+; OemToAnsi( "Embaixo de Onde Estiver Escrito: " )+CRLF+; OemToAnsi( " " )+CRLF+; OemToAnsi( "Você Pode Especificar Que Programa o " )+CRLF+; OemToAnsi( "Windows Utiliza Automaticamente Para " )+CRLF+; OemToAnsi( "Cada Serviço de Internet. Padrão Abaixo: " )+CRLF+; OemToAnsi( " " )+CRLF+; OemToAnsi( "Email: OutLook Express - Padrão ‚ este. " )+CRLF+; OemToAnsi( "Grupo de Noticias: OutLook Express " )+CRLF+; OemToAnsi( " " )+CRLF+; OemToAnsi( "Não Use o Microsoft Office OutLook. " )+CRLF+; OemToAnsi( " " )+CRLF+; OemToAnsi( "Permitido: Microsoft OutLook Express " )+CRLF+; OemToAnsi( " " )+CRLF+; OemToAnsi( "Se não solucionar, entre em contato. " ), ; OemToAnsi( "OutLook Express - Instalação Obrigatória. " ) ) ENDIF //-> Fecha o Outlook Express oMail:End() TONE(900,2) id=code>id=code>Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  16. boa tarde, estou implementando no meu sistema a parte de envio do xml ao cliente. achei essa rotina, só que ele só abre a tela de email na segunda vez que clico. Alguém sabe o porque, ou teria uma outra rotina para enviou de email pelo outlook? FUNCTION SendMail() local oMail IF ARQNFE->SENDMAIL=="S" IF MSGYESNO("Deseja Enviar Novamente?","EMAIL Jà ENVIADO") ELSE RETURN(.F.) ENDIF ENDIF DEFINE MAIL oMAIL ; SUBJECT "Teste" ; // assunto TO "valpanemaserraria@uol.com.br" ; // para TEXT "Este é um teste de como mandar e-mail para o outlook" ; //mensagem FILES "teste.txt","teste.txt" ; // anexos FROM USER // com este vai abrir a tela de novo e-mail no outlook com tudo preenchido bastado apenas o usuario // clicar em enviar, caso vc nao coloque o FROM USER ele mando o e-mail direto nem abre o outlook. SEND MAIL oMAIL RETURN NIL id=code>id=code>Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  17. boa tarde, estou implementando no meu sistema a parte de envio do xml ao cliente. achei essa rotina, só que ele só abre a tela de email na segunda vez que clico. Alguém sabe o porque, ou teria uma outra rotina para enviou de email pelo outlook? FUNCTION SendMail() local oMail IF ARQNFE->SENDMAIL=="S" IF MSGYESNO("Deseja Enviar Novamente?","EMAIL Jà ENVIADO") ELSE RETURN(.F.) ENDIF ENDIF DEFINE MAIL oMAIL ; SUBJECT "Teste" ; // assunto TO "valpanemaserraria@uol.com.br" ; // para TEXT "Este é um teste de como mandar e-mail para o outlook" ; //mensagem FILES "teste.txt","teste.txt" ; // anexos FROM USER // com este vai abrir a tela de novo e-mail no outlook com tudo preenchido bastado apenas o usuario // clicar em enviar, caso vc nao coloque o FROM USER ele mando o e-mail direto nem abre o outlook. SEND MAIL oMAIL RETURN NIL id=code>id=code>Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  18. Opa vagner, postamos quase juntos, mas como falei só a troca ja passou a funcionar, mas vou ver como vc modificou o fonte mas ja de antemão agradeço. Vi que ficou mais fácil. Obrigado pela ajuda. Luisão e sambomb também obrigado. Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  19. Isso mesmo, troquei todos por EMPTY(ARQFUN->DATADEMIS) e funcionou. obrigado Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  20. obrigado pela ajuda, vou tentar analisar com mais calma. Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  21. Vagner, essas mensagens eu coloquei só pra me mostrar em qual funcionário estou. Foi ai que eu vi que ele pula o primeiro funcionário da um skip mostra o segundo funcionário mas quando volta no loop ele mostra novamente o primeiro funcionário. Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  22. td bem Vagner, acho que não ficou bem explicado nesse exemplo. o programa é para emissão de etiqueta para cartão de ponto, então não é só mostrar, como tem uma rotina abaixo tenho que dar o loop para pegar o próximo funcionário. vou postar o programa todo, talvez fique mais fácil achar o erro. #include "FiveWin.ch" #include "Utilprn.ch" FUNCTION RELETIQUETA() LOCAL OPRN,GRUA,SUBA,XLN,LN,oUtil,oFnt9,ofnt4,NGRU,NSUB,RFOR,CON,TREC XXI := .T. NATUAL := 0 PRINTER OPRN NAME "RELATÓRIO DE GRUPO DE PRODUTO" PREVIEW MODAL IF GETPRINTDC() == 0 // Cancelar Impressão RETURN .F. ENDIF OPRN:SETPAGE(9) // OPRN:SETLANDSCAPE() // paisagem DEFINE FONT oFnt9 NAME "Arial" SIZE 0,-8 OF OPRN DEFINE FONT oFNT4 NAME "Arial" SIZE 0, -6.5 OF oPrn DEFINE PEN oPen WIDTH 3 COLOR CLR_BLACK DEFINE UTILPRN oUtil PEN oPen OF oPrn XLN := 2.8 LN := 1 PAG := 1 CABETIQUETA(OPRN,PAG,oUtil) CURSORWAIT() ARQFUN->(DBSETORDER(2)) ARQFUN->(DBGOTOP()) BEGIN SEQUENCE WHILE ARQFUN->(!EOF()) MSGINFO(ARQFUN->NOMFUN+" PRIMEIRO REGISTRO"+" "+STR(RECNO(),10)) IF ARQFUN->(DATADEMIS)<>CTOD(" / / ") MSGINFO(ARQFUN->NOMFUN+" É DEMITIDO") ARQFUN->(DBSKIP()) MSGINFO(ARQFUN->NOMFUN+" NOVO FUNCIONÃRIO") LOOP ENDIF MSGINFO(ARQFUN->NOMFUN+" NOVO FUNCIONÃRIO") UTILPRN oUtil XLN-0.8,5 SAY "Nº DE ORDEM"+STR(CARTAO,4) FONT ofnt4 UTILPRN oUtil XLN,0.8 SAY STRZERO(CODFUN,4)+"-"+NOMFUN FONT ofnt9 IF ALLTRIM(HORENT)<>":" XLN := XLN + 0.4 UTILPRN oUtil XLN,0.8 SAY "HORÃRIO DE TRABALHO" FONT ofnt9 XLN := XLN + 0.3 UTILPRN oUtil XLN,0.8 SAY "ENT SAÃDA INTERVALO REPOUSO" FONT ofnt9 XLN := XLN + 0.3 UTILPRN oUtil XLN,0.8 SAY "06:57 17:00 01:15(almoço/café) SAB/DOM" FONT ofnt9 XLN := XLN + 0.5 XLN:=XLN-1.5 ELSE XLN := XLN + 0.4 UTILPRN oUtil XLN,0.8 SAY "HORÃRIO DE TRABALHO" FONT ofnt9 XLN := XLN + 0.3 UTILPRN oUtil XLN,0.8 SAY "ENT SAÃDA INTERVALO REPOUSO" FONT ofnt9 XLN := XLN + 0.3 UTILPRN oUtil XLN,0.8 SAY "ININTERRUPTO (ESCALA DE REVEZAMENTO)" FONT ofnt9 XLN := XLN + 0.5 XLN:=XLN-1.5 ENDIF sele 100 DBSETORDER(2) ARQFUN->(DBSKIP()) UNLOCK IF DTOC(ARQFUN->DATADEMIS)<>" / / " DO WHILE ARQFUN->(!EOF()) IF DTOC(ARQFUN->DATADEMIS)==" / / ";EXIT;ENDIF ARQFUN->(DBSKIP()) UNLOCK ENDDO ENDIF UTILPRN oUtil XLN-0.8,11.4 SAY "Nº DE ORDEM"+STR(CARTAO,4) FONT ofnt4 UTILPRN oUtil XLN,7.4 SAY STRZERO(CODFUN,4)+"-"+NOMFUN FONT ofnt9 IF ALLTRIM(HORENT)<>" " XLN := XLN + 0.4 UTILPRN oUtil XLN,7.4 SAY "HORÃRIO DE TRABALHO" FONT ofnt9 XLN := XLN + 0.3 UTILPRN oUtil XLN,7.4 SAY "ENT SAÃDA INTERVALO REPOUSO" FONT ofnt9 XLN := XLN + 0.3 UTILPRN oUtil XLN,7.4 SAY "06:57 17:00 01:15(almoço/café) SAB/DOM" FONT ofnt9 XLN := XLN + 0.5 XLN:=XLN-1.5 ELSE XLN := XLN + 0.4 UTILPRN oUtil XLN,7.4 SAY "HORÃRIO DE TRABALHO" FONT ofnt9 XLN := XLN + 0.3 UTILPRN oUtil XLN,7.4 SAY "ENT SAÃDA INTERVALO REPOUSO" FONT ofnt9 XLN := XLN + 0.3 UTILPRN oUtil XLN,7.4 SAY "ININTERRUPTO (ESCALA DE REVEZEMENTO)" FONT ofnt9 XLN := XLN + 0.5 XLN:=XLN-1.5 ENDIF sele 100 DBSETORDER(2) ARQFUN->(DBSKIP()) UNLOCK IF DTOC(ARQFUN->DATADEMIS)<>" / / " DO WHILE ARQFUN->(!EOF()) IF DTOC(ARQFUN->DATADEMIS)==" / / ";EXIT;ENDIF ARQFUN->(DBSKIP()) UNLOCK * MSGINFO(ARQFUN->NOMFUN+" 2") ENDDO ENDIF UTILPRN oUtil XLN-0.8,18 SAY "Nº DE ORDEM"+STR(CARTAO,4) FONT ofnt4 UTILPRN oUtil XLN,14 SAY STRZERO(CODFUN,4)+"-"+NOMFUN FONT ofnt9 IF ALLTRIM(HORENT)<>" " XLN := XLN + 0.4 UTILPRN oUtil XLN,14 SAY "HORÃRIO DE TRABALHO" FONT ofnt9 XLN := XLN + 0.3 UTILPRN oUtil XLN,14 SAY "ENT SAÃDA INTERVALO REPOUSO" FONT ofnt9 XLN := XLN + 0.3 UTILPRN oUtil XLN,14 SAY "06:57 17:00 01:15(almoço/café) SAB/DOM" FONT ofnt9 XLN := XLN + 0.5 XLN:=XLN-1.5 ELSE XLN := XLN + 0.4 UTILPRN oUtil XLN,14 SAY "HORÃRIO DE TRABALHO" FONT ofnt9 XLN := XLN + 0.3 UTILPRN oUtil XLN,14 SAY "ENT SAÃDA INTERVALO REPOUSO" FONT ofnt9 XLN := XLN + 0.3 UTILPRN oUtil XLN,14 SAY "ININTERRUPTO (ESCALA DE REVEZAMANDO)" FONT ofnt9 XLN := XLN + 0.5 XLN:=XLN-1.5 ENDIF sele 100 DBSETORDER(2) ARQFUN->(DBSKIP()) UNLOCK IF DTOC(ARQFUN->DATADEMIS)<>" / / " DO WHILE ARQFUN->(!EOF()) IF DTOC(ARQFUN->DATADEMIS)==" / / ";EXIT;ENDIF ARQFUN->(DBSKIP()) UNLOCK * MSGINFO(ARQFUN->NOMFUN+" 3") ENDDO ENDIF LN := LN + 1 IF LN >= 8 PAG := PAG + 1 ENDPAGE XLN := 2.8 LN := 1 CABETIQUETA(OPRN,PAG,oUtil) ELSE XLN := XLN + 3 UTILPRN oUtil XLN,0.7 SAY "MARÇO DE 2.012" FONT ofnt4 UTILPRN oUtil XLN,7.3 SAY "MARÇO DE 2.012" FONT ofnt4 UTILPRN oUtil XLN,13.9 SAY "MARÇO DE 2.012" FONT ofnt4 XLN := XLN + 0.3 UTILPRN oUtil XLN,0.7 SAY "VALPANEMA AGR.IND.FLORESTAL LTDA" FONT ofnt4 UTILPRN oUtil XLN,7.3 SAY "VALPANEMA AGR.IND.FLORESTAL LTDA" FONT ofnt4 UTILPRN oUtil XLN,13.9 SAY "VALPANEMA AGR.IND.FLORESTAL LTDA" FONT ofnt4 XLN := XLN + 0.5 ENDIF ENDDO END SEQUENCE IF LN <> 86 ENDPAGE ENDIF ENDPRINT OUTIL:END() OPEN:END() OFNT9:END() OPRN:END() CURSORARROW() RETURN NIL **************************************** FUNCTION CABETIQUETA(OPRN,PAG,oUtil) Local oBrush Local nColor := 15724527 DEFINE FONT oFont NAME "Arial" SIZE 0,-16 BOLD OF OPRN DEFINE FONT oFNT2 NAME "Arial" SIZE 0, -10 OF oPrn DEFINE FONT oFNT3 NAME "Arial" SIZE 0, -12 BOLD OF oPrn DEFINE FONT oFNT4 NAME "Arial" SIZE 0, -6.5 OF oPrn DEFINE BRUSH oBrush COLOR nColor PAGE UTILPRN oUtil 2,0.7 SAY "MARÇO DE 2.012" FONT ofnt4 UTILPRN oUtil 2,7.3 SAY "MARÇO DE 2.012" FONT ofnt4 UTILPRN oUtil 2,13.9 SAY "MARÇO DE 2.012" FONT ofnt4 UTILPRN oUtil 2.3,0.7 SAY "VALPANEMA AGR.IND.FLORESTAL LTDA" FONT ofnt4 UTILPRN oUtil 2.3,7.3 SAY "VALPANEMA AGR.IND.FLORESTAL LTDA" FONT ofnt4 UTILPRN oUtil 2.3,13.9 SAY "VALPANEMA AGR.IND.FLORESTAL LTDA" FONT ofnt4 UTILPRN oUtil SELECT ofnt2 UTILPRN oUtil SELECT ofnt4 UTILPRN oUtil SELECT oBrush oBrush:End() RETURN(.T.) id=code>id=code>Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  23. MEU BANCO DE DADOS EM ORDEM DE NOME: ABEL GOMES CORDEIRO ADALBERTO JOSE DOS SANTOS ADALBERTO SILVA ********************* ARQFUN->(DBSETORDER(2)) ARQFUN->(DBGOTOP()) WHILE ARQFUN->(!EOF()) MSGINFO(ARQFUN->NOMFUN+" PRIMEIRO REGISTRO"+" "+STR(RECNO(),10)) IF ARQFUN->(DATADEMIS)<>CTOD(" / / ") MSGINFO(ARQFUN->NOMFUN+" É DEMITIDO") ARQFUN->(DBSKIP()) MSGINFO(ARQFUN->NOMFUN+" NOVO FUNCIONÃRIO") LOOP ENDIF ENDDO ******** o objetivo é pular os funcionários demitidos. a rotina mostra pra mim o primeiro nome do registro"abel", depois verifica que ele foi demitido e mostra novamente, depois pula e mostra o segundo nome "adalberto", só que no loop quando faz a comparação novamente ele me mostra novemente o nome "abel". Qual o erro? Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  24. MEU BANCO DE DADOS EM ORDEM DE NOME: ABEL GOMES CORDEIRO ADALBERTO JOSE DOS SANTOS ADALBERTO SILVA ********************* ARQFUN->(DBSETORDER(2)) ARQFUN->(DBGOTOP()) WHILE ARQFUN->(!EOF()) MSGINFO(ARQFUN->NOMFUN+" PRIMEIRO REGISTRO"+" "+STR(RECNO(),10)) IF ARQFUN->(DATADEMIS)<>CTOD(" / / ") MSGINFO(ARQFUN->NOMFUN+" É DEMITIDO") ARQFUN->(DBSKIP()) MSGINFO(ARQFUN->NOMFUN+" NOVO FUNCIONÃRIO") LOOP ENDIF ENDDO ******** o objetivo é pular os funcionários demitidos. a rotina mostra pra mim o primeiro nome do registro"abel", depois verifica que ele foi demitido e mostra novamente, depois pula e mostra o segundo nome "adalberto", só que no loop quando faz a comparação novamente ele me mostra novemente o nome "abel". Qual o erro? Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  25. Tudo bem Vagner, vc chegou a tentar baixar o documento pelo site deles. Como eu falei, tentei duas vezes não se porque aqui a internet é muito lenta deu que a sessão expirou. Eu ainda consigo baixar os dados da nfe, somente esses dados que falei que não tem mais, eu percebi que os dados do emitente esta na aba de autorização de uso. Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
×
×
  • Create New...