Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
languagec#
themeMidnight
titleExemplo Funcional de Código
User Function ChamaXSAL() 
Local cArqTmp   := GetNextAlias()
Local lPorVisao := .F.
Local cCodVisao := "001"
Local cMoeda    := ""
Local dDataIni  := STOD("")
Local dDataFim  := STOD("")
Local oMeter    
Local oText
Local oDlg
Local lEnd

dDataIni  := STOD("20190101")
dDataFim  := STOD("20190131")

aFiltros := {" ","ZZZZZZZ",; //Conta Orçamentária De / Até
             " ","ZZZZZZZ",; //Classe Orçamentária De / Até
             " ",;           //Tipo de Saldo
             " ","ZZZZZZZ",; //Centro de Custo De / Até
             " ","ZZZZZZZ",; //Item De / Até
             " ","ZZZZZZZ" } //Classe de Valor De / Até

aFiltAd  := {" ","ZZZZZZZ",; //Entidade adicional 01 De / Até
             " ","ZZZZZZZ",; //Entidade adicional 02 De / Até            
             " ","ZZZZZZZ",; //Entidade adicional 03 De / Até
             " ","ZZZZZZZ",; //Entidade adicional 04 De / Até
             " ","ZZZZZZZ" } //Entidade adicional 05 De / Até

//A função pode ser chamada com ou sem régua de processamento MsgMeter()
//Neste exemplo estamos utilizando

If (Aviso("Atenção","Como quer executar a rotina?",{"Parâmetro","Visão"},1)==1)

	//Método por parâmetro
	//A variável cCodVisão não será considerada
	//Serão utilizados os arrays de filtro

    lPorVisao := .F.
    dDataIni  := STOD("20190101")
    dDataFim  := STOD("20190131")
    MsgMeter({|	oMeter, oText, oDlg, lEnd |;
    PCGerPlan(oMeter,oText,oDlg,lEnd,cArqtmp,cMoeda,lPorVisao,cCodVisao,dDataIni,dDataFim,aFiltros,aFiltAd);
    },"Processando dados...","Aguarde")
Else

	//Método por visão
	//A variável cCodVisão será considerada
	//Os arrays de filtro serão desconsiderados

    lPorVisao := .T.
    dDataIni  := STOD("20190101")
    dDataFim  := STOD("20190131")
    MsgMeter({|	oMeter, oText, oDlg, lEnd |;
    PCGerPlan(oMeter,oText,oDlg,lEnd,cArqtmp,cMoeda,lPorVisao,cCodVisao,dDataIni,dDataFim,aFiltros,aFiltAd);
    },"Processando dados...","Aguarde")
EndIf

//Exibe em tela a quantidade de registros inseridos no arquivo de trabalho
If (cArqTmp)->(Select()) > 0    
    Aviso("Atenção",cValToChar((cArqTmp)->(RecCount()))+" registros inseridos na tabela temporária",{"Ok"},1)
    (cArqTmp)->(dbCloseArea())
EndIf

Return

...