Escolar Documentos
Profissional Documentos
Cultura Documentos
CH"
/*/{Protheus.doc} ZUPDCCE
@type function
@author Joao Zabotto
@since 04/01/2013
Local aSay := {}
Local aButton := {}
Local aMarcadas := {}
Local cTitulo := "ATUALIZAÇÃO DE DICIONÁRIOS E TABELAS"
Local cDesc1 := "Esta rotina tem como função fazer a atualização dos
dicionários do Sistema ( SX?/SIX )"
Local cDesc2 := "Este processo deve ser executado em modo EXCLUSIVO, ou
seja não podem haver outros"
Local cDesc3 := "usuários ou jobs utilizando o sistema. É
extremamente recomendavél que se faça um"
Local cDesc4 := "BACKUP dos DICIONÁRIOS e da BASE DE DADOS antes
desta atualização, para que caso "
Local cDesc5 := "ocorra eventuais falhas, esse backup seja ser
restaurado."
Local cDesc6 := ""
Local cDesc7 := ""
Local lOk := .F.
Local lAuto := ( cEmpAmb <> NIL .or. cFilAmb <> NIL )
// Adicionado Zabotto
Private aParamBox := {}
Private cTabela := ''
Private cCampo := ''
Private aSays := {}
Private aButtons := {}
Private lExist := .F.
#IFDEF TOP
TCInternal( 5, "*OFF" ) // Desliga Refresh no Lock do Top
#ENDIF
__cInterNet := NIL
__lPYME := .F.
Set Dele On
// Mensagens de Tela Inicial
aAdd( aSay, cDesc1 )
aAdd( aSay, cDesc2 )
aAdd( aSay, cDesc3 )
aAdd( aSay, cDesc4 )
aAdd( aSay, cDesc5 )
//aAdd( aSay, cDesc6 )
//aAdd( aSay, cDesc7 )
If lAuto
lOk := .T.
Else
FormBatch( cTitulo, aSay, aButton )
EndIf
If lOk
If lAuto
aMarcadas :={{ cEmpAmb, cFilAmb, "" }}
Else
aMarcadas := EscEmpresa()
EndIf
If !Empty( aMarcadas )
If lAuto .OR. MsgNoYes( "Confirma a atualização dos
dicionários ?", cTitulo )
oProcess := MsNewProcess():New( { | lEnd | lOk :=
FSTProc( @lEnd, aMarcadas ) }, "Atualizando", "Aguarde, atualizando ...", .F. )
oProcess:Activate()
If lAuto
If lOk
MsgStop( "Atualização Realizada.", "UPDGER" )
dbCloseAll()
Else
MsgStop( "Atualização não Realizada.", "UPDGER"
)
dbCloseAll()
EndIf
Else
If lOk
Final( "Atualização Concluída." )
Else
Final( "Atualização não Realizada." )
EndIf
EndIf
Else
MsgStop( "Atualização não Realizada.", "UPDGER" )
EndIf
Else
MsgStop( "Atualização não Realizada.", "UPDGER" )
EndIf
EndIf
Return
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±º Programa ³ FSTProc º Autor ³ TOTVS Protheus º Data ³ 04/01/2013 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±º Descricao³ Funcao de processamento da gravação dos arquivos ³±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±³ Uso ³ FSTProc - Gerado por EXPORDIC / Upd. V.4.10.5 EFS ³±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function FSTProc( lEnd, aMarcadas )
Local aInfo := {}
Local aRecnoSM0 := {}
Local cAux := ""
Local cFile := ""
Local cFileLog := ""
Local cMask := "Arquivos Texto" + "(*.TXT)|*.txt|"
Local cTCBuild := "TCGetBuild"
Local cTexto := ""
Local cTopBuild := ""
Local lOpen := .F.
Local lRet := .T.
Local nI := 0
Local nPos := 0
Local nRecno := 0
Local nX := 0
Local oDlg := NIL
Local oFont := NIL
Local oMemo := NIL
Private aArqUpd := {}
If ( lOpen := MyOpenSm0(.T.) )
dbSelectArea( "SM0" )
dbGoTop()
SM0->( dbCloseArea() )
If lOpen
For nI := 1 To Len( aRecnoSM0 )
If !( lOpen := MyOpenSm0(.F.) )
MsgStop( "Atualização da empresa " + aRecnoSM0[nI][2]
+ " não efetuada." )
Exit
EndIf
RpcSetType( 3 )
RpcSetEnv( SM0->M0_CODIGO, SM0->M0_CODFIL )
lMsFinalAuto := .F.
lMsHelpAuto := .F.
oProcess:SetRegua1( 8 )
//Adicionado Zabotto
ZPARAM(@cTexto)
If lExist
Return .F.
EndIf
If FindFunction(cTCBuild)
cTopBuild := &cTCBuild.()
EndIf
X31UpdTable( aArqUpd[nX] )
If __GetX31Error()
Alert( __GetX31Trace() )
MsgStop( "Ocorreu um erro desconhecido durante
a atualização da tabela : " + aArqUpd[nX] + ". Verifique a integridade do
dicionário e da tabela.", "ATENÇÃO" )
cTexto += "Ocorreu um erro desconhecido durante
a atualização da estrutura da tabela : " + aArqUpd[nX] + CRLF
EndIf
Next nX
RpcClearEnv()
Next nI
If MyOpenSm0(.T.)
aInfo := GetUserInfo()
If ( nPos := aScan( aInfo,{ |x,y| x[3] == ThreadId() } )
) > 0
cAux += " " + CRLF
cAux += " Dados Thread" + CRLF
cAux += " --------------------" + CRLF
cAux += " Usuario da Rede....: " + aInfo[nPos][1] +
CRLF
cAux += " Estacao............: " + aInfo[nPos][2] +
CRLF
cAux += " Programa Inicial...: " + aInfo[nPos][5] +
CRLF
cAux += " Environment........: " + aInfo[nPos][6] +
CRLF
cAux += " Conexao............: " +
AllTrim( StrTran( StrTran( aInfo[nPos][7], Chr( 13 ), "" ), Chr( 10 ), "" ) ) +
CRLF
EndIf
cAux += Replicate( "-", 128 ) + CRLF
cAux += CRLF
EndIf
Else
lRet := .F.
EndIf
EndIF
Return lRet
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±º Programa ³ FSAtuSX2 º Autor ³ TOTVS Protheus º Data ³ 04/01/2013 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±º Descricao³ Funcao de processamento da gravacao do SX2 - Arquivos ³±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±³ Uso ³ FSAtuSX2 - Gerado por EXPORDIC / Upd. V.4.10.5 EFS ³±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function FSAtuSX2( cTexto )
Local aEstrut := {}
Local aSX2 := {}
Local cAlias := ""
Local cEmpr := ""
Local cPath := ""
Local nI := 0
Local nJ := 0
SX2->( dbSetOrder( 1 ) )
SX2->( dbGoTop() )
cPath := SX2->X2_PATH
cPath := IIf( Right( AllTrim( cPath ), 1 ) <> "\", PadR( AllTrim( cPath ) +
"\", Len( cPath ) ), cPath )
cEmpr := Substr( SX2->X2_ARQUIVO, 4 )
//
// Tabela SZZ
//
aAdd( aSX2, { ;
cTabela
, ; //X2_CHAVE
cPath
, ; //X2_PATH
cTabela+cEmpr
, ; //X2_ARQUIVO
'PARAMETROS GERENCIAL'
, ; //X2_NOME
'PARAMETROS GERENCIAL'
, ; //X2_NOMESPA
'PARAMETROS GERENCIAL'
, ; //X2_NOMEENG
0
, ; //X2_DELET
'C'
, ; //X2_MODO
''
, ; //X2_TTS
''
, ; //X2_ROTINA
''
, ; //X2_PYME
''
, ; //X2_UNICO
'C'
, ; //X2_MODOEMP
'C'
, ; //X2_MODOUN
0
} ) //X2_MODULO
//
// Atualizando dicionário
//
oProcess:SetRegua2( Len( aSX2 ) )
dbSelectArea( "SX2" )
dbSetOrder( 1 )
If !( aSX2[nI][1] $ cAlias )
cAlias += aSX2[nI][1] + "/"
cTexto += "Foi incluída a tabela " + aSX2[nI][1] + CRLF
EndIf
Else
EndIf
Next nI
cTexto += CRLF + "Final da Atualizacao" + " SX2" + CRLF + Replicate( "-", 128
) + CRLF + CRLF
Return
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±º Programa ³ FSAtuSX3 º Autor ³ TOTVS Protheus º Data ³ 04/01/2013 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±º Descricao³ Funcao de processamento da gravacao do SX3 - Campos ³±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±³ Uso ³ FSAtuSX3 - Gerado por EXPORDIC / Upd. V.4.10.5 EFS ³±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function FSAtuSX3( cTexto )
Local aEstrut := {}
Local aSX3 := {}
Local cAlias := ""
Local cAliasAtu := ""
Local cMsg := ""
Local cSeqAtu := ""
Local lTodosNao := .F.
Local lTodosSim := .F.
Local nI := 0
Local nJ := 0
Local nOpcA := 0
Local nPosArq := 0
Local nPosCpo := 0
Local nPosOrd := 0
Local nPosSXG := 0
Local nPosTam := 0
Local nSeqAtu := 0
Local nTamSeek := Len( SX3->X3_CAMPO )
//
// Tabela SZZ
//
aAdd( aSX3, { ;
cTabela
, ; //X3_ARQUIVO
'01'
, ; //X3_ORDEM
cCampo + '_FILIAL'
, ; //X3_CAMPO
'C'
, ; //X3_TIPO
4
, ; //X3_TAMANHO
0
, ; //X3_DECIMAL
'Filial'
, ; //X3_TITULO
'Sucursal'
, ; //X3_TITSPA
'Branch'
, ; //X3_TITENG
'Filial do Sistema'
, ; //X3_DESCRIC
'Sucursal'
, ; //X3_DESCSPA
'Branch of the System'
, ; //X3_DESCENG
'@!'
, ; //X3_PICTURE
''
, ; //X3_VALID
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128)
, ; //X3_USADO
''
, ; //X3_RELACAO
''
, ; //X3_F3
1
, ; //X3_NIVEL
Chr(254) + Chr(192)
, ; //X3_RESERV
''
, ; //X3_CHECK
''
, ; //X3_TRIGGER
'U'
, ; //X3_PROPRI
'N'
, ; //X3_BROWSE
''
, ; //X3_VISUAL
''
, ; //X3_CONTEXT
''
, ; //X3_OBRIGAT
''
, ; //X3_VLDUSER
''
, ; //X3_CBOX
''
, ; //X3_CBOXSPA
''
, ; //X3_CBOXENG
''
, ; //X3_PICTVAR
''
, ; //X3_WHEN
''
, ; //X3_INIBRW
'033'
, ; //X3_GRPSXG
''
, ; //X3_FOLDER
''
} ) //X3_PYME
aAdd( aSX3, { ;
cTabela
, ; //X3_ARQUIVO
'02'
, ; //X3_ORDEM
cCampo + '_TABELA'
, ; //X3_CAMPO
'C'
, ; //X3_TIPO
3
, ; //X3_TAMANHO
0
, ; //X3_DECIMAL
'Tabela'
, ; //X3_TITULO
'Tabela'
, ; //X3_TITSPA
'Tabela'
, ; //X3_TITENG
'Tabela'
, ; //X3_DESCRIC
'Tabela'
, ; //X3_DESCSPA
'Tabela'
, ; //X3_DESCENG
'@!'
, ; //X3_PICTURE
"existchav('" + cTabela + "')"
, ; //X3_VALID
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(160)
, ; //X3_USADO
''
, ; //X3_RELACAO
'SX21'
, ; //X3_F3
0
, ; //X3_NIVEL
Chr(254) + Chr(192)
, ; //X3_RESERV
''
, ; //X3_CHECK
''
, ; //X3_TRIGGER
'U'
, ; //X3_PROPRI
'S'
, ; //X3_BROWSE
'A'
, ; //X3_VISUAL
'R'
, ; //X3_CONTEXT
''
, ; //X3_OBRIGAT
''
, ; //X3_VLDUSER
''
, ; //X3_CBOX
''
, ; //X3_CBOXSPA
''
, ; //X3_CBOXENG
''
, ; //X3_PICTVAR
''
, ; //X3_WHEN
''
, ; //X3_INIBRW
''
, ; //X3_GRPSXG
''
, ; //X3_FOLDER
''
} ) //X3_PYME
aAdd( aSX3, { ;
cTabela
, ; //X3_ARQUIVO
'03'
, ; //X3_ORDEM
cCampo + '_DESCRI'
, ; //X3_CAMPO
'C'
, ; //X3_TIPO
30
, ; //X3_TAMANHO
0
, ; //X3_DECIMAL
'Descricao'
, ; //X3_TITULO
'Descricao'
, ; //X3_TITSPA
'Descricao'
, ; //X3_TITENG
'Descricao'
, ; //X3_DESCRIC
'Descricao'
, ; //X3_DESCSPA
'Descricao'
, ; //X3_DESCENG
'@!'
, ; //X3_PICTURE
''
, ; //X3_VALID
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(160)
, ; //X3_USADO
''
, ; //X3_RELACAO
''
, ; //X3_F3
0
, ; //X3_NIVEL
Chr(254) + Chr(192)
, ; //X3_RESERV
''
, ; //X3_CHECK
''
, ; //X3_TRIGGER
'U'
, ; //X3_PROPRI
'S'
, ; //X3_BROWSE
'A'
, ; //X3_VISUAL
'R'
, ; //X3_CONTEXT
''
, ; //X3_OBRIGAT
''
, ; //X3_VLDUSER
''
, ; //X3_CBOX
''
, ; //X3_CBOXSPA
''
, ; //X3_CBOXENG
''
, ; //X3_PICTVAR
''
, ; //X3_WHEN
''
, ; //X3_INIBRW
''
, ; //X3_GRPSXG
''
, ; //X3_FOLDER
''
} ) //X3_PYME
aAdd( aSX3, { ;
cTabela
, ; //X3_ARQUIVO
'04'
, ; //X3_ORDEM
cCampo + '_CODCON'
, ; //X3_CAMPO
'C'
, ; //X3_TIPO
6
, ; //X3_TAMANHO
0
, ; //X3_DECIMAL
'Memo Insert'
, ; //X3_TITULO
'Memo Insert'
, ; //X3_TITSPA
'Memo Insert'
, ; //X3_TITENG
'Memo Insert'
, ; //X3_DESCRIC
'Memo Insert'
, ; //X3_DESCSPA
'Memo Insert'
, ; //X3_DESCENG
'@!'
, ; //X3_PICTURE
''
, ; //X3_VALID
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128)
, ; //X3_USADO
''
, ; //X3_RELACAO
''
, ; //X3_F3
0
, ; //X3_NIVEL
Chr(254) + Chr(192)
, ; //X3_RESERV
''
, ; //X3_CHECK
''
, ; //X3_TRIGGER
'U'
, ; //X3_PROPRI
'N'
, ; //X3_BROWSE
'A'
, ; //X3_VISUAL
'R'
, ; //X3_CONTEXT
''
, ; //X3_OBRIGAT
''
, ; //X3_VLDUSER
''
, ; //X3_CBOX
''
, ; //X3_CBOXSPA
''
, ; //X3_CBOXENG
''
, ; //X3_PICTVAR
''
, ; //X3_WHEN
''
, ; //X3_INIBRW
''
, ; //X3_GRPSXG
''
, ; //X3_FOLDER
''
} ) //X3_PYME
aAdd( aSX3, { ;
cTabela
, ; //X3_ARQUIVO
'05'
, ; //X3_ORDEM
cCampo + '_CONDIC'
, ; //X3_CAMPO
'M'
, ; //X3_TIPO
10
, ; //X3_TAMANHO
0
, ; //X3_DECIMAL
'Condicao Ins'
, ; //X3_TITULO
'Condicao Ins'
, ; //X3_TITSPA
'Condicao Ins'
, ; //X3_TITENG
'Condicao Insert'
, ; //X3_DESCRIC
'Condicao Insert'
, ; //X3_DESCSPA
'Condicao Insert'
, ; //X3_DESCENG
''
, ; //X3_PICTURE
''
, ; //X3_VALID
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(160)
, ; //X3_USADO
"IF(!INCLUI,D_E_L_E_T_ = '' ,MSMM(" + cTabela + "->" + cCampo +"_TABELA))"
, ; //X3_RELACAO
''
, ; //X3_F3
0
, ; //X3_NIVEL
Chr(254) + Chr(192)
, ; //X3_RESERV
''
, ; //X3_CHECK
''
, ; //X3_TRIGGER
'U'
, ; //X3_PROPRI
'S'
, ; //X3_BROWSE
'A'
, ; //X3_VISUAL
'R'
, ; //X3_CONTEXT
''
, ; //X3_OBRIGAT
''
, ; //X3_VLDUSER
''
, ; //X3_CBOX
''
, ; //X3_CBOXSPA
''
, ; //X3_CBOXENG
''
, ; //X3_PICTVAR
''
, ; //X3_WHEN
''
, ; //X3_INIBRW
''
, ; //X3_GRPSXG
''
, ; //X3_FOLDER
''
} ) //X3_PYME
aAdd( aSX3, { ;
cTabela
, ; //X3_ARQUIVO
'06'
, ; //X3_ORDEM
cCampo + '_CODDEL'
, ; //X3_CAMPO
'C'
, ; //X3_TIPO
6
, ; //X3_TAMANHO
0
, ; //X3_DECIMAL
'Memo Delete'
, ; //X3_TITULO
'Memo Delete'
, ; //X3_TITSPA
'Memo Delete'
, ; //X3_TITENG
'Memo Delete'
, ; //X3_DESCRIC
'Memo Delete'
, ; //X3_DESCSPA
'Memo Delete'
, ; //X3_DESCENG
'@!'
, ; //X3_PICTURE
''
, ; //X3_VALID
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128)
, ; //X3_USADO
''
, ; //X3_RELACAO
''
, ; //X3_F3
0
, ; //X3_NIVEL
Chr(254) + Chr(192)
, ; //X3_RESERV
''
, ; //X3_CHECK
''
, ; //X3_TRIGGER
'U'
, ; //X3_PROPRI
'N'
, ; //X3_BROWSE
'A'
, ; //X3_VISUAL
'R'
, ; //X3_CONTEXT
''
, ; //X3_OBRIGAT
''
, ; //X3_VLDUSER
''
, ; //X3_CBOX
''
, ; //X3_CBOXSPA
''
, ; //X3_CBOXENG
''
, ; //X3_PICTVAR
''
, ; //X3_WHEN
''
, ; //X3_INIBRW
''
, ; //X3_GRPSXG
''
, ; //X3_FOLDER
''
} ) //X3_PYME
aAdd( aSX3, { ;
cTabela
, ; //X3_ARQUIVO
'07'
, ; //X3_ORDEM
cCampo + '_CONDDEL'
, ; //X3_CAMPO
'M'
, ; //X3_TIPO
10
, ; //X3_TAMANHO
0
, ; //X3_DECIMAL
'Condicao Del'
, ; //X3_TITULO
'Condicao Del'
, ; //X3_TITSPA
'Condicao Del'
, ; //X3_TITENG
'Condicao Delete'
, ; //X3_DESCRIC
'Condicao Delete'
, ; //X3_DESCSPA
'Condicao Delete'
, ; //X3_DESCENG
''
, ; //X3_PICTURE
''
, ; //X3_VALID
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(160)
, ; //X3_USADO
"IF(!INCLUI,D_E_L_E_T_ = '' ,MSMM(" + cTabela + "->" + cCampo +"_TABELA))"
, ; //X3_RELACAO
''
, ; //X3_F3
0
, ; //X3_NIVEL
Chr(254) + Chr(192)
, ; //X3_RESERV
''
, ; //X3_CHECK
''
, ; //X3_TRIGGER
'U'
, ; //X3_PROPRI
'S'
, ; //X3_BROWSE
'A'
, ; //X3_VISUAL
'R'
, ; //X3_CONTEXT
''
, ; //X3_OBRIGAT
''
, ; //X3_VLDUSER
''
, ; //X3_CBOX
''
, ; //X3_CBOXSPA
''
, ; //X3_CBOXENG
''
, ; //X3_PICTVAR
''
, ; //X3_WHEN
''
, ; //X3_INIBRW
''
, ; //X3_GRPSXG
''
, ; //X3_FOLDER
''
} ) //X3_PYME
aAdd( aSX3, { ;
cTabela
, ; //X3_ARQUIVO
'08'
, ; //X3_ORDEM
cCampo + '_HABIL'
, ; //X3_CAMPO
'C'
, ; //X3_TIPO
1
, ; //X3_TAMANHO
0
, ; //X3_DECIMAL
'Habilitado'
, ; //X3_TITULO
'Habilitado'
, ; //X3_TITSPA
'Habilitado'
, ; //X3_TITENG
'Habilitado'
, ; //X3_DESCRIC
'Habilitado'
, ; //X3_DESCSPA
'Habilitado'
, ; //X3_DESCENG
'@!'
, ; //X3_PICTURE
''
, ; //X3_VALID
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(128) + ;
Chr(128) + Chr(128) + Chr(128) + Chr(128) + Chr(160)
, ; //X3_USADO
"" , ; //X3_RELACAO
''
, ; //X3_F3
0
, ; //X3_NIVEL
Chr(254) + Chr(192)
, ; //X3_RESERV
''
, ; //X3_CHECK
''
, ; //X3_TRIGGER
'U'
, ; //X3_PROPRI
'S'
, ; //X3_BROWSE
'A'
, ; //X3_VISUAL
'R'
, ; //X3_CONTEXT
''
, ; //X3_OBRIGAT
''
, ; //X3_VLDUSER
'1=Sim;2=Não'
, ; //X3_CBOX
''
, ; //X3_CBOXSPA
''
, ; //X3_CBOXENG
''
, ; //X3_PICTVAR
''
, ; //X3_WHEN
''
, ; //X3_INIBRW
''
, ; //X3_GRPSXG
''
, ; //X3_FOLDER
''
} ) //X3_PYME
//
// Atualizando dicionário
//
dbSelectArea( "SX3" )
dbSetOrder( 2 )
cAliasAtu := ""
//
// Verifica se o campo faz parte de um grupo e ajsuta tamanho
//
If !Empty( aSX3[nI][nPosSXG] )
SXG->( dbSetOrder( 1 ) )
If SXG->( MSSeek( aSX3[nI][nPosSXG] ) )
If aSX3[nI][nPosTam] <> SXG->XG_SIZE
aSX3[nI][nPosTam] := SXG->XG_SIZE
cTexto += "O tamanho do campo " + aSX3[nI][nPosCpo] +
" nao atualizado e foi mantido em ["
cTexto += AllTrim( Str( SXG->XG_SIZE ) ) + "]" + CRLF
cTexto += " por pertencer ao grupo de campos [" +
SX3->X3_GRPSXG + "]" + CRLF + CRLF
EndIf
EndIf
EndIf
SX3->( dbSetOrder( 2 ) )
If !( aSX3[nI][nPosArq] $ cAlias )
cAlias += aSX3[nI][nPosArq] + "/"
aAdd( aArqUpd, aSX3[nI][nPosArq] )
EndIf
If !SX3->( dbSeek( PadR( aSX3[nI][nPosCpo], nTamSeek ) ) )
//
// Busca ultima ocorrencia do alias
//
If ( aSX3[nI][nPosArq] <> cAliasAtu )
cSeqAtu := "00"
cAliasAtu := aSX3[nI][nPosArq]
dbSetOrder( 1 )
SX3->( dbSeek( cAliasAtu + "ZZ", .T. ) )
dbSkip( -1 )
If ( SX3->X3_ARQUIVO == cAliasAtu )
cSeqAtu := SX3->X3_ORDEM
EndIf
nSeqAtu++
cSeqAtu := RetAsc( Str( nSeqAtu ), 2, .T. )
EndIf
Next nJ
dbCommit()
MsUnLock()
Else
//
// Verifica se o campo faz parte de um grupo e ajsuta tamanho
//
If !Empty( SX3->X3_GRPSXG ) .AND. SX3->X3_GRPSXG <> aSX3[nI]
[nPosSXG]
SXG->( dbSetOrder( 1 ) )
If SXG->( MSSeek( SX3->X3_GRPSXG ) )
If aSX3[nI][nPosTam] <> SXG->XG_SIZE
aSX3[nI][nPosTam] := SXG->XG_SIZE
cTexto += "O tamanho do campo " + aSX3[nI]
[nPosCpo] + " nao atualizado e foi mantido em ["
cTexto += AllTrim( Str( SXG->XG_SIZE ) ) + "]"+
CRLF
cTexto += " por pertencer ao grupo de campos
[" + SX3->X3_GRPSXG + "]" + CRLF + CRLF
EndIf
EndIf
EndIf
//
// Verifica todos os campos
//
For nJ := 1 To Len( aSX3[nI] )
//
// Se o campo estiver diferente da estrutura
//
If aEstrut[nJ] == SX3->( FieldName( nJ ) ) .AND. ;
PadR( StrTran( AllToChar( SX3->( FieldGet( nJ )
) ), " ", "" ), 250 ) <> ;
PadR( StrTran( AllToChar( aSX3[nI][nJ] )
, " ", "" ), 250 ) .AND. ;
AllTrim( SX3->( FieldName( nJ ) ) ) <>
"X3_ORDEM"
If lTodosSim
nOpcA := 1
ElseIf lTodosNao
nOpcA := 2
Else
nOpcA := Aviso( "ATUALIZAÇÃO DE DICIONÁRIOS E
TABELAS", cMsg, { "Sim", "Não", "Sim p/Todos", "Não p/Todos" }, 3, "Diferença de
conteúdo - SX3" )
lTodosSim := ( nOpcA == 3 )
lTodosNao := ( nOpcA == 4 )
If lTodosSim
nOpcA := 1
lTodosSim := MsgNoYes( "Foi selecionada a
opção de REALIZAR TODAS alterações no SX3 e NÃO MOSTRAR mais a tela de aviso." +
CRLF + "Confirma a ação [Sim p/Todos] ?" )
EndIf
If lTodosNao
nOpcA := 2
lTodosNao := MsgNoYes( "Foi selecionada a
opção de NÃO REALIZAR nenhuma alteração no SX3 que esteja diferente da base e NÃO
MOSTRAR mais a tela de aviso." + CRLF + "Confirma esta ação [Não p/Todos]?" )
EndIf
EndIf
If nOpcA == 1
cTexto += "Alterado o campo " + aSX3[nI]
[nPosCpo] + CRLF
cTexto += " " + PadR( SX3-
>( FieldName( nJ ) ), 10 ) + " de [" + AllToChar( SX3->( FieldGet( nJ ) ) ) + "]" +
CRLF
cTexto += " para [" +
AllToChar( aSX3[nI][nJ] ) + "]" + CRLF + CRLF
EndIf
Next
EndIf
Next nI
cTexto += CRLF + "Final da Atualizacao" + " SX3" + CRLF + Replicate( "-", 128
) + CRLF + CRLF
Return
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±º Programa ³ FSAtuSIX º Autor ³ TOTVS Protheus º Data ³ 04/01/2013 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±º Descricao³ Funcao de processamento da gravacao do SIX - Indices ³±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±³ Uso ³ FSAtuSIX - Gerado por EXPORDIC / Upd. V.4.10.5 EFS ³±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function FSAtuSIX( cTexto )
Local aEstrut := {}
Local aSIX := {}
Local lAlt := .F.
Local lDelInd := .F.
Local nI := 0
Local nJ := 0
//
// Tabela SZZ
//
aAdd( aSIX, { ;
cTabela
, ; //INDICE
'1'
, ; //ORDEM
"" + cCampo +"_FILIAL+" + cCampo +"_TABELA"
, ; //CHAVE
'Tabela'
, ; //DESCRICAO
'Tabela'
, ; //DESCSPA
'Tabela'
, ; //DESCENG
'U'
, ; //PROPRI
''
, ; //F3
''
, ; //NICKNAME
'S'
} ) //SHOWPESQ
//
// Atualizando dicionário
//
oProcess:SetRegua2( Len( aSIX ) )
dbSelectArea( "SIX" )
SIX->( dbSetOrder( 1 ) )
lAlt := .F.
If lAlt
lDelInd := .T. // Se for alteracao precisa apagar o indice
do banco
cTexto += "Índice alterado " + aSIX[nI][1] + "/" + aSIX[nI]
[2] + " - " + aSIX[nI][3] + CRLF
EndIf
EndIf
dbCommit()
MsUnLock()
Next nI
cTexto += CRLF + "Final da Atualizacao" + " SIX" + CRLF + Replicate( "-", 128
) + CRLF + CRLF
Return
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±º Programa ³ FSAtuSX7 º Autor ³ TOTVS Protheus º Data ³ 05/02/2013 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±º Descricao³ Funcao de processamento da gravacao do SX7 - Gatilhos ³±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±³ Uso ³ FSAtuSX7 - Gerado por EXPORDIC / Upd. V.4.10.5 EFS ³±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function FSAtuSX7( cTexto )
Local aEstrut := {}
Local aSX7 := {}
Local cAlias := ""
Local nI := 0
Local nJ := 0
Local nTamSeek := Len( SX7->X7_CAMPO )
//
// Campo Z9_TABELA
//
aAdd( aSX7, { ;
cCampo +"_TABELA"
, ; //X7_CAMPO
'001'
, ; //X7_SEQUENC
"POSICIONE('SX2',1,M->" + cCampo + "_TABELA,'X2_NOME')"
, ; //X7_REGRA
"" + cCampo +"_DESCRI"
, ; //X7_CDOMIN
'P'
, ; //X7_TIPO
'N'
, ; //X7_SEEK
''
, ; //X7_ALIAS
0
, ; //X7_ORDEM
''
, ; //X7_CHAVE
'U'
, ; //X7_PROPRI
''
} ) //X7_CONDIC
//
// Atualizando dicionário
//
oProcess:SetRegua2( Len( aSX7 ) )
dbSelectArea( "SX7" )
dbSetOrder( 1 )
If !( aSX7[nI][1] $ cAlias )
cAlias += aSX7[nI][1] + "/"
cTexto += "Foi incluído o gatilho " + aSX7[nI][1] + "/" +
aSX7[nI][2] + CRLF
EndIf
dbCommit()
MsUnLock()
EndIf
oProcess:IncRegua2( "Atualizando Arquivos (SX7)..." )
Next nI
cTexto += CRLF + "Final da Atualizacao" + " SX7" + CRLF + Replicate( "-", 128
) + CRLF + CRLF
Return
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºRotina ³ESCEMPRESAºAutor ³ Ernani Forastieri º Data ³ 27/09/04 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescricao ³ Funcao Generica para escolha de Empresa, montado pelo SM0_ º±±
±±º ³ Retorna vetor contendo as selecoes feitas. º±±
±±º ³ Se nao For marcada nenhuma o vetor volta vazio. º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Generico º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function EscEmpresa()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Parametro nTipo ³
//³ 1 - Monta com Todas Empresas/Filiais ³
//³ 2 - Monta so com Empresas ³
//³ 3 - Monta so com Filiais de uma Empresa ³
//³ ³
//³ Parametro aMarcadas ³
//³ Vetor com Empresas/Filiais pre marcadas ³
//³ ³
//³ Parametro cEmpSel ³
//³ Empresa que sera usada para montar selecao ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Local aSalvAmb := GetArea()
Local aSalvSM0 := {}
Local aRet := {}
Local aVetor := {}
Local oDlg := NIL
Local oChkMar := NIL
Local oLbx := NIL
Local oMascEmp := NIL
Local oMascFil := NIL
Local oButMarc := NIL
Local oButDMar := NIL
Local oButInv := NIL
Local oSay := NIL
Local oOk := LoadBitmap( GetResources(), "LBOK" )
Local oNo := LoadBitmap( GetResources(), "LBNO" )
Local lChk := .F.
Local lOk := .F.
Local lTeveMarc:= .F.
Local cVar := ""
Local cNomEmp := ""
Local cMascEmp := "??"
Local cMascFil := "??"
Local aMarcadas := {}
If !MyOpenSm0(.F.)
Return aRet
EndIf
dbSelectArea( "SM0" )
aSalvSM0 := SM0->( GetArea() )
dbSetOrder( 1 )
dbGoTop()
dbSkip()
End
RestArea( aSalvSM0 )
@ 10, 10 Listbox oLbx Var cVar Fields Header " ", " ", "Empresa" Size 178,
095 Of oDlg Pixel
oLbx:SetArray( aVetor )
oLbx:bLine := {|| {IIf( aVetor[oLbx:nAt, 1], oOk, oNo ), ;
aVetor[oLbx:nAt, 2], ;
aVetor[oLbx:nAt, 4]}}
oLbx:BlDblClick := { || aVetor[oLbx:nAt, 1] := !aVetor[oLbx:nAt, 1],
VerTodos( aVetor, @lChk, oChkMar ), oChkMar:Refresh(), oLbx:Refresh()}
oLbx:cToolTip := oDlg:cTitle
oLbx:lHScroll := .F. // NoScroll
@ 112, 10 CheckBox oChkMar Var lChk Prompt "Todos" Message Size 40, 007
Pixel Of oDlg;
on Click MarcaTodos( lChk, @aVetor, oLbx )
Define SButton From 111, 125 Type 1 Action ( RetSelecao( @aRet, aVetor ),
oDlg:End() ) OnStop "Confirma a Seleção" Enable Of oDlg
Define SButton From 111, 158 Type 2 Action ( IIf( lTeveMarc, aRet :=
aMarcadas, .T. ), oDlg:End() ) OnStop "Abandona a Seleção" Enable Of oDlg
Activate MSDialog oDlg Center
RestArea( aSalvAmb )
dbSelectArea( "SM0" )
dbCloseArea()
Return aRet
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºRotina ³MARCATODOSºAutor ³ Ernani Forastieri º Data ³ 27/09/04 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescricao ³ Funcao Auxiliar para marcar/desmarcar todos os itens do º±±
±±º ³ ListBox ativo º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Generico º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function MarcaTodos( lMarca, aVetor, oLbx )
Local nI := 0
oLbx:Refresh()
Return
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºRotina ³INVSELECAOºAutor ³ Ernani Forastieri º Data ³ 27/09/04 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescricao ³ Funcao Auxiliar para inverter selecao do ListBox Ativo º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Generico º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function InvSelecao( aVetor, oLbx )
Local nI := 0
oLbx:Refresh()
Return
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºRotina ³RETSELECAOºAutor ³ Ernani Forastieri º Data ³ 27/09/04 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescricao ³ Funcao Auxiliar que monta o retorno com as selecoes º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Generico º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function RetSelecao( aRet, aVetor )
Local nI := 0
aRet := {}
For nI := 1 To Len( aVetor )
If aVetor[nI][1]
aAdd( aRet, { aVetor[nI][2] , aVetor[nI][3], aVetor[nI][2] +
aVetor[nI][3] } )
EndIf
Next nI
Return
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºRotina ³ MARCAMAS ºAutor ³ Ernani Forastieri º Data ³ 20/11/04 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescricao ³ Funcao para marcar/desmarcar usando mascaras º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Generico º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function MarcaMas( oLbx, aVetor, cMascEmp, lMarDes )
Local cPos1 := SubStr( cMascEmp, 1, 1 )
Local cPos2 := SubStr( cMascEmp, 2, 1 )
Local nPos := oLbx:nAt
Local nZ := 0
oLbx:nAt := nPos
oLbx:Refresh()
Return
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºRotina ³ VERTODOS ºAutor ³ Ernani Forastieri º Data ³ 20/11/04 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescricao ³ Funcao auxiliar para verificar se estao todos marcardos º±±
±±º ³ ou nao º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Generico º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function VerTodos( aVetor, lChk, oChkMar )
Local lTTrue := .T.
Local nI := 0
Return
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±º Programa ³ MyOpenSM0º Autor ³ TOTVS Protheus º Data ³ 04/01/2013 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±º Descricao³ Funcao de processamento abertura do SM0 modo exclusivo ³±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±³ Uso ³ MyOpenSM0 - Gerado por EXPORDIC / Upd. V.4.10.5 EFS ³±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function MyOpenSM0(lShared)
For nLoop := 1 To 20
dbUseArea( .T., , "SIGAMAT.EMP", "SM0", .T., .F. )
Sleep( 500 )
Next nLoop
If !lOpen
MsgStop( "Não foi possível a abertura da tabela " + ;
IIf( lShared, "de empresas (SM0).", "de empresas (SM0) de forma
exclusiva." ), "ATENÇÃO" )
EndIf
Return lOpen
/*
Tela para Múltiplas Seleções de Empresas/Filiais
João Zabotto - 21/12/2012
*/
Static Function ZTABELA()
Local aSalvAmb := GetArea()
Local oDlg := NIL
Local oOk := LoadBitmap( GetResources(), "LBOK" )
Local oNo := LoadBitmap( GetResources(), "LBNO" )
Local oGetTabela
Local cGetTabela := Space(3)
Local oSayTabela
@ 013, 004 SAY oSayTabela PROMPT "Tabela:" SIZE 025, 007 OF oDlg COLORS 0,
16777215 PIXEL
@ 013, 031 MSGET oGetTabela VAR cGetTabela SIZE 060, 012 OF oDlg COLORS 0,
16777215 PIXEL
Define SButton From 035, 030 Type 1 Action ( oDlg:End() ) Enable Of oDlg
Define SButton From 035, 065 Type 2 Action ( oDlg:End() ) Enable Of oDlg
Return cGetTabela
/*
Define os parâmetros da SX6
*/
Static Function ZPARAM(cTexto)
Local aEstrut := {}
Local aSX6 := {}
Local cAlias := ""
Local cMsg := ""
Local lContinua := .T.
Local lReclock := .T.
Local lTodosNao := .F.
Local lTodosSim := .F.
Local nI := 0
Local nJ := 0
Local nOpcA := 0
Local nTamFil := Len( SX6->X6_FIL )
Local nTamVar := Len( SX6->X6_VAR )
If lContinua
If !( aSX6[nI][1] $ cAlias )
cAlias += aSX6[nI][1] + "/"
EndIf
Next nI
Return