Jump to content
Fivewin Brasil

Yury

Membros
  • Posts

    873
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Yury

  1. olá Marcelo, no meu aplicativo eu utilizo os ceps num BD mesmo, mas no post abaixo o Oscar Ribeiro colocou uma função que funciona: http://www.fivewin.com.br/forum/topic.asp?whichpage=2&ARCHIVE=&TOPIC_ID=14191 espero q ajude abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Editado por - yury on 22/07/2009 18:16:09
  2. é estranho acusar a falta desta função, mas tente assim então: WINEXEC("Explorer "+cLink+cObjRastrear) no lugar no ShellExecute, vc fica meio amarrado ao Explorer, mas funciona agora se por acaso vc estiver compilando em modo console, sem FW, use RUN... abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Editado por - yury on 22/07/2009 12:34:01
  3. #include "FiveWin.ch" //------------------------------------------------------------------------------ FUNCTION MAIN() cLink='http://websro.correios.com.br/sro_bin/txect01$.QueryList?P_LINGUA=001&P_TIPO=001&P_COD_UNI=' WHILE .T. cObjRastrear=SPACE(13) IF !MSGGET('Rastreamento de objeto:','Código:',@cObjRastrear) EXIT ENDIF cObjRastrear=ALLTRIM(cObjRastrear) ShellExecute(GetActiveWindow(),nil,cLink+cObjRastrear,"","",5) ENDDO RETURN //------------------------------------------------------------------------------ id=code>id=code>abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  4. Daniel, desculpe invadir o tópico, mas achei muito interessante sua rotina: se tiver um tempinho, esclareça minhas dúvidas, por favor: 1) 'new' é uma tabela temporária ? 2) vemos as instruções para criar o trigger, mas ele precisa ser disparado de algum ponto ou simplesmente a instrução AFTER INSERT ON `venit` irá executá-lo sempre que houver um insert na tabela 'venit' ? 3) este trigger uma vez criado permanece atrelado a tabela ou deve ser criado novamente quando preciso fazer outra atualização ? obrigado pela atenção abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  5. Gilmer, o cadastro deve estar com o nome da empresa: Viman Sistemas ou SCA Informática Por gentileza, adicione no seu msn: desenv@vimansca.com.br grato Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  6. up Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  7. olá, com folder na verdade vc define controles para as abas, não funções... exemplo: DEFINE DIALOG oMAN FROM 01,01 TO 32,100 TITLE 'Pedido de Venda' @ 01,01 SAY "Pedido de Venda nº "+ALLTRIM(STR(nPedido)) OF oMAN COLOR CLR_BLACK @ 02,01 FOLDER oFLD SIZE 382,170 OF oMAN COLOR CLR_WHITE,CLR_BLACK PROMPTS "Dados do Cliente","Itens do Pedido" //--------------------------------------------------------- um say/get na primeira aba @ 01,01 SAY 'Cliente:' OF oFLD:aDialogs[1] @ 01,08 GET nCliente PICT '999,999' OF oFLD:aDialogs[1] //--------------------------------------------------------- //--------------------------------------------------------- um browse na segunda aba @ 01,01 COLUMN BROWSE oBRW OF oFLD:aDialogs[2] SIZE 365,135 oBRW:SetArray( WITENS ) ... //--------------------------------------------------------- @ 18,69.4 BUTTON cCancelar OF oMAN SIZE cLarBut,cAltBut ACTION ( oMAN:End() ) CANCEL ACTIVATE DIALOG oMAN CENTER ON id=code>id=code>abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Editado por - yury on 17/07/2009 18:00:20
  8. olá João, estou usando SQLLIB com MySQL abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Editado por - yury on 17/07/2009 17:50:45
  9. olá Gilmer, ao tentar imprimir um relatório com preview está ocorrendo um erro de GPF no método StartPage() da classe TPrinter() EXCEPTION_ACCESS_VIOLATION - O thread tentou ler/escrever num endereço virtual ao qual não tinha acesso. GPFHANDLER, na linha : 875 CREATEENHMETAFILE, na linha : 0 TPRINTER:STARTPAGE, na linha : 438 id=code>id=code>não ocorre em todos os momentos, diria que de 50 vezes que imprime 1 vez ocorre o erro vc saberia dizer algo sobre isso ? obrigado pela atenção estou compilando com: xHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 8.01 & SQLLIB 1.9d Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Editado por - yury on 20/07/2009 07:53:46
  10. olá Gilmer, ao tentar imprimir um relatório com preview está ocorrendo um erro de GPF no método StartPage() da classe TPrinter() EXCEPTION_ACCESS_VIOLATION - O thread tentou ler/escrever num endereço virtual ao qual não tinha acesso. GPFHANDLER, na linha : 875 CREATEENHMETAFILE, na linha : 0 TPRINTER:STARTPAGE, na linha : 438 id=code>id=code>não ocorre em todos os momentos, diria que de 50 vezes que imprime 1 vez ocorre o erro vc saberia dizer algo sobre isso ? obrigado pela atenção estou compilando com: xHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 8.01 & SQLLIB 1.9d Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Editado por - yury on 20/07/2009 07:53:46
  11. olá Dorneles, eu não testo por este indicador de pagamento, pois o Cobrebem as vezes não respeita corretamente, depende de banco para banco, na verdade eu testo pela ocorrência bancária... tenho um cadastro com todas as ocorrências por banco e neste cadastro tenho um indicador do procedimento, desta forma quando leio o registro no arquivo de retorno pego a ocorrência, leio meu cadastro de ocorrências e verifico qual é o procedimento, se é um recebimento, uma entrada em cobrança, uma entrada rejeitada, etc, etc um pequeno exemplo: WOCOR = oReg:CodigoOcorrencia IF !OC->(DBSEEK(WBANCO+WOCOR)) ? 'Ocorrência não cadastrada !' LOOP ELSE xProc=OC->OCPROC ENDIF IF xProc=1 // procedimentos para recebimento ELSEIF xProc=2 // procedimentos para entrada confirmada ELSEIF xProc=3 // procedimentos para entrada rejeitada ENDIF id=code>id=code>abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  12. olá, utilize a função PrintBegin, ela fica na própria classe TPrinter: PrintBegin( cDoc, lUser, lPreview, xModel, lModal, lSelection ) id=code>id=code>esta função já cria e retorna o objeto de impressão, e onde está o parâmetro xModel vc passa o nome da impressora que vc quer para pegar este nome faça: xModel = ALLTRIM(PrnGetName()) id=code>id=code>abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  13. ou carrega tudo de novo com um novo ORDER BY ou carrega em tabela com sqlArray uma vez e depois faz ASORT ou abre com DBUSEAREA() com índices pré-definidos e criados e faz DBSETORDER() conforme os índices Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  14. acho q vc tem que modificar um pouquinho, pois desta forma criando no ON INIT e com o oBarra local a Dlg vai ficar com o foco no primeiro objeto, no caso o browse... oq vc poderia fazer é criar o oBarra como private na função inicial e no ON INIT colocar um xSetFocus(oBarra): ACTIVATE DIALOG oDlg CENTERED ON INIT (BarraBotoesClientes( oDlg,oLbx ),xSetFocus(oBarra)) id=code>id=code>Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Editado por - yury on 02/07/2009 15:53:48
  15. esse erro é um bug da classe TWindow que ocorria em versões anteriores, na 2.6 tenho certeza que havia, já na 8.01 foi corrigido o bug é neste trecho do método HScroll: deve estar assim na sua versão: if nScrHandle == 0 // Window ScrollBar do case case nScrollCode == SB_LINEUP ::oHScroll:GoUp() case nScrollCode == SB_LINEDOWN ::oHScroll:GoDown() case nScrollCode == SB_PAGEUP ::oHScroll:PageUp() id=code>id=code>mas o correto deveria ser testar assim: if nScrHandle == 0 .and. ::oHScroll != nil // Window ScrollBar do case case nScrollCode == SB_LINEUP ::oHScroll:GoUp() case nScrollCode == SB_LINEDOWN ::oHScroll:GoDown() case nScrollCode == SB_PAGEUP ::oHScroll:PageUp() id=code>id=code>abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  16. olá, quando eu compilava em 16 bits eu usava desta forma: FreeTSlice() id=code>id=code>colocava a chamada da função acima no programa principal e linkava uma função em C, copie o trecho abaixo e salve como TIMESLIC.C e coloque no .LNK para linkar /* * * FreeTSlice() * ------------------------------- * (o) 09/2002, Paulo Buzinello * Londrina/PR * Brasil * pbuzinello@usa.com * ------------------------------- * * Baseado no trabalho original de * Dmitry A. Steklenev (DOSIDLE.C) * * */ #include extern void *_evKbdEntry; static void _IdleGenerate(void); /***************************************************************************************** * Sintaxe: FreeTSlice([nDelay]) * Função.: Esta função põe um "gancho" na rotina de manipulação de teclado, acionada para * tratar todos os eventos deste. Sendo assim, no momento de ociosidade, quando o * antigo manipulador for acionado para qualquer otimização em background, o novo * manipulador será chamado antes, e este liberará o tempo de CPU, para então dar * o controle ao antigo manipulador. * O parâmetro nDelay (opcional) serve para especificar, a grosso modo, qual será * a taxa de execução da interrupção de liberação da CPU. ****************************************************************************************/ static int dpmiFound = 0; static int StdDelay ; static void *_stKbdEntry ; CLIPPER FreeTSlice(void) { static int Hooked = 0; StdDelay = (_parinfo(0)? _parni(1): 20); if (!Hooked) { asm {mov ax,0x1686 int 0x2F or ax,ax jne Hook } dpmiFound = 1; Hook: Hooked = 1; _stKbdEntry = _evKbdEntry; _evKbdEntry = (void*)&_IdleGenerate; } } // Estrutura de dados para a chamada de interrupção no modo real typedef unsigned long DWORD; typedef int _WORD; static struct _RealCall { DWORD EDI; DWORD ESI; DWORD EBP; DWORD Reserved; DWORD EBX; DWORD EDX; DWORD ECX; DWORD EAX; _WORD FLG; _WORD ES; _WORD DS; _WORD FS; _WORD GS; _WORD IP; _WORD CS; _WORD SP; _WORD SS; } RealCall; /***************************************************************************************** * Sintaxe: _IdleGenerate() * Função.: Liberar para o sistema operacional as fatias de tempo utilizadas pelo programa * para otimizações em background, em ciclos de tempo normalmente ociosos. * Esta liberação ocorrerá sempre que o antigo manipulador de teclado for chamado * e o contador "Delay" for reciclado. E, conforme a configuração deste contador, * a função de liberação do uso da CPU será executada mais ou menos vezes. Apenas * a prática dirá o valor ideal. Mas o valor default parece ser bem apropriado. ****************************************************************************************/ static void _IdleGenerate() { static int Delay = 0; int StructSize = sizeof(RealCall); if (++Delay==StdDelay) { Delay = 0; asm {push ax push bx push cx push dx push di push si push ds push es push bp } if (dpmiFound) { asm {mov ax,seg RealCall // montar o registrador ES com... mov es,ax // o endereço da tabela mov di,offset RealCall // carregar o offset inicial push es // salvar os dois... push di // registradores mov cx,StructSize // tamanho da tabela xor ax,ax // caractere de preenchimento cld // condição de incremento para DF rep stosb // limpar a tabela pop di // recuperar o endereço... pop es // da tabela // mov ax,0x0300 // simulação de interrupção no modo real mov bh,0 // reservado: deve ser zero mov bl,0x2F // interrupção do modo real xor cx,cx // tamanho da tabela devolvida mov word ptr RealCall.EAX,1680h // função modo real de liberação da CPU int 0x31 // interrupção DPMI } } else { asm {mov ax,0x1680 // serviço para a liberação da CPU int 0x2F // chamada à interrupção multiplex } } asm {pop bp pop es pop ds pop si pop di pop dx pop cx pop bx pop ax } } asm {mov sp,bp // pop bp // jmp dword ptr ds:_stKbdEntry // devolver o controle ao antigo manipulador } } id=code>id=code>abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  17. olá Franscisco, pode ser que esteja ocorrendo um GPF e provocando a saída do sistema... procure na "pesquisa" pelo termo GPF, terá um tópico "de onde vem o GPF", neste tópico tem uma rotina para mapear o erro GPF quando ocorre... tive um problema assim aqui e com esta rotina pelo menos fiquei sabendo em que linha ocorria o problema... espero q ajude Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  18. citação:Opa, Yuri, respondi a mesma coisa... depois que vi,rsrsrsrs tô ficando loco mesmo, kkkkkkkkkkkkkkkkkkkkkkkk id=quote>id=quote>é o chope de Rib.Preto... (o chope é ótimo, mas na qtde q vc toma faz mal, kkkkkkkkkkk) abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  19. olá, experimente configurar as variáveis de ambiente pelo Windows, e não pelo autoexec.bat Painel de Controle / Avançado/ Variáveis de Ambiente abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  20. vc tem que entrar em contato na sec.fazenda abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  21. veja: http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=7386 abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  22. é o que eu disse, o certificado de homologação expirou... Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  23. olá, o registro (chave) para envio de Nfe em homologação para um cliente meu que iniciou em 01/12/2008 expirou em 10/06/2009 somente está funcionando o registro de produção... falei na receita e dizem que não tem previsão de quando irão liberar um novo registro para homologação... abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  24. olá, modifique seu ErrSysw (gerador de doc de erro), colocando o seguinte teste: IF erro:genCode == EG_NOFUNC cPROG=ALLTRIM(erro:OPERATION()) MSGSTOP("Impossível executar "+cPROG+". Este programa não está disponível para esta versão do sistema","ERRO") RETURN ENDIF id=code>id=code>desta forma não irá gerar erro em tempo de execução, somente uma mensagem de aviso abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
  25. 2 observações para vc verificar: 1) verifique se o Microsoft Outlook está instalado nas máquinas, veja bem, não é o Outlook Express, e sim o Microsoft Outlook do Office, pois se ele estiver instalado o Windows pode ter assumido como padrão e acho q com TMail ele não funciona 2) se estiver sendo anexado algum arquivo que o TMail não acha ele não abre, já passei por isso, então cuidado com a localização do arquivo que estiver sendo anexado, letra do drive, tem que ser o caminho completo espero q ajude abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say
×
×
  • Create New...