cancel
Showing results for 
Search instead for 
Did you mean: 

DataSource

0 Kudos

I'm trying to include the datasource in my code to complete the date, but as soon as I run the error application in this part:

if (!string.IsNullOrWhiteSpace(startdate))
            {
                var ddmmyyyy = startdate.Split('/');
                var yyyymmdd = $"{ddmmyyyy[2]}/{ddmmyyyy[1]}/{ddmmyyyy[0]}"; - The index is outside the matrix limits
                startdate = $"convert(date,'{yyyymmdd}')";
            }

maybe someone can help me please
0 Kudos

essa é toda a logica do filtro

public void FiltrarPedidos(Application SBO_Application)

{

Form formulario = SBO_Application.Forms.ActiveForm;

Grid grid = formulario.Items.Item("grdIt").Specific;

var datainicial = formulario.DataSources.UserDataSources.Add("DocDate", BoDataType.dt_DATE).ToString();

var datafinal = formulario.DataSources.UserDataSources.Add("DocDueDate", BoDataType.dt_DATE).ToString();

EditText edtText = (SAPbouiCOM.EditText)formulario.Items.Item("edtini").Specific;

edtText.DataBind.SetBound(true, "", "DocDate");

edtText = (SAPbouiCOM.EditText)formulario.Items.Item("edtFin").Specific;

edtText.DataBind.SetBound(true, "", "DocDueDate");

//consulta na tabela sql

var consulta = $"SELECT DISTINCT '' as [Sel.], T0.[DocEntry] as [Pedido sap], T0.[CardCode] as [COD. PN], T0.[CardName] as [CLIENTE], T0.[BPLId] as [Filial], T1.[TaxId0] as [Cnpj], T0.[Address] as [Endereço de cobrança], T0.[VatSum] as [Imposto Total], T0.[DocTotal]as [Valor a Faturar], T0.[DocDate] as [Data Lançamento], T0.[DocDueDate] as [Dia do Vencimento] FROM ORDR T0 INNER JOIN RDR12 T1 ON T0.[DocEntry] = T1.[DocEntry] WHERE T0.[DocStatus] = 'O' ";

// Determina o formato em que a data tem que ser inserida

if (!string.IsNullOrWhiteSpace(datainicial))

{

var ddmmyyyy = datainicial.Split('/');

var yyyymmdd = $"{ddmmyyyy[2]}/{ddmmyyyy[1]}/{ddmmyyyy[0]}";

datainicial = $"convert(date,'{yyyymmdd}')";

}

if (!string.IsNullOrWhiteSpace(datafinal))

{

var ddmmyyyy = datafinal.Split('/');

var yyyymmdd = $"{ddmmyyyy[2]}/{ddmmyyyy[1]}/{ddmmyyyy[0]}";

datafinal = $"convert(date,'{yyyymmdd}')";

}

// Faz o filtro das datas atraves dos EditText

if (!string.IsNullOrWhiteSpace(datainicial) && !string.IsNullOrWhiteSpace(datafinal))

{

consulta += $" AND T0.[DocDate] >= {datainicial} AND T0.[DocDuedate] <= {datafinal} ";

consulta += $"and T0.[DocDate] >= {datainicial} AND T0.[DocDuedate] >= {datainicial} ";

}

//propriedades do grid

grid.SelectionMode = BoMatrixSelect.ms_Single;

grid.DataTable.ExecuteQuery(consulta);

grid.DesabilitarColunas();

grid.LinhaSelecionada();

formulario.HabilitarBotao(nomeBotao: "btnEdt");

// propriedades do checkbox

grid.Columns.Item("Sel.").Type = SAPbouiCOM.BoGridColumnType.gct_CheckBox;

CheckBoxColumn oChkColumn;

oChkColumn = (CheckBoxColumn)grid.Columns.Item("Sel.");

grid.Columns.Item("Sel.").Editable = true;

grid.Columns.Item("Sel.");

formulario.Visible = true;

oChkColumn.Check(0, True);

var check = grid.Columns.Item("Sel.") as CheckBoxColumn;

formulario.Freeze(true);

SBO_Application.StatusBar.SetText("Selecionando todas as linhas!");

for (int i = 0; i < grid.Rows.Count; i++)

{

check.Check(i, true);

}

formulario.Freeze(false);

SBO_Application.StatusBar.SetText("Todas as linhas selecionadas com sucesso", BoMessageTime.bmt_Short, BoStatusBarMessageType.smt_Success);

//criando a seta de linkObject

grid.Columns.Item("Pedido sap").Type = SAPbouiCOM.BoGridColumnType.gct_EditText;

var coluna = grid.Columns.Item("Pedido sap") as EditTextColumn;

coluna.LinkedObjectType = Convert.ToString((int)BoObjectTypes.oOrders);

}

Accepted Solutions (0)

Answers (0)