ich hätte da einen Verbesserungsvorschlag für den Aufruf UniversalAuflist aus einem Script heraus:
Code: Alles auswählen
Begin
// Letzter Stand: 21.02.2008 by KDP
AuftragID := -1;
If ((q_1.State = dssInsert) or (q_1.State = dssEdit)) Then Begin
MessageBox('Bitte Datensatz vorher speichern!','E R R O R');
Goto 1;
End;
//
sInterne := Input('Bitte Interne eingeben','Interne','0');
If sInterne <> '0' Then Begin
frmdata.StP_Universal.StoredProcName := 'P_BMAND_CHECK';
frmdata.StP_Universal.Execute;
BMAND_ID := AsInteger(frmdata.StP_Universal.FieldByName('BMAND_ID'));
Q := frmData.Universal;
Q.Close;
Q.SQL.Text := 'Select * from STP_BAUFDATEN_QS(:MANDANT,:INTERNE)';
Q.ParamByName('MANDANT',BMAND_ID);
Q.ParamByName('INTERNE',sInterne);
Q.Open;
If Q.RecordCount > 0 Then Begin
If UniversalAuflist('Bitte Auftrag auswählen') Then Begin
AuftragID := AsInteger(Q.FieldByName('BAUF_ID'));
Include(PROC0002); // DS auswählen oder Anlegen
If q_1.State <> dssBrowse Then q_1.Cancel;
q_1.Search;
q_1.ClearSearch;
E_ID.Text := IntToStr(QSDaten_ID);
q_1.Post;
End;
End Else MessageBox('keine Datensätze gefunden','Info',0);
End;
Q.Close;
1:
End;
Wie man sieht müsste jetzt nach rechts gescrollt werden um weitere Daten zu sehen.
Könnte die Spaltenbreite und Überschrift geändert werden, wären mehr Informationen ohne Scrollen sichtbar:
Na, das sieht ja schon besser aus
Dazu wären folgende Anpassungen nötig:
In der Unit HScript die Function DoMethodeTIB_Query anpassen bzw. erweitern:
Code: Alles auswählen
... Schnipp ...
End Else
If Param2 = 'FIELDSDISPLAYWIDTHAPPEND' Then
Begin
// Letzter Stand: 22.02.2008 by KDP, DisplayWidth unterstützen
Val := NULL;
TIB_Query(O_Obj).FieldsDisplayWidth.Append(O_Parser.Calc(p1));
Result := True;
End Else
If Param2 = 'FIELDSDISPLAYLABELAPPEND' Then
Begin
// Letzter Stand: 22.02.2008 by KDP - DisplayLabel ubterstützen
Val := NULL;
TIB_Query(O_Obj).FieldsDisplayLabel.Append(O_Parser.Calc(p1));
Result := True;
End;
End; // von DoMethodeTIB_Query
... Schnapp ...
Code: Alles auswählen
// Letzter Stand: 26.02.2008 by KDP
// Durch die neuen Funktionen FieldsDisplayWidthAppend usw.
// die eine Stringliste einfügen
// werden hier die Stringlisten wieder gelöscht.
// erst mal nur die 2 neuen
// neue Funktionen sind in Unit HScript
procedure TfrmData.UniversalAfterClose(IB_Dataset: TIB_Dataset);
begin
With Universal do Begin
FieldsDisplayWidth.Clear;
FieldsDisplayLabel.Clear;
End;
end;
Code: Alles auswählen
Begin
// Letzter Stand: 21.02.2008 by KDP
AuftragID := -1;
If ((q_1.State = dssInsert) or (q_1.State = dssEdit)) Then Begin
MessageBox('Bitte Datensatz vorher speichern!','E R R O R');
Goto 1;
End;
//
sInterne := Input('Bitte Interne eingeben','Interne','0');
If sInterne <> '0' Then Begin
frmdata.StP_Universal.StoredProcName := 'P_BMAND_CHECK';
frmdata.StP_Universal.Execute;
BMAND_ID := AsInteger(frmdata.StP_Universal.FieldByName('BMAND_ID'));
Q := frmData.Universal;
Q.Close;
Q.SQL.Text := 'Select * from STP_BAUFDATEN_QS(:MANDANT,:INTERNE)';
Q.ParamByName('MANDANT',BMAND_ID);
Q.ParamByName('INTERNE',sInterne);
Q.Open;
Q.FieldsDisplayWidthAppend('KUNDENNUMMER=100');
Q.FieldsDisplayLabelAppend('AUFTRAGSNUMMER=Auftragsnummer');
Q.FieldsDisplayLabelAppend('KUNDENNUMMER=Kd.Nr.');
Q.FieldsDisplayLabelAppend('AUFLAGE=Auflage');
Q.FieldsDisplayLabelAppend('PRODUKTION=Produktion');
Q.FieldsDisplayLabelAppend('LT=Lief.Term.');
If Q.RecordCount > 0 Then Begin
If UniversalAuflist('Bitte Auftrag auswählen') Then Begin
AuftragID := AsInteger(Q.FieldByName('BAUF_ID'));
Include(PROC0002); // DS auswählen oder Anlegen
If q_1.State <> dssBrowse Then q_1.Cancel;
q_1.Search;
q_1.ClearSearch;
E_ID.Text := IntToStr(QSDaten_ID);
q_1.Post;
End;
End Else MessageBox('keine Datensätze gefunden','Info',0);
End;
Q.Close;
1:
End;