Jump to content
Fivewin Brasil

netsys

Membros
  • Posts

    326
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by netsys

  1. Ola Kapiaba! Tudo otimo por aqui! Obrigado pela dica! Gostei do seu entusiasmo com a 2.7, está me contagiando e, na certa, vou comprá-la em breve. Aproveitando a oportunidade, estou aqui compilando com o 5.3b e linkando com o Blinker 7.0 e dá 2 mensagens de "unresolved external": _LOGFILE __V20 Ja adicionei o MPAR e o CDXLOCK, além das LIBs p. 5.3b: Fivewin,Winapi,Barlib,Exospace,Clipper,Extend,Dbfcdx,_Dbfcdx,Terminal,501_520 Falta mais alguma coisa? Mutcho Grato Alberto
  2. Para o honorável Kapiaba: Amigo, para que serve o VMW ? onde achá-lo? Mui Grato Alberto
  3. Ola RMarra Só uma coisa, vc tentou com SET EXACT OFF? Alberto
  4. Caríssimos Amigos Estou 100% solidário e também indignado como os colegas. Apesar de estar em SP foram estas dificuldades que me fizerem DESISTIR DE CLIENTES DE LOJA! Hoje só trabalho com INDÚSTRIA, COMÉRCIO ATACADISTA ou EXPORTADORES! É óbvio que muitos colegas aqui não tem esta possibilidade em função da obrigatoriedade de algumas atividades (p.ex.postos de gasolina). Mas a título de tentar ajudar, algumas atividades varejistas podem substituir o Cupom Fiscal por uma NOTA FISCAL SIMPLIFICADA DE VENDA A CONSUMIDOR, em formulário contínuo. Seria interessante se cada um pudesse consultar seu contador ou mesmo a Secretaria da Fazenda do seu estado. Alberto FW192+Clip5.2e+Blinker7
  5. Ola Celhel A função abaixo funciona com uma balança Lucastec ligada na Com1. Neste caso, é necessário enviar um Chr(5) para a mesma retornar uma string NNNN 99/99/99 999999 KG, com 20 bytes, onde NNNN = contador de leituras. Veja que oGet esta sendo atualizado com a variavel cBuffer (STATIC), além de gravar no arquivo PESO.TXT. Espero que ajude. Alberto Zamai Vip Netsystem *---------------------- Function fLeitura(oGet) *---------------------- local cDcb, nBytes local nComm := OpenComm( "COM1", 1024, 128 ) // Define a porta Com1 local nError, nI if ! BuildCommDcb( "COM1:9600,n,8,1", @cDcb ) // Abre a porta nError = GetCommError( nComm ) MsgInfo( "BuildCommDcb Error: " + Str( nError ) ) endif if ! SetCommState( cDcb ) // Verifica estado nError = GetCommError( nComm ) MsgInfo( "SetCommState Error: " + Str( nError ) ) endif if ( nBytes := WriteComm( nComm, Chr(5) ) ) < 0 // Manda um Chr(5) nError = GetCommError( nComm ) MsgInfo( "WriteComm Error: " + Str( nError ) ) End Inkey(1.5) // Espera 1.5 seg. pela resposta cBuffer:=Space(20) ReadComm( nComm , @cBuffer) MemoWrit("PESO.txt",cBuffer) // Escreve o retorno oGet:Refresh() // Atualiza o Get com a vari vel cBuffer if FlushComm( nComm, 0 ) != 0 // Limpa o buffer da porta serial nError = GetCommError( nComm ) MsgInfo( "FlushComm Error: " + Str( nError ) ) endif if ! CloseComm( nComm ) // Fecha a porta nError = GetCommError( nComm ) MsgInfo( "CloseComm Error: " + Str( nError ) ) endif return(Nil)
  6. netsys

    Combobox

    Aos colegas Sergio (Personal) e Alessandro (aferra) Tomei a liberdade de enviar-lhes o prg, dll, dbf e exe com a combo. Gostaria de pedir a opinião de vcs. Muito tks Alberto
  7. netsys

    Combobox

    Ola Sérgio É isso mesmo colega, ficou uma pesquisa incremental DA HORA! Obrigado ao Alessandro tb pela dica! Tks Alberto
  8. netsys

    Combobox

    Boa Noite Estava exatamente testando isso agora. A situação é a seguinte: Com uma combo feita no Workshop, com os atributos marcados: Drop Down, NO owner drawing, tab stop, visible, vertical scroll e integral wait. Chamada comum: Redefine Combobox oCbx Items aItems Id 101 of oDlg Ela ficou quase perfeita! Só queria que abri-se automática mente quando o usuário começar a digitar. Ai fica uma pesquisa incremental muito legal! Alguem sabe se existe algum método para abrir a combo? Gto Alberto
  9. Ola Atenildo Tenta assim oGet:bChange:={|nKey| fSuaFuncao(nKey)} a nKey muda a cada tecla precionada! Alberto Zamai
  10. Boa Noite Paulo Desculpe, mas vou me reservar o direito de discordar, pelos seguintes motivos: Pelo que acompanho, a comunidade Fivewin no Brasil vem crescendo exponencialmente nos últimos 5 anos. Qual a nossa posição (e importância) na comunidade mundial? Quantos usuários na Espanha, Rússia, Itália, etc? Quais progressos podemos esperar? Se o FW usa a API do Windows, porque o código executável é 16 bits???? Gostaria de lembrar que o Brasil é o 2o. maior produtor de software do mundo! (atrás apenas da India!) e acho que merecemos sim, uma atenção maior do pai da criança! Vários colegas aqui vão lembrar que o Clipper nasceu em 1986 como compilador do DBase e depois virou uma linguagem autônoma! Será que o mesmo vai ocorrer com o FW? ou vamos conviver com o antigo PCode do Clipper mesmo no .NET ou Windows VISTA? Gostaria de lembrar tb que o (x)Harbour é só um tradutor dos fontes .PRG para .C para ai serem compilados com, por exemplo o BCC da Borland!!! Desculpe se faço questionamentos técnicos, mas todos nós (e acho que o Sr. Antonio Linhares também), temos os mesmos questionamentos. Grato Alberto Zamai Vip Netsys
  11. Ola Kleiton Por acaso vc usa CDX? Abraços Alberto Vip Netsys
  12. Boa tarde SYDA e colegas Fivewinners! Face a importância e atualidade do assunto, além da urgência da SYDA, gostaria de fazer algumas considerações para os amigos da Virtual: - Todos sabemos que a tecnologia cliente-servidor, especial- mente SQL representa hoje o "NIRVANA" que todos querem. - Quem trabalha em 16 bits compila seus progs em Clipper (que hoje é free). - MySql, Firebird e outros excelentes bancos de dados também são free! - Para 32 bits, Harbour é free! Dentro da atual tendencia OPEN-SOURCE, a Virtual (e/ou a Fivetech) não poderiam também repensar este assunto? Tenho convicção absoluta que o Fivewin iria bater de frente em outras liguagens. Existem outras formas de remuneração a partir da própria comunidade de desenvolvedores! Sem dúvida SYDA, pense no quesito CUSTO! (tempo+grana x resultado). Seu patrão (ou cliente que é quase a mesma coisa) também pensa assim! Espero ter ajudado. Alberto Zamai Vip Netsystem
  13. Boa tarde SYDA e colegas Fivewinners! Face a importância e atualidade do assunto, além da urgência da SYDA, gostaria de fazer algumas considerações para os amigos da Virtual: - Todos sabemos que a tecnologia cliente-servidor, especial- mente SQL representa hoje o "NIRVANA" que todos querem. - Quem trabalha em 16 bits compila seus progs em Clipper (que hoje é free). - MySql, Firebird e outros excelentes bancos de dados também são free! - Para 32 bits, Harbour é free! Dentro da atual tendencia OPEN-SOURCE, a Virtual (e/ou a Fivetech) não poderiam também repensar este assunto? Tenho convicção absoluta que o Fivewin iria bater de frente em outras liguagens. Existem outras formas de remuneração a partir da própria comunidade de desenvolvedores! Sem dúvida SYDA, pense no quesito CUSTO! (tempo+grana x resultado). Seu patrão (ou cliente que é quase a mesma coisa) também pensa assim! Espero ter ajudado. Alberto Zamai Vip Netsystem
  14. Falou JDMoura! Espero que a função lhe seja útil. Como diz o famoso Kapiaba qq cerveja me diverte! Abraço e disponha! Alberto Zamai Vip Netsystem Informática
  15. Ola JDMoura, como vai? Segue a função fFantasia. Ela usa um Listbox no lugar da DbEdit. Espero que ajude. Ela funciona como pesquisa incremental com 3 arquivos E200=Clientes E300=Fornecedor e E250=Transportadoras. Chame no seu GET assim: Redefine Get oFant Var cFant Id 105 of oDlg Picture "@!" oFant:bChange:={|nKey| fFantasia("E200",@cClie,@cFant,oFant,nKey)} *------------------------------------------------ Function fFantasia(cAlias,cClie,cFant,oFant,nKey) *------------------------------------------------ Local oDlg, oLbx, oGet Local lChk:=.t. Local cArq:=Dbf() Local cProcura:=Space(40) If Chr(nKey)="-" .or. Left(oFant:GetText(),1)='-' Return Nil End DEFINE DIALOG oDlg FROM 4,2 TO 20,72 TITLE "Pesquisa de "+If(cAlias='E200','Clientes',If(cAlias='E250','Transportadoras','Fornecedores')) @ 01,05 GET oGet VAR cProcura PICTURE '@K!' SIZE 120, 10 PIXEL OF oDlg oGet:bChange:={|nKey| fOrdena(cAlias,lChk,oLbx,cProcura,oGet,nKey)} If nKey > 31 .and. nKey < 128 cProcura:=Upper(Chr(nKey))+Space(39) oGet:nPos:=2 End Select(cAlias) (cAlias)->(DbSetorder(2)) (cAlias)->(DbSeek(Alltrim(cProcura),.t.)) If cAlias="E200" fAbrir('E220') DbSelectArea('E200') Set Relation to E200->E200Clie+"F" into E220 @ 13,05 LISTBOX oLbx FIELDS E200->E200Nome, E200->E200Fant, E220->E220Ende ; HEADERS OemtoAnsi("RazÆo Social"), "Fantasia" ,OemtoAnsi("Endere‡o") ; ON CHANGE (cProcura:=E200->E200Nome,oGet:Refresh()) ; SIZE 268,105 PIXEL OF oDlg ElseIf cAlias="E300" fAbrir('E320') DbSelectArea('E300') Set Relation to E300->E300Forn+"F" into E320 @ 13,05 LISTBOX oLbx FIELDS E300->E300Nome, E300->E300Fant, E320->E320Ende ; HEADERS OemtoAnsi("RazÆo Social"), "Fantasia" ,OemtoAnsi("Endere‡o") ; ON CHANGE (cProcura:=E300->E300Nome,oGet:Refresh()) ; SIZE 268,105 PIXEL OF oDlg Else fAbrir('E250') DbSelectArea('E250') @ 13,05 LISTBOX oLbx FIELDS E250->E250Nome, E250->E250Fant, E250->E250End ; HEADERS OemtoAnsi("RazÆo Social"), "Fantasia" ,OemtoAnsi("Endere‡o") ; ON CHANGE (cProcura:=E250->E250Nome,oGet:Refresh()) ; SIZE 268,105 PIXEL OF oDlg End @ 01,135 CHECKBOX lChk PROMPT OemtoAnsi("Pesquisar por RazÆo Social") SIZE 100,8 PIXEL OF oDlg ; ON CHANGE fOrdena(cAlias,lChk,oLbx,cProcura,oGet,0) @ 01,242 BUTTON "&Sair" SIZE 30,10 PIXEL OF oDlg ACTION (fAchouFant(cAlias,@cClie,@cFant,oFant),oDlg:End()) ACTIVATE DIALOG oDlg CENTERED VALID fAchouFant(cAlias,@cClie,@cFant,oFant) ; ON INIT fOrdena(cAlias,lChk,oLbx,cProcura,oGet,nKey) RETURN Nil *-------------------------------------------- Function fAchouFant(cAlias,cClie,cFant,oFant) *-------------------------------------------- If cAlias="E200" cClie:=E200->E200Clie cFant:=If(Empty(E200->E200Nome),E200->E200Fant,E200->E200Nome) ElseIf cAlias="E300" cClie:=E300->E300Forn cFant:=If(Empty(E300->E300Nome),E300->E300Fant,E300->E300Nome) Else cFant:=Left(E250->E250Nome,20) End oFant:Refresh() (cAlias)->(DbSetorder(1)) Return .t. *---------------------------------------------------- Function fOrdena(cAlias,lChk,oLbx,cProcura,oGet,nKey) *---------------------------------------------------- Local nPosi:=oGet:nPos() Local cNome:=Space(25) If nKey < 48 .or. nKey > 122 .and. nKey#8 Return Nil End If nKey#Nil If nKey > 31 .and. nKey < 127 cNome:=Left(oGet:GetText(),nPosi-1)+Chr(nKey) cNome:=Upper(cNome) ElseIf nKey=8 cNome:=Alltrim(cProcura) End End If lChk (cAlias)->(DbSetorder(2)) Else If cAlias="E250" (cAlias)->(DbSetorder(3)) Else (cAlias)->(DbSetorder(5)) End End (cAlias)->(DbSeek(Alltrim(cNome),.t.)) oLbx:Refresh() Return Nil
  16. Ola Amigo Vc já uso a Barlib.Lib? É muito fácil segue prg: // nCodBar = 1=C39, 2=Code128, 3=Ean13, 4=Upca // (cArqTmp) Tem 3 campos Prod, Desc e Qtde (Codigo, Descri‡Æo e Qtde Etiquetas) // Linkar com a Barlib.lib *--------------------------------------------------------- Function fEtiqBar1(nCodBar) // Impressora padrÆo do Windows *--------------------------------------------------------- LOCAL oPrinter, oFont LOCAL nFoi:=0 LOCAL nWidth ,; // label Width nHeight ,; // label height nMargin ,; // Printing margin .2 " nLblWid ,; // # labels width 2 " nLblHei // # labels height 6 " LOCAL nCounter ,; // # of lbl per page nRow ,; // current row nCol ,; // current col nOldRow // old row position PRINT oPrinter FROM USER PREVIEW ; NAME "Etiquetas com Codigos de Barras" DEFINE FONT oFont ; NAME "ARIAL" ; SIZE 0, -6 OF oPrinter If nCodBar=1 nLblWid := 2 // Colunas de etiquetas Else nLblWid := 3 End nLblHei := 10 // Etiquetas na altura do papel nMargin := Int(oPrinter:nLogPixelX()*0.40) nWidth := Int(oPrinter:nHorzRes()/nLblWid) nHeight := Int(oPrinter:nVertRes()/nLblHei) nCounter := 0 CursorWait() (cArqTmp)->(DbGotop()) While !(cArqTmp)->(Eof()) If (cArqTmp)->Qtde=0 (cArqTmp)->(DbSkip()) Loop End IF nCounter == 0 nRow := Int(nMargin) nCol := Int(nMargin) oPrinter:StartPage() END nOldRow := nRow oPrinter:Say(nRow,nCol+15, Alltrim((cArqTmp)->Desc), oFont) nRow += oFont:nHeight Do Case Case nCodBar=1 ; @ nRow+5,nCol+15 Code3_9 Alltrim((cArqTmp)->Prod) OF oPrinter Case nCodBar=2 ; @ nRow+5,nCol+15 Code128 Alltrim((cArqTmp)->Prod) OF oPrinter Case nCodBar=3 ; @ nRow+5,nCol+15 Ean13 Alltrim((cArqTmp)->Prod) OF oPrinter SIZE 0.9 Case nCodBar=4 ; @ nRow+5,nCol+15 Upca Alltrim((cArqTmp)->Prod)+"0" OF oPrinter SIZE 0.8 End nRow += oFont:nHeight nRow += oFont:nHeight nRow += oFont:nHeight nRow += oFont:nHeight oPrinter:Say(nRow+10,nCol+40 ,Left((cArqTmp)->Prod,7)+" "+Right((cArqTmp)->Prod,8), oFont) nRow := nOldRow + (nHeight*0.98) Select('E100') nFoi++ If (cArqTmp)->Qtde = 1 .or. nFoi > (cArqTmp)->Qtde nFoi:=0 (cArqTmp)->(Dbskip()) End IF nCounter > 0 .AND. nCounter%nLblHei == 0 nRow := nMargin nCol += nWidth END IF nCounter == (nLblHei*nLblWid) .AND. !(cArqTmp)->(eof()) nCounter := 0 oPrinter:EndPage() ELSE nCounter++ END ENDDO CursorArrow() oPrinter:EndPage() oPrinter:Preview() RETURN (NIL)
  17. netsys

    GET em 3D

    Valeu Paulo! Gol p. vc! Realmente, usando BorDlg ou BorDlg_Gray em class os gets perdem o efeito 3D, deixei em branco e ficou OK! Obrigado ao Kapiaba Tb. Forte Abraço! Alberto Zamai Vip Netsystem Informática
  18. netsys

    GET em 3D

    Ola Kapiaba! Obrigado pela paciência! Desculpe a demora mas estava testando todas as dicas que vc forneceu. Infelizmente o prob continua. Fiz todas as verificações no programa e no Workshop e estão exatamente como vc sugeriu. Também testei no Win 98 / Me / 2000 e Xp e acontece o mesmo. Tem mais alguma alteração? Grato Zamai
  19. netsys

    GET em 3D

    Fiz isso também mas continua igual,,,, só um detalhe: Fivewin.lib = 19/10/1995 (1.92) Winapi.lib = 07/03/1997 Ctl3d.dll = 05/05/1999 (idem p. Ctl3dv2.dll) Será por isso? Grato Zamai FW 1.92 + Clipper 5.3a + Blinker 5.10 + Ws 4.5
  20. netsys

    GET em 3D

    #include "Fivewin.ch" STATIC oDlg, hBorland *-------------- Function Main() *-------------- Local oBmp, oProd Local cProd:=Space(15) hBorland := loadlibrary("BWCC.DLL") Set Resources TO "TESTE.DLL" SET 3DLOOK ON Define DIALOG oDlg Resource "T7SUP1A" Redefine Get oProd Var cProd ID 101 of oDlg oProd:Set3dLook() Activate DIALOG oDlg Return Nil // Teste.Dll contém uma única Dialog T7SUP1A com 1 get (101) // Abraços! // Zamai
  21. netsys

    GET em 3D

    #include "Fivewin.ch" STATIC oDlg, hBorland *-------------- Function Main() *-------------- Local oBmp, oProd Local cProd:=Space(15) hBorland := loadlibrary("BWCC.DLL") Set Resources TO "TESTE.DLL" SET 3DLOOK ON Define DIALOG oDlg Resource "T7SUP1A" Redefine Get oProd Var cProd ID 101 of oDlg oProd:Set3dLook() Activate DIALOG oDlg Return Nil // Teste.Dll contém uma única Dialog T7SUP1A com 1 get (101) // Abraços! // Zamai
  22. netsys

    GET em 3D

    #include "Fivewin.ch" STATIC oDlg, hBorland *-------------- Function Main() *-------------- Local oBmp, oProd Local cProd:=Space(15) hBorland := loadlibrary("BWCC.DLL") Set Resources TO "TESTE.DLL" SET 3DLOOK ON Define DIALOG oDlg Resource "T7SUP1A" Redefine Get oProd Var cProd ID 101 of oDlg oProd:Set3dLook() Activate DIALOG oDlg Return Nil // Teste.Dll contém uma única Dialog T7SUP1A com 1 get (101) // Abraços! // Zamai
  23. netsys

    GET em 3D

    Também já tentei e continua igual,,,,tem mais alguma idéia? Gto Zamai
  24. netsys

    GET em 3D

    Ola Kapiaba! muito bom dia! Obrigado pela resposta, porém estou usanto o FW 1.92 com Clipper 5.3b + Blinker 5.10 e ele não compila com _3DLook somente com o SET 3DLOOK ON. Pelo que entendi a fivewin.lnk desta versão chama uma Winapi.lib de 15/12/1996, que por sua vez deve usar a CTL3D.DLL que está em Windows\system. Acho que o Workshop utiliza a CTL3DV2.DLL (as duas e mais a CTL3D32.DLL estão lá). No WS fica OK, mas a app apresenta os gets sem o efeito 3D. Será que é a versão que estou usando? Muito obrigado pela atenção. Zamai
×
×
  • Create New...