17.04.2008, 14:45 | #1 |
Участник
|
1) Открываем книгу: ExcelBuf.OpenBook(FileName,SheetName);
2) Считываем данные из Экселе и вгоняем их в 370 таблицу... : ExcelBuf.ReadSheet; 3) Как мне теперь перенести эти данные из 370 таблице???? Не могу понять сам процесс... Если можно пример... 81 отчет я совсем не понял.... |
|
17.04.2008, 18:09 | #2 |
Участник
|
Там есть ссылки же на ряд и колонку Excel.
Если вы знаете, что у вас в этих ячейках, то просто при помощи фильтров на номера колонок/строк вытаскиваете значения и при помощи EVALUATE вставляете куда вам надо. P.S. Еще можно датапортом загонять даные в систему. |
|
18.04.2008, 11:48 | #3 |
Участник
|
до меня не доходит как все это реализовать.....
Вот так собстевенно будет выглядеть каркас...: Код: RowNo:=1; IF ExcelBuffer.FIND('-') THEN REPEAT ExcelBuffer2.SETFILTER("Row No.",'=%1',RowNo); IF ExcelBuffer2.FIND('-') THEN REPEAT UNTIL ExcelBuffer2.NEXT=0; RowNo:=RowNo+1; UNTIL ExcelBuffer.NEXT=0; |
|
22.04.2008, 14:12 | #4 |
Участник
|
Я знаю, что у меня, начиная с 3 строки есть код и описание страны. Пример упрощен (считаю, что там только новые кода и т.п.)
ПРИМЕР НЕ ПРОВЕРЯЛ, но примерно так. Код: // простой пример - без validate. FromLine := 3; TempExcelBuffer.SETCURRENTKEY("Row No.","Column No."); TempExcelBuffer.SETFILTER("Row No.",'>=%1',FromLine); IF TempExcelBuffer.FIND('-') THEN REPEAT TempExcelBuffer.SETRANGE("Column No.",1); IF NOT TempExcelBuffer.FIND('-') THEN ERROR('не заполнен код страны'); Country.SETFILTER(Code,'=%1',TempExcelBuffer."Cell Value as Text"); IF Country.FIND('-') THEN ERROR('страна уже есть в базе'); Country.INIT; EVALUATE(Country.Code,TempExcelBuffer."Cell Value as Text"); TempExcelBuffer.SETRANGE("Column No.",2); IF TempExcelBuffer.FIND('-') THEN EVALUATE(Country.Name,TempExcelBuffer."Cell Value as Text"); Country.INSERT; // ставим на последнюю строку, чтоб цикл продолжить TempExcelBuffer.SETRANGE("Column No."); TempExcelBuffer.FIND('+') UNTIL TempExcelBuffer.NEXT = 0; |
|
23.04.2008, 09:55 | #5 |
Участник
|
Принцип понял..
|
|