QBS
>> Q-Line 3000 Szybki Start
>> Pierwsze dane | Chcę zapytać |
|
| ||
|
Czas ćwiczenia: 30 min. |
Cel: Założenie tabeli z danymi użytkownika |
Kroki: Modyfikacja pliku struct.qcon Wprowadzenie danych użytkownika programu |
W katalogu z programem znajduję się katalog qcon a w nim plik struct.qcon, który będziemy edytować. Plik ten można edytować dowolnym edytorem tekstowym pod warunkiem, że używany przez nas edytor nie dopisuje własnych znaków do pliku. Do naszych celów możemy używać np: notepada. Po otworzeniu plik powinien wyglądać tak:
//---------------------------------------------------------------------------
// POCZĄTEK: MainMenu
//---------------------------------------------------------------------------
MENU MainMenu
TITLE="Menu główne"
POS=50 50
{
ID ACTION SHORTCUT NAME ;
PODR MENU PodrMenu P "Komplet podręczników" ;
FunSys MENU SysMenu S "Operacje systemowe" ;
}
//---------------------------------------------------------------------------
// KONIEC: MainMenu
//---------------------------------------------------------------------------
MENU PodrMenu
TITLE = "Menu dodatkowe"
POS = 50 50
{
ID ACTION SHORTCUT NAME;
OGOLNY THTML SRC="podr/ogolny/index.html"
DST="podr/ogolny/dysk.html"; O "Podręcznik ogólny do programów serii 3000";
PRINT_ERROR THTML SRC="podr/print_error.html"; D "Problemy podczas drukowania" ;
}
|

MYDATA RECEDIT TAB=SYSED_MOJE_DANE; "Moje dane" ; |
Wpis ten należy dodać do definicji menu głównego. Po tej operacji plik powinien wyglądać tak
//---------------------------------------------------------------------------
// POCZĄTEK: MainMenu
//---------------------------------------------------------------------------
MENU MainMenu
TITLE="Menu główne"
POS=75 20
{
ID ACTION NAME ;
PODR MENU PodrMenu "Komplet podręczników" ;
FunSys MENU SysMenu "Operacje systemowe" ;
//---------------------------------------------------------------------------
MYDATA RECEDIT TAB=SYSED_MOJE_DANE; "Moje dane" ;
//---------------------------------------------------------------------------
}
//---------------------------------------------------------------------------
// KONIEC: MainMenu
//---------------------------------------------------------------------------
MENU PodrMenu
TITLE = "Menu dodatkowe"
POS = 50 50
{
ID ACTION SHORTCUT NAME;
OGOLNY THTML SRC="podr/ogolny/index.html"
DST="podr/ogolny/dysk.html"; O "Podręcznik ogólny do programów serii 3000";
PRINT_ERROR THTML SRC="podr/print_error.html"; D "Problemy podczas drukowania" ;
}
|
Po uruchomieniu programu (standardowo plik q.bat) w MENU pokazała się nowa pozycja "Moje dane".

Gdy będziemy próbowali w nią wejść program zakończy działanie, ponieważ nie zdefiniowaliśmy tabeli o nazwie SYSED_MOJE_DANE, którą wywołujemy w MENU. Wszystkie błędy występujące podczas niespodziewanego zakończenia programu zapisywane są w pliku out.txt. Na podstawie wpisów z pliku out.txt możemy odnajdywać i eliminować te błędy. Aby naprawić błąd, który wystąpił należy zdefiniować tabelę o nazwie SYSED_MOJE_DANE tuż za MENU. Oto kod który należy wprowadzić:
TAB SYSED_MOJE_DANE
TITLE="Moje dane"
LAYOUT= HPAN(
GRP("Dane osobiste" TCP(NAZWA ULICA PNA MIASTO NIP))
GRP("Logo użytkownika" VPAN(TCP(FILENAME) TCP(LOGO)))
)
{
ID LEN TYPE ATTRIB NAME ;
ID 8 INT - "Id" VIS=HIDE ;
NAZWA 30 STRING (FCAPITAL) "Nazwa" ;
ULICA 30 STRING (FCAPITAL) "Ulica" ;
PNA 6 STRING - "Kod pocztowy" MASK=MASK("00\\-000");
MIASTO 30 STRING (CAPITAL) "Miejscowość" ;
NIP 13 STRING (CAPITAL) "NIP" MASK=MASK("000\\-000\\-00\\-00");
LOGO 8 INT - " " MASK=IMAGE RESIZABLE(11 5) AUTFUN=filedata(FILENAME);
FILENAME 60 STRING - "Nazwa pliku"
MASK=FILE (APIC="Pliki graficzne (*.jpg; *.gif; *.png;)"
BALL="Wszystkie pliki (*.*;)")
EDILEN=15
ANCHOR="imageName";
}
|
Jeżeli występują błędy lub program niespodziewanie kończy swoje działanie to prawdopodobnie w pliku struct.qcon znajdują się błędne wpisy. Należy podejrzeć plik out.txt i tam szukać błędów lub porównać plik struct.qcon z wpisem poniżej.
//---------------------------------------------------------------------------
// POCZĄTEK: MainMenu
//---------------------------------------------------------------------------
MENU MainMenu
TITLE="Menu główne"
POS=75 20
{
ID ACTION NAME ;
PODR MENU PodrMenu "Komplet podręczników" ;
FunSys MENU SysMenu "Operacje systemowe" ;
MYDATA RECEDIT TAB=SYSED_MOJE_DANE; "Moje dane" ;
}
//---------------------------------------------------------------------------
// KONIEC: MainMenu
//---------------------------------------------------------------------------
MENU PodrMenu
TITLE = "Menu dodatkowe"
POS = 50 50
{
ID ACTION SHORTCUT NAME;
OGOLNY THTML SRC="podr/ogolny/index.html"
DST="podr/ogolny/dysk.html"; O "Podręcznik ogólny do programów serii 3000";
PRINT_ERROR THTML SRC="podr/print_error.html"; D "Problemy podczas drukowania" ;
}
//---------------------------------------------------------------------------
// POCZĄTEK: Moje dane
//---------------------------------------------------------------------------
TAB SYSED_MOJE_DANE
TITLE="Moje dane"
LAYOUT= HPAN(
GRP("Dane osobiste" TCP(NAZWA ULICA PNA MIASTO NIP))
GRP("Logo użytkownika" VPAN(TCP(FILENAME) TCP(LOGO)))
)
{
ID LEN TYPE ATTRIB NAME ;
ID 8 INT - "Id" VIS=HIDE ;
NAZWA 30 STRING (FCAPITAL) "Nazwa" ;
ULICA 30 STRING (FCAPITAL) "Ulica" ;
PNA 6 STRING - "Kod pocztowy" MASK=MASK("00\\-000");
MIASTO 30 STRING (CAPITAL) "Miejscowość" ;
NIP 13 STRING (CAPITAL) "NIP" MASK=MASK("000\\-000\\-00\\-00");
LOGO 8 INT - " " MASK=IMAGE RESIZABLE(11 5) AUTFUN=filedata(FILENAME);
FILENAME 60 STRING - "Nazwa pliku"
MASK=FILE (APIC="Pliki graficzne (*.jpg; *.gif; *.png;)"
BALL="Wszystkie pliki (*.*;)")
EDILEN=15
ANCHOR="imageName";
}
//---------------------------------------------------------------------------
// KONIEC: Moje dane
//---------------------------------------------------------------------------
|
Po poprawnym zdefiniowaniu tabeli możemy rozpocząć wprowadzanie danych użytkownika systemu.

