- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Pegar valor de checkbox
×
Linguagem de Programação ADVPL
Perguntas Pegar valor de checkbox
- Sombra
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 593
- Obrigados Recebidos: 1
11 anos 6 meses atrás #13536
por Sombra
Respondido por Sombra no tópico Pegar valor de checkbox
Bom dia Hewnry,
A uns tempos atraz, precisei desenvolver algo parecido, em que Contava Listar ima relação de Materiais, e dessa relacao realzar uma Troca nos itens de um orcamento, e com essa troca de materias, tambem realizar a troca de precos. Um situacao bem especifica de um cliente.
Esse programa Lista todos os Materiais envolvidos no Orcamento, mais a tabela de materiais ( tabela especica), Marcava quais ele queria realizar a troca, e dai seguia o processo.
Estou te enviando esse programa para vc dar uma analusada. Espero que te ajude.
abs
///////////////////////////////////////////////////////////////////////////////////
//+
+//
//| PROGRAMA | ListBoxMark.prw | AUTOR | Luis Sombra | DATA | 18/01/2004 |//
//+
+//
//| DESCRICAO | Realiza a TROCA DE MATERIAIS dentro do Orcamento por comodos |//
//| | |//
//| | |//
//+
+//
//| MANUTENCAO DESDE SUA CRIACAO |//
//+
+//
//| | | |//
//+
+//
///////////////////////////////////////////////////////////////////////////////////
#include "Protheus.Ch"
User Function ListBoxMar()
Local aSalvAmb := {}
Local cVar := Nil
Local oDlg := Nil
Local cTitulo := "Troca de Materiais"
Local lMark := .F.
Local lMakr := .F.
Local oOk := LoadBitmap( GetResources(), "LBOK" )
Local oNo := LoadBitmap( GetResources(), "LBNO" )
Local oChk := Nil
Private _TPCALC := Space(3)
Private nQtdPd := 0.00
Private nQtdMat := 0.00
Private _Mateid := space(06)
Private cTipoMat := ""
Private cComodo := ""
Private cMatOld := ""
Private _UNID := ""
Private cCodComd := space(04)
Private lChk := .F.
Private oLbx := Nil
Private oLby := Nil
Private aVetor := {}
Private aVetWE3 := {}
Private aVetWE9 := {}
Private aVetWE7 := {}
Private aMaterial := {}
Private bPvez := .T.
Private bPmat := .T.
Private nCompPg := 0.00
Private nCompPd := 0.00
Private _Item
Private _DTORCA
_FILIAL := WD1->WD1_FILIAL
_ANO := WD1->WD1_ANO
_ORCA := WD1->WD1_ORCAID
_LOJA := WD1->WD1_LOJAID
_DTORCA := WD1->WD1_DTORCA
IF bPmat
bPmat := .F.
DbSelectArea("WD8") // Carrega Tabela com Descricao dos Materiais
DbSetOrder(2)
DbGotop()
While !Eof()
aAdd(aMaterial,{ lMakr,;
WD8->WD8_MATEID,; / - Pos 02 - Codigo Ident. do Material
WD8->WD8_CODIGO,; // - Pos 03 - Codigo GENERICO DO MATERIAL
Substr(WD8->WD8_DESC,1,35),; // - Pos 04 - Descricao do material
WD8->WD8_TIPMID,; // - Pos 05 - Tipo material
Substr(WD8->WD8_DESCTP,1,10),; // - Pos 06 - Desc do tipo material
WD8->WD8_PROCID,; // - Pos 07 - Procedencial do material
Substr(WD8->WD8_DESCPR,1,10) }) // - Pos 08 - Desc. da procedencia do material
DbSkip()
End
Endif
DbSelectArea("WA9") // Carrego Tabela de Comodos do Orcamento
aSalvAmb := GetArea()
DbSetOrder(1)
IF DbSeek( xFilial() + _ANO + _ORCA + _LOJA )
While !Eof() .And. WA9_FILIAL == xFilial("WA9") .And. WA9->WA9_ANO == WD1->WD1_ANO .And. WA9->WA9_ORCAID == WD1->WD1_ORCAID .And. WA9->WA9_LOJAID == WD1->WD1_LOJAID
bPvez := .T.
aAdd(aVetWE9,{ lMark,;
WA9->WA9_ORCAID,; // - Pos 01 - Codigo Orcamento
WA9->WA9_ORCOID,; // - Pos 02 - Codigo OrcamentoComodo
WA9->WA9_COMOID,; // - Pos 03 - Codigo Comodo
WA9->WA9_ORDEM,; // - Pos 04 - Sequencial
WA9->WA9_COMODO,; // - Pos 05 - Desc Comodo
WA9->WA9_COMPLEM,; // - Pos 06 - Complemento Comodo
"A" ,; // - Pos 07 - Reservado para Status Tipo de Operacao a ser Realizada (Inclusao - Atualizacao - Exclusao)
WA9->WA9_VALO,; // - Pos 08 - Valor do Comodo
WA9->WA9_ANO,; // - Pos 09 - Ano
WA9->WA9_LOJAID}) // - Pos 10 - Cod.Ident. Loja
_ORCOID := WA9->WA9_ORCOID
DbSelectArea("WE7") // Carrego a Tabela de Precos do Orcamento relacionados aos Comodos
DbSetOrder(3)
IF DbSeek( xFilial() + WA9->WA9_ORCAID + WA9->WA9_LOJAID + WA9->WA9_ANO + WA9->WA9_ORCOID )
While !Eof() .AND. WE7->WE7_ANO = _ANO .And. WE7->WE7_ORCAID = _ORCA .AND. WE7->WE7_LOJAID = _LOJA .AND. WE7->WE7_ORCOID = _ORCOID
cComboTam := space(20)
cDescPro := space(35)
// Busca Desc. Produto
dbselectarea("WD8") // Tabela de Materiais
DbSetOrder(1)
If dbseek(xFilial("WD8")+WE7->WE7_MATEID)
cDescPro := Substr(WD8->WD8_DESC ,1,35)
Endif
// Busca Tipo Acabamentos do Material - WG3
dbselectarea("WG3")
DbSetOrder(1)
If dbseek(xFilial("WG3")+WE7->WE7_TACAID)
cComboTam :=substr( WG3->WG3_DESC,1,10)
Endif
aAdd(aVetWE7,{;
WE7->WE7_ORMAID,; // Pos 1 Cod.Ident. Codigo Identificador 999999
WE7->WE7_ANO ,; // Pos 2 Ano
WE7->WE7_LOJAID,; // Pos 3 Identificador da Loja
WE7->WE7_ORCAID,; // Pos 4 Codigo Orcamento
WE7->WE7_ORCOID,; // Pos 5 Codigo Orcamento Comodo
WE7->WE7_ORCUID,; // Pos 6 Codigo Orca.Utilizacao
WE7->WE7_ORITID,; // Pos 7 Codigo Orca. Item
WE7->WE7_TACAID,; // Pos 8 Tipo Acabamento do Material
WE7->WE7_MATEID,; // Pos 9 Codigo Ident. Do Material 999999
WE7->WE7_METRAG,; // Pos 10 Metragem @E 999.999999999
WE7->WE7_COMPRI,; // Pos 11 Comprimento @E 999.999999999
WE7->WE7_LARGUR,; // Pos 12 Largura @E 999.999999999
WE7->WE7_ESPESS,; // Pos 13 Espessura @E 999.99
WE7->WE7_UNID ,; // Pos 14 Unidade de Medida @!
WE7->WE7_QUANT ,; // Pos 15 Quantidade 9999.999999999
WE7->WE7_VLUNIT,; // Pos 16 Valor Unitario @E 999,999.99
WE7->WE7_QTDCUB,; // Pos 17 Quantidade de Cubas 9999
WE7->WE7_SUBTOT,; // Pos 18 Sub Total @E 999,999.99
WE7->WE7_VALTOT,; // Pos 19 Valor Total @E 999,999,999.99
WE7->WE7_TPCALC,; // Pos 20 Tipo Calculo @!
WE7->WE7_PRCESP,; // Pos 21 Preco Especial @!
WE7->WE7_MODUID,; // Pos 22 Codigo Modulacao 999
WE7->WE7_ORDENA,; // Pos 23 Ordenacao
cDescPro ,; // Pos 24 Desc. Produto
cComboTam ,; // Pos 25 Descricao do Acabamento
"A " ,; // Pos 26 Reservado para Status Tipo de Operacao a ser Realizada (Inclusao - Atualizacao - Exclusao)
WE7->WE7_MEDVAL,; // Pos 27 Medida e Valor (PAGINADO ou PADRONIZADO) - PAG ou PAD
WE7->WE7_CODFAM}) // Pos 28 Codigo Familia do Material
IF bPvez
_Mat := ALLTRIM(WE7->WE7_MATEID)
aAdd(aVetor,{ lMark, substr(WA9->WA9_COMODO,1,15),; // - Pos - 02 - Descricao do Comodo
cDescPro,; // - Pos - 03 - Descricao do Produto
cComboTam,; // - Pos - 04 - Tipo Acabamento
WA9->WA9_ORCOID,; // - Pos - 05 - Codigo OrcamentoComodo
WE7->WE7_MEDVAL,; // - Pos - 06 - Medida e Valor (PAGINADO ou PADRONIZADO) - PAG ou PAD
WE7->WE7_MATEID,; // - Pos - 07 - Codigo Ident. Do Material 999999
WA9->WA9_COMOID,; // - Pos - 08 - Codigo do Cpmodo
WE7->WE7_ORCUID}) // - Pos - 09 - Codigo Id da Utilizacao
bPvez := .F.
Else
IF ALLTRIM(WE7->WE7_MATEID) <> ALLTRIM( _Mat )
//aAdd(aVetor,{ lMark, Substr(WA9->WA9_COMODO,1,15),; // - Pos - 02 - Descricao do Comodo
// cDescPro,; // - Pos - 03 - Descricao do Produto
// cComboTam,; // - Pos - 04 - Tipo Acabamento
// WA9->WA9_ORCOID,; // - Pos - 05 - Codigo OrcamentoComodo
// WE7->WE7_MEDVAL,; // - Pos - 06 - Medida e Valor (PAGINADO ou PADRONIZADO) - PAG ou PAD
// WE7->WE7_MATEID}) // - Pos - 07 - Codigo Ident. Do Material 999999
aAdd(aVetor,{ lMark, substr(WA9->WA9_COMODO,1,15),; // - Pos - 02 - Descricao do Comodo
cDescPro,; // - Pos - 03 - Descricao do Produto
cComboTam,; // - Pos - 04 - Tipo Acabamento
WA9->WA9_ORCOID,; // - Pos - 05 - Codigo OrcamentoComodo
WE7->WE7_MEDVAL,; // - Pos - 06 - Medida e Valor (PAGINADO ou PADRONIZADO) - PAG ou PAD
WE7->WE7_MATEID,; // - Pos - 07 - Codigo Ident. Do Material 999999
WA9->WA9_COMOID,; // - Pos - 08 - Codigo do Cpmodo
WE7->WE7_ORCUID}) // - Pos - 09 - Codigo Id da Utilizacao
_Mat := WE7->WE7_MATEID
Endif
Endif
DbSelectArea("WE7")
DbSkip() //WE7
End
Endif
DbSelectArea("WE3") // Carrego Tabela de Itens do Orcamento
DbSetOrder(2)
// IF DbSeek( xFilial() + _ANO + _LOJA + _ORCA + _ORCOID) // lucky
IF DbSeek( xFilial() + _ANO + _ORCA + _ORCOID) // lucky
While !Eof() .And. WE3_FILIAL == xFilial("WE3") .And. WE3->WE3_ANO == _ANO .And. WE3->WE3_ORCAID == _ORCA .AND. WE3->WE3_LOJAID == _LOJA .AND. WE3->WE3_ORCOID == _ORCOID
DbSelectArea("WE2")
DbSetOrder(1)
If !DbSeek(xFilial("WE2") + WE3->WE3_UTILID )
_cDesUti := Space(50)
Else
_cDesUti := WE2->WE2_DESC
Endif
_DesTpUti := ""
dbselectarea("WD9")
DbSetOrder(1)
If dbseek(xFilial("WD9")+WE3->WE3_TIPUTI)
_DesTpUti := WD9->WD9_DESC
Endif
For x:= 1 To LEN(aVetWE7)
IF ALLTRIM(aVetWE7[x][5]) = ALLTRIM( _ORCOID ) .AND. ALLTRIM(aVetWE7[x][6]) = WE3->WE3_ORCUID // Verifico se e mesmo comodo selecionado
aAdd(aVetWE3,{WE3->WE3_ORCAID, ; // Pos 1 - Codigo Orcamento
WE3->WE3_ORCOID, ; // Pos 2 - Codigo Orcamento Comodo
WE3->WE3_Ordena, ; // Pos 3 - Ordenacao (sequencia de utilizacao dentro do mesmo comodo)
WE3->WE3_ORCUID, ; // Pos 4 - Codigo Orca. Utilizacao
WE3->WE3_UTILID, ; // Pos 5 - Codigo Utilizacao
_cDesUti, ; // Pos 6 - Desc. utilizacao
WE3->we3_TIPUTI, ; // Pos 7 - Codigo Tipo de Utilizacao
_DesTpUti, ; // Pos 8 - Desc. Tipo de utilizacao
WE3->WE3_QUANT, ; // Pos 9 - Qtde
WE3->WE3_COMPLE, ; // Pos 10 - Complemento
WE3->WE3_PATH, ; // Pos 11 - Path + Nome do Arquivo com figura
"A" , ; // Pos 12 - Reservado para Status Tipo de Operacao a ser Realizada (Inclusao - Atualizacao - Exclusao)
WE3->WE3_VALOR, ; // Pos 13 - Valor da Utilizacao
WE3->WE3_VALTOT, ; // Pos 14 - Valor TOTAL da Utilizacao
WE3->WE3_VLACAB, ; // Pos 15 - Valor do Acabamento (furacao/colagem)
WE3->WE3_FATAJU}) // Pos 16 - Fator de Ajuste
Endif
Next x
DbSelectArea("WE3")
DbSkip()
End
Endif
//********************************************************************************************************
DbSelectArea("WA9")
dbSkip() // WA9
End
Else
Endif
//+
+
//| Monta a tela para usuario visualizar consulta |
//+
+
If Len( aVetor ) == 0
Aviso( cTitulo, "Nao existe Comodos para esse Orçamento ", {"Ok"} )
Return
Endif
// DEFINE MSDIALOG oDlg TITLE cTitulo FROM 0,0 TO 240,540 PIXEL
DEFINE MSDIALOG oDlg TITLE cTitulo FROM 0,0 TO 465,540 PIXEL
@ 10,10 LISTBOX oLbx VAR cVar FIELDS HEADER ;
" ", "Comodo", "Material", "Acabamento" ;
SIZE 250,095 OF oDlg PIXEL ON dblClick( U_CONTMX( aVetor[oLbx:nAt,1] := !aVetor[oLbx:nAt,1],oLbx:Refresh()) )
oLbx:SetArray( aVetor )
oLbx:bLine := {|| {Iif(aVetor[oLbx:nAt,1],oOk,oNo),;
aVetor[oLbx:nAt,2],;
aVetor[oLbx:nAt,3],;
aVetor[oLbx:nAt,4]}}
@ 110,10 CHECKBOX oChk VAR lChk PROMPT "Marca/Desmarca" SIZE 60,007 PIXEL OF oDlg;
ON CLICK(Iif(lChk,Marca(lChk),Marca(lChk)))
@ 130,10 LISTBOX oLby VAR cVar FIELDS HEADER ;
" ", "Material", "Tipo", "Procedencia" ;
SIZE 250,095 OF oDlg PIXEL ON dblClick( U_CONTMY( aMaterial[oLby:nAt,1] := !aMaterial[oLby:nAt,1],oLby:Refresh()) )
oLby:SetArray( aMaterial )
oLby:bLine := {|| {Iif(aMaterial[oLby:nAt,1],oOk,oNo),;
aMaterial[oLby:nAt,4],;
aMaterial[oLby:nAt,6],;
aMaterial[oLby:nAt,8]}}
DEFINE SBUTTON FROM 107,180 TYPE 1 ACTION (MsAguarde({|lEnd| U_OKM(@lEnd)},"Aguarde...","Troca de Material",.T.)) ENABLE OF oDlg
DEFINE SBUTTON FROM 107,213 TYPE 2 ACTION oDlg:End() ENABLE OF oDlg
ACTIVATE MSDIALOG oDlg CENTER
RestArea( aSalvAmb )
Return .T.
///////////////////////////////////////////////////////////////////////////////////
//| DESCRICAO | Funcao - u_ListBoxMar() |//
//| |
//| | Funcao que marca ou desmarca todos os objetos |//
//+
+//
///////////////////////////////////////////////////////////////////////////////////
Static Function Marca(lMarca)
Local i := 0
For i := 1 To Len(aVetor)
aVetor[1] := lMarca
Next i
oLbx:Refresh()
Return
//********************
Static Function U_OkM()
//*********************
Local i := 0
Local u := 0
For u := 1 To Len(aMaterial) // Vetor com material de troca
IF aMaterial[1] = .T. // Marcado para Troca
_Mateid := aMaterial[2] // Codigo Ident. do Material
_DescMat := aMaterial[4] // Descricao do Material
Endif
Next u
For i := 1 To Len(aVetor) // VETOR QUE SOFRERA MODIFICACAO
IF aVetor[1] = .T. // Marcado para Troca
cComodo := aVetor[5] // Codigo Identificador do Comodo
cTipoMat := aVetor[6] // Verifica se e Paginado ou Padronizado
cMatOld := aVetor[7] // Codigo Ident. do material que sera alterado/mudado
cCodComd := aVetor[8] // Codigo do Comodo
cOrCuid := aVetor[9] // Codigo Id da Utilizacao
DbSelectArea("WE7")
DbsetOrder(4)
DbGotop()
If DbSeek(xFilial("WE7") + cMatOld + _ORCA + _ANO + cComodo)
nVlm2ml := 0.00
nTotMat := 0.00
vMAT := WE7->WE7_MEDVAL
_UNID := WE7->WE7_UNID
_Espess := IIF(WE7->WE7_ESPESS=0,2,WE7->WE7_ESPESS)
nCompPg := WE7->WE7_COMPRIM // Comprimento
_PsqLarg:= WE7->WE7_LARGUR
_LLarg := WE7->WE7_LARGUR
_TPCALC := WE7->WE7_TPCALC
IF vMAT = "PAG"
nQtdPg := WE7->WE7_QUANT // Quantidade
nTotMed := WE7->WE7_METRAG // Valor da METRAGEM do material
nCompPg := WE7->WE7_COMPRI // Comprimento do Material
nLLargPg := WE7->WE7_LARGUR // Limite de Largura
ElseIf vMAT = "PAD"
nQtdPd := WE7->WE7_QUANT // Quantidade
nQtdPd := WE7->WE7_METRAG // Valor da METRAGEM do material
nCompPd := WE7->WE7_COMPRI // Comprimento do Material
nLargPd := WE7->WE7_LARGUR // Limite de Largura
Else
nQtdPd := 0.00
nQtdPg := 0.00
nTotMed := 0.00
nCompPg := 0.00
nLLargPg := 0.00
Endif
//======================================================
IF _LLarg > 20 // Sempre Assumir Metro QUADRADO (Metragem) qdo Limite de Largura for MAIOR que 20 cm
DbSelectArea("WG1") // Vou buscar Preco do Material na Tabela de Precos PADRONIZADOS ( WG1 )
DbSetOrder(5)
bTemPrc := .F.
IF DbSeek(xFilial("WG1")+_Mateid+STR(_Espess,2)+STR(_PsqLarg,2) + DTOS(WD1->WD1_DTORCA) + _UNID,.T.)
IF WG1->WG1_DATA > WD1->WD1_DTORCA
DbSkip(-1)
While !EOF() .AND. WG1->WG1_MAT = _Mateid
IF _Espess = WG1->WG1_ESPESS .AND. ALLTRIM(WG1->WG1_UNID) = "M2"
bTemPrc := .T.
nVlm2ml := WG1->WG1_VALOR
_Unid := WG1->WG1_UNID
Endif
DbSkip()
End
Else
While !EOF() .AND. WG1->WG1_MAT = _Mateid
IF _Espess = WG1->WG1_ESPESS .AND. ALLTRIM(WG1->WG1_UNID) = "M2"
bTemPrc := .T.
nVlm2ml := WG1->WG1_VALOR
_Unid := WG1->WG1_UNID
Endif
DbSkip()
End
Endif // IF WG1->WG1_DATA > WD1->WD1_DTORCA
Endif // IF DbSeek(xFilial("WG1")+_Mateid+STR(_Espess,2)+STR(_PsqLarg,2) + DTOS(WG1_DATA),.T.)
IF ! bTemPrc
MsgInfo("Sr. Usuário, " + chr(13) + "Não existe preço válido cadastrado associado para esse Material." + CHR(13)+ CHR(13)+"Tabela ==> WD8 == 01 ",cAtencao)
nCompPg := 0.00
nQtdPg := 1.000
Return
Endif
Else
DbSelectArea("WG1") // Vou buscar Preco do Material na Tabela de Precos PAGINADOS ( WG1 )
DbSetOrder(5)
DBGOTOP()
_PsqLarg := _LLarg
IF _TPCALC = "ATE"
DbSelectArea("WG1") // Vou buscar Preco do Material na Tabela de Precos PAGINADOS ( WG1 )
DbSetOrder(6)
DBGOTOP()
nVlm2ml := 0.00
DbSeek(xFilial("WG1")+_Mateid+_UNID+STR(_Espess,2))
WHILE !EOF() .AND. WG1->WG1_MAT = _Mateid .AND. ALLTRIM(WG1->WG1_UNID) = ALLTRIM(_UNID) .AND. WG1->WG1_ESPESS = _Espess
IF WG1->WG1_DATA <= WD1->WD1_DTORCA .AND. WG1->WG1_LLARG = _PsqLarg
nVlm2ml := WG1->WG1_VALOR
Endif
DbSkip()
End
ElseIF _TPCALC = "CXL"
DbSelectArea("WG1") // Vou buscar Preco do Material na Tabela de Precos PAGINADOS ( WG1 )
DbSetOrder(6)
DBGOTOP()
_PsqLarg := 0.00
IF _LLarg > 0 .and. _LLarg < 0.101
_PsqLarg := 10.00
ElseIF _LLarg > 0.101 .and. _LLarg <= 0.150
_PsqLarg := 15.00
ElseIF _LLarg > 0.150 .and. _LLarg <= 0.201
_PsqLarg := 20.00
Endif
nVlm2ml := 0.00
DbSeek(xFilial("WG1")+_Mateid+_UNID+STR(_Espess,2))
WHILE !EOF() .AND. WG1->WG1_MAT = _Mateid .AND. ALLTRIM(WG1->WG1_UNID) = ALLTRIM(_UNID) .AND. WG1->WG1_ESPESS = _Espess
IF WG1->WG1_DATA <= WD1->WD1_DTORCA .AND. WG1->WG1_LLARG = _PsqLarg
nVlm2ml := WG1->WG1_VALOR
Endif
DbSkip()
End
Else
DbSeek(xFilial("WG1")+_Mateid+STR(_Espess,2)+STR(_PsqLarg,2) + DTOS(WD1->WD1_DTORCA) + _UNID,.T.)
IF WG1->WG1_DATA > WD1->WD1_DTORCA
DbSkip(-1)
IF _Mateid=WG1->WG1_MAT .AND. STR(_Espess,2)= STR(WG1->WG1_ESPESS,2) .AND. STR(WG1->WG1_LLARG,2)=STR(_PsqLarg,2)
nVlm2ml := WG1->WG1_VALOR
_Unid := WG1->WG1_UNID
Else
ALERT("A15 ==> Nao existe preco com especificacoes Fornecidas para ese Material")
Endif
Else
DbSkip(-1)
IF _Mateid = WG1->WG1_MAT
nVlm2ml := WG1->WG1_VALOR // Incluido em 23/10/2008
Endif
Endif
Endif
Endif
nVMat := 0.00
nTotMat := 0.00
IF nCompPg <> 0
IF nLLargPg = 0 // Limite de Largura
nTotMed := Round(nCompPg,3) // Valor Total de Medida ( M2 ou ML) Metragem
nVMat := Round(nVlm2ml * nTotMed,2) // Valor do Material
nTotMat := Round(nVlm2ml * nTotMed * nQtdPg,2) // Valor TOTAL do Material
Else
IF ALLTRIM(UPPER(_UNID)) = "ML" .AND. ALLTRIM(_TPCALC ) = "CXL"
nTotMed := INT(Round(nCompPg*1000,0)/1000*nQtdPg*100)/100
nVMat := nVlm2ml
nTotMat := Round( (nVMat * nTotMed) - 0.001,2) // Valor TOTAL do Material
ElseIF ALLTRIM(UPPER(_UNID)) = "M2" .AND. ALLTRIM(_TPCALC ) = "CXL"
nTotMed := INT(Round(nLLargPg * nCompPg*1000,0)/1000*nQtdPg*100)/100
nVMat := nVlm2ml
nTotMat := Round( (nVMat * nTotMed)-0.001,2) // Valor TOTAL do Material
ElseIF ALLTRIM(UPPER(_UNID)) = "M2" .AND. ALLTRIM(_TPCALC ) = "M2"
nTotMed := INT(nLLargPg * nCompPg *100)/100
nVMat := nVlm2ml * nTotMed
nTotMat := Round( (nVMat * nQtdPg)-0.001,2) // Valor TOTAL do Material
Else
nTotMed := Round(nQtdPg,3)
nVMat := nVlm2ml * nTotMed
nTotMat := Round((nVlm2ml * nTotMed * nQtdPg)-0.001,2) // Valor TOTAL do Material
Endif
Endif
Else
nTotMed := Round(nQtdPg,3) // Metragem
nVMat := Round(nVlm2ml * nTotMed,2) // Valor TOTAL do Material
nTotMat := Round((nVlm2ml * nTotMed * nQtdPg)-0.001,2) // Valor TOTAL do Material
Endif
RecLock("WE7",.F.)
WE7->WE7_VLUNIT := nVlm2ml // Valor do Material // EPA
WE7->WE7_TPCALC := _TPCALC // Tipo de Calculo
WE7->WE7_ESPESS := _Espess // Espessura
WE7->WE7_MEDVAL := cTipoMat // Tipo medicao
WE7->WE7_METRAG := nTotMed // Valor da Metragem
WE7->WE7_UNID := _Unid // Unidade de Medida
WE7->WE7_COMPRIM := nCompPg // Comprimento
WE7->WE7_MATEID := _Mateid // Codigo Id do Material
IF ALLTRIM(UPPER(_UNID)) = "M2" .AND. ALLTRIM(_TPCALC ) = "CXL"
nTotMed := INT(Round(nLLargPg * nCompPg*1000,0)/1000*WE7->WE7_QUANT*100)/100
WE7->WE7_METRAG := nTotMed
ElseIF ALLTRIM(UPPER(_UNID)) = "ML" .AND. ALLTRIM(_TPCALC ) = "CXL"
nTotMed := INT(Round(nCompPg*1000,0)/1000*WE7->WE7_QUANT*100)/100
WE7->WE7_METRAG := nTotMed
Else
WE7->WE7_METRAG := INT(nLLargPg * nCompPg *100)/100
Endif
IF ALLTRIM(UPPER(_UNID)) = "ML" .AND. ALLTRIM(_TPCALC ) = "CXL"
WE7->WE7_VALTOT := Round( (WE7->WE7_VLUNIT * WE7->WE7_METRAG)-0.001,2)
ElseIF ALLTRIM(UPPER(_UNID)) = "ML" .AND. ALLTRIM(_TPCALC ) = "ATE"
WE7->WE7_VALTOT := ROUND( (WE7->WE7_QUANT * WE7->WE7_VLUNIT)-0.001,2)
ElseIF ALLTRIM(UPPER(_UNID)) = "M2" .AND. ALLTRIM(_TPCALC ) = "ATE"
WE7->WE7_VALTOT := Round( (WE7->WE7_QUANT * WE7->WE7_VLUNIT)-0.001,2)
ElseIF ALLTRIM(UPPER(_UNID)) = "M2" .AND. ALLTRIM(_TPCALC ) = "CXL"
WE7->WE7_VALTOT := Round( (WE7->WE7_VLUNIT * WE7->WE7_METRAG)-0.001,2)
Else
WE7->WE7_VALTOT := ROUND( (WE7->WE7_QUANT * WE7->WE7_VLUNIT * WE7->WE7_METRAG)-0.001,2)
Endif
msUnLock()
Endif // If DbSeek(xFilial("WE7") + cMatOld + _ORCA + _ANO + cComodo)
nTotMat := 0.00
nValUtil := 0.00
nTotUtil := 0.00
_TotComo := 0.00
dbSelectArea("WE7") // Tabela de Materiais do Orcamento/Comodo
WE7->(dbSetOrder()
WE7->(DbGotop())
cChave := xFilial("WE7") + _ORCA + _ANO + cComodo
DbSeek(cChave,.T.)
While !Eof()
IF ! (WE7->WE7_FILIAL == xFilial("WE7") .And. WE7->WE7_ANO == _ANO .And.;
WE7->WE7_LOJAID == _LOJA .AND. WE7->WE7_ORCAID == _ORCA .AND.;
WE7->WE7_ORCOID == cComodo)
dbSkip()
Loop
Endif
IF WE7->WE7_MATEID = _Mateid
nTotMat := nTotMat + WE7->WE7_VALTOT // Valor TOTAL do Material
Endif
DbSkip()
End
// Totalizo UTILIZACOES
dbSelectArea("WE7") // Tabela de Materiais do Orcamento/Comodo
WE7->(dbSetOrder()
WE7->(DbGotop())
cChave := xFilial("WE7") + _ORCA + _ANO + cComodo + cOrcuid
_QtdUtl := 0
DbSeek(cChave,.T.)
While !Eof()
IF ! (WE7->WE7_FILIAL == xFilial("WE7") .And. WE7->WE7_ANO == _ANO .And.;
WE7->WE7_LOJAID == _LOJA .AND. WE7->WE7_ORCAID == _ORCA .AND.;
WE7->WE7_ORCOID == cComodo .AND. WE7->WE7_ORCUID == cOrcuid)
dbSkip()
Loop
Endif
//IF WE7->WE7_MATEID = _Mateid
dbSelectArea("WE3") // Tabela de Utilizacoes
WE3->(dbSetOrder(3))
WE3->(DbGotop())
xChuti := xFilIAL("WE3") + WE7->WE7_ORCUID + _ORCA + _ANO + _LOJA
IF DbSeek(xChuti)
_QtdUtl := WE3->WE3_QUANT
Endif
dbSelectArea("WE7")
nValUtil := nValUtil + WE7->WE7_VALTOT // Valor unitario da utilizacao
nTotUtil := nTotUtil + Round((_QtdUtl * WE7->WE7_VALTOT),2) // Valor Total da Utilizacao
//Endif
DbSkip()
End
// Totalizo COMODO
dbSelectArea("WE7") // Tabela de Materiais do Orcamento/Comodo
WE7->(dbSetOrder()
WE7->(DbGotop())
cChave := xFilial("WE7") + _ORCA + _ANO + cComodo
_QtdUtl := 1
DbSeek(cChave,.T.)
While !Eof()
IF ! (WE7->WE7_FILIAL == xFilial("WE7") .And. WE7->WE7_ANO == _ANO .And.;
WE7->WE7_LOJAID == _LOJA .AND. WE7->WE7_ORCAID == _ORCA .AND.;
WE7->WE7_ORCOID == cComodo)
dbSkip()
Loop
Endif
dbSelectArea("WE3") // Tabela de Utilizacoes
WE3->(dbSetOrder(3))
WE3->(DbGotop())
xChuti := xFilIAL("WE3") + WE7->WE7_ORCUID + _ORCA + _ANO + _LOJA + cComodo
IF DbSeek(xChuti)
_QtdUtl := WE3->WE3_QUANT
Endif
dbSelectArea("WE7")
_TotComo := _TotComo + (WE7->WE7_VALTOT*_QtdUtl)
DbSkip()
End
// TOTALIZA O COMODO ATUAL
DbSelectArea("WA9")
DbsetOrder(2)
DbGotop()
If DbSeek(xFilial("WA9") + cComodo + cCodComd + _ANO)
RecLock("WA9",.F.)
FieldPut(FieldPos("WA9_VALO") , _TotComo) // Atualizo Valor Total do Comodo
MsUnlock()
Endif
// TOTALIZA A UTILIZACAO DO COMODO ATUAL
dbSelectArea("WE3") // Tabela de Utilizacoes do Comodo
WE3->(dbSetOrder(3))
WE3->(DbGotop())
xChUTX := xFilial() + cOrcuid + _ORCA + _ANO + _LOJA
dbSeek(xFilial("WE3")+xChUTX,.T.)
While !Eof()
IF ! (WE3->WE3_FILIAL == xFilial("WE3") .And. WE3->WE3_ANO == _ANO .And.;
WE3->WE3_ORCAID == _ORCA .and. WE3->WE3_ORCUID == cOrcuid)
dbSkip()
Loop
Endif
RecLock("WE3",.F.)
WE3->WE3_VALOR := nValUtil // Atualizo Valor da Utilizacao
WE3->WE3_VALTOT := nTotUtil // Atualizo Valor TOTAL da Utilizacao
msUnLock()
dbskip()
End
// Atualizo TOTAL GERAL DO ORCAMENTO
nTtOrca := 0.00
dbSelectArea("WA9")
WA9->(dbSetOrder(1))
WA9->(DbGotop())
dbSeek(xFilial("WA9") + _ANO + _ORCA + _LOJA)
While !Eof()
IF ! (WA9->WA9_FILIAL == xFilial("WA9") .And. WA9->WA9_ANO == _ANO .And.;
WA9->WA9_LOJAID == _LOJA .AND. WA9->WA9_ORCAID == _ORCA)
dbSkip()
Loop
Endif
nTtOrca := nTtOrca + ROUND(WA9->WA9_VALO,2)
DbSkip()
End
// Totalizo os Valor na Tabela de Orcamentos ( WD1 )
DbSelectArea("WD1")
WD1->(dbSetOrder(1))
WD1->(DbGotop())
IF dbSeek(xFilial("WD1") + _ANO + _ORCA + _LOJA)
RecLock("WD1",.F.)
WD1->WD1_VALOR := nTtOrca
msUnLock()
Endif
Endif
Next i
MsgInfo("Sr. Usuário, " + chr(13) + "Final de Processamento. Dados alterados com sucesso." + CHR(13)+"",cAtencao)
// Busca Desc. Produto
dbselectarea("WD8") // Tabela de Materiais
DbSetOrder(1)
If dbseek(xFilial("WD8")+_Mateid)
cDescPro := Substr(WD8->WD8_DESC ,1,15)
Endif
For i := 1 To Len(aVetor) // VETOR QUE SOFRERA MODIFICACAO
IF aVetor[1] = .T. // Marcado para Troca
aVetor[3] := cDescPro // Descricao do produto
Endif
Next i
oLbx:Refresh()
Return
//************************ *
Static Function U_CONTMX()
//*************************
Local nPos := oLbx:nAt
IF aVetor[nPos][1] = .T.
Else
Endif
Return
//*************************
Static Function U_CONTMY()
//*************************
Local nPos := oLby:nAt
Local i := 0
For i := 1 To Len(aMaterial)
aMaterial[1] := .F.
Next i
oLby:Refresh()
aMaterial[nPos][1] = .T.
Return
A uns tempos atraz, precisei desenvolver algo parecido, em que Contava Listar ima relação de Materiais, e dessa relacao realzar uma Troca nos itens de um orcamento, e com essa troca de materias, tambem realizar a troca de precos. Um situacao bem especifica de um cliente.
Esse programa Lista todos os Materiais envolvidos no Orcamento, mais a tabela de materiais ( tabela especica), Marcava quais ele queria realizar a troca, e dai seguia o processo.
Estou te enviando esse programa para vc dar uma analusada. Espero que te ajude.
abs
///////////////////////////////////////////////////////////////////////////////////
//+
+//
//| PROGRAMA | ListBoxMark.prw | AUTOR | Luis Sombra | DATA | 18/01/2004 |//
//+
+//
//| DESCRICAO | Realiza a TROCA DE MATERIAIS dentro do Orcamento por comodos |//
//| | |//
//| | |//
//+
+//
//| MANUTENCAO DESDE SUA CRIACAO |//
//+
+//
//| | | |//
//+
+//
///////////////////////////////////////////////////////////////////////////////////
#include "Protheus.Ch"
User Function ListBoxMar()
Local aSalvAmb := {}
Local cVar := Nil
Local oDlg := Nil
Local cTitulo := "Troca de Materiais"
Local lMark := .F.
Local lMakr := .F.
Local oOk := LoadBitmap( GetResources(), "LBOK" )
Local oNo := LoadBitmap( GetResources(), "LBNO" )
Local oChk := Nil
Private _TPCALC := Space(3)
Private nQtdPd := 0.00
Private nQtdMat := 0.00
Private _Mateid := space(06)
Private cTipoMat := ""
Private cComodo := ""
Private cMatOld := ""
Private _UNID := ""
Private cCodComd := space(04)
Private lChk := .F.
Private oLbx := Nil
Private oLby := Nil
Private aVetor := {}
Private aVetWE3 := {}
Private aVetWE9 := {}
Private aVetWE7 := {}
Private aMaterial := {}
Private bPvez := .T.
Private bPmat := .T.
Private nCompPg := 0.00
Private nCompPd := 0.00
Private _Item
Private _DTORCA
_FILIAL := WD1->WD1_FILIAL
_ANO := WD1->WD1_ANO
_ORCA := WD1->WD1_ORCAID
_LOJA := WD1->WD1_LOJAID
_DTORCA := WD1->WD1_DTORCA
IF bPmat
bPmat := .F.
DbSelectArea("WD8") // Carrega Tabela com Descricao dos Materiais
DbSetOrder(2)
DbGotop()
While !Eof()
aAdd(aMaterial,{ lMakr,;
WD8->WD8_MATEID,; / - Pos 02 - Codigo Ident. do Material
WD8->WD8_CODIGO,; // - Pos 03 - Codigo GENERICO DO MATERIAL
Substr(WD8->WD8_DESC,1,35),; // - Pos 04 - Descricao do material
WD8->WD8_TIPMID,; // - Pos 05 - Tipo material
Substr(WD8->WD8_DESCTP,1,10),; // - Pos 06 - Desc do tipo material
WD8->WD8_PROCID,; // - Pos 07 - Procedencial do material
Substr(WD8->WD8_DESCPR,1,10) }) // - Pos 08 - Desc. da procedencia do material
DbSkip()
End
Endif
DbSelectArea("WA9") // Carrego Tabela de Comodos do Orcamento
aSalvAmb := GetArea()
DbSetOrder(1)
IF DbSeek( xFilial() + _ANO + _ORCA + _LOJA )
While !Eof() .And. WA9_FILIAL == xFilial("WA9") .And. WA9->WA9_ANO == WD1->WD1_ANO .And. WA9->WA9_ORCAID == WD1->WD1_ORCAID .And. WA9->WA9_LOJAID == WD1->WD1_LOJAID
bPvez := .T.
aAdd(aVetWE9,{ lMark,;
WA9->WA9_ORCAID,; // - Pos 01 - Codigo Orcamento
WA9->WA9_ORCOID,; // - Pos 02 - Codigo OrcamentoComodo
WA9->WA9_COMOID,; // - Pos 03 - Codigo Comodo
WA9->WA9_ORDEM,; // - Pos 04 - Sequencial
WA9->WA9_COMODO,; // - Pos 05 - Desc Comodo
WA9->WA9_COMPLEM,; // - Pos 06 - Complemento Comodo
"A" ,; // - Pos 07 - Reservado para Status Tipo de Operacao a ser Realizada (Inclusao - Atualizacao - Exclusao)
WA9->WA9_VALO,; // - Pos 08 - Valor do Comodo
WA9->WA9_ANO,; // - Pos 09 - Ano
WA9->WA9_LOJAID}) // - Pos 10 - Cod.Ident. Loja
_ORCOID := WA9->WA9_ORCOID
DbSelectArea("WE7") // Carrego a Tabela de Precos do Orcamento relacionados aos Comodos
DbSetOrder(3)
IF DbSeek( xFilial() + WA9->WA9_ORCAID + WA9->WA9_LOJAID + WA9->WA9_ANO + WA9->WA9_ORCOID )
While !Eof() .AND. WE7->WE7_ANO = _ANO .And. WE7->WE7_ORCAID = _ORCA .AND. WE7->WE7_LOJAID = _LOJA .AND. WE7->WE7_ORCOID = _ORCOID
cComboTam := space(20)
cDescPro := space(35)
// Busca Desc. Produto
dbselectarea("WD8") // Tabela de Materiais
DbSetOrder(1)
If dbseek(xFilial("WD8")+WE7->WE7_MATEID)
cDescPro := Substr(WD8->WD8_DESC ,1,35)
Endif
// Busca Tipo Acabamentos do Material - WG3
dbselectarea("WG3")
DbSetOrder(1)
If dbseek(xFilial("WG3")+WE7->WE7_TACAID)
cComboTam :=substr( WG3->WG3_DESC,1,10)
Endif
aAdd(aVetWE7,{;
WE7->WE7_ORMAID,; // Pos 1 Cod.Ident. Codigo Identificador 999999
WE7->WE7_ANO ,; // Pos 2 Ano
WE7->WE7_LOJAID,; // Pos 3 Identificador da Loja
WE7->WE7_ORCAID,; // Pos 4 Codigo Orcamento
WE7->WE7_ORCOID,; // Pos 5 Codigo Orcamento Comodo
WE7->WE7_ORCUID,; // Pos 6 Codigo Orca.Utilizacao
WE7->WE7_ORITID,; // Pos 7 Codigo Orca. Item
WE7->WE7_TACAID,; // Pos 8 Tipo Acabamento do Material
WE7->WE7_MATEID,; // Pos 9 Codigo Ident. Do Material 999999
WE7->WE7_METRAG,; // Pos 10 Metragem @E 999.999999999
WE7->WE7_COMPRI,; // Pos 11 Comprimento @E 999.999999999
WE7->WE7_LARGUR,; // Pos 12 Largura @E 999.999999999
WE7->WE7_ESPESS,; // Pos 13 Espessura @E 999.99
WE7->WE7_UNID ,; // Pos 14 Unidade de Medida @!
WE7->WE7_QUANT ,; // Pos 15 Quantidade 9999.999999999
WE7->WE7_VLUNIT,; // Pos 16 Valor Unitario @E 999,999.99
WE7->WE7_QTDCUB,; // Pos 17 Quantidade de Cubas 9999
WE7->WE7_SUBTOT,; // Pos 18 Sub Total @E 999,999.99
WE7->WE7_VALTOT,; // Pos 19 Valor Total @E 999,999,999.99
WE7->WE7_TPCALC,; // Pos 20 Tipo Calculo @!
WE7->WE7_PRCESP,; // Pos 21 Preco Especial @!
WE7->WE7_MODUID,; // Pos 22 Codigo Modulacao 999
WE7->WE7_ORDENA,; // Pos 23 Ordenacao
cDescPro ,; // Pos 24 Desc. Produto
cComboTam ,; // Pos 25 Descricao do Acabamento
"A " ,; // Pos 26 Reservado para Status Tipo de Operacao a ser Realizada (Inclusao - Atualizacao - Exclusao)
WE7->WE7_MEDVAL,; // Pos 27 Medida e Valor (PAGINADO ou PADRONIZADO) - PAG ou PAD
WE7->WE7_CODFAM}) // Pos 28 Codigo Familia do Material
IF bPvez
_Mat := ALLTRIM(WE7->WE7_MATEID)
aAdd(aVetor,{ lMark, substr(WA9->WA9_COMODO,1,15),; // - Pos - 02 - Descricao do Comodo
cDescPro,; // - Pos - 03 - Descricao do Produto
cComboTam,; // - Pos - 04 - Tipo Acabamento
WA9->WA9_ORCOID,; // - Pos - 05 - Codigo OrcamentoComodo
WE7->WE7_MEDVAL,; // - Pos - 06 - Medida e Valor (PAGINADO ou PADRONIZADO) - PAG ou PAD
WE7->WE7_MATEID,; // - Pos - 07 - Codigo Ident. Do Material 999999
WA9->WA9_COMOID,; // - Pos - 08 - Codigo do Cpmodo
WE7->WE7_ORCUID}) // - Pos - 09 - Codigo Id da Utilizacao
bPvez := .F.
Else
IF ALLTRIM(WE7->WE7_MATEID) <> ALLTRIM( _Mat )
//aAdd(aVetor,{ lMark, Substr(WA9->WA9_COMODO,1,15),; // - Pos - 02 - Descricao do Comodo
// cDescPro,; // - Pos - 03 - Descricao do Produto
// cComboTam,; // - Pos - 04 - Tipo Acabamento
// WA9->WA9_ORCOID,; // - Pos - 05 - Codigo OrcamentoComodo
// WE7->WE7_MEDVAL,; // - Pos - 06 - Medida e Valor (PAGINADO ou PADRONIZADO) - PAG ou PAD
// WE7->WE7_MATEID}) // - Pos - 07 - Codigo Ident. Do Material 999999
aAdd(aVetor,{ lMark, substr(WA9->WA9_COMODO,1,15),; // - Pos - 02 - Descricao do Comodo
cDescPro,; // - Pos - 03 - Descricao do Produto
cComboTam,; // - Pos - 04 - Tipo Acabamento
WA9->WA9_ORCOID,; // - Pos - 05 - Codigo OrcamentoComodo
WE7->WE7_MEDVAL,; // - Pos - 06 - Medida e Valor (PAGINADO ou PADRONIZADO) - PAG ou PAD
WE7->WE7_MATEID,; // - Pos - 07 - Codigo Ident. Do Material 999999
WA9->WA9_COMOID,; // - Pos - 08 - Codigo do Cpmodo
WE7->WE7_ORCUID}) // - Pos - 09 - Codigo Id da Utilizacao
_Mat := WE7->WE7_MATEID
Endif
Endif
DbSelectArea("WE7")
DbSkip() //WE7
End
Endif
DbSelectArea("WE3") // Carrego Tabela de Itens do Orcamento
DbSetOrder(2)
// IF DbSeek( xFilial() + _ANO + _LOJA + _ORCA + _ORCOID) // lucky
IF DbSeek( xFilial() + _ANO + _ORCA + _ORCOID) // lucky
While !Eof() .And. WE3_FILIAL == xFilial("WE3") .And. WE3->WE3_ANO == _ANO .And. WE3->WE3_ORCAID == _ORCA .AND. WE3->WE3_LOJAID == _LOJA .AND. WE3->WE3_ORCOID == _ORCOID
DbSelectArea("WE2")
DbSetOrder(1)
If !DbSeek(xFilial("WE2") + WE3->WE3_UTILID )
_cDesUti := Space(50)
Else
_cDesUti := WE2->WE2_DESC
Endif
_DesTpUti := ""
dbselectarea("WD9")
DbSetOrder(1)
If dbseek(xFilial("WD9")+WE3->WE3_TIPUTI)
_DesTpUti := WD9->WD9_DESC
Endif
For x:= 1 To LEN(aVetWE7)
IF ALLTRIM(aVetWE7[x][5]) = ALLTRIM( _ORCOID ) .AND. ALLTRIM(aVetWE7[x][6]) = WE3->WE3_ORCUID // Verifico se e mesmo comodo selecionado
aAdd(aVetWE3,{WE3->WE3_ORCAID, ; // Pos 1 - Codigo Orcamento
WE3->WE3_ORCOID, ; // Pos 2 - Codigo Orcamento Comodo
WE3->WE3_Ordena, ; // Pos 3 - Ordenacao (sequencia de utilizacao dentro do mesmo comodo)
WE3->WE3_ORCUID, ; // Pos 4 - Codigo Orca. Utilizacao
WE3->WE3_UTILID, ; // Pos 5 - Codigo Utilizacao
_cDesUti, ; // Pos 6 - Desc. utilizacao
WE3->we3_TIPUTI, ; // Pos 7 - Codigo Tipo de Utilizacao
_DesTpUti, ; // Pos 8 - Desc. Tipo de utilizacao
WE3->WE3_QUANT, ; // Pos 9 - Qtde
WE3->WE3_COMPLE, ; // Pos 10 - Complemento
WE3->WE3_PATH, ; // Pos 11 - Path + Nome do Arquivo com figura
"A" , ; // Pos 12 - Reservado para Status Tipo de Operacao a ser Realizada (Inclusao - Atualizacao - Exclusao)
WE3->WE3_VALOR, ; // Pos 13 - Valor da Utilizacao
WE3->WE3_VALTOT, ; // Pos 14 - Valor TOTAL da Utilizacao
WE3->WE3_VLACAB, ; // Pos 15 - Valor do Acabamento (furacao/colagem)
WE3->WE3_FATAJU}) // Pos 16 - Fator de Ajuste
Endif
Next x
DbSelectArea("WE3")
DbSkip()
End
Endif
//********************************************************************************************************
DbSelectArea("WA9")
dbSkip() // WA9
End
Else
Endif
//+
+
//| Monta a tela para usuario visualizar consulta |
//+
+
If Len( aVetor ) == 0
Aviso( cTitulo, "Nao existe Comodos para esse Orçamento ", {"Ok"} )
Return
Endif
// DEFINE MSDIALOG oDlg TITLE cTitulo FROM 0,0 TO 240,540 PIXEL
DEFINE MSDIALOG oDlg TITLE cTitulo FROM 0,0 TO 465,540 PIXEL
@ 10,10 LISTBOX oLbx VAR cVar FIELDS HEADER ;
" ", "Comodo", "Material", "Acabamento" ;
SIZE 250,095 OF oDlg PIXEL ON dblClick( U_CONTMX( aVetor[oLbx:nAt,1] := !aVetor[oLbx:nAt,1],oLbx:Refresh()) )
oLbx:SetArray( aVetor )
oLbx:bLine := {|| {Iif(aVetor[oLbx:nAt,1],oOk,oNo),;
aVetor[oLbx:nAt,2],;
aVetor[oLbx:nAt,3],;
aVetor[oLbx:nAt,4]}}
@ 110,10 CHECKBOX oChk VAR lChk PROMPT "Marca/Desmarca" SIZE 60,007 PIXEL OF oDlg;
ON CLICK(Iif(lChk,Marca(lChk),Marca(lChk)))
@ 130,10 LISTBOX oLby VAR cVar FIELDS HEADER ;
" ", "Material", "Tipo", "Procedencia" ;
SIZE 250,095 OF oDlg PIXEL ON dblClick( U_CONTMY( aMaterial[oLby:nAt,1] := !aMaterial[oLby:nAt,1],oLby:Refresh()) )
oLby:SetArray( aMaterial )
oLby:bLine := {|| {Iif(aMaterial[oLby:nAt,1],oOk,oNo),;
aMaterial[oLby:nAt,4],;
aMaterial[oLby:nAt,6],;
aMaterial[oLby:nAt,8]}}
DEFINE SBUTTON FROM 107,180 TYPE 1 ACTION (MsAguarde({|lEnd| U_OKM(@lEnd)},"Aguarde...","Troca de Material",.T.)) ENABLE OF oDlg
DEFINE SBUTTON FROM 107,213 TYPE 2 ACTION oDlg:End() ENABLE OF oDlg
ACTIVATE MSDIALOG oDlg CENTER
RestArea( aSalvAmb )
Return .T.
///////////////////////////////////////////////////////////////////////////////////
//| DESCRICAO | Funcao - u_ListBoxMar() |//
//| |
//| | Funcao que marca ou desmarca todos os objetos |//
//+
+//
///////////////////////////////////////////////////////////////////////////////////
Static Function Marca(lMarca)
Local i := 0
For i := 1 To Len(aVetor)
aVetor[1] := lMarca
Next i
oLbx:Refresh()
Return
//********************
Static Function U_OkM()
//*********************
Local i := 0
Local u := 0
For u := 1 To Len(aMaterial) // Vetor com material de troca
IF aMaterial[1] = .T. // Marcado para Troca
_Mateid := aMaterial[2] // Codigo Ident. do Material
_DescMat := aMaterial[4] // Descricao do Material
Endif
Next u
For i := 1 To Len(aVetor) // VETOR QUE SOFRERA MODIFICACAO
IF aVetor[1] = .T. // Marcado para Troca
cComodo := aVetor[5] // Codigo Identificador do Comodo
cTipoMat := aVetor[6] // Verifica se e Paginado ou Padronizado
cMatOld := aVetor[7] // Codigo Ident. do material que sera alterado/mudado
cCodComd := aVetor[8] // Codigo do Comodo
cOrCuid := aVetor[9] // Codigo Id da Utilizacao
DbSelectArea("WE7")
DbsetOrder(4)
DbGotop()
If DbSeek(xFilial("WE7") + cMatOld + _ORCA + _ANO + cComodo)
nVlm2ml := 0.00
nTotMat := 0.00
vMAT := WE7->WE7_MEDVAL
_UNID := WE7->WE7_UNID
_Espess := IIF(WE7->WE7_ESPESS=0,2,WE7->WE7_ESPESS)
nCompPg := WE7->WE7_COMPRIM // Comprimento
_PsqLarg:= WE7->WE7_LARGUR
_LLarg := WE7->WE7_LARGUR
_TPCALC := WE7->WE7_TPCALC
IF vMAT = "PAG"
nQtdPg := WE7->WE7_QUANT // Quantidade
nTotMed := WE7->WE7_METRAG // Valor da METRAGEM do material
nCompPg := WE7->WE7_COMPRI // Comprimento do Material
nLLargPg := WE7->WE7_LARGUR // Limite de Largura
ElseIf vMAT = "PAD"
nQtdPd := WE7->WE7_QUANT // Quantidade
nQtdPd := WE7->WE7_METRAG // Valor da METRAGEM do material
nCompPd := WE7->WE7_COMPRI // Comprimento do Material
nLargPd := WE7->WE7_LARGUR // Limite de Largura
Else
nQtdPd := 0.00
nQtdPg := 0.00
nTotMed := 0.00
nCompPg := 0.00
nLLargPg := 0.00
Endif
//======================================================
IF _LLarg > 20 // Sempre Assumir Metro QUADRADO (Metragem) qdo Limite de Largura for MAIOR que 20 cm
DbSelectArea("WG1") // Vou buscar Preco do Material na Tabela de Precos PADRONIZADOS ( WG1 )
DbSetOrder(5)
bTemPrc := .F.
IF DbSeek(xFilial("WG1")+_Mateid+STR(_Espess,2)+STR(_PsqLarg,2) + DTOS(WD1->WD1_DTORCA) + _UNID,.T.)
IF WG1->WG1_DATA > WD1->WD1_DTORCA
DbSkip(-1)
While !EOF() .AND. WG1->WG1_MAT = _Mateid
IF _Espess = WG1->WG1_ESPESS .AND. ALLTRIM(WG1->WG1_UNID) = "M2"
bTemPrc := .T.
nVlm2ml := WG1->WG1_VALOR
_Unid := WG1->WG1_UNID
Endif
DbSkip()
End
Else
While !EOF() .AND. WG1->WG1_MAT = _Mateid
IF _Espess = WG1->WG1_ESPESS .AND. ALLTRIM(WG1->WG1_UNID) = "M2"
bTemPrc := .T.
nVlm2ml := WG1->WG1_VALOR
_Unid := WG1->WG1_UNID
Endif
DbSkip()
End
Endif // IF WG1->WG1_DATA > WD1->WD1_DTORCA
Endif // IF DbSeek(xFilial("WG1")+_Mateid+STR(_Espess,2)+STR(_PsqLarg,2) + DTOS(WG1_DATA),.T.)
IF ! bTemPrc
MsgInfo("Sr. Usuário, " + chr(13) + "Não existe preço válido cadastrado associado para esse Material." + CHR(13)+ CHR(13)+"Tabela ==> WD8 == 01 ",cAtencao)
nCompPg := 0.00
nQtdPg := 1.000
Return
Endif
Else
DbSelectArea("WG1") // Vou buscar Preco do Material na Tabela de Precos PAGINADOS ( WG1 )
DbSetOrder(5)
DBGOTOP()
_PsqLarg := _LLarg
IF _TPCALC = "ATE"
DbSelectArea("WG1") // Vou buscar Preco do Material na Tabela de Precos PAGINADOS ( WG1 )
DbSetOrder(6)
DBGOTOP()
nVlm2ml := 0.00
DbSeek(xFilial("WG1")+_Mateid+_UNID+STR(_Espess,2))
WHILE !EOF() .AND. WG1->WG1_MAT = _Mateid .AND. ALLTRIM(WG1->WG1_UNID) = ALLTRIM(_UNID) .AND. WG1->WG1_ESPESS = _Espess
IF WG1->WG1_DATA <= WD1->WD1_DTORCA .AND. WG1->WG1_LLARG = _PsqLarg
nVlm2ml := WG1->WG1_VALOR
Endif
DbSkip()
End
ElseIF _TPCALC = "CXL"
DbSelectArea("WG1") // Vou buscar Preco do Material na Tabela de Precos PAGINADOS ( WG1 )
DbSetOrder(6)
DBGOTOP()
_PsqLarg := 0.00
IF _LLarg > 0 .and. _LLarg < 0.101
_PsqLarg := 10.00
ElseIF _LLarg > 0.101 .and. _LLarg <= 0.150
_PsqLarg := 15.00
ElseIF _LLarg > 0.150 .and. _LLarg <= 0.201
_PsqLarg := 20.00
Endif
nVlm2ml := 0.00
DbSeek(xFilial("WG1")+_Mateid+_UNID+STR(_Espess,2))
WHILE !EOF() .AND. WG1->WG1_MAT = _Mateid .AND. ALLTRIM(WG1->WG1_UNID) = ALLTRIM(_UNID) .AND. WG1->WG1_ESPESS = _Espess
IF WG1->WG1_DATA <= WD1->WD1_DTORCA .AND. WG1->WG1_LLARG = _PsqLarg
nVlm2ml := WG1->WG1_VALOR
Endif
DbSkip()
End
Else
DbSeek(xFilial("WG1")+_Mateid+STR(_Espess,2)+STR(_PsqLarg,2) + DTOS(WD1->WD1_DTORCA) + _UNID,.T.)
IF WG1->WG1_DATA > WD1->WD1_DTORCA
DbSkip(-1)
IF _Mateid=WG1->WG1_MAT .AND. STR(_Espess,2)= STR(WG1->WG1_ESPESS,2) .AND. STR(WG1->WG1_LLARG,2)=STR(_PsqLarg,2)
nVlm2ml := WG1->WG1_VALOR
_Unid := WG1->WG1_UNID
Else
ALERT("A15 ==> Nao existe preco com especificacoes Fornecidas para ese Material")
Endif
Else
DbSkip(-1)
IF _Mateid = WG1->WG1_MAT
nVlm2ml := WG1->WG1_VALOR // Incluido em 23/10/2008
Endif
Endif
Endif
Endif
nVMat := 0.00
nTotMat := 0.00
IF nCompPg <> 0
IF nLLargPg = 0 // Limite de Largura
nTotMed := Round(nCompPg,3) // Valor Total de Medida ( M2 ou ML) Metragem
nVMat := Round(nVlm2ml * nTotMed,2) // Valor do Material
nTotMat := Round(nVlm2ml * nTotMed * nQtdPg,2) // Valor TOTAL do Material
Else
IF ALLTRIM(UPPER(_UNID)) = "ML" .AND. ALLTRIM(_TPCALC ) = "CXL"
nTotMed := INT(Round(nCompPg*1000,0)/1000*nQtdPg*100)/100
nVMat := nVlm2ml
nTotMat := Round( (nVMat * nTotMed) - 0.001,2) // Valor TOTAL do Material
ElseIF ALLTRIM(UPPER(_UNID)) = "M2" .AND. ALLTRIM(_TPCALC ) = "CXL"
nTotMed := INT(Round(nLLargPg * nCompPg*1000,0)/1000*nQtdPg*100)/100
nVMat := nVlm2ml
nTotMat := Round( (nVMat * nTotMed)-0.001,2) // Valor TOTAL do Material
ElseIF ALLTRIM(UPPER(_UNID)) = "M2" .AND. ALLTRIM(_TPCALC ) = "M2"
nTotMed := INT(nLLargPg * nCompPg *100)/100
nVMat := nVlm2ml * nTotMed
nTotMat := Round( (nVMat * nQtdPg)-0.001,2) // Valor TOTAL do Material
Else
nTotMed := Round(nQtdPg,3)
nVMat := nVlm2ml * nTotMed
nTotMat := Round((nVlm2ml * nTotMed * nQtdPg)-0.001,2) // Valor TOTAL do Material
Endif
Endif
Else
nTotMed := Round(nQtdPg,3) // Metragem
nVMat := Round(nVlm2ml * nTotMed,2) // Valor TOTAL do Material
nTotMat := Round((nVlm2ml * nTotMed * nQtdPg)-0.001,2) // Valor TOTAL do Material
Endif
RecLock("WE7",.F.)
WE7->WE7_VLUNIT := nVlm2ml // Valor do Material // EPA
WE7->WE7_TPCALC := _TPCALC // Tipo de Calculo
WE7->WE7_ESPESS := _Espess // Espessura
WE7->WE7_MEDVAL := cTipoMat // Tipo medicao
WE7->WE7_METRAG := nTotMed // Valor da Metragem
WE7->WE7_UNID := _Unid // Unidade de Medida
WE7->WE7_COMPRIM := nCompPg // Comprimento
WE7->WE7_MATEID := _Mateid // Codigo Id do Material
IF ALLTRIM(UPPER(_UNID)) = "M2" .AND. ALLTRIM(_TPCALC ) = "CXL"
nTotMed := INT(Round(nLLargPg * nCompPg*1000,0)/1000*WE7->WE7_QUANT*100)/100
WE7->WE7_METRAG := nTotMed
ElseIF ALLTRIM(UPPER(_UNID)) = "ML" .AND. ALLTRIM(_TPCALC ) = "CXL"
nTotMed := INT(Round(nCompPg*1000,0)/1000*WE7->WE7_QUANT*100)/100
WE7->WE7_METRAG := nTotMed
Else
WE7->WE7_METRAG := INT(nLLargPg * nCompPg *100)/100
Endif
IF ALLTRIM(UPPER(_UNID)) = "ML" .AND. ALLTRIM(_TPCALC ) = "CXL"
WE7->WE7_VALTOT := Round( (WE7->WE7_VLUNIT * WE7->WE7_METRAG)-0.001,2)
ElseIF ALLTRIM(UPPER(_UNID)) = "ML" .AND. ALLTRIM(_TPCALC ) = "ATE"
WE7->WE7_VALTOT := ROUND( (WE7->WE7_QUANT * WE7->WE7_VLUNIT)-0.001,2)
ElseIF ALLTRIM(UPPER(_UNID)) = "M2" .AND. ALLTRIM(_TPCALC ) = "ATE"
WE7->WE7_VALTOT := Round( (WE7->WE7_QUANT * WE7->WE7_VLUNIT)-0.001,2)
ElseIF ALLTRIM(UPPER(_UNID)) = "M2" .AND. ALLTRIM(_TPCALC ) = "CXL"
WE7->WE7_VALTOT := Round( (WE7->WE7_VLUNIT * WE7->WE7_METRAG)-0.001,2)
Else
WE7->WE7_VALTOT := ROUND( (WE7->WE7_QUANT * WE7->WE7_VLUNIT * WE7->WE7_METRAG)-0.001,2)
Endif
msUnLock()
Endif // If DbSeek(xFilial("WE7") + cMatOld + _ORCA + _ANO + cComodo)
nTotMat := 0.00
nValUtil := 0.00
nTotUtil := 0.00
_TotComo := 0.00
dbSelectArea("WE7") // Tabela de Materiais do Orcamento/Comodo
WE7->(dbSetOrder()
WE7->(DbGotop())
cChave := xFilial("WE7") + _ORCA + _ANO + cComodo
DbSeek(cChave,.T.)
While !Eof()
IF ! (WE7->WE7_FILIAL == xFilial("WE7") .And. WE7->WE7_ANO == _ANO .And.;
WE7->WE7_LOJAID == _LOJA .AND. WE7->WE7_ORCAID == _ORCA .AND.;
WE7->WE7_ORCOID == cComodo)
dbSkip()
Loop
Endif
IF WE7->WE7_MATEID = _Mateid
nTotMat := nTotMat + WE7->WE7_VALTOT // Valor TOTAL do Material
Endif
DbSkip()
End
// Totalizo UTILIZACOES
dbSelectArea("WE7") // Tabela de Materiais do Orcamento/Comodo
WE7->(dbSetOrder()
WE7->(DbGotop())
cChave := xFilial("WE7") + _ORCA + _ANO + cComodo + cOrcuid
_QtdUtl := 0
DbSeek(cChave,.T.)
While !Eof()
IF ! (WE7->WE7_FILIAL == xFilial("WE7") .And. WE7->WE7_ANO == _ANO .And.;
WE7->WE7_LOJAID == _LOJA .AND. WE7->WE7_ORCAID == _ORCA .AND.;
WE7->WE7_ORCOID == cComodo .AND. WE7->WE7_ORCUID == cOrcuid)
dbSkip()
Loop
Endif
//IF WE7->WE7_MATEID = _Mateid
dbSelectArea("WE3") // Tabela de Utilizacoes
WE3->(dbSetOrder(3))
WE3->(DbGotop())
xChuti := xFilIAL("WE3") + WE7->WE7_ORCUID + _ORCA + _ANO + _LOJA
IF DbSeek(xChuti)
_QtdUtl := WE3->WE3_QUANT
Endif
dbSelectArea("WE7")
nValUtil := nValUtil + WE7->WE7_VALTOT // Valor unitario da utilizacao
nTotUtil := nTotUtil + Round((_QtdUtl * WE7->WE7_VALTOT),2) // Valor Total da Utilizacao
//Endif
DbSkip()
End
// Totalizo COMODO
dbSelectArea("WE7") // Tabela de Materiais do Orcamento/Comodo
WE7->(dbSetOrder()
WE7->(DbGotop())
cChave := xFilial("WE7") + _ORCA + _ANO + cComodo
_QtdUtl := 1
DbSeek(cChave,.T.)
While !Eof()
IF ! (WE7->WE7_FILIAL == xFilial("WE7") .And. WE7->WE7_ANO == _ANO .And.;
WE7->WE7_LOJAID == _LOJA .AND. WE7->WE7_ORCAID == _ORCA .AND.;
WE7->WE7_ORCOID == cComodo)
dbSkip()
Loop
Endif
dbSelectArea("WE3") // Tabela de Utilizacoes
WE3->(dbSetOrder(3))
WE3->(DbGotop())
xChuti := xFilIAL("WE3") + WE7->WE7_ORCUID + _ORCA + _ANO + _LOJA + cComodo
IF DbSeek(xChuti)
_QtdUtl := WE3->WE3_QUANT
Endif
dbSelectArea("WE7")
_TotComo := _TotComo + (WE7->WE7_VALTOT*_QtdUtl)
DbSkip()
End
// TOTALIZA O COMODO ATUAL
DbSelectArea("WA9")
DbsetOrder(2)
DbGotop()
If DbSeek(xFilial("WA9") + cComodo + cCodComd + _ANO)
RecLock("WA9",.F.)
FieldPut(FieldPos("WA9_VALO") , _TotComo) // Atualizo Valor Total do Comodo
MsUnlock()
Endif
// TOTALIZA A UTILIZACAO DO COMODO ATUAL
dbSelectArea("WE3") // Tabela de Utilizacoes do Comodo
WE3->(dbSetOrder(3))
WE3->(DbGotop())
xChUTX := xFilial() + cOrcuid + _ORCA + _ANO + _LOJA
dbSeek(xFilial("WE3")+xChUTX,.T.)
While !Eof()
IF ! (WE3->WE3_FILIAL == xFilial("WE3") .And. WE3->WE3_ANO == _ANO .And.;
WE3->WE3_ORCAID == _ORCA .and. WE3->WE3_ORCUID == cOrcuid)
dbSkip()
Loop
Endif
RecLock("WE3",.F.)
WE3->WE3_VALOR := nValUtil // Atualizo Valor da Utilizacao
WE3->WE3_VALTOT := nTotUtil // Atualizo Valor TOTAL da Utilizacao
msUnLock()
dbskip()
End
// Atualizo TOTAL GERAL DO ORCAMENTO
nTtOrca := 0.00
dbSelectArea("WA9")
WA9->(dbSetOrder(1))
WA9->(DbGotop())
dbSeek(xFilial("WA9") + _ANO + _ORCA + _LOJA)
While !Eof()
IF ! (WA9->WA9_FILIAL == xFilial("WA9") .And. WA9->WA9_ANO == _ANO .And.;
WA9->WA9_LOJAID == _LOJA .AND. WA9->WA9_ORCAID == _ORCA)
dbSkip()
Loop
Endif
nTtOrca := nTtOrca + ROUND(WA9->WA9_VALO,2)
DbSkip()
End
// Totalizo os Valor na Tabela de Orcamentos ( WD1 )
DbSelectArea("WD1")
WD1->(dbSetOrder(1))
WD1->(DbGotop())
IF dbSeek(xFilial("WD1") + _ANO + _ORCA + _LOJA)
RecLock("WD1",.F.)
WD1->WD1_VALOR := nTtOrca
msUnLock()
Endif
Endif
Next i
MsgInfo("Sr. Usuário, " + chr(13) + "Final de Processamento. Dados alterados com sucesso." + CHR(13)+"",cAtencao)
// Busca Desc. Produto
dbselectarea("WD8") // Tabela de Materiais
DbSetOrder(1)
If dbseek(xFilial("WD8")+_Mateid)
cDescPro := Substr(WD8->WD8_DESC ,1,15)
Endif
For i := 1 To Len(aVetor) // VETOR QUE SOFRERA MODIFICACAO
IF aVetor[1] = .T. // Marcado para Troca
aVetor[3] := cDescPro // Descricao do produto
Endif
Next i
oLbx:Refresh()
Return
//************************ *
Static Function U_CONTMX()
//*************************
Local nPos := oLbx:nAt
IF aVetor[nPos][1] = .T.
Else
Endif
Return
//*************************
Static Function U_CONTMY()
//*************************
Local nPos := oLby:nAt
Local i := 0
For i := 1 To Len(aMaterial)
aMaterial[1] := .F.
Next i
oLby:Refresh()
aMaterial[nPos][1] = .T.
Return
Por favor Acessar ou Registrar para participar da conversa.
- henry.charriere
- Autor do Tópico
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 492
- Obrigados Recebidos: 0
11 anos 6 meses atrás #13558
por henry.charriere
Respondido por henry.charriere no tópico Pegar valor de checkbox
Carlos, Obrigado! Uma dúvida.
Com esse objeto posso aplicar uma fonte oi coisa do tipo?
Atc,
Henry
Com esse objeto posso aplicar uma fonte oi coisa do tipo?
Atc,
Henry
Por favor Acessar ou Registrar para participar da conversa.
- Sombra
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 593
- Obrigados Recebidos: 1
11 anos 6 meses atrás - 11 anos 6 meses atrás #13586
por Sombra
Respondido por Sombra no tópico [Resolvido]Pegar valor de checkbox
Bom dia Henry,
Nesse mesmo projeto, tuve situacao de alterar a Fonte, de uma olhada no nas linhas de codigo abaico, como eu fiz para alterar o tamanho das Fontes.
#INCLUDE 'FONT.CH'
/*ÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±± Declaração de Variaveis Private dos Objetos ±±
Ù±±ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/
SetPrvt("oDlg1","oObj")
//*
*
//* Define Fontes a serem usados *
//*
*
oFont := TFont():New( "Arial" ,,08,,.t.,,,,, .F. )
oFont1 := TFont():New( "Times New Roman" ,,07,,.t.,,,,, .F. )
oFont2 := TFont():New( "Arial" ,,07,,.t.,,,,, .F. )
oFont3 := TFont():New( "Arial" ,,14,,.t.,,,,, .F. )
oFont4 := TFont():New( "Arial" ,,08,,.t.,,,,, .F. )
oFont5 := TFont():New( "Arial" ,,12,,.t.,,,,, .F. )
oFont6 := TFont():New( "Arial" ,,16,,.t.,,,,, .F. )
oFont7 := TFont():New( "Arial" ,,15,,.t.,,,,, .F. )
oDlg1 := MSDialog():New( 093,052,670,940,"M E M Ó R I A D E C A L C U L O",,,.F.,,,,,,.T.,,,.T. )
//+
+
//| Opcoes de Calculos Gerais |
//+
+
@ 172, 334 SAY "Valor m2/ml" FONT oFont6 COLOR CLR_HBLUE SIZE 65,8 PIXEL OF oDlg1
@ 172, 378 MSGET oVlm2ml VAR nVlm2ml PICTURE "@E 999,999.99" FONT oFont6 COLOR CLR_HBLUE SIZE 52,11 PIXEL OF oDlg1 When .F.
@ 190, 360 SAY "Furação/Colagem" FONT oFont3 COLOR CLR_HBLUE SIZE 65,8 PIXEL OF oDlg1
@ 198, 360 COMBOBOX oCmbFC VAR cCmbFC ITEMS aCombo2 VALID U_FURCOL(cCmbFC,@nFura) SIZE 76,8 PIXEL OF oDlg1
@ 212, 360 SAY "Val.Furação/C." FONT oFont3 COLOR CLR_HBLUE SIZE 65,8 PIXEL OF oDlg1
@ 212, 398 MSGET oFura VAR nFura PICTURE "@E 999,999.99" SIZE 40,8 PIXEL OF oDlg1 When .F.
@ 225, 360 SAY "Qtde Cubas" FONT oFont3 COLOR CLR_HBLUE SIZE 65, 8 PIXEL OF oDlg1
@ 225, 398 MSGET oQtCubas VAR nQtCubas PICTURE "@E 999" VALID U_CUBAS(@nQtCubas) SIZE 40,8 PIXEL OF oDlg1
@ 238, 360 SAY "Valor Material " FONT oFont3 COLOR CLR_HBLUE SIZE 65, 8 PIXEL OF oDlg1
@ 238, 398 MSGET oVMat VAR nVMat PICT "@E 999,999.99" SIZE 40,08 FONT oFont6 COLOR CLR_HBLUE PIXEL OF oDlg1 When .F.
@ 250, 360 SAY "Val.Total Mat" FONT oFont3 COLOR CLR_HBLUE SIZE 65,08 PIXEL OF oDlg1
@ 250, 398 MSGET oTotMat VAR nTotMat PICT "@E 999,999.99" SIZE 40,08 FONT oFont6 COLOR CLR_HBLUE PIXEL OF oDlg1 When .F.
@ 263, 360 SAY "T O T A L" FONT oFont3 COLOR CLR_HRED SIZE 65,08 PIXEL OF oDlg1
@ 263, 388 MSGET oTtOrca VAR nTtOrca PICTURE "@E 999,999.99" SIZE 50,08 FONT oFont6 COLOR CLR_HBLUE PIXEL OF oDlg1 When .F.
Nesse mesmo projeto, tuve situacao de alterar a Fonte, de uma olhada no nas linhas de codigo abaico, como eu fiz para alterar o tamanho das Fontes.
#INCLUDE 'FONT.CH'
/*ÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±± Declaração de Variaveis Private dos Objetos ±±
Ù±±ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/
SetPrvt("oDlg1","oObj")
//*
*
//* Define Fontes a serem usados *
//*
*
oFont := TFont():New( "Arial" ,,08,,.t.,,,,, .F. )
oFont1 := TFont():New( "Times New Roman" ,,07,,.t.,,,,, .F. )
oFont2 := TFont():New( "Arial" ,,07,,.t.,,,,, .F. )
oFont3 := TFont():New( "Arial" ,,14,,.t.,,,,, .F. )
oFont4 := TFont():New( "Arial" ,,08,,.t.,,,,, .F. )
oFont5 := TFont():New( "Arial" ,,12,,.t.,,,,, .F. )
oFont6 := TFont():New( "Arial" ,,16,,.t.,,,,, .F. )
oFont7 := TFont():New( "Arial" ,,15,,.t.,,,,, .F. )
oDlg1 := MSDialog():New( 093,052,670,940,"M E M Ó R I A D E C A L C U L O",,,.F.,,,,,,.T.,,,.T. )
//+
+
//| Opcoes de Calculos Gerais |
//+
+
@ 172, 334 SAY "Valor m2/ml" FONT oFont6 COLOR CLR_HBLUE SIZE 65,8 PIXEL OF oDlg1
@ 172, 378 MSGET oVlm2ml VAR nVlm2ml PICTURE "@E 999,999.99" FONT oFont6 COLOR CLR_HBLUE SIZE 52,11 PIXEL OF oDlg1 When .F.
@ 190, 360 SAY "Furação/Colagem" FONT oFont3 COLOR CLR_HBLUE SIZE 65,8 PIXEL OF oDlg1
@ 198, 360 COMBOBOX oCmbFC VAR cCmbFC ITEMS aCombo2 VALID U_FURCOL(cCmbFC,@nFura) SIZE 76,8 PIXEL OF oDlg1
@ 212, 360 SAY "Val.Furação/C." FONT oFont3 COLOR CLR_HBLUE SIZE 65,8 PIXEL OF oDlg1
@ 212, 398 MSGET oFura VAR nFura PICTURE "@E 999,999.99" SIZE 40,8 PIXEL OF oDlg1 When .F.
@ 225, 360 SAY "Qtde Cubas" FONT oFont3 COLOR CLR_HBLUE SIZE 65, 8 PIXEL OF oDlg1
@ 225, 398 MSGET oQtCubas VAR nQtCubas PICTURE "@E 999" VALID U_CUBAS(@nQtCubas) SIZE 40,8 PIXEL OF oDlg1
@ 238, 360 SAY "Valor Material " FONT oFont3 COLOR CLR_HBLUE SIZE 65, 8 PIXEL OF oDlg1
@ 238, 398 MSGET oVMat VAR nVMat PICT "@E 999,999.99" SIZE 40,08 FONT oFont6 COLOR CLR_HBLUE PIXEL OF oDlg1 When .F.
@ 250, 360 SAY "Val.Total Mat" FONT oFont3 COLOR CLR_HBLUE SIZE 65,08 PIXEL OF oDlg1
@ 250, 398 MSGET oTotMat VAR nTotMat PICT "@E 999,999.99" SIZE 40,08 FONT oFont6 COLOR CLR_HBLUE PIXEL OF oDlg1 When .F.
@ 263, 360 SAY "T O T A L" FONT oFont3 COLOR CLR_HRED SIZE 65,08 PIXEL OF oDlg1
@ 263, 388 MSGET oTtOrca VAR nTtOrca PICTURE "@E 999,999.99" SIZE 50,08 FONT oFont6 COLOR CLR_HBLUE PIXEL OF oDlg1 When .F.
Ultima edição: 11 anos 6 meses atrás por henry.charriere.
Por favor Acessar ou Registrar para participar da conversa.
- henry.charriere
- Autor do Tópico
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 492
- Obrigados Recebidos: 0
11 anos 6 meses atrás #13730
por henry.charriere
Respondido por henry.charriere no tópico [Resolvido]Pegar valor de checkbox
{|u|if(PCount()>0,lChk1:=u,lChk1)}
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Pegar valor de checkbox
Tempo para a criação da página:0.137 segundos