Está en la página 1de 26

Analises_Fisico_Quimicas - 1

Dim fv_Dados1()
Dim fv_Dados2()
Dim DataInic As String
Dim dataFim As String
Private Sub AcumuladoMensal()
Dim dados1()
Dim Sql As String
Dim lr_Snap As SnapShot
Dim lr_boletins As SnapShot
Dim lr_Peneiras As SnapShot
Dim lr_ElemQuim As SnapShot
Dim ll_Linha As Long
Dim ll_Coluna As Long
Dim Data1, Data2, DataI, DataF
Dim Qt_Mes As Integer, i
Dim Peso As Double

Tag_Espera True, "Consultando dados, Aguarde..."
DataInic = "01-" & Format(DataInic, "mmm-yyyy")
dataFim = "01-" & Format(dataFim, "mmm-yyyy")
Qt_Mes = CVDate(dataFim) - CVDate(DataInic)
Qt_Mes = Qt_Mes / 30
'----------------------------------------------------Anlise Fsica--------------------------------
-------------------
'-------- Peneiras ---------
Sql = ""
Sql = "SELECT DISTINCT Peneira , ST_EAS_CADAST_PENEIRAS.NOME_PENEIRA , ST_EAS_CADAST_PENEIRAS.V
LR_PENEIRA "
Sql = Sql & "FROM ST_EAS_CADAST_PENEIRAS, st_receb_mat_prima INNER JOIN st_analise_fisica "
Sql = Sql & " ON st_receb_mat_prima.Boletim_Ano = st_analise_fisica.Boletim_Ano "
Sql = Sql & "WHERE (Data_Receb >= '" & DataInic & "' AND Data_Receb < '" & dataFim & "')"
Sql = Sql & " And ST_EAS_CADAST_PENEIRAS.NOME_PENEIRA Containing Peneira "
If Opt_Boletim.Value Then
Sql = Sql & "AND st_analise_fisica.Boletim_Ano = '" & Cmb_Boletins.List(Cmb_Boletins.ListIn
dex) & "' "
ElseIf Opt_Sigla.Value Then
Sql = Sql & "AND st_receb_mat_prima.Sigla_Mat_Prima = '" & Left(Cmb_Siglas.List(Cmb_Siglas.
ListIndex), 4) & "' "
End If
Sql = Sql & "ORDER BY VLR_PENEIRA DEsc"
Set lr_Peneiras = DB.CreateSnapshot(Sql, DB_SQLPASSTHROUGH)
If lr_Peneiras.EOF Then
Screen.MousePointer = 0
Tag_Espera False, "Consultando dados, Aguarde..."
Exit Sub
End If
Tag_Espera True, "Consultando dados, Aguarde..."
ReDim dados1(lr_Peneiras.RecordCount + 2, 5)
dados1(1, 0) = "Data"
dados1(2, 0) = "Ton. Seca"
' Preenchendo Peneiras
ll_Coluna = 2
Do Until lr_Peneiras.EOF
ll_Coluna = ll_Coluna + 1
dados1(ll_Coluna, 0) = lr_Peneiras!Peneira
lr_Peneiras.MoveNext

Tag_Espera True, "Consultando dados, Aguarde..."
Loop
Analises_Fisico_Quimicas - 2

Tag_Espera True, "Consultando dados, Aguarde..."
'--------------------------------------------------------------------------------------------------
--------------------------
For i = 0 To Qt_Mes
Data1 = Format(DateAdd("m", i, DataInic), "dd-mmm-yyyy")
Data2 = Format(DateAdd("m", 1, Data1), "dd-mmm-yyyy")
Data1 = Data_Ingles(Data1)
Data2 = Data_Ingles(Data2)
Tag_Espera True, "Consultando dados, Aguarde..."
'-------- Boletins ------------------------------------------------
Sql = ""
Sql = "SELECT Distinct Peso_Umido, Umidade "
Sql = Sql & " FROM (st_receb_mat_prima INNER JOIN st_analise_fisica "
Sql = Sql & "ON st_receb_mat_prima.Boletim_Ano = st_analise_fisica.Boletim_Ano) "
Sql = Sql & "INNER JOIN st_Estoque "
Sql = Sql & "ON st_analise_fisica.Boletim_Ano = st_Estoque.Boletim_Ano "
Sql = Sql & "WHERE (Data_Receb >= '" & Data1 & "'AND Data_Receb < '" & Data2 & "') "
If Opt_Boletim.Value Then
Sql = Sql & " AND st_analise_fisica.Boletim_Ano = '" & Cmb_Boletins.List(Cmb_Boletins.L
istIndex) & "'"
ElseIf Opt_Sigla.Value Then
Sql = Sql & " AND st_receb_mat_prima.Sigla_Mat_Prima ='" & Left(Cmb_Siglas.List(Cmb_Sig
las.ListIndex), 4) & "'"
End If
'Sql = Sql & " GROUP BY Data_Receb "
Set lr_boletins = DB.CreateSnapshot(Sql, DB_SQLPASSTHROUGH)

If lr_boletins.EOF Then
Screen.MousePointer = 0
Tag_Espera False, "Consultando dados, Aguarde..."
End If
Tag_Espera True, "Consultando dados, Aguarde..."
If (lr_boletins.RecordCount <> 0) Then
ReDim Preserve dados1(UBound(dados1, 1), UBound(dados1, 2) + 1)

Peso = 0

Do Until lr_boletins.EOF
Peso = Peso + Format((lr_boletins!PESO_UMIDO * (1 - (lr_boletins!Umidade / 100))),
"#0.00")
lr_boletins.MoveNext
Tag_Espera True, "Consultando dados, Aguarde..."
Loop
' Preenchendo Boletins
dados1(1, UBound(dados1, 2) - 5) = Format(Data1, "mm/yyyy")
dados1(2, UBound(dados1, 2) - 5) = Peso

Tag_Espera True, "Consultando dados, Aguarde..."


'-------- Consulta --------
Sql = "SELECT DISTINCT Peneira, "
Sql = Sql & "avg(Valor_Retencao) as Valor_Retenca "
Sql = Sql & "FROM st_receb_mat_prima INNER JOIN st_analise_fisica "
Sql = Sql & "ON st_receb_mat_prima.Boletim_Ano = st_analise_fisica.Boletim_Ano "
Sql = Sql & "WHERE (Data_Receb >= '" & Data1 & "' AND Data_Receb < '" & Data2 & "')"


If Opt_Boletim.Value Then
Sql = Sql & "AND st_analise_fisica.Boletim_Ano = '" & Cmb_Boletins.List(Cmb_Boletin
s.ListIndex) & "' "
ElseIf Opt_Sigla.Value Then
Analises_Fisico_Quimicas - 3

Sql = Sql & "AND st_receb_mat_prima.Sigla_Mat_Prima = '" & Left(Cmb_Siglas.List(Cmb
_Siglas.ListIndex), 4) & "' "
End If

Sql = Sql & "Group by Peneira "

Set lr_Snap = DB.CreateSnapshot(Sql, DB_SQLPASSTHROUGH)

Tag_Espera True, "Consultando dados, Aguarde..."

' Preenchendo Dados
Do Until lr_Snap.EOF

'Procurando Coluna
For ll_Coluna = 1 To UBound(dados1, 1) - 1
If dados1(ll_Coluna, 0) = lr_Snap!Peneira Then
Exit For
End If
Next

dados1(ll_Coluna, UBound(dados1, 2) - 5) = Format$(lr_Snap!Valor_Retenca, "#0.00")

lr_Snap.MoveNext

Tag_Espera True, "Consultando dados, Aguarde..."

Loop
End If
Next i
If Not Opt_Boletim.Value Then
'-------- Total --------
dados1(1, UBound(dados1, 2) - 3) = "Total"
ld_Total = 0
For ll_Linha = 1 To UBound(dados1, 2) - 5
If Not IsEmpty(dados1(1, ll_Linha)) Then
ld_Total = ld_Total + dados1(2, ll_Linha)
End If
Next
dados1(2, UBound(dados1, 2) - 3) = Format$(ld_Total, "#0.00")

Tag_Espera True, "Consultando dados, Aguarde..."
'-------- Media --------
dados1(2, UBound(dados1, 2) - 1) = "Mdia"
For ll_Coluna = 3 To UBound(dados1, 1)
ld_Total = 0
li_NumDados = 0
For ll_Linha = 1 To UBound(dados1, 2) - 5
If Not IsEmpty(dados1(ll_Coluna, ll_Linha)) Then
ld_Total = ld_Total + dados1(ll_Coluna, ll_Linha)
li_NumDados = li_NumDados + 1
End If
Next
If li_NumDados <> 0 Then
dados1(ll_Coluna, UBound(dados1, 2) - 1) = Format$((ld_Total / li_NumDados), "#0.
000")
End If
Next
Tag_Espera True, "Consultando dados, Aguarde..."
'-------- Desvio --------
dados1(2, UBound(dados1, 2)) = "Desvio"
Analises_Fisico_Quimicas - 4

For ll_Coluna = 3 To UBound(dados1, 1)
ld_Total = 0
li_NumDados = 0
For ll_Linha = 1 To UBound(dados1, 2) - 5
If Not IsEmpty(dados1(ll_Coluna, ll_Linha)) Then
ld_Total = ld_Total + ((dados1(ll_Coluna, ll_Linha) - dados1(ll_Coluna, UBound(
dados1, 2) - 1)) ^ 2 * dados1(2, ll_Linha))
End If
Next
dados1(ll_Coluna, UBound(dados1, 2)) = Format$(Sqr(ld_Total / dados1(2, UBound(dados1,
2) - 3)), "#0.000")
Next
Tag_Espera True, "Consultando dados, Aguarde..."
End If
'----------------------------------------------------------------------
'----------------------------------------------------------------------
'----------------------------------------------------------------------
'---------------------Anlise Qumica----------------------------
'-------- Elementos Quimicos ---------
Tag_Espera True, "Consultando dados, Aguarde..."
Sql = ""
Sql = "SELECT DISTINCT Trim([ELEM_QUIMICO]) AS Elem_Quim ,SEQ_ELEMEN "
Sql = Sql & "FROM ST_EAS_CADAST_ELEMEN, st_receb_mat_prima INNER JOIN st_analise_quimica ON "
Sql = Sql & "st_receb_mat_prima.BOLETIM_ANO = st_analise_quimica.BOLETIM_ANO "
Sql = Sql & "WHERE (Data_Receb >= #" & DataInic & "# AND Data_Receb < #" & dataFim & "#) "
Sql = Sql & " And (Trim([ELEM_QUIMICO])=Trim([NOME_ELEMEN])) "
If Opt_Boletim.Value Then
Sql = Sql & "AND st_analise_quimica.Boletim_Ano = " & Chr(34) & Cmb_Boletins.List(Cmb_Bolet
ins.ListIndex) & Chr(34) & ""
ElseIf Opt_Sigla.Value Then
Sql = Sql & "AND st_receb_mat_prima.Sigla_Mat_Prima = " & Chr(34) & Left(Cmb_Siglas.List(Cm
b_Siglas.ListIndex), 4) & Chr(34) & " "
End If
Sql = Sql & "ORDER BY ST_EAS_CADAST_ELEMEN.SEQ_ELEMEN "
Set lr_ElemQuim = DB.CreateSnapshot(Sql) ', DB_SQLPASSTHROUGH)
If lr_ElemQuim.EOF Then
Screen.MousePointer = 0
Tag_Espera False, "Consultando dados, Aguarde..."
End If
Tag_Espera True, "Consultando dados, Aguarde..."
ReDim Dados2(lr_ElemQuim.RecordCount + 2, 5)
Dados2(1, 0) = "Data"
Dados2(2, 0) = "Ton. Seca"
' Preenchendo ElemQuim
ll_Coluna = 2
Do Until lr_ElemQuim.EOF
ll_Coluna = ll_Coluna + 1
Dados2(ll_Coluna, 0) = lr_ElemQuim!Elem_Quim
lr_ElemQuim.MoveNext
Loop
Tag_Espera True, "Consultando dados, Aguarde..."
'--------------------------------------------------------------------------------------------------
Analises_Fisico_Quimicas - 5

--------------------------
For i = 0 To Qt_Mes
Data1 = Format(DateAdd("m", i, DataInic), "dd-mmm-yyyy")
Data2 = Format(DateAdd("m", 1, Data1), "dd-mmm-yyyy")

Data1 = Data_Ingles(Data1)
Data2 = Data_Ingles(Data2)
'-------- Boletins --------
Sql = ""
Sql = "SELECT Distinct Peso_Umido, Umidade "
Sql = Sql & " FROM (st_receb_mat_prima INNER JOIN st_analise_quimica "
Sql = Sql & "ON st_receb_mat_prima.Boletim_Ano = st_analise_quimica.Boletim_Ano) "
Sql = Sql & "INNER JOIN st_Estoque "
Sql = Sql & "ON st_analise_quimica.Boletim_Ano = st_Estoque.Boletim_Ano "
Sql = Sql & "WHERE (Data_Receb >= '" & Data1 & "'AND Data_Receb < '" & Data2 & "') "
If Opt_Boletim.Value Then
Sql = Sql & " AND st_analise_quimica.Boletim_Ano = '" & Cmb_Boletins.List(Cmb_Boletins.
ListIndex) & "'"
ElseIf Opt_Sigla.Value Then
Sql = Sql & " AND st_receb_mat_prima.Sigla_Mat_Prima ='" & Left(Cmb_Siglas.List(Cmb_Sig
las.ListIndex), 4) & "'"
End If
'Sql = Sql & " GROUP BY Data_Receb "
Set lr_boletins = DB.CreateSnapshot(Sql, DB_SQLPASSTHROUGH)
If lr_boletins.EOF Then
Screen.MousePointer = 0
Tag_Espera False, "Consultando dados, Aguarde..."
End If
Tag_Espera True, "Consultando dados, Aguarde..."
If (lr_boletins.RecordCount <> 0) Then
ReDim Preserve Dados2(UBound(Dados2, 1), UBound(Dados2, 2) + 1)

Peso = 0

Do Until lr_boletins.EOF
Peso = Peso + Format((lr_boletins!PESO_UMIDO * (1 - (lr_boletins!Umidade / 100))),
"#0.00")
lr_boletins.MoveNext
Tag_Espera True, "Consultando dados, Aguarde..."
Loop
' Preenchendo Boletins
Dados2(1, UBound(Dados2, 2) - 5) = Format(Data1, "mm/yyyy")
Dados2(2, UBound(Dados2, 2) - 5) = Peso
Tag_Espera True, "Consultando dados, Aguarde..."
'-------- Consulta --------
Sql = "SELECT Elem_Quimico, "
Sql = Sql & " AVG(Valor_Elem) AS VALOR "
Sql = Sql & "FROM st_receb_mat_prima INNER JOIN st_analise_quimica "
Sql = Sql & "ON st_receb_mat_prima.Boletim_Ano = st_analise_quimica.Boletim_Ano "
Sql = Sql & "WHERE (Data_Receb >= '" & Data1 & "' AND Data_Receb < '" & Data2 & "')"


If Opt_Boletim.Value Then
Sql = Sql & "AND st_analise_quimica.Boletim_Ano = '" & Cmb_Boletins.List(Cmb_Boleti
ns.ListIndex) & "' "
ElseIf Opt_Sigla.Value Then
Sql = Sql & "AND st_receb_mat_prima.Sigla_Mat_Prima = '" & Left(Cmb_Siglas.List(Cmb
_Siglas.ListIndex), 4) & "' "
End If

Analises_Fisico_Quimicas - 6

Sql = Sql & "GROUP BY Elem_Quimico "

Set lr_Snap = DB.CreateSnapshot(Sql, DB_SQLPASSTHROUGH)
Tag_Espera True, "Consultando dados, Aguarde..."
' Preenchendo Dados
Do Until lr_Snap.EOF
'Procurando Coluna
For ll_Coluna = 1 To UBound(Dados2, 1) - 1
If Trim(Dados2(ll_Coluna, 0)) = Trim(lr_Snap!Elem_Quimico) Then
Exit For
End If
Next
Dados2(ll_Coluna, UBound(Dados2, 2) - 5) = Format$(lr_Snap!valor, "#0.000")
lr_Snap.MoveNext
Tag_Espera True, "Consultando dados, Aguarde..."
Loop
End If
Next i
If Not Opt_Boletim.Value Then
'-------- Total --------
Dados2(1, UBound(Dados2, 2) - 3) = "Total"

ld_Total = 0

For ll_Linha = 1 To UBound(Dados2, 2) - 5

If Not IsEmpty(Dados2(1, ll_Linha)) Then
ld_Total = ld_Total + Dados2(2, ll_Linha)
End If

Next

Dados2(2, UBound(Dados2, 2) - 3) = Format$(ld_Total, "#0.00")
Tag_Espera True, "Consultando dados, Aguarde..."

'-------- Media --------
Dados2(2, UBound(Dados2, 2) - 1) = "Mdia"

For ll_Coluna = 3 To UBound(Dados2, 1)

ld_Total = 0
li_NumDados = 0

For ll_Linha = 1 To UBound(Dados2, 2) - 5

If Not IsEmpty(Dados2(ll_Coluna, ll_Linha)) Then
ld_Total = ld_Total + Dados2(ll_Coluna, ll_Linha)
li_NumDados = li_NumDados + 1
End If

Next
If li_NumDados <> 0 Then
Dados2(ll_Coluna, UBound(Dados2, 2) - 1) = Format$((ld_Total / li_NumDados), "#
0.000")
End If
Next

Tag_Espera True, "Consultando dados, Aguarde..."

'-------- Desvio --------
Dados2(2, UBound(Dados2, 2)) = "Desvio"

For ll_Coluna = 3 To UBound(Dados2, 1)

ld_Total = 0
li_NumDados = 0
Analises_Fisico_Quimicas - 7


For ll_Linha = 1 To UBound(Dados2, 2) - 5

If Not IsEmpty(Dados2(ll_Coluna, ll_Linha)) Then
ld_Total = ld_Total + ((Dados2(ll_Coluna, ll_Linha) - Dados2(ll_Coluna, UBound(
Dados2, 2) - 1)) ^ 2 * Dados2(2, ll_Linha))
End If

Next

Dados2(ll_Coluna, UBound(Dados2, 2)) = Format$(Sqr(ld_Total / Dados2(2, UBound(Dados2,
2) - 3)), "#0.000")

Next

Tag_Espera True, "Consultando dados, Aguarde..."
End If
'========================================================================
Tag_Espera True, "Consultando dados, Aguarde..."
Tgp_Fisicas.Rows = UBound(dados1, 2)
Tgp_Fisicas.Columns = lr_Peneiras.RecordCount + 2
ReDim fv_Dados1(UBound(dados1, 2), UBound(dados1, 1))

For ll_Coluna = 1 To UBound(dados1, 1)
For ll_Linha = 0 To UBound(dados1, 2)
fv_Dados1(ll_Linha, ll_Coluna) = dados1(ll_Coluna, ll_Linha)
Next ll_Linha
Next ll_Coluna
For ll_Coluna = 1 To Tgp_Fisicas.Columns
Tgp_Fisicas.ColumnName(ll_Coluna) = fv_Dados1(0, ll_Coluna)
Tgp_Fisicas.ColumnWidth(ll_Coluna) = 12
Tgp_Fisicas.ColumnStyle(ll_Coluna) = 1
Next
Tag_Espera True, "Consultando dados, Aguarde..."
Tgp_Fisicas.Refresh
Tag_Espera True, "Consultando dados, Aguarde..."
Tgp_Quimicas.Rows = UBound(Dados2, 2)
Tgp_Quimicas.Columns = lr_ElemQuim.RecordCount + 2
ReDim fv_Dados2(UBound(Dados2, 2), UBound(Dados2, 1))
For ll_Coluna = 1 To UBound(Dados2, 1)
For ll_Linha = 0 To UBound(Dados2, 2)
fv_Dados2(ll_Linha, ll_Coluna) = Dados2(ll_Coluna, ll_Linha)
Next ll_Linha
Next ll_Coluna
For ll_Coluna = 1 To Tgp_Quimicas.Columns
Tgp_Quimicas.ColumnName(ll_Coluna) = fv_Dados2(0, ll_Coluna)
Tgp_Quimicas.ColumnWidth(ll_Coluna) = 12
Tgp_Quimicas.ColumnStyle(ll_Coluna) = 1
Next
Tag_Espera True, "Consultando dados, Aguarde..."
Tgp_Quimicas.Refresh

Cmb_Siglas.Tag = Left(Cmb_Siglas.List(Cmb_Siglas.ListIndex), 4)
VST_Tabela.CurrTab = 1
If Cmb_Siglas.Text <> "" Then
Pnl_Elemento = Cmb_Siglas.Text
Analises_Fisico_Quimicas - 8

ElseIf Cmb_Boletins.Text <> "" Then
Pnl_Elemento = Cmb_Boletins.Text
Else
Pnl_Elemento = ""
End If
Screen.MousePointer = 0
Tag_Espera False, "Consultando dados, Aguarde..."
End Sub
Private Sub Chk_Descendial_Click(Value As Integer)

Opt_Boletim.Value = False
Opt_Sigla.Value = False
Opt_Boletim.Value = False
Opt_Sigla.Value = False
Cmb_Boletins.Clear
Cmb_Siglas.Clear
End Sub
Private Sub Cmb_Mes_Click()

Opt_Boletim.Value = False
Opt_Sigla.Value = False
Cmb_Boletins.Clear
Cmb_Siglas.Clear
End Sub
Private Sub ssc_copy_click()

Dim l As Integer, c As Integer, X As Integer
Dim li_Colunas As Integer
Dim li_Format As String, li_Pos As Integer
Screen.MousePointer = 11

If VST_Tabela.CurrTab = 1 Then
Tgp_Fisicas.SetFocus
If Lst_Grficos.ListCount = 0 Then
Call CopyToClipBoard(Tgp_Fisicas)
Exit Sub
End If
'Adiciono as datas
ReDim Grficos(UBound(fv_Dados1, 1), 0)
For l = 0 To UBound(fv_Dados1, 1)
Grficos(l, 0) = "'" & fv_Dados1(l, 1)
Next
'Adiciono os boletins
li_Colunas = li_Colunas + 1
ReDim Preserve Grficos(UBound(fv_Dados1, 1), li_Colunas)
For l = 0 To UBound(fv_Dados1, 1)
Grficos(l, li_Colunas) = fv_Dados1(l, 2)
Next
'Grficos selecionados
For c = 0 To (Lst_Grficos.ListCount - 1)
'Procuro os fv_Dados1 do grafico
For i = 0 To UBound(fv_Dados1, 2)
If Lst_Grficos.List(c) = fv_Dados1(0, i) Then Exit For
Next
'Verifico se encontrou
If i <= UBound(fv_Dados1, 2) Then
li_Colunas = li_Colunas + 1
ReDim Preserve Grficos(UBound(fv_Dados1, 1), li_Colunas)
'Adiciono os fv_Dados1
For l = 0 To UBound(fv_Dados1, 1)
Grficos(l, li_Colunas) = fv_Dados1(l, i)
Next
End If
Next
Clipboard.Clear
For X = 0 To UBound(Grficos, 1)
For Y = 0 To UBound(Grficos, 2)
Clipboard.SetText Clipboard.GetText() & Grficos(X, Y) & Chr(9)
Analises_Fisico_Quimicas - 9

Next
Clipboard.SetText Clipboard.GetText() & Chr(10)
Next
'Call CopyToClipBoard(Tgp_Fisicas)
ElseIf VST_Tabela.CurrTab = 2 Then
Tgp_Quimicas.SetFocus
If lst_Graficos_Quimica.ListCount = 0 Then
Call CopyToClipBoard(Tgp_Quimicas)
Exit Sub
End If
'Adiciono as datas
ReDim Grficos(UBound(fv_Dados2, 1), 0)
For l = 0 To UBound(fv_Dados2, 1)
Grficos(l, 0) = "'" & fv_Dados2(l, 1)
Next
'Adiciono os boletins
li_Colunas = li_Colunas + 1
ReDim Preserve Grficos(UBound(fv_Dados2, 1), li_Colunas)
For l = 0 To UBound(fv_Dados2, 1)
Grficos(l, li_Colunas) = fv_Dados2(l, 2)
Next
'Grficos selecionados
For c = 0 To (lst_Graficos_Quimica.ListCount - 1)
'Procuro os fv_Dados1 do grafico
For i = 0 To UBound(fv_Dados2, 2)
If lst_Graficos_Quimica.List(c) = fv_Dados2(0, i) Then Exit For
Next
'Verifico se encontrou
If i <= UBound(fv_Dados2, 2) Then
li_Colunas = li_Colunas + 1
ReDim Preserve Grficos(UBound(fv_Dados2, 1), li_Colunas)
'Adiciono os fv_Dados1
For l = 0 To UBound(fv_Dados2, 1)
Grficos(l, li_Colunas) = fv_Dados2(l, i)
Next
End If
Next
Clipboard.Clear
For X = 0 To UBound(Grficos, 1)
For Y = 0 To UBound(Grficos, 2)
Clipboard.SetText Clipboard.GetText() & Grficos(X, Y) & Chr(9)
Next
Clipboard.SetText Clipboard.GetText() & Chr(10)
Next
'Call CopyToClipBoard(Tgp_Quimicas)
End If
Screen.MousePointer = 0
End Sub
Private Sub SSC_Fechar_Click()
Unload Me

End Sub
Private Sub ssc_grafico_click()
Dim Data1 As String
Dim Data2 As String
Dim l As Integer, c As Integer
Dim li_Colunas As Integer
Dim li_Aux As Integer
Dim li_Pos As Integer
Dim li_Format As String, elemento As String
On Error Resume Next

elemento = Pnl_Elemento.Caption
If VST_Tabela.CurrTab = 1 Then

Tgp_Fisicas.SetFocus

If Lst_Grficos.ListCount = 0 Then Exit Sub
Screen.MousePointer = 11
Analises_Fisico_Quimicas - 10

'Adiciono as datas
ReDim Grficos(UBound(fv_Dados1, 1), 0)
For l = 0 To UBound(fv_Dados1, 1)
If fv_Dados1(l, 1) = "" Then Exit For
Grficos(l, 0) = fv_Dados1(l, 1)
Next
'Grficos selecionados
For c = 0 To (Lst_Grficos.ListCount - 1)
'Procuro os fv_Dados1 do grafico
For i = 0 To UBound(fv_Dados1, 2)
If Lst_Grficos.List(c) = fv_Dados1(0, i) Then Exit For
Next
'Verifico se encontrou
If i <= UBound(fv_Dados1, 2) Then
li_Colunas = li_Colunas + 1
ReDim Preserve Grficos(UBound(fv_Dados1, 1), li_Colunas)
'Adiciono os fv_Dados1
For l = 0 To UBound(fv_Dados1, 1)
If fv_Dados1(l, 1) = "" Then Exit For
Grficos(l, li_Colunas) = fv_Dados1(l, i)
Next
End If
Next
Data1 = Format$(fv_Dados1(1, 1), "dd/mm/yyyy")
Data2 = Format(fv_Dados1((UBound(fv_Dados1, 1) - 5), 1), "dd/mm/yyyy")
li_Aux = CVDate(Data2) - CVDate(Data1)
Select Case li_Aux
Case 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30
GrficoCriar Grficos(), (Not Chk_MultiLinha.Value), "Perodo: " & Data1 & " a " & Data
2, IIf(OpPor = 1, 3, 1), 1, "dd", elemento
Case 30 To 180
li_Pos = 10
li_Format = "dd-mm"
GrficoCriar Grficos(), (Not Chk_MultiLinha.Value), "Perodo: " & Data1 & " a " & Data
2, li_Pos, li_Pos, li_Format, elemento
Case Else
li_Pos = 10
li_Format = "dd-mm"
GrficoCriar Grficos(), (Not Chk_MultiLinha.Value), "Perodo: " & Data1 & " a " & Data
2, li_Pos, li_Pos, li_Format, elemento
End Select
'(Frm_Intervalo.Tag)
ElseIf VST_Tabela.CurrTab = 2 Then
Tgp_Quimicas.SetFocus

If lst_Graficos_Quimica.ListCount = 0 Then Exit Sub
Screen.MousePointer = 11
'Adiciono as datas
ReDim Grficos(UBound(fv_Dados2, 1), 0)
For l = 0 To UBound(fv_Dados2, 1)
If fv_Dados2(l, 1) = "" Then Exit For
Grficos(l, 0) = fv_Dados2(l, 1)
Next
'Grficos selecionados
For c = 0 To (lst_Graficos_Quimica.ListCount - 1)
'Procuro os fv_Dados2 do grafico
For i = 0 To UBound(fv_Dados2, 2)
If lst_Graficos_Quimica.List(c) = fv_Dados2(0, i) Then Exit For
Next
'Verifico se encontrou
If i <= UBound(fv_Dados2, 2) Then
li_Colunas = li_Colunas + 1
ReDim Preserve Grficos(UBound(fv_Dados2, 1), li_Colunas)
'Adiciono os fv_Dados2
For l = 0 To UBound(fv_Dados2, 1)
If fv_Dados2(l, 1) = "" Then Exit For
Grficos(l, li_Colunas) = fv_Dados2(l, i)
Next
End If
Next
Data1 = Format$(fv_Dados2(1, 1), "dd/mm/yyyy")
Data2 = Format(fv_Dados1((UBound(fv_Dados1, 1) - 5), 1), "dd/mm/yyyy")
li_Aux = CVDate(Data2) - CVDate(Data1)
Select Case li_Aux
Analises_Fisico_Quimicas - 11

Case 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30
GrficoCriar Grficos(), (Not Chk_MultiLinha_Quimica.Value), "Perodo: " & Data1 & " a
" & Data2, IIf(OpPor = 1, 3, 1), 1, "dd", elemento
Case 30 To 180
li_Pos = 10
li_Format = "dd-mm"
GrficoCriar Grficos(), (Not Chk_MultiLinha_Quimica.Value), "Perodo: " & Data1 & " a
" & Data2, li_Pos, li_Pos, li_Format, elemento
Case Else
li_Pos = 10
li_Format = "mm"
GrficoCriar Grficos(), (Not Chk_MultiLinha_Quimica.Value), "Perodo: " & Data1 & " a
" & Data2, li_Pos, li_Pos, li_Format, elemento
End Select
'(Frm_Intervalo.Tag)
End If
End Sub
Private Sub ssc_con_click()
Dim Sql As String
Dim lr_Snap As SnapShot
Dim lr_boletins As SnapShot
Dim lr_Peneiras As SnapShot
Dim lr_ElemQuim As SnapShot
Dim ll_Linha As Long
Dim ll_Coluna As Long
If Cmb_Siglas.Text = "" And Cmb_Boletins.Text = "" Then
If MsgBox("Voce no escolheu nenhuma Sigla. Deseja continuar? ", 36, "Ateno") = 7 Then
Opt_Sigla.SetFocus
Exit Sub
End If
End If

Screen.MousePointer = 11
Lst_Grficos.Clear
lst_Graficos_Quimica.Clear
Tag_Espera True, "Consultando dados, Aguarde..."

Tgp_Fisicas.Rows = 0
Tgp_Fisicas.Columns = 0
Tgp_Quimicas.Rows = 0
Tgp_Quimicas.Columns = 0
'Verificando as Datas
If Not VerificaDatas(DataInic, dataFim) Then
GoTo Sair_Cmd_Ok_GotFocus
End If

If CHK_MENSAL Then
AcumuladoMensal
Exit Sub
End If
Tag_Espera True, "Consultando dados, Aguarde..."
'----------------------------Anlise Fsica----------------------------

'-------- Boletins --------
Sql = "SELECT DISTINCT st_receb_mat_prima.Boletim_Ano, Peso_Umido, Data_Receb , Umidade "
Sql = Sql & "FROM (st_receb_mat_prima INNER JOIN st_analise_fisica "
Sql = Sql & "ON st_receb_mat_prima.Boletim_Ano = st_analise_fisica.Boletim_Ano) "
Sql = Sql & "INNER JOIN st_Estoque "
Sql = Sql & "ON st_analise_fisica.Boletim_Ano = st_Estoque.Boletim_Ano "
Sql = Sql & "WHERE (Data_Receb >= '" & DataInic & "' AND Data_Receb < '" & dataFim & "') "

If Opt_Boletim.Value Then
Sql = Sql & "AND st_analise_fisica.Boletim_Ano = '" & Cmb_Boletins.List(Cmb_Boletins.ListIn
dex) & "' "
Analises_Fisico_Quimicas - 12

ElseIf Opt_Sigla.Value Then
Sql = Sql & "AND st_receb_mat_prima.Sigla_Mat_Prima = '" & Left(Cmb_Siglas.List(Cmb_Siglas.
ListIndex), 4) & "' "
End If
Sql = Sql & "ORDER BY st_receb_mat_prima.Boletim_Ano "
'Sql = Sql & "ORDER BY Data_Receb , st_receb_mat_prima.Boletim_Ano "
Set lr_boletins = DB.CreateSnapshot(Sql, DB_SQLPASSTHROUGH)
If lr_boletins.EOF Then
GoTo Sair_Cmd_Ok_GotFocus
End If

Tag_Espera True, "Consultando dados, Aguarde..."
'-------- Peneiras ---------
Sql = ""
Sql = "SELECT DISTINCT Peneira , ST_EAS_CADAST_PENEIRAS.NOME_PENEIRA, ST_EAS_CADAST_PENEIRAS.VL
R_PENEIRA "
Sql = Sql & "FROM ST_EAS_CADAST_PENEIRAS, st_receb_mat_prima INNER JOIN st_analise_fisica "
Sql = Sql & " ON st_receb_mat_prima.Boletim_Ano = st_analise_fisica.Boletim_Ano "
Sql = Sql & "WHERE (Data_Receb >= '" & DataInic & "' AND Data_Receb < '" & dataFim & "') "
Sql = Sql & " And ST_EAS_CADAST_PENEIRAS.NOME_PENEIRA Containing Peneira "
If Opt_Boletim.Value Then
Sql = Sql & "AND st_analise_fisica.Boletim_Ano = '" & Cmb_Boletins.List(Cmb_Boletins.ListIn
dex) & "' "
ElseIf Opt_Sigla.Value Then
Sql = Sql & "AND st_receb_mat_prima.Sigla_Mat_Prima = '" & Left(Cmb_Siglas.List(Cmb_Siglas.
ListIndex), 4) & "' "
End If
Sql = Sql & "ORDER BY VLR_PENEIRA DEsc"

Set lr_Peneiras = DB.CreateSnapshot(Sql, DB_SQLPASSTHROUGH)
If lr_Peneiras.EOF Then
GoTo Sair_Cmd_Ok_GotFocus
End If
Tag_Espera True, "Consultando dados, Aguarde..."
ReDim fv_Dados1(lr_boletins.RecordCount + 5, lr_Peneiras.RecordCount + 3)

fv_Dados1(0, 1) = "Data"
fv_Dados1(0, 2) = "Boletim"
fv_Dados1(0, 3) = "Ton. Seca"
' Preenchendo Boletins
Do Until lr_boletins.EOF
ll_Linha = ll_Linha + 1

fv_Dados1(ll_Linha, 1) = Format(lr_boletins!DATA_RECEB, "dd/mm/yyyy")
fv_Dados1(ll_Linha, 2) = lr_boletins!boletim_ano
fv_Dados1(ll_Linha, 3) = Format$((lr_boletins!PESO_UMIDO * (1 - (lr_boletins!Umidade / 100)
)), "#0.00")

lr_boletins.MoveNext
Loop
Tag_Espera True, "Consultando dados, Aguarde..."
' Preenchendo Peneiras
ll_Coluna = 3
Do Until lr_Peneiras.EOF
ll_Coluna = ll_Coluna + 1

fv_Dados1(0, ll_Coluna) = lr_Peneiras!Peneira

lr_Peneiras.MoveNext
Loop
Tag_Espera True, "Consultando dados, Aguarde..."
Analises_Fisico_Quimicas - 13

'-------- Consulta --------
Sql = "SELECT DISTINCT st_receb_mat_prima.Boletim_Ano, Peneira, Data_Receb , "
Sql = Sql & "Valor_Retencao "
Sql = Sql & "FROM st_receb_mat_prima INNER JOIN st_analise_fisica "
Sql = Sql & "ON st_receb_mat_prima.Boletim_Ano = st_analise_fisica.Boletim_Ano "
Sql = Sql & "WHERE (Data_Receb >= '" & DataInic & "' AND Data_Receb < '" & dataFim & "') "

If Opt_Boletim.Value Then
Sql = Sql & "AND st_analise_fisica.Boletim_Ano = '" & Cmb_Boletins.List(Cmb_Boletins.ListIn
dex) & "' "
ElseIf Opt_Sigla.Value Then
Sql = Sql & "AND st_receb_mat_prima.Sigla_Mat_Prima = '" & Left(Cmb_Siglas.List(Cmb_Siglas.
ListIndex), 4) & "' "
End If
Sql = Sql & "ORDER BY Peneira, st_receb_mat_prima.Boletim_Ano "

Set lr_Snap = DB.CreateSnapshot(Sql, DB_SQLPASSTHROUGH)
Tag_Espera True, "Consultando dados, Aguarde..."
' Preenchendo Dados
Do Until lr_Snap.EOF
'Procurando Linha
For ll_Linha = 1 To UBound(fv_Dados1, 1)
If fv_Dados1(ll_Linha, 2) = lr_Snap!boletim_ano Then
Exit For
End If
Next

'Procurando Coluna
For ll_Coluna = 1 To UBound(fv_Dados1, 2)
If fv_Dados1(0, ll_Coluna) = lr_Snap!Peneira Then
Exit For
End If
Next
'If ll_Coluna = 12 Then
' MsgBox (ll_Linha + (lr_Snap!Valor_Retencao))
'End If
If ll_Coluna <= UBound(fv_Dados1, 2) Then fv_Dados1(ll_Linha, ll_Coluna) = Format$(lr_Snap!
Valor_Retencao, "#0.00")

lr_Snap.MoveNext

Tag_Espera True, "Consultando dados, Aguarde..."
Loop
If Not Opt_Boletim.Value Then
'-------- Total --------
fv_Dados1(UBound(fv_Dados1, 1) - 3, 2) = "Total"

ld_Total = 0

For ll_Linha = 1 To UBound(fv_Dados1, 1) - 5

If Not IsEmpty(fv_Dados1(ll_Linha, 2)) Then
ld_Total = ld_Total + fv_Dados1(ll_Linha, 3)
End If
Next
fv_Dados1(UBound(fv_Dados1, 1) - 3, 3) = Format$(ld_Total, "#0.00")
'-------- Media --------
fv_Dados1(UBound(fv_Dados1, 1) - 1, 3) = "Mdia"

For ll_Coluna = 4 To UBound(fv_Dados1, 2)

ld_Total = 0
li_NumDados = 0

For ll_Linha = 1 To UBound(fv_Dados1, 1) - 5

Analises_Fisico_Quimicas - 14

If Not IsEmpty(fv_Dados1(ll_Linha, ll_Coluna)) Then
ld_Total = ld_Total + fv_Dados1(ll_Linha, ll_Coluna)
li_NumDados = li_NumDados + 1
End If

Next
If li_NumDados <> 0 Then
fv_Dados1(UBound(fv_Dados1, 1) - 1, ll_Coluna) = Format$((ld_Total / li_NumDados),
"#0.00")
End If
Next
Tag_Espera True, "Consultando dados, Aguarde..."
'-------- Desvio --------
fv_Dados1(UBound(fv_Dados1, 1), 3) = "Desvio"

For ll_Coluna = 4 To UBound(fv_Dados1, 2)

ld_Total = 0
li_NumDados = 0

For ll_Linha = 1 To UBound(fv_Dados1, 1) - 5

If Not IsEmpty(fv_Dados1(ll_Linha, ll_Coluna)) Then
ld_Total = ld_Total + ((fv_Dados1(ll_Linha, ll_Coluna) - fv_Dados1(UBound(fv_Da
dos1, 1) - 1, ll_Coluna)) ^ 2 * fv_Dados1(ll_Linha, 3))
End If

Next

' If ll_Coluna = 12 Then
' MsgBox "(ll_Linha + (lr_Snap!Valor_Retencao))"
' End If
fv_Dados1(UBound(fv_Dados1, 1), ll_Coluna) = Format$(Sqr(ld_Total / fv_Dados1(UBound(fv
_Dados1, 1) - 3, 3)), "#0.00")

Next

Tag_Espera True, "Consultando dados, Aguarde..."
End If
'================================================================================================
'---------------------Anlise Qumica----------------------------

'-------- Boletins --------
Sql = "SELECT DISTINCT st_receb_mat_prima.Boletim_Ano, Peso_Umido , Data_Receb , Umidade "
Sql = Sql & "FROM (st_receb_mat_prima INNER JOIN st_analise_quimica "
Sql = Sql & "ON st_receb_mat_prima.Boletim_Ano = st_analise_quimica.Boletim_Ano) "
Sql = Sql & "INNER JOIN st_Estoque "
Sql = Sql & "ON st_analise_quimica.Boletim_Ano = st_Estoque.Boletim_Ano "
Sql = Sql & "WHERE (Data_Receb >= '" & DataInic & "' AND Data_Receb < '" & dataFim & "') "

If Opt_Boletim.Value Then
Sql = Sql & "AND st_analise_quimica.Boletim_Ano = '" & Cmb_Boletins.List(Cmb_Boletins.ListI
ndex) & "' "
ElseIf Opt_Sigla.Value Then
Sql = Sql & "AND st_receb_mat_prima.Sigla_Mat_Prima = '" & Left(Cmb_Siglas.List(Cmb_Siglas.
ListIndex), 4) & "' "
End If
Sql = Sql & "ORDER BY st_receb_mat_prima.Boletim_Ano "

Set lr_boletins = DB.CreateSnapshot(Sql, DB_SQLPASSTHROUGH)
If lr_boletins.EOF Then
GoTo Sair_Cmd_Ok_GotFocus
End If

Analises_Fisico_Quimicas - 15

Tag_Espera True, "Consultando dados, Aguarde..."
'-------- Elementos Quimicos ---------
Sql = ""
Sql = "SELECT DISTINCT Trim([ELEM_QUIMICO]) AS Elem_Quim ,SEQ_ELEMEN "
Sql = Sql & "FROM ST_EAS_CADAST_ELEMEN, st_receb_mat_prima INNER JOIN st_analise_quimica ON "
Sql = Sql & "st_receb_mat_prima.BOLETIM_ANO = st_analise_quimica.BOLETIM_ANO "
Sql = Sql & "WHERE (Data_Receb >= #" & DataInic & "# AND Data_Receb < #" & dataFim & "#) "
Sql = Sql & " And (Trim([ELEM_QUIMICO])=Trim([NOME_ELEMEN])) "
If Opt_Boletim.Value Then
Sql = Sql & "AND st_analise_quimica.Boletim_Ano = " & Chr(34) & Cmb_Boletins.List(Cmb_Bolet
ins.ListIndex) & Chr(34) & ""
ElseIf Opt_Sigla.Value Then
Sql = Sql & "AND st_receb_mat_prima.Sigla_Mat_Prima = " & Chr(34) & Left(Cmb_Siglas.List(Cm
b_Siglas.ListIndex), 4) & Chr(34) & " "
End If
Sql = Sql & "ORDER BY ST_EAS_CADAST_ELEMEN.SEQ_ELEMEN "


Set lr_ElemQuim = DB.CreateSnapshot(Sql) ', DB_SQLPASSTHROUGH)
If lr_ElemQuim.EOF Then
GoTo Sair_Cmd_Ok_GotFocus
End If
Tag_Espera True, "Consultando dados, Aguarde..."
ReDim fv_Dados2(lr_boletins.RecordCount + 5, lr_ElemQuim.RecordCount + 4)

fv_Dados2(0, 1) = "Data"
fv_Dados2(0, 2) = "Boletim"
fv_Dados2(0, 3) = "Ton. Seca"
fv_Dados2(0, 4) = "Umidade"
ll_Linha = 0
' Preenchendo Boletins
Do Until lr_boletins.EOF
ll_Linha = ll_Linha + 1

fv_Dados2(ll_Linha, 1) = Format(lr_boletins!DATA_RECEB, "dd/mm/yyyy")
fv_Dados2(ll_Linha, 2) = lr_boletins!boletim_ano
fv_Dados2(ll_Linha, 3) = Format$((lr_boletins!PESO_UMIDO * (1 - (lr_boletins!Umidade / 100)
)), "#0.00")
fv_Dados2(ll_Linha, 4) = Format$(lr_boletins!Umidade, "#0.00")
lr_boletins.MoveNext
Loop

Tag_Espera True, "Consultando dados, Aguarde..."
' Preenchendo Elementos Quimicos
ll_Coluna = 4
Do Until lr_ElemQuim.EOF
ll_Coluna = ll_Coluna + 1

fv_Dados2(0, ll_Coluna) = lr_ElemQuim!Elem_Quim

lr_ElemQuim.MoveNext
Loop
Tag_Espera True, "Consultando dados, Aguarde..."
'-------- Consulta --------
Sql = "SELECT DISTINCT st_receb_mat_prima.Boletim_Ano, Elem_Quimico, "
Sql = Sql & "Valor_Elem "
Sql = Sql & "FROM st_receb_mat_prima INNER JOIN st_analise_quimica "
Sql = Sql & "ON st_receb_mat_prima.Boletim_Ano = st_analise_quimica.Boletim_Ano "
Sql = Sql & "WHERE (Data_Receb >= '" & DataInic & "' AND Data_Receb < '" & dataFim & "') "

Analises_Fisico_Quimicas - 16

If Opt_Boletim.Value Then
Sql = Sql & "AND st_analise_quimica.Boletim_Ano = '" & Cmb_Boletins.List(Cmb_Boletins.ListI
ndex) & "' "
ElseIf Opt_Sigla.Value Then
Sql = Sql & "AND st_receb_mat_prima.Sigla_Mat_Prima = '" & Left(Cmb_Siglas.List(Cmb_Siglas.
ListIndex), 4) & "' "
End If
Sql = Sql & "ORDER BY Elem_Quimico, st_receb_mat_prima.Boletim_Ano "

Set lr_Snap = DB.CreateSnapshot(Sql, DB_SQLPASSTHROUGH)
Tag_Espera True, "Consultando dados, Aguarde..."
' Preenchendo Dados
Do Until lr_Snap.EOF
'Procurando Linha
For ll_Linha = 1 To UBound(fv_Dados1, 1)
If fv_Dados2(ll_Linha, 2) = lr_Snap!boletim_ano Then
Exit For
End If
Next

'Procurando Coluna

For ll_Coluna = 1 To UBound(fv_Dados2, 2)
If fv_Dados2(0, ll_Coluna) = Trim(lr_Snap!Elem_Quimico) Then
Exit For
End If
Next

'If ll_Coluna >= 7 Then
' MsgBox lr_Snap!Valor_Elem
' End If
If ll_Coluna <= UBound(fv_Dados2, 2) Then fv_Dados2(ll_Linha, ll_Coluna) = lr_Snap!Valor_El
em ' Format$(lr_Snap!Valor_Elem, "0.00")
lr_Snap.MoveNext

'==========================Tag_Espera True, "Consultando dados, Aguarde..."
Loop

If Not Opt_Boletim.Value Then
'-------- Total --------
fv_Dados2(UBound(fv_Dados2, 1) - 3, 2) = "Total"

ld_Total = 0

For ll_Linha = 1 To UBound(fv_Dados2, 1) - 5

If Not IsEmpty(fv_Dados2(ll_Linha, 2)) Then
ld_Total = ld_Total + fv_Dados2(ll_Linha, 3)
End If
Next
fv_Dados2(UBound(fv_Dados2, 1) - 3, 3) = Format$(ld_Total, "#0.00")
'-------- Media --------
fv_Dados2(UBound(fv_Dados2, 1) - 1, 3) = "Mdia"

For ll_Coluna = 4 To UBound(fv_Dados2, 2)

ld_Total = 0
li_NumDados = 0

For ll_Linha = 1 To UBound(fv_Dados2, 1) - 5

If Not IsEmpty(fv_Dados2(ll_Linha, ll_Coluna)) Then
ld_Total = ld_Total + fv_Dados2(ll_Linha, ll_Coluna)
li_NumDados = li_NumDados + 1
End If
Analises_Fisico_Quimicas - 17


Next

If li_NumDados <> 0 Then
fv_Dados2(UBound(fv_Dados2, 1) - 1, ll_Coluna) = Format$((ld_Total / li_NumDados), "#0.
000")
End If

Next
Tag_Espera True, "Consultando dados, Aguarde..."

'-------- Desvio --------
fv_Dados2(UBound(fv_Dados2, 1), 3) = "Desvio"

For ll_Coluna = 4 To UBound(fv_Dados2, 2)

ld_Total = 0
li_NumDados = 0

For ll_Linha = 1 To UBound(fv_Dados2, 1) - 5

If Not IsEmpty(fv_Dados2(ll_Linha, ll_Coluna)) Then
ld_Total = ld_Total + ((fv_Dados2(ll_Linha, ll_Coluna) - fv_Dados2(UBound(fv_Da
dos2, 1) - 1, ll_Coluna)) ^ 2 * fv_Dados2(ll_Linha, 3))
End If

Next

fv_Dados2(UBound(fv_Dados2, 1), ll_Coluna) = Format$(Sqr(ld_Total / fv_Dados2(UBound(fv
_Dados2, 1) - 3, 3)), "#0.000")

Next

End If


Tgp_Fisicas.Rows = lr_boletins.RecordCount + 5
Tgp_Fisicas.Columns = lr_Peneiras.RecordCount + 3

For ll_Coluna = 1 To Tgp_Fisicas.Columns
Tgp_Fisicas.ColumnName(ll_Coluna) = fv_Dados1(0, ll_Coluna)
Tgp_Fisicas.ColumnWidth(ll_Coluna) = 15
Tgp_Fisicas.ColumnStyle(ll_Coluna) = 1
Next
Tag_Espera True, "Consultando dados, Aguarde..."
Tgp_Fisicas.Refresh

Tgp_Quimicas.Rows = lr_boletins.RecordCount + 5
Tgp_Quimicas.Columns = lr_ElemQuim.RecordCount + 4

For ll_Coluna = 1 To Tgp_Quimicas.Columns
Tgp_Quimicas.ColumnName(ll_Coluna) = fv_Dados2(0, ll_Coluna)
Tgp_Quimicas.ColumnWidth(ll_Coluna) = 15
Tgp_Quimicas.ColumnStyle(ll_Coluna) = 1
Next
Tag_Espera True, "Consultando dados, Aguarde..."
Tgp_Quimicas.Refresh
Cmb_Siglas.Tag = Left(Cmb_Siglas.List(Cmb_Siglas.ListIndex), 4)
VST_Tabela.CurrTab = 1

If Cmb_Siglas.Text <> "" Then
Pnl_Elemento = Cmb_Siglas.Text
ElseIf Cmb_Boletins.Text <> "" Then
Pnl_Elemento = Cmb_Boletins.Text
Else
Pnl_Elemento = ""
End If
Sair_Cmd_Ok_GotFocus:
Analises_Fisico_Quimicas - 18

Screen.MousePointer = 0
Tag_Espera False, "Consultando dados, Aguarde..."
End Sub
Private Sub Form_Load()
Dim Sql1 As String
Dim DataInic As Variant
Dim dataFim As Variant
'Define tamanho e localizao padro
Aux_Left = 75
Aux_Top = 75
Aux_Height = 4200
Aux_Width = 6540

'Aplica tamanho e localizao padro
Me.Left = Aux_Left
Me.Top = Aux_Top
Me.Height = Aux_Height
Me.Width = Aux_Width
Screen.MousePointer = 11
Pnl_Elemento = ""
Call AdicionaMeses(Cmb_Mes)

Cmb_Mes.ListIndex = (Format(Date, "mm") - 1)
Lbl_ValorAno.Caption = Format(Date, "yyyy")
Screen.MousePointer = 0
SysMsg "Pronto."
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
SysMsg ""
End Sub
Private Sub Form_Resize()

On Error Resume Next
If Me.WindowState <> 1 And Me.Height >= Aux_Height And Me.Width >= Aux_Width Then
VST_Tabela.Width = Me.ScaleWidth - (VST_Tabela.Left + 75)
VST_Tabela.Height = Me.ScaleHeight - (VST_Tabela.Top + SSP_Bar_Inf.Height + 75)
SSC_Fechar.Left = Me.ScaleWidth - (SSC_Fechar.Width + 75)
SSC_Grafico.Left = SSC_Fechar.Left - (SSC_Grafico.Width + 75)
SSC_Copy.Left = SSC_Grafico.Left - (SSC_Copy.Width + 75)
If VST_Tabela.CurrTab = 1 Then
Tgp_Fisicas.Width = VST_Tabela.Width - (Tgp_Fisicas.Left + 75)
Tgp_Fisicas.Height = VST_Tabela.Height - (Tgp_Fisicas.Top + 75) - (Lst_Grficos.Height
+ 450)
Lst_Grficos.Move 100, Tgp_Fisicas.Height + 100
Chk_MultiLinha.Move Lst_Grficos.Left + Lst_Grficos.Width + 100, Lst_Grficos.Top + 10
0
End If
If VST_Tabela.CurrTab = 2 Then
Tgp_Quimicas.Width = VST_Tabela.Width - (Tgp_Quimicas.Left + 75)
Tgp_Quimicas.Height = VST_Tabela.Height - (Tgp_Quimicas.Top + 75) - (Lst_Grficos.Heigh
t + 450)
lst_Graficos_Quimica.Move 100, Tgp_Quimicas.Height + 100
Chk_MultiLinha_Quimica.Move Lst_Grficos.Left + Lst_Grficos.Width + 100, Lst_Grficos.
Top + 100
End If
End If
End Sub
Private Sub Lbl_DataFinal_Click()
Call SelecaoData(Msk_DataFinal)
End Sub
Analises_Fisico_Quimicas - 19

Private Sub Lbl_DataInicial_Click()
Call SelecaoData(Msk_DataInicial)
End Sub
Private Sub Lst_Grficos_Click()

Lst_Grficos.RemoveItem Lst_Grficos.ListIndex

If Lst_Grficos.ListCount = 0 Then
Principal.Lbl_Help.Visible = False
End If
End Sub
Private Sub Lst_Graficos_Quimica_Click()

lst_Graficos_Quimica.RemoveItem lst_Graficos_Quimica.ListIndex

End Sub
Private Sub Msk_DataFinal_Change()
Opt_Boletim.Value = False
Opt_Sigla.Value = False
Cmb_Boletins.Clear
Cmb_Siglas.Clear
End Sub
Private Sub Msk_DataInicial_Change()

Opt_Boletim.Value = False
Opt_Sigla.Value = False
Cmb_Boletins.Clear
Cmb_Siglas.Clear
End Sub
Private Sub Opt_1_Click(Value As Integer)

Opt_Boletim.Value = False
Opt_Sigla.Value = False
Cmb_Boletins.Clear
Cmb_Siglas.Clear
End Sub
Private Sub Opt_2_Click(Value As Integer)
Opt_Boletim.Value = False
Opt_Sigla.Value = False
Cmb_Boletins.Clear
Cmb_Siglas.Clear
End Sub
Private Sub Opt_3_Click(Value As Integer)
Opt_Boletim.Value = False
Opt_Sigla.Value = False
Cmb_Boletins.Clear
Cmb_Siglas.Clear
End Sub
Private Sub Opt_Boletim_Click(Value As Integer)
Dim DataInic As String
Dim dataFim As String

If Value Then

'Verificando as Datas
If VerificaDatas(DataInic, dataFim) Then
Call AddItensObj(Cmb_Boletins, "SELECT DISTINCT Boletim_Ano FROM st_receb_mat_prima WHE
Analises_Fisico_Quimicas - 20

RE Data_Receb >= '" & DataInic & "' AND Data_Receb < '" & dataFim & "' ORDER BY Data_Receb ")
End If

End If

Cmb_Boletins.Enabled = Value
Cmb_Siglas.Enabled = False
Cmb_Siglas.Clear
End Sub
Private Sub Opt_Mes_Click(Value As Integer)

Cmb_Mes.Enabled = True
Msk_DataInicial.Enabled = False
Msk_DataFinal.Enabled = False
Frm_Descendial.Enabled = True
Principal.Lbl_Help.Visible = True
Lbl_ValorAno.Enabled = True
Spn_Ano.Enabled = True
End Sub
Private Sub Opt_Periodo_Click(Value As Integer)

Cmb_Mes.Enabled = False
Msk_DataInicial.Enabled = True
Msk_DataFinal.Enabled = True
Principal.Lbl_Help.Visible = False
Frm_Descendial.Enabled = False
Msk_DataInicial.SetFocus
Lbl_ValorAno.Enabled = False
Spn_Ano.Enabled = False
End Sub
Private Sub Opt_Sigla_Click(Value As Integer)
Dim DataInic As String
Dim dataFim As String
Dim Sql As String
If Value Then

'Verificando as Datas
If VerificaDatas(DataInic, dataFim) Then
Sql = " SELECT distinct ST_RECEB_MAT_PRIMA.SIGLA_MAT_PRIMA , "
Sql = Sql & "descricao , '-' "
Sql = Sql & "FROM "
Sql = Sql & "ST_SIGLA_MAT_PRIMA , "
Sql = Sql & "ST_RECEB_MAT_PRIMA "
Sql = Sql & "WHERE "
Sql = Sql & "(ST_SIGLA_MAT_PRIMA.SIGLA_MAT_PRIMA = ST_RECEB_MAT_PRIMA.SIGLA_MAT_PRIMA "
Sql = Sql & "AND "
Sql = Sql & "Data_Receb >= '" & DataInic & "' "
Sql = Sql & "AND "
Sql = Sql & "Data_Receb < '" & dataFim & "' ) "
Sql = Sql & "ORDER BY ST_RECEB_MAT_PRIMA.Sigla_Mat_Prima"
Call AddItensObj(Cmb_Siglas, Sql)
End If
End If

Cmb_Siglas.Enabled = Value
Cmb_Boletins.Enabled = False
Cmb_Boletins.Clear
End Sub
Private Sub Preenche_Grd_Analise(snap As SnapShot, Grid As TrueGrid, nGrid As Integer)
Dim linha As Integer, coluna As Integer, RealLinhas As Integer
Dim Tonelagem As Double, Perc_Tonelagem As Double
Dim Total_Desvio As Double, Total_Boletins As Double
Dim i As Integer, l As Integer
If nGrid = 1 Then
ReDim Campo(snap.RecordCount, snap.RecordCount + 1)
Else
Analises_Fisico_Quimicas - 21

ReDim Campo1(snap.RecordCount, snap.RecordCount + 1)
End If
Screen.MousePointer = 11

Grid.Rows = 0
Grid.Columns = 0
Grid.Refresh
DoEvents
coluna = 1
Tag_Espera True, "Consultando dados, Aguarde..."

Do Until snap.EOF

If snap.Fields(1) <> Peneira Then 'se mudar de peneira, muda de coluna
Peneira = snap.Fields(1)

coluna = coluna + 1

If nGrid = 1 Then

Campo(0, coluna) = snap.Fields(1) 'Peneira

If coluna > 2 Then
'Mdia
Campo(RealLinhas + 2, coluna - 1) = Format(Perc_Tonelagem / Tonelagem, "#0.000"
)
End If

Else

Campo1(0, coluna) = snap.Fields(1) 'Peneira
If coluna > 2 Then
'Mdia
Campo1(RealLinhas + 2, coluna - 1) = Format(Perc_Tonelagem / Tonelagem, "#0.00
0")
End If

End If
linha = 1
Tonelagem = 0
Perc_Tonelagem = 0
End If

'Preenchendo a primeira coluna com os boletins
If coluna = 2 Then

If nGrid = 1 Then
Campo(linha, 0) = snap.Fields(0)
Campo(linha, 1) = Format(snap.Fields(3), "####0.00")
Else
Campo1(linha, 0) = snap.Fields(0)
Campo1(linha, 1) = Format(snap.Fields(3), "####0.00")
End If

RealLinhas = RealLinhas + 1
End If
'Dados para media
Tonelagem = Tonelagem + snap.Fields(3)
Perc_Tonelagem = Perc_Tonelagem + (snap.Fields(3) * snap.Fields(2))

If nGrid = 1 Then

' Procura boletim
For l = 1 To RealLinhas
If Campo(l, 0) = snap.Fields(0) Then
Exit For
End If
Analises_Fisico_Quimicas - 22

Next

'Valores retidos em cada peneira
Campo(l, coluna) = Format(snap.Fields(2), "#0.000")
Else
' Procura boletim
For l = 1 To RealLinhas
If Campo1(l, 0) = snap.Fields(0) Then
Exit For
End If
Next

'elementos quimicos
Campo1(linha, coluna) = Format(snap.Fields(2), "#0.000")
End If

snap.MoveNext

If linha Mod 2 = 0 Then
Tag_Espera True, "Consultando dados, Aguarde..."
End If
linha = linha + 1

Loop

If Tonelagem <> 0 Then
If nGrid = 1 Then
'Mdia
Campo(linha + 1, coluna) = Format(Perc_Tonelagem / Tonelagem, "#0.000")
Else
'Mdia
Campo1(linha + 1, coluna) = Format(Perc_Tonelagem / Tonelagem, "#0.000")
End If
'Desvio padrao
If nGrid = 1 Then

For A = 2 To coluna

Total_Desvio = 0
Total_Boletins = 0

For B = 1 To (linha - 1)

Total_Desvio = Total_Desvio + ((CDbl(Campo(B, A)) - CDbl(Campo(linha + 1, A)))
^ 2) * Campo(B, 1)
Total_Boletins = Total_Boletins + Campo(B, 1)

Next

Campo(linha + 2, A) = Format(Sqr(Total_Desvio / Total_Boletins), "#0.000")

If A Mod 2 = 0 Then
Tag_Espera True, "Consultando dados, Aguarde..."
End If
Next

Else

For A = 2 To coluna

Total_Desvio = 0
Total_Boletins = 0

For B = 1 To (linha - 1)

Total_Desvio = Total_Desvio + ((CDbl(Campo1(B, A)) - CDbl(Campo1(linha + 1, A)
)) ^ 2) * Campo1(B, 1)
Total_Boletins = Total_Boletins + Campo1(B, 1)

Next
Analises_Fisico_Quimicas - 23


Campo1(linha + 2, A) = Format(Sqr(Total_Desvio / Total_Boletins), "#0.000")

If A Mod 2 = 0 Then
Tag_Espera True, "Consultando dados, Aguarde..."
End If
Next

End If


Grid.Rows = IIf(linha = 2, 1, linha + 2)
Grid.Columns = coluna + 1
If nGrid = 1 Then
Campo(linha + 1, 1) = "Mdia"
Campo(linha + 2, 1) = "Desvio"
Else
Campo1(linha + 1, 1) = "Mdia"
Campo1(linha + 2, 1) = "Desvio"
End If
Else

Grid.Rows = linha
Grid.Columns = coluna
End If

Grid.ColumnCellAttrs(1) = True
For i = 1 To coluna

If nGrid = 1 Then
Grid.ColumnName(i + 1) = Campo(0, i)
Else
Grid.ColumnName(i + 1) = Campo1(0, i)
End If
Grid.ColumnStyle(i + 1) = 1
Grid.ColumnWidth(i + 1) = 9
Grid.ColumnCellAttrs(i + 1) = True
Next
Tag_Espera True, "Consultando dados, Aguarde..."

If nGrid = 1 Then

Campo(linha, 0) = "Total"
For i = 1 To linha
Campo(linha, 1) = Campo(linha, 1) + CDbl(Campo(i, 1))
Next
Else

Campo1(linha, 0) = "Total"
For i = 1 To linha
Campo1(linha, 1) = Campo1(linha, 1) + CDbl(Campo1(i, 1))
Next

End If

Grid.ColumnName(1) = "Boletins"
Grid.ColumnStyle(1) = 1
Grid.ColumnWidth(1) = 12
Grid.ColumnName(2) = "Tonelagem"
Grid.ColumnStyle(2) = 1
Grid.ColumnWidth(2) = 12
Analises_Fisico_Quimicas - 24


Grid.Refresh
Screen.MousePointer = 0
End Sub
Private Sub PreencheAnalisesFisicas(ps_Sql As String)



'Set lr_Snap = DB.CreateSnapshot(ps_Sql, DB_SQLPASSTHROUGH)
End Sub
Private Sub Spn_Ano_SpinDown()

DoEvents
Lbl_ValorAno.Caption = Val(Lbl_ValorAno.Caption) - 1

End Sub
Private Sub Spn_Ano_SpinUp()

DoEvents
Lbl_ValorAno.Caption = Val(Lbl_ValorAno.Caption) + 1

End Sub
Private Sub Tgp_Fisicas_Click()

If (Tgp_Fisicas.ColumnIndex = 1) Then Exit Sub
If (Tgp_Fisicas.ColumnIndex = 2) And Not (CHK_MENSAL) Then Exit Sub
AdicionaGrficos Lst_Grficos, (fv_Dados1(0, Tgp_Fisicas.ColumnIndex))

End Sub
Private Sub Tgp_Fisicas_Fetch(Row As Long, Col As Integer, Value As String)
On Error Resume Next
Value = fv_Dados1(Row, Col)
End Sub
Private Sub Tgp_Quimicas_Click()
If (Tgp_Quimicas.ColumnIndex = 1) Then Exit Sub
If (Tgp_Quimicas.ColumnIndex = 2) And Not (CHK_MENSAL) Then Exit Sub
AdicionaGrficos lst_Graficos_Quimica, (fv_Dados2(0, Tgp_Quimicas.ColumnIndex))


End Sub
Private Sub Tgp_Quimicas_Fetch(Row As Long, Col As Integer, Value As String)
On Error Resume Next
Value = fv_Dados2(Row, Col)
End Sub
Private Function VerificaDatas(Data1 As String, Data2 As String)

VerificaDatas = True

If Opt_Periodo.Value Then

If Len(Trim(Msk_DataInicial.ClipText)) = 8 And Len(Trim(Msk_DataFinal.ClipText)) = 8 Then

Data1 = Msk_DataInicial.Text
Data2 = Msk_DataFinal.Text
If Not IsDate(Data1) Then
VerificaDatas = False
Msk_DataInicial.SetFocus
MsgBox "A primeira data no vlida.", 16
Exit Function
Analises_Fisico_Quimicas - 25

End If

If Not IsDate(Data2) Then
VerificaDatas = False
Msk_DataFinal.SetFocus
MsgBox "A segunda data no vlida.", 16
Exit Function
End If

If CVDate(Data1) > CVDate(Data2) Then
VerificaDatas = False
Msk_DataFinal.SetFocus
MsgBox "A primeira data maior que a segunda.", 16
Exit Function
End If

Else

Msk_DataInicial.SetFocus
MsgBox "A data no est completa.", 16
VerificaDatas = False
Exit Function
End If

ElseIf Opt_Mes.Value Then

Data1 = "01/" + Format$((Cmb_Mes.ListIndex + 1), "0#") + "/" + Right(Lbl_ValorAno, 4)
Data2 = DateAdd("d", -1, DateAdd("m", 1, Data1))

If Chk_Descendial.Value Then

If Opt_1.Value Then
Data2 = DateAdd("d", 9, Data1)
ElseIf Opt_2.Value Then
Data1 = DateAdd("d", 10, Data1)
Data2 = DateAdd("d", 10, Data1)
ElseIf Opt_3.Value Then
Data1 = DateAdd("d", 20, Data1)
End If

End If
End If

Data1 = Format$(Data1, "dd-mmm-yyyy")
Data2 = Format$(DateAdd("d", 1, Data2), "dd-mmm-yyyy")
Data1 = Data_Ingles(Data1)
Data2 = Data_Ingles(Data2)
End Function
Private Sub VST_Tabela_Click()

Select Case VST_Tabela.CurrTab
Case 0
SSC_Con.Visible = True
SSC_Grafico.Visible = False
SSC_Copy.Visible = False
Case 1
SSC_Con.Visible = False
SSC_Grafico.Visible = True
SSC_Copy.Visible = True
Case 1
SSC_Con.Visible = False
SSC_Grafico.Visible = True
SSC_Copy.Visible = True
End Select
Form_Resize

End Sub
Ms
Data final
Data inicial
1996 Ano

También podría gustarte