0% found this document useful (0 votes)
131 views

Cont CR01

This document describes a program called ContCR01 that generates purchase and sale contracts in Word format (.dot) using data from sales invoices. It uses parameters like date range, salesperson codes, invoice numbers to filter the invoices and populate the contract template. Temporary files and tables are created to store the invoice data and various queries are used to retrieve specific fields from the invoices to include in the contracts.

Uploaded by

bacamarte83
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
131 views

Cont CR01

This document describes a program called ContCR01 that generates purchase and sale contracts in Word format (.dot) using data from sales invoices. It uses parameters like date range, salesperson codes, invoice numbers to filter the invoices and populate the contract template. Temporary files and tables are created to store the invoice data and various queries are used to retrieve specific fields from the invoices to include in the contracts.

Uploaded by

bacamarte83
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 20

#include "TBICONN.CH" #include "TBICODE.CH" #Include "protheus.ch" #Include "TopConn.ch" #include "rwmake.ch" #Include "MsOle.

ch" #DEFINE ENTER CHR(13)+CHR(10) #DEFINE TAB Chr(9) Programa ContCR01 Autor Paulo H. Wolf Data 05/09/2012 Desc. Este programa tem o objetivo de imprimir contrato de Compra e Venda referente as NFs de Sada em Dolar. Para isso utilizado um modelo .dot que est salvo na pasta \protheus_data\samples\documents\upl\ContCR01.dot Uso // // Variaveis utilizadas para parametros // mv_par01 // Data Inicial Emisso NF // mv_par02 // Data Final Emisso NF // mv_par03 // Vendedor de // mv_par04 // Vendedor ate // mv_par05 // NF de // mv_par06 // NF ate // mv_par07 // Moedas // mv_par08 // Arquivo Modelo (*.dot) // mv_par09 // Onde salvar (caminho) // mv_par10 // Gera por (Cliente ou Cliente+Loja // /*/ User Function ContCR01() //Contrato Contas a Receber (Dolar) private cPerg := "ZZCCRD" private cTexto := "" //variavel que contm o que ser escritos no Memo private oMemo //objeto Memo da tela cTexto da, " + ENTER cTexto + ENTER cTexto + ENTER cTexto + ENTER cTexto + ENTER cTexto := "Esta rotina tem o objetivo de gerar contratos de compra e ven += "conforme um modelo padro ContCR01.dot e com dados conforme " += "os parametros informados. += "Os contratos so gerados principalmente com os dados das += "Notas Fiscais e com dados da Filial corrente do Sistema. += "" + ENTER " " "

ValidPerg(cPerg) Pergunte(cPerg,.F.)

@ 116,090 To 416,707 Dialog oDlgMemo Title "Contratos de Compra e Venda"

@ 005,005 Get cTexto

Size 300,100 MEMO

Object oMemo Size 36,16 Action Pergunte(cPerg Size 36,16 Action (Processa( {|| Size 36,16 Action Close(oDlgMemo

@ 115,160 Button OemToAnsi("Parametros") , .T.) @ 115,205 Button OemToAnsi("Processar") Exportar() } )) @ 115,250 Button OemToAnsi("Sair") )

//@ 132,263 BmpButton Type 1 Action Close(oDlgMemo) Activate Dialog oDlgMemo Center Return

Static Function Exportar() private cArq //Caminho onde ser criado o arquivo temporario - DBF private aFields //array que conter os campos que sero criados no cArq private cArqDot := alltrim(MV_PAR08) private cFile := "\samples\documents\upl\" + cArqDot private xFilRec := "" private nNumCon := 1 //Numero do Contrato Inicial //Arquivo 1: Conhecimentos de Frete cArq := CriaTrab(NIL,.f.) cArq := "\Tempo\"+cArq aFields := {} AADD(aFields,{"TR_OK" ,"C",02,0}) AADD(aFields,{"TR_FILIAL" ,"C",02,0}) AADD(aFields,{"TR_DOC" ,"C",09,0}) AADD(aFields,{"TR_SERIE" ,"C",03,0}) AADD(aFields,{"TR_CODCLI" ,"C",06,0}) AADD(aFields,{"TR_LOJA" ,"C",02,0}) AADD(aFields,{"TR_NOME" ,"C",50,0}) AADD(aFields,{"TR_VLBRUTO","N",15,2}) AADD(aFields,{"TR_MOEDA" ,"N",01,0}) AADD(aFields,{"TR_RECF2" ,"N",10,0}) //Marca //Filial //Nota Fiscal //Serie //Cdigo do Cliente //Loja do Cliente //Nome do Cliente //Valor Bruto da NF (999999999999.99) //Moeda //RECNO da SF2

DbCreate(cArq,aFields) DbUseArea(.T.,,cArq,"TRV1",.F.) cIndCond := "TR_CODCLI+TR_LOJA+TR_FILIAL+TR_DOC" IndRegua("TRV1",cArq,cIndCond,,,) //"Selecionando Registros..." */ //Gera o SQL e preenche a tabela temporria TRV1 //Parametro igual a 1 -> Gera SQL para montagem do MarkBrow GeraDados(1) //Monta a tela com MarkBrow com os dados da tabela temporria TRV1 //para que seja confirmada a gerao do arquivo txt conforme as NFs mostrada s na tela. MontaTela() //Fecha a tabela temporria e apaga o arquivo temporrio DbSelectArea("TRV1") DBCLOSEAREA("TRV1")

FErase(cArq+".dbf") FErase(cArq+".idx") DBSELECTAREA("SC5") Return //Funo que gera o SQL conforme os parmetros e preenche a tabela temporria Static Function GeraDados(xOpcao) Local cQry := "" Local cQSec := "" Local cRet := "" Local nRet := 0 //Query principal aplicada a todos os selects cQry += "SELECT SF2.F2_FILIAL, SF2.F2_DOC, SF2.F2_SERIE, SF2.F2_CLIENTE, SF2.F2_LOJA, SA1.A1_NOME, SF2.F2_VALBRUT, " cQry += " SD2.D2_PEDIDO, SD2.D2_COD, SB1.B1_DESC, " cQry += " SE1.E1_PREFIXO, SE1.E1_NUM, SE1.E1_PARCELA, SE1.E1_VALOR , SE1.E1_VLCRUZ, SE1.E1_VENCTO, SE1.E1_VENCREA, SE1.E1_MOEDA, " cQry += " SF2.R_E_C_N_O_ RECNOF2 " cQry += "FROM " + RetSqlName("SE1") + " SE1 " cQry += "INNER JOIN " + RetSqlName("SF2") + " SF2 " cQry += "ON SE1.E1_FILORIG = SF2.F2_FILIAL AND SE1.E1_NUM = SF2.F2_DOC A ND SE1.E1_SERIE = SF2.F2_SERIE " cQry += "INNER JOIN " + RetSqlName("SD2") + " SD2 " cQry += "ON SF2.F2_FILIAL = SD2.D2_FILIAL AND SF2.F2_DOC = SD2.D2_DOC AN D SF2.F2_SERIE = SD2.D2_SERIE " cQry += "INNER JOIN " + RetSqlName("SB1") + " SB1 " cQry += "ON SD2.D2_COD = SB1.B1_COD " cQry += "INNER JOIN " + RetSqlName("SA1") + " SA1 " cQry += "ON SF2.F2_CLIENTE = SA1.A1_COD AND SF2.F2_LOJA = SA1.A1_LOJA " cQry += "WHERE SE1.D_E_L_E_T_ <> '*' AND SF2.D_E_L_E_T_ <> '*' AND SD2.D _E_L_E_T_ <> '*' AND SB1.D_E_L_E_T_ <> '*' AND SA1.D_E_L_E_T_ <> '*' " cQry += "AND SE1.E1_MOEDA IN (" + MV_PAR07 + ") " cQry += "AND SF2.F2_EMISSAO >= '" + DTOS(MV_PAR01) + "' AND SF2.F2_EMISS AO <= '" + DTOS(MV_PAR02) + "' " cQry += "AND SA1.A1_VEND >= '" + MV_PAR03 + "' AND SA1.A1_VEND <= '" + MV_PAR04 + "' " //cQry += "AND SE1.E1_VEND >= '" + MV_PAR03 + "' AND SE1.E1_VEND < = '" + MV_PAR04 + "' " cQry += "AND SF2.F2_DOC >= '" + MV_PAR05 + "' AND SF2.F2_DOC <= '" + MV_PAR06 + "' " //Query para a tela, onde sro mostrados os titulos if xOpcao == 1 cQSec := "SELECT DISTINCT A.F2_CLIENTE, A.F2_LOJA, A.A1_NOME, A. F2_FILIAL, A.F2_DOC, A.F2_SERIE, A.F2_VALBRUT, A.E1_MOEDA, A.RECNOF2 " cQSec += "FROM " cQSec += "( " //Adiciona a Query principal Query secundria cQSec += cQry cQSec += ") AS A " cQSec += "ORDER BY 1,2,3,4,5,6 "

//Preenche a tabela temporria TcQuery cQSec New Alias "TQRY" TQRY->(DbGoTop()) Do While TQRY->(!Eof()) dbselectarea("TRV1") append blank //replace TRV1->TR_OK with replace TRV1->TR_FILIAL replace TRV1->TR_DOC replace TRV1->TR_SERIE replace TRV1->TR_CODCLI replace TRV1->TR_LOJA replace TRV1->TR_NOME replace TRV1->TR_VLBRUTO replace TRV1->TR_MOEDA replace TRV1->TR_RECF2 dbselectarea("TQRY") TQRY->(Dbskip()) EndDo TQRY->(DbCloseArea()) Return endif //Preencher os cdigos de produtos do contrato if xOpcao == 2 cQSec := "SELECT DISTINCT A.D2_COD, A.B1_DESC " cQSec += "FROM " cQSec += "( " //Adiciona a Query principal Query secundria cQSec += cQry //Adiciona os filtros de RECNO da SF2 cQSec += "AND SF2.R_E_C_N_O_ in (" + xFilRec + ") " cQSec += ") AS A " cQSec += "ORDER BY 1 " TcQuery cQSec New Alias "TQRY" //Preenche a varivel que ir retornar TQRY->(DbGoTop()) Do While TQRY->(!Eof()) cRet := cRet + alltrim(TQRY->D2_COD) + " - " + alltrim(T QRY->B1_DESC) + ENTER TQRY->(dbSkip()) EndDo TQRY->(DbCloseArea())

with with with with with with with with with

TQRY->F2_FILIAL TQRY->F2_DOC TQRY->F2_SERIE TQRY->F2_CLIENTE TQRY->F2_LOJA TQRY->A1_NOME TQRY->F2_VALBRUT TQRY->E1_MOEDA TQRY->RECNOF2

Return cRet endif //Preencher as NFs do contrato if xOpcao == 3 cQSec := "SELECT DISTINCT A.F2_FILIAL, A.F2_DOC, A.F2_SERIE " cQSec += "FROM " cQSec += "( " //Adiciona a Query principal Query secundria cQSec += cQry //Adiciona os filtros de RECNO da SF2 cQSec += "AND SF2.R_E_C_N_O_ in (" + xFilRec + ") " cQSec += ") AS A " cQSec += "ORDER BY 1,2,3 " TcQuery cQSec New Alias "TQRY" //Preenche a varivel que ir retornar TQRY->(DbGoTop()) Do While TQRY->(!Eof()) cRet := cRet + alltrim(TQRY->F2_FILIAL) + "-" + alltrim( TQRY->F2_DOC) + "/" + alltrim(TQRY->F2_SERIE) + ENTER TQRY->(dbSkip()) EndDo TQRY->(DbCloseArea()) Return cRet endif //Pega o Valor total do Contrato em Dolar if xOpcao == 4 cQSec := "SELECT DISTINCT A.F2_FILIAL, A.E1_PREFIXO, A.E1_NUM, A .E1_PARCELA, A.F2_CLIENTE, A.F2_LOJA, A.E1_VALOR " cQSec += "FROM " cQSec += "( " //Adiciona a Query principal Query secundria cQSec += cQry //Adiciona os filtros de RECNO da SF2 cQSec += "AND SF2.R_E_C_N_O_ in (" + xFilRec + ") " cQSec += ") AS A " cQSec += "ORDER BY 1,2,3,4 " TcQuery cQSec New Alias "TQRY" //Preenche a varivel que ir retornar TQRY->(DbGoTop())

Do While TQRY->(!Eof()) nRet := nRet + TQRY->E1_VALOR TQRY->(dbSkip()) EndDo TQRY->(DbCloseArea()) Return nRet endif //Preencher os Titulos e Vencimentos do contrato if xOpcao == 5 cQSec := "SELECT DISTINCT A.E1_PREFIXO, A.E1_NUM, A.E1_PARCELA, A.E1_VALOR, dbo.FC_DTSIGA(A.E1_VENCREA) as E1_VENCREA " cQSec += "FROM " cQSec += "( " //Adiciona a Query principal Query secundria cQSec += cQry //Adiciona os filtros de RECNO da SF2 cQSec += "AND SF2.R_E_C_N_O_ in (" + xFilRec + ") " cQSec += ") AS A " cQSec += "ORDER BY 1,2,3 " TcQuery cQSec New Alias "TQRY" //Preenche a varivel que ir retornar TQRY->(DbGoTop()) Do While TQRY->(!Eof()) cRet := cRet + TQRY->E1_PREFIXO + "-" + TQRY->E1_NUM + " /" + TQRY->E1_PARCELA + TAB + "US$" + Transform(E1_VALOR,"@E 99,999,999.99") + T AB + E1_VENCREA + ENTER TQRY->(dbSkip()) EndDo TQRY->(DbCloseArea()) Return cRet endif //Preencher os Pedidos de Venda do contrato if xOpcao == 6 cQSec := "SELECT DISTINCT A.F2_FILIAL, A.D2_PEDIDO " cQSec += "FROM " cQSec += "( " //Adiciona a Query principal Query secundria cQSec += cQry

//Adiciona os filtros de RECNO da SF2 cQSec += "AND SF2.R_E_C_N_O_ in (" + xFilRec + ") " cQSec += ") AS A " cQSec += "ORDER BY 1,2 " TcQuery cQSec New Alias "TQRY" //Preenche a varivel que ir retornar TQRY->(DbGoTop()) Do While TQRY->(!Eof()) cRet := cRet + alltrim(TQRY->F2_FILIAL) + "-" + alltrim( TQRY->D2_PEDIDO) + ENTER TQRY->(dbSkip()) EndDo TQRY->(DbCloseArea()) Return cRet endif Return //Funo que monta a tela (MarkBrow) e mostra os dados da tabela temporria //Ir marcar as NF's para gerar o arquivo .txt Static Function MontaTela() Private cCadastro := 'Gerar arquivo NFs de servio' Private lMarc := nil Private cMarca := nil Private aRotina := {} Private aCampos := {} dbselectarea("TRV1") dbgotop() aRotina := { {"Gerar Contrato","U_ContCR02",0,5} } //{"Visualizar","AxVisual",0,2} ,; //{"Alterar" ,"AxAltera",0,4}} AADD(aCampos,{"TR_OK" ,"",""}) //Marca AADD(aCampos,{"TR_CODCLI" ,"","Cod. Cli."}) //Codigo do Cliente AADD(aCampos,{"TR_LOJA" ,"","Loja"}) //Loja AADD(aCampos,{"TR_NOME" ,"","Nome Cliente"}) //Nome do Cliente AADD(aCampos,{"TR_FILIAL" ,"","Filial"}) //Filial AADD(aCampos,{"TR_DOC" ,"","Nota Fiscal"}) //Nota Fiscal AADD(aCampos,{"TR_SERIE" ,"","Serie"}) //Serie AADD(aCampos,{"TR_VLBRUTO","","Total R$", "@E 99,999,999.99"}) //Valor B ruto da NF (999999999999.99) AADD(aCampos,{"TR_RECF2" ,"","Registro"}) MARKBROW("TRV1","TR_OK",,aCampos,lMarc,cMarca,,,,,) Return

/* MarkBrowse Tipo: Processamento Monta um browse padro do sistema, permitindo marcar e desmacar linhas. Sintaxe MarkBrowse(cAlias,cCampo ,cCpo,aCampos,lMarc,cMarca,cCtrlM,lBotoes,cTopFun,cBotF un,aCoord) //Tirado de um fonte da Microsiga MarkBrow("SC1","C1_OK","(C1_COTACAO+IIf(C1_TPOP=='P'.Or.(C1_APROV$'R,B'),'X',' ' ))",,lInverte,cMarca,"A130AllMark()",,,,"A130Mark()",,,,aCores) Parmetros cAlias - lias do arquivo cCampo - Campo que estabelece relao com a culuna de marca cCpo - Campo que se estiver vazio muda a cor da linha aCampos - Array com os campos para montar o browse lMarc - Flag para inicializar marcado ou no cMarca - Marca obtida com a funo Getmark cCtrlM - Funo para ser executada no Alt_M lBotoes - Parmetro obsoleto cTopFun - Funo filtro para estabelecer o primeiro registro cTopFun - Funo filtro para estabelecer o ltimo registro aCoord - Array com as coordenadas da MarkBrowse. Exemplo cMarca := GetMark() cCadastro := "Escolher Clientes" aRotina := { { "Pesquisar","AxPesqui",0,1}, ; {"Visualizar","AxVisual",0,2}} MarkBrow("SA1","A1_OK","SA1->A1_OK",,,cMarca) */ User Function ContCR02() Processa( { ||ContCR05() } ) Return

Static Function ContCR05() Local _xCodCli := "" Local _Chave := "" //Variavel que conter os RECNOSda SF2 para filtrar os regitros selecionad os que iro para os contratos

xFilRec := "" DBSELECTAREA("TRV1") TRV1->(DBGOTOP()) Count To nTotal ProcRegua(nTotal) TRV1->(DBGOTOP()) //Gera contratos por cdigo de cliente if MV_PAR10 == 1 _xCodCli := TRV1->TR_CODCLI else _xCodCli := TRV1->TR_CODCLI + TRV1->TR_LOJA endif //Do While !Eof() Do While TRV1->(!Eof()) IncProc("Processando Dados...") //Gera contratos por cdigo de cliente if MV_PAR10 == 1 _Chave := TRV1->TR_CODCLI else _Chave := TRV1->TR_CODCLI + TRV1->TR_LOJA endif //Se o cdigo for diferente, ou seja, mudou o cliente, ir gerar o contrato para este cliente if _xCodCli != _Chave if xFilRec != "" IncProc("Gerando Contrato " + alltrim(str(nNumCo n)) + "...") //Gera o contrato ContCR03(_xCodCli) //Zera os filtros do RECNO xFilRec := "" //Incrementa o nmero do Contrato nNumCon ++ endif endif if Marked("TR_OK") ontratos if alltrim(xFilRec) == "" //Se for vazio NO precisa colocar a virgula para o filtro do select xFilRec := xFilRec + alltrim(str(TRV1->TR_RECF2) ) else //Se no for vazio, precisa colocar a virgula para o filtro do select //IsMark('TR_OK')

//Pega os RECNOS da SF2 para fazer o filtro e gerar os c

xFilRec := xFilRec + "," + alltrim(str(TRV1->TR_ RECF2)) endif EndIf //Gera contratos por cdigo de cliente if MV_PAR10 == 1 _xCodCli := TRV1->TR_CODCLI else _xCodCli := TRV1->TR_CODCLI + TRV1->TR_LOJA endif TRV1->(Dbskip()) enddo if xFilRec != "" //Gera o contrato ContCR03(_xCodCli) //Zera os filtros do RECNO xFilRec := "" endif Aviso("Contratos","Processo Concludo!",{"Ok"}) Return //Funo que gera o contrato Static Function ContCR03(cCliLoja) Local aArea := GetArea() //Local xCodCli := SUBSTR(cCliLoja,1,6) //Local xLojCli := SUBSTR(cCliLoja,7,2) Local xcErro := "" Local cPathDot := cFile Local cPathEst := alltrim(MV_PAR09) // PATH DO ARQUIVO A SER ARMAZENADO NA ESTA CAO DE TRABALHO Private cNumCon := alltrim(str(nNumCon)) Private cPessoa := "" Private cCNPJ := "" Private cProd := "" Private cNFs := "" Private nValor := 0 Private cValor := "" Private cPrazo := "" Private cPedido := "" dbSelectArea("SA1") dbSetOrder(1) MsSeek(xFilial("SA1")+cCliLoja) if SA1->A1_PESSOA == "J" cPessoa := "Juridica" cCNPJ := Transform(SA1->A1_CGC, "@R 99.999.999/9999-99") else cPessoa := "Fisica" cCNPJ := Transform(SA1->A1_CGC, "@R 999.999.999-99") endif

cProd cNFs nValor cValor cPrazo cPedido :=

:= GeraDados(2) := GeraDados(3) := GeraDados(4) :="US$ "+alltrim(Transform(nValor, "@E 999,999,999,999.99")) := GeraDados(5) GeraDados(6)

MontaDir(cPathEst) // Caso encontre arquivo ja gerado na estacao //com o mesmo nome apaga primeiramente antes de gerar a nova impressao If File( cPathEst + cArqDot ) Ferase( cPathEst + cArqDot ) EndIf CpyS2T(cPathDot,cPathEst,.T.) // Copia do Server para o Remote, eh neces sario //para que o wordview e o proprio word possam preparar o arquivo para im pressao e // ou visualizacao .... copia o DOT que esta no ROOTPATH Protheus para o PATH da // estacao , por exemplo C:\WORDTMP hWord := OLE_CreateLink("TMsOleWord97",xcErro,.T.) OLE_SetProperty ( hWord, oleWdVisible, .T.) OLE_NewFile( hWord, cPathEst + cArqDot) //OLE_NewFile( hWord, cFile ) OLE_SetDocumentVar(hWord, 'LOCAL' , AllTrim(SM0->M0_CIDCOB) ) //Local OLE_SetDocumentVar(hWord, 'DTCONTRATO' , AllTrim(DTOC(date())) ) //Dat a OLE_SetDocumentVar(hWord, 'CLIENTE' , AllTrim(SA1->A1_NOME) ) //Nom e do Cliente //OLE_SetDocumentVar(hWord, 'TPPESSOA' , AllTrim(cPessoa) ) //Tipo Pes soa (Juridica / Fisica) OLE_SetDocumentVar(hWord, 'CNPJCLI' , AllTrim(cCNPJ) ) //CNPJ OLE_SetDocumentVar(hWord, 'IECLI' , AllTrim(SA1->A1_INSCR) ) //Insc rio Estadual OLE_SetDocumentVar(hWord, 'ENDCLI' , AllTrim(SA1->A1_END) ) //Endereo do Cliente OLE_SetDocumentVar(hWord, 'MUNCLI' , AllTrim(SA1->A1_MUN) ) //Munici pio do Cliente OLE_SetDocumentVar(hWord, 'UFCLI' , AllTrim(SA1->A1_EST) ) //UF do Cliente OLE_SetDocumentVar(hWord, 'VENDEDORA' , AllTrim(SM0->M0_NOMECOM) ) //No me da Vendedora (Empresa - UPL) OLE_SetDocumentVar(hWord, 'CNPJVEN' , AllTrim(Transform(SM0->M0_CGC, "@R 99.999.999/9999-99")) ) //CNPJ da Vendedora (Empresa - UPL) OLE_SetDocumentVar(hWord, 'IEVEN' , AllTrim(SM0->M0_INSC) ) //IE da Vendedora (Empresa - UPL) OLE_SetDocumentVar(hWord, 'ENDVEN' , AllTrim(SM0->M0_ENDCOB) ) //End ereo da Vendedora (Empresa - UPL) OLE_SetDocumentVar(hWord, 'MUNVEN' , AllTrim(SM0->M0_CIDCOB) ) //Mun icipio da Vendedora (Empresa - UPL) OLE_SetDocumentVar(hWord, 'UFVEN' , AllTrim(SM0->M0_ESTCOB) ) //UF da Vendedora (Empresa - UPL) OLE_SetDocumentVar(hWord, 'PRODUTOS' OLE_SetDocumentVar(hWord, 'NFS' , cProd ) //Produtos do Contrato , cNFs ) //Notas Fiscais do Contr

ato OLE_SetDocumentVar(hWord, 'VLTOTAL' ato OLE_SetDocumentVar(hWord, 'PEDIDOS' , cPedido ) //Pedidos do Contrato OLE_SetDocumentVar(hWord, 'VENCIMENTOS', cPrazo ) //Vencimentos dos titu los do Contrato OLE_SetDocumentVar(hWord, 'PEDIDOS2' , cPedido ) //Pedidos do Contrato //Atualiza os campos OLE_UpdateFields(hWord) //Salva o arquivo OLE_SaveAsFile(hWord, cPathEst + "Cont_CR_"+ cNumCon + ".docx" ) // // Fecha Documento Criado no Word // OLE_CLOSEFILE(hWord) // // Encerra link de comunicacao com o word // OLE_CLOSELINK(hWord) RestArea(aArea) Return /*/ Fun o VALIDPERG Autor Cristian Gutierrez Data 11/07/06 Descri o Verifica a existencia das perguntas criando-as caso seja necessario Uso Programa principal /*/ Static Function ValidPerg(cPerg) // // Definicoes de variaveis // Local aArea := GetArea() Local aRegs := {} Local aHelpEng := {} Local aHelpPor := {} Local aHelpSpa := {} aHelpEng := {"Data Inicial da Emisso da Nota Fiscal de Sada"} aHelpPor := {"Data Inicial da Emisso da Nota Fiscal de Sada"} aHelpSpa := {"Data Inicial da Emisso da Nota Fiscal de Sada"} PutSx1(cPerg "01" "Emissao de " " " " "MV_CH1" , ; //Grupo , ; //cOrdem " , ; //cPergunt , ; //cPerSpa , ; //cPerEng , ; //cVar , cValor ) //Valor Total do Contr

"D" 8 0 0 "G" " " " " " " " " "MV_PAR01" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" aHelpPor aHelpEng aHelpSpa "" )

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;

//cTipo //nTamanho //nDecimal //nPresel //cGSC //cValid //cF3 //cGrpSxg //cPyme //cVar01 //cDef01 //cDefSpa1 //cDefEng1 //cCnt01 //cDef02 //cDefSpa2 //cDefEng2 //cDef03 //cDefSpa3 //cDefEng3 //cDef04 //cDefSpa4 //cDefEng4 //cDef05 //cDefSpa5 //cDefEng5 //aHelpPor //aHelpEng //aHelpSpa //cHelp

aHelpEng := {"Data Final da Emisso da Nota Fiscal de Sada"} aHelpPor := {"Data Final da Emisso da Nota Fiscal de Sada"} aHelpSpa := {"Data Final da Emisso da Nota Fiscal de Sada"} PutSx1(cPerg "02" "Emissao ate" " " " " "MV_CH2" "D" 8 0 0 "G" " " " " " " " " "MV_PAR02" "" "" "" "" "" "" "" , ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; //Grupo //cOrdem //cPergunt //cPerSpa //cPerEng //cVar //cTipo //nTamanho //nDecimal //nPresel //cGSC //cValid //cF3 //cGrpSxg //cPyme //cVar01 //cDef01 //cDefSpa1 //cDefEng1 //cCnt01 //cDef02 //cDefSpa2 //cDefEng2

, , , , , , , , , , , , , , , , , , , , , ,

"" "" "" "" "" "" "" "" "" aHelpPor aHelpEng aHelpSpa "" )

, , , , , , , , , , , , ,

; ; ; ; ; ; ; ; ; ; ; ; ;

//cDef03 //cDefSpa3 //cDefEng3 //cDef04 //cDefSpa4 //cDefEng4 //cDef05 //cDefSpa5 //cDefEng5 //aHelpPor //aHelpEng //aHelpSpa //cHelp

aHelpEng := {"Vendedor Inicial"} aHelpPor := {"Vendedor Inicial"} aHelpSpa := {"Vendedor Inicial"} PutSx1(cPerg "03" "Vendedor de" " " " " "MV_CH3" "C" 6 0 0 "G" " " "SA3" " " " " "MV_PAR03" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" aHelpPor aHelpEng aHelpSpa "" ) , ; ; ; ; ; ; ; ; ; ; ; , ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; //Grupo //cOrdem //cPergunt //cPerSpa //cPerEng //cVar //cTipo //nTamanho //nDecimal //nPresel //cGSC //cValid ; //cF3 //cGrpSxg //cPyme //cVar01 //cDef01 //cDefSpa1 //cDefEng1 //cCnt01 //cDef02 //cDefSpa2 //cDefEng2 //cDef03 //cDefSpa3 //cDefEng3 //cDef04 //cDefSpa4 //cDefEng4 //cDef05 //cDefSpa5 //cDefEng5 //aHelpPor //aHelpEng //aHelpSpa //cHelp

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

aHelpEng := {"Vendedor Final"} aHelpPor := {"Vendedor Final"}

aHelpSpa := {"Vendedor Final"} PutSx1(cPerg "04" "Vendedor ate" " " " " "MV_CH4" "C" 6 0 0 "G" " " "SA3" " " " " "MV_PAR04" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" aHelpPor aHelpEng aHelpSpa "" ) , ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; //Grupo //cOrdem //cPergunt //cPerSpa //cPerEng //cVar //cTipo //nTamanho //nDecimal //nPresel //cGSC //cValid //cF3 //cGrpSxg //cPyme //cVar01 //cDef01 //cDefSpa1 //cDefEng1 //cCnt01 //cDef02 //cDefSpa2 //cDefEng2 //cDef03 //cDefSpa3 //cDefEng3 //cDef04 //cDefSpa4 //cDefEng4 //cDef05 //cDefSpa5 //cDefEng5 //aHelpPor //aHelpEng //aHelpSpa //cHelp

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

aHelpEng := {"Nota Fiscal Inicial"} aHelpPor := {"Nota Fiscal Inicial"} aHelpSpa := {"Nota Fiscal Inicial"} PutSx1(cPerg "05" "Nota Fiscal de" " " " " "MV_CH5" "C" 9 0 0 "G" " " " " " " , ; ; ; ; ; ; ; ; ; ; ; ; ; ; //Grupo //cOrdem //cPergunt //cPerSpa //cPerEng //cVar //cTipo //nTamanho //nDecimal //nPresel //cGSC //cValid //cF3 //cGrpSxg

, , , , , , , , , , , , ,

" " "MV_PAR05" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" aHelpPor aHelpEng aHelpSpa "" )

, , , , , , , , , , , , , , , , , , , , , ,

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;

//cPyme //cVar01 //cDef01 //cDefSpa1 //cDefEng1 //cCnt01 //cDef02 //cDefSpa2 //cDefEng2 //cDef03 //cDefSpa3 //cDefEng3 //cDef04 //cDefSpa4 //cDefEng4 //cDef05 //cDefSpa5 //cDefEng5 //aHelpPor //aHelpEng //aHelpSpa //cHelp

aHelpEng := {"Nota Fiscal Final"} aHelpPor := {"Nota Fiscal Final"} aHelpSpa := {"Nota Fiscal Final"} PutSx1(cPerg "06" "Nota Fiscal ate" " " " " "MV_CH6" "C" 9 0 0 "G" " " "" " " " " "MV_PAR06" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" , ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; //Grupo //cOrdem //cPergunt //cPerSpa //cPerEng //cVar //cTipo //nTamanho //nDecimal //nPresel //cGSC //cValid //cF3 //cGrpSxg //cPyme //cVar01 //cDef01 //cDefSpa1 //cDefEng1 //cCnt01 //cDef02 //cDefSpa2 //cDefEng2 //cDef03 //cDefSpa3 //cDefEng3 //cDef04 //cDefSpa4 //cDefEng4 //cDef05 //cDefSpa5

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

"" aHelpPor aHelpEng aHelpSpa "" )

, , , , ,

; ; ; ; ;

//cDefEng5 //aHelpPor //aHelpEng //aHelpSpa //cHelp

aHelpPor := {"Digite as Moedas do Titulos separadas por virgula.", "Ex emplo: 4,5"} aHelpEng := {"Digite as Moedas do Titulos separadas por virgula.", "Ex emplo: 4,5"} aHelpSpa := {"Digite as Moedas do Titulos separadas por virgula.", "Exempl o: 4,5"} PutSx1(cPerg "07" "Moedas" " " " " "MV_CH7" "C" 60 0 0 "G" " " " " " " " " "MV_PAR07" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" aHelpPor aHelpEng aHelpSpa "" ) , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; //Grupo ; //cOrdem ; //cPergunt ; //cPerSpa ; //cPerEng ; //cVar ; //cTipo ; //nTamanho ; //nDecimal ; //nPresel ; //cGSC ; //cValid ; //cF3 ; //cGrpSxg ; //cPyme ; //cVar01 ; //cDef01 ; //cDefSpa1 ; //cDefEng1 ; //cCnt01 ; //cDef02 ; //cDefSpa2 ; //cDefEng2 ; //cDef03 ; //cDefSpa3 ; //cDefEng3 ; //cDef04 ; //cDefSpa4 ; //cDefEng4 ; //cDef05 ; //cDefSpa5 ; //cDefEng5 ; //aHelpPor ; //aHelpEng ; //aHelpSpa ; //cHelp

aHelpPor := {"Nome do Arquivo Modelo do Contrato (.dot)"} aHelpEng := {"Nome do Arquivo Modelo do Contrato (.dot)"} aHelpSpa := {"Nome do Arquivo Modelo do Contrato (.dot)"} PutSx1(cPerg "08" "Arquivo Modelo" , ; //Grupo , ; //cOrdem , ; //cPergunt

" " " " "MV_CH8" "C" 30 0 0 "G" " " " " " " " " "MV_PAR08" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" aHelpPor aHelpEng aHelpSpa "" )

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;

//cPerSpa //cPerEng //cVar //cTipo //nTamanho //nDecimal //nPresel //cGSC //cValid //cF3 //cGrpSxg //cPyme //cVar01 //cDef01 //cDefSpa1 //cDefEng1 //cCnt01 //cDef02 //cDefSpa2 //cDefEng2 //cDef03 //cDefSpa3 //cDefEng3 //cDef04 //cDefSpa4 //cDefEng4 //cDef05 //cDefSpa5 //cDefEng5 //aHelpPor //aHelpEng //aHelpSpa //cHelp

aHelpPor := {"Indique o caminho onde sero salvos os contratos.", "Os no mes dos arquivos sero gerados conforme o nmero do Contrato."} aHelpEng := {"Indique o caminho onde sero salvos os contratos.", "Os no mes dos arquivos sero gerados conforme o nmero do Contrato."} aHelpSpa := {"Indique o caminho onde sero salvos os contratos.", "Os nomes dos arquivos sero gerados conforme o nmero do Contrato."} PutSx1(cPerg "09" "Onde Salvar" " " " " "MV_CH9" "C" 80 0 0 "G" " " " " " " " " "MV_PAR09" "" "" , , , , , , , , , , , , , , , , , , ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; //Grupo //cOrdem //cPergunt //cPerSpa //cPerEng //cVar //cTipo //nTamanho //nDecimal //nPresel //cGSC //cValid //cF3 //cGrpSxg //cPyme //cVar01 //cDef01 //cDefSpa1

"" "" "" "" "" "" "" "" "" "" "" "" "" "" aHelpPor aHelpEng aHelpSpa "" )

, , , , , , , , , , , , , , , , , ,

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;

//cDefEng1 //cCnt01 //cDef02 //cDefSpa2 //cDefEng2 //cDef03 //cDefSpa3 //cDefEng3 //cDef04 //cDefSpa4 //cDefEng4 //cDef05 //cDefSpa5 //cDefEng5 //aHelpPor //aHelpEng //aHelpSpa //cHelp

aHelpPor := {"Indique se os contratos devem ser gerados por:", "Client e ou Cliente + Loja"} aHelpEng := {"Indique se os contratos devem ser gerados por:", "Client e ou Cliente + Loja"} aHelpSpa := {"Indique se os contratos devem ser gerados por:", "Cliente ou Cliente + Loja"} PutSx1(cPerg "10" "Gerar por" " " " " "MV_CHA" "N" 1 0 0 "C" " " " " " " " " "MV_PAR10" "Cliente" "Cliente" "Cliente" "" "Cliente+Loja" "Cliente+Loja" "Cliente+Loja" "" "" "" "" "" "" "" "" "" aHelpPor , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; //Grupo //cOrdem //cPergunt //cPerSpa //cPerEng //cVar //cTipo //nTamanho //nDecimal //nPresel //cGSC //cValid //cF3 //cGrpSxg //cPyme //cVar01 //cDef01 //cDefSpa1 //cDefEng1 //cCnt01 //cDef02 //cDefSpa2 //cDefEng2 //cDef03 //cDefSpa3 //cDefEng3 //cDef04 //cDefSpa4 //cDefEng4 //cDef05 //cDefSpa5 //cDefEng5 //aHelpPor

aHelpEng aHelpSpa "" ) RestArea(aArea) Return(Nil)

, ; //aHelpEng , ; //aHelpSpa , ; //cHelp

You might also like