Jump to content
Fivewin Brasil

sistem

Membros
  • Posts

    561
  • Joined

  • Last visited

  • Days Won

    25

Everything posted by sistem

  1. e assim Sr_dropindex(indexname) faça isto em um DB de teste,
  2. fez em producao?, explico se outros usuarios estiverem usando o indice e este indice for deletado deve acontecer algo de errado, nao?. (eh soh uma ideia)
  3. veja dbDrop( <cTable>, <cIndex> ) https://groups.google.com/forum/#!topic/comp.lang.xharbour/e-oP-BPjpGY
  4. o sqlrdd pelo menos na minha versao cria o indice assim: NomeTabela_NomeIndiceCriadoComSetIndex para excluir ficaria assim ex: DROP INDEX rece_rece1 ON rece;
  5. Ola, caso vc tenha um host, crie um arquivo e no conteudo deste coloque algo que identifique o seu cliente(algo unico para cada cliente)....dai vc escreve essa identificacao unica em um arquivo. ex: teste.html ou teste.txt e joga no seu host dai vc poe o codigo abaixo em algum lugar no inicio de seu prog.principal... veja o codigo: TRY oOle := CreateObject( "Microsoft.XMLHTTP" ) oOle:Open( "GET", "http://www.SeuSite.net/licenca/b"+strtran(dtos(Date()), "/","")+".html", .f. ) // bloquear as chaves que encontrase no arquivo ex: b20170807.html oOle:Send() cBuf := oOle:ResponseBody // cBuf pega o conteudo do arquivo que esta no host(internet) (aquele arq. que vc vai pôr as chave(s) para bloqueio) CATCH Return nil END nFound := at(Cha_Empr, cBuf) // aqui verifica se a chave esta no conteudo cBuf (cBuf = conteudo do arquivo que esta na intenet HOST) If nFound > 0 // aqui verifica se variavel nFound eh maior que zero, caso seja mostra a msg de acesso negado e abandona o programa. MsgAlert("ACESSO NEGADO, por favor consultar suporte.", "Atenção!") quit Endif oOle := nil // mata o objeto pq usar uma data sendo o nome do arquivo? Resp: veja o inicio do topic []s
  6. próxima conferencia en Sudamérica http://forums.fivetechsupport.com/viewtopic.php?f=6&t=34307
  7. fivewin 1703 xharbour, mostra da seguinte maneira com o codigo abaixo: oNom_Clie:cToolTip:={"Digite o Código ou Passe o Código de Barras"+CRLF+CRLF+"Para Importar Orçamentos Digite "+CRLF+" O=xxxx (Numero Orçamento)"+CRLF+CRLF+"Para Digitar Produtos Avulsos"+CRLF+"-1 e Tecle Enter"+IF(lPfj_Clie,""+CRLF+CRLF+"Para Buscar Ordem de Serviço"+CRLF+"S=xxxxx (Numero da Ordem de Serviço)","") ,"Ajuda","", } alterei o nome do objeto e variavel do IF p/teste ou assim
  8. exemplo com array Function MostraTitulos() Local aRece:={}, aDados, n1:=1 cSelect := 'SELECT Cod_Rece, Emi_Rece, Ven_Rece, Dpg_Rece, Val_Rece, Vpg_Rece, Tpg_Rece, Sta_Rece, Ped_Rece, Nfi_Rece FROM rece WHERE Tpg_Rece > 0 and Sta_Rece="A" ORDER BY Ven_Rece' //and Ven_Rece <= "'+dtos(date())+'" DbUseArea(.t.,"SQLRDD",cSelect,"aReceber") dbSelectArea( "aReceber" ) aReceber->(DbGotop()) Do While !aReceber->(Eof()) aDados := {} aadd( aDados, aReceber->Cod_Rece ) aadd( aDados, aReceber->Emi_Rece ) aadd( aDados, aReceber->Ven_Rece ) aadd( aDados, aReceber->Dpg_Rece ) aadd( aDados, aReceber->Val_Rece ) aadd( aDados, aReceber->Vpg_Rece ) aadd( aDados, aReceber->Tpg_Rece ) aadd( aDados, aReceber->Sta_Rece ) aadd( aDados, aReceber->Ped_Rece ) aadd( aDados, aReceber->Nfi_Rece ) aadd( aRece, aDados ) aReceber->(DbSkip()) Enddo Endif @ 0,0 xBrowse oLbxRece FIELDS aRece[n1,1],; Tran(aRece[n1,2], "99/99/9999"),; Tran(aRece[n1,3], "99/99/9999"),; Tran(aRece[n1,4], "99/99/9999"),; Tran(aRece[n1,5], "@E 999,999.99"),; Tran(aRece[n1,6], "@E 999,999.99"),; Tran(aRece[n1,7], "@E 999,999.99"),; nil,; Tran(If(aRece[n1,8]#"E" .and. aRece[n1,8] # "C", If(!Empty(aRece[n1,4]), aRece[n1,4]-aRece[n1,3], Date()-aRece[n1,3]), 0),"99999"),; aRece[n1,9],; aRece[n1,10]; HEADERS "Título",; "Emissão",; "Vencimento",; "Data Pagm.",; "Valor Título",; "Valor Pago",; "Saldo",; "S",; "DiasAtr.",; "Nº Pedido",; "Nº N.Fiscal"; JUSTIFY .f., AL_CENTER, AL_CENTER, AL_CENTER, .t., .t., .t., .f., .t., .f., .f. ; SIZE 480, 160; FONT oFont OF oDlgRece oLbxRece:bGoTop = { || n1 := 1 } oLbxRece:bGoBottom = { || n1 := Len( aRece ) } oLbxRece:bBookMark = { | nBkm | If( nBkm == nil, n1, n1 := nBkm ) } oLbxRece:bSkip = { | nSkip | Skipper( aRece, @n1, nSkip ) } oLbxRece:SetArray( aRece ) oLbxRece:nMarqueeStyle := MARQSTYLE_HIGHLROW oLbxRece:nColDividerStyle := LINESTYLE_BLACK oLbxRece:nRowDividerStyle := LINESTYLE_BLACK oLbxRece:lColDividerComplete := .t. oLbxRece:lFooter := .f. oLbxRece:nFreeze := 0 oLbxRece:bClrStd := {|| { CLR_WHITE, If(n1%2==0, CLR_BRW1, CLR_BRW2) } } oLbxRece:bClrSelFocus := {|| { CLR_BLACK, CLR_FOCO } } oCol := oLbxRece:aCols[ 1 ] oCol:AddResource("BMP_SETA") oCol:bStrData := { || Tran(aRece[n1,2], "99/99/9999") } oCol:bBmpData := { || If(aRece[n1,3]=Date(), 1, nil) } oCol := oLbxRece:aCols[ 8 ] oCol:AddResource("BMP_AMAR") oCol:AddResource("BMP_VERM") oCol:AddResource("BMP_VERD") oCol:AddResource("BMP_PRET") oCol:AddResource(nil) oCol:bStrData := { || "" } oCol:bBmpData := { || If(aRece[n1,7]=0, 2, If(aRece[n1,8]="C", 4, If(aRece[n1,7]>0 .and. aRece[n1,6]>0, 1, 3)) ) } oLbxRece:CreateFromCode() oCol := oLbxRece:aCols[ 9 ] oCol:bClrStd:= {|| { CLR_WHITE, If(If(aRece[n1,8]#"E" .and. aRece[n1,8] # "C", If(!Empty(aRece[n1,4]), aRece[n1,4]-aRece[n1,3], Date()-aRece[n1,3]), 0)>0,; CLR_RED, CLR_BRW2) }} oCol := oLbxRece:aCols[ 9 ] oCol:bClrStd:= {|| { CLR_WHITE, If(If(aRece[n1,8]#"E" .and. aRece[n1,8] # "C", If(!Empty(aRece[n1,4]), aRece[n1,4]-aRece[n1,3], Date()-aRece[n1,3]), 0)>0,; CLR_RED, CLR_BRW2) }}
  9. com o TIMER é soh dar um refresh no objeto xbrowse? ex: @ 0,0 XBROWSE oLbx FIELDS .... DEFINE TIMER oTimer INTERVAL 9000 ACTION oLbx:Refresh() OF oWnd ACTIVATE WINDOW oWnd MAXIMIZED ON INIT (oLbx:SetFocus(), oTimer:activate()) VALID(oLbx:End(), oTimer:Deactivate(), .t.)
  10. escaneando +d1 documento em 1 PDF http://www.forums.fivetechsupport.com/viewtopic.php?f=6&t=16808&start=15 nao testei os link pois faz tempo que baixei.... caso esteja com link quebrado avisa que anexo aqui no forum
  11. nunca fiz se funcionar avisa aqui
  12. ideia... poderia pôr um botao no get do cnpj e usar o CLIPBOARD.. por exemplo: DEFINE CLIPBOARD oClp OF oDlg DEFINE DIALOG oDlg FROM 10, 20 TO 30, 40 "test" @ 1, 1 GET cCnpj PICT "99.999.999/9999-99" OF oDlg SIZE 10, 10 BITMAP "" ACTION oClp:SetText(ClearChar(cCnpj,{".","/","-"})) ... .. . Function ClearChar(cString,aChar) Aeval(aChar, {|cChar| cString:=StrTran(cString,cChar,"")}) Return(cString) esqueça o que disse acima entendi tudo errado
  13. ola o qquer dizer com "sendo que eu não preciso restaurar elas." elas quem? as triggers? caso seja o que entendi eh soh remover o --triggers obs: eu uso servidor debian jessie com mariadb (q eh o padrao de BD dessa distro)... o seu eh mysql mesmo ou mariadb? veja o link https://www.vivaolinux.com.br/dica/MySQL-Como-fazer-backup-de-Triggers-e-Stored-Procedures
  14. veja: xmlDoc := TXmlDocument():New( cFile ) If xmlDoc:nStatus != HBXML_STATUS_OK Msginfo("Erro ao ler XML", "Aviso!") Return nil Endif xmlIter := TXmlIterator():New( xmlDoc:oRoot ) xmlNode := xmlIter:Find() Do While xmlNode != nil If !Empty(xmlNode:cData) ... .. . if Lower(xmlNode:cName) == "qcom" nQuantidade := Val(xmlNode:cData) Elseif Lower(xmlNode:cName) == "xprod" cNomeProduto := Upper(xmlNode:cData) Elseif Lower(xmlNode:cName) == "vbc" nBaseValor := Val(xmlNode:cData) Elseif Lower(xmlNode:cName) == "picms" nPerIcms := Val(xmlNode:cData) nBaseValorIcms := nBaseValor Elseif Lower(xmlNode:cName) == "vicms" Nfei->Vic_Nfei := Val(xmlNode:cData) Elseif Lower(xmlNode:cName) == "picmsst" nPerIcmsST := Val(xmlNode:cData) nBaseValorIcmsST := nBaseValor ... .. . Endif Endif xmlNode := xmlIter:Next() Enddo no exemplo nBaseValor recebe o primeiro valor da TAG vbc...(que nao saberemos que base eh esta) caso encontrar a tag picms ... dai eh pôr o valor da variavel nBaseValorIcms := nBaseValor.. pois com certeza o ultimo valor da TAG vbc sera do ICMS. veja o exemplo que explica melhor.
  15. ola no link: http://www.tecnospeed.com.br/forum/componente-nfe/erro-falta-primeira-linha-no-xml-urgente/msg2115/ veja o que diz o Rodrigo Alencar,. eh bem provável que encontre sua resposta.
  16. kapí spool de impressao eh aquela a fila de espera. quando você envia algo para imprimir fica no spool.. no caso a funcao do rochinha eh para limpa o spool
  17. legal eh +ou- isto no prompt de comando arquivo,bat: net stop spooler del /q/f/s %systemroot%\system32\spool\PRINTERS\*.* net start spooler dai eh dar permissão de admin ao arquivo bat:
  18. com o telegram eh possivel... mais ninguem usa.. o povo soh gosta do whatsapp skype tem API tb, mais nao vi ainda
  19. Ola se nao é o que o Everton disse. vc poderia tentar assim: @ 1.3,0 XBROWSE oLbxClie FIELDS Clie->Cod_Clie,; Clie->Nom_Clie+CRLF+Clie->Fan_Clie,; Clie->Tel_Clie+CRLF+Clie->Cel_Clie,; nil,; Alltrim(Clie->End_Clie)+" "+Alltrim(Clie->Nmr_Clie)+" "+Alltrim(Clie->Cmp_Clie)+CRLF+Clie->Bai_clie,; Clie->Cid_Clie+CRLF+Clie->Est_Clie+" - "+Clie->Cep_Clie,; Clie->Cgc_Clie+CRLF+Clie->Ins_Clie,; Clie->Cpf_Clie+CRLF+Clie->Ide_Clie,; Clie->Con_Clie+CRLF+Clie->Ven_Clie+"-"+Vend->Ape_Vend,; Rota->Cod_Rota+"-"+Left(Rota->Nom_Rota,15)+CRLF+Tipo->Cod_Tipo+"-"+Left(Tipo->Nom_Tipo,15),; Clie->Usu_Clie+CRLF+Clie->Tim_Clie; HEADERS "Cód.",; "Razão Social/Nome Cliente"+CRLF+"Nome Fantasia",; "Telefone"+CRLF+"Celular",; "Data de Cadastro"+CRLF+"Situação",; "Endereço" +CRLF+ "Bairro",; "Município"+CRLF+"UF/CEP",; "CNPJ"+CRLF+"Ins.Estadual",; "CPF"+CRLF+"RG",; "Contato"+CRLF+"Representante",; "Rota"+CRLF+"Tipo Estabelecimento",; "Usuário", "Data/Hora"; JUSTIFY .f., .f., .f., .f., .f., .f., .f., .f., .f., .f., .f. ; FONT oFont ALIAS "CLIE" OF oWndClie AUTOSORT LINES CELL oLbxClie:nMarqueeStyle := MARQSTYLE_HIGHLROW oLbxClie:nColDividerStyle := LINESTYLE_BLACK oLbxClie:nRowDividerStyle := LINESTYLE_BLACK oLbxClie:lColDividerComplete := .t. oLbxClie:lFooter := .t. oLbxClie:nFreeze := 3 oLbxClie:nHeaderLines := 2 oLbxClie:nDataLines := 2 oLbxClie:bLDblClick := {|| EditClie(oLbxClie, .f.)} oLbxClie:bClrSelFocus := {|| { CLR_BLACK, CLR_FOCO }} oLbxClie:bClrStd := {|| { CLR_WHITE, If((Clie->(ORDKEYNO()))%2==0, CLR_BRW1, CLR_BRW2) } } oLbxClie:bKeyDown := {|nKey| BrwKeyClie(nkey, oLbxClie, oWndClie, oPesqComboClie)} oLbxClie:bRClicked := { | nRow, nCol | BrwPopClie(nRow, nCol, oWndClie, oLbxClie ) } oLbxClie:lIncrFilter := .t. oLbxClie:lSeekWild := .t. oLbxClie:SetGroupHeader( "CADASTRO DE CLIENTES", 1, 3, oFont4 ) oCol := oLbxClie:aCols[ 1 ] oCol:cSortOrder := 'CLIE1' ocol:cToolTip:="Clique para ordenar por código" oCol:bClrStd := {|| { CLR_WHITE, If(Clie->Ati_Clie, CLR_GRAY, CLR_BRW2 ) } } oCol:AddResource("BMP_SETA") oCol:bStrData := { || Clie->Cod_Clie } oCol:bBmpData := { || If(!Clie->Mar_Clie, nil, 1) } oCol := oLbxClie:aCols[ 2 ] oCol:cSortOrder := 'CLIE2' ocol:cToolTip:="Clique para ordenar por nome" oCol:bClrStd := {|| { CLR_WHITE, If(Clie->Ati_Clie, CLR_GRAY, CLR_BRW2 ) } } // oCol:oDataFont := If(Clie->Ati_Clie, oFont1, oFont) oCol := oLbxClie:aCols[ 3 ] oCol:bClrStd := {|| { CLR_WHITE, If(Clie->Ati_Clie, CLR_GRAY, CLR_BRW2 ) } } oCol := oLbxClie:aCols[ 4 ] oCol:AddResource("BMP_CHE1") oCol:AddResource("BMP_CHE2") oCol:bStrData := { || Dtoc(Clie->Dat_Clie)+CRLF+If(Clie->Ati_Clie, "BLOQUEADO", "") } oCol:bBmpData := { || If(Clie->Ati_Clie, 2, 1) } oCol:bClrStd := {|| { CLR_WHITE, If(Clie->Ati_Clie, CLR_GRAY, CLR_BRW1 ) } } uso dessa maneira acima obs: seu codigo deveria trabalhar bem, nao vi nenhum problema
  20. sistem

    Ler e-mails

    Ola na class TIpClientPop nao vi nada TLS, no link: https://github.com/vszakats/harbour-core/blob/master/contrib/hbtip/popcli.prg veja isto: https://github.com/vszakats/harbour-core/blob/master/contrib/hbtip/mailsend.prg espero que ajude
  21. No meu ver o cartão é intransferível.. No seu caso acho melhor gerar outro cartão com código de barras que ficará com o gerente também... Caso precise sair o gerente deixará o cartão número 2 com o funcionário... Na volta o gerente emiti um relatório de vendas canceladas do cartão número 2 e resgata o cartão número 2 com os devidos comprovantes de venda cancelada assinado pelo o portador do cartão e caixa. Caso o gerente fique cismado eh conferir o estoque dos produtos cancelados do cartão número 2... Agora se o desfalque está no cartão número 1 aí lascou. Eh sob uma ideia
  22. qual a vantagem em dividir uma tabela? se tratando de sql não vejo a necessidade ex: se dividir a tabela... ficar parte do resgistro na tabela original e parte na nova tabela deve dar aproximadamente o mesmo tamanho somando as 2as tabelas.. Sendo somente 1 tabela o SELECT faz o mesmo efeito mostrando somente os registros que seja necessario,,, diferentemente de DBF que abre todos os registros.
×
×
  • Create New...