Imprimi Página | Fechar janela |
MsNewGetDados refresh Impresso de: Helpfacil - Portal do conhecimento Nome do Forum: ADVPL Descrição do Forum: Dúvidas sobre a programação em ADVPL URL:http://www.helpfacil.com.br/display_topic_threads.asp?ForumID=1&TopicID=43797 Data da Impressão: sábado, 20 de abril de 2024 at 07:10 Topico: MsNewGetDados refresh Postado por: TCHULA Assunto: MsNewGetDados refresh Data Postagem: sexta-feira, 29 de outubro de 2021 at 12:13 Bom dia. Como faço pra dar um refresh nessatela que eu criei com MsNewGetDados e FWBrowse, preciso que ele atualize a quety toda vez que clikar no botão atualizar. Desde já agradesço Segue a query #Include "Totvs.ch" /*/{Protheus.doc} User Function zGrid Visualizacao de Grupos de Produtos com FWBrowse e FWTemporaryTable @type Function @author Atilio @since 14/06/2020 @version version /*/ User Function xTelaFat() Local aArea := GetArea() //Fontes Local cFontUti := "Tahoma" Local oFontAno := TFont():New(cFontUti,,-38) Local oFontSub := TFont():New(cFontUti,,-20) Local oFontSubN := TFont():New(cFontUti,,-20,,.T.) Local oFontBtn := TFont():New(cFontUti,,-14) //Janela e componentes Private oDlgGrp Private oPanGrid Private oGetGrid Private aColunas := {} Private cAliasTab := "TMPSBM" //Tamanho da janela Private aTamanho := MsAdvSize() Private nJanLarg := aTamanho[5] Private nJanAltu := aTamanho[6] //Cria a temporária oTempTable := FWTemporaryTable():New(cAliasTab) //Adiciona no array das colunas as que serão incluidas (Nome do Campo, Tipo do Campo, Tamanho, Decimais) aFields := {} aAdd(aFields, {"XXPEDIDO", "C", TamSX3(‘C5_NUM‘)[01], 0}) aAdd(aFields, {"XXEMISSAO", "D", TamSX3(‘C5_EMISSAO‘)[01], 0}) aAdd(aFields, {"XXNREDUZ", "C", TamSX3(‘A3_NREDUZ‘)[01], 0}) aAdd(aFields, {"XXCLIENTE", "C", TamSX3(‘A1_NOME‘)[01], 0}) aAdd(aFields, {"XXMUNIC", "C", TamSX3(‘A1_MUN‘)[01], 0}) aAdd(aFields, {"XXESTADO", "C", TamSX3(‘A1_EST‘)[01], 0}) aAdd(aFields, {"XXPROGRAM", "D", TamSX3(‘C5_FECENT‘)[01], 0}) aAdd(aFields, {"XXTES", "C", TamSX3(‘C6_TES‘)[01], 0}) //Define as colunas usadas, adiciona indice e cria a temporaria no banco oTempTable:SetFields( aFields ) oTempTable:AddIndex("1", {"XXPEDIDO"} ) oTempTable:Create() //Monta o cabecalho fMontaHead() //Montando os dados, eles devem ser montados antes de ser criado o FWBrowse FWMsgRun(, {|oSay| fMontDados(oSay) }, "Processando", "Buscando Pedidos a Faturar") //Criando a janela DEFINE MSDIALOG oDlgGrp TITLE "Pedidos a Faturar" FROM 000, 000 TO nJanAltu, nJanLarg COLORS 0, 16777215 PIXEL //Labels gerais @ 004, 003 SAY "FAT" SIZE 200, 030 FONT oFontAno OF oDlgGrp COLORS RGB(149,179,215) PIXEL @ 004, 050 SAY "Listagem de" SIZE 200, 030 FONT oFontSub OF oDlgGrp COLORS RGB(031,073,125) PIXEL @ 014, 050 SAY "Pedidos a Faturar" SIZE 200, 030 FONT oFontSubN OF oDlgGrp COLORS RGB(031,073,125) PIXEL //Botões @ 006, (nJanLarg/2-001)-(0052*01) BUTTON oBtnFech PROMPT "Fechar" SIZE 050, 018 OF oDlgGrp ACTION (oDlgGrp:End()) FONT oFontBtn PIXEL @ 006, (nJanLarg/2-001)-(0052*02) BUTTON oBtnLege PROMPT "Atualizar" SIZE 050, 018 OF oDlgGrp ACTION (fGrupo()) PIXEL //Dados @ 024, 003 GROUP oGrpDad TO (nJanAltu/2-003), (nJanLarg/2-003) PROMPT "Listagem de pedido a faturar: " OF oDlgGrp COLOR 0, 16777215 PIXEL oGrpDad:oFont := oFontBtn oPanGrid := tPanel():New(033, 006, "", oDlgGrp, , , , RGB(000,000,000), RGB(254,254,254), (nJanLarg/2 - 13), (nJanAltu/2 - 45)) oGetGrid := FWBrowse():New() oGetGrid:DisableFilter() oGetGrid:DisableConfig() oGetGrid:DisableReport() oGetGrid:DisableSeek() oGetGrid:DisableSaveConfig() oGetGrid:SetFontBrowse(oFontBtn) oGetGrid:SetAlias(cAliasTab) oGetGrid:SetDataTable() oGetGrid:SetInsert(.F.) oGetGrid:SetDelete(.F., { || .F. }) oGetGrid:lHeaderClick := .F. oGetGrid:AddLegend( cAliasTab + " ->XXTES == ‘501‘ .OR. " + cAliasTab + " ->XXTES == ‘502‘ ", "WHITE", "Fatura Normal") oGetGrid:AddLegend( cAliasTab + " ->XXTES == ‘509‘ .OR. " + cAliasTab + " ->XXTES == ‘513‘ ", "BLUE", "Op.Triangular") oGetGrid:AddLegend( cAliasTab + " ->XXTES == ‘586‘ .OR. " + cAliasTab + " ->XXTES == ‘585‘ .OR. " + cAliasTab + " ->XXTES == ‘584‘ .OR. " + cAliasTab + " ->XXTES == ‘580‘ ", "RED", "Cliente Suframa") oGetGrid:SetColumns(aColunas) oGetGrid:SetOwner(oPanGrid) oGetGrid:Activate() ACTIVATE MsDialog oDlgGrp CENTERED //Deleta a temporaria oTempTable:Delete() RestArea(aArea) Return Static Function fMontaHead() Local nAtual Local aHeadAux := {} //Adicionando colunas //[1] - Campo da Temporaria //[2] - Titulo //[3] - Tipo //[4] - Tamanho //[5] - Decimais //[6] - Máscara aAdd(aHeadAux, {"XXPEDIDO", "Nº Pedido", "C", TamSX3(‘C5_NUM‘)[01], 0, ""}) aAdd(aHeadAux, {"XXEMISSAO", "Emissão", "D", TamSX3(‘C5_EMISSAO‘)[01], 0, ""}) aAdd(aHeadAux, {"XXNREDUZ", "Vendedor", "C", TamSX3(‘A3_NREDUZ‘)[01], 0, ""}) aAdd(aHeadAux, {"XXCLIENTE", "Cliente", "C", TamSX3(‘A1_NOME‘)[01], 0, ""}) aAdd(aHeadAux, {"XXMUNIC", "Cidade", "C", TamSX3(‘A1_MUN‘)[01], 0, ""}) aAdd(aHeadAux, {"XXESTADO", "Estado", "C", TamSX3(‘A1_EST‘)[01], 0, ""}) aAdd(aHeadAux, {"XXPROGRAM", "Programação", "D", TamSX3(‘C5_FECENT‘)[01], 0, ""}) aAdd(aHeadAux, {"XXTES", "Tes", "C", TamSX3(‘C6_TES‘)[01], 0, ""}) //Percorrendo e criando as colunas For nAtual := 1 To Len(aHeadAux) oColumn := FWBrwColumn():New() oColumn:SetData(&("{|| " + cAliasTab + "->" + aHeadAux[nAtual][1] +"}")) oColumn:SetTitle(aHeadAux[nAtual][2]) oColumn:SetType(aHeadAux[nAtual][3]) oColumn:SetSize(aHeadAux[nAtual][4]) oColumn:SetDecimal(aHeadAux[nAtual][5]) oColumn:SetPicture(aHeadAux[nAtual][6]) aAdd(aColunas, oColumn) Next Return Static Function fMontDados(oSay) Local aArea := GetArea() Local cQry := "" Local nAtual := 0 Local nTotal := 0 //Zera a grid aColsGrid := {} //Montando a query oSay:SetText("Montando a consulta") cQry := " SELECT DISTINCT " + CRLF cQry += " SC5.C5_NUM " + CRLF cQry += " ,SC5.C5_EMISSAO " + CRLF cQry += " ,SA3.A3_NREDUZ" + CRLF cQry += " ,SA1.A1_NOME " + CRLF cQry += " ,SA1.A1_MUN " + CRLF cQry += " ,SA1.A1_EST" + CRLF cQry += " ,SC5.C5_FECENT " + CRLF cQry += " ,SC6.C6_TES " + CRLF cQry += " FROM " +RetSqlName("SC5")+ " SC5(NOLOCK)," + CRLF cQry += " " +RetSqlName("SA1")+ " SA1(NOLOCK)," + CRLF cQry += " " +RetSqlName("SC9")+ " SC9(NOLOCK)," + CRLF cQry += " " +RetSqlName("SC6")+ " SC6(NOLOCK)," + CRLF cQry += " " +RetSqlName("SA3")+ " SA3(NOLOCK) " + CRLF cQry += " WHERE SC9.C9_XLIBOK = ‘XX‘ " + CRLF cQry += " AND SC5.C5_NOTA = ‘‘ " + CRLF cQry += " AND SA1.A1_COD = SC5.C5_CLIENTE " + CRLF cQry += " AND SC9.C9_PEDIDO = SC5.C5_NUM " + CRLF cQry += " AND SC6.C6_NUM = SC5.C5_NUM " + CRLF cQry += " AND SA3.A3_COD = SC5.C5_VEND1 " + CRLF cQry += " AND SC5.D_E_L_E_T_ = ‘‘ " + CRLF cQry += " AND SC6.D_E_L_E_T_ = ‘‘ " + CRLF cQry += " GROUP BY SC5.C5_NUM " + CRLF cQry += " ,SA1.A1_NOME " + CRLF cQry += " ,SA1.A1_EST " + CRLF cQry += " ,SA1.A1_MUN " + CRLF cQry += " ,SC5.C5_EMISSAO " + CRLF cQry += " ,SA1.A1_SUFRAMA " + CRLF cQry += " ,SC5.C5_FECENT " + CRLF cQry += " ,SA1.A1_NREDUZ " + CRLF cQry += " ,SA3.A3_NREDUZ " + CRLF cQry += " ,SC5.C5_XCLITRG " + CRLF cQry += " ,SC5.C5_TIPOCLI " + CRLF cQry += " ,SC6.C6_TES" + CRLF cQry += " ORDER BY SC5.C5_NUM " + CRLF //Executando a query oSay:SetText("Executando a consulta") PLSQuery(cQry, "QRY") //Se houve dados If ! QRY->(EoF()) //Pegando o total de registros DbSelectArea("QRY") Count To nTotal QRY->(DbGoTop()) //Enquanto houver dados While ! QRY->(EoF()) //Muda a mensagem na regua nAtual++ oSay:SetText("Adicionando registro " + cValToChar(nAtual) + " de " + cValToChar(nTotal) + "...") RecLock(cAliasTab, .T.) (cAliasTab)->XXPEDIDO := QRY->C5_NUM (cAliasTab)->XXEMISSAO := QRY->C5_EMISSAO (cAliasTab)->XXNREDUZ := QRY->A3_NREDUZ (cAliasTab)->XXCLIENTE := QRY->A1_NOME (cAliasTab)->XXMUNIC := QRY->A1_MUN (cAliasTab)->XXESTADO := QRY->A1_EST (cAliasTab)->XXPROGRAM := QRY->C5_FECENT (cAliasTab)->XXTES := QRY->C6_TES (cAliasTab)->(MsUnlock()) QRY->(DbSkip()) EndDo Else MsgStop("Nao foi encontrado registros!", "Atencao") RecLock(cAliasTab, .T.) (cAliasTab)->XXPEDIDO := " " (cAliasTab)->XXEMISSAO := " " (cAliasTab)->XXNREDUZ := " " (cAliasTab)->XXCLIENTE := " " (cAliasTab)->XXMUNIC := " " (cAliasTab)->XXESTADO := " " (cAliasTab)->XXPROGRAM := " " (cAliasTab)->XXTES := " " (cAliasTab)->(MsUnlock()) EndIf QRY->(DbCloseArea()) (cAliasTab)->(DbGoTop()) RestArea(aArea) Return Static Function fGrupo() (cAliasTab)->(DbGoTop()) oGetGrid:GoBottom(.T.) oGetGrid:Refresh(.T.) oGetGrid:GoTop(.T.) oGetGrid:Refresh(.T.) MsgInfo("Estou no grupo: " + (cAliasTab)->XXPEDIDO, "Atencao") Return Respostas: Postado Por: @BETO Data Postagem: terça-feira, 9 de novembro de 2021 at 13:22 Boa tarde. O que vc tem que fazer e fechar a tabela e executar a query e reabrir novamente. Eu fiz algo parecido, mas eu usei um timer. Postado Por: TCHULA Data Postagem: sexta-feira, 12 de novembro de 2021 at 16:07 Obrigado pela resposta Beto. Teria como vc postar seu exemplo por favor. Obrigado. Postado Por: @BETO Data Postagem: quinta-feira, 18 de novembro de 2021 at 11:52 #INCLUDE "rwmake.ch" #include ‘protheus.ch‘ #include ‘topconn.ch‘ /*/ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±± ±±ºPrograma ³NOVO25 º Autor ³ AP6 IDE º Data ³ 02/12/14 º±± ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±± ±±ºDescricao ³ Codigo gerado pelo AP6 IDE. º±± ±±º ³ º±± ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±± ±±ºUso ³ AP6 IDE º±± ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß /*/ User Function CadSZ3 //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Declaracao de Variaveis ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Private cCadastro := "Separação de pedido." private oTimer private nTimeOut := GETMV(‘MV_#TEMPO‘) Private cAlias := "SZ3" // Variaveis Private da Funcao Private _oDlg // Dialog Principal // Privates das NewGetDados Private oGetD private aHead := {} // Array a ser tratado internamente na MsNewGetDados como aHeader private aCol := {} // Array a ser tratado internamente na MsNewGetDados como aCols DEFINE MSDIALOG _oDlg TITLE cCadastro FROM 178,181 TO 665,967 PIXEL // Cria Componentes Padroes do Sistema @ 008,330 Button "Separar" Size 057,015 PIXEL OF _oDlg ACTION(SEPARA_PED(oGetD:aCols,oGetD:nAt)) @ 036,330 Button "Imprimir" Size 057,015 PIXEL OF _oDlg Action(Imprimir(oGetD:aCols,oGetD:nAt)) @ 064,330 Button "Corrigir" Size 057,015 PIXEL OF _oDlg Action(Ajusta_ped(oGetD:aCols,oGetD:nAt,aHead)) @ 092,330 Button "Estorna" Size 057,015 PIXEL OF _oDlg Action(Estorn_ped(oGetD:aCols,oGetD:nAt,aHead)) @ 150,330 Button "Sair" Size 057,015 PIXEL OF _oDlg Action(_oDlg:end(),oTimer:deactivate()) // Chamadas das GetDados do Sistema fGetDados1(@oGetD) oTimer:= TTimer():New(nTimeOut,{|| Filtro_SZ3() },_oDlg) // Ativa timer oTimer:Activate() oGetD:oBrowse:blDblClick := {|| Libera_Ped(oGetD:aCols,oGetD:nAt,aHead)} oGetD:oBrowse:lUseDefaultColors := (.F.) oGetD:oBrowse:SetBlkBackColor({|| GETDCLR(oGetD:aCols,oGetD:nAt,aHead)}) processa({||Filtro_SZ3()},‘Verificando pedidos liberados.‘) ACTIVATE MSDIALOG _oDlg CENTERED /* ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±± ±±ºPrograma ³NOVO25 ºAutor ³Microsiga º Data ³ 12/02/14 º±± ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±± ±±ºDesc. ³ º±± ±±º ³ º±± ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±± ±±ºUso ³ AP º±± ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß */ static function Filtro_SZ3 local cFiltro := ‘‘ local cQuery := ‘‘ local cAliasSC5 := ‘TMPSC5‘ local aStru := sc5->(dbstruct()) local nUsado := 0 local cIndexSC5 := ‘‘ local cKeySC5 := ‘‘ local aAux := {} Local aCpoGDa := {"Z3_PEDIDO","Z3_MSG","Z3_NOTA","Z3_SERIE","Z3_CLIENTE","Z3_LOJA","Z3_NOME","Z3_DTLIB","Z3_HRLIB"} if select(cAliasSC5) # 0 dbselectarea(cAliasSC5) dbclosearea() endif cQuery := "select * from " + retsqlname(‘SC5‘) + " where " cQuery += "C5_FILIAL = ‘"+xfilial(‘SC5‘)+"‘ and " cQuery += "D_E_L_E_T_ <> ‘*‘ and " cQuery += "C5_SEPERAC = ‘S‘" cQuery += " and C5_TIPO = ‘N‘" //TCQuery Abre uma workarea com o resultado da query TCQUERY cQuery NEW ALIAS &cAliasSC5 For nX := 1 To Len(aStru) TcSetField(cAliasSC5,aStru[nX,1],aStru[nX,2],aStru[nX,3],aStru[nX,4]) Next nX cKeySC5 := ‘C5_NUM‘ cIndexSC5 := criatrab(nil,.f.) IndRegua(cAliasSC5, cIndexSC5, cKeySC5, , ‘‘, "Selecionando Pedidos...") dbselectarea(cAliasSc5) dbgotop() while !eof() incproc() dbselectarea(‘SZ3‘) dbsetorder(1) if dbseek(xfilial(‘SZ3‘)+(cAliasSC5)->c5_num) if sz3->z3_lib # ‘S‘ sc5->(dbseek(xfilial(‘SC5‘)+(cAliasSC5)->c5_num)) reclock(‘SZ3‘,.f.) sz3->z3_filial := xfilial(‘SZ3‘) sz3->z3_pedido := (cAliasSC5)->c5_num sz3->z3_cliente := (cAliasSC5)->c5_cliente sz3->z3_loja := (cAliasSC5)->c5_lojacli SZ3->Z3_NOTA := (cAliasSC5)->c5_nota sz3->z3_serie := (cAliasSC5)->c5_serie sz3->z3_msg := if (empty(SC5->c5_msgexp),‘‘,‘S‘) if !(cAliasSC5)->c5_tipo $ ‘BF‘ sz3->z3_nome := posicione(‘SA1‘,1,xfilial(‘SA1‘)+(cAliasSC5)->(c5_cliente+c5_lojacli),‘A1_NOME‘) else sz3->z3_nome := posicione(‘SA2‘,1,xfilial(‘SA2‘)+(cAliasSC5)->(c5_cliente+c5_lojacli),‘A2_NOME‘) endif msunlock() endif else sc5->(dbseek(xfilial(‘SC5‘)+(cAliasSC5)->c5_num)) reclock(‘SZ3‘,.t.) sz3->z3_filial := xfilial(‘SZ3‘) sz3->z3_pedido := (cAliasSC5)->c5_num sz3->z3_dtlib := date() sz3->z3_cliente := (cAliasSC5)->c5_cliente sz3->z3_loja := (cAliasSC5)->c5_lojacli sz3->z3_lib := ‘‘ sz3->z3_imp := ‘‘ sz3->z3_erro := ‘‘ SZ3->Z3_NOTA := (cAliasSC5)->c5_nota sz3->z3_serie := (cAliasSC5)->c5_serie sz3->z3_msg := if (empty(SC5->c5_msgexp),‘‘,‘S‘) if !(cAliasSC5)->c5_tipo $ ‘BF‘ sz3->z3_nome := posicione(‘SA1‘,1,xfilial(‘SA1‘)+(cAliasSC5)->(c5_cliente+c5_lojacli),‘A1_NOME‘) else sz3->z3_nome := posicione(‘SA2‘,1,xfilial(‘SA2‘)+(cAliasSC5)->(c5_cliente+c5_lojacli),‘A2_NOME‘) endif msunlock() endif dbselectarea(cAliasSC5) dbskip() enddo dbselectarea(cAliasSC5) dbclosearea() if file(cIndexSC5+‘.idx‘) ferase(cIndexSC5+‘.idx‘) endif aCol := {} nUsado := len(aHead) dbselectArea(‘SZ3‘) dbgotop() while !eof() sc9->(dbsetorder(1)) // filial + pedido if !sc9->(dbseek(xfilial(‘SC9‘)+ sz3->z3_pedido)) reclock(‘SZ3‘,.f.) dbdelete() msunlock() dbselectarea(‘SC5‘) dbsetorder(1) if dbseek(xfilial(‘SC5‘)+sz3->z3_pedido) if SC5->(RLOCK(RECNO())) reclock(‘SC5‘,.f.) sc5->C5_SEPERAC := ‘‘ msunlock() endif endif endif dbselectArea(‘SZ3‘) dbskip() enddo dbselectArea(‘SZ3‘) dbgotop() while !eof() AADD(aCol,Array(nUsado+1)) For nX:=1 to nUsado aCol[Len(aCol),nX]:=FieldGet(FieldPos(aHead[nX,2])) Next aCol[Len(aCol),nUsado+1]:=(.F.) dbSkip() enddo if len(aCol) == 0 // Carrega aHead DbSelectArea("SX3") SX3->(DbSetOrder(2)) // tabela // Carregue aqui a Montagem da sua aCol aAux := {} For nX := 1 to Len(aCpoGDa) If DbSeek(aCpoGDa[nX]) Aadd(aAux,CriaVar(SX3->X3_CAMPO)) Endif Next nX Aadd(aAux,.F.) Aadd(aCol,aAux) dbselectarea(‘SZ3‘) endif oGetD:aCols := aCol oGetD:REFRESH() return |
Imprimir Página | Fechar Janela |