:: Visual Foxpro, Foxpro for DOS
Прошу помогите новичку
Manro026

Сообщений: 1
Дата регистрации: 24.12.2014
Всем привет делаю курсовую работу по FoxPro. Все сделал, но есть загвостка в форме У меня есть на форме кнопка добавить она работает хорошо вот код CLOSE INDEX
SELECT trener
&&SET INDEX TO Trener.CDX ORDER Tag key_tr

&&SET ORDER TO Tag key_tr OF Trener.cdx
GOTO BOTTOM
n = trener.key_tr + 1
MESSAGEBOX(n)
APPEND BLANK
Replace trener.key_tr WITH n,;
trener.nametrener WITH ThisForm.Text1.Value;
trener.famtrener WITH ThisForm.Text2.Value;
trener.ottrener WITH ThisForm.Text3.Value;
trener.addrestrenera WITH ThisForm.Text4.Value;
trener.fontrenera WITH ThisForm.Text5.Value;
trener.datarojtrenera WITH ThisForm.Text9.Value;
&& insert into trener (key_tr) values (n)


Проблема в другом Мне нужно создать кнопку которая будет создавать новое поле в моей таблице чтобы туда записать даные. Я думал это сделать через кнопку следуший тип таково

IF !EOF()
SKIP
ThisForm.Text1.Value=trener.nametrener
ThisForm.Text2.Value=trener.famtrener
ThisForm.Text3.Value=trener.ottrener
ThisForm.Text4.Value=trener.addrestrenera
ThisForm.Text5.Value=trener.fontrenera
ThisForm.Text6.Value=command.name_command
ThisForm.Text7.Value=command.kol_sportc
ThisForm.Text8.Value=sport.namesport
ThisForm.Text9.Value=trener.datarojtrenera
else
apend blan
endif
_screen.ActiveForm.Refresh()
помогите до ума до вести!
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
Chemberzhy

Сообщений: 13142
Откуда: Измаил
Дата регистрации: 28.04.2009
Походу методику преподавания по изучению FoxPro писал плотник.
Очень уж похож почерк у автора текущего топика и предыдущего недавнего (_screen.ActiveForm.Refresh() )

По делу:
Вопрос не ясен. Создать новое поле (столбец) в таблице или, всё же создать новую запись (строку) в таблице?
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
Базы не проектируют так, чтобы "кнопка добавляла новое поле".


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
pipos522

Сообщений: 681
Дата регистрации: 12.08.2013
-


------------------
Я готов целовать песок
По которому ты ходила
Снова тень наискосок
Рыжий берег с полоской ила...




Исправлено 2 раз(а). Последнее : pipos522, 31.12.14 00:37
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
comsel
Автор

Сообщений: 947
Откуда: Москва
Дата регистрации: 20.09.2007
pipos522
Решил попробовать сделать такую кнопку, вроде добавляет.
Часть текста скрыта
*!* ADD пoле
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
ON ERROR MESSAGEBOX([Номер ошибки: ] + LTRIM(STR(ERROR())) +CHR(13)+;
[Сообщение: ] + MESSAGE() +CHR(13)+;
[Строка с ошибкой: ] + MESSAGE(1) +CHR(13)+;
[Номер строки с ошибкой: ] + LTRIM(STR(LINENO()))+CHR(13)+;
[Программа с ошибкой: ] + PROGRAM(), 0+64+0, [ОШИБКА ...])
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
loForm = NEWOBJECT("FORM_GL")
loForm.Show(2)
READ EVENTS
*================================================================*
DEFINE CLASS FORM_GL AS FORM
AUTOCENTER = .T.
HEIGHT = 350
WIDTH = 500
CAPTION = [Форма ввода...]
NAME = [Form_GL]
BACKCOLOR = RGB(245,240,220)
CONTROLBOX = .T.
CLOSABLE = .T.
MAXBUTTON = .F.
MINBUTTON = .F.
MOVABLE = .T.
BorderStyle = 3
*_______________________________________*
PROCEDURE DESTROY
CLEAR EVENTS
QUIT
ENDPROC
*_______________________________________*
PROCEDURE LOAD
CREATE CURSOR TABLE_1 (ART N(2), DATA_ D(8), PRIM_ C(15))
INSERT INTO TABLE_1 VALUES ( 1, DATE() , [Смирнов №1])
INSERT INTO TABLE_1 VALUES ( 1, DATE()-10, [Смирнов №2])
INSERT INTO TABLE_1 VALUES ( 2, DATE()-20, [Смирнов №3])
INSERT INTO TABLE_1 VALUES ( 2, DATE()-30, [Смирнов №4])
INSERT INTO TABLE_1 VALUES ( 3, DATE()-40, [Смирнов №5])
INSERT INTO TABLE_1 VALUES ( 3, DATE()-50, [Смирнов №6])
GO TOP
ENDPROC
*_______________________________________*
PROCEDURE INIT
THISFORM.ADDOBJECT('COM_1','CommandButton_1') && CommandButton 1
WITH THISFORM.COM_1
.CAPTION = [Новое поле]
.DEFAULT = .T.
.VISIBLE = .T.
.TOP = 5
.LEFT = 5
.HEIGHT = 25
.WIDTH = 100
ENDWITH
THIS.ADDOBJECT('GRID_1','GRID') && GRID_1
WITH THIS.GRID_1
.HEIGHT = 310
.WIDTH = 490
.ALLOWCELLSELECTION = .F. &&&&&&&&&
.TOP = 35
.LEFT = 5
.VISIBLE = .T.
.DELETEMARK = .F.
.RECORDMARK = .F.
.READONLY = .T.
.SCROLLBARS = 2
.COLUMNCOUNT = 3
.HEADERHEIGHT = 20
.RECORDSOURCE = [TABLE_1]
*.COLUMN1.CONTROLSOURCE = [Art]
*.COLUMN2.CONTROLSOURCE = [DATA_]
*.COLUMN3.CONTROLSOURCE = [PRIM_]
*.COLUMN1.WIDTH = 50
*.COLUMN2.WIDTH = 90
*.COLUMN3.WIDTH = 90
*.COLUMN1.RESIZABLE = .F.
*.COLUMN2.RESIZABLE = .F.
*.COLUMN3.RESIZABLE = .F.
*.COLUMN1.ALIGNMENT = 2
*.COLUMN2.ALIGNMENT = 2
*.COLUMN3.ALIGNMENT = 2
ENDWITH
ENDPROC
ENDDEFINE
*================================================================*
*===============================================*
DEFINE CLASS COMMANDBUTTON_1 AS COMMANDBUTTON &&
PROCEDURE CLICK &&
loForm2 = NEWOBJECT("FORM_2") &&
loForm2.Show(1) &&
THISFORM.REFRESH &&
ENDPROC &&
ENDDEFINE &&
*===============================================*
*===============================================*
DEFINE CLASS FORM_2 AS FORM
WIDTH = 250
HEIGHT = 200
MinButton = .F.
MaxButton = .F.
Movable = .F.
BorderStyle = 2
AUTOCENTER = .T.
NAME = [Form_GL]
CAPTION = [Параметры поля]
BACKCOLOR = RGB(245,240,220)
ADD OBJECT LABEL_ADD AS LABEL;
WITH CAPTION = [Ширина поля] ,;
BORDERSTYLE = 0 ,;
FontSize = 15 ,;
ALIGNMENT = 2 ,;
BACKSTYLE = 0 ,;
TOP = 100 ,;
LEFT = 0 ,;
HEIGHT = 30 ,;
WIDTH = 250
ADD OBJECT TEXT_ADD AS TEXTBOX;
WITH CONTROLSOURCE = [Number1.Nom] ,;
INPUTMASK = [999] ,;
TOP = 130 ,;
LEFT = 45 ,;
HEIGHT = 25 ,;
WIDTH = 160
*_______________________________________*
PROCEDURE LOAD
CREATE CURSOR Number1 (Nom N(3))
APPEND BLANK
CREATE CURSOR N1 (VIBOR N(1))
INSERT INTO N1 VALUES (1)
ENDPROC
*_______________________________________*
PROCEDURE INIT
THISFORM.ADDOBJECT('CMD_ADD','CommandButton_2') && CommandButton 1
WITH THISFORM.CMD_ADD
.CAPTION = [Создать]
.DEFAULT = .T.
.VISIBLE = .T.
.TOP = 160
.LEFT = 45
.HEIGHT = 25
.WIDTH = 160
ENDWITH
THISFORM.ADDOBJECT('Option_1','Optiongroup1') && CommandButton 1
WITH THISFORM.Option_1
.CONTROLSOURCE = [N1.VIBOR]
.BORDERSTYLE = 1
.BACKSTYLE = 1
.VISIBLE = .T.
.AutoSize = .F.
.TOP = 10
.LEFT = 35
.HEIGHT = 85
.WIDTH = 180
.ButtonCount = 3
.VALUE = 1
ENDWITH
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
WITH THISFORM.OPTION_1.OPTION1
.AutoSize = .F.
.Caption = [Дата (D) 8]
.TOP = 5
.HEIGHT = 25
.WIDTH = 170
.FontSize = 11
ENDWITH
WITH THISFORM.OPTION_1.OPTION2
.AutoSize = .F.
.Caption = [Число (N)]
.TOP = 30
.HEIGHT = 25
.WIDTH = 170
.FontSize = 11
ENDWITH
WITH THISFORM.OPTION_1.OPTION3
.AutoSize = .F.
.Caption = [Символы (C) 255]
.TOP = 55
.HEIGHT = 25
.WIDTH = 170
.FontSize = 11
ENDWITH
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
ENDDEFINE
*===============================================*
*==========================================*
DEFINE CLASS Optiongroup1 AS Optiongroup &&
PROCEDURE VALID &&
DO CASE &&
CASE THISFORM.OPTION_1.VALUE = 3 &&
VIBOR = 3 &&
CASE THISFORM.OPTION_1.VALUE = 2 &&
VIBOR = 2 &&
CASE THISFORM.OPTION_1.VALUE = 1 &&
VIBOR = 1 &&
ENDCASE &&
ENDPROC &&
ENDDEFINE &&
*==========================================*
*__________________________________________________________*
DEFINE CLASS COMMANDBUTTON_2 AS COMMANDBUTTON
PROCEDURE CLICK
IF EMPTY(NUMBER1.NOM)
MESSAGEBOX([Ширина поля не заполнена!],0+48+256,[Внимание!])
RETURN
ELSE
THISFORM.RELEASE
*======================*
DO CASE &&
CASE N1.VIBOR = 3 &&
TIP = [C] &&
CASE N1.VIBOR = 2 &&
TIP = [N] &&
CASE N1.VIBOR = 1 &&
TIP = [D] &&
ENDCASE &&
*======================*
POLE_NEW = [POLE_NEW ]+TIP+[ (]+ALLTRIM(STR(NUMBER1.NOM))+[)]
CREATE TABLE POLE ( &POLE_NEW )
APPEND BLANK
SELECT TABLE_1.*, POLE.* FROM TABLE_1, POLE INTO CURSOR TABLE_1
loForm.GRID_1.RECORDSOURCE = [TABLE_1]
THISFORM.REFRESH
ENDPROC
ENDDEFINE
*__________________________________________________________*



Этот код добавляет новое поле в существующую таблицу?
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
pipos522

Сообщений: 681
Дата регистрации: 12.08.2013
-


------------------
Я готов целовать песок
По которому ты ходила
Снова тень наискосок
Рыжий берег с полоской ила...




Исправлено 1 раз(а). Последнее : pipos522, 31.12.14 00:37
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
Chemberzhy

Сообщений: 13142
Откуда: Измаил
Дата регистрации: 28.04.2009
Никогда не заморачивался подобными моментами.
Тупо Select..into cursor с добавлением нужных или переименованием/переделыванием столбцов, use, delete file, copy to, use

P.S. А вот добавление к элементу управления (контролу) GRID столбца вовсе никак не подразумевает модификацию таблицы
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
comsel
Автор

Сообщений: 947
Откуда: Москва
Дата регистрации: 20.09.2007
pipos522
comsel
Этот код добавляет новое поле в существующую таблицу?

что-то... куда-то... добавляет...

С огромным удовольствие посмотрю на такую кнопку в вашем "исполнении".

ALTER TABLE TableName1 ADD | ALTER [COLUMN] FieldName1

FieldType [( nFieldWidth [, nPrecision])] [NULL | NOT NULL] [CHECK lExpression1 [ERROR cMessageText1]]

[AUTOINC [NEXTVALUE NextValue [STEP StepValue]]] [DEFAULT eExpression1]

[PRIMARY KEY | UNIQUE [COLLATE cCollateSequence]]

[REFERENCES TableName2 [TAG TagName1]] [NOCPTRANS] [NOVALIDATE]
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
pipos522

Сообщений: 681
Дата регистрации: 12.08.2013
-


------------------
Я готов целовать песок
По которому ты ходила
Снова тень наискосок
Рыжий берег с полоской ила...




Исправлено 1 раз(а). Последнее : pipos522, 31.12.14 00:37
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
pasha_usue

Сообщений: 3650
Откуда: Е-бург
Дата регистрации: 06.10.2006
pipos522
ALTER TABLE взял на вооружение, спасибо.
Вот [attachment 20702 ADD_POLE.rar] как получилось.
Нет, вы крутые программисты, я согласен. Но мне почему-то мстится, что топикстартер попутал терминологию.
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
pipos522

Сообщений: 681
Дата регистрации: 12.08.2013
-


------------------
Я готов целовать песок
По которому ты ходила
Снова тень наискосок
Рыжий берег с полоской ила...




Исправлено 2 раз(а). Последнее : pipos522, 31.12.14 00:38
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
comsel
Автор

Сообщений: 947
Откуда: Москва
Дата регистрации: 20.09.2007
pipos522
ALTER TABLE взял на вооружение, спасибо.
Вот [attachment 20702 ADD_POLE.rar] как получилось.

А зря. Требует ECCLUSIVE, а потому практически бесполезна.
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
pipos522
вроде добавляет.
[attachment 20711 facepalm.jpg]


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
pipos522

Сообщений: 681
Дата регистрации: 12.08.2013
-


------------------
Я готов целовать песок
По которому ты ходила
Снова тень наискосок
Рыжий берег с полоской ила...




Исправлено 1 раз(а). Последнее : pipos522, 31.12.14 00:38
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Самоирония - хорошее качество


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
pipos522

Сообщений: 681
Дата регистрации: 12.08.2013
-


------------------
Я готов целовать песок
По которому ты ходила
Снова тень наискосок
Рыжий берег с полоской ила...




Исправлено 1 раз(а). Последнее : pipos522, 31.12.14 00:38
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Igor Korolyov
Самоирония - хорошее качество

OFFTOP

Главная проблема Дэниэла Крэйга в роли Джеймса Бонда - полное отсутствие самоиронии. \m/
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
alextash

Сообщений: 2281
Откуда: НСК
Дата регистрации: 03.05.2006
А я думал, что его проблема, как Джеймса Бонда, в том, что как реальный человек, он голубой.
Кстати кто там будет в роли парня Джеймса.

сорри за оффтоп.
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
[attachment 20721 think1.jpg]
Ratings: 0 negative/0 positive
Re: Прошу помогите новичку
pipos522

Сообщений: 681
Дата регистрации: 12.08.2013
-


------------------
Я готов целовать песок
По которому ты ходила
Снова тень наискосок
Рыжий берег с полоской ила...




Исправлено 2 раз(а). Последнее : pipos522, 31.12.14 00:39
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 58 akvvohinc  (Гостей: 57)

© 2000-2024 Fox Club 
Яндекс.Метрика