Сообщения: 1653 Изображения: 36 Город: Сіверськ, Україна Пол: Возраст: 71
Зарегистрирован:27.11.2013
|
kisa писал(а): :lol: Так нафига тыща, в богадельне, где красят, их поменьше Мне понравился минимализм первой версии, хоть и пипетка отдельная нужна - это не напрягает. А новая раздражает скоростью загрузки, как Компас. Переведу с Екселя на БД будет летать, искать и прочая и прочая.... Переделка нужна. Вначале думал просто с цветами поиграть на экране. А потом увлекся.. Короче эти вопросы все легко решаемые, мне клаву только смазывать почаще надо procedure TForm1.N29Click(Sender: TObject); begin SortToCHEK; Table2.MasterSource := FSubs.DataSource1; Table2.MasterFields := 'RASH'; FSubs.Table1.Active := True; FSubs.ShowModal; FSubs.Table1.Active := False; Table2.MasterSource := NIL; Table2.MasterFields := ''; end;
procedure TForm1.N34Click(Sender: TObject); var FileName: TFileName; mPATH, mFname, mDOM, mKV, mFIO, mFIO1, mLS: String; mCOUNT, mERR: Integer; mSUM:Currency; begin mCOUNT := 0; mERR := 0; mSUM := 0; if OpenDialog1.Execute then begin FSubs.Table1.Exclusive := True; FSubs.Table1.EmptyTable; FileName := OpenDialog1.FileName; mPATH := ExtractFileDir(FileName); mFname := ExtractFileName(FileName); with FSubs do begin Table2.DatabaseName := mPATH; Table2.TableName := mFname; Table2.Active := True; Table1.Active := True; REPEAT Table1.Insert; Table1.FieldByName('FIO').AsString := AnsiUpperCase(Table2.FieldByName('FIO').AsString); Table1.FieldByName('ID_RAJ').AsString := Table2.FieldByName('ID_RAJ').AsString; Table1.FieldByName('NP_CODE').AsString := Table2.FieldByName('NP_CODE').AsString; Table1.FieldByName('NP_NAME').AsString := Table2.FieldByName('NP_NAME').AsString; Table1.FieldByName('CAT_V').AsString := Table2.FieldByName('CAT_V').AsString; Table1.FieldByName('VULCOD').AsString := Table2.FieldByName('VULCOD').AsString; Table1.FieldByName('NAME_V').AsString := Table2.FieldByName('NAME_V').AsString; Table1.FieldByName('BLD').AsString := AnsiLowerCase(Table2.FieldByName('BLD').AsString); Table1.FieldByName('CORP').AsString := Table2.FieldByName('BLD').AsString; Table1.FieldByName('FLAT').AsString := AnsiLowerCase(Table2.FieldByName('FLAT').AsString); Table1.FieldByName('RASH').AsString := Table2.FieldByName('RASH').AsString; Table1.FieldByName('NUMB').AsString := Table2.FieldByName('NUMB').AsString; Table1.FieldByName('DAT1').AsDateTime := Table2.FieldByName('DAT1').AsDateTime; Table1.FieldByName('DAT2').AsDateTime := Table2.FieldByName('DAT2').AsDateTime; Table1.FieldByName('NM_PAY').AsFloat := Table2.FieldByName('NM_PAY').AsFloat; Table1.FieldByName('P1').AsFloat := Table2.FieldByName('P1').AsFloat; Table1.FieldByName('P2').AsFloat := Table2.FieldByName('P2').AsFloat; Table1.FieldByName('P3').AsFloat := Table2.FieldByName('P3').AsFloat; Table1.FieldByName('P4').AsFloat := Table2.FieldByName('P4').AsFloat; Table1.FieldByName('P5').AsFloat := Table2.FieldByName('P5').AsFloat; Table1.FieldByName('P6').AsFloat := Table2.FieldByName('P6').AsFloat; Table1.FieldByName('P7').AsFloat := Table2.FieldByName('P7').AsFloat; Table1.FieldByName('P8').AsFloat := Table2.FieldByName('P8').AsFloat; Table1.FieldByName('SM1').AsFloat := Table2.FieldByName('SM1').AsFloat; Table1.FieldByName('SM2').AsFloat := Table2.FieldByName('SM2').AsFloat; Table1.FieldByName('SM3').AsFloat := Table2.FieldByName('SM3').AsFloat; Table1.FieldByName('SM4').AsFloat := Table2.FieldByName('SM4').AsFloat; Table1.FieldByName('SM5').AsFloat := Table2.FieldByName('SM5').AsFloat; Table1.FieldByName('SM6').AsFloat := Table2.FieldByName('SM6').AsFloat; Table1.FieldByName('SM7').AsFloat := Table2.FieldByName('SM7').AsFloat; Table1.FieldByName('SM8').AsFloat := Table2.FieldByName('SM8').AsFloat; Table1.FieldByName('SB1').AsFloat := Table2.FieldByName('SB1').AsFloat; Table1.FieldByName('SB2').AsFloat := Table2.FieldByName('SB2').AsFloat; Table1.FieldByName('SB3').AsFloat := Table2.FieldByName('SB3').AsFloat; Table1.FieldByName('SB4').AsFloat := Table2.FieldByName('SB4').AsFloat; Table1.FieldByName('SB5').AsFloat := Table2.FieldByName('SB5').AsFloat; Table1.FieldByName('SB6').AsFloat := Table2.FieldByName('SB6').AsFloat; Table1.FieldByName('SB7').AsFloat := Table2.FieldByName('SB7').AsFloat; Table1.FieldByName('SB8').AsFloat := Table2.FieldByName('SB8').AsFloat; Table1.FieldByName('OB1').AsFloat := Table2.FieldByName('OB1').AsFloat; Table1.FieldByName('OB2').AsFloat := Table2.FieldByName('OB2').AsFloat; Table1.FieldByName('OB3').AsFloat := Table2.FieldByName('OB3').AsFloat; Table1.FieldByName('OB4').AsFloat := Table2.FieldByName('OB4').AsFloat; Table1.FieldByName('OB5').AsFloat := Table2.FieldByName('OB5').AsFloat; Table1.FieldByName('OB6').AsFloat := Table2.FieldByName('OB6').AsFloat; Table1.FieldByName('OB7').AsFloat := Table2.FieldByName('OB7').AsFloat; Table1.FieldByName('OB8').AsFloat := Table2.FieldByName('OB8').AsFloat; Table1.FieldByName('SUMMA').AsFloat := Table2.FieldByName('SUMMA').AsFloat; mSUM:=mSUM+Table2.FieldByName('SUMMA').AsCurrency; Table1.FieldByName('NUMM').AsInteger := Table2.FieldByName('NUMM').AsInteger; Table1.FieldByName('SUBS').AsFloat := Table2.FieldByName('SUBS').AsFloat; Table1.FieldByName('KVT').AsInteger := Table2.FieldByName('KVT').AsInteger; mCOUNT := mCOUNT + 1; Table2.Next;
UNTIL Table2.Eof; end; FSubs.Table2.Active := False; SortToCHEK; Table2.MasterSource := FSubs.DataSource1; Table2.MasterFields := 'RASH'; FSubs.Table1.First; { TODO : проверка ошибок в загруженной субсидии } WHILE not FSubs.Table1.Eof DO begin mFIO1 := Table2.FieldByName('FIO').AsString; mFIO := FSubs.Table1.FieldByName('FIO').AsString; mDOM := FSubs.Table1.FieldByName('BLD').AsString; mKV := FSubs.Table1.FieldByName('FLAT').AsString; mLS := Copy(FSubs.Table1.FieldByName('RASH').AsString,4,6); If length(mDOM)=1 then mDOM := '00'+mDOM; If length(mDOM)=2 then mDOM := '0'+mDOM; If length(mKV)=1 then mKV:= '00'+mKV; If length(mKV)=2 then mKV:= '0'+mKV;
IF not (Table2.FieldByName('CHEK').AsString= FSubs.Table1.FieldByName('RASH').AsString) then mERR := 1; IF not (mLS=(mDOM+mKV)) then mERR := 1; IF not (Copy(mFIO1,0,Pos(' ',mFIO1))=Copy(mFIO,0,Pos(' ',mFIO))) then mERR := 1; FSubs.Table1.Edit; IF mERR = 0 then FSubs.Table1.FieldByName('KVT').AsInteger := 0 ELSE FSubs.Table1.FieldByName('KVT').AsInteger := 1; mERR := 0;
FSubs.Table1.Next; End; FSubs.Table1.First; ShowMessage('Загружено '+IntToStr(mCOUNT)+' на сумму '+CurrToStr(mSUM)); FSubs.Table1.Filter := 'KVT=1';
FSubs.ShowModal; FSubs.Table1.Filter := ''; FSubs.Table1.Active := False; Table2.MasterSource := NIL; Table2.MasterFields := ''; FSubs.Table1.Exclusive := False;
End; end;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
procedure TForm1.N38Click(Sender: TObject); begin Kalendar.ShowModal; PrnTabON; SchPrn.QRLabel277.Caption:='по домам имеющих задолженность на '+DateToStr(Kalendar.MonthCalendar1.Date); SchPrn.Table2.Filter := ''; //SchPrn.Table2.Filter := 'SALDOK>'+QuotedStr(Edit3.Text); SchPrn.Table2.First; SchPrn.QuickRep10.Preview; SchPrn.Table2.Filter := ''; ScrTabON;
end;
procedure TForm1.N39Click(Sender: TObject); VAR aLS, mNU, mDOM, mKV: String; mCOUNT, mERR: Integer; begin aLS := ''; SortToFIO; with Table2 do begin DisableControls; First; while not Eof do begin aLS := ''; mNU := FieldByName('NU').AsString; mDOM := FieldByName('DOM').AsString; mKV := FieldByName('KV').AsString; If length(mNU)=1 then aLS := '00'+mNU; If length(mNU)=2 then aLS := '0'+mNU; If length(mNU)=3 then aLS := mNU; If length(mDOM)=1 then aLS := aLS+'00'+mDOM; If length(mDOM)=2 then aLS := aLS+'0'+mDOM; If length(mDOM)=3 then aLS := aLS+mDOM; If length(mKV)=1 then aLS := aLS+'00'+mKV; If length(mKV)=2 then aLS := aLS+'0'+mKV; If length(mKV)=3 then aLS := aLS+mKV; Edit; FieldByName('CHEK').AsString := aLS; Next; end;
SortToCHEK; First; mCOUNT := 1; mERR := 0; mDOM := ''; aLS := FieldByName('CHEK').AsString; Next; WHILE not Eof DO begin IF aLS = FieldByName('CHEK').AsString then begin mERR := mERR+1; mDOM := mDOM + ' ' + aLS; end; aLS := FieldByName('CHEK').AsString; mCOUNT := mCOUNT+1; Next; End; ShowMessage('Проверено '+IntToStr(mCOUNT)+', ошибок '+IntToStr(mERR)+' '+mDOM); EnableControls; end;
end;
procedure TForm1.Word1Click(Sender: TObject); var //F2: TextFile; Ch, mCHEK, mFIO, mDOM: String; mDOLG, mPLAT, mSUMD,mSUMJ: Currency; mCOUNT: Real; mFILTER: Real; mKVO:Integer; vwidth, vspace, par, tformat, tappbrd, rng : OleVariant; i:Integer; begin vwidth := 270; vspace := 10; //tformat:=wdTableFormatWeb3; tformat:=wdTableFormatGrid5; tappbrd:=wdTableFormatApplyBorders; //vesp := wdLineSpaceSingle; mFILTER := 0; mSUMJ := 0; mSUMD := 0; mKVO := 0; i := 1;
OKRightDlg.ShowModal; Kalendar.ShowModal;
if CreateWord then begin Messagebox(0,'Word запущен.','',0); //W.Visible:=True; If AddDoc then begin //Messagebox(0,'Документ создан.','',0); W.Selection.Font.Name:='Courier New'; W.Selection.Font.Size:=12; W.Selection.Font.Bold:=true; W.ActiveDocument.PageSetup.TopMargin := CentimetersToPoints(0.5); W.ActiveDocument.PageSetup.BottomMargin := CentimetersToPoints(0.5); W.ActiveDocument.PageSetup.LeftMargin := CentimetersToPoints(0.5); W.ActiveDocument.PageSetup.RightMargin := CentimetersToPoints(0.5); //W.ActiveDocument.PageSetup.TextColumns := CentimetersToPoints(5); //W.ActiveDocument.PageSetup.TextColumns.Add(vwidth, vspace,);
DBGrid2.DataSource := nil; SortToCHEK; IF OKRightDlg.RadioGroup1.ItemIndex = 0 then mFILTER := StrToInt(Edit3.Text); IF OKRightDlg.RadioGroup1.ItemIndex = 1 then Table2.Filter := 'SALDOK>'+QuotedStr(Edit3.Text);
Table2.First; mDOM := Table2.FieldByName('DOM').AsString; W.Selection.TypeText(' СПИСОК'); W.Selection.TypeText(#13#10'квартиросьемщиков имеющих задолженность по квартплате на '+DateToStr(Kalendar.MonthCalendar1.Date)); W.Selection.TypeText(#13#10'по ул.'+Table1.FieldByName('UL').AsString+' дом '+mDOM);
W.Selection.Tables.Add (Range:=W.Selection.Range,NumRows:=1,NumColumns:=5); W.ActiveDocument.Tables.Item(1).AutoFormat (tformat, tappbrd, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); // размеры отдельных строк и столбцов W.ActiveDocument.Tables.Item(1).Columns.Item(1).Width:=75; W.ActiveDocument.Tables.Item(1).Columns.Item(2).Width:=250; W.ActiveDocument.Tables.Item(1).Columns.Item(3).Width:=60; W.ActiveDocument.Tables.Item(1).Columns.Item(4).Width:=60; W.ActiveDocument.Tables.Item(1).Columns.Item(5).Width:=60; W.ActiveDocument.Tables.Item(1).Rows.Item(1).Height:=30; // вставка текста в ячейку (номерстроки, номер столбца) W.ActiveDocument.Tables.Item(1).Cell(1,1).Range.Text:='Лицевой счет'; //W.ActiveDocument.Tables.Item(1).Cell(1,2).Range.Text:='Фамилия, имя, отчество'; W.ActiveDocument.Tables.Item(1).Cell(1,2).Range.Text:='Квартира №'; W.ActiveDocument.Tables.Item(1).Cell(1,3).Range.Text:='Сумма долга'; W.ActiveDocument.Tables.Item(1).Cell(1,4).Range.Text:='Платеж за мес'; W.ActiveDocument.Tables.Item(1).Cell(1,5).Range.Text:='Не уп- лочено';
while not Table2.Eof do begin mCHEK:=Table2.FieldByName('CHEK').AsString; //mFIO:=Table2.FieldByName('FIO').AsString; mFIO:=Table2.FieldByName('KV').AsString; mDOLG:=Table2.FieldByName('SALDOK').AsFloat; mPLAT:=Table2.FieldByName('NACHIS').AsFloat; IF mPLAT>0 then begin mCOUNT:=INT(mDOLG / mPLAT); IF mCOUNT>=mFILTER then begin Ch := mCHEK+' '+Format('%-25s',[mFIO])+' '+Format('%6.2f',[mDOLG])+' ' +Format('%6.2f',[mPLAT])+' '+Format('%6.0f',[mCOUNT]); SetTextToDoc(#13#10+Ch, true); mSUMD := mSUMD + mDOLG; mSUMJ := mSUMJ + mDOLG; mKVO := mKVO + 1; ProgressBar1.StepIt; end; end; Table2.Next; IF not (mDOM = Table2.FieldByName('DOM').AsString) then begin mDOM := Table2.FieldByName('DOM').AsString; SetTextToDoc(#13#10'--------------------------------------------------------------------', true); SetTextToDoc(#13#10'Всего задолженность по дому '+CurrToStr(mSUMD), true); IF mSUMD>0 then begin SetTextToDoc(#13#10'Уважаемые жильцы!', true); SetTextToDoc(#13#10'Убедительно просим погасить задолженность по квартплате на расчетный', true); SetTextToDoc(#13#10'счет № '+LCHEK+' '+BANK+' '+MFO, true); SetTextToDoc(#13#10'Телефон для справок 5-25-65 Администрация '+FIRM, true); end; SetTextToDoc(#13#10'', true); W.Selection.EndKey(wdStory); IF CheckBox3.Checked then W.Selection.InsertBreak; SetTextToDoc(#13#10' СПИСОК', true); // W.Selection.TypeText(#13#10'квартиросьемщиков имеющих задолженность по квартплате на '+DateToStr(Kalendar.MonthCalendar1.Date)); SetTextToDoc(#13#10'квартиросьемщиков имеющих задолженность по квартплате на '+DateToStr(Kalendar.MonthCalendar1.Date), true); SetTextToDoc(#13#10'по ул.'+Table1.FieldByName('UL').AsString+' дом '+mDOM, true); SetTextToDoc(#13#10, true); W.Selection.EndKey(wdStory); i := i+1;
W.ActiveDocument.Tables.Add (Range:=W.Selection.Range,NumRows:=1,NumColumns:=5); W.ActiveDocument.Tables.Item(i).AutoFormat (tformat, tappbrd, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); // размеры отдельных строк и столбцов W.ActiveDocument.Tables.Item(i).Columns.Item(1).Width:=75; W.ActiveDocument.Tables.Item(i).Columns.Item(2).Width:=250; W.ActiveDocument.Tables.Item(i).Columns.Item(3).Width:=60; W.ActiveDocument.Tables.Item(i).Columns.Item(4).Width:=60; W.ActiveDocument.Tables.Item(i).Columns.Item(5).Width:=60; W.ActiveDocument.Tables.Item(i).Rows.Item(1).Height:=30; // вставка текста в ячейку (номерстроки, номер столбца) W.ActiveDocument.Tables.Item(i).Cell(1,1).Range.Text:='Лицевой счет'; W.ActiveDocument.Tables.Item(i).Cell(1,2).Range.Text:='Квартира №'; W.ActiveDocument.Tables.Item(i).Cell(1,3).Range.Text:='Сумма долга'; W.ActiveDocument.Tables.Item(i).Cell(1,4).Range.Text:='Платеж за мес'; W.ActiveDocument.Tables.Item(i).Cell(1,5).Range.Text:='Не уп- лочено'; mSUMD := 0; END; end; SetTextToDoc(#13#10'--------------------------------------------------------------------', true); SetTextToDoc(#13#10'Всего задолженность по дому '+CurrToStr(mSUMD), true); SetTextToDoc(#13#10'Уважаемые жильцы!', true); SetTextToDoc(#13#10'Убедительно просим погасить задолженность по квартплате на расчетный', true); SetTextToDoc(#13#10'счет № '+LCHEK+' '+BANK+' '+MFO, true); SetTextToDoc(#13#10'Телефон для справок 5-25-65 Администрация '+FIRM, true); SetTextToDoc(#13#10'', true); SetTextToDoc(#13#10'--------------------------------------------------------------------', true); SetTextToDoc(#13#10'Всего задолженность по жилфонду '+CurrToStr(mSUMJ), true); SetTextToDoc(#13#10'Всего квартир '+IntToStr(mKVO), true);
end; end;
Table2.Filter := ''; W.Visible:=True; ShowMessage('Готово!'); ProgressBar1.Position := 0; DBGrid2.DataSource := DataSource2; end;
|
|