Do Clipper ao xHarbour - Dica / Tutorial
O último elo Clipper está para sair, e a era Visual está a pleno vapor. "A idéia inicial deste blog é criar um ponto de reunião e de troca de experiências para aqueles programadores, que como eu e outros tantos pelo Brasil afora, ainda dependem quase que integralmente de programas escritos em clipper (agora já não mais), mas tem intenção de portar seus aplicativos para uma ferramenta de desenvolvimento visual. (xHarbour e MiniGui)"
quarta-feira, 16 de março de 2011
Restaurar serviço de rede no windows
terça-feira, 15 de março de 2011
Dica para remover mensagem de executáveis no windows
"O editor não pode ser verificado. Tem certeza que deseja executar esse software."
Faça o Seguinte:
Clique em iniciar/executar: gpedit.msc
Selecione:
- Configurações do Usuário
- Configurações de Software
- Modelos Administrativos
- Gerenciador de Anexos
- Lista de inclusão de tipos de arquivos de baixo risco
-- Clique em ativado
-- Na caixa digitável, insira o nome do seu executável (com extensão)
( É sensitível, a caixa, observem)
-- Clique em OK
quarta-feira, 24 de novembro de 2010
Dica para refresh da nova versão do TSBrowse
oBr:SetFocus()
oBr:Reset()
oBr:Refresh(.T.)
oBr:ResetBarPos(.T.)
oBr:BuguP()
Substituam por:
oBr:SetFocus()
oBr:Refresh(.T.)
oBr:ResetVScroll(.T.)
Caso contrário não serão mostradas atualizações em pesquisas.
sexta-feira, 19 de novembro de 2010
Novos Métodos do TSBrowse
METHOD AddColumn( oColumn ) Adiciona uma coluna para o Browse, préviamente definido com o método construtor de colunas TSColumn:New(), ou com o comando DEFINE COLUMN oColumn ..
METHOD SetColumn( oColumn, nCol )
METHOD AddSuperHead( nFromCol, nToCol, uHead, nHeight, aColors, l3dLook, uFont, uBitMap, lAdjust, lTransp, lNoLines, nHAlign, nVAlign )
METHOD BeginPaint() INLINE If( ::lRepaint, Super:BeginPaint(), 0 ) Uso interno, Chamado a partir do método Display().
METHOD BugUp() INLINE ::UpStable() Chama o método UpStable().
METHOD BiClr( uClrOdd, uClrPair )
METHOD Bof() INLINE If( ::bBoF != Nil, Eval( ::bBof ), .F. ) //V90
METHOD ChangeFont( hFont, nColumn, nLevel )
METHOD DbSkipper( nToSkip ) Usado internamente; controla o ponteiro do registro do database.
METHOD Default() Uso interno; ações de inicialização do Browser.
METHOD Del( nItem )
METHOD DeleteRow( lAll )
METHOD DelColumn( nPos )
METHOD Destroy() Uso interno; Destrói o controle Browse.
METHOD Display() Uso interno- Exibe o Browse na primeira vez.
METHOD DrawFooters() INLINE ::DrawHeaders( .T. ) Desenha o Footers.
// MESSAGE DrawIcon METHOD _DrawIcon( nIcon, lFocused )
METHOD DrawIcons()
METHOD DrawLine( xRow ) Pinta a linha ativa ou nRow.
METHOD DrawPressed( nCell, lPressed )
METHOD DrawSelect() Pinta o cursor na linha ativa.
METHOD DrawSuper() Desenha os Super-Headers.
METHOD DrawHeaders( lFooters ) Desenha Headers, Footers, e Super-Headers.
METHOD Edit( uVar, nCell, nKey, nKeyFlags, cPicture, bValid, nClrFore, nClrBack )
METHOD EditExit( nCol, nKey, uVar, bValid, lLostFocus )
METHOD EndPaint() INLINE If( ::lRePaint, Super:EndPaint(), ( ::lRePaint := .T., 0 ) ) Uso interno, Chamado a partir do método Display().
METHOD Eof() INLINE If( ::bEoF != Nil, Eval( ::bEof ), .F. ) //V90
METHOD Excel2( cFile, lActivate, hProgress, cTitle, lSave )
METHOD ExcelOle( cXlsFile, lActivate, hProgress, cTitle, hFont, lSave, bExtern, aColSel, bPrintRow )
METHOD Exchange( nCol1, nCol2 ) INLINE ::SwitchCols( nCol1, nCol2), ::SetFocus() Troca a posição das colunas nCol1 e nCol2.
METHOD ExpLocate( cExp )
METHOD ExpSeek( cExp, lSoft )
METHOD FreezeCol( lNext )
METHOD GetAllColsWidth() //V90
METHOD GetColSizes() INLINE If( ValType( ::aColSizes ) == "A", ::aColSizes, Eval( ::aColSizes ) ) Retorna uma matriz contendo as larguras das colunas em pixels.
METHOD GetColumn( nCol ) Retorna uma referencia ao objeto TSColumn correspondente a nCol.
METHOD GetDlgCode( nLastKey )
METHOD GetRealPos( nRelPos )
METHOD GetTxtRow( nRowPix ) INLINE RowFromPix( ::hWnd, nRowPix, ::nHeightCell, If( ::lDrawHeaders, ::nHeightHead, 0 ),If( ::lFooting .and. ::lDrawFooters, ::nHeightFoot, 0 ),If( ::lDrawHeaders, ::nHeightSuper, 0 ),If( ::lDrawSpecHd, ::nHeightSpecHd, 0 ))
METHOD GoBottom() Posiciona o cursor na última linha do Browse, movendo o ponteiro de registros para o último registro do database, ou para o último elemento de outros objetos ( Array, oDbf, Text, Tree, oCtx ). É executado quando as teclas Ctrl+End ou Ctrl+PgDn são pressionadas, ou quando arrastando para o fim da barra de rolagem vertical.
METHOD GoDown() Posiciona o cursor uma linha abaixo movendo o ponteiro para o próximo registro no database, ou para o próximo elemento em outros objetos. É executado quando a tecla Down (seta para baixo) é pressionada.
METHOD GoEnd() Posiciona o cursor na última coluna visível na tela.
METHOD GoHome() Posiciona o cursor na primeira coluna visível na tela.
METHOD GoLeft() Move o cursor uma coluna para a esquerda.
METHOD GoNext() Move o cursor para a próxima coluna editável para a direita, ou para a próxima coluna editável da próxima linha.
METHOD GoPos( nNewRow, nNewCol ) Move o cursor para a linha definida em nNewRow e coluna definida em nNewCol.
METHOD GoRight() Move o cursor uma coluna para a direita.
METHOD GotFocus( hCtlLost ) Uso interno, executa ações ao receber o foco no Browse, entre as quais se destaca a avaliação do blóco de código definido em bGotFocus.
METHOD GoTop() Posiciona o cursor na primeira linha do Browse, movendo o ponteiro de registro para primeiro registro no database, ou para o primeiro elemento de outros objetos ( Array, oDbf, Text, Tree, oCtx ).
METHOD GoUp() Posiciona o cursor uma linha acima, movendo o ponteiro para o registro anterior do database, ou para elemento anterior de outros objetos.
METHOD HandleEvent( nMsg, nWParam, nLParam )
METHOD HiliteCell( nCol, nColPix ) Posiciona o cursor na coluna definida em nCol. Se usado quando da ativação do Browse, será exibido com o cursor nesta coluna.
METHOD HScroll( nWParam, nLParam )
METHOD HThumbDrag( nNewCol )
// METHOD Init( hDlg ) INLINE ::Initiate( hDlg )
// METHOD Initiate( hDlg ) INLINE Super:Initiate( hDlg ), ::Default()
METHOD InsColumn( nPos, oColumn ) Insere uma coluna (object TSColumn oColumn ) na posição definida em nPos.
METHOD Insert( cItem, nAt )
METHOD AddItem( cItem )
METHOD IsColVisible( nCol )
METHOD IsColVis2( nCol )
METHOD IsEditable( nCol ) INLINE ::lCellBrw .and. ::aColumns[ nCol ]:lEdit .and. ( ::aColumns[ nCol ]:bWhen == Nil .or.Eval(::aColumns[ nCol ]:bWhen, Self ) )
METHOD KeyChar( nKey, nFlags ) Uso interno. Executa ações dependendo da tecla pressionada nKey. Avalia o código de bloco bKeyChar.
METHOD KeyDown( nKey, nFlags ) Uso interno. - Similar a KeyChar(). Avalia o código de bloco bKeyDown.
METHOD KeyUp( nKey, nFlags )
METHOD LButtonDown( nRowPix, nColPix, nKeyFlags ) Uso interno.- Executa ações relacionadas com o clique no botão esquerdo do mouse. Avalia o código de bloco bLClick.
METHOD LButtonUp( nRowPix, nColPix, nFlags )
METHOD lCloseArea() INLINE If( ::lIsDbf .and. ! Empty( ::cAlias ), ( ( ::cAlias )->( DbCloseArea() ), ::cAlias := "", .T. ), .F. )
METHOD LDblClick( nRowPix, nColPix, nKeyFlags ) Uso interno.- Executa ações relacionadas com o duplo clique no botão esquerdo do mouse. Avalia o código de bloco bLDblClick.
METHOD lEditCol( uVar, nCol, cPicture, bValid, nClrFore, nClrBack ) Executa a edição de dados das células. Você pode usar esse método de seu programa em funções de edição personalizadas. Este método retornará um valor de .T. (True - Verdadeiro) se a edição finalizar normalmente, e .F. (False - Falso) se o usuário cancelar a edição.
METHOD lIgnoreKey( nKey, nFlags )
METHOD LoadFields( lEditable )
METHOD LoadRecordSet() //V90
METHOD LoadRelated( cAlias, lEditable, aNames, aHeaders )
METHOD Look3D( lOnOff, nColumn, nLevel, lPhantom )
METHOD LostFocus( hCtlFocus ) Uso interno. É ativado quando o Browse perde o foco. Avalia o código de bloco bLostFocus.
METHOD lRSeek( uData, nFld, lSoft ) //V90
METHOD MButtonDown( nRow, nCol, nKeyFlags ) Uso interno.- É ativado quando o botão central do mouse é pressionado (em mouses de 3 botões). Avalia o código de bloco bMButtonDown, recebendo os mesmos parametros.
METHOD MouseMove( nRowPix, nColPix, nKeyFlags )
METHOD MouseWheel( nKeys, nDelta, nXPos, nYPos )
METHOD MoveColumn( nColPos, nNewPos ) Muda a posição da coluna dentro do Browse, se a variável ::lMoveCols for .T.
METHOD nAtCol( nColPixel, lActual )
METHOD nAtIcon( nRow, nCol )
METHOD nColCount() INLINE Len( ::aColumns )
METHOD nField( cName ) //V90
METHOD nLogicPos() Retorna a posição lógica para o índice ativo.
METHOD nRowCount() INLINE CountRows( ::hWnd, ::nHeightCell, If( ::lDrawHeaders, ::nHeightHead, 0 ),If( ::lFooting .and. ::lDrawFooters, ::nHeightFoot, 0 ),If( ::lDrawHeaders, ::nHeightSuper, 0 ),If( ::lDrawSpecHd, ::nHeightSpecHd, 0 )) Uso interno.- Conta as linhas exibíveis do Browse.
METHOD PageUp( nLines ) Move o cursor e o ponteiro de registros uma página acima. É executado quando é pressionada a tecla PgUp.
METHOD PageDown( nLines ) Move o cursor e o ponteiro de registros uma página abaixo. É executado quando é pressionada a tecla PgDn.
METHOD Paint() Uso interno.- Pinta o Browse. Chamado a partir do método Display().
METHOD PanHome() Move o cursor para a primeita coluna da linha corrente.É nativado quando pressionadas as teclas Shift+LeftArrow.
METHOD PanEnd() Move o cursor para a última coluna da linha corrente. É ativado quando pressionadas as teclas Shift+RightArrow.
METHOD PanLeft() Move o cursor para a primeira coluna visível da linha corrente. É ativado quando a tecla Home é pressionada.
METHOD PanRight() Move o cursor para a última coluna visível da linha corrente. É ativado quando a tecla End é pressionada.
METHOD PostEdit( uTemp, nCol, bValid )
METHOD RButtonDown( nRowPix, nColPix, nFlags ) Uso interno.- Executa açoes relacionadas com o clique no botão direito do mouse. Avali o código de bloco bRClicked. Se o clique é feito na area do cabeçalho (Header), o TSBrowse exibirá um menu PopUp com opções de coluna e movimento de cursor.
METHOD Refresh( lPaint, lRecount ) //V90
METHOD RelPos( nLogicPos )
METHOD Report( cTitle, aCols, lPreview, lMultiple, lLandscape, lFromPos )
METHOD Reset( ) //V90 Move o cursor e o ponteiro de registro para o topo do Browse e executa o método Refresh(.T.)
METHOD ResetSeek()Restaura o valor da variável cSeek para nulo (Null), assim uma nova pesquisa incremental pode ser executada.
METHOD ResetVScroll( lInit ) //V90
METHOD ReSize( nSizeType, nWidth, nHeight )
METHOD TSBrwScroll( nDir ) INLINE TSBrwScroll( ::hWnd, nDir, ::hFont,::nHeightCell, If( ::lDrawHeaders, ::nHeightHead, 0 ),If( ValType( ::lDrawFooters ) == "L" .and.::lDrawFooters ,::nHeightFoot, 0 ), ::nHeightSuper, ::nHeightSpecHd )
METHOD Seek( nKey ) Este método faz todo o trabalho da pesquisa incremental.
METHOD Set3DText(lOnOff, lRaised, nColumn, nLevel, nClrLight, nClrShadow )
METHOD SetAlign( nColumn, nLevel, nAlign )
METHOD SetAppendMode( lMode ) Ativa a inserção automática após o ultimo registro (Append).
METHOD SetArray( aArray, lGenCols, aHead ) //V90
METHOD SetBtnGet( nColumn, cResName, bAction, nBmpWidth )
METHOD SetColMsg( cMsg, cEditMsg, nCol )
METHOD SetColor( xColor1, xColor2, nColumn )
METHOD SetColSize( nCol, nWidth )
METHOD SetColumns( aData, aHeaders, aColSizes )
METHOD SetDeleteMode( lOnOff, lConfirm, bDelete, bPostDel )
METHOD SetHeaders( nHeight, aCols, aTitles, aAlign , al3DLook, aFonts, aActions )
METHOD SetData( nColumn, bData, aList )
#ifdef _TSBFILTER7_
METHOD SetFilter( cField, uVal1, uVal2 ) //deleted in V90
#endif
METHOD SetFont( hFont )
METHOD SetIndexCols( nCol1, nCol2, nCol3, nCol4, nCol5 )
METHOD SetItems( aItems ) INLINE ::SetArray( aItems, .T. )
METHOD SetDBF( )
METHOD SetOrder( nColumn, cPrefix, lDescend )
METHOD SetRecordSet( oRSet, lEditable ) //V90
METHOD SetSelectMode( lOnOff, bSelected, uBmpSel, nColSel, nAlign )
METHOD SetSpinner( nColumn, lOnOff, bUp, bDown, bMin, bMax )
METHOD ShowSizes()
METHOD Skip( n )
METHOD SortArray( nCol, lDescend )
METHOD SwitchCols( nCol1, nCol2 )
METHOD SyncChild( aoChildBrw, abAction )
METHOD UpAStable()
METHOD UpRStable( nRecNo ) //V90
METHOD UpStable()
METHOD Proper( cString ) Converte o texto cText em iniciais maiúsculas.
METHOD VertLine( nColPixPos, nColInit, nGapp )
METHOD VScroll( nWParam, nLParam )
METHOD Enabled(lEnab) // JP 1.55
METHOD HideColumns( nColumn , lHide) //JP 1.58
METHOD AutoSpec(nCol)
METHOD RefreshARow(xRow) //JP 1.88
sexta-feira, 22 de maio de 2009
Com o usar o ACBr - Monitor (Parte 2)
E aqui a tela de fechamento da venda
Créditos:
JOSÉ JUCÁ DE OLIVEIRA
AV.Capitão Castro, 3294 Centro Vilhena/Ro
69 3321 4575
skype: jose.juca3044
msn : medial@ps5.com.br
Marcelo Brigatti
Sistemas IES
quinta-feira, 14 de maio de 2009
Diferença do e-CNPJ para o Certificado NF-e
No link https://www.identidadedigital.com.br/pergunte, a reposta para a diferença entre os dois certificados é esta:
"Qual é a diferença do e-CNPJ e o Certificado NF-e?
Os dois certificados digitais podem ser utilizados para emissão de Nota Fiscal Eletrônica, pois ambos são emitidos na Infra-Estrutura de Chaves Públicas Brasileira - ICP-Brasil e contêm o número de CNPJ da empresa em seu conteúdo.
A vantagem do certificado NF-e é que ele foi criado unicamente para validar as NF-e e pode ser utilizado pelos funcionários da empresa e não apenas pelo seu representante legal, proporcionando uma maleabilidade na utilização.
Outra diferença é que a estrutura que ele utiliza é mais robusta para verificação e validação dos campos da NF-e, devido ao volume de vezes em que ele é utilizado."
Com a resposta acima, achava que a vantagem era comprar o e-cnpj por ser mais barato, mas neste link
http://robertodiasduarte.blogspot.com/2008/12/certificados-digitais-para-nf-e.html
existe uma explicação de qual a diferença dos dois tipos de certificado.
Leia o trecho abaixo retirado deste link:
"A menos que você seja, o representante legal e o faturista de sua empresa é melhor ter dois certificados: um e-CNPJ para assinar documentos e acessar o e-CAC da RFB e o e-NFe registrado em nome do faturista responsável pela emissão de NF-e.
Se o faturista utiliza um e-CNPJ, ele terá uma procuração em branco de sua empresa.
Com o e-NFe, suas atribuições ficam limitadas representar a empresa no processo de emissão de documentos fiscais.
Contudo, cada faturista deve ter um e-NFe individual e, caso ele seja desligado da empresa, você deve providenciar a revogação do certificado."
Ou seja, por questões de segurança, o indicado para a NFe é usar o certificado específico para NFe, a não ser que quem emita a NFe seja também o representante legal da empresa.
Do site:
http://anfm.blogspot.com/
André Ferreira de Moraes
quarta-feira, 6 de maio de 2009
Como usar o ACBR - Monitor - Passo a Passo
1 - O que é o ACBr Monitor (http://acbr.sourceforge.net/wiki/index.php/Monitor)
Nada mais que um executável que fica residente na SysTray e se comunica com sua aplicação através de arquivos .TXT ou Sockets (TCP/IP), permitindo assim que seu programa fale facilmente com vários modelos / marcas de Impressoras Fiscais, Impressoras de Cheques, Gavetas de Dinheiro, Displays de Mensagens e Leitores de Cod. Barras Serial.
Os comandos podem ser enviados para o ACBrMonitor por arquivo texto ou sockets, a sintaxe dos comandos é identica em ambos os casos. A resposta dos equipamentos de automação controlados pelo ACBrMonitor (Ex: ECF) será devolvida a Aplicação pelo ACBrMonitor também usando um arquivo texto de saida ou sockets, (conforme a configuração).
2 - Para fazer o Download Abaixo está o link da página:
http://sourceforge.net/project/showfiles.php?group_id=109206&package_id=182935
Abaixo está o passo a passo da instalação: