Jump to content
Fivewin Brasil

Erciley Junior

Membros
  • Posts

    599
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by Erciley Junior

  1. Huahuahu, exato, faça uma rotina e jogue esses dados em uma tabela, muito mais fácil de fazer qualquer coisa, e para os que reclamam na hora da gravação, insira uma posição com o RECNO na tabela, assim não terá choro ^^. Erciley Junior FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY
  2. SE FOR XBROWSE COM TABELA............. (odeio DBF ^^) PRIVATE tabela = tabela do browse posição 1 da tabela estou usando para informar se registro está ou não selecionado oB1:bKeyDown := { | nKey | IF(nKey == 13, func() ,.T.) } oB1:bClrSel := { || { 0 , IF( tabela[oB1] == 'Sim' , sua_cor_vem_aki , CLR_WHITE ) } } *--------------------------------------------------------------------------------- FUNCTION func() cInfo:=oB1[tabela] IF cInfo == 'Sim' oB1[tabela]:='Nao' ELSE oB1[tabela]:='Sim' ENDIF oB1:Refresh() oB1:SetFocus() RETURN id=code>id=code> isto vai servir pra vc selecionar e remover a seleção de um registro, dá pra você implementar a função func(), e chamar dela uma rotina para selecionar os registros do segundo browse Erciley Junior FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY
  3. kbelo, não dá pra usar :: com o macro & jogue o :: em uma variável, assim: var_kbelo:=Self -------------------- ::xml:cName := "cUF" //cUF é uma propriedade da sua classe? achei estranho isso ::xml:cData := "SC" ::nota:SetCampo(::xml:cName, ::xml:cData) *************** METHOD setCampo(campo, Valor) Class NfeNotalocal LOCAL obj LOCAL x LOCAL y obj:=Self //Isso dá certo x := "obj:" + campo + " := " + valor //cUF receberá SC aqui y := &x //Y acabará recebendo "SC", o mesmo conteúdo que está em ::cUF eu acho que isso dá certo, é só você jogar o :: em uma variável (var_kbelo:=Self) e depois utilizar esta variável como quiser (utilizando macro). Opinião: não sei oq está fazendo, mas ACHO que você está inventando demais, tente simplificar isso cara, sei lá ^^ Erciley Junior FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY
  4. num consegui editar o post testei o que disse, e realmente dá erro isso deu certo: variavel:='obj'+':metodo()' &variavel id=code>id=code>Erciley Junior FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY
  5. testei o que disse, e realmente dá erro isso não deu: obj:=::nota variavel:='obj' ?&a tente isso ^^ Erciley Junior FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY
  6. citação: No caso Erciley, vc usa a pesquisa como foi colocada pelo Gilmar? pq é nesse momento que fica lento. id=quote>id=quote>Bom dia Alessandro, no caso, sistemas em DBF utilizo o FW 2.6, que não tem xBrowse (então uso Listbox mesmo), xBrowse utilizo apenas com SQL (tabela), e nesse caso não tive problemas, aliás dá para se fazer muito mais coisas que no TCBrowse e WBrowse. Qria ver esse TWBrowse, como o xBrowse, talvez precise trabalhar de um modo um pouco diferente para não dar essas zicas que comentaram, sei lá. ^^ Erciley Junior FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY
  7. Comecei a utilizar xBrowse em todos os novos programas que faço, não me arrependo em nada. E quanto ao KAPIABA falar que "SQL nunca será superior ao .CDX", me pergunto se ele está zuando, só pode. ^^ Pergunta: com tantos registros assim, há alguma coluna que está chamando alguma função? Isso deixaria muito lento (em xBrowse nunca fiz isso) Erciley Junior FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY
  8. Leia aqui para ver como faço o FIND (TXmlDocument): http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=19619 Para saber se o cMun é de um ou de outro, teste: cTag:='cMun' obj:=oXml:findfirst( cTag ) ? obj:oParent:cName //É só ver este retorno, se não for, dá um oXml:findnext( cTag ) para achar o próximo 'cMun' Erciley Junior FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY
  9. Boa tarde, seria isso: CREATE TABLE database01.tabela01 ENGINE = INNODB(ou MYISAM) SELECT * FROM database02.tabela02 id=code>id=code>Óbvio que tem que existir o database01, database02 e a tabela tabela02 Erciley Junior FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY
  10. Que confusão, não estou entendendo também, o certo seria você postar o conteúdo dessas duas variáveis, senão fica impossível. Supondo que sejam variáveis caracteres, que contenham uma informação separadas por algum separador (; por exemplo), e você esteja querendo quebrar isso, aí seria algo como: aToken02:=hb_aTokens(cVarios,';') aVet:={aToken01,aToken02} ou aVet:={} FOR WX:=1 TO LEN(aToken01) AADD(aVet,aToken01[WX]) NEXT ..... id=code>id=code>Qual a estrutura dessas variáveis cXml e cVarios? Como quer montar essa nova tabela? (Digo, quer criar uma tabela unidimensional ou....) Erciley Junior FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY
  11. Se não resolveu o problema, lá vai, aqui funcionou perfeitamente. LOCAL nCont:=0 LOCAL aTags:={'nDup','dVenc','vDup'} LOCAL aRet:={} LOCAL nHandle:=Fopen(cFile) IF nHandle<1 RETURN aRet ENDIF oXml:=TXmlDocument():new(nHandle,1) IF oXml == NIL RETURN aRet ENDIF FOR WX:=1 TO LEN(aTags) cTag:=aTags[WX] oNode:=oXml:FindFirst( cTag ) nCont:=1 WHILE oNode != NIL .AND. oNode:cData != NIL IF WX == 1 AADD(aRet,{ oNode:cData , '' , '' }) ELSE aRet[nCont,WX]:=oNode:cData ENDIF oNode := oXml:FindNext(cTag) nCont++ ENDDO NEXT ?TOSTRING(aRet) //sqllib //ou ?VALTOPRG(aRet) //nativa xharbour - sei lá RETURN aRet id=code>id=code>É óbvio que todas as tags devem ter as três sub-tags, se não houver, não há como controlar isso. Erciley Junior FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY
  12. Entendo, mas na leitura de xml de notas, há tags idênticas também, e sempre há como fazer um tratamento, obter e distinguir cada uma, ou não ^^. No caso do xml de notas, haverá N tags e (código e descrição do produto), como no seu caso das duplicatas, só consigo relacionar uma com a outra, pois a tag "mãe", será diferente, exemplo: 01 teste01 02 teste02 id=code>id=code>a tag "mãe" no caso é a que possui a propriedade "nItem" se tiver como, poste o xml completo. Erciley Junior FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY
  13. Acho que já foi resolvido, mas complementando.... Quando eu falo, esse programa é um lixo, é porque há uma rotina complexa onde o cara fica: WHILE !EOF() SELECT B, REPLACE BLABLABLA SELECT C, REPLACE BLABLABLA SELECT D IF CAMPO_D == 0 SELECT A SKIP 1 LOOP ENDIF ENDDO id=code>id=code>creio que uma forma bem melhor de trabalhar, é tentar evitar select, use ponteiro como o EBL falou WHILE !A->(EOF()) REPLACE B->BLABLABLA REPLACE C->BLABLABLA IF D->CAMPO_D == 0 A->(DBSKIP(1)) LOOP ENDIF ENDDO id=code>id=code>talvez isso responda sua pergunta pra alternar entre os arquivos, mas é mais uma dica e facilita a leitura dos programas, eu acho Erciley Junior FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY
  14. Resgatando tópico ^^ Trabalhei bastante com XML, se postar o xml todo ajuda. Em XML de nota de entrada, há bastante Tags repetidas, exemplo são os itens da nota, sempre verifico o "parent" do tag buscada. Se trabalhar com a classe tXmlDocument, é só verificar: LOCAL oNode:=objXml:oParent LOCAL cRet:='' WHILE .T. IF oNode:cName == 'det' cRet:=oNode:aAttributes['nItem'] EXIT ENDIF oNode:=oNode:oParent ENDDO RETURN VAL(cRet) id=code>id=code>se não entender, posta o xml todo para eu ver se ajudo Erciley Junior FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY
  15. Primeiro post, olha que beleza. 22 anos, abaixando a média. ^^ Erciley Junior FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY Editado por - eco_fw on 28/07/2011 09:27:00
×
×
  • Create New...