02. september 2006 - 08:44Der er
6 kommentarer og 1 løsning
system for vagtplan
Hej alle eksperter....
Jeg er i gang med et system hvor der skal være muligt at oprette en vagtplan. Men den skal jo bygges op på en special måde...
beskrivelse af opbygningen....
lodret der skal alle vagternes navne stå. og vandret skal ugedagene stå. Så skal jeg ud for hver vagt's navn have en select box som skal indeholde en bestemt data med deres mødetider eller om de har fri den pågældende dag... Men det skal være sådan at den automatisk skal oprette det antal selct bokse derskal være ud fra hvor mange vagter der findes i systemet.
til sidst skal vagtplanen kunne gemmes i en fil som er udprint's venlig hvor det er sat op som en vagtplan. ved godt det er noget man kan lave i exel. Men mon ikke det kan lade sig gøre her i delphi også?
håber nogen kan hjælpe mig med denne lille opgave. For det er kun dette med vagtplanen jeg mangler...
den som kommer med det hjælp som gør at det virker 100% for de 100 point som jeg har sat til rådighed....
Jeg fandt et eksempel på noget af det jeg gerne vil have men kan ikke lige få det til at virke...
her er mine fejl meddelser.....
[Pascal Error] Unit14.pas(79): E2029 Statement expected but 'PROCEDURE' found [Pascal Error] Unit14.pas(87): E2003 Undeclared identifier: 'ListFields' [Pascal Fatal Error] Project2.dpr(17): F2063 Could not compile used unit 'Unit14.pas'
procedure TForm14.DBGrid1ColExit(Sender: TObject); begin if DBGrid1.SelectedField.FieldName = DBLookupComboBox1.DataField then DBLookupComboBox1.Visible := False
end;
procedure TForm14.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if (gdFocused in State) then begin if (Column.Field.FieldName = DBLookupComboBox1.DataField) then with DBLookupComboBox1 do begin Left := Rect.Left + DBGrid1.Left + 2; Top := Rect.Top + DBGrid1.Top + 2; Width := Rect.Right - Rect.Left; Width := Rect.Right - Rect.Left; Height := Rect.Bottom - Rect.Top;
Visible := True; end; end
end;
procedure TForm14.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if (key = Chr(9)) then Exit;
if (DBGrid1.SelectedField.FieldName = DBLookupComboBox1.DataField) then begin DBLookupComboBox1.SetFocus; SendMessage(DBLookupComboBox1.Handle, WM_Char, word(Key), 0);
end;
procedure TForm14.FormCreate(Sender: TObject); begin with DBLookupComboBox1 do begin DataSource := DataSource1; // -> AdoTable1 -> DBGrid1 ListSource := DataSource2; DataField := 'mødetid'; // from AdoTable1 - displayed in the DBGrid KeyField := 'mødetid'; ListFields := 'mødetid';
Visible := False; end;
DataSource2.DataSet := AdoQuery1;
AdoQuery1.Connection := AdoConnection1; AdoQuery1.SQL.Text := 'SELECT mødetid FROM vagtplan'; AdoQuery1.Open;
Er du helt sikker på at den kode overhovedet virker. Det er i hvert fald nogle temmelige fundamentale fejl, så den kan aldrig have kompileret:
1)
Ret:
procedure TForm14.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if (key = Chr(9)) then Exit;
if (DBGrid1.SelectedField.FieldName = DBLookupComboBox1.DataField) then begin DBLookupComboBox1.SetFocus; SendMessage(DBLookupComboBox1.Handle, WM_Char, word(Key), 0);
end;
- til:
procedure TForm14.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if (key = Chr(9)) then Exit;
if (DBGrid1.SelectedField.FieldName = DBLookupComboBox1.DataField) then begin DBLookupComboBox1.SetFocus; SendMessage(DBLookupComboBox1.Handle, WM_Char, word(Key), 0); end; end;
2)
Ret:
procedure TForm14.FormCreate(Sender: TObject); begin with DBLookupComboBox1 do begin DataSource := DataSource1; // -> AdoTable1 -> DBGrid1 ListSource := DataSource2; DataField := 'mødetid'; // from AdoTable1 - displayed in the DBGrid KeyField := 'mødetid'; ListFields := 'mødetid';
Visible := False; end;
- til
procedure TForm14.FormCreate(Sender: TObject); begin with DBLookupComboBox1 do begin DataSource := DataSource1; // -> AdoTable1 -> DBGrid1 ListSource := DataSource2; DataField := 'mødetid'; // from AdoTable1 - displayed in the DBGrid KeyField := 'mødetid'; // ListFields := 'mødetid';
Visible := False; end;
Feltet "ListFields" skulle øjensynligt være et felt i DBLookupComboBox1, men det er Delphi øjensynligt ikke enig i. Der burde dog ikke ske noget ved at udkommentere den.
Hvis du anbringer dine data i en alm. database - så mener jeg bestemt, der er noget tillægsprogram: Quikreport, man kan bruge til at udskrive sine data med. Har brugt det et par gange og det er ikke helt logisk at arbejde med når man ikke er vant til det.Minder om en slags 'outlook' eller hvad det er de hedder - den slags programmer man sætter avisartikler og den slags op i.Meget besværlig, men det er jo så kun en enkelt gang det skal sættes op.
De programmer (a la avisopsætning) hedder self. DTP (desktoppublisching). Quikreportkomponenterne findes kun i proffesionel udgaverne af delphi i øvrigt, men findes vistnok osse som 3dje parts komponenter. Borland har vistnok købt licens til QR af QSD AS i Norge (iflg en bog jeg lige kiggede i).
Kunne det ikke kompile med de rettelser jeg angav?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.