protected void btnAcao_Click(object sender, EventArgs e)
    {
        bool result = false;
        bool erro = false;
        string msg = "";
        t14_resultado t14 = new t14_resultado();
        {
            t14.t03_cd_projeto = pb.cd_projeto();
            t14.ds_resultado = txtds_resultado.Text;
            t14.nm_medida = txtnm_medida.Text;
            t14.nm_resultado = txtnm_resultado.Text;
            t14.nm_unid = txtnm_unid.Text;

            if (txtnu_ano.Text != "")
            {
                if (txtnu_ano.Text.Length == 4)
                {
                    t14.nu_ano = Int32.Parse(txtnu_ano.Text);
                }
                else
                {
                    erro = true;
                    msg = pb.Message("Ano inválido", "erro");
                }
            }
            else{t14.nu_ano = 0;}
            if (txtvl_t0.Text != ""){t14.vl_t0 = decimal.Parse(txtvl_t0.Text);}
            else{t14.vl_t0 = 0;}

            t14.fl_acumulado = bool.Parse(rblfl_acumulado.SelectedValue.ToString());
            t14.dt_cadastro = DateTime.Now;
            t14.dt_alterado = DateTime.Now;
            t15_vlresultado t15 = new t15_vlresultado();
            t03_projeto t03 = new t03_projeto();
            t03.t03_cd_projeto = pb.cd_projeto();
            t03.Retrieve();
            if (!(erro))
            {
                if (cod.Value != "0")
                {
                    t14.t14_cd_resultado = Int32.Parse(dlResultado.SelectedValue.ToString());
                    result = t14.Update();
                    msg = pb.Message("Alteração realizada com sucesso!", "ok");
                    if (result)
                    {
                        //Altera os Valores
                        if (t03.Found)
                        {
                            t15.t14_cd_resultado = Int32.Parse(cod.Value.ToString());
                            t15.Delete();

                            for (int i = t03.dt_inicio.Year; i <= t03.dt_fim.Year; i++)
                            {
                                TextBox txtPrev = (TextBox)ucAnos.FindControl("txtPrev" + i.ToString());
                                TextBox txtReal = (TextBox)ucAnos.FindControl("txtReal" + i.ToString());
                                if (txtPrev != null)
                                {
                                    if (txtPrev.Text == "") txtPrev.Text = "0";
                                    if (txtReal.Text == "") txtReal.Text = "0";

                                    t15.t14_cd_resultado = Int32.Parse(cod.Value.ToString());
                                    t15.nu_ano = i;
                                    t15.vl_previsto = decimal.Parse(txtPrev.Text);
                                    t15.vl_realizado = decimal.Parse(txtReal.Text);
                                    t15.dt_alterado = DateTime.Now;
                                    t15.dt_cadastro = DateTime.Now;
                                    t15.Save();

                                }
                            }
                        }

                        cod.Value = "0";
                        pb.saveLog(pb.cd_usuario(), pb.cd_projeto(), "", "t14_resultado", "update", t14.t14_cd_resultado.ToString());
                    }
                }
                else
                {
                    result = t14.Save();
                    msg = pb.Message("Cadastro realizado com sucesso!", "ok");
                    if (result)
                    {
                        if (t03.Found)
                        {
                            t14.RetrieveCod();
                            if (t14.Found)
                            {
                                for (int i = t03.dt_inicio.Year; i <= t03.dt_fim.Year; i++)
                                {
                                    TextBox txtPrev = (TextBox)ucAnos.FindControl("txtPrev" + i.ToString());
                                    TextBox txtReal = (TextBox)ucAnos.FindControl("txtReal" + i.ToString());
                                    if (txtPrev != null)
                                    {
                                        if (txtPrev.Text == "") txtPrev.Text = "0";
                                        if (txtReal.Text == "") txtReal.Text = "0";
                                        t15.t14_cd_resultado = t14.t14_cd_resultado;
                                        t15.nu_ano = i;
                                        t15.vl_previsto = decimal.Parse(txtPrev.Text);
                                        t15.vl_realizado = decimal.Parse(txtReal.Text);
                                        t15.dt_alterado = DateTime.Now;
                                        t15.dt_cadastro = DateTime.Now;
                                        t15.Save();

                                    }
                                }
                            }
                        }
                        pb.saveLog(pb.cd_usuario(), pb.cd_projeto(), "", "t14_resultado", "update", t14.nm_resultado);
                    }

                }
                if (result)
                {
                    Ocultar();
                    GridBind("");
                }
                else
                {
                    msg = pb.Message(pb.msgerro, "erro");
                }
            }
            lblMsg.Text = msg;
            lblMsg.Visible = true;
        }
    }
    protected void ValoresBind(bool fl_acumulado, Panel pn, int cd_resultado)
    {
        decimal prev = 0;
        decimal real = 0;
        decimal prevac = 0;
        decimal realac = 0;
        pn.Controls.Clear();
        pn.Controls.Add(pb.GetLiteral("<table cellspacing='0' cellpadding='5' rules='all' border='1' style='color:#333333;border-color:#20669B;border-width:1px;border-style:solid;width:80%;border-collapse:collapse;'>"));
        pn.Controls.Add(pb.GetLiteral("<tr style='color:white;font-weight:bold;text-align:center;background-color:#5D7B9D;'>"));
        pn.Controls.Add(pb.GetLiteral("<td>Ano</td><td>Previsto</td><td>Realizado</td></tr>"));

        t03_projeto t03 = new t03_projeto();
        {
            t03.t03_cd_projeto = pb.cd_projeto();
            t03.Retrieve();
            if (t03.Found)
            {
                for (int i = t03.dt_inicio.Year; i <= t03.dt_fim.Year; i++)
                {
                    pn.Controls.Add(pb.GetLiteral("<tr style='background-color:#F1F5F5;text-align:center;'>"));
                    pn.Controls.Add(pb.GetLiteral("<td>"));
                    //Ano
                    pn.Controls.Add(pb.GetLiteral(i.ToString()));
                    pn.Controls.Add(pb.GetLiteral("</td><td>"));

                    t15_vlresultado t15 = new t15_vlresultado();
                    {
                        t15.t14_cd_resultado = cd_resultado;
                        t15.nu_ano = i;
                        t15.Retrieve();
                        //Previsto
                        if (t15.Found)
                        {
                            prev += t15.vl_previsto;
                            prevac = t15.vl_previsto;
                            pn.Controls.Add(pb.GetLiteral(t15.vl_previsto.ToString("N").Replace(",00","")));
                        }
                        pn.Controls.Add(pb.GetLiteral("</td><td>"));
                        //Realizado
                        if (t15.Found)
                        {
                            real += t15.vl_realizado;
                            realac = t15.vl_realizado;
                            pn.Controls.Add(pb.GetLiteral(t15.vl_realizado.ToString("N").Replace(",00", "")));
                        }
                        pn.Controls.Add(pb.GetLiteral("</td></tr>"));

                    }
                }
            }

        }

        pn.Controls.Add(pb.GetLiteral("<tr style='color:white;font-weight:bold;text-align:center;background-color:#5D7B9D;'>"));
        pn.Controls.Add(pb.GetLiteral("<td>Total:"));
        pn.Controls.Add(pb.GetLiteral("</td><td>"));
        if (fl_acumulado)
        {
            //Previsto
            pn.Controls.Add(pb.GetLiteral(prevac.ToString().Replace(",00", "")));
            pn.Controls.Add(pb.GetLiteral("</td><td>"));
            //Realizado
            pn.Controls.Add(pb.GetLiteral(realac.ToString().Replace(",00", "")));
            pn.Controls.Add(pb.GetLiteral("</td>"));
        }
        else
        {
            //Previsto
            pn.Controls.Add(pb.GetLiteral(prev.ToString()));
            pn.Controls.Add(pb.GetLiteral("</td><td>"));
            //Realizado
            pn.Controls.Add(pb.GetLiteral(real.ToString()));
            pn.Controls.Add(pb.GetLiteral("</td>"));
        }
        pn.Controls.Add(pb.GetLiteral("</tr>"));

        pn.Controls.Add(pb.GetLiteral("</table>"));
    }
    private void Retrieve()
    {
        t14_resultado t14 = new t14_resultado();
        {
            t14.t14_cd_resultado = Int32.Parse(cod.Value);
            t14.Retrieve();
            if (t14.Found)
            {
                txtds_resultado.Text = t14.ds_resultado;
                txtnm_medida.Text = t14.nm_medida;
                txtnm_unid.Text = t14.nm_unid;
                txtnm_resultado.Text = t14.nm_resultado;
                txtnu_ano.Text = t14.nu_ano.ToString();
                txtvl_t0.Text = t14.vl_t0.ToString("N");
                ListItem li = rblfl_acumulado.Items.FindByValue(t14.fl_acumulado.ToString());
                if (li != null) li.Selected = true;

                t03_projeto t03 = new t03_projeto();
                {
                    t03.t03_cd_projeto = pb.cd_projeto();
                    t03.Retrieve();
                    if (t03.Found)
                    {
                        for (int i = t03.dt_inicio.Year; i <= t03.dt_fim.Year; i++)
                        {
                            t15_vlresultado t15 = new t15_vlresultado();
                            {
                                t15.t14_cd_resultado = t14.t14_cd_resultado;
                                t15.nu_ano = i;
                                t15.Retrieve();
                                TextBox txtPrev = (TextBox)ucAnos.FindControl("txtPrev" + i.ToString());
                                TextBox txtReal = (TextBox)ucAnos.FindControl("txtReal" + i.ToString());
                                if (t15.Found)
                                {
                                    if (txtPrev != null) txtPrev.Text = t15.vl_previsto.ToString("N");
                                    if (txtReal != null) txtReal.Text = t15.vl_realizado.ToString("N");
                                }
                                else
                                {
                                    if (txtPrev != null) txtPrev.Text = "0";
                                    if (txtReal != null) txtReal.Text = "0";
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    public void getFCXMLData(int cd_resultado, int contador, bool fl_acumulado, Panel pn)
    {
        StringBuilder sb = new StringBuilder();
        string bg;
        if (contador % 2 == 0)
        {
            bg = "FFFFFF";
        }
        else
        {
            bg = "FFFFFF";
        }

        if (!fl_acumulado)
        {
            sb.Append("<graph bgColor='" + bg + "' showValues='0' decimalPrecision='2' anchorRadius='4' anchorBgAlpha='0' lineThickness='2' numberPrefix='' limitsDecimalPrecision='2' divLineDecimalPrecision='2'><categories>\n");
        }
        else
        {
            sb.Append("<graph bgColor='" + bg + "' caption='Valores Acumulados' showValues='0' decimalPrecision='2' anchorRadius='4' anchorBgAlpha='0' lineThickness='2' numberPrefix='' limitsDecimalPrecision='2' divLineDecimalPrecision='2'><categories>\n");
        }

        t15_vlresultado t15 = new t15_vlresultado();
        {
            t15.t14_cd_resultado = cd_resultado;
            foreach (DataRow dr in t15.List().Tables[0].Rows)
            {
                sb.Append("<category name='" + dr["nu_ano"] + "' />\n");
            }
            sb.Append("</categories>\n");

            sb.Append("<dataset seriesName='Previsto' color='66CC66'>\n");

            foreach (DataRow dr in t15.List().Tables[0].Rows)
            {
                decimal prev = decimal.Parse(dr["vl_previsto"].ToString());
                if (prev > 0)
                {
                    sb.Append("<set value='" + prev.ToString().Replace(",", ".") + "' alpha='100' />\n");
                }
                else
                {
                    sb.Append("<set value='' alpha='100' />\n");
                }

            }
            sb.Append("</dataset>");

            sb.Append("<dataset seriesName='Realizado' color='81BCE9'>\n");
            foreach (DataRow dr in t15.List().Tables[0].Rows)
            {
                decimal real = decimal.Parse(dr["vl_realizado"].ToString());
                if (real > 0)
                {
                    sb.Append("<set value='" + real.ToString().Replace(",", ".") + "' alpha='100' />\n");
                }
                else
                {
                    sb.Append("<set value='' alpha='100' />\n");
                }

            }
        }
        sb.Append("</dataset>\n");
        sb.Append("</graph>\n");

        pn.Controls.Clear();
        pn.Controls.Add(pb.GetLiteral("<object id=\"FC2Column\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0\""));
        pn.Controls.Add(pb.GetLiteral("height=\"200\" width=\"400\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\">"));
        pn.Controls.Add(pb.GetLiteral("<param name=\"Movie\" value=\"Charts/FC_2_3_MSColumn3D.swf\">"));
        pn.Controls.Add(pb.GetLiteral("<param name=\"FlashVars\" value=\"&chartWidth=400&chartHeight=220&dataXML="+ sb.ToString()+"\">"));
        pn.Controls.Add(pb.GetLiteral("<embed src=\"Charts/FC_2_3_MSColumn3D.swf\" flashvars=\"&chartWidth=400&chartHeight=220&dataXML="+ sb.ToString() +"\""));
        pn.Controls.Add(pb.GetLiteral("quality=\"high\" width=\"400\" height=\"300\" name=\"FC2Column\" type=\"application/x-shockwave-flash\" pluginspace=\"http://www.macromedia.com/go/getflashplayer\"> </embed></object>"));
    }