|
Bem Vindo, Visitante
|
Todos os Fórums
ADVPL
|
Imprimir
Enviar Para um Amigo Precisa estar Logado
|
|
|
Assunto: |
MsNewGetDados refresh |
|
Versão: |
12.1.25 |
|
Plataforma: |
Microsoft |
Complemento: |
|
|
DB: |
SQL Server |
Complemento: |
|
|
|
|
|
Mensagem do
TCHULA
em 29/10/2021, 12:13 h
Local: SP Registro: 02/10/2014 Postagens: 38 |
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
|
|
|
Mensagem do
@BETO
em 09/11/2021, 13:22 h
Local: MG Registro: 26/01/2006 Postagens: 534 |
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. |
|
|
Mensagem do
TCHULA
em 12/11/2021, 16:07 h
Local: SP Registro: 02/10/2014 Postagens: 38 |
Obrigado pela resposta Beto.
Teria como vc postar seu exemplo por favor.
Obrigado. |
|
|
Mensagem do
@BETO
em 18/11/2021, 11:52 h
Local: MG Registro: 26/01/2006 Postagens: 534 |
#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 |
|
Para postar no Fórum você precisa efetuar o seu login ou se registrar
|
|