Új hozzászólás Aktív témák
-
tusi74
őstag
Gyorsan kellene segítség, mert ma éjfélig kell egy beadandó.
Hol keressem a Delhiben ezt a komponenst?
Mi a neve?
Tehát, hogy egyik oldalról át lehet húzgálni a másikra?
[Szerkesztve] -
tusi74
őstag
Help.
-
tusi74
őstag
UP
-
tusi74
őstag
Tegyük fel, hogy van egy query-m, aminek updateObjectje egy UpdateSQL.
Hogyan lehet átváltani Update módba? vagy delete módba.
Mert az megy, hogy hogy beírom, hogy query5.insert,
és akkor meghívódik az, amit az UpdateSQL insert propertyjébe írtam.
Ugyanígy megírtam a modify-t, és a Delete-t, de hogy lehet őket akítvvá tenni?
Mert olyan nincs, hogy Query5.Update, Query5.Modify?
Elég sürgős lenne. -
tusi74
őstag
Az előbbi problémát megoldottam.
Most egy újabb láma kérdés:
Hogyan lehet az megcsinálni, hogy egy formon egy gombnyomásra kiszámolok valamit és az eredményt egy másik formon fel szeretném használni.
Biztos nagyon egyszerű, de nekem mégsem megy.
[Szerkesztve] -
tusi74
őstag
Na nekem is akadt egy, immáron sokadszor.
Update SQL-lel meg tudom csinálni, az insert-et, és az update-t,
de nem megy a delete.
Ezt csinálom:
query11.ParamByName('dkod').AsInteger:=dkodja;
query11.Open;
query11.Delete;
{query5.ApplyUpdates;}
query11.Close;
Ha ebben benne van az ApplyUpdates, akkor nem működik, hibaüzenettel leáll, hogy nem tudja végrehajtani ''closed dataset''-en.
Ha nincs benne, akkor nincs hibaüzenet, csak éppen nem töröl ki semmit.
Ilyenkor mit lehet tenni? -
tusi74
őstag
Ez a query11:
select dkod, nev, helyseg from tdolg where dkod=:dkod
Ennek a Query11-nek pedig van UpdateObjectje-yUpdateSQL1, aminek a Delete
metódusába ezt írtam: delete from tdolg where dkod=:dkod
Látszólag meg is csináltam, mert írtam az eljárásba egy olyat, hogy
a végén ShowMessage('Kész vagyok!'); Ez mindig pillanatok alatt kijön, minden hibaüzenet nélkül. Namármost én ennek az UpdateSQL-nek kitöltöttem
az Insert és Modifí metódusát, és tökéletesen teszik a dolgukat.
[Szerkesztve] -
tusi74
őstag
Jaj bocs, annyira el vagyok varázsolódva. Egész nap ebből állok ki.
A végül magam vadásztam össze, hogy vagy applyUpdates, vagy Post, a kettő üti egymást.
A legrosszabb, hogy vettem egy csomó könyvet, még olyat is, hogy adatbáziskezelés Delphi-ben, stb, és nincsenek mintapéldák. Én ilyet még nem láttam.
[Szerkesztve] -
tusi74
őstag
Azóta van még egy nyűgöm, ami viszont rejtély.
Mondjuk módosítani szeretnék egy rekordot, egy táblában egy gombnyomásra,
vagy beszúrni.
Megcsinálok mindent, teljesen ugyanúgy, mint egy másik táblánál, direkt
Copy-Paste-zok, hogy ami eddig ment, az ezután is menjen.
Erre, most meg mindent úgy csinál, ha megynyomom a beszúr gombot,
akkor beszúrja a Combobox-ok 0. elemét, nem azt, ami aktuálisan be van jeölve, majd megnyomom mégegyszer, akkor beszúrja jól.
Hasonlóan: ha megnyomom a módosít gombot, akkor nem csinál semmit,
ha megnyomom mégegyszer, akkor módosítja.
Na kezdtem megörülni, hárha 2x kell megnyomni a törlés gombot, hogy menjen.
De sajna az egyáltalán nem megy.
Hát itt van az, hogy megáll az ész, és körbenéz.
[Szerkesztve] -
tusi74
őstag
Én nem ezer éve csinálom, csak 2 hónapja.
Úgy kezdtem Delphi+Oracle-s diplomamunkába, hogy egyiket sem tanultam soha.
Ahhoz képest 2 hónap alatt, főleg a segítségeddel sokat fejlődtem. Ezért sok-sok köszönet.
Ezért lehetséges az, hogy még a mondatot sem értem.
Mi az, hogy ''gombnyomások kódjaira''? Láma vagyok én ám nagyon. .
A franc gondolta, hogy mert imádtam az SQL-t, így belesétáltam a programozás rejtelmeibe. -
tusi74
őstag
BDE az elérés. A szakdolis tanár szerint ez a legjobb, és ezt várja el.
Mindenhol azt olvasom, csak ezt ne használja senki.
Én az elején úgy gondoltam, hogy a hangsúly a diplomunkámnak az Oracle rejtelmei legyen, és majd összedobok valamilyen kezelőfelületet Delhiben DBEdit, DBGrid, stb. Ez szépen le is van írva egy könyvben nyáron ki is próbáltam, értettem is.
Közölte a szakdolis tanár, hogy ez nem egyetemi szintű így ezeknek a használatát nem engedi, csak sima edit, striggrid stb.
Igen ám, de mivel gyakorlatlan vagyok programozásban, annyi idő elmegy azzal, hogy a programot írom, hogy pont az Oracle specialitásokra nem fog időm maradni, még az Oracle-s könyvet ki sem nyitottam. Ezt nagyon sajnálom.
Most pl. néhány hozzászólással előrébb írtam, hogy nem töröl rekordot. Azóta sem, és a szakdolis tanárom sem tudja miért.
Igen ám, de holnapután assembly ZH, na az is egy szép műsor lesz, úgyhogy szakdoli félretéve. Abból is volt 2 gyakorlat, aztán hadd szóljon. Ez az ELTE lev. info tanári képzés. Delphi-t is is önszorgalomból nézegettem a nyáron, így mondjuk az eseménykezelés megy. Január 5 a beadási határidő, és mág a dolgozatból egy sor sincs megírva.
Csütörtökön megyek megint a szakdolis tanárhoz, kíváncsi vagyok, hogy mit mond. Múltkor mondom neki, hogy a frissítéshez kell a DbiSaveChanges(table4.Handel), mert olvastam prog.hu-n (mert persze addig az sem ment), aztán láttam rajta, hogy azt sem tudja, hogy eszik-e vagy isszák. Csak az a poén, hogy én sem, mert könyvben nem találtam meg. Csak a védésnél meg ne kérdezzék, mit jelent. -
tusi74
őstag
Na voltam a szakdolis tanárnál.
A megoldás a törlésre:
Beírod egy sima query-be, nem kell semmiféle UpdateSQL, hogy
delete from stb....
Amikor meghívod, akkor nem kell odaírni, hogy
query.Open, csak egyszerűen Query.ExecSQL. Ezt szerintem Te is így írtad még régebben, csak én folyamatosan Openeztem a query-t, aztán csodálkoztam, hogy nem megy.
Most szerencsére megy. -
tusi74
őstag
Na újabb rejtély.
Táblát töltök combobox-okból.
Azt mondom, hogy
Query5.FieldByName('Dkod').AsInteger:=StrToInt(Combox1.Text);
vagy
Query5.FieldByName('Dkod').AsInteger := StrToInt(Combox1.Items[Combox1.Itemindex]);
A következő történik.
Megnyomom egyszer a gombot, ami beszúrná, akkor beszúrja
minden combobox 0. indexű elemét. Tök mindegy, mi van beállítva.
Megnyomom mégegyszer, akkor megcsinálja rendesen, amit én beállítottam.
Igen ám, de a rossz is bekerül a táblába.
Aztán minden megy jól, akármit átállítok, megy. Csak a program indulása után az első beszúrás csinálja.
Hát erre kíváncsi vagyok. -
tusi74
őstag
Úgy általában jellemző a progira, hogy közvetlenül az indulás után
másképp viselkedik, mint később.
Pl. írok egy eseményt combobox1.Change-re. Ez az indulás után nem működik.
aztán újabb elemet állítok be a Comboboxon, akkor meg tökéletes. Olyan, mintha az elején még nem élne az adatátvitel.
Erre valakinek ötlete? -
tusi74
őstag
válasz CsendPenge #223 üzenetére
Rájöttem tegnap a megoldásra. EGYEDÜL!!!!
A formshow-ba kell beírni, hogy a Combox1-hez igazodjanak
a többi mező adatai.
Addig én ezt a combox1.Change-hez írtam, de úgylátszik, az
az első indításhoz nem elég.
És persze az összes formnál ki kell töltenem a formshow eseményeket.
Mondjuk az én fejemben az nem tiszta, hogy mikor kell a FormCreate, és mikor a FormShow-t kitölteni.
[Szerkesztve] -
tusi74
őstag
Valószínű, hogy elérkeztem az itt levők segítségével a dolim végéhez. Szinte minden megy benne, csak még azt csinálja, hogy betöltéskor betölti az 1. kódú dolgozót, az első sorszámú tantárgyfelosztást stb. Próbálkoztam már olyannal, hogy formcreate-ba beírom, hogy minden mező üres legyen (most ezt nem részletezem. ezt még én is tudom), , hogy a dkod-ot állítsa 0-ra, vagy állítsa olyanra, ami még nics benne (pl. max+1), és mégis. Ötlet pedig a 0-hoz konvergál szokás szerint.
A másik. Ez is valami hasonló gond lehet.
Megcsináltam, hogy elkezdesz beírni egy nevet a név mezőbe, megnyomsz egy gombot, és ha az ezzel kezdődő név benne van már, akkor minden mező kitöltődik. Na és akkor itt jön a poén. Beírsz egy nevet, ami tuti benne van, megy. Beírsz egy másikat, ami tuti nincs. Megy.
DE!!! Ha egy olyan ember után írsz be egy benne levőt, aki nincs benne, akkor már nem ismeri fel.
Nekem ebben az egész progi írásban hetek óta rejtély, hogy lehet az, hogy
írsz egy eljárást a ''felismerre'', írsz egyet a ''nem ismerre'', és akkor e 2 független eljárásnál számít, hogy mi volt előtte.
De most csak kiragadtam, egy példát, de végig ilyennel bajlódtam. Ezt viszont nem tudtam eddig kiküszöbölni. -
tusi74
őstag
Köszi,
'' 'startup plus' kenyelmi szolgaltatas rogton az elso rekordot allitja be a kepernyon', ez az idezetem copyrightos ''
Ne félj, nem idézem, sehol, főleg nem a védésnél, mert arra nagyon adok, hogy
amiről csak 1 mondatot tudok mondani, vagy mástól hallottam, azt nem mondom, mert egy járulékos kérdésre már nem tudok válaszolni, és jól beégek.
Igyekszem a védésnél majd azokról a részekről beszéni, amit én találtam ki.
Viszont egy orosz lapon találtam egy kész algoritmust, hogy lehet a StrinGrid mezőiből ideiglenesen Combobox-ot csinálni. Ezt egy az egyben beillesztettem,
csak nem 1 oszlopra, hanem 4-re csináltam. Na ezt még azért át kell tanulmányozni, mert néhány részről nem pontosan tudom, mit csinál, és ha belekérdeznek, marha cikis lesz. Magamtól viszont nem említem meg.
Próbálkoztam a debug-gal, de képtelen vagyok megtanulni.
PL. Tegyük fel, hogy van egy while ciklusom, hogy
i:=0;
while...... do
begin
...
i+:=i+1;
end;
és az i-t szeretném figyelni. Akkor hova tegyem a breakpointot? Aztán mit csináljak, hogy lássam az i változását?
A Computerbooks-os Programoozzunk Delphi 7 rendszerben c. könyvet használom, meg pár ilyen algoritmusos könyvet, de ez sehol sincs leírva.
Van egy ilyen államvizsga tétel is, de gyakorlatban sosem csináltuk az egyetemen, hiába kértük az oktatót. Folyton azt mondta, nem lényeges, nekünk
sosem lesz rá szükségünk. (egyetemi képzés) -
tusi74
őstag
Ezt még én írtam régebben:
''Szinte minden megy benne, csak még azt csinálja, hogy betöltéskor betölti az 1. kódú dolgozót, az első sorszámú tantárgyfelosztást stb.
És akkor most eldicsekszem, megoldottam teljesen egyedül!!!, saját kútfőből:
Már volt egy gomb, a formon, hogy új művelet, ami azt tudja, hogy rákattintva
a form alapállapotba hozható, azaz minden mező kitakarítódik. Na mármost ezt az eljárást mögé másoltam a formshow-ban megírt frissítő eljárás mögé, és láss csodát frissül is meg tiszta is. Pontosan úgy működik, ahogy szeretném. -
tusi74
őstag
Na még egy kisebb kérdés. Szerintetek meg lehet azt oldani, hogy egy feltöltött StringGrid, ami egy keresés eredményét mutatja, egy ButtonClickre egy az egyben kinyomtatódjon, ugyanúgy táblázatos alakban?
Mert itt szórkozok a Rave Reporttal, de az még egy Query-vel is leég nyögvenyelős. Meg nekem nem tetszik az eredmény. -
tusi74
őstag
Eddig én is eljutottam, csak nem jövök, rá, melyik kódot hová kell
copy-paste-zni, hogy működjön.
Eddig, ha így szereztem kódot, akkor egyértelmű volt, hogy melyik eseményhez
melyik eljárást kell írni. De most pl. Van külön type stb, és nem tudom beilleszteni
az én programomba.
type
TrecPrintStrGrid = Record
PrCanvas : TCanvas; //Printer or PaintBox Canvas
sGrid: TStringGrid; //StringGrid containing data
sTitle: String; //Title of document
bPrintFlag : Boolean; //Print if True
ptXYOffset : TPoint; //Left and Top margins
ftTitleFont : TFont; //Font for Title
ftHeadingFont : TFont; //Font for Heading row
ftDataFont : TFont; //Font for Data
bBorderFlag : Boolean //Print border if True
end;
var
recPrintStrGrid : TrecPrintStrGrid;
procedure PrintGrid(ArecPrintStrGrid : TrecPrintStrGrid);
var
iX1, iX2, iY1, iY2, iY3, iTmp , iLoop, iWd : Integer;
trTextRect : TRect;
begin
iWd := 0;
with ArecPrintStrGrid, PrCanvas do
begin
//Calculate Total Width of String Grid
Font := ftHeadingFont;
for iLoop := 0 to sGrid.ColCount-1 do
begin
if (TextWidth(sGrid.Cells[iLoop, 0])+5) < sGrid.ColWidths[iLoop] then
iWd := iWd + sGrid.ColWidths[iLoop]
else
iWd := iWd + TextWidth(sGrid.Cells[iLoop, 0])+5;
end; // for sGrid.ColCount
//Initialize Printer
if bPrintFlag then
begin
Printer.Title := sTitle;
Printer.BeginDoc;
end;
//Output Title
Pen.Color := clBlack;
Font := ftTitleFont;
TextOut(((iWd Div 2) - (TextWidth(sTitle) Div 2)), ptXYOffset.Y, sTitle);
//Output Column Data
for iLoop := 0 to sGrid.ColCount-1 do
begin
Font := ftHeadingFont;
iX1 := ptXYOffset.X;
for iTmp := 0 to (iLoop-1) do
if (TextWidth(sGrid.Cells[iTmp, 0])+5) < (sGrid.ColWidths[iTmp]) then
iX1 := iX1 + (sGrid.ColWidths[iTmp])
else
iX1 := iX1 + TextWidth(sGrid.Cells[iTmp, 0])+5;
iY1 := ptXYOffset.Y + ((TextHeight('Ag')+5) * 2);
iX2 := ptXYOffset.X;
for iTmp := 0 to iLoop do
if (TextWidth(sGrid.Cells[iTmp, 0])+5) < (sGrid.ColWidths[iTmp]) then
iX2 := iX2 + (sGrid.ColWidths[iTmp])
else
iX2 := iX2 + TextWidth(sGrid.Cells[iTmp, 0])+5;
iY2 := iY1 + TextHeight('Ag');
trTextRect := Rect(iX1, iY1, iX2, iY2);
TextRect(trTextRect, trTextRect.Left+5, trTextRect.Top+3, sGrid.Cells[iLoop, 0]);
Brush.Color := clWhite;
if bBorderFlag then FrameRect(trTextRect);
Brush.Style := bsClear;
//Output Row Data
Font := ftDataFont;
iY1 := iY2;
iY3 := TextHeight('Ag')+5;
for iTmp := 1 to sGrid.RowCount-1 do
begin
iY2 := iY1 + iY3;
trTextRect := Rect(iX1, iY1, iX2, iY2);
TextRect(trTextRect, trTextRect.Left+5, trTextRect.Top+3, sGrid.Cells[iLoop, iTmp]);
Brush.Color := clBlack;
if bBorderFlag then FrameRect(trTextRect);
Brush.Style := bsClear;
iY1 := iY1 + iY3;
end; // for sGrid.RowCount-1 do
end; // for sGrid.ColCount-1
if bPrintFlag then Printer.EndDoc;
end; // with ArecPrintStrGrid, prCanvas
end; { PrintGrid }
procedure TfrmSamp.buPrintClick(Sender: TObject);
begin
with recPrintStrGrid do
begin
PrCanvas := pbPreview.Canvas;
sGrid := stgData;
sTitle := 'Print of String Grid';
bPrintFlag := False;
ptXYOffset.X := 10;
ptXYOffset.Y := 100;
ftTitleFont := TFont.Create;
with ftTitleFont do
begin
Name := 'Arial';
Style := [fsBold, fsItalic, fsUnderLine];
Size := 14;
end;
ftHeadingFont := TFont.Create;
with ftHeadingFont do
begin
Name := 'Arial';
Style := [fsBold];
Size := 12;
end;
ftDataFont := TFont.Create;
with ftDataFont do
begin
Name := 'Arial';
Style := [];
Size := 10;
end;
bBorderFlag := True;
end; //with recPrintStrGrid do
PrintGrid(recPrintStrGrid);
end; -
tusi74
őstag
Ezt is így csináltam, józan paraszti ésszel, csak épeen nem működik.
Pl. a Private szót hibásnak találja.
Már ugyebár van benne egy type az editek, buttonok miatt.
Most akkor követeli, hogy annak a végére tegyek endet, holott addig nem volt.
Most akkor e-mögé másoljam oda megint type.... end?
Nagyon nem megy ez nekem. -
tusi74
őstag
Hát nagyon szépen köszönöm. Csak nekem a hozzászólásod megértéséhez
is kell pár óra. Nem nagyon értem.
Viszont annyira szorít az idő, hogy
addig fogok próbálkozni a beszúrásával egy kész kódnak, amíg nem megy.
Most találtam a neten egy párat.
Én annyira amatőr vagyok, hogy egy formon belül tudok eseményt kezelni, és
jó napot. Mint írtam nem volt tananyag az objektumorientált programozás, hála a jó istennek az államvizsga tételek között sem lesz. -
tusi74
őstag
Hú köszönöm.
Most éjjel beillesztettem egy elég profit. Néztem a hozzászólásod, az alapján tényleg ment.
Innen töltöttem le:
Bővebben: link
Be is illesztettem, és a memo-ra vonatkozó dolgokat kiszedtem, mert
az én formjaimon nincs memo.
Most akkor ez forrásmegjelöléssel maradhat benne, mert ez a kód bárki részére hozzáférhető, és a program nem kerül kereskedelmi forgalomba?
Vagy rosszul gondolom? Ugyanígy beillesztettem egy olyat, hogy a StringGrid cellái, ha rákattintasz, akkor comboboxok lesznek. Az is szabadon hozzáférhető volt.
Most tartok ott, hogy fut a program, minden funkcionál, csak a help hiányzik. Megvettem neten a HelpScribble-t, csak nem nagyon megy még vele, de próbálkozom.
Addig eljutottam, hogy be tudom venni a témákat, de hova teszem a szöveget. A másik: Hogy csinálok altémát?
Na meg persze a dolgozat, amire maradt 2 hetem. -
tusi74
őstag
Tud valaki olyan progit, ami átvizsgálja a kódot és a nem használt változókat Query-ket kiszűri? Mert nekem annyi ''szemét'' van a kódban, hogy kézzel is egy nap lenne. Minden futtatáskor alul egy egséz ''kisregény'' generálódik a a never used variable-król.
-
tusi74
őstag
Köszi. Hát akkor egyszer majd mikor egyéb munkára alkalmatlan leszek, akkor nekiállok.
Másik.
Hogy lehet azt megcsinálni a Rave Reportsban, hogy Kis Pista megtartott órái,
ahol Kis Pista az adatbázis név oszlopából érkezik, alatta a megtartott órái
pedig egy statikus Text. És ha Kis Pista teszem azt 5 osztályban tanít, akkor ne ilyen legyen a fejléce a beszámolónak:
Kis Pista
Kis Pista
Kis Pista
Kis Pista
Kis Pista
megtartott órái.
Rendkívül ronda. -
tusi74
őstag
Mint már régebben írtam, a szakdolimba pár internetről szedett kódot illesztettem.
Ma lejutottam addig, hogy mindről tudom, hogy mit csinál, csak leírni nem tudom.
Szinte mindig a Canvassal gyűlik meg a bajom.
Valaki megfogalmazná nekem, hogyan lehet szakdolgozatba illő ékes magyar egész mondatokat írni a canvasos utasításokról? Mi az a canvas?
Pl. Találtam egy eljárást, ami átmeretezi dinamikusan a szöveghez a cellákat.
A commenteket én írtam, szerintem jó.
with StringGrid1 do
begin
Canvas.Font := Font; {A megjelenített font:=StringGrid1 fontja}
for j := 0 to ColCount-1 do {Ciklus az összes oszlopra}
begin
max := 0; {Az oszlopban megkeresem a maximális hosszú szót (maximum kiválasztás tétele), és annak hosszához igazítom a teljes oszlop szélességét}
for i := 0 to RowCount - 1 do
begin
seged := Canvas.TextWidth(Cells[j, i]) + 8; {seged változóban tárolom a vizsgált j.edik oszlop
i-edik sorának szövegszélességet, meg adok még hozzá 8 pontot, hogy ne súrolja a szöveg a
rácsot}
if seged > max then max := seged;
end; { For }
if max > 0 then ColWidths[j] := max; {Ha a megtalált maximum 0-nál nagyobb, akkor ez legyen a j-edik oszlop mérete}
end; { For }
end; { With }
Azt értem, hogy a Font legyen a StringGrid fontja, de hogy jön ide a canvas?
Meg azt is értem, hogy a seged változó értéke legyen a StringGrid1 j.-edik oszlopának i-edik sorában a szöveg szélessége+8. A 8-at egyébként
miben mérjük? Pontban?
[Szerkesztve] -
tusi74
őstag
Amikor egy formról írunk, akkor ugye le kell írni a paramétereit.
Van ugye a neve, a Name propertyben megadott.
De hogy mondjuk a unit nevet.
Jó az a megfogalmazás, hogy ''a form által képviselt unit neve.''? -
tusi74
őstag
Lenne még pár apró kérdésem.
Mivel nekem csak angol op. rendszerem van, és már nincs időm telepítgetni, aki használ Rave Reports-ot, meg tudná mondani, az alábbi kép magyarul jelenne meg egy magyar op.rendszeren?
A másik, amit már régebben kérdeztem, hogy lehet megcsinálni, hogy a Report-nál ha valakinek a nevét ''fejlécnek'' teszem akkor ne annyiszor jelenjen meg, mint ahányszor a lekérdezésben szerepel? -
tusi74
őstag
Hát köszi a szurkolást, a végső beadás (hosszabítást kaptam), 2005. január 7.
Most screenshoton már mindent lefordítottam, és azt szúrtam be.
Sokkal nagyobb gáz ez a fejléc, de majd azt csinálom a védésnél, hogy ''véletlenül''
egy olyan embert mutatok be, akit direkt úgy viszek be előre, hogy egyszer szerepeljen. -
tusi74
őstag
Ja és még nagyobb gáz, elveszett 2 hete a témavezetőm'' . Sem e-mailre nem válaszol, sem a telefonját nem veszi fel. 1 hónapja még abban állapodtam meg vele, hogy majd legalább egyszer elolvassa a beadás előtt, úgy hogy a hibákat legyen időm kijavítani. Nem mintha eddig hejde segített volna. Holott előre közöltem vele a játékszabályokat, hogy nem vagyok rutinos programozó. Még Ő mondta, hogy egy kihívás lesz neki velem dolgoznia, mert még nem volt tanítványa, aki abszolút kezdőként bevállalt volna ilyet. Ehhez képest, ha nincs ez a fórum, akkor még sehol sem lennék. De legalább kipanaszkodtam magam.
-
tusi74
őstag
Nem kerülte el, a 345-ösben volt, csak azokat a dolgokat a Rave-ben nem találtam meg. Azon a képen, amit beillesztettem pár hozzászólással korábban, azon mi az a Duplex? Az a nyomtatásra vonatkozik, nem a Duplex supress, amit írtál.
Általában ahogy olvasom, hogy valaki valamit javasolt, rögtön csinálom.
Egyébként is napi 14 órát foglalkozom ezzel, már vagy 2 hete fizu nélküli szabin vagyok.
[Szerkesztve] -
tusi74
őstag
A Rave terveztemnek képét itt lehet megnézni:
Bővebben: link (jobb oldalt lehet látni, milyen mezők vannak a Direct DataView-ban).
És az eredmény:
Bővebben: link
A lekérdezés, amiből a Rave készül:
select d.nev, o.osztnev, t.tantnev, tf.oraszam
from elek.ttantfeloszt tf, elek.tdolg d, elek.tosztaly o, elek.ttantargy t
where (tf.dkod=d.dkod) and (o.osztkod=tf.osztkod) and (t.tantkod=tf.tantkod)
and (d.nev=:nev)
Egyébként biztos valami egyszerű megoldása van, csak valami elkerüli a figyelmemet. -
tusi74
őstag
Na ezt most elsőre megértettem. Ilyen sem volt még.
Elvileg ezeknek a statikus text mezőknek text propertyjük van.
Arra nem jövök rá, hogy lehetne rá hivatkozni, mert a gyorssegítség (Leírom, hogy rvPorject2. és lenyílik, miből választhatok), nem ajánl fel ilyen opciót.
Még legjobban a SetParam hasonlítana.
Most addig eljutottam, hogy kivettem a nevet, mint Databand, helyette tettem egy Text5 nevezetű statikus text-et.
Azt nem engedi, hogy RvProject2.Text5:=Query18['nev'[/]
Most így néz ki a rave-t meghívó buttonClick:
Query18.ParamByName('nev').AsString:=nev.Text;
Query18.Open;
RvProject2.SetParam('text5',query18['nev');
RvProject2.Execute;
Query18.Close;
Ezt ha futtatom, akkor így lesz a fejléc: text5 megtartott órái.
Innen kellene valahogy folytatni, szerintem ez jó irány lesz, ez olyan megérzés.
[Szerkesztve]
[Szerkesztve]
[Szerkesztve] -
tusi74
őstag
RvProject2.text5.text:=valamit, már a Compile sem fogadja el.- Ezzel kezdtem a próbálkozást, amikor kitaláltad, ezt, hogy sima szövegként tegyem fel a nevet.
Nekem minden az eredeti nevén van a szakdoliban. Szerinted az a védésnél cikis lesz? Az egyik formon több mint 50 query van. szeép sorban query1, query2, stb...
De ezt most a kedvedért átnevezem.
[Szerkesztve]
[Szerkesztve]
Új hozzászólás Aktív témák
- Politika
- Kerékpárosok, bringások ide!
- Trollok komolyan
- A pápa egyre jobban tart a romlott AI veszélyeitől
- Xbox Series X|S
- Autós topik
- Apple Watch Sport - ez is csak egy okosóra
- Karácsonyfaként világíthat a Thermaltake új CPU-hűtője
- E-roller topik
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...
- AKCIÓ Új Dobozos Macbook Pro dokkoló új ára 70.000 forint
- ThinkPad Hybrid USB -C USB -A Dock 40AF Új ára 80.000 Forint Ingyen szállítás
- Xiaomi Redmi Note 9s 128/6 GB 34.9E !!!
- Új Hp Pavilion 15-eh Fémházas Szuper Laptop 15,6" -30% AMD Ryzen 7 5700U 8Mag 16/1TB FHD MATT
- ATI RADEON RX 480 -8 gb DDR5 256 bit videokártya