...
Sintaxe
FillGetDados ( < nOpc>, < cAlias>, [ nOrder], [ cSeekKey], [ bSeekWhile], [ uSeekFor], [ aNoFields], [ aYesFields], [lOnlyYes], [ cQuery], [ bMontCols], [ lEmpty], [ aHeaderAux], [ aColsAux], [ bAfterCols], [ bBeforeCols], [bAfterHeader], [ cAliasQry], [ bCriaVar], [ lUserFields], [ aYesUsado] ) --> lRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
nOpc | Numérico | Número correspondente à operação a ser executada. | X |
cAlias | Caracter | Alias da tabela referente aos itens. | X |
nOrder | Numérico | Ordem correspondente a chave de índice para preencher o aCols. Default é 1. | |
cSeekKey | Caracter | Chave utilizada no posicionamento da área para preencher o aCols. | |
bSeekWhile | Bloco de código | Bloco contendo a expressão a ser comparada com cSeekKey na condição do While. | |
uSeekFor | Qualquer | Condição para execução do While. | |
aNoFields | Vetor | Array com nome dos campos que serão excluídos na montagem do aHeader. | |
aYesFields | Vetor | Array com nome dos campos que serão incluídos na montagem do aHeader. | |
lOnlyYes | Lógico | Flag indicando se considera somente os campos declarados no aYesFields + campos do usuário. Default é .F. | |
cQuery | Caracter | Query para filtro da tabela cAlias. | |
bMontCols | Bloco de código | Bloco contendo função especifica para preencher o aCols. | |
lEmpty | Lógico | Se for uma inclusão, passar .T. para que o aCols seja inicializado com 1 linha em branco. | |
aHeaderAux | Vetor | Nome do aHeader auxiliar. Caso necessite tratar o aHeader e aCols como variáveis locais (por exemplo, no uso de várias getdados). | |
aColsAux | Vetor | Nome do aCols auxiliar. Caso necessite tratar o aHeader e aCols como variáveis locais (por exemplo, no uso de várias getdados). | |
bAfterCols | Bloco de código | Bloco executado após a inclusão de cada linha no aCols. | |
bBeforeCols | Bloco de código | Bloco de código contendo expressão para sair do While. É executado antes da inclusão de cada linha no aCols. | |
bAfterHeader | Bloco de código | Bloco para manipular o aHeader após o preenchimento dos campos padrões e antes de incluir os campos reservados para o WalkThru. | |
cAliasQry | Caracter | Nome do alias para a query. | |
bCriaVar | Bloco de código | Bloco de código para criar a variável de memória. | |
lUserFields | Lógico | Define se inclui os campos de usuários. Default é .F. | |
aYesUsado | Vetor | Array com o nome dos campos que deverão ser apresentados. |
Retorno
lRet (lógico) - Retorna se conseguiu efetuar a montagem das variáveis.
...
aYesFields
Quando utilizar esse parâmetro buscando os campos do dicionário de dados (SX3), remova os espaços em branco utilizando a função AllTrim.
Exemplo: AAdd( aYesFields, AllTrim( SX3->X3_CAMPO ) )
Exemplos
Bloco de código | ||||
---|---|---|---|---|
| ||||
#include "protheus.ch" User Function TstFillGet() Private cCadastro := "Atualizacao doAtualizacaodo pedido de venda" Private aRotina := { {"Pesquisar" ,"AxPesqui" ,0,1} ,; {"Visualizar" ,"U_TstFilVis" ,0,2} } Private Private cDelFunc := ".T." Private cString := "SC5" dbSelectArea("SC5") dbSetOrder(1)dbSelectAr eadbSelectArea(cString) mBrowse( 6,1,22,75,cString) Return User Function TstFilVis(cAlias,nReg,nOpc) Local aArea := GetArea() Local aCpos1 := {"C6_QTDVEN ","C6_QTDLIB"} Local aCpos2 := {} Local aPosObj := {} Local aObjects := {} Local aSize := {} Local aPosGet := {} Local aInfo := {} Local lContinua:= .T. Local lGrade := MaGrade() Local lQuery := .F. Local lFreeze := .F. Local nGetLin := 0Local0 Local nOpcA := 0 0LocalLocal nI := 0Local0 Local nColFreeze:= 1Local1 Local cArqQry := "SC6" Local cCadastro:= OemToAnsi("Atualizaçäo de Pedidos de Venda") //"Atualizaçäo de Pedidos de Venda" Local oGetd oGetdLocalLocal oDlgLocaloDlg Local bCond := {|| .T.} }Local bAction1 := {|| .T. } Local bAction2 := {|| .T. } Local cSeek := "" Local aNoFields := {"C6_NUM","C6_QTDEMP","C6_QTDENT","C6_QTDEMP2", "C6_QTDENT2"} // Campos que nao devem entrar noentrarno aHeader e aColsLocalaCols Local bWhile := {|| } Local cQuery := "" // Inicializa a Variaveis Privates. PRIVATE aTrocaF3 := {} PRIVATE aTELA[0][0],aGETS[0] PRIVATE aHeader := {} PRIVATE aCols := {} PRIVATE aHeadFor := {} PRIVATE aColsFor := {} PRIVATE N := 1Inclui1 Inclui := .F. Altera := .F. // Inicializa a Variaveis da Enchoice. RegToMemory( "SC5", .F., .F. ) // Filtros para montagem do aCols dbSelectArea("SC6") dbSetOrder(1)#IFDEF TOP lQuery := .T. cQuery := "SELECT * " cQuery += "FROM "+ RetSqlName("SC6") +" SC6 " cQuery += "WHERE SC6.C6_FILIAL='" + xFilial("SC6")+"' AND " cQuery += "SC6.C6_NUM='" + SC5->C5_NUM+"' AND " cQuery += "SC6.D_E_L_E_T_<>'*' " cQuery += "ORDER BY " + SqlOrder(SC6->(IndexKey())) dbSelectArea("SC6") dbCloseArea()#ENDIFcSeek cSeek := xFilial("SC6")+SC5->C5_NUMbWhileNUM bWhile := {|| C6_FILIAL+C6_NUM } // Montagem do aHeader e aCols FillGetDados(nOPc,"SC6",1,cSeek,bWhile,{{bCond, bAction1,bAction2}},aNoFields,/*aYesFields*/,/* lOnlyYes*/,cQuery,/*bMontCols*/,.F.,/*aHeaderAu xaHeaderAux*/,/*aColsAux*/,/*bafterCols*/,/*bBeforeCols*/ ,/*bAfterHeader*/,"SC6") If lQuery dbSelectArea("SC6") dbCloseArea() ChkFile("SC6",.F.)EndIfFor EndIf For nI := 1 To Len(aHeader) If aHeader[nI][8] == "M" aadd(aCpos1,aHeader[nI][2]) EndIfNext EndIf Next // Caso nao ache nenhum item , abandona rotina. If ( Len(aCols) == 0 ) ApMsgAlert("Não achou os itensositens do pedido") lContinua := .F.EndIfIf EndIf If ( lContinua ) // Faz o calculo automatico dedimensoes de objetos dimensoes de objetos aSize := MsAdvSize() aObjects := {} AAdd( aObjects, { 100, 100, .t., .t. } ) AAdd( aObjects, { 100, 100, .t., .t. } ) ) AAdd( aObjects, { 100, 020, .t., .f. } ) aInfo := { aSize[ 1 ], aSize[ 2 ], aSize[ 3 ], aSize[ 4 ], 3, 3 } aPosObj := MsObjSize( aInfo, aObjects ) aPosGet := MsObjGetPos(aSize[3]-aSize[1],315,; {{003,033,160,200,240,263}} ) DEFINE MSDIALOG oDlg TITLE cCadastro From aSize[7],0 to aSize[6],aSize[5] of oMainWnd PIXEL // Estabelece a Troca de Clientes conforme o Tipo do Pedido de Venda If ( M->C5_TIPO $ "DB" ) ) aTrocaF3 := {{"C5_CLIENTE","SA2"}} Else aTrocaF3 := {} EndIf EnChoice( cAlias, nReg, nOpc, , , , , aPosObj[1],aCpos2,3) oGetd := MsGetDados():New(aPosObj[2,1],aPosObj[2,2],aPos ObjaPosObj[2,3],aPosObj[2,4],nOpc,,,"",,aCpos1,nColFre ezenColFreeze,,,,,,,,lFreeze) ACTIVATE MSDIALOG oDlg ON INIT EnchoiceBar(oDlg, {||oDlg:End()},{||oDlg:End()}) EndIfReturn EndIf Return |
Templatedocumentos |
---|