Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Создание таблицы / 17 сообщений из 17, страница 1 из 1
27.04.2004, 11:23
    #32498187
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблицы
Как создать программно таблицу, в которую данные будут дабавляться из двумерного массива, причем структура таблицы должна совпадать с размерностью таблицы. Размерность вводится пользователем с клавиатуры.

Заранее спасибо.
...
Рейтинг: 0 / 0
27.04.2004, 11:47
    #32498263
Создание таблицы
На основе данных пользователей нужно создать дополнительный массив, описывающий структуру таблицы.

Массив описания структуры - это двумерный массив, содержащий 4 столбца:
1 - наименование поля (строка)
2 - тип поля (символ)
3 - размер поля (число)
4 - размер десятичной части (для полей типа Numeric - число)
Число строк в массиве соответствует числу полей создаваемой таблицы

После заполнения этого массива дайте команду:

CREATE TABLE MyTable FROM ARRAY aStruct
...
Рейтинг: 0 / 0
28.04.2004, 09:55
    #32499823
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблицы
2 Вячеслав Клепинин :

С массивом все получилось, таблица размерностью M на N создается. Проблема как ее распечатать, ведь размерность всегда разная, отчеты в VFP думаю не помогут, т.к. там надо заполнять поле DETAIL. Может лучше данные выдать в EXCEL, но я в этом совсем не силен, направте меня немного, плиз.
...
Рейтинг: 0 / 0
28.04.2004, 10:10
    #32499852
Создание таблицы
Конечно, отчёты пока хреновые. Говорят, что в VFP9 будет лучше. А об экспорте в Excel уже так много написано... Вот пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
LOCAL i, n_Row, n_FCount, o_Excel, a_Buff[ 1 ]

o_Excel = CREATEOBJECT('Excel.Application')
IF TYPE('o_Excel') != 'O'
    = MESSAGEBOX('Невозможно запустить Excel!', 16 ,'Отмена')
    RETURN
ENDIF
WITH o_Excel
    .WorkBooks.add()
    .Sheets[ 1 ].Select
    .Visible = .t.
    SELECT MyTable
    n_FCount = FCOUNT()
    n_Row =  1 
    GO TOP 
    SCAN
         SCATTER TO a_Buff
         FOR i =  1  TO n_FCount
              .CELLS(n_Row, i).VALUE = a_Buff[i]
         ENDFOR
         n_Row = n_Row +  1 
    ENDSCAN
ENDWITH

Ваша табличка один-к-одному будет перенесена в Excel.
Как отформатировать колонки Excel и вывести заголовки - см. FAQ
...
Рейтинг: 0 / 0
28.04.2004, 15:01
    #32500861
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблицы
Все хорошо, только не смог найти изменение программно ориентации страницы.
Вот так не работает:

Код: plaintext
1.
2.
3.
With .Sheets( 1 )        
        .Name = "Матрицы"         
        .Orientation = xlLandscape
Endwith   

Так тоже:
Код: plaintext
1.
2.
With .Sheets( 1 ).PageSetup
      .Orientation = xlLandscape
EndWith         

Что не так делаю ?
...
Рейтинг: 0 / 0
28.04.2004, 15:55
    #32501013
Создание таблицы
xlLandscape - это константа экселя, и фокс про неё, конечно, ничего не знает. Посмотреть значения констант экселя можно в его Object Browser, для чего опять-же нужно перейти в VBA.
А вообще xlLandscape = 2.

Успехов!
...
Рейтинг: 0 / 0
29.04.2004, 13:48
    #32502608
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблицы
Ну в EXCELе я эту константу знаю, а мне-то надо в фоксе, плиз подскажите её родимую. Очень надо !!!
...
Рейтинг: 0 / 0
29.04.2004, 14:41
    #32502757
Dik76
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблицы
Так тебе же говорят = 2, подставляй значение.
...
Рейтинг: 0 / 0
29.04.2004, 15:02
    #32502821
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблицы
Не реагирует ни на какой вариант:

xlLandscape = 2
xlLandscape = 1
xlLandscape = 0

Как был книжный, так и остался.
...
Рейтинг: 0 / 0
29.04.2004, 15:09
    #32502840
Создание таблицы
Код: plaintext
1.
2.
With .Sheets( 1 )        
    .Orientation =  2      && xlLandscape
Endwith 
...
Рейтинг: 0 / 0
29.04.2004, 15:17
    #32502858
Создание таблицы
Попробуйте вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
WITH o_Excel
    .WorkBooks.add()
    WITH .ActiveSheet.PageSetup
        .Orientation =  2  && xlLandscape
        .PaperSize =  9    && xlPaperA4
        .Zoom =  100 
    ENDWITH
    .Sheets("Лист1").Name = "Новый лист"
    .Visible = .t.
    SELECT MyTable
    n_FCount = FCOUNT()
    n_Row =  1 
    GO TOP 
    SCAN
         SCATTER TO a_Buff
         FOR i =  1  TO n_FCount
              .CELLS(n_Row, i).VALUE = a_Buff[i]
         ENDFOR
         n_Row = n_Row +  1 
    ENDSCAN
ENDWITH
...
Рейтинг: 0 / 0
29.04.2004, 15:18
    #32502862
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблицы
Так уже пробовал давно, не находит :(( (кусок кода)

Код: plaintext
1.
2.
3.
4.
5.
.WorkBooks.add()    
    .Sheets[ 1 ].Select
    With .Sheets( 1 )        
        .Name ="Матрицы"       
        .Orientation =  2 
    Endwith   

пишет:

Код: plaintext
OLE error code 0x80020006: Неизвестное имя
...
Рейтинг: 0 / 0
29.04.2004, 15:25
    #32502882
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблицы
Странно, c .ActiveSheet.PageSetup пробовал раньше, но сейчас все заработало !!!
Спасибо всем и в частности Вячеславу Клепинину {-0
...
Рейтинг: 0 / 0
29.04.2004, 15:33
    #32502918
Создание таблицы
Ну вот только что попробовал. Создал форму, на ней кнопку, в методе Click кнопки написал следующий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
LOCAL o_Excel

o_Excel = CREATEOBJECT('Excel.Application')
IF TYPE('o_Excel') != 'O'
    = MESSAGEBOX('Невозможно запустить Excel!', 16 ,'Отмена')
    RETURN
ENDIF

WITH o_Excel
    .WorkBooks.add()
    WITH .ActiveSheet.PageSetup
        .Orientation =  2  && xlLandscape
        .PaperSize =  9    && xlPaperA4
        .Zoom =  100 
    ENDWITH
    .Sheets( 1 ).Name = "Новый лист"
    .Visible = .t.          && Разрешаем экселю показать себя
ENDWITH 

Запускаю форму, нажимаю кнопку, через несколько секунд появляется эксель (ему много времени надо на установку формата листа).
На листе экселя вижу ограничительную вертикальную полосу листа. Вхожу в меню "Параметры страницы" и смотрю, что действительно стоит альбом.
Скопируйте этот код. Если не заработает - тогда можно вешаться
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
14.11.2013, 13:46
    #38465013
rustam009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблицы
Вячеслав Клепинин,

m.lobook.activesheet.pagesetup.orientation=2
так по моему лучше выглядит
...
Рейтинг: 0 / 0
14.11.2013, 14:01
    #38465054
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблицы
rustam009Вячеслав Клепинин,

m.lobook.activesheet.pagesetup.orientation=2
так по моему лучше выглядит

1. Чем лучше?

2. Надо сказать Славе, обсуждают его пост 10-летней давности
...
Рейтинг: 0 / 0
14.11.2013, 14:43
    #38465116
sg12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблицы
PaulWist2. Надо сказать Славе, обсуждают его пост 10-летней давности

Можно подумать, что что-то сильно изменилось.
Разве что расписываете посты порядка семилетней давности.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Создание таблицы / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]