2010-05-10 3 views
1

Я пытаюсь читать из матрицы. код, что у меня до сих пор является:SAP B1: чтение из матрицы

SAPbouiCOM.Matrix matrix = (SAPbouiCOM.Matrix SBO_Application.Forms.ActiveForm.Items.Item("38").Specific;    
SAPbouiCOM.Column col = matrix.Columns.Item("1") ; 
SAPbouiCOM.Cells cells = col.Cells; 
String cell = cells.Item(2).Specific.ToString(); 
String f = cell.ToString(); 

Ни один из строк (ячейка и е) дать мне значение ячейки ...

Любая идея?

ответ

2

@Miguel попробовать этот код

string ColId = "1"; //Set The Column Name to read 
    Int32 Row  = 2; //Set the Row to Read 
    Matrix oMatrix =(Matrix)SBO_Application.Forms.ActiveForm.Items.Item("38").Specific; //Get Access to the Matrix 
    EditText oEdit =(EditText)oMatrix.Columns.Item(ColId).Cells.Item(Row).Specific; //Cast the Cell of the matrix to the respective type , in this case EditText 
    string sValue = oEdit.Value; //Get the value form the EditText 

Miguel дополнительно проверить SAP Business One SDK Forum для любого вопроса о SAP B1.

0
SAPbouiCOM.EditText EditValue; 
string strValue; 
String ColUId = "col_1" // Column UID 
Int32 Row  = 1  //Row Number 
Item item  = form.Items.Item("38"); 
Matrix matrix = ((Matrix)(item.Specific)); 
EditValue  = (SAPbouiCOM.EditText)matrix.GetCellSpecific(ColUId, Row); 
strValue  = EditValue.Value.ToString().Trim(); 
0

мы также можем написать то же следующим образом. я сделал это в vb.net

Dim matrix as SAPbouiCOM.Matrix 

matrix = oForm.Items.Item("38").Specific 


dim f as string = matrix .Columns.Item("3").Cells.Item(2).Specific.value.tostring 

Здесь номер ячейки 2, а номер столбца - 3. поэтому значение f будет второй строкой из трех значений столбца.

0

Если вы пытаетесь прочитать некоторые значения столбцов из формы, было бы проще использовать SQL-запросы. Вот что я делаю.

string firmenname = ""; 
string ort = ""; 
string plz = ""; 
string strasse = ""; 
SAPbobsCOM.Recordset mRs1 = (SAPbobsCOM.Recordset)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset); 
string sqlstring = " select top 1 street, zipcode, city, country, address from CRD1 where cardcode = '" + codeid + "' and adrestype ='B' "; 
mRs1.DoQuery(sqlstring); 
while (!mRs1.EoF) 
{ 
strasse = mRs1.Fields.Item("street").Value.ToString(); 
ort = mRs1.Fields.Item("city").Value.ToString(); 
plz = mRs1.Fields.Item("zipcode").Value.ToString(); 
firmenname = mRs1.Fields.Item("address").Value.ToString(); 
mRs1.MoveNext(); 
} 

У меня возник такой же вопрос, как и вы. Но после того, как я придумал эту идею, было легко читать значения из любой формы с количеством столбцов. Все, что вам нужно сделать, это «View -> System Information» и знать, в какой таблице базы данных значения сохраняются. Затем напишите требуемый SQL-запрос.

Надеюсь, это вам поможет!

0

Если вам нужно получить данные из Матрицы:

вар CellValue = oMatrix.Columns.Item (Id столбца или индекс) .Cells.Item (Index Роу) .Specific.Value;

Но если вам необходимо обновить значение матрицы должны отбрасывать седловины к EditText OBJ нравится:

var oEdit = (SAPbouiCOM.EditText)oMatrix.Columns.Item(Column's Id or Index).Cells.Item(Row's Index).Specific; 
oEdit.Value = "1"; 
Смежные вопросы